aboutsummaryrefslogtreecommitdiff
path: root/docs/go/core
diff options
context:
space:
mode:
Diffstat (limited to 'docs/go/core')
-rw-r--r--docs/go/core/BUILD.bazel22
-rw-r--r--docs/go/core/buildgraph.excalidraw2260
-rw-r--r--docs/go/core/buildgraph.svg16
-rw-r--r--docs/go/core/bzlmod.md186
-rw-r--r--docs/go/core/cross_compilation.md29
-rw-r--r--docs/go/core/defines_and_stamping.md94
-rw-r--r--docs/go/core/embedding.md86
-rw-r--r--docs/go/core/examples.md70
-rw-r--r--docs/go/core/platform-specific_dependencies.md53
-rw-r--r--docs/go/core/rules.bzl129
-rw-r--r--docs/go/core/rules.md403
11 files changed, 3348 insertions, 0 deletions
diff --git a/docs/go/core/BUILD.bazel b/docs/go/core/BUILD.bazel
new file mode 100644
index 00000000..b43a6d9e
--- /dev/null
+++ b/docs/go/core/BUILD.bazel
@@ -0,0 +1,22 @@
+load("@bazel_skylib//:bzl_library.bzl", "bzl_library")
+
+exports_files([
+ "rules.md",
+ "rules.bzl",
+])
+
+bzl_library(
+ name = "rules",
+ srcs = ["rules.bzl"],
+ visibility = ["//visibility:public"],
+ deps = [
+ "//go/private:rpath",
+ "//go/private/rules:binary",
+ "//go/private/rules:cross",
+ "//go/private/rules:library",
+ "//go/private/rules:library.bzl",
+ "//go/private/rules:source",
+ "//go/private/rules:test",
+ "//go/private/tools:path",
+ ],
+)
diff --git a/docs/go/core/buildgraph.excalidraw b/docs/go/core/buildgraph.excalidraw
new file mode 100644
index 00000000..60250523
--- /dev/null
+++ b/docs/go/core/buildgraph.excalidraw
@@ -0,0 +1,2260 @@
+{
+ "type": "excalidraw",
+ "version": 2,
+ "source": "https://excalidraw.com",
+ "elements": [
+ {
+ "type": "line",
+ "version": 715,
+ "versionNonce": 1588502918,
+ "isDeleted": false,
+ "id": "y8btfe8aNxR4U0rku_mYn",
+ "fillStyle": "hachure",
+ "strokeWidth": 1,
+ "strokeStyle": "dashed",
+ "roughness": 1,
+ "opacity": 40,
+ "angle": 0,
+ "x": 1132.107421875,
+ "y": 236.83398437500003,
+ "strokeColor": "#000000",
+ "backgroundColor": "#fd7e14",
+ "width": 856.15234375,
+ "height": 307.21875,
+ "seed": 661091153,
+ "groupIds": [],
+ "strokeSharpness": "round",
+ "boundElements": [],
+ "updated": 1648705107325,
+ "link": null,
+ "startBinding": null,
+ "endBinding": null,
+ "lastCommittedPoint": null,
+ "startArrowhead": null,
+ "endArrowhead": null,
+ "points": [
+ [
+ 0,
+ 0
+ ],
+ [
+ -100.4296875,
+ 127.29296875
+ ],
+ [
+ -183.92578125,
+ 159.54296875
+ ],
+ [
+ -667.21484375,
+ 167.625
+ ],
+ [
+ -628.08203125,
+ 301.1796875
+ ],
+ [
+ -78.0703125,
+ 307.21875
+ ],
+ [
+ 188.9375,
+ 73.36328125
+ ],
+ [
+ 0,
+ 0
+ ]
+ ]
+ },
+ {
+ "type": "rectangle",
+ "version": 423,
+ "versionNonce": 1905005330,
+ "isDeleted": false,
+ "id": "_Yn448UDpyk8bgZY0fA9l",
+ "fillStyle": "hachure",
+ "strokeWidth": 1,
+ "strokeStyle": "solid",
+ "roughness": 1,
+ "opacity": 100,
+ "angle": 0,
+ "x": 526.61328125,
+ "y": 160.484375,
+ "strokeColor": "#000000",
+ "backgroundColor": "#82c91e",
+ "width": 135.75390625,
+ "height": 68.09375,
+ "seed": 860180077,
+ "groupIds": [],
+ "strokeSharpness": "sharp",
+ "boundElements": [
+ {
+ "id": "aFKsLgjkb7lO7X9odAH4Z",
+ "type": "arrow"
+ }
+ ],
+ "updated": 1645713106334,
+ "link": null
+ },
+ {
+ "type": "rectangle",
+ "version": 400,
+ "versionNonce": 2122489170,
+ "isDeleted": false,
+ "id": "HzjwDEtdpACOtsMXQz4qR",
+ "fillStyle": "hachure",
+ "strokeWidth": 1,
+ "strokeStyle": "solid",
+ "roughness": 1,
+ "opacity": 100,
+ "angle": 0,
+ "x": 515.8046875,
+ "y": -23.1875,
+ "strokeColor": "#000000",
+ "backgroundColor": "#82c91e",
+ "width": 188,
+ "height": 69,
+ "seed": 1527037778,
+ "groupIds": [],
+ "strokeSharpness": "sharp",
+ "boundElements": [
+ {
+ "id": "aFKsLgjkb7lO7X9odAH4Z",
+ "type": "arrow"
+ },
+ {
+ "type": "text",
+ "id": "XdeK36TNlGK4oDnK0QljI"
+ },
+ {
+ "id": "gg8sTvMlfTEUCsO1BcBVQ",
+ "type": "arrow"
+ }
+ ],
+ "updated": 1645713058816,
+ "link": null
+ },
+ {
+ "type": "rectangle",
+ "version": 450,
+ "versionNonce": 377362638,
+ "isDeleted": false,
+ "id": "nG82Pemyxdap8-2WgkNKA",
+ "fillStyle": "hachure",
+ "strokeWidth": 1,
+ "strokeStyle": "solid",
+ "roughness": 1,
+ "opacity": 100,
+ "angle": 0,
+ "x": 517,
+ "y": -110.83984375,
+ "strokeColor": "#000000",
+ "backgroundColor": "#82c91e",
+ "width": 188,
+ "height": 69,
+ "seed": 1392990674,
+ "groupIds": [],
+ "strokeSharpness": "sharp",
+ "boundElements": [
+ {
+ "id": "aFKsLgjkb7lO7X9odAH4Z",
+ "type": "arrow"
+ },
+ {
+ "id": "iI9z1qPn6RQpZWPzVundB",
+ "type": "text"
+ },
+ {
+ "id": "gg8sTvMlfTEUCsO1BcBVQ",
+ "type": "arrow"
+ },
+ {
+ "type": "text",
+ "id": "iI9z1qPn6RQpZWPzVundB"
+ }
+ ],
+ "updated": 1645713058816,
+ "link": null
+ },
+ {
+ "type": "text",
+ "version": 272,
+ "versionNonce": 1262477070,
+ "isDeleted": false,
+ "id": "DbWhovpUmSW3P2ULquXGH",
+ "fillStyle": "hachure",
+ "strokeWidth": 1,
+ "strokeStyle": "solid",
+ "roughness": 1,
+ "opacity": 100,
+ "angle": 0,
+ "x": 547.859375,
+ "y": 182.69140625,
+ "strokeColor": "#000000",
+ "backgroundColor": "#82c91e",
+ "width": 101,
+ "height": 25,
+ "seed": 906895950,
+ "groupIds": [],
+ "strokeSharpness": "sharp",
+ "boundElements": [],
+ "updated": 1645713106334,
+ "link": null,
+ "fontSize": 20,
+ "fontFamily": 1,
+ "text": "foo/foo.go",
+ "baseline": 18,
+ "textAlign": "left",
+ "verticalAlign": "top",
+ "containerId": null,
+ "originalText": "foo/foo.go"
+ },
+ {
+ "type": "rectangle",
+ "version": 463,
+ "versionNonce": 1887166674,
+ "isDeleted": false,
+ "id": "_xbH0JhODNrj71g2D9gkP",
+ "fillStyle": "hachure",
+ "strokeWidth": 1,
+ "strokeStyle": "solid",
+ "roughness": 1,
+ "opacity": 100,
+ "angle": 0,
+ "x": 523.83203125,
+ "y": 278.546875,
+ "strokeColor": "#000000",
+ "backgroundColor": "#82c91e",
+ "width": 135.75390625,
+ "height": 68.09375,
+ "seed": 2061882962,
+ "groupIds": [
+ "4kSMwuKzk3B7ostEFiZq2"
+ ],
+ "strokeSharpness": "sharp",
+ "boundElements": [
+ {
+ "id": "RenCmXsoXx0fGBRKi5_26",
+ "type": "arrow"
+ }
+ ],
+ "updated": 1645713106334,
+ "link": null
+ },
+ {
+ "type": "text",
+ "version": 300,
+ "versionNonce": 1313656142,
+ "isDeleted": false,
+ "id": "iqePQyDoLs8KfvrRwplFb",
+ "fillStyle": "hachure",
+ "strokeWidth": 1,
+ "strokeStyle": "solid",
+ "roughness": 1,
+ "opacity": 100,
+ "angle": 0,
+ "x": 542.70703125,
+ "y": 299.05859375,
+ "strokeColor": "#000000",
+ "backgroundColor": "#82c91e",
+ "width": 102,
+ "height": 25,
+ "seed": 1875308494,
+ "groupIds": [
+ "4kSMwuKzk3B7ostEFiZq2"
+ ],
+ "strokeSharpness": "sharp",
+ "boundElements": [],
+ "updated": 1645713106334,
+ "link": null,
+ "fontSize": 20,
+ "fontFamily": 1,
+ "text": "bar/bar.go",
+ "baseline": 18,
+ "textAlign": "left",
+ "verticalAlign": "top",
+ "containerId": null,
+ "originalText": "bar/bar.go"
+ },
+ {
+ "type": "rectangle",
+ "version": 589,
+ "versionNonce": 2132796058,
+ "isDeleted": false,
+ "id": "0pqTrsCrwG6n6wgsz7SgC",
+ "fillStyle": "hachure",
+ "strokeWidth": 1,
+ "strokeStyle": "solid",
+ "roughness": 1,
+ "opacity": 100,
+ "angle": 0,
+ "x": 526.15234375,
+ "y": 416.25,
+ "strokeColor": "#000000",
+ "backgroundColor": "#82c91e",
+ "width": 135.75390625,
+ "height": 68.09375,
+ "seed": 377700942,
+ "groupIds": [
+ "eCCem_f9xwDhl8kXZowGD"
+ ],
+ "strokeSharpness": "sharp",
+ "boundElements": [
+ {
+ "id": "4LKhA3K_w1H2L003EIMw2",
+ "type": "arrow"
+ }
+ ],
+ "updated": 1648705120553,
+ "link": null
+ },
+ {
+ "type": "text",
+ "version": 381,
+ "versionNonce": 1832430598,
+ "isDeleted": false,
+ "id": "dJOSRocJhisFxXPfh3dF7",
+ "fillStyle": "hachure",
+ "strokeWidth": 1,
+ "strokeStyle": "solid",
+ "roughness": 1,
+ "opacity": 100,
+ "angle": 0,
+ "x": 559.0859375,
+ "y": 436.62890625,
+ "strokeColor": "#000000",
+ "backgroundColor": "#82c91e",
+ "width": 67,
+ "height": 25,
+ "seed": 2013483410,
+ "groupIds": [
+ "eCCem_f9xwDhl8kXZowGD"
+ ],
+ "strokeSharpness": "sharp",
+ "boundElements": [],
+ "updated": 1648705120554,
+ "link": null,
+ "fontSize": 20,
+ "fontFamily": 1,
+ "text": "main.go",
+ "baseline": 18,
+ "textAlign": "left",
+ "verticalAlign": "top",
+ "containerId": null,
+ "originalText": "main.go"
+ },
+ {
+ "type": "rectangle",
+ "version": 327,
+ "versionNonce": 598472338,
+ "isDeleted": false,
+ "id": "ktywT8Qylp8edNPAyJ97P",
+ "fillStyle": "hachure",
+ "strokeWidth": 1,
+ "strokeStyle": "solid",
+ "roughness": 1,
+ "opacity": 100,
+ "angle": 0,
+ "x": 826.0078125,
+ "y": 159.49609375,
+ "strokeColor": "#000000",
+ "backgroundColor": "#fab005",
+ "width": 158,
+ "height": 75.1640625,
+ "seed": 205846418,
+ "groupIds": [],
+ "strokeSharpness": "sharp",
+ "boundElements": [
+ {
+ "type": "text",
+ "id": "Dzp14kB83qtIZDUQDD5SD"
+ },
+ {
+ "id": "aFKsLgjkb7lO7X9odAH4Z",
+ "type": "arrow"
+ },
+ {
+ "id": "gfz01PbwrOcATNOv4UJYH",
+ "type": "arrow"
+ },
+ {
+ "id": "JzL3QRbsha0aBVxbGukeT",
+ "type": "arrow"
+ }
+ ],
+ "updated": 1645713106334,
+ "link": null
+ },
+ {
+ "type": "rectangle",
+ "version": 803,
+ "versionNonce": 1314669006,
+ "isDeleted": false,
+ "id": "96rPjdc8UZN-YzZFtZKgl",
+ "fillStyle": "hachure",
+ "strokeWidth": 1,
+ "strokeStyle": "solid",
+ "roughness": 1,
+ "opacity": 100,
+ "angle": 0,
+ "x": 834.0000000000002,
+ "y": 31.3125,
+ "strokeColor": "#000000",
+ "backgroundColor": "#fab005",
+ "width": 158,
+ "height": 75.1640625,
+ "seed": 523095310,
+ "groupIds": [],
+ "strokeSharpness": "sharp",
+ "boundElements": [
+ {
+ "id": "E-9hQ7N5qrOcGvUNiQiKh",
+ "type": "text"
+ },
+ {
+ "id": "02WhVqVlyTmahvSW4ProQ",
+ "type": "arrow"
+ },
+ {
+ "id": "gfz01PbwrOcATNOv4UJYH",
+ "type": "arrow"
+ },
+ {
+ "id": "JzL3QRbsha0aBVxbGukeT",
+ "type": "arrow"
+ },
+ {
+ "type": "text",
+ "id": "E-9hQ7N5qrOcGvUNiQiKh"
+ }
+ ],
+ "updated": 1645713058816,
+ "link": null
+ },
+ {
+ "type": "rectangle",
+ "version": 403,
+ "versionNonce": 98306578,
+ "isDeleted": false,
+ "id": "-UZKzAkD5QFkhlYnkmn_1",
+ "fillStyle": "hachure",
+ "strokeWidth": 1,
+ "strokeStyle": "solid",
+ "roughness": 1,
+ "opacity": 100,
+ "angle": 0,
+ "x": 869.734375,
+ "y": -103.796875,
+ "strokeColor": "#000000",
+ "backgroundColor": "#82c91e",
+ "width": 190,
+ "height": 76,
+ "seed": 5847762,
+ "groupIds": [],
+ "strokeSharpness": "sharp",
+ "boundElements": [
+ {
+ "id": "SozLW7ytDBjhY_zbGCVlc",
+ "type": "text"
+ },
+ {
+ "id": "aFKsLgjkb7lO7X9odAH4Z",
+ "type": "arrow"
+ },
+ {
+ "id": "gfz01PbwrOcATNOv4UJYH",
+ "type": "arrow"
+ },
+ {
+ "id": "JzL3QRbsha0aBVxbGukeT",
+ "type": "arrow"
+ },
+ {
+ "type": "text",
+ "id": "SozLW7ytDBjhY_zbGCVlc"
+ },
+ {
+ "id": "gg8sTvMlfTEUCsO1BcBVQ",
+ "type": "arrow"
+ },
+ {
+ "id": "02WhVqVlyTmahvSW4ProQ",
+ "type": "arrow"
+ }
+ ],
+ "updated": 1645713058816,
+ "link": null
+ },
+ {
+ "type": "rectangle",
+ "version": 325,
+ "versionNonce": 754471374,
+ "isDeleted": false,
+ "id": "1hsA_FOvShESw1vZOfRki",
+ "fillStyle": "hachure",
+ "strokeWidth": 1,
+ "strokeStyle": "solid",
+ "roughness": 1,
+ "opacity": 100,
+ "angle": 0,
+ "x": 823.0390625,
+ "y": 280.15625,
+ "strokeColor": "#000000",
+ "backgroundColor": "#fab005",
+ "width": 158,
+ "height": 75.1640625,
+ "seed": 1605551566,
+ "groupIds": [],
+ "strokeSharpness": "sharp",
+ "boundElements": [
+ {
+ "id": "mk113WrHJaj6g3-UUKDH7",
+ "type": "text"
+ },
+ {
+ "id": "RenCmXsoXx0fGBRKi5_26",
+ "type": "arrow"
+ },
+ {
+ "type": "text",
+ "id": "mk113WrHJaj6g3-UUKDH7"
+ }
+ ],
+ "updated": 1645713106334,
+ "link": null
+ },
+ {
+ "type": "rectangle",
+ "version": 265,
+ "versionNonce": 1793939098,
+ "isDeleted": false,
+ "id": "IssDOZSbCLaPJjJ4_ILh0",
+ "fillStyle": "hachure",
+ "strokeWidth": 1,
+ "strokeStyle": "solid",
+ "roughness": 1,
+ "opacity": 100,
+ "angle": 0,
+ "x": 823.2265625,
+ "y": 413.234375,
+ "strokeColor": "#000000",
+ "backgroundColor": "#fab005",
+ "width": 158,
+ "height": 75.1640625,
+ "seed": 261187278,
+ "groupIds": [],
+ "strokeSharpness": "sharp",
+ "boundElements": [
+ {
+ "id": "HTOlHr-Ui1zDseI3sfY9K",
+ "type": "text"
+ },
+ {
+ "id": "4LKhA3K_w1H2L003EIMw2",
+ "type": "arrow"
+ },
+ {
+ "id": "HTOlHr-Ui1zDseI3sfY9K",
+ "type": "text"
+ },
+ {
+ "type": "text",
+ "id": "HTOlHr-Ui1zDseI3sfY9K"
+ }
+ ],
+ "updated": 1648705117196,
+ "link": null
+ },
+ {
+ "type": "text",
+ "version": 276,
+ "versionNonce": 908194702,
+ "isDeleted": false,
+ "id": "Dzp14kB83qtIZDUQDD5SD",
+ "fillStyle": "hachure",
+ "strokeWidth": 1,
+ "strokeStyle": "solid",
+ "roughness": 1,
+ "opacity": 100,
+ "angle": 0,
+ "x": 831.0078125,
+ "y": 184.578125,
+ "strokeColor": "#000000",
+ "backgroundColor": "transparent",
+ "width": 148,
+ "height": 25,
+ "seed": 173132430,
+ "groupIds": [],
+ "strokeSharpness": "sharp",
+ "boundElements": [],
+ "updated": 1645713106334,
+ "link": null,
+ "fontSize": 20,
+ "fontFamily": 1,
+ "text": "foo_archive",
+ "baseline": 18,
+ "textAlign": "center",
+ "verticalAlign": "middle",
+ "containerId": "ktywT8Qylp8edNPAyJ97P",
+ "originalText": "foo_archive"
+ },
+ {
+ "type": "text",
+ "version": 758,
+ "versionNonce": 2141859218,
+ "isDeleted": false,
+ "id": "E-9hQ7N5qrOcGvUNiQiKh",
+ "fillStyle": "hachure",
+ "strokeWidth": 1,
+ "strokeStyle": "solid",
+ "roughness": 1,
+ "opacity": 100,
+ "angle": 0,
+ "x": 839.0000000000002,
+ "y": 56.39453125,
+ "strokeColor": "#000000",
+ "backgroundColor": "transparent",
+ "width": 148,
+ "height": 25,
+ "seed": 220975826,
+ "groupIds": [],
+ "strokeSharpness": "sharp",
+ "boundElements": [],
+ "updated": 1645713058816,
+ "link": null,
+ "fontSize": 20,
+ "fontFamily": 1,
+ "text": "test_archive",
+ "baseline": 18,
+ "textAlign": "center",
+ "verticalAlign": "middle",
+ "containerId": "96rPjdc8UZN-YzZFtZKgl",
+ "originalText": "test_archive"
+ },
+ {
+ "type": "text",
+ "version": 363,
+ "versionNonce": 1233562766,
+ "isDeleted": false,
+ "id": "SozLW7ytDBjhY_zbGCVlc",
+ "fillStyle": "hachure",
+ "strokeWidth": 1,
+ "strokeStyle": "solid",
+ "roughness": 1,
+ "opacity": 100,
+ "angle": 0,
+ "x": 874.734375,
+ "y": -78.296875,
+ "strokeColor": "#000000",
+ "backgroundColor": "transparent",
+ "width": 180,
+ "height": 25,
+ "seed": 956961614,
+ "groupIds": [],
+ "strokeSharpness": "sharp",
+ "boundElements": [],
+ "updated": 1645713058816,
+ "link": null,
+ "fontSize": 20,
+ "fontFamily": 1,
+ "text": "test_source.go",
+ "baseline": 18,
+ "textAlign": "center",
+ "verticalAlign": "middle",
+ "containerId": "-UZKzAkD5QFkhlYnkmn_1",
+ "originalText": "test_source.go"
+ },
+ {
+ "type": "text",
+ "version": 288,
+ "versionNonce": 2059991570,
+ "isDeleted": false,
+ "id": "mk113WrHJaj6g3-UUKDH7",
+ "fillStyle": "hachure",
+ "strokeWidth": 1,
+ "strokeStyle": "solid",
+ "roughness": 1,
+ "opacity": 100,
+ "angle": 0,
+ "x": 828.0390625,
+ "y": 305.23828125,
+ "strokeColor": "#000000",
+ "backgroundColor": "transparent",
+ "width": 148,
+ "height": 25,
+ "seed": 1042269714,
+ "groupIds": [],
+ "strokeSharpness": "sharp",
+ "boundElements": [],
+ "updated": 1645713106334,
+ "link": null,
+ "fontSize": 20,
+ "fontFamily": 1,
+ "text": "bar_archive",
+ "baseline": 18,
+ "textAlign": "center",
+ "verticalAlign": "middle",
+ "containerId": "1hsA_FOvShESw1vZOfRki",
+ "originalText": "bar_archive"
+ },
+ {
+ "type": "text",
+ "version": 186,
+ "versionNonce": 1163782862,
+ "isDeleted": false,
+ "id": "HTOlHr-Ui1zDseI3sfY9K",
+ "fillStyle": "hachure",
+ "strokeWidth": 1,
+ "strokeStyle": "solid",
+ "roughness": 1,
+ "opacity": 100,
+ "angle": 0,
+ "x": 828.2265625,
+ "y": 438.31640625,
+ "strokeColor": "#000000",
+ "backgroundColor": "transparent",
+ "width": 148,
+ "height": 25,
+ "seed": 2042082578,
+ "groupIds": [],
+ "strokeSharpness": "sharp",
+ "boundElements": [],
+ "updated": 1645713058816,
+ "link": null,
+ "fontSize": 20,
+ "fontFamily": 1,
+ "text": "main_archive",
+ "baseline": 18,
+ "textAlign": "center",
+ "verticalAlign": "middle",
+ "containerId": "IssDOZSbCLaPJjJ4_ILh0",
+ "originalText": "main_archive"
+ },
+ {
+ "type": "arrow",
+ "version": 768,
+ "versionNonce": 383410450,
+ "isDeleted": false,
+ "id": "aFKsLgjkb7lO7X9odAH4Z",
+ "fillStyle": "hachure",
+ "strokeWidth": 1,
+ "strokeStyle": "solid",
+ "roughness": 1,
+ "opacity": 100,
+ "angle": 0,
+ "x": 671.875,
+ "y": 192.01815773762468,
+ "strokeColor": "#000000",
+ "backgroundColor": "transparent",
+ "width": 146.4375,
+ "height": 4.775870872813329,
+ "seed": 1274321422,
+ "groupIds": [],
+ "strokeSharpness": "round",
+ "boundElements": [],
+ "updated": 1645713106864,
+ "link": null,
+ "startBinding": {
+ "elementId": "y92Fllrdc8UjAmzlSayru",
+ "focus": 1.5333143038068908,
+ "gap": 7.619720237624676
+ },
+ "endBinding": {
+ "elementId": "ktywT8Qylp8edNPAyJ97P",
+ "focus": -0.06333301495760145,
+ "gap": 7.6953125
+ },
+ "lastCommittedPoint": null,
+ "startArrowhead": null,
+ "endArrowhead": "arrow",
+ "points": [
+ [
+ 0,
+ 0
+ ],
+ [
+ 146.4375,
+ 4.775870872813329
+ ]
+ ]
+ },
+ {
+ "type": "arrow",
+ "version": 1836,
+ "versionNonce": 942891278,
+ "isDeleted": false,
+ "id": "02WhVqVlyTmahvSW4ProQ",
+ "fillStyle": "hachure",
+ "strokeWidth": 1,
+ "strokeStyle": "solid",
+ "roughness": 1,
+ "opacity": 100,
+ "angle": 0,
+ "x": 953.1035887473417,
+ "y": -13.566406249999774,
+ "strokeColor": "#000000",
+ "backgroundColor": "transparent",
+ "width": 20.944314879108333,
+ "height": 37.18359374999977,
+ "seed": 172817230,
+ "groupIds": [],
+ "strokeSharpness": "round",
+ "boundElements": [],
+ "updated": 1645713058816,
+ "link": null,
+ "startBinding": {
+ "elementId": "-UZKzAkD5QFkhlYnkmn_1",
+ "focus": -0.15324622745821068,
+ "gap": 14.230468750000227
+ },
+ "endBinding": {
+ "elementId": "96rPjdc8UZN-YzZFtZKgl",
+ "focus": -0.06333301495760137,
+ "gap": 7.6953125
+ },
+ "lastCommittedPoint": null,
+ "startArrowhead": null,
+ "endArrowhead": "arrow",
+ "points": [
+ [
+ 0,
+ 0
+ ],
+ [
+ -20.944314879108333,
+ 37.18359374999977
+ ]
+ ]
+ },
+ {
+ "type": "arrow",
+ "version": 781,
+ "versionNonce": 591753486,
+ "isDeleted": false,
+ "id": "RenCmXsoXx0fGBRKi5_26",
+ "fillStyle": "hachure",
+ "strokeWidth": 1,
+ "strokeStyle": "solid",
+ "roughness": 1,
+ "opacity": 100,
+ "angle": 0,
+ "x": 668.7734375,
+ "y": 312.67688026346684,
+ "strokeColor": "#000000",
+ "backgroundColor": "transparent",
+ "width": 146.5703125,
+ "height": 4.778341675082629,
+ "seed": 154459150,
+ "groupIds": [],
+ "strokeSharpness": "round",
+ "boundElements": [],
+ "updated": 1645713106864,
+ "link": null,
+ "startBinding": {
+ "elementId": "OWV5oGIX-s5xyq6g_m2zZ",
+ "focus": 1.4490929667636174,
+ "gap": 7.15234375
+ },
+ "endBinding": {
+ "elementId": "1hsA_FOvShESw1vZOfRki",
+ "focus": -0.06333301495760026,
+ "gap": 7.6953125
+ },
+ "lastCommittedPoint": null,
+ "startArrowhead": null,
+ "endArrowhead": "arrow",
+ "points": [
+ [
+ 0,
+ 0
+ ],
+ [
+ 146.5703125,
+ 4.778341675082629
+ ]
+ ]
+ },
+ {
+ "type": "arrow",
+ "version": 385,
+ "versionNonce": 78116890,
+ "isDeleted": false,
+ "id": "4LKhA3K_w1H2L003EIMw2",
+ "fillStyle": "hachure",
+ "strokeWidth": 1,
+ "strokeStyle": "solid",
+ "roughness": 1,
+ "opacity": 100,
+ "angle": 0,
+ "x": 669.2109375,
+ "y": 445.7575776527482,
+ "strokeColor": "#000000",
+ "backgroundColor": "transparent",
+ "width": 146.3203125,
+ "height": 4.7737708541606025,
+ "seed": 1721195790,
+ "groupIds": [],
+ "strokeSharpness": "round",
+ "boundElements": [],
+ "updated": 1648705118191,
+ "link": null,
+ "startBinding": {
+ "elementId": "0pqTrsCrwG6n6wgsz7SgC",
+ "focus": -0.19283711924306857,
+ "gap": 7.3046875
+ },
+ "endBinding": {
+ "elementId": "IssDOZSbCLaPJjJ4_ILh0",
+ "focus": -0.06333301495760026,
+ "gap": 7.6953125
+ },
+ "lastCommittedPoint": null,
+ "startArrowhead": null,
+ "endArrowhead": "arrow",
+ "points": [
+ [
+ 0,
+ 0
+ ],
+ [
+ 146.3203125,
+ 4.7737708541606025
+ ]
+ ]
+ },
+ {
+ "type": "text",
+ "version": 350,
+ "versionNonce": 13085330,
+ "isDeleted": false,
+ "id": "y92Fllrdc8UjAmzlSayru",
+ "fillStyle": "hachure",
+ "strokeWidth": 1,
+ "strokeStyle": "solid",
+ "roughness": 1,
+ "opacity": 100,
+ "angle": 0,
+ "x": 676.77734375,
+ "y": 159.3984375,
+ "strokeColor": "#000000",
+ "backgroundColor": "transparent",
+ "width": 128,
+ "height": 25,
+ "seed": 1522598802,
+ "groupIds": [],
+ "strokeSharpness": "sharp",
+ "boundElements": [
+ {
+ "id": "aFKsLgjkb7lO7X9odAH4Z",
+ "type": "arrow"
+ },
+ {
+ "id": "D1sm8V-f_lwosorRMX2Pj",
+ "type": "arrow"
+ }
+ ],
+ "updated": 1645713127078,
+ "link": null,
+ "fontSize": 20,
+ "fontFamily": 1,
+ "text": "GoCompilePkg",
+ "baseline": 18,
+ "textAlign": "left",
+ "verticalAlign": "top",
+ "containerId": null,
+ "originalText": "GoCompilePkg"
+ },
+ {
+ "type": "text",
+ "version": 430,
+ "versionNonce": 2040329614,
+ "isDeleted": false,
+ "id": "AVQpPcZ2l6tF482laHpQm",
+ "fillStyle": "hachure",
+ "strokeWidth": 1,
+ "strokeStyle": "solid",
+ "roughness": 1,
+ "opacity": 100,
+ "angle": 0,
+ "x": 958.4257812500002,
+ "y": -14.23046875,
+ "strokeColor": "#000000",
+ "backgroundColor": "transparent",
+ "width": 128,
+ "height": 25,
+ "seed": 1234020498,
+ "groupIds": [],
+ "strokeSharpness": "sharp",
+ "boundElements": [],
+ "updated": 1645713058816,
+ "link": null,
+ "fontSize": 20,
+ "fontFamily": 1,
+ "text": "GoCompilePkg",
+ "baseline": 18,
+ "textAlign": "left",
+ "verticalAlign": "top",
+ "containerId": null,
+ "originalText": "GoCompilePkg"
+ },
+ {
+ "type": "text",
+ "version": 373,
+ "versionNonce": 1338350418,
+ "isDeleted": false,
+ "id": "OWV5oGIX-s5xyq6g_m2zZ",
+ "fillStyle": "hachure",
+ "strokeWidth": 1,
+ "strokeStyle": "solid",
+ "roughness": 1,
+ "opacity": 100,
+ "angle": 0,
+ "x": 675.92578125,
+ "y": 281.359375,
+ "strokeColor": "#000000",
+ "backgroundColor": "transparent",
+ "width": 128,
+ "height": 25,
+ "seed": 1981887442,
+ "groupIds": [],
+ "strokeSharpness": "sharp",
+ "boundElements": [
+ {
+ "id": "RenCmXsoXx0fGBRKi5_26",
+ "type": "arrow"
+ }
+ ],
+ "updated": 1645713106334,
+ "link": null,
+ "fontSize": 20,
+ "fontFamily": 1,
+ "text": "GoCompilePkg",
+ "baseline": 18,
+ "textAlign": "left",
+ "verticalAlign": "top",
+ "containerId": null,
+ "originalText": "GoCompilePkg"
+ },
+ {
+ "type": "text",
+ "version": 263,
+ "versionNonce": 230888398,
+ "isDeleted": false,
+ "id": "XFDzOG61LR012x-J2LGIJ",
+ "fillStyle": "hachure",
+ "strokeWidth": 1,
+ "strokeStyle": "solid",
+ "roughness": 1,
+ "opacity": 100,
+ "angle": 0,
+ "x": 675.609375,
+ "y": 418.51953125,
+ "strokeColor": "#000000",
+ "backgroundColor": "transparent",
+ "width": 128,
+ "height": 25,
+ "seed": 1994605266,
+ "groupIds": [],
+ "strokeSharpness": "sharp",
+ "boundElements": [],
+ "updated": 1645713058817,
+ "link": null,
+ "fontSize": 20,
+ "fontFamily": 1,
+ "text": "GoCompilePkg",
+ "baseline": 18,
+ "textAlign": "left",
+ "verticalAlign": "top",
+ "containerId": null,
+ "originalText": "GoCompilePkg"
+ },
+ {
+ "type": "line",
+ "version": 1696,
+ "versionNonce": 1947902610,
+ "isDeleted": false,
+ "id": "CCr_7bBDw6qxEnXcYPkhb",
+ "fillStyle": "hachure",
+ "strokeWidth": 1,
+ "strokeStyle": "solid",
+ "roughness": 1,
+ "opacity": 100,
+ "angle": 0,
+ "x": 984.40625,
+ "y": 176.43359375,
+ "strokeColor": "#000000",
+ "backgroundColor": "transparent",
+ "width": 106.10546875,
+ "height": 313.45703125,
+ "seed": 1367735442,
+ "groupIds": [],
+ "strokeSharpness": "round",
+ "boundElements": [],
+ "updated": 1645713058817,
+ "link": null,
+ "startBinding": null,
+ "endBinding": null,
+ "lastCommittedPoint": null,
+ "startArrowhead": null,
+ "endArrowhead": null,
+ "points": [
+ [
+ 0,
+ 0
+ ],
+ [
+ 34.70703125,
+ 59.4140625
+ ],
+ [
+ 7.453125,
+ 145.83984375
+ ],
+ [
+ 106.10546875,
+ 141.45703125
+ ],
+ [
+ 3.32421875,
+ 148.296875
+ ],
+ [
+ 35.30859375,
+ 220.953125
+ ],
+ [
+ 7.41796875,
+ 313.45703125
+ ]
+ ]
+ },
+ {
+ "type": "line",
+ "version": 1423,
+ "versionNonce": 164157838,
+ "isDeleted": false,
+ "id": "rSS_NGIY9mXlKvJ6zEKcS",
+ "fillStyle": "hachure",
+ "strokeWidth": 1,
+ "strokeStyle": "solid",
+ "roughness": 1,
+ "opacity": 100,
+ "angle": 0,
+ "x": 698.2108315925065,
+ "y": -124.59268454085958,
+ "strokeColor": "#000000",
+ "backgroundColor": "transparent",
+ "width": 163.09322505611044,
+ "height": 177.3724073101255,
+ "seed": 1859243538,
+ "groupIds": [],
+ "strokeSharpness": "round",
+ "boundElements": [],
+ "updated": 1645713136400,
+ "link": null,
+ "startBinding": null,
+ "endBinding": null,
+ "lastCommittedPoint": null,
+ "startArrowhead": null,
+ "endArrowhead": null,
+ "points": [
+ [
+ 0,
+ 0
+ ],
+ [
+ 32.08840700592511,
+ 30.81405958552382
+ ],
+ [
+ 18.23841960974691,
+ 71.9505372729384
+ ],
+ [
+ 163.09322505611044,
+ 62.79260616948538
+ ],
+ [
+ 19.635544337568465,
+ 76.75792430959316
+ ],
+ [
+ 31.990871883416816,
+ 131.85248366531474
+ ],
+ [
+ 2.2395418237075546,
+ 177.3724073101255
+ ]
+ ]
+ },
+ {
+ "type": "line",
+ "version": 2422,
+ "versionNonce": 1368162386,
+ "isDeleted": false,
+ "id": "Adp4I3kUZ5DVOnLF_mvH-",
+ "fillStyle": "hachure",
+ "strokeWidth": 1,
+ "strokeStyle": "solid",
+ "roughness": 1,
+ "opacity": 100,
+ "angle": 0,
+ "x": 1004.0975503425063,
+ "y": 42.05965920914046,
+ "strokeColor": "#000000",
+ "backgroundColor": "transparent",
+ "width": 135.13493323240277,
+ "height": 110.7669385601255,
+ "seed": 830365522,
+ "groupIds": [],
+ "strokeSharpness": "round",
+ "boundElements": [],
+ "updated": 1645713058817,
+ "link": null,
+ "startBinding": null,
+ "endBinding": null,
+ "lastCommittedPoint": null,
+ "startArrowhead": null,
+ "endArrowhead": null,
+ "points": [
+ [
+ 0,
+ 0
+ ],
+ [
+ 6.061063255925092,
+ 30.10702833552382
+ ],
+ [
+ 47.98060710974687,
+ 63.634131022938405
+ ],
+ [
+ 118.47213130611044,
+ 61.53479366948538
+ ],
+ [
+ 61.26445058756849,
+ 63.09386180959315
+ ],
+ [
+ 7.69009063341673,
+ 78.96576491531472
+ ],
+ [
+ -16.66280192629233,
+ 110.7669385601255
+ ]
+ ]
+ },
+ {
+ "type": "text",
+ "version": 211,
+ "versionNonce": 1752999442,
+ "isDeleted": false,
+ "id": "jqwxeTyV2H4FXh6iMTzld",
+ "fillStyle": "hachure",
+ "strokeWidth": 1,
+ "strokeStyle": "solid",
+ "roughness": 1,
+ "opacity": 100,
+ "angle": 0,
+ "x": 1014.41015625,
+ "y": 282.78125,
+ "strokeColor": "#000000",
+ "backgroundColor": "transparent",
+ "width": 63,
+ "height": 25,
+ "seed": 417199122,
+ "groupIds": [],
+ "strokeSharpness": "sharp",
+ "boundElements": [],
+ "updated": 1645713058817,
+ "link": null,
+ "fontSize": 20,
+ "fontFamily": 1,
+ "text": "GoLink",
+ "baseline": 18,
+ "textAlign": "left",
+ "verticalAlign": "top",
+ "containerId": null,
+ "originalText": "GoLink"
+ },
+ {
+ "type": "text",
+ "version": 239,
+ "versionNonce": 1737882638,
+ "isDeleted": false,
+ "id": "QU_adpXt889Ir2oimAKco",
+ "fillStyle": "hachure",
+ "strokeWidth": 1,
+ "strokeStyle": "solid",
+ "roughness": 1,
+ "opacity": 100,
+ "angle": 0,
+ "x": 1048.234375,
+ "y": 120.48828125,
+ "strokeColor": "#000000",
+ "backgroundColor": "transparent",
+ "width": 63,
+ "height": 25,
+ "seed": 1994591822,
+ "groupIds": [],
+ "strokeSharpness": "sharp",
+ "boundElements": [],
+ "updated": 1645713058817,
+ "link": null,
+ "fontSize": 20,
+ "fontFamily": 1,
+ "text": "GoLink",
+ "baseline": 18,
+ "textAlign": "left",
+ "verticalAlign": "top",
+ "containerId": null,
+ "originalText": "GoLink"
+ },
+ {
+ "type": "rectangle",
+ "version": 311,
+ "versionNonce": 31593426,
+ "isDeleted": false,
+ "id": "3Fs-7jrpoFZjkiFhKyXwJ",
+ "fillStyle": "hachure",
+ "strokeWidth": 1,
+ "strokeStyle": "solid",
+ "roughness": 1,
+ "opacity": 100,
+ "angle": 0,
+ "x": 1104.68359375,
+ "y": 278.453125,
+ "strokeColor": "#000000",
+ "backgroundColor": "#15aabf",
+ "width": 145,
+ "height": 87,
+ "seed": 459479182,
+ "groupIds": [],
+ "strokeSharpness": "sharp",
+ "boundElements": [
+ {
+ "type": "text",
+ "id": "U_khjX5LJoOf7oHa3yvmX"
+ }
+ ],
+ "updated": 1645713058817,
+ "link": null
+ },
+ {
+ "type": "rectangle",
+ "version": 433,
+ "versionNonce": 332876366,
+ "isDeleted": false,
+ "id": "lAKw58pfZT2qHbLfCcLdZ",
+ "fillStyle": "hachure",
+ "strokeWidth": 1,
+ "strokeStyle": "solid",
+ "roughness": 1,
+ "opacity": 100,
+ "angle": 0,
+ "x": 1132.86328125,
+ "y": 62.6171875,
+ "strokeColor": "#000000",
+ "backgroundColor": "#15aabf",
+ "width": 145,
+ "height": 87,
+ "seed": 766158926,
+ "groupIds": [],
+ "strokeSharpness": "sharp",
+ "boundElements": [
+ {
+ "id": "XAa15ht9hRV0nmyVPWns_",
+ "type": "text"
+ },
+ {
+ "type": "text",
+ "id": "XAa15ht9hRV0nmyVPWns_"
+ },
+ {
+ "id": "FCxo6QVHjz9QekO1fdHyI",
+ "type": "arrow"
+ }
+ ],
+ "updated": 1645713058817,
+ "link": null
+ },
+ {
+ "type": "rectangle",
+ "version": 642,
+ "versionNonce": 802408850,
+ "isDeleted": false,
+ "id": "CIn87cWj794-yqk1m35z0",
+ "fillStyle": "hachure",
+ "strokeWidth": 1,
+ "strokeStyle": "solid",
+ "roughness": 1,
+ "opacity": 100,
+ "angle": 0,
+ "x": 1320.8125,
+ "y": 185.6171875,
+ "strokeColor": "#000000",
+ "backgroundColor": "#15aabf",
+ "width": 145,
+ "height": 87,
+ "seed": 494767758,
+ "groupIds": [],
+ "strokeSharpness": "sharp",
+ "boundElements": [
+ {
+ "id": "8UX-ttDyvCivRUrnxdAX9",
+ "type": "text"
+ },
+ {
+ "id": "8UX-ttDyvCivRUrnxdAX9",
+ "type": "text"
+ },
+ {
+ "id": "FCxo6QVHjz9QekO1fdHyI",
+ "type": "arrow"
+ },
+ {
+ "type": "text",
+ "id": "8UX-ttDyvCivRUrnxdAX9"
+ }
+ ],
+ "updated": 1645713058817,
+ "link": null
+ },
+ {
+ "type": "text",
+ "version": 206,
+ "versionNonce": 1062523022,
+ "isDeleted": false,
+ "id": "U_khjX5LJoOf7oHa3yvmX",
+ "fillStyle": "hachure",
+ "strokeWidth": 1,
+ "strokeStyle": "solid",
+ "roughness": 1,
+ "opacity": 100,
+ "angle": 0,
+ "x": 1109.68359375,
+ "y": 309.453125,
+ "strokeColor": "#000000",
+ "backgroundColor": "transparent",
+ "width": 135,
+ "height": 25,
+ "seed": 606262286,
+ "groupIds": [],
+ "strokeSharpness": "sharp",
+ "boundElements": [],
+ "updated": 1645713058817,
+ "link": null,
+ "fontSize": 20,
+ "fontFamily": 1,
+ "text": "go binary",
+ "baseline": 18,
+ "textAlign": "center",
+ "verticalAlign": "middle",
+ "containerId": "3Fs-7jrpoFZjkiFhKyXwJ",
+ "originalText": "go binary"
+ },
+ {
+ "type": "text",
+ "version": 332,
+ "versionNonce": 696829778,
+ "isDeleted": false,
+ "id": "XAa15ht9hRV0nmyVPWns_",
+ "fillStyle": "hachure",
+ "strokeWidth": 1,
+ "strokeStyle": "solid",
+ "roughness": 1,
+ "opacity": 100,
+ "angle": 0,
+ "x": 1137.86328125,
+ "y": 93.6171875,
+ "strokeColor": "#000000",
+ "backgroundColor": "transparent",
+ "width": 135,
+ "height": 25,
+ "seed": 1441614738,
+ "groupIds": [],
+ "strokeSharpness": "sharp",
+ "boundElements": [],
+ "updated": 1645713058817,
+ "link": null,
+ "fontSize": 20,
+ "fontFamily": 1,
+ "text": "test binary",
+ "baseline": 18,
+ "textAlign": "center",
+ "verticalAlign": "middle",
+ "containerId": "lAKw58pfZT2qHbLfCcLdZ",
+ "originalText": "test binary"
+ },
+ {
+ "type": "text",
+ "version": 554,
+ "versionNonce": 633835214,
+ "isDeleted": false,
+ "id": "8UX-ttDyvCivRUrnxdAX9",
+ "fillStyle": "hachure",
+ "strokeWidth": 1,
+ "strokeStyle": "solid",
+ "roughness": 1,
+ "opacity": 100,
+ "angle": 0,
+ "x": 1325.8125,
+ "y": 216.6171875,
+ "strokeColor": "#000000",
+ "backgroundColor": "transparent",
+ "width": 135,
+ "height": 25,
+ "seed": 768797010,
+ "groupIds": [],
+ "strokeSharpness": "sharp",
+ "boundElements": [],
+ "updated": 1645713058817,
+ "link": null,
+ "fontSize": 20,
+ "fontFamily": 1,
+ "text": "test result",
+ "baseline": 18,
+ "textAlign": "center",
+ "verticalAlign": "middle",
+ "containerId": "CIn87cWj794-yqk1m35z0",
+ "originalText": "test result"
+ },
+ {
+ "type": "text",
+ "version": 125,
+ "versionNonce": 660081938,
+ "isDeleted": false,
+ "id": "XdeK36TNlGK4oDnK0QljI",
+ "fillStyle": "hachure",
+ "strokeWidth": 1,
+ "strokeStyle": "solid",
+ "roughness": 1,
+ "opacity": 100,
+ "angle": 0,
+ "x": 520.8046875,
+ "y": -1.1875,
+ "strokeColor": "#000000",
+ "backgroundColor": "#15aabf",
+ "width": 178,
+ "height": 25,
+ "seed": 1057364558,
+ "groupIds": [],
+ "strokeSharpness": "sharp",
+ "boundElements": [],
+ "updated": 1645713058817,
+ "link": null,
+ "fontSize": 20,
+ "fontFamily": 1,
+ "text": "foo/foo2_test.go",
+ "baseline": 18,
+ "textAlign": "center",
+ "verticalAlign": "middle",
+ "containerId": "HzjwDEtdpACOtsMXQz4qR",
+ "originalText": "foo/foo2_test.go"
+ },
+ {
+ "type": "text",
+ "version": 173,
+ "versionNonce": 600343822,
+ "isDeleted": false,
+ "id": "iI9z1qPn6RQpZWPzVundB",
+ "fillStyle": "hachure",
+ "strokeWidth": 1,
+ "strokeStyle": "solid",
+ "roughness": 1,
+ "opacity": 100,
+ "angle": 0,
+ "x": 522,
+ "y": -88.83984375,
+ "strokeColor": "#000000",
+ "backgroundColor": "#15aabf",
+ "width": 178,
+ "height": 25,
+ "seed": 1192322126,
+ "groupIds": [],
+ "strokeSharpness": "sharp",
+ "boundElements": [],
+ "updated": 1645713058817,
+ "link": null,
+ "fontSize": 20,
+ "fontFamily": 1,
+ "text": "foo/foo_test.go",
+ "baseline": 18,
+ "textAlign": "center",
+ "verticalAlign": "middle",
+ "containerId": "nG82Pemyxdap8-2WgkNKA",
+ "originalText": "foo/foo_test.go"
+ },
+ {
+ "type": "text",
+ "version": 268,
+ "versionNonce": 449885006,
+ "isDeleted": false,
+ "id": "YXVK7QXRiUHU6OoO9Za9x",
+ "fillStyle": "hachure",
+ "strokeWidth": 1,
+ "strokeStyle": "solid",
+ "roughness": 1,
+ "opacity": 100,
+ "angle": 0,
+ "x": 726.36328125,
+ "y": -42.26171875,
+ "strokeColor": "#000000",
+ "backgroundColor": "#15aabf",
+ "width": 130,
+ "height": 20,
+ "seed": 1377802510,
+ "groupIds": [],
+ "strokeSharpness": "sharp",
+ "boundElements": [],
+ "updated": 1645713058817,
+ "link": null,
+ "fontSize": 16,
+ "fontFamily": 1,
+ "text": "GoTestGenTest",
+ "baseline": 14,
+ "textAlign": "left",
+ "verticalAlign": "top",
+ "containerId": null,
+ "originalText": "GoTestGenTest"
+ },
+ {
+ "type": "arrow",
+ "version": 1022,
+ "versionNonce": 1044476050,
+ "isDeleted": false,
+ "id": "FCxo6QVHjz9QekO1fdHyI",
+ "fillStyle": "hachure",
+ "strokeWidth": 1,
+ "strokeStyle": "solid",
+ "roughness": 1,
+ "opacity": 100,
+ "angle": 0,
+ "x": 1289.5767145302918,
+ "y": 137.09954174565226,
+ "strokeColor": "#000000",
+ "backgroundColor": "#82c91e",
+ "width": 43.02415574638144,
+ "height": 37.753945950207225,
+ "seed": 789481298,
+ "groupIds": [],
+ "strokeSharpness": "round",
+ "boundElements": [],
+ "updated": 1645713058817,
+ "link": null,
+ "startBinding": {
+ "elementId": "lAKw58pfZT2qHbLfCcLdZ",
+ "focus": -0.4006325045780303,
+ "gap": 11.713433280291838
+ },
+ "endBinding": {
+ "elementId": "CIn87cWj794-yqk1m35z0",
+ "focus": 0.009231708544778436,
+ "gap": 10.763699804140515
+ },
+ "lastCommittedPoint": null,
+ "startArrowhead": null,
+ "endArrowhead": "arrow",
+ "points": [
+ [
+ 0,
+ 0
+ ],
+ [
+ 43.02415574638144,
+ 37.753945950207225
+ ]
+ ]
+ },
+ {
+ "type": "text",
+ "version": 76,
+ "versionNonce": 1792110098,
+ "isDeleted": false,
+ "id": "vfq9_DBY27vVxH1CzgHiN",
+ "fillStyle": "hachure",
+ "strokeWidth": 1,
+ "strokeStyle": "solid",
+ "roughness": 1,
+ "opacity": 100,
+ "angle": 0,
+ "x": 1297.51171875,
+ "y": 122.25390625,
+ "strokeColor": "#000000",
+ "backgroundColor": "#82c91e",
+ "width": 113,
+ "height": 25,
+ "seed": 1564226382,
+ "groupIds": [],
+ "strokeSharpness": "sharp",
+ "boundElements": [
+ {
+ "id": "T25vTTdMzWQ99VJDhDnIr",
+ "type": "arrow"
+ }
+ ],
+ "updated": 1645713173348,
+ "link": null,
+ "fontSize": 20,
+ "fontFamily": 1,
+ "text": "TestRunner",
+ "baseline": 18,
+ "textAlign": "left",
+ "verticalAlign": "top",
+ "containerId": null,
+ "originalText": "TestRunner"
+ },
+ {
+ "type": "rectangle",
+ "version": 85,
+ "versionNonce": 451071506,
+ "isDeleted": false,
+ "id": "1LuXAqePsPIRHC1KSeWe6",
+ "fillStyle": "hachure",
+ "strokeWidth": 1,
+ "strokeStyle": "solid",
+ "roughness": 1,
+ "opacity": 100,
+ "angle": 0,
+ "x": 679.86328125,
+ "y": -263.30078125,
+ "strokeColor": "#000000",
+ "backgroundColor": "#ced4da",
+ "width": 128.14453125,
+ "height": 71.30859375,
+ "seed": 2134387474,
+ "groupIds": [],
+ "strokeSharpness": "sharp",
+ "boundElements": [
+ {
+ "type": "text",
+ "id": "dwSuTduGarUxTROMpgTP0"
+ },
+ {
+ "id": "w_ofYLqxsnoxd7X07Ob-e",
+ "type": "arrow"
+ },
+ {
+ "id": "vKbHoIFobYKpPbfLap6ot",
+ "type": "arrow"
+ },
+ {
+ "id": "D1sm8V-f_lwosorRMX2Pj",
+ "type": "arrow"
+ }
+ ],
+ "updated": 1645713113412,
+ "link": null
+ },
+ {
+ "type": "rectangle",
+ "version": 188,
+ "versionNonce": 1893353554,
+ "isDeleted": false,
+ "id": "r9bJymnryIHCkuEfO52Bs",
+ "fillStyle": "hachure",
+ "strokeWidth": 1,
+ "strokeStyle": "solid",
+ "roughness": 1,
+ "opacity": 100,
+ "angle": 0,
+ "x": 1405.390625,
+ "y": -51.140625,
+ "strokeColor": "#000000",
+ "backgroundColor": "#ced4da",
+ "width": 128.14453125,
+ "height": 71.30859375,
+ "seed": 1928682574,
+ "groupIds": [],
+ "strokeSharpness": "sharp",
+ "boundElements": [
+ {
+ "id": "yboxncedTfOgppKE1YKqS",
+ "type": "text"
+ },
+ {
+ "id": "w_ofYLqxsnoxd7X07Ob-e",
+ "type": "arrow"
+ },
+ {
+ "id": "vKbHoIFobYKpPbfLap6ot",
+ "type": "arrow"
+ },
+ {
+ "id": "D1sm8V-f_lwosorRMX2Pj",
+ "type": "arrow"
+ },
+ {
+ "type": "text",
+ "id": "yboxncedTfOgppKE1YKqS"
+ },
+ {
+ "id": "T25vTTdMzWQ99VJDhDnIr",
+ "type": "arrow"
+ }
+ ],
+ "updated": 1645713173348,
+ "link": null
+ },
+ {
+ "type": "text",
+ "version": 15,
+ "versionNonce": 613654994,
+ "isDeleted": false,
+ "id": "dwSuTduGarUxTROMpgTP0",
+ "fillStyle": "hachure",
+ "strokeWidth": 1,
+ "strokeStyle": "solid",
+ "roughness": 1,
+ "opacity": 100,
+ "angle": 0,
+ "x": 684.86328125,
+ "y": -240.146484375,
+ "strokeColor": "#000000",
+ "backgroundColor": "#ced4da",
+ "width": 118,
+ "height": 25,
+ "seed": 346104078,
+ "groupIds": [],
+ "strokeSharpness": "sharp",
+ "boundElements": [],
+ "updated": 1645713058817,
+ "link": null,
+ "fontSize": 20,
+ "fontFamily": 1,
+ "text": "rules_go",
+ "baseline": 18,
+ "textAlign": "center",
+ "verticalAlign": "middle",
+ "containerId": "1LuXAqePsPIRHC1KSeWe6",
+ "originalText": "rules_go"
+ },
+ {
+ "type": "text",
+ "version": 121,
+ "versionNonce": 1757596366,
+ "isDeleted": false,
+ "id": "yboxncedTfOgppKE1YKqS",
+ "fillStyle": "hachure",
+ "strokeWidth": 1,
+ "strokeStyle": "solid",
+ "roughness": 1,
+ "opacity": 100,
+ "angle": 0,
+ "x": 1410.390625,
+ "y": -27.986328125,
+ "strokeColor": "#000000",
+ "backgroundColor": "#ced4da",
+ "width": 118,
+ "height": 25,
+ "seed": 1725421458,
+ "groupIds": [],
+ "strokeSharpness": "sharp",
+ "boundElements": [],
+ "updated": 1645713148919,
+ "link": null,
+ "fontSize": 20,
+ "fontFamily": 1,
+ "text": "bazel",
+ "baseline": 18,
+ "textAlign": "center",
+ "verticalAlign": "middle",
+ "containerId": "r9bJymnryIHCkuEfO52Bs",
+ "originalText": "bazel"
+ },
+ {
+ "type": "arrow",
+ "version": 258,
+ "versionNonce": 1238989906,
+ "isDeleted": false,
+ "id": "w_ofYLqxsnoxd7X07Ob-e",
+ "fillStyle": "hachure",
+ "strokeWidth": 1,
+ "strokeStyle": "solid",
+ "roughness": 1,
+ "opacity": 100,
+ "angle": 0,
+ "x": 755.69140625,
+ "y": -178.3203125,
+ "strokeColor": "#000000",
+ "backgroundColor": "#ced4da",
+ "width": 59.74609375,
+ "height": 105.75,
+ "seed": 1707389710,
+ "groupIds": [],
+ "strokeSharpness": "round",
+ "boundElements": [],
+ "updated": 1645713086452,
+ "link": null,
+ "startBinding": {
+ "elementId": "1LuXAqePsPIRHC1KSeWe6",
+ "focus": -0.010816189231700723,
+ "gap": 13.671875
+ },
+ "endBinding": null,
+ "lastCommittedPoint": null,
+ "startArrowhead": null,
+ "endArrowhead": "arrow",
+ "points": [
+ [
+ 0,
+ 0
+ ],
+ [
+ 34.55078125,
+ 35.0859375
+ ],
+ [
+ 59.74609375,
+ 105.75
+ ]
+ ]
+ },
+ {
+ "type": "arrow",
+ "version": 317,
+ "versionNonce": 2104161234,
+ "isDeleted": false,
+ "id": "vKbHoIFobYKpPbfLap6ot",
+ "fillStyle": "hachure",
+ "strokeWidth": 1,
+ "strokeStyle": "solid",
+ "roughness": 1,
+ "opacity": 100,
+ "angle": 0,
+ "x": 823.015625,
+ "y": -236.16796875,
+ "strokeColor": "#000000",
+ "backgroundColor": "#ced4da",
+ "width": 336.3125,
+ "height": 212.578125,
+ "seed": 569428686,
+ "groupIds": [],
+ "strokeSharpness": "round",
+ "boundElements": [],
+ "updated": 1645713082596,
+ "link": null,
+ "startBinding": {
+ "elementId": "1LuXAqePsPIRHC1KSeWe6",
+ "focus": -0.43784332036864043,
+ "gap": 15.0078125
+ },
+ "endBinding": {
+ "elementId": "AVQpPcZ2l6tF482laHpQm",
+ "focus": 0.6528077547726024,
+ "gap": 9.359375
+ },
+ "lastCommittedPoint": null,
+ "startArrowhead": null,
+ "endArrowhead": "arrow",
+ "points": [
+ [
+ 0,
+ 0
+ ],
+ [
+ 336.3125,
+ 46.7265625
+ ],
+ [
+ 261.6328125,
+ 212.578125
+ ]
+ ]
+ },
+ {
+ "type": "arrow",
+ "version": 378,
+ "versionNonce": 11265870,
+ "isDeleted": false,
+ "id": "EhfI59NuUjCxo0OQ-WWmc",
+ "fillStyle": "hachure",
+ "strokeWidth": 1,
+ "strokeStyle": "solid",
+ "roughness": 1,
+ "opacity": 100,
+ "angle": 0,
+ "x": 827.53125,
+ "y": -236.5078125,
+ "strokeColor": "#000000",
+ "backgroundColor": "#ced4da",
+ "width": 356.58984375,
+ "height": 335.14453125,
+ "seed": 831391054,
+ "groupIds": [],
+ "strokeSharpness": "round",
+ "boundElements": [],
+ "updated": 1645713068336,
+ "link": null,
+ "startBinding": null,
+ "endBinding": null,
+ "lastCommittedPoint": null,
+ "startArrowhead": null,
+ "endArrowhead": "arrow",
+ "points": [
+ [
+ 0,
+ 0
+ ],
+ [
+ 356.58984375,
+ 64.0078125
+ ],
+ [
+ 257.359375,
+ 335.14453125
+ ]
+ ]
+ },
+ {
+ "type": "arrow",
+ "version": 332,
+ "versionNonce": 1017082894,
+ "isDeleted": false,
+ "id": "D1sm8V-f_lwosorRMX2Pj",
+ "fillStyle": "hachure",
+ "strokeWidth": 1,
+ "strokeStyle": "solid",
+ "roughness": 1,
+ "opacity": 100,
+ "angle": 0,
+ "x": 674.66015625,
+ "y": -215.19140625,
+ "strokeColor": "#000000",
+ "backgroundColor": "#ced4da",
+ "width": 321.421875,
+ "height": 365.08203125,
+ "seed": 138331282,
+ "groupIds": [],
+ "strokeSharpness": "round",
+ "boundElements": [],
+ "updated": 1645713128638,
+ "link": null,
+ "startBinding": {
+ "elementId": "1LuXAqePsPIRHC1KSeWe6",
+ "focus": 0.32892188879970596,
+ "gap": 5.203125
+ },
+ "endBinding": {
+ "elementId": "y92Fllrdc8UjAmzlSayru",
+ "focus": -0.15040918803524012,
+ "gap": 9.5078125
+ },
+ "lastCommittedPoint": null,
+ "startArrowhead": null,
+ "endArrowhead": "arrow",
+ "points": [
+ [
+ 0,
+ 0
+ ],
+ [
+ -282.72265625,
+ 141.84375
+ ],
+ [
+ -206.94921875,
+ 313.4375
+ ],
+ [
+ -1.6015625,
+ 310.97265625
+ ],
+ [
+ 38.69921875,
+ 365.08203125
+ ]
+ ]
+ },
+ {
+ "type": "text",
+ "version": 8,
+ "versionNonce": 711435730,
+ "isDeleted": false,
+ "id": "KXmw08eClY3U80eoCvnKG",
+ "fillStyle": "hachure",
+ "strokeWidth": 1,
+ "strokeStyle": "solid",
+ "roughness": 1,
+ "opacity": 100,
+ "angle": 0,
+ "x": 1014.6796875,
+ "y": -247.97265625,
+ "strokeColor": "#000000",
+ "backgroundColor": "#ced4da",
+ "width": 58,
+ "height": 25,
+ "seed": 221048654,
+ "groupIds": [],
+ "strokeSharpness": "sharp",
+ "boundElements": [],
+ "updated": 1645713156598,
+ "link": null,
+ "fontSize": 20,
+ "fontFamily": 1,
+ "text": "define",
+ "baseline": 18,
+ "textAlign": "left",
+ "verticalAlign": "top",
+ "containerId": null,
+ "originalText": "define"
+ },
+ {
+ "type": "text",
+ "version": 54,
+ "versionNonce": 1449559442,
+ "isDeleted": false,
+ "id": "eAX_6DUdXn9173u5Un7rK",
+ "fillStyle": "hachure",
+ "strokeWidth": 1,
+ "strokeStyle": "solid",
+ "roughness": 1,
+ "opacity": 100,
+ "angle": 0,
+ "x": 807.55078125,
+ "y": -153.86328125,
+ "strokeColor": "#000000",
+ "backgroundColor": "#ced4da",
+ "width": 58,
+ "height": 25,
+ "seed": 728211086,
+ "groupIds": [],
+ "strokeSharpness": "sharp",
+ "boundElements": [],
+ "updated": 1645713162666,
+ "link": null,
+ "fontSize": 20,
+ "fontFamily": 1,
+ "text": "define",
+ "baseline": 18,
+ "textAlign": "left",
+ "verticalAlign": "top",
+ "containerId": null,
+ "originalText": "define"
+ },
+ {
+ "type": "text",
+ "version": 148,
+ "versionNonce": 1772837266,
+ "isDeleted": false,
+ "id": "dOH_fQDVLWiPkKb9Xa7dh",
+ "fillStyle": "hachure",
+ "strokeWidth": 1,
+ "strokeStyle": "solid",
+ "roughness": 1,
+ "opacity": 100,
+ "angle": 0,
+ "x": 493.55859375,
+ "y": -193.875,
+ "strokeColor": "#000000",
+ "backgroundColor": "#ced4da",
+ "width": 58,
+ "height": 25,
+ "seed": 224121998,
+ "groupIds": [],
+ "strokeSharpness": "sharp",
+ "boundElements": [],
+ "updated": 1645713166649,
+ "link": null,
+ "fontSize": 20,
+ "fontFamily": 1,
+ "text": "define",
+ "baseline": 18,
+ "textAlign": "left",
+ "verticalAlign": "top",
+ "containerId": null,
+ "originalText": "define"
+ },
+ {
+ "type": "arrow",
+ "version": 60,
+ "versionNonce": 697733522,
+ "isDeleted": false,
+ "id": "T25vTTdMzWQ99VJDhDnIr",
+ "fillStyle": "hachure",
+ "strokeWidth": 1,
+ "strokeStyle": "solid",
+ "roughness": 1,
+ "opacity": 100,
+ "angle": 0,
+ "x": 1418.390625,
+ "y": 29.76953125,
+ "strokeColor": "#000000",
+ "backgroundColor": "#ced4da",
+ "width": 65,
+ "height": 86.36328125,
+ "seed": 1643009874,
+ "groupIds": [],
+ "strokeSharpness": "round",
+ "boundElements": [],
+ "updated": 1645713175795,
+ "link": null,
+ "startBinding": {
+ "elementId": "r9bJymnryIHCkuEfO52Bs",
+ "focus": 0.18712696022442354,
+ "gap": 9.6015625
+ },
+ "endBinding": {
+ "elementId": "vfq9_DBY27vVxH1CzgHiN",
+ "focus": -0.22206696232341916,
+ "gap": 6.12109375
+ },
+ "lastCommittedPoint": null,
+ "startArrowhead": null,
+ "endArrowhead": "arrow",
+ "points": [
+ [
+ 0,
+ 0
+ ],
+ [
+ -65,
+ 86.36328125
+ ]
+ ]
+ },
+ {
+ "type": "text",
+ "version": 8,
+ "versionNonce": 592105870,
+ "isDeleted": false,
+ "id": "_CGSnNAmoyvhmYlw0czhG",
+ "fillStyle": "hachure",
+ "strokeWidth": 1,
+ "strokeStyle": "solid",
+ "roughness": 1,
+ "opacity": 100,
+ "angle": 0,
+ "x": 1403.6796875,
+ "y": 61.02734375,
+ "strokeColor": "#000000",
+ "backgroundColor": "#ced4da",
+ "width": 58,
+ "height": 25,
+ "seed": 1873973074,
+ "groupIds": [],
+ "strokeSharpness": "sharp",
+ "boundElements": [],
+ "updated": 1645713178113,
+ "link": null,
+ "fontSize": 20,
+ "fontFamily": 1,
+ "text": "define",
+ "baseline": 18,
+ "textAlign": "left",
+ "verticalAlign": "top",
+ "containerId": null,
+ "originalText": "define"
+ }
+ ],
+ "appState": {
+ "gridSize": null,
+ "viewBackgroundColor": "#ffffff"
+ },
+ "files": {}
+} \ No newline at end of file
diff --git a/docs/go/core/buildgraph.svg b/docs/go/core/buildgraph.svg
new file mode 100644
index 00000000..94f421cb
--- /dev/null
+++ b/docs/go/core/buildgraph.svg
@@ -0,0 +1,16 @@
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1170.8339597452318 847.7899602480144" width="3512.5018792356955" height="2543.3698807440433">
+ <!-- svg-source:excalidraw -->
+
+ <defs>
+ <style>
+ @font-face {
+ font-family: "Virgil";
+ src: url("https://excalidraw.com/Virgil.woff2");
+ }
+ @font-face {
+ font-family: "Cascadia";
+ src: url("https://excalidraw.com/Cascadia.woff2");
+ }
+ </style>
+ </defs>
+ <rect x="0" y="0" width="1170.8339597452318" height="847.7899602480144" fill="#ffffff"></rect><g stroke-linecap="round"><g stroke-opacity="0.4" fill-opacity="0.4" transform="translate(759.4062253702319 510.134765625) rotate(0 -261.53375054819287 164.1503600487441)" fill-rule="evenodd"><path d="M-699.61 186.84 C-699.61 186.84, -699.61 186.84, -699.61 186.84 M-699.61 186.84 C-699.61 186.84, -699.61 186.84, -699.61 186.84 M-709.65 205.92 C-706.5 199.12, -700.95 192.94, -688.44 181.04 M-710.85 206.3 C-705.48 199.52, -700.64 194.55, -687.79 179.88 M-713.5 213.61 C-704.2 202.48, -696.03 190.85, -680.21 172.8 M-712.72 214.96 C-700.86 201.21, -688.38 185.4, -679 173.77 M-715.23 221.48 C-704.12 209.85, -692.86 197.64, -665.59 166.06 M-713.3 220.5 C-697.8 203.76, -682.05 186.53, -667.06 168.32 M-712.23 226.14 C-694.67 206.85, -678.21 186.88, -662.09 166.98 M-711.4 225.21 C-694.8 205.22, -679.01 187.2, -660.36 166.85 M-712.94 230.97 C-690.9 206.15, -671.82 182.62, -655.4 164.31 M-711.89 231.03 C-693.6 210.09, -675.35 189.35, -652.74 164.82 M-709.7 234.68 C-695.42 218.91, -683.17 205.28, -647.06 165.19 M-710.07 236.09 C-686.74 210.36, -663.71 182.28, -649.59 164.64 M-708.61 239.35 C-693.98 220.93, -674.95 200.41, -641.34 165.02 M-707.99 239.69 C-695.41 223.33, -681.46 206.61, -642.28 163.53 M-708.94 242.59 C-687.21 223.31, -666.99 198.41, -636.48 164.91 M-707.32 244.47 C-687.31 223.32, -669.7 200.57, -637.8 163.93 M-704.46 247.74 C-685.89 222.25, -663.04 198.55, -633.44 164.89 M-705.16 247.51 C-687.98 228.48, -670.41 209.19, -631.02 162.67 M-704.85 254.26 C-684.18 228.58, -660.37 203.96, -626.58 163.58 M-702.91 252.79 C-673.83 219.1, -645.71 187.27, -625.81 161.59 M-702.32 257.48 C-673.77 224.89, -643.66 192.19, -618.98 162.89 M-701.37 255.8 C-684.12 236.18, -666.8 215.54, -619.85 162.24 M-699.04 260.75 C-668.16 222.86, -635.12 184.51, -613.2 163.17 M-699.62 259.72 C-672.15 225.21, -642.65 193.33, -613.83 162 M-698.38 264.39 C-677.5 237.58, -654 216.44, -605.9 159.19 M-696.74 263.35 C-663.99 226.42, -632.25 187.25, -607.59 159.99 M-695.71 264.62 C-661.24 228.81, -632.57 191.89, -600.52 162.07 M-694.1 265.97 C-673.65 241.14, -651.66 216.01, -603.22 160.04 M-691.72 268.25 C-664.59 238.53, -641.92 208.64, -596.06 160.44 M-691.1 269.02 C-660.17 232, -626.31 195.11, -597.31 159.72 M-686.4 271.88 C-656.7 235.35, -621.58 195.57, -592.32 159.16 M-688.65 271.25 C-667.39 245.26, -644.72 221.05, -590.71 160.13 M-683.77 275.31 C-651.31 237.65, -620.83 200.03, -586.01 160.24 M-684.39 273.15 C-650.73 233.69, -614.71 195.58, -586.04 158.71 M-681.24 276.02 C-656.71 248.61, -632.02 221.89, -582.03 159.29 M-681.45 277.3 C-651.5 241.46, -621.93 207.14, -579.5 158.7 M-680.25 280.81 C-641.79 236.61, -604.19 193.05, -575.57 160.18 M-679.66 279.1 C-654.59 251.45, -629.44 222.51, -574.39 159.76 M-675.02 283.5 C-640.79 240.84, -605.42 199.15, -570.73 159.26 M-675.65 282.36 C-643.24 246.27, -611.39 210.15, -568.24 159.18 M-671.18 284.67 C-637.82 246.14, -607.4 207.99, -562.57 160.05 M-672.05 284 C-648.01 258.24, -625.35 230.86, -564.27 158.45 M-669.85 284.49 C-641.12 254.61, -615.53 224.16, -557.11 158.38 M-668.98 286.93 C-635.98 246.32, -601.77 207.65, -557.96 159.53 M-664.24 288.79 C-627.71 243.79, -588.91 196.16, -553.42 157.12 M-665.17 286.99 C-626.58 244.54, -588.16 198.73, -552.48 157.38 M-662.44 288.38 C-635.53 257.26, -608.48 227.28, -546.19 158.37 M-662.14 290.3 C-626.18 248.91, -591.41 209.87, -547.84 157.22 M-658.71 291.57 C-624.46 256.47, -593.62 218.8, -539.22 157.36 M-658.01 290.73 C-629.31 260.72, -600.78 227.47, -541.78 156.38 M-654.17 293.79 C-621.51 254.89, -588.31 216.25, -535.94 158.71 M-653.69 293.51 C-624.15 259.49, -592.62 225.35, -536.81 157.49 M-651.52 297.34 C-613.36 250.4, -576.07 209.98, -530.29 159.26 M-650.01 295.9 C-606.71 245.18, -564.02 196.55, -530.49 157.35 M-647.03 296.28 C-599.4 242.46, -552.96 190.44, -525.28 156.35 M-647.21 296.11 C-617.45 263.57, -588.73 230.71, -524.53 156.1 M-643.9 299.16 C-606.03 255.1, -565.97 211.13, -519.02 158.97 M-642.73 298.94 C-602.35 254.52, -564.32 208.83, -520.25 156.4 M-640.32 301.42 C-610.51 266.5, -584.03 232.56, -514.8 158.19 M-638.8 300.18 C-596.16 252.78, -555.31 204.16, -515.14 156.8 M-632.74 302.33 C-591.41 251.77, -551.84 200.13, -511.04 158.89 M-634.14 300.55 C-586.97 244.47, -540.13 191.58, -510.26 157.44 M-629.98 303.71 C-580.19 245.4, -531.67 190.55, -503.38 158.12 M-629.54 302.31 C-590.39 256.5, -553.24 210.6, -504.84 157.4 M-624.52 302.34 C-590.86 261.66, -555.13 219.5, -499.31 157.11 M-625.64 302.71 C-579.98 249.43, -532.14 196.43, -498.35 156.65 M-621.24 303.65 C-580.16 256.7, -537.46 208.43, -494.87 159.21 M-621.1 303.61 C-574.37 250.24, -528.52 196.49, -493.65 156.93 M-616.06 305.41 C-582.33 264.71, -544.96 224.46, -486.73 158.24 M-617.74 304.15 C-570.85 253.15, -525.9 200.6, -488.58 156.19 M-612.64 307.44 C-570.64 254.85, -526.82 207.2, -484.09 156.28 M-612.73 306.44 C-565.02 250.82, -517.34 196.8, -484.32 157.21 M-607.8 305.73 C-578.62 275.15, -547.17 242.78, -476.84 156.06 M-606.39 306.63 C-563.66 254.75, -519.56 203.57, -478.96 158.03 M-600.73 307.48 C-572.81 274.03, -547.66 242.2, -472.16 158.88 M-600.99 305.93 C-573.53 275.46, -546.6 243.46, -472.67 156.83 M-598.47 308.71 C-557.75 261.03, -513.4 211.06, -469.19 156.59 M-598.61 307.17 C-570.17 273.9, -541.8 240.9, -467.78 157.87 M-593.25 308.71 C-567.4 276.53, -540.41 245.42, -461.15 157.99 M-591.98 307.25 C-558.03 267.42, -522.81 225.1, -461.35 156.87 M-588.46 309.48 C-544.96 256.27, -503.93 205.76, -457.25 156.56 M-586.89 307.55 C-560.38 276.61, -533.35 245.7, -456.57 158.69 M-581.35 307.21 C-548.27 270.47, -512.51 226.15, -452.79 156.85 M-582.42 309.31 C-537.06 256.51, -491.19 205.03, -451.37 158.71 M-579.63 309.62 C-542.3 265.95, -504.84 222.08, -447.68 158.37 M-578.12 310.01 C-527.58 252.06, -477.39 194.09, -446.48 158.65 M-575.3 311.02 C-519.17 248.88, -466.53 187.33, -439.97 157.92 M-574.59 310.56 C-531.45 260.71, -489.15 210.73, -440.68 157.99 M-569.36 310.09 C-516.16 252.84, -464.88 191.81, -435.67 157.21 M-569.83 311.27 C-520.04 255.87, -471.42 198.97, -435.89 157.34 M-565.13 311.99 C-527.58 267.4, -487.64 222.51, -431.7 157.35 M-563.66 311.62 C-525.95 268.43, -488.07 225.64, -430.59 158.05 M-558.14 311.66 C-517.15 262.94, -472.19 211.19, -426.11 158.78 M-560.39 312.12 C-527.91 275.86, -495.48 238.92, -426.14 158.37 M-556.26 314.54 C-519.71 267.66, -480.81 228.21, -418.93 159.65 M-554.51 313.51 C-526.55 279.08, -495.84 244.46, -420.88 158.09 M-550.3 312.24 C-499.79 257.52, -450.46 200.85, -414.71 159.66 M-549.93 313 C-518.72 276.38, -487.02 240.54, -415.83 158.69 M-544.77 313.89 C-514.36 281.05, -488.26 246.86, -409.64 157.99 M-545.68 314.13 C-501.51 263.72, -455.44 213.17, -409.29 158.7 M-540.5 315.08 C-512.26 282.55, -481.38 248.18, -404.52 157.34 M-540.31 314.42 C-509.41 278.54, -477.32 242.19, -404.04 157.57 M-535.6 314.59 C-485.12 255.24, -433.09 197.38, -399.05 158.32 M-535.98 314.94 C-492.64 267.02, -450.48 219.73, -400.21 158.14 M-529.47 315.38 C-477.77 257.87, -428.9 198.93, -394.32 159.65 M-530.36 316.83 C-495.29 275.14, -459.07 233.94, -393.85 157.94 M-524.96 316.74 C-476.51 258.2, -425.79 199.3, -390.17 160.23 M-525.52 317.01 C-492.22 275.76, -457.57 237.29, -388.77 159.1 M-521.18 319.27 C-490.38 281.39, -457.02 243.28, -384.64 158.83 M-521.09 317.5 C-491.48 285.76, -462.8 251.96, -383.24 159.23 M-517.25 318.35 C-488.19 283.88, -455.55 248.78, -378.19 159.85 M-517.56 318.91 C-466.89 261.71, -417.17 204.35, -378.04 158.08 M-514.02 320.74 C-466.65 266.62, -420.75 213.65, -373.12 158.95 M-513.1 320.18 C-470.06 269.96, -425.26 219.62, -373.75 158.96 M-509.35 320.37 C-472.14 275.92, -437.74 234.04, -367.38 159.15 M-508.97 320.86 C-477.19 284.8, -445.32 248.93, -368.46 159.26 M-502.91 320.95 C-461.32 271.28, -420.94 224.22, -364.19 160.44 M-502.4 319.91 C-465.86 277.35, -428.87 235.96, -363.42 159.47 M-498.1 321.39 C-460.99 276.18, -419.66 232.75, -355.77 157.85 M-498.59 320.37 C-448.38 262.41, -398.58 206.09, -357.65 158.47 M-493.88 322.55 C-448.41 271.58, -402.18 216.54, -353.7 159.37 M-492.44 321.21 C-453.78 275.95, -413.18 229.15, -351.62 159.24 M-488.88 321.69 C-437.83 260.91, -387.23 203.41, -348.17 159.47 M-487.95 322.3 C-451.91 282.23, -416.56 242.8, -347.16 158.91 M-483.76 322.72 C-442.48 278.51, -406.85 231.12, -342.06 160.26 M-483.44 321.42 C-443.25 273.16, -402.52 226.07, -340.81 159.48 M-478.3 323.67 C-445.97 284.4, -415.51 247.4, -337.76 159.55 M-478.77 322.79 C-432.64 271.54, -389.62 220.24, -337.28 160.17 M-473.73 323.43 C-415.95 258.57, -358.8 193.59, -329.67 157.51 M-472.76 321.83 C-428.27 270.73, -384.01 219.51, -331.03 158.81 M-469.89 323.18 C-424.2 270.12, -377.74 219.16, -325.8 158.92 M-468.64 322.39 C-419.15 264.5, -369.31 207.23, -326.51 158.47 M-464.04 322.69 C-434.35 290.14, -403.69 257.81, -319.3 158.93 M-462.81 323.3 C-428.8 284.11, -393.36 245.24, -321.47 160.11 M-458.46 325.2 C-414.66 274.85, -375.05 226.57, -313.74 158.96 M-458.9 323.37 C-419.24 279.14, -380.48 232.66, -315.17 158.46 M-452.33 323.28 C-399.19 260.65, -342.51 194.75, -311.69 160.01 M-453.17 323.65 C-405.12 270.71, -358.99 217.06, -310.48 159.64 M-449.26 324.64 C-397.19 264, -344.93 204.98, -305.58 160.56 M-448.49 323.67 C-390.59 260.43, -334.7 196.28, -305.08 159.1 M-442.94 324.79 C-398.82 273.09, -353.36 223.69, -300.86 160.63 M-443.88 326.26 C-406.71 282.73, -367.96 238.77, -300.32 159.45 M-439.43 326.31 C-394.12 273.29, -349.95 222.88, -292.94 159.69 M-438.95 325.49 C-394.84 275.07, -350.57 223.7, -294.17 160.59 M-435.61 325.81 C-390.42 276.2, -345.59 223.4, -290.55 160.36 M-433.67 325.74 C-388.27 276.52, -345.78 225.83, -288.51 159.93 M-427.63 326.19 C-387.96 277.92, -346.46 232.25, -285.4 160.03 M-429.27 326.16 C-394.94 285.87, -361.35 247.54, -283.42 160.43 M-424.22 326.75 C-367.09 262.67, -311.13 197.93, -279.3 160.89 M-424.77 327.23 C-375.03 268.63, -323.56 211.97, -277.97 159.79 M-418.96 327.37 C-383.56 287.56, -346.47 246.32, -274.53 158.38 M-418.19 326.26 C-375.31 278.18, -333.59 229.86, -272.96 160.56 M-412.56 327.78 C-365.38 273.28, -316.61 214.91, -269.72 161.61 M-413.59 327.87 C-378.14 285.91, -343.13 246.47, -268.2 161.09 M-409.46 327.95 C-369.1 280.91, -327.81 237.39, -264.22 160.72 M-408.63 327.06 C-352.64 259.63, -293.9 193.98, -262.06 160.04 M-402.07 327.4 C-372.04 291.31, -342.02 258.83, -257.22 161.78 M-403.45 328.36 C-360.75 278.19, -317.16 227.65, -256.96 160.17 M-398.35 329.34 C-359.98 279.49, -319.04 234.27, -252.3 160.46 M-398.31 327.54 C-346.72 267.05, -295.23 207.59, -252.39 160.09 M-393.02 330.04 C-362.37 290.04, -329.47 253.36, -246.09 159.89 M-392.94 327.62 C-341.18 267.76, -289.67 207.25, -246.79 160.01 M-388.26 326.46 C-348.52 281.61, -308.81 236.85, -243.22 161.67 M-387.73 327.58 C-330.59 262.17, -273.1 195.89, -242.61 160.52 M-381.34 329.32 C-337.7 278.8, -295.01 227.06, -238.2 159.22 M-382.17 327.57 C-332.15 271.91, -280.85 214.4, -236.35 159.34 M-378.59 328.99 C-328.68 276.24, -280.28 220.94, -230 160.52 M-377.92 329.33 C-345.11 291.41, -310.28 252.06, -231.82 161.07 M-372.69 329.29 C-328.57 279.23, -281.48 225.79, -225.04 160.05 M-372.15 329.4 C-328.61 279.22, -283.68 226.29, -225.4 159.52 M-365.46 329.42 C-335.13 291.39, -303.51 257.35, -220.5 161.9 M-365.96 328.61 C-309.63 261.86, -254.13 196.95, -220.86 159.87 M-360.99 328.99 C-303.1 262.98, -245.38 195.02, -214.24 162.07 M-361.46 327.62 C-310.93 270.1, -259.68 211.37, -216.31 160.96 M-357.5 326.88 C-309.71 273.44, -260.84 219.6, -208.98 160.85 M-356.55 327.47 C-313.63 278.6, -271.9 231.7, -210.58 159.92 M-350.34 328.64 C-305.8 278.73, -262.74 230.07, -204.57 159.64 M-350.09 327.44 C-301.62 269.32, -251.03 210.54, -205.39 160.95 M-346.89 328.29 C-289.39 263.76, -234.22 199.16, -201.12 161.1 M-345.96 327.58 C-292.9 269.92, -244.25 212.21, -201.9 162.6 M-340.03 326.92 C-282.74 262.35, -227 197.64, -196.31 163.42 M-340.8 329.13 C-309.96 295.07, -280.81 261.81, -195.91 162.27 M-335.04 329.6 C-282.33 271.78, -235.43 212.37, -189.97 160.15 M-334.79 327.9 C-289.26 277.18, -244.54 226.31, -189.78 162.21 M-329.53 329.95 C-290.02 280.78, -253.78 239.28, -184.44 161.14 M-329.42 327.44 C-272.24 261.92, -215.87 197.22, -185.29 160.85 M-323.39 327.19 C-285.52 282.83, -243.91 238.42, -178.38 159.85 M-324.75 328.29 C-284.02 280.17, -243.27 233.94, -179.72 160.91 M-319.38 328.34 C-265.88 268.89, -212.94 207.36, -174.38 159.08 M-318.76 327.64 C-288.27 294.92, -258.53 259.79, -172.91 160.37 M-315.05 326.47 C-273.76 284.14, -237.62 240.36, -167.38 160.3 M-312.59 328.6 C-269.86 274.76, -222.97 222.49, -168.28 160.03 M-306.85 327.08 C-267.28 281.14, -227.12 232.75, -162.62 158.2 M-308.16 327.76 C-258.06 270.92, -207.54 212.83, -162.53 159.69 M-302.73 326.35 C-254.61 272.8, -207.91 218.36, -157.14 161.14 M-303.04 327.85 C-269.94 291.81, -237.36 254.13, -157.05 158.76 M-298.67 327.2 C-250.22 274.73, -200.41 216.74, -151.48 158.88 M-298.48 328.85 C-251.85 278.56, -209.04 228.51, -151.82 160.14 M-291.23 327.86 C-246.82 275.5, -201.62 226.19, -145.85 160.62 M-292.47 328.51 C-244.12 270.49, -194.67 213.14, -145.46 159.19 M-288.6 327.58 C-232.67 265.45, -178.28 204.44, -140.6 158.9 M-287.8 327.26 C-234.17 268.05, -180.49 207.9, -138.7 157.49 M-281.83 328.99 C-228.44 263.53, -174.13 200.83, -135.08 156.92 M-281.74 327.04 C-249.65 292.92, -219.66 258.14, -133.58 158.27 M1.94 1.69 C1.94 1.69, 1.94 1.69, 1.94 1.69 M1.94 1.69 C1.94 1.69, 1.94 1.69, 1.94 1.69 M-276.29 326.85 C-232.69 275.3, -186.42 225.9, -125.87 157.12 M-275.92 328.9 C-239.42 282.86, -201.05 239.69, -127.59 157.55 M-30.92 44.41 C-18.71 29.59, -6.83 19.03, 5.63 4.65 M-30.61 44.73 C-24.18 37.09, -15.6 27.94, 6.11 3.56 M-271.1 327.67 C-213.2 262.02, -156.76 196.51, 9.62 3.67 M-270.87 327.2 C-178.7 221.27, -87.27 115.08, 10.83 4.08 M-265.3 328.85 C-166.2 212.82, -66.46 97.67, 14.73 5.88 M-265.82 327.64 C-208.53 263.5, -151.52 198.09, 15.11 4.64 M-260.88 328.81 C-200.26 260.91, -140.4 191.37, 20.26 5.68 M-260.49 328.63 C-163.13 215.05, -63.88 101.73, 19.31 6.27 M-255.22 328.8 C-152.83 212.8, -53.08 97.86, 23.63 6.12 M-254.86 327.92 C-173.64 233.96, -92.47 141.36, 24.31 6.93 M-250.08 328.65 C-137.73 202.37, -28.06 75.36, 29.32 8.44 M-249.78 327.86 C-171.93 239.25, -95.25 150.83, 28.33 7.53 M-244.88 328.32 C-141.84 209.32, -39.02 90.72, 33.55 8.3 M-245.71 329.17 C-188.33 262.98, -132.1 197.68, 32.89 8.34 M-239.04 329 C-173.61 255.71, -110.06 183.32, 37.71 8.45 M-239.57 328.77 C-143.58 219.41, -48.85 110.22, 38.17 9.49 M-234.72 328.06 C-178.23 262.3, -121.23 197.7, 41.77 9.26 M-233.97 327.98 C-171.75 258.44, -110.97 188.08, 41.94 9.86 M-228.85 328.31 C-144.24 228.2, -57.11 128.9, 46.92 10.31 M-227.96 327.96 C-122.42 205.21, -15.88 82.4, 46.11 11.41 M-223.7 327.95 C-132.01 222.87, -41.87 117.23, 50.96 11.52 M-222.58 327.64 C-146.12 238.73, -70.77 151.52, 51.5 11.64 M-216.59 325.69 C-141.15 241.4, -66.28 153.94, 55.67 12.99 M-216.61 326.69 C-116.93 213.3, -17.1 98.8, 56.28 12.67 M-212.09 327.13 C-103.49 203.26, 5.25 77.5, 59.61 13.6 M-211.52 325.94 C-142.32 249.73, -74.57 171.27, 59.84 14.34 M-205.08 326.21 C-133.26 240.43, -59.79 158.61, 65.52 15.26 M-206.15 326.06 C-147.13 258.44, -88.9 191.93, 65.62 14.69 M-199.59 326.64 C-107.96 218.29, -15.98 112.11, 69.25 15.22 M-200.6 325.8 C-123.1 239.26, -47.7 152.47, 69.24 15.26 M-193.91 325.5 C-123.66 243.42, -51.89 159.56, 73.17 16.62 M-194.09 324.99 C-91.74 206.02, 11.4 86.86, 73.87 16.99 M-188.64 323.93 C-123.59 246.09, -54.47 169.59, 79.47 16.42 M-188.96 324.99 C-122 248.97, -55.19 172.15, 79.34 16.73 M-182.64 323.73 C-86.52 211.21, 11.65 99.91, 82.24 18.42 M-182.99 324.05 C-95.09 224.95, -8.23 123.91, 82.88 17.62 M-176.74 324.99 C-94.67 229.86, -13.63 138.07, 86.54 18.63 M-177.8 324.31 C-98.25 235.04, -19.78 144.83, 87.38 18.86 M-171.93 324.7 C-94.3 236.22, -16.76 146.7, 91.65 18.46 M-172.28 323.84 C-67.95 203.5, 36.45 83.69, 92.13 19.42 M-168.31 325.6 C-103.79 249.44, -37.4 174.76, 97.61 21.28 M-168.52 325.97 C-84.38 229.65, -2.69 133.78, 96.33 20.1 M-161.47 325.07 C-89.09 238.54, -12.81 154.23, 100.9 20.94 M-162.28 324.79 C-72.45 223.66, 16.93 121.42, 101.24 21.63 M-156.17 324.83 C-79.06 236.3, -3.32 149.11, 105.6 22.98 M-155.8 324.39 C-93.8 252.28, -31.73 181.39, 105.92 22.26 M-150.4 322.77 C-95.64 259.13, -40.35 195.89, 111.56 23.43 M-150.62 323.93 C-96.83 259.22, -42.43 196.44, 110.86 21.85 M-145.39 321.88 C-83.4 250.25, -21.35 182.21, 115.31 24.05 M-144.24 322.57 C-50.74 215.09, 42.42 107.1, 115.85 23.61 M-136.21 319.09 C-65.87 239.03, 1.97 160.39, 118.88 23.84 M-136.35 318.47 C-67.09 240.54, 1.01 163.23, 119.46 25 M-130.69 318.72 C-43.92 219.6, 42.17 119.19, 123 24.66 M-129.67 318.35 C-69.19 249.91, -10.75 182.11, 123.84 25.42 M-122.43 315.89 C-55.72 240.18, 13.06 163.6, 127.77 28.69 M-123.55 316.23 C-57.53 239.63, 8.44 162.19, 127.21 27.91 M-116.72 314.93 C-55.33 244.62, 7.36 174.69, 132.55 29.27 M-116.66 315.84 C-30.43 216.88, 55 118.96, 132.15 28.83 M-110.03 313.92 C-24.15 215.2, 60.4 116.2, 137.48 29.42 M-111.02 313.9 C-21.59 211.09, 68.87 106.91, 136.27 29.83 M-103.45 313.98 C-36 235.31, 30.99 159.21, 140.94 30.46 M-104.33 313.68 C-45.67 245.81, 14.3 178.03, 140.71 31.14 M-97.79 312.28 C-32.57 237.09, 30.87 160.55, 144.53 32.47 M-97.83 310.79 C-39.98 246.76, 16.69 181.2, 145.18 32.64 M-90.38 309.74 C-20.05 225.76, 52.03 144.61, 149.64 33.61 M-91.15 309.92 C-35.56 247.79, 18.84 184.82, 148.41 34.44 M-83.91 310.1 C-9.16 221.92, 66.58 133.72, 153.41 34.3 M-84.55 309.15 C-10.13 220.33, 66.25 132.7, 152.55 35.48 M-78.37 307.77 C-11.92 229.4, 54.28 151.63, 156.69 35.37 M-78.63 308.26 C-18.82 240.24, 40.99 171.56, 157.9 36.61 M-75.91 308.66 C-26.65 254, 22.31 197.23, 162.02 38.16 M-75.07 309.49 C19.99 201.76, 113.35 94.13, 161.61 37.49 M-68.17 306.36 C16.96 209.02, 100.99 113.09, 163.67 39.63 M-66.83 306.99 C-17.95 250.46, 32.08 193.2, 164.57 40.66 M-59.54 304.1 C21 211.59, 104.52 115.66, 166.79 41.71 M-59.86 304.87 C-9.24 244.79, 41.66 186.16, 167.47 42.32 M-50.04 300.24 C24.88 212.21, 102.16 123.45, 171.18 43.3 M-51.03 300.88 C10.65 231.56, 70.57 161.89, 171.38 44.87 M-43.1 296.43 C9.3 234.25, 64.19 173.83, 174.5 47.51 M-43.24 296.97 C15.69 228.08, 75.02 159.68, 175.69 46.43 M-34.54 293.52 C10.42 243.13, 53.65 194.03, 179.14 47.41 M-34.98 293.37 C32.86 213.76, 102.7 135.17, 178.53 48.04 M-25.09 289.6 C21.39 235.47, 66.67 180.64, 181.69 50.97 M-25.7 290.59 C18.7 238.76, 63.77 188.43, 182.2 50.91 M-16.46 284.19 C63.21 192.54, 144.31 101.44, 184.78 53.43 M-16.23 284.64 C49.91 210.24, 115.1 134.57, 184.83 54.54 M-6.35 277.82 C57.58 208.35, 118.02 136.99, 187.43 55.62 M-6.25 279.15 C33.29 232.09, 72.72 185.79, 186.97 56.43 M4.29 273.69 C70.01 198.68, 134.1 124.87, 188.51 62.32 M5.22 273.43 C77.99 188.14, 151.65 103.62, 188.56 61.53 M18.9 260.97 C60.47 214.85, 103.02 167.58, 191.57 65.1 M19.05 262 C59.77 215.46, 98.74 169.85, 190.26 64.8 M35.88 251.84 C92.58 188.52, 146.3 122.57, 191.48 72.48 M33.52 251.1 C79.17 198.4, 124.19 146.59, 189.58 72.09 M48.09 239.33 C97.27 183.53, 149.13 127.38, 190.43 74.21 M48.39 240.02 C99.33 180.83, 150.51 121.5, 192.61 76.14 M61.56 228.56 C101.27 187.97, 137.43 142.26, 186.55 86.66 M63.02 230.86 C102.76 186.51, 142.25 142.34, 186.94 86.78 M88.43 209.78 C113.53 174.43, 144.07 141.41, 182.14 97.18 M86.79 207.52 C112.09 178.25, 137.05 150.13, 182.05 98.83" stroke="#fd7e14" stroke-width="0.5" fill="none"></path><path d="M0.4 0.65 C-16.37 21.85, -68.87 100.93, -99.47 127.26 C-130.07 153.59, -88.64 151.74, -183.2 158.62 C-277.77 165.5, -592.87 144.97, -666.85 168.53 C-740.83 192.09, -725.31 276.89, -627.08 300 C-528.86 323.1, -213.69 345.04, -77.51 307.16 C58.68 269.28, 177.05 123.74, 190.03 72.73 C203.01 21.72, 32.18 13.31, 0.35 1.08" stroke="#000000" stroke-width="1.5" fill="none" stroke-dasharray="8 9"></path></g></g><g stroke-linecap="round" transform="translate(153.91208474523194 433.78515625) rotate(0 67.876953125 34.046875)"><path d="M0 0 C0 0, 0 0, 0 0 M0 0 C0 0, 0 0, 0 0 M-0.77 6.55 C1.38 5, 3.28 2.85, 4.87 0.16 M-0.37 6.04 C1.7 3.99, 3.62 1.6, 4.69 0.38 M0.12 11.13 C2.17 8.74, 5.2 7.7, 10.81 0.61 M-0.6 11.55 C3.01 9.32, 5.78 5.7, 11.22 0.33 M-0.08 20.17 C3.66 11.87, 12.55 6.4, 16.48 -0.47 M0.76 17.45 C3.19 14.37, 6.46 9.74, 14.82 0.22 M-0.28 23.08 C7.54 17.72, 11.72 6.89, 20.14 -0.72 M-0.61 23.61 C4.18 18.41, 9.27 13.54, 21.48 0.3 M-0.43 29.46 C9.59 20.76, 16.34 11.43, 25.23 -1.08 M-0.05 30.94 C8.71 22.07, 16.85 11.71, 25.99 -0.56 M-1.58 38.07 C11.23 24.91, 23.02 13.27, 31.23 -2 M-1.12 36.27 C11.55 22.58, 23.61 9.29, 32.51 -0.32 M-1.78 41.85 C8.39 32.05, 20.83 21.26, 36.58 -0.33 M0.74 43.46 C8.54 32.02, 15.38 23.12, 36.9 0.45 M-1.98 47.1 C17.23 31.27, 30.3 12.96, 41.95 -0.4 M-0.29 49.74 C11.19 36.34, 20.7 23.93, 42.42 -0.46 M0.6 55.13 C10.21 44.79, 22.17 32.45, 49.08 0.97 M0.62 55.44 C17.2 35.84, 34.7 15.49, 48.01 1.12 M-0.7 61.26 C10.68 47.79, 23.72 37.06, 52.06 -0.66 M-0.76 60.06 C18.72 37.8, 39.31 17.61, 53.94 -1.17 M0.67 68.44 C23.37 41.09, 43.54 14.35, 56.18 1.65 M-0.76 68.03 C13.98 50.75, 27.8 35.67, 58.08 -0.25 M1.2 71.47 C24.63 44.43, 47.21 16.5, 65.21 -0.91 M2.41 69.95 C15 54.73, 26.9 41.43, 63.58 -0.54 M6.14 72.2 C29.9 46.68, 49.99 20.94, 68.24 2.1 M7.87 70 C30.16 44.33, 51.96 19.92, 69.15 0.09 M14.19 71.22 C36.32 41.52, 60.64 17.16, 74.96 1.27 M14.1 70.58 C33.53 48.61, 52.13 25.55, 74.69 -0.7 M19.54 70.77 C35.46 52.92, 49.37 35.83, 78.52 -1.69 M17.49 69.44 C36.63 48.02, 56.19 26.97, 79.58 0.35 M22.56 68.68 C43.76 45.96, 64.94 21.02, 86.78 -1.05 M24.34 70.64 C45.85 43.52, 68.86 18.39, 84.37 -0.86 M30.59 71.33 C46.1 49.58, 63.7 30.91, 89.18 -0.11 M28.16 69.62 C44.28 51.3, 61.86 34.1, 91.02 0.2 M34.67 69.33 C51.31 52.28, 67.47 31.8, 96.03 -2.25 M33.69 69.98 C51.9 50.55, 70.15 30.69, 96.56 -0.25 M41.54 70.66 C59.97 45.25, 80.54 22.01, 101.3 0 M39.38 70.74 C60.1 47.43, 79.91 23.99, 101.4 -0.26 M43.8 71.96 C64.99 45.45, 84.88 21.56, 105.99 -2.1 M44.95 70.66 C65.67 46.58, 88.15 20.88, 106.96 -1.15 M50.53 72.1 C72.77 45.58, 89.87 24.91, 112.87 1.44 M50.41 69.96 C72.56 44.52, 96.79 15.97, 111.97 0.56 M54.14 71.23 C76.02 44.11, 100.55 18.35, 117.19 0.99 M54.28 70.42 C69.96 53.33, 86.71 34.39, 115.44 0.87 M61.63 71.61 C82.63 46.03, 98.98 25.12, 120.76 -1.44 M61.33 70.37 C85.84 41.46, 108.97 15.04, 122.26 0.66 M65.45 68.63 C82.52 51.95, 97.19 33.99, 128.04 0.92 M66.77 70.74 C81.29 50.45, 99.79 31.12, 127.62 0.92 M70.8 71.71 C85.48 55.9, 97.58 38.94, 130.78 -0.67 M72.01 70.05 C91.03 47.17, 112.02 24.01, 133.11 -0.47 M78.42 71.26 C91.94 54.32, 104.17 37.25, 136.22 -0.79 M76.83 70.52 C94.85 49.01, 113.91 25.83, 137.29 1.08 M83.91 71.57 C93.01 55.1, 104.83 44.78, 137.06 6.86 M83.13 71.01 C95.44 54.86, 110.4 38.73, 137.09 6.64 M88.6 69.8 C101.07 54.24, 117.1 33.09, 135.44 13.03 M87.15 71.13 C97.86 56.91, 109.41 45.09, 136.17 13.45 M94.75 68.89 C109.91 50.81, 124.84 30.04, 135.84 19.28 M93.15 70.21 C103.13 57.7, 114.15 45.78, 137.25 20.35 M96.48 68.52 C113.59 53.11, 125.3 37.32, 136.36 26.27 M97.71 71.38 C109.75 56.93, 120.82 43.93, 137.8 24.19 M102.99 70.01 C111.06 59.43, 119.84 50.23, 135.55 32.8 M103.34 70.57 C112.06 62.05, 119.2 52, 136.25 31.96 M109.44 71.3 C119.73 57.34, 130.45 44.66, 135.03 37.46 M108.8 70.56 C119.58 57.67, 128.3 45.46, 137.03 38.5 M112.23 71.84 C121.83 60.69, 125.54 55.86, 137.62 41.78 M114.75 69.97 C122.76 60.43, 131.57 50.05, 136.11 42.78 M119.79 71.59 C122.85 67.72, 127.01 60.97, 135.4 51.48 M120.01 69.38 C125.04 63.44, 131.36 56.56, 137.46 49.24 M123.99 71.8 C127.14 65.46, 130.7 62.79, 138.32 56.11 M125.22 70.22 C129.65 64.67, 133.06 59.97, 137.15 56.48 M130.25 70.4 C132.57 68.02, 133.05 65.35, 136.03 62.05 M129.42 70.7 C131.39 68.73, 132.9 66.27, 136.69 62.3" stroke="#82c91e" stroke-width="0.5" fill="none"></path><path d="M-1.53 1.19 C28.35 0.63, 59.92 1.95, 135.01 -1.31 M-0.1 -0.18 C51.11 0.4, 102.47 1.13, 135.29 -0.08 M134.76 1.55 C135.89 27.84, 135.08 54.18, 134.07 68.85 M135.02 0.78 C135.47 15.39, 135.32 30.8, 136.66 68.36 M134.49 69.81 C102.25 66.87, 70.42 67.6, -1.51 68.75 M136.2 68.33 C87.26 66.85, 38.05 67.59, 0.85 68.93 M0.72 68.42 C0.48 44.36, -0.6 19.03, 0.81 1.49 M-0.45 67.32 C0.08 54.72, -0.32 38.86, -1 -0.32" stroke="#000000" stroke-width="1" fill="none"></path></g><g stroke-linecap="round" transform="translate(143.10349099523194 250.11328125) rotate(0 94 34.5)"><path d="M0 0 C0 0, 0 0, 0 0 M0 0 C0 0, 0 0, 0 0 M0.16 7.11 C1.22 4.62, 2.72 2.61, 4.84 -0.15 M-0.21 6.68 C1.27 4.38, 2.92 3.41, 5.26 0.25 M0.11 12.45 C4.33 9.62, 5.84 4.29, 10.04 -0.37 M0.5 12.41 C4.3 7.5, 6.75 3, 10.48 -0.09 M0.02 19.75 C4.35 12.1, 8.52 5.89, 13.83 -1.6 M0.18 17.96 C3.01 14.95, 7.82 10.67, 15.63 0.42 M2.03 22.82 C6.42 16.85, 11.75 13.15, 20.79 0.41 M-0.59 24.78 C4.39 18.42, 10.47 12.08, 21.15 -0.03 M1.74 29.17 C7.02 23.87, 15.09 13.72, 27.88 0.01 M0.89 30.23 C8.9 21.12, 16.31 11.23, 26.46 0.23 M-0.93 35.65 C10.51 25.85, 18.09 15.41, 31.81 -0.25 M-0.12 37.13 C9.52 26.97, 17.94 16.43, 32.02 -1.07 M1.9 43.2 C14.88 28.3, 27.48 11.2, 37.24 0.65 M0.49 42.91 C13.92 25.88, 26.69 11.49, 36.17 0.78 M1.75 47.5 C16.29 29.89, 34.77 10.96, 43.7 0.53 M-0.06 48.68 C10.63 36.06, 22.07 24.8, 42.65 0.18 M-0.02 54.05 C16.47 34.95, 36.4 12.51, 45.93 0.47 M1.25 54.78 C14.27 38.37, 28.54 23.58, 47.47 0.11 M0.2 60.56 C16.55 40.3, 37.17 19.14, 52.78 -0.88 M0.28 61.6 C18.05 40.63, 34.89 20.41, 52.38 -1.1 M-1.58 68.09 C13.39 51.54, 26.64 36.51, 59.56 -0.9 M0.45 67.16 C15.25 49.63, 31.03 32.72, 57.8 1.06 M0.74 69.4 C25.38 43.24, 48.65 16.91, 62.94 1.36 M2.94 69.84 C14.55 56.09, 28.84 40.77, 64.27 0.07 M8.35 70.59 C28.56 43.83, 50.16 18.11, 69.29 -0.43 M6.3 70.58 C26.34 48.87, 45.9 25.17, 69.34 -0.77 M11.84 70.77 C29.62 48.29, 52.2 25.27, 73.61 -1.5 M13.27 70.84 C27.89 51.38, 45.76 33.14, 75.08 0.44 M19.39 71.36 C36.68 52.08, 51.55 33.22, 79.84 0.36 M17.61 70.47 C30.84 58.19, 42.14 42.44, 78.95 1.03 M24.44 70.22 C42.79 46.89, 62.63 25.83, 83.8 -0.77 M24.25 70.18 C44.24 47.77, 65.22 23.71, 85.3 0.55 M30.01 72.1 C52.58 45.34, 72.8 17.58, 89.5 -0.61 M28.21 70.49 C47.25 50.92, 63.95 29.95, 90.25 -0.38 M35.59 70.91 C53.38 48.93, 70.76 28.19, 96.08 -2.3 M34.09 70.41 C54.01 47.09, 74.04 23.86, 95.15 -1.29 M37.53 72.2 C58.05 51.75, 75.15 28.58, 102.12 2.01 M38.94 70.34 C56.93 49.42, 76.16 28.32, 101.54 0.96 M43.88 71.45 C57.31 56.82, 71.08 38.49, 104.57 1.48 M43.74 70.85 C60.56 52.31, 75.86 33.58, 106.55 -0.99 M50.82 72.49 C71.85 45.89, 96.32 20.34, 111.11 1.01 M50.34 71.49 C72.48 43.82, 97.14 18.11, 111.86 -0.21 M53.47 69.87 C78.32 43.85, 98.61 21.59, 114.32 0.33 M54.87 69.62 C78.68 42.14, 103.58 14.16, 116.48 0.1 M58.33 71.23 C83.8 40.93, 106.45 13.07, 123.43 0.63 M60.69 71.2 C83.88 43.52, 107.97 17.87, 120.97 -0.37 M66.09 71.66 C87 47.75, 107.2 24.6, 127.89 -0.8 M65.85 69.61 C83.96 50.2, 102.28 29.03, 127.64 0.11 M72.06 72.12 C86.83 56.25, 101.26 38.09, 131.64 0.53 M69.98 70.49 C94.03 44.06, 118.64 16.68, 133.34 0.77 M77.02 69.74 C89.38 55.14, 102.4 39.85, 137.45 -1.28 M75.78 70.5 C100.44 43.36, 123.56 16.8, 138.44 1.24 M79.58 72.28 C98.28 55.22, 111.98 35.21, 141.82 -0.19 M81.91 70.19 C98.33 53.78, 112.93 35.13, 144.17 0.29 M87.11 72.45 C111.45 41.82, 134.57 16.56, 147.36 0.21 M86.48 70.74 C111.41 44.01, 133.43 15.05, 147.68 0.72 M92.03 70.31 C105.63 55.21, 121.4 41.71, 153.64 1.02 M91.92 70.88 C116.61 43.06, 139.76 15.88, 153.37 0.07 M98.77 71.6 C113.35 55.53, 127.52 38.06, 157.58 -1.56 M98.49 69.58 C113.83 49.8, 131.51 30.1, 157.89 -0.46 M104.08 70.2 C119.28 50.21, 134.01 34.22, 164.32 -1.86 M103.15 70.95 C115.34 56.04, 128.59 40.79, 163.56 0.73 M107.31 71.16 C124.59 51.28, 144.09 30.5, 167.6 1.61 M108.4 71.77 C129.72 47.62, 150.71 22.73, 169.31 0.49 M114.01 69.4 C133.6 46.61, 152.33 24.86, 176.65 0.58 M112.46 70.55 C132.67 49.84, 150.29 28.18, 174.1 -0.3 M119.6 72.3 C134.89 49.29, 154.22 30, 180.51 -0.65 M117.5 70.61 C137.05 48.66, 156.32 26.45, 179.9 0.14 M123.62 70.8 C136.03 55.8, 150.11 41.84, 186.97 1.19 M124.44 71.62 C137.11 54.88, 150.03 41.1, 185.06 -0.8 M130.06 69.86 C147.53 51.02, 166.32 29.62, 189.61 0.24 M129.84 70.44 C141.91 57.52, 154.14 43.21, 190.01 2.33 M134.29 70.73 C149.09 54.53, 161.54 37.16, 190.64 7.83 M135.39 69.89 C149.54 51.99, 166.48 35.02, 190.65 7.75 M139.37 69.4 C148.69 59.17, 162.6 47.01, 189.22 13.85 M138.81 71.62 C156.12 52.11, 174.72 33.12, 189.18 14.26 M146.97 70.94 C154.8 61.05, 164.81 48.34, 189.76 21.19 M145.33 70.86 C155.61 58.22, 167.2 46.7, 189.02 20.1 M149.74 71.89 C157.46 59.17, 169.47 51.45, 190.28 27.57 M150.56 71.29 C160.98 57.03, 172.61 43.92, 189.7 25.27 M154.17 70.63 C165.79 57.08, 178.94 46.46, 188.63 32.67 M156 69.81 C168.48 58.06, 178.71 44.34, 189.66 33.04 M160.96 69.76 C171.14 59.81, 182.51 47.47, 190.12 36.77 M159.92 71.38 C170.46 61.42, 178.42 51.4, 190.41 37.04 M167.94 70.44 C174.56 60.94, 181.93 51.54, 191.18 43.37 M166.86 69.81 C174.18 62.24, 180.23 54.64, 188.83 44.37 M170.38 70.84 C174.97 66.15, 179.17 63.18, 189.61 50.29 M172.48 70.59 C178.26 63.18, 184.73 56.33, 189.86 49.06 M175.98 72.35 C178.62 67.33, 181.67 64.81, 188.94 56.09 M177.09 69.74 C181.25 65.71, 187 59.88, 189.54 56.93 M181.48 70.65 C184.92 68.89, 186.98 65.78, 188.92 62.9 M182.35 70.63 C185.3 67.78, 187.69 64.57, 189.54 62.99" stroke="#82c91e" stroke-width="0.5" fill="none"></path><path d="M0.36 0.4 C63.71 0.5, 122.68 -1.05, 189.09 -0.14 M0.7 0.87 C53.35 0.36, 107.72 -0.82, 188.12 -0.5 M188.34 0.43 C188.71 22.17, 189.74 45.84, 186.84 70.21 M187.41 0.18 C187.76 15.85, 186.42 30.31, 188.17 69.19 M186.59 67.73 C133.18 67.52, 80.72 68.03, 1.89 69.63 M187.07 68.23 C147.22 68.13, 106.41 68.09, 0.24 68.62 M0.05 67.79 C1.5 43.13, 0.37 18.16, 0.95 0.4 M-0.48 69.07 C0.48 43.45, 0.65 16.05, 0.92 0.32" stroke="#000000" stroke-width="1" fill="none"></path></g><g stroke-linecap="round" transform="translate(144.29880349523194 162.4609375) rotate(0 94 34.5)"><path d="M0 0 C0 0, 0 0, 0 0 M0 0 C0 0, 0 0, 0 0 M-0.45 5.9 C1.51 3.26, 4.3 2.12, 5.42 1.01 M-0.15 6.74 C1.41 4.57, 2.99 2.1, 4.66 0.7 M1.45 10.66 C4.46 9.72, 6.82 4, 10.92 0.12 M-0.5 12.75 C3.31 7.67, 6.19 4.41, 10.7 -0.27 M1.74 17.3 C4.26 12.91, 5.77 10.65, 17.59 1.66 M-0.18 17.92 C4.52 11.74, 10.96 5.74, 16.58 0.42 M1.03 25.87 C7.61 16.31, 14.07 10.19, 21.91 -1.29 M0.24 24.96 C6.72 17.18, 12.11 9.93, 22.03 0.87 M0.89 28.93 C5.55 22.66, 11.26 17.3, 25.92 -0.01 M0.58 31.38 C9.35 19.04, 19.76 7.24, 26.28 0.36 M0.12 35.58 C4.39 27.8, 14 22.68, 32.47 1.05 M-1.15 36.71 C10.34 24.99, 21.02 12.52, 30.91 -1.02 M-1.26 41.74 C10.3 33.91, 19.74 21.6, 37.6 -1.37 M-0.72 41.67 C10.56 30.6, 19.97 20.11, 36.77 0.35 M1.65 48.84 C13.31 35.22, 24.18 20.8, 41.47 1.07 M0.58 49.33 C12.68 34.03, 26.51 19.63, 43.45 0.45 M0.84 54.87 C20.01 34.24, 37.74 10.93, 48.72 -1.32 M0.66 54.59 C16.04 35.99, 30.31 18.63, 48.23 0.45 M-0.2 60.78 C13.17 43.24, 29.78 29.79, 51.31 -1.9 M-0.4 61.04 C15.72 44.37, 28.68 26.47, 53.46 -0.51 M-0.32 65.63 C21.23 44.12, 41.87 19.16, 56.95 0.7 M0.46 66.49 C15.17 47.88, 32.91 29.55, 57.57 -0.46 M0.96 70.92 C15.88 54.67, 29.61 38.9, 63.92 0.9 M1.41 69.8 C21.45 47.58, 41.29 25.43, 64.45 0.12 M8.48 70.24 C29.36 47.77, 48.54 22.34, 69.5 0.65 M7.37 70.95 C23.58 52.44, 39 34.41, 68.42 -0.75 M13.67 68.93 C36 41.41, 59.88 13.79, 72.81 -0.33 M12.83 71.1 C36.24 42.81, 59.82 16.3, 73.66 0.11 M18.89 69.42 C41.05 44.77, 66.83 16.3, 79.18 1.95 M18.66 70.4 C36.11 50.2, 55.13 28.21, 79.14 0 M24.93 69.31 C46.78 41.92, 70.4 17.07, 83.04 -1.96 M24.29 70.54 C43.36 46.77, 65.69 21.94, 84.05 -0.97 M27.45 71.83 C42.25 53.4, 55.97 37.87, 88.31 -0.53 M28.63 71.57 C46.51 49.33, 65.18 27.44, 90.78 1.02 M35.83 72.14 C47.79 55.85, 59.94 38.78, 95.25 1.09 M33.51 70.7 C52.1 48.52, 70.18 27.56, 96.3 0.23 M37.55 71.79 C55.12 51.96, 73.69 31.57, 100.83 -0.52 M38.59 71.16 C57.52 50.99, 75.04 28.99, 101.14 0.27 M45.04 68.99 C57.23 52.89, 70.87 38.62, 105.63 -0.68 M44.87 70.94 C60.78 50.43, 79 31.34, 106.81 -1.17 M48.12 69.07 C74.82 43.79, 96.09 18.47, 110.19 -0.27 M49.56 71.68 C66.52 51.91, 82.88 31.89, 110.73 0.53 M56.79 70.81 C78.42 45.41, 97.95 19.62, 117.27 1.44 M55.53 71.41 C76.19 47.52, 96.02 23.77, 117.03 0.49 M61.67 72.86 C78.49 50.5, 99.42 28.97, 123.44 1.37 M60.27 71.42 C75.37 51.71, 91.05 34.6, 122.76 -0.64 M64.86 72.04 C86.2 49.83, 104.23 26.18, 126.81 -0.68 M65.32 71.03 C80.51 54.72, 94.31 38.32, 126.11 0.4 M72.28 69.8 C87.08 54.28, 102.77 34.58, 133.18 1.02 M71.19 70.44 C96.33 41.85, 120.23 15.82, 133.18 -0.93 M76.59 70.53 C97.8 43.92, 123.52 18.46, 136.46 0.55 M76.81 69.5 C91.32 54.71, 104.01 40.21, 136.94 -0.21 M81.56 71.97 C101.19 47.56, 123.05 24.14, 141.56 -1.29 M82.49 70.58 C96.92 52.53, 113.04 34.04, 142.65 0.78 M88.9 71.56 C113.39 43.11, 136.63 14.17, 148.68 1.39 M87.3 71.32 C112.62 42.06, 135.43 13.91, 148.8 0.89 M90.71 68.86 C107.66 50.89, 125.11 31.89, 152.3 -2.08 M92.06 71.49 C114.03 45.29, 136.77 18.76, 154.55 0.39 M96.27 71.87 C121.94 46.24, 141.64 20.29, 157.47 -0.48 M98.78 69.75 C119.91 45.05, 141.52 19.23, 158.67 -0.24 M104.49 71.44 C123.4 46.97, 143.01 22.74, 162.71 1.58 M103.53 70.55 C115.47 55.25, 129.64 38.52, 164.98 0.56 M106.07 72.38 C127.36 50.38, 144.07 25.86, 168.39 2.1 M107.32 71.59 C132.37 43.13, 155.55 16.26, 169.27 0.2 M115.21 72.09 C136.7 42.9, 163.93 15.29, 175.62 0.03 M114.23 70.96 C131.87 48.13, 151.98 26.11, 174.76 0.76 M117.21 71.19 C144 42.39, 167.78 16.25, 178.58 1.68 M117.68 70.17 C133.57 55.86, 147.48 37.82, 181.02 -0.19 M122.75 72.62 C141.19 51.42, 154.52 36.85, 187.44 -0.93 M123.2 71.7 C142.76 47.8, 161.37 27.71, 185.42 -0.78 M128.2 72.08 C148.16 47.97, 170.5 27.73, 187.41 1.8 M129.37 71.86 C146.28 49.72, 165.57 30.23, 188.76 1.48 M134.56 72.31 C153.24 48.47, 173.31 26.88, 189.59 7.47 M135.23 71.52 C147.34 54.67, 161.78 40.08, 190.67 6.5 M139.77 69.55 C153.03 58.8, 162.34 43.75, 191.26 14.95 M139.26 71.03 C155.36 52.94, 170.33 36.4, 190.47 13.42 M145.64 71.85 C163.84 48.7, 180.94 30.48, 188.23 18.88 M144.79 70.95 C160.96 53.19, 175.97 37.62, 190.09 19.39 M150.19 69.5 C158.75 61.8, 168.86 50.22, 191.15 27.46 M150.95 70.88 C159.9 60.18, 169.54 49.07, 188.93 26 M154.55 69.37 C170.41 57.59, 181.51 39.64, 187.74 33.64 M156.1 70.3 C168.72 57.07, 181.88 42.06, 188.66 32.7 M159.32 69.29 C169.33 60.6, 177.71 52.63, 190.44 37.65 M160.77 71.35 C170.36 58.4, 181.96 46.62, 189.43 37.95 M167.43 72.45 C175.41 61.39, 184.04 51.03, 188.08 45.77 M167.08 69.67 C174.75 61.98, 183.82 51.99, 190.1 44.27 M172.56 69.72 C178.56 63.82, 181.95 58.83, 188.09 49.28 M171.74 71.19 C178.9 62, 186.51 53.58, 189.01 49.77 M177.94 70.12 C179.65 64.33, 184.78 59.12, 188.88 55.07 M177.38 70.92 C178.87 68.08, 182.74 63.48, 188.94 56.96 M181.47 70.97 C184.43 68.78, 185.69 66.14, 189.68 63.54 M181.87 70.35 C184.87 68.1, 187.35 65.15, 189.58 62.55" stroke="#82c91e" stroke-width="0.5" fill="none"></path><path d="M1.83 -1.48 C57.94 -2.64, 116.2 -0.8, 186.54 1.97 M0.91 -0.38 C41.98 0.88, 81.15 1.88, 188.46 -0.17 M186.72 1.35 C187.33 16.88, 188.98 37.6, 187.41 69.64 M188.5 0.72 C187.44 25.01, 189.12 50.35, 187.25 68.3 M187.56 69.97 C111.47 71.22, 36.5 69.38, 1.21 67.09 M187.98 69.98 C129.98 66.6, 69.96 66.22, -0.28 68.14 M-0.56 70.85 C2.58 47.31, -1.27 22.82, 0.04 -1.68 M0.32 69.75 C-0.17 54.53, 1.03 38.33, -0.04 -0.17" stroke="#000000" stroke-width="1" fill="none"></path></g><g transform="translate(175.15817849523194 455.9921875) rotate(0 50.5 12.5)"><text x="0" y="18" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">foo/foo.go</text></g><g stroke-linecap="round" transform="translate(151.13083474523194 551.84765625) rotate(0 67.876953125 34.046875)"><path d="M0 0 C0 0, 0 0, 0 0 M0 0 C0 0, 0 0, 0 0 M-0.64 7.16 C1.72 4.42, 4.03 1.6, 4.84 0.95 M-0.5 6.4 C1.78 4.1, 3.08 2.43, 4.96 0.06 M1.13 12.13 C3.86 6.99, 9.5 3.48, 11.1 -1.34 M0.36 12.15 C3.44 7.87, 8.52 3.6, 10.57 -0.01 M-1.22 16.53 C2.75 16.13, 4.99 9.56, 15.22 1.16 M0.51 19.44 C5.33 12.02, 11.73 4.46, 15.41 0.28 M-0.83 24.58 C9.14 15.88, 17.78 5.85, 23.19 1.61 M0.96 24.29 C6.39 17.1, 13.93 9.61, 20.42 -0.64 M0.32 30.27 C10.93 18.57, 20.3 6.48, 25.91 1.25 M-0.56 30.6 C8.41 20.47, 17.74 11.94, 26.35 1.25 M-0.18 37.54 C8.92 27.58, 16.2 18.11, 33.23 -1.84 M0.49 37.53 C8.3 28.67, 13.95 20.17, 31.18 -0.24 M-1.27 42.9 C7.38 34.19, 15.56 21.45, 38.52 1.46 M-0.24 42.58 C6.99 34.49, 14.35 26.04, 37.05 -0.56 M1.23 50.12 C14.62 33.92, 28.24 16.47, 41.46 1.55 M0.24 48.72 C10.49 37.89, 19.76 25.88, 41.74 0.29 M0.87 53.25 C13.37 40.6, 21.66 30.35, 48.47 0.58 M1.03 53.85 C10.49 42.68, 21.75 30.65, 47.55 0.61 M0.91 59.11 C10.41 44.73, 25.94 30.47, 51.56 -1.21 M0.24 61.71 C14.02 43.11, 29.19 27.34, 52.77 -0.18 M0.55 66.34 C15.18 50.82, 28.06 32.79, 56.72 0.86 M-0.15 67.4 C20.74 41.88, 43.86 15.1, 58.61 -0.73 M1.21 68.99 C23.96 44.17, 45.41 22.86, 62.79 -1.68 M2.48 69.4 C18.84 52.07, 34.38 34.57, 64.63 -0.97 M8.95 69.29 C22.78 51.56, 39.92 34.29, 69.83 -0.06 M8.4 70.72 C22.65 52.96, 38.73 34.57, 69.69 0.72 M12.66 68.63 C36.89 44.06, 57.91 15.74, 73.98 -1.96 M14.31 70.41 C29.26 50.4, 44.55 32.7, 75.4 0.34 M17.73 72.03 C39.88 46.06, 57.48 26.53, 79.88 -1.06 M17.49 70.4 C40.86 44.46, 62.27 18.5, 79 1.04 M22.25 69.44 C39.89 55.53, 49.88 38.6, 83.5 1.27 M24.67 69.26 C43.11 47.24, 64.8 24.4, 84.87 -0.03 M29.4 70.16 C48.67 48.16, 69.14 23.38, 88.54 -1.6 M28.92 71.07 C44.32 52.19, 60.32 33.3, 89.44 -0.91 M33.71 69.96 C57.12 42.97, 80.5 17.94, 97.29 0.77 M34.45 70.94 C54.3 46.48, 75.85 23.01, 96.59 -0.06 M40.66 69.69 C54.95 53.59, 72.58 34.26, 99.02 -1.71 M38.83 70.09 C53.67 54.14, 69.85 37.1, 100.64 0.52 M46.35 69.92 C61.69 50.28, 76.34 34.86, 104.86 -1.27 M45.21 70.95 C61.51 52.69, 76.2 34.88, 105.77 0.02 M51.75 70.06 C75.27 42.56, 98.89 16.03, 112.13 -1.95 M51.1 70.64 C73.07 44.28, 96.82 18.55, 110.95 -0.26 M55.03 70.74 C75.16 49.03, 94.51 27.01, 114.61 -0.45 M55.28 69.85 C75.57 46.67, 95.17 23.3, 116.73 0.54 M62.49 72.17 C76.2 52.47, 90.71 35.81, 122.19 0.5 M61.29 69.64 C80.53 46.81, 102.3 23.19, 121.44 -0.03 M64.87 72.52 C85.14 48.31, 105.91 27.59, 128.5 -1.21 M66.34 70.23 C83.58 50.53, 101.6 30.37, 127.45 1.32 M72.27 70.33 C83.91 55.44, 97.51 36.3, 133.14 -0.03 M70.73 69.82 C93.55 46.13, 115.12 21.12, 131.9 -0.81 M78.51 70.81 C90.08 54.8, 104.15 38.01, 137.4 0.47 M76.81 71.43 C96.23 47.83, 117.44 23.87, 137.02 1.02 M84.02 68.3 C103 43.75, 126.53 20.3, 135.87 5.7 M82.41 69.68 C95.1 55.55, 109.26 39.85, 136.27 7.71 M88.19 68.59 C104.95 48.5, 124.64 28.85, 135.88 11.11 M87.81 69.62 C103.26 50.95, 120.34 33.07, 136.38 13.09 M92.25 71.29 C105.22 56.09, 119.2 38.16, 136.05 19.87 M93.1 69.51 C101.24 60.49, 110.73 50.13, 136.41 20.07 M99.68 72.26 C109.2 59.74, 120.56 45.84, 137.1 24.76 M97.2 69.7 C108.21 57.75, 117.57 46.99, 137.18 24.92 M103.04 69.92 C113.72 57.01, 126.57 40.53, 138.22 30.54 M103.24 69.37 C109.27 62.42, 116.9 52.84, 136.18 32.07 M108.35 71.69 C115.47 61.76, 120.12 57.76, 135.29 37.02 M107.54 69.39 C117.88 58.79, 127.36 48.65, 136.33 37.72 M114 68.28 C121.77 63.74, 124.73 57.14, 136.53 41.75 M115.01 69.11 C118.6 64.99, 123.57 58.9, 136.25 42.83 M119.09 72.17 C123.92 65.61, 125.65 62.95, 138.19 50.62 M118.12 71.17 C124.85 64.41, 129.91 57.48, 136.42 50.24 M126.25 71.78 C131.14 65.71, 133.85 59.26, 138.64 56.91 M124.33 70.33 C127.95 65.13, 133.11 60.48, 137.96 56.19 M130.06 70.38 C131.16 68.24, 134.43 64.04, 135.94 60.92 M129.27 70.32 C132.22 68.1, 134.15 65.69, 137.37 61.61" stroke="#82c91e" stroke-width="0.5" fill="none"></path><path d="M-1.21 -0.9 C51.53 1.06, 102.99 -0.27, 136.76 1.85 M0.19 0.56 C28.41 -0.54, 57.63 0.05, 135.82 -0.19 M136.28 -0.29 C134.85 27.1, 136.27 49.14, 136.07 68.94 M136.59 0.51 C136.15 18.07, 136.45 35.92, 135.6 68.82 M137.64 69.52 C100.59 67.73, 64.18 69.41, 1.34 68.52 M135.93 67.78 C104.68 66.06, 75.71 67.01, -0.99 68.96 M0.99 67.38 C-1.02 49.29, 0.65 33.51, -0.56 -1.03 M-0.41 68.31 C-0.56 47.5, -1.02 25.2, -0.1 0.62" stroke="#000000" stroke-width="1" fill="none"></path></g><g transform="translate(170.00583474523194 572.359375) rotate(0 51 12.5)"><text x="0" y="18" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">bar/bar.go</text></g><g stroke-linecap="round" transform="translate(153.45114724523194 689.55078125) rotate(0 67.876953125 34.046875)"><path d="M0 0 C0 0, 0 0, 0 0 M0 0 C0 0, 0 0, 0 0 M-0.34 7.13 C1.95 3.85, 3.27 1.06, 5.48 0.29 M-0.51 6.22 C1.21 5.37, 1.9 4, 4.61 0.73 M-1.28 12.26 C1.72 8.32, 6.08 7.32, 11.64 0.44 M0.2 12.82 C3.54 7.73, 6.57 5.41, 10.65 -0.79 M0.04 18.76 C4.98 12.07, 8.37 7.32, 16.76 2.06 M-0.35 17.71 C3.71 15.64, 7.14 10.29, 15.41 0.77 M0.27 22.42 C6.69 14.8, 16.65 5.35, 19.98 -1.42 M0.67 24.33 C5.57 19.23, 10.6 12.64, 20.74 -1.06 M1.22 29.06 C8.03 19.53, 19.4 5.43, 26.52 1.5 M0.01 30.14 C8.85 20.03, 18.41 10.48, 25.87 0.57 M0.51 35.65 C10.53 23.79, 20.24 15.98, 32.83 -0.72 M-0.71 36.23 C11.76 22.51, 25.3 7.28, 30.91 -0.56 M1.55 42.23 C9.74 34.21, 15.61 25.53, 37.93 1.13 M-0.13 41.97 C14.51 27.76, 26.86 11.22, 36.37 0.36 M0.05 47.87 C13.2 37.08, 24.15 20.62, 41.08 0.58 M-0.31 49.49 C17.06 28.59, 31.91 10.58, 43.24 -0.71 M0.91 54.93 C7.78 43.14, 20.98 32.73, 48.85 -0.84 M0.66 54.59 C16.61 37.97, 31.81 19.28, 46.59 -0.45 M1.36 60.79 C15.97 41.3, 33.44 24.24, 52.8 -2.05 M0.28 60.91 C12.08 48.42, 22.33 35.77, 53.57 0 M-0.04 66.14 C20.91 40.96, 41.68 20.12, 56.57 1.32 M-1.04 66.89 C16.93 46.87, 34.87 27.28, 59.03 -0.75 M1.6 71.89 C26.4 43.61, 51.37 16.85, 65.51 0.43 M3.55 69.19 C15.97 55.05, 30.33 39.51, 63.54 -0.2 M6.65 69.07 C28 47.46, 51.58 22.2, 69.81 0.94 M6.94 71.16 C23.59 50.87, 39.63 33.52, 68.96 0.29 M11.98 71.2 C27.84 49.44, 46.68 31.4, 74.14 -1.4 M13.41 69.76 C35.51 45.26, 55.44 20.93, 74.53 -0.37 M19.28 71.88 C35.12 52.58, 51.44 31.52, 80.75 -1.1 M17.49 69.75 C33.16 51.73, 49.69 32.77, 78.42 -0.77 M22.07 71.41 C40.87 50.55, 59.28 27.28, 83.1 0.64 M23.38 70.85 C42.89 50.03, 59.29 28.78, 85.76 -0.85 M28.85 68.47 C51.74 43.47, 73.24 17.13, 88.99 -0.36 M28.54 69.97 C41.29 57.03, 53.61 41.13, 90.25 0.34 M32.05 72.46 C48.7 56.5, 61.4 38.02, 94.19 0.27 M33.04 70.12 C52.8 46.6, 72.43 24.65, 96.19 -1.25 M38.44 71.35 C55.58 48.44, 74.41 29.01, 101.57 -0.84 M40.45 70.83 C57.47 51.38, 72.59 30.57, 100.05 -0.4 M43.54 71.6 C66.96 44.76, 86.63 22.89, 106.69 0.77 M44.67 70.66 C62.47 50.71, 80.16 30.43, 106.56 -0.49 M48.57 70.52 C66.39 51.18, 81.56 32.91, 112.97 1.04 M49.34 70.05 C71.62 45.98, 91.24 23.66, 112.23 0.73 M55.6 71.9 C75.11 47.46, 92.42 25.46, 116.63 -0.25 M55.39 69.57 C69.29 55.52, 81.93 41.81, 116.77 0.02 M61.17 69.61 C77.5 50.4, 97.45 32.21, 121.11 0.41 M61.11 70.07 C79.49 49.64, 97.35 28.55, 121.95 -0.86 M67.4 71.25 C79.18 56.8, 92.63 40.01, 127.46 2.11 M65.74 70.9 C82.01 52.56, 98.35 33.42, 126.43 1.3 M71.63 69.76 C90.22 50.27, 107.42 30.28, 131.34 -0.06 M71.47 70.06 C95.23 43.55, 120.76 15.67, 133.17 0 M77.54 71.08 C92.3 51.48, 112.12 29.87, 137.44 1.33 M77.06 70.42 C90.71 52.5, 105.52 36.9, 136.34 0.11 M80.78 69.7 C98.08 54.08, 113.87 36.26, 137.89 9.46 M81.88 69.89 C96.3 54.31, 111.61 36.97, 136.07 7.71 M88.08 72.39 C105.29 50.98, 118.94 29.96, 138.4 13.52 M87.46 69.62 C98.59 56.86, 110.44 41.84, 137.17 13 M90.88 69.73 C109.39 52.61, 122.28 33.61, 135.62 19.75 M93.59 70.17 C105.91 55.41, 116.13 42.41, 136.79 19.83 M96.48 71.77 C110.57 52.28, 125.62 35.28, 138.63 26.45 M97.83 69.71 C113.17 52.19, 129.13 34.19, 136.44 25.33 M101.63 71.67 C112.53 58.95, 118.56 49.76, 136.13 31.67 M103.63 70.21 C110.12 61.8, 118.03 53.34, 137.56 32.14 M107.67 69.33 C119.56 57.83, 127 47.44, 137.36 37.53 M107.85 69.61 C119.1 57.77, 128.1 46.23, 136.92 37.28 M114.15 70.95 C123.81 58.04, 131.15 49.67, 138.53 42.15 M114.83 70.04 C119.27 63.73, 124.75 59.13, 137.47 42.66 M117.99 68.76 C121.93 65.62, 127.64 59.77, 137.22 51.49 M119.97 69.98 C122.84 65.81, 125.85 61.82, 137.16 49.47 M123.12 68.62 C129.45 66.91, 134.54 58.9, 137.34 55.71 M123.83 70.41 C126.35 67.55, 130 64.37, 136.41 55.15 M130.54 69.78 C131.18 67.18, 133.79 64.55, 136.57 61.38 M129.54 70.79 C131.72 67.3, 134.35 64.69, 137.22 61.73" stroke="#82c91e" stroke-width="0.5" fill="none"></path><path d="M1.74 -0.02 C54.15 -1.9, 105.58 0.06, 136.42 -1.15 M0.74 0.85 C36.39 0.59, 72.3 1.52, 136.03 -0.48 M134.32 -0.44 C138.33 24.41, 135.45 52.42, 134.43 68.07 M136.13 -0.95 C137.06 15.18, 136.21 29.49, 134.85 68.86 M133.93 67.67 C91.26 69.65, 44.93 69.07, 1.28 68.79 M136.34 67.38 C96.11 66.97, 56.08 67.82, 0.03 67.39 M-0.87 69.65 C1.3 52.3, -1.78 31.65, 1.6 0.4 M0.95 68.67 C0.31 47.88, -0.32 28.1, -0.72 -0.21" stroke="#000000" stroke-width="1" fill="none"></path></g><g transform="translate(186.38474099523194 709.9296875) rotate(0 33.5 12.5)"><text x="0" y="18" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">main.go</text></g><g stroke-linecap="round" transform="translate(453.30661599523194 432.796875) rotate(0 79 37.58203125)"><path d="M0 0 C0 0, 0 0, 0 0 M0 0 C0 0, 0 0, 0 0 M0.48 5.8 C0.78 4.53, 1.72 3.12, 5.75 0.81 M0.05 6.51 C0.84 5.08, 2.19 3.65, 4.63 0.42 M0.53 12.43 C4.69 7.27, 8.47 2.7, 10.74 0.43 M-0.54 11.74 C3.61 7.2, 7.32 4.51, 9.94 -0.27 M-2.11 19.87 C4.23 16.15, 6.49 10.08, 16.11 -0.49 M0.41 18.8 C5.28 12.52, 11.21 6.04, 15.18 0.32 M0.77 23.38 C7.11 14.05, 15.43 6.96, 20.34 1.37 M-0.61 23.45 C6.52 16.36, 13.13 8.28, 20.46 0.46 M0.94 29.7 C11.84 19.35, 22.36 6.03, 27.75 -1.27 M-0.46 30.04 C7.54 21.37, 16.23 12.76, 27.2 0.47 M0.48 38.83 C7.85 26.44, 19.23 15.95, 32.33 0.14 M-1.24 37.61 C8.73 25.52, 18.87 15.78, 31.9 -0.14 M-0.41 42.73 C15.57 25.78, 28.9 9.26, 38.19 0.5 M-0.28 42.86 C14.47 27.15, 28.52 9.49, 36.94 0.18 M0.2 47.95 C9.51 36.06, 21.06 28.2, 42.4 -0.6 M0.14 49.24 C10.57 36.42, 21.58 23.66, 41.98 -0.28 M0.24 54.75 C17.96 32.58, 37.14 13.49, 47.37 -0.44 M-0.51 54.48 C17.8 32.73, 37.19 11.82, 46.92 0.45 M1.97 59.5 C13.88 44.79, 28.34 28.72, 51.76 1.13 M0.02 61.45 C11.44 48.06, 22.91 33.88, 53.34 0.7 M-1.77 65.75 C20.62 45.87, 41.59 21.91, 58.8 0.12 M-0.55 67.68 C21.53 41.24, 44.12 18.03, 57.4 0.07 M0.05 74.92 C23.04 49.79, 45.99 21.33, 63.21 -1.25 M-0.73 72.43 C23.24 45.78, 47.27 18.76, 63.33 0.2 M2.35 78.63 C24.18 50.94, 49.84 21.56, 67.54 -0.18 M0.85 77.49 C20.98 54.63, 40.68 32.09, 68.32 -0.4 M7.47 76.81 C24.61 54.75, 45.06 33.82, 73.09 1.11 M7.68 75.79 C26.08 56.29, 43.87 35.48, 74.01 0.45 M13.63 76.68 C34.34 51.81, 55.12 31.69, 80.23 1.72 M12.29 76.69 C35.93 49.9, 59.98 20.93, 79.37 -0.6 M17.67 78.01 C33.09 58.84, 45.9 43.94, 83.32 0.49 M17.62 75.79 C35.89 58.2, 51.43 37.8, 84.18 0.41 M24.18 75.27 C41.85 56.47, 61.05 35.87, 91.05 -1.66 M22.65 77.47 C42.01 55.64, 60.23 32.33, 89.94 -0.42 M28.32 76.05 C48.34 56.31, 65.86 32.06, 97.36 0.65 M27.84 75.71 C42.4 58.77, 59.09 41.5, 95.33 -0.12 M32.23 75.38 C54.8 53.54, 73.79 33.81, 101.77 -0.37 M34.06 76.95 C49.14 57.39, 65.71 38.94, 101.14 0.06 M39.91 78.14 C63.95 49.16, 86.95 26.81, 108.26 0.73 M40.06 76.83 C60.1 53.39, 78.47 31.13, 105.7 -0.62 M45.57 77.42 C67.71 46.79, 94.06 20.5, 109.69 0.97 M43.37 77.06 C65.02 53.39, 85.34 30.42, 111.81 0.52 M48.52 76.9 C70.48 53.71, 90.79 31.86, 117.96 0.09 M49.76 76.21 C72 50.37, 93.61 26.54, 115.56 1.02 M53.55 77.25 C74.05 58.48, 92.27 37.05, 123.7 -0.82 M54.16 76.52 C80.52 46.48, 108.04 17.44, 122.5 0.44 M61.78 78.43 C83.4 50.99, 108.61 20, 127.93 -0.72 M60.11 76.7 C85.32 47.21, 110.34 19.31, 127.9 -0.62 M67.08 78.15 C87.76 51.81, 111.54 23.44, 132.24 0.53 M64.69 76.8 C88.44 52.8, 109.51 26.4, 133.48 -0.93 M70.22 78.97 C95.13 47.96, 120.42 21.51, 139.23 0.53 M71.34 77.69 C90.26 57.16, 107.3 35.22, 138.43 0.13 M74.62 78.87 C95.53 53.97, 115.73 30, 143.32 0.71 M75.99 76.18 C101.34 47.66, 128.22 16.98, 142.75 -0.56 M81.92 77.97 C96.81 57.45, 115.14 37.7, 147.16 0.74 M81.38 78.07 C97.22 59.12, 111 42.3, 148.26 0.92 M86.23 77.56 C104.07 56.47, 123.6 36.77, 152.5 0.86 M87.78 77.7 C110.97 49.77, 135.89 19.48, 154 0.37 M90.52 78.56 C108.03 56.41, 127.04 38.22, 160.56 0.29 M91.92 76.79 C117.66 45.94, 145.33 16.32, 159.2 0.23 M97.49 75.83 C116.83 57.29, 133.07 36.36, 157.01 6.35 M98.49 77.2 C115.69 55.74, 134.68 33.75, 158.77 7.24 M101.92 76.58 C113.56 64.86, 125.18 49.96, 158.69 11.78 M103.01 77.81 C122.45 53.63, 144.56 28.18, 158.64 12.11 M109.57 78.73 C126.85 53, 148.02 31.82, 156.85 19.67 M107.29 77.29 C123.87 59.14, 140.94 39.31, 159.51 18.93 M113.55 77.28 C125.84 61.53, 137.72 47.75, 157.34 24.86 M112.4 76.9 C126.38 61.95, 139 47.01, 157.64 25 M117.19 78.72 C127.43 65.35, 136.27 58.53, 158.87 28.99 M118.06 77.35 C128.14 66.75, 136.89 57.93, 159.67 30.31 M122.42 75.36 C132.62 67.67, 141.27 54.98, 157.38 38.96 M123.61 77.58 C132.31 66.59, 142.17 56.2, 159.52 36.45 M128.63 75.74 C137.83 65.9, 145.29 57.36, 160.23 41.96 M129.41 77.57 C138.64 66.33, 145.7 57.82, 159.19 44.08 M133.09 78.96 C139.46 68.46, 146.61 60.45, 157.91 48.18 M133.82 77.17 C142.95 66.11, 153.18 55.09, 158.98 50.04 M141.76 77.12 C145.31 70.97, 149.26 65.73, 159.63 57.38 M140.63 76.9 C144.91 70.81, 151.69 63.82, 157.68 56.44 M145.7 77.65 C147.21 73.9, 152.22 66.24, 159.6 62.06 M145.98 76.77 C149.73 71.44, 154.93 65.78, 159.41 62.14 M151.45 77.27 C154.12 72.99, 154.99 70.64, 157.83 66.5 M150.14 76.91 C153.09 74.56, 154.88 71.77, 158.52 67.63 M155.71 77.3 C156.28 76.25, 157.6 74.84, 158.63 74.06 M155.47 77.06 C156.83 76.01, 157.74 74.75, 158.29 74.12" stroke="#fab005" stroke-width="0.5" fill="none"></path><path d="M-0.01 -1.07 C30.41 -0.08, 64.17 -0.43, 158.61 -0.17 M0.33 0.86 C41.08 0.26, 80.58 1.16, 157.02 -0.05 M156.17 0.92 C157.87 19.9, 155.76 38.15, 158.27 73.75 M157.26 -0.47 C158.17 24.27, 158.3 48.96, 158.36 74.69 M156.47 74.44 C102.25 76.44, 49.23 75.45, -1.34 74.89 M157.89 74.67 C112.38 76.13, 68.6 76.38, -0.84 75.48 M1.14 76.65 C1.04 53.35, -0.38 29.9, 0.91 0.42 M-0.86 74.79 C1.55 56.56, 1.53 37.34, 0.5 -0.78" stroke="#000000" stroke-width="1" fill="none"></path></g><g stroke-linecap="round" transform="translate(461.29880349523216 304.61328125) rotate(0 79 37.58203125)"><path d="M0 0 C0 0, 0 0, 0 0 M0 0 C0 0, 0 0, 0 0 M0.05 6.69 C1 3.91, 2.55 2.97, 4.8 -0.4 M-0.21 6.7 C1.35 3.86, 3.37 1.83, 4.63 0.02 M0.68 11.09 C4.8 9.8, 7.36 6.07, 11.05 1.16 M0.33 11.42 C2.73 8.11, 6.57 4.91, 9.88 -0.11 M1.05 19.6 C1.73 12.95, 7.92 10.79, 13.88 0.42 M-0.91 18.02 C5.86 12.52, 11.85 5.07, 16.57 0.52 M0.61 23.01 C5.25 17.44, 9.17 9.8, 21.87 -0.37 M0.34 23.94 C4.66 18.13, 10.51 12.3, 22.04 -0.74 M0.72 32.22 C8.97 21.33, 16.45 10.14, 25.54 -0.54 M-0.78 30.17 C5.66 22.44, 11.89 15.77, 25.53 0.22 M1.41 36.2 C10.35 25.99, 19.63 16.35, 30.13 0.02 M-0.96 37.39 C6.47 29.59, 13.26 22.6, 32.62 -0.02 M-0.06 41.63 C10.68 31.55, 19.55 17.11, 38.87 0.76 M0.17 42.27 C7.89 32.17, 15.52 24.03, 36.66 -0.2 M1.18 48.82 C8.13 39.29, 19.24 28.04, 42.55 0.09 M0.85 49.9 C11.16 34.89, 23.39 21.12, 42.77 -0.21 M-1.42 56.02 C20.66 34.77, 36.16 10.44, 46.7 -0.96 M0.64 54.72 C15.56 36.86, 31.24 17.55, 47.44 1.13 M1.32 59.1 C12.6 44.09, 26.04 29.26, 53.17 0.84 M-0.05 60.73 C11.75 47.92, 23.93 34.02, 52.59 0.19 M-0.73 67.9 C13.4 51.68, 28.44 36.72, 59.29 -1.42 M-0.53 66.39 C22.61 42.06, 43.55 17.16, 59.11 0.81 M1.36 74.08 C25.09 48.56, 45.34 18.21, 63.47 -1.17 M0.99 73.1 C13.18 57.82, 25.6 42.17, 62.97 0.39 M0.01 76.81 C27.44 51.69, 47.45 23.27, 68.35 1.24 M2.21 77.34 C22.93 52.94, 43.71 28.3, 68.72 0.16 M9.45 78.06 C23.86 55.8, 44.34 34.8, 74.37 -1.81 M7.57 76.64 C29.25 52.82, 49.82 28.15, 73.59 -0.69 M12.88 78.84 C27.88 61.47, 42.76 43.48, 78.99 -1.58 M11.81 76.32 C30.61 54.23, 50.01 31.25, 79.07 -0.79 M20.04 77.72 C40.48 51.96, 60.21 30.34, 86.22 -1.38 M17.96 76.56 C39.16 51.89, 61.52 28.28, 84.91 -0.41 M22.96 78.25 C48.92 50.6, 72.91 19.88, 89.8 -0.9 M23.58 76.43 C38.73 60.9, 51.76 43.97, 90.76 0.72 M29.68 76.56 C52.28 50.14, 80.22 19.8, 94.81 -0.63 M28.84 76.01 C43.28 59.13, 59.67 42.51, 96.17 -0.39 M35.29 77.04 C51.23 57.01, 66.46 42.37, 100.8 1.81 M34.11 76.64 C57.46 49.36, 81.97 19.87, 100.17 0.17 M39.62 75.87 C62.96 50.7, 88.04 22.79, 107.38 -0.74 M39.98 77.07 C62.49 51.31, 84.28 26.28, 105.37 -0.56 M46.34 76.77 C63.32 56.34, 79.32 33.26, 109.41 -1.34 M44.82 77.67 C57.63 61.99, 71.97 45.09, 111.46 -0.26 M48.57 78.5 C71.03 54.62, 93.16 31.73, 117.93 1.42 M50.89 76.58 C63.46 60.62, 77.25 45.66, 116.67 -0.36 M56.04 78.58 C74.54 54.52, 96.56 31, 122.55 -0.7 M55.87 77.95 C78.32 50.54, 102.71 21.94, 122.57 0.36 M60.67 76.86 C80.84 53.19, 98.79 32.64, 125.88 2.29 M60.9 76.07 C78.81 55, 98.17 33.93, 126.95 0.23 M63.73 75.16 C89.49 54.1, 108.47 26.97, 132.51 -1.04 M66.21 77.62 C80.95 58.2, 96.31 41.71, 133.21 -0.36 M68.82 77.67 C87.7 58.73, 104.44 40.5, 136.12 0.12 M70.45 76.54 C89.89 55.81, 107.56 34.96, 137.93 1.2 M76.22 78.77 C99.28 51.04, 120.37 29.65, 145.08 -1.58 M75.59 76.54 C100.71 47.53, 126.1 17.85, 142.9 -0.06 M81.35 78.96 C97.47 58.02, 115.13 37.06, 149.62 -0.02 M81.73 77.47 C105.21 49.75, 129.06 21.25, 148.74 -0.49 M87.72 77.21 C102.42 57.37, 117.51 39.25, 155.43 0.03 M86.52 76.3 C110.58 49.15, 135.36 23.99, 152.91 0.33 M90.06 78.59 C107.02 57.92, 125.25 38.94, 158.8 -1.49 M92.73 77.3 C118.12 46.89, 144.88 16.27, 159.31 -0.17 M95.91 77.88 C111.44 60.6, 123.81 45.25, 158.32 6.5 M98.3 76.21 C113.96 57.68, 129.51 38.59, 158.41 7.38 M100.82 75.22 C123.98 53.01, 144.31 31.94, 156.37 12.72 M101.91 76.44 C120.63 57.14, 136.03 36.87, 159.19 13.39 M109.9 75.71 C128.44 54.59, 144.27 32.28, 157.11 17.79 M109.02 77.27 C118 65.47, 129.68 51.7, 159.55 18.1 M112.97 77.06 C130.02 59.34, 144.07 43, 157.43 24.79 M113.47 78.03 C126.67 62.63, 138.08 47.77, 157.69 24.73 M118.21 77.2 C134.04 57.38, 150.41 40.54, 159.92 31.65 M119.53 76.24 C129.2 65.6, 137.39 53.68, 159.55 30.41 M123.26 77.92 C135.76 64.31, 142.24 53.39, 160.04 38.79 M123.43 77.9 C130.67 68.56, 137.77 59.62, 158.4 36.42 M128.84 76.44 C140.6 64.48, 150.27 51.44, 159.04 45.44 M129.47 77.58 C139.7 63.16, 151.62 51.8, 158.17 43.03 M133.9 77.13 C140.12 69.2, 145.49 62.94, 158.38 49.59 M133.56 76.64 C139.58 71.3, 145.76 65.07, 158.38 50.02 M141.2 75.04 C147.28 72.36, 150.13 64.31, 158.16 55.81 M139.28 77.44 C144.4 70.34, 148.62 65.3, 158.91 55.1 M144.51 75.6 C149.85 70.16, 154.03 64.74, 158.05 59.64 M145.44 77.52 C148.7 71.84, 154.33 67.24, 159.46 60.81 M150.35 77.58 C152.23 75.53, 154.22 71.3, 159.69 67.38 M150.36 76.11 C151.61 74.93, 153.25 72.65, 158.87 67.09 M155.76 76.77 C156.13 76.2, 156.55 76.09, 158.51 74.33 M155.81 76.92 C156.32 76.36, 156.69 75.68, 158.15 74.1" stroke="#fab005" stroke-width="0.5" fill="none"></path><path d="M-1.06 0.46 C35.27 0.43, 69.59 0.88, 157.14 -0.73 M-0.87 0.37 C44.35 1.17, 90.54 2.37, 157.68 -0.35 M158.94 -0.34 C159.5 24.45, 160.3 52.84, 156.58 75.75 M158.85 0.79 C157.54 27.17, 157.42 53.04, 157 75.34 M157.02 74.75 C102.61 74.54, 46.43 78.24, -0.19 74.98 M157.38 75.63 C106.68 74.43, 56.77 75.66, 0.88 75.7 M-1.45 74.57 C-1.75 48.82, -1.03 22.43, 1.14 1.62 M0.79 75.39 C-1.06 50.28, 0.5 26.08, -0.17 0.4" stroke="#000000" stroke-width="1" fill="none"></path></g><g stroke-linecap="round" transform="translate(497.03317849523194 169.50390625) rotate(0 95 38)"><path d="M0 0 C0 0, 0 0, 0 0 M0 0 C0 0, 0 0, 0 0 M-0.18 6.53 C1.37 4.43, 2.19 2.97, 5.28 0.46 M-0.33 6.59 C1.34 4.94, 2.95 2.94, 5.02 0.21 M1.13 11.8 C1.52 10.01, 5.45 6.34, 11.04 -0.12 M0.87 11.26 C4.65 7.43, 8.31 2.95, 10.98 0.76 M-0.17 19 C2.54 12.14, 7.62 8.64, 14.64 1.31 M0.04 17.44 C4.62 13.01, 7.26 9.1, 16.17 -0.01 M0.88 25.85 C8.77 15.04, 14.47 5.76, 20.45 -1.79 M0.3 25.07 C6.39 15.66, 13.97 8.92, 21.42 -0.9 M1.96 30.23 C8.75 19.72, 17.03 8.9, 27.25 -0.18 M0.61 29.89 C7.55 22.86, 12.85 14.25, 26.57 0.48 M-1.42 37.79 C12.94 23.69, 24.48 10.83, 31.07 1.72 M-0.5 36.28 C9.94 24.69, 21.01 14.33, 31.44 -0.7 M-0.04 44.5 C10.22 31.23, 18.69 19.79, 37.68 0.19 M-0.53 42.06 C9.86 31.85, 17.46 22.88, 36.93 0.56 M0.7 47.33 C15.03 33.69, 28.89 16.8, 41.43 -1.36 M-0.75 49.67 C11.57 35.01, 24.2 22.77, 42.39 -0.17 M-0.99 55.31 C17.32 37.3, 30.79 20.01, 45.67 1.9 M0.52 53.58 C16.03 36.77, 30.7 19.09, 46.62 0.13 M1.06 59.96 C12.32 47.06, 28.31 31.94, 53.56 -1.33 M0.9 61.26 C19.19 37.47, 38.79 15.61, 53.26 0.71 M-0.78 66.36 C21.03 42.58, 42.97 17.65, 56.5 -0.14 M0.71 66.61 C10.72 53.48, 24.54 38.71, 57.75 -0.13 M-0.31 71.84 C22.47 50.35, 41.33 25.7, 65 0.96 M-0.82 73.11 C19.01 51.79, 36.04 29.26, 64.76 -0.25 M0.18 78.28 C24.13 48.63, 51.03 19.91, 69.03 0.43 M2.65 76.57 C15.02 59.96, 28.68 44.46, 69.14 -0.78 M8.77 79.04 C26.81 52.24, 50.45 25.31, 72.9 -1.93 M6.08 78.49 C32.42 48.06, 57.32 18.41, 75.32 0.56 M11.68 78.09 C26.68 62.2, 40.66 46.24, 79.65 1.4 M13.31 77.63 C36.26 49.32, 60.31 24.07, 80.31 0.42 M16.81 75.62 C44.05 50.1, 69.18 21.48, 85.93 0.01 M17.15 78.04 C33.54 56.71, 50.82 38.17, 85.08 0.51 M24.64 78.87 C48.38 47.66, 73.64 19.39, 90.35 0 M22.92 76.37 C42.75 53.73, 63.36 30.68, 89.53 0.5 M28.62 76.58 C51.8 48.92, 82.06 18.51, 96.37 -1.76 M27.34 76.68 C44.22 59.07, 60.46 41.79, 95.92 -1.24 M34.05 77.3 C60.14 47.67, 87.57 13.69, 100.67 0.89 M33.98 77.3 C50.47 56.73, 69.29 37.39, 99.78 -0.75 M38.47 75.84 C55.26 57.85, 72.04 38.52, 108.03 1.64 M38.23 77.59 C57.76 54.18, 77.72 31.53, 105.4 0.25 M41.83 76.29 C61.86 59.45, 78.76 39.51, 111.7 0.18 M44.04 77.51 C61.27 58.43, 75.75 39.77, 110.73 -0.75 M50.21 78.75 C65.24 60.89, 78.68 43.71, 115.62 1.28 M50.15 76.72 C70.07 55.45, 89.26 32.75, 116.18 0.45 M55.43 77.9 C67.58 61.24, 81.33 45.91, 122.09 1.42 M54.33 77.59 C68.56 61.82, 82.97 45.53, 122.81 -0.13 M61.26 78.11 C79.69 53.65, 99.6 31.25, 127.41 -0.58 M60.14 76.8 C84.11 47.93, 111.13 19.19, 126.59 0.37 M63.87 75.88 C80.02 63.1, 90.72 44.37, 132.09 -0.42 M65.86 78.15 C86.21 52.05, 109.21 27.13, 133.15 -0.76 M70.59 78.15 C89.24 56.09, 107.46 34.65, 137.24 2.02 M69.94 77.35 C94.82 50.78, 118.17 21.22, 136.72 1.02 M76.41 76.7 C93.05 58.02, 108.08 42.01, 143.46 1.07 M75.97 76.86 C98.03 53.41, 118.94 30.15, 143.59 0.29 M82.74 78.53 C104.69 49.58, 130.14 22.03, 147.19 -0.31 M82.04 76.68 C104.77 50.1, 126.7 23.52, 149.02 0.5 M85.87 76.23 C111.85 46.36, 136.79 17.71, 155.57 -0.24 M85.76 77.17 C104.63 55.72, 124.02 33.29, 154.7 0.74 M91.8 78.35 C111.01 57.47, 127 38.43, 158.87 0.53 M91.63 77.86 C110.79 55.33, 130.09 32.45, 159.67 0.62 M96.63 75.8 C110.04 62.46, 122.88 43.43, 165.32 0.94 M96.02 78.29 C118.88 52.12, 140.06 25.32, 163.77 -0.95 M101.43 76.17 C121.61 53.35, 142.15 29.12, 169.49 2.04 M102.61 76.76 C119.96 55.79, 138.22 37.29, 168.57 1.04 M108.63 78.17 C129.01 50.32, 150.7 27.43, 175.18 1.33 M107.29 77.22 C128.34 53.23, 151.41 28.69, 174.81 0.51 M112.87 77.95 C139.45 48.71, 162.6 20.25, 179.79 -0.83 M113.62 78.02 C139.42 46.74, 165.26 18.2, 179.33 1.15 M117.38 75.54 C132.46 59.95, 148.59 41.7, 185.2 1.11 M117.79 76.75 C138.14 54.76, 156.98 32.12, 186.53 -0.84 M124.89 77.12 C142.88 56.88, 162.83 31.92, 190.11 0.3 M124.01 77.06 C141.32 55.52, 158.47 36.63, 191.29 0.14 M129.94 77.54 C144.77 56.46, 164.82 37.49, 191.06 6.66 M129.49 77.45 C144.78 58.19, 161.08 40.53, 190.48 6.62 M133.84 78.54 C153.75 57.1, 172.1 35.79, 189.15 12.09 M133.85 76.09 C155.77 51.52, 178.47 26.43, 190.34 13.82 M140.95 79.24 C157.18 57.62, 174.12 36.31, 189.24 19.52 M140.07 77.65 C151.95 63.59, 162.95 49.6, 190.14 19 M145.63 78.48 C156.89 63.72, 168.94 51.16, 192.18 24.22 M145.92 76.09 C159.92 61.46, 174.62 42.86, 191.06 25.35 M148.59 77.17 C163.03 64.68, 172.31 50.74, 189.05 28.9 M150.91 77.49 C166.26 60.19, 181.44 40.29, 190.96 31.41 M155.09 77.44 C166.16 66.23, 172.13 54.79, 189.53 38.13 M155.07 77.6 C165.93 64.78, 175.85 53.67, 191.29 36.02 M162.63 77.26 C171.48 64.36, 179.81 56.53, 192.13 41.45 M161.14 76.88 C168.35 66.37, 178.69 57.65, 189.9 43.78 M164.56 77.07 C172.4 69.62, 178.39 59.85, 191.79 47.96 M164.84 77.64 C171.92 68.98, 179.63 62.85, 191.24 48.15 M172.37 78.9 C175.34 72.25, 181.19 63.74, 191.63 57.02 M171.59 77.5 C175.76 71.62, 181.22 65.15, 190.59 54.54 M175.99 76.74 C178.47 72.01, 180.95 71.84, 189.08 61.29 M175.51 78.3 C181.72 70.63, 188.06 65.35, 190.83 61.83 M182.42 78.35 C183.56 73.64, 186.84 72.13, 191.66 68.58 M182.49 77 C183.79 75.38, 185.81 72.7, 191.06 67.3 M186.55 77.87 C188.48 76.52, 189.54 74.77, 190.24 74.39 M186.86 77.67 C188.24 76.32, 189.22 75.09, 190.39 73.84" stroke="#82c91e" stroke-width="0.5" fill="none"></path><path d="M-1.39 -1.45 C56.67 -0.51, 109.89 1.79, 191.32 -1.36 M-0.83 0.69 C73.42 -0.25, 145.85 -0.12, 190.3 -0.94 M188.68 -0.33 C189.28 23.23, 190.58 49.21, 188.32 77.24 M189.4 0.55 C190.08 22.74, 190.49 45.59, 189.96 76.45 M189.25 74.79 C132.38 78.24, 71.8 79.26, -0.89 76.75 M190.98 76.41 C129.94 77.79, 69.61 76.72, -0.52 76.74 M0.61 76.44 C1.48 57.17, -0.6 41.53, 1.5 0.73 M-0.84 75.75 C-0.19 48.49, -0.32 20.47, 0.95 -0.26" stroke="#000000" stroke-width="1" fill="none"></path></g><g stroke-linecap="round" transform="translate(450.33786599523194 553.45703125) rotate(0 79 37.58203125)"><path d="M0 0 C0 0, 0 0, 0 0 M0 0 C0 0, 0 0, 0 0 M-0.58 7.14 C1.83 3.44, 3.24 1.19, 4.37 -0.16 M-0.08 6.63 C1.12 4.32, 3.54 2.58, 4.64 0.72 M-0.71 13.34 C4.42 8.5, 5.41 5.28, 10.58 -0.52 M-0.63 12.31 C3.12 8.84, 6.33 5.85, 10.63 0.27 M0.45 18.93 C4.72 11.73, 9.84 4.79, 16.93 2.01 M-1.01 19.13 C4.69 12.48, 9.29 8.19, 15.5 -0.23 M0.49 23.59 C6.13 15.86, 14.9 9.42, 23.14 1.84 M0.09 24.14 C5.16 18.13, 10.06 12.61, 20.5 0.38 M0.8 32.33 C7.41 22.79, 10.42 16.35, 25.38 1.39 M-0.47 30.14 C8.84 20.81, 16.97 11.79, 25.33 0.57 M0.21 35.27 C5.26 29.98, 14.85 21.34, 33.05 -1.46 M0.4 36.57 C8.98 27.92, 16.71 17.54, 31.66 0.36 M1.12 43.89 C12.91 26.9, 27.45 14.6, 35.9 2.16 M0.63 42.04 C11.26 31.05, 20.31 19.61, 36.71 -0.33 M-0.08 50.89 C17.69 30.91, 33.29 9.34, 41.63 -0.31 M-0.13 48.79 C14.35 32.05, 29.77 13.29, 43.32 0.43 M-0.02 54.57 C14.78 38.85, 31.8 21.52, 47.04 0.81 M0.88 53.59 C17.22 36.65, 32.84 16.74, 47.49 0.82 M-1.25 62.45 C17.49 42.15, 34.6 23.71, 51.64 1.05 M-0.91 61.94 C19.03 39.3, 38.05 19.36, 52.48 -0.57 M0.74 67.66 C14.37 48.54, 31.01 30.5, 56.78 1.42 M0 67.01 C20.05 44.27, 41.14 20.25, 58.32 -0.53 M-0.07 72.77 C18.79 51.74, 38.73 27.36, 63.27 -0.01 M0.07 72.09 C14.57 56.83, 28.4 40.89, 63.92 -1.07 M0.13 75.49 C25.06 49.62, 45.25 26.26, 70.52 -0.39 M1.44 76.73 C27.07 47.32, 52.87 15.39, 68.62 0.79 M9.34 75.94 C27.49 56.41, 43.06 37.22, 74.15 -0.58 M6.83 76.74 C31.9 46.8, 56.65 18.74, 74.22 -0.79 M10.93 76.93 C27.38 59.09, 41.78 44.28, 81.13 -1.42 M13.04 76.87 C29.23 57.22, 45.25 38.63, 78.59 -0.3 M17.14 78.42 C34.45 60.38, 49.6 40.1, 83.37 -0.19 M19.01 75.95 C39.44 53.8, 59.65 30.12, 85.71 -0.71 M24.94 77.01 C47.85 50.13, 72.77 21.93, 88.9 1.08 M23.99 76.86 C48.88 49.47, 73.96 19.94, 89.23 0.79 M29.61 77.49 C46.42 54.28, 68.5 33.12, 95.43 -0.81 M29.7 76.72 C51.52 49.32, 75.03 24.73, 96.53 -1.12 M31.92 76.52 C51.58 58.15, 66.85 38.57, 101.55 1.43 M33.8 77.06 C53.44 54.55, 71.66 34.14, 100.3 0.4 M39.72 78.21 C67.79 46.13, 91.07 15.71, 108.28 1.16 M40.03 76.02 C62.75 49.1, 86.31 21.38, 106.58 0.44 M43.08 77.8 C63.6 53.36, 85.34 30.77, 110.26 1.5 M43.74 76.53 C69.94 47.76, 93.99 20.74, 110.34 0.59 M51.89 77.23 C76.75 46.4, 101.33 17.09, 116.65 -0.35 M49.94 76.52 C63.21 62.13, 77.46 45.42, 116.9 -0.13 M55.03 76.78 C77.71 48.51, 101.41 23.81, 121.62 -1.25 M54.89 77.07 C73.77 56.36, 93.22 34.27, 122.7 -0.87 M61.97 74.72 C77.75 57.2, 92.35 41.4, 126.68 -0.15 M60.13 76.62 C81.51 51.22, 102.59 28.62, 126.26 -0.46 M65.87 78.92 C87.01 51.38, 110.76 21.99, 133.69 -1.82 M66.08 77.17 C90.11 48.43, 115.35 19.36, 133.49 -0.5 M72.6 79.2 C91.27 55.74, 107.6 33.84, 135.97 -1.17 M71.42 77.18 C89.14 55.91, 108.26 34.21, 137.28 0.82 M75.1 75.25 C97.52 54.11, 117.22 29.94, 143.94 0.35 M75.95 76.05 C92.49 57.37, 109.03 39, 143.59 -1.08 M79.82 76.48 C99.73 57.75, 120.98 31.91, 148.22 -1.59 M81.41 76.54 C99.62 57.16, 117.67 36.62, 148.97 1.02 M87.66 78.39 C109.66 51.87, 130.28 27.33, 153.28 1.39 M86.9 77.68 C111.59 48.03, 137.38 19.54, 154.67 0.31 M93.13 78.2 C113.51 51.4, 134.01 26, 160.56 2.02 M92.47 77 C105.76 59.86, 121.71 44, 158.16 0.17 M97.95 78.48 C120.64 52.69, 139.88 24.52, 160.17 7.79 M97.13 76.69 C115.79 54.74, 134.32 33.3, 159.3 7.11 M102.16 78.78 C120.39 56.93, 137.29 37.68, 156.41 11.46 M102.45 77.82 C116.2 61.74, 128.79 46.31, 158.29 13.86 M109.78 75.25 C120.96 59.99, 138.9 42.31, 157.71 17.3 M108.61 76.48 C121.34 60.11, 136.37 45, 158.03 18.17 M111.93 76.25 C126.58 62.96, 137.15 48.67, 159.6 23.68 M113.95 78.01 C121.54 67.39, 130.9 56.19, 157.55 25.98 M120.42 77.99 C130.6 67.84, 138.3 56.72, 157.72 31.44 M119.08 77.15 C134.27 60.55, 147.48 43.19, 159.45 30.3 M122.93 76.16 C135.23 66.77, 143.66 51.63, 158.92 35.53 M124.37 76.26 C137.21 61.61, 150.52 44.63, 159.43 37.48 M128.57 77.55 C134.35 71.07, 141.23 62.8, 158.22 45.36 M130.08 77.5 C140.18 64.89, 148.64 53.74, 157.71 44.05 M135.07 75.66 C143.38 67.9, 152.65 53.95, 157.25 48.67 M133.88 77.01 C139.5 71.28, 145.28 65, 157.88 49.26 M138.36 78.33 C144.75 69.38, 150.06 64.71, 158.62 55.48 M140.93 77.09 C145.34 71.87, 150.17 65.36, 157.71 55.44 M143.71 75.41 C151.39 71.74, 153.27 67.45, 158.91 62.34 M145.44 76.4 C149.6 71.69, 152.94 67.81, 158.62 60.97 M151.08 77.65 C152.88 74.1, 153.71 71.97, 159.3 67.88 M150.71 76.35 C152.71 74.23, 154.35 73.23, 158.91 68.11 M155.65 76.75 C156.34 75.95, 157.55 75.02, 158.03 74 M155.48 76.87 C156.46 75.89, 157.51 74.78, 158.32 73.93" stroke="#fab005" stroke-width="0.5" fill="none"></path><path d="M0.96 -1.53 C48.4 -1.82, 92.04 -3.26, 156.47 -1.67 M0.19 -0.04 C61.97 -0.23, 124.23 -0.29, 158.43 -0.61 M157.58 -1.01 C160.02 24.16, 159.32 45.29, 156.42 75.28 M158.01 0.38 C157.63 15.27, 158.88 31.98, 158.61 74.3 M159.07 75.06 C97.56 78.28, 38.61 77.09, 1.96 75.08 M157.73 75.8 C116.17 75.06, 75.66 74.42, -0.64 74.35 M0.95 75.29 C-1.87 48.2, -2.03 24.84, -1.1 -1.21 M0.5 75.17 C0.76 58.94, -0.74 41.12, 0.55 0.32" stroke="#000000" stroke-width="1" fill="none"></path></g><g stroke-linecap="round" transform="translate(450.52536599523194 686.53515625) rotate(0 79 37.58203125)"><path d="M0 0 C0 0, 0 0, 0 0 M0 0 C0 0, 0 0, 0 0 M0.06 5.64 C2.21 4.84, 4.4 2.58, 5.74 0.61 M-0.14 6.47 C1.57 3.75, 4.01 1.61, 4.96 0.33 M0.17 13.03 C2.43 9.1, 6.43 3.38, 10.66 -0.18 M0.32 11.92 C2.47 8.82, 5.88 5.06, 10.54 0.05 M0.48 20.01 C2.79 11.69, 10.14 5.9, 16.94 -1.52 M0.2 18.33 C5.81 11.64, 12.28 4.86, 15.1 0.38 M1.53 22.8 C5.2 17.75, 12.89 9.93, 21.5 1.92 M-0.51 24.65 C3.59 19.95, 8.82 14.23, 21.71 0.17 M0.17 32.36 C5.38 23.11, 14.07 14.37, 28.23 2.21 M0.57 29.7 C9.17 19.03, 20.8 6.8, 27.05 0.19 M-1.08 36.36 C11.82 24.15, 22.28 11.41, 30.73 -1.74 M-0.44 37.26 C11.47 22.87, 23.72 10.74, 31.58 -0.94 M0.39 43.34 C11.37 26.88, 24.8 10.48, 35.45 -0.51 M-0.85 42.55 C7.55 31.97, 16.51 22.86, 37.04 -0.45 M1.66 50.53 C13.52 34.74, 23.19 19.79, 43.29 1.39 M-0.47 48.65 C15.65 32.45, 29.64 14.12, 42.53 0.68 M-0.68 56.29 C14.43 39.81, 26.71 24.6, 48.76 1.2 M-0.28 55.44 C15.4 37.86, 28 23.29, 48.1 0 M0.51 59.7 C11.44 48.79, 24.44 33.13, 53.58 1.48 M-0.82 61.78 C20.12 38.61, 40.16 16.6, 52.76 -0.3 M-0.06 68.9 C18.73 46.67, 36.66 25.53, 57.79 1.79 M-0.81 66.43 C21 41.31, 42.79 16.86, 58.08 0.83 M-1.69 73.04 C22.53 49.62, 41.82 24.46, 65.41 -1.75 M-0.3 72.52 C12.79 57.07, 26.87 42.97, 64.24 -0.51 M2.62 75.85 C17.72 57.09, 35.07 40.16, 67.56 -0.74 M2.17 77.73 C23.98 50.08, 48.32 23.53, 69.58 1.01 M8.58 75.02 C23.29 59.35, 34.41 43.55, 76.05 1 M8.31 76.2 C33.87 46.52, 59.54 14.37, 74.71 0.15 M11.76 78.39 C35.52 49.87, 62.13 23.43, 78.56 -0.83 M11.72 77.29 C36.04 49.43, 62.59 20, 80 -0.73 M17.11 78.48 C37.76 52.91, 57.26 33.05, 84.2 0.55 M17.84 76.68 C36.39 56.61, 53.53 35.22, 85.71 0.51 M22.79 75.93 C50.62 49.24, 76.59 15.95, 90.7 -1.34 M22.2 76.35 C41.64 54.2, 62.17 33, 89.51 0.02 M29.79 75.08 C48.12 53.43, 69.16 32.22, 93.99 1.34 M28.54 76.77 C49 53.49, 68.88 32.05, 96.56 0.09 M33.09 75.64 C57.06 49.61, 82.73 20.18, 99.34 -1.58 M34.31 77.08 C60.3 47.35, 86.11 17.67, 101.07 -0.59 M39.23 76.26 C64.03 46.73, 90.63 21.14, 106.99 1.32 M38.76 77.27 C63.34 48.99, 86.86 23.17, 106.36 -0.84 M45.48 78.22 C71.91 48.44, 95.1 17.54, 111.27 -1.3 M44.52 76.36 C60.99 58.46, 77.18 38.84, 110.42 -0.7 M49.45 77.01 C64.57 58.98, 81.24 42.85, 117.56 0.8 M49.61 76.64 C68 57.49, 84.68 36.83, 115.32 -0.56 M56.22 77.98 C70.67 60.96, 83.11 42.09, 120.72 -0.67 M55.07 77.79 C74.73 54.59, 95.58 30.69, 122.06 -0.71 M59.95 75.92 C86.73 50.41, 108.93 20.18, 127.46 -0.64 M60.98 77.11 C77.42 57.74, 93.78 39.37, 127.41 1.12 M67.02 78.76 C86.49 51.28, 109.23 26.5, 133.36 -0.33 M66.01 77.68 C85.57 54.73, 104.77 32.41, 133.31 0.67 M68.99 75.87 C87.45 57.66, 107.22 36.9, 137.93 0.41 M70.88 77.34 C88.11 57.5, 105.03 37.22, 138.43 -0.64 M77 77.97 C94.48 55.5, 114.19 36.42, 142.29 -1.32 M77.15 77.08 C101.75 48.13, 126.99 20.08, 142.24 0.46 M80.22 77.03 C104.02 51.12, 128.62 22.28, 148.27 0.19 M82.09 77.49 C97.45 56.95, 117 36.65, 148.58 -0.71 M86.75 78.58 C103.69 55.89, 120.03 37.47, 152.05 -1.14 M86.08 77.73 C101.89 60.62, 116.54 42.04, 153.71 -0.6 M90.79 77.41 C111.1 54.84, 130.81 35.52, 159.26 0.47 M92.19 77.67 C117.2 46.38, 143.63 17.28, 157.88 0.76 M98.27 77.13 C118.2 54.12, 139.71 28.32, 156.72 5.07 M98.19 76.11 C119.03 50.61, 141.26 25.63, 159.47 6.74 M101.93 77.84 C116.5 60.08, 130.37 43.97, 157.93 13.44 M102.18 76.96 C120.36 57.93, 136.87 38.65, 158.95 13.18 M107.01 75.73 C126.84 58.67, 141.97 38.23, 157.02 17.42 M108.62 77.42 C120.34 64.83, 129.78 50.41, 159.24 19.16 M114.31 78.7 C121.42 64.01, 134.31 53.14, 159.74 26.42 M113.89 76.17 C126.71 61.14, 139.96 46.37, 159.17 24.23 M117.85 78.02 C129.91 63.75, 138.14 51.95, 160.41 31.83 M118.33 77.56 C128.08 65.48, 139.22 54.07, 158.84 31.26 M124.02 75.92 C128.74 68.35, 137 60.12, 157.1 38.65 M123.87 77.81 C137.96 61.43, 150.39 44.99, 159.22 36.69 M129.13 77.23 C135.44 69.77, 144.24 59.58, 156.53 41.81 M130.03 77.17 C135.29 69.44, 141.87 62.95, 157.57 43.42 M134.61 77.02 C141.15 69.46, 148.67 59.61, 160.52 50.14 M133.5 76.13 C144.29 65.15, 154.34 54.8, 158.24 49.27 M140.59 76.16 C146.74 68.05, 150.42 64.39, 160.4 54.17 M140.22 77.59 C145.77 69.74, 151.7 63.66, 157.54 55.45 M145.06 77.05 C149.29 71.46, 149.81 69.58, 157.95 62.52 M144.92 77.08 C149.11 71.45, 152.6 67.97, 159.14 61.42 M149.94 75.75 C153.53 73.02, 157.13 69.04, 157.34 68.76 M150.98 76.8 C152.21 74.03, 154.42 72.2, 158 67.34 M155.28 77.34 C156.7 76.15, 157.48 75.39, 158.25 74.33 M155.54 76.88 C156.48 76.11, 157.07 75.67, 158.21 74.01" stroke="#fab005" stroke-width="0.5" fill="none"></path><path d="M0.44 1.34 C60.78 -0.19, 121.93 -0.13, 159.83 -0.06 M0.21 -0.57 C49.83 -0.18, 98.45 -1.67, 158.89 -0.2 M158.61 -1.6 C160.06 25.37, 156.84 52.42, 158.86 75.98 M157.72 -0.12 C157.46 16.91, 157.2 33.66, 158.94 75.21 M159.03 76.88 C112.84 75.35, 69.97 74.99, -1.82 74.65 M158.42 75.61 C109.52 73.6, 59.85 73.73, 0.06 75.2 M1.43 74.44 C1.22 47.87, -1.28 18.49, 0.34 1.58 M0.24 76.15 C0.57 48.34, -0.02 20.44, 0.65 -0.62" stroke="#000000" stroke-width="1" fill="none"></path></g><g transform="translate(458.30661599523194 457.87890625) rotate(0 74 12.5)"><text x="74" y="18" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="middle" style="white-space: pre;" direction="ltr">foo_archive</text></g><g transform="translate(466.29880349523216 329.6953125) rotate(0 74 12.5)"><text x="74" y="18" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="middle" style="white-space: pre;" direction="ltr">test_archive</text></g><g transform="translate(502.03317849523194 195.00390625) rotate(0 90 12.5)"><text x="90" y="18" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="middle" style="white-space: pre;" direction="ltr">test_source.go</text></g><g transform="translate(455.33786599523194 578.5390625) rotate(0 74 12.5)"><text x="74" y="18" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="middle" style="white-space: pre;" direction="ltr">bar_archive</text></g><g transform="translate(455.52536599523194 711.6171875) rotate(0 74 12.5)"><text x="74" y="18" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="middle" style="white-space: pre;" direction="ltr">main_archive</text></g><g stroke-linecap="round"><g transform="translate(299.17380349523194 465.3189389876247) rotate(0 73.47540276870131 2.7646880106362772)"><path d="M-0.39 1.03 C24.32 1.54, 122.9 3.15, 147.34 3.91 M1.6 0.53 C26.32 1.09, 122.91 4.47, 146.87 5" stroke="#000000" stroke-width="1" fill="none"></path></g><g transform="translate(299.17380349523194 465.3189389876247) rotate(0 73.47540276870131 2.7646880106362772)"><path d="M120.11 15.94 C123.24 12.09, 132.43 10.8, 145.69 6.36 M118.49 15.04 C129.65 10.64, 140.44 7.05, 147.79 4.25" stroke="#000000" stroke-width="1" fill="none"></path></g><g transform="translate(299.17380349523194 465.3189389876247) rotate(0 73.47540276870131 2.7646880106362772)"><path d="M120.71 -4.58 C123.85 -3.85, 132.91 -0.57, 145.69 6.36 M119.09 -5.47 C130.16 -2.01, 140.72 2.27, 147.79 4.25" stroke="#000000" stroke-width="1" fill="none"></path></g></g><g stroke-linecap="round"><g transform="translate(580.4023922425737 259.7343750000002) rotate(0 -10.502589330903334 18.976478547239566)"><path d="M0.28 0.25 C-3.18 6.54, -17.12 31.05, -20.54 37.12 M-1.04 -0.67 C-4.63 5.88, -18.01 32.22, -21.28 38.62" stroke="#000000" stroke-width="1" fill="none"></path></g><g transform="translate(580.4023922425737 259.7343750000002) rotate(0 -10.502589330903334 18.976478547239566)"><path d="M-18.25 18.11 C-19.71 25.23, -21.29 30.05, -21.56 39.38 M-19.5 17.1 C-19.2 22.65, -20.24 25.77, -20.84 39.55" stroke="#000000" stroke-width="1" fill="none"></path></g><g transform="translate(580.4023922425737 259.7343750000002) rotate(0 -10.502589330903334 18.976478547239566)"><path d="M-5.25 24.74 C-10.77 29.81, -16.44 32.54, -21.56 39.38 M-6.5 23.74 C-8.8 27.98, -12.5 29.74, -20.84 39.55" stroke="#000000" stroke-width="1" fill="none"></path></g></g><g stroke-linecap="round"><g transform="translate(296.07224099523194 585.9776615134668) rotate(0 72.6821832023561 2.464307691975705)"><path d="M-0.92 0.88 C23.3 1.39, 121.89 3.18, 146.28 3.68 M0.81 0.29 C24.74 0.87, 120.7 3.9, 145.18 4.64" stroke="#000000" stroke-width="1" fill="none"></path></g><g transform="translate(296.07224099523194 585.9776615134668) rotate(0 72.6821832023561 2.464307691975705)"><path d="M118.15 13.54 C125.77 8.71, 137.02 5.35, 147.09 2.86 M116.16 13.25 C123.49 10.72, 132.25 8.43, 145.2 5.54" stroke="#000000" stroke-width="1" fill="none"></path></g><g transform="translate(296.07224099523194 585.9776615134668) rotate(0 72.6821832023561 2.464307691975705)"><path d="M118.78 -6.97 C126.25 -3.92, 137.27 0.61, 147.09 2.86 M116.79 -7.26 C123.99 -4.34, 132.58 -1.17, 145.2 5.54" stroke="#000000" stroke-width="1" fill="none"></path></g></g><g stroke-linecap="round"><g transform="translate(296.50974099523194 719.0583589027482) rotate(0 73.39266086805145 2.270810463165134)"><path d="M0.8 -0.52 C25.13 0.09, 122.64 2.89, 147.02 3.96 M-0.23 1.82 C23.91 2.54, 121.95 4.68, 146.44 5.06" stroke="#000000" stroke-width="1" fill="none"></path></g><g transform="translate(296.50974099523194 719.0583589027482) rotate(0 73.39266086805145 2.270810463165134)"><path d="M117.19 15.94 C127.62 12.06, 141.76 7.04, 146.68 6.11 M118.55 15.54 C128.02 10.72, 139.32 7.75, 146.87 5.94" stroke="#000000" stroke-width="1" fill="none"></path></g><g transform="translate(296.50974099523194 719.0583589027482) rotate(0 73.39266086805145 2.270810463165134)"><path d="M117.58 -4.57 C127.91 -0.54, 141.9 2.35, 146.68 6.11 M118.95 -4.98 C128.32 -2.43, 139.47 1.98, 146.87 5.94" stroke="#000000" stroke-width="1" fill="none"></path></g></g><g transform="translate(304.07614724523194 432.69921875) rotate(0 64 12.5)"><text x="0" y="18" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">GoCompilePkg</text></g><g transform="translate(585.7245847452322 259.0703125) rotate(0 64 12.5)"><text x="0" y="18" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">GoCompilePkg</text></g><g transform="translate(303.22458474523194 554.66015625) rotate(0 64 12.5)"><text x="0" y="18" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">GoCompilePkg</text></g><g transform="translate(302.90817849523194 691.8203125) rotate(0 64 12.5)"><text x="0" y="18" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">GoCompilePkg</text></g><g stroke-linecap="round"><g transform="translate(611.7050534952319 449.734375) rotate(0 52.476153901964494 156.51802825555208)"><path d="M-0.4 -0.86 C5.42 9, 34.59 35.17, 35.8 59.7 C37 84.22, -4.75 132.69, 6.85 146.29 C18.44 159.88, 105.75 141.07, 105.35 141.28 C104.94 141.49, 15.99 134.34, 4.42 147.53 C-7.14 160.71, 35.41 192.65, 35.95 220.38 C36.49 248.1, 12.61 298.23, 7.66 313.89 M1.6 1.31 C7.28 10.74, 34.72 33.91, 35.42 57.72 C36.11 81.53, -5.87 130.08, 5.76 144.18 C17.39 158.27, 105.57 141.74, 105.2 142.29 C104.82 142.85, 15.39 134.11, 3.53 147.51 C-8.33 160.91, 33.22 195.15, 34.04 222.7 C34.86 250.24, 12.72 297.48, 8.43 312.77" stroke="#000000" stroke-width="1" fill="none"></path></g></g><g stroke-linecap="round"><g transform="translate(325.5096350877384 148.70809670914042) rotate(0 82.1724531485562 88.45942824580477)"><path d="M0.88 -0.28 C5.92 4.73, 28.63 18.26, 31.33 30.42 C34.04 42.58, -4.95 67.16, 17.13 72.66 C39.22 78.16, 163.25 62.67, 163.83 63.45 C164.41 64.22, 42.55 65.98, 20.61 77.29 C-1.34 88.6, 35.17 114.46, 32.16 131.31 C29.16 148.16, 7.64 170.6, 2.59 178.39 M-0.12 -1.47 C5.21 3.67, 30.39 19.73, 33.65 31.75 C36.91 43.78, -2.35 65.78, 19.45 70.69 C41.25 75.6, 164.43 60.02, 164.46 61.23 C164.5 62.45, 41.45 65.9, 19.65 77.97 C-2.15 90.03, 36.37 117.04, 33.67 133.64 C30.96 150.24, 8.92 170.17, 3.41 177.58" stroke="#000000" stroke-width="1" fill="none"></path></g></g><g stroke-linecap="round"><g transform="translate(631.3963538377383 315.3604404591405) rotate(0 51.47933810786469 55.25583120997302)"><path d="M1.19 0.15 C2.1 5.05, -1.39 18.85, 6.43 29.62 C14.25 40.39, 29.25 59.4, 48.12 64.8 C66.98 70.2, 117.39 62.45, 119.61 62.01 C121.83 61.57, 80.22 59.44, 61.43 62.15 C42.64 64.85, 19.88 70.34, 6.87 78.25 C-6.15 86.16, -12.57 104.25, -16.65 109.61 M0.35 -0.81 C1.05 4.22, -2.17 20.25, 5.68 30.9 C13.52 41.55, 28.9 57.66, 47.42 63.07 C65.94 68.48, 114.69 63.53, 116.8 63.36 C118.9 63.19, 78.2 59.18, 60.05 62.04 C41.89 64.9, 20.52 72.28, 7.85 80.49 C-4.83 88.71, -12.12 106.43, -16.01 111.32" stroke="#000000" stroke-width="1" fill="none"></path></g></g><g transform="translate(641.7089597452319 556.08203125) rotate(0 31.5 12.5)"><text x="0" y="18" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">GoLink</text></g><g transform="translate(675.5331784952319 393.7890625) rotate(0 31.5 12.5)"><text x="0" y="18" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">GoLink</text></g><g stroke-linecap="round" transform="translate(731.9823972452319 551.75390625) rotate(0 72.5 43.5)"><path d="M0 0 C0 0, 0 0, 0 0 M0 0 C0 0, 0 0, 0 0 M-1.04 6.14 C0.25 5.57, 2.55 3.3, 4.78 0.09 M-0.24 6.55 C2.14 3.92, 3.81 1.97, 5.17 0.2 M1.14 11.32 C1.88 8.06, 7.34 5.17, 11.76 1.23 M-0.4 12.83 C1.97 10.15, 4.8 6.7, 10.38 0.66 M-1.12 17.08 C7.99 11.15, 13.1 5.72, 16.91 -1.01 M-0.85 19.03 C5.21 12.21, 11.85 3.62, 16.2 0.51 M-0.01 23.23 C6.37 17.75, 13.63 7.11, 22.35 -1.42 M1.06 24.24 C7.63 16.47, 15.34 7.69, 20.42 -0.41 M-1.98 29.02 C9.2 19.36, 19.47 7.43, 26.63 1.24 M-0.69 29.6 C7.55 21.11, 13.81 13.64, 25.54 -0.14 M-1.16 37.95 C5.15 30.26, 13.3 19.05, 32.56 1.86 M-0.63 36.46 C10.82 23.66, 22.57 8.9, 31.43 0.43 M-0.7 41.51 C15.43 25.63, 29.37 10.37, 38.71 0.93 M0.85 43.01 C12.85 29.21, 23.49 14.48, 36.82 0.01 M1.6 47.03 C12.68 34.67, 24.9 19.91, 40.96 0.14 M0.42 48.79 C10.97 37, 23.12 23.92, 43.34 -1.02 M-1.72 54.06 C15.09 34.89, 31.91 17.76, 47.67 2.07 M1.13 55.5 C14.44 36.54, 29.66 20.13, 47.15 -0.31 M-0.64 62.01 C17.38 40.22, 33 21.93, 53.28 1.74 M0.05 61.34 C13.9 45.65, 25.85 30.46, 52.92 0.57 M1.27 66.49 C18.17 45, 35.76 22.51, 57.45 -1.71 M-0.37 67.79 C14.42 51.14, 28.9 33.29, 57.45 0.35 M1.32 71.23 C17.23 54.45, 30.34 37.61, 62.68 -1.46 M0.56 72.18 C12.82 57.87, 26.16 44, 63.71 0.25 M0.01 79.93 C16.43 58.38, 34.55 36.51, 69.44 0.72 M0.6 80.04 C18.12 57.4, 36.43 37.98, 68.41 0.15 M2.11 84.61 C29.85 50.47, 57.79 19.89, 73.77 -2.02 M0.01 84.09 C23.66 60.17, 44.7 35.37, 74.05 -1.21 M1.66 91.04 C17.5 69.73, 37.79 50.5, 78.45 2.1 M1.05 90.14 C22.86 64.9, 44.81 37.87, 78.5 -0.04 M9.03 89.32 C22.41 69.61, 39.46 49.94, 86.59 -0.94 M7.45 88.29 C35.26 54.85, 64.51 23.24, 85.04 0.68 M14.08 90.06 C32.93 66.5, 56.18 38.69, 88.76 0.72 M12.02 89.66 C30.32 69.69, 47.57 49.41, 89.97 -0.61 M19.66 86.92 C36.51 71.43, 49.19 51.62, 96.63 0.36 M18.59 89.52 C41.5 60.05, 65.54 33.56, 96.59 0.13 M21.46 88.09 C42.75 68.71, 60.6 46.43, 102.06 0.41 M22.26 89.24 C47.95 59.81, 72.05 32.06, 100.85 0.75 M29.65 87.79 C59.37 52.69, 89.8 20.45, 106.79 0 M29.54 88.49 C53.07 61.07, 77.69 30.93, 105.36 -0.93 M31.97 90.02 C58.47 60.43, 82.44 29.93, 109.49 -1.4 M33.82 89.43 C53.67 68.24, 70.2 47.71, 110.96 -0.92 M39.4 88.09 C57.14 68.4, 75.21 48.34, 114.78 0.42 M39.5 88.88 C57.87 67.84, 76.57 46.09, 116.15 -0.11 M45.22 88.3 C69.93 61.76, 92.78 33.06, 123.61 -1.74 M43.53 88.51 C74.21 55.81, 101.51 22.37, 121.9 0.14 M50.72 89.53 C69.78 62.65, 91.01 41.76, 127.7 1.39 M49.45 89.05 C80.14 53.36, 110.01 19.42, 126.52 0.47 M56.25 90.92 C85.06 56.1, 112.02 23.29, 134.45 -0.08 M54.99 88.47 C79.29 59.27, 105.39 30.73, 133.04 0.4 M58.88 87.42 C86.39 58.17, 113.66 28.6, 138.12 0.46 M60.13 88.12 C88.15 55.56, 116.35 24.24, 136.82 0.62 M67.54 89.46 C85.69 66.3, 103.85 43.1, 141.44 1.68 M66.61 89.01 C83.34 68.8, 101.19 46.97, 143.55 -0.95 M72.58 86.58 C99.75 56.63, 127.05 23.04, 145.4 3.52 M72.07 87.89 C89.91 67.7, 106.79 46.64, 147.54 2.66 M77 87.05 C95.7 66.46, 114.93 42.83, 146.91 6.75 M75.55 89.56 C93 69.3, 109.76 49.32, 147.79 7.56 M81.3 90.2 C102.56 62.39, 125.3 39.02, 145.78 15.58 M80.94 89.67 C103.28 63.71, 125.76 39.28, 147.4 14.18 M85.99 90.37 C105.52 67.08, 129.02 43.39, 147.16 22.09 M87.78 89.26 C101.37 73.38, 113.91 56.46, 146.47 20.28 M93.92 88.74 C107.52 72.93, 124.15 56.2, 147.97 25.58 M92.14 89.18 C106.82 71.6, 122.62 53.95, 146.93 26.84 M99.3 89.69 C113.26 70.71, 130.02 52.94, 147.2 32.45 M98.02 88.99 C111.7 72.57, 125.92 56.92, 147.33 32.53 M102.79 88.48 C117.05 68.72, 133.43 53.13, 146.96 36.57 M102.9 89.17 C118.2 71.52, 132.2 55.71, 146.28 38.6 M109.16 90.81 C118.27 78.18, 131.48 63.94, 147.56 42.93 M107.8 89.32 C116.99 79.24, 125.57 68.24, 146 45.13 M114.37 88.52 C121.52 81.67, 128.76 73.62, 148.5 51.95 M112.87 88.33 C122.8 78.55, 131.87 68.29, 147.72 49.9 M119.24 87.13 C127.09 78.71, 133.31 74.44, 146.88 55.44 M119.41 88.56 C127.4 78.31, 136.05 69.7, 146.54 56.87 M124.54 89.53 C132.71 82.36, 138.15 71.53, 147.77 64.41 M123.49 90.06 C131.16 80.85, 137.17 72.17, 146.26 62.62 M128.65 87.58 C132.79 85.52, 138.17 78.61, 149.23 69.46 M129.94 88.73 C133.83 82.95, 139.72 76.87, 146.8 69.26 M134.62 89.7 C138.2 87.01, 142.2 82.61, 145.48 76.35 M134.02 88.54 C138.57 83.71, 143.09 78.38, 147.71 74.64 M140.04 88.69 C141.95 86.36, 143.44 84.34, 147.11 81.97 M139.71 89.15 C142.34 85.84, 144.46 84.1, 146.24 81.22" stroke="#15aabf" stroke-width="0.5" fill="none"></path><path d="M1.72 1.51 C33.76 0.02, 65.95 0.83, 143.39 1.73 M0.63 -0.6 C29.1 0.76, 59.13 -0.09, 145.58 0.69 M144.05 0.66 C146.3 33.14, 147.41 65.49, 143.65 86.43 M144.56 -0.55 C144.79 23.81, 143.87 45.19, 144.47 87.44 M145.99 86.61 C102.53 86.4, 63.75 89.88, 1.76 87.96 M145.51 87.44 C97.63 86.72, 50.09 86.54, -0.57 86.71 M-1.52 87.3 C0.01 61.6, 0.3 38.48, -0.66 -1.97 M-0.18 86.71 C-0.11 65.18, -0.02 43.5, -0.65 0.55" stroke="#000000" stroke-width="1" fill="none"></path></g><g stroke-linecap="round" transform="translate(760.1620847452319 335.91796875) rotate(0 72.5 43.5)"><path d="M0 0 C0 0, 0 0, 0 0 M0 0 C0 0, 0 0, 0 0 M-0.58 6.02 C1.82 4.5, 2.43 2.18, 4.39 0.06 M0.14 6.03 C1.48 4.69, 3.01 2.71, 4.68 0.68 M-1.4 10.55 C2.71 8.37, 5.16 7.35, 9.8 -0.19 M-0.08 12.7 C4.14 8.17, 7.43 4.65, 9.89 0.72 M-0.42 18.28 C4.52 12.5, 9.77 8.27, 17.61 2.16 M-0.27 18.46 C3.21 13.23, 7.79 8.43, 15.22 0.02 M-0.53 23.44 C4.04 18.43, 10.71 10.46, 22.41 0.42 M0.45 23.96 C6.28 17.81, 10.83 13.15, 20.61 -0.26 M-0.23 31.19 C4.78 23.2, 11.89 17.7, 27.69 -1.26 M0.16 31.44 C6.08 24.72, 11.05 16.12, 26.99 -0.55 M0.8 35.29 C11.9 25.16, 23.5 11.42, 31.61 -0.66 M0.36 36.37 C6.08 29.59, 12.77 21.23, 32.84 0.82 M-0.29 41.56 C10.72 29.91, 17.27 19.27, 37.91 2.22 M0.81 41.98 C9.02 32.97, 17.92 21.6, 37.57 0 M0.91 47.84 C8.15 36.65, 19.13 29.02, 41.56 0.68 M0.34 49.77 C12.82 34.67, 25.65 18.97, 41.58 -0.19 M1.03 56.29 C16.03 35.9, 35.24 14.66, 47.86 1.04 M0.26 54.37 C11.13 41.36, 22.45 28.36, 47.8 -0.07 M0.02 61.05 C20.97 34.57, 40.81 13.19, 54.09 -1.83 M-0.07 61.81 C11.27 47.8, 22.34 35.7, 53.79 -0.91 M-1.85 68.6 C13.37 51.53, 30.15 35.29, 56.59 -0.79 M0.18 66.37 C21.31 41.48, 43.82 16.98, 57.29 -0.76 M-1.59 73.66 C24.7 45.85, 48.74 14.78, 64.45 -0.9 M0.12 73.09 C25.43 44.66, 49.2 18.08, 64.24 -0.25 M0.9 79.03 C18.39 57.33, 40.09 35.06, 70.58 0.3 M0.02 80.19 C20.68 54.7, 41.4 30.25, 68.43 -0.37 M-0.19 83.99 C21.55 60.9, 43 36.82, 73.36 0.32 M0.68 85.97 C17.25 66.39, 34.1 47.4, 73.46 -0.37 M0.53 89.67 C26.85 62.8, 51.44 32.58, 79.75 -0.57 M0.99 88.77 C31.02 52.96, 62.81 18.08, 80.39 0.53 M6.61 89.63 C33.67 58.56, 57.73 30.16, 86.93 0.23 M7.37 88.18 C33.34 60.6, 58.83 29.21, 85.76 -0.75 M10.98 90.12 C33.66 65.05, 51.41 44.38, 89.44 -0.7 M13.36 89.73 C28.73 71.44, 43.95 51.67, 89.14 -0.92 M17.47 88.54 C45.47 56.48, 77.07 24.74, 96.75 -1.19 M17.59 88.03 C39.01 65.23, 60.71 40.82, 95.23 -0.13 M24.57 88.93 C48.72 62.33, 70.59 35.85, 100.45 -1.84 M24.06 88.75 C41.56 69.47, 60.25 47.57, 101.41 0.16 M27.15 89.51 C46.85 70.12, 61.22 50.21, 107.83 1.6 M28.18 88.77 C56.41 56.61, 84.38 22.86, 105.76 -0.54 M35.54 90.38 C61.06 58.29, 89.35 27.17, 113.02 1.84 M34.34 88.43 C49.6 70.05, 67.41 48.87, 110.71 0.35 M41.14 89.09 C59.02 62.8, 79.39 39.86, 117.96 0.44 M40.01 89.62 C64.32 60.01, 88.48 30.93, 116.35 -0.53 M43.59 88.31 C70.76 58.91, 99.21 23.9, 122.8 -0.3 M45.24 88.09 C72.45 57.18, 100.19 24.64, 121.35 -0.06 M48.35 87.42 C72.79 62.23, 96.73 36.13, 128.33 -1.5 M50.78 89.51 C67.84 68.94, 84.51 47.94, 127.75 -0.19 M53.86 90.15 C84.54 58.29, 110.32 26.76, 132.91 0.69 M55.58 89.76 C83.33 55.63, 113.08 22.78, 132.4 -1.04 M61.14 88.19 C78.9 64.17, 101.67 44.2, 135.62 -1.25 M60.92 89.07 C86.02 59.74, 111.3 30.34, 138.52 -0.65 M64.93 88.85 C86.92 64.21, 107.23 43.01, 141.88 1.33 M65.94 88.22 C82.62 71.01, 97.78 52.77, 143.74 -0.85 M71.3 86.66 C92.12 65.85, 110.16 41.21, 145.27 2.48 M71.69 88.69 C88.08 68.59, 104.59 48.96, 146.36 2.46 M76.8 86.97 C94.41 68.48, 112.28 47.13, 149.13 9.21 M76.71 88.91 C97.23 66.89, 116.2 43.2, 147.43 7.51 M81.4 90.39 C95.37 70.31, 113.98 53.11, 145.61 12.1 M80.44 89.18 C104.37 62.38, 126.92 37.19, 146.17 13.77 M86.92 88.6 C99.78 72.47, 115.93 58.69, 146.06 21.71 M86.04 88.05 C105.86 68.1, 122.57 45.57, 146.88 20.96 M91.42 88.26 C106.5 73.27, 118.55 57.4, 147.45 23.96 M91.28 88.85 C105.43 74.59, 117 61.23, 147.71 24.98 M98.18 87.39 C112.62 69.67, 130.1 53.85, 146.75 31.99 M97.88 88.54 C110.63 74.57, 123.9 59.42, 147.53 32.35 M102.81 90.97 C119.44 69.08, 137 51.5, 145.88 38.52 M103.14 89.97 C111.75 77.72, 120.66 67.62, 147.32 37.11 M106.9 90.58 C121.22 72.9, 135.17 57.44, 146.85 43.54 M107.95 88.01 C115.5 79.12, 124.49 71.42, 147.73 45.06 M113.11 88.02 C123.39 78.92, 130.34 69.64, 144.75 50.59 M112.38 89.79 C119.95 81.04, 127.83 74.07, 146.48 50.64 M118.84 86.94 C127.09 81.76, 132.41 71.96, 146.09 54.7 M119.75 88.82 C125.61 80.76, 130.99 73.19, 147.22 55.42 M123.3 88.48 C132.22 82.43, 136.22 75.48, 147.31 62.25 M124.15 89.25 C130.4 80.38, 137.46 72.31, 146.39 62.5 M129.2 86.83 C136.85 80.48, 142.62 76.21, 147.64 67.33 M128.55 88.02 C134.99 81.57, 142.69 74.78, 146.58 67.47 M133.84 88.98 C139.77 83.63, 140.22 81.07, 148.23 75.38 M134.37 89.05 C139.55 84.53, 143.02 79.67, 146.16 74.61 M139.39 89.45 C142.51 85.37, 144.65 83.27, 146.08 80.41 M139.81 89.06 C141.86 87.4, 142.61 85.61, 146.6 81.47" stroke="#15aabf" stroke-width="0.5" fill="none"></path><path d="M0.4 -1.42 C48.24 2.05, 97.72 2.55, 145.29 1.17 M-0.24 -0.95 C46.76 -0.72, 94.53 -1.09, 145.97 0.01 M144.23 0.23 C143.49 19.25, 146.34 36.02, 144.94 85.41 M144.37 0.51 C145.02 19.93, 144.29 39.29, 145.51 86.06 M146.5 87.47 C94.11 88.47, 38.6 89.45, 1.32 87.4 M146 87.29 C111.25 86.21, 76.77 86.19, 0.62 87.91 M-0.51 85.6 C-2.06 53.42, 1.15 19.62, -1.75 1.35 M0.58 86.29 C-0.56 53.23, -1.06 16.9, 0.37 -0.38" stroke="#000000" stroke-width="1" fill="none"></path></g><g stroke-linecap="round" transform="translate(948.1113034952319 458.91796875) rotate(0 72.5 43.5)"><path d="M0 0 C0 0, 0 0, 0 0 M0 0 C0 0, 0 0, 0 0 M0.41 6.77 C1.63 4.06, 3.52 2.36, 5.39 0.21 M-0.13 6.76 C1.08 4.89, 2.68 3.57, 5.04 0.68 M1.43 11.5 C2.25 8.35, 6.93 4.22, 10.26 -0.87 M-0.22 11.62 C4.04 7.16, 7.29 3.99, 10.95 0.71 M1.78 16.54 C4.48 12.7, 9 8.75, 14.16 0.82 M-0.87 18.61 C4.82 12.98, 11.23 6.55, 14.63 -0.07 M-0.79 26.07 C5.81 19.24, 8.18 12.36, 20.24 0.78 M-0.16 25.03 C7.14 17.12, 13.87 8.76, 21.01 -0.67 M-1.68 31.91 C7.87 18.82, 16.55 11.41, 24.62 1.27 M-0.28 30.18 C9.77 18.13, 20.81 7.09, 26.99 0.88 M-1.05 35.1 C8.69 25.56, 20.48 11.61, 31.1 -0.31 M0.48 37.42 C5.93 28.6, 12.2 20.67, 31.23 -0.82 M-1.1 41.65 C8.67 33.05, 14.67 25.48, 38.2 0.08 M0.52 42.42 C12.84 26.02, 26.68 10.12, 37.69 -0.1 M0.35 50.41 C8.82 36.91, 19.25 26.92, 40.79 0.66 M-0.24 49.68 C17.41 30.54, 33.72 11.3, 41.81 -0.08 M-1.19 53.49 C13.55 39.53, 29.54 24.3, 49.17 1.53 M1.02 55.43 C16.52 35.29, 31.94 18.64, 47.98 -0.42 M-1.74 59.8 C12.9 45.54, 25.92 32.17, 54.78 0.24 M-0.35 61.8 C14.2 45.85, 27.92 30.85, 53.65 0.77 M0.11 67.51 C15.25 48.52, 34.56 25.3, 57.23 -0.54 M-1.16 67.8 C11.91 53.71, 25.64 37.66, 58.88 -0.76 M1.63 71.86 C19.85 50.3, 40.34 28.05, 61.99 -1.43 M0.56 73.71 C17.32 51.07, 36.79 30.53, 64.41 0.66 M-1.69 81.08 C22.93 52.85, 47.51 22.48, 67.5 1.3 M0.34 79.58 C25.57 50.95, 50.97 19.83, 69.21 0.92 M0.85 84.75 C14.81 65.87, 33.15 48.5, 74.78 -0.66 M0.69 84.08 C17.41 64.86, 35.06 45.67, 74.56 0.23 M0.29 91.15 C25.38 58.48, 50.78 31.91, 78.56 0.01 M2.65 88.53 C26.49 61.16, 49.12 34.51, 79.58 -0.63 M6.96 89.9 C36.94 52.64, 68.06 19.39, 84.94 -2.19 M7.21 87.99 C31.84 60.88, 56.39 34.31, 85.32 -0.16 M13.69 88.15 C36.94 62.24, 60.22 35.11, 90.43 -1.88 M12.95 90.08 C36.31 62.73, 58.25 35.8, 90.34 0.07 M17.29 89.11 C47.56 53.63, 76.86 20.89, 95.69 0.79 M17.95 88.06 C35.38 68.45, 52.97 48.41, 94.73 -0.42 M22.43 87.48 C47.99 59.87, 70.3 33.28, 100.55 -0.25 M24.11 88.77 C40.49 70.31, 56.68 51.46, 99.68 -0.8 M27.24 89.02 C59.46 54.57, 87.81 23.24, 105.71 -1.34 M29.16 88.88 C53.67 58.54, 79.99 29.75, 105.57 -0.75 M34.44 90.25 C62.06 55.36, 93.89 19.29, 111.81 -1.46 M34.29 89.02 C55.1 64.52, 76 40.7, 111.52 -0.31 M40.96 90.03 C60.76 65.31, 80.72 40.46, 116.44 2.12 M40.16 87.99 C61.52 62.9, 83.46 39.9, 116.78 1.12 M45.07 89.17 C67.59 62.31, 93.64 33.38, 120.53 1.73 M44.47 88.97 C65.02 64.26, 86.44 42.16, 121.59 -0.84 M52.02 90.11 C71.18 65.07, 87.04 44.56, 126.74 -0.83 M50.03 87.65 C78.76 55.06, 107.93 22.73, 126.02 0.94 M57.12 88.49 C77.33 61.62, 99.77 39.4, 132.47 -1.91 M54.36 88.49 C83.71 53.95, 114.6 19.86, 133.38 -0.03 M59.43 88.81 C84.46 60.44, 112.2 32.48, 136.94 -0.37 M61.67 88.83 C89.82 54.83, 120.28 20.91, 137.78 0.4 M64.82 88.03 C85.45 67.54, 104.73 44.32, 142.83 -2.01 M66.49 89.16 C93.43 57.35, 121.75 24.32, 142.19 -0.83 M71.64 87.22 C87.04 68.05, 107.54 49.75, 146.12 1.63 M71.72 89.22 C101.31 56.29, 129.17 22.7, 146.68 1.7 M77.82 87.16 C100.62 61.42, 124.95 31.01, 145.69 8.86 M76.16 88.28 C97.62 63.59, 120.16 39.54, 146.51 8.1 M81.87 88.75 C105.73 61.51, 128 36.17, 146.29 14.43 M81.97 89.99 C101.05 67.51, 118.42 44.03, 147.55 14.29 M85.25 88.84 C104.84 69.84, 123.56 46.49, 145.08 21.94 M87.46 88.88 C106.08 68.14, 123.76 46.53, 147.17 21.01 M90.77 88.13 C111.2 64.13, 136.71 40.48, 145.91 27.21 M91.96 88.77 C108.11 70.54, 124.38 51.84, 147.05 25.72 M99.63 87.55 C117.46 67.21, 132.37 48.14, 145.76 34.2 M97.23 89.7 C109.62 75.17, 120.25 62.37, 146.03 33.08 M102.44 87.89 C114.75 75.03, 126.77 58.28, 147.71 39.3 M103.02 90.14 C114.7 74.66, 127.87 60.93, 147.47 37.82 M108.94 89.38 C118.14 78.08, 127.4 65.19, 148.04 43.02 M109.13 89.18 C118.51 75.27, 130.15 62.46, 146.85 45 M115.08 87.38 C120.89 79.73, 129.57 68.92, 145.21 50.32 M112.95 88.69 C124.78 74.44, 138.68 59.95, 147.18 50.9 M120.62 87.94 C131.38 75.51, 139.62 63.93, 146.28 54.54 M119.57 89.52 C127.44 79.6, 135.87 68.52, 147.82 55.45 M124.31 87.51 C131.76 83.52, 135.27 76.82, 145.32 61.22 M123.31 89.7 C132.57 78.13, 142.93 69.15, 147.34 62.71 M129.5 88.44 C138.01 82.38, 145 72.77, 148.33 68.49 M129.77 88.61 C133.85 83, 138.91 77.9, 146.92 67.79 M135.19 90.67 C138.29 85.35, 141.05 81.32, 148.35 74.74 M135.4 89.17 C137.72 85.62, 139.42 81.98, 147.86 75 M141.03 88.18 C142.94 85.7, 144.28 84.46, 146.75 82.05 M139.94 88.39 C141.45 86.99, 143.66 85.11, 146.98 81.03" stroke="#15aabf" stroke-width="0.5" fill="none"></path><path d="M0.04 1.39 C38.87 -1, 79.33 0.14, 146.04 -1.08 M0.6 -0.48 C38.01 -0.65, 74.23 -0.84, 145.46 0.85 M144.56 -1.89 C145.4 23.21, 147.32 45.77, 145.76 88.72 M145.05 0.18 C146.09 21.35, 145.12 44.64, 144.98 86.81 M143.64 87.58 C106.93 88.81, 68.83 88.22, 0.01 87.09 M145.47 87.47 C103.75 84.98, 63.92 85.47, -0.08 87.85 M1.23 88.29 C-1.21 61.7, 0.13 39.83, -1.6 1.24 M0.96 86.23 C-1.09 66.03, -0.74 43.99, 0.43 -0.99" stroke="#000000" stroke-width="1" fill="none"></path></g><g transform="translate(736.9823972452319 582.75390625) rotate(0 67.5 12.5)"><text x="67.5" y="18" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="middle" style="white-space: pre;" direction="ltr">go binary</text></g><g transform="translate(765.1620847452319 366.91796875) rotate(0 67.5 12.5)"><text x="67.5" y="18" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="middle" style="white-space: pre;" direction="ltr">test binary</text></g><g transform="translate(953.1113034952319 489.91796875) rotate(0 67.5 12.5)"><text x="67.5" y="18" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="middle" style="white-space: pre;" direction="ltr">test result</text></g><g transform="translate(148.10349099523194 272.11328125) rotate(0 89 12.5)"><text x="89" y="18" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="middle" style="white-space: pre;" direction="ltr">foo/foo2_test.go</text></g><g transform="translate(149.29880349523194 184.4609375) rotate(0 89 12.5)"><text x="89" y="18" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="middle" style="white-space: pre;" direction="ltr">foo/foo_test.go</text></g><g transform="translate(353.66208474523194 231.0390625) rotate(0 65 10)"><text x="0" y="14" font-family="Virgil, Segoe UI Emoji" font-size="16px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">GoTestGenTest</text></g><g stroke-linecap="round"><g transform="translate(916.8755180255238 410.40032299565223) rotate(0 21.11605615023973 18.928845127836297)"><path d="M0.03 0.86 C7.14 6.8, 36.29 30.5, 43.64 36.64 M-1.41 0.26 C5.51 6.83, 35.45 31.13, 43.02 37.59" stroke="#000000" stroke-width="1" fill="none"></path></g><g transform="translate(916.8755180255238 410.40032299565223) rotate(0 21.11605615023973 18.928845127836297)"><path d="M17.51 28.95 C24.6 33.5, 36.69 33.67, 41.51 37.3 M16.28 28.16 C24.93 31.75, 31.42 33.57, 42.98 37.45" stroke="#000000" stroke-width="1" fill="none"></path></g><g transform="translate(916.8755180255238 410.40032299565223) rotate(0 21.11605615023973 18.928845127836297)"><path d="M30.03 13.9 C32.46 24.2, 39.77 30.12, 41.51 37.3 M28.8 13.11 C33.78 21.05, 36.62 27.26, 42.98 37.45" stroke="#000000" stroke-width="1" fill="none"></path></g></g><g transform="translate(924.8105222452319 395.5546875) rotate(0 56.5 12.5)"><text x="0" y="18" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">TestRunner</text></g><g stroke-linecap="round" transform="translate(307.16208474523194 10) rotate(0 64.072265625 35.654296875)"><path d="M0 0 C0 0, 0 0, 0 0 M0 0 C0 0, 0 0, 0 0 M0.4 6 C0.52 4.91, 2.25 4.41, 4.93 0.43 M-0.35 6.11 C1.28 4.42, 3.61 1.91, 5.12 0.37 M1.02 12.63 C4.39 8.52, 5.49 5.09, 10.64 -0.52 M-0.34 11.69 C3.52 8.32, 8.08 4.5, 9.97 -0.22 M-1.77 20.23 C4.38 11.82, 11.14 3.64, 16.21 0.42 M-0.31 19.39 C5.48 12.47, 10.65 5.41, 14.71 -0.24 M1.21 25.13 C5.92 15.77, 15.89 5.64, 20.19 -0.1 M0.83 24.91 C3.96 18.05, 10.4 13.68, 21.58 0.8 M1.05 29.29 C6.01 21.58, 12.06 15.09, 25.82 1.8 M0.71 29.93 C8.77 18.79, 18.33 8.23, 26.59 0.47 M0.82 38.12 C7.1 27.04, 17.33 17.68, 31.83 0.33 M-1.18 37.73 C8.8 27.05, 17.31 15.46, 31.97 0.4 M-0.6 43.24 C13.85 24.39, 27.18 9.21, 36.75 -1.69 M0.55 42.1 C9.83 30.96, 20.92 18.11, 36.92 1.1 M-0.8 49.12 C11.79 37.59, 22.34 24.2, 41.89 1.5 M-0.57 48.49 C11.32 35.71, 25.53 21.05, 43.06 0.74 M0.36 56.18 C14.5 39.47, 27.06 21.14, 47.63 1.02 M-0.1 55.47 C17.8 35.57, 34.29 14.95, 47.37 -0.01 M1.1 59.21 C11.85 46.04, 26.86 33.66, 52.31 -0.3 M0.28 61.66 C19.91 37.45, 40 13.69, 53.63 0.8 M-0.05 66.42 C23.88 39.98, 48.52 13.74, 56.64 -1.54 M-0.49 67.17 C17.85 46.53, 34.73 26.57, 57.35 -0.74 M0.09 73.38 C21.99 47.5, 44.35 22.45, 62.54 -1.34 M0.06 71.99 C18.3 53.48, 34.65 34.03, 63.19 0.36 M8.25 69.87 C28.13 45.89, 52.37 21.04, 69.54 0.56 M7.39 71.27 C23.41 52.3, 39.58 31.96, 67.96 0.83 M9.87 72.28 C27.39 55.35, 42.97 38.01, 73.63 1.56 M11.69 72.2 C28.1 53.06, 43.14 36.51, 73.97 -0.04 M17.78 70.72 C39.87 45.63, 61.46 20.85, 79.65 -1.29 M17.11 71.48 C37.93 48.26, 59.17 24.03, 80.03 0.39 M20.67 71.86 C37.01 55.79, 50.8 37.61, 84.17 -1.02 M22.8 72.68 C47.05 44.05, 71.3 14.92, 84.89 -1.07 M25.95 73.36 C40.38 57.56, 52.61 43.34, 91.85 1.73 M28.3 71.03 C42.47 55.14, 57.63 37.98, 90.13 -0.6 M32.12 70.2 C56.36 48.24, 75.42 20.2, 94.32 0.98 M32.55 72.27 C56.11 45.66, 76.89 20.22, 95.63 -0.61 M39.66 73.08 C52.93 56.1, 64.69 41.59, 102.58 -0.11 M39.24 71.41 C62.12 45.78, 85.2 18.87, 100.52 -0.87 M43.4 70.8 C67.18 45.01, 94.6 12.87, 105.82 1.04 M43.84 71.59 C65.38 46.78, 88.23 20.18, 106.57 0.23 M46.74 73.36 C67.97 49.1, 91.25 26.51, 111.84 0.89 M48.29 71.63 C64.24 53.62, 80.1 35.27, 111.19 0.59 M53.28 70.61 C75.76 46.53, 96.96 23.94, 117.28 0.82 M53.29 73.07 C66.81 58.53, 79.78 42.52, 116.15 -0.13 M58.53 70.86 C75.8 56.32, 88.81 36.12, 123.21 1.85 M58.48 73.25 C74.36 56.6, 89.94 38.86, 121.85 0.61 M64.07 72.02 C87.13 45.7, 109.61 19.7, 126.87 -0.82 M65.24 72.88 C82.4 50.83, 101.79 30.46, 127.5 1.27 M69.98 71.95 C95.64 43.72, 117.07 17.12, 129.84 3.62 M69.6 72.84 C91.95 45.57, 115.09 20.46, 129.96 2.05 M73.66 70.85 C93.84 50.37, 113.4 26.81, 129.12 8.95 M75.73 73 C95.64 47.71, 116.81 22.92, 131.28 8.72 M78.24 73.65 C94.14 59.19, 104.3 42.7, 131.87 13.75 M80.81 73.02 C91.51 61.4, 101.28 49.48, 130.1 14.84 M87.47 72.36 C97.6 59.1, 106.69 44.69, 131.95 20.85 M86.53 71.18 C95.7 61.72, 104.31 51.11, 130.69 19.7 M90.05 72.46 C107.53 55.54, 122.61 37.86, 132.08 27.89 M89.99 73.18 C103.04 58.65, 115.04 43.74, 131.68 25.31 M94.53 71.26 C106.1 58.52, 115.45 49.5, 132.18 33.76 M97.14 70.95 C105.36 60.27, 116.83 49.9, 130.98 33.25 M101.69 72.29 C106.19 63.13, 116.32 56.73, 131.63 37.67 M101.74 71.49 C112.26 58.62, 124.76 45.96, 130.6 38.17 M107.39 71.67 C114.36 60.99, 124.83 53.95, 128.9 45.79 M106.76 71.64 C115.66 63.29, 121.99 54.18, 130.84 44.93 M111 72.49 C115.95 65.61, 123.92 60.67, 129.22 49.9 M111.37 72.92 C116.89 67.66, 119.49 62.84, 130.5 51.63 M118.19 71.17 C121.94 65.64, 128.02 61.21, 130.77 58.48 M118.33 72.33 C122.54 65.85, 126.97 60.65, 131.68 57.13 M121.92 72 C125.79 69.25, 127.2 66.66, 129.71 63.13 M122.85 72.8 C125.52 68.04, 128.51 64.96, 130.67 63.63" stroke="#ced4da" stroke-width="0.5" fill="none"></path><path d="M-1.28 -0.26 C43.36 1.94, 82.47 0.73, 127.85 -0.01 M0.08 -0.42 C39.64 -1.06, 79.27 -1.38, 127.79 -0.67 M127.98 -1.4 C126.39 24.44, 128.05 49.02, 126.8 72.81 M128.06 -0.89 C127.86 21.14, 127.68 42.33, 127.17 71.23 M129.06 70.68 C88.05 68.93, 47.92 70.74, -1.16 70.97 M127.6 71.73 C102.06 72.21, 76.43 70.93, 0.11 71.56 M-1.06 70.51 C1.51 51.45, -1.51 34.41, 1.85 1.57 M-0.68 71.72 C0.05 53.4, 1.16 34.84, -0.19 -0.81" stroke="#000000" stroke-width="1" fill="none"></path></g><g stroke-linecap="round" transform="translate(1032.6894284952318 222.16015625) rotate(0 64.072265625 35.654296875)"><path d="M0 0 C0 0, 0 0, 0 0 M0 0 C0 0, 0 0, 0 0 M-0.57 5.67 C0.21 5.75, 1.28 3.57, 5.38 -0.13 M0.03 6.79 C0.81 5.06, 2.47 3.17, 5.32 0.69 M-0.79 10.92 C5.32 8.41, 8.65 1.06, 11.76 -1.54 M-0.25 11.32 C3.13 8.78, 5.96 5.47, 10.6 -0.43 M-1.7 17.29 C5.76 13.78, 11.06 6.06, 16.29 -1.6 M-0.55 17.77 C3.38 13.58, 9.06 8.95, 15.26 1.32 M1.9 22.64 C5.22 17, 13.04 10.77, 20.14 0.17 M1.21 23.23 C6.35 17.38, 12.06 10.83, 21.88 -0.76 M-1.77 30.67 C11.34 20.2, 20.41 8.35, 27.85 0.02 M-0.72 30.92 C6.6 21.22, 14.73 13.34, 26.78 0.91 M0.17 35.56 C5.57 29.93, 14.05 20.35, 32.14 -1.39 M0.39 36.55 C7.43 28.58, 14.38 19.02, 32.66 -0.73 M-0.56 41.59 C12.16 27.51, 26.42 12.24, 37.33 0.38 M0.5 42.65 C14.2 26.82, 26.93 11.78, 36.15 0.77 M1.02 47.02 C13.78 35.16, 24.42 21.24, 40.94 1.06 M-0.33 48.99 C11.46 36.44, 21.3 24.99, 41.87 -0.51 M0.08 56.45 C14.59 39.59, 26.13 25.75, 48.84 -0.59 M-0.57 55.5 C14.09 38.96, 27.13 23.5, 47.97 -0.6 M1.15 60.47 C12.21 46.01, 21.24 36.15, 52.85 0.75 M0.36 60.46 C12.17 45.56, 26.77 30.34, 52.22 0.51 M-0.94 67.99 C21.19 42.19, 46.49 14.7, 57.91 0.63 M-0.49 67.47 C13.6 53.71, 25.63 37.37, 57.58 1.05 M2.01 73.41 C16.79 53.84, 37.02 32.42, 63.64 0.46 M-0.15 73.08 C20.29 51.62, 39 29.44, 64.23 -0.31 M5.26 72.69 C23.5 54.47, 36.69 35.1, 67.53 -0.9 M6.48 71.5 C23.1 51.79, 40.64 32.38, 69.14 -0.31 M13.01 73.09 C31.44 48.91, 51.76 24.15, 74.51 0.54 M10.84 72.86 C26.55 55.79, 41.47 37.33, 74.17 -0.9 M17.85 73.41 C36.3 49.36, 55.83 30.25, 80.12 1.46 M16.72 72.03 C41.43 43.58, 64.15 16.66, 79.57 0.97 M23.98 72.2 C48.75 41.92, 74.03 15.94, 84.09 -1.1 M21.8 71.41 C38.67 52.88, 55.82 33.21, 84.11 -0.48 M28.78 71.34 C42.08 55.24, 53.82 42.2, 89.52 1.88 M27.75 71.03 C51.72 44.43, 76.71 16.43, 90.57 0.31 M34.02 71.7 C50.9 49.3, 71.85 26.64, 96.46 -0.98 M31.79 72.78 C45.86 56.72, 58.73 42.2, 95.89 0.46 M39.38 72.72 C62.52 43.29, 86.44 18.96, 101.04 -1.86 M38.77 72.6 C61.32 43.07, 86.17 17.73, 100.64 0.82 M41.67 72.09 C59.69 52.93, 74.69 39.15, 105.12 -2.07 M42.69 72.68 C67.28 43.71, 91.87 15.58, 107.15 0.14 M47.74 74.08 C62.07 55.07, 77.03 38.84, 111.39 -0.46 M48.14 72.36 C69.38 47.8, 89.42 24.16, 111.04 -0.68 M52.92 73.43 C74.42 44.38, 97.94 17.89, 116.37 -1.02 M53.13 72.59 C75.11 47.56, 96.52 21.17, 116.63 0.27 M59.39 71.25 C80.49 48.96, 100.95 26.13, 120.75 -1.03 M57.95 72.37 C75.05 52.96, 92.1 33.97, 121.81 0.38 M65.18 71.35 C80.18 53.65, 94.35 39.9, 127.9 0.83 M64.55 71.67 C89.3 44.77, 114 15.94, 126.84 0.99 M71.29 71.91 C85.14 54.28, 101.44 36.47, 130.76 3.13 M70.12 71.66 C89.24 50.41, 107.29 28.58, 129.83 2.52 M75.3 73.06 C96.56 49.29, 115.09 24.18, 129.67 10.26 M75.14 72.83 C97.36 47.84, 117.85 22.74, 130.88 7.73 M78.52 72.53 C97.6 54.08, 114.31 30.91, 129.89 15.57 M80.98 73.25 C92.65 57.4, 107.17 40.81, 130.13 13.29 M87.59 73.29 C98.32 59.38, 110.66 41.74, 128.87 22.03 M85.9 72.68 C102.2 52.48, 119.29 33.07, 131.43 21.08 M89.6 71.15 C102.23 57.97, 117.8 41.23, 129.15 26.06 M90.66 72.85 C105.35 55.75, 121.06 39.55, 131.66 26.58 M97.75 70.37 C104.05 62.14, 114.88 51.42, 129.49 33.2 M96.58 71.55 C104.07 63.3, 110.48 55.13, 130.31 33.07 M102.46 71.36 C106.93 64.86, 114.75 57.3, 129.81 38.47 M101.08 72.91 C111.93 59.99, 120.99 50.61, 130.91 38.57 M108.98 70.19 C113.25 62.03, 122.67 52.82, 129.65 46.2 M107.75 71.5 C112.21 66.36, 117.48 58.65, 129.84 44.25 M112.51 70.32 C116.63 66.78, 119.06 64.01, 130.53 49.98 M111.92 72.59 C114.84 67.73, 119.13 63.97, 131.17 50.9 M115.86 70.17 C122.35 66.07, 126.44 60.31, 128.93 56.99 M118.72 72.3 C120.07 68.73, 122.94 65.74, 130.1 55.86 M123.82 71.35 C125.15 68.91, 128.28 65.58, 131.1 63.44 M122.68 71.96 C124.93 70.79, 126.5 67.91, 130.54 63.18" stroke="#ced4da" stroke-width="0.5" fill="none"></path><path d="M-1.06 1.85 C44.28 1.12, 93.23 1.1, 129.31 0.7 M0.9 -0.82 C43.11 0.87, 83.97 0.72, 128.35 -0.62 M127.12 -0.64 C126.61 27.99, 127.15 55.01, 128.07 70.85 M128.55 0.92 C128.06 27.71, 127.87 55.53, 128.21 71.53 M126.97 71.78 C88.32 70.13, 48.64 70.41, 1.85 71.42 M128.87 70.55 C87.65 72.82, 47.5 72.2, 0.24 71.97 M1.35 70.24 C0.02 52.7, -0.09 36.03, 1.34 1.02 M0.01 71.62 C-0.19 52.35, 0.76 30.96, -0.96 -0.98" stroke="#000000" stroke-width="1" fill="none"></path></g><g transform="translate(312.16208474523194 33.154296875) rotate(0 59 12.5)"><text x="59" y="18" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="middle" style="white-space: pre;" direction="ltr">rules_go</text></g><g transform="translate(1037.6894284952318 245.314453125) rotate(0 59 12.5)"><text x="59" y="18" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="middle" style="white-space: pre;" direction="ltr">bazel</text></g><g stroke-linecap="round"><g transform="translate(382.99020974523194 94.98046875) rotate(0 30.253458877652918 51.89430603110232)"><path d="M-0.29 -0.37 C5.36 5.5, 23.98 18.49, 34.16 35.99 C44.34 53.49, 56.53 93.07, 60.8 104.65 M1.75 -1.6 C7.2 3.87, 23.2 16.51, 33 34.34 C42.81 52.18, 56.09 93.37, 60.59 105.39" stroke="#000000" stroke-width="1" fill="none"></path></g><g transform="translate(382.99020974523194 94.98046875) rotate(0 30.253458877652918 51.89430603110232)"><path d="M40.93 81.56 C49.28 91.42, 52.02 97.09, 60.15 107.11 M40.69 81.41 C46.73 87.26, 49.84 92.86, 60.85 106.09" stroke="#000000" stroke-width="1" fill="none"></path></g><g transform="translate(382.99020974523194 94.98046875) rotate(0 30.253458877652918 51.89430603110232)"><path d="M60.28 74.74 C62.49 86.73, 59.06 94.58, 60.15 107.11 M60.05 74.59 C61.58 81.86, 60.19 89.04, 60.85 106.09" stroke="#000000" stroke-width="1" fill="none"></path></g></g><g stroke-linecap="round"><g transform="translate(450.31442849523194 37.1328125) rotate(0 173.79679264877763 106.14983864449897)"><path d="M0.98 0.35 C56.85 7.97, 291.97 10.44, 335.41 45.69 C378.86 80.94, 273.86 184.1, 261.63 211.86 M0.03 -0.51 C56.26 7.22, 294.18 11.13, 337.65 46.68 C381.12 82.23, 273.39 185.04, 260.86 212.81" stroke="#000000" stroke-width="1" fill="none"></path></g><g transform="translate(450.31442849523194 37.1328125) rotate(0 173.79679264877763 106.14983864449897)"><path d="M269.83 182.5 C264.86 193.18, 262.75 202.99, 260.39 212.43 M268.93 183.21 C265.5 193.62, 264.12 202.59, 260.51 213.37" stroke="#000000" stroke-width="1" fill="none"></path></g><g transform="translate(450.31442849523194 37.1328125) rotate(0 173.79679264877763 106.14983864449897)"><path d="M286.39 194.63 C276.18 201.6, 268.83 207.58, 260.39 212.43 M285.49 195.34 C276.83 201.8, 270.16 206.9, 260.51 213.37" stroke="#000000" stroke-width="1" fill="none"></path></g></g><g stroke-linecap="round"><g transform="translate(454.83005349523194 36.79296875) rotate(0 181.9551737461507 167.10801077578682)"><path d="M-0.42 -0.39 C58.75 10.58, 313.03 8.81, 356.15 64.85 C399.27 120.89, 274.93 290.8, 258.3 335.85 M1.55 -1.64 C60.44 9.09, 312.22 7.25, 354.97 63.17 C397.71 119.09, 274.51 288.36, 258.03 333.88" stroke="#000000" stroke-width="1" fill="none"></path></g><g transform="translate(454.83005349523194 36.79296875) rotate(0 181.9551737461507 167.10801077578682)"><path d="M261.61 303.44 C261.77 317.35, 259.9 325.74, 258.11 334.77 M262.97 303.56 C260.74 312.7, 260.74 319.44, 257.26 333.31" stroke="#000000" stroke-width="1" fill="none"></path></g><g transform="translate(454.83005349523194 36.79296875) rotate(0 181.9551737461507 167.10801077578682)"><path d="M279.71 313.11 C272.88 323.17, 263.92 327.79, 258.11 334.77 M281.07 313.23 C274.04 319.71, 269.16 323.84, 257.26 333.31" stroke="#000000" stroke-width="1" fill="none"></path></g></g><g stroke-linecap="round"><g transform="translate(301.95895974523194 58.109375) rotate(0 -125.98127196272736 183.67158354421147)"><path d="M-1.14 1.04 C-48.05 24.79, -247.57 90.83, -281.72 142.82 C-315.87 194.81, -252.58 284.98, -206.03 312.98 C-159.47 340.99, -43.08 302.01, -2.39 310.84 C38.3 319.67, 31.22 357.07, 38.11 365.95 M0.47 0.54 C-46.5 23.94, -247.68 88.96, -282.14 141.21 C-316.6 193.47, -252.91 285.62, -206.31 314.06 C-159.71 342.51, -43.6 303.08, -2.55 311.87 C38.5 320.66, 33.42 357.74, 40 366.8" stroke="#000000" stroke-width="1" fill="none"></path></g><g transform="translate(301.95895974523194 58.109375) rotate(0 -125.98127196272736 183.67158354421147)"><path d="M23.69 344.5 C28.71 351.26, 31.38 355.13, 39.77 365.83 M22.01 342.62 C29.38 351.68, 35.84 361.55, 39.9 366.67" stroke="#000000" stroke-width="1" fill="none"></path></g><g transform="translate(301.95895974523194 58.109375) rotate(0 -125.98127196272736 183.67158354421147)"><path d="M43.32 338.52 C42.85 346.77, 40.02 352.31, 39.77 365.83 M41.64 336.64 C41.71 347.77, 40.85 359.87, 39.9 366.67" stroke="#000000" stroke-width="1" fill="none"></path></g></g><g transform="translate(641.9784909952319 25.328125) rotate(0 29 12.5)"><text x="0" y="18" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">define</text></g><g transform="translate(434.84958474523194 119.4375) rotate(0 29 12.5)"><text x="0" y="18" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">define</text></g><g transform="translate(120.85739724523194 79.42578125) rotate(0 29 12.5)"><text x="0" y="18" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">define</text></g><g stroke-linecap="round"><g transform="translate(1045.6894284952318 303.0703125) rotate(0 -32.16170214260467 43.18155396883376)"><path d="M-0.12 -0.47 C-10.76 13.86, -52.92 71.95, -63.85 86.51 M-1.65 -1.76 C-12.33 12.74, -53.94 73.7, -64.2 88.12" stroke="#000000" stroke-width="1" fill="none"></path></g><g transform="translate(1045.6894284952318 303.0703125) rotate(0 -32.16170214260467 43.18155396883376)"><path d="M-57.31 61.03 C-58.41 66.46, -60.08 77.66, -62.8 86.54 M-56.8 59.27 C-59.12 68.88, -62.23 78.35, -64.55 88.36" stroke="#000000" stroke-width="1" fill="none"></path></g><g transform="translate(1045.6894284952318 303.0703125) rotate(0 -32.16170214260467 43.18155396883376)"><path d="M-40.46 72.75 C-46.57 74.71, -53.19 82.46, -62.8 86.54 M-39.95 70.98 C-47.87 76.56, -56.66 82.08, -64.55 88.36" stroke="#000000" stroke-width="1" fill="none"></path></g></g><g transform="translate(1030.9784909952318 334.328125) rotate(0 29 12.5)"><text x="0" y="18" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">define</text></g></svg> \ No newline at end of file
diff --git a/docs/go/core/bzlmod.md b/docs/go/core/bzlmod.md
new file mode 100644
index 00000000..780f32d5
--- /dev/null
+++ b/docs/go/core/bzlmod.md
@@ -0,0 +1,186 @@
+# Go with Bzlmod
+
+This document describes how to use rules_go and Gazelle with Bazel's new external dependency subsystem [Bzlmod](https://bazel.build/external/overview#bzlmod), which is meant to replace `WORKSPACE` files eventually.
+Usages of rules_go and Gazelle in `BUILD` files are not affected by this; refer to the existing documentation on rules and configuration options for them.
+
+## Setup
+
+Add the following lines to your `MODULE.bazel` file:
+
+```starlark
+bazel_dep(name = "rules_go", version = "0.39.1")
+bazel_dep(name = "gazelle", version = "0.31.0")
+```
+
+The latest versions are always listed on https://registry.bazel.build/.
+
+If you have WORKSPACE dependencies that reference rules_go and/or Gazelle, you can still use the legacy repository names for the two repositories:
+
+```starlark
+bazel_dep(name = "rules_go", version = "0.39.1", repo_name = "io_bazel_rules_go")
+bazel_dep(name = "gazelle", version = "0.31.0", repo_name = "bazel_gazelle")
+```
+
+## Registering Go SDKs
+
+rules_go automatically downloads and registers a recent Go SDK, so unless a particular version is required, no manual steps are required.
+
+To register a particular version of the Go SDK, use the `go_sdk` module extension:
+
+```starlark
+go_sdk = use_extension("@rules_go//go:extensions.bzl", "go_sdk")
+
+# Download an SDK for the host OS & architecture.
+go_sdk.download(version = "1.20.3")
+
+# Alternately, download an SDK for a fixed OS/architecture, e.g. for remote execution.
+go_sdk.download(
+ version = "1.20.3",
+ goarch = "amd64",
+ goos = "linux",
+)
+
+# Register the Go SDK installed on the host.
+go_sdk.host()
+```
+
+You can register multiple Go SDKs and select which one to use on a per-target basis using [`go_cross_binary`](rules.md#go_cross_binary).
+The usual rules of [toolchain resolution](https://bazel.build/extending/toolchains#toolchain-resolution) apply, with SDKs registered in the root module taking precedence over those registered in dependencies.
+
+### Using a Go SDK
+
+By default, Go SDK repositories are created with mangled names and are not expected to be referenced directly.
+
+For build actions, toolchain resolution is used to select the appropriate SDK for a given target.
+[`go_cross_binary`](rules.md#go_cross_binary) can be used to influence the outcome of the resolution.
+
+The `go` tool of the SDK registered for the host is available via the `@rules_go//go` target.
+Prefer running it via this target over running `go` directly to ensure that all developers use the same version.
+The `@rules_go//go` target can be used in scripts executed via `bazel run`, but cannot be used in build actions.
+Note that `go` command arguments starting with `-` require the use of the double dash separator with `bazel run`:
+
+```sh
+bazel run @rules_go//go -- mod tidy -v
+```
+
+If you really do need direct access to a Go SDK, you can provide the `name` attribute on the `go_sdk.download` or `go_sdk.host` tag and then bring the repository with that name into scope via `use_repo`.
+Note that modules using this attribute cannot be added to registries such as the Bazel Central Registry (BCR).
+If you have a use case that would require this, please explain it in an issue.
+
+### Not yet supported
+
+* `go_local_sdk`
+* `go_wrap_sdk`
+* nogo ([#3529](https://github.com/bazelbuild/rules_go/issues/3529))
+
+## Generating BUILD files
+
+Add the following to your top-level BUILD file:
+
+```starlark
+load("@gazelle//:def.bzl", "gazelle")
+
+gazelle(name = "gazelle")
+```
+
+If there is no `go.mod` file in the same directory as your top-level BUILD file, also add the following [Gazelle directive](https://github.com/bazelbuild/bazel-gazelle#directives) to that BUILD file to supply Gazelle with your Go module's path:
+
+```starlark
+# gazelle:prefix github.com/example/project
+```
+
+Then, use `bazel run //:gazelle` to (re-)generate BUILD files.
+
+## External dependencies
+
+External Go dependencies are managed by the `go_deps` module extension provided by Gazelle.
+`go_deps` performs [Minimal Version Selection](https://go.dev/ref/mod#minimal-version-selection) on all transitive Go dependencies of all Bazel modules, so compared to the old WORKSPACE setup, every Bazel module only needs to declare its own Go dependencies.
+For every major version of a Go module, there will only ever be a single version in the entire build, just as in regular Go module builds.
+
+### Specifying external dependencies
+
+Even though this is not a strict requirement, for interoperability with Go tooling that isn't Bazel-aware, it is recommended to manage Go dependencies via `go.mod`.
+The `go_deps` extension parses this file directly, so external tooling such as `gazelle update-repos` is no longer needed.
+
+Register the `go.mod` file with the `go_deps` extension as follows:
+
+```starlark
+go_deps = use_extension("@gazelle//:extensions.bzl", "go_deps")
+go_deps.from_file(go_mod = "//:go.mod")
+
+# All *direct* Go dependencies of the module have to be listed explicitly.
+use_repo(
+ go_deps,
+ "com_github_gogo_protobuf",
+ "com_github_golang_mock",
+ "com_github_golang_protobuf",
+ "org_golang_x_net",
+)
+```
+
+Bazel emits a warning if the `use_repo` statement is out of date or missing entirely (requires Bazel 6.2.0 or higher).
+The warning contains a `buildozer` command to automatically fix the `MODULE.bazel` file (requires buildozer 6.1.1 or higher).
+
+Alternatively, you can specify a module extension tag to add an individual dependency.
+This can be useful for dependencies of generated code that `go mod tidy` would remove. (There is [ongoing work](https://github.com/bazelbuild/bazel-gazelle/pull/1495) to provide a Bazel-aware version of `tidy`.)
+
+```starlark
+go_deps.module(
+ path = "google.golang.org/grpc",
+ sum = "h1:fPVVDxY9w++VjTZsYvXWqEf9Rqar/e+9zYfxKK+W+YU=",
+ version = "v1.50.0",
+)
+```
+
+### Managing `go.mod`
+
+An initial `go.mod` file can be created via
+
+```sh
+bazel run @rules_go//go mod init github.com/example/project
+```
+
+A dependency can be added via
+
+```sh
+bazel run @rules_go//go get golang.org/x/text@v0.3.2
+```
+
+### Overrides
+
+The root module can override certain aspects of the dependency resolution performed by the `go_deps` extension.
+
+#### `replace`
+
+[`replace` directives](https://go.dev/ref/mod#go-mod-file-replace) in `go.mod` can be used to replace particular versions of dependencies with other versions or entirely different modules.
+At the moment the only supported form is:
+
+```
+replace(
+ golang.org/x/net v1.2.3 => example.com/fork/net v1.4.5
+)
+```
+
+#### Gazelle directives
+
+Some external Go modules may require tweaking how Gazelle generates BUILD files for them via [Gazelle directives](https://github.com/bazelbuild/bazel-gazelle#directives).
+The `go_deps` extension provides a dedicated `go_deps.gazelle_override` tag for this purpose:
+
+```starlark
+go_deps.gazelle_override(
+ directives = [
+ "gazelle:go_naming_convention go_default_library",
+ ],
+ path = "github.com/stretchr/testify",
+)
+```
+
+If you need to use a `gazelle_override` to get a public Go module to build with Bazel, consider contributing the directives to the [public registry for default Gazelle overrides](https://github.com/bazelbuild/bazel-gazelle/blob/master/internal/bzlmod/default_gazelle_overrides.bzl) via a PR.
+This will allow you to drop the `gazelle_override` tag and also makes the Go module usable in non-root Bazel modules.
+
+### Not yet supported
+
+* Fetching dependencies from Git repositories or via HTTP
+* `go.mod` `replace` directives matching all versions of a module
+* `go.mod` `replace` directives referencing local files
+* `go.mod` `exclude` directices
diff --git a/docs/go/core/cross_compilation.md b/docs/go/core/cross_compilation.md
new file mode 100644
index 00000000..de8cd1f5
--- /dev/null
+++ b/docs/go/core/cross_compilation.md
@@ -0,0 +1,29 @@
+
+## Cross compilation
+
+rules_go can cross-compile Go projects to any platform the Go toolchain
+supports. The simplest way to do this is by setting the `--platforms` flag on
+the command line.
+
+``` bash
+$ bazel build --platforms=@io_bazel_rules_go//go/toolchain:linux_amd64 //my/project
+```
+
+You can replace `linux_amd64` in the example above with any valid
+GOOS / GOARCH pair. To list all platforms, run this command:
+
+``` bash
+$ bazel query 'kind(platform, @io_bazel_rules_go//go/toolchain:all)'
+```
+
+By default, cross-compilation will cause Go targets to be built in "pure mode",
+which disables cgo; cgo files will not be compiled, and C/C++ dependencies will
+not be compiled or linked.
+
+Cross-compiling cgo code is possible, but not fully supported. You will need to
+[write a CROSSTOOL file] that describes your C/C++ toolchain. You'll need to
+ensure it works by building `cc_binary` and `cc_library` targets with the
+`--cpu` command line flag set. Then, to build a mixed Go / C / C++ project,
+add `pure = "off"` to your `go_binary` target and run Bazel with `--cpu`
+and `--platforms`.
+
diff --git a/docs/go/core/defines_and_stamping.md b/docs/go/core/defines_and_stamping.md
new file mode 100644
index 00000000..9d616c5f
--- /dev/null
+++ b/docs/go/core/defines_and_stamping.md
@@ -0,0 +1,94 @@
+## Defines and stamping
+
+In order to provide build time information to go code without data files, we
+support the concept of stamping.
+
+Stamping asks the linker to substitute the value of a global variable with a
+string determined at link time. Stamping only happens when linking a binary, not
+when compiling a package. This means that changing a value results only in
+re-linking, not re-compilation and thus does not cause cascading changes.
+
+Link values are set in the `x_defs` attribute of any Go rule. This is a
+map of string to string, where keys are the names of variables to substitute,
+and values are the string to use. Keys may be names of variables in the package
+being compiled, or they may be fully qualified names of variables in another
+package.
+
+These mappings are collected up across the entire transitive dependencies of a
+binary. This means you can set a value using `x_defs` in a
+`go_library`, and any binary that links that library will be stamped with that
+value. You can also override stamp values from libraries using `x_defs`
+on the `go_binary` rule if needed. The `--[no]stamp` option controls whether
+stamping of workspace variables is enabled.
+
+The values of the `x_defs` dictionary are subject to
+[location expansion](https://bazel.build/reference/be/make-variables#predefined_label_variables).
+
+**Example**
+
+Suppose we have a small library that contains the current version.
+
+``` go
+package version
+
+var Version = "redacted"
+```
+
+We can set the version in the `go_library` rule for this library.
+
+``` bzl
+go_library(
+ name = "version",
+ srcs = ["version.go"],
+ importpath = "example.com/repo/version",
+ x_defs = {"Version": "0.9"},
+)
+```
+
+Binaries that depend on this library may also set this value.
+
+``` bzl
+go_binary(
+ name = "cmd",
+ srcs = ["main.go"],
+ deps = ["//version"],
+ x_defs = {"example.com/repo/version.Version": "0.9"},
+)
+```
+
+### Stamping with the workspace status script
+
+You can use values produced by the workspace status command in your link stamp.
+To use this functionality, write a script that prints key-value pairs, separated
+by spaces, one per line. For example:
+
+``` bash
+#!/usr/bin/env bash
+
+echo STABLE_GIT_COMMIT $(git rev-parse HEAD)
+```
+
+***Note:*** stamping with keys that bazel designates as "stable" will trigger a
+re-link when any stable key changes. Currently, in bazel, stable keys are
+`BUILD_EMBED_LABEL`, `BUILD_USER`, `BUILD_HOST` and keys whose names start with
+`STABLE_`. Stamping only with keys that are not stable keys will not trigger a
+relink.
+
+You can reference these in `x_defs` using curly braces.
+
+``` bzl
+go_binary(
+ name = "cmd",
+ srcs = ["main.go"],
+ deps = ["//version"],
+ x_defs = {"example.com/repo/version.Version": "{STABLE_GIT_COMMIT}"},
+)
+```
+
+You can build using the status script using the `--workspace_status_command`
+argument on the command line:
+
+``` bash
+$ bazel build --stamp --workspace_status_command=./status.sh //:cmd
+```
+
diff --git a/docs/go/core/embedding.md b/docs/go/core/embedding.md
new file mode 100644
index 00000000..89b2d36b
--- /dev/null
+++ b/docs/go/core/embedding.md
@@ -0,0 +1,86 @@
+## Embedding
+
+The sources, dependencies, and data of a `go_library` may be *embedded*
+within another `go_library`, `go_binary`, or `go_test` using the `embed`
+attribute. The embedding package will be compiled into a single archive
+file. The embedded package may still be compiled as a separate target.
+
+A minimal example of embedding is below. In this example, the command `bazel
+build :foo_and_bar` will compile `foo.go` and `bar.go` into a single
+archive. `bazel build :bar` will compile only `bar.go`. Both libraries must
+have the same `importpath`.
+
+``` bzl
+go_library(
+ name = "foo_and_bar",
+ srcs = ["foo.go"],
+ embed = [":bar"],
+ importpath = "example.com/foo",
+)
+
+go_library(
+ name = "bar",
+ srcs = ["bar.go"],
+ importpath = "example.com/foo",
+)
+```
+
+Embedding is most frequently used for tests and binaries. Go supports two
+different kinds of tests. *Internal tests* (e.g., `package foo`) are compiled
+into the same archive as the library under test and can reference unexported
+definitions in that library. *External tests* (e.g., `package foo_test`) are
+compiled into separate archives and may depend on exported definitions from the
+internal test archive.
+
+In order to compile the internal test archive, we *embed* the `go_library`
+under test into a `go_test` that contains the test sources. The `go_test`
+rule can automatically distinguish internal and external test sources, so they
+can be listed together in `srcs`. The `go_library` under test does not
+contain test sources. Other `go_binary` and `go_library` targets can depend
+on it or embed it.
+
+``` bzl
+go_library(
+ name = "foo_lib",
+ srcs = ["foo.go"],
+ importpath = "example.com/foo",
+)
+
+go_binary(
+ name = "foo",
+ embed = [":foo_lib"],
+)
+
+go_test(
+ name = "go_default_test",
+ srcs = [
+ "foo_external_test.go",
+ "foo_internal_test.go",
+ ],
+ embed = [":foo_lib"],
+)
+```
+
+Embedding may also be used to add extra sources sources to a
+`go_proto_library`.
+
+``` bzl
+proto_library(
+ name = "foo_proto",
+ srcs = ["foo.proto"],
+)
+
+go_proto_library(
+ name = "foo_go_proto",
+ importpath = "example.com/foo",
+ proto = ":foo_proto",
+)
+
+go_library(
+ name = "foo",
+ srcs = ["extra.go"],
+ embed = [":foo_go_proto"],
+ importpath = "example.com/foo",
+)
+```
+
diff --git a/docs/go/core/examples.md b/docs/go/core/examples.md
new file mode 100644
index 00000000..99adb1a1
--- /dev/null
+++ b/docs/go/core/examples.md
@@ -0,0 +1,70 @@
+## Examples
+
+### go_library
+``` bzl
+go_library(
+ name = "foo",
+ srcs = [
+ "foo.go",
+ "bar.go",
+ ],
+ deps = [
+ "//tools",
+ "@org_golang_x_utils//stuff",
+ ],
+ importpath = "github.com/example/project/foo",
+ visibility = ["//visibility:public"],
+)
+```
+
+### go_test
+
+To write an internal test, reference the library being tested with the `embed`
+instead of `deps`. This will compile the test sources into the same package as the library
+sources.
+
+#### Internal test example
+
+This builds a test that can use the internal interface of the package being tested.
+
+In the normal go toolchain this would be the kind of tests formed by adding writing
+`<file>_test.go` files in the same package.
+
+It references the library being tested with `embed`.
+
+
+``` bzl
+go_library(
+ name = "lib",
+ srcs = ["lib.go"],
+)
+
+go_test(
+ name = "lib_test",
+ srcs = ["lib_test.go"],
+ embed = [":lib"],
+)
+```
+
+#### External test example
+
+This builds a test that can only use the public interface(s) of the packages being tested.
+
+In the normal go toolchain this would be the kind of tests formed by adding an `<name>_test`
+package.
+
+It references the library(s) being tested with `deps`.
+
+``` bzl
+go_library(
+ name = "lib",
+ srcs = ["lib.go"],
+)
+
+go_test(
+ name = "lib_xtest",
+ srcs = ["lib_x_test.go"],
+ deps = [":lib"],
+)
+```
+
diff --git a/docs/go/core/platform-specific_dependencies.md b/docs/go/core/platform-specific_dependencies.md
new file mode 100644
index 00000000..92957fa0
--- /dev/null
+++ b/docs/go/core/platform-specific_dependencies.md
@@ -0,0 +1,53 @@
+ [build constraints]: https://golang.org/pkg/go/build/#hdr-Build_Constraints
+ [select]: https://docs.bazel.build/versions/master/be/functions.html#select
+ [config_setting]: https://docs.bazel.build/versions/master/be/general.html#config_setting
+ [Gazelle]: https://github.com/bazelbuild/bazel-gazelle
+
+
+## Platform-specific dependencies
+
+When cross-compiling, you may have some platform-specific sources and
+dependencies. Source files from all platforms can be mixed freely in a single
+`srcs` list. Source files are filtered using [build constraints] (filename
+suffixes and `+build` tags) before being passed to the compiler.
+
+Platform-specific dependencies are another story. For example, if you are
+building a binary for Linux, and it has dependency that should only be built
+when targeting Windows, you will need to filter it out using Bazel [select]
+expressions:
+
+``` bzl
+go_binary(
+ name = "cmd",
+ srcs = [
+ "foo_linux.go",
+ "foo_windows.go",
+ ],
+ deps = [
+ # platform agnostic dependencies
+ "//bar",
+ ] + select({
+ # OS-specific dependencies
+ "@io_bazel_rules_go//go/platform:linux": [
+ "//baz_linux",
+ ],
+ "@io_bazel_rules_go//go/platform:windows": [
+ "//quux_windows",
+ ],
+ "//conditions:default": [],
+ }),
+)
+```
+
+`select` accepts a dictionary argument. The keys are labels that reference [config_setting] rules.
+The values are lists of labels. Exactly one of these
+lists will be selected, depending on the target configuration. rules_go has
+pre-declared `config_setting` rules for each OS, architecture, and
+OS-architecture pair. For a full list, run this command:
+
+``` bash
+$ bazel query 'kind(config_setting, @io_bazel_rules_go//go/platform:all)'
+```
+
+[Gazelle] will generate dependencies in this format automatically.
+
diff --git a/docs/go/core/rules.bzl b/docs/go/core/rules.bzl
new file mode 100644
index 00000000..9db8e66a
--- /dev/null
+++ b/docs/go/core/rules.bzl
@@ -0,0 +1,129 @@
+"""
+ ["Make variable"]: https://docs.bazel.build/versions/master/be/make-variables.html
+ [Bourne shell tokenization]: https://docs.bazel.build/versions/master/be/common-definitions.html#sh-tokenization
+ [Gazelle]: https://github.com/bazelbuild/bazel-gazelle
+ [GoArchive]: /go/providers.rst#GoArchive
+ [GoLibrary]: /go/providers.rst#GoLibrary
+ [GoPath]: /go/providers.rst#GoPath
+ [GoSource]: /go/providers.rst#GoSource
+ [build constraints]: https://golang.org/pkg/go/build/#hdr-Build_Constraints
+ [cc_library deps]: https://docs.bazel.build/versions/master/be/c-cpp.html#cc_library.deps
+ [cgo]: http://golang.org/cmd/cgo/
+ [config_setting]: https://docs.bazel.build/versions/master/be/general.html#config_setting
+ [data dependencies]: https://docs.bazel.build/versions/master/build-ref.html#data
+ [goarch]: /go/modes.rst#goarch
+ [goos]: /go/modes.rst#goos
+ [mode attributes]: /go/modes.rst#mode-attributes
+ [nogo]: /go/nogo.rst#nogo
+ [pure]: /go/modes.rst#pure
+ [race]: /go/modes.rst#race
+ [msan]: /go/modes.rst#msan
+ [select]: https://docs.bazel.build/versions/master/be/functions.html#select
+ [shard_count]: https://docs.bazel.build/versions/master/be/common-definitions.html#test.shard_count
+ [static]: /go/modes.rst#static
+ [test_arg]: https://docs.bazel.build/versions/master/user-manual.html#flag--test_arg
+ [test_filter]: https://docs.bazel.build/versions/master/user-manual.html#flag--test_filter
+ [test_env]: https://docs.bazel.build/versions/master/user-manual.html#flag--test_env
+ [test_runner_fail_fast]: https://docs.bazel.build/versions/master/command-line-reference.html#flag--test_runner_fail_fast
+ [write a CROSSTOOL file]: https://github.com/bazelbuild/bazel/wiki/Yet-Another-CROSSTOOL-Writing-Tutorial
+ [bazel]: https://pkg.go.dev/github.com/bazelbuild/rules_go/go/tools/bazel?tab=doc
+ [go_library]: #go_library
+ [go_binary]: #go_binary
+ [go_test]: #go_test
+ [go_path]: #go_path
+ [go_source]: #go_source
+ [go_test]: #go_test
+ [Examples]: examples.md#examples
+ [Defines and stamping]: defines_and_stamping.md#defines-and-stamping
+ [Stamping with the workspace status script]: defines_and_stamping.md#stamping-with-the-workspace-status-script
+ [Embedding]: embedding.md#embedding
+ [Cross compilation]: cross_compilation.md#cross-compilation
+ [Platform-specific dependencies]: platform-specific_dependencies.md#platform-specific-dependencies
+
+# Core Go rules
+
+These are the core go rules, required for basic operation. The intent is that these rules are
+sufficient to match the capabilities of the normal go tools.
+
+## Additional resources
+- ["Make variable"]
+- [Bourne shell tokenization]
+- [Gazelle]
+- [GoArchive]
+- [GoLibrary]
+- [GoPath]
+- [GoSource]
+- [build constraints]:
+- [cc_library deps]
+- [cgo]
+- [config_setting]
+- [data dependencies]
+- [goarch]
+- [goos]
+- [mode attributes]
+- [nogo]
+- [pure]
+- [race]
+- [msan]
+- [select]:
+- [shard_count]
+- [static]
+- [test_arg]
+- [test_filter]
+- [test_env]
+- [test_runner_fail_fast]
+- [write a CROSSTOOL file]
+- [bazel]
+
+
+------------------------------------------------------------------------
+
+Introduction
+------------
+
+Three core rules may be used to build most projects: [go_library], [go_binary],
+and [go_test]. These rules reimplement the low level plumping commands of a normal
+'go build' invocation: compiling package's source files to archives, then linking
+archives into go binary.
+
+[go_library] builds a single package. It has a list of source files
+(specified with `srcs`) and may depend on other packages (with `deps`).
+Each [go_library] has an `importpath`, which is the name used to import it
+in Go source files.
+
+[go_binary] also builds a single `main` package and links it into an
+executable. It may embed the content of a [go_library] using the `embed`
+attribute. Embedded sources are compiled together in the same package.
+Binaries can be built for alternative platforms and configurations by setting
+`goos`, `goarch`, and other attributes.
+
+[go_test] builds a test executable. Like tests produced by `go test`, this
+consists of three packages: an internal test package compiled together with
+the library being tested (specified with `embed`), an external test package
+compiled separately, and a generated test main package.
+
+Here is an example of a Bazel build graph for a project using these core rules:
+
+![](./buildgraph.svg)
+
+By instrumenting the lower level go tooling, we can cache smaller, finer
+artifacts with Bazel and thus, speed up incremental builds.
+
+Rules
+-----
+
+"""
+
+load("//go/private/rules:library.bzl", _go_library = "go_library")
+load("//go/private/rules:binary.bzl", _go_binary = "go_binary")
+load("//go/private/rules:test.bzl", _go_test = "go_test")
+load("//go/private/rules:source.bzl", _go_source = "go_source")
+load("//go/private/tools:path.bzl", _go_path = "go_path")
+load("//go/private/rules:cross.bzl", _go_cross_binary = "go_cross_binary")
+
+go_library = _go_library
+go_binary = _go_binary
+go_test = _go_test
+go_source = _go_source
+go_path = _go_path
+go_cross_binary = _go_cross_binary
diff --git a/docs/go/core/rules.md b/docs/go/core/rules.md
new file mode 100644
index 00000000..d30a4737
--- /dev/null
+++ b/docs/go/core/rules.md
@@ -0,0 +1,403 @@
+<!-- Generated with Stardoc: http://skydoc.bazel.build -->
+
+
+ ["Make variable"]: https://docs.bazel.build/versions/master/be/make-variables.html
+ [Bourne shell tokenization]: https://docs.bazel.build/versions/master/be/common-definitions.html#sh-tokenization
+ [Gazelle]: https://github.com/bazelbuild/bazel-gazelle
+ [GoArchive]: /go/providers.rst#GoArchive
+ [GoLibrary]: /go/providers.rst#GoLibrary
+ [GoPath]: /go/providers.rst#GoPath
+ [GoSource]: /go/providers.rst#GoSource
+ [build constraints]: https://golang.org/pkg/go/build/#hdr-Build_Constraints
+ [cc_library deps]: https://docs.bazel.build/versions/master/be/c-cpp.html#cc_library.deps
+ [cgo]: http://golang.org/cmd/cgo/
+ [config_setting]: https://docs.bazel.build/versions/master/be/general.html#config_setting
+ [data dependencies]: https://docs.bazel.build/versions/master/build-ref.html#data
+ [goarch]: /go/modes.rst#goarch
+ [goos]: /go/modes.rst#goos
+ [mode attributes]: /go/modes.rst#mode-attributes
+ [nogo]: /go/nogo.rst#nogo
+ [pure]: /go/modes.rst#pure
+ [race]: /go/modes.rst#race
+ [msan]: /go/modes.rst#msan
+ [select]: https://docs.bazel.build/versions/master/be/functions.html#select
+ [shard_count]: https://docs.bazel.build/versions/master/be/common-definitions.html#test.shard_count
+ [static]: /go/modes.rst#static
+ [test_arg]: https://docs.bazel.build/versions/master/user-manual.html#flag--test_arg
+ [test_filter]: https://docs.bazel.build/versions/master/user-manual.html#flag--test_filter
+ [test_env]: https://docs.bazel.build/versions/master/user-manual.html#flag--test_env
+ [test_runner_fail_fast]: https://docs.bazel.build/versions/master/command-line-reference.html#flag--test_runner_fail_fast
+ [write a CROSSTOOL file]: https://github.com/bazelbuild/bazel/wiki/Yet-Another-CROSSTOOL-Writing-Tutorial
+ [bazel]: https://pkg.go.dev/github.com/bazelbuild/rules_go/go/tools/bazel?tab=doc
+ [go_library]: #go_library
+ [go_binary]: #go_binary
+ [go_test]: #go_test
+ [go_path]: #go_path
+ [go_source]: #go_source
+ [go_test]: #go_test
+ [Examples]: examples.md#examples
+ [Defines and stamping]: defines_and_stamping.md#defines-and-stamping
+ [Stamping with the workspace status script]: defines_and_stamping.md#stamping-with-the-workspace-status-script
+ [Embedding]: embedding.md#embedding
+ [Cross compilation]: cross_compilation.md#cross-compilation
+ [Platform-specific dependencies]: platform-specific_dependencies.md#platform-specific-dependencies
+
+# Core Go rules
+
+These are the core go rules, required for basic operation. The intent is that these rules are
+sufficient to match the capabilities of the normal go tools.
+
+## Additional resources
+- ["Make variable"]
+- [Bourne shell tokenization]
+- [Gazelle]
+- [GoArchive]
+- [GoLibrary]
+- [GoPath]
+- [GoSource]
+- [build constraints]:
+- [cc_library deps]
+- [cgo]
+- [config_setting]
+- [data dependencies]
+- [goarch]
+- [goos]
+- [mode attributes]
+- [nogo]
+- [pure]
+- [race]
+- [msan]
+- [select]:
+- [shard_count]
+- [static]
+- [test_arg]
+- [test_filter]
+- [test_env]
+- [test_runner_fail_fast]
+- [write a CROSSTOOL file]
+- [bazel]
+
+
+------------------------------------------------------------------------
+
+Introduction
+------------
+
+Three core rules may be used to build most projects: [go_library], [go_binary],
+and [go_test]. These rules reimplement the low level plumping commands of a normal
+'go build' invocation: compiling package's source files to archives, then linking
+archives into go binary.
+
+[go_library] builds a single package. It has a list of source files
+(specified with `srcs`) and may depend on other packages (with `deps`).
+Each [go_library] has an `importpath`, which is the name used to import it
+in Go source files.
+
+[go_binary] also builds a single `main` package and links it into an
+executable. It may embed the content of a [go_library] using the `embed`
+attribute. Embedded sources are compiled together in the same package.
+Binaries can be built for alternative platforms and configurations by setting
+`goos`, `goarch`, and other attributes.
+
+[go_test] builds a test executable. Like tests produced by `go test`, this
+consists of three packages: an internal test package compiled together with
+the library being tested (specified with `embed`), an external test package
+compiled separately, and a generated test main package.
+
+Here is an example of a Bazel build graph for a project using these core rules:
+
+![](./buildgraph.svg)
+
+By instrumenting the lower level go tooling, we can cache smaller, finer
+artifacts with Bazel and thus, speed up incremental builds.
+
+Rules
+-----
+
+
+
+
+
+
+<a id="#go_binary"></a>
+
+## go_binary
+
+<pre>
+go_binary(<a href="#go_binary-name">name</a>, <a href="#go_binary-basename">basename</a>, <a href="#go_binary-cdeps">cdeps</a>, <a href="#go_binary-cgo">cgo</a>, <a href="#go_binary-clinkopts">clinkopts</a>, <a href="#go_binary-copts">copts</a>, <a href="#go_binary-cppopts">cppopts</a>, <a href="#go_binary-cxxopts">cxxopts</a>, <a href="#go_binary-data">data</a>, <a href="#go_binary-deps">deps</a>, <a href="#go_binary-embed">embed</a>,
+ <a href="#go_binary-embedsrcs">embedsrcs</a>, <a href="#go_binary-env">env</a>, <a href="#go_binary-gc_goopts">gc_goopts</a>, <a href="#go_binary-gc_linkopts">gc_linkopts</a>, <a href="#go_binary-goarch">goarch</a>, <a href="#go_binary-goos">goos</a>, <a href="#go_binary-gotags">gotags</a>, <a href="#go_binary-importpath">importpath</a>, <a href="#go_binary-linkmode">linkmode</a>, <a href="#go_binary-msan">msan</a>,
+ <a href="#go_binary-out">out</a>, <a href="#go_binary-pure">pure</a>, <a href="#go_binary-race">race</a>, <a href="#go_binary-srcs">srcs</a>, <a href="#go_binary-static">static</a>, <a href="#go_binary-x_defs">x_defs</a>)
+</pre>
+
+This builds an executable from a set of source files,
+ which must all be in the `main` package. You can run the binary with
+ `bazel run`, or you can build it with `bazel build` and run it directly.<br><br>
+ ***Note:*** `name` should be the same as the desired name of the generated binary.<br><br>
+ **Providers:**
+ <ul>
+ <li>[GoLibrary]</li>
+ <li>[GoSource]</li>
+ <li>[GoArchive]</li>
+ </ul>
+
+
+### **Attributes**
+
+
+| Name | Description | Type | Mandatory | Default |
+| :------------- | :------------- | :------------- | :------------- | :------------- |
+| <a id="go_binary-name"></a>name | A unique name for this target. | <a href="https://bazel.build/concepts/labels#target-names">Name</a> | required | |
+| <a id="go_binary-basename"></a>basename | The basename of this binary. The binary basename may also be platform-dependent: on Windows, we add an .exe extension. | String | optional | "" |
+| <a id="go_binary-cdeps"></a>cdeps | The list of other libraries that the c code depends on. This can be anything that would be allowed in [cc_library deps] Only valid if <code>cgo</code> = <code>True</code>. | <a href="https://bazel.build/concepts/labels">List of labels</a> | optional | [] |
+| <a id="go_binary-cgo"></a>cgo | If <code>True</code>, the package may contain [cgo] code, and <code>srcs</code> may contain C, C++, Objective-C, and Objective-C++ files and non-Go assembly files. When cgo is enabled, these files will be compiled with the C/C++ toolchain and included in the package. Note that this attribute does not force cgo to be enabled. Cgo is enabled for non-cross-compiling builds when a C/C++ toolchain is configured. | Boolean | optional | False |
+| <a id="go_binary-clinkopts"></a>clinkopts | List of flags to add to the C link command. Subject to ["Make variable"] substitution and [Bourne shell tokenization]. Only valid if <code>cgo</code> = <code>True</code>. | List of strings | optional | [] |
+| <a id="go_binary-copts"></a>copts | List of flags to add to the C compilation command. Subject to ["Make variable"] substitution and [Bourne shell tokenization]. Only valid if <code>cgo</code> = <code>True</code>. | List of strings | optional | [] |
+| <a id="go_binary-cppopts"></a>cppopts | List of flags to add to the C/C++ preprocessor command. Subject to ["Make variable"] substitution and [Bourne shell tokenization]. Only valid if <code>cgo</code> = <code>True</code>. | List of strings | optional | [] |
+| <a id="go_binary-cxxopts"></a>cxxopts | List of flags to add to the C++ compilation command. Subject to ["Make variable"] substitution and [Bourne shell tokenization]. Only valid if <code>cgo</code> = <code>True</code>. | List of strings | optional | [] |
+| <a id="go_binary-data"></a>data | List of files needed by this rule at run-time. This may include data files needed or other programs that may be executed. The [bazel] package may be used to locate run files; they may appear in different places depending on the operating system and environment. See [data dependencies] for more information on data files. | <a href="https://bazel.build/concepts/labels">List of labels</a> | optional | [] |
+| <a id="go_binary-deps"></a>deps | List of Go libraries this package imports directly. These may be <code>go_library</code> rules or compatible rules with the [GoLibrary] provider. | <a href="https://bazel.build/concepts/labels">List of labels</a> | optional | [] |
+| <a id="go_binary-embed"></a>embed | List of Go libraries whose sources should be compiled together with this binary's sources. Labels listed here must name <code>go_library</code>, <code>go_proto_library</code>, or other compatible targets with the [GoLibrary] and [GoSource] providers. Embedded libraries must all have the same <code>importpath</code>, which must match the <code>importpath</code> for this <code>go_binary</code> if one is specified. At most one embedded library may have <code>cgo = True</code>, and the embedding binary may not also have <code>cgo = True</code>. See [Embedding] for more information. | <a href="https://bazel.build/concepts/labels">List of labels</a> | optional | [] |
+| <a id="go_binary-embedsrcs"></a>embedsrcs | The list of files that may be embedded into the compiled package using <code>//go:embed</code> directives. All files must be in the same logical directory or a subdirectory as source files. All source files containing <code>//go:embed</code> directives must be in the same logical directory. It's okay to mix static and generated source files and static and generated embeddable files. | <a href="https://bazel.build/concepts/labels">List of labels</a> | optional | [] |
+| <a id="go_binary-env"></a>env | Environment variables to set when the binary is executed with bazel run. The values (but not keys) are subject to [location expansion](https://docs.bazel.build/versions/main/skylark/macros.html) but not full [make variable expansion](https://docs.bazel.build/versions/main/be/make-variables.html). | <a href="https://bazel.build/rules/lib/dict">Dictionary: String -> String</a> | optional | {} |
+| <a id="go_binary-gc_goopts"></a>gc_goopts | List of flags to add to the Go compilation command when using the gc compiler. Subject to ["Make variable"] substitution and [Bourne shell tokenization]. | List of strings | optional | [] |
+| <a id="go_binary-gc_linkopts"></a>gc_linkopts | List of flags to add to the Go link command when using the gc compiler. Subject to ["Make variable"] substitution and [Bourne shell tokenization]. | List of strings | optional | [] |
+| <a id="go_binary-goarch"></a>goarch | Forces a binary to be cross-compiled for a specific architecture. It's usually better to control this on the command line with <code>--platforms</code>.<br><br> This disables cgo by default, since a cross-compiling C/C++ toolchain is rarely available. To force cgo, set <code>pure</code> = <code>off</code>.<br><br> See [Cross compilation] for more information. | String | optional | "auto" |
+| <a id="go_binary-goos"></a>goos | Forces a binary to be cross-compiled for a specific operating system. It's usually better to control this on the command line with <code>--platforms</code>.<br><br> This disables cgo by default, since a cross-compiling C/C++ toolchain is rarely available. To force cgo, set <code>pure</code> = <code>off</code>.<br><br> See [Cross compilation] for more information. | String | optional | "auto" |
+| <a id="go_binary-gotags"></a>gotags | Enables a list of build tags when evaluating [build constraints]. Useful for conditional compilation. | List of strings | optional | [] |
+| <a id="go_binary-importpath"></a>importpath | The import path of this binary. Binaries can't actually be imported, but this may be used by [go_path] and other tools to report the location of source files. This may be inferred from embedded libraries. | String | optional | "" |
+| <a id="go_binary-linkmode"></a>linkmode | Determines how the binary should be built and linked. This accepts some of the same values as `go build -buildmode` and works the same way. <br><br> <ul> <li>`normal`: Builds a normal executable with position-dependent code.</li> <li>`pie`: Builds a position-independent executable.</li> <li>`plugin`: Builds a shared library that can be loaded as a Go plugin. Only supported on platforms that support plugins.</li> <li>`c-shared`: Builds a shared library that can be linked into a C program.</li> <li>`c-archive`: Builds an archive that can be linked into a C program.</li> </ul> | String | optional | "normal" |
+| <a id="go_binary-msan"></a>msan | Controls whether code is instrumented for memory sanitization. May be one of <code>on</code>, <code>off</code>, or <code>auto</code>. Not available when cgo is disabled. In most cases, it's better to control this on the command line with <code>--@io_bazel_rules_go//go/config:msan</code>. See [mode attributes], specifically [msan]. | String | optional | "auto" |
+| <a id="go_binary-out"></a>out | Sets the output filename for the generated executable. When set, <code>go_binary</code> will write this file without mode-specific directory prefixes, without linkmode-specific prefixes like "lib", and without platform-specific suffixes like ".exe". Note that without a mode-specific directory prefix, the output file (but not its dependencies) will be invalidated in Bazel's cache when changing configurations. | String | optional | "" |
+| <a id="go_binary-pure"></a>pure | Controls whether cgo source code and dependencies are compiled and linked, similar to setting <code>CGO_ENABLED</code>. May be one of <code>on</code>, <code>off</code>, or <code>auto</code>. If <code>auto</code>, pure mode is enabled when no C/C++ toolchain is configured or when cross-compiling. It's usually better to control this on the command line with <code>--@io_bazel_rules_go//go/config:pure</code>. See [mode attributes], specifically [pure]. | String | optional | "auto" |
+| <a id="go_binary-race"></a>race | Controls whether code is instrumented for race detection. May be one of <code>on</code>, <code>off</code>, or <code>auto</code>. Not available when cgo is disabled. In most cases, it's better to control this on the command line with <code>--@io_bazel_rules_go//go/config:race</code>. See [mode attributes], specifically [race]. | String | optional | "auto" |
+| <a id="go_binary-srcs"></a>srcs | The list of Go source files that are compiled to create the package. Only <code>.go</code> and <code>.s</code> files are permitted, unless the <code>cgo</code> attribute is set, in which case, <code>.c .cc .cpp .cxx .h .hh .hpp .hxx .inc .m .mm</code> files are also permitted. Files may be filtered at build time using Go [build constraints]. | <a href="https://bazel.build/concepts/labels">List of labels</a> | optional | [] |
+| <a id="go_binary-static"></a>static | Controls whether a binary is statically linked. May be one of <code>on</code>, <code>off</code>, or <code>auto</code>. Not available on all platforms or in all modes. It's usually better to control this on the command line with <code>--@io_bazel_rules_go//go/config:static</code>. See [mode attributes], specifically [static]. | String | optional | "auto" |
+| <a id="go_binary-x_defs"></a>x_defs | Map of defines to add to the go link command. See [Defines and stamping] for examples of how to use these. | <a href="https://bazel.build/rules/lib/dict">Dictionary: String -> String</a> | optional | {} |
+
+
+
+
+
+<a id="#go_cross_binary"></a>
+
+## go_cross_binary
+
+<pre>
+go_cross_binary(<a href="#go_cross_binary-name">name</a>, <a href="#go_cross_binary-platform">platform</a>, <a href="#go_cross_binary-sdk_version">sdk_version</a>, <a href="#go_cross_binary-target">target</a>)
+</pre>
+
+This wraps an executable built by `go_binary` to cross compile it
+ for a different platform, and/or compile it using a different version
+ of the golang SDK.<br><br>
+ **Providers:**
+ <ul>
+ <li>[GoLibrary]</li>
+ <li>[GoSource]</li>
+ <li>[GoArchive]</li>
+ </ul>
+
+
+### **Attributes**
+
+
+| Name | Description | Type | Mandatory | Default |
+| :------------- | :------------- | :------------- | :------------- | :------------- |
+| <a id="go_cross_binary-name"></a>name | A unique name for this target. | <a href="https://bazel.build/concepts/labels#target-names">Name</a> | required | |
+| <a id="go_cross_binary-platform"></a>platform | The platform to cross compile the <code>target</code> for. If unspecified, the <code>target</code> will be compiled with the same platform as it would've with the original <code>go_binary</code> rule. | <a href="https://bazel.build/concepts/labels">Label</a> | optional | None |
+| <a id="go_cross_binary-sdk_version"></a>sdk_version | The golang SDK version to use for compiling the <code>target</code>. Supports specifying major, minor, and/or patch versions, eg. <code>"1"</code>, <code>"1.17"</code>, or <code>"1.17.1"</code>. The first Go SDK provider installed in the repo's workspace (via <code>go_download_sdk</code>, <code>go_wrap_sdk</code>, etc) that matches the specified version will be used for compiling the given <code>target</code>. If unspecified, the <code>target</code> will be compiled with the same SDK as it would've with the original <code>go_binary</code> rule. Transitions <code>target</code> by changing the <code>--@io_bazel_rules_go//go/toolchain:sdk_version</code> build flag to the value provided for <code>sdk_version</code> here. | String | optional | "" |
+| <a id="go_cross_binary-target"></a>target | Go binary target to transition to the given platform and/or sdk_version. | <a href="https://bazel.build/concepts/labels">Label</a> | required | |
+
+
+
+
+
+<a id="#go_library"></a>
+
+## go_library
+
+<pre>
+go_library(<a href="#go_library-name">name</a>, <a href="#go_library-cdeps">cdeps</a>, <a href="#go_library-cgo">cgo</a>, <a href="#go_library-clinkopts">clinkopts</a>, <a href="#go_library-copts">copts</a>, <a href="#go_library-cppopts">cppopts</a>, <a href="#go_library-cxxopts">cxxopts</a>, <a href="#go_library-data">data</a>, <a href="#go_library-deps">deps</a>, <a href="#go_library-embed">embed</a>, <a href="#go_library-embedsrcs">embedsrcs</a>,
+ <a href="#go_library-gc_goopts">gc_goopts</a>, <a href="#go_library-importmap">importmap</a>, <a href="#go_library-importpath">importpath</a>, <a href="#go_library-importpath_aliases">importpath_aliases</a>, <a href="#go_library-srcs">srcs</a>, <a href="#go_library-x_defs">x_defs</a>)
+</pre>
+
+This builds a Go library from a set of source files that are all part of
+ the same package.<br><br>
+ ***Note:*** For targets generated by Gazelle, `name` is typically the last component of the path,
+ or `go_default_library`, with the old naming convention.<br><br>
+ **Providers:**
+ <ul>
+ <li>[GoLibrary]</li>
+ <li>[GoSource]</li>
+ <li>[GoArchive]</li>
+ </ul>
+
+
+### **Attributes**
+
+
+| Name | Description | Type | Mandatory | Default |
+| :------------- | :------------- | :------------- | :------------- | :------------- |
+| <a id="go_library-name"></a>name | A unique name for this target. | <a href="https://bazel.build/concepts/labels#target-names">Name</a> | required | |
+| <a id="go_library-cdeps"></a>cdeps | List of other libraries that the c code depends on. This can be anything that would be allowed in [cc_library deps] Only valid if <code>cgo = True</code>. | <a href="https://bazel.build/concepts/labels">List of labels</a> | optional | [] |
+| <a id="go_library-cgo"></a>cgo | If <code>True</code>, the package may contain [cgo] code, and <code>srcs</code> may contain C, C++, Objective-C, and Objective-C++ files and non-Go assembly files. When cgo is enabled, these files will be compiled with the C/C++ toolchain and included in the package. Note that this attribute does not force cgo to be enabled. Cgo is enabled for non-cross-compiling builds when a C/C++ toolchain is configured. | Boolean | optional | False |
+| <a id="go_library-clinkopts"></a>clinkopts | List of flags to add to the C link command. Subject to ["Make variable"] substitution and [Bourne shell tokenization]. Only valid if <code>cgo = True</code>. | List of strings | optional | [] |
+| <a id="go_library-copts"></a>copts | List of flags to add to the C compilation command. Subject to ["Make variable"] substitution and [Bourne shell tokenization]. Only valid if <code>cgo = True</code>. | List of strings | optional | [] |
+| <a id="go_library-cppopts"></a>cppopts | List of flags to add to the C/C++ preprocessor command. Subject to ["Make variable"] substitution and [Bourne shell tokenization]. Only valid if <code>cgo = True</code>. | List of strings | optional | [] |
+| <a id="go_library-cxxopts"></a>cxxopts | List of flags to add to the C++ compilation command. Subject to ["Make variable"] substitution and [Bourne shell tokenization]. Only valid if <code>cgo = True</code>. | List of strings | optional | [] |
+| <a id="go_library-data"></a>data | List of files needed by this rule at run-time. This may include data files needed or other programs that may be executed. The [bazel] package may be used to locate run files; they may appear in different places depending on the operating system and environment. See [data dependencies] for more information on data files. | <a href="https://bazel.build/concepts/labels">List of labels</a> | optional | [] |
+| <a id="go_library-deps"></a>deps | List of Go libraries this package imports directly. These may be <code>go_library</code> rules or compatible rules with the [GoLibrary] provider. | <a href="https://bazel.build/concepts/labels">List of labels</a> | optional | [] |
+| <a id="go_library-embed"></a>embed | List of Go libraries whose sources should be compiled together with this package's sources. Labels listed here must name <code>go_library</code>, <code>go_proto_library</code>, or other compatible targets with the [GoLibrary] and [GoSource] providers. Embedded libraries must have the same <code>importpath</code> as the embedding library. At most one embedded library may have <code>cgo = True</code>, and the embedding library may not also have <code>cgo = True</code>. See [Embedding] for more information. | <a href="https://bazel.build/concepts/labels">List of labels</a> | optional | [] |
+| <a id="go_library-embedsrcs"></a>embedsrcs | The list of files that may be embedded into the compiled package using <code>//go:embed</code> directives. All files must be in the same logical directory or a subdirectory as source files. All source files containing <code>//go:embed</code> directives must be in the same logical directory. It's okay to mix static and generated source files and static and generated embeddable files. | <a href="https://bazel.build/concepts/labels">List of labels</a> | optional | [] |
+| <a id="go_library-gc_goopts"></a>gc_goopts | List of flags to add to the Go compilation command when using the gc compiler. Subject to ["Make variable"] substitution and [Bourne shell tokenization]. | List of strings | optional | [] |
+| <a id="go_library-importmap"></a>importmap | The actual import path of this library. By default, this is <code>importpath</code>. This is mostly only visible to the compiler and linker, but it may also be seen in stack traces. This must be unique among packages passed to the linker. It may be set to something different than <code>importpath</code> to prevent conflicts between multiple packages with the same path (for example, from different vendor directories). | String | optional | "" |
+| <a id="go_library-importpath"></a>importpath | The source import path of this library. Other libraries can import this library using this path. This must either be specified in <code>go_library</code> or inherited from one of the libraries in <code>embed</code>. | String | optional | "" |
+| <a id="go_library-importpath_aliases"></a>importpath_aliases | - | List of strings | optional | [] |
+| <a id="go_library-srcs"></a>srcs | The list of Go source files that are compiled to create the package. Only <code>.go</code> and <code>.s</code> files are permitted, unless the <code>cgo</code> attribute is set, in which case, <code>.c .cc .cpp .cxx .h .hh .hpp .hxx .inc .m .mm</code> files are also permitted. Files may be filtered at build time using Go [build constraints]. | <a href="https://bazel.build/concepts/labels">List of labels</a> | optional | [] |
+| <a id="go_library-x_defs"></a>x_defs | Map of defines to add to the go link command. See [Defines and stamping] for examples of how to use these. | <a href="https://bazel.build/rules/lib/dict">Dictionary: String -> String</a> | optional | {} |
+
+
+
+
+
+<a id="#go_path"></a>
+
+## go_path
+
+<pre>
+go_path(<a href="#go_path-name">name</a>, <a href="#go_path-data">data</a>, <a href="#go_path-deps">deps</a>, <a href="#go_path-include_data">include_data</a>, <a href="#go_path-include_pkg">include_pkg</a>, <a href="#go_path-include_transitive">include_transitive</a>, <a href="#go_path-mode">mode</a>)
+</pre>
+
+`go_path` builds a directory structure that can be used with
+ tools that understand the GOPATH directory layout. This directory structure
+ can be built by zipping, copying, or linking files.
+ `go_path` can depend on one or more Go targets (i.e., [go_library], [go_binary], or [go_test]).
+ It will include packages from those targets, as well as their transitive dependencies.
+ Packages will be in subdirectories named after their `importpath` or `importmap` attributes under a `src/` directory.
+
+
+### **Attributes**
+
+
+| Name | Description | Type | Mandatory | Default |
+| :------------- | :------------- | :------------- | :------------- | :------------- |
+| <a id="go_path-name"></a>name | A unique name for this target. | <a href="https://bazel.build/concepts/labels#target-names">Name</a> | required | |
+| <a id="go_path-data"></a>data | A list of targets producing data files that will be stored next to the <code>src/</code> directory. Useful for including things like licenses and readmes. | <a href="https://bazel.build/concepts/labels">List of labels</a> | optional | [] |
+| <a id="go_path-deps"></a>deps | A list of targets that build Go packages. A directory will be generated from files in these targets and their transitive dependencies. All targets must provide [GoArchive] ([go_library], [go_binary], [go_test], and similar rules have this).<br><br> Only targets with explicit <code>importpath</code> attributes will be included in the generated directory. Synthetic packages (like the main package produced by [go_test]) and packages with inferred import paths will not be included. The values of <code>importmap</code> attributes may influence the placement of packages within the generated directory (for example, in vendor directories).<br><br> The generated directory will contain original source files, including .go, .s, .h, and .c files compiled by cgo. It will not contain files generated by tools like cover and cgo, but it will contain generated files passed in <code>srcs</code> attributes like .pb.go files. The generated directory will also contain runfiles found in <code>data</code> attributes. | <a href="https://bazel.build/concepts/labels">List of labels</a> | optional | [] |
+| <a id="go_path-include_data"></a>include_data | When true, data files referenced by libraries, binaries, and tests will be included in the output directory. Files listed in the <code>data</code> attribute for this rule will be included regardless of this attribute. | Boolean | optional | True |
+| <a id="go_path-include_pkg"></a>include_pkg | When true, a <code>pkg</code> subdirectory containing the compiled libraries will be created in the generated <code>GOPATH</code> containing compiled libraries. | Boolean | optional | False |
+| <a id="go_path-include_transitive"></a>include_transitive | When true, the transitive dependency graph will be included in the generated <code>GOPATH</code>. This is the default behaviour. When false, only the direct dependencies will be included in the generated <code>GOPATH</code>. | Boolean | optional | True |
+| <a id="go_path-mode"></a>mode | Determines how the generated directory is provided. May be one of: <ul> <li><code>"archive"</code>: The generated directory is packaged as a single .zip file.</li> <li><code>"copy"</code>: The generated directory is a single tree artifact. Source files are copied into the tree.</li> <li><code>"link"</code>: <b>Unmaintained due to correctness issues</b>. Source files are symlinked into the tree. All of the symlink files are provided as separate output files.</li> </ul> ***Note:*** In <code>"copy"</code> mode, when a <code>GoPath</code> is consumed as a set of input files or run files, Bazel may provide symbolic links instead of regular files. Any program that consumes these files should dereference links, e.g., if you run <code>tar</code>, use the <code>--dereference</code> flag. | String | optional | "copy" |
+
+
+
+
+
+<a id="#go_source"></a>
+
+## go_source
+
+<pre>
+go_source(<a href="#go_source-name">name</a>, <a href="#go_source-data">data</a>, <a href="#go_source-deps">deps</a>, <a href="#go_source-embed">embed</a>, <a href="#go_source-gc_goopts">gc_goopts</a>, <a href="#go_source-srcs">srcs</a>)
+</pre>
+
+This declares a set of source files and related dependencies that can be embedded into one of the
+ other rules.
+ This is used as a way of easily declaring a common set of sources re-used in multiple rules.<br><br>
+ **Providers:**
+ <ul>
+ <li>[GoLibrary]</li>
+ <li>[GoSource]</li>
+ </ul>
+
+
+### **Attributes**
+
+
+| Name | Description | Type | Mandatory | Default |
+| :------------- | :------------- | :------------- | :------------- | :------------- |
+| <a id="go_source-name"></a>name | A unique name for this target. | <a href="https://bazel.build/concepts/labels#target-names">Name</a> | required | |
+| <a id="go_source-data"></a>data | List of files needed by this rule at run-time. This may include data files needed or other programs that may be executed. The [bazel] package may be used to locate run files; they may appear in different places depending on the operating system and environment. See [data dependencies] for more information on data files. | <a href="https://bazel.build/concepts/labels">List of labels</a> | optional | [] |
+| <a id="go_source-deps"></a>deps | List of Go libraries this source list imports directly. These may be go_library rules or compatible rules with the [GoLibrary] provider. | <a href="https://bazel.build/concepts/labels">List of labels</a> | optional | [] |
+| <a id="go_source-embed"></a>embed | List of Go libraries whose sources should be compiled together with this package's sources. Labels listed here must name <code>go_library</code>, <code>go_proto_library</code>, or other compatible targets with the [GoLibrary] and [GoSource] providers. Embedded libraries must have the same <code>importpath</code> as the embedding library. At most one embedded library may have <code>cgo = True</code>, and the embedding library may not also have <code>cgo = True</code>. See [Embedding] for more information. | <a href="https://bazel.build/concepts/labels">List of labels</a> | optional | [] |
+| <a id="go_source-gc_goopts"></a>gc_goopts | List of flags to add to the Go compilation command when using the gc compiler. Subject to ["Make variable"] substitution and [Bourne shell tokenization]. | List of strings | optional | [] |
+| <a id="go_source-srcs"></a>srcs | The list of Go source files that are compiled to create the package. The following file types are permitted: <code>.go, .c, .s, .S .h</code>. The files may contain Go-style [build constraints]. | <a href="https://bazel.build/concepts/labels">List of labels</a> | optional | [] |
+
+
+
+
+
+<a id="#go_test"></a>
+
+## go_test
+
+<pre>
+go_test(<a href="#go_test-name">name</a>, <a href="#go_test-cdeps">cdeps</a>, <a href="#go_test-cgo">cgo</a>, <a href="#go_test-clinkopts">clinkopts</a>, <a href="#go_test-copts">copts</a>, <a href="#go_test-cppopts">cppopts</a>, <a href="#go_test-cxxopts">cxxopts</a>, <a href="#go_test-data">data</a>, <a href="#go_test-deps">deps</a>, <a href="#go_test-embed">embed</a>, <a href="#go_test-embedsrcs">embedsrcs</a>, <a href="#go_test-env">env</a>,
+ <a href="#go_test-env_inherit">env_inherit</a>, <a href="#go_test-gc_goopts">gc_goopts</a>, <a href="#go_test-gc_linkopts">gc_linkopts</a>, <a href="#go_test-goarch">goarch</a>, <a href="#go_test-goos">goos</a>, <a href="#go_test-gotags">gotags</a>, <a href="#go_test-importpath">importpath</a>, <a href="#go_test-linkmode">linkmode</a>, <a href="#go_test-msan">msan</a>, <a href="#go_test-pure">pure</a>,
+ <a href="#go_test-race">race</a>, <a href="#go_test-rundir">rundir</a>, <a href="#go_test-srcs">srcs</a>, <a href="#go_test-static">static</a>, <a href="#go_test-x_defs">x_defs</a>)
+</pre>
+
+This builds a set of tests that can be run with `bazel test`.<br><br>
+ To run all tests in the workspace, and print output on failure (the
+ equivalent of `go test ./...`), run<br>
+ ```
+ bazel test --test_output=errors //...
+ ```<br><br>
+ To run a Go benchmark test, run<br>
+ ```
+ bazel run //path/to:test -- -test.bench=.
+ ```<br><br>
+ You can run specific tests by passing the `--test_filter=pattern
+ <test_filter_>` argument to Bazel. You can pass arguments to tests by passing
+ `--test_arg=arg <test_arg_>` arguments to Bazel, and you can set environment
+ variables in the test environment by passing
+ `--test_env=VAR=value <test_env_>`. You can terminate test execution after the first
+ failure by passing the `--test_runner_fast_fast <test_runner_fail_fast_>` argument
+ to Bazel. This is equivalent to passing `--test_arg=-failfast <test_arg_>`.<br><br>
+ To write structured testlog information to Bazel's `XML_OUTPUT_FILE`, tests
+ ran with `bazel test` execute using a wrapper. This functionality can be
+ disabled by setting `GO_TEST_WRAP=0` in the test environment. Additionally,
+ the testbinary can be invoked with `-test.v` by setting
+ `GO_TEST_WRAP_TESTV=1` in the test environment; this will result in the
+ `XML_OUTPUT_FILE` containing more granular data.<br><br>
+ ***Note:*** To interoperate cleanly with old targets generated by [Gazelle], `name`
+ should be `go_default_test` for internal tests and
+ `go_default_xtest` for external tests. Gazelle now generates
+ the name based on the last component of the path. For example, a test
+ in `//foo/bar` is named `bar_test`, and uses internal and external
+ sources.
+
+
+### **Attributes**
+
+
+| Name | Description | Type | Mandatory | Default |
+| :------------- | :------------- | :------------- | :------------- | :------------- |
+| <a id="go_test-name"></a>name | A unique name for this target. | <a href="https://bazel.build/concepts/labels#target-names">Name</a> | required | |
+| <a id="go_test-cdeps"></a>cdeps | The list of other libraries that the c code depends on. This can be anything that would be allowed in [cc_library deps] Only valid if <code>cgo</code> = <code>True</code>. | <a href="https://bazel.build/concepts/labels">List of labels</a> | optional | [] |
+| <a id="go_test-cgo"></a>cgo | If <code>True</code>, the package may contain [cgo] code, and <code>srcs</code> may contain C, C++, Objective-C, and Objective-C++ files and non-Go assembly files. When cgo is enabled, these files will be compiled with the C/C++ toolchain and included in the package. Note that this attribute does not force cgo to be enabled. Cgo is enabled for non-cross-compiling builds when a C/C++ toolchain is configured. | Boolean | optional | False |
+| <a id="go_test-clinkopts"></a>clinkopts | List of flags to add to the C link command. Subject to ["Make variable"] substitution and [Bourne shell tokenization]. Only valid if <code>cgo</code> = <code>True</code>. | List of strings | optional | [] |
+| <a id="go_test-copts"></a>copts | List of flags to add to the C compilation command. Subject to ["Make variable"] substitution and [Bourne shell tokenization]. Only valid if <code>cgo</code> = <code>True</code>. | List of strings | optional | [] |
+| <a id="go_test-cppopts"></a>cppopts | List of flags to add to the C/C++ preprocessor command. Subject to ["Make variable"] substitution and [Bourne shell tokenization]. Only valid if <code>cgo</code> = <code>True</code>. | List of strings | optional | [] |
+| <a id="go_test-cxxopts"></a>cxxopts | List of flags to add to the C++ compilation command. Subject to ["Make variable"] substitution and [Bourne shell tokenization]. Only valid if <code>cgo</code> = <code>True</code>. | List of strings | optional | [] |
+| <a id="go_test-data"></a>data | List of files needed by this rule at run-time. This may include data files needed or other programs that may be executed. The [bazel] package may be used to locate run files; they may appear in different places depending on the operating system and environment. See [data dependencies] for more information on data files. | <a href="https://bazel.build/concepts/labels">List of labels</a> | optional | [] |
+| <a id="go_test-deps"></a>deps | List of Go libraries this test imports directly. These may be go_library rules or compatible rules with the [GoLibrary] provider. | <a href="https://bazel.build/concepts/labels">List of labels</a> | optional | [] |
+| <a id="go_test-embed"></a>embed | List of Go libraries whose sources should be compiled together with this package's sources. Labels listed here must name <code>go_library</code>, <code>go_proto_library</code>, or other compatible targets with the [GoLibrary] and [GoSource] providers. Embedded libraries must have the same <code>importpath</code> as the embedding library. At most one embedded library may have <code>cgo = True</code>, and the embedding library may not also have <code>cgo = True</code>. See [Embedding] for more information. | <a href="https://bazel.build/concepts/labels">List of labels</a> | optional | [] |
+| <a id="go_test-embedsrcs"></a>embedsrcs | The list of files that may be embedded into the compiled package using <code>//go:embed</code> directives. All files must be in the same logical directory or a subdirectory as source files. All source files containing <code>//go:embed</code> directives must be in the same logical directory. It's okay to mix static and generated source files and static and generated embeddable files. | <a href="https://bazel.build/concepts/labels">List of labels</a> | optional | [] |
+| <a id="go_test-env"></a>env | Environment variables to set for the test execution. The values (but not keys) are subject to [location expansion](https://docs.bazel.build/versions/main/skylark/macros.html) but not full [make variable expansion](https://docs.bazel.build/versions/main/be/make-variables.html). | <a href="https://bazel.build/rules/lib/dict">Dictionary: String -> String</a> | optional | {} |
+| <a id="go_test-env_inherit"></a>env_inherit | Environment variables to inherit from the external environment. | List of strings | optional | [] |
+| <a id="go_test-gc_goopts"></a>gc_goopts | List of flags to add to the Go compilation command when using the gc compiler. Subject to ["Make variable"] substitution and [Bourne shell tokenization]. | List of strings | optional | [] |
+| <a id="go_test-gc_linkopts"></a>gc_linkopts | List of flags to add to the Go link command when using the gc compiler. Subject to ["Make variable"] substitution and [Bourne shell tokenization]. | List of strings | optional | [] |
+| <a id="go_test-goarch"></a>goarch | Forces a binary to be cross-compiled for a specific architecture. It's usually better to control this on the command line with <code>--platforms</code>.<br><br> This disables cgo by default, since a cross-compiling C/C++ toolchain is rarely available. To force cgo, set <code>pure</code> = <code>off</code>.<br><br> See [Cross compilation] for more information. | String | optional | "auto" |
+| <a id="go_test-goos"></a>goos | Forces a binary to be cross-compiled for a specific operating system. It's usually better to control this on the command line with <code>--platforms</code>.<br><br> This disables cgo by default, since a cross-compiling C/C++ toolchain is rarely available. To force cgo, set <code>pure</code> = <code>off</code>.<br><br> See [Cross compilation] for more information. | String | optional | "auto" |
+| <a id="go_test-gotags"></a>gotags | Enables a list of build tags when evaluating [build constraints]. Useful for conditional compilation. | List of strings | optional | [] |
+| <a id="go_test-importpath"></a>importpath | The import path of this test. Tests can't actually be imported, but this may be used by [go_path] and other tools to report the location of source files. This may be inferred from embedded libraries. | String | optional | "" |
+| <a id="go_test-linkmode"></a>linkmode | Determines how the binary should be built and linked. This accepts some of the same values as `go build -buildmode` and works the same way. <br><br> <ul> <li>`normal`: Builds a normal executable with position-dependent code.</li> <li>`pie`: Builds a position-independent executable.</li> <li>`plugin`: Builds a shared library that can be loaded as a Go plugin. Only supported on platforms that support plugins.</li> <li>`c-shared`: Builds a shared library that can be linked into a C program.</li> <li>`c-archive`: Builds an archive that can be linked into a C program.</li> </ul> | String | optional | "normal" |
+| <a id="go_test-msan"></a>msan | Controls whether code is instrumented for memory sanitization. May be one of <code>on</code>, <code>off</code>, or <code>auto</code>. Not available when cgo is disabled. In most cases, it's better to control this on the command line with <code>--@io_bazel_rules_go//go/config:msan</code>. See [mode attributes], specifically [msan]. | String | optional | "auto" |
+| <a id="go_test-pure"></a>pure | Controls whether cgo source code and dependencies are compiled and linked, similar to setting <code>CGO_ENABLED</code>. May be one of <code>on</code>, <code>off</code>, or <code>auto</code>. If <code>auto</code>, pure mode is enabled when no C/C++ toolchain is configured or when cross-compiling. It's usually better to control this on the command line with <code>--@io_bazel_rules_go//go/config:pure</code>. See [mode attributes], specifically [pure]. | String | optional | "auto" |
+| <a id="go_test-race"></a>race | Controls whether code is instrumented for race detection. May be one of <code>on</code>, <code>off</code>, or <code>auto</code>. Not available when cgo is disabled. In most cases, it's better to control this on the command line with <code>--@io_bazel_rules_go//go/config:race</code>. See [mode attributes], specifically [race]. | String | optional | "auto" |
+| <a id="go_test-rundir"></a>rundir | A directory to cd to before the test is run. This should be a path relative to the root directory of the repository in which the test is defined, which can be the main or an external repository.<br><br> The default behaviour is to change to the relative path corresponding to the test's package, which replicates the normal behaviour of <code>go test</code> so it is easy to write compatible tests.<br><br> Setting it to <code>.</code> makes the test behave the normal way for a bazel test, except that the working directory is always that of the test's repository, which is not necessarily the main repository.<br><br> Note: If runfile symlinks are disabled (such as on Windows by default), the test will run in the working directory set by Bazel, which is the subdirectory of the runfiles directory corresponding to the main repository. | String | optional | "" |
+| <a id="go_test-srcs"></a>srcs | The list of Go source files that are compiled to create the package. Only <code>.go</code> and <code>.s</code> files are permitted, unless the <code>cgo</code> attribute is set, in which case, <code>.c .cc .cpp .cxx .h .hh .hpp .hxx .inc .m .mm</code> files are also permitted. Files may be filtered at build time using Go [build constraints]. | <a href="https://bazel.build/concepts/labels">List of labels</a> | optional | [] |
+| <a id="go_test-static"></a>static | Controls whether a binary is statically linked. May be one of <code>on</code>, <code>off</code>, or <code>auto</code>. Not available on all platforms or in all modes. It's usually better to control this on the command line with <code>--@io_bazel_rules_go//go/config:static</code>. See [mode attributes], specifically [static]. | String | optional | "auto" |
+| <a id="go_test-x_defs"></a>x_defs | Map of defines to add to the go link command. See [Defines and stamping] for examples of how to use these. | <a href="https://bazel.build/rules/lib/dict">Dictionary: String -> String</a> | optional | {} |
+
+