diff --git a/docs/.vitepress/config.mts b/docs/.vitepress/config.mts index e5f4f4b9..241e5fcd 100644 --- a/docs/.vitepress/config.mts +++ b/docs/.vitepress/config.mts @@ -33,6 +33,7 @@ export default withMermaid({ text: 'Documentation', items: [ { text: 'Overview', link: '/overview' }, + { text: 'Tutorials', link: '/tutorials/evpn-vxlan-fabric' }, { text: 'API References', link: '/api/' }, ], }, @@ -69,6 +70,13 @@ export default withMermaid({ text: 'Overview', items: [{ text: 'Index', link: '/overview/' }], }, + { + text: 'Tutorials', + items: [ + { text: 'Index', link: '/tutorials/' }, + { text: 'EVPN/VXLAN Fabric', link: '/tutorials/evpn-vxlan-fabric' } + ], + }, { text: 'API References', items: [{ text: 'Index', link: '/api/' }], diff --git a/docs/assets/evpn-vxlan-topology.cast b/docs/assets/evpn-vxlan-topology.cast new file mode 100644 index 00000000..96b37c19 --- /dev/null +++ b/docs/assets/evpn-vxlan-topology.cast @@ -0,0 +1,3827 @@ +{"version":3,"term":{"cols":187,"rows":91,"type":"tmux-256color","version":"tmux 3.6a","theme":{"fg":"#cdd6f4","bg":"#1e1e2e","palette":"#45475a:#f38ba8:#a6e3a1:#f9e2af:#89b4fa:#f5c2e7:#94e2d5:#bac2de:#585b70:#f38ba8:#a6e3a1:#f9e2af:#89b4fa:#f5c2e7:#94e2d5:#a6adc8"}},"timestamp":1772880610,"command":"env ZDOTDIR=${XDG_CONFIG_HOME:-$HOME/.config}/asciinema zsh","env":{"SHELL":"/opt/homebrew/bin/fish"}} +[0.000, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[0.779, "o", "\u001b[H\u001b[J\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[1.479, "m", ""] +[1.487, "o", "k"] +[0.000, "o", "\bku"] +[0.001, "o", "b"] +[0.000, "o", "e"] +[0.000, "o", "c"] +[0.001, "o", "t"] +[0.000, "o", "l"] +[0.000, "o", " "] +[0.001, "o", "c"] +[0.000, "o", "l"] +[0.001, "o", "u"] +[0.000, "o", "s"] +[0.000, "o", "t"] +[0.001, "o", "e"] +[0.000, "o", "r"] +[0.001, "o", "-"] +[0.000, "o", "i"] +[0.000, "o", "n"] +[0.001, "o", "f"] +[0.006, "o", "\u001b[19D\u001b[32mk\u001b[32mu\u001b[32mb\u001b[32me\u001b[32mc\u001b[32mt\u001b[32ml\u001b[39m\u001b[12Co"] +[1.187, "o", "\r\r\n"] +[0.069, "o", "Kubernetes control plane is running at https://127.0.0.1:61688\r\nCoreDNS is running at https://127.0.0.1:61688/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy\r\n\r\nTo further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.\r\n"] +[0.001, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[1.997, "o", "k"] +[0.000, "o", "\bku"] +[0.001, "o", "b"] +[0.000, "o", "e"] +[0.000, "o", "c"] +[0.001, "o", "t"] +[0.000, "o", "l"] +[0.001, "o", " "] +[0.000, "o", "g"] +[0.001, "o", "e"] +[0.000, "o", "t"] +[0.000, "o", " "] +[0.001, "o", "d"] +[0.000, "o", "e"] +[0.000, "o", "p"] +[0.001, "o", "l"] +[0.000, "o", "o"] +[0.001, "o", "y"] +[0.000, "o", "m"] +[0.000, "o", "e"] +[0.001, "o", "n"] +[0.000, "o", "t"] +[0.001, "o", " "] +[0.000, "o", "-"] +[0.000, "o", "n"] +[0.001, "o", " "] +[0.000, "o", "n"] +[0.000, "o", "e"] +[0.001, "o", "t"] +[0.000, "o", "w"] +[0.000, "o", "o"] +[0.001, "o", "r"] +[0.000, "o", "k"] +[0.000, "o", "-"] +[0.001, "o", "o"] +[0.000, "o", "p"] +[0.000, "o", "e"] +[0.001, "o", "r"] +[0.000, "o", "a"] +[0.001, "o", "t"] +[0.001, "o", "o"] +[0.000, "o", "r"] +[0.000, "o", "-"] +[0.001, "o", "s"] +[0.000, "o", "y"] +[0.000, "o", "s"] +[0.001, "o", "t"] +[0.000, "o", "e"] +[0.002, "o", "\u001b[48D\u001b[32mk\u001b[32mu\u001b[32mb\u001b[32me\u001b[32mc\u001b[32mt\u001b[32ml\u001b[39m\u001b[41Cm"] +[1.337, "o", "\r\r\n"] +[0.050, "o", "NAME READY UP-TO-DATE AVAILABLE AGE\r\nnetwork-operator-controller-manager 1/1 1 1 4m45s\r\n"] +[0.001, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[2.603, "m", ""] +[1.454, "o", "y"] +[0.000, "o", "\byq"] +[0.001, "o", " "] +[0.001, "o", "."] +[0.000, "o", "/"] +[0.001, "o", "k"] +[0.000, "o", "u"] +[0.001, "o", "b"] +[0.000, "o", "e"] +[0.000, "o", "r"] +[0.001, "o", "n"] +[0.000, "o", "e"] +[0.001, "o", "t"] +[0.000, "o", "e"] +[0.000, "o", "s"] +[0.001, "o", "/"] +[0.000, "o", "0"] +[0.001, "o", "1"] +[0.000, "o", "-"] +[0.001, "o", "d"] +[0.000, "o", "e"] +[0.000, "o", "v"] +[0.001, "o", "i"] +[0.000, "o", "c"] +[0.001, "o", "e"] +[0.000, "o", "s"] +[0.000, "o", "/"] +[0.001, "o", "l"] +[0.000, "o", "e"] +[0.000, "o", "a"] +[0.001, "o", "f"] +[0.000, "o", "1"] +[0.001, "o", "."] +[0.000, "o", "y"] +[0.000, "o", "a"] +[0.001, "o", "m"] +[0.000, "o", "l"] +[0.000, "o", " "] +[0.001, "o", "."] +[0.000, "o", "/"] +[0.000, "o", "k"] +[0.001, "o", "u"] +[0.000, "o", "b"] +[0.000, "o", "e"] +[0.001, "o", "r"] +[0.000, "o", "n"] +[0.000, "o", "e"] +[0.001, "o", "t"] +[0.000, "o", "e"] +[0.000, "o", "s"] +[0.001, "o", "/"] +[0.000, "o", "0"] +[0.000, "o", "1"] +[0.001, "o", "-"] +[0.000, "o", "d"] +[0.000, "o", "e"] +[0.001, "o", "v"] +[0.000, "o", "i"] +[0.000, "o", "c"] +[0.001, "o", "e"] +[0.000, "o", "s"] +[0.000, "o", "/"] +[0.000, "o", "s"] +[0.001, "o", "e"] +[0.000, "o", "c"] +[0.000, "o", "r"] +[0.001, "o", "e"] +[0.000, "o", "t"] +[0.000, "o", "."] +[0.001, "o", "y"] +[0.000, "o", "a"] +[0.000, "o", "m"] +[0.002, "o", "\u001b[72D\u001b[32my\u001b[32mq\u001b[39m \u001b[4m.\u001b[4m/\u001b[4mk\u001b[4mu\u001b[4mb\u001b[4me\u001b[4mr\u001b[4mn\u001b[4me\u001b[4mt\u001b[4me\u001b[4ms\u001b[4m/\u001b[4m0\u001b[4m1\u001b[4m-\u001b[4md\u001b[4me\u001b[4mv\u001b[4mi\u001b[4mc\u001b[4me\u001b[4ms\u001b[4m/\u001b[4ml\u001b[4me\u001b[4ma\u001b[4mf\u001b[4m1\u001b[4m.\u001b[4my\u001b[4ma\u001b[4mm\u001b[4ml\u001b[24m \u001b[4m.\u001b[4m/\u001b[4mk\u001b[4mu\u001b[4mb\u001b[4me\u001b[4mr\u001b[4mn\u001b[4me\u001b[4mt\u001b[4me\u001b[4ms\u001b[4m/\u001b[4m0\u001b[4m1\u001b[4m-\u001b[4md\u001b[4me\u001b[4mv\u001b[4mi\u001b[4mc\u001b[4me\u001b[4ms\u001b[4m/\u001b[4ms\u001b[4me\u001b[4mc\u001b[4mr\u001b[4me\u001b[4mt\u001b[4m.\u001b[4my\u001b[4ma\u001b[4mm\u001b[4ml\u001b[24m"] +[1.153, "o", "\r\r\n"] +[0.009, "o", "\u001b[36mapiVersion\u001b[0m:\u001b[32m networking.metal.ironcore.dev/v1alpha1\u001b[0m\r\n\u001b[32m\u001b[0m\u001b[36mkind\u001b[0m:\u001b[32m Device\u001b[0m\r\n\u001b[32m\u001b[0m\u001b[36mmetadata\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m labels\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m networking.metal.ironcore.dev/role\u001b[0m:\u001b[32m evpn-leaf\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mname\u001b[0m:\u001b[32m leaf1\u001b[0m\r\n\u001b[32m\u001b[0m\u001b[36mspec\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m endpoint\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m address\u001b[0m:\u001b[32m 192.168.5.2:50011\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36msecretRef\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m name\u001b[0m:\u001b[32m fabric-credentials\u001b[0m\r\n"] +[0.000, "o", "---\r\n\u001b[36mapiVersion\u001b[0m:\u001b[32m v1\u001b[0m\r\n\u001b[32m\u001b[0m\u001b[36mkind\u001b[0m:\u001b[32m Secret\u001b[0m\r\n\u001b[32m\u001b[0m\u001b[36mmetadata\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m name\u001b[0m:\u001b[32m fabric-credentials\u001b[0m\r\n\u001b[32m\u001b[0m\u001b[36mtype\u001b[0m:\u001b[32m kubernetes.io/basic-auth\u001b[0m\r\n\u001b[32m\u001b[0m\u001b[36mstringData\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m username\u001b[0m:\u001b[32m admin\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mpassword\u001b[0m:\u001b[32m admin\u001b[0m\r\n"] +[0.001, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[1.317, "m", ""] +[2.606, "o", "k"] +[0.001, "o", "\bku"] +[0.000, "o", "b"] +[0.001, "o", "e"] +[0.000, "o", "c"] +[0.000, "o", "t"] +[0.001, "o", "l"] +[0.000, "o", " "] +[0.001, "o", "a"] +[0.000, "o", "p"] +[0.001, "o", "p"] +[0.000, "o", "l"] +[0.000, "o", "y"] +[0.001, "o", " "] +[0.000, "o", "-"] +[0.001, "o", "k"] +[0.000, "o", " "] +[0.001, "o", "."] +[0.000, "o", "/"] +[0.000, "o", "k"] +[0.001, "o", "u"] +[0.000, "o", "b"] +[0.000, "o", "e"] +[0.001, "o", "r"] +[0.000, "o", "n"] +[0.000, "o", "e"] +[0.001, "o", "t"] +[0.000, "o", "e"] +[0.000, "o", "s"] +[0.001, "o", "/"] +[0.000, "o", "0"] +[0.001, "o", "1"] +[0.000, "o", "-"] +[0.001, "o", "d"] +[0.000, "o", "e"] +[0.000, "o", "v"] +[0.001, "o", "i"] +[0.000, "o", "c"] +[0.001, "o", "e"] +[0.001, "o", "\u001b[39D\u001b[32mk\u001b[32mu\u001b[32mb\u001b[32me\u001b[32mc\u001b[32mt\u001b[32ml\u001b[39m\u001b[10C\u001b[4m.\u001b[4m/\u001b[4mk\u001b[4mu\u001b[4mb\u001b[4me\u001b[4mr\u001b[4mn\u001b[4me\u001b[4mt\u001b[4me\u001b[4ms\u001b[4m/\u001b[4m0\u001b[4m1\u001b[4m-\u001b[4md\u001b[4me\u001b[4mv\u001b[4mi\u001b[4mc\u001b[4me\u001b[4ms\u001b[24m"] +[0.835, "o", "\r\r\n"] +[0.097, "o", "secret/fabric-credentials created\r\n"] +[0.005, "o", "device.networking.metal.ironcore.dev/leaf1 created\r\n"] +[0.005, "o", "device.networking.metal.ironcore.dev/leaf2 created\r\n"] +[0.007, "o", "device.networking.metal.ironcore.dev/leaf3 created\r\n"] +[0.005, "o", "device.networking.metal.ironcore.dev/spine1 created\r\n"] +[0.003, "o", "device.networking.metal.ironcore.dev/spine2 created\r\n"] +[0.000, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[3.483, "o", "k"] +[0.001, "o", "\bku"] +[0.000, "o", "b"] +[0.001, "o", "e"] +[0.000, "o", "c"] +[0.000, "o", "t"] +[0.001, "o", "l"] +[0.000, "o", " "] +[0.001, "o", "g"] +[0.000, "o", "e"] +[0.000, "o", "t"] +[0.001, "o", " "] +[0.000, "o", "d"] +[0.001, "o", "e"] +[0.000, "o", "v"] +[0.001, "o", "i"] +[0.000, "o", "c"] +[0.001, "o", "e"] +[0.000, "o", " "] +[0.000, "o", "-"] +[0.001, "o", "o"] +[0.000, "o", " "] +[0.001, "o", "w"] +[0.000, "o", "i"] +[0.000, "o", "d"] +[0.003, "o", "\u001b[25D\u001b[32mk\u001b[32mu\u001b[32mb\u001b[32me\u001b[32mc\u001b[32mt\u001b[32ml\u001b[39m\u001b[18Ce"] +[1.457, "o", "\r\r\n"] +[0.047, "o", "NAME ENDPOINT MANUFACTURER MODEL SERIALNUMBER FIRMWAREVERSION PORTS PHASE READY AGE\r\nleaf1 192.168.5.2:50011"] +[0.000, "o", " Cisco N9K-C9300v 9D9X10CJ4NB 10.4(6) 0/64 (10g) Running True 5s\r\nleaf2 "] +[0.000, "o", "192.168.5.2:50012 "] +[0.000, "o", "Cisco N9K-C9300v 95Y2QS3MWJI "] +[0.000, "o", "10.4(6) "] +[0.000, "o", "0/64 (10g) Running True 5s\r\nleaf3"] +[0.000, "o", " 192.168.5.2:50013 Cisco N9K-C9300v 9NIPG1KUN7D 10.4(6) 0/64 (10g)"] +[0.000, "o", " Running"] +[0.000, "o", " True 5s"] +[0.000, "o", "\r\nspine1 192.168.5.2:50001 Cisco "] +[0.000, "o", " N9K-C9300v "] +[0.000, "o", "94M7ETP4RRI 10.4(6)"] +[0.000, "o", " "] +[0.000, "o", "0/64 (10g)"] +[0.000, "o", " Running "] +[0.000, "o", "True 5s\r\nspine2 192.168.5.2:50002 "] +[0.000, "o", "Cisco "] +[0.000, "o", "N9K-C9300v"] +[0.000, "o", " 97UMBFX3T63 10.4(6)"] +[0.000, "o", " "] +[0.000, "o", "0/64 (10g) "] +[0.000, "o", "Running"] +[0.000, "o", " "] +[0.000, "o", "True 5s\r\n"] +[0.000, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[1.574, "m", ""] +[0.554, "o", "\u001b[H\u001b[J\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[0.958, "o", "y"] +[0.001, "o", "\byq"] +[0.000, "o", " "] +[0.000, "o", "."] +[0.000, "o", "/"] +[0.001, "o", "k"] +[0.000, "o", "u"] +[0.000, "o", "b"] +[0.001, "o", "e"] +[0.000, "o", "r"] +[0.000, "o", "n"] +[0.000, "o", "e"] +[0.001, "o", "t"] +[0.000, "o", "e"] +[0.000, "o", "s"] +[0.000, "o", "/"] +[0.001, "o", "0"] +[0.000, "o", "2"] +[0.000, "o", "-"] +[0.000, "o", "l"] +[0.001, "o", "o"] +[0.000, "o", "o"] +[0.000, "o", "p"] +[0.000, "o", "b"] +[0.001, "o", "a"] +[0.000, "o", "c"] +[0.000, "o", "k"] +[0.000, "o", "s"] +[0.001, "o", "/"] +[0.000, "o", "s"] +[0.000, "o", "p"] +[0.000, "o", "i"] +[0.001, "o", "n"] +[0.000, "o", "e"] +[0.000, "o", "1"] +[0.001, "o", "-"] +[0.000, "o", "l"] +[0.000, "o", "o"] +[0.000, "o", "0"] +[0.001, "o", "."] +[0.000, "o", "y"] +[0.000, "o", "a"] +[0.001, "o", "m"] +[0.000, "o", "l"] +[0.000, "o", " "] +[0.000, "o", "."] +[0.001, "o", "/"] +[0.000, "o", "k"] +[0.000, "o", "u"] +[0.001, "o", "b"] +[0.000, "o", "e"] +[0.000, "o", "r"] +[0.000, "o", "n"] +[0.001, "o", "e"] +[0.000, "o", "t"] +[0.000, "o", "e"] +[0.000, "o", "s"] +[0.001, "o", "/"] +[0.000, "o", "0"] +[0.000, "o", "2"] +[0.000, "o", "-"] +[0.001, "o", "l"] +[0.000, "o", "o"] +[0.000, "o", "o"] +[0.000, "o", "p"] +[0.001, "o", "b"] +[0.000, "o", "a"] +[0.000, "o", "c"] +[0.000, "o", "k"] +[0.001, "o", "s"] +[0.000, "o", "/"] +[0.000, "o", "s"] +[0.000, "o", "p"] +[0.001, "o", "i"] +[0.000, "o", "n"] +[0.000, "o", "e"] +[0.000, "o", "1"] +[0.001, "o", "-"] +[0.000, "o", "l"] +[0.000, "o", "o"] +[0.001, "o", "1"] +[0.000, "o", "."] +[0.000, "o", "y"] +[0.000, "o", "a"] +[0.001, "o", "m"] +[0.005, "o", "\u001b[85D\u001b[32my\u001b[32mq\u001b[39m \u001b[4m.\u001b[4m/\u001b[4mk\u001b[4mu\u001b[4mb\u001b[4me\u001b[4mr\u001b[4mn\u001b[4me\u001b[4mt\u001b[4me\u001b[4ms\u001b[4m/\u001b[4m0\u001b[4m2\u001b[4m-\u001b[4ml\u001b[4mo\u001b[4mo\u001b[4mp\u001b[4mb\u001b[4ma\u001b[4mc\u001b[4mk\u001b[4ms\u001b[4m/\u001b[4ms\u001b[4mp\u001b[4mi\u001b[4mn\u001b[4me\u001b[4m1\u001b[4m-\u001b[4ml\u001b[4mo\u001b[4m0\u001b[4m.\u001b[4my\u001b[4ma\u001b[4mm\u001b[4ml\u001b[24m \u001b[4m.\u001b[4m/\u001b[4mk\u001b[4mu\u001b[4mb\u001b[4me\u001b[4mr\u001b[4mn\u001b[4me\u001b[4mt\u001b[4me\u001b[4ms\u001b[4m/\u001b[4m0\u001b[4m2\u001b[4m-\u001b[4ml\u001b[4mo\u001b[4mo\u001b[4mp\u001b[4mb\u001b[4ma\u001b[4mc\u001b[4mk\u001b[4ms\u001b[4m/\u001b[4ms\u001b[4mp\u001b[4mi\u001b[4mn\u001b[4me\u001b[4m1\u001b[4m-\u001b[4ml\u001b[4mo\u001b[4m1\u001b[4m.\u001b[4my\u001b[4ma\u001b[4mm\u001b[4ml\u001b[24m"] +[0.732, "o", "\r\r\n"] +[0.006, "o", "\u001b[36mapiVersion\u001b[0m:\u001b[32m networking.metal.ironcore.dev/v1alpha1\u001b[0m\r\n\u001b[32m\u001b[0m\u001b[36mkind\u001b[0m:\u001b[32m Interface\u001b[0m\r\n\u001b[32m\u001b[0m\u001b[36mmetadata\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m name\u001b[0m:\u001b[32m spine1-lo0\u001b[0m\r\n\u001b[32m\u001b[0m\u001b[36mspec\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m deviceRef\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m name\u001b[0m:\u001b[32m spine1\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mname\u001b[0m:\u001b[32m lo0\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mdescription\u001b[0m:\u001b[32m Router-ID Spine1\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36madminState\u001b[0m:\u001b[32m Up\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mtype\u001b[0m:\u001b[32m Loopback\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mipv4\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m addresses\u001b[0m:\r\n -\u001b[32m 10.0.0.1/32\u001b[0m\r\n"] +[0.000, "o", "---\r\n\u001b[36mapiVersion\u001b[0m:\u001b[32m networking.metal.ironcore.dev/v1alpha1\u001b[0m\r\n\u001b[32m\u001b[0m\u001b[36mkind\u001b[0m:\u001b[32m Interface\u001b[0m\r\n\u001b[32m\u001b[0m\u001b[36mmetadata\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m name\u001b[0m:\u001b[32m spine1-lo1\u001b[0m\r\n\u001b[32m\u001b[0m\u001b[36mspec\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m deviceRef\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m name\u001b[0m:\u001b[32m spine1\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mname\u001b[0m:\u001b[32m lo1\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mdescription\u001b[0m:\u001b[32m Anycast RP\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36madminState\u001b[0m:\u001b[32m Up\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mtype\u001b[0m:\u001b[32m Loopback\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mipv4\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m addresses\u001b[0m:\r\n -\u001b[32m 10.0.0.100/32\u001b[0m\r\n"] +[0.000, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[0.832, "m", ""] +[0.923, "o", "\u001b[H\u001b[J\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[1.203, "o", "y"] +[0.001, "o", "\byq"] +[0.000, "o", " "] +[0.001, "o", "."] +[0.000, "o", "/"] +[0.001, "o", "k"] +[0.000, "o", "u"] +[0.000, "o", "b"] +[0.001, "o", "e"] +[0.001, "o", "r"] +[0.000, "o", "n"] +[0.000, "o", "e"] +[0.001, "o", "t"] +[0.000, "o", "e"] +[0.001, "o", "s"] +[0.000, "o", "/"] +[0.000, "o", "0"] +[0.001, "o", "2"] +[0.001, "o", "-"] +[0.000, "o", "l"] +[0.000, "o", "o"] +[0.001, "o", "o"] +[0.000, "o", "p"] +[0.000, "o", "b"] +[0.001, "o", "a"] +[0.000, "o", "c"] +[0.001, "o", "k"] +[0.000, "o", "s"] +[0.000, "o", "/"] +[0.001, "o", "l"] +[0.000, "o", "e"] +[0.000, "o", "a"] +[0.001, "o", "f"] +[0.000, "o", "1"] +[0.001, "o", "-"] +[0.000, "o", "l"] +[0.000, "o", "o"] +[0.001, "o", "0"] +[0.000, "o", "."] +[0.001, "o", "y"] +[0.000, "o", "a"] +[0.000, "o", "m"] +[0.001, "o", "l"] +[0.000, "o", " "] +[0.000, "o", "."] +[0.001, "o", "/"] +[0.000, "o", "k"] +[0.000, "o", "u"] +[0.001, "o", "b"] +[0.000, "o", "e"] +[0.000, "o", "r"] +[0.001, "o", "n"] +[0.000, "o", "e"] +[0.000, "o", "t"] +[0.001, "o", "e"] +[0.000, "o", "s"] +[0.000, "o", "/"] +[0.001, "o", "0"] +[0.000, "o", "2"] +[0.000, "o", "-"] +[0.000, "o", "l"] +[0.001, "o", "o"] +[0.000, "o", "o"] +[0.000, "o", "p"] +[0.001, "o", "b"] +[0.000, "o", "a"] +[0.000, "o", "c"] +[0.001, "o", "k"] +[0.000, "o", "s"] +[0.000, "o", "/"] +[0.001, "o", "l"] +[0.000, "o", "e"] +[0.001, "o", "a"] +[0.000, "o", "f"] +[0.000, "o", "1"] +[0.001, "o", "-"] +[0.000, "o", "l"] +[0.000, "o", "o"] +[0.001, "o", "1"] +[0.000, "o", "."] +[0.000, "o", "y"] +[0.001, "o", "a"] +[0.000, "o", "m"] +[0.002, "o", "\u001b[83D\u001b[32my\u001b[32mq\u001b[39m \u001b[4m.\u001b[4m/\u001b[4mk\u001b[4mu\u001b[4mb\u001b[4me\u001b[4mr\u001b[4mn\u001b[4me\u001b[4mt\u001b[4me\u001b[4ms\u001b[4m/\u001b[4m0\u001b[4m2\u001b[4m-\u001b[4ml\u001b[4mo\u001b[4mo\u001b[4mp\u001b[4mb\u001b[4ma\u001b[4mc\u001b[4mk\u001b[4ms\u001b[4m/\u001b[4ml\u001b[4me\u001b[4ma\u001b[4mf\u001b[4m1\u001b[4m-\u001b[4ml\u001b[4mo\u001b[4m0\u001b[4m.\u001b[4my\u001b[4ma\u001b[4mm\u001b[4ml\u001b[24m \u001b[4m.\u001b[4m/\u001b[4mk\u001b[4mu\u001b[4mb\u001b[4me\u001b[4mr\u001b[4mn\u001b[4me\u001b[4mt\u001b[4me\u001b[4ms\u001b[4m/\u001b[4m0\u001b[4m2\u001b[4m-\u001b[4ml\u001b[4mo\u001b[4mo\u001b[4mp\u001b[4mb\u001b[4ma\u001b[4mc\u001b[4mk\u001b[4ms\u001b[4m/\u001b[4ml\u001b[4me\u001b[4ma\u001b[4mf\u001b[4m1\u001b[4m-\u001b[4ml\u001b[4mo\u001b[4m1\u001b[4m.\u001b[4my\u001b[4ma\u001b[4mm\u001b[4ml\u001b[24m"] +[0.869, "o", "\r\r\n"] +[0.009, "o", "\u001b[36mapiVersion\u001b[0m:\u001b[32m networking.metal.ironcore.dev/v1alpha1\u001b[0m\r\n\u001b[32m\u001b[0m\u001b[36mkind\u001b[0m:\u001b[32m Interface\u001b[0m\r\n\u001b[32m\u001b[0m\u001b[36mmetadata\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m name\u001b[0m:\u001b[32m leaf1-lo0\u001b[0m\r\n\u001b[32m\u001b[0m\u001b[36mspec\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m deviceRef\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m name\u001b[0m:\u001b[32m leaf1\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mname\u001b[0m:\u001b[32m lo0\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mdescription\u001b[0m:\u001b[32m Router-ID Leaf1\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36madminState\u001b[0m:\u001b[32m Up\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mtype\u001b[0m:\u001b[32m Loopback\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mipv4\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m addresses\u001b[0m:\r\n -\u001b[32m 10.0.0.10/32\u001b[0m\r\n"] +[0.000, "o", "---\r\n\u001b[36mapiVersion\u001b[0m:\u001b[32m networking.metal.ironcore.dev/v1alpha1\u001b[0m\r\n\u001b[32m\u001b[0m\u001b[36mkind\u001b[0m:\u001b[32m Interface\u001b[0m\r\n\u001b[32m\u001b[0m\u001b[36mmetadata\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m name\u001b[0m:\u001b[32m leaf1-lo1\u001b[0m\r\n\u001b[32m\u001b[0m\u001b[36mspec\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m deviceRef\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m name\u001b[0m:\u001b[32m leaf1\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mname\u001b[0m:\u001b[32m lo1\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mdescription\u001b[0m:\u001b[32m VTEP Leaf1\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36madminState\u001b[0m:\u001b[32m Up\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mtype\u001b[0m:\u001b[32m Loopback\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mipv4\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m addresses\u001b[0m:\r\n -\u001b[32m 10.0.1.10/32\u001b[0m\r\n\u001b[32m \u001b[0m-\u001b[32m 10.1.0.10/32\u001b[0m\r\n"] +[0.000, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[1.044, "m", ""] +[1.673, "o", "\u001b[H\u001b[J\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[1.447, "o", "k"] +[0.001, "o", "\bku"] +[0.000, "o", "b"] +[0.001, "o", "e"] +[0.000, "o", "c"] +[0.001, "o", "t"] +[0.000, "o", "l"] +[0.001, "o", " "] +[0.000, "o", "a"] +[0.000, "o", "p"] +[0.001, "o", "p"] +[0.000, "o", "l"] +[0.000, "o", "y"] +[0.001, "o", " "] +[0.000, "o", "-"] +[0.001, "o", "k"] +[0.000, "o", " "] +[0.000, "o", "."] +[0.001, "o", "/"] +[0.000, "o", "k"] +[0.000, "o", "u"] +[0.001, "o", "b"] +[0.000, "o", "e"] +[0.001, "o", "r"] +[0.000, "o", "n"] +[0.000, "o", "e"] +[0.001, "o", "t"] +[0.000, "o", "e"] +[0.001, "o", "s"] +[0.000, "o", "/"] +[0.000, "o", "0"] +[0.000, "o", "2"] +[0.001, "o", "-"] +[0.000, "o", "l"] +[0.000, "o", "o"] +[0.001, "o", "o"] +[0.000, "o", "p"] +[0.000, "o", "b"] +[0.001, "o", "a"] +[0.000, "o", "c"] +[0.000, "o", "k"] +[0.002, "o", "\u001b[41D\u001b[32mk\u001b[32mu\u001b[32mb\u001b[32me\u001b[32mc\u001b[32mt\u001b[32ml\u001b[39m\u001b[10C\u001b[4m.\u001b[4m/\u001b[4mk\u001b[4mu\u001b[4mb\u001b[4me\u001b[4mr\u001b[4mn\u001b[4me\u001b[4mt\u001b[4me\u001b[4ms\u001b[4m/\u001b[4m0\u001b[4m2\u001b[4m-\u001b[4ml\u001b[4mo\u001b[4mo\u001b[4mp\u001b[4mb\u001b[4ma\u001b[4mc\u001b[4mk\u001b[4ms\u001b[24m"] +[0.904, "o", "\r\r\n"] +[0.073, "o", "interface.networking.metal.ironcore.dev/leaf1-lo0 created\r\n"] +[0.005, "o", "interface.networking.metal.ironcore.dev/leaf1-lo1 created\r\n"] +[0.006, "o", "interface.networking.metal.ironcore.dev/leaf2-lo0 created\r\n"] +[0.007, "o", "interface.networking.metal.ironcore.dev/leaf2-lo1 created\r\n"] +[0.007, "o", "interface.networking.metal.ironcore.dev/leaf3-lo0 created\r\n"] +[0.006, "o", "interface.networking.metal.ironcore.dev/leaf3-lo1 created\r\n"] +[0.006, "o", "interface.networking.metal.ironcore.dev/spine1-lo0 created\r\n"] +[0.005, "o", "interface.networking.metal.ironcore.dev/spine1-lo1 created\r\n"] +[0.010, "o", "interface.networking.metal.ironcore.dev/spine2-lo0 created\r\n"] +[0.006, "o", "interface.networking.metal.ironcore.dev/spine2-lo1 created\r\n"] +[0.000, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[1.854, "o", "w"] +[0.001, "o", "\bwa"] +[0.000, "o", "t"] +[0.000, "o", "c"] +[0.001, "o", "h"] +[0.000, "o", " "] +[0.000, "o", "k"] +[0.001, "o", "u"] +[0.000, "o", "b"] +[0.001, "o", "e"] +[0.000, "o", "c"] +[0.000, "o", "t"] +[0.001, "o", "l"] +[0.000, "o", " "] +[0.000, "o", "g"] +[0.001, "o", "e"] +[0.000, "o", "t"] +[0.001, "o", " "] +[0.000, "o", "i"] +[0.000, "o", "n"] +[0.001, "o", "t"] +[0.000, "o", "e"] +[0.000, "o", "r"] +[0.001, "o", "f"] +[0.000, "o", "a"] +[0.001, "o", "c"] +[0.000, "o", "e"] +[0.000, "o", " "] +[0.000, "o", "-"] +[0.001, "o", "o"] +[0.000, "o", " "] +[0.000, "o", "w"] +[0.001, "o", "i"] +[0.000, "o", "d"] +[0.002, "o", "\u001b[34D\u001b[32mw\u001b[32ma\u001b[32mt\u001b[32mc\u001b[32mh\u001b[39m\u001b[29Ce"] +[1.664, "o", "\r\r\n"] +[0.005, "o", "\u001b(B\u001b)0\u001b[?1049h\u001b[1;91r\u001b[m\u000f\u001b[4l\u001b[?25l"] +[0.053, "o", "\u001b[H\u001b[JNAME\u001b[1;14HINTERFACE TYPE\u001b[37GADMIN STATE DESCRIPTION\u001b[1;70HMTU DEVICE READY CONFIGURED OPERATIONAL AGE\r\u001b[2dleaf1-lo0 lo0\u001b[2;26HLoopback Up\u001b[2;51H"] +[0.000, "o", "Router-ID Leaf1\u001b[2;76Hleaf1 True True\u001b[2;106HTrue\u001b[2;120H3s\r\u001b[3dleaf1-lo1 lo1\u001b[3;26H"] +[0.000, "o", "Loopback Up\u001b[3;51H"] +[0.000, "o", "VTEP Leaf1\u001b[3;76Hleaf1\u001b[3;120H3s\r\u001b[4d"] +[0.000, "o", "leaf2-lo0 lo0\u001b[4;26H"] +[0.000, "o", "Loopback Up\u001b[4;51H"] +[0.000, "o", "Router-ID Leaf2\u001b[4;76H"] +[0.000, "o", "leaf2\u001b[4;120H"] +[0.000, "o", "3s\r\u001b[5d"] +[0.000, "o", "leaf2-lo1 lo1\u001b[5;26HLoopback Up\u001b[5;51H"] +[0.000, "o", "VTEP Leaf2\u001b[5;76Hleaf2 True True\u001b[5;106HTrue\u001b[5;120H"] +[0.000, "o", "3s\r\u001b[6d"] +[0.000, "o", "leaf3-lo0 lo0\u001b[6;26H"] +[0.000, "o", "Loopback Up\u001b[6;51H"] +[0.000, "o", "Router-ID Leaf3\u001b[6;76H"] +[0.000, "o", "leaf3 True True\u001b[6;106H"] +[0.000, "o", "True\u001b[6;120H"] +[0.000, "o", "3s\r\u001b[7d"] +[0.000, "o", "leaf3-lo1 lo1\u001b[7;26HLoopback Up\u001b[7;51HVTEP Leaf3\u001b[7;76Hleaf3\u001b[7;120H3s\r\u001b[8dspine1-lo0 lo0\u001b[8;26HLoopback Up\u001b[8;51HRouter-ID Spine1\u001b[8;76Hspine1 True True\u001b[8;106HTrue\u001b[8;120H"] +[0.000, "o", "3s\r\u001b[9dspine1-lo1 lo1\u001b[9;26HLoopback Up\u001b[9;51HAnycast RP\u001b[9;76Hspine1 True True\u001b[9;106HTrue\u001b[9;120H3s\r\u001b[10dspine2-lo0 lo0\u001b[10;26HLoopback Up\u001b[10;51HRouter-ID Spine2\u001b[10;76Hspine2\u001b[10;120H3s\r\u001b[11dspine2-lo1 lo1\u001b[11;26HLoopback Up\u001b[11;51HAnycast RP\u001b[11;76Hspine2 True True\u001b[11;106HTrue\u001b[11;120H"] +[0.000, "o", "3s\r\u001b[12d"] +[1.055, "o", "\u001b[2;120H4\u001b[3d\b4\u001b[4d\b4\u001b[5d\b"] +[0.000, "o", "4\u001b[6d\b4\u001b[7d\b4\u001b[8d\b"] +[0.000, "o", "4\u001b[9d\b"] +[0.000, "o", "4\u001b[10d\b"] +[0.000, "o", "4\u001b[11d\b4\r\u001b[12d"] +[1.058, "o", "\u001b[1;90H CONFIGURED OPERATIONAL AGE\u001b[2;93H True\u001b[106G True\u001b[2;120H 5s\u001b[3;85HUnknown Unknown\u001b[108GUnknown 5s\u001b[4;85H"] +[0.000, "o", "Unknown Unknown\u001b[108GUnknown 5s\u001b[5;93H True\u001b[106G True\u001b[5;120H 5s\u001b[6;93H"] +[0.000, "o", " True\u001b[106G"] +[0.000, "o", " True\u001b[6;120H 5s\u001b[7;85HUnknown Unknown\u001b[108G"] +[0.000, "o", "Unknown "] +[0.000, "o", " 5s\u001b[8;93H True\u001b[106G True\u001b[8;120H 5s\u001b[9;93H True\u001b[106G True\u001b[9;120H 5s\u001b[10;85HUnknown Unknown\u001b[108G"] +[0.000, "o", "Unknown 5s\u001b[11;93H"] +[0.000, "o", " True\u001b[106G"] +[0.000, "o", " True\u001b[11;120H"] +[0.000, "o", " "] +[0.000, "o", " 5s\r\u001b[12d"] +[1.053, "o", "\u001b[1;90H\u001b[2P\u001b[2;93HTrue \u001b[106GTrue \u001b[2;120H6s\u001b[K\u001b[3;85HTrue True True 6s\u001b[K\u001b[4;85HTrue True True 6"] +[0.000, "o", "s\u001b[K\u001b[5;93HTrue \u001b[106GTrue \u001b[5;120H6s\u001b[K\u001b[6;93H"] +[0.000, "o", "True \u001b[106GTrue \u001b[6;120H6s\u001b[K\u001b[7;85HTrue True True 6s\u001b[K\u001b[8;93HTrue \u001b[106GTrue \u001b[8;120H6s\u001b[K\u001b[9;93HTrue \u001b[106GTrue \u001b[9;120H6s\u001b[K\u001b[10;85HTrue True True 6s\u001b[K\u001b[11;93H"] +[0.000, "o", "True \u001b[106GTrue \u001b[11;120H6"] +[0.000, "o", "s\u001b[K\r\u001b[12d"] +[1.053, "o", "\u001b[2;120H7\u001b[3d\b7\u001b[4d\b7\u001b[5d\b"] +[0.000, "o", "7\u001b[6d\b7\u001b[7d\b7\u001b[8d\b"] +[0.000, "o", "7\u001b[9d\b"] +[0.000, "o", "7\u001b[10d\b7\u001b[11d\b7\r\u001b[12d"] +[1.052, "o", "\u001b[2;120H8\u001b[3d\b8\u001b[4d\b8\u001b[5d\b8\u001b[6d\b"] +[0.000, "o", "8\u001b[7d\b8\u001b[8d\b8\u001b[9d\b"] +[0.000, "o", "8\u001b[10d\b8\u001b[11d\b8\r\u001b[12d"] +[1.056, "o", "\u001b[2;120H10s\u001b[3;120H10s\u001b[4;120H10s\u001b[5;120H"] +[0.000, "o", "10s\u001b[6;120H10s\u001b[7;120H1"] +[0.000, "o", "0s\u001b[8;120H1"] +[0.000, "o", "0s\u001b[9;120H"] +[0.000, "o", "1"] +[0.000, "o", "0s\u001b[10;120H10s\u001b[11;120H1"] +[0.000, "o", "0s\r\u001b[12d"] +[1.052, "o", "\u001b[2;121H1\u001b[3d\b1\u001b[4d\b1\u001b[5d\b1\u001b[6d\b"] +[0.000, "o", "1\u001b[7d\b1\u001b[8d\b"] +[0.000, "o", "1\u001b[9d\b1\u001b[10d\b1\u001b[11d\b"] +[0.000, "o", "1\r\u001b[12d"] +[1.051, "o", "\u001b[2;121H2\u001b[3d\b2\u001b[4d\b2\u001b[5d\b2\u001b[6d\b"] +[0.000, "o", "2\u001b[7d\b2\u001b[8d\b2\u001b[9d\b"] +[0.000, "o", "2\u001b[10d\b2\u001b[11d\b"] +[0.000, "o", "2\r\u001b[12d"] +[0.543, "o", "\u001b[91;1H\u001b[34h\u001b[?25h\u001b[?1049l\r\u001b[?1l\u001b>"] +[0.000, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[1.574, "m", ""] +[0.948, "o", "\u001b[H\u001b[J\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[0.945, "o", "y"] +[0.001, "o", "\byq"] +[0.000, "o", " "] +[0.001, "o", "."] +[0.000, "o", "/"] +[0.000, "o", "k"] +[0.001, "o", "u"] +[0.000, "o", "b"] +[0.000, "o", "e"] +[0.001, "o", "r"] +[0.000, "o", "n"] +[0.000, "o", "e"] +[0.001, "o", "t"] +[0.000, "o", "e"] +[0.000, "o", "s"] +[0.000, "o", "/"] +[0.001, "o", "0"] +[0.000, "o", "3"] +[0.000, "o", "-"] +[0.001, "o", "v"] +[0.000, "o", "p"] +[0.000, "o", "c"] +[0.000, "o", "-"] +[0.001, "o", "k"] +[0.000, "o", "e"] +[0.000, "o", "e"] +[0.001, "o", "p"] +[0.000, "o", "a"] +[0.000, "o", "l"] +[0.001, "o", "i"] +[0.000, "o", "v"] +[0.000, "o", "e"] +[0.000, "o", "/"] +[0.001, "o", "l"] +[0.000, "o", "e"] +[0.000, "o", "a"] +[0.001, "o", "f"] +[0.000, "o", "1"] +[0.000, "o", "-"] +[0.000, "o", "v"] +[0.001, "o", "p"] +[0.000, "o", "c"] +[0.000, "o", "-"] +[0.001, "o", "k"] +[0.000, "o", "e"] +[0.000, "o", "e"] +[0.001, "o", "p"] +[0.000, "o", "a"] +[0.000, "o", "l"] +[0.000, "o", "i"] +[0.001, "o", "v"] +[0.000, "o", "e"] +[0.000, "o", "."] +[0.000, "o", "y"] +[0.001, "o", "a"] +[0.000, "o", "m"] +[0.000, "o", "l"] +[0.000, "o", " "] +[0.001, "o", "."] +[0.000, "o", "/"] +[0.000, "o", "k"] +[0.000, "o", "u"] +[0.001, "o", "b"] +[0.000, "o", "e"] +[0.000, "o", "r"] +[0.001, "o", "n"] +[0.000, "o", "e"] +[0.000, "o", "t"] +[0.000, "o", "e"] +[0.001, "o", "s"] +[0.000, "o", "/"] +[0.000, "o", "0"] +[0.001, "o", "3"] +[0.000, "o", "-"] +[0.000, "o", "v"] +[0.000, "o", "p"] +[0.001, "o", "c"] +[0.000, "o", "-"] +[0.000, "o", "k"] +[0.001, "o", "e"] +[0.000, "o", "e"] +[0.000, "o", "p"] +[0.000, "o", "a"] +[0.001, "o", "l"] +[0.000, "o", "i"] +[0.000, "o", "v"] +[0.000, "o", "e"] +[0.001, "o", "/"] +[0.000, "o", "l"] +[0.000, "o", "e"] +[0.000, "o", "a"] +[0.001, "o", "f"] +[0.000, "o", "1"] +[0.000, "o", "-"] +[0.001, "o", "e"] +[0.000, "o", "t"] +[0.000, "o", "h"] +[0.000, "o", "1"] +[0.001, "o", "-"] +[0.000, "o", "3"] +[0.000, "o", "0"] +[0.000, "o", "."] +[0.001, "o", "y"] +[0.000, "o", "a"] +[0.000, "o", "m"] +[0.006, "o", "\u001b[105D\u001b[32my\u001b[32mq\u001b[39m \u001b[4m.\u001b[4m/\u001b[4mk\u001b[4mu\u001b[4mb\u001b[4me\u001b[4mr\u001b[4mn\u001b[4me\u001b[4mt\u001b[4me\u001b[4ms\u001b[4m/\u001b[4m0\u001b[4m3\u001b[4m-\u001b[4mv\u001b[4mp\u001b[4mc\u001b[4m-\u001b[4mk\u001b[4me\u001b[4me\u001b[4mp\u001b[4ma\u001b[4ml\u001b[4mi\u001b[4mv\u001b[4me\u001b[4m/\u001b[4ml\u001b[4me\u001b[4ma\u001b[4mf\u001b[4m1\u001b[4m-\u001b[4mv\u001b[4mp\u001b[4mc\u001b[4m-\u001b[4mk\u001b[4me\u001b[4me\u001b[4mp\u001b[4ma\u001b[4ml\u001b[4mi\u001b[4mv\u001b[4me\u001b[4m.\u001b[4my\u001b[4ma\u001b[4mm\u001b[4ml\u001b[24m \u001b[4m.\u001b[4m/\u001b[4mk\u001b[4mu\u001b[4mb\u001b[4me\u001b[4mr\u001b[4mn\u001b[4me\u001b[4mt\u001b[4me\u001b[4ms\u001b[4m/\u001b[4m0\u001b[4m3\u001b[4m-\u001b[4mv\u001b[4mp\u001b[4mc\u001b[4m-\u001b[4mk\u001b[4me\u001b[4me\u001b[4mp\u001b[4ma\u001b[4ml\u001b[4mi\u001b[4mv\u001b[4me\u001b[4m/\u001b[4ml\u001b[4me\u001b[4ma\u001b[4mf\u001b[4m1\u001b[4m-\u001b[4me\u001b[4mt\u001b[4mh\u001b[4m1\u001b[4m-\u001b[4m3\u001b[4m0\u001b[4m.\u001b[4my\u001b[4ma\u001b[4mm\u001b[4ml\u001b[24m"] +[0.794, "o", "\r\r\n"] +[0.008, "o", "\u001b[36mapiVersion\u001b[0m:\u001b[32m networking.metal.ironcore.dev/v1alpha1\u001b[0m\r\n\u001b[32m\u001b[0m\u001b[36mkind\u001b[0m:\u001b[32m VRF\u001b[0m\r\n\u001b[32m\u001b[0m\u001b[36mmetadata\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m labels\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m networking.metal.ironcore.dev/role\u001b[0m:\u001b[32m vpc-keepalive\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mname\u001b[0m:\u001b[32m leaf1-vpc-keepalive\u001b[0m\r\n\u001b[32m\u001b[0m\u001b[36mspec\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m deviceRef\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m name\u001b[0m:\u001b[32m leaf1\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mname\u001b[0m:\u001b[32m VPC_KEEPALIVE\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mdescription\u001b[0m:\u001b[32m VRF for vPC Keepalive\u001b[0m\r\n"] +[0.001, "o", "---\r\n\u001b[36mapiVersion\u001b[0m:\u001b[32m networking.metal.ironcore.dev/v1alpha1\u001b[0m\r\n\u001b[32m\u001b[0m\u001b[36mkind\u001b[0m:\u001b[32m Interface\u001b[0m\r\n\u001b[32m\u001b[0m\u001b[36mmetadata\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m labels\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m networking.metal.ironcore.dev/role\u001b[0m:\u001b[32m vpc-keepalive\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mname\u001b[0m:\u001b[32m leaf1-eth1-30\u001b[0m\r\n\u001b[32m\u001b[0m\u001b[36mspec\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m deviceRef\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m name\u001b[0m:\u001b[32m leaf1\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mname\u001b[0m:\u001b[32m eth1/30\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mdescription\u001b[0m:\u001b[32m vPC Keepalive\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36madminState\u001b[0m:\u001b[32m Up\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mtype\u001b[0m:\u001b[32m Physical\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mvrfRef\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m name\u001b[0m:\u001b[32m leaf1-vpc-keepalive\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mipv4\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m addresses\u001b[0m:\r\n -\u001b[32m 10.1.1.1/30\u001b[0m\r\n"] +[0.000, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[1.495, "m", ""] +[1.692, "o", "k"] +[0.001, "o", "\bku"] +[0.000, "o", "b"] +[0.000, "o", "e"] +[0.001, "o", "c"] +[0.000, "o", "t"] +[0.001, "o", "l"] +[0.000, "o", " "] +[0.001, "o", "a"] +[0.000, "o", "p"] +[0.001, "o", "p"] +[0.000, "o", "l"] +[0.000, "o", "y"] +[0.001, "o", " "] +[0.000, "o", "-"] +[0.000, "o", "k"] +[0.001, "o", " "] +[0.000, "o", "."] +[0.000, "o", "/"] +[0.001, "o", "k"] +[0.000, "o", "u"] +[0.000, "o", "b"] +[0.001, "o", "e"] +[0.000, "o", "r"] +[0.000, "o", "n"] +[0.001, "o", "e"] +[0.000, "o", "t"] +[0.000, "o", "e"] +[0.001, "o", "s"] +[0.000, "o", "/"] +[0.000, "o", "0"] +[0.001, "o", "3"] +[0.000, "o", "-"] +[0.000, "o", "v"] +[0.001, "o", "p"] +[0.000, "o", "c"] +[0.000, "o", "-"] +[0.000, "o", "k"] +[0.001, "o", "e"] +[0.000, "o", "e"] +[0.000, "o", "p"] +[0.001, "o", "a"] +[0.000, "o", "l"] +[0.000, "o", "i"] +[0.001, "o", "v"] +[0.001, "o", "\u001b[45D\u001b[32mk\u001b[32mu\u001b[32mb\u001b[32me\u001b[32mc\u001b[32mt\u001b[32ml\u001b[39m\u001b[10C\u001b[4m.\u001b[4m/\u001b[4mk\u001b[4mu\u001b[4mb\u001b[4me\u001b[4mr\u001b[4mn\u001b[4me\u001b[4mt\u001b[4me\u001b[4ms\u001b[4m/\u001b[4m0\u001b[4m3\u001b[4m-\u001b[4mv\u001b[4mp\u001b[4mc\u001b[4m-\u001b[4mk\u001b[4me\u001b[4me\u001b[4mp\u001b[4ma\u001b[4ml\u001b[4mi\u001b[4mv\u001b[4me\u001b[24m"] +[1.241, "o", "\r\r\n"] +[0.090, "o", "interface.networking.metal.ironcore.dev/leaf1-eth1-30 created\r\n"] +[0.006, "o", "interface.networking.metal.ironcore.dev/leaf2-eth1-30 created\r\n"] +[0.009, "o", "vrf.networking.metal.ironcore.dev/leaf1-vpc-keepalive created\r\n"] +[0.007, "o", "vrf.networking.metal.ironcore.dev/leaf2-vpc-keepalive created\r\n"] +[0.000, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[2.162, "o", "w"] +[0.001, "o", "\bwa"] +[0.000, "o", "t"] +[0.000, "o", "c"] +[0.001, "o", "h"] +[0.000, "o", " "] +[0.000, "o", "k"] +[0.001, "o", "u"] +[0.000, "o", "b"] +[0.000, "o", "e"] +[0.000, "o", "c"] +[0.001, "o", "t"] +[0.000, "o", "l"] +[0.000, "o", " "] +[0.001, "o", "g"] +[0.000, "o", "e"] +[0.000, "o", "t"] +[0.001, "o", " "] +[0.000, "o", "v"] +[0.001, "o", "r"] +[0.000, "o", "f"] +[0.000, "o", " "] +[0.000, "o", "-"] +[0.001, "o", "o"] +[0.000, "o", " "] +[0.000, "o", "w"] +[0.001, "o", "i"] +[0.000, "o", "d"] +[0.003, "o", "\u001b[28D\u001b[32mw\u001b[32ma\u001b[32mt\u001b[32mc\u001b[32mh\u001b[39m\u001b[23Ce"] +[2.747, "o", "\r\r\n"] +[0.005, "o", "\u001b(B\u001b)0\u001b[?1049h\u001b[1;91r\u001b[m\u000f\u001b[4l\u001b[?25l"] +[0.054, "o", "\u001b[H\u001b[JNAME\u001b[1;23HVRF\u001b[1;39HDEVICE READY AGE\r\u001b[2dleaf1-vpc-keepalive VPC_KEEPALIVE leaf1\u001b[2;56H5s\r\u001b[3dleaf2-vpc-keepalive VPC_KEEPALIVE leaf2\u001b[3;56H"] +[0.000, "o", "5s\r\u001b[4d"] +[1.051, "o", "\u001b[2;48HTrue 6\u001b[3;48HTrue 6\r\u001b[4d"] +[1.053, "o", "\u001b[2;56H7\u001b[3d\b7\r\u001b[4d"] +[1.057, "o", "\u001b[2;56H8\u001b[3d\b8\r\u001b[4d"] +[1.056, "o", "\u001b[2;56H9\u001b[3d\b9\r\u001b[4d"] +[1.052, "o", "\u001b[2;56H10s\u001b[3;56H10s\r\u001b[4d"] +[0.083, "o", "\u001b[91;1H\u001b[34h\u001b[?25h\u001b[?1049l\r\u001b[?1l\u001b>"] +[0.001, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[2.311, "o", "w"] +[0.000, "o", "\bwa"] +[0.001, "o", "t"] +[0.000, "o", "c"] +[0.000, "o", "h"] +[0.001, "o", " "] +[0.000, "o", "k"] +[0.000, "o", "u"] +[0.001, "o", "b"] +[0.000, "o", "e"] +[0.001, "o", "c"] +[0.000, "o", "t"] +[0.000, "o", "l"] +[0.001, "o", " "] +[0.000, "o", "g"] +[0.000, "o", "e"] +[0.001, "o", "t"] +[0.000, "o", " "] +[0.000, "o", "i"] +[0.000, "o", "n"] +[0.001, "o", "t"] +[0.000, "o", "e"] +[0.000, "o", "r"] +[0.001, "o", "f"] +[0.000, "o", "a"] +[0.000, "o", "c"] +[0.000, "o", "e"] +[0.001, "o", " "] +[0.000, "o", "-"] +[0.000, "o", "l"] +[0.000, "o", " "] +[0.001, "o", "n"] +[0.000, "o", "e"] +[0.000, "o", "t"] +[0.001, "o", "w"] +[0.000, "o", "o"] +[0.000, "o", "r"] +[0.001, "o", "k"] +[0.000, "o", "i"] +[0.000, "o", "n"] +[0.001, "o", "g"] +[0.000, "o", "."] +[0.000, "o", "m"] +[0.001, "o", "e"] +[0.000, "o", "t"] +[0.000, "o", "a"] +[0.001, "o", "l"] +[0.000, "o", "."] +[0.000, "o", "i"] +[0.000, "o", "r"] +[0.001, "o", "o"] +[0.000, "o", "n"] +[0.000, "o", "c"] +[0.001, "o", "o"] +[0.000, "o", "r"] +[0.000, "o", "e"] +[0.001, "o", "."] +[0.000, "o", "d"] +[0.000, "o", "e"] +[0.001, "o", "v"] +[0.000, "o", "/"] +[0.000, "o", "r"] +[0.000, "o", "o"] +[0.001, "o", "l"] +[0.000, "o", "e"] +[0.000, "o", "="] +[0.001, "o", "v"] +[0.000, "o", "p"] +[0.000, "o", "c"] +[0.001, "o", "-"] +[0.000, "o", "k"] +[0.000, "o", "e"] +[0.000, "o", "e"] +[0.001, "o", "p"] +[0.000, "o", "a"] +[0.000, "o", "l"] +[0.000, "o", "i"] +[0.001, "o", "v"] +[0.000, "o", "e"] +[0.000, "o", " "] +[0.000, "o", "-"] +[0.000, "o", "o"] +[0.001, "o", " "] +[0.000, "o", "w"] +[0.000, "o", "i"] +[0.001, "o", "d"] +[0.001, "o", "\u001b[86D\u001b[32mw\u001b[32ma\u001b[32mt\u001b[32mc\u001b[32mh\u001b[39m\u001b[81Ce"] +[1.695, "m", ""] +[1.281, "o", "\r\r\n"] +[0.004, "o", "\u001b(B\u001b)0\u001b[?1049h\u001b[1;91r\u001b[m\u000f\u001b[4l\u001b[?25l"] +[0.053, "o", "\u001b[H\u001b[JNAME\u001b[1;17HINTERFACE TYPE\u001b[40GADMIN STATE DESCRIPTION MTU DEVICE READY CONFIGURED OPERATIONAL AGE\r\u001b[2dleaf1-eth1-30 eth1/30 Physical Up\u001b[2;54H"] +[0.000, "o", "vPC Keepalive\u001b[2;76Hleaf1 True True\u001b[2;106HTrue\u001b[2;120H16s\r\u001b[3dleaf2-eth1-30 eth1/30 Physical Up\u001b[3;54HvPC Keepalive\u001b[3;76Hleaf2 True True\u001b[3;106HTrue\u001b[3;120H"] +[0.000, "o", "16s\r\u001b[4d"] +[1.048, "o", "\u001b[2;121H7\u001b[3d\b7\r\u001b[4d"] +[1.050, "o", "\u001b[2;121H8\u001b[3d\b8\r\u001b[4d"] +[1.052, "o", "\u001b[2;121H9\u001b[3d\b9\r\u001b[4d"] +[1.053, "o", "\u001b[2;120H20\u001b[3d\b\b20\r\u001b[4d"] +[1.055, "o", "\u001b[2;121H1\u001b[3d\b1\r\u001b[4d"] +[1.051, "o", "\u001b[2;121H2\u001b[3d\b2\r\u001b[4d"] +[1.056, "o", "\u001b[2;121H3\u001b[3d\b3\r\u001b[4d"] +[0.986, "o", "\u001b[91;1H\u001b[34h\u001b[?25h\u001b[?1049l\r\u001b[?1l\u001b>"] +[0.000, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[1.225, "r", "187x45"] +[0.000, "r", "187x91"] +[1.300, "m", ""] +[1.072, "o", "\u001b[H\u001b[J\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[1.552, "o", "s"] +[0.000, "o", "\bss"] +[0.001, "o", "h"] +[0.000, "o", " "] +[0.000, "o", "l"] +[0.000, "o", "e"] +[0.001, "o", "a"] +[0.000, "o", "f"] +[0.001, "o", "\u001b[8D\u001b[32ms\u001b[32ms\u001b[32mh\u001b[39m\u001b[5C1"] +[1.189, "o", "\r\r\n"] +[1.372, "o", "** WARNING: connection is not using a post-quantum key exchange algorithm.\r\r\n** This session may be vulnerable to \"store now, decrypt later\" attacks.\r\r\n** The server may need to be upgraded. See https://openssh.com/pq.html\r\r\n"] +[0.111, "o", "User Access Verification\r\n"] +[0.417, "o", "\r\n"] +[0.267, "o", "Bad terminal type: \"tmux-256color\". Will assume vt100.\r\n"] +[0.042, "o", "Cisco NX-OS Software\r\nCopyright (c) 2002-2025, Cisco Systems, Inc. All rights reserved.\r\nNexus 9000v software (\"Nexus 9000v Software\") and related documentation,\r\nfiles or other reference materials (\"Documentation\") are\r\nthe proprietary property and confidential information of Cisco\r\nSystems, Inc. (\"Cisco\") and are protected, without limitation,\r\npursuant to United States and International copyright and trademark\r\nlaws in the applicable jurisdiction which provide civil and criminal\r\npenalties for copying or distribution without Cisco's authorization.\r\n\r\nAny use or disclosure, in whole or in part, of the Nexus 9000v Software\r\nor Documentation to any third party for any purposes is expressly\r\nprohibited except as otherwise authorized by Cisco in writing.\r\nThe copyrights to certain works contained herein are owned by other\r\nthird parties and are used and distributed under license. Some parts\r\nof this software may be covered under the GNU Public License or the\r\nGNU Lesser General Public License. A copy of each su"] +[0.000, "o", "ch license is\r\navailable at\r\nhttp://www.gnu.org/licenses/gpl.html and\r\nhttp://www.gnu.org/licenses/lgpl.html\r\n***************************************************************************\r\n* Nexus 9000v is strictly limited to use for evaluation, demonstration *\r\n* and NX-OS education. Any use or disclosure, in whole or in part of *\r\n* the Nexus 9000v Software or Documentation to any third party for any *\r\n* purposes is expressly prohibited except as otherwise authorized by *\r\n* Cisco in writing. *\r\n***************************************************************************\r\n\rleaf1# "] +[1.640, "o", "ping 10.1.1.2 vrf VPC_KEEPALIVE source 10.1.1.1"] +[1.138, "o", "\r\r\n"] +[0.201, "o", "PING 10.1.1.2 (10.1.1.2) from 10.1.1.1: 56 data bytes\r\n"] +[0.044, "o", "64 bytes from 10.1.1.2: icmp_seq=0 ttl=254 time=8.365 ms\r\n64 bytes from 10.1.1.2: icmp_seq=1 ttl=254 time=5.239 ms\r\n64 bytes from 10.1.1.2: icmp_seq=2 ttl=254 time=5.613 ms\r\n64 bytes from 10.1.1.2: icmp_seq=3 ttl=254 time=5.489 ms\r\n64 bytes from 10.1.1.2: icmp_seq=4 ttl=254 time=4.823 ms\r\n\r\n--- 10.1.1.2 ping statistics ---\r\n5 packets transmitted, 5 packets received, 0.00% packet loss\r\nround-trip min/avg/max = 4.823/5.905/8.365 ms\r\n"] +[0.041, "o", "\rleaf1# "] +[1.548, "m", ""] +[1.202, "o", "e"] +[0.194, "o", "x"] +[0.172, "o", "i"] +[0.134, "o", "t"] +[1.269, "o", "\r\r\n"] +[0.063, "o", "Connection to clab-evpn-vxlan-fabric-leaf1 closed.\r\r\n"] +[0.000, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[0.783, "o", "\u001b[H\u001b[J\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[1.637, "o", "y"] +[0.000, "o", "\byq"] +[0.000, "o", " "] +[0.001, "o", "."] +[0.000, "o", "/"] +[0.000, "o", "k"] +[0.001, "o", "u"] +[0.000, "o", "b"] +[0.001, "o", "e"] +[0.000, "o", "r"] +[0.000, "o", "n"] +[0.001, "o", "e"] +[0.000, "o", "t"] +[0.000, "o", "e"] +[0.001, "o", "s"] +[0.000, "o", "/"] +[0.001, "o", "0"] +[0.000, "o", "4"] +[0.000, "o", "-"] +[0.001, "o", "v"] +[0.000, "o", "p"] +[0.000, "o", "c"] +[0.001, "o", "-"] +[0.000, "o", "p"] +[0.000, "o", "e"] +[0.001, "o", "e"] +[0.000, "o", "r"] +[0.001, "o", "l"] +[0.000, "o", "i"] +[0.001, "o", "n"] +[0.000, "o", "k"] +[0.001, "o", "/"] +[0.000, "o", "l"] +[0.000, "o", "e"] +[0.001, "o", "a"] +[0.000, "o", "f"] +[0.001, "o", "1"] +[0.000, "o", "-"] +[0.000, "o", "e"] +[0.000, "o", "t"] +[0.001, "o", "h"] +[0.000, "o", "1"] +[0.000, "o", "-"] +[0.001, "o", "3"] +[0.000, "o", "1"] +[0.000, "o", "."] +[0.000, "o", "y"] +[0.001, "o", "a"] +[0.000, "o", "m"] +[0.000, "o", "l"] +[0.001, "o", " "] +[0.000, "o", "."] +[0.000, "o", "/"] +[0.000, "o", "k"] +[0.001, "o", "u"] +[0.000, "o", "b"] +[0.000, "o", "e"] +[0.000, "o", "r"] +[0.001, "o", "n"] +[0.000, "o", "e"] +[0.000, "o", "t"] +[0.000, "o", "e"] +[0.001, "o", "s"] +[0.000, "o", "/"] +[0.000, "o", "0"] +[0.001, "o", "4"] +[0.000, "o", "-"] +[0.000, "o", "v"] +[0.000, "o", "p"] +[0.001, "o", "c"] +[0.000, "o", "-"] +[0.000, "o", "p"] +[0.001, "o", "e"] +[0.000, "o", "e"] +[0.000, "o", "r"] +[0.000, "o", "l"] +[0.001, "o", "i"] +[0.000, "o", "n"] +[0.000, "o", "k"] +[0.000, "o", "/"] +[0.001, "o", "l"] +[0.000, "o", "e"] +[0.000, "o", "a"] +[0.000, "o", "f"] +[0.001, "o", "1"] +[0.000, "o", "-"] +[0.000, "o", "e"] +[0.000, "o", "t"] +[0.001, "o", "h"] +[0.000, "o", "1"] +[0.000, "o", "-"] +[0.000, "o", "3"] +[0.001, "o", "2"] +[0.000, "o", "."] +[0.000, "o", "y"] +[0.001, "o", "a"] +[0.000, "o", "m"] +[0.005, "o", "\u001b[97D\u001b[32my\u001b[32mq\u001b[39m \u001b[4m.\u001b[4m/\u001b[4mk\u001b[4mu\u001b[4mb\u001b[4me\u001b[4mr\u001b[4mn\u001b[4me\u001b[4mt\u001b[4me\u001b[4ms\u001b[4m/\u001b[4m0\u001b[4m4\u001b[4m-\u001b[4mv\u001b[4mp\u001b[4mc\u001b[4m-\u001b[4mp\u001b[4me\u001b[4me\u001b[4mr\u001b[4ml\u001b[4mi\u001b[4mn\u001b[4mk\u001b[4m/\u001b[4ml\u001b[4me\u001b[4ma\u001b[4mf\u001b[4m1\u001b[4m-\u001b[4me\u001b[4mt\u001b[4mh\u001b[4m1\u001b[4m-\u001b[4m3\u001b[4m1\u001b[4m.\u001b[4my\u001b[4ma\u001b[4mm\u001b[4ml\u001b[24m \u001b[4m.\u001b[4m/\u001b[4mk\u001b[4mu\u001b[4mb\u001b[4me\u001b[4mr\u001b[4mn\u001b[4me\u001b[4mt\u001b[4me\u001b[4ms\u001b[4m/\u001b[4m0\u001b[4m4\u001b[4m-\u001b[4mv\u001b[4mp\u001b[4mc\u001b[4m-\u001b[4mp\u001b[4me\u001b[4me\u001b[4mr\u001b[4ml\u001b[4mi\u001b[4mn\u001b[4mk\u001b[4m/\u001b[4ml\u001b[4me\u001b[4ma\u001b[4mf\u001b[4m1\u001b[4m-\u001b[4me\u001b[4mt\u001b[4mh\u001b[4m1\u001b[4m-\u001b[4m3\u001b[4m2\u001b[4m.\u001b[4my\u001b[4ma\u001b[4mm\u001b[4ml\u001b[24m"] +[1.544, "o", "\r\r\n"] +[0.015, "o", "\u001b[36mapiVersion\u001b[0m:\u001b[32m networking.metal.ironcore.dev/v1alpha1\u001b[0m\r\n\u001b[32m\u001b[0m\u001b[36mkind\u001b[0m:\u001b[32m Interface\u001b[0m\r\n\u001b[32m\u001b[0m\u001b[36mmetadata\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m labels\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m networking.metal.ironcore.dev/role\u001b[0m:\u001b[32m vpc-peer-link\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mname\u001b[0m:\u001b[32m leaf1-eth1-31\u001b[0m\r\n\u001b[32m\u001b[0m\u001b[36mspec\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m deviceRef\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m name\u001b[0m:\u001b[32m leaf1\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mproviderConfigRef\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m apiVersion\u001b[0m:\u001b[32m nx.cisco.networking.metal.ironcore.dev/v1alpha1\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mkind\u001b[0m:\u001b[32m InterfaceConfig\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mname\u001b[0m:\u001b[32m spanning-tree-network\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mname\u001b[0m:\u001b[32m eth1/31\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mdescription\u001b[0m:\u001b[32m vPC Peer-Link\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36madminState\u001b[0m:\u001b[32m Up\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mtype\u001b[0m:\u001b[32m Physical\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mswitchport\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m mode\u001b[0m:\u001b[32m Trunk\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mnativeVlan\u001b[0m:\u001b[95m 1\u001b[0m\r\n"] +[0.005, "o", "---\r\n\u001b[36mapiVersion\u001b[0m:\u001b[32m networking.metal.ironcore.dev/v1alpha1\u001b[0m\r\n\u001b[32m\u001b[0m\u001b[36mkind\u001b[0m:\u001b[32m Interface\u001b[0m\r\n\u001b[32m\u001b[0m\u001b[36mmetadata\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m labels\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m networking.metal.ironcore.dev/role\u001b[0m:\u001b[32m vpc-peer-link\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mname\u001b[0m:\u001b[32m leaf1-eth1-32\u001b[0m\r\n\u001b[32m\u001b[0m\u001b[36mspec\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m deviceRef\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m name\u001b[0m:\u001b[32m leaf1\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mproviderConfigRef\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m apiVersion\u001b[0m:\u001b[32m nx.cisco.networking.metal.ironcore.dev/v1alpha1\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mkind\u001b[0m:\u001b[32m InterfaceConfig\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mname\u001b[0m:\u001b[32m spanning-tree-network\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mname\u001b[0m:\u001b[32m eth1/32\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mdescription\u001b[0m:\u001b[32m vPC Peer-Link\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36madminState\u001b[0m:\u001b[32m Up\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mtype\u001b[0m:\u001b[32m Physical\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mswitchport\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m mode\u001b[0m:\u001b[32m Trunk\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mnativeVlan\u001b[0m:\u001b[95m 1\u001b[0m\r\n"] +[0.000, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[1.152, "m", ""] +[2.095, "o", "\u001b[H\u001b[J\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[1.465, "o", "y"] +[0.001, "o", "\byq"] +[0.000, "o", " "] +[0.000, "o", "."] +[0.000, "o", "/"] +[0.001, "o", "k"] +[0.000, "o", "u"] +[0.000, "o", "b"] +[0.001, "o", "e"] +[0.000, "o", "r"] +[0.000, "o", "n"] +[0.000, "o", "e"] +[0.001, "o", "t"] +[0.000, "o", "e"] +[0.000, "o", "s"] +[0.001, "o", "/"] +[0.000, "o", "0"] +[0.001, "o", "4"] +[0.000, "o", "-"] +[0.000, "o", "v"] +[0.001, "o", "p"] +[0.000, "o", "c"] +[0.000, "o", "-"] +[0.001, "o", "p"] +[0.000, "o", "e"] +[0.000, "o", "e"] +[0.001, "o", "r"] +[0.000, "o", "l"] +[0.000, "o", "i"] +[0.001, "o", "n"] +[0.000, "o", "k"] +[0.001, "o", "/"] +[0.000, "o", "l"] +[0.000, "o", "e"] +[0.001, "o", "a"] +[0.000, "o", "f"] +[0.000, "o", "1"] +[0.000, "o", "-"] +[0.001, "o", "p"] +[0.000, "o", "o"] +[0.000, "o", "1"] +[0.000, "o", "."] +[0.001, "o", "y"] +[0.000, "o", "a"] +[0.000, "o", "m"] +[0.001, "o", "\u001b[45D\u001b[32my\u001b[32mq\u001b[39m \u001b[4m.\u001b[4m/\u001b[4mk\u001b[4mu\u001b[4mb\u001b[4me\u001b[4mr\u001b[4mn\u001b[4me\u001b[4mt\u001b[4me\u001b[4ms\u001b[4m/\u001b[4m0\u001b[4m4\u001b[4m-\u001b[4mv\u001b[4mp\u001b[4mc\u001b[4m-\u001b[4mp\u001b[4me\u001b[4me\u001b[4mr\u001b[4ml\u001b[4mi\u001b[4mn\u001b[4mk\u001b[4m/\u001b[4ml\u001b[4me\u001b[4ma\u001b[4mf\u001b[4m1\u001b[4m-\u001b[4mp\u001b[4mo\u001b[4m1\u001b[4m.\u001b[4my\u001b[4ma\u001b[4mm\u001b[4ml\u001b[24m"] +[1.046, "o", "\r\r\n"] +[0.009, "o", "\u001b[36mapiVersion\u001b[0m:\u001b[32m networking.metal.ironcore.dev/v1alpha1\u001b[0m\r\n\u001b[32m\u001b[0m\u001b[36mkind\u001b[0m:\u001b[32m Interface\u001b[0m\r\n\u001b[32m\u001b[0m\u001b[36mmetadata\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m labels\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m networking.metal.ironcore.dev/role\u001b[0m:\u001b[32m vpc-peer-link\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mname\u001b[0m:\u001b[32m leaf1-po1\u001b[0m\r\n\u001b[32m\u001b[0m\u001b[36mspec\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m deviceRef\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m name\u001b[0m:\u001b[32m leaf1\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mproviderConfigRef\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m apiVersion\u001b[0m:\u001b[32m nx.cisco.networking.metal.ironcore.dev/v1alpha1\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mkind\u001b[0m:\u001b[32m InterfaceConfig\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mname\u001b[0m:\u001b[32m spanning-tree-network\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mname\u001b[0m:\u001b[32m po1\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mdescription\u001b[0m:\u001b[32m vPC Peer-Link\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36madminState\u001b[0m:\u001b[32m Up\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mtype\u001b[0m:\u001b[32m Aggregate\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mswitchport\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m mode\u001b[0m:\u001b[32m Trunk\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mnativeVlan\u001b[0m:\u001b[95m 1\u001b[0m\r\n\u001b[95m \u001b[0m\u001b[36maggregation\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m controlProtoco"] +[0.000, "o", "l\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m mode\u001b[0m:\u001b[32m Active\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mmemberInterfaceRefs\u001b[0m:\r\n -\u001b[36m name\u001b[0m:\u001b[32m leaf1-eth1-31\u001b[0m\r\n\u001b[32m \u001b[0m-\u001b[36m name\u001b[0m:\u001b[32m leaf1-eth1-32\u001b[0m\r\n"] +[0.000, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[1.693, "m", ""] +[2.787, "o", "k"] +[0.000, "o", "\bku"] +[0.001, "o", "b"] +[0.000, "o", "e"] +[0.000, "o", "c"] +[0.001, "o", "t"] +[0.000, "o", "l"] +[0.000, "o", " "] +[0.001, "o", "a"] +[0.000, "o", "p"] +[0.000, "o", "p"] +[0.001, "o", "l"] +[0.000, "o", "y"] +[0.000, "o", " "] +[0.001, "o", "-"] +[0.000, "o", "k"] +[0.000, "o", " "] +[0.001, "o", "."] +[0.000, "o", "/"] +[0.000, "o", "k"] +[0.001, "o", "u"] +[0.000, "o", "b"] +[0.000, "o", "e"] +[0.001, "o", "r"] +[0.000, "o", "n"] +[0.000, "o", "e"] +[0.001, "o", "t"] +[0.000, "o", "e"] +[0.000, "o", "s"] +[0.001, "o", "/"] +[0.000, "o", "0"] +[0.000, "o", "4"] +[0.000, "o", "-"] +[0.001, "o", "v"] +[0.000, "o", "p"] +[0.000, "o", "c"] +[0.001, "o", "-"] +[0.000, "o", "p"] +[0.000, "o", "e"] +[0.000, "o", "e"] +[0.001, "o", "r"] +[0.000, "o", "l"] +[0.000, "o", "i"] +[0.001, "o", "n"] +[0.002, "o", "\u001b[44D\u001b[32mk\u001b[32mu\u001b[32mb\u001b[32me\u001b[32mc\u001b[32mt\u001b[32ml\u001b[39m\u001b[10C\u001b[4m.\u001b[4m/\u001b[4mk\u001b[4mu\u001b[4mb\u001b[4me\u001b[4mr\u001b[4mn\u001b[4me\u001b[4mt\u001b[4me\u001b[4ms\u001b[4m/\u001b[4m0\u001b[4m4\u001b[4m-\u001b[4mv\u001b[4mp\u001b[4mc\u001b[4m-\u001b[4mp\u001b[4me\u001b[4me\u001b[4mr\u001b[4ml\u001b[4mi\u001b[4mn\u001b[4mk\u001b[24m"] +[1.069, "o", "\r\r\n"] +[0.079, "o", "interface.networking.metal.ironcore.dev/leaf1-eth1-31 created\r\n"] +[0.005, "o", "interface.networking.metal.ironcore.dev/leaf1-eth1-32 created\r\n"] +[0.005, "o", "interface.networking.metal.ironcore.dev/leaf1-po1 created\r\n"] +[0.005, "o", "interface.networking.metal.ironcore.dev/leaf2-eth1-31 created\r\n"] +[0.005, "o", "interface.networking.metal.ironcore.dev/leaf2-eth1-32 created\r\n"] +[0.006, "o", "interface.networking.metal.ironcore.dev/leaf2-po1 created\r\n"] +[0.006, "o", "interfaceconfig.nx.cisco.networking.metal.ironcore.dev/spanning-tree-network created\r\n"] +[0.000, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[2.451, "o", "w"] +[0.000, "o", "\bwa"] +[0.000, "o", "t"] +[0.001, "o", "c"] +[0.000, "o", "h"] +[0.000, "o", " "] +[0.001, "o", "k"] +[0.000, "o", "u"] +[0.001, "o", "b"] +[0.000, "o", "e"] +[0.000, "o", "c"] +[0.001, "o", "t"] +[0.000, "o", "l"] +[0.000, "o", " "] +[0.001, "o", "g"] +[0.000, "o", "e"] +[0.000, "o", "t"] +[0.001, "o", " "] +[0.000, "o", "i"] +[0.000, "o", "n"] +[0.001, "o", "t"] +[0.000, "o", "e"] +[0.001, "o", "r"] +[0.000, "o", "f"] +[0.000, "o", "a"] +[0.000, "o", "c"] +[0.001, "o", "e"] +[0.000, "o", " "] +[0.000, "o", "-"] +[0.001, "o", "l"] +[0.000, "o", " "] +[0.001, "o", "n"] +[0.000, "o", "e"] +[0.000, "o", "t"] +[0.001, "o", "w"] +[0.000, "o", "o"] +[0.000, "o", "r"] +[0.001, "o", "k"] +[0.000, "o", "i"] +[0.000, "o", "n"] +[0.001, "o", "g"] +[0.000, "o", "."] +[0.000, "o", "m"] +[0.001, "o", "e"] +[0.000, "o", "t"] +[0.000, "o", "a"] +[0.001, "o", "l"] +[0.000, "o", "."] +[0.000, "o", "i"] +[0.001, "o", "r"] +[0.000, "o", "o"] +[0.000, "o", "n"] +[0.001, "o", "c"] +[0.000, "o", "o"] +[0.000, "o", "r"] +[0.001, "o", "e"] +[0.000, "o", "."] +[0.000, "o", "d"] +[0.001, "o", "e"] +[0.000, "o", "v"] +[0.000, "o", "/"] +[0.000, "o", "r"] +[0.001, "o", "o"] +[0.000, "o", "l"] +[0.000, "o", "e"] +[0.001, "o", "="] +[0.000, "o", "v"] +[0.000, "o", "p"] +[0.000, "o", "c"] +[0.001, "o", "-"] +[0.000, "o", "p"] +[0.000, "o", "e"] +[0.001, "o", "e"] +[0.000, "o", "r"] +[0.000, "o", "-"] +[0.000, "o", "l"] +[0.001, "o", "i"] +[0.000, "o", "n"] +[0.000, "o", "k"] +[0.001, "o", " "] +[0.000, "o", "-"] +[0.000, "o", "o"] +[0.000, "o", " "] +[0.001, "o", "w"] +[0.000, "o", "i"] +[0.000, "o", "d"] +[0.003, "o", "\u001b[86D\u001b[32mw\u001b[32ma\u001b[32mt\u001b[32mc\u001b[32mh\u001b[39m\u001b[81Ce"] +[1.923, "m", ""] +[2.061, "o", "\r\r\n"] +[0.004, "o", "\u001b(B\u001b)0\u001b[?1049h\u001b[1;91r\u001b[m\u000f\u001b[4l\u001b[?25l"] +[0.056, "o", "\u001b[H\u001b[JNAME\u001b[1;17HINTERFACE TYPE\u001b[1;41HADMIN STATE DESCRIPTION MTU DEVICE READY CONFIGURED OPERATIONAL AGE\r\u001b[2dleaf1-eth1-31 eth1/31 Physical Up\u001b[2;55HvPC Peer-Link\u001b[2;77Hleaf1 Unknown Unknown\u001b[109G"] +[0.000, "o", "Unknown\u001b[123G7s\r\u001b[3dleaf1-eth1-32 eth1/32 Physical Up\u001b[3;55HvPC Peer-Link\u001b[3;77Hleaf1 True\u001b[96GTrue\u001b[3;109HTrue\u001b[3;123H"] +[0.000, "o", "7s\r\u001b[4d"] +[0.000, "o", "leaf1-po1\u001b[17G"] +[0.000, "o", "po1\u001b[4;29H"] +[0.000, "o", "Aggregate Up\u001b[4;55H"] +[0.000, "o", "vPC Peer-Link\u001b[4;77Hleaf1\u001b[4;123H7s\r\u001b[5dleaf2-eth1-31 eth1/31 Physical Up\u001b[5;55HvPC Peer-Link\u001b[5;77Hleaf2 True\u001b[96GTrue\u001b[5;109HTrue\u001b[5;123H"] +[0.000, "o", "7s\r\u001b[6d"] +[0.000, "o", "leaf2-eth1-32 eth1/32 Physical Up\u001b[6;55H"] +[0.000, "o", "vPC Peer-Link\u001b[6;77H"] +[0.000, "o", "leaf2 Unknown Unknown\u001b[109GUnknown\u001b[123G7s\r\u001b[7dleaf2-po1\u001b[17Gpo1\u001b[7;29HAggregate Up\u001b[7;55H"] +[0.000, "o", "vPC Peer-Link\u001b[7;77H"] +[0.000, "o", "leaf2 Unknown Unknown\u001b[109GUnknown\u001b[123G"] +[0.000, "o", "7s\r\u001b[8d"] +[1.053, "o", "\u001b[2;86HTrue True \u001b[109GTrue \u001b[123G8\u001b[3d\b"] +[0.000, "o", "8\u001b[4d\b8\u001b[5d\b8\u001b[6;86H"] +[0.000, "o", "True True \u001b[109GTrue \u001b[123G"] +[0.000, "o", "8\u001b[7d\b8\r\u001b[8d"] +[1.053, "o", "\u001b[2;123H9\u001b[3d\b9\u001b[4d\b9\u001b[5d\b9\u001b[6d\b9\u001b[7d\b"] +[0.000, "o", "9\r\u001b[8d"] +[1.053, "o", "\u001b[2;123H10s\u001b[3;123H10s\u001b[4;123H10s\u001b[5;123H1"] +[0.000, "o", "0s\u001b[6;123H10s\u001b[7;123H10s\r\u001b[8d"] +[1.051, "o", "\u001b[2;124H1\u001b[3d\b1\u001b[4;86H"] +[0.000, "o", "Unknown Unknown\u001b[109GUnknown\u001b[4;124H1\u001b[5d\b"] +[0.000, "o", "1\u001b[6d\b1\u001b[7d\b1\r\u001b[8d"] +[1.054, "o", "\u001b[1;91H\u001b[2P\u001b[2;94HTrue \u001b[107GTrue \u001b[2;121H12s\u001b[K\u001b[3;94HTrue \u001b[107GTrue \u001b[3;121H12"] +[0.000, "o", "s\u001b[K\u001b[4;86HFalse True False 12s\u001b[K\u001b[5;94HTrue \u001b[107GTrue \u001b[5;121H"] +[0.000, "o", "12"] +[0.000, "o", "s\u001b[K\u001b[6;94HTrue \u001b[107GTrue \u001b[6;121H12s\u001b[K\u001b[7;86HFalse True False 12s\u001b[K\r\u001b[8d"] +[1.052, "o", "\u001b[2;122H3\u001b[3d\b3\u001b[4d\b3\u001b[5d\b3\u001b[6d\b"] +[0.000, "o", "3\u001b[7d\b3\r\u001b[8d"] +[1.054, "o", "\u001b[2;122H4\u001b[3d\b4\u001b[4d\b4\u001b[5d\b"] +[0.000, "o", "4\u001b[6d\b4\u001b[7d\b4\r\u001b[8d"] +[1.050, "o", "\u001b[2;122H5\u001b[3d\b5\u001b[4d\b5\u001b[5d\b"] +[0.000, "o", "5\u001b[6d\b5\u001b[7d\b"] +[0.000, "o", "5\r\u001b[8d"] +[1.058, "o", "\u001b[2;122H6\u001b[3d\b6\u001b[4d\b6\u001b[5d\b"] +[0.000, "o", "6\u001b[6d\b6\u001b[7d\b"] +[0.000, "o", "6\r\u001b[8d"] +[1.052, "o", "\u001b[2;122H7\u001b[3d\b7\u001b[4d\b7\u001b[5d\b"] +[0.000, "o", "7\u001b[6d\b7\u001b[7d\b7\r\u001b[8d"] +[1.053, "o", "\u001b[2;122H8\u001b[3d\b8\u001b[4d\b8\u001b[5d\b8\u001b[6d\b"] +[0.000, "o", "8\u001b[7d\b8\r\u001b[8d"] +[1.051, "o", "\u001b[2;122H9\u001b[3d\b9\u001b[4d\b9\u001b[5d\b"] +[0.000, "o", "9\u001b[6d\b9\u001b[7d\b9\r\u001b[8d"] +[1.057, "o", "\u001b[2;121H20\u001b[3d\b\b20\u001b[4d\b\b20\u001b[5d\b\b"] +[0.000, "o", "20\u001b[6d\b\b20\u001b[7d\b\b"] +[0.000, "o", "20\r\u001b[8d"] +[1.054, "o", "\u001b[2;122H1\u001b[3d\b1\u001b[4d\b1\u001b[5d\b1\u001b[6d\b"] +[0.000, "o", "1\u001b[7d\b1\r\u001b[8d"] +[1.059, "o", "\u001b[2;122H2\u001b[3d\b2\u001b[4d\b"] +[0.000, "o", "2\u001b[5d\b2\u001b[6d\b"] +[0.000, "o", "2\u001b[7d\b2\r\u001b[8d"] +[1.051, "o", "\u001b[2;122H3\u001b[3d\b3\u001b[4;86HTrue \u001b[4;107HTrue \u001b[4;122H3\u001b[5d\b"] +[0.000, "o", "3\u001b[6d\b3\u001b[7;86H"] +[0.000, "o", "True \u001b[7;107H"] +[0.000, "o", "True \u001b[7;122H3\r\u001b[8d"] +[1.052, "o", "\u001b[2;122H4\u001b[3d\b4\u001b[4d\b4\u001b[5d\b4\u001b[6d\b4\u001b[7d\b4\r\u001b[8d"] +[1.053, "o", "\u001b[2;122H6\u001b[3d\b6\u001b[4d\b6\u001b[5d\b"] +[0.000, "o", "6\u001b[6d\b6\u001b[7d\b6\r\u001b[8d"] +[1.049, "o", "\u001b[2;122H7\u001b[3d\b7\u001b[4d\b7\u001b[5d\b"] +[0.000, "o", "7\u001b[6d\b7\u001b[7d\b7\r\u001b[8d"] +[1.055, "o", "\u001b[2;122H8\u001b[3d\b8\u001b[4d\b8\u001b[5d\b8\u001b[6d\b"] +[0.000, "o", "8\u001b[7d\b8\r\u001b[8d"] +[1.053, "o", "\u001b[2;122H9\u001b[3d\b9\u001b[4d\b9\u001b[5d\b9\u001b[6d\b"] +[0.000, "o", "9\u001b[7d\b9\r\u001b[8d"] +[1.056, "o", "\u001b[2;121H30\u001b[3d\b\b30\u001b[4d\b\b30\u001b[5d\b\b"] +[0.000, "o", "30\u001b[6d\b\b30\u001b[7d\b\b30\r\u001b[8d"] +[0.619, "o", "\u001b[91;1H\u001b[34h\u001b[?25h\u001b[?1049l\r\u001b[?1l\u001b>"] +[0.000, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[0.837, "m", ""] +[0.799, "o", "\u001b[H\u001b[J\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[0.904, "o", "y"] +[0.001, "o", "\byq"] +[0.000, "o", " "] +[0.000, "o", "."] +[0.001, "o", "/"] +[0.000, "o", "k"] +[0.000, "o", "u"] +[0.001, "o", "b"] +[0.000, "o", "e"] +[0.000, "o", "r"] +[0.001, "o", "n"] +[0.000, "o", "e"] +[0.000, "o", "t"] +[0.000, "o", "e"] +[0.001, "o", "s"] +[0.000, "o", "/"] +[0.000, "o", "0"] +[0.001, "o", "5"] +[0.000, "o", "-"] +[0.000, "o", "v"] +[0.001, "o", "p"] +[0.000, "o", "c"] +[0.000, "o", "-"] +[0.000, "o", "d"] +[0.001, "o", "o"] +[0.000, "o", "m"] +[0.000, "o", "a"] +[0.001, "o", "i"] +[0.000, "o", "n"] +[0.000, "o", "/"] +[0.001, "o", "l"] +[0.000, "o", "e"] +[0.000, "o", "a"] +[0.000, "o", "f"] +[0.001, "o", "1"] +[0.000, "o", "-"] +[0.000, "o", "v"] +[0.001, "o", "p"] +[0.000, "o", "c"] +[0.000, "o", "-"] +[0.001, "o", "d"] +[0.000, "o", "o"] +[0.000, "o", "m"] +[0.000, "o", "a"] +[0.001, "o", "i"] +[0.000, "o", "n"] +[0.000, "o", "."] +[0.001, "o", "y"] +[0.000, "o", "a"] +[0.000, "o", "m"] +[0.006, "o", "\u001b[50D\u001b[32my\u001b[32mq\u001b[39m \u001b[4m.\u001b[4m/\u001b[4mk\u001b[4mu\u001b[4mb\u001b[4me\u001b[4mr\u001b[4mn\u001b[4me\u001b[4mt\u001b[4me\u001b[4ms\u001b[4m/\u001b[4m0\u001b[4m5\u001b[4m-\u001b[4mv\u001b[4mp\u001b[4mc\u001b[4m-\u001b[4md\u001b[4mo\u001b[4mm\u001b[4ma\u001b[4mi\u001b[4mn\u001b[4m/\u001b[4ml\u001b[4me\u001b[4ma\u001b[4mf\u001b[4m1\u001b[4m-\u001b[4mv\u001b[4mp\u001b[4mc\u001b[4m-\u001b[4md\u001b[4mo\u001b[4mm\u001b[4ma\u001b[4mi\u001b[4mn\u001b[4m.\u001b[4my\u001b[4ma\u001b[4mm\u001b[4ml\u001b[24m"] +[1.153, "o", "\r\r\n"] +[0.007, "o", "\u001b[36mapiVersion\u001b[0m:\u001b[32m nx.cisco.networking.metal.ironcore.dev/v1alpha1\u001b[0m\r\n\u001b[32m\u001b[0m\u001b[36mkind\u001b[0m:\u001b[32m VPCDomain\u001b[0m\r\n\u001b[32m\u001b[0m\u001b[36mmetadata\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m name\u001b[0m:\u001b[32m leaf1-vpcdomain\u001b[0m\r\n\u001b[32m\u001b[0m\u001b[36mspec\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m deviceRef\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m name\u001b[0m:\u001b[32m leaf1\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mdomainId\u001b[0m:\u001b[95m 1\u001b[0m\r\n\u001b[95m \u001b[0m\u001b[36madminState\u001b[0m:\u001b[32m Up\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mpeer\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m adminState\u001b[0m:\u001b[32m Up\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36minterfaceRef\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m name\u001b[0m:\u001b[32m leaf1-po1\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mswitch\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m enabled\u001b[0m:\u001b[95m true\u001b[0m\r\n\u001b[95m \u001b[0m\u001b[36mgateway\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m enabled\u001b[0m:\u001b[95m true\u001b[0m\r\n\u001b[95m \u001b[0m\u001b[36mkeepalive\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m source\u001b[0m:\u001b[32m 10.1.1.1\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mdestination\u001b[0m:\u001b[32m 10.1.1.2\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mvrfRef\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m name\u001b[0m:\u001b[32m leaf1-vpc-keepalive\u001b[0m\r\n"] +[0.000, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[1.402, "m", ""] +[1.244, "o", "k"] +[0.001, "o", "\bku"] +[0.000, "o", "b"] +[0.000, "o", "e"] +[0.001, "o", "c"] +[0.000, "o", "t"] +[0.000, "o", "l"] +[0.001, "o", " "] +[0.000, "o", "a"] +[0.000, "o", "p"] +[0.001, "o", "p"] +[0.000, "o", "l"] +[0.001, "o", "y"] +[0.000, "o", " "] +[0.000, "o", "-"] +[0.001, "o", "k"] +[0.000, "o", " "] +[0.001, "o", "."] +[0.000, "o", "/"] +[0.000, "o", "k"] +[0.001, "o", "u"] +[0.000, "o", "b"] +[0.000, "o", "e"] +[0.001, "o", "r"] +[0.000, "o", "n"] +[0.000, "o", "e"] +[0.001, "o", "t"] +[0.000, "o", "e"] +[0.000, "o", "s"] +[0.001, "o", "/"] +[0.000, "o", "0"] +[0.000, "o", "5"] +[0.001, "o", "-"] +[0.000, "o", "v"] +[0.000, "o", "p"] +[0.001, "o", "c"] +[0.000, "o", "-"] +[0.000, "o", "d"] +[0.001, "o", "o"] +[0.000, "o", "m"] +[0.000, "o", "a"] +[0.001, "o", "i"] +[0.001, "o", "\u001b[42D\u001b[32mk\u001b[32mu\u001b[32mb\u001b[32me\u001b[32mc\u001b[32mt\u001b[32ml\u001b[39m\u001b[10C\u001b[4m.\u001b[4m/\u001b[4mk\u001b[4mu\u001b[4mb\u001b[4me\u001b[4mr\u001b[4mn\u001b[4me\u001b[4mt\u001b[4me\u001b[4ms\u001b[4m/\u001b[4m0\u001b[4m5\u001b[4m-\u001b[4mv\u001b[4mp\u001b[4mc\u001b[4m-\u001b[4md\u001b[4mo\u001b[4mm\u001b[4ma\u001b[4mi\u001b[4mn\u001b[24m"] +[1.274, "o", "\r\r\n"] +[0.060, "o", "vpcdomain.nx.cisco.networking.metal.ironcore.dev/leaf1-vpcdomain created\r\n"] +[0.006, "o", "vpcdomain.nx.cisco.networking.metal.ironcore.dev/leaf2-vpcdomain created\r\n"] +[0.001, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[2.051, "o", "w"] +[0.000, "o", "\bwa"] +[0.000, "o", "t"] +[0.001, "o", "c"] +[0.000, "o", "h"] +[0.000, "o", " "] +[0.001, "o", "k"] +[0.000, "o", "u"] +[0.000, "o", "b"] +[0.001, "o", "e"] +[0.000, "o", "c"] +[0.001, "o", "t"] +[0.000, "o", "l"] +[0.000, "o", " "] +[0.001, "o", "g"] +[0.000, "o", "e"] +[0.000, "o", "t"] +[0.001, "o", " "] +[0.000, "o", "v"] +[0.000, "o", "p"] +[0.000, "o", "c"] +[0.001, "o", "d"] +[0.000, "o", "o"] +[0.001, "o", "m"] +[0.000, "o", "a"] +[0.000, "o", "i"] +[0.000, "o", "n"] +[0.001, "o", " "] +[0.000, "o", "-"] +[0.000, "o", "o"] +[0.001, "o", " "] +[0.000, "o", "w"] +[0.000, "o", "i"] +[0.001, "o", "d"] +[0.002, "o", "\u001b[34D\u001b[32mw\u001b[32ma\u001b[32mt\u001b[32mc\u001b[32mh\u001b[39m\u001b[29Ce"] +[1.100, "o", "\r\r\n"] +[0.004, "o", "\u001b(B\u001b)0\u001b[?1049h\u001b[1;91r\u001b[m\u000f\u001b[4l\u001b[?25l"] +[0.048, "o", "\u001b[H\u001b[JNAME\u001b[1;19HDEVICE DOMAIN ENABLED READY CONFIGURED OPERATIONAL PEERSTATUS ROLE\u001b[1;107HPEERLINKIFOPERST \u001b[1;126HKEEPALIVEPEERUPTIME AGE\r\u001b[2dleaf1-vpcdomain leaf1 1\u001b[2;37HUp\u001b[2;47HTrue True\u001b[2;68HTrue\u001b[2;82HUp\u001b[2;95HPrimary \u001b[2;107H"] +[0.0, "o", "Up\u001b[148G4s\r\u001b[3dleaf2-vpcdomain leaf2 1\u001b[3;37HUp\u001b[3;47H"] +[0.0, "o", "True True\u001b[3;68HTrue\u001b[3;82HUp\u001b[3;95HSecondary \u001b[3;107HUp\u001b[148G"] +[0.0, "o", "4s\r\u001b[4d"] +[1.057, "o", "\u001b[2;148H5\u001b[3d\b5\r\u001b[4d"] +[1.049, "o", "\u001b[2;148H6\u001b[3d\b6\r\u001b[4d"] +[1.048, "o", "\u001b[2;148H7\u001b[3d\b7\r\u001b[4d"] +[1.056, "o", "\u001b[2;148H8\u001b[3d\b8\r\u001b[4d"] +[1.052, "o", "\u001b[2;148H9\u001b[3d\b9\r\u001b[4d"] +[1.052, "o", "\u001b[2;148H10s\u001b[3;148H10s\r\u001b[4d"] +[1.056, "o", "\u001b[2;149H1\u001b[3d\b1\r\u001b[4d"] +[1.048, "o", "\u001b[2;149H2\u001b[3d\b2\r\u001b[4d"] +[1.048, "o", "\u001b[2;149H3\u001b[3d\b3\r\u001b[4d"] +[1.053, "o", "\u001b[2;149H4\u001b[3d\b4\r\u001b[4d"] +[1.058, "o", "\u001b[2;149H5\u001b[3d\b5\r\u001b[4d"] +[1.059, "o", "\u001b[2;149H6\u001b[3;126H13s\u001b[149G6\r\u001b[4d"] +[1.054, "o", "\u001b[2;149H7\u001b[3d\b7\r\u001b[4d"] +[1.057, "o", "\u001b[2;149H8\u001b[3d\b8\r\u001b[4d"] +[1.058, "o", "\u001b[2;149H9\u001b[3d\b9\r\u001b[4d"] +[1.05, "o", "\u001b[2;148H20\u001b[3d\b\b20\r\u001b[4d"] +[1.054, "o", "\u001b[2;149H1\u001b[3d\b1\r\u001b[4d"] +[1.054, "o", "\u001b[2;126H20s\u001b[149G3\u001b[3d\b"] +[0.0, "o", "3\r\u001b[4d"] +[1.052, "o", "\u001b[2;149H4\u001b[3d\b4\r\u001b[4d"] +[1.054, "o", "\u001b[2;149H5\u001b[3d\b5\r\u001b[4d"] +[1.051, "o", "\u001b[2;149H6\u001b[3d\b6\r\u001b[4d"] +[1.049, "o", "\u001b[2;149H7\u001b[3d\b7\r\u001b[4d"] +[0.924, "o", "\u001b[91;1H\u001b[34h\u001b[?25h\u001b[?1049l\r\u001b[?1l\u001b>"] +[0.000, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[1.489, "m", ""] +[2.183, "o", "\u001b[H\u001b[J\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[1.227, "o", "s"] +[0.000, "o", "\bss"] +[0.000, "o", "h"] +[0.001, "o", " "] +[0.000, "o", "l"] +[0.000, "o", "e"] +[0.001, "o", "a"] +[0.000, "o", "f"] +[0.001, "o", "\u001b[8D\u001b[32ms\u001b[32ms\u001b[32mh\u001b[39m\u001b[5C1"] +[0.931, "o", "\r\r\n"] +[1.823, "o", "** WARNING: connection is not using a post-quantum key exchange algorithm.\r\r\n** This session may be vulnerable to \"store now, decrypt later\" attacks.\r\r\n** The server may need to be upgraded. See https://openssh.com/pq.html\r\r\n"] +[0.110, "o", "User Access Verification\r\n"] +[0.407, "o", "\r\n"] +[0.278, "o", "Bad terminal type: \"tmux-256color\". Will assume vt100.\r\n"] +[0.042, "o", "Cisco NX-OS Software\r\nCopyright (c) 2002-2025, Cisco Systems, Inc. All rights reserved.\r\nNexus 9000v software (\"Nexus 9000v Software\") and related documentation,\r\nfiles or other reference materials (\"Documentation\") are\r\nthe proprietary property and confidential information of Cisco\r\nSystems, Inc. (\"Cisco\") and are protected, without limitation,\r\npursuant to United States and International copyright and trademark\r\nlaws in the applicable jurisdiction which provide civil and criminal\r\npenalties for copying or distribution without Cisco's authorization.\r\n\r\nAny use or disclosure, in whole or in part, of the Nexus 9000v Software\r\nor Documentation to any third party for any purposes is expressly\r\nprohibited except as otherwise authorized by Cisco in writing.\r\nThe copyrights to certain works contained herein are owned by other\r\nthird parties and are used and distributed under license. Some parts\r\nof this software may be covered under the GNU Public License or the\r\nGNU Lesser General Public License. A copy of each su"] +[0.000, "o", "ch license is\r\navailable at\r\nhttp://www.gnu.org/licenses/gpl.html and\r\nhttp://www.gnu.org/licenses/lgpl.html\r\n***************************************************************************\r\n* Nexus 9000v is strictly limited to use for evaluation, demonstration *\r\n* and NX-OS education. Any use or disclosure, in whole or in part of *\r\n* the Nexus 9000v Software or Documentation to any third party for any *\r\n* purposes is expressly prohibited except as otherwise authorized by *\r\n* Cisco in writing. *\r\n***************************************************************************\r\n\rleaf1# "] +[1.398, "o", "show vpc brief"] +[1.223, "o", "\r\r\n"] +[0.044, "o", "Legend:\r\n (*) - local vPC is down, forwarding via vPC peer-link\r\n\r\nvPC domain id : 1 \r\nPeer status : peer adjacency formed ok \r\nvPC keep-alive status : peer is alive \r\nConfiguration consistency status : success \r\nPer-vlan consistency status : success \r\nType-2 consistency status : success \r\nvPC role : primary \r\nNumber of vPCs configured : 0 \r\nPeer Gateway : Enabled\r\nDual-active excluded VLANs : -\r\nGraceful Consistency Check : Enabled\r\nAuto-recovery status : Disabled\r\nDelay-restore status : Timer is on.(timeout = 30s, 5s left)\r\nDelay-restore SVI status : Timer is off.(timeout = 10s)\r\nDelay-restore Orphan-port status : Timer is off.(timeout = 0s)\r\nOperational Layer3 Peer-router : Disabled\r\nVirtual-peerlink mode : Disabled\r\n\r\nvPC Peer-link status"] +[0.000, "o", "\r\n---------------------------------------------------------------------\r\nid Port Status Active vlans \r\n-- ---- ------ -------------------------------------------------\r\n1 Po1 up 1 \r\n\rleaf1# "] +[2.166, "m", ""] +[1.265, "o", "e"] +[0.261, "o", "x"] +[0.211, "o", "i"] +[0.187, "o", "t"] +[2.327, "o", "\r\r\n"] +[0.057, "o", "Connection to clab-evpn-vxlan-fabric-leaf1 closed.\r\r\n"] +[0.000, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[0.447, "o", "\u001b[H\u001b[J\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[0.916, "o", "y"] +[0.001, "o", "\byq"] +[0.000, "o", " "] +[0.000, "o", "."] +[0.001, "o", "/"] +[0.000, "o", "k"] +[0.001, "o", "u"] +[0.000, "o", "b"] +[0.000, "o", "e"] +[0.001, "o", "r"] +[0.000, "o", "n"] +[0.000, "o", "e"] +[0.001, "o", "t"] +[0.000, "o", "e"] +[0.000, "o", "s"] +[0.001, "o", "/"] +[0.000, "o", "0"] +[0.001, "o", "6"] +[0.000, "o", "-"] +[0.000, "o", "i"] +[0.001, "o", "n"] +[0.000, "o", "t"] +[0.000, "o", "e"] +[0.001, "o", "r"] +[0.000, "o", "c"] +[0.000, "o", "o"] +[0.001, "o", "n"] +[0.000, "o", "n"] +[0.000, "o", "e"] +[0.000, "o", "c"] +[0.001, "o", "t"] +[0.000, "o", "s"] +[0.000, "o", "/"] +[0.001, "o", "l"] +[0.000, "o", "e"] +[0.000, "o", "a"] +[0.000, "o", "f"] +[0.001, "o", "1"] +[0.000, "o", "-"] +[0.001, "o", "e"] +[0.000, "o", "t"] +[0.000, "o", "h"] +[0.001, "o", "1"] +[0.000, "o", "-"] +[0.000, "o", "1"] +[0.001, "o", "."] +[0.000, "o", "y"] +[0.000, "o", "a"] +[0.001, "o", "m"] +[0.006, "o", "\u001b[49D\u001b[32my\u001b[32mq\u001b[39m \u001b[4m.\u001b[4m/\u001b[4mk\u001b[4mu\u001b[4mb\u001b[4me\u001b[4mr\u001b[4mn\u001b[4me\u001b[4mt\u001b[4me\u001b[4ms\u001b[4m/\u001b[4m0\u001b[4m6\u001b[4m-\u001b[4mi\u001b[4mn\u001b[4mt\u001b[4me\u001b[4mr\u001b[4mc\u001b[4mo\u001b[4mn\u001b[4mn\u001b[4me\u001b[4mc\u001b[4mt\u001b[4ms\u001b[4m/\u001b[4ml\u001b[4me\u001b[4ma\u001b[4mf\u001b[4m1\u001b[4m-\u001b[4me\u001b[4mt\u001b[4mh\u001b[4m1\u001b[4m-\u001b[4m1\u001b[4m.\u001b[4my\u001b[4ma\u001b[4mm\u001b[4ml\u001b[24m"] +[0.842, "o", "\r\r\n"] +[0.009, "o", "\u001b[36mapiVersion\u001b[0m:\u001b[32m networking.metal.ironcore.dev/v1alpha1\u001b[0m\r\n\u001b[32m\u001b[0m\u001b[36mkind\u001b[0m:\u001b[32m Interface\u001b[0m\r\n\u001b[32m\u001b[0m\u001b[36mmetadata\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m labels\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m networking.metal.ironcore.dev/role\u001b[0m:\u001b[32m fabric\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mname\u001b[0m:\u001b[32m leaf1-eth1-1\u001b[0m\r\n\u001b[32m\u001b[0m\u001b[36mspec\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m deviceRef\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m name\u001b[0m:\u001b[32m leaf1\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mname\u001b[0m:\u001b[32m eth1/1\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mdescription\u001b[0m:\u001b[32m Leaf1 to Spine1\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36madminState\u001b[0m:\u001b[32m Up\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mtype\u001b[0m:\u001b[32m Physical\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mmtu\u001b[0m:\u001b[95m 9216\u001b[0m\r\n\u001b[95m \u001b[0m\u001b[36mipv4\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m unnumbered\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m interfaceRef\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m name\u001b[0m:\u001b[32m leaf1-lo0\u001b[0m\r\n"] +[0.000, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[0.981, "m", ""] +[2.096, "o", "k"] +[0.001, "o", "\bku"] +[0.000, "o", "b"] +[0.000, "o", "e"] +[0.001, "o", "c"] +[0.000, "o", "t"] +[0.000, "o", "l"] +[0.001, "o", " "] +[0.000, "o", "a"] +[0.000, "o", "p"] +[0.001, "o", "p"] +[0.000, "o", "l"] +[0.000, "o", "y"] +[0.001, "o", " "] +[0.000, "o", "-"] +[0.000, "o", "k"] +[0.000, "o", " "] +[0.001, "o", "."] +[0.000, "o", "/"] +[0.000, "o", "k"] +[0.001, "o", "u"] +[0.000, "o", "b"] +[0.000, "o", "e"] +[0.001, "o", "r"] +[0.000, "o", "n"] +[0.001, "o", "e"] +[0.000, "o", "t"] +[0.000, "o", "e"] +[0.001, "o", "s"] +[0.000, "o", "/"] +[0.000, "o", "0"] +[0.001, "o", "6"] +[0.000, "o", "-"] +[0.000, "o", "i"] +[0.001, "o", "n"] +[0.000, "o", "t"] +[0.000, "o", "e"] +[0.001, "o", "r"] +[0.000, "o", "c"] +[0.000, "o", "o"] +[0.000, "o", "n"] +[0.001, "o", "n"] +[0.000, "o", "e"] +[0.000, "o", "c"] +[0.001, "o", "t"] +[0.001, "o", "\u001b[45D\u001b[32mk\u001b[32mu\u001b[32mb\u001b[32me\u001b[32mc\u001b[32mt\u001b[32ml\u001b[39m\u001b[10C\u001b[4m.\u001b[4m/\u001b[4mk\u001b[4mu\u001b[4mb\u001b[4me\u001b[4mr\u001b[4mn\u001b[4me\u001b[4mt\u001b[4me\u001b[4ms\u001b[4m/\u001b[4m0\u001b[4m6\u001b[4m-\u001b[4mi\u001b[4mn\u001b[4mt\u001b[4me\u001b[4mr\u001b[4mc\u001b[4mo\u001b[4mn\u001b[4mn\u001b[4me\u001b[4mc\u001b[4mt\u001b[4ms\u001b[24m"] +[1.154, "o", "\r\r\n"] +[0.124, "o", "interface.networking.metal.ironcore.dev/leaf1-eth1-1 created\r\n"] +[0.004, "o", "interface.networking.metal.ironcore.dev/leaf1-eth1-2 created\r\n"] +[0.004, "o", "interface.networking.metal.ironcore.dev/leaf2-eth1-1 created\r\n"] +[0.005, "o", "interface.networking.metal.ironcore.dev/leaf2-eth1-2 created\r\n"] +[0.009, "o", "interface.networking.metal.ironcore.dev/leaf3-eth1-1 created\r\n"] +[0.004, "o", "interface.networking.metal.ironcore.dev/leaf3-eth1-2 created\r\n"] +[0.006, "o", "interface.networking.metal.ironcore.dev/spine1-eth1-1 created\r\n"] +[0.008, "o", "interface.networking.metal.ironcore.dev/spine1-eth1-2 created\r\n"] +[0.007, "o", "interface.networking.metal.ironcore.dev/spine1-eth1-3 created\r\n"] +[0.008, "o", "interface.networking.metal.ironcore.dev/spine2-eth1-1 created\r\n"] +[0.004, "o", "interface.networking.metal.ironcore.dev/spine2-eth1-2 created\r\n"] +[0.007, "o", "interface.networking.metal.ironcore.dev/spine2-eth1-3 created\r\n"] +[0.000, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[2.140, "o", "w"] +[0.000, "o", "\bwa"] +[0.001, "o", "t"] +[0.000, "o", "c"] +[0.000, "o", "h"] +[0.001, "o", " "] +[0.000, "o", "k"] +[0.000, "o", "u"] +[0.000, "o", "b"] +[0.001, "o", "e"] +[0.000, "o", "c"] +[0.000, "o", "t"] +[0.001, "o", "l"] +[0.000, "o", " "] +[0.000, "o", "g"] +[0.001, "o", "e"] +[0.000, "o", "t"] +[0.000, "o", " "] +[0.001, "o", "i"] +[0.000, "o", "n"] +[0.000, "o", "t"] +[0.000, "o", "e"] +[0.001, "o", "r"] +[0.000, "o", "f"] +[0.000, "o", "a"] +[0.000, "o", "c"] +[0.001, "o", "e"] +[0.000, "o", " "] +[0.000, "o", "-"] +[0.001, "o", "l"] +[0.000, "o", " "] +[0.000, "o", "n"] +[0.001, "o", "e"] +[0.000, "o", "t"] +[0.000, "o", "w"] +[0.001, "o", "o"] +[0.000, "o", "r"] +[0.000, "o", "k"] +[0.000, "o", "i"] +[0.001, "o", "n"] +[0.000, "o", "g"] +[0.000, "o", "."] +[0.001, "o", "m"] +[0.000, "o", "e"] +[0.000, "o", "t"] +[0.001, "o", "a"] +[0.000, "o", "l"] +[0.000, "o", "."] +[0.000, "o", "i"] +[0.001, "o", "r"] +[0.000, "o", "o"] +[0.000, "o", "n"] +[0.001, "o", "c"] +[0.000, "o", "o"] +[0.000, "o", "r"] +[0.000, "o", "e"] +[0.001, "o", "."] +[0.000, "o", "d"] +[0.000, "o", "e"] +[0.001, "o", "v"] +[0.000, "o", "/"] +[0.000, "o", "r"] +[0.001, "o", "o"] +[0.000, "o", "l"] +[0.000, "o", "e"] +[0.000, "o", "="] +[0.001, "o", "f"] +[0.000, "o", "a"] +[0.000, "o", "b"] +[0.000, "o", "r"] +[0.001, "o", "i"] +[0.000, "o", "c"] +[0.000, "o", " "] +[0.001, "o", "-"] +[0.000, "o", "o"] +[0.000, "o", " "] +[0.000, "o", "w"] +[0.001, "o", "i"] +[0.000, "o", "d"] +[0.002, "o", "\u001b[79D\u001b[32mw\u001b[32ma\u001b[32mt\u001b[32mc\u001b[32mh\u001b[39m\u001b[74Ce"] +[2.093, "o", "\r\r\n"] +[0.004, "o", "\u001b(B\u001b)0\u001b[?1049h\u001b[1;91r\u001b[m\u000f\u001b[4l\u001b[?25l"] +[0.049, "o", "\u001b[H\u001b[JNAME\u001b[1;17HINTERFACE TYPE\u001b[40GADMIN STATE DESCRIPTION\u001b[72GMTU DEVICE READY CONFIGURED OPERATIONAL AGE\r\u001b[2d"] +[0.000, "o", "leaf1-eth1-1 eth1/1\u001b[29GPhysical Up\u001b[2;54HLeaf1 to Spine1 9216 leaf1\u001b[2;123H5s\r\u001b[3dleaf1-eth1-2 eth1/2\u001b[29GPhysical Up\u001b[3;54HLeaf1 to Spine2 9216 leaf1\u001b[3;123H5s\r\u001b[4dleaf2-eth1-1 eth1/1\u001b[29G"] +[0.000, "o", "Physical Up\u001b[4;54HLeaf2 to Spine1 9216 leaf2 True True\u001b[4;109H"] +[0.000, "o", "True\u001b[4;123H"] +[0.000, "o", "5s\r\u001b[5d"] +[0.000, "o", "leaf2-eth1-2 eth1/2\u001b[29GPhysical Up\u001b[5;54HLeaf2 to Spine2 9216 leaf2\u001b[5;123H"] +[0.000, "o", "5s\r\u001b[6dleaf3-eth1-1 eth1/1\u001b[29GPhysical Up\u001b[6;54H"] +[0.000, "o", "Leaf3 to Spine1 9216 leaf3 True True\u001b[6;109HTrue\u001b[6;123H5s\r\u001b[7dleaf3-eth1-2 eth1/2\u001b[29GPhysical Up\u001b[7;54HLeaf3 to Spine2 9216 leaf3\u001b[7;123H5s\r\u001b[8dspine1-eth1-1 eth1/1\u001b[29G"] +[0.000, "o", "Physical Up\u001b[8;54HSpine1 to Leaf1 9216 spine1 True True\u001b[8;109HTrue\u001b[8;123H5s\r\u001b[9dspine1-eth1-2 eth1/2\u001b[29GPhysical Up\u001b[9;54HSpine1 to Leaf2 9216 spine1\u001b[9;123H"] +[0.000, "o", "5s\r\u001b[10d"] +[0.000, "o", "spine1-eth1-3 eth1/3\u001b[29GPhysical Up\u001b[10;54HSpine1 to Leaf3 9216 spine1\u001b[10;123H"] +[0.000, "o", "5s\r\u001b[11d"] +[0.000, "o", "spine2-eth1-1 eth1/1\u001b[29GPhysical Up\u001b[11;54H"] +[0.000, "o", "Spine2 to Leaf1 9216 spine2 True True\u001b[11;109HTrue\u001b[11;123H5s\r\u001b[12d"] +[0.000, "o", "spine2-eth1-2 eth1/2\u001b[29G"] +[0.000, "o", "Physical Up\u001b[12;54HSpine2 to Leaf2 9216 spine2\u001b[12;123H"] +[0.000, "o", "5s\r\u001b[13d"] +[0.000, "o", "spine2-eth1-3 eth1/3\u001b[29GPhysical Up\u001b[13;54H"] +[0.000, "o", "Spine2 to Leaf3 9216 spine2\u001b[13;123H"] +[0.000, "o", "5s\r\u001b[14d"] +[1.053, "o", "\u001b[1;93H CONFIGURED OPERATIONAL AGE\u001b[2;88HUnknown Unknown\u001b[111GUnknown 6s\u001b[3;123H 6s\u001b[4;96H"] +[0.000, "o", " True\u001b[109G True\u001b[4;123H 6s\u001b[5;88HUnknown Unknown\u001b[111GUnknown 6s\u001b[6;96H"] +[0.000, "o", " True\u001b[109G True\u001b[6;123H 6s\u001b[7;88HUnknown Unknown\u001b[111GUnknown 6s\u001b[8;96H True\u001b[109G True\u001b[8;123H "] +[0.000, "o", " 6s\u001b[9;88HUnknown Unknown\u001b[9;123H 6s\u001b[10;88HUnknown Unknown\u001b[111G"] +[0.000, "o", "Unknown 6s\u001b[11;96H True\u001b[109G"] +[0.000, "o", " True\u001b[11;123H"] +[0.000, "o", " 6s\u001b[12;88HUnknown Unknown\u001b[111GUnknown 6s\u001b[13;123H "] +[0.000, "o", " 6s\r\u001b[14d"] +[1.051, "o", "\u001b[2;125H7\u001b[3d\b7\u001b[4d\b7\u001b[5d\b"] +[0.000, "o", "7\u001b[6d\b7\u001b[7d\b7\u001b[8d\b"] +[0.000, "o", "7\u001b[9d\b"] +[0.000, "o", "7\u001b[10d\b7\u001b[11d\b"] +[0.000, "o", "7\u001b[12d\b7\u001b[13;88HUnknown Unknown\u001b[111GUnknown\u001b[125G7\r\u001b[14d"] +[1.052, "o", "\u001b[2;88HTrue True \u001b[111GTrue \u001b[125G8\u001b[3d\b8\u001b[4d\b"] +[0.000, "o", "8\u001b[5;88HTrue True \u001b[111GTrue \u001b[125G8\u001b[6d\b"] +[0.000, "o", "8\u001b[7;88HTrue True \u001b[111GTrue \u001b[125G"] +[0.000, "o", "8\u001b[8d\b"] +[0.000, "o", "8\u001b[9d\b8\u001b[10;88HTrue True \u001b[111GTrue \u001b[125G8\u001b[11d\b8\u001b[12;88HTrue True \u001b[111G"] +[0.000, "o", "True \u001b[125G"] +[0.000, "o", "8\u001b[13d\b8\r\u001b[14d"] +[1.052, "o", "\u001b[2;125H9\u001b[3d\b9\u001b[4d\b9\u001b[5d\b"] +[0.000, "o", "9\u001b[6d\b9\u001b[7d\b"] +[0.000, "o", "9\u001b[8d\b9\u001b[9d\b"] +[0.000, "o", "9\u001b[10d\b9\u001b[11d\b"] +[0.000, "o", "9\u001b[12d\b9\u001b[13;88HTrue True \u001b[111G"] +[0.000, "o", "True \u001b[125G"] +[0.000, "o", "9\r\u001b[14d"] +[1.056, "o", "\u001b[2;125H10s\u001b[3;125H10s\u001b[4;125H10s\u001b[5;125H1"] +[0.000, "o", "0s\u001b[6;125H10s\u001b[7;125H10s\u001b[8;125H10s\u001b[9;125H1"] +[0.001, "o", "0s\u001b[10;125H10s\u001b[11;125H10s\u001b[12;125H10s\u001b[13;125H10s\r\u001b[14d"] +[1.054, "o", "\u001b[2;126H1\u001b[3;88HUnknown Unknown\u001b[111GUnknown\u001b[3;126H"] +[0.000, "o", "1\u001b[4d\b1\u001b[5d\b"] +[0.000, "o", "1\u001b[6d\b1\u001b[7d\b1\u001b[8d\b1\u001b[9;111HUnknown\u001b[9;126H1\u001b[10d\b1\u001b[11d\b1\u001b[12d\b"] +[0.000, "o", "1\u001b[13d\b"] +[0.000, "o", "1\r\u001b[14d"] +[1.054, "o", "\u001b[2;126H2\u001b[3;88HTrue True \u001b[111GTrue \u001b[3;126H2\u001b[4d\b2\u001b[5d\b2\u001b[6d\b2\u001b[7d\b2\u001b[8d\b"] +[0.000, "o", "2\u001b[9d\b2\u001b[10d\b2\u001b[11d\b2\u001b[12d\b"] +[0.000, "o", "2\u001b[13d\b"] +[0.000, "o", "2\r\u001b[14d"] +[1.055, "o", "\u001b[1;93H\u001b[2P\u001b[2;96HTrue \u001b[109GTrue \u001b[2;123H13s\u001b[K\u001b[3;96HTrue \u001b[109G"] +[0.000, "o", "True \u001b[3;123H13s\u001b[K\u001b[4;96HTrue \u001b[109GTrue \u001b[4;123H13s\u001b[K\u001b[5;96HTrue \u001b[109G"] +[0.000, "o", "True \u001b[5;123H13"] +[0.000, "o", "s\u001b[K\u001b[6;96HTrue \u001b[109GTrue \u001b[6;123H13"] +[0.000, "o", "s\u001b[K\u001b[7;96HTrue \u001b[109G"] +[0.000, "o", "True \u001b[7;123H"] +[0.000, "o", "13"] +[0.000, "o", "s\u001b[K\u001b[8;96HTrue \u001b[109GTrue \u001b[8;123H13s\u001b[K\u001b[9;88HTrue True True 13"] +[0.000, "o", "s\u001b[K\u001b[10;96HTrue \u001b[109G"] +[0.000, "o", "True \u001b[10;123H"] +[0.000, "o", "13"] +[0.000, "o", "s\u001b[K\u001b[11;96H"] +[0.000, "o", "True \u001b[109GTrue \u001b[11;123H13s\u001b[K\u001b[12;96HTrue \u001b[109G"] +[0.000, "o", "True \u001b[12;123H13"] +[0.000, "o", "s\u001b[K\u001b[13;96H"] +[0.000, "o", "True \u001b[109GTrue \u001b[13;123H13"] +[0.000, "o", "s\u001b[K\r\u001b[14d"] +[1.057, "o", "\u001b[2;124H4\u001b[3d\b4\u001b[4d\b4\u001b[5d\b4\u001b[6d\b"] +[0.000, "o", "4\u001b[7d\b4\u001b[8d\b"] +[0.000, "o", "4\u001b[9d\b"] +[0.000, "o", "4\u001b[10d\b4\u001b[11d\b4\u001b[12d\b4\u001b[13d\b4\r\u001b[14d"] +[1.054, "o", "\u001b[2;124H5\u001b[3d\b5\u001b[4d\b5\u001b[5d\b"] +[0.000, "o", "5\u001b[6d\b5\u001b[7d\b"] +[0.000, "o", "5\u001b[8d\b"] +[0.000, "o", "5\u001b[9d\b5\u001b[10d\b5\u001b[11d\b5\u001b[12d\b5\u001b[13d\b"] +[0.000, "o", "5\r\u001b[14d"] +[1.056, "o", "\u001b[2;124H6\u001b[3d\b6\u001b[4d\b6\u001b[5d\b"] +[0.000, "o", "6\u001b[6d\b6\u001b[7d\b6\u001b[8d\b"] +[0.000, "o", "6\u001b[9d\b6\u001b[10d\b6\u001b[11d\b6\u001b[12d\b"] +[0.000, "o", "6\u001b[13d\b"] +[0.000, "o", "6\r\u001b[14d"] +[1.057, "o", "\u001b[2;124H7\u001b[3d\b7\u001b[4d\b7\u001b[5d\b"] +[0.000, "o", "7\u001b[6d\b7\u001b[7d\b7\u001b[8d\b7\u001b[9d\b"] +[0.000, "o", "7\u001b[10d\b7\u001b[11d\b7\u001b[12d\b7\u001b[13d\b"] +[0.000, "o", "7\r\u001b[14d"] +[1.055, "o", "\u001b[2;124H8\u001b[3d\b8\u001b[4d\b8\u001b[5d\b8\u001b[6d\b"] +[0.000, "o", "8\u001b[7d\b8\u001b[8d\b8\u001b[9d\b"] +[0.000, "o", "8\u001b[10d\b"] +[0.000, "o", "8\u001b[11d\b8\u001b[12d\b8\u001b[13d\b8\r\u001b[14d"] +[0.447, "o", "\u001b[91;1H\u001b[34h\u001b[?25h\u001b[?1049l\r\u001b[?1l\u001b>"] +[0.000, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[0.675, "m", ""] +[0.586, "o", "\u001b[H\u001b[J\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[0.991, "o", "y"] +[0.000, "o", "\byq"] +[0.001, "o", " "] +[0.000, "o", "."] +[0.000, "o", "/"] +[0.001, "o", "k"] +[0.000, "o", "u"] +[0.000, "o", "b"] +[0.001, "o", "e"] +[0.000, "o", "r"] +[0.000, "o", "n"] +[0.001, "o", "e"] +[0.000, "o", "t"] +[0.000, "o", "e"] +[0.001, "o", "s"] +[0.000, "o", "/"] +[0.000, "o", "0"] +[0.001, "o", "7"] +[0.000, "o", "-"] +[0.000, "o", "u"] +[0.001, "o", "n"] +[0.000, "o", "d"] +[0.000, "o", "e"] +[0.000, "o", "r"] +[0.001, "o", "l"] +[0.000, "o", "a"] +[0.001, "o", "y"] +[0.000, "o", "/"] +[0.000, "o", "l"] +[0.000, "o", "e"] +[0.001, "o", "a"] +[0.000, "o", "f"] +[0.000, "o", "1"] +[0.001, "o", "-"] +[0.000, "o", "o"] +[0.000, "o", "s"] +[0.000, "o", "p"] +[0.001, "o", "f"] +[0.000, "o", "."] +[0.000, "o", "y"] +[0.001, "o", "a"] +[0.000, "o", "m"] +[0.005, "o", "\u001b[42D\u001b[32my\u001b[32mq\u001b[39m \u001b[4m.\u001b[4m/\u001b[4mk\u001b[4mu\u001b[4mb\u001b[4me\u001b[4mr\u001b[4mn\u001b[4me\u001b[4mt\u001b[4me\u001b[4ms\u001b[4m/\u001b[4m0\u001b[4m7\u001b[4m-\u001b[4mu\u001b[4mn\u001b[4md\u001b[4me\u001b[4mr\u001b[4ml\u001b[4ma\u001b[4my\u001b[4m/\u001b[4ml\u001b[4me\u001b[4ma\u001b[4mf\u001b[4m1\u001b[4m-\u001b[4mo\u001b[4ms\u001b[4mp\u001b[4mf\u001b[4m.\u001b[4my\u001b[4ma\u001b[4mm\u001b[4ml\u001b[24m"] +[1.005, "o", "\r\r\n"] +[0.010, "o", "\u001b[36mapiVersion\u001b[0m:\u001b[32m networking.metal.ironcore.dev/v1alpha1\u001b[0m\r\n\u001b[32m\u001b[0m\u001b[36mkind\u001b[0m:\u001b[32m OSPF\u001b[0m\r\n\u001b[32m\u001b[0m\u001b[36mmetadata\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m name\u001b[0m:\u001b[32m leaf1-underlay\u001b[0m\r\n\u001b[32m\u001b[0m\u001b[36mspec\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m deviceRef\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m name\u001b[0m:\u001b[32m leaf1\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36minstance\u001b[0m:\u001b[32m UNDERLAY\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mrouterId\u001b[0m:\u001b[32m 10.0.0.10\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mlogAdjacencyChanges\u001b[0m:\u001b[95m true\u001b[0m\r\n\u001b[95m \u001b[0m\u001b[36minterfaceRefs\u001b[0m:\r\n -\u001b[36m name\u001b[0m:\u001b[32m leaf1-lo0\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36marea\u001b[0m:\u001b[32m 0.0.0.0\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mpassive\u001b[0m:\u001b[95m true\u001b[0m\r\n\u001b[95m \u001b[0m-\u001b[36m name\u001b[0m:\u001b[32m leaf1-lo1\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36marea\u001b[0m:\u001b[32m 0.0.0.0\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mpassive\u001b[0m:\u001b[95m true\u001b[0m\r\n\u001b[95m \u001b[0m-\u001b[36m name\u001b[0m:\u001b[32m leaf1-eth1-1\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36marea\u001b[0m:\u001b[32m 0.0.0.0\u001b[0m\r\n\u001b[32m \u001b[0m-\u001b[36m name\u001b[0m:\u001b[32m leaf1-eth1-2\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36marea\u001b[0m:\u001b[32m 0.0.0.0\u001b[0m\r\n"] +[0.000, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[1.065, "m", ""] +[2.150, "o", "k"] +[0.001, "o", "\bku"] +[0.000, "o", "b"] +[0.000, "o", "e"] +[0.001, "o", "c"] +[0.000, "o", "t"] +[0.000, "o", "l"] +[0.001, "o", " "] +[0.000, "o", "a"] +[0.001, "o", "p"] +[0.000, "o", "p"] +[0.001, "o", "l"] +[0.000, "o", "y"] +[0.001, "o", " "] +[0.000, "o", "-"] +[0.001, "o", "k"] +[0.000, "o", " "] +[0.000, "o", "."] +[0.001, "o", "/"] +[0.000, "o", "k"] +[0.000, "o", "u"] +[0.000, "o", "b"] +[0.001, "o", "e"] +[0.000, "o", "r"] +[0.000, "o", "n"] +[0.001, "o", "e"] +[0.000, "o", "t"] +[0.000, "o", "e"] +[0.001, "o", "s"] +[0.000, "o", "/"] +[0.000, "o", "0"] +[0.001, "o", "7"] +[0.000, "o", "-"] +[0.000, "o", "u"] +[0.001, "o", "n"] +[0.000, "o", "d"] +[0.000, "o", "e"] +[0.000, "o", "r"] +[0.001, "o", "l"] +[0.000, "o", "a"] +[0.001, "o", "\u001b[40D\u001b[32mk\u001b[32mu\u001b[32mb\u001b[32me\u001b[32mc\u001b[32mt\u001b[32ml\u001b[39m\u001b[10C\u001b[4m.\u001b[4m/\u001b[4mk\u001b[4mu\u001b[4mb\u001b[4me\u001b[4mr\u001b[4mn\u001b[4me\u001b[4mt\u001b[4me\u001b[4ms\u001b[4m/\u001b[4m0\u001b[4m7\u001b[4m-\u001b[4mu\u001b[4mn\u001b[4md\u001b[4me\u001b[4mr\u001b[4ml\u001b[4ma\u001b[4my\u001b[24m"] +[0.918, "o", "\r\r\n"] +[0.143, "o", "ospf.networking.metal.ironcore.dev/leaf1-underlay created\r\n"] +[0.004, "o", "ospf.networking.metal.ironcore.dev/leaf2-underlay created\r\n"] +[0.006, "o", "ospf.networking.metal.ironcore.dev/leaf3-underlay created\r\n"] +[0.005, "o", "ospf.networking.metal.ironcore.dev/spine1-underlay created\r\n"] +[0.007, "o", "ospf.networking.metal.ironcore.dev/spine2-underlay created\r\n"] +[0.000, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[2.034, "o", "w"] +[0.000, "o", "\bwa"] +[0.000, "o", "t"] +[0.001, "o", "c"] +[0.000, "o", "h"] +[0.001, "o", " "] +[0.000, "o", "k"] +[0.000, "o", "u"] +[0.001, "o", "b"] +[0.000, "o", "e"] +[0.000, "o", "c"] +[0.001, "o", "t"] +[0.000, "o", "l"] +[0.000, "o", " "] +[0.001, "o", "g"] +[0.000, "o", "e"] +[0.000, "o", "t"] +[0.001, "o", " "] +[0.000, "o", "o"] +[0.000, "o", "s"] +[0.001, "o", "p"] +[0.000, "o", "f"] +[0.001, "o", " "] +[0.000, "o", "-"] +[0.000, "o", "o"] +[0.000, "o", " "] +[0.001, "o", "w"] +[0.000, "o", "i"] +[0.000, "o", "d"] +[0.003, "o", "\u001b[29D\u001b[32mw\u001b[32ma\u001b[32mt\u001b[32mc\u001b[32mh\u001b[39m\u001b[24Ce"] +[2.571, "o", "\r\r\n"] +[0.013, "o", "\u001b(B\u001b)0\u001b[?1049h\u001b[1;91r\u001b[m\u000f\u001b[4l\u001b[?25l"] +[0.050, "o", "\u001b[H\u001b[JNAME\u001b[1;19HDEVICE INSTANCE ROUTER-ID READY CONFIGURED OPERATIONAL ADJACENCIES AGE\r\u001b[2dleaf1-underlay leaf1 UNDERLAY 10.0.0.10\u001b[2;100H"] +[0.000, "o", "5s\r\u001b[3dleaf2-underlay leaf2 UNDERLAY 10.0.0.11 False True\u001b[3;72HFalse\u001b[3;100H5s\r\u001b[4d"] +[0.000, "o", "leaf3-underlay leaf3 UNDERLAY 10.0.0.12 False True\u001b[4;72HFalse\u001b[4;100H5s\r\u001b[5d"] +[0.000, "o", "spine1-underlay spine1 UNDERLAY 10.0.0.1 False True\u001b[5;72H"] +[0.000, "o", "False\u001b[5;100H5s\r\u001b[6d"] +[0.000, "o", "spine2-underlay spine2 UNDERLAY 10.0.0.2 False True\u001b[6;72HFalse\u001b[6;100H"] +[0.001, "o", "5s\r\u001b[7d"] +[1.054, "o", "\u001b[1;56H CONFIGURED OPERATIONAL ADJACENCIES AGE\u001b[2;51HUnknown Unknown\u001b[74GUnknown\u001b[2;100H 6s\u001b[3;59H True\u001b[72G False\u001b[3;100H "] +[0.000, "o", " 6s\u001b[4;59H True\u001b[72G False\u001b[4;100H 6s\u001b[5;59H"] +[0.000, "o", " True\u001b[72G False\u001b[5;100H 6s\u001b[6;59H"] +[0.000, "o", " True\u001b[72G False\u001b[6;100H 6s\r\u001b[7d"] +[1.053, "o", "\u001b[1;56H\u001b[2P\u001b[2;51HFalse True False \u001b[2;100H7s\u001b[K\u001b[3;59HTrue \u001b[72GFalse \u001b[3;100H7s\u001b[K\u001b[4;59H"] +[0.000, "o", "True \u001b[72GFalse \u001b[4;100H7s\u001b[K\u001b[5;59HTrue \u001b[72GFalse \u001b[5;100H7s\u001b[K\u001b[6;59H"] +[0.000, "o", "True \u001b[72GFalse \u001b[6;100H7s\u001b[K\r\u001b[7d"] +[1.051, "o", "\u001b[2;51HTrue \u001b[2;72HTrue \u001b[2;100H8\u001b[3d\b8\u001b[4d\b"] +[0.000, "o", "8\u001b[5d\b8\u001b[6d\b8\r\u001b[7d"] +[1.053, "o", "\u001b[2;86H2 Full\u001b[2;100H9\u001b[3d\b9\u001b[4d\b9\u001b[5d\b"] +[0.000, "o", "9\u001b[6d\b9\r\u001b[7d"] +[1.051, "o", "\u001b[2;100H10s\u001b[3;100H1"] +[0.000, "o", "0s\u001b[4;100H10s\u001b[5;100H10s\u001b[6;100H1"] +[0.000, "o", "0s\r\u001b[7d"] +[1.049, "o", "\u001b[2;101H1\u001b[3d\b1\u001b[4d\b1\u001b[5d\b"] +[0.000, "o", "1\u001b[6d\b1\r\u001b[7d"] +[1.050, "o", "\u001b[2;101H2\u001b[3d\b2\u001b[4d\b2\u001b[5d\b2\u001b[6d\b"] +[0.000, "o", "2\r\u001b[7d"] +[1.054, "o", "\u001b[2;101H3\u001b[3d\b3\u001b[4d\b3\u001b[5d\b3\u001b[6d\b"] +[0.000, "o", "3\r\u001b[7d"] +[1.052, "o", "\u001b[2;101H4\u001b[3d\b4\u001b[4d\b4\u001b[5d\b"] +[0.000, "o", "4\u001b[6d\b4\r\u001b[7d"] +[1.053, "o", "\u001b[2;101H5\u001b[3d\b5\u001b[4d\b5\u001b[5d\b5\u001b[6d\b5\r\u001b[7d"] +[1.051, "o", "\u001b[2;101H6\u001b[3d\b6\u001b[4d\b6\u001b[5d\b"] +[0.000, "o", "6\u001b[6d\b6\r\u001b[7d"] +[1.054, "o", "\u001b[2;101H7\u001b[3d\b7\u001b[4;51HTrue \u001b[4;72H"] +[0.000, "o", "True \u001b[4;86H2 Full\u001b[4;101H7\u001b[5d\b7\u001b[6;51HTrue \u001b[6;72HTrue \u001b[6;86H3 Full\u001b[6;101H7\r\u001b[7d"] +[1.052, "o", "\u001b[2;101H8\u001b[3;51HTrue \u001b[3;72HTrue \u001b[3;86H2 Full\u001b[3;101H8\u001b[4d\b8\u001b[5;51H"] +[0.000, "o", "True \u001b[5;72HTrue \u001b[5;86H3 Full\u001b[5;101H8\u001b[6d\b8\r\u001b[7d"] +[1.049, "o", "\u001b[2;101H9\u001b[3d\b9\u001b[4d\b9\u001b[5d\b"] +[0.000, "o", "9\u001b[6d\b9\r\u001b[7d"] +[1.046, "o", "\u001b[2;100H20\u001b[3d\b\b20\u001b[4d\b\b"] +[0.000, "o", "20\u001b[5d\b\b20\u001b[6d\b\b"] +[0.000, "o", "20\r\u001b[7d"] +[1.054, "o", "\u001b[2;101H1\u001b[3d\b1\u001b[4d\b1\u001b[5d\b1\u001b[6d\b"] +[0.000, "o", "1\r\u001b[7d"] +[1.053, "o", "\u001b[2;101H3\u001b[3d\b3\u001b[4d\b3\u001b[5d\b"] +[0.000, "o", "3\u001b[6d\b3\r\u001b[7d"] +[1.054, "o", "\u001b[2;101H4\u001b[3d\b4\u001b[4d\b4\u001b[5d\b"] +[0.000, "o", "4\u001b[6d\b4\r\u001b[7d"] +[1.053, "o", "\u001b[2;101H5\u001b[3d\b5\u001b[4d\b5\u001b[5d\b5\u001b[6d\b5\r\u001b[7d"] +[1.057, "o", "\u001b[2;101H6\u001b[3d\b6\u001b[4d\b6\u001b[5d\b6\u001b[6d\b"] +[0.000, "o", "6\r\u001b[7d"] +[1.059, "o", "\u001b[2;101H7\u001b[3d\b7\u001b[4d\b7\u001b[5d\b7\u001b[6d\b7\r\u001b[7d"] +[0.846, "o", "\u001b[91;1H\u001b[34h\u001b[?25h\u001b[?1049l\r\u001b[?1l\u001b>"] +[0.000, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[0.857, "m", ""] +[2.251, "o", "\u001b[H\u001b[J\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[1.264, "o", "s"] +[0.000, "o", "\bss"] +[0.001, "o", "h"] +[0.000, "o", " "] +[0.001, "o", "l"] +[0.000, "o", "e"] +[0.000, "o", "a"] +[0.001, "o", "f"] +[0.001, "o", "\u001b[8D\u001b[32ms\u001b[32ms\u001b[32mh\u001b[39m\u001b[5C1"] +[0.835, "o", "\r\r\n"] +[1.527, "o", "** WARNING: connection is not using a post-quantum key exchange algorithm.\r\r\n** This session may be vulnerable to \"store now, decrypt later\" attacks.\r\r\n** The server may need to be upgraded. See https://openssh.com/pq.html\r\r\n"] +[0.220, "o", "User Access Verification\r\n"] +[0.506, "o", "\r\n"] +[0.268, "o", "Bad terminal type: \"tmux-256color\". Will assume vt100.\r\n"] +[0.048, "o", "Cisco NX-OS Software\r\nCopyright (c) 2002-2025, Cisco Systems, Inc. All rights reserved.\r\nNexus 9000v software (\"Nexus 9000v Software\") and related documentation,\r\nfiles or other reference materials (\"Documentation\") are\r\nthe proprietary property and confidential information of Cisco\r\nSystems, Inc. (\"Cisco\") and are protected, without limitation,\r\npursuant to United States and International copyright and trademark\r\nlaws in the applicable jurisdiction which provide civil and criminal\r\npenalties for copying or distribution without Cisco's authorization.\r\n\r\nAny use or disclosure, in whole or in part, of the Nexus 9000v Software\r\nor Documentation to any third party for any purposes is expressly\r\nprohibited except as otherwise authorized by Cisco in writing.\r\nThe copyrights to certain works contained herein are owned by other\r\nthird parties and are used and distributed under license. Some parts\r\nof this software may be covered under the GNU Public License or the\r\nGNU Lesser General Public License. A copy of each su"] +[0.000, "o", "ch license is\r\navailable at\r\nhttp://www.gnu.org/licenses/gpl.html and\r\nhttp://www.gnu.org/licenses/lgpl.html\r\n***************************************************************************\r\n* Nexus 9000v is strictly limited to use for evaluation, demonstration *\r\n* and NX-OS education. Any use or disclosure, in whole or in part of *\r\n* the Nexus 9000v Software or Documentation to any third party for any *\r\n* purposes is expressly prohibited except as otherwise authorized by *\r\n* Cisco in writing. *\r\n***************************************************************************\r\n\rleaf1# "] +[1.769, "o", "show ip ospf neighbors"] +[1.390, "o", "\r\r\n"] +[0.047, "o", " OSPF Process ID UNDERLAY VRF default\r\n Total number of neighbors: 2\r\n Neighbor ID Pri State Up Time Address Interface\r\n 10.0.0.1 1 FULL/ - 00:01:20 10.0.0.1 Eth1/1 \r\n 10.0.0.2 1 FULL/ - 00:01:20 10.0.0.2 Eth1/2 \r\n\rleaf1# "] +[0.943, "m", ""] +[2.619, "o", "show ip route ospf"] +[1.270, "o", "\r\r\n"] +[0.012, "o", "IP Route Table for VRF \"default\"\r\n'*' denotes best ucast next-hop\r\n'**' denotes best mcast next-hop\r\n'[x/y]' denotes [preference/metric]\r\n'%' in via output denotes VRF \r\n\r\n10.0.0.1/32, ubest/mbest: 1/0\r\n *via 10.0.0.1, Eth1/1, [110/41], 00:01:19, ospf-UNDERLAY, intra\r\n10.0.0.2/32, ubest/mbest: 1/0\r\n *via 10.0.0.2, Eth1/2, [110/41], 00:01:19, ospf-UNDERLAY, intra\r\n10.0.0.11/32, ubest/mbest: 2/0\r\n *via 10.0.0.1, Eth1/1, [110/81], 00:01:19, ospf-UNDERLAY, intra\r\n *via 10.0.0.2, Eth1/2, [110/81], 00:01:19, ospf-UNDERLAY, intra\r\n10.0.0.12/32, ubest/mbest: 2/0\r\n *via 10.0.0.1, Eth1/1, [110/81], 00:01:19, ospf-UNDERLAY, intra\r\n *via 10.0.0.2, Eth1/2, [110/81], 00:01:19, ospf-UNDERLAY, intra\r\n10.0.0.100/32, ubest/mbest: 2/0\r\n *via 10.0.0.1, Eth1/1, [110/41], 00:01:19, ospf-UNDERLAY, intra\r\n *via 10.0.0.2, Eth1/2, [110/41], 00:01:19, ospf-UNDERLAY, intra\r\n10.0.1.11/32, ubest/mbest: 2/0\r\n *via 10.0.0.1, Eth1/1, [110/81], 00:01:19, ospf-UNDERLAY, intra\r\n"] +[0.032, "o", " *via 10.0.0.2, Eth1/2, [110/81], 00:01:19, ospf-UNDERLAY, intra\r\n10.0.1.12/32, ubest/mbest: 2/0\r\n *via 10.0.0.1, Eth1/1, [110/81], 00:01:19, ospf-UNDERLAY, intra\r\n *via 10.0.0.2, Eth1/2, [110/81], 00:01:19, ospf-UNDERLAY, intra\r\n\r\n\rleaf1# "] +[2.881, "m", ""] +[1.388, "o", "ping 10.0.0.12"] +[1.278, "o", "\r\r\n"] +[0.191, "o", "PING 10.0.0.12 (10.0.0.12): 56 data bytes\r\n"] +[0.042, "o", "64 bytes from 10.0.0.12: icmp_seq=0 ttl=253 time=10.852 ms\r\n64 bytes from 10.0.0.12: icmp_seq=1 ttl=253 time=8.183 ms\r\n64 bytes from 10.0.0.12: icmp_seq=2 ttl=253 time=7.207 ms\r\n64 bytes from 10.0.0.12: icmp_seq=3 ttl=253 time=6.293 ms\r\n64 bytes from 10.0.0.12: icmp_seq=4 ttl=253 time=7.235 ms\r\n\r\n--- 10.0.0.12 ping statistics ---\r\n5 packets transmitted, 5 packets received, 0.00% packet loss\r\nround-trip min/avg/max = 6.293/7.954/10.852 ms\r\n"] +[0.048, "o", "\rleaf1# "] +[1.788, "m", ""] +[1.435, "o", "e"] +[0.318, "o", "x"] +[0.293, "o", "i"] +[0.147, "o", "t"] +[1.113, "o", "\r\r\n"] +[0.051, "o", "Connection to clab-evpn-vxlan-fabric-leaf1 closed.\r\r\n"] +[0.000, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[0.353, "o", "\u001b[H\u001b[J\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[0.769, "o", "y"] +[0.001, "o", "\byq"] +[0.000, "o", " "] +[0.000, "o", "."] +[0.001, "o", "/"] +[0.000, "o", "k"] +[0.000, "o", "u"] +[0.001, "o", "b"] +[0.000, "o", "e"] +[0.000, "o", "r"] +[0.001, "o", "n"] +[0.000, "o", "e"] +[0.001, "o", "t"] +[0.000, "o", "e"] +[0.000, "o", "s"] +[0.001, "o", "/"] +[0.000, "o", "0"] +[0.000, "o", "8"] +[0.001, "o", "-"] +[0.000, "o", "p"] +[0.000, "o", "i"] +[0.001, "o", "m"] +[0.000, "o", "/"] +[0.000, "o", "l"] +[0.001, "o", "e"] +[0.000, "o", "a"] +[0.000, "o", "f"] +[0.001, "o", "1"] +[0.000, "o", "-"] +[0.000, "o", "p"] +[0.001, "o", "i"] +[0.000, "o", "m"] +[0.001, "o", "."] +[0.000, "o", "y"] +[0.000, "o", "a"] +[0.001, "o", "m"] +[0.005, "o", "\u001b[36D\u001b[32my\u001b[32mq\u001b[39m \u001b[4m.\u001b[4m/\u001b[4mk\u001b[4mu\u001b[4mb\u001b[4me\u001b[4mr\u001b[4mn\u001b[4me\u001b[4mt\u001b[4me\u001b[4ms\u001b[4m/\u001b[4m0\u001b[4m8\u001b[4m-\u001b[4mp\u001b[4mi\u001b[4mm\u001b[4m/\u001b[4ml\u001b[4me\u001b[4ma\u001b[4mf\u001b[4m1\u001b[4m-\u001b[4mp\u001b[4mi\u001b[4mm\u001b[4m.\u001b[4my\u001b[4ma\u001b[4mm\u001b[4ml\u001b[24m"] +[0.732, "o", "\r\r\n"] +[0.008, "o", "\u001b[36mapiVersion\u001b[0m:\u001b[32m networking.metal.ironcore.dev/v1alpha1\u001b[0m\r\n\u001b[32m\u001b[0m\u001b[36mkind\u001b[0m:\u001b[32m PIM\u001b[0m\r\n\u001b[32m\u001b[0m\u001b[36mmetadata\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m name\u001b[0m:\u001b[32m leaf1-pim\u001b[0m\r\n\u001b[32m\u001b[0m\u001b[36mspec\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m deviceRef\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m name\u001b[0m:\u001b[32m leaf1\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mrendezvousPoints\u001b[0m:\r\n -\u001b[36m address\u001b[0m:\u001b[32m 10.0.0.100\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mmulticastGroups\u001b[0m:\r\n -\u001b[32m 224.0.0.0/4\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36minterfaceRefs\u001b[0m:\r\n -\u001b[36m name\u001b[0m:\u001b[32m leaf1-lo0\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mmode\u001b[0m:\u001b[32m Sparse\u001b[0m\r\n\u001b[32m \u001b[0m-\u001b[36m name\u001b[0m:\u001b[32m leaf1-lo1\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mmode\u001b[0m:\u001b[32m Sparse\u001b[0m\r\n\u001b[32m \u001b[0m-\u001b[36m name\u001b[0m:\u001b[32m leaf1-eth1-1\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mmode\u001b[0m:\u001b[32m Sparse\u001b[0m\r\n\u001b[32m \u001b[0m-\u001b[36m name\u001b[0m:\u001b[32m leaf1-eth1-2\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mmode\u001b[0m:\u001b[32m Sparse\u001b[0m\r\n"] +[0.000, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[1.305, "m", ""] +[1.070, "o", "\u001b[H\u001b[J\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[1.022, "o", "y"] +[0.001, "o", "\byq"] +[0.000, "o", " "] +[0.000, "o", "."] +[0.001, "o", "/"] +[0.000, "o", "k"] +[0.000, "o", "u"] +[0.001, "o", "b"] +[0.000, "o", "e"] +[0.000, "o", "r"] +[0.001, "o", "n"] +[0.000, "o", "e"] +[0.000, "o", "t"] +[0.001, "o", "e"] +[0.000, "o", "s"] +[0.000, "o", "/"] +[0.001, "o", "0"] +[0.000, "o", "8"] +[0.000, "o", "-"] +[0.001, "o", "p"] +[0.000, "o", "i"] +[0.000, "o", "m"] +[0.001, "o", "/"] +[0.000, "o", "s"] +[0.000, "o", "p"] +[0.000, "o", "i"] +[0.001, "o", "n"] +[0.000, "o", "e"] +[0.000, "o", "1"] +[0.000, "o", "-"] +[0.001, "o", "p"] +[0.000, "o", "i"] +[0.000, "o", "m"] +[0.001, "o", "."] +[0.000, "o", "y"] +[0.000, "o", "a"] +[0.000, "o", "m"] +[0.001, "o", "\u001b[37D\u001b[32my\u001b[32mq\u001b[39m \u001b[4m.\u001b[4m/\u001b[4mk\u001b[4mu\u001b[4mb\u001b[4me\u001b[4mr\u001b[4mn\u001b[4me\u001b[4mt\u001b[4me\u001b[4ms\u001b[4m/\u001b[4m0\u001b[4m8\u001b[4m-\u001b[4mp\u001b[4mi\u001b[4mm\u001b[4m/\u001b[4ms\u001b[4mp\u001b[4mi\u001b[4mn\u001b[4me\u001b[4m1\u001b[4m-\u001b[4mp\u001b[4mi\u001b[4mm\u001b[4m.\u001b[4my\u001b[4ma\u001b[4mm\u001b[4ml\u001b[24m"] +[0.906, "o", "\r\r\n"] +[0.008, "o", "\u001b[36mapiVersion\u001b[0m:\u001b[32m networking.metal.ironcore.dev/v1alpha1\u001b[0m\r\n\u001b[32m\u001b[0m\u001b[36mkind\u001b[0m:\u001b[32m PIM\u001b[0m\r\n\u001b[32m\u001b[0m\u001b[36mmetadata\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m name\u001b[0m:\u001b[32m spine1-pim\u001b[0m\r\n\u001b[32m\u001b[0m\u001b[36mspec\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m deviceRef\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m name\u001b[0m:\u001b[32m spine1\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mrendezvousPoints\u001b[0m:\r\n -\u001b[36m address\u001b[0m:\u001b[32m 10.0.0.100\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mmulticastGroups\u001b[0m:\r\n -\u001b[32m 224.0.0.0/4\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36manycastAddresses\u001b[0m:\r\n -\u001b[32m 10.0.0.1\u001b[0m\r\n\u001b[32m \u001b[0m-\u001b[32m 10.0.0.2\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36minterfaceRefs\u001b[0m:\r\n -\u001b[36m name\u001b[0m:\u001b[32m spine1-lo0\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mmode\u001b[0m:\u001b[32m Sparse\u001b[0m\r\n\u001b[32m \u001b[0m-\u001b[36m name\u001b[0m:\u001b[32m spine1-lo1\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mmode\u001b[0m:\u001b[32m Sparse\u001b[0m\r\n\u001b[32m \u001b[0m-\u001b[36m name\u001b[0m:\u001b[32m spine1-eth1-1\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mmode\u001b[0m:\u001b[32m Sparse\u001b[0m\r\n\u001b[32m \u001b[0m-\u001b[36m name\u001b[0m:\u001b[32m spine1-eth1-2\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mmode\u001b[0m:\u001b[32m Sparse\u001b[0m\r\n\u001b[32m \u001b[0m-\u001b[36m name\u001b[0m:\u001b[32m spine1-eth"] +[0.000, "o", "1-3\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mmode\u001b[0m:\u001b[32m Sparse\u001b[0m\r\n"] +[0.000, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[1.278, "m", ""] +[1.059, "o", "k"] +[0.001, "o", "\bku"] +[0.000, "o", "b"] +[0.000, "o", "e"] +[0.001, "o", "c"] +[0.000, "o", "t"] +[0.000, "o", "l"] +[0.001, "o", " "] +[0.000, "o", "a"] +[0.000, "o", "p"] +[0.001, "o", "p"] +[0.000, "o", "l"] +[0.000, "o", "y"] +[0.001, "o", " "] +[0.000, "o", "-"] +[0.000, "o", "k"] +[0.000, "o", " "] +[0.001, "o", "."] +[0.000, "o", "/"] +[0.000, "o", "k"] +[0.001, "o", "u"] +[0.000, "o", "b"] +[0.000, "o", "e"] +[0.001, "o", "r"] +[0.000, "o", "n"] +[0.000, "o", "e"] +[0.001, "o", "t"] +[0.000, "o", "e"] +[0.000, "o", "s"] +[0.001, "o", "/"] +[0.000, "o", "0"] +[0.000, "o", "8"] +[0.001, "o", "-"] +[0.000, "o", "p"] +[0.000, "o", "i"] +[0.001, "o", "\u001b[35D\u001b[32mk\u001b[32mu\u001b[32mb\u001b[32me\u001b[32mc\u001b[32mt\u001b[32ml\u001b[39m\u001b[10C\u001b[4m.\u001b[4m/\u001b[4mk\u001b[4mu\u001b[4mb\u001b[4me\u001b[4mr\u001b[4mn\u001b[4me\u001b[4mt\u001b[4me\u001b[4ms\u001b[4m/\u001b[4m0\u001b[4m8\u001b[4m-\u001b[4mp\u001b[4mi\u001b[4mm\u001b[24m"] +[0.977, "o", "\r\r\n"] +[0.089, "o", "pim.networking.metal.ironcore.dev/leaf1-pim created\r\n"] +[0.005, "o", "pim.networking.metal.ironcore.dev/leaf2-pim created\r\n"] +[0.005, "o", "pim.networking.metal.ironcore.dev/leaf3-pim created\r\n"] +[0.006, "o", "pim.networking.metal.ironcore.dev/spine1-pim created\r\n"] +[0.008, "o", "pim.networking.metal.ironcore.dev/spine2-pim created\r\n"] +[0.000, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[1.480, "o", "w"] +[0.001, "o", "\bwa"] +[0.000, "o", "t"] +[0.000, "o", "c"] +[0.001, "o", "h"] +[0.000, "o", " "] +[0.001, "o", "k"] +[0.000, "o", "u"] +[0.000, "o", "b"] +[0.001, "o", "e"] +[0.000, "o", "c"] +[0.000, "o", "t"] +[0.001, "o", "l"] +[0.000, "o", " "] +[0.001, "o", "g"] +[0.000, "o", "e"] +[0.000, "o", "t"] +[0.001, "o", " "] +[0.000, "o", "p"] +[0.000, "o", "i"] +[0.001, "o", "m"] +[0.000, "o", " "] +[0.000, "o", "-"] +[0.001, "o", "o"] +[0.000, "o", " "] +[0.000, "o", "w"] +[0.000, "o", "i"] +[0.001, "o", "d"] +[0.002, "o", "\u001b[28D\u001b[32mw\u001b[32ma\u001b[32mt\u001b[32mc\u001b[32mh\u001b[39m\u001b[23Ce"] +[1.754, "o", "\r\r\n"] +[0.006, "o", "\u001b(B\u001b)0\u001b[?1049h\u001b[1;91r\u001b[m\u000f\u001b[4l\u001b[?25l"] +[0.053, "o", "\u001b[H\u001b[JNAME\u001b[1;14HDEVICE READY AGE\r\u001b[2dleaf1-pim leaf1 True\u001b[33G3s\r\u001b[3dleaf2-pim leaf2 True\u001b[33G"] +[0.001, "o", "3s\r\u001b[4dleaf3-pim leaf3 True\u001b[33G3s\r\u001b[5dspine1-pim spine1 True\u001b[33G3s\r\u001b[6d"] +[0.000, "o", "spine2-pim spine2 Unknown 3s\r\u001b[7d"] +[1.056, "o", "\u001b[2;33H4\u001b[3d\b4\u001b[4d\b4\u001b[5d\b4\u001b[6d\b4\r\u001b[7d"] +[1.049, "o", "\u001b[2;33H5\u001b[3d\b5\u001b[4d\b5\u001b[5d\b"] +[0.000, "o", "5\u001b[6d\b5\r\u001b[7d"] +[1.048, "o", "\u001b[2;33H6\u001b[3d\b6\u001b[4d\b6\u001b[5d\b6\u001b[6d\b"] +[0.000, "o", "6\r\u001b[7d"] +[1.052, "o", "\u001b[1;28H\u001b[2P\u001b[2;31H7s\u001b[K\u001b[3d\b\b7"] +[0.000, "o", "s\u001b[K\u001b[4d\b\b7s\u001b[K\u001b[5d\b\b7s\u001b[K\u001b[6;23HTrue 7"] +[0.000, "o", "s\u001b[K\r\u001b[7d"] +[1.051, "o", "\u001b[2;31H8\u001b[3d\b8\u001b[4d\b8\u001b[5d\b"] +[0.000, "o", "8\u001b[6d\b8\r\u001b[7d"] +[1.056, "o", "\u001b[2;31H9\u001b[3d\b9\u001b[4d\b9\u001b[5d\b9\u001b[6d\b"] +[0.000, "o", "9\r\u001b[7d"] +[1.050, "o", "\u001b[2;31H10s\u001b[3;31H10s\u001b[4;31H10s\u001b[5;31H1"] +[0.000, "o", "0s\u001b[6;31H10s\r\u001b[7d"] +[0.999, "o", "\u001b[91;1H\u001b[34h\u001b[?25h\u001b[?1049l\r\u001b[?1l\u001b>"] +[0.000, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[0.693, "m", ""] +[0.662, "o", "\u001b[H\u001b[J\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[1.425, "o", "y"] +[0.000, "o", "\byq"] +[0.000, "o", " "] +[0.001, "o", "."] +[0.000, "o", "/"] +[0.000, "o", "k"] +[0.001, "o", "u"] +[0.000, "o", "b"] +[0.000, "o", "e"] +[0.001, "o", "r"] +[0.000, "o", "n"] +[0.000, "o", "e"] +[0.000, "o", "t"] +[0.001, "o", "e"] +[0.000, "o", "s"] +[0.001, "o", "/"] +[0.000, "o", "0"] +[0.000, "o", "9"] +[0.000, "o", "-"] +[0.001, "o", "b"] +[0.000, "o", "g"] +[0.000, "o", "p"] +[0.001, "o", "-"] +[0.000, "o", "r"] +[0.001, "o", "o"] +[0.000, "o", "u"] +[0.000, "o", "t"] +[0.001, "o", "e"] +[0.000, "o", "r"] +[0.000, "o", "/"] +[0.001, "o", "l"] +[0.000, "o", "e"] +[0.000, "o", "a"] +[0.001, "o", "f"] +[0.000, "o", "1"] +[0.000, "o", "-"] +[0.001, "o", "b"] +[0.000, "o", "g"] +[0.000, "o", "p"] +[0.000, "o", "."] +[0.001, "o", "y"] +[0.000, "o", "a"] +[0.000, "o", "m"] +[0.005, "o", "\u001b[43D\u001b[32my\u001b[32mq\u001b[39m \u001b[4m.\u001b[4m/\u001b[4mk\u001b[4mu\u001b[4mb\u001b[4me\u001b[4mr\u001b[4mn\u001b[4me\u001b[4mt\u001b[4me\u001b[4ms\u001b[4m/\u001b[4m0\u001b[4m9\u001b[4m-\u001b[4mb\u001b[4mg\u001b[4mp\u001b[4m-\u001b[4mr\u001b[4mo\u001b[4mu\u001b[4mt\u001b[4me\u001b[4mr\u001b[4m/\u001b[4ml\u001b[4me\u001b[4ma\u001b[4mf\u001b[4m1\u001b[4m-\u001b[4mb\u001b[4mg\u001b[4mp\u001b[4m.\u001b[4my\u001b[4ma\u001b[4mm\u001b[4ml\u001b[24m"] +[2.289, "o", "\r\r\n"] +[0.008, "o", "\u001b[36mapiVersion\u001b[0m:\u001b[32m networking.metal.ironcore.dev/v1alpha1\u001b[0m\r\n\u001b[32m\u001b[0m\u001b[36mkind\u001b[0m:\u001b[32m BGP\u001b[0m\r\n\u001b[32m\u001b[0m\u001b[36mmetadata\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m name\u001b[0m:\u001b[32m leaf1-bgp\u001b[0m\r\n\u001b[32m\u001b[0m\u001b[36mspec\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m deviceRef\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m name\u001b[0m:\u001b[32m leaf1\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36masNumber\u001b[0m:\u001b[95m 65000\u001b[0m\r\n\u001b[95m \u001b[0m\u001b[36mrouterId\u001b[0m:\u001b[32m 10.0.0.10\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36maddressFamilies\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m ipv4Unicast\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m enabled\u001b[0m:\u001b[95m true\u001b[0m\r\n"] +[0.000, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[3.203, "o", "k"] +[0.000, "o", "\bku"] +[0.000, "o", "b"] +[0.001, "o", "e"] +[0.000, "o", "c"] +[0.001, "o", "t"] +[0.000, "o", "l"] +[0.000, "o", " "] +[0.001, "o", "a"] +[0.000, "o", "p"] +[0.000, "o", "p"] +[0.001, "o", "l"] +[0.000, "o", "y"] +[0.000, "o", " "] +[0.001, "o", "-"] +[0.000, "o", "k"] +[0.000, "o", " "] +[0.001, "o", "."] +[0.000, "o", "/"] +[0.000, "o", "k"] +[0.001, "o", "u"] +[0.000, "o", "b"] +[0.001, "o", "e"] +[0.000, "o", "r"] +[0.000, "o", "n"] +[0.000, "o", "e"] +[0.001, "o", "t"] +[0.000, "o", "e"] +[0.000, "o", "s"] +[0.001, "o", "/"] +[0.000, "o", "0"] +[0.000, "o", "9"] +[0.001, "o", "-"] +[0.000, "o", "b"] +[0.000, "o", "g"] +[0.001, "o", "p"] +[0.000, "o", "-"] +[0.001, "o", "r"] +[0.000, "o", "o"] +[0.000, "o", "u"] +[0.001, "o", "t"] +[0.000, "o", "e"] +[0.002, "o", "\u001b[42D\u001b[32mk\u001b[32mu\u001b[32mb\u001b[32me\u001b[32mc\u001b[32mt\u001b[32ml\u001b[39m\u001b[10C\u001b[4m.\u001b[4m/\u001b[4mk\u001b[4mu\u001b[4mb\u001b[4me\u001b[4mr\u001b[4mn\u001b[4me\u001b[4mt\u001b[4me\u001b[4ms\u001b[4m/\u001b[4m0\u001b[4m9\u001b[4m-\u001b[4mb\u001b[4mg\u001b[4mp\u001b[4m-\u001b[4mr\u001b[4mo\u001b[4mu\u001b[4mt\u001b[4me\u001b[4mr\u001b[24m"] +[1.388, "o", "\r\r\n"] +[0.083, "o", "bgp.networking.metal.ironcore.dev/leaf1-bgp created\r\n"] +[0.004, "o", "bgp.networking.metal.ironcore.dev/leaf2-bgp created\r\n"] +[0.005, "o", "bgp.networking.metal.ironcore.dev/leaf3-bgp created\r\n"] +[0.005, "o", "bgp.networking.metal.ironcore.dev/spine1-bgp created\r\n"] +[0.006, "o", "bgp.networking.metal.ironcore.dev/spine2-bgp created\r\n"] +[0.001, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[2.374, "o", "w"] +[0.001, "o", "\bwa"] +[0.000, "o", "t"] +[0.000, "o", "c"] +[0.001, "o", "h"] +[0.000, "o", " "] +[0.001, "o", "k"] +[0.000, "o", "u"] +[0.000, "o", "b"] +[0.001, "o", "e"] +[0.000, "o", "c"] +[0.000, "o", "t"] +[0.001, "o", "l"] +[0.000, "o", " "] +[0.000, "o", "g"] +[0.001, "o", "e"] +[0.000, "o", "t"] +[0.000, "o", " "] +[0.000, "o", "b"] +[0.001, "o", "g"] +[0.000, "o", "p"] +[0.000, "o", " "] +[0.000, "o", "-"] +[0.001, "o", "o"] +[0.000, "o", " "] +[0.000, "o", "w"] +[0.000, "o", "i"] +[0.001, "o", "d"] +[0.002, "o", "\u001b[28D\u001b[32mw\u001b[32ma\u001b[32mt\u001b[32mc\u001b[32mh\u001b[39m\u001b[23Ce"] +[2.194, "o", "\r\r\n"] +[0.004, "o", "\u001b(B\u001b)0\u001b[?1049h\u001b[1;91r\u001b[m\u000f\u001b[4l\u001b[?25l"] +[0.047, "o", "\u001b[H\u001b[JNAME\u001b[1;14HDEVICE READY AGE\r\u001b[2d"] +[0.000, "o", "leaf1-bgp leaf1 True 4s\r\u001b[3dleaf2-bgp leaf2\u001b[3;31H4s\r\u001b[4d"] +[0.000, "o", "leaf3-bgp leaf3 True 4s\r\u001b[5d"] +[0.000, "o", "spine1-bgp spine1 True 4s\r\u001b[6d"] +[0.000, "o", "spine2-bgp spine2 True 4s\r\u001b[7d"] +[1.050, "o", "\u001b[1;28H AGE\u001b[2;31H 5s\u001b[3;23HUnknown 5s\u001b[4;31H 5s\u001b[5;31H"] +[0.000, "o", " 5s\u001b[6;31H 5s\r\u001b[7d"] +[1.050, "o", "\u001b[2;33H6\u001b[3d\b6\u001b[4d\b6\u001b[5d\b6\u001b[6d\b6\r\u001b[7d"] +[1.053, "o", "\u001b[2;33H7\u001b[3d\b7\u001b[4d\b7\u001b[5d\b"] +[0.000, "o", "7\u001b[6d\b7\r\u001b[7d"] +[1.049, "o", "\u001b[1;28H\u001b[2P\u001b[2;31H8s\u001b[K\u001b[3;23HTrue 8s\u001b[K\u001b[4d\b\b8"] +[0.000, "o", "s\u001b[K\u001b[5d\b\b8s\u001b[K\u001b[6d\b\b8"] +[0.000, "o", "s\u001b[K\r\u001b[7d"] +[1.051, "o", "\u001b[2;31H9\u001b[3d\b9\u001b[4d\b9\u001b[5d\b"] +[0.000, "o", "9\u001b[6d\b9\r\u001b[7d"] +[1.053, "o", "\u001b[2;31H11s\u001b[3;31H11s\u001b[4;31H11s\u001b[5;31H1"] +[0.000, "o", "1s\u001b[6;31H11s\r\u001b[7d"] +[0.951, "o", "\u001b[91;1H\u001b[34h\u001b[?25h\u001b[?1049l\r\u001b[?1l\u001b>"] +[0.000, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[0.597, "m", ""] +[0.360, "o", "\u001b[H\u001b[J\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[1.258, "o", "y"] +[0.000, "o", "\byq"] +[0.001, "o", " "] +[0.000, "o", "."] +[0.000, "o", "/"] +[0.001, "o", "k"] +[0.000, "o", "u"] +[0.001, "o", "b"] +[0.000, "o", "e"] +[0.000, "o", "r"] +[0.001, "o", "n"] +[0.000, "o", "e"] +[0.001, "o", "t"] +[0.000, "o", "e"] +[0.000, "o", "s"] +[0.001, "o", "/"] +[0.000, "o", "1"] +[0.001, "o", "0"] +[0.000, "o", "-"] +[0.000, "o", "b"] +[0.001, "o", "g"] +[0.000, "o", "p"] +[0.000, "o", "-"] +[0.001, "o", "p"] +[0.000, "o", "e"] +[0.000, "o", "e"] +[0.001, "o", "r"] +[0.000, "o", "s"] +[0.000, "o", "/"] +[0.001, "o", "l"] +[0.000, "o", "e"] +[0.000, "o", "a"] +[0.001, "o", "f"] +[0.000, "o", "1"] +[0.000, "o", "-"] +[0.001, "o", "b"] +[0.000, "o", "g"] +[0.000, "o", "p"] +[0.001, "o", "-"] +[0.000, "o", "p"] +[0.000, "o", "e"] +[0.001, "o", "e"] +[0.000, "o", "r"] +[0.000, "o", "s"] +[0.001, "o", "."] +[0.000, "o", "y"] +[0.000, "o", "a"] +[0.001, "o", "m"] +[0.005, "o", "\u001b[48D\u001b[32my\u001b[32mq\u001b[39m \u001b[4m.\u001b[4m/\u001b[4mk\u001b[4mu\u001b[4mb\u001b[4me\u001b[4mr\u001b[4mn\u001b[4me\u001b[4mt\u001b[4me\u001b[4ms\u001b[4m/\u001b[4m1\u001b[4m0\u001b[4m-\u001b[4mb\u001b[4mg\u001b[4mp\u001b[4m-\u001b[4mp\u001b[4me\u001b[4me\u001b[4mr\u001b[4ms\u001b[4m/\u001b[4ml\u001b[4me\u001b[4ma\u001b[4mf\u001b[4m1\u001b[4m-\u001b[4mb\u001b[4mg\u001b[4mp\u001b[4m-\u001b[4mp\u001b[4me\u001b[4me\u001b[4mr\u001b[4ms\u001b[4m.\u001b[4my\u001b[4ma\u001b[4mm\u001b[4ml\u001b[24m"] +[0.906, "o", "\r\r\n"] +[0.007, "o", "\u001b[36mapiVersion\u001b[0m:\u001b[32m networking.metal.ironcore.dev/v1alpha1\u001b[0m\r\n\u001b[32m\u001b[0m\u001b[36mkind\u001b[0m:\u001b[32m BGPPeer\u001b[0m\r\n\u001b[32m\u001b[0m\u001b[36mmetadata\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m name\u001b[0m:\u001b[32m leaf1-spine1\u001b[0m\r\n\u001b[32m\u001b[0m\u001b[36mspec\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m deviceRef\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m name\u001b[0m:\u001b[32m leaf1\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36maddress\u001b[0m:\u001b[32m 10.0.0.1\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36masNumber\u001b[0m:\u001b[95m 65000\u001b[0m\r\n\u001b[95m \u001b[0m\u001b[36mlocalAddress\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m interfaceRef\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m name\u001b[0m:\u001b[32m leaf1-lo0\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36maddressFamilies\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m l2vpnEvpn\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m enabled\u001b[0m:\u001b[95m true\u001b[0m\r\n\u001b[95m \u001b[0m\u001b[36msendCommunity\u001b[0m:\u001b[32m Both\u001b[0m\r\n"] +[0.000, "o", "---\r\n\u001b[36mapiVersion\u001b[0m:\u001b[32m networking.metal.ironcore.dev/v1alpha1\u001b[0m\r\n\u001b[32m\u001b[0m\u001b[36mkind\u001b[0m:\u001b[32m BGPPeer\u001b[0m\r\n\u001b[32m\u001b[0m\u001b[36mmetadata\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m name\u001b[0m:\u001b[32m leaf1-spine2\u001b[0m\r\n\u001b[32m\u001b[0m\u001b[36mspec\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m deviceRef\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m name\u001b[0m:\u001b[32m leaf1\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36maddress\u001b[0m:\u001b[32m 10.0.0.2\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36masNumber\u001b[0m:\u001b[95m 65000\u001b[0m\r\n\u001b[95m \u001b[0m\u001b[36mlocalAddress\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m interfaceRef\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m name\u001b[0m:\u001b[32m leaf1-lo0\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36maddressFamilies\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m l2vpnEvpn\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m enabled\u001b[0m:\u001b[95m true\u001b[0m\r\n\u001b[95m \u001b[0m\u001b[36msendCommunity\u001b[0m:\u001b[32m Both\u001b[0m\r\n"] +[0.000, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[2.877, "m", ""] +[0.943, "o", "k"] +[0.001, "o", "\bku"] +[0.000, "o", "b"] +[0.000, "o", "e"] +[0.001, "o", "c"] +[0.000, "o", "t"] +[0.001, "o", "l"] +[0.000, "o", " "] +[0.000, "o", "a"] +[0.001, "o", "p"] +[0.000, "o", "p"] +[0.001, "o", "l"] +[0.000, "o", "y"] +[0.000, "o", " "] +[0.001, "o", "-"] +[0.000, "o", "k"] +[0.001, "o", " "] +[0.000, "o", "."] +[0.001, "o", "/"] +[0.000, "o", "k"] +[0.000, "o", "u"] +[0.001, "o", "b"] +[0.000, "o", "e"] +[0.000, "o", "r"] +[0.001, "o", "n"] +[0.000, "o", "e"] +[0.000, "o", "t"] +[0.001, "o", "e"] +[0.000, "o", "s"] +[0.000, "o", "/"] +[0.001, "o", "1"] +[0.000, "o", "0"] +[0.000, "o", "-"] +[0.001, "o", "b"] +[0.000, "o", "g"] +[0.000, "o", "p"] +[0.001, "o", "-"] +[0.000, "o", "p"] +[0.000, "o", "e"] +[0.001, "o", "e"] +[0.000, "o", "r"] +[0.002, "o", "\u001b[41D\u001b[32mk\u001b[32mu\u001b[32mb\u001b[32me\u001b[32mc\u001b[32mt\u001b[32ml\u001b[39m\u001b[10C\u001b[4m.\u001b[4m/\u001b[4mk\u001b[4mu\u001b[4mb\u001b[4me\u001b[4mr\u001b[4mn\u001b[4me\u001b[4mt\u001b[4me\u001b[4ms\u001b[4m/\u001b[4m1\u001b[4m0\u001b[4m-\u001b[4mb\u001b[4mg\u001b[4mp\u001b[4m-\u001b[4mp\u001b[4me\u001b[4me\u001b[4mr\u001b[4ms\u001b[24m"] +[1.075, "o", "\r\r\n"] +[0.078, "o", "bgppeer.networking.metal.ironcore.dev/leaf1-spine1 created\r\n"] +[0.005, "o", "bgppeer.networking.metal.ironcore.dev/leaf1-spine2 created\r\n"] +[0.005, "o", "bgppeer.networking.metal.ironcore.dev/leaf2-spine1 created\r\n"] +[0.006, "o", "bgppeer.networking.metal.ironcore.dev/leaf2-spine2 created\r\n"] +[0.006, "o", "bgppeer.networking.metal.ironcore.dev/leaf3-spine1 created\r\n"] +[0.006, "o", "bgppeer.networking.metal.ironcore.dev/leaf3-spine2 created\r\n"] +[0.004, "o", "bgppeer.networking.metal.ironcore.dev/spine1-leaf1 created\r\n"] +[0.007, "o", "bgppeer.networking.metal.ironcore.dev/spine1-leaf2 created\r\n"] +[0.005, "o", "bgppeer.networking.metal.ironcore.dev/spine1-leaf3 created\r\n"] +[0.005, "o", "bgppeer.networking.metal.ironcore.dev/spine2-leaf1 created\r\n"] +[0.005, "o", "bgppeer.networking.metal.ironcore.dev/spine2-leaf2 created\r\n"] +[0.004, "o", "bgppeer.networking.metal.ironcore.dev/spine2-leaf3 created\r\n"] +[0.000, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[1.779, "o", "w"] +[0.001, "o", "\bwa"] +[0.000, "o", "t"] +[0.000, "o", "c"] +[0.001, "o", "h"] +[0.000, "o", " "] +[0.000, "o", "k"] +[0.001, "o", "u"] +[0.000, "o", "b"] +[0.000, "o", "e"] +[0.001, "o", "c"] +[0.000, "o", "t"] +[0.001, "o", "l"] +[0.000, "o", " "] +[0.001, "o", "g"] +[0.000, "o", "e"] +[0.000, "o", "t"] +[0.001, "o", " "] +[0.000, "o", "b"] +[0.000, "o", "g"] +[0.001, "o", "p"] +[0.000, "o", "p"] +[0.000, "o", "e"] +[0.000, "o", "e"] +[0.001, "o", "r"] +[0.000, "o", " "] +[0.000, "o", "-"] +[0.001, "o", "o"] +[0.000, "o", " "] +[0.000, "o", "w"] +[0.001, "o", "i"] +[0.000, "o", "d"] +[0.002, "o", "\u001b[32D\u001b[32mw\u001b[32ma\u001b[32mt\u001b[32mc\u001b[32mh\u001b[39m\u001b[27Ce"] +[1.870, "o", "\r\r\n"] +[0.004, "o", "\u001b(B\u001b)0\u001b[?1049h\u001b[1;91r\u001b[m\u000f\u001b[4l\u001b[?25l"] +[0.051, "o", "\u001b[H\u001b[JNAME\u001b[1;16H"] +[0.000, "o", "DEVICE READY CONFIGURED OPERATIONAL SESSION STATE LAST ESTABLISHED ADVERTISED PREFIXES AGE\r\u001b[2dleaf1-spine1 leaf1\u001b[2;119H4s\r\u001b[3d"] +[0.000, "o", "leaf1-spine2 leaf1\u001b[3;119H4s\r\u001b[4dleaf2-spine1 leaf2 False True\u001b[4;48HFalse\u001b[4;62HIdle\u001b[4;78H33s\u001b[4;97H0 (L2vpnEvpn)\u001b[4;119H4s\r\u001b[5dleaf2-spine2 leaf2\u001b[5;119H"] +[0.000, "o", "4s\r\u001b[6dleaf3-spine1 leaf3\u001b[6;119H4s\r\u001b[7dleaf3-spine2 leaf3\u001b[7;119H4s\r\u001b[8dspine1-leaf1 spine1 Unknown\u001b[8;119H"] +[0.000, "o", "4s\r\u001b[9dspine1-leaf2 spine1 False True\u001b[9;48HFalse\u001b[9;62HIdle\u001b[9;78H36s\u001b[9;97H0 (L2vpnEvpn)\u001b[9;119H4s\r\u001b[10dspine1-leaf3 spine1\u001b[10;119H4s\r\u001b[11dspine2-leaf1 spine2\u001b[11;119H4s\r\u001b[12dspine2-leaf2 spine2\u001b[12;119H"] +[0.000, "o", "4s\r\u001b[13dspine2-leaf3 spine2\u001b[13;119H"] +[0.000, "o", "4s\r\u001b[14d"] +[1.051, "o", "\u001b[2;119H5\u001b[3d\b5\u001b[4;79H4\u001b[4;119H5\u001b[5d\b"] +[0.000, "o", "5\u001b[6d\b"] +[0.000, "o", "5\u001b[7d\b5\u001b[8d\b"] +[0.000, "o", "5\u001b[9;79H7\u001b[9;119H"] +[0.000, "o", "5\u001b[10d\b5\u001b[11d\b"] +[0.000, "o", "5\u001b[12d\b5\u001b[13d\b5\r\u001b[14d"] +[1.053, "o", "\u001b[2;25HUnknown Unknown\u001b[48GUnknown\u001b[2;119H6\u001b[3d\b6\u001b[4;79H5\u001b[4;119H"] +[0.000, "o", "6\u001b[5;25HUnknown Unknown\u001b[48GUnknown\u001b[5;119H6\u001b[6d\b"] +[0.000, "o", "6\u001b[7d\b"] +[0.000, "o", "6\u001b[8d\b6\u001b[9;79H8\u001b[9;119H6\u001b[10d\b6\u001b[11d\b6\u001b[12d\b"] +[0.000, "o", "6\u001b[13d\b"] +[0.000, "o", "6\r\u001b[14d"] +[1.053, "o", "\u001b[2;25HFalse True \u001b[48GFalse \u001b[62GIdle\u001b[2;78H33s\u001b[2;97H0 (L2vpnEvpn)\u001b[2;119H7\u001b[3d\b"] +[0.000, "o", "7\u001b[4;79H6\u001b[4;119H7\u001b[5;25H"] +[0.000, "o", "False True \u001b[48G"] +[0.000, "o", "False \u001b[62G"] +[0.000, "o", "Idle\u001b[5;78H31s\u001b[5;97H0 (L2vpnEvpn)\u001b[5;119H"] +[0.000, "o", "7\u001b[6d\b7\u001b[7d\b7\u001b[8d\b7\u001b[9;79H9\u001b[9;119H7\u001b[10d\b7\u001b[11d\b7\u001b[12d\b7\u001b[13d\b"] +[0.000, "o", "7\r\u001b[14d"] +[1.055, "o", "\u001b[2;79H4\u001b[2;119H8\u001b[3d\b8\u001b[4;79H7\u001b[4;119H8\u001b[5;79H2\u001b[5;119H"] +[0.000, "o", "8\u001b[6d\b8\u001b[7d\b8\u001b[8d\b"] +[0.000, "o", "8\u001b[9;78H"] +[0.000, "o", "40\u001b[9;119H"] +[0.000, "o", "8\u001b[10d\b"] +[0.000, "o", "8\u001b[11d\b8\u001b[12d\b8\u001b[13d\b"] +[0.000, "o", "8\r\u001b[14d"] +[1.053, "o", "\u001b[2;79H5\u001b[2;119H9\u001b[3d\b9\u001b[4;79H8\u001b[4;119H9\u001b[5;79H3\u001b[5;119H"] +[0.000, "o", "9\u001b[6d\b9\u001b[7d\b"] +[0.000, "o", "9\u001b[8d\b"] +[0.000, "o", "9\u001b[9;79H1\u001b[9;119H"] +[0.000, "o", "9\u001b[10d\b9\u001b[11d\b9\u001b[12d\b9\u001b[13d\b"] +[0.000, "o", "9\r\u001b[14d"] +[1.053, "o", "\u001b[2;79H6\u001b[2;119H10s\u001b[3;119H10s\u001b[4;79H9\u001b[4;119H1"] +[0.000, "o", "0s\u001b[5;79H4\u001b[5;119H10s\u001b[6;25HUnknown Unknown\u001b[48GUnknown\u001b[6;119H10s\u001b[7;119H1"] +[0.000, "o", "0s\u001b[8;119H10s\u001b[9;79H2\u001b[9;119H10s\u001b[10;119H10s\u001b[11;119H10s\u001b[12;119H10s\u001b[13;25HUnknown Unknown\u001b[48GUnknown\u001b[13;119H1"] +[0.000, "o", "0s\r\u001b[14d"] +[1.053, "o", "\u001b[2;79H8\u001b[2;120H2\u001b[3d\b2\u001b[4;78H41\u001b[4;120H2\u001b[5;79H6\u001b[5;120H2\u001b[6d\b"] +[0.000, "o", "2\u001b[7d\b2\u001b[8d\b2\u001b[9;79H4\u001b[9;120H"] +[0.000, "o", "2\u001b[10d\b"] +[0.000, "o", "2\u001b[11d\b"] +[0.000, "o", "2\u001b[12d\b2\u001b[13d\b2\r\u001b[14d"] +[1.055, "o", "\u001b[2;79H9\u001b[2;120H3\u001b[3d\b3\u001b[4;79H2\u001b[4;120H3\u001b[5;79H7\u001b[5;120H3\u001b[6;25HFalse True \u001b[48G"] +[0.000, "o", "False \u001b[62GIdle\u001b[6;78H35s\u001b[6;97H0 (L2vpnEvpn)\u001b[6;120H"] +[0.000, "o", "3\u001b[7d\b3\u001b[8d\b"] +[0.000, "o", "3\u001b[9;79H"] +[0.000, "o", "5\u001b[9;120H"] +[0.000, "o", "3\u001b[10d\b3\u001b[11d\b3\u001b[12d\b3\u001b[13;25HFalse True \u001b[48G"] +[0.000, "o", "False \u001b[62G"] +[0.000, "o", "Idle\u001b[13;78H"] +[0.000, "o", "34s\u001b[13;97H"] +[0.000, "o", "0 (L2vpnEvpn)\u001b[13;120H"] +[0.000, "o", "3\r\u001b[14d"] +[1.052, "o", "\u001b[2;78H40\u001b[2;120H4\u001b[3d\b4\u001b[4;79H3\u001b[4;120H4\u001b[5;79H8\u001b[5;120H4\u001b[6;79H6\u001b[6;120H"] +[0.000, "o", "4\u001b[7d\b4\u001b[8d\b4\u001b[9;79H6\u001b[9;120H4\u001b[10d\b4\u001b[11d\b"] +[0.000, "o", "4\u001b[12d\b4\u001b[13;79H5\u001b[13;120H4\r\u001b[14d"] +[1.052, "o", "\u001b[2;79H1\u001b[2;120H5\u001b[3d\b5\u001b[4;79H4\u001b[4;120H5\u001b[5;79H9\u001b[5;120H5\u001b[6;79H7\u001b[6;120H"] +[0.000, "o", "5\u001b[7d\b5\u001b[8d\b5\u001b[9;79H7\u001b[9;120H5\u001b[10d\b"] +[0.000, "o", "5\u001b[11d\b"] +[0.000, "o", "5\u001b[12d\b5\u001b[13;79H6\u001b[13;120H"] +[0.000, "o", "5\r\u001b[14d"] +[1.050, "o", "\u001b[2;79H2\u001b[2;120H6\u001b[3;25HUnknown Unknown\u001b[48GUnknown\u001b[3;120H6\u001b[4;79H5\u001b[4;120H6\u001b[5;78H40\u001b[5;120H6\u001b[6;79H8\u001b[6;120H6\u001b[7d\b6\u001b[8d\b6\u001b[9;79H8\u001b[9;120H"] +[0.000, "o", "6\u001b[10d\b6\u001b[11d\b6\u001b[12d\b6\u001b[13;79H7\u001b[13;120H6\r\u001b[14d"] +[1.052, "o", "\u001b[2;79H3\u001b[2;120H7\u001b[3d\b7\u001b[4;79H6\u001b[4;120H7\u001b[5;79H1\u001b[5;120H7\u001b[6;79H9\u001b[6;120H"] +[0.000, "o", "7\u001b[7d\b"] +[0.000, "o", "7\u001b[8d\b"] +[0.000, "o", "7\u001b[9;79H"] +[0.000, "o", "9\u001b[9;120H"] +[0.000, "o", "7\u001b[10d\b7\u001b[11d\b7\u001b[12d\b7\u001b[13;79H8\u001b[13;120H7\r\u001b[14d"] +[1.053, "o", "\u001b[2;79H4\u001b[2;120H8\u001b[3;25HFalse True \u001b[48GFalse \u001b[62GIdle\u001b[3;78H33s\u001b[3;97H0 (L2vpnEvpn)\u001b[3;120H8\u001b[4;79H7\u001b[4;120H8\u001b[5;79H"] +[0.000, "o", "2\u001b[5;120H8\u001b[6;78H40\u001b[6;120H8\u001b[7d\b"] +[0.000, "o", "8\u001b[8d\b8\u001b[9;25HTrue \u001b[9;48HTrue \u001b[9;62HEstablished\u001b[79G4\u001b[9;120H8\u001b[10d\b"] +[0.000, "o", "8\u001b[11d\b"] +[0.000, "o", "8\u001b[12d\b8\u001b[13;79H9\u001b[13;120H8\r\u001b[14d"] +[1.053, "o", "\u001b[2;79H5\u001b[2;120H9\u001b[3;79H4\u001b[3;120H9\u001b[4;79H8\u001b[4;120H9\u001b[5;79H3\u001b[5;120H9\u001b[6;79H1\u001b[6;120H9\u001b[7d\b"] +[0.000, "o", "9\u001b[8d\b9\u001b[9;79H5\u001b[9;120H9\u001b[10d\b9\u001b[11d\b9\u001b[12d\b9\u001b[13;78H40\u001b[13;120H9\r\u001b[14d"] +[1.053, "o", "\u001b[2;79H6\u001b[2;119H20\u001b[3;79H5\u001b[3;119H20\u001b[4;79H"] +[0.000, "o", "9\u001b[4;119H20\u001b[5;79H4\u001b[5;119H20\u001b[6;79H2\u001b[6;119H20\u001b[7d\b\b"] +[0.000, "o", "20\u001b[8d\b\b20\u001b[9;79H6\u001b[9;119H"] +[0.000, "o", "20\u001b[10d\b\b20\u001b[11d\b\b20\u001b[12d\b\b20\u001b[13;79H1\u001b[13;119H"] +[0.000, "o", "20\r\u001b[14d"] +[1.051, "o", "\u001b[2;79H7\u001b[2;120H1\u001b[3;79H6\u001b[3;120H1\u001b[4;78H50\u001b[4;120H1\u001b[5;79H5\u001b[5;120H1\u001b[6;79H3\u001b[6;120H1\u001b[7d\b"] +[0.000, "o", "1\u001b[8d\b1\u001b[9;79H7\u001b[9;120H1\u001b[10d\b1\u001b[11d\b"] +[0.000, "o", "1\u001b[12d\b1\u001b[13;79H2\u001b[13;120H1\r\u001b[14d"] +[1.054, "o", "\u001b[2;79H8\u001b[2;120H2\u001b[3;79H7\u001b[3;120H2\u001b[4;79H1\u001b[4;120H2\u001b[5;79H6\u001b[5;120H2\u001b[6;79H4\u001b[6;120H2\u001b[7d\b2\u001b[8d\b2\u001b[9;79H8\u001b[9;120H"] +[0.000, "o", "2\u001b[10d\b2\u001b[11d\b2\u001b[12d\b2\u001b[13;79H3\u001b[13;120H"] +[0.000, "o", "2\r\u001b[14d"] +[1.055, "o", "\u001b[2;79H9\u001b[2;120H3\u001b[3;79H8\u001b[3;120H3\u001b[4;25HTrue \u001b[4;48HTrue \u001b[4;62HEstablished 47\u001b[4;120H3\u001b[5;79H7\u001b[5;120H3\u001b[6;79H5\u001b[6;120H"] +[0.000, "o", "3\u001b[7d\b3\u001b[8d\b3\u001b[9;79H9\u001b[9;120H3\u001b[10d\b"] +[0.000, "o", "3\u001b[11d\b3\u001b[12d\b3\u001b[13;79H"] +[0.000, "o", "4\u001b[13;120H"] +[0.000, "o", "3\r\u001b[14d"] +[1.049, "o", "\u001b[2;78H50\u001b[2;120H4\u001b[3;79H9\u001b[3;120H4\u001b[4;79H8\u001b[4;120H4\u001b[5;79H8\u001b[5;120H4\u001b[6;79H"] +[0.000, "o", "6\u001b[6;120H4\u001b[7d\b4\u001b[8d\b4\u001b[9;78H50\u001b[9;120H"] +[0.000, "o", "4\u001b[10d\b4\u001b[11d\b4\u001b[12d\b4\u001b[13;79H"] +[0.000, "o", "5\u001b[13;120H4\r\u001b[14d"] +[1.050, "o", "\u001b[2;79H1\u001b[2;120H5\u001b[3;78H40\u001b[3;120H5\u001b[4;79H9\u001b[4;120H5\u001b[5;79H9\u001b[5;120H5\u001b[6;79H"] +[0.000, "o", "7\u001b[6;120H5\u001b[7d\b5\u001b[8d\b5\u001b[9;79H"] +[0.000, "o", "1\u001b[9;120H"] +[0.000, "o", "5\u001b[10d\b5\u001b[11d\b"] +[0.000, "o", "5\u001b[12d\b5\u001b[13;79H"] +[0.000, "o", "6\u001b[13;120H"] +[0.000, "o", "5\r\u001b[14d"] +[1.052, "o", "\u001b[2;79H2\u001b[2;120H6\u001b[3;79H1\u001b[3;120H6\u001b[4;78H50\u001b[4;120H6\u001b[5;78H50\u001b[5;120H6\u001b[6;79H8\u001b[6;120H"] +[0.000, "o", "6\u001b[7d\b6\u001b[8;35HUnknown\u001b[48GUnknown\u001b[8;120H"] +[0.000, "o", "6\u001b[9;79H"] +[0.000, "o", "2\u001b[9;120H6\u001b[10d\b"] +[0.000, "o", "6\u001b[11;25H"] +[0.001, "o", "Unknown Unknown\u001b[48G"] +[0.000, "o", "Unknown\u001b[11;120H"] +[0.000, "o", "6\u001b[12d\b6\u001b[13;79H7\u001b[13;120H"] +[0.000, "o", "6\r\u001b[14d"] +[1.053, "o", "\u001b[1;30H\u001b[2P\u001b[2;33HTrue \u001b[46GFalse \u001b[60GIdle \u001b[2;76H53s \u001b[2;95H0 (L2vpnEvpn) \u001b[117G"] +[0.000, "o", "27s\u001b[K\u001b[3;33HTrue \u001b[46GFalse \u001b[60GIdle \u001b[3;76H42s \u001b[3;95H"] +[0.000, "o", "0 (L2vpnEvpn) \u001b[117G27"] +[0.000, "o", "s\u001b[K\u001b[4;33HTrue \u001b[46GTrue \u001b[4;60HEstablished 51s \u001b[4;95H"] +[0.000, "o", "0 (L2vpnEvpn) \u001b[117G"] +[0.000, "o", "27s\u001b[K\u001b[5;33HTrue \u001b[46GFalse \u001b[60GIdle \u001b[5;76H51s \u001b[5;95H0 (L2vpnEvpn) \u001b[117G27"] +[0.000, "o", "s\u001b[K\u001b[6;33HTrue \u001b[46G"] +[0.000, "o", "False \u001b[60GIdle \u001b[6;76H49s \u001b[6;95H0 (L2vpnEvpn) \u001b[117G27s\u001b[K\u001b[7;117H27s\u001b[K\u001b[8;25HFalse True False Idle\u001b[8;76H34s\u001b[8;95H"] +[0.000, "o", "0 (L2vpnEvpn)\u001b[8;117H27s\u001b[K\u001b[9;33H"] +[0.000, "o", "True \u001b[46GTrue \u001b[9;60HEstablished 53s \u001b[9;95H0 (L2vpnEvpn) \u001b[117G"] +[0.000, "o", "27"] +[0.000, "o", "s\u001b[K\u001b[10;117H27s\u001b[K\u001b[11;25HFalse True False Idle\u001b[11;76H33s\u001b[11;95H0 (L2vpnEvpn)\u001b[11;117H"] +[0.000, "o", "27"] +[0.000, "o", "s\u001b[K\u001b[12;117H27s\u001b[K\u001b[13;33H"] +[0.000, "o", "True \u001b[46GFalse \u001b[60G"] +[0.000, "o", "Idle \u001b[13;76H48s \u001b[13;95H"] +[0.000, "o", "0 (L2vpnEvpn) \u001b[117G27s\u001b[K\r\u001b[14d"] +[1.051, "o", "\u001b[2;77H4\u001b[2;118H8\u001b[3;77H3\u001b[3;118H8\u001b[4;77H2\u001b[4;118H8\u001b[5;77H2\u001b[5;118H8\u001b[6;76H50\u001b[6;118H"] +[0.000, "o", "8\u001b[7d\b8\u001b[8;77H5\u001b[8;118H8\u001b[9;77H4\u001b[9;118H"] +[0.000, "o", "8\u001b[10d\b8\u001b[11;77H"] +[0.000, "o", "4\u001b[11;118H"] +[0.000, "o", "8\u001b[12d\b8\u001b[13;77H9\u001b[13;118H8\r\u001b[14d"] +[1.050, "o", "\u001b[2;77H5\u001b[2;118H9\u001b[3;77H4\u001b[3;118H9\u001b[4;77H3\u001b[4;118H9\u001b[5;77H3\u001b[5;118H"] +[0.000, "o", "9\u001b[6;77H1\u001b[6;118H9\u001b[7d\b9\u001b[8;77H6\u001b[8;118H9\u001b[9;77H5\u001b[9;118H"] +[0.000, "o", "9\u001b[10d\b9\u001b[11;77H5\u001b[11;118H"] +[0.000, "o", "9\u001b[12d\b9\u001b[13;76H50\u001b[13;118H9\r\u001b[14d"] +[1.052, "o", "\u001b[1;30H CONFIGURED OPERATIONAL SESSION STATE LAST ESTABLISHED ADVERTISED PREFIXES AGE\u001b[2;33H True\u001b[46G False\u001b[60G Idle\u001b[2;76H 56s\u001b[2;95H"] +[0.000, "o", " 0 (L2vpnEvpn)\u001b[117G 30s\u001b[3;33H True\u001b[46G"] +[0.000, "o", " False\u001b[60G Idle\u001b[3;76H 45s\u001b[3;95H"] +[0.000, "o", " 0 (L2vpnEvpn)\u001b[117G "] +[0.000, "o", "30s\u001b[4;33H True\u001b[46G"] +[0.000, "o", " True\u001b[4;60H"] +[0.000, "o", " Established 54s\u001b[4;95H 0 (L2vpnEvpn)\u001b[117G 30s\u001b[5;33H"] +[0.000, "o", " True\u001b[46G False\u001b[60G Idle\u001b[5;76H 54s\u001b[5;95H"] +[0.000, "o", " 0 (L2vpnEvpn)\u001b[117G 30s\u001b[6;33H"] +[0.000, "o", " True\u001b[46G False\u001b[60G Idle\u001b[6;76H"] +[0.000, "o", " 52s\u001b[6;95H"] +[0.000, "o", " 0 (L2vpnEvpn)\u001b[117G 30s\u001b[7;117H 30s\u001b[8;33H"] +[0.000, "o", " True\u001b[46G False\u001b[60G Idle\u001b[8;76H"] +[0.000, "o", " 37s\u001b[8;95H"] +[0.000, "o", " 0 (L2vpnEvpn)\u001b[117G 30s\u001b[9;33H True\u001b[46G"] +[0.000, "o", " True\u001b[9;60H"] +[0.000, "o", " Established 56s\u001b[9;95H"] +[0.000, "o", " 0 (L2vpnEvpn)\u001b[117G "] +[0.000, "o", "30s\u001b[10;25H"] +[0.000, "o", "Unknown Unknown\u001b[48GUnknown\u001b[10;117H 30s\u001b[11;33H True\u001b[46G False\u001b[60G Idle\u001b[11;76H"] +[0.000, "o", " 36s\u001b[11;95H 0 (L2vpnEvpn)\u001b[117G "] +[0.000, "o", "30s\u001b[12;117H"] +[0.000, "o", " 30s\u001b[13;33H"] +[0.000, "o", " True\u001b[46G"] +[0.000, "o", " False\u001b[60G Idle\u001b[13;76H 51s\u001b[13;95H 0 (L2vpnEvpn)\u001b[117G "] +[0.000, "o", "30s\r\u001b[14d"] +[1.054, "o", "\u001b[2;79H8\u001b[2;120H2\u001b[3;79H7\u001b[3;120H2\u001b[4;79H6\u001b[4;120H2\u001b[5;79H6\u001b[5;120H2\u001b[6;79H4\u001b[6;120H2\u001b[7d\b"] +[0.000, "o", "2\u001b[8;79H9\u001b[8;120H2\u001b[9;79H8\u001b[9;120H2\u001b[10d\b2\u001b[11;79H8\u001b[11;120H"] +[0.000, "o", "2\u001b[12d\b2\u001b[13;79H3\u001b[13;120H2\r\u001b[14d"] +[1.053, "o", "\u001b[1;30H\u001b[2P\u001b[2;33HTrue \u001b[46GFalse \u001b[60GIdle \u001b[2;76H59s \u001b[2;95H0 (L2vpnEvpn) \u001b[117G33"] +[0.000, "o", "s\u001b[K\u001b[3;33HTrue \u001b[46GFalse \u001b[60GIdle \u001b[3;76H48s \u001b[3;95H0 (L2vpnEvpn) \u001b[117G33s\u001b[K\u001b[4;33H"] +[0.000, "o", "True \u001b[46GTrue \u001b[4;60H"] +[0.000, "o", "Established 57s \u001b[4;95H"] +[0.000, "o", "0 (L2vpnEvpn) \u001b[117G33s\u001b[K\u001b[5;33HTrue \u001b[46GFalse \u001b[60GIdle \u001b[5;76H57s \u001b[5;95H0 (L2vpnEvpn) \u001b[117G33s\u001b[K\u001b[6;33HTrue \u001b[46GFalse \u001b[60GIdle \u001b[6;76H55s \u001b[6;95H0 (L2vpnEvpn) \u001b[117G33s\u001b[K\u001b[7;117H33"] +[0.000, "o", "s\u001b[K\u001b[8;33HTrue \u001b[46G"] +[0.000, "o", "False \u001b[60G"] +[0.000, "o", "Idle \u001b[8;76H"] +[0.000, "o", "40s \u001b[8;95H"] +[0.000, "o", "0 (L2vpnEvpn) \u001b[117G33s\u001b[K\u001b[9;33HTrue \u001b[46GTrue \u001b[9;60HEstablished 59s \u001b[9;95H0 (L2vpnEvpn) \u001b[117G33s\u001b[K\u001b[10;25HFalse True False Idle\u001b[10;76H35s\u001b[10;95H0 (L2vpnEvpn)\u001b[10;117H33s\u001b[K\u001b[11;33HTrue \u001b[46GFalse \u001b[60GIdle \u001b[11;76H39s \u001b[11;95H0 (L2vpnEvpn) \u001b[117G33s\u001b[K\u001b[12;117H"] +[0.000, "o", "33s\u001b[K\u001b[13;33HTrue \u001b[46G"] +[0.000, "o", "False \u001b[60GIdle \u001b[13;76H54s \u001b[13;95H0 (L2vpnEvpn) \u001b[117G33s\u001b[K\r\u001b[14d"] +[1.052, "o", "\u001b[2;76H60\u001b[2;118H4\u001b[3;77H9\u001b[3;118H4\u001b[4;77H8\u001b[4;118H4\u001b[5;77H8\u001b[5;118H"] +[0.000, "o", "4\u001b[6;77H6\u001b[6;118H"] +[0.000, "o", "4\u001b[7d\b4\u001b[8;77H1\u001b[8;118H4\u001b[9;76H"] +[0.000, "o", "60\u001b[9;118H4\u001b[10;77H"] +[0.000, "o", "6\u001b[10;118H"] +[0.000, "o", "4\u001b[11;76H"] +[0.000, "o", "40\u001b[11;118H"] +[0.000, "o", "4\u001b[12d\b4\u001b[13;77H5\u001b[13;118H4\r\u001b[14d"] +[1.053, "o", "\u001b[2;77H1\u001b[2;118H5\u001b[3;25HTrue \u001b[3;46HTrue \u001b[3;60HEstablished 34\u001b[3;118H5\u001b[4;77H9\u001b[4;118H5\u001b[5;77H9\u001b[5;118H5\u001b[6;77H7\u001b[6;118H"] +[0.000, "o", "5\u001b[7d\b5\u001b[8;77H2\u001b[8;118H5\u001b[9;77H1\u001b[9;118H"] +[0.000, "o", "5\u001b[10;77H7\u001b[10;118H5\u001b[11;77H1\u001b[11;118H"] +[0.000, "o", "5\u001b[12d\b5\u001b[13;77H6\u001b[13;118H"] +[0.000, "o", "5\r\u001b[14d"] +[1.048, "o", "\u001b[1;30H CONFIGURED OPERATIONAL SESSION STATE LAST ESTABLISHED ADVERTISED PREFIXES AGE\u001b[2;33H True\u001b[46G False\u001b[60G Idle\u001b[2;76H 62s\u001b[2;95H 0 (L2vpnEvpn)\u001b[117G"] +[0.000, "o", " 36s\u001b[3;33H True\u001b[46G True\u001b[3;60H Established 35s\u001b[3;95H"] +[0.000, "o", " 0 (L2vpnEvpn)\u001b[117G 36s\u001b[4;33H True\u001b[46G True\u001b[4;60H Established 60s\u001b[4;95H 0 (L2vpnEvpn)\u001b[117G 36s\u001b[5;33H True\u001b[46G"] +[0.000, "o", " False\u001b[60G Idle\u001b[5;76H"] +[0.000, "o", " 60s\u001b[5;95H"] +[0.000, "o", " 0 (L2vpnEvpn)\u001b[117G"] +[0.000, "o", " "] +[0.000, "o", "36s\u001b[6;33H True\u001b[46G False\u001b[60G"] +[0.000, "o", " Idle\u001b[6;76H 58s\u001b[6;95H 0 (L2vpnEvpn)\u001b[117G"] +[0.000, "o", " "] +[0.000, "o", "36s\u001b[7;25HUnknown Unknown\u001b[48GUnknown\u001b[7;117H 36s\u001b[8;33H True\u001b[46G"] +[0.000, "o", " False\u001b[60G Idle\u001b[8;76H 43s\u001b[8;95H"] +[0.000, "o", " 0 (L2vpnEvpn)\u001b[117G 36s\u001b[9;33H True\u001b[46G True\u001b[9;60H Established 62s\u001b[9;95H 0 (L2vpnEvpn)\u001b[117G"] +[0.000, "o", " "] +[0.000, "o", "36s\u001b[10;33H True\u001b[46G"] +[0.000, "o", " False\u001b[60G Idle\u001b[10;76H 38s\u001b[10;95H 0 (L2vpnEvpn)\u001b[117G 36s\u001b[11;33H True\u001b[46G False\u001b[60G"] +[0.000, "o", " Idle\u001b[11;76H 42s\u001b[11;95H 0 (L2vpnEvpn)\u001b[117G "] +[0.000, "o", "36s\u001b[12;25H"] +[0.000, "o", "Unknown Unknown\u001b[48GUnknown\u001b[12;117H 36s\u001b[13;33H True\u001b[46G False\u001b[60G Idle\u001b[13;76H 57s\u001b[13;95H"] +[0.000, "o", " 0 (L2vpnEvpn)\u001b[117G 36s\r\u001b[14d"] +[1.050, "o", "\u001b[1;30H\u001b[2P\u001b[2;33HTrue \u001b[46GFalse \u001b[60GIdle \u001b[2;76H63s \u001b[2;95H0 (L2vpnEvpn) \u001b[117G37s\u001b[K\u001b[3;33H"] +[0.000, "o", "True \u001b[46GTrue \u001b[3;60HEstablished 36s \u001b[3;95H0 (L2vpnEvpn) \u001b[117G37s\u001b[K\u001b[4;33H"] +[0.000, "o", "True \u001b[46GTrue \u001b[4;60H"] +[0.000, "o", "Established 61s \u001b[4;95H"] +[0.000, "o", "0 (L2vpnEvpn) \u001b[117G37s\u001b[K\u001b[5;33H"] +[0.000, "o", "True \u001b[46G"] +[0.000, "o", "False \u001b[60G"] +[0.000, "o", "Idle \u001b[5;76H"] +[0.000, "o", "61s \u001b[5;95H"] +[0.000, "o", "0 (L2vpnEvpn) \u001b[117G37s\u001b[K\u001b[6;33HTrue \u001b[46GFalse \u001b[60G"] +[0.000, "o", "Idle \u001b[6;76H59s \u001b[6;95H"] +[0.000, "o", "0 (L2vpnEvpn) \u001b[117G37"] +[0.000, "o", "s\u001b[K\u001b[7;25HFalse True False Idle\u001b[7;76H34s\u001b[7;95H0 (L2vpnEvpn)\u001b[7;117H37s\u001b[K\u001b[8;33H"] +[0.000, "o", "True \u001b[46G"] +[0.000, "o", "False \u001b[60G"] +[0.000, "o", "Idle \u001b[8;76H44s \u001b[8;95H"] +[0.000, "o", "0 (L2vpnEvpn) \u001b[117G"] +[0.000, "o", "37"] +[0.000, "o", "s\u001b[K\u001b[9;33H"] +[0.000, "o", "True \u001b[46GTrue \u001b[9;60H"] +[0.000, "o", "Established 63s \u001b[9;95H"] +[0.000, "o", "0 (L2vpnEvpn) \u001b[117G37s\u001b[K\u001b[10;33HTrue \u001b[46G"] +[0.000, "o", "False \u001b[60GIdle \u001b[10;76H39s \u001b[10;95H"] +[0.000, "o", "0 (L2vpnEvpn) \u001b[117G37"] +[0.000, "o", "s\u001b[K\u001b[11;33HTrue \u001b[46G"] +[0.000, "o", "False \u001b[60G"] +[0.000, "o", "Idle \u001b[11;76H43s \u001b[11;95H"] +[0.000, "o", "0 (L2vpnEvpn) \u001b[117G37s\u001b[K\u001b[12;25HFalse True False Idle\u001b[12;76H33s\u001b[12;95H"] +[0.000, "o", "0 (L2vpnEvpn)\u001b[12;117H"] +[0.000, "o", "37s\u001b[K\u001b[13;33H"] +[0.000, "o", "True \u001b[46G"] +[0.000, "o", "False \u001b[60G"] +[0.000, "o", "Idle \u001b[13;76H58s \u001b[13;95H"] +[0.000, "o", "0 (L2vpnEvpn) \u001b[117G37s\u001b[K\r\u001b[14d"] +[1.050, "o", "\u001b[2;77H4\u001b[2;118H8\u001b[3;77H7\u001b[3;118H8\u001b[4;77H2\u001b[4;118H8\u001b[5;77H2\u001b[5;118H8\u001b[6;76H60\u001b[6;118H8\u001b[7;77H5\u001b[7;118H"] +[0.000, "o", "8\u001b[8;77H5\u001b[8;118H8\u001b[9;77H4\u001b[9;118H8\u001b[10;76H40\u001b[10;118H"] +[0.000, "o", "8\u001b[11;77H4\u001b[11;118H8\u001b[12;77H4\u001b[12;118H8\u001b[13;77H"] +[0.000, "o", "9\u001b[13;118H"] +[0.000, "o", "8\r\u001b[14d"] +[1.051, "o", "\u001b[2;77H5\u001b[2;118H9\u001b[3;77H8\u001b[3;118H9\u001b[4;77H3\u001b[4;118H9\u001b[5;77H3\u001b[5;118H9\u001b[6;77H1\u001b[6;118H9\u001b[7;77H6\u001b[7;118H9\u001b[8;77H"] +[0.000, "o", "6\u001b[8;118H9\u001b[9;77H5\u001b[9;118H9\u001b[10;77H1\u001b[10;118H9\u001b[11;77H5\u001b[11;118H9\u001b[12;77H5\u001b[12;118H"] +[0.000, "o", "9\u001b[13;76H"] +[0.000, "o", "60\u001b[13;118H"] +[0.000, "o", "9\r\u001b[14d"] +[1.054, "o", "\u001b[2;77H6\u001b[2;117H40\u001b[3;77H9\u001b[3;117H40\u001b[4;77H4\u001b[4;117H40\u001b[5;77H4\u001b[5;117H40\u001b[6;77H2\u001b[6;117H"] +[0.000, "o", "40\u001b[7;77H7\u001b[7;117H40\u001b[8;77H7\u001b[8;117H40\u001b[9;77H6\u001b[9;117H40\u001b[10;77H2\u001b[10;117H40\u001b[11;77H6\u001b[11;117H40\u001b[12;77H6\u001b[12;117H40\u001b[13;77H1\u001b[13;117H"] +[0.000, "o", "40\r\u001b[14d"] +[1.055, "o", "\u001b[2;77H7\u001b[2;118H1\u001b[3;76H40\u001b[3;118H1\u001b[4;77H5\u001b[4;118H1\u001b[5;77H5\u001b[5;118H1\u001b[6;77H3\u001b[6;118H1\u001b[7;77H"] +[0.000, "o", "8\u001b[7;118H1\u001b[8;77H8\u001b[8;118H1\u001b[9;77H7\u001b[9;118H1\u001b[10;77H3\u001b[10;118H1\u001b[11;77H7\u001b[11;118H1\u001b[12;77H7\u001b[12;118H1\u001b[13;77H"] +[0.000, "o", "2\u001b[13;118H"] +[0.000, "o", "1\r\u001b[14d"] +[1.059, "o", "\u001b[2;77H8\u001b[2;118H2\u001b[3;77H1\u001b[3;118H2\u001b[4;77H6\u001b[4;118H2\u001b[5;77H6\u001b[5;118H2\u001b[6;77H4\u001b[6;118H2\u001b[7;77H"] +[0.000, "o", "9\u001b[7;118H2\u001b[8;25HTrue \u001b[8;46HTrue \u001b[8;60HEstablished\u001b[77G3\u001b[8;118H2\u001b[9;77H8\u001b[9;118H"] +[0.000, "o", "2\u001b[10;77H4\u001b[10;118H"] +[0.000, "o", "2\u001b[11;77H8\u001b[11;118H2\u001b[12;77H8\u001b[12;118H2\u001b[13;77H3\u001b[13;118H"] +[0.000, "o", "2\r\u001b[14d"] +[1.055, "o", "\u001b[2;77H9\u001b[2;118H3\u001b[3;77H2\u001b[3;118H3\u001b[4;77H7\u001b[4;118H3\u001b[5;77H7\u001b[5;118H3\u001b[6;77H5\u001b[6;118H"] +[0.000, "o", "3\u001b[7;76H40\u001b[7;118H3\u001b[8;77H4\u001b[8;118H3\u001b[9;77H9\u001b[9;118H3\u001b[10;77H5\u001b[10;118H3\u001b[11;77H9\u001b[11;118H"] +[0.000, "o", "3\u001b[12;77H"] +[0.000, "o", "9\u001b[12;118H"] +[0.000, "o", "3\u001b[13;77H4\u001b[13;118H"] +[0.000, "o", "3\r\u001b[14d"] +[1.055, "o", "\u001b[2;76H70\u001b[2;118H4\u001b[3;77H3\u001b[3;118H4\u001b[4;77H8\u001b[4;118H4\u001b[5;77H8\u001b[5;118H4\u001b[6;77H6\u001b[6;118H4\u001b[7;77H1\u001b[7;118H4\u001b[8;77H5\u001b[8;118H4\u001b[9;76H70\u001b[9;118H4\u001b[10;77H6\u001b[10;118H"] +[0.000, "o", "4\u001b[11;76H50\u001b[11;118H4\u001b[12;76H40\u001b[12;118H4\u001b[13;77H5\u001b[13;118H"] +[0.000, "o", "4\r\u001b[14d"] +[1.058, "o", "\u001b[2;77H1\u001b[2;118H5\u001b[3;77H4\u001b[3;118H5\u001b[4;77H9\u001b[4;118H5\u001b[5;77H9\u001b[5;118H5\u001b[6;25HTrue \u001b[6;46H"] +[0.000, "o", "True \u001b[6;60HEstablished 40\u001b[6;118H5\u001b[7;77H2\u001b[7;118H5\u001b[8;77H6\u001b[8;118H5\u001b[9;77H1\u001b[9;118H5\u001b[10;77H7\u001b[10;118H5\u001b[11;77H1\u001b[11;118H5\u001b[12;77H"] +[0.000, "o", "1\u001b[12;118H5\u001b[13;77H"] +[0.000, "o", "6\u001b[13;118H5\r\u001b[14d"] +[1.056, "o", "\u001b[2;77H2\u001b[2;118H6\u001b[3;77H5\u001b[3;118H6\u001b[4;76H70\u001b[4;118H6\u001b[5;76H70\u001b[5;118H6\u001b[6;77H1\u001b[6;118H"] +[0.000, "o", "6\u001b[7;77H3\u001b[7;118H6\u001b[8;77H7\u001b[8;118H6\u001b[9;77H2\u001b[9;118H6\u001b[10;77H8\u001b[10;118H"] +[0.000, "o", "6\u001b[11;77H2\u001b[11;118H"] +[0.000, "o", "6\u001b[12;77H2\u001b[12;118H"] +[0.000, "o", "6\u001b[13;77H7\u001b[13;118H"] +[0.000, "o", "6\r\u001b[14d"] +[1.061, "o", "\u001b[2;77H3\u001b[2;118H7\u001b[3;77H6\u001b[3;118H7\u001b[4;77H1\u001b[4;118H7\u001b[5;77H1\u001b[5;118H7\u001b[6;77H2\u001b[6;118H"] +[0.000, "o", "7\u001b[7;77H4\u001b[7;118H7\u001b[8;77H8\u001b[8;118H7\u001b[9;77H3\u001b[9;118H7\u001b[10;77H9\u001b[10;118H7\u001b[11;77H3\u001b[11;118H"] +[0.000, "o", "7\u001b[12;77H3\u001b[12;118H"] +[0.000, "o", "7\u001b[13;77H8\u001b[13;118H"] +[0.000, "o", "7\r\u001b[14d"] +[1.055, "o", "\u001b[2;77H4\u001b[2;118H8\u001b[3;77H7\u001b[3;118H8\u001b[4;77H2\u001b[4;118H8\u001b[5;77H2\u001b[5;118H8\u001b[6;77H3\u001b[6;118H8\u001b[7;77H5\u001b[7;118H8\u001b[8;77H9\u001b[8;118H"] +[0.000, "o", "8\u001b[9;77H4\u001b[9;118H8\u001b[10;25HTrue \u001b[10;46HTrue \u001b[10;60HEstablished\u001b[77G"] +[0.000, "o", "3\u001b[10;118H8\u001b[11;77H4\u001b[11;118H8\u001b[12;77H"] +[0.000, "o", "4\u001b[12;118H"] +[0.000, "o", "8\u001b[13;77H9\u001b[13;118H"] +[0.000, "o", "8\r\u001b[14d"] +[1.056, "o", "\u001b[2;25HTrue \u001b[2;46HTrue \u001b[2;60HEstablished 49\u001b[2;118H9\u001b[3;77H8\u001b[3;118H9\u001b[4;77H3\u001b[4;118H9\u001b[5;77H3\u001b[5;118H9\u001b[6;77H4\u001b[6;118H9\u001b[7;77H6\u001b[7;118H9\u001b[8;76H50\u001b[8;118H"] +[0.000, "o", "9\u001b[9;77H5\u001b[9;118H9\u001b[10;77H4\u001b[10;118H9\u001b[11;77H5\u001b[11;118H9\u001b[12;77H5\u001b[12;118H9\u001b[13;76H70\u001b[13;118H9\r\u001b[14d"] +[1.052, "o", "\u001b[2;76H50\u001b[2;117H50\u001b[3;77H9\u001b[3;117H50\u001b[4;77H4\u001b[4;117H50\u001b[5;77H4\u001b[5;117H50\u001b[6;77H"] +[0.000, "o", "5\u001b[6;117H50\u001b[7;77H7\u001b[7;117H50\u001b[8;77H1\u001b[8;117H50\u001b[9;77H6\u001b[9;117H50\u001b[10;77H"] +[0.000, "o", "5\u001b[10;117H"] +[0.000, "o", "50\u001b[11;77H"] +[0.000, "o", "6\u001b[11;117H"] +[0.000, "o", "50\u001b[12;77H"] +[0.000, "o", "6\u001b[12;117H50\u001b[13;77H1\u001b[13;117H"] +[0.000, "o", "50\r\u001b[14d"] +[1.055, "o", "\u001b[2;77H2\u001b[2;118H2\u001b[3;76H51\u001b[3;118H2\u001b[4;77H6\u001b[4;118H2\u001b[5;77H6\u001b[5;118H2\u001b[6;77H7\u001b[6;118H2\u001b[7;77H"] +[0.000, "o", "9\u001b[7;118H2\u001b[8;77H3\u001b[8;118H2\u001b[9;77H8\u001b[9;118H2\u001b[10;77H7\u001b[10;118H2\u001b[11;77H8\u001b[11;118H2\u001b[12;77H"] +[0.000, "o", "8\u001b[12;118H2\u001b[13;77H"] +[0.000, "o", "3\u001b[13;118H"] +[0.000, "o", "2\r\u001b[14d"] +[1.054, "o", "\u001b[2;77H3\u001b[2;118H3\u001b[3;77H2\u001b[3;118H3\u001b[4;77H7\u001b[4;118H3\u001b[5;77H7\u001b[5;118H3\u001b[6;77H8\u001b[6;118H3\u001b[7;25H"] +[0.000, "o", "True \u001b[7;46HTrue \u001b[7;60HEstablished\u001b[77G4\u001b[7;118H3\u001b[8;77H4\u001b[8;118H3\u001b[9;77H"] +[0.000, "o", "9\u001b[9;118H3\u001b[10;77H"] +[0.000, "o", "8\u001b[10;118H3\u001b[11;77H9\u001b[11;118H"] +[0.001, "o", "3\u001b[12;77H9\u001b[12;118H3\u001b[13;77H4\u001b[13;118H3\r\u001b[14d"] +[1.050, "o", "\u001b[2;77H4\u001b[2;118H4\u001b[3;77H3\u001b[3;118H4\u001b[4;77H8\u001b[4;118H4\u001b[5;77H8\u001b[5;118H4\u001b[6;77H"] +[0.000, "o", "9\u001b[6;118H4\u001b[7;77H5\u001b[7;118H4\u001b[8;77H5\u001b[8;118H4\u001b[9;76H80\u001b[9;118H4\u001b[10;77H9\u001b[10;118H4\u001b[11;25HTrue \u001b[11;46HTrue \u001b[11;60H"] +[0.000, "o", "Established\u001b[77G"] +[0.000, "o", "4\u001b[11;118H"] +[0.000, "o", "4\u001b[12;25H"] +[0.000, "o", "True \u001b[12;46HTrue \u001b[12;60HEstablished\u001b[77G"] +[0.000, "o", "5\u001b[12;118H"] +[0.000, "o", "4\u001b[13;77H"] +[0.000, "o", "5\u001b[13;118H4\r\u001b[14d"] +[1.056, "o", "\u001b[2;77H5\u001b[2;118H5\u001b[3;77H4\u001b[3;118H5\u001b[4;77H9\u001b[4;118H5\u001b[5;77H9\u001b[5;118H5\u001b[6;76H50\u001b[6;118H5\u001b[7;77H6\u001b[7;118H"] +[0.000, "o", "5\u001b[8;77H6\u001b[8;118H5\u001b[9;77H1\u001b[9;118H5\u001b[10;76H50\u001b[10;118H"] +[0.000, "o", "5\u001b[11;77H5\u001b[11;118H5\u001b[12;77H"] +[0.000, "o", "6\u001b[12;118H"] +[0.000, "o", "5\u001b[13;25HTrue \u001b[13;46H"] +[0.000, "o", "True \u001b[13;60HEstablished 4\u001b[13;118H"] +[0.000, "o", "5\r\u001b[14d"] +[1.053, "o", "\u001b[2;77H6\u001b[2;118H6\u001b[3;77H5\u001b[3;118H6\u001b[4;76H80\u001b[4;118H6\u001b[5;76H80\u001b[5;118H6\u001b[6;77H1\u001b[6;118H6\u001b[7;77H"] +[0.000, "o", "7\u001b[7;118H6\u001b[8;77H7\u001b[8;118H6\u001b[9;77H2\u001b[9;118H6\u001b[10;77H1\u001b[10;118H6\u001b[11;77H6\u001b[11;118H"] +[0.000, "o", "6\u001b[12;77H7\u001b[12;118H6\u001b[13;77H6\u001b[13;118H6\r\u001b[14d"] +[1.057, "o", "\u001b[2;77H7\u001b[2;118H7\u001b[3;77H6\u001b[3;118H7\u001b[4;77H1\u001b[4;118H7\u001b[5;77H1\u001b[5;118H7\u001b[6;77H2\u001b[6;118H7\u001b[7;77H8\u001b[7;118H7\u001b[8;77H8\u001b[8;118H"] +[0.000, "o", "7\u001b[9;77H3\u001b[9;118H7\u001b[10;77H2\u001b[10;118H7\u001b[11;77H7\u001b[11;118H"] +[0.000, "o", "7\u001b[12;77H8\u001b[12;118H7\u001b[13;77H7\u001b[13;118H7\r\u001b[14d"] +[1.053, "o", "\u001b[2;77H8\u001b[2;118H8\u001b[3;77H7\u001b[3;118H8\u001b[4;77H2\u001b[4;118H8\u001b[5;77H2\u001b[5;118H8\u001b[6;77H3\u001b[6;118H8\u001b[7;77H"] +[0.000, "o", "9\u001b[7;118H8\u001b[8;77H9\u001b[8;118H8\u001b[9;77H4\u001b[9;118H"] +[0.000, "o", "8\u001b[10;77H3\u001b[10;118H"] +[0.000, "o", "8\u001b[11;77H8\u001b[11;118H"] +[0.000, "o", "8\u001b[12;77H9\u001b[12;118H"] +[0.000, "o", "8\u001b[13;77H"] +[0.000, "o", "8\u001b[13;118H"] +[0.000, "o", "8\r\u001b[14d"] +[1.061, "o", "\u001b[2;77H9\u001b[2;118H9\u001b[3;77H8\u001b[3;118H9\u001b[4;77H3\u001b[4;118H9\u001b[5;77H3\u001b[5;118H9\u001b[6;77H4\u001b[6;118H"] +[0.000, "o", "9\u001b[7;76H50\u001b[7;118H9\u001b[8;76H60\u001b[8;118H9\u001b[9;77H5\u001b[9;118H9\u001b[10;77H4\u001b[10;118H9\u001b[11;77H9\u001b[11;118H"] +[0.000, "o", "9\u001b[12;76H50\u001b[12;118H"] +[0.000, "o", "9\u001b[13;77H9\u001b[13;118H"] +[0.000, "o", "9\r\u001b[14d"] +[1.058, "o", "\u001b[2;76H60\u001b[2;117H60\u001b[3;77H9\u001b[3;117H60\u001b[4;77H4\u001b[4;117H60\u001b[5;77H4\u001b[5;117H60\u001b[6;77H5\u001b[6;117H60\u001b[7;77H"] +[0.000, "o", "1\u001b[7;117H60\u001b[8;77H1\u001b[8;117H60\u001b[9;77H6\u001b[9;117H60\u001b[10;77H5\u001b[10;117H60\u001b[11;76H60\u001b[11;117H60\u001b[12;77H"] +[0.000, "o", "1\u001b[12;117H"] +[0.000, "o", "60\u001b[13;76H50\u001b[13;117H60\r\u001b[14d"] +[1.059, "o", "\u001b[2;77H1\u001b[2;118H1\u001b[3;76H60\u001b[3;118H1\u001b[4;77H5\u001b[4;118H1\u001b[5;77H5\u001b[5;118H1\u001b[6;77H6\u001b[6;118H"] +[0.000, "o", "1\u001b[7;77H2\u001b[7;118H1\u001b[8;77H2\u001b[8;118H1\u001b[9;77H7\u001b[9;118H1\u001b[10;77H6\u001b[10;118H1\u001b[11;77H"] +[0.000, "o", "1\u001b[11;118H"] +[0.000, "o", "1\u001b[12;77H2\u001b[12;118H"] +[0.000, "o", "1\u001b[13;77H"] +[0.000, "o", "1\u001b[13;118H"] +[0.000, "o", "1\r\u001b[14d"] +[1.053, "o", "\u001b[2;77H2\u001b[2;118H2\u001b[3;77H1\u001b[3;118H2\u001b[4;77H6\u001b[4;118H2\u001b[5;25HTrue \u001b[5;46HTrue \u001b[5;60H"] +[0.000, "o", "Established 51\u001b[5;118H2\u001b[6;77H7\u001b[6;118H2\u001b[7;77H3\u001b[7;118H2\u001b[8;77H3\u001b[8;118H"] +[0.000, "o", "2\u001b[9;77H8\u001b[9;118H2\u001b[10;77H7\u001b[10;118H"] +[0.000, "o", "2\u001b[11;77H"] +[0.000, "o", "2\u001b[11;118H2\u001b[12;77H3\u001b[12;118H"] +[0.000, "o", "2\u001b[13;77H"] +[0.000, "o", "2\u001b[13;118H"] +[0.000, "o", "2\r\u001b[14d"] +[1.056, "o", "\u001b[2;77H3\u001b[2;118H3\u001b[3;77H2\u001b[3;118H3\u001b[4;77H7\u001b[4;118H3\u001b[5;77H2\u001b[5;118H3\u001b[6;77H8\u001b[6;118H3\u001b[7;77H4\u001b[7;118H3\u001b[8;77H4\u001b[8;118H3\u001b[9;77H9\u001b[9;118H3\u001b[10;77H8\u001b[10;118H3\u001b[11;77H3\u001b[11;118H3\u001b[12;77H4\u001b[12;118H3\u001b[13;77H3\u001b[13;118H"] +[0.000, "o", "3\r\u001b[14d"] +[1.051, "o", "\u001b[2;77H4\u001b[2;118H4\u001b[3;77H3\u001b[3;118H4\u001b[4;77H8\u001b[4;118H4\u001b[5;77H3\u001b[5;118H4\u001b[6;77H"] +[0.000, "o", "9\u001b[6;118H4\u001b[7;77H5\u001b[7;118H4\u001b[8;77H5\u001b[8;118H4\u001b[9;76H"] +[0.000, "o", "90\u001b[9;118H4\u001b[10;77H9\u001b[10;118H4\u001b[11;77H"] +[0.000, "o", "4\u001b[11;118H"] +[0.000, "o", "4\u001b[12;77H5\u001b[12;118H4\u001b[13;77H4\u001b[13;118H4\r\u001b[14d"] +[1.055, "o", "\u001b[2;77H5\u001b[2;118H5\u001b[3;77H4\u001b[3;118H5\u001b[4;77H9\u001b[4;118H5\u001b[5;77H4\u001b[5;118H5\u001b[6;76H"] +[0.000, "o", "60\u001b[6;118H5\u001b[7;77H6\u001b[7;118H5\u001b[8;77H6\u001b[8;118H5\u001b[9;77H1\u001b[9;118H5\u001b[10;76H60\u001b[10;118H5\u001b[11;77H5\u001b[11;118H"] +[0.000, "o", "5\u001b[12;77H6\u001b[12;118H5\u001b[13;77H5\u001b[13;118H5\r\u001b[14d"] +[1.059, "o", "\u001b[2;77H6\u001b[2;118H6\u001b[3;77H5\u001b[3;118H6\u001b[4;76H90\u001b[4;118H6\u001b[5;77H5\u001b[5;118H6\u001b[6;77H1\u001b[6;118H6\u001b[7;77H7\u001b[7;118H"] +[0.000, "o", "6\u001b[8;77H7\u001b[8;118H6\u001b[9;77H2\u001b[9;118H6\u001b[10;77H1\u001b[10;118H"] +[0.000, "o", "6\u001b[11;77H6\u001b[11;118H6\u001b[12;77H7\u001b[12;118H"] +[0.000, "o", "6\u001b[13;77H6\u001b[13;118H"] +[0.000, "o", "6\r\u001b[14d"] +[0.719, "o", "\u001b[91;1H\u001b[34h\u001b[?25h\u001b[?1049l\r\u001b[?1l\u001b>"] +[0.000, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[0.548, "m", ""] +[0.412, "o", "\u001b[H\u001b[J\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[0.800, "o", "y"] +[0.001, "o", "\byq"] +[0.000, "o", " "] +[0.001, "o", "."] +[0.000, "o", "/"] +[0.000, "o", "k"] +[0.001, "o", "u"] +[0.000, "o", "b"] +[0.000, "o", "e"] +[0.001, "o", "r"] +[0.000, "o", "n"] +[0.000, "o", "e"] +[0.000, "o", "t"] +[0.001, "o", "e"] +[0.000, "o", "s"] +[0.000, "o", "/"] +[0.001, "o", "1"] +[0.000, "o", "1"] +[0.000, "o", "-"] +[0.001, "o", "n"] +[0.000, "o", "v"] +[0.000, "o", "e"] +[0.001, "o", "/"] +[0.000, "o", "l"] +[0.001, "o", "e"] +[0.000, "o", "a"] +[0.000, "o", "f"] +[0.001, "o", "1"] +[0.000, "o", "-"] +[0.000, "o", "n"] +[0.001, "o", "v"] +[0.000, "o", "e"] +[0.000, "o", "1"] +[0.001, "o", "."] +[0.000, "o", "y"] +[0.000, "o", "a"] +[0.001, "o", "m"] +[0.005, "o", "\u001b[37D\u001b[32my\u001b[32mq\u001b[39m \u001b[4m.\u001b[4m/\u001b[4mk\u001b[4mu\u001b[4mb\u001b[4me\u001b[4mr\u001b[4mn\u001b[4me\u001b[4mt\u001b[4me\u001b[4ms\u001b[4m/\u001b[4m1\u001b[4m1\u001b[4m-\u001b[4mn\u001b[4mv\u001b[4me\u001b[4m/\u001b[4ml\u001b[4me\u001b[4ma\u001b[4mf\u001b[4m1\u001b[4m-\u001b[4mn\u001b[4mv\u001b[4me\u001b[4m1\u001b[4m.\u001b[4my\u001b[4ma\u001b[4mm\u001b[4ml\u001b[24m"] +[0.773, "o", "\r\r\n"] +[0.007, "o", "\u001b[36mapiVersion\u001b[0m:\u001b[32m networking.metal.ironcore.dev/v1alpha1\u001b[0m\r\n\u001b[32m\u001b[0m\u001b[36mkind\u001b[0m:\u001b[32m NetworkVirtualizationEdge\u001b[0m\r\n\u001b[32m\u001b[0m\u001b[36mmetadata\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m name\u001b[0m:\u001b[32m leaf1-nve1\u001b[0m\r\n\u001b[32m\u001b[0m\u001b[36mspec\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m deviceRef\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m name\u001b[0m:\u001b[32m leaf1\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36madminState\u001b[0m:\u001b[32m Up\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mhostReachability\u001b[0m:\u001b[32m BGP\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36msourceInterfaceRef\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m name\u001b[0m:\u001b[32m leaf1-lo1\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mmulticastGroups\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m l2\u001b[0m:\u001b[32m 224.0.0.2\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36manycastGateway\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m virtualMAC\u001b[0m:\u001b[32m 00:00:11:11:22:22\u001b[0m\r\n"] +[0.000, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[0.749, "m", ""] +[1.357, "o", "k"] +[0.000, "o", "\bku"] +[0.001, "o", "b"] +[0.000, "o", "e"] +[0.000, "o", "c"] +[0.001, "o", "t"] +[0.000, "o", "l"] +[0.000, "o", " "] +[0.001, "o", "a"] +[0.000, "o", "p"] +[0.001, "o", "p"] +[0.000, "o", "l"] +[0.000, "o", "y"] +[0.000, "o", " "] +[0.001, "o", "-"] +[0.000, "o", "k"] +[0.000, "o", " "] +[0.001, "o", "."] +[0.000, "o", "/"] +[0.000, "o", "k"] +[0.001, "o", "u"] +[0.000, "o", "b"] +[0.000, "o", "e"] +[0.001, "o", "r"] +[0.000, "o", "n"] +[0.000, "o", "e"] +[0.001, "o", "t"] +[0.000, "o", "e"] +[0.000, "o", "s"] +[0.001, "o", "/"] +[0.000, "o", "1"] +[0.000, "o", "1"] +[0.001, "o", "-"] +[0.000, "o", "n"] +[0.000, "o", "v"] +[0.002, "o", "\u001b[35D\u001b[32mk\u001b[32mu\u001b[32mb\u001b[32me\u001b[32mc\u001b[32mt\u001b[32ml\u001b[39m\u001b[10C\u001b[4m.\u001b[4m/\u001b[4mk\u001b[4mu\u001b[4mb\u001b[4me\u001b[4mr\u001b[4mn\u001b[4me\u001b[4mt\u001b[4me\u001b[4ms\u001b[4m/\u001b[4m1\u001b[4m1\u001b[4m-\u001b[4mn\u001b[4mv\u001b[4me\u001b[24m"] +[1.264, "o", "\r\r\n"] +[0.083, "o", "networkvirtualizationedge.networking.metal.ironcore.dev/leaf1-nve1 created\r\n"] +[0.009, "o", "networkvirtualizationedge.networking.metal.ironcore.dev/leaf2-nve1 created\r\n"] +[0.006, "o", "networkvirtualizationedge.networking.metal.ironcore.dev/leaf3-nve1 created\r\n"] +[0.000, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[1.890, "o", "w"] +[0.000, "o", "\bwa"] +[0.001, "o", "t"] +[0.000, "o", "c"] +[0.000, "o", "h"] +[0.001, "o", " "] +[0.000, "o", "k"] +[0.000, "o", "u"] +[0.001, "o", "b"] +[0.000, "o", "e"] +[0.000, "o", "c"] +[0.001, "o", "t"] +[0.000, "o", "l"] +[0.000, "o", " "] +[0.001, "o", "g"] +[0.000, "o", "e"] +[0.000, "o", "t"] +[0.001, "o", " "] +[0.000, "o", "n"] +[0.000, "o", "v"] +[0.001, "o", "e"] +[0.000, "o", " "] +[0.000, "o", "-"] +[0.001, "o", "o"] +[0.000, "o", " "] +[0.000, "o", "w"] +[0.001, "o", "i"] +[0.000, "o", "d"] +[0.002, "o", "\u001b[28D\u001b[32mw\u001b[32ma\u001b[32mt\u001b[32mc\u001b[32mh\u001b[39m\u001b[23Ce"] +[1.900, "o", "\r\r\n"] +[0.004, "o", "\u001b(B\u001b)0\u001b[?1049h\u001b[1;91r\u001b[m\u000f\u001b[4l\u001b[?25l"] +[0.054, "o", "\u001b[H\u001b[JNAME\u001b[1;14HDEVICE READY CONFIGURED OPERATIONAL SRCIF ANYCASTSRCIF HOSTREACHABILITY AGE\r\u001b[2dleaf1-nve1 leaf1 Unknown\u001b[2;102H"] +[0.000, "o", "4s\r\u001b[3dleaf2-nve1 leaf2\u001b[3;102H4s\r\u001b[4dleaf3-nve1 leaf3 Unknown\u001b[4;102H"] +[0.000, "o", "4s\r\u001b[5d"] +[1.059, "o", "\u001b[1;28H\u001b[2P\u001b[2;23HTrue True\u001b[2;44HTrue\u001b[2;58Hlo1\u001b[2;81HBGP\u001b[2;100H5s\u001b[K\u001b[3d\b\b"] +[0.000, "o", "5s\u001b[K\u001b[4;23HTrue True\u001b[4;44HTrue\u001b[4;58Hlo1\u001b[4;81HBGP\u001b[4;100H5s\u001b[K\r\u001b[5d"] +[1.055, "o", "\u001b[1;28H CONFIGURED OPERATIONAL SRCIF ANYCASTSRCIF HOSTREACHABILITY AGE\u001b[2;31H True\u001b[44G True\u001b[2;58H lo1\u001b[2;81H BGP\u001b[2;100H 6s\u001b[3;23HUnknown\u001b[3;100H "] +[0.000, "o", " 6s\u001b[4;31H True\u001b[44G True\u001b[4;58H lo1\u001b[4;81H BGP\u001b[4;100H 6s\r\u001b[5d"] +[1.051, "o", "\u001b[2;102H7\u001b[3d\b7\u001b[4d\b7\r\u001b[5d"] +[1.051, "o", "\u001b[2;102H8\u001b[3d\b8\u001b[4d\b8\r\u001b[5d"] +[1.051, "o", "\u001b[2;102H9\u001b[3d\b9\u001b[4d\b9\r\u001b[5d"] +[1.048, "o", "\u001b[1;28H\u001b[2P\u001b[2;31HTrue \u001b[44GTrue \u001b[2;58Hlo1 \u001b[2;81HBGP \u001b[2;100H10s\u001b[K\u001b[3;23HTrue True\u001b[3;44HTrue\u001b[3;58Hlo1\u001b[3;81HBGP\u001b[3;100H10"] +[0.000, "o", "s\u001b[K\u001b[4;31HTrue \u001b[44GTrue \u001b[4;58Hlo1 \u001b[4;81HBGP \u001b[4;100H10s\u001b[K\r\u001b[5d"] +[1.052, "o", "\u001b[2;101H1\u001b[3d\b1\u001b[4d\b"] +[0.000, "o", "1\r\u001b[5d"] +[1.055, "o", "\u001b[2;101H3\u001b[3d\b3\u001b[4d\b3\r\u001b[5d"] +[1.050, "o", "\u001b[2;101H4\u001b[3d\b4\u001b[4d\b4\r\u001b[5d"] +[1.053, "o", "\u001b[2;101H5\u001b[3d\b5\u001b[4d\b5\r\u001b[5d"] +[0.341, "o", "\u001b[91;1H\u001b[34h\u001b[?25h\u001b[?1049l\r\u001b[?1l\u001b>"] +[0.000, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[0.648, "m", ""] +[0.604, "o", "\u001b[H\u001b[J\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[0.954, "o", "s"] +[0.000, "o", "\bss"] +[0.000, "o", "h"] +[0.001, "o", " "] +[0.000, "o", "h"] +[0.000, "o", "o"] +[0.001, "o", "s"] +[0.000, "o", "t"] +[0.001, "o", "\u001b[8D\u001b[32ms\u001b[32ms\u001b[32mh\u001b[39m\u001b[5C1"] +[0.749, "o", "\r\r\n"] +[1.053, "o", "host1: \u001b[6n"] +[1.170, "o", "cat /sys/class/net/bond0/bonding/slaves"] +[0.684, "o", "\r\n"] +[0.002, "o", "eth1 eth2\r\nhost1: \u001b[6n"] +[0.770, "m", ""] +[0.954, "o", "ip -d link show "] +[0.000, "o", "bond0.10"] +[0.788, "o", "\r\n"] +[0.002, "o", "4: bond0.10@bond0: mtu 1500 qdisc noqueue state UP mode DEFAULT group default qlen 1000\r\n link/ether 00:00:00:00:00:01 brd ff:ff:ff:ff:ff:ff promiscuity 0 minmtu 0 maxmtu 65535 \r\n vlan protocol 802.1Q id 10 addrgenmode eui64 numtxqueues 1 numrxqueues 1 gso_max_size 65536 gso_max_segs 65535 \r\n"] +[0.002, "o", "host1: \u001b[6n"] +[0.878, "m", ""] +[1.103, "o", "ip addr show bond0.10"] +[0.911, "o", "\r\n"] +[0.003, "o", "4: bond0.10@bond0: mtu 1500 qdisc noqueue state UP group default qlen 1000\r\n link/ether 00:00:00:00:00:01 brd ff:ff:ff:ff:ff:ff\r\n inet 192.168.10.1/24 scope global bond0.10\r\n valid_lft forever preferred_lft forever\r\n inet6 fe80::200:ff:fe00:1/64 scope link \r\n valid_lft forever preferred_lft forever\r\nhost1: \u001b[6n"] +[1.537, "m", ""] +[1.562, "o", "Connection to i753012.d.c.eu-nl-1.cloud.sap closed.\r\r\n"] +[0.000, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[1.324, "o", "s"] +[0.000, "o", "\bss"] +[0.000, "o", "h"] +[0.001, "o", " "] +[0.000, "o", "h"] +[0.001, "o", "o"] +[0.000, "o", "s"] +[0.000, "o", "t"] +[0.002, "o", "\u001b[8D\u001b[32ms\u001b[32ms\u001b[32mh\u001b[39m\u001b[5C2"] +[0.990, "o", "\r\r\n"] +[1.370, "o", "host2: \u001b[6n"] +[1.257, "o", "ip -d link show eth1.10"] +[0.850, "o", "\r\n"] +[0.003, "o", "3: eth1.10@eth1: mtu 9500 qdisc noqueue state UP mode DEFAULT group default qlen 1000\r\n link/ether 00:00:00:00:00:02 brd ff:ff:ff:ff:ff:ff promiscuity 0 minmtu 0 maxmtu 65535 \r\n vlan protocol 802.1Q id 10 addrgenmode eui64 numtxqueues 1 numrxqueues 1 gso_max_size 65536 gso_max_segs 65535 \r\nhost2: \u001b[6n"] +[1.103, "m", ""] +[1.401, "o", "ip addr show eth1.10"] +[0.859, "o", "\r\n"] +[0.002, "o", "3: eth1.10@eth1: mtu 9500 qdisc noqueue state UP group default qlen 1000\r\n link/ether 00:00:00:00:00:02 brd ff:ff:ff:ff:ff:ff\r\n inet 192.168.10.2/24 scope global eth1.10\r\n valid_lft forever preferred_lft forever\r\n inet6 fe80::200:ff:fe00:2/64 scope link \r\n valid_lft forever preferred_lft forever\r\n"] +[0.002, "o", "host2: \u001b[6n"] +[1.232, "m", ""] +[1.846, "o", "Connection to i753012.d.c.eu-nl-1.cloud.sap closed.\r\r\n"] +[0.001, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[0.419, "o", "\u001b[H\u001b[J\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[0.696, "o", "y"] +[0.000, "o", "\byq"] +[0.001, "o", " "] +[0.000, "o", "."] +[0.000, "o", "/"] +[0.001, "o", "k"] +[0.000, "o", "u"] +[0.000, "o", "b"] +[0.001, "o", "e"] +[0.000, "o", "r"] +[0.001, "o", "n"] +[0.000, "o", "e"] +[0.000, "o", "t"] +[0.001, "o", "e"] +[0.000, "o", "s"] +[0.000, "o", "/"] +[0.000, "o", "1"] +[0.001, "o", "2"] +[0.000, "o", "-"] +[0.000, "o", "v"] +[0.001, "o", "l"] +[0.000, "o", "a"] +[0.000, "o", "n"] +[0.001, "o", "/"] +[0.000, "o", "l"] +[0.000, "o", "e"] +[0.001, "o", "a"] +[0.000, "o", "f"] +[0.000, "o", "1"] +[0.000, "o", "-"] +[0.001, "o", "v"] +[0.000, "o", "l"] +[0.000, "o", "a"] +[0.001, "o", "n"] +[0.000, "o", "-"] +[0.000, "o", "1"] +[0.000, "o", "0"] +[0.001, "o", "."] +[0.000, "o", "y"] +[0.000, "o", "a"] +[0.000, "o", "m"] +[0.006, "o", "\u001b[41D\u001b[32my\u001b[32mq\u001b[39m \u001b[4m.\u001b[4m/\u001b[4mk\u001b[4mu\u001b[4mb\u001b[4me\u001b[4mr\u001b[4mn\u001b[4me\u001b[4mt\u001b[4me\u001b[4ms\u001b[4m/\u001b[4m1\u001b[4m2\u001b[4m-\u001b[4mv\u001b[4ml\u001b[4ma\u001b[4mn\u001b[4m/\u001b[4ml\u001b[4me\u001b[4ma\u001b[4mf\u001b[4m1\u001b[4m-\u001b[4mv\u001b[4ml\u001b[4ma\u001b[4mn\u001b[4m-\u001b[4m1\u001b[4m0\u001b[4m.\u001b[4my\u001b[4ma\u001b[4mm\u001b[4ml\u001b[24m"] +[0.789, "o", "\r\r\n"] +[0.043, "o", "\u001b[36mapiVersion\u001b[0m:\u001b[32m networking.metal.ironcore.dev/v1alpha1\u001b[0m\r\n\u001b[32m\u001b[0m\u001b[36mkind\u001b[0m:\u001b[32m VLAN\u001b[0m\r\n\u001b[32m\u001b[0m\u001b[36mmetadata\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m name\u001b[0m:\u001b[32m leaf1-vlan-10\u001b[0m\r\n\u001b[32m\u001b[0m\u001b[36mspec\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m deviceRef\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m name\u001b[0m:\u001b[32m leaf1\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mid\u001b[0m:\u001b[95m 10\u001b[0m\r\n"] +[0.000, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[0.929, "m", ""] +[1.155, "o", "k"] +[0.000, "o", "\bku"] +[0.001, "o", "b"] +[0.000, "o", "e"] +[0.000, "o", "c"] +[0.001, "o", "t"] +[0.000, "o", "l"] +[0.000, "o", " "] +[0.001, "o", "a"] +[0.000, "o", "p"] +[0.001, "o", "p"] +[0.000, "o", "l"] +[0.001, "o", "y"] +[0.000, "o", " "] +[0.000, "o", "-"] +[0.001, "o", "k"] +[0.000, "o", " "] +[0.000, "o", "."] +[0.001, "o", "/"] +[0.000, "o", "k"] +[0.001, "o", "u"] +[0.000, "o", "b"] +[0.000, "o", "e"] +[0.001, "o", "r"] +[0.000, "o", "n"] +[0.000, "o", "e"] +[0.001, "o", "t"] +[0.000, "o", "e"] +[0.000, "o", "s"] +[0.001, "o", "/"] +[0.000, "o", "1"] +[0.000, "o", "2"] +[0.000, "o", "-"] +[0.001, "o", "v"] +[0.000, "o", "l"] +[0.000, "o", "a"] +[0.002, "o", "\u001b[36D\u001b[32mk\u001b[32mu\u001b[32mb\u001b[32me\u001b[32mc\u001b[32mt\u001b[32ml\u001b[39m\u001b[10C\u001b[4m.\u001b[4m/\u001b[4mk\u001b[4mu\u001b[4mb\u001b[4me\u001b[4mr\u001b[4mn\u001b[4me\u001b[4mt\u001b[4me\u001b[4ms\u001b[4m/\u001b[4m1\u001b[4m2\u001b[4m-\u001b[4mv\u001b[4ml\u001b[4ma\u001b[4mn\u001b[24m"] +[1.179, "o", "\r\r\n"] +[0.117, "o", "vlan.networking.metal.ironcore.dev/leaf1-vlan-10 created\r\n"] +[0.006, "o", "vlan.networking.metal.ironcore.dev/leaf2-vlan-10 created\r\n"] +[0.005, "o", "vlan.networking.metal.ironcore.dev/leaf3-vlan-10 created\r\n"] +[0.000, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[1.688, "o", "w"] +[0.001, "o", "\bwa"] +[0.000, "o", "t"] +[0.001, "o", "c"] +[0.000, "o", "h"] +[0.001, "o", " "] +[0.000, "o", "k"] +[0.001, "o", "u"] +[0.000, "o", "b"] +[0.000, "o", "e"] +[0.001, "o", "c"] +[0.000, "o", "t"] +[0.000, "o", "l"] +[0.001, "o", " "] +[0.000, "o", "g"] +[0.001, "o", "e"] +[0.000, "o", "t"] +[0.000, "o", " "] +[0.000, "o", "v"] +[0.001, "o", "l"] +[0.000, "o", "a"] +[0.000, "o", "n"] +[0.001, "o", " "] +[0.000, "o", "-"] +[0.000, "o", "o"] +[0.001, "o", " "] +[0.000, "o", "w"] +[0.000, "o", "i"] +[0.000, "o", "d"] +[0.002, "o", "\u001b[29D\u001b[32mw\u001b[32ma\u001b[32mt\u001b[32mc\u001b[32mh\u001b[39m\u001b[24Ce"] +[1.165, "o", "\r\r\n"] +[0.032, "o", "\u001b(B\u001b)0\u001b[?1049h\u001b[1;91r\u001b[m\u000f\u001b[4l\u001b[?25l"] +[0.049, "o", "\u001b[H\u001b[JNAME\u001b[1;17HVLAN-ID ADMIN STATE DEVICE READY CONFIGURED OPERATIONAL AGE\r\u001b[2dleaf1-vlan-10 10\u001b[2;27HUp\u001b[2;41Hleaf1 False True\u001b[2;71HFalse\u001b[2;85H3s\r\u001b[3d"] +[0.000, "o", "leaf2-vlan-10 10\u001b[3;27HUp\u001b[3;41Hleaf2 False True\u001b[3;71HFalse\u001b[3;85H3s\r\u001b[4dleaf3-vlan-10 10\u001b[4;27HUp\u001b[4;41Hleaf3 False True\u001b[4;71HFalse\u001b[4;85H"] +[0.000, "o", "3s\r\u001b[5d"] +[1.050, "o", "\u001b[2;85H4\u001b[3d\b4\u001b[4d\b4\r\u001b[5d"] +[1.056, "o", "\u001b[2;85H5\u001b[3d\b5\u001b[4d\b5\r\u001b[5d"] +[1.054, "o", "\u001b[2;85H6\u001b[3d\b6\u001b[4d\b6\r\u001b[5d"] +[1.055, "o", "\u001b[2;85H7\u001b[3d\b7\u001b[4d\b7\r\u001b[5d"] +[1.053, "o", "\u001b[2;85H9\u001b[3d\b9\u001b[4d\b9\r\u001b[5d"] +[1.052, "o", "\u001b[2;85H10s\u001b[3;85H10s\u001b[4;85H10s\r\u001b[5d"] +[1.051, "o", "\u001b[2;86H1\u001b[3d\b1\u001b[4d\b1\r\u001b[5d"] +[1.050, "o", "\u001b[2;86H2\u001b[3d\b2\u001b[4d\b2\r\u001b[5d"] +[1.054, "o", "\u001b[2;86H3\u001b[3d\b3\u001b[4d\b3\r\u001b[5d"] +[1.049, "o", "\u001b[2;86H4\u001b[3d\b4\u001b[4d\b4\r\u001b[5d"] +[1.053, "o", "\u001b[2;86H5\u001b[3d\b5\u001b[4d\b5\r\u001b[5d"] +[1.051, "o", "\u001b[2;86H6\u001b[3d\b6\u001b[4d\b6\r\u001b[5d"] +[1.054, "o", "\u001b[2;86H7\u001b[3d\b7\u001b[4d\b7\r\u001b[5d"] +[1.052, "o", "\u001b[2;50HTrue \u001b[2;71HTrue \u001b[2;86H8\u001b[3d\b8\u001b[4d\b"] +[0.000, "o", "8\r\u001b[5d"] +[1.055, "o", "\u001b[2;86H9\u001b[3d\b9\u001b[4d\b9\r\u001b[5d"] +[1.053, "o", "\u001b[2;85H20\u001b[3d\b\b20\u001b[4d\b\b20\r\u001b[5d"] +[1.048, "o", "\u001b[2;86H1\u001b[3d\b1\u001b[4d\b"] +[0.000, "o", "1\r\u001b[5d"] +[1.053, "o", "\u001b[2;86H2\u001b[3d\b2\u001b[4d\b2\r\u001b[5d"] +[1.048, "o", "\u001b[2;86H3\u001b[3d\b3\u001b[4d\b3\r\u001b[5d"] +[1.049, "o", "\u001b[2;86H4\u001b[3d\b4\u001b[4d\b"] +[0.000, "o", "4\r\u001b[5d"] +[1.054, "o", "\u001b[2;86H5\u001b[3d\b5\u001b[4d\b5\r\u001b[5d"] +[1.051, "o", "\u001b[2;86H6\u001b[3d\b6\u001b[4d\b6\r\u001b[5d"] +[1.049, "o", "\u001b[2;86H7\u001b[3d\b7\u001b[4d\b7\r\u001b[5d"] +[1.053, "o", "\u001b[2;86H8\u001b[3;50HTrue \u001b[3;71HTrue \u001b[3;86H8\u001b[4d\b8\r\u001b[5d"] +[1.051, "o", "\u001b[2;85H30\u001b[3d\b\b30\u001b[4d\b\b30\r\u001b[5d"] +[0.906, "m", ""] +[0.147, "o", "\u001b[2;86H1\u001b[3d\b1\u001b[4d\b1\r\u001b[5d"] +[1.052, "o", "\u001b[2;86H2\u001b[3d\b2\u001b[4d\b2\r\u001b[5d"] +[1.052, "o", "\u001b[2;86H3\u001b[3d\b3\u001b[4d\b3\r\u001b[5d"] +[1.052, "o", "\u001b[2;86H4\u001b[3d\b4\u001b[4d\b4\r\u001b[5d"] +[1.049, "o", "\u001b[2;86H5\u001b[3d\b5\u001b[4d\b5\r\u001b[5d"] +[1.051, "o", "\u001b[2;86H6\u001b[3d\b6\u001b[4d\b6\r\u001b[5d"] +[1.052, "o", "\u001b[2;86H7\u001b[3d\b7\u001b[4d\b7\r\u001b[5d"] +[0.252, "o", "\u001b[91;1H\u001b[34h\u001b[?25h\u001b[?1049l\r\u001b[?1l\u001b>"] +[0.000, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[0.737, "m", ""] +[0.759, "o", "\u001b[H\u001b[J\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[0.780, "o", "y"] +[0.001, "o", "\byq"] +[0.000, "o", " "] +[0.000, "o", "."] +[0.001, "o", "/"] +[0.000, "o", "k"] +[0.001, "o", "u"] +[0.000, "o", "b"] +[0.000, "o", "e"] +[0.001, "o", "r"] +[0.000, "o", "n"] +[0.000, "o", "e"] +[0.001, "o", "t"] +[0.000, "o", "e"] +[0.000, "o", "s"] +[0.001, "o", "/"] +[0.000, "o", "1"] +[0.000, "o", "3"] +[0.001, "o", "-"] +[0.000, "o", "h"] +[0.000, "o", "o"] +[0.001, "o", "s"] +[0.000, "o", "t"] +[0.000, "o", "/"] +[0.000, "o", "l"] +[0.001, "o", "e"] +[0.000, "o", "a"] +[0.000, "o", "f"] +[0.001, "o", "1"] +[0.000, "o", "-"] +[0.000, "o", "e"] +[0.000, "o", "t"] +[0.001, "o", "h"] +[0.000, "o", "1"] +[0.000, "o", "-"] +[0.001, "o", "1"] +[0.000, "o", "0"] +[0.000, "o", "."] +[0.001, "o", "y"] +[0.000, "o", "a"] +[0.000, "o", "m"] +[0.001, "o", "l"] +[0.000, "o", " "] +[0.000, "o", "."] +[0.000, "o", "/"] +[0.001, "o", "k"] +[0.000, "o", "u"] +[0.000, "o", "b"] +[0.000, "o", "e"] +[0.001, "o", "r"] +[0.000, "o", "n"] +[0.000, "o", "e"] +[0.001, "o", "t"] +[0.000, "o", "e"] +[0.000, "o", "s"] +[0.000, "o", "/"] +[0.001, "o", "1"] +[0.000, "o", "3"] +[0.000, "o", "-"] +[0.000, "o", "h"] +[0.001, "o", "o"] +[0.000, "o", "s"] +[0.000, "o", "t"] +[0.001, "o", "/"] +[0.000, "o", "l"] +[0.000, "o", "e"] +[0.000, "o", "a"] +[0.001, "o", "f"] +[0.000, "o", "1"] +[0.000, "o", "-"] +[0.000, "o", "p"] +[0.001, "o", "o"] +[0.000, "o", "1"] +[0.000, "o", "0"] +[0.001, "o", "."] +[0.000, "o", "y"] +[0.000, "o", "a"] +[0.000, "o", "m"] +[0.006, "o", "\u001b[78D\u001b[32my\u001b[32mq\u001b[39m \u001b[4m.\u001b[4m/\u001b[4mk\u001b[4mu\u001b[4mb\u001b[4me\u001b[4mr\u001b[4mn\u001b[4me\u001b[4mt\u001b[4me\u001b[4ms\u001b[4m/\u001b[4m1\u001b[4m3\u001b[4m-\u001b[4mh\u001b[4mo\u001b[4ms\u001b[4mt\u001b[4m/\u001b[4ml\u001b[4me\u001b[4ma\u001b[4mf\u001b[4m1\u001b[4m-\u001b[4me\u001b[4mt\u001b[4mh\u001b[4m1\u001b[4m-\u001b[4m1\u001b[4m0\u001b[4m.\u001b[4my\u001b[4ma\u001b[4mm\u001b[4ml\u001b[24m \u001b[4m.\u001b[4m/\u001b[4mk\u001b[4mu\u001b[4mb\u001b[4me\u001b[4mr\u001b[4mn\u001b[4me\u001b[4mt\u001b[4me\u001b[4ms\u001b[4m/\u001b[4m1\u001b[4m3\u001b[4m-\u001b[4mh\u001b[4mo\u001b[4ms\u001b[4mt\u001b[4m/\u001b[4ml\u001b[4me\u001b[4ma\u001b[4mf\u001b[4m1\u001b[4m-\u001b[4mp\u001b[4mo\u001b[4m1\u001b[4m0\u001b[4m.\u001b[4my\u001b[4ma\u001b[4mm\u001b[4ml\u001b[24m"] +[0.890, "o", "\r\r\n"] +[0.029, "o", "\u001b[36mapiVersion\u001b[0m:\u001b[32m networking.metal.ironcore.dev/v1alpha1\u001b[0m\r\n\u001b[32m\u001b[0m\u001b[36mkind\u001b[0m:\u001b[32m Interface\u001b[0m\r\n\u001b[32m\u001b[0m\u001b[36mmetadata\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m labels\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m networking.metal.ironcore.dev/role\u001b[0m:\u001b[32m host\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mname\u001b[0m:\u001b[32m leaf1-eth1-10\u001b[0m\r\n\u001b[32m\u001b[0m\u001b[36mspec\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m deviceRef\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m name\u001b[0m:\u001b[32m leaf1\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mname\u001b[0m:\u001b[32m eth1/10\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mdescription\u001b[0m:\u001b[32m Leaf1 to Host1\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36madminState\u001b[0m:\u001b[32m Up\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mtype\u001b[0m:\u001b[32m Physical\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mswitchport\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m mode\u001b[0m:\u001b[32m Trunk\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mnativeVlan\u001b[0m:\u001b[95m 1\u001b[0m\r\n\u001b[95m \u001b[0m\u001b[36mallowedVlans\u001b[0m: [\u001b[95m10\u001b[0m]\r\n"] +[0.000, "o", "---\r\n\u001b[36mapiVersion\u001b[0m:\u001b[32m networking.metal.ironcore.dev/v1alpha1\u001b[0m\r\n\u001b[32m\u001b[0m\u001b[36mkind\u001b[0m:\u001b[32m Interface\u001b[0m\r\n\u001b[32m\u001b[0m\u001b[36mmetadata\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m labels\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m networking.metal.ironcore.dev/role\u001b[0m:\u001b[32m host\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mname\u001b[0m:\u001b[32m leaf1-po-10\u001b[0m\r\n\u001b[32m\u001b[0m\u001b[36mspec\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m deviceRef\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m name\u001b[0m:\u001b[32m leaf1\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mname\u001b[0m:\u001b[32m po10\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mdescription\u001b[0m:\u001b[32m vPC Leaf1 to Host1\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36madminState\u001b[0m:\u001b[32m Up\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mtype\u001b[0m:\u001b[32m Aggregate\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mswitchport\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m mode\u001b[0m:\u001b[32m Trunk\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mnativeVlan\u001b[0m:\u001b[95m 1\u001b[0m\r\n\u001b[95m \u001b[0m\u001b[36mallowedVlans\u001b[0m: [\u001b[95m10\u001b[0m]\u001b[36m\u001b[0m\r\n\u001b[36m aggregation\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m controlProtocol\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m mode\u001b[0m:\u001b[32m Active\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mmemberInterfaceRefs\u001b[0m:\r\n -\u001b[36m name\u001b[0m:\u001b[32m leaf1-eth1-10\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mmultichassis\u001b[0m:\u001b[36m\u001b[0m\r"] +[0.000, "o", "\r\n\u001b[36m id\u001b[0m:\u001b[95m 10\u001b[0m\r\n"] +[0.000, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[0.811, "m", ""] +[0.811, "o", "k"] +[0.000, "o", "\bku"] +[0.001, "o", "b"] +[0.000, "o", "e"] +[0.000, "o", "c"] +[0.001, "o", "t"] +[0.000, "o", "l"] +[0.000, "o", " "] +[0.001, "o", "a"] +[0.000, "o", "p"] +[0.000, "o", "p"] +[0.001, "o", "l"] +[0.000, "o", "y"] +[0.000, "o", " "] +[0.000, "o", "-"] +[0.001, "o", "k"] +[0.000, "o", " "] +[0.000, "o", "."] +[0.001, "o", "/"] +[0.000, "o", "k"] +[0.000, "o", "u"] +[0.000, "o", "b"] +[0.001, "o", "e"] +[0.000, "o", "r"] +[0.000, "o", "n"] +[0.000, "o", "e"] +[0.001, "o", "t"] +[0.000, "o", "e"] +[0.000, "o", "s"] +[0.001, "o", "/"] +[0.000, "o", "1"] +[0.000, "o", "3"] +[0.000, "o", "-"] +[0.001, "o", "h"] +[0.000, "o", "o"] +[0.000, "o", "s"] +[0.002, "o", "\u001b[36D\u001b[32mk\u001b[32mu\u001b[32mb\u001b[32me\u001b[32mc\u001b[32mt\u001b[32ml\u001b[39m\u001b[10C\u001b[4m.\u001b[4m/\u001b[4mk\u001b[4mu\u001b[4mb\u001b[4me\u001b[4mr\u001b[4mn\u001b[4me\u001b[4mt\u001b[4me\u001b[4ms\u001b[4m/\u001b[4m1\u001b[4m3\u001b[4m-\u001b[4mh\u001b[4mo\u001b[4ms\u001b[4mt\u001b[24m"] +[0.590, "o", "\r\r\n"] +[0.078, "o", "interface.networking.metal.ironcore.dev/leaf1-eth1-10 created\r\n"] +[0.004, "o", "interface.networking.metal.ironcore.dev/leaf1-po-10 created\r\n"] +[0.004, "o", "interface.networking.metal.ironcore.dev/leaf2-eth1-10 created\r\n"] +[0.006, "o", "interface.networking.metal.ironcore.dev/leaf2-po-10 created\r\n"] +[0.005, "o", "interface.networking.metal.ironcore.dev/leaf3-eth1-10 created\r\n"] +[0.000, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[0.948, "o", "w"] +[0.001, "o", "\bwa"] +[0.000, "o", "t"] +[0.000, "o", "c"] +[0.001, "o", "h"] +[0.000, "o", " "] +[0.000, "o", "k"] +[0.000, "o", "u"] +[0.001, "o", "b"] +[0.000, "o", "e"] +[0.001, "o", "c"] +[0.000, "o", "t"] +[0.000, "o", "l"] +[0.001, "o", " "] +[0.000, "o", "g"] +[0.000, "o", "e"] +[0.001, "o", "t"] +[0.000, "o", " "] +[0.000, "o", "i"] +[0.000, "o", "n"] +[0.001, "o", "t"] +[0.000, "o", "e"] +[0.000, "o", "r"] +[0.001, "o", "f"] +[0.000, "o", "a"] +[0.000, "o", "c"] +[0.000, "o", "e"] +[0.001, "o", " "] +[0.000, "o", "-"] +[0.000, "o", "l"] +[0.000, "o", " "] +[0.001, "o", "n"] +[0.000, "o", "e"] +[0.000, "o", "t"] +[0.001, "o", "w"] +[0.000, "o", "o"] +[0.000, "o", "r"] +[0.000, "o", "k"] +[0.001, "o", "i"] +[0.000, "o", "n"] +[0.000, "o", "g"] +[0.000, "o", "."] +[0.001, "o", "m"] +[0.000, "o", "e"] +[0.000, "o", "t"] +[0.000, "o", "a"] +[0.001, "o", "l"] +[0.000, "o", "."] +[0.000, "o", "i"] +[0.001, "o", "r"] +[0.000, "o", "o"] +[0.000, "o", "n"] +[0.000, "o", "c"] +[0.001, "o", "o"] +[0.000, "o", "r"] +[0.000, "o", "e"] +[0.001, "o", "."] +[0.000, "o", "d"] +[0.000, "o", "e"] +[0.001, "o", "v"] +[0.000, "o", "/"] +[0.000, "o", "r"] +[0.000, "o", "o"] +[0.001, "o", "l"] +[0.000, "o", "e"] +[0.000, "o", "="] +[0.001, "o", "h"] +[0.000, "o", "o"] +[0.000, "o", "s"] +[0.000, "o", "t"] +[0.001, "o", " "] +[0.000, "o", "-"] +[0.000, "o", "o"] +[0.000, "o", " "] +[0.001, "o", "w"] +[0.000, "o", "i"] +[0.000, "o", "d"] +[0.002, "o", "\u001b[77D\u001b[32mw\u001b[32ma\u001b[32mt\u001b[32mc\u001b[32mh\u001b[39m\u001b[72Ce"] +[0.834, "o", "\r\r\n"] +[0.006, "o", "\u001b(B\u001b)0\u001b[?1049h\u001b[1;91r\u001b[m\u000f\u001b[4l\u001b[?25l"] +[0.048, "o", "\u001b[H\u001b[JNAME\u001b[1;17HINTERFACE TYPE\u001b[1;41HADMIN STATE DESCRIPTION\u001b[1;76HMTU DEVICE READY CONFIGURED OPERATIONAL AGE\r\u001b[2dleaf1-eth1-10 eth1/10 Physical Up\u001b[2;55HLeaf1 to Host1\u001b[2;82H"] +[0.000, "o", "leaf1\u001b[2;128H2s\r\u001b[3dleaf1-po-10 po10\u001b[3;29HAggregate Up\u001b[3;55H"] +[0.000, "o", "vPC Leaf1 to Host1\u001b[3;82H"] +[0.000, "o", "leaf1\u001b[3;128H2s\r\u001b[4dleaf2-eth1-10 eth1/10 Physical Up\u001b[4;55H"] +[0.000, "o", "Leaf2 to Host1\u001b[4;82H"] +[0.000, "o", "leaf2 True\u001b[101GTrue\u001b[4;114HTrue\u001b[4;128H2s\r\u001b[5dleaf2-po-10 po10\u001b[5;29H"] +[0.000, "o", "Aggregate Up\u001b[5;55HvPC Leaf2 to Host1\u001b[5;82Hleaf2 Unknown\u001b[5;128H2s\r\u001b[6dleaf3-eth1-10 eth1/10 Physical Up\u001b[6;55HLeaf3 to Host2\u001b[6;82Hleaf3 True\u001b[101GTrue\u001b[6;114HTrue\u001b[6;128H"] +[0.000, "o", "2s\r\u001b[7d"] +[1.053, "o", "\u001b[2;128H3\u001b[3d\b3\u001b[4d\b3\u001b[5d\b"] +[0.000, "o", "3\u001b[6d\b3\r\u001b[7d"] +[1.052, "o", "\u001b[2;128H4\u001b[3d\b4\u001b[4d\b4\u001b[5d\b"] +[0.000, "o", "4\u001b[6d\b4\r\u001b[7d"] +[1.056, "o", "\u001b[2;91HUnknown Unknown\u001b[114GUnknown\u001b[128G5\u001b[3d\b"] +[0.000, "o", "5\u001b[4d\b5\u001b[5d\b"] +[0.000, "o", "5\u001b[6d\b5\r\u001b[7d"] +[1.052, "o", "\u001b[2;128H6\u001b[3d\b6\u001b[4d\b6\u001b[5;101HUnknown\u001b[114GUnknown\u001b[128G"] +[0.000, "o", "6\u001b[6d\b6\r\u001b[7d"] +[1.056, "o", "\u001b[2;128H7\u001b[3d\b7\u001b[4d\b"] +[0.000, "o", "7\u001b[5;91HFalse True \u001b[114GFalse \u001b[128G"] +[0.000, "o", "7\u001b[6d\b"] +[0.000, "o", "7\r\u001b[7d"] +[1.052, "o", "\u001b[2;128H8\u001b[3d\b8\u001b[4d\b8\u001b[5d\b"] +[0.000, "o", "8\u001b[6d\b8\r\u001b[7d"] +[1.051, "o", "\u001b[2;128H9\u001b[3d\b9\u001b[4d\b"] +[0.000, "o", "9\u001b[5d\b9\u001b[6d\b9\r\u001b[7d"] +[1.055, "o", "\u001b[2;128H10s\u001b[3;128H10s\u001b[4;128H10s\u001b[5;128H1"] +[0.000, "o", "0s\u001b[6;128H10s\r\u001b[7d"] +[1.055, "o", "\u001b[2;129H1\u001b[3d\b1\u001b[4d\b1\u001b[5d\b"] +[0.000, "o", "1\u001b[6d\b1\r\u001b[7d"] +[1.057, "o", "\u001b[1;96H\u001b[2P\u001b[2;91HTrue True True 12s\u001b[K\u001b[3;126H12s\u001b[K\u001b[4;99HTrue \u001b[112GTrue \u001b[4;126H12"] +[0.000, "o", "s\u001b[K\u001b[5;99HTrue \u001b[112GFalse \u001b[126G12s\u001b[K\u001b[6;99H"] +[0.000, "o", "True \u001b[112G"] +[0.000, "o", "True \u001b[6;126H12"] +[0.000, "o", "s\u001b[K\r\u001b[7d"] +[1.053, "o", "\u001b[2;127H3\u001b[3d\b3\u001b[4d\b"] +[0.000, "o", "3\u001b[5d\b3\u001b[6d\b3\r\u001b[7d"] +[1.057, "o", "\u001b[2;127H4\u001b[3d\b4\u001b[4d\b4\u001b[5d\b4\u001b[6d\b"] +[0.000, "o", "4\r\u001b[7d"] +[1.057, "o", "\u001b[2;127H5\u001b[3d\b5\u001b[4d\b5\u001b[5d\b"] +[0.000, "o", "5\u001b[6d\b5\r\u001b[7d"] +[1.053, "o", "\u001b[2;127H6\u001b[3d\b6\u001b[4d\b6\u001b[5d\b"] +[0.000, "o", "6\u001b[6d\b6\r\u001b[7d"] +[1.050, "o", "\u001b[2;127H7\u001b[3d\b7\u001b[4d\b7\u001b[5d\b"] +[0.000, "o", "7\u001b[6d\b7\r\u001b[7d"] +[1.055, "o", "\u001b[2;127H8\u001b[3d\b8\u001b[4d\b8\u001b[5d\b8\u001b[6d\b"] +[0.000, "o", "8\r\u001b[7d"] +[1.053, "o", "\u001b[2;126H20\u001b[3d\b\b20\u001b[4d\b\b20\u001b[5d\b\b"] +[0.000, "o", "20\u001b[6d\b\b20\r\u001b[7d"] +[1.054, "o", "\u001b[2;127H1\u001b[3d\b1\u001b[4d\b1\u001b[5d\b1\u001b[6d\b"] +[0.000, "o", "1\r\u001b[7d"] +[1.048, "o", "\u001b[2;127H2\u001b[3d\b2\u001b[4d\b"] +[0.000, "o", "2\u001b[5d\b2\u001b[6d\b2\r\u001b[7d"] +[1.051, "o", "\u001b[2;127H3\u001b[3d\b3\u001b[4d\b3\u001b[5d\b"] +[0.000, "o", "3\u001b[6d\b3\r\u001b[7d"] +[1.052, "o", "\u001b[2;127H4\u001b[3d\b4\u001b[4d\b4\u001b[5d\b"] +[0.000, "o", "4\u001b[6d\b4\r\u001b[7d"] +[1.052, "o", "\u001b[1;96H CONFIGURED OPERATIONAL AGE\u001b[2;99H True\u001b[112G True\u001b[2;126H 25s\u001b[3;91HUnknown Unknown\u001b[114GUnknown 25s\u001b[4;99H"] +[0.000, "o", " True\u001b[112G True\u001b[4;126H 25s\u001b[5;99H True\u001b[112G False\u001b[126G "] +[0.000, "o", "25s\u001b[6;99H True\u001b[112G True\u001b[6;126H 25s\r\u001b[7d"] +[1.047, "o", "\u001b[2;129H6\u001b[3d\b6\u001b[4;91HFalse\u001b[4;114HFalse\u001b[4;129H6\u001b[5d\b"] +[0.000, "o", "6\u001b[6d\b6\r\u001b[7d"] +[1.049, "o", "\u001b[2;129H7\u001b[3d\b7\u001b[4d\b7\u001b[5d\b"] +[0.000, "o", "7\u001b[6d\b7\r\u001b[7d"] +[1.053, "o", "\u001b[1;96H\u001b[2P\u001b[2;99HTrue \u001b[112GTrue \u001b[2;126H28s\u001b[K\u001b[3;91HFalse True False 28s\u001b[K\u001b[4;99H"] +[0.000, "o", "True \u001b[112GFalse \u001b[126G28"] +[0.000, "o", "s\u001b[K\u001b[5;99HTrue \u001b[112G"] +[0.000, "o", "False \u001b[126G"] +[0.000, "o", "28"] +[0.000, "o", "s\u001b[K\u001b[6;99H"] +[0.000, "o", "True \u001b[112G"] +[0.000, "o", "True \u001b[6;126H28"] +[0.000, "o", "s\u001b[K\r\u001b[7d"] +[1.051, "o", "\u001b[2;127H9\u001b[3d\b9\u001b[4d\b9\u001b[5d\b"] +[0.000, "o", "9\u001b[6d\b9\r\u001b[7d"] +[1.050, "o", "\u001b[2;126H30\u001b[3d\b\b30\u001b[4d\b\b30\u001b[5d\b\b30\u001b[6d\b\b"] +[0.000, "o", "30\r\u001b[7d"] +[1.053, "o", "\u001b[2;127H1\u001b[3d\b1\u001b[4;91HTrue \u001b[4;112HTrue \u001b[4;127H1\u001b[5d\b"] +[0.000, "o", "1\u001b[6d\b1\r\u001b[7d"] +[1.050, "o", "\u001b[2;127H2\u001b[3d\b2\u001b[4d\b2\u001b[5d\b"] +[0.000, "o", "2\u001b[6d\b2\r\u001b[7d"] +[1.049, "o", "\u001b[2;127H3\u001b[3d\b3\u001b[4d\b3\u001b[5;91HTrue \u001b[5;112HTrue \u001b[5;127H"] +[0.000, "o", "3\u001b[6d\b3\r\u001b[7d"] +[1.050, "o", "\u001b[2;127H4\u001b[3d\b4\u001b[4d\b4\u001b[5d\b"] +[0.000, "o", "4\u001b[6d\b4\r\u001b[7d"] +[1.050, "o", "\u001b[2;127H5\u001b[3d\b5\u001b[4d\b5\u001b[5d\b"] +[0.000, "o", "5\u001b[6d\b5\r\u001b[7d"] +[1.051, "o", "\u001b[2;127H6\u001b[3d\b6\u001b[4d\b6\u001b[5d\b6\u001b[6d\b"] +[0.000, "o", "6\r\u001b[7d"] +[1.063, "o", "\u001b[2;127H7\u001b[3d\b7\u001b[4d\b7\u001b[5d\b7\u001b[6d\b7\r\u001b[7d"] +[1.054, "o", "\u001b[2;127H8\u001b[3d\b8\u001b[4d\b"] +[0.000, "o", "8\u001b[5d\b8\u001b[6d\b8\r\u001b[7d"] +[1.054, "o", "\u001b[2;126H40\u001b[3;91HTrue \u001b[3;112HTrue \u001b[3;126H40\u001b[4d\b\b40\u001b[5d\b\b40\u001b[6d\b\b40\r\u001b[7d"] +[1.054, "o", "\u001b[2;127H1\u001b[3d\b1\u001b[4d\b1\u001b[5d\b"] +[0.000, "o", "1\u001b[6d\b1\r\u001b[7d"] +[0.663, "o", "\u001b[91;1H\u001b[34h\u001b[?25h\u001b[?1049l\r\u001b[?1l\u001b>"] +[0.000, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[0.884, "m", ""] +[0.797, "o", "\u001b[H\u001b[J\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[0.676, "o", "y"] +[0.000, "o", "\byq"] +[0.001, "o", " "] +[0.000, "o", "."] +[0.000, "o", "/"] +[0.000, "o", "k"] +[0.001, "o", "u"] +[0.000, "o", "b"] +[0.000, "o", "e"] +[0.001, "o", "r"] +[0.000, "o", "n"] +[0.001, "o", "e"] +[0.000, "o", "t"] +[0.000, "o", "e"] +[0.001, "o", "s"] +[0.000, "o", "/"] +[0.000, "o", "1"] +[0.001, "o", "4"] +[0.000, "o", "-"] +[0.000, "o", "v"] +[0.000, "o", "x"] +[0.001, "o", "l"] +[0.000, "o", "a"] +[0.000, "o", "n"] +[0.001, "o", "/"] +[0.000, "o", "l"] +[0.000, "o", "e"] +[0.000, "o", "a"] +[0.001, "o", "f"] +[0.000, "o", "1"] +[0.000, "o", "-"] +[0.001, "o", "v"] +[0.000, "o", "x"] +[0.000, "o", "l"] +[0.001, "o", "a"] +[0.000, "o", "n"] +[0.000, "o", "-"] +[0.001, "o", "1"] +[0.000, "o", "0"] +[0.000, "o", "0"] +[0.000, "o", "0"] +[0.001, "o", "1"] +[0.000, "o", "0"] +[0.000, "o", "."] +[0.001, "o", "y"] +[0.000, "o", "a"] +[0.000, "o", "m"] +[0.006, "o", "\u001b[47D\u001b[32my\u001b[32mq\u001b[39m \u001b[4m.\u001b[4m/\u001b[4mk\u001b[4mu\u001b[4mb\u001b[4me\u001b[4mr\u001b[4mn\u001b[4me\u001b[4mt\u001b[4me\u001b[4ms\u001b[4m/\u001b[4m1\u001b[4m4\u001b[4m-\u001b[4mv\u001b[4mx\u001b[4ml\u001b[4ma\u001b[4mn\u001b[4m/\u001b[4ml\u001b[4me\u001b[4ma\u001b[4mf\u001b[4m1\u001b[4m-\u001b[4mv\u001b[4mx\u001b[4ml\u001b[4ma\u001b[4mn\u001b[4m-\u001b[4m1\u001b[4m0\u001b[4m0\u001b[4m0\u001b[4m1\u001b[4m0\u001b[4m.\u001b[4my\u001b[4ma\u001b[4mm\u001b[4ml\u001b[24m"] +[0.626, "o", "\r\r\n"] +[0.008, "o", "\u001b[36mapiVersion\u001b[0m:\u001b[32m networking.metal.ironcore.dev/v1alpha1\u001b[0m\r\n\u001b[32m\u001b[0m\u001b[36mkind\u001b[0m:\u001b[32m EVPNInstance\u001b[0m\r\n\u001b[32m\u001b[0m\u001b[36mmetadata\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m name\u001b[0m:\u001b[32m leaf1-vxlan-100010\u001b[0m\r\n\u001b[32m\u001b[0m\u001b[36mspec\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m deviceRef\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m name\u001b[0m:\u001b[32m leaf1\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mvni\u001b[0m:\u001b[95m 100010\u001b[0m\r\n\u001b[95m \u001b[0m\u001b[36mtype\u001b[0m:\u001b[32m Bridged\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mmulticastGroupAddress\u001b[0m:\u001b[32m 239.1.1.100\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mvlanRef\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m name\u001b[0m:\u001b[32m leaf1-vlan-10\u001b[0m\r\n"] +[0.000, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[0.706, "m", ""] +[0.788, "o", "k"] +[0.001, "o", "\bku"] +[0.000, "o", "b"] +[0.001, "o", "e"] +[0.000, "o", "c"] +[0.000, "o", "t"] +[0.001, "o", "l"] +[0.000, "o", " "] +[0.001, "o", "a"] +[0.000, "o", "p"] +[0.001, "o", "p"] +[0.000, "o", "l"] +[0.000, "o", "y"] +[0.001, "o", " "] +[0.000, "o", "-"] +[0.001, "o", "k"] +[0.000, "o", " "] +[0.000, "o", "."] +[0.001, "o", "/"] +[0.000, "o", "k"] +[0.000, "o", "u"] +[0.001, "o", "b"] +[0.000, "o", "e"] +[0.000, "o", "r"] +[0.000, "o", "n"] +[0.001, "o", "e"] +[0.000, "o", "t"] +[0.000, "o", "e"] +[0.001, "o", "s"] +[0.000, "o", "/"] +[0.000, "o", "1"] +[0.001, "o", "4"] +[0.000, "o", "-"] +[0.000, "o", "v"] +[0.001, "o", "x"] +[0.000, "o", "l"] +[0.000, "o", "a"] +[0.002, "o", "\u001b[37D\u001b[32mk\u001b[32mu\u001b[32mb\u001b[32me\u001b[32mc\u001b[32mt\u001b[32ml\u001b[39m\u001b[10C\u001b[4m.\u001b[4m/\u001b[4mk\u001b[4mu\u001b[4mb\u001b[4me\u001b[4mr\u001b[4mn\u001b[4me\u001b[4mt\u001b[4me\u001b[4ms\u001b[4m/\u001b[4m1\u001b[4m4\u001b[4m-\u001b[4mv\u001b[4mx\u001b[4ml\u001b[4ma\u001b[4mn\u001b[24m"] +[0.609, "o", "\r\r\n"] +[0.079, "o", "evpninstance.networking.metal.ironcore.dev/leaf1-vxlan-100010 created\r\n"] +[0.006, "o", "evpninstance.networking.metal.ironcore.dev/leaf2-vxlan-100010 created\r\n"] +[0.005, "o", "evpninstance.networking.metal.ironcore.dev/leaf3-vxlan-100010 created\r\n"] +[0.000, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[0.840, "o", "w"] +[0.000, "o", "\bwa"] +[0.001, "o", "t"] +[0.000, "o", "c"] +[0.001, "o", "h"] +[0.000, "o", " "] +[0.000, "o", "k"] +[0.001, "o", "u"] +[0.000, "o", "b"] +[0.000, "o", "e"] +[0.001, "o", "c"] +[0.000, "o", "t"] +[0.000, "o", "l"] +[0.001, "o", " "] +[0.000, "o", "g"] +[0.000, "o", "e"] +[0.000, "o", "t"] +[0.001, "o", " "] +[0.000, "o", "e"] +[0.000, "o", "v"] +[0.001, "o", "i"] +[0.000, "o", " "] +[0.000, "o", "-"] +[0.001, "o", "o"] +[0.000, "o", " "] +[0.000, "o", "w"] +[0.000, "o", "i"] +[0.001, "o", "d"] +[0.001, "o", "\u001b[28D\u001b[32mw\u001b[32ma\u001b[32mt\u001b[32mc\u001b[32mh\u001b[39m\u001b[23Ce"] +[1.125, "o", "\r\r\n"] +[0.004, "o", "\u001b(B\u001b)0\u001b[?1049h\u001b[1;91r\u001b[m\u000f\u001b[4l\u001b[?25l"] +[0.048, "o", "\u001b[H\u001b[JNAME\u001b[1;22HDEVICE TYPE\u001b[41GVNI\u001b[50GREADY AGE\r\u001b[2dleaf1-vxlan-100010 leaf1 Bridged 100010\u001b[2;58H2s\r\u001b[3d"] +[0.000, "o", "leaf2-vxlan-100010 leaf2 Bridged 100010\u001b[3;58H2s\r\u001b[4dleaf3-vxlan-100010 leaf3 Bridged 100010\u001b[4;58H"] +[0.000, "o", "2s\r\u001b[5d"] +[1.054, "o", "\u001b[2;58H3\u001b[3d\b3\u001b[4d\b3\r\u001b[5d"] +[1.052, "o", "\u001b[2;58H4\u001b[3d\b4\u001b[4d\b4\r\u001b[5d"] +[1.050, "o", "\u001b[1;55H AGE\u001b[2;50HUnknown 5s\u001b[3;50HUnknown 5s\u001b[4;50HUnknown 5s\r\u001b[5d"] +[1.050, "o", "\u001b[2;60H6\u001b[3d\b6\u001b[4d\b6\r\u001b[5d"] +[1.051, "o", "\u001b[1;55H\u001b[2P\u001b[2;50HTrue 7s\u001b[K\u001b[3;50HTrue 7s\u001b[K\u001b[4;50HTrue 7s\u001b[K\r\u001b[5d"] +[1.049, "o", "\u001b[2;58H8\u001b[3d\b8\u001b[4d\b8\r\u001b[5d"] +[1.051, "o", "\u001b[2;58H9\u001b[3d\b9\u001b[4d\b9\r\u001b[5d"] +[1.053, "o", "\u001b[2;58H10s\u001b[3;58H10s\u001b[4;58H10s\r\u001b[5d"] +[0.571, "o", "\u001b[91;1H\u001b[34h\u001b[?25h\u001b[?1049l\r\u001b[?1l\u001b>"] +[0.000, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[0.560, "m", ""] +[0.538, "o", "\u001b[H\u001b[J\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[0.949, "o", "s"] +[0.000, "o", "\bss"] +[0.001, "o", "h"] +[0.000, "o", " "] +[0.000, "o", "h"] +[0.001, "o", "o"] +[0.000, "o", "s"] +[0.000, "o", "t"] +[0.001, "o", "\u001b[8D\u001b[32ms\u001b[32ms\u001b[32mh\u001b[39m\u001b[5C1"] +[0.640, "o", "\r\r\n"] +[1.007, "o", "host1: \u001b[6n"] +[1.347, "o", "ping 192.168.10.2"] +[0.824, "o", "\r\n"] +[0.002, "o", "PING 192.168.10.2 (192.168.10.2) 56(84) bytes of data.\r\n"] +[0.021, "o", "64 bytes from 192.168.10.2: icmp_seq=1 ttl=64 time=19.5 ms\r\n"] +[0.994, "o", "64 bytes from 192.168.10.2: icmp_seq=2 ttl=64 time=13.5 ms\r\n"] +[0.999, "o", "64 bytes from 192.168.10.2: icmp_seq=3 ttl=64 time=10.4 ms\r\n"] +[1.007, "o", "64 bytes from 192.168.10.2: icmp_seq=4 ttl=64 time=15.7 ms\r\n"] +[1.000, "o", "64 bytes from 192.168.10.2: icmp_seq=5 ttl=64 time=13.7 ms\r\n"] +[1.001, "o", "64 bytes from 192.168.10.2: icmp_seq=6 ttl=64 time=13.2 ms\r\n"] +[0.998, "o", "64 bytes from 192.168.10.2: icmp_seq=7 ttl=64 time=10.0 ms\r\n"] +[1.008, "o", "64 bytes from 192.168.10.2: icmp_seq=8 ttl=64 time=16.8 ms\r\n"] +[0.464, "o", "^C\r\n--- 192.168.10.2 ping statistics ---\r\n8 packets transmitted, 8 received, 0% packet loss, time 7010ms\r\nrtt min/avg/max/mdev = 10.022/14.103/19.541/2.981 ms\r\nhost1: \u001b[6n"] +[1.788, "m", ""] +[1.518, "o", "Connection to i753012.d.c.eu-nl-1.cloud.sap closed.\r\r\n"] +[0.660, "o", "\u001b[H\u001b[J\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[0.794, "o", "k"] +[0.000, "o", "\bku"] +[0.001, "o", "b"] +[0.000, "o", "e"] +[0.000, "o", "c"] +[0.001, "o", "t"] +[0.000, "o", "l"] +[0.000, "o", " "] +[0.001, "o", "g"] +[0.000, "o", "e"] +[0.001, "o", "t"] +[0.000, "o", " "] +[0.000, "o", "b"] +[0.000, "o", "g"] +[0.001, "o", "p"] +[0.000, "o", "p"] +[0.000, "o", "e"] +[0.001, "o", "e"] +[0.000, "o", "r"] +[0.000, "o", " "] +[0.001, "o", "-"] +[0.000, "o", "o"] +[0.000, "o", " "] +[0.000, "o", "w"] +[0.001, "o", "i"] +[0.000, "o", "d"] +[0.006, "o", "\u001b[26D\u001b[32mk\u001b[32mu\u001b[32mb\u001b[32me\u001b[32mc\u001b[32mt\u001b[32ml\u001b[39m\u001b[19Ce"] +[0.860, "o", "\r\r\n"] +[0.046, "o", "NAME DEVICE READY CONFIGURED OPERATIONAL SESSION STATE LAST ESTABLISHED ADVERTISED PREFIXES AGE\r\nleaf1-spine1 leaf1 True True True "] +[0.000, "o", " Established 40m 1 (L2vpnEvpn) 40m\r\nleaf1-spine2 leaf1 True True True "] +[0.000, "o", "Established "] +[0.000, "o", "40m "] +[0.000, "o", "1 (L2vpnEvpn) "] +[0.000, "o", " "] +[0.000, "o", "40m"] +[0.000, "o", "\r\n"] +[0.000, "o", "leaf2-spine1"] +[0.000, "o", " leaf2 True"] +[0.000, "o", " True "] +[0.000, "o", "True"] +[0.000, "o", " Established 41m 1 (L2vpnEvpn) 40m"] +[0.000, "o", "\r\nleaf2-spine2 leaf2 "] +[0.000, "o", "True"] +[0.000, "o", " "] +[0.000, "o", "True "] +[0.000, "o", " "] +[0.000, "o", "True Established "] +[0.000, "o", "40m 1 (L2vpnEvpn) 40m\r\nleaf3-spine1 leaf3 "] +[0.000, "o", "True True "] +[0.000, "o", " True Established "] +[0.000, "o", "40m 1 (L2vpnEvpn)"] +[0.000, "o", " 40m\r\nleaf3-spine2 leaf3 "] +[0.000, "o", "True "] +[0.000, "o", "True"] +[0.000, "o", " "] +[0.000, "o", "True "] +[0.000, "o", "Established 40m "] +[0.000, "o", " 1 (L2vpnEvpn)"] +[0.000, "o", " 40m"] +[0.000, "o", "\r\nspine1-leaf1 spine1"] +[0.000, "o", " True True "] +[0.000, "o", " True Established"] +[0.000, "o", " 40m 2 (L2vpnEvpn) "] +[0.000, "o", " 40m\r\nspine1-leaf2"] +[0.000, "o", " spine1 True"] +[0.000, "o", " True "] +[0.000, "o", "True "] +[0.000, "o", " Established "] +[0.000, "o", "41m 2 (L2vpnEvpn) "] +[0.000, "o", "40m\r\n"] +[0.000, "o", "spine1-leaf3"] +[0.000, "o", " "] +[0.000, "o", "spine1 True True"] +[0.000, "o", " "] +[0.000, "o", "True "] +[0.000, "o", "Established 40m"] +[0.000, "o", " "] +[0.000, "o", " 2 (L2vpnEvpn)"] +[0.000, "o", " 40m\r\nspine2-leaf1"] +[0.000, "o", " spine2 "] +[0.000, "o", "True True"] +[0.000, "o", " True "] +[0.000, "o", "Established"] +[0.000, "o", " "] +[0.000, "o", "40m "] +[0.000, "o", "2 (L2vpnEvpn) "] +[0.000, "o", "40m\r\nspine2-leaf2 spine2"] +[0.000, "o", " True"] +[0.000, "o", " True"] +[0.000, "o", " True"] +[0.000, "o", " "] +[0.000, "o", "Established 40m "] +[0.000, "o", " 2 (L2vpnEvpn) "] +[0.000, "o", " 40m\r\nspine2-leaf3 "] +[0.000, "o", "spine2 True"] +[0.000, "o", " "] +[0.000, "o", "True True "] +[0.000, "o", " Established 40m "] +[0.000, "o", " 2 (L2vpnEvpn) "] +[0.000, "o", " "] +[0.000, "o", "40m\r\n"] +[1.788, "m", ""] +[0.000, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[2.644, "o", "\r\r\n"] +[0.012, "x", "0"] diff --git a/docs/assets/evpn-vxlan-topology.png b/docs/assets/evpn-vxlan-topology.png new file mode 100644 index 00000000..4ec3c85c Binary files /dev/null and b/docs/assets/evpn-vxlan-topology.png differ diff --git a/docs/index.md b/docs/index.md index 87137499..4f7ad269 100644 --- a/docs/index.md +++ b/docs/index.md @@ -13,6 +13,9 @@ hero: - theme: brand text: Overview link: /overview/ + - theme: alt + text: Tutorials + link: /tutorials/ - theme: alt text: API Reference link: /api/ diff --git a/docs/package-lock.json b/docs/package-lock.json index 95924d2e..4a3c1435 100644 --- a/docs/package-lock.json +++ b/docs/package-lock.json @@ -1,3947 +1,4122 @@ { - "name": "docs", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "devDependencies": { - "vitepress": "^1.6.4", - "vitepress-plugin-mermaid": "^2.0.17" - } - }, - "node_modules/@algolia/abtesting": { - "version": "1.12.3", - "resolved": "https://registry.npmjs.org/@algolia/abtesting/-/abtesting-1.12.3.tgz", - "integrity": "sha512-0SpSdnME0RCS6UHSs9XD3ox4bMcCg1JTmjAJ3AU6rcTlX54CZOAEPc2as8uSghX6wfKGT0HWes4TeUpjJMg6FQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@algolia/client-common": "5.46.3", - "@algolia/requester-browser-xhr": "5.46.3", - "@algolia/requester-fetch": "5.46.3", - "@algolia/requester-node-http": "5.46.3" - }, - "engines": { - "node": ">= 14.0.0" - } - }, - "node_modules/@algolia/autocomplete-core": { - "version": "1.17.7", - "resolved": "https://registry.npmjs.org/@algolia/autocomplete-core/-/autocomplete-core-1.17.7.tgz", - "integrity": "sha512-BjiPOW6ks90UKl7TwMv7oNQMnzU+t/wk9mgIDi6b1tXpUek7MW0lbNOUHpvam9pe3lVCf4xPFT+lK7s+e+fs7Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "@algolia/autocomplete-plugin-algolia-insights": "1.17.7", - "@algolia/autocomplete-shared": "1.17.7" - } - }, - "node_modules/@algolia/autocomplete-plugin-algolia-insights": { - "version": "1.17.7", - "resolved": "https://registry.npmjs.org/@algolia/autocomplete-plugin-algolia-insights/-/autocomplete-plugin-algolia-insights-1.17.7.tgz", - "integrity": "sha512-Jca5Ude6yUOuyzjnz57og7Et3aXjbwCSDf/8onLHSQgw1qW3ALl9mrMWaXb5FmPVkV3EtkD2F/+NkT6VHyPu9A==", - "dev": true, - "license": "MIT", - "dependencies": { - "@algolia/autocomplete-shared": "1.17.7" - }, - "peerDependencies": { - "search-insights": ">= 1 < 3" - } - }, - "node_modules/@algolia/autocomplete-preset-algolia": { - "version": "1.17.7", - "resolved": "https://registry.npmjs.org/@algolia/autocomplete-preset-algolia/-/autocomplete-preset-algolia-1.17.7.tgz", - "integrity": "sha512-ggOQ950+nwbWROq2MOCIL71RE0DdQZsceqrg32UqnhDz8FlO9rL8ONHNsI2R1MH0tkgVIDKI/D0sMiUchsFdWA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@algolia/autocomplete-shared": "1.17.7" - }, - "peerDependencies": { - "@algolia/client-search": ">= 4.9.1 < 6", - "algoliasearch": ">= 4.9.1 < 6" - } - }, - "node_modules/@algolia/autocomplete-shared": { - "version": "1.17.7", - "resolved": "https://registry.npmjs.org/@algolia/autocomplete-shared/-/autocomplete-shared-1.17.7.tgz", - "integrity": "sha512-o/1Vurr42U/qskRSuhBH+VKxMvkkUVTLU6WZQr+L5lGZZLYWyhdzWjW0iGXY7EkwRTjBqvN2EsR81yCTGV/kmg==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "@algolia/client-search": ">= 4.9.1 < 6", - "algoliasearch": ">= 4.9.1 < 6" - } - }, - "node_modules/@algolia/client-abtesting": { - "version": "5.46.3", - "resolved": "https://registry.npmjs.org/@algolia/client-abtesting/-/client-abtesting-5.46.3.tgz", - "integrity": "sha512-i2C8sBcl3EKXuCd5nlGohW+pZ9pY3P3JKJ2OYqsbCPg6wURiR32hNDiDvDq7/dqJ7KWWwC2snxJhokZzGlckgQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@algolia/client-common": "5.46.3", - "@algolia/requester-browser-xhr": "5.46.3", - "@algolia/requester-fetch": "5.46.3", - "@algolia/requester-node-http": "5.46.3" - }, - "engines": { - "node": ">= 14.0.0" - } - }, - "node_modules/@algolia/client-analytics": { - "version": "5.46.3", - "resolved": "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-5.46.3.tgz", - "integrity": "sha512-uFmD7m3LOym1SAURHeiqupHT9jui+9HK0lAiIvm077gXEscOM5KKXM4rg/ICzQ3UDHLZEA0Lb5TglWsXnieE6w==", - "dev": true, - "license": "MIT", - "dependencies": { - "@algolia/client-common": "5.46.3", - "@algolia/requester-browser-xhr": "5.46.3", - "@algolia/requester-fetch": "5.46.3", - "@algolia/requester-node-http": "5.46.3" - }, - "engines": { - "node": ">= 14.0.0" - } - }, - "node_modules/@algolia/client-common": { - "version": "5.46.3", - "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-5.46.3.tgz", - "integrity": "sha512-SN+yK840nXa+2+mF72hrDfGd8+B7eBjF8TK/8KoRMdjlAkO/P3o3vtpjKRKI/Sk4L8kYYkB/avW8l+cwR+O1Ew==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 14.0.0" - } - }, - "node_modules/@algolia/client-insights": { - "version": "5.46.3", - "resolved": "https://registry.npmjs.org/@algolia/client-insights/-/client-insights-5.46.3.tgz", - "integrity": "sha512-5ic1liG0VucNPi6gKCWh5bEUGWQfyEmVeXiNKS+rOSppg7B7nKH0PEEJOFXBbHmgK5aPfNNZINiKcyUoH4XsFA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@algolia/client-common": "5.46.3", - "@algolia/requester-browser-xhr": "5.46.3", - "@algolia/requester-fetch": "5.46.3", - "@algolia/requester-node-http": "5.46.3" - }, - "engines": { - "node": ">= 14.0.0" - } - }, - "node_modules/@algolia/client-personalization": { - "version": "5.46.3", - "resolved": "https://registry.npmjs.org/@algolia/client-personalization/-/client-personalization-5.46.3.tgz", - "integrity": "sha512-f4HNitgTip8tntKgluYBTc1LWSOkbNCdxZvRA3rRBZnEAYSvLe7jpE+AxRep6RY+prSWwMtyeCFhA/F1Um+TuQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@algolia/client-common": "5.46.3", - "@algolia/requester-browser-xhr": "5.46.3", - "@algolia/requester-fetch": "5.46.3", - "@algolia/requester-node-http": "5.46.3" - }, - "engines": { - "node": ">= 14.0.0" - } - }, - "node_modules/@algolia/client-query-suggestions": { - "version": "5.46.3", - "resolved": "https://registry.npmjs.org/@algolia/client-query-suggestions/-/client-query-suggestions-5.46.3.tgz", - "integrity": "sha512-/AaVqah2aYyJj7Cazu5QRkgcV3HF3lkBJo5TRkgqQ26xR4iHNRbLF2YsWJfJpJEFghlTF2HOCh7IgzaUCnM+8A==", - "dev": true, - "license": "MIT", - "dependencies": { - "@algolia/client-common": "5.46.3", - "@algolia/requester-browser-xhr": "5.46.3", - "@algolia/requester-fetch": "5.46.3", - "@algolia/requester-node-http": "5.46.3" - }, - "engines": { - "node": ">= 14.0.0" - } - }, - "node_modules/@algolia/client-search": { - "version": "5.46.3", - "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-5.46.3.tgz", - "integrity": "sha512-hfpCIukPuwkrlwsYfJEWdU5R5bduBHEq2uuPcqmgPgNq5MSjmiNIzRuzxGZZgiBKcre6gZT00DR7G1AFn//wiQ==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "@algolia/client-common": "5.46.3", - "@algolia/requester-browser-xhr": "5.46.3", - "@algolia/requester-fetch": "5.46.3", - "@algolia/requester-node-http": "5.46.3" - }, - "engines": { - "node": ">= 14.0.0" - } - }, - "node_modules/@algolia/ingestion": { - "version": "1.46.3", - "resolved": "https://registry.npmjs.org/@algolia/ingestion/-/ingestion-1.46.3.tgz", - "integrity": "sha512-ChVzNkCzAVxKozTnTgPWCG69WQLjzW7X6OqD91zUh8U38ZhPEX/t3qGhXs+M9ZNaHcJ7xToMB3jywNwONhpLGA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@algolia/client-common": "5.46.3", - "@algolia/requester-browser-xhr": "5.46.3", - "@algolia/requester-fetch": "5.46.3", - "@algolia/requester-node-http": "5.46.3" - }, - "engines": { - "node": ">= 14.0.0" - } - }, - "node_modules/@algolia/monitoring": { - "version": "1.46.3", - "resolved": "https://registry.npmjs.org/@algolia/monitoring/-/monitoring-1.46.3.tgz", - "integrity": "sha512-MZa+Z5iPmVMxVAQ0aq4HpGsja5utSLEMcOuY01X8D46vvMrSPkP8DnlDFtu1PgJ0RwyIGqqx7v+ClFo6iRJ6bA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@algolia/client-common": "5.46.3", - "@algolia/requester-browser-xhr": "5.46.3", - "@algolia/requester-fetch": "5.46.3", - "@algolia/requester-node-http": "5.46.3" - }, - "engines": { - "node": ">= 14.0.0" - } - }, - "node_modules/@algolia/recommend": { - "version": "5.46.3", - "resolved": "https://registry.npmjs.org/@algolia/recommend/-/recommend-5.46.3.tgz", - "integrity": "sha512-cr3atJRJBKgAKZl/Oxo4sig6Se0+ukbyIOOluPV5H+ZAXVcxuMoXQgwQ1M5UHPnCnEsZ4uBXhBmilRgUQpUegw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@algolia/client-common": "5.46.3", - "@algolia/requester-browser-xhr": "5.46.3", - "@algolia/requester-fetch": "5.46.3", - "@algolia/requester-node-http": "5.46.3" - }, - "engines": { - "node": ">= 14.0.0" - } - }, - "node_modules/@algolia/requester-browser-xhr": { - "version": "5.46.3", - "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-5.46.3.tgz", - "integrity": "sha512-/Ku9GImJf2SKoRM2S3e03MjCVaWJCP5olih4k54DRhNDdmxBkd3nsWuUXvDElY3Ucw/arBYGs5SYz79SoS5APw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@algolia/client-common": "5.46.3" - }, - "engines": { - "node": ">= 14.0.0" - } - }, - "node_modules/@algolia/requester-fetch": { - "version": "5.46.3", - "resolved": "https://registry.npmjs.org/@algolia/requester-fetch/-/requester-fetch-5.46.3.tgz", - "integrity": "sha512-Uw+SPy/zpfwbH1AxQaeOWvWVzPEcO0XbtLbbSz0HPcEIiBGWyfa9LUCxD5UferbDjrSQNVimmzl3FaWi4u8Ykw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@algolia/client-common": "5.46.3" - }, - "engines": { - "node": ">= 14.0.0" - } - }, - "node_modules/@algolia/requester-node-http": { - "version": "5.46.3", - "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-5.46.3.tgz", - "integrity": "sha512-4No9iTjr1GZ0JWsFbQJj9aZBnmKyY1sTxOoEud9+SGe3U6iAulF0A0lI4cWi/F/Gcfg8V3jkaddcqSQKDnE45w==", - "dev": true, - "license": "MIT", - "dependencies": { - "@algolia/client-common": "5.46.3" - }, - "engines": { - "node": ">= 14.0.0" - } - }, - "node_modules/@antfu/install-pkg": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@antfu/install-pkg/-/install-pkg-1.1.0.tgz", - "integrity": "sha512-MGQsmw10ZyI+EJo45CdSER4zEb+p31LpDAFp2Z3gkSd1yqVZGi0Ebx++YTEMonJy4oChEMLsxZ64j8FH6sSqtQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "package-manager-detector": "^1.3.0", - "tinyexec": "^1.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/antfu" - } - }, - "node_modules/@babel/helper-string-parser": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", - "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz", - "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/parser": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.6.tgz", - "integrity": "sha512-TeR9zWR18BvbfPmGbLampPMW+uW1NZnJlRuuHso8i87QZNq2JRF9i6RgxRqtEq+wQGsS19NNTWr2duhnE49mfQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.28.6" - }, - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/types": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.6.tgz", - "integrity": "sha512-0ZrskXVEHSWIqZM/sQZ4EV3jZJXRkio/WCxaqKZP1g//CEWEPSfeZFcms4XeKBCHU0ZKnIkdJeU/kF+eRp5lBg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-string-parser": "^7.27.1", - "@babel/helper-validator-identifier": "^7.28.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@braintree/sanitize-url": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/@braintree/sanitize-url/-/sanitize-url-7.1.1.tgz", - "integrity": "sha512-i1L7noDNxtFyL5DmZafWy1wRVhGehQmzZaz1HiN5e7iylJMSZR7ekOV7NsIqa5qBldlLrsKv4HbgFUVlQrz8Mw==", - "dev": true, - "license": "MIT" - }, - "node_modules/@chevrotain/cst-dts-gen": { - "version": "11.0.3", - "resolved": "https://registry.npmjs.org/@chevrotain/cst-dts-gen/-/cst-dts-gen-11.0.3.tgz", - "integrity": "sha512-BvIKpRLeS/8UbfxXxgC33xOumsacaeCKAjAeLyOn7Pcp95HiRbrpl14S+9vaZLolnbssPIUuiUd8IvgkRyt6NQ==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@chevrotain/gast": "11.0.3", - "@chevrotain/types": "11.0.3", - "lodash-es": "4.17.21" - } - }, - "node_modules/@chevrotain/cst-dts-gen/node_modules/lodash-es": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", - "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==", - "dev": true, - "license": "MIT" - }, - "node_modules/@chevrotain/gast": { - "version": "11.0.3", - "resolved": "https://registry.npmjs.org/@chevrotain/gast/-/gast-11.0.3.tgz", - "integrity": "sha512-+qNfcoNk70PyS/uxmj3li5NiECO+2YKZZQMbmjTqRI3Qchu8Hig/Q9vgkHpI3alNjr7M+a2St5pw5w5F6NL5/Q==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@chevrotain/types": "11.0.3", - "lodash-es": "4.17.21" - } - }, - "node_modules/@chevrotain/gast/node_modules/lodash-es": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", - "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==", - "dev": true, - "license": "MIT" - }, - "node_modules/@chevrotain/regexp-to-ast": { - "version": "11.0.3", - "resolved": "https://registry.npmjs.org/@chevrotain/regexp-to-ast/-/regexp-to-ast-11.0.3.tgz", - "integrity": "sha512-1fMHaBZxLFvWI067AVbGJav1eRY7N8DDvYCTwGBiE/ytKBgP8azTdgyrKyWZ9Mfh09eHWb5PgTSO8wi7U824RA==", - "dev": true, - "license": "Apache-2.0" - }, - "node_modules/@chevrotain/types": { - "version": "11.0.3", - "resolved": "https://registry.npmjs.org/@chevrotain/types/-/types-11.0.3.tgz", - "integrity": "sha512-gsiM3G8b58kZC2HaWR50gu6Y1440cHiJ+i3JUvcp/35JchYejb2+5MVeJK0iKThYpAa/P2PYFV4hoi44HD+aHQ==", - "dev": true, - "license": "Apache-2.0" - }, - "node_modules/@chevrotain/utils": { - "version": "11.0.3", - "resolved": "https://registry.npmjs.org/@chevrotain/utils/-/utils-11.0.3.tgz", - "integrity": "sha512-YslZMgtJUyuMbZ+aKvfF3x1f5liK4mWNxghFRv7jqRR9C3R3fAOGTTKvxXDa2Y1s9zSbcpuO0cAxDYsc9SrXoQ==", - "dev": true, - "license": "Apache-2.0" - }, - "node_modules/@docsearch/css": { - "version": "3.8.2", - "resolved": "https://registry.npmjs.org/@docsearch/css/-/css-3.8.2.tgz", - "integrity": "sha512-y05ayQFyUmCXze79+56v/4HpycYF3uFqB78pLPrSV5ZKAlDuIAAJNhaRi8tTdRNXh05yxX/TyNnzD6LwSM89vQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/@docsearch/js": { - "version": "3.8.2", - "resolved": "https://registry.npmjs.org/@docsearch/js/-/js-3.8.2.tgz", - "integrity": "sha512-Q5wY66qHn0SwA7Taa0aDbHiJvaFJLOJyHmooQ7y8hlwwQLQ/5WwCcoX0g7ii04Qi2DJlHsd0XXzJ8Ypw9+9YmQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@docsearch/react": "3.8.2", - "preact": "^10.0.0" - } - }, - "node_modules/@docsearch/react": { - "version": "3.8.2", - "resolved": "https://registry.npmjs.org/@docsearch/react/-/react-3.8.2.tgz", - "integrity": "sha512-xCRrJQlTt8N9GU0DG4ptwHRkfnSnD/YpdeaXe02iKfqs97TkZJv60yE+1eq/tjPcVnTW8dP5qLP7itifFVV5eg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@algolia/autocomplete-core": "1.17.7", - "@algolia/autocomplete-preset-algolia": "1.17.7", - "@docsearch/css": "3.8.2", - "algoliasearch": "^5.14.2" - }, - "peerDependencies": { - "@types/react": ">= 16.8.0 < 19.0.0", - "react": ">= 16.8.0 < 19.0.0", - "react-dom": ">= 16.8.0 < 19.0.0", - "search-insights": ">= 1 < 3" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "react": { - "optional": true - }, - "react-dom": { - "optional": true - }, - "search-insights": { - "optional": true - } - } - }, - "node_modules/@esbuild/aix-ppc64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", - "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "aix" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/android-arm": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", - "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/android-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", - "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/android-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", - "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/darwin-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", - "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/darwin-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", - "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/freebsd-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", - "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/freebsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", - "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-arm": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", - "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", - "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-ia32": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", - "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-loong64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", - "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", - "cpu": [ - "loong64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-mips64el": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", - "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", - "cpu": [ - "mips64el" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-ppc64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", - "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-riscv64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", - "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", - "cpu": [ - "riscv64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-s390x": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", - "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", - "cpu": [ - "s390x" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", - "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/netbsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", - "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/openbsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", - "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/sunos-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", - "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", - "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-ia32": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", - "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", - "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@iconify-json/simple-icons": { - "version": "1.2.66", - "resolved": "https://registry.npmjs.org/@iconify-json/simple-icons/-/simple-icons-1.2.66.tgz", - "integrity": "sha512-D1OnnXwiQXFkVMw5M+Bt8mPsXeMkQyGmMdrmN7lsQlKMUkfLOp6JWhnUJ92po51WXT046aF/zzqSmkKqg08p4Q==", - "dev": true, - "license": "CC0-1.0", - "dependencies": { - "@iconify/types": "*" - } - }, - "node_modules/@iconify/types": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@iconify/types/-/types-2.0.0.tgz", - "integrity": "sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==", - "dev": true, - "license": "MIT" - }, - "node_modules/@iconify/utils": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@iconify/utils/-/utils-3.1.0.tgz", - "integrity": "sha512-Zlzem1ZXhI1iHeeERabLNzBHdOa4VhQbqAcOQaMKuTuyZCpwKbC2R4Dd0Zo3g9EAc+Y4fiarO8HIHRAth7+skw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@antfu/install-pkg": "^1.1.0", - "@iconify/types": "^2.0.0", - "mlly": "^1.8.0" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.5.5", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", - "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", - "dev": true, - "license": "MIT" - }, - "node_modules/@mermaid-js/mermaid-mindmap": { - "version": "9.3.0", - "resolved": "https://registry.npmjs.org/@mermaid-js/mermaid-mindmap/-/mermaid-mindmap-9.3.0.tgz", - "integrity": "sha512-IhtYSVBBRYviH1Ehu8gk69pMDF8DSRqXBRDMWrEfHoaMruHeaP2DXA3PBnuwsMaCdPQhlUUcy/7DBLAEIXvCAw==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "@braintree/sanitize-url": "^6.0.0", - "cytoscape": "^3.23.0", - "cytoscape-cose-bilkent": "^4.1.0", - "cytoscape-fcose": "^2.1.0", - "d3": "^7.0.0", - "khroma": "^2.0.0", - "non-layered-tidy-tree-layout": "^2.0.2" - } - }, - "node_modules/@mermaid-js/mermaid-mindmap/node_modules/@braintree/sanitize-url": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/@braintree/sanitize-url/-/sanitize-url-6.0.4.tgz", - "integrity": "sha512-s3jaWicZd0pkP0jf5ysyHUI/RE7MHos6qlToFcGWXVp+ykHOy77OUMrfbgJ9it2C5bow7OIQwYYaHjk9XlBQ2A==", - "dev": true, - "license": "MIT", - "optional": true - }, - "node_modules/@mermaid-js/parser": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/@mermaid-js/parser/-/parser-0.6.3.tgz", - "integrity": "sha512-lnjOhe7zyHjc+If7yT4zoedx2vo4sHaTmtkl1+or8BRTnCtDmcTpAjpzDSfCZrshM5bCoz0GyidzadJAH1xobA==", - "dev": true, - "license": "MIT", - "dependencies": { - "langium": "3.3.1" - } - }, - "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.55.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.55.1.tgz", - "integrity": "sha512-9R0DM/ykwfGIlNu6+2U09ga0WXeZ9MRC2Ter8jnz8415VbuIykVuc6bhdrbORFZANDmTDvq26mJrEVTl8TdnDg==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ] - }, - "node_modules/@rollup/rollup-android-arm64": { - "version": "4.55.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.55.1.tgz", - "integrity": "sha512-eFZCb1YUqhTysgW3sj/55du5cG57S7UTNtdMjCW7LwVcj3dTTcowCsC8p7uBdzKsZYa8J7IDE8lhMI+HX1vQvg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ] - }, - "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.55.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.55.1.tgz", - "integrity": "sha512-p3grE2PHcQm2e8PSGZdzIhCKbMCw/xi9XvMPErPhwO17vxtvCN5FEA2mSLgmKlCjHGMQTP6phuQTYWUnKewwGg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.55.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.55.1.tgz", - "integrity": "sha512-rDUjG25C9qoTm+e02Esi+aqTKSBYwVTaoS1wxcN47/Luqef57Vgp96xNANwt5npq9GDxsH7kXxNkJVEsWEOEaQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@rollup/rollup-freebsd-arm64": { - "version": "4.55.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.55.1.tgz", - "integrity": "sha512-+JiU7Jbp5cdxekIgdte0jfcu5oqw4GCKr6i3PJTlXTCU5H5Fvtkpbs4XJHRmWNXF+hKmn4v7ogI5OQPaupJgOg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ] - }, - "node_modules/@rollup/rollup-freebsd-x64": { - "version": "4.55.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.55.1.tgz", - "integrity": "sha512-V5xC1tOVWtLLmr3YUk2f6EJK4qksksOYiz/TCsFHu/R+woubcLWdC9nZQmwjOAbmExBIVKsm1/wKmEy4z4u4Bw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ] - }, - "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.55.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.55.1.tgz", - "integrity": "sha512-Rn3n+FUk2J5VWx+ywrG/HGPTD9jXNbicRtTM11e/uorplArnXZYsVifnPPqNNP5BsO3roI4n8332ukpY/zN7rQ==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.55.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.55.1.tgz", - "integrity": "sha512-grPNWydeKtc1aEdrJDWk4opD7nFtQbMmV7769hiAaYyUKCT1faPRm2av8CX1YJsZ4TLAZcg9gTR1KvEzoLjXkg==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.55.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.55.1.tgz", - "integrity": "sha512-a59mwd1k6x8tXKcUxSyISiquLwB5pX+fJW9TkWU46lCqD/GRDe9uDN31jrMmVP3feI3mhAdvcCClhV8V5MhJFQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.55.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.55.1.tgz", - "integrity": "sha512-puS1MEgWX5GsHSoiAsF0TYrpomdvkaXm0CofIMG5uVkP6IBV+ZO9xhC5YEN49nsgYo1DuuMquF9+7EDBVYu4uA==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-loong64-gnu": { - "version": "4.55.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.55.1.tgz", - "integrity": "sha512-r3Wv40in+lTsULSb6nnoudVbARdOwb2u5fpeoOAZjFLznp6tDU8kd+GTHmJoqZ9lt6/Sys33KdIHUaQihFcu7g==", - "cpu": [ - "loong64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-loong64-musl": { - "version": "4.55.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.55.1.tgz", - "integrity": "sha512-MR8c0+UxAlB22Fq4R+aQSPBayvYa3+9DrwG/i1TKQXFYEaoW3B5b/rkSRIypcZDdWjWnpcvxbNaAJDcSbJU3Lw==", - "cpu": [ - "loong64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-ppc64-gnu": { - "version": "4.55.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.55.1.tgz", - "integrity": "sha512-3KhoECe1BRlSYpMTeVrD4sh2Pw2xgt4jzNSZIIPLFEsnQn9gAnZagW9+VqDqAHgm1Xc77LzJOo2LdigS5qZ+gw==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-ppc64-musl": { - "version": "4.55.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.55.1.tgz", - "integrity": "sha512-ziR1OuZx0vdYZZ30vueNZTg73alF59DicYrPViG0NEgDVN8/Jl87zkAPu4u6VjZST2llgEUjaiNl9JM6HH1Vdw==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.55.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.55.1.tgz", - "integrity": "sha512-uW0Y12ih2XJRERZ4jAfKamTyIHVMPQnTZcQjme2HMVDAHY4amf5u414OqNYC+x+LzRdRcnIG1YodLrrtA8xsxw==", - "cpu": [ - "riscv64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-riscv64-musl": { - "version": "4.55.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.55.1.tgz", - "integrity": "sha512-u9yZ0jUkOED1BFrqu3BwMQoixvGHGZ+JhJNkNKY/hyoEgOwlqKb62qu+7UjbPSHYjiVy8kKJHvXKv5coH4wDeg==", - "cpu": [ - "riscv64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.55.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.55.1.tgz", - "integrity": "sha512-/0PenBCmqM4ZUd0190j7J0UsQ/1nsi735iPRakO8iPciE7BQ495Y6msPzaOmvx0/pn+eJVVlZrNrSh4WSYLxNg==", - "cpu": [ - "s390x" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.55.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.55.1.tgz", - "integrity": "sha512-a8G4wiQxQG2BAvo+gU6XrReRRqj+pLS2NGXKm8io19goR+K8lw269eTrPkSdDTALwMmJp4th2Uh0D8J9bEV1vg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.55.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.55.1.tgz", - "integrity": "sha512-bD+zjpFrMpP/hqkfEcnjXWHMw5BIghGisOKPj+2NaNDuVT+8Ds4mPf3XcPHuat1tz89WRL+1wbcxKY3WSbiT7w==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-openbsd-x64": { - "version": "4.55.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.55.1.tgz", - "integrity": "sha512-eLXw0dOiqE4QmvikfQ6yjgkg/xDM+MdU9YJuP4ySTibXU0oAvnEWXt7UDJmD4UkYialMfOGFPJnIHSe/kdzPxg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openbsd" - ] - }, - "node_modules/@rollup/rollup-openharmony-arm64": { - "version": "4.55.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.55.1.tgz", - "integrity": "sha512-xzm44KgEP11te3S2HCSyYf5zIzWmx3n8HDCc7EE59+lTcswEWNpvMLfd9uJvVX8LCg9QWG67Xt75AuHn4vgsXw==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openharmony" - ] - }, - "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.55.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.55.1.tgz", - "integrity": "sha512-yR6Bl3tMC/gBok5cz/Qi0xYnVbIxGx5Fcf/ca0eB6/6JwOY+SRUcJfI0OpeTpPls7f194as62thCt/2BjxYN8g==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.55.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.55.1.tgz", - "integrity": "sha512-3fZBidchE0eY0oFZBnekYCfg+5wAB0mbpCBuofh5mZuzIU/4jIVkbESmd2dOsFNS78b53CYv3OAtwqkZZmU5nA==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@rollup/rollup-win32-x64-gnu": { - "version": "4.55.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.55.1.tgz", - "integrity": "sha512-xGGY5pXj69IxKb4yv/POoocPy/qmEGhimy/FoTpTSVju3FYXUQQMFCaZZXJVidsmGxRioZAwpThl/4zX41gRKg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.55.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.55.1.tgz", - "integrity": "sha512-SPEpaL6DX4rmcXtnhdrQYgzQ5W2uW3SCJch88lB2zImhJRhIIK44fkUrgIV/Q8yUNfw5oyZ5vkeQsZLhCb06lw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@shikijs/core": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@shikijs/core/-/core-2.5.0.tgz", - "integrity": "sha512-uu/8RExTKtavlpH7XqnVYBrfBkUc20ngXiX9NSrBhOVZYv/7XQRKUyhtkeflY5QsxC0GbJThCerruZfsUaSldg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@shikijs/engine-javascript": "2.5.0", - "@shikijs/engine-oniguruma": "2.5.0", - "@shikijs/types": "2.5.0", - "@shikijs/vscode-textmate": "^10.0.2", - "@types/hast": "^3.0.4", - "hast-util-to-html": "^9.0.4" - } - }, - "node_modules/@shikijs/engine-javascript": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@shikijs/engine-javascript/-/engine-javascript-2.5.0.tgz", - "integrity": "sha512-VjnOpnQf8WuCEZtNUdjjwGUbtAVKuZkVQ/5cHy/tojVVRIRtlWMYVjyWhxOmIq05AlSOv72z7hRNRGVBgQOl0w==", - "dev": true, - "license": "MIT", - "dependencies": { - "@shikijs/types": "2.5.0", - "@shikijs/vscode-textmate": "^10.0.2", - "oniguruma-to-es": "^3.1.0" - } - }, - "node_modules/@shikijs/engine-oniguruma": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@shikijs/engine-oniguruma/-/engine-oniguruma-2.5.0.tgz", - "integrity": "sha512-pGd1wRATzbo/uatrCIILlAdFVKdxImWJGQ5rFiB5VZi2ve5xj3Ax9jny8QvkaV93btQEwR/rSz5ERFpC5mKNIw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@shikijs/types": "2.5.0", - "@shikijs/vscode-textmate": "^10.0.2" - } - }, - "node_modules/@shikijs/langs": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@shikijs/langs/-/langs-2.5.0.tgz", - "integrity": "sha512-Qfrrt5OsNH5R+5tJ/3uYBBZv3SuGmnRPejV9IlIbFH3HTGLDlkqgHymAlzklVmKBjAaVmkPkyikAV/sQ1wSL+w==", - "dev": true, - "license": "MIT", - "dependencies": { - "@shikijs/types": "2.5.0" - } - }, - "node_modules/@shikijs/themes": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@shikijs/themes/-/themes-2.5.0.tgz", - "integrity": "sha512-wGrk+R8tJnO0VMzmUExHR+QdSaPUl/NKs+a4cQQRWyoc3YFbUzuLEi/KWK1hj+8BfHRKm2jNhhJck1dfstJpiw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@shikijs/types": "2.5.0" - } - }, - "node_modules/@shikijs/transformers": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@shikijs/transformers/-/transformers-2.5.0.tgz", - "integrity": "sha512-SI494W5X60CaUwgi8u4q4m4s3YAFSxln3tzNjOSYqq54wlVgz0/NbbXEb3mdLbqMBztcmS7bVTaEd2w0qMmfeg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@shikijs/core": "2.5.0", - "@shikijs/types": "2.5.0" - } - }, - "node_modules/@shikijs/types": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@shikijs/types/-/types-2.5.0.tgz", - "integrity": "sha512-ygl5yhxki9ZLNuNpPitBWvcy9fsSKKaRuO4BAlMyagszQidxcpLAr0qiW/q43DtSIDxO6hEbtYLiFZNXO/hdGw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@shikijs/vscode-textmate": "^10.0.2", - "@types/hast": "^3.0.4" - } - }, - "node_modules/@shikijs/vscode-textmate": { - "version": "10.0.2", - "resolved": "https://registry.npmjs.org/@shikijs/vscode-textmate/-/vscode-textmate-10.0.2.tgz", - "integrity": "sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/d3": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@types/d3/-/d3-7.4.3.tgz", - "integrity": "sha512-lZXZ9ckh5R8uiFVt8ogUNf+pIrK4EsWrx2Np75WvF/eTpJ0FMHNhjXk8CKEx/+gpHbNQyJWehbFaTvqmHWB3ww==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/d3-array": "*", - "@types/d3-axis": "*", - "@types/d3-brush": "*", - "@types/d3-chord": "*", - "@types/d3-color": "*", - "@types/d3-contour": "*", - "@types/d3-delaunay": "*", - "@types/d3-dispatch": "*", - "@types/d3-drag": "*", - "@types/d3-dsv": "*", - "@types/d3-ease": "*", - "@types/d3-fetch": "*", - "@types/d3-force": "*", - "@types/d3-format": "*", - "@types/d3-geo": "*", - "@types/d3-hierarchy": "*", - "@types/d3-interpolate": "*", - "@types/d3-path": "*", - "@types/d3-polygon": "*", - "@types/d3-quadtree": "*", - "@types/d3-random": "*", - "@types/d3-scale": "*", - "@types/d3-scale-chromatic": "*", - "@types/d3-selection": "*", - "@types/d3-shape": "*", - "@types/d3-time": "*", - "@types/d3-time-format": "*", - "@types/d3-timer": "*", - "@types/d3-transition": "*", - "@types/d3-zoom": "*" - } - }, - "node_modules/@types/d3-array": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/@types/d3-array/-/d3-array-3.2.2.tgz", - "integrity": "sha512-hOLWVbm7uRza0BYXpIIW5pxfrKe0W+D5lrFiAEYR+pb6w3N2SwSMaJbXdUfSEv+dT4MfHBLtn5js0LAWaO6otw==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/d3-axis": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/@types/d3-axis/-/d3-axis-3.0.6.tgz", - "integrity": "sha512-pYeijfZuBd87T0hGn0FO1vQ/cgLk6E1ALJjfkC0oJ8cbwkZl3TpgS8bVBLZN+2jjGgg38epgxb2zmoGtSfvgMw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/d3-selection": "*" - } - }, - "node_modules/@types/d3-brush": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/@types/d3-brush/-/d3-brush-3.0.6.tgz", - "integrity": "sha512-nH60IZNNxEcrh6L1ZSMNA28rj27ut/2ZmI3r96Zd+1jrZD++zD3LsMIjWlvg4AYrHn/Pqz4CF3veCxGjtbqt7A==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/d3-selection": "*" - } - }, - "node_modules/@types/d3-chord": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/@types/d3-chord/-/d3-chord-3.0.6.tgz", - "integrity": "sha512-LFYWWd8nwfwEmTZG9PfQxd17HbNPksHBiJHaKuY1XeqscXacsS2tyoo6OdRsjf+NQYeB6XrNL3a25E3gH69lcg==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/d3-color": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/@types/d3-color/-/d3-color-3.1.3.tgz", - "integrity": "sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/d3-contour": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/@types/d3-contour/-/d3-contour-3.0.6.tgz", - "integrity": "sha512-BjzLgXGnCWjUSYGfH1cpdo41/hgdWETu4YxpezoztawmqsvCeep+8QGfiY6YbDvfgHz/DkjeIkkZVJavB4a3rg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/d3-array": "*", - "@types/geojson": "*" - } - }, - "node_modules/@types/d3-delaunay": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/@types/d3-delaunay/-/d3-delaunay-6.0.4.tgz", - "integrity": "sha512-ZMaSKu4THYCU6sV64Lhg6qjf1orxBthaC161plr5KuPHo3CNm8DTHiLw/5Eq2b6TsNP0W0iJrUOFscY6Q450Hw==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/d3-dispatch": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/@types/d3-dispatch/-/d3-dispatch-3.0.7.tgz", - "integrity": "sha512-5o9OIAdKkhN1QItV2oqaE5KMIiXAvDWBDPrD85e58Qlz1c1kI/J0NcqbEG88CoTwJrYe7ntUCVfeUl2UJKbWgA==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/d3-drag": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/@types/d3-drag/-/d3-drag-3.0.7.tgz", - "integrity": "sha512-HE3jVKlzU9AaMazNufooRJ5ZpWmLIoc90A37WU2JMmeq28w1FQqCZswHZ3xR+SuxYftzHq6WU6KJHvqxKzTxxQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/d3-selection": "*" - } - }, - "node_modules/@types/d3-dsv": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/@types/d3-dsv/-/d3-dsv-3.0.7.tgz", - "integrity": "sha512-n6QBF9/+XASqcKK6waudgL0pf/S5XHPPI8APyMLLUHd8NqouBGLsU8MgtO7NINGtPBtk9Kko/W4ea0oAspwh9g==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/d3-ease": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@types/d3-ease/-/d3-ease-3.0.2.tgz", - "integrity": "sha512-NcV1JjO5oDzoK26oMzbILE6HW7uVXOHLQvHshBUW4UMdZGfiY6v5BeQwh9a9tCzv+CeefZQHJt5SRgK154RtiA==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/d3-fetch": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/@types/d3-fetch/-/d3-fetch-3.0.7.tgz", - "integrity": "sha512-fTAfNmxSb9SOWNB9IoG5c8Hg6R+AzUHDRlsXsDZsNp6sxAEOP0tkP3gKkNSO/qmHPoBFTxNrjDprVHDQDvo5aA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/d3-dsv": "*" - } - }, - "node_modules/@types/d3-force": { - "version": "3.0.10", - "resolved": "https://registry.npmjs.org/@types/d3-force/-/d3-force-3.0.10.tgz", - "integrity": "sha512-ZYeSaCF3p73RdOKcjj+swRlZfnYpK1EbaDiYICEEp5Q6sUiqFaFQ9qgoshp5CzIyyb/yD09kD9o2zEltCexlgw==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/d3-format": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/d3-format/-/d3-format-3.0.4.tgz", - "integrity": "sha512-fALi2aI6shfg7vM5KiR1wNJnZ7r6UuggVqtDA+xiEdPZQwy/trcQaHnwShLuLdta2rTymCNpxYTiMZX/e09F4g==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/d3-geo": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@types/d3-geo/-/d3-geo-3.1.0.tgz", - "integrity": "sha512-856sckF0oP/diXtS4jNsiQw/UuK5fQG8l/a9VVLeSouf1/PPbBE1i1W852zVwKwYCBkFJJB7nCFTbk6UMEXBOQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/geojson": "*" - } - }, - "node_modules/@types/d3-hierarchy": { - "version": "3.1.7", - "resolved": "https://registry.npmjs.org/@types/d3-hierarchy/-/d3-hierarchy-3.1.7.tgz", - "integrity": "sha512-tJFtNoYBtRtkNysX1Xq4sxtjK8YgoWUNpIiUee0/jHGRwqvzYxkq0hGVbbOGSz+JgFxxRu4K8nb3YpG3CMARtg==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/d3-interpolate": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/d3-interpolate/-/d3-interpolate-3.0.4.tgz", - "integrity": "sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/d3-color": "*" - } - }, - "node_modules/@types/d3-path": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@types/d3-path/-/d3-path-3.1.1.tgz", - "integrity": "sha512-VMZBYyQvbGmWyWVea0EHs/BwLgxc+MKi1zLDCONksozI4YJMcTt8ZEuIR4Sb1MMTE8MMW49v0IwI5+b7RmfWlg==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/d3-polygon": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@types/d3-polygon/-/d3-polygon-3.0.2.tgz", - "integrity": "sha512-ZuWOtMaHCkN9xoeEMr1ubW2nGWsp4nIql+OPQRstu4ypeZ+zk3YKqQT0CXVe/PYqrKpZAi+J9mTs05TKwjXSRA==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/d3-quadtree": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/@types/d3-quadtree/-/d3-quadtree-3.0.6.tgz", - "integrity": "sha512-oUzyO1/Zm6rsxKRHA1vH0NEDG58HrT5icx/azi9MF1TWdtttWl0UIUsjEQBBh+SIkrpd21ZjEv7ptxWys1ncsg==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/d3-random": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/d3-random/-/d3-random-3.0.3.tgz", - "integrity": "sha512-Imagg1vJ3y76Y2ea0871wpabqp613+8/r0mCLEBfdtqC7xMSfj9idOnmBYyMoULfHePJyxMAw3nWhJxzc+LFwQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/d3-scale": { - "version": "4.0.9", - "resolved": "https://registry.npmjs.org/@types/d3-scale/-/d3-scale-4.0.9.tgz", - "integrity": "sha512-dLmtwB8zkAeO/juAMfnV+sItKjlsw2lKdZVVy6LRr0cBmegxSABiLEpGVmSJJ8O08i4+sGR6qQtb6WtuwJdvVw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/d3-time": "*" - } - }, - "node_modules/@types/d3-scale-chromatic": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@types/d3-scale-chromatic/-/d3-scale-chromatic-3.1.0.tgz", - "integrity": "sha512-iWMJgwkK7yTRmWqRB5plb1kadXyQ5Sj8V/zYlFGMUBbIPKQScw+Dku9cAAMgJG+z5GYDoMjWGLVOvjghDEFnKQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/d3-selection": { - "version": "3.0.11", - "resolved": "https://registry.npmjs.org/@types/d3-selection/-/d3-selection-3.0.11.tgz", - "integrity": "sha512-bhAXu23DJWsrI45xafYpkQ4NtcKMwWnAC/vKrd2l+nxMFuvOT3XMYTIj2opv8vq8AO5Yh7Qac/nSeP/3zjTK0w==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/d3-shape": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/@types/d3-shape/-/d3-shape-3.1.8.tgz", - "integrity": "sha512-lae0iWfcDeR7qt7rA88BNiqdvPS5pFVPpo5OfjElwNaT2yyekbM0C9vK+yqBqEmHr6lDkRnYNoTBYlAgJa7a4w==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/d3-path": "*" - } - }, - "node_modules/@types/d3-time": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/d3-time/-/d3-time-3.0.4.tgz", - "integrity": "sha512-yuzZug1nkAAaBlBBikKZTgzCeA+k1uy4ZFwWANOfKw5z5LRhV0gNA7gNkKm7HoK+HRN0wX3EkxGk0fpbWhmB7g==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/d3-time-format": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/@types/d3-time-format/-/d3-time-format-4.0.3.tgz", - "integrity": "sha512-5xg9rC+wWL8kdDj153qZcsJ0FWiFt0J5RB6LYUNZjwSnesfblqrI/bJ1wBdJ8OQfncgbJG5+2F+qfqnqyzYxyg==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/d3-timer": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@types/d3-timer/-/d3-timer-3.0.2.tgz", - "integrity": "sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/d3-transition": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/@types/d3-transition/-/d3-transition-3.0.9.tgz", - "integrity": "sha512-uZS5shfxzO3rGlu0cC3bjmMFKsXv+SmZZcgp0KD22ts4uGXp5EVYGzu/0YdwZeKmddhcAccYtREJKkPfXkZuCg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/d3-selection": "*" - } - }, - "node_modules/@types/d3-zoom": { - "version": "3.0.8", - "resolved": "https://registry.npmjs.org/@types/d3-zoom/-/d3-zoom-3.0.8.tgz", - "integrity": "sha512-iqMC4/YlFCSlO8+2Ii1GGGliCAY4XdeG748w5vQUbevlbDu0zSjH/+jojorQVBK/se0j6DUFNPBGSqD3YWYnDw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/d3-interpolate": "*", - "@types/d3-selection": "*" - } - }, - "node_modules/@types/estree": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", - "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/geojson": { - "version": "7946.0.16", - "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.16.tgz", - "integrity": "sha512-6C8nqWur3j98U6+lXDfTUWIfgvZU+EumvpHKcYjujKH7woYyLj2sUmff0tRhrqM7BohUw7Pz3ZB1jj2gW9Fvmg==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/hast": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", - "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/unist": "*" - } - }, - "node_modules/@types/linkify-it": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@types/linkify-it/-/linkify-it-5.0.0.tgz", - "integrity": "sha512-sVDA58zAw4eWAffKOaQH5/5j3XeayukzDk+ewSsnv3p4yJEZHCCzMDiZM8e0OUrRvmpGZ85jf4yDHkHsgBNr9Q==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/markdown-it": { - "version": "14.1.2", - "resolved": "https://registry.npmjs.org/@types/markdown-it/-/markdown-it-14.1.2.tgz", - "integrity": "sha512-promo4eFwuiW+TfGxhi+0x3czqTYJkG8qB17ZUJiVF10Xm7NLVRSLUsfRTU/6h1e24VvRnXCx+hG7li58lkzog==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/linkify-it": "^5", - "@types/mdurl": "^2" - } - }, - "node_modules/@types/mdast": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz", - "integrity": "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/unist": "*" - } - }, - "node_modules/@types/mdurl": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@types/mdurl/-/mdurl-2.0.0.tgz", - "integrity": "sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/trusted-types": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz", - "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==", - "dev": true, - "license": "MIT", - "optional": true - }, - "node_modules/@types/unist": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", - "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/web-bluetooth": { - "version": "0.0.21", - "resolved": "https://registry.npmjs.org/@types/web-bluetooth/-/web-bluetooth-0.0.21.tgz", - "integrity": "sha512-oIQLCGWtcFZy2JW77j9k8nHzAOpqMHLQejDA48XXMWH6tjCQHz5RCFz1bzsmROyL6PUm+LLnUiI4BCn221inxA==", - "dev": true, - "license": "MIT" - }, - "node_modules/@ungap/structured-clone": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.0.tgz", - "integrity": "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==", - "dev": true, - "license": "ISC" - }, - "node_modules/@vitejs/plugin-vue": { - "version": "5.2.4", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-5.2.4.tgz", - "integrity": "sha512-7Yx/SXSOcQq5HiiV3orevHUFn+pmMB4cgbEkDYgnkUWb0WfeQ/wa2yFv6D5ICiCQOVpjA7vYDXrC7AGO8yjDHA==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^18.0.0 || >=20.0.0" - }, - "peerDependencies": { - "vite": "^5.0.0 || ^6.0.0", - "vue": "^3.2.25" - } - }, - "node_modules/@vue/compiler-core": { - "version": "3.5.26", - "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.26.tgz", - "integrity": "sha512-vXyI5GMfuoBCnv5ucIT7jhHKl55Y477yxP6fc4eUswjP8FG3FFVFd41eNDArR+Uk3QKn2Z85NavjaxLxOC19/w==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/parser": "^7.28.5", - "@vue/shared": "3.5.26", - "entities": "^7.0.0", - "estree-walker": "^2.0.2", - "source-map-js": "^1.2.1" - } - }, - "node_modules/@vue/compiler-dom": { - "version": "3.5.26", - "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.26.tgz", - "integrity": "sha512-y1Tcd3eXs834QjswshSilCBnKGeQjQXB6PqFn/1nxcQw4pmG42G8lwz+FZPAZAby6gZeHSt/8LMPfZ4Rb+Bd/A==", - "dev": true, - "license": "MIT", - "dependencies": { - "@vue/compiler-core": "3.5.26", - "@vue/shared": "3.5.26" - } - }, - "node_modules/@vue/compiler-sfc": { - "version": "3.5.26", - "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.26.tgz", - "integrity": "sha512-egp69qDTSEZcf4bGOSsprUr4xI73wfrY5oRs6GSgXFTiHrWj4Y3X5Ydtip9QMqiCMCPVwLglB9GBxXtTadJ3mA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/parser": "^7.28.5", - "@vue/compiler-core": "3.5.26", - "@vue/compiler-dom": "3.5.26", - "@vue/compiler-ssr": "3.5.26", - "@vue/shared": "3.5.26", - "estree-walker": "^2.0.2", - "magic-string": "^0.30.21", - "postcss": "^8.5.6", - "source-map-js": "^1.2.1" - } - }, - "node_modules/@vue/compiler-ssr": { - "version": "3.5.26", - "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.26.tgz", - "integrity": "sha512-lZT9/Y0nSIRUPVvapFJEVDbEXruZh2IYHMk2zTtEgJSlP5gVOqeWXH54xDKAaFS4rTnDeDBQUYDtxKyoW9FwDw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@vue/compiler-dom": "3.5.26", - "@vue/shared": "3.5.26" - } - }, - "node_modules/@vue/devtools-api": { - "version": "7.7.9", - "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-7.7.9.tgz", - "integrity": "sha512-kIE8wvwlcZ6TJTbNeU2HQNtaxLx3a84aotTITUuL/4bzfPxzajGBOoqjMhwZJ8L9qFYDU/lAYMEEm11dnZOD6g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@vue/devtools-kit": "^7.7.9" - } - }, - "node_modules/@vue/devtools-kit": { - "version": "7.7.9", - "resolved": "https://registry.npmjs.org/@vue/devtools-kit/-/devtools-kit-7.7.9.tgz", - "integrity": "sha512-PyQ6odHSgiDVd4hnTP+aDk2X4gl2HmLDfiyEnn3/oV+ckFDuswRs4IbBT7vacMuGdwY/XemxBoh302ctbsptuA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@vue/devtools-shared": "^7.7.9", - "birpc": "^2.3.0", - "hookable": "^5.5.3", - "mitt": "^3.0.1", - "perfect-debounce": "^1.0.0", - "speakingurl": "^14.0.1", - "superjson": "^2.2.2" - } - }, - "node_modules/@vue/devtools-shared": { - "version": "7.7.9", - "resolved": "https://registry.npmjs.org/@vue/devtools-shared/-/devtools-shared-7.7.9.tgz", - "integrity": "sha512-iWAb0v2WYf0QWmxCGy0seZNDPdO3Sp5+u78ORnyeonS6MT4PC7VPrryX2BpMJrwlDeaZ6BD4vP4XKjK0SZqaeA==", - "dev": true, - "license": "MIT", - "dependencies": { - "rfdc": "^1.4.1" - } - }, - "node_modules/@vue/reactivity": { - "version": "3.5.26", - "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.5.26.tgz", - "integrity": "sha512-9EnYB1/DIiUYYnzlnUBgwU32NNvLp/nhxLXeWRhHUEeWNTn1ECxX8aGO7RTXeX6PPcxe3LLuNBFoJbV4QZ+CFQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@vue/shared": "3.5.26" - } - }, - "node_modules/@vue/runtime-core": { - "version": "3.5.26", - "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.5.26.tgz", - "integrity": "sha512-xJWM9KH1kd201w5DvMDOwDHYhrdPTrAatn56oB/LRG4plEQeZRQLw0Bpwih9KYoqmzaxF0OKSn6swzYi84e1/Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "@vue/reactivity": "3.5.26", - "@vue/shared": "3.5.26" - } - }, - "node_modules/@vue/runtime-dom": { - "version": "3.5.26", - "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.5.26.tgz", - "integrity": "sha512-XLLd/+4sPC2ZkN/6+V4O4gjJu6kSDbHAChvsyWgm1oGbdSO3efvGYnm25yCjtFm/K7rrSDvSfPDgN1pHgS4VNQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@vue/reactivity": "3.5.26", - "@vue/runtime-core": "3.5.26", - "@vue/shared": "3.5.26", - "csstype": "^3.2.3" - } - }, - "node_modules/@vue/server-renderer": { - "version": "3.5.26", - "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.5.26.tgz", - "integrity": "sha512-TYKLXmrwWKSodyVuO1WAubucd+1XlLg4set0YoV+Hu8Lo79mp/YMwWV5mC5FgtsDxX3qo1ONrxFaTP1OQgy1uA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@vue/compiler-ssr": "3.5.26", - "@vue/shared": "3.5.26" - }, - "peerDependencies": { - "vue": "3.5.26" - } - }, - "node_modules/@vue/shared": { - "version": "3.5.26", - "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.26.tgz", - "integrity": "sha512-7Z6/y3uFI5PRoKeorTOSXKcDj0MSasfNNltcslbFrPpcw6aXRUALq4IfJlaTRspiWIUOEZbrpM+iQGmCOiWe4A==", - "dev": true, - "license": "MIT" - }, - "node_modules/@vueuse/core": { - "version": "12.8.2", - "resolved": "https://registry.npmjs.org/@vueuse/core/-/core-12.8.2.tgz", - "integrity": "sha512-HbvCmZdzAu3VGi/pWYm5Ut+Kd9mn1ZHnn4L5G8kOQTPs/IwIAmJoBrmYk2ckLArgMXZj0AW3n5CAejLUO+PhdQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/web-bluetooth": "^0.0.21", - "@vueuse/metadata": "12.8.2", - "@vueuse/shared": "12.8.2", - "vue": "^3.5.13" - }, - "funding": { - "url": "https://github.com/sponsors/antfu" - } - }, - "node_modules/@vueuse/integrations": { - "version": "12.8.2", - "resolved": "https://registry.npmjs.org/@vueuse/integrations/-/integrations-12.8.2.tgz", - "integrity": "sha512-fbGYivgK5uBTRt7p5F3zy6VrETlV9RtZjBqd1/HxGdjdckBgBM4ugP8LHpjolqTj14TXTxSK1ZfgPbHYyGuH7g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@vueuse/core": "12.8.2", - "@vueuse/shared": "12.8.2", - "vue": "^3.5.13" - }, - "funding": { - "url": "https://github.com/sponsors/antfu" - }, - "peerDependencies": { - "async-validator": "^4", - "axios": "^1", - "change-case": "^5", - "drauu": "^0.4", - "focus-trap": "^7", - "fuse.js": "^7", - "idb-keyval": "^6", - "jwt-decode": "^4", - "nprogress": "^0.2", - "qrcode": "^1.5", - "sortablejs": "^1", - "universal-cookie": "^7" - }, - "peerDependenciesMeta": { - "async-validator": { - "optional": true - }, - "axios": { - "optional": true - }, - "change-case": { - "optional": true - }, - "drauu": { - "optional": true - }, - "focus-trap": { - "optional": true - }, - "fuse.js": { - "optional": true - }, - "idb-keyval": { - "optional": true - }, - "jwt-decode": { - "optional": true - }, - "nprogress": { - "optional": true - }, - "qrcode": { - "optional": true - }, - "sortablejs": { - "optional": true - }, - "universal-cookie": { - "optional": true - } - } - }, - "node_modules/@vueuse/metadata": { - "version": "12.8.2", - "resolved": "https://registry.npmjs.org/@vueuse/metadata/-/metadata-12.8.2.tgz", - "integrity": "sha512-rAyLGEuoBJ/Il5AmFHiziCPdQzRt88VxR+Y/A/QhJ1EWtWqPBBAxTAFaSkviwEuOEZNtW8pvkPgoCZQ+HxqW1A==", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/antfu" - } - }, - "node_modules/@vueuse/shared": { - "version": "12.8.2", - "resolved": "https://registry.npmjs.org/@vueuse/shared/-/shared-12.8.2.tgz", - "integrity": "sha512-dznP38YzxZoNloI0qpEfpkms8knDtaoQ6Y/sfS0L7Yki4zh40LFHEhur0odJC6xTHG5dxWVPiUWBXn+wCG2s5w==", - "dev": true, - "license": "MIT", - "dependencies": { - "vue": "^3.5.13" - }, - "funding": { - "url": "https://github.com/sponsors/antfu" - } - }, - "node_modules/acorn": { - "version": "8.15.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", - "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", - "dev": true, - "license": "MIT", - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/algoliasearch": { - "version": "5.46.3", - "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-5.46.3.tgz", - "integrity": "sha512-n/NdPglzmkcNYZfIT3Fo8pnDR/lKiK1kZ1Yaa315UoLyHymADhWw15+bzN5gBxrCA8KyeNu0JJD6mLtTov43lQ==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "@algolia/abtesting": "1.12.3", - "@algolia/client-abtesting": "5.46.3", - "@algolia/client-analytics": "5.46.3", - "@algolia/client-common": "5.46.3", - "@algolia/client-insights": "5.46.3", - "@algolia/client-personalization": "5.46.3", - "@algolia/client-query-suggestions": "5.46.3", - "@algolia/client-search": "5.46.3", - "@algolia/ingestion": "1.46.3", - "@algolia/monitoring": "1.46.3", - "@algolia/recommend": "5.46.3", - "@algolia/requester-browser-xhr": "5.46.3", - "@algolia/requester-fetch": "5.46.3", - "@algolia/requester-node-http": "5.46.3" - }, - "engines": { - "node": ">= 14.0.0" - } - }, - "node_modules/birpc": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/birpc/-/birpc-2.9.0.tgz", - "integrity": "sha512-KrayHS5pBi69Xi9JmvoqrIgYGDkD6mcSe/i6YKi3w5kekCLzrX4+nawcXqrj2tIp50Kw/mT/s3p+GVK0A0sKxw==", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/antfu" - } - }, - "node_modules/ccount": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz", - "integrity": "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==", - "dev": true, - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/character-entities-html4": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-2.1.0.tgz", - "integrity": "sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==", - "dev": true, - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/character-entities-legacy": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz", - "integrity": "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==", - "dev": true, - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/chevrotain": { - "version": "11.0.3", - "resolved": "https://registry.npmjs.org/chevrotain/-/chevrotain-11.0.3.tgz", - "integrity": "sha512-ci2iJH6LeIkvP9eJW6gpueU8cnZhv85ELY8w8WiFtNjMHA5ad6pQLaJo9mEly/9qUyCpvqX8/POVUTf18/HFdw==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@chevrotain/cst-dts-gen": "11.0.3", - "@chevrotain/gast": "11.0.3", - "@chevrotain/regexp-to-ast": "11.0.3", - "@chevrotain/types": "11.0.3", - "@chevrotain/utils": "11.0.3", - "lodash-es": "4.17.21" - } - }, - "node_modules/chevrotain-allstar": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/chevrotain-allstar/-/chevrotain-allstar-0.3.1.tgz", - "integrity": "sha512-b7g+y9A0v4mxCW1qUhf3BSVPg+/NvGErk/dOkrDaHA0nQIQGAtrOjlX//9OQtRlSCy+x9rfB5N8yC71lH1nvMw==", - "dev": true, - "license": "MIT", - "dependencies": { - "lodash-es": "^4.17.21" - }, - "peerDependencies": { - "chevrotain": "^11.0.0" - } - }, - "node_modules/chevrotain/node_modules/lodash-es": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", - "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==", - "dev": true, - "license": "MIT" - }, - "node_modules/comma-separated-tokens": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz", - "integrity": "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==", - "dev": true, - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/commander": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 10" - } - }, - "node_modules/confbox": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.1.8.tgz", - "integrity": "sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==", - "dev": true, - "license": "MIT" - }, - "node_modules/copy-anything": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/copy-anything/-/copy-anything-4.0.5.tgz", - "integrity": "sha512-7Vv6asjS4gMOuILabD3l739tsaxFQmC+a7pLZm02zyvs8p977bL3zEgq3yDk5rn9B0PbYgIv++jmHcuUab4RhA==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-what": "^5.2.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/mesqueeb" - } - }, - "node_modules/cose-base": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/cose-base/-/cose-base-1.0.3.tgz", - "integrity": "sha512-s9whTXInMSgAp/NVXVNuVxVKzGH2qck3aQlVHxDCdAEPgtMKwc4Wq6/QKhgdEdgbLSi9rBTAcPoRa6JpiG4ksg==", - "dev": true, - "license": "MIT", - "dependencies": { - "layout-base": "^1.0.0" - } - }, - "node_modules/csstype": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz", - "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/cytoscape": { - "version": "3.33.1", - "resolved": "https://registry.npmjs.org/cytoscape/-/cytoscape-3.33.1.tgz", - "integrity": "sha512-iJc4TwyANnOGR1OmWhsS9ayRS3s+XQ185FmuHObThD+5AeJCakAAbWv8KimMTt08xCCLNgneQwFp+JRJOr9qGQ==", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/cytoscape-cose-bilkent": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/cytoscape-cose-bilkent/-/cytoscape-cose-bilkent-4.1.0.tgz", - "integrity": "sha512-wgQlVIUJF13Quxiv5e1gstZ08rnZj2XaLHGoFMYXz7SkNfCDOOteKBE6SYRfA9WxxI/iBc3ajfDoc6hb/MRAHQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "cose-base": "^1.0.0" - }, - "peerDependencies": { - "cytoscape": "^3.2.0" - } - }, - "node_modules/cytoscape-fcose": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/cytoscape-fcose/-/cytoscape-fcose-2.2.0.tgz", - "integrity": "sha512-ki1/VuRIHFCzxWNrsshHYPs6L7TvLu3DL+TyIGEsRcvVERmxokbf5Gdk7mFxZnTdiGtnA4cfSmjZJMviqSuZrQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "cose-base": "^2.2.0" - }, - "peerDependencies": { - "cytoscape": "^3.2.0" - } - }, - "node_modules/cytoscape-fcose/node_modules/cose-base": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/cose-base/-/cose-base-2.2.0.tgz", - "integrity": "sha512-AzlgcsCbUMymkADOJtQm3wO9S3ltPfYOFD5033keQn9NJzIbtnZj+UdBJe7DYml/8TdbtHJW3j58SOnKhWY/5g==", - "dev": true, - "license": "MIT", - "dependencies": { - "layout-base": "^2.0.0" - } - }, - "node_modules/cytoscape-fcose/node_modules/layout-base": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/layout-base/-/layout-base-2.0.1.tgz", - "integrity": "sha512-dp3s92+uNI1hWIpPGH3jK2kxE2lMjdXdr+DH8ynZHpd6PUlH6x6cbuXnoMmiNumznqaNO31xu9e79F0uuZ0JFg==", - "dev": true, - "license": "MIT" - }, - "node_modules/d3": { - "version": "7.9.0", - "resolved": "https://registry.npmjs.org/d3/-/d3-7.9.0.tgz", - "integrity": "sha512-e1U46jVP+w7Iut8Jt8ri1YsPOvFpg46k+K8TpCb0P+zjCkjkPnV7WzfDJzMHy1LnA+wj5pLT1wjO901gLXeEhA==", - "dev": true, - "license": "ISC", - "dependencies": { - "d3-array": "3", - "d3-axis": "3", - "d3-brush": "3", - "d3-chord": "3", - "d3-color": "3", - "d3-contour": "4", - "d3-delaunay": "6", - "d3-dispatch": "3", - "d3-drag": "3", - "d3-dsv": "3", - "d3-ease": "3", - "d3-fetch": "3", - "d3-force": "3", - "d3-format": "3", - "d3-geo": "3", - "d3-hierarchy": "3", - "d3-interpolate": "3", - "d3-path": "3", - "d3-polygon": "3", - "d3-quadtree": "3", - "d3-random": "3", - "d3-scale": "4", - "d3-scale-chromatic": "3", - "d3-selection": "3", - "d3-shape": "3", - "d3-time": "3", - "d3-time-format": "4", - "d3-timer": "3", - "d3-transition": "3", - "d3-zoom": "3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-array": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-3.2.4.tgz", - "integrity": "sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==", - "dev": true, - "license": "ISC", - "dependencies": { - "internmap": "1 - 2" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-axis": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/d3-axis/-/d3-axis-3.0.0.tgz", - "integrity": "sha512-IH5tgjV4jE/GhHkRV0HiVYPDtvfjHQlQfJHs0usq7M30XcSBvOotpmH1IgkcXsO/5gEQZD43B//fc7SRT5S+xw==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-brush": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/d3-brush/-/d3-brush-3.0.0.tgz", - "integrity": "sha512-ALnjWlVYkXsVIGlOsuWH1+3udkYFI48Ljihfnh8FZPF2QS9o+PzGLBslO0PjzVoHLZ2KCVgAM8NVkXPJB2aNnQ==", - "dev": true, - "license": "ISC", - "dependencies": { - "d3-dispatch": "1 - 3", - "d3-drag": "2 - 3", - "d3-interpolate": "1 - 3", - "d3-selection": "3", - "d3-transition": "3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-chord": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-chord/-/d3-chord-3.0.1.tgz", - "integrity": "sha512-VE5S6TNa+j8msksl7HwjxMHDM2yNK3XCkusIlpX5kwauBfXuyLAtNg9jCp/iHH61tgI4sb6R/EIMWCqEIdjT/g==", - "dev": true, - "license": "ISC", - "dependencies": { - "d3-path": "1 - 3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-color": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz", - "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-contour": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/d3-contour/-/d3-contour-4.0.2.tgz", - "integrity": "sha512-4EzFTRIikzs47RGmdxbeUvLWtGedDUNkTcmzoeyg4sP/dvCexO47AaQL7VKy/gul85TOxw+IBgA8US2xwbToNA==", - "dev": true, - "license": "ISC", - "dependencies": { - "d3-array": "^3.2.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-delaunay": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/d3-delaunay/-/d3-delaunay-6.0.4.tgz", - "integrity": "sha512-mdjtIZ1XLAM8bm/hx3WwjfHt6Sggek7qH043O8KEjDXN40xi3vx/6pYSVTwLjEgiXQTbvaouWKynLBiUZ6SK6A==", - "dev": true, - "license": "ISC", - "dependencies": { - "delaunator": "5" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-dispatch": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-3.0.1.tgz", - "integrity": "sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-drag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/d3-drag/-/d3-drag-3.0.0.tgz", - "integrity": "sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg==", - "dev": true, - "license": "ISC", - "dependencies": { - "d3-dispatch": "1 - 3", - "d3-selection": "3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-dsv": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-dsv/-/d3-dsv-3.0.1.tgz", - "integrity": "sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q==", - "dev": true, - "license": "ISC", - "dependencies": { - "commander": "7", - "iconv-lite": "0.6", - "rw": "1" - }, - "bin": { - "csv2json": "bin/dsv2json.js", - "csv2tsv": "bin/dsv2dsv.js", - "dsv2dsv": "bin/dsv2dsv.js", - "dsv2json": "bin/dsv2json.js", - "json2csv": "bin/json2dsv.js", - "json2dsv": "bin/json2dsv.js", - "json2tsv": "bin/json2dsv.js", - "tsv2csv": "bin/dsv2dsv.js", - "tsv2json": "bin/dsv2json.js" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-ease": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-3.0.1.tgz", - "integrity": "sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-fetch": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-fetch/-/d3-fetch-3.0.1.tgz", - "integrity": "sha512-kpkQIM20n3oLVBKGg6oHrUchHM3xODkTzjMoj7aWQFq5QEM+R6E4WkzT5+tojDY7yjez8KgCBRoj4aEr99Fdqw==", - "dev": true, - "license": "ISC", - "dependencies": { - "d3-dsv": "1 - 3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-force": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-3.0.0.tgz", - "integrity": "sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg==", - "dev": true, - "license": "ISC", - "dependencies": { - "d3-dispatch": "1 - 3", - "d3-quadtree": "1 - 3", - "d3-timer": "1 - 3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-format": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-3.1.1.tgz", - "integrity": "sha512-ryitBnaRbXQtgZ/gU50GSn6jQRwinSCQclpakXymvLd8ytTgE5bmSfgYcUxD7XYL34qHhFDyVk71qqKsfSyvmA==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-geo": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-3.1.1.tgz", - "integrity": "sha512-637ln3gXKXOwhalDzinUgY83KzNWZRKbYubaG+fGVuc/dxO64RRljtCTnf5ecMyE1RIdtqpkVcq0IbtU2S8j2Q==", - "dev": true, - "license": "ISC", - "dependencies": { - "d3-array": "2.5.0 - 3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-hierarchy": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-3.1.2.tgz", - "integrity": "sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-interpolate": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz", - "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==", - "dev": true, - "license": "ISC", - "dependencies": { - "d3-color": "1 - 3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-path": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-3.1.0.tgz", - "integrity": "sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-polygon": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-polygon/-/d3-polygon-3.0.1.tgz", - "integrity": "sha512-3vbA7vXYwfe1SYhED++fPUQlWSYTTGmFmQiany/gdbiWgU/iEyQzyymwL9SkJjFFuCS4902BSzewVGsHHmHtXg==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-quadtree": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-3.0.1.tgz", - "integrity": "sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-random": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-random/-/d3-random-3.0.1.tgz", - "integrity": "sha512-FXMe9GfxTxqd5D6jFsQ+DJ8BJS4E/fT5mqqdjovykEB2oFbTMDVdg1MGFxfQW+FBOGoB++k8swBrgwSHT1cUXQ==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-sankey": { - "version": "0.12.3", - "resolved": "https://registry.npmjs.org/d3-sankey/-/d3-sankey-0.12.3.tgz", - "integrity": "sha512-nQhsBRmM19Ax5xEIPLMY9ZmJ/cDvd1BG3UVvt5h3WRxKg5zGRbvnteTyWAbzeSvlh3tW7ZEmq4VwR5mB3tutmQ==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "d3-array": "1 - 2", - "d3-shape": "^1.2.0" - } - }, - "node_modules/d3-sankey/node_modules/d3-array": { - "version": "2.12.1", - "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-2.12.1.tgz", - "integrity": "sha512-B0ErZK/66mHtEsR1TkPEEkwdy+WDesimkM5gpZr5Dsg54BiTA5RXtYW5qTLIAcekaS9xfZrzBLF/OAkB3Qn1YQ==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "internmap": "^1.0.0" - } - }, - "node_modules/d3-sankey/node_modules/d3-path": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-1.0.9.tgz", - "integrity": "sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg==", - "dev": true, - "license": "BSD-3-Clause" - }, - "node_modules/d3-sankey/node_modules/d3-shape": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-1.3.7.tgz", - "integrity": "sha512-EUkvKjqPFUAZyOlhY5gzCxCeI0Aep04LwIRpsZ/mLFelJiUfnK56jo5JMDSE7yyP2kLSb6LtF+S5chMk7uqPqw==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "d3-path": "1" - } - }, - "node_modules/d3-sankey/node_modules/internmap": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/internmap/-/internmap-1.0.1.tgz", - "integrity": "sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw==", - "dev": true, - "license": "ISC" - }, - "node_modules/d3-scale": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz", - "integrity": "sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==", - "dev": true, - "license": "ISC", - "dependencies": { - "d3-array": "2.10.0 - 3", - "d3-format": "1 - 3", - "d3-interpolate": "1.2.0 - 3", - "d3-time": "2.1.1 - 3", - "d3-time-format": "2 - 4" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-scale-chromatic": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/d3-scale-chromatic/-/d3-scale-chromatic-3.1.0.tgz", - "integrity": "sha512-A3s5PWiZ9YCXFye1o246KoscMWqf8BsD9eRiJ3He7C9OBaxKhAd5TFCdEx/7VbKtxxTsu//1mMJFrEt572cEyQ==", - "dev": true, - "license": "ISC", - "dependencies": { - "d3-color": "1 - 3", - "d3-interpolate": "1 - 3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-selection": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-3.0.0.tgz", - "integrity": "sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==", - "dev": true, - "license": "ISC", - "peer": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-shape": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-3.2.0.tgz", - "integrity": "sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==", - "dev": true, - "license": "ISC", - "dependencies": { - "d3-path": "^3.1.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-time": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-3.1.0.tgz", - "integrity": "sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==", - "dev": true, - "license": "ISC", - "dependencies": { - "d3-array": "2 - 3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-time-format": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-4.1.0.tgz", - "integrity": "sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==", - "dev": true, - "license": "ISC", - "dependencies": { - "d3-time": "1 - 3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-timer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz", - "integrity": "sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-transition": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-transition/-/d3-transition-3.0.1.tgz", - "integrity": "sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w==", - "dev": true, - "license": "ISC", - "dependencies": { - "d3-color": "1 - 3", - "d3-dispatch": "1 - 3", - "d3-ease": "1 - 3", - "d3-interpolate": "1 - 3", - "d3-timer": "1 - 3" - }, - "engines": { - "node": ">=12" - }, - "peerDependencies": { - "d3-selection": "2 - 3" - } - }, - "node_modules/d3-zoom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/d3-zoom/-/d3-zoom-3.0.0.tgz", - "integrity": "sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw==", - "dev": true, - "license": "ISC", - "dependencies": { - "d3-dispatch": "1 - 3", - "d3-drag": "2 - 3", - "d3-interpolate": "1 - 3", - "d3-selection": "2 - 3", - "d3-transition": "2 - 3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/dagre-d3-es": { - "version": "7.0.13", - "resolved": "https://registry.npmjs.org/dagre-d3-es/-/dagre-d3-es-7.0.13.tgz", - "integrity": "sha512-efEhnxpSuwpYOKRm/L5KbqoZmNNukHa/Flty4Wp62JRvgH2ojwVgPgdYyr4twpieZnyRDdIH7PY2mopX26+j2Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "d3": "^7.9.0", - "lodash-es": "^4.17.21" - } - }, - "node_modules/dayjs": { - "version": "1.11.19", - "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.19.tgz", - "integrity": "sha512-t5EcLVS6QPBNqM2z8fakk/NKel+Xzshgt8FFKAn+qwlD1pzZWxh0nVCrvFK7ZDb6XucZeF9z8C7CBWTRIVApAw==", - "dev": true, - "license": "MIT" - }, - "node_modules/delaunator": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/delaunator/-/delaunator-5.0.1.tgz", - "integrity": "sha512-8nvh+XBe96aCESrGOqMp/84b13H9cdKbG5P2ejQCh4d4sK9RL4371qou9drQjMhvnPmhWl5hnmqbEE0fXr9Xnw==", - "dev": true, - "license": "ISC", - "dependencies": { - "robust-predicates": "^3.0.2" - } - }, - "node_modules/dequal": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", - "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/devlop": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/devlop/-/devlop-1.1.0.tgz", - "integrity": "sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==", - "dev": true, - "license": "MIT", - "dependencies": { - "dequal": "^2.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/dompurify": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.3.1.tgz", - "integrity": "sha512-qkdCKzLNtrgPFP1Vo+98FRzJnBRGe4ffyCea9IwHB1fyxPOeNTHpLKYGd4Uk9xvNoH0ZoOjwZxNptyMwqrId1Q==", - "dev": true, - "license": "(MPL-2.0 OR Apache-2.0)", - "optionalDependencies": { - "@types/trusted-types": "^2.0.7" - } - }, - "node_modules/emoji-regex-xs": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex-xs/-/emoji-regex-xs-1.0.0.tgz", - "integrity": "sha512-LRlerrMYoIDrT6jgpeZ2YYl/L8EulRTt5hQcYjy5AInh7HWXKimpqx68aknBFpGL2+/IcogTcaydJEgaTmOpDg==", - "dev": true, - "license": "MIT" - }, - "node_modules/entities": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-7.0.0.tgz", - "integrity": "sha512-FDWG5cmEYf2Z00IkYRhbFrwIwvdFKH07uV8dvNy0omp/Qb1xcyCWp2UDtcwJF4QZZvk0sLudP6/hAu42TaqVhQ==", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=0.12" - }, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/esbuild": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", - "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=12" - }, - "optionalDependencies": { - "@esbuild/aix-ppc64": "0.21.5", - "@esbuild/android-arm": "0.21.5", - "@esbuild/android-arm64": "0.21.5", - "@esbuild/android-x64": "0.21.5", - "@esbuild/darwin-arm64": "0.21.5", - "@esbuild/darwin-x64": "0.21.5", - "@esbuild/freebsd-arm64": "0.21.5", - "@esbuild/freebsd-x64": "0.21.5", - "@esbuild/linux-arm": "0.21.5", - "@esbuild/linux-arm64": "0.21.5", - "@esbuild/linux-ia32": "0.21.5", - "@esbuild/linux-loong64": "0.21.5", - "@esbuild/linux-mips64el": "0.21.5", - "@esbuild/linux-ppc64": "0.21.5", - "@esbuild/linux-riscv64": "0.21.5", - "@esbuild/linux-s390x": "0.21.5", - "@esbuild/linux-x64": "0.21.5", - "@esbuild/netbsd-x64": "0.21.5", - "@esbuild/openbsd-x64": "0.21.5", - "@esbuild/sunos-x64": "0.21.5", - "@esbuild/win32-arm64": "0.21.5", - "@esbuild/win32-ia32": "0.21.5", - "@esbuild/win32-x64": "0.21.5" - } - }, - "node_modules/estree-walker": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", - "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", - "dev": true, - "license": "MIT" - }, - "node_modules/focus-trap": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/focus-trap/-/focus-trap-7.8.0.tgz", - "integrity": "sha512-/yNdlIkpWbM0ptxno3ONTuf+2g318kh2ez3KSeZN5dZ8YC6AAmgeWz+GasYYiBJPFaYcSAPeu4GfhUaChzIJXA==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "tabbable": "^6.4.0" - } - }, - "node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/hachure-fill": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/hachure-fill/-/hachure-fill-0.5.2.tgz", - "integrity": "sha512-3GKBOn+m2LX9iq+JC1064cSFprJY4jL1jCXTcpnfER5HYE2l/4EfWSGzkPa/ZDBmYI0ZOEj5VHV/eKnPGkHuOg==", - "dev": true, - "license": "MIT" - }, - "node_modules/hast-util-to-html": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/hast-util-to-html/-/hast-util-to-html-9.0.5.tgz", - "integrity": "sha512-OguPdidb+fbHQSU4Q4ZiLKnzWo8Wwsf5bZfbvu7//a9oTYoqD/fWpe96NuHkoS9h0ccGOTe0C4NGXdtS0iObOw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/hast": "^3.0.0", - "@types/unist": "^3.0.0", - "ccount": "^2.0.0", - "comma-separated-tokens": "^2.0.0", - "hast-util-whitespace": "^3.0.0", - "html-void-elements": "^3.0.0", - "mdast-util-to-hast": "^13.0.0", - "property-information": "^7.0.0", - "space-separated-tokens": "^2.0.0", - "stringify-entities": "^4.0.0", - "zwitch": "^2.0.4" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-whitespace": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-3.0.0.tgz", - "integrity": "sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/hast": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hookable": { - "version": "5.5.3", - "resolved": "https://registry.npmjs.org/hookable/-/hookable-5.5.3.tgz", - "integrity": "sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/html-void-elements": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/html-void-elements/-/html-void-elements-3.0.0.tgz", - "integrity": "sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==", - "dev": true, - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "dev": true, - "license": "MIT", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/internmap": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz", - "integrity": "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=12" - } - }, - "node_modules/is-what": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/is-what/-/is-what-5.5.0.tgz", - "integrity": "sha512-oG7cgbmg5kLYae2N5IVd3jm2s+vldjxJzK1pcu9LfpGuQ93MQSzo0okvRna+7y5ifrD+20FE8FvjusyGaz14fw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/mesqueeb" - } - }, - "node_modules/katex": { - "version": "0.16.27", - "resolved": "https://registry.npmjs.org/katex/-/katex-0.16.27.tgz", - "integrity": "sha512-aeQoDkuRWSqQN6nSvVCEFvfXdqo1OQiCmmW1kc9xSdjutPv7BGO7pqY9sQRJpMOGrEdfDgF2TfRXe5eUAD2Waw==", - "dev": true, - "funding": [ - "https://opencollective.com/katex", - "https://github.com/sponsors/katex" - ], - "license": "MIT", - "dependencies": { - "commander": "^8.3.0" - }, - "bin": { - "katex": "cli.js" - } - }, - "node_modules/katex/node_modules/commander": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", - "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 12" - } - }, - "node_modules/khroma": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/khroma/-/khroma-2.1.0.tgz", - "integrity": "sha512-Ls993zuzfayK269Svk9hzpeGUKob/sIgZzyHYdjQoAdQetRKpOLj+k/QQQ/6Qi0Yz65mlROrfd+Ev+1+7dz9Kw==", - "dev": true - }, - "node_modules/langium": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/langium/-/langium-3.3.1.tgz", - "integrity": "sha512-QJv/h939gDpvT+9SiLVlY7tZC3xB2qK57v0J04Sh9wpMb6MP1q8gB21L3WIo8T5P1MSMg3Ep14L7KkDCFG3y4w==", - "dev": true, - "license": "MIT", - "dependencies": { - "chevrotain": "~11.0.3", - "chevrotain-allstar": "~0.3.0", - "vscode-languageserver": "~9.0.1", - "vscode-languageserver-textdocument": "~1.0.11", - "vscode-uri": "~3.0.8" - }, - "engines": { - "node": ">=16.0.0" - } - }, - "node_modules/layout-base": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/layout-base/-/layout-base-1.0.2.tgz", - "integrity": "sha512-8h2oVEZNktL4BH2JCOI90iD1yXwL6iNW7KcCKT2QZgQJR2vbqDsldCTPRU9NifTCqHZci57XvQQ15YTu+sTYPg==", - "dev": true, - "license": "MIT" - }, - "node_modules/lodash-es": { - "version": "4.17.22", - "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.22.tgz", - "integrity": "sha512-XEawp1t0gxSi9x01glktRZ5HDy0HXqrM0x5pXQM98EaI0NxO6jVM7omDOxsuEo5UIASAnm2bRp1Jt/e0a2XU8Q==", - "dev": true, - "license": "MIT" - }, - "node_modules/magic-string": { - "version": "0.30.21", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", - "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/sourcemap-codec": "^1.5.5" - } - }, - "node_modules/mark.js": { - "version": "8.11.1", - "resolved": "https://registry.npmjs.org/mark.js/-/mark.js-8.11.1.tgz", - "integrity": "sha512-1I+1qpDt4idfgLQG+BNWmrqku+7/2bi5nLf4YwF8y8zXvmfiTBY3PV3ZibfrjBueCByROpuBjLLFCajqkgYoLQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/marked": { - "version": "16.4.2", - "resolved": "https://registry.npmjs.org/marked/-/marked-16.4.2.tgz", - "integrity": "sha512-TI3V8YYWvkVf3KJe1dRkpnjs68JUPyEa5vjKrp1XEEJUAOaQc+Qj+L1qWbPd0SJuAdQkFU0h73sXXqwDYxsiDA==", - "dev": true, - "license": "MIT", - "bin": { - "marked": "bin/marked.js" - }, - "engines": { - "node": ">= 20" - } - }, - "node_modules/mdast-util-to-hast": { - "version": "13.2.1", - "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-13.2.1.tgz", - "integrity": "sha512-cctsq2wp5vTsLIcaymblUriiTcZd0CwWtCbLvrOzYCDZoWyMNV8sZ7krj09FSnsiJi3WVsHLM4k6Dq/yaPyCXA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/hast": "^3.0.0", - "@types/mdast": "^4.0.0", - "@ungap/structured-clone": "^1.0.0", - "devlop": "^1.0.0", - "micromark-util-sanitize-uri": "^2.0.0", - "trim-lines": "^3.0.0", - "unist-util-position": "^5.0.0", - "unist-util-visit": "^5.0.0", - "vfile": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mermaid": { - "version": "11.12.2", - "resolved": "https://registry.npmjs.org/mermaid/-/mermaid-11.12.2.tgz", - "integrity": "sha512-n34QPDPEKmaeCG4WDMGy0OT6PSyxKCfy2pJgShP+Qow2KLrvWjclwbc3yXfSIf4BanqWEhQEpngWwNp/XhZt6w==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "@braintree/sanitize-url": "^7.1.1", - "@iconify/utils": "^3.0.1", - "@mermaid-js/parser": "^0.6.3", - "@types/d3": "^7.4.3", - "cytoscape": "^3.29.3", - "cytoscape-cose-bilkent": "^4.1.0", - "cytoscape-fcose": "^2.2.0", - "d3": "^7.9.0", - "d3-sankey": "^0.12.3", - "dagre-d3-es": "7.0.13", - "dayjs": "^1.11.18", - "dompurify": "^3.2.5", - "katex": "^0.16.22", - "khroma": "^2.1.0", - "lodash-es": "^4.17.21", - "marked": "^16.2.1", - "roughjs": "^4.6.6", - "stylis": "^4.3.6", - "ts-dedent": "^2.2.0", - "uuid": "^11.1.0" - } - }, - "node_modules/micromark-util-character": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", - "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", - "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-util-encode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.1.tgz", - "integrity": "sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==", - "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" - }, - "node_modules/micromark-util-sanitize-uri": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.1.tgz", - "integrity": "sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==", - "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-character": "^2.0.0", - "micromark-util-encode": "^2.0.0", - "micromark-util-symbol": "^2.0.0" - } - }, - "node_modules/micromark-util-symbol": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", - "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", - "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" - }, - "node_modules/micromark-util-types": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.2.tgz", - "integrity": "sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA==", - "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" - }, - "node_modules/minisearch": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/minisearch/-/minisearch-7.2.0.tgz", - "integrity": "sha512-dqT2XBYUOZOiC5t2HRnwADjhNS2cecp9u+TJRiJ1Qp/f5qjkeT5APcGPjHw+bz89Ms8Jp+cG4AlE+QZ/QnDglg==", - "dev": true, - "license": "MIT" - }, - "node_modules/mitt": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.1.tgz", - "integrity": "sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==", - "dev": true, - "license": "MIT" - }, - "node_modules/mlly": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.8.0.tgz", - "integrity": "sha512-l8D9ODSRWLe2KHJSifWGwBqpTZXIXTeo8mlKjY+E2HAakaTeNpqAyBZ8GSqLzHgw4XmHmC8whvpjJNMbFZN7/g==", - "dev": true, - "license": "MIT", - "dependencies": { - "acorn": "^8.15.0", - "pathe": "^2.0.3", - "pkg-types": "^1.3.1", - "ufo": "^1.6.1" - } - }, - "node_modules/nanoid": { - "version": "3.3.11", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", - "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/non-layered-tidy-tree-layout": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/non-layered-tidy-tree-layout/-/non-layered-tidy-tree-layout-2.0.2.tgz", - "integrity": "sha512-gkXMxRzUH+PB0ax9dUN0yYF0S25BqeAYqhgMaLUFmpXLEk7Fcu8f4emJuOAY0V8kjDICxROIKsTAKsV/v355xw==", - "dev": true, - "license": "MIT", - "optional": true - }, - "node_modules/oniguruma-to-es": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/oniguruma-to-es/-/oniguruma-to-es-3.1.1.tgz", - "integrity": "sha512-bUH8SDvPkH3ho3dvwJwfonjlQ4R80vjyvrU8YpxuROddv55vAEJrTuCuCVUhhsHbtlD9tGGbaNApGQckXhS8iQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "emoji-regex-xs": "^1.0.0", - "regex": "^6.0.1", - "regex-recursion": "^6.0.2" - } - }, - "node_modules/package-manager-detector": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/package-manager-detector/-/package-manager-detector-1.6.0.tgz", - "integrity": "sha512-61A5ThoTiDG/C8s8UMZwSorAGwMJ0ERVGj2OjoW5pAalsNOg15+iQiPzrLJ4jhZ1HJzmC2PIHT2oEiH3R5fzNA==", - "dev": true, - "license": "MIT" - }, - "node_modules/path-data-parser": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/path-data-parser/-/path-data-parser-0.1.0.tgz", - "integrity": "sha512-NOnmBpt5Y2RWbuv0LMzsayp3lVylAHLPUTut412ZA3l+C4uw4ZVkQbjShYCQ8TCpUMdPapr4YjUqLYD6v68j+w==", - "dev": true, - "license": "MIT" - }, - "node_modules/pathe": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz", - "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==", - "dev": true, - "license": "MIT" - }, - "node_modules/perfect-debounce": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/perfect-debounce/-/perfect-debounce-1.0.0.tgz", - "integrity": "sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==", - "dev": true, - "license": "MIT" - }, - "node_modules/picocolors": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", - "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", - "dev": true, - "license": "ISC" - }, - "node_modules/pkg-types": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.3.1.tgz", - "integrity": "sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "confbox": "^0.1.8", - "mlly": "^1.7.4", - "pathe": "^2.0.1" - } - }, - "node_modules/points-on-curve": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/points-on-curve/-/points-on-curve-0.2.0.tgz", - "integrity": "sha512-0mYKnYYe9ZcqMCWhUjItv/oHjvgEsfKvnUTg8sAtnHr3GVy7rGkXCb6d5cSyqrWqL4k81b9CPg3urd+T7aop3A==", - "dev": true, - "license": "MIT" - }, - "node_modules/points-on-path": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/points-on-path/-/points-on-path-0.2.1.tgz", - "integrity": "sha512-25ClnWWuw7JbWZcgqY/gJ4FQWadKxGWk+3kR/7kD0tCaDtPPMj7oHu2ToLaVhfpnHrZzYby2w6tUA0eOIuUg8g==", - "dev": true, - "license": "MIT", - "dependencies": { - "path-data-parser": "0.1.0", - "points-on-curve": "0.2.0" - } - }, - "node_modules/postcss": { - "version": "8.5.6", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", - "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "nanoid": "^3.3.11", - "picocolors": "^1.1.1", - "source-map-js": "^1.2.1" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, - "node_modules/preact": { - "version": "10.28.2", - "resolved": "https://registry.npmjs.org/preact/-/preact-10.28.2.tgz", - "integrity": "sha512-lbteaWGzGHdlIuiJ0l2Jq454m6kcpI1zNje6d8MlGAFlYvP2GO4ibnat7P74Esfz4sPTdM6UxtTwh/d3pwM9JA==", - "dev": true, - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/preact" - } - }, - "node_modules/property-information": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/property-information/-/property-information-7.1.0.tgz", - "integrity": "sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ==", - "dev": true, - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/regex": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/regex/-/regex-6.1.0.tgz", - "integrity": "sha512-6VwtthbV4o/7+OaAF9I5L5V3llLEsoPyq9P1JVXkedTP33c7MfCG0/5NOPcSJn0TzXcG9YUrR0gQSWioew3LDg==", - "dev": true, - "license": "MIT", - "dependencies": { - "regex-utilities": "^2.3.0" - } - }, - "node_modules/regex-recursion": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/regex-recursion/-/regex-recursion-6.0.2.tgz", - "integrity": "sha512-0YCaSCq2VRIebiaUviZNs0cBz1kg5kVS2UKUfNIx8YVs1cN3AV7NTctO5FOKBA+UT2BPJIWZauYHPqJODG50cg==", - "dev": true, - "license": "MIT", - "dependencies": { - "regex-utilities": "^2.3.0" - } - }, - "node_modules/regex-utilities": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/regex-utilities/-/regex-utilities-2.3.0.tgz", - "integrity": "sha512-8VhliFJAWRaUiVvREIiW2NXXTmHs4vMNnSzuJVhscgmGav3g9VDxLrQndI3dZZVVdp0ZO/5v0xmX516/7M9cng==", - "dev": true, - "license": "MIT" - }, - "node_modules/rfdc": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.4.1.tgz", - "integrity": "sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==", - "dev": true, - "license": "MIT" - }, - "node_modules/robust-predicates": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/robust-predicates/-/robust-predicates-3.0.2.tgz", - "integrity": "sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg==", - "dev": true, - "license": "Unlicense" - }, - "node_modules/rollup": { - "version": "4.55.1", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.55.1.tgz", - "integrity": "sha512-wDv/Ht1BNHB4upNbK74s9usvl7hObDnvVzknxqY/E/O3X6rW1U1rV1aENEfJ54eFZDTNo7zv1f5N4edCluH7+A==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/estree": "1.0.8" - }, - "bin": { - "rollup": "dist/bin/rollup" - }, - "engines": { - "node": ">=18.0.0", - "npm": ">=8.0.0" - }, - "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.55.1", - "@rollup/rollup-android-arm64": "4.55.1", - "@rollup/rollup-darwin-arm64": "4.55.1", - "@rollup/rollup-darwin-x64": "4.55.1", - "@rollup/rollup-freebsd-arm64": "4.55.1", - "@rollup/rollup-freebsd-x64": "4.55.1", - "@rollup/rollup-linux-arm-gnueabihf": "4.55.1", - "@rollup/rollup-linux-arm-musleabihf": "4.55.1", - "@rollup/rollup-linux-arm64-gnu": "4.55.1", - "@rollup/rollup-linux-arm64-musl": "4.55.1", - "@rollup/rollup-linux-loong64-gnu": "4.55.1", - "@rollup/rollup-linux-loong64-musl": "4.55.1", - "@rollup/rollup-linux-ppc64-gnu": "4.55.1", - "@rollup/rollup-linux-ppc64-musl": "4.55.1", - "@rollup/rollup-linux-riscv64-gnu": "4.55.1", - "@rollup/rollup-linux-riscv64-musl": "4.55.1", - "@rollup/rollup-linux-s390x-gnu": "4.55.1", - "@rollup/rollup-linux-x64-gnu": "4.55.1", - "@rollup/rollup-linux-x64-musl": "4.55.1", - "@rollup/rollup-openbsd-x64": "4.55.1", - "@rollup/rollup-openharmony-arm64": "4.55.1", - "@rollup/rollup-win32-arm64-msvc": "4.55.1", - "@rollup/rollup-win32-ia32-msvc": "4.55.1", - "@rollup/rollup-win32-x64-gnu": "4.55.1", - "@rollup/rollup-win32-x64-msvc": "4.55.1", - "fsevents": "~2.3.2" - } - }, - "node_modules/roughjs": { - "version": "4.6.6", - "resolved": "https://registry.npmjs.org/roughjs/-/roughjs-4.6.6.tgz", - "integrity": "sha512-ZUz/69+SYpFN/g/lUlo2FXcIjRkSu3nDarreVdGGndHEBJ6cXPdKguS8JGxwj5HA5xIbVKSmLgr5b3AWxtRfvQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "hachure-fill": "^0.5.2", - "path-data-parser": "^0.1.0", - "points-on-curve": "^0.2.0", - "points-on-path": "^0.2.1" - } - }, - "node_modules/rw": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz", - "integrity": "sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==", - "dev": true, - "license": "BSD-3-Clause" - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true, - "license": "MIT" - }, - "node_modules/search-insights": { - "version": "2.17.3", - "resolved": "https://registry.npmjs.org/search-insights/-/search-insights-2.17.3.tgz", - "integrity": "sha512-RQPdCYTa8A68uM2jwxoY842xDhvx3E5LFL1LxvxCNMev4o5mLuokczhzjAgGwUZBAmOKZknArSxLKmXtIi2AxQ==", - "dev": true, - "license": "MIT", - "peer": true - }, - "node_modules/shiki": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/shiki/-/shiki-2.5.0.tgz", - "integrity": "sha512-mI//trrsaiCIPsja5CNfsyNOqgAZUb6VpJA+340toL42UpzQlXpwRV9nch69X6gaUxrr9kaOOa6e3y3uAkGFxQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@shikijs/core": "2.5.0", - "@shikijs/engine-javascript": "2.5.0", - "@shikijs/engine-oniguruma": "2.5.0", - "@shikijs/langs": "2.5.0", - "@shikijs/themes": "2.5.0", - "@shikijs/types": "2.5.0", - "@shikijs/vscode-textmate": "^10.0.2", - "@types/hast": "^3.0.4" - } - }, - "node_modules/source-map-js": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", - "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/space-separated-tokens": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz", - "integrity": "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==", - "dev": true, - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/speakingurl": { - "version": "14.0.1", - "resolved": "https://registry.npmjs.org/speakingurl/-/speakingurl-14.0.1.tgz", - "integrity": "sha512-1POYv7uv2gXoyGFpBCmpDVSNV74IfsWlDW216UPjbWufNf+bSU6GdbDsxdcxtfwb4xlI3yxzOTKClUosxARYrQ==", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/stringify-entities": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.4.tgz", - "integrity": "sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==", - "dev": true, - "license": "MIT", - "dependencies": { - "character-entities-html4": "^2.0.0", - "character-entities-legacy": "^3.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/stylis": { - "version": "4.3.6", - "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.3.6.tgz", - "integrity": "sha512-yQ3rwFWRfwNUY7H5vpU0wfdkNSnvnJinhF9830Swlaxl03zsOjCfmX0ugac+3LtK0lYSgwL/KXc8oYL3mG4YFQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/superjson": { - "version": "2.2.6", - "resolved": "https://registry.npmjs.org/superjson/-/superjson-2.2.6.tgz", - "integrity": "sha512-H+ue8Zo4vJmV2nRjpx86P35lzwDT3nItnIsocgumgr0hHMQ+ZGq5vrERg9kJBo5AWGmxZDhzDo+WVIJqkB0cGA==", - "dev": true, - "license": "MIT", - "dependencies": { - "copy-anything": "^4" - }, - "engines": { - "node": ">=16" - } - }, - "node_modules/tabbable": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/tabbable/-/tabbable-6.4.0.tgz", - "integrity": "sha512-05PUHKSNE8ou2dwIxTngl4EzcnsCDZGJ/iCLtDflR/SHB/ny14rXc+qU5P4mG9JkusiV7EivzY9Mhm55AzAvCg==", - "dev": true, - "license": "MIT" - }, - "node_modules/tinyexec": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-1.0.2.tgz", - "integrity": "sha512-W/KYk+NFhkmsYpuHq5JykngiOCnxeVL8v8dFnqxSD8qEEdRfXk1SDM6JzNqcERbcGYj9tMrDQBYV9cjgnunFIg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - } - }, - "node_modules/trim-lines": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz", - "integrity": "sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==", - "dev": true, - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/ts-dedent": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/ts-dedent/-/ts-dedent-2.2.0.tgz", - "integrity": "sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.10" - } - }, - "node_modules/ufo": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.6.2.tgz", - "integrity": "sha512-heMioaxBcG9+Znsda5Q8sQbWnLJSl98AFDXTO80wELWEzX3hordXsTdxrIfMQoO9IY1MEnoGoPjpoKpMj+Yx0Q==", - "dev": true, - "license": "MIT" - }, - "node_modules/unist-util-is": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.1.tgz", - "integrity": "sha512-LsiILbtBETkDz8I9p1dQ0uyRUWuaQzd/cuEeS1hoRSyW5E5XGmTzlwY1OrNzzakGowI9Dr/I8HVaw4hTtnxy8g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-position": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz", - "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-visit": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz", - "integrity": "sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-is": "^6.0.0", - "unist-util-visit-parents": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-visit-parents": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.2.tgz", - "integrity": "sha512-goh1s1TBrqSqukSc8wrjwWhL0hiJxgA8m4kFxGlQ+8FYQ3C/m11FcTs4YYem7V664AhHVvgoQLk890Ssdsr2IQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-is": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/uuid": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-11.1.0.tgz", - "integrity": "sha512-0/A9rDy9P7cJ+8w1c9WD9V//9Wj15Ce2MPz8Ri6032usz+NfePxx5AcN3bN+r6ZL6jEo066/yNYB3tn4pQEx+A==", - "dev": true, - "funding": [ - "https://github.com/sponsors/broofa", - "https://github.com/sponsors/ctavan" - ], - "license": "MIT", - "bin": { - "uuid": "dist/esm/bin/uuid" - } - }, - "node_modules/vfile": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz", - "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/unist": "^3.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/vfile-message": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.3.tgz", - "integrity": "sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/vite": { - "version": "5.4.21", - "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.21.tgz", - "integrity": "sha512-o5a9xKjbtuhY6Bi5S3+HvbRERmouabWbyUcpXXUA1u+GNUKoROi9byOJ8M0nHbHYHkYICiMlqxkg1KkYmm25Sw==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "esbuild": "^0.21.3", - "postcss": "^8.4.43", - "rollup": "^4.20.0" - }, - "bin": { - "vite": "bin/vite.js" - }, - "engines": { - "node": "^18.0.0 || >=20.0.0" - }, - "funding": { - "url": "https://github.com/vitejs/vite?sponsor=1" - }, - "optionalDependencies": { - "fsevents": "~2.3.3" - }, - "peerDependencies": { - "@types/node": "^18.0.0 || >=20.0.0", - "less": "*", - "lightningcss": "^1.21.0", - "sass": "*", - "sass-embedded": "*", - "stylus": "*", - "sugarss": "*", - "terser": "^5.4.0" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - }, - "less": { - "optional": true - }, - "lightningcss": { - "optional": true - }, - "sass": { - "optional": true - }, - "sass-embedded": { - "optional": true - }, - "stylus": { - "optional": true - }, - "sugarss": { - "optional": true - }, - "terser": { - "optional": true - } - } - }, - "node_modules/vitepress": { - "version": "1.6.4", - "resolved": "https://registry.npmjs.org/vitepress/-/vitepress-1.6.4.tgz", - "integrity": "sha512-+2ym1/+0VVrbhNyRoFFesVvBvHAVMZMK0rw60E3X/5349M1GuVdKeazuksqopEdvkKwKGs21Q729jX81/bkBJg==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "@docsearch/css": "3.8.2", - "@docsearch/js": "3.8.2", - "@iconify-json/simple-icons": "^1.2.21", - "@shikijs/core": "^2.1.0", - "@shikijs/transformers": "^2.1.0", - "@shikijs/types": "^2.1.0", - "@types/markdown-it": "^14.1.2", - "@vitejs/plugin-vue": "^5.2.1", - "@vue/devtools-api": "^7.7.0", - "@vue/shared": "^3.5.13", - "@vueuse/core": "^12.4.0", - "@vueuse/integrations": "^12.4.0", - "focus-trap": "^7.6.4", - "mark.js": "8.11.1", - "minisearch": "^7.1.1", - "shiki": "^2.1.0", - "vite": "^5.4.14", - "vue": "^3.5.13" - }, - "bin": { - "vitepress": "bin/vitepress.js" - }, - "peerDependencies": { - "markdown-it-mathjax3": "^4", - "postcss": "^8" - }, - "peerDependenciesMeta": { - "markdown-it-mathjax3": { - "optional": true - }, - "postcss": { - "optional": true - } - } - }, - "node_modules/vitepress-plugin-mermaid": { - "version": "2.0.17", - "resolved": "https://registry.npmjs.org/vitepress-plugin-mermaid/-/vitepress-plugin-mermaid-2.0.17.tgz", - "integrity": "sha512-IUzYpwf61GC6k0XzfmAmNrLvMi9TRrVRMsUyCA8KNXhg/mQ1VqWnO0/tBVPiX5UoKF1mDUwqn5QV4qAJl6JnUg==", - "dev": true, - "license": "MIT", - "optionalDependencies": { - "@mermaid-js/mermaid-mindmap": "^9.3.0" - }, - "peerDependencies": { - "mermaid": "10 || 11", - "vitepress": "^1.0.0 || ^1.0.0-alpha" - } - }, - "node_modules/vscode-jsonrpc": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-8.2.0.tgz", - "integrity": "sha512-C+r0eKJUIfiDIfwJhria30+TYWPtuHJXHtI7J0YlOmKAo7ogxP20T0zxB7HZQIFhIyvoBPwWskjxrvAtfjyZfA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/vscode-languageserver": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/vscode-languageserver/-/vscode-languageserver-9.0.1.tgz", - "integrity": "sha512-woByF3PDpkHFUreUa7Hos7+pUWdeWMXRd26+ZX2A8cFx6v/JPTtd4/uN0/jB6XQHYaOlHbio03NTHCqrgG5n7g==", - "dev": true, - "license": "MIT", - "dependencies": { - "vscode-languageserver-protocol": "3.17.5" - }, - "bin": { - "installServerIntoExtension": "bin/installServerIntoExtension" - } - }, - "node_modules/vscode-languageserver-protocol": { - "version": "3.17.5", - "resolved": "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.17.5.tgz", - "integrity": "sha512-mb1bvRJN8SVznADSGWM9u/b07H7Ecg0I3OgXDuLdn307rl/J3A9YD6/eYOssqhecL27hK1IPZAsaqh00i/Jljg==", - "dev": true, - "license": "MIT", - "dependencies": { - "vscode-jsonrpc": "8.2.0", - "vscode-languageserver-types": "3.17.5" - } - }, - "node_modules/vscode-languageserver-textdocument": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.12.tgz", - "integrity": "sha512-cxWNPesCnQCcMPeenjKKsOCKQZ/L6Tv19DTRIGuLWe32lyzWhihGVJ/rcckZXJxfdKCFvRLS3fpBIsV/ZGX4zA==", - "dev": true, - "license": "MIT" - }, - "node_modules/vscode-languageserver-types": { - "version": "3.17.5", - "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.17.5.tgz", - "integrity": "sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg==", - "dev": true, - "license": "MIT" - }, - "node_modules/vscode-uri": { - "version": "3.0.8", - "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.0.8.tgz", - "integrity": "sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==", - "dev": true, - "license": "MIT" - }, - "node_modules/vue": { - "version": "3.5.26", - "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.26.tgz", - "integrity": "sha512-SJ/NTccVyAoNUJmkM9KUqPcYlY+u8OVL1X5EW9RIs3ch5H2uERxyyIUI4MRxVCSOiEcupX9xNGde1tL9ZKpimA==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "@vue/compiler-dom": "3.5.26", - "@vue/compiler-sfc": "3.5.26", - "@vue/runtime-dom": "3.5.26", - "@vue/server-renderer": "3.5.26", - "@vue/shared": "3.5.26" - }, - "peerDependencies": { - "typescript": "*" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/zwitch": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz", - "integrity": "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==", - "dev": true, - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } + "name": "docs", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "dependencies": { + "asciinema-player": "^3.15.1" + }, + "devDependencies": { + "vitepress": "^1.6.4", + "vitepress-plugin-mermaid": "^2.0.17" + } + }, + "node_modules/@algolia/abtesting": { + "version": "1.12.3", + "resolved": "https://registry.npmjs.org/@algolia/abtesting/-/abtesting-1.12.3.tgz", + "integrity": "sha512-0SpSdnME0RCS6UHSs9XD3ox4bMcCg1JTmjAJ3AU6rcTlX54CZOAEPc2as8uSghX6wfKGT0HWes4TeUpjJMg6FQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@algolia/client-common": "5.46.3", + "@algolia/requester-browser-xhr": "5.46.3", + "@algolia/requester-fetch": "5.46.3", + "@algolia/requester-node-http": "5.46.3" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/autocomplete-core": { + "version": "1.17.7", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-core/-/autocomplete-core-1.17.7.tgz", + "integrity": "sha512-BjiPOW6ks90UKl7TwMv7oNQMnzU+t/wk9mgIDi6b1tXpUek7MW0lbNOUHpvam9pe3lVCf4xPFT+lK7s+e+fs7Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@algolia/autocomplete-plugin-algolia-insights": "1.17.7", + "@algolia/autocomplete-shared": "1.17.7" + } + }, + "node_modules/@algolia/autocomplete-plugin-algolia-insights": { + "version": "1.17.7", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-plugin-algolia-insights/-/autocomplete-plugin-algolia-insights-1.17.7.tgz", + "integrity": "sha512-Jca5Ude6yUOuyzjnz57og7Et3aXjbwCSDf/8onLHSQgw1qW3ALl9mrMWaXb5FmPVkV3EtkD2F/+NkT6VHyPu9A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@algolia/autocomplete-shared": "1.17.7" + }, + "peerDependencies": { + "search-insights": ">= 1 < 3" + } + }, + "node_modules/@algolia/autocomplete-preset-algolia": { + "version": "1.17.7", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-preset-algolia/-/autocomplete-preset-algolia-1.17.7.tgz", + "integrity": "sha512-ggOQ950+nwbWROq2MOCIL71RE0DdQZsceqrg32UqnhDz8FlO9rL8ONHNsI2R1MH0tkgVIDKI/D0sMiUchsFdWA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@algolia/autocomplete-shared": "1.17.7" + }, + "peerDependencies": { + "@algolia/client-search": ">= 4.9.1 < 6", + "algoliasearch": ">= 4.9.1 < 6" + } + }, + "node_modules/@algolia/autocomplete-shared": { + "version": "1.17.7", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-shared/-/autocomplete-shared-1.17.7.tgz", + "integrity": "sha512-o/1Vurr42U/qskRSuhBH+VKxMvkkUVTLU6WZQr+L5lGZZLYWyhdzWjW0iGXY7EkwRTjBqvN2EsR81yCTGV/kmg==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "@algolia/client-search": ">= 4.9.1 < 6", + "algoliasearch": ">= 4.9.1 < 6" + } + }, + "node_modules/@algolia/client-abtesting": { + "version": "5.46.3", + "resolved": "https://registry.npmjs.org/@algolia/client-abtesting/-/client-abtesting-5.46.3.tgz", + "integrity": "sha512-i2C8sBcl3EKXuCd5nlGohW+pZ9pY3P3JKJ2OYqsbCPg6wURiR32hNDiDvDq7/dqJ7KWWwC2snxJhokZzGlckgQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@algolia/client-common": "5.46.3", + "@algolia/requester-browser-xhr": "5.46.3", + "@algolia/requester-fetch": "5.46.3", + "@algolia/requester-node-http": "5.46.3" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/client-analytics": { + "version": "5.46.3", + "resolved": "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-5.46.3.tgz", + "integrity": "sha512-uFmD7m3LOym1SAURHeiqupHT9jui+9HK0lAiIvm077gXEscOM5KKXM4rg/ICzQ3UDHLZEA0Lb5TglWsXnieE6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@algolia/client-common": "5.46.3", + "@algolia/requester-browser-xhr": "5.46.3", + "@algolia/requester-fetch": "5.46.3", + "@algolia/requester-node-http": "5.46.3" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/client-common": { + "version": "5.46.3", + "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-5.46.3.tgz", + "integrity": "sha512-SN+yK840nXa+2+mF72hrDfGd8+B7eBjF8TK/8KoRMdjlAkO/P3o3vtpjKRKI/Sk4L8kYYkB/avW8l+cwR+O1Ew==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/client-insights": { + "version": "5.46.3", + "resolved": "https://registry.npmjs.org/@algolia/client-insights/-/client-insights-5.46.3.tgz", + "integrity": "sha512-5ic1liG0VucNPi6gKCWh5bEUGWQfyEmVeXiNKS+rOSppg7B7nKH0PEEJOFXBbHmgK5aPfNNZINiKcyUoH4XsFA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@algolia/client-common": "5.46.3", + "@algolia/requester-browser-xhr": "5.46.3", + "@algolia/requester-fetch": "5.46.3", + "@algolia/requester-node-http": "5.46.3" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/client-personalization": { + "version": "5.46.3", + "resolved": "https://registry.npmjs.org/@algolia/client-personalization/-/client-personalization-5.46.3.tgz", + "integrity": "sha512-f4HNitgTip8tntKgluYBTc1LWSOkbNCdxZvRA3rRBZnEAYSvLe7jpE+AxRep6RY+prSWwMtyeCFhA/F1Um+TuQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@algolia/client-common": "5.46.3", + "@algolia/requester-browser-xhr": "5.46.3", + "@algolia/requester-fetch": "5.46.3", + "@algolia/requester-node-http": "5.46.3" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/client-query-suggestions": { + "version": "5.46.3", + "resolved": "https://registry.npmjs.org/@algolia/client-query-suggestions/-/client-query-suggestions-5.46.3.tgz", + "integrity": "sha512-/AaVqah2aYyJj7Cazu5QRkgcV3HF3lkBJo5TRkgqQ26xR4iHNRbLF2YsWJfJpJEFghlTF2HOCh7IgzaUCnM+8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@algolia/client-common": "5.46.3", + "@algolia/requester-browser-xhr": "5.46.3", + "@algolia/requester-fetch": "5.46.3", + "@algolia/requester-node-http": "5.46.3" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/client-search": { + "version": "5.46.3", + "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-5.46.3.tgz", + "integrity": "sha512-hfpCIukPuwkrlwsYfJEWdU5R5bduBHEq2uuPcqmgPgNq5MSjmiNIzRuzxGZZgiBKcre6gZT00DR7G1AFn//wiQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@algolia/client-common": "5.46.3", + "@algolia/requester-browser-xhr": "5.46.3", + "@algolia/requester-fetch": "5.46.3", + "@algolia/requester-node-http": "5.46.3" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/ingestion": { + "version": "1.46.3", + "resolved": "https://registry.npmjs.org/@algolia/ingestion/-/ingestion-1.46.3.tgz", + "integrity": "sha512-ChVzNkCzAVxKozTnTgPWCG69WQLjzW7X6OqD91zUh8U38ZhPEX/t3qGhXs+M9ZNaHcJ7xToMB3jywNwONhpLGA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@algolia/client-common": "5.46.3", + "@algolia/requester-browser-xhr": "5.46.3", + "@algolia/requester-fetch": "5.46.3", + "@algolia/requester-node-http": "5.46.3" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/monitoring": { + "version": "1.46.3", + "resolved": "https://registry.npmjs.org/@algolia/monitoring/-/monitoring-1.46.3.tgz", + "integrity": "sha512-MZa+Z5iPmVMxVAQ0aq4HpGsja5utSLEMcOuY01X8D46vvMrSPkP8DnlDFtu1PgJ0RwyIGqqx7v+ClFo6iRJ6bA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@algolia/client-common": "5.46.3", + "@algolia/requester-browser-xhr": "5.46.3", + "@algolia/requester-fetch": "5.46.3", + "@algolia/requester-node-http": "5.46.3" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/recommend": { + "version": "5.46.3", + "resolved": "https://registry.npmjs.org/@algolia/recommend/-/recommend-5.46.3.tgz", + "integrity": "sha512-cr3atJRJBKgAKZl/Oxo4sig6Se0+ukbyIOOluPV5H+ZAXVcxuMoXQgwQ1M5UHPnCnEsZ4uBXhBmilRgUQpUegw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@algolia/client-common": "5.46.3", + "@algolia/requester-browser-xhr": "5.46.3", + "@algolia/requester-fetch": "5.46.3", + "@algolia/requester-node-http": "5.46.3" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/requester-browser-xhr": { + "version": "5.46.3", + "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-5.46.3.tgz", + "integrity": "sha512-/Ku9GImJf2SKoRM2S3e03MjCVaWJCP5olih4k54DRhNDdmxBkd3nsWuUXvDElY3Ucw/arBYGs5SYz79SoS5APw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@algolia/client-common": "5.46.3" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/requester-fetch": { + "version": "5.46.3", + "resolved": "https://registry.npmjs.org/@algolia/requester-fetch/-/requester-fetch-5.46.3.tgz", + "integrity": "sha512-Uw+SPy/zpfwbH1AxQaeOWvWVzPEcO0XbtLbbSz0HPcEIiBGWyfa9LUCxD5UferbDjrSQNVimmzl3FaWi4u8Ykw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@algolia/client-common": "5.46.3" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/requester-node-http": { + "version": "5.46.3", + "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-5.46.3.tgz", + "integrity": "sha512-4No9iTjr1GZ0JWsFbQJj9aZBnmKyY1sTxOoEud9+SGe3U6iAulF0A0lI4cWi/F/Gcfg8V3jkaddcqSQKDnE45w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@algolia/client-common": "5.46.3" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@antfu/install-pkg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@antfu/install-pkg/-/install-pkg-1.1.0.tgz", + "integrity": "sha512-MGQsmw10ZyI+EJo45CdSER4zEb+p31LpDAFp2Z3gkSd1yqVZGi0Ebx++YTEMonJy4oChEMLsxZ64j8FH6sSqtQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "package-manager-detector": "^1.3.0", + "tinyexec": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", + "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz", + "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.6.tgz", + "integrity": "sha512-TeR9zWR18BvbfPmGbLampPMW+uW1NZnJlRuuHso8i87QZNq2JRF9i6RgxRqtEq+wQGsS19NNTWr2duhnE49mfQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.28.6" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.28.6.tgz", + "integrity": "sha512-05WQkdpL9COIMz4LjTxGpPNCdlpyimKppYNoJ5Di5EUObifl8t4tuLuUBBZEpoLYOmfvIWrsp9fCl0HoPRVTdA==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.6.tgz", + "integrity": "sha512-0ZrskXVEHSWIqZM/sQZ4EV3jZJXRkio/WCxaqKZP1g//CEWEPSfeZFcms4XeKBCHU0ZKnIkdJeU/kF+eRp5lBg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.28.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@braintree/sanitize-url": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/@braintree/sanitize-url/-/sanitize-url-7.1.1.tgz", + "integrity": "sha512-i1L7noDNxtFyL5DmZafWy1wRVhGehQmzZaz1HiN5e7iylJMSZR7ekOV7NsIqa5qBldlLrsKv4HbgFUVlQrz8Mw==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/@chevrotain/cst-dts-gen": { + "version": "11.0.3", + "resolved": "https://registry.npmjs.org/@chevrotain/cst-dts-gen/-/cst-dts-gen-11.0.3.tgz", + "integrity": "sha512-BvIKpRLeS/8UbfxXxgC33xOumsacaeCKAjAeLyOn7Pcp95HiRbrpl14S+9vaZLolnbssPIUuiUd8IvgkRyt6NQ==", + "dev": true, + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "@chevrotain/gast": "11.0.3", + "@chevrotain/types": "11.0.3", + "lodash-es": "4.17.21" + } + }, + "node_modules/@chevrotain/cst-dts-gen/node_modules/lodash-es": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", + "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/@chevrotain/gast": { + "version": "11.0.3", + "resolved": "https://registry.npmjs.org/@chevrotain/gast/-/gast-11.0.3.tgz", + "integrity": "sha512-+qNfcoNk70PyS/uxmj3li5NiECO+2YKZZQMbmjTqRI3Qchu8Hig/Q9vgkHpI3alNjr7M+a2St5pw5w5F6NL5/Q==", + "dev": true, + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "@chevrotain/types": "11.0.3", + "lodash-es": "4.17.21" + } + }, + "node_modules/@chevrotain/gast/node_modules/lodash-es": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", + "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/@chevrotain/regexp-to-ast": { + "version": "11.0.3", + "resolved": "https://registry.npmjs.org/@chevrotain/regexp-to-ast/-/regexp-to-ast-11.0.3.tgz", + "integrity": "sha512-1fMHaBZxLFvWI067AVbGJav1eRY7N8DDvYCTwGBiE/ytKBgP8azTdgyrKyWZ9Mfh09eHWb5PgTSO8wi7U824RA==", + "dev": true, + "license": "Apache-2.0", + "peer": true + }, + "node_modules/@chevrotain/types": { + "version": "11.0.3", + "resolved": "https://registry.npmjs.org/@chevrotain/types/-/types-11.0.3.tgz", + "integrity": "sha512-gsiM3G8b58kZC2HaWR50gu6Y1440cHiJ+i3JUvcp/35JchYejb2+5MVeJK0iKThYpAa/P2PYFV4hoi44HD+aHQ==", + "dev": true, + "license": "Apache-2.0", + "peer": true + }, + "node_modules/@chevrotain/utils": { + "version": "11.0.3", + "resolved": "https://registry.npmjs.org/@chevrotain/utils/-/utils-11.0.3.tgz", + "integrity": "sha512-YslZMgtJUyuMbZ+aKvfF3x1f5liK4mWNxghFRv7jqRR9C3R3fAOGTTKvxXDa2Y1s9zSbcpuO0cAxDYsc9SrXoQ==", + "dev": true, + "license": "Apache-2.0", + "peer": true + }, + "node_modules/@docsearch/css": { + "version": "3.8.2", + "resolved": "https://registry.npmjs.org/@docsearch/css/-/css-3.8.2.tgz", + "integrity": "sha512-y05ayQFyUmCXze79+56v/4HpycYF3uFqB78pLPrSV5ZKAlDuIAAJNhaRi8tTdRNXh05yxX/TyNnzD6LwSM89vQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@docsearch/js": { + "version": "3.8.2", + "resolved": "https://registry.npmjs.org/@docsearch/js/-/js-3.8.2.tgz", + "integrity": "sha512-Q5wY66qHn0SwA7Taa0aDbHiJvaFJLOJyHmooQ7y8hlwwQLQ/5WwCcoX0g7ii04Qi2DJlHsd0XXzJ8Ypw9+9YmQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@docsearch/react": "3.8.2", + "preact": "^10.0.0" + } + }, + "node_modules/@docsearch/react": { + "version": "3.8.2", + "resolved": "https://registry.npmjs.org/@docsearch/react/-/react-3.8.2.tgz", + "integrity": "sha512-xCRrJQlTt8N9GU0DG4ptwHRkfnSnD/YpdeaXe02iKfqs97TkZJv60yE+1eq/tjPcVnTW8dP5qLP7itifFVV5eg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@algolia/autocomplete-core": "1.17.7", + "@algolia/autocomplete-preset-algolia": "1.17.7", + "@docsearch/css": "3.8.2", + "algoliasearch": "^5.14.2" + }, + "peerDependencies": { + "@types/react": ">= 16.8.0 < 19.0.0", + "react": ">= 16.8.0 < 19.0.0", + "react-dom": ">= 16.8.0 < 19.0.0", + "search-insights": ">= 1 < 3" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "react": { + "optional": true + }, + "react-dom": { + "optional": true + }, + "search-insights": { + "optional": true + } + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", + "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", + "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", + "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", + "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", + "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", + "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", + "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", + "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", + "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", + "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", + "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", + "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", + "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", + "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", + "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", + "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", + "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", + "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", + "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", + "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", + "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", + "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", + "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@iconify-json/simple-icons": { + "version": "1.2.66", + "resolved": "https://registry.npmjs.org/@iconify-json/simple-icons/-/simple-icons-1.2.66.tgz", + "integrity": "sha512-D1OnnXwiQXFkVMw5M+Bt8mPsXeMkQyGmMdrmN7lsQlKMUkfLOp6JWhnUJ92po51WXT046aF/zzqSmkKqg08p4Q==", + "dev": true, + "license": "CC0-1.0", + "dependencies": { + "@iconify/types": "*" + } + }, + "node_modules/@iconify/types": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@iconify/types/-/types-2.0.0.tgz", + "integrity": "sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@iconify/utils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@iconify/utils/-/utils-3.1.0.tgz", + "integrity": "sha512-Zlzem1ZXhI1iHeeERabLNzBHdOa4VhQbqAcOQaMKuTuyZCpwKbC2R4Dd0Zo3g9EAc+Y4fiarO8HIHRAth7+skw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@antfu/install-pkg": "^1.1.0", + "@iconify/types": "^2.0.0", + "mlly": "^1.8.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", + "dev": true, + "license": "MIT" + }, + "node_modules/@mermaid-js/mermaid-mindmap": { + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/@mermaid-js/mermaid-mindmap/-/mermaid-mindmap-9.3.0.tgz", + "integrity": "sha512-IhtYSVBBRYviH1Ehu8gk69pMDF8DSRqXBRDMWrEfHoaMruHeaP2DXA3PBnuwsMaCdPQhlUUcy/7DBLAEIXvCAw==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@braintree/sanitize-url": "^6.0.0", + "cytoscape": "^3.23.0", + "cytoscape-cose-bilkent": "^4.1.0", + "cytoscape-fcose": "^2.1.0", + "d3": "^7.0.0", + "khroma": "^2.0.0", + "non-layered-tidy-tree-layout": "^2.0.2" + } + }, + "node_modules/@mermaid-js/mermaid-mindmap/node_modules/@braintree/sanitize-url": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/@braintree/sanitize-url/-/sanitize-url-6.0.4.tgz", + "integrity": "sha512-s3jaWicZd0pkP0jf5ysyHUI/RE7MHos6qlToFcGWXVp+ykHOy77OUMrfbgJ9it2C5bow7OIQwYYaHjk9XlBQ2A==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/@mermaid-js/parser": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/@mermaid-js/parser/-/parser-0.6.3.tgz", + "integrity": "sha512-lnjOhe7zyHjc+If7yT4zoedx2vo4sHaTmtkl1+or8BRTnCtDmcTpAjpzDSfCZrshM5bCoz0GyidzadJAH1xobA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "langium": "3.3.1" + } + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.55.1.tgz", + "integrity": "sha512-9R0DM/ykwfGIlNu6+2U09ga0WXeZ9MRC2Ter8jnz8415VbuIykVuc6bhdrbORFZANDmTDvq26mJrEVTl8TdnDg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.55.1.tgz", + "integrity": "sha512-eFZCb1YUqhTysgW3sj/55du5cG57S7UTNtdMjCW7LwVcj3dTTcowCsC8p7uBdzKsZYa8J7IDE8lhMI+HX1vQvg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.55.1.tgz", + "integrity": "sha512-p3grE2PHcQm2e8PSGZdzIhCKbMCw/xi9XvMPErPhwO17vxtvCN5FEA2mSLgmKlCjHGMQTP6phuQTYWUnKewwGg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.55.1.tgz", + "integrity": "sha512-rDUjG25C9qoTm+e02Esi+aqTKSBYwVTaoS1wxcN47/Luqef57Vgp96xNANwt5npq9GDxsH7kXxNkJVEsWEOEaQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.55.1.tgz", + "integrity": "sha512-+JiU7Jbp5cdxekIgdte0jfcu5oqw4GCKr6i3PJTlXTCU5H5Fvtkpbs4XJHRmWNXF+hKmn4v7ogI5OQPaupJgOg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.55.1.tgz", + "integrity": "sha512-V5xC1tOVWtLLmr3YUk2f6EJK4qksksOYiz/TCsFHu/R+woubcLWdC9nZQmwjOAbmExBIVKsm1/wKmEy4z4u4Bw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.55.1.tgz", + "integrity": "sha512-Rn3n+FUk2J5VWx+ywrG/HGPTD9jXNbicRtTM11e/uorplArnXZYsVifnPPqNNP5BsO3roI4n8332ukpY/zN7rQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.55.1.tgz", + "integrity": "sha512-grPNWydeKtc1aEdrJDWk4opD7nFtQbMmV7769hiAaYyUKCT1faPRm2av8CX1YJsZ4TLAZcg9gTR1KvEzoLjXkg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.55.1.tgz", + "integrity": "sha512-a59mwd1k6x8tXKcUxSyISiquLwB5pX+fJW9TkWU46lCqD/GRDe9uDN31jrMmVP3feI3mhAdvcCClhV8V5MhJFQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.55.1.tgz", + "integrity": "sha512-puS1MEgWX5GsHSoiAsF0TYrpomdvkaXm0CofIMG5uVkP6IBV+ZO9xhC5YEN49nsgYo1DuuMquF9+7EDBVYu4uA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loong64-gnu": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.55.1.tgz", + "integrity": "sha512-r3Wv40in+lTsULSb6nnoudVbARdOwb2u5fpeoOAZjFLznp6tDU8kd+GTHmJoqZ9lt6/Sys33KdIHUaQihFcu7g==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loong64-musl": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.55.1.tgz", + "integrity": "sha512-MR8c0+UxAlB22Fq4R+aQSPBayvYa3+9DrwG/i1TKQXFYEaoW3B5b/rkSRIypcZDdWjWnpcvxbNaAJDcSbJU3Lw==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-gnu": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.55.1.tgz", + "integrity": "sha512-3KhoECe1BRlSYpMTeVrD4sh2Pw2xgt4jzNSZIIPLFEsnQn9gAnZagW9+VqDqAHgm1Xc77LzJOo2LdigS5qZ+gw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-musl": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.55.1.tgz", + "integrity": "sha512-ziR1OuZx0vdYZZ30vueNZTg73alF59DicYrPViG0NEgDVN8/Jl87zkAPu4u6VjZST2llgEUjaiNl9JM6HH1Vdw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.55.1.tgz", + "integrity": "sha512-uW0Y12ih2XJRERZ4jAfKamTyIHVMPQnTZcQjme2HMVDAHY4amf5u414OqNYC+x+LzRdRcnIG1YodLrrtA8xsxw==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-musl": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.55.1.tgz", + "integrity": "sha512-u9yZ0jUkOED1BFrqu3BwMQoixvGHGZ+JhJNkNKY/hyoEgOwlqKb62qu+7UjbPSHYjiVy8kKJHvXKv5coH4wDeg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.55.1.tgz", + "integrity": "sha512-/0PenBCmqM4ZUd0190j7J0UsQ/1nsi735iPRakO8iPciE7BQ495Y6msPzaOmvx0/pn+eJVVlZrNrSh4WSYLxNg==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.55.1.tgz", + "integrity": "sha512-a8G4wiQxQG2BAvo+gU6XrReRRqj+pLS2NGXKm8io19goR+K8lw269eTrPkSdDTALwMmJp4th2Uh0D8J9bEV1vg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.55.1.tgz", + "integrity": "sha512-bD+zjpFrMpP/hqkfEcnjXWHMw5BIghGisOKPj+2NaNDuVT+8Ds4mPf3XcPHuat1tz89WRL+1wbcxKY3WSbiT7w==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-openbsd-x64": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.55.1.tgz", + "integrity": "sha512-eLXw0dOiqE4QmvikfQ6yjgkg/xDM+MdU9YJuP4ySTibXU0oAvnEWXt7UDJmD4UkYialMfOGFPJnIHSe/kdzPxg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ] + }, + "node_modules/@rollup/rollup-openharmony-arm64": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.55.1.tgz", + "integrity": "sha512-xzm44KgEP11te3S2HCSyYf5zIzWmx3n8HDCc7EE59+lTcswEWNpvMLfd9uJvVX8LCg9QWG67Xt75AuHn4vgsXw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.55.1.tgz", + "integrity": "sha512-yR6Bl3tMC/gBok5cz/Qi0xYnVbIxGx5Fcf/ca0eB6/6JwOY+SRUcJfI0OpeTpPls7f194as62thCt/2BjxYN8g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.55.1.tgz", + "integrity": "sha512-3fZBidchE0eY0oFZBnekYCfg+5wAB0mbpCBuofh5mZuzIU/4jIVkbESmd2dOsFNS78b53CYv3OAtwqkZZmU5nA==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-gnu": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.55.1.tgz", + "integrity": "sha512-xGGY5pXj69IxKb4yv/POoocPy/qmEGhimy/FoTpTSVju3FYXUQQMFCaZZXJVidsmGxRioZAwpThl/4zX41gRKg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.55.1.tgz", + "integrity": "sha512-SPEpaL6DX4rmcXtnhdrQYgzQ5W2uW3SCJch88lB2zImhJRhIIK44fkUrgIV/Q8yUNfw5oyZ5vkeQsZLhCb06lw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@shikijs/core": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@shikijs/core/-/core-2.5.0.tgz", + "integrity": "sha512-uu/8RExTKtavlpH7XqnVYBrfBkUc20ngXiX9NSrBhOVZYv/7XQRKUyhtkeflY5QsxC0GbJThCerruZfsUaSldg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@shikijs/engine-javascript": "2.5.0", + "@shikijs/engine-oniguruma": "2.5.0", + "@shikijs/types": "2.5.0", + "@shikijs/vscode-textmate": "^10.0.2", + "@types/hast": "^3.0.4", + "hast-util-to-html": "^9.0.4" + } + }, + "node_modules/@shikijs/engine-javascript": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@shikijs/engine-javascript/-/engine-javascript-2.5.0.tgz", + "integrity": "sha512-VjnOpnQf8WuCEZtNUdjjwGUbtAVKuZkVQ/5cHy/tojVVRIRtlWMYVjyWhxOmIq05AlSOv72z7hRNRGVBgQOl0w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@shikijs/types": "2.5.0", + "@shikijs/vscode-textmate": "^10.0.2", + "oniguruma-to-es": "^3.1.0" + } + }, + "node_modules/@shikijs/engine-oniguruma": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@shikijs/engine-oniguruma/-/engine-oniguruma-2.5.0.tgz", + "integrity": "sha512-pGd1wRATzbo/uatrCIILlAdFVKdxImWJGQ5rFiB5VZi2ve5xj3Ax9jny8QvkaV93btQEwR/rSz5ERFpC5mKNIw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@shikijs/types": "2.5.0", + "@shikijs/vscode-textmate": "^10.0.2" + } + }, + "node_modules/@shikijs/langs": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@shikijs/langs/-/langs-2.5.0.tgz", + "integrity": "sha512-Qfrrt5OsNH5R+5tJ/3uYBBZv3SuGmnRPejV9IlIbFH3HTGLDlkqgHymAlzklVmKBjAaVmkPkyikAV/sQ1wSL+w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@shikijs/types": "2.5.0" + } + }, + "node_modules/@shikijs/themes": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@shikijs/themes/-/themes-2.5.0.tgz", + "integrity": "sha512-wGrk+R8tJnO0VMzmUExHR+QdSaPUl/NKs+a4cQQRWyoc3YFbUzuLEi/KWK1hj+8BfHRKm2jNhhJck1dfstJpiw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@shikijs/types": "2.5.0" + } + }, + "node_modules/@shikijs/transformers": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@shikijs/transformers/-/transformers-2.5.0.tgz", + "integrity": "sha512-SI494W5X60CaUwgi8u4q4m4s3YAFSxln3tzNjOSYqq54wlVgz0/NbbXEb3mdLbqMBztcmS7bVTaEd2w0qMmfeg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@shikijs/core": "2.5.0", + "@shikijs/types": "2.5.0" + } + }, + "node_modules/@shikijs/types": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@shikijs/types/-/types-2.5.0.tgz", + "integrity": "sha512-ygl5yhxki9ZLNuNpPitBWvcy9fsSKKaRuO4BAlMyagszQidxcpLAr0qiW/q43DtSIDxO6hEbtYLiFZNXO/hdGw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@shikijs/vscode-textmate": "^10.0.2", + "@types/hast": "^3.0.4" + } + }, + "node_modules/@shikijs/vscode-textmate": { + "version": "10.0.2", + "resolved": "https://registry.npmjs.org/@shikijs/vscode-textmate/-/vscode-textmate-10.0.2.tgz", + "integrity": "sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@solid-primitives/refs": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@solid-primitives/refs/-/refs-1.1.3.tgz", + "integrity": "sha512-aam02fjNKpBteewF/UliPSQCVJsIIGOLEWQOh+ll6R/QePzBOOBMcC4G+5jTaO75JuUS1d/14Q1YXT3X0Ow6iA==", + "license": "MIT", + "dependencies": { + "@solid-primitives/utils": "^6.4.0" + }, + "peerDependencies": { + "solid-js": "^1.6.12" + } + }, + "node_modules/@solid-primitives/transition-group": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@solid-primitives/transition-group/-/transition-group-1.1.2.tgz", + "integrity": "sha512-gnHS0OmcdjeoHN9n7Khu8KNrOlRc8a2weETDt2YT6o1zeW/XtUC6Db3Q9pkMU/9cCKdEmN4b0a/41MKAHRhzWA==", + "license": "MIT", + "peerDependencies": { + "solid-js": "^1.6.12" + } + }, + "node_modules/@solid-primitives/utils": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/@solid-primitives/utils/-/utils-6.4.0.tgz", + "integrity": "sha512-AeGTBg8Wtkh/0s+evyLtP8piQoS4wyqqQaAFs2HJcFMMjYAtUgo+ZPduRXLjPlqKVc2ejeR544oeqpbn8Egn8A==", + "license": "MIT", + "peerDependencies": { + "solid-js": "^1.6.12" + } + }, + "node_modules/@types/d3": { + "version": "7.4.3", + "resolved": "https://registry.npmjs.org/@types/d3/-/d3-7.4.3.tgz", + "integrity": "sha512-lZXZ9ckh5R8uiFVt8ogUNf+pIrK4EsWrx2Np75WvF/eTpJ0FMHNhjXk8CKEx/+gpHbNQyJWehbFaTvqmHWB3ww==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@types/d3-array": "*", + "@types/d3-axis": "*", + "@types/d3-brush": "*", + "@types/d3-chord": "*", + "@types/d3-color": "*", + "@types/d3-contour": "*", + "@types/d3-delaunay": "*", + "@types/d3-dispatch": "*", + "@types/d3-drag": "*", + "@types/d3-dsv": "*", + "@types/d3-ease": "*", + "@types/d3-fetch": "*", + "@types/d3-force": "*", + "@types/d3-format": "*", + "@types/d3-geo": "*", + "@types/d3-hierarchy": "*", + "@types/d3-interpolate": "*", + "@types/d3-path": "*", + "@types/d3-polygon": "*", + "@types/d3-quadtree": "*", + "@types/d3-random": "*", + "@types/d3-scale": "*", + "@types/d3-scale-chromatic": "*", + "@types/d3-selection": "*", + "@types/d3-shape": "*", + "@types/d3-time": "*", + "@types/d3-time-format": "*", + "@types/d3-timer": "*", + "@types/d3-transition": "*", + "@types/d3-zoom": "*" + } + }, + "node_modules/@types/d3-array": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/@types/d3-array/-/d3-array-3.2.2.tgz", + "integrity": "sha512-hOLWVbm7uRza0BYXpIIW5pxfrKe0W+D5lrFiAEYR+pb6w3N2SwSMaJbXdUfSEv+dT4MfHBLtn5js0LAWaO6otw==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/@types/d3-axis": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@types/d3-axis/-/d3-axis-3.0.6.tgz", + "integrity": "sha512-pYeijfZuBd87T0hGn0FO1vQ/cgLk6E1ALJjfkC0oJ8cbwkZl3TpgS8bVBLZN+2jjGgg38epgxb2zmoGtSfvgMw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@types/d3-selection": "*" + } + }, + "node_modules/@types/d3-brush": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@types/d3-brush/-/d3-brush-3.0.6.tgz", + "integrity": "sha512-nH60IZNNxEcrh6L1ZSMNA28rj27ut/2ZmI3r96Zd+1jrZD++zD3LsMIjWlvg4AYrHn/Pqz4CF3veCxGjtbqt7A==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@types/d3-selection": "*" + } + }, + "node_modules/@types/d3-chord": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@types/d3-chord/-/d3-chord-3.0.6.tgz", + "integrity": "sha512-LFYWWd8nwfwEmTZG9PfQxd17HbNPksHBiJHaKuY1XeqscXacsS2tyoo6OdRsjf+NQYeB6XrNL3a25E3gH69lcg==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/@types/d3-color": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/@types/d3-color/-/d3-color-3.1.3.tgz", + "integrity": "sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/@types/d3-contour": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@types/d3-contour/-/d3-contour-3.0.6.tgz", + "integrity": "sha512-BjzLgXGnCWjUSYGfH1cpdo41/hgdWETu4YxpezoztawmqsvCeep+8QGfiY6YbDvfgHz/DkjeIkkZVJavB4a3rg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@types/d3-array": "*", + "@types/geojson": "*" + } + }, + "node_modules/@types/d3-delaunay": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/@types/d3-delaunay/-/d3-delaunay-6.0.4.tgz", + "integrity": "sha512-ZMaSKu4THYCU6sV64Lhg6qjf1orxBthaC161plr5KuPHo3CNm8DTHiLw/5Eq2b6TsNP0W0iJrUOFscY6Q450Hw==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/@types/d3-dispatch": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/@types/d3-dispatch/-/d3-dispatch-3.0.7.tgz", + "integrity": "sha512-5o9OIAdKkhN1QItV2oqaE5KMIiXAvDWBDPrD85e58Qlz1c1kI/J0NcqbEG88CoTwJrYe7ntUCVfeUl2UJKbWgA==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/@types/d3-drag": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/@types/d3-drag/-/d3-drag-3.0.7.tgz", + "integrity": "sha512-HE3jVKlzU9AaMazNufooRJ5ZpWmLIoc90A37WU2JMmeq28w1FQqCZswHZ3xR+SuxYftzHq6WU6KJHvqxKzTxxQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@types/d3-selection": "*" + } + }, + "node_modules/@types/d3-dsv": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/@types/d3-dsv/-/d3-dsv-3.0.7.tgz", + "integrity": "sha512-n6QBF9/+XASqcKK6waudgL0pf/S5XHPPI8APyMLLUHd8NqouBGLsU8MgtO7NINGtPBtk9Kko/W4ea0oAspwh9g==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/@types/d3-ease": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/d3-ease/-/d3-ease-3.0.2.tgz", + "integrity": "sha512-NcV1JjO5oDzoK26oMzbILE6HW7uVXOHLQvHshBUW4UMdZGfiY6v5BeQwh9a9tCzv+CeefZQHJt5SRgK154RtiA==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/@types/d3-fetch": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/@types/d3-fetch/-/d3-fetch-3.0.7.tgz", + "integrity": "sha512-fTAfNmxSb9SOWNB9IoG5c8Hg6R+AzUHDRlsXsDZsNp6sxAEOP0tkP3gKkNSO/qmHPoBFTxNrjDprVHDQDvo5aA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@types/d3-dsv": "*" + } + }, + "node_modules/@types/d3-force": { + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/@types/d3-force/-/d3-force-3.0.10.tgz", + "integrity": "sha512-ZYeSaCF3p73RdOKcjj+swRlZfnYpK1EbaDiYICEEp5Q6sUiqFaFQ9qgoshp5CzIyyb/yD09kD9o2zEltCexlgw==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/@types/d3-format": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/d3-format/-/d3-format-3.0.4.tgz", + "integrity": "sha512-fALi2aI6shfg7vM5KiR1wNJnZ7r6UuggVqtDA+xiEdPZQwy/trcQaHnwShLuLdta2rTymCNpxYTiMZX/e09F4g==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/@types/d3-geo": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@types/d3-geo/-/d3-geo-3.1.0.tgz", + "integrity": "sha512-856sckF0oP/diXtS4jNsiQw/UuK5fQG8l/a9VVLeSouf1/PPbBE1i1W852zVwKwYCBkFJJB7nCFTbk6UMEXBOQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@types/geojson": "*" + } + }, + "node_modules/@types/d3-hierarchy": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/@types/d3-hierarchy/-/d3-hierarchy-3.1.7.tgz", + "integrity": "sha512-tJFtNoYBtRtkNysX1Xq4sxtjK8YgoWUNpIiUee0/jHGRwqvzYxkq0hGVbbOGSz+JgFxxRu4K8nb3YpG3CMARtg==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/@types/d3-interpolate": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/d3-interpolate/-/d3-interpolate-3.0.4.tgz", + "integrity": "sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@types/d3-color": "*" + } + }, + "node_modules/@types/d3-path": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@types/d3-path/-/d3-path-3.1.1.tgz", + "integrity": "sha512-VMZBYyQvbGmWyWVea0EHs/BwLgxc+MKi1zLDCONksozI4YJMcTt8ZEuIR4Sb1MMTE8MMW49v0IwI5+b7RmfWlg==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/@types/d3-polygon": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/d3-polygon/-/d3-polygon-3.0.2.tgz", + "integrity": "sha512-ZuWOtMaHCkN9xoeEMr1ubW2nGWsp4nIql+OPQRstu4ypeZ+zk3YKqQT0CXVe/PYqrKpZAi+J9mTs05TKwjXSRA==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/@types/d3-quadtree": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@types/d3-quadtree/-/d3-quadtree-3.0.6.tgz", + "integrity": "sha512-oUzyO1/Zm6rsxKRHA1vH0NEDG58HrT5icx/azi9MF1TWdtttWl0UIUsjEQBBh+SIkrpd21ZjEv7ptxWys1ncsg==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/@types/d3-random": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/d3-random/-/d3-random-3.0.3.tgz", + "integrity": "sha512-Imagg1vJ3y76Y2ea0871wpabqp613+8/r0mCLEBfdtqC7xMSfj9idOnmBYyMoULfHePJyxMAw3nWhJxzc+LFwQ==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/@types/d3-scale": { + "version": "4.0.9", + "resolved": "https://registry.npmjs.org/@types/d3-scale/-/d3-scale-4.0.9.tgz", + "integrity": "sha512-dLmtwB8zkAeO/juAMfnV+sItKjlsw2lKdZVVy6LRr0cBmegxSABiLEpGVmSJJ8O08i4+sGR6qQtb6WtuwJdvVw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@types/d3-time": "*" + } + }, + "node_modules/@types/d3-scale-chromatic": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@types/d3-scale-chromatic/-/d3-scale-chromatic-3.1.0.tgz", + "integrity": "sha512-iWMJgwkK7yTRmWqRB5plb1kadXyQ5Sj8V/zYlFGMUBbIPKQScw+Dku9cAAMgJG+z5GYDoMjWGLVOvjghDEFnKQ==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/@types/d3-selection": { + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/@types/d3-selection/-/d3-selection-3.0.11.tgz", + "integrity": "sha512-bhAXu23DJWsrI45xafYpkQ4NtcKMwWnAC/vKrd2l+nxMFuvOT3XMYTIj2opv8vq8AO5Yh7Qac/nSeP/3zjTK0w==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/@types/d3-shape": { + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/@types/d3-shape/-/d3-shape-3.1.8.tgz", + "integrity": "sha512-lae0iWfcDeR7qt7rA88BNiqdvPS5pFVPpo5OfjElwNaT2yyekbM0C9vK+yqBqEmHr6lDkRnYNoTBYlAgJa7a4w==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@types/d3-path": "*" + } + }, + "node_modules/@types/d3-time": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/d3-time/-/d3-time-3.0.4.tgz", + "integrity": "sha512-yuzZug1nkAAaBlBBikKZTgzCeA+k1uy4ZFwWANOfKw5z5LRhV0gNA7gNkKm7HoK+HRN0wX3EkxGk0fpbWhmB7g==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/@types/d3-time-format": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/@types/d3-time-format/-/d3-time-format-4.0.3.tgz", + "integrity": "sha512-5xg9rC+wWL8kdDj153qZcsJ0FWiFt0J5RB6LYUNZjwSnesfblqrI/bJ1wBdJ8OQfncgbJG5+2F+qfqnqyzYxyg==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/@types/d3-timer": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/d3-timer/-/d3-timer-3.0.2.tgz", + "integrity": "sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/@types/d3-transition": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/@types/d3-transition/-/d3-transition-3.0.9.tgz", + "integrity": "sha512-uZS5shfxzO3rGlu0cC3bjmMFKsXv+SmZZcgp0KD22ts4uGXp5EVYGzu/0YdwZeKmddhcAccYtREJKkPfXkZuCg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@types/d3-selection": "*" + } + }, + "node_modules/@types/d3-zoom": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/@types/d3-zoom/-/d3-zoom-3.0.8.tgz", + "integrity": "sha512-iqMC4/YlFCSlO8+2Ii1GGGliCAY4XdeG748w5vQUbevlbDu0zSjH/+jojorQVBK/se0j6DUFNPBGSqD3YWYnDw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@types/d3-interpolate": "*", + "@types/d3-selection": "*" + } + }, + "node_modules/@types/estree": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/geojson": { + "version": "7946.0.16", + "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.16.tgz", + "integrity": "sha512-6C8nqWur3j98U6+lXDfTUWIfgvZU+EumvpHKcYjujKH7woYyLj2sUmff0tRhrqM7BohUw7Pz3ZB1jj2gW9Fvmg==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/@types/hast": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", + "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/@types/linkify-it": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@types/linkify-it/-/linkify-it-5.0.0.tgz", + "integrity": "sha512-sVDA58zAw4eWAffKOaQH5/5j3XeayukzDk+ewSsnv3p4yJEZHCCzMDiZM8e0OUrRvmpGZ85jf4yDHkHsgBNr9Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/markdown-it": { + "version": "14.1.2", + "resolved": "https://registry.npmjs.org/@types/markdown-it/-/markdown-it-14.1.2.tgz", + "integrity": "sha512-promo4eFwuiW+TfGxhi+0x3czqTYJkG8qB17ZUJiVF10Xm7NLVRSLUsfRTU/6h1e24VvRnXCx+hG7li58lkzog==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/linkify-it": "^5", + "@types/mdurl": "^2" + } + }, + "node_modules/@types/mdast": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz", + "integrity": "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/@types/mdurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@types/mdurl/-/mdurl-2.0.0.tgz", + "integrity": "sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/trusted-types": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz", + "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true + }, + "node_modules/@types/unist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/web-bluetooth": { + "version": "0.0.21", + "resolved": "https://registry.npmjs.org/@types/web-bluetooth/-/web-bluetooth-0.0.21.tgz", + "integrity": "sha512-oIQLCGWtcFZy2JW77j9k8nHzAOpqMHLQejDA48XXMWH6tjCQHz5RCFz1bzsmROyL6PUm+LLnUiI4BCn221inxA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@ungap/structured-clone": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.0.tgz", + "integrity": "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==", + "dev": true, + "license": "ISC" + }, + "node_modules/@vitejs/plugin-vue": { + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-5.2.4.tgz", + "integrity": "sha512-7Yx/SXSOcQq5HiiV3orevHUFn+pmMB4cgbEkDYgnkUWb0WfeQ/wa2yFv6D5ICiCQOVpjA7vYDXrC7AGO8yjDHA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "peerDependencies": { + "vite": "^5.0.0 || ^6.0.0", + "vue": "^3.2.25" + } + }, + "node_modules/@vue/compiler-core": { + "version": "3.5.26", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.26.tgz", + "integrity": "sha512-vXyI5GMfuoBCnv5ucIT7jhHKl55Y477yxP6fc4eUswjP8FG3FFVFd41eNDArR+Uk3QKn2Z85NavjaxLxOC19/w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.28.5", + "@vue/shared": "3.5.26", + "entities": "^7.0.0", + "estree-walker": "^2.0.2", + "source-map-js": "^1.2.1" + } + }, + "node_modules/@vue/compiler-dom": { + "version": "3.5.26", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.26.tgz", + "integrity": "sha512-y1Tcd3eXs834QjswshSilCBnKGeQjQXB6PqFn/1nxcQw4pmG42G8lwz+FZPAZAby6gZeHSt/8LMPfZ4Rb+Bd/A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vue/compiler-core": "3.5.26", + "@vue/shared": "3.5.26" + } + }, + "node_modules/@vue/compiler-sfc": { + "version": "3.5.26", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.26.tgz", + "integrity": "sha512-egp69qDTSEZcf4bGOSsprUr4xI73wfrY5oRs6GSgXFTiHrWj4Y3X5Ydtip9QMqiCMCPVwLglB9GBxXtTadJ3mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.28.5", + "@vue/compiler-core": "3.5.26", + "@vue/compiler-dom": "3.5.26", + "@vue/compiler-ssr": "3.5.26", + "@vue/shared": "3.5.26", + "estree-walker": "^2.0.2", + "magic-string": "^0.30.21", + "postcss": "^8.5.6", + "source-map-js": "^1.2.1" + } + }, + "node_modules/@vue/compiler-ssr": { + "version": "3.5.26", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.26.tgz", + "integrity": "sha512-lZT9/Y0nSIRUPVvapFJEVDbEXruZh2IYHMk2zTtEgJSlP5gVOqeWXH54xDKAaFS4rTnDeDBQUYDtxKyoW9FwDw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vue/compiler-dom": "3.5.26", + "@vue/shared": "3.5.26" + } + }, + "node_modules/@vue/devtools-api": { + "version": "7.7.9", + "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-7.7.9.tgz", + "integrity": "sha512-kIE8wvwlcZ6TJTbNeU2HQNtaxLx3a84aotTITUuL/4bzfPxzajGBOoqjMhwZJ8L9qFYDU/lAYMEEm11dnZOD6g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vue/devtools-kit": "^7.7.9" + } + }, + "node_modules/@vue/devtools-kit": { + "version": "7.7.9", + "resolved": "https://registry.npmjs.org/@vue/devtools-kit/-/devtools-kit-7.7.9.tgz", + "integrity": "sha512-PyQ6odHSgiDVd4hnTP+aDk2X4gl2HmLDfiyEnn3/oV+ckFDuswRs4IbBT7vacMuGdwY/XemxBoh302ctbsptuA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vue/devtools-shared": "^7.7.9", + "birpc": "^2.3.0", + "hookable": "^5.5.3", + "mitt": "^3.0.1", + "perfect-debounce": "^1.0.0", + "speakingurl": "^14.0.1", + "superjson": "^2.2.2" + } + }, + "node_modules/@vue/devtools-shared": { + "version": "7.7.9", + "resolved": "https://registry.npmjs.org/@vue/devtools-shared/-/devtools-shared-7.7.9.tgz", + "integrity": "sha512-iWAb0v2WYf0QWmxCGy0seZNDPdO3Sp5+u78ORnyeonS6MT4PC7VPrryX2BpMJrwlDeaZ6BD4vP4XKjK0SZqaeA==", + "dev": true, + "license": "MIT", + "dependencies": { + "rfdc": "^1.4.1" + } + }, + "node_modules/@vue/reactivity": { + "version": "3.5.26", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.5.26.tgz", + "integrity": "sha512-9EnYB1/DIiUYYnzlnUBgwU32NNvLp/nhxLXeWRhHUEeWNTn1ECxX8aGO7RTXeX6PPcxe3LLuNBFoJbV4QZ+CFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vue/shared": "3.5.26" + } + }, + "node_modules/@vue/runtime-core": { + "version": "3.5.26", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.5.26.tgz", + "integrity": "sha512-xJWM9KH1kd201w5DvMDOwDHYhrdPTrAatn56oB/LRG4plEQeZRQLw0Bpwih9KYoqmzaxF0OKSn6swzYi84e1/Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vue/reactivity": "3.5.26", + "@vue/shared": "3.5.26" + } + }, + "node_modules/@vue/runtime-dom": { + "version": "3.5.26", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.5.26.tgz", + "integrity": "sha512-XLLd/+4sPC2ZkN/6+V4O4gjJu6kSDbHAChvsyWgm1oGbdSO3efvGYnm25yCjtFm/K7rrSDvSfPDgN1pHgS4VNQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vue/reactivity": "3.5.26", + "@vue/runtime-core": "3.5.26", + "@vue/shared": "3.5.26", + "csstype": "^3.2.3" + } + }, + "node_modules/@vue/server-renderer": { + "version": "3.5.26", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.5.26.tgz", + "integrity": "sha512-TYKLXmrwWKSodyVuO1WAubucd+1XlLg4set0YoV+Hu8Lo79mp/YMwWV5mC5FgtsDxX3qo1ONrxFaTP1OQgy1uA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vue/compiler-ssr": "3.5.26", + "@vue/shared": "3.5.26" + }, + "peerDependencies": { + "vue": "3.5.26" + } + }, + "node_modules/@vue/shared": { + "version": "3.5.26", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.26.tgz", + "integrity": "sha512-7Z6/y3uFI5PRoKeorTOSXKcDj0MSasfNNltcslbFrPpcw6aXRUALq4IfJlaTRspiWIUOEZbrpM+iQGmCOiWe4A==", + "dev": true, + "license": "MIT" + }, + "node_modules/@vueuse/core": { + "version": "12.8.2", + "resolved": "https://registry.npmjs.org/@vueuse/core/-/core-12.8.2.tgz", + "integrity": "sha512-HbvCmZdzAu3VGi/pWYm5Ut+Kd9mn1ZHnn4L5G8kOQTPs/IwIAmJoBrmYk2ckLArgMXZj0AW3n5CAejLUO+PhdQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/web-bluetooth": "^0.0.21", + "@vueuse/metadata": "12.8.2", + "@vueuse/shared": "12.8.2", + "vue": "^3.5.13" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@vueuse/integrations": { + "version": "12.8.2", + "resolved": "https://registry.npmjs.org/@vueuse/integrations/-/integrations-12.8.2.tgz", + "integrity": "sha512-fbGYivgK5uBTRt7p5F3zy6VrETlV9RtZjBqd1/HxGdjdckBgBM4ugP8LHpjolqTj14TXTxSK1ZfgPbHYyGuH7g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vueuse/core": "12.8.2", + "@vueuse/shared": "12.8.2", + "vue": "^3.5.13" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "async-validator": "^4", + "axios": "^1", + "change-case": "^5", + "drauu": "^0.4", + "focus-trap": "^7", + "fuse.js": "^7", + "idb-keyval": "^6", + "jwt-decode": "^4", + "nprogress": "^0.2", + "qrcode": "^1.5", + "sortablejs": "^1", + "universal-cookie": "^7" + }, + "peerDependenciesMeta": { + "async-validator": { + "optional": true + }, + "axios": { + "optional": true + }, + "change-case": { + "optional": true + }, + "drauu": { + "optional": true + }, + "focus-trap": { + "optional": true + }, + "fuse.js": { + "optional": true + }, + "idb-keyval": { + "optional": true + }, + "jwt-decode": { + "optional": true + }, + "nprogress": { + "optional": true + }, + "qrcode": { + "optional": true + }, + "sortablejs": { + "optional": true + }, + "universal-cookie": { + "optional": true + } + } + }, + "node_modules/@vueuse/metadata": { + "version": "12.8.2", + "resolved": "https://registry.npmjs.org/@vueuse/metadata/-/metadata-12.8.2.tgz", + "integrity": "sha512-rAyLGEuoBJ/Il5AmFHiziCPdQzRt88VxR+Y/A/QhJ1EWtWqPBBAxTAFaSkviwEuOEZNtW8pvkPgoCZQ+HxqW1A==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@vueuse/shared": { + "version": "12.8.2", + "resolved": "https://registry.npmjs.org/@vueuse/shared/-/shared-12.8.2.tgz", + "integrity": "sha512-dznP38YzxZoNloI0qpEfpkms8knDtaoQ6Y/sfS0L7Yki4zh40LFHEhur0odJC6xTHG5dxWVPiUWBXn+wCG2s5w==", + "dev": true, + "license": "MIT", + "dependencies": { + "vue": "^3.5.13" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/acorn": { + "version": "8.15.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", + "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", + "dev": true, + "license": "MIT", + "peer": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/algoliasearch": { + "version": "5.46.3", + "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-5.46.3.tgz", + "integrity": "sha512-n/NdPglzmkcNYZfIT3Fo8pnDR/lKiK1kZ1Yaa315UoLyHymADhWw15+bzN5gBxrCA8KyeNu0JJD6mLtTov43lQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@algolia/abtesting": "1.12.3", + "@algolia/client-abtesting": "5.46.3", + "@algolia/client-analytics": "5.46.3", + "@algolia/client-common": "5.46.3", + "@algolia/client-insights": "5.46.3", + "@algolia/client-personalization": "5.46.3", + "@algolia/client-query-suggestions": "5.46.3", + "@algolia/client-search": "5.46.3", + "@algolia/ingestion": "1.46.3", + "@algolia/monitoring": "1.46.3", + "@algolia/recommend": "5.46.3", + "@algolia/requester-browser-xhr": "5.46.3", + "@algolia/requester-fetch": "5.46.3", + "@algolia/requester-node-http": "5.46.3" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/asciinema-player": { + "version": "3.15.1", + "resolved": "https://registry.npmjs.org/asciinema-player/-/asciinema-player-3.15.1.tgz", + "integrity": "sha512-agVYeNlPxthLyAb92l9AS7ypW0uhesqOuQzyR58Q4Sj+MvesQztZBgx86lHqNJkB8rQ6EP0LeA9czGytQUBpYw==", + "license": "Apache-2.0", + "dependencies": { + "@babel/runtime": "^7.21.0", + "solid-js": "^1.3.0", + "solid-transition-group": "^0.2.3" + } + }, + "node_modules/birpc": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/birpc/-/birpc-2.9.0.tgz", + "integrity": "sha512-KrayHS5pBi69Xi9JmvoqrIgYGDkD6mcSe/i6YKi3w5kekCLzrX4+nawcXqrj2tIp50Kw/mT/s3p+GVK0A0sKxw==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/ccount": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz", + "integrity": "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/character-entities-html4": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-2.1.0.tgz", + "integrity": "sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/character-entities-legacy": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz", + "integrity": "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/chevrotain": { + "version": "11.0.3", + "resolved": "https://registry.npmjs.org/chevrotain/-/chevrotain-11.0.3.tgz", + "integrity": "sha512-ci2iJH6LeIkvP9eJW6gpueU8cnZhv85ELY8w8WiFtNjMHA5ad6pQLaJo9mEly/9qUyCpvqX8/POVUTf18/HFdw==", + "dev": true, + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "@chevrotain/cst-dts-gen": "11.0.3", + "@chevrotain/gast": "11.0.3", + "@chevrotain/regexp-to-ast": "11.0.3", + "@chevrotain/types": "11.0.3", + "@chevrotain/utils": "11.0.3", + "lodash-es": "4.17.21" + } + }, + "node_modules/chevrotain-allstar": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/chevrotain-allstar/-/chevrotain-allstar-0.3.1.tgz", + "integrity": "sha512-b7g+y9A0v4mxCW1qUhf3BSVPg+/NvGErk/dOkrDaHA0nQIQGAtrOjlX//9OQtRlSCy+x9rfB5N8yC71lH1nvMw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "lodash-es": "^4.17.21" + }, + "peerDependencies": { + "chevrotain": "^11.0.0" + } + }, + "node_modules/chevrotain/node_modules/lodash-es": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", + "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/comma-separated-tokens": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz", + "integrity": "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10" + } + }, + "node_modules/confbox": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.1.8.tgz", + "integrity": "sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/copy-anything": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/copy-anything/-/copy-anything-4.0.5.tgz", + "integrity": "sha512-7Vv6asjS4gMOuILabD3l739tsaxFQmC+a7pLZm02zyvs8p977bL3zEgq3yDk5rn9B0PbYgIv++jmHcuUab4RhA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-what": "^5.2.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/mesqueeb" + } + }, + "node_modules/cose-base": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/cose-base/-/cose-base-1.0.3.tgz", + "integrity": "sha512-s9whTXInMSgAp/NVXVNuVxVKzGH2qck3aQlVHxDCdAEPgtMKwc4Wq6/QKhgdEdgbLSi9rBTAcPoRa6JpiG4ksg==", + "dev": true, + "license": "MIT", + "dependencies": { + "layout-base": "^1.0.0" + } + }, + "node_modules/csstype": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz", + "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==", + "license": "MIT" + }, + "node_modules/cytoscape": { + "version": "3.33.1", + "resolved": "https://registry.npmjs.org/cytoscape/-/cytoscape-3.33.1.tgz", + "integrity": "sha512-iJc4TwyANnOGR1OmWhsS9ayRS3s+XQ185FmuHObThD+5AeJCakAAbWv8KimMTt08xCCLNgneQwFp+JRJOr9qGQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/cytoscape-cose-bilkent": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/cytoscape-cose-bilkent/-/cytoscape-cose-bilkent-4.1.0.tgz", + "integrity": "sha512-wgQlVIUJF13Quxiv5e1gstZ08rnZj2XaLHGoFMYXz7SkNfCDOOteKBE6SYRfA9WxxI/iBc3ajfDoc6hb/MRAHQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "cose-base": "^1.0.0" + }, + "peerDependencies": { + "cytoscape": "^3.2.0" + } + }, + "node_modules/cytoscape-fcose": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/cytoscape-fcose/-/cytoscape-fcose-2.2.0.tgz", + "integrity": "sha512-ki1/VuRIHFCzxWNrsshHYPs6L7TvLu3DL+TyIGEsRcvVERmxokbf5Gdk7mFxZnTdiGtnA4cfSmjZJMviqSuZrQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "cose-base": "^2.2.0" + }, + "peerDependencies": { + "cytoscape": "^3.2.0" + } + }, + "node_modules/cytoscape-fcose/node_modules/cose-base": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/cose-base/-/cose-base-2.2.0.tgz", + "integrity": "sha512-AzlgcsCbUMymkADOJtQm3wO9S3ltPfYOFD5033keQn9NJzIbtnZj+UdBJe7DYml/8TdbtHJW3j58SOnKhWY/5g==", + "dev": true, + "license": "MIT", + "dependencies": { + "layout-base": "^2.0.0" + } + }, + "node_modules/cytoscape-fcose/node_modules/layout-base": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/layout-base/-/layout-base-2.0.1.tgz", + "integrity": "sha512-dp3s92+uNI1hWIpPGH3jK2kxE2lMjdXdr+DH8ynZHpd6PUlH6x6cbuXnoMmiNumznqaNO31xu9e79F0uuZ0JFg==", + "dev": true, + "license": "MIT" + }, + "node_modules/d3": { + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/d3/-/d3-7.9.0.tgz", + "integrity": "sha512-e1U46jVP+w7Iut8Jt8ri1YsPOvFpg46k+K8TpCb0P+zjCkjkPnV7WzfDJzMHy1LnA+wj5pLT1wjO901gLXeEhA==", + "dev": true, + "license": "ISC", + "dependencies": { + "d3-array": "3", + "d3-axis": "3", + "d3-brush": "3", + "d3-chord": "3", + "d3-color": "3", + "d3-contour": "4", + "d3-delaunay": "6", + "d3-dispatch": "3", + "d3-drag": "3", + "d3-dsv": "3", + "d3-ease": "3", + "d3-fetch": "3", + "d3-force": "3", + "d3-format": "3", + "d3-geo": "3", + "d3-hierarchy": "3", + "d3-interpolate": "3", + "d3-path": "3", + "d3-polygon": "3", + "d3-quadtree": "3", + "d3-random": "3", + "d3-scale": "4", + "d3-scale-chromatic": "3", + "d3-selection": "3", + "d3-shape": "3", + "d3-time": "3", + "d3-time-format": "4", + "d3-timer": "3", + "d3-transition": "3", + "d3-zoom": "3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-array": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-3.2.4.tgz", + "integrity": "sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==", + "dev": true, + "license": "ISC", + "dependencies": { + "internmap": "1 - 2" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-axis": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-axis/-/d3-axis-3.0.0.tgz", + "integrity": "sha512-IH5tgjV4jE/GhHkRV0HiVYPDtvfjHQlQfJHs0usq7M30XcSBvOotpmH1IgkcXsO/5gEQZD43B//fc7SRT5S+xw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-brush": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-brush/-/d3-brush-3.0.0.tgz", + "integrity": "sha512-ALnjWlVYkXsVIGlOsuWH1+3udkYFI48Ljihfnh8FZPF2QS9o+PzGLBslO0PjzVoHLZ2KCVgAM8NVkXPJB2aNnQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "d3-dispatch": "1 - 3", + "d3-drag": "2 - 3", + "d3-interpolate": "1 - 3", + "d3-selection": "3", + "d3-transition": "3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-chord": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-chord/-/d3-chord-3.0.1.tgz", + "integrity": "sha512-VE5S6TNa+j8msksl7HwjxMHDM2yNK3XCkusIlpX5kwauBfXuyLAtNg9jCp/iHH61tgI4sb6R/EIMWCqEIdjT/g==", + "dev": true, + "license": "ISC", + "dependencies": { + "d3-path": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-color": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz", + "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-contour": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/d3-contour/-/d3-contour-4.0.2.tgz", + "integrity": "sha512-4EzFTRIikzs47RGmdxbeUvLWtGedDUNkTcmzoeyg4sP/dvCexO47AaQL7VKy/gul85TOxw+IBgA8US2xwbToNA==", + "dev": true, + "license": "ISC", + "dependencies": { + "d3-array": "^3.2.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-delaunay": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/d3-delaunay/-/d3-delaunay-6.0.4.tgz", + "integrity": "sha512-mdjtIZ1XLAM8bm/hx3WwjfHt6Sggek7qH043O8KEjDXN40xi3vx/6pYSVTwLjEgiXQTbvaouWKynLBiUZ6SK6A==", + "dev": true, + "license": "ISC", + "dependencies": { + "delaunator": "5" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-dispatch": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-3.0.1.tgz", + "integrity": "sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-drag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-drag/-/d3-drag-3.0.0.tgz", + "integrity": "sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg==", + "dev": true, + "license": "ISC", + "dependencies": { + "d3-dispatch": "1 - 3", + "d3-selection": "3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-dsv": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-dsv/-/d3-dsv-3.0.1.tgz", + "integrity": "sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q==", + "dev": true, + "license": "ISC", + "dependencies": { + "commander": "7", + "iconv-lite": "0.6", + "rw": "1" + }, + "bin": { + "csv2json": "bin/dsv2json.js", + "csv2tsv": "bin/dsv2dsv.js", + "dsv2dsv": "bin/dsv2dsv.js", + "dsv2json": "bin/dsv2json.js", + "json2csv": "bin/json2dsv.js", + "json2dsv": "bin/json2dsv.js", + "json2tsv": "bin/json2dsv.js", + "tsv2csv": "bin/dsv2dsv.js", + "tsv2json": "bin/dsv2json.js" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-ease": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-3.0.1.tgz", + "integrity": "sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-fetch": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-fetch/-/d3-fetch-3.0.1.tgz", + "integrity": "sha512-kpkQIM20n3oLVBKGg6oHrUchHM3xODkTzjMoj7aWQFq5QEM+R6E4WkzT5+tojDY7yjez8KgCBRoj4aEr99Fdqw==", + "dev": true, + "license": "ISC", + "dependencies": { + "d3-dsv": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-force": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-3.0.0.tgz", + "integrity": "sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg==", + "dev": true, + "license": "ISC", + "dependencies": { + "d3-dispatch": "1 - 3", + "d3-quadtree": "1 - 3", + "d3-timer": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-format": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-3.1.1.tgz", + "integrity": "sha512-ryitBnaRbXQtgZ/gU50GSn6jQRwinSCQclpakXymvLd8ytTgE5bmSfgYcUxD7XYL34qHhFDyVk71qqKsfSyvmA==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-geo": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-3.1.1.tgz", + "integrity": "sha512-637ln3gXKXOwhalDzinUgY83KzNWZRKbYubaG+fGVuc/dxO64RRljtCTnf5ecMyE1RIdtqpkVcq0IbtU2S8j2Q==", + "dev": true, + "license": "ISC", + "dependencies": { + "d3-array": "2.5.0 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-hierarchy": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-3.1.2.tgz", + "integrity": "sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-interpolate": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz", + "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==", + "dev": true, + "license": "ISC", + "dependencies": { + "d3-color": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-path": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-3.1.0.tgz", + "integrity": "sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-polygon": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-polygon/-/d3-polygon-3.0.1.tgz", + "integrity": "sha512-3vbA7vXYwfe1SYhED++fPUQlWSYTTGmFmQiany/gdbiWgU/iEyQzyymwL9SkJjFFuCS4902BSzewVGsHHmHtXg==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-quadtree": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-3.0.1.tgz", + "integrity": "sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-random": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-random/-/d3-random-3.0.1.tgz", + "integrity": "sha512-FXMe9GfxTxqd5D6jFsQ+DJ8BJS4E/fT5mqqdjovykEB2oFbTMDVdg1MGFxfQW+FBOGoB++k8swBrgwSHT1cUXQ==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-sankey": { + "version": "0.12.3", + "resolved": "https://registry.npmjs.org/d3-sankey/-/d3-sankey-0.12.3.tgz", + "integrity": "sha512-nQhsBRmM19Ax5xEIPLMY9ZmJ/cDvd1BG3UVvt5h3WRxKg5zGRbvnteTyWAbzeSvlh3tW7ZEmq4VwR5mB3tutmQ==", + "dev": true, + "license": "BSD-3-Clause", + "peer": true, + "dependencies": { + "d3-array": "1 - 2", + "d3-shape": "^1.2.0" + } + }, + "node_modules/d3-sankey/node_modules/d3-array": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-2.12.1.tgz", + "integrity": "sha512-B0ErZK/66mHtEsR1TkPEEkwdy+WDesimkM5gpZr5Dsg54BiTA5RXtYW5qTLIAcekaS9xfZrzBLF/OAkB3Qn1YQ==", + "dev": true, + "license": "BSD-3-Clause", + "peer": true, + "dependencies": { + "internmap": "^1.0.0" + } + }, + "node_modules/d3-sankey/node_modules/d3-path": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-1.0.9.tgz", + "integrity": "sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg==", + "dev": true, + "license": "BSD-3-Clause", + "peer": true + }, + "node_modules/d3-sankey/node_modules/d3-shape": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-1.3.7.tgz", + "integrity": "sha512-EUkvKjqPFUAZyOlhY5gzCxCeI0Aep04LwIRpsZ/mLFelJiUfnK56jo5JMDSE7yyP2kLSb6LtF+S5chMk7uqPqw==", + "dev": true, + "license": "BSD-3-Clause", + "peer": true, + "dependencies": { + "d3-path": "1" + } + }, + "node_modules/d3-sankey/node_modules/internmap": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/internmap/-/internmap-1.0.1.tgz", + "integrity": "sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw==", + "dev": true, + "license": "ISC", + "peer": true + }, + "node_modules/d3-scale": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz", + "integrity": "sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "d3-array": "2.10.0 - 3", + "d3-format": "1 - 3", + "d3-interpolate": "1.2.0 - 3", + "d3-time": "2.1.1 - 3", + "d3-time-format": "2 - 4" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-scale-chromatic": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-scale-chromatic/-/d3-scale-chromatic-3.1.0.tgz", + "integrity": "sha512-A3s5PWiZ9YCXFye1o246KoscMWqf8BsD9eRiJ3He7C9OBaxKhAd5TFCdEx/7VbKtxxTsu//1mMJFrEt572cEyQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "d3-color": "1 - 3", + "d3-interpolate": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-selection": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-3.0.0.tgz", + "integrity": "sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-shape": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-3.2.0.tgz", + "integrity": "sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==", + "dev": true, + "license": "ISC", + "dependencies": { + "d3-path": "^3.1.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-time": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-3.1.0.tgz", + "integrity": "sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==", + "dev": true, + "license": "ISC", + "dependencies": { + "d3-array": "2 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-time-format": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-4.1.0.tgz", + "integrity": "sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==", + "dev": true, + "license": "ISC", + "dependencies": { + "d3-time": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-timer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz", + "integrity": "sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-transition": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-transition/-/d3-transition-3.0.1.tgz", + "integrity": "sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w==", + "dev": true, + "license": "ISC", + "dependencies": { + "d3-color": "1 - 3", + "d3-dispatch": "1 - 3", + "d3-ease": "1 - 3", + "d3-interpolate": "1 - 3", + "d3-timer": "1 - 3" + }, + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "d3-selection": "2 - 3" + } + }, + "node_modules/d3-zoom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-zoom/-/d3-zoom-3.0.0.tgz", + "integrity": "sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw==", + "dev": true, + "license": "ISC", + "dependencies": { + "d3-dispatch": "1 - 3", + "d3-drag": "2 - 3", + "d3-interpolate": "1 - 3", + "d3-selection": "2 - 3", + "d3-transition": "2 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/dagre-d3-es": { + "version": "7.0.13", + "resolved": "https://registry.npmjs.org/dagre-d3-es/-/dagre-d3-es-7.0.13.tgz", + "integrity": "sha512-efEhnxpSuwpYOKRm/L5KbqoZmNNukHa/Flty4Wp62JRvgH2ojwVgPgdYyr4twpieZnyRDdIH7PY2mopX26+j2Q==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "d3": "^7.9.0", + "lodash-es": "^4.17.21" + } + }, + "node_modules/dayjs": { + "version": "1.11.19", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.19.tgz", + "integrity": "sha512-t5EcLVS6QPBNqM2z8fakk/NKel+Xzshgt8FFKAn+qwlD1pzZWxh0nVCrvFK7ZDb6XucZeF9z8C7CBWTRIVApAw==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/delaunator": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/delaunator/-/delaunator-5.0.1.tgz", + "integrity": "sha512-8nvh+XBe96aCESrGOqMp/84b13H9cdKbG5P2ejQCh4d4sK9RL4371qou9drQjMhvnPmhWl5hnmqbEE0fXr9Xnw==", + "dev": true, + "license": "ISC", + "dependencies": { + "robust-predicates": "^3.0.2" + } + }, + "node_modules/dequal": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/devlop": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/devlop/-/devlop-1.1.0.tgz", + "integrity": "sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==", + "dev": true, + "license": "MIT", + "dependencies": { + "dequal": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/dompurify": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.3.1.tgz", + "integrity": "sha512-qkdCKzLNtrgPFP1Vo+98FRzJnBRGe4ffyCea9IwHB1fyxPOeNTHpLKYGd4Uk9xvNoH0ZoOjwZxNptyMwqrId1Q==", + "dev": true, + "license": "(MPL-2.0 OR Apache-2.0)", + "peer": true, + "optionalDependencies": { + "@types/trusted-types": "^2.0.7" + } + }, + "node_modules/emoji-regex-xs": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex-xs/-/emoji-regex-xs-1.0.0.tgz", + "integrity": "sha512-LRlerrMYoIDrT6jgpeZ2YYl/L8EulRTt5hQcYjy5AInh7HWXKimpqx68aknBFpGL2+/IcogTcaydJEgaTmOpDg==", + "dev": true, + "license": "MIT" + }, + "node_modules/entities": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-7.0.0.tgz", + "integrity": "sha512-FDWG5cmEYf2Z00IkYRhbFrwIwvdFKH07uV8dvNy0omp/Qb1xcyCWp2UDtcwJF4QZZvk0sLudP6/hAu42TaqVhQ==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/esbuild": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", + "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.21.5", + "@esbuild/android-arm": "0.21.5", + "@esbuild/android-arm64": "0.21.5", + "@esbuild/android-x64": "0.21.5", + "@esbuild/darwin-arm64": "0.21.5", + "@esbuild/darwin-x64": "0.21.5", + "@esbuild/freebsd-arm64": "0.21.5", + "@esbuild/freebsd-x64": "0.21.5", + "@esbuild/linux-arm": "0.21.5", + "@esbuild/linux-arm64": "0.21.5", + "@esbuild/linux-ia32": "0.21.5", + "@esbuild/linux-loong64": "0.21.5", + "@esbuild/linux-mips64el": "0.21.5", + "@esbuild/linux-ppc64": "0.21.5", + "@esbuild/linux-riscv64": "0.21.5", + "@esbuild/linux-s390x": "0.21.5", + "@esbuild/linux-x64": "0.21.5", + "@esbuild/netbsd-x64": "0.21.5", + "@esbuild/openbsd-x64": "0.21.5", + "@esbuild/sunos-x64": "0.21.5", + "@esbuild/win32-arm64": "0.21.5", + "@esbuild/win32-ia32": "0.21.5", + "@esbuild/win32-x64": "0.21.5" + } + }, + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "dev": true, + "license": "MIT" + }, + "node_modules/focus-trap": { + "version": "7.8.0", + "resolved": "https://registry.npmjs.org/focus-trap/-/focus-trap-7.8.0.tgz", + "integrity": "sha512-/yNdlIkpWbM0ptxno3ONTuf+2g318kh2ez3KSeZN5dZ8YC6AAmgeWz+GasYYiBJPFaYcSAPeu4GfhUaChzIJXA==", + "dev": true, + "license": "MIT", + "dependencies": { + "tabbable": "^6.4.0" + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/hachure-fill": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/hachure-fill/-/hachure-fill-0.5.2.tgz", + "integrity": "sha512-3GKBOn+m2LX9iq+JC1064cSFprJY4jL1jCXTcpnfER5HYE2l/4EfWSGzkPa/ZDBmYI0ZOEj5VHV/eKnPGkHuOg==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/hast-util-to-html": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/hast-util-to-html/-/hast-util-to-html-9.0.5.tgz", + "integrity": "sha512-OguPdidb+fbHQSU4Q4ZiLKnzWo8Wwsf5bZfbvu7//a9oTYoqD/fWpe96NuHkoS9h0ccGOTe0C4NGXdtS0iObOw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/unist": "^3.0.0", + "ccount": "^2.0.0", + "comma-separated-tokens": "^2.0.0", + "hast-util-whitespace": "^3.0.0", + "html-void-elements": "^3.0.0", + "mdast-util-to-hast": "^13.0.0", + "property-information": "^7.0.0", + "space-separated-tokens": "^2.0.0", + "stringify-entities": "^4.0.0", + "zwitch": "^2.0.4" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-whitespace": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-3.0.0.tgz", + "integrity": "sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hookable": { + "version": "5.5.3", + "resolved": "https://registry.npmjs.org/hookable/-/hookable-5.5.3.tgz", + "integrity": "sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/html-void-elements": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/html-void-elements/-/html-void-elements-3.0.0.tgz", + "integrity": "sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/internmap": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz", + "integrity": "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/is-what": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/is-what/-/is-what-5.5.0.tgz", + "integrity": "sha512-oG7cgbmg5kLYae2N5IVd3jm2s+vldjxJzK1pcu9LfpGuQ93MQSzo0okvRna+7y5ifrD+20FE8FvjusyGaz14fw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/mesqueeb" + } + }, + "node_modules/katex": { + "version": "0.16.27", + "resolved": "https://registry.npmjs.org/katex/-/katex-0.16.27.tgz", + "integrity": "sha512-aeQoDkuRWSqQN6nSvVCEFvfXdqo1OQiCmmW1kc9xSdjutPv7BGO7pqY9sQRJpMOGrEdfDgF2TfRXe5eUAD2Waw==", + "dev": true, + "funding": [ + "https://opencollective.com/katex", + "https://github.com/sponsors/katex" + ], + "license": "MIT", + "peer": true, + "dependencies": { + "commander": "^8.3.0" + }, + "bin": { + "katex": "cli.js" + } + }, + "node_modules/katex/node_modules/commander": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">= 12" + } + }, + "node_modules/khroma": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/khroma/-/khroma-2.1.0.tgz", + "integrity": "sha512-Ls993zuzfayK269Svk9hzpeGUKob/sIgZzyHYdjQoAdQetRKpOLj+k/QQQ/6Qi0Yz65mlROrfd+Ev+1+7dz9Kw==", + "dev": true + }, + "node_modules/langium": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/langium/-/langium-3.3.1.tgz", + "integrity": "sha512-QJv/h939gDpvT+9SiLVlY7tZC3xB2qK57v0J04Sh9wpMb6MP1q8gB21L3WIo8T5P1MSMg3Ep14L7KkDCFG3y4w==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "chevrotain": "~11.0.3", + "chevrotain-allstar": "~0.3.0", + "vscode-languageserver": "~9.0.1", + "vscode-languageserver-textdocument": "~1.0.11", + "vscode-uri": "~3.0.8" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/layout-base": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/layout-base/-/layout-base-1.0.2.tgz", + "integrity": "sha512-8h2oVEZNktL4BH2JCOI90iD1yXwL6iNW7KcCKT2QZgQJR2vbqDsldCTPRU9NifTCqHZci57XvQQ15YTu+sTYPg==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash-es": { + "version": "4.17.22", + "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.22.tgz", + "integrity": "sha512-XEawp1t0gxSi9x01glktRZ5HDy0HXqrM0x5pXQM98EaI0NxO6jVM7omDOxsuEo5UIASAnm2bRp1Jt/e0a2XU8Q==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/magic-string": { + "version": "0.30.21", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", + "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.5" + } + }, + "node_modules/mark.js": { + "version": "8.11.1", + "resolved": "https://registry.npmjs.org/mark.js/-/mark.js-8.11.1.tgz", + "integrity": "sha512-1I+1qpDt4idfgLQG+BNWmrqku+7/2bi5nLf4YwF8y8zXvmfiTBY3PV3ZibfrjBueCByROpuBjLLFCajqkgYoLQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/marked": { + "version": "16.4.2", + "resolved": "https://registry.npmjs.org/marked/-/marked-16.4.2.tgz", + "integrity": "sha512-TI3V8YYWvkVf3KJe1dRkpnjs68JUPyEa5vjKrp1XEEJUAOaQc+Qj+L1qWbPd0SJuAdQkFU0h73sXXqwDYxsiDA==", + "dev": true, + "license": "MIT", + "peer": true, + "bin": { + "marked": "bin/marked.js" + }, + "engines": { + "node": ">= 20" + } + }, + "node_modules/mdast-util-to-hast": { + "version": "13.2.1", + "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-13.2.1.tgz", + "integrity": "sha512-cctsq2wp5vTsLIcaymblUriiTcZd0CwWtCbLvrOzYCDZoWyMNV8sZ7krj09FSnsiJi3WVsHLM4k6Dq/yaPyCXA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "@ungap/structured-clone": "^1.0.0", + "devlop": "^1.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "trim-lines": "^3.0.0", + "unist-util-position": "^5.0.0", + "unist-util-visit": "^5.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mermaid": { + "version": "11.12.2", + "resolved": "https://registry.npmjs.org/mermaid/-/mermaid-11.12.2.tgz", + "integrity": "sha512-n34QPDPEKmaeCG4WDMGy0OT6PSyxKCfy2pJgShP+Qow2KLrvWjclwbc3yXfSIf4BanqWEhQEpngWwNp/XhZt6w==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@braintree/sanitize-url": "^7.1.1", + "@iconify/utils": "^3.0.1", + "@mermaid-js/parser": "^0.6.3", + "@types/d3": "^7.4.3", + "cytoscape": "^3.29.3", + "cytoscape-cose-bilkent": "^4.1.0", + "cytoscape-fcose": "^2.2.0", + "d3": "^7.9.0", + "d3-sankey": "^0.12.3", + "dagre-d3-es": "7.0.13", + "dayjs": "^1.11.18", + "dompurify": "^3.2.5", + "katex": "^0.16.22", + "khroma": "^2.1.0", + "lodash-es": "^4.17.21", + "marked": "^16.2.1", + "roughjs": "^4.6.6", + "stylis": "^4.3.6", + "ts-dedent": "^2.2.0", + "uuid": "^11.1.0" + } + }, + "node_modules/micromark-util-character": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-encode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.1.tgz", + "integrity": "sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-util-sanitize-uri": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.1.tgz", + "integrity": "sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-encode": "^2.0.0", + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-symbol": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-util-types": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.2.tgz", + "integrity": "sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/minisearch": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/minisearch/-/minisearch-7.2.0.tgz", + "integrity": "sha512-dqT2XBYUOZOiC5t2HRnwADjhNS2cecp9u+TJRiJ1Qp/f5qjkeT5APcGPjHw+bz89Ms8Jp+cG4AlE+QZ/QnDglg==", + "dev": true, + "license": "MIT" + }, + "node_modules/mitt": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.1.tgz", + "integrity": "sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==", + "dev": true, + "license": "MIT" + }, + "node_modules/mlly": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.8.0.tgz", + "integrity": "sha512-l8D9ODSRWLe2KHJSifWGwBqpTZXIXTeo8mlKjY+E2HAakaTeNpqAyBZ8GSqLzHgw4XmHmC8whvpjJNMbFZN7/g==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "acorn": "^8.15.0", + "pathe": "^2.0.3", + "pkg-types": "^1.3.1", + "ufo": "^1.6.1" + } + }, + "node_modules/nanoid": { + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/non-layered-tidy-tree-layout": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/non-layered-tidy-tree-layout/-/non-layered-tidy-tree-layout-2.0.2.tgz", + "integrity": "sha512-gkXMxRzUH+PB0ax9dUN0yYF0S25BqeAYqhgMaLUFmpXLEk7Fcu8f4emJuOAY0V8kjDICxROIKsTAKsV/v355xw==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/oniguruma-to-es": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/oniguruma-to-es/-/oniguruma-to-es-3.1.1.tgz", + "integrity": "sha512-bUH8SDvPkH3ho3dvwJwfonjlQ4R80vjyvrU8YpxuROddv55vAEJrTuCuCVUhhsHbtlD9tGGbaNApGQckXhS8iQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex-xs": "^1.0.0", + "regex": "^6.0.1", + "regex-recursion": "^6.0.2" + } + }, + "node_modules/package-manager-detector": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/package-manager-detector/-/package-manager-detector-1.6.0.tgz", + "integrity": "sha512-61A5ThoTiDG/C8s8UMZwSorAGwMJ0ERVGj2OjoW5pAalsNOg15+iQiPzrLJ4jhZ1HJzmC2PIHT2oEiH3R5fzNA==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/path-data-parser": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/path-data-parser/-/path-data-parser-0.1.0.tgz", + "integrity": "sha512-NOnmBpt5Y2RWbuv0LMzsayp3lVylAHLPUTut412ZA3l+C4uw4ZVkQbjShYCQ8TCpUMdPapr4YjUqLYD6v68j+w==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/pathe": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz", + "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/perfect-debounce": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/perfect-debounce/-/perfect-debounce-1.0.0.tgz", + "integrity": "sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==", + "dev": true, + "license": "MIT" + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true, + "license": "ISC" + }, + "node_modules/pkg-types": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.3.1.tgz", + "integrity": "sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "confbox": "^0.1.8", + "mlly": "^1.7.4", + "pathe": "^2.0.1" + } + }, + "node_modules/points-on-curve": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/points-on-curve/-/points-on-curve-0.2.0.tgz", + "integrity": "sha512-0mYKnYYe9ZcqMCWhUjItv/oHjvgEsfKvnUTg8sAtnHr3GVy7rGkXCb6d5cSyqrWqL4k81b9CPg3urd+T7aop3A==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/points-on-path": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/points-on-path/-/points-on-path-0.2.1.tgz", + "integrity": "sha512-25ClnWWuw7JbWZcgqY/gJ4FQWadKxGWk+3kR/7kD0tCaDtPPMj7oHu2ToLaVhfpnHrZzYby2w6tUA0eOIuUg8g==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "path-data-parser": "0.1.0", + "points-on-curve": "0.2.0" + } + }, + "node_modules/postcss": { + "version": "8.5.6", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", + "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.11", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/preact": { + "version": "10.28.2", + "resolved": "https://registry.npmjs.org/preact/-/preact-10.28.2.tgz", + "integrity": "sha512-lbteaWGzGHdlIuiJ0l2Jq454m6kcpI1zNje6d8MlGAFlYvP2GO4ibnat7P74Esfz4sPTdM6UxtTwh/d3pwM9JA==", + "dev": true, + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/preact" + } + }, + "node_modules/property-information": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/property-information/-/property-information-7.1.0.tgz", + "integrity": "sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/regex/-/regex-6.1.0.tgz", + "integrity": "sha512-6VwtthbV4o/7+OaAF9I5L5V3llLEsoPyq9P1JVXkedTP33c7MfCG0/5NOPcSJn0TzXcG9YUrR0gQSWioew3LDg==", + "dev": true, + "license": "MIT", + "dependencies": { + "regex-utilities": "^2.3.0" + } + }, + "node_modules/regex-recursion": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/regex-recursion/-/regex-recursion-6.0.2.tgz", + "integrity": "sha512-0YCaSCq2VRIebiaUviZNs0cBz1kg5kVS2UKUfNIx8YVs1cN3AV7NTctO5FOKBA+UT2BPJIWZauYHPqJODG50cg==", + "dev": true, + "license": "MIT", + "dependencies": { + "regex-utilities": "^2.3.0" + } + }, + "node_modules/regex-utilities": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/regex-utilities/-/regex-utilities-2.3.0.tgz", + "integrity": "sha512-8VhliFJAWRaUiVvREIiW2NXXTmHs4vMNnSzuJVhscgmGav3g9VDxLrQndI3dZZVVdp0ZO/5v0xmX516/7M9cng==", + "dev": true, + "license": "MIT" + }, + "node_modules/rfdc": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.4.1.tgz", + "integrity": "sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==", + "dev": true, + "license": "MIT" + }, + "node_modules/robust-predicates": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/robust-predicates/-/robust-predicates-3.0.2.tgz", + "integrity": "sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg==", + "dev": true, + "license": "Unlicense" + }, + "node_modules/rollup": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.55.1.tgz", + "integrity": "sha512-wDv/Ht1BNHB4upNbK74s9usvl7hObDnvVzknxqY/E/O3X6rW1U1rV1aENEfJ54eFZDTNo7zv1f5N4edCluH7+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.8" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.55.1", + "@rollup/rollup-android-arm64": "4.55.1", + "@rollup/rollup-darwin-arm64": "4.55.1", + "@rollup/rollup-darwin-x64": "4.55.1", + "@rollup/rollup-freebsd-arm64": "4.55.1", + "@rollup/rollup-freebsd-x64": "4.55.1", + "@rollup/rollup-linux-arm-gnueabihf": "4.55.1", + "@rollup/rollup-linux-arm-musleabihf": "4.55.1", + "@rollup/rollup-linux-arm64-gnu": "4.55.1", + "@rollup/rollup-linux-arm64-musl": "4.55.1", + "@rollup/rollup-linux-loong64-gnu": "4.55.1", + "@rollup/rollup-linux-loong64-musl": "4.55.1", + "@rollup/rollup-linux-ppc64-gnu": "4.55.1", + "@rollup/rollup-linux-ppc64-musl": "4.55.1", + "@rollup/rollup-linux-riscv64-gnu": "4.55.1", + "@rollup/rollup-linux-riscv64-musl": "4.55.1", + "@rollup/rollup-linux-s390x-gnu": "4.55.1", + "@rollup/rollup-linux-x64-gnu": "4.55.1", + "@rollup/rollup-linux-x64-musl": "4.55.1", + "@rollup/rollup-openbsd-x64": "4.55.1", + "@rollup/rollup-openharmony-arm64": "4.55.1", + "@rollup/rollup-win32-arm64-msvc": "4.55.1", + "@rollup/rollup-win32-ia32-msvc": "4.55.1", + "@rollup/rollup-win32-x64-gnu": "4.55.1", + "@rollup/rollup-win32-x64-msvc": "4.55.1", + "fsevents": "~2.3.2" + } + }, + "node_modules/roughjs": { + "version": "4.6.6", + "resolved": "https://registry.npmjs.org/roughjs/-/roughjs-4.6.6.tgz", + "integrity": "sha512-ZUz/69+SYpFN/g/lUlo2FXcIjRkSu3nDarreVdGGndHEBJ6cXPdKguS8JGxwj5HA5xIbVKSmLgr5b3AWxtRfvQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "hachure-fill": "^0.5.2", + "path-data-parser": "^0.1.0", + "points-on-curve": "^0.2.0", + "points-on-path": "^0.2.1" + } + }, + "node_modules/rw": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz", + "integrity": "sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true, + "license": "MIT" + }, + "node_modules/search-insights": { + "version": "2.17.3", + "resolved": "https://registry.npmjs.org/search-insights/-/search-insights-2.17.3.tgz", + "integrity": "sha512-RQPdCYTa8A68uM2jwxoY842xDhvx3E5LFL1LxvxCNMev4o5mLuokczhzjAgGwUZBAmOKZknArSxLKmXtIi2AxQ==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/seroval": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/seroval/-/seroval-1.5.1.tgz", + "integrity": "sha512-OwrZRZAfhHww0WEnKHDY8OM0U/Qs8OTfIDWhUD4BLpNJUfXK4cGmjiagGze086m+mhI+V2nD0gfbHEnJjb9STA==", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/seroval-plugins": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/seroval-plugins/-/seroval-plugins-1.5.1.tgz", + "integrity": "sha512-4FbuZ/TMl02sqv0RTFexu0SP6V+ywaIe5bAWCCEik0fk17BhALgwvUDVF7e3Uvf9pxmwCEJsRPmlkUE6HdzLAw==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "seroval": "^1.0" + } + }, + "node_modules/shiki": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/shiki/-/shiki-2.5.0.tgz", + "integrity": "sha512-mI//trrsaiCIPsja5CNfsyNOqgAZUb6VpJA+340toL42UpzQlXpwRV9nch69X6gaUxrr9kaOOa6e3y3uAkGFxQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@shikijs/core": "2.5.0", + "@shikijs/engine-javascript": "2.5.0", + "@shikijs/engine-oniguruma": "2.5.0", + "@shikijs/langs": "2.5.0", + "@shikijs/themes": "2.5.0", + "@shikijs/types": "2.5.0", + "@shikijs/vscode-textmate": "^10.0.2", + "@types/hast": "^3.0.4" + } + }, + "node_modules/solid-js": { + "version": "1.9.11", + "resolved": "https://registry.npmjs.org/solid-js/-/solid-js-1.9.11.tgz", + "integrity": "sha512-WEJtcc5mkh/BnHA6Yrg4whlF8g6QwpmXXRg4P2ztPmcKeHHlH4+djYecBLhSpecZY2RRECXYUwIc/C2r3yzQ4Q==", + "license": "MIT", + "dependencies": { + "csstype": "^3.1.0", + "seroval": "~1.5.0", + "seroval-plugins": "~1.5.0" + } + }, + "node_modules/solid-transition-group": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/solid-transition-group/-/solid-transition-group-0.2.3.tgz", + "integrity": "sha512-iB72c9N5Kz9ykRqIXl0lQohOau4t0dhel9kjwFvx81UZJbVwaChMuBuyhiZmK24b8aKEK0w3uFM96ZxzcyZGdg==", + "license": "MIT", + "dependencies": { + "@solid-primitives/refs": "^1.0.5", + "@solid-primitives/transition-group": "^1.0.2" + }, + "engines": { + "node": ">=18.0.0", + "pnpm": ">=8.6.0" + }, + "peerDependencies": { + "solid-js": "^1.6.12" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/space-separated-tokens": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz", + "integrity": "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/speakingurl": { + "version": "14.0.1", + "resolved": "https://registry.npmjs.org/speakingurl/-/speakingurl-14.0.1.tgz", + "integrity": "sha512-1POYv7uv2gXoyGFpBCmpDVSNV74IfsWlDW216UPjbWufNf+bSU6GdbDsxdcxtfwb4xlI3yxzOTKClUosxARYrQ==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/stringify-entities": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.4.tgz", + "integrity": "sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==", + "dev": true, + "license": "MIT", + "dependencies": { + "character-entities-html4": "^2.0.0", + "character-entities-legacy": "^3.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/stylis": { + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.3.6.tgz", + "integrity": "sha512-yQ3rwFWRfwNUY7H5vpU0wfdkNSnvnJinhF9830Swlaxl03zsOjCfmX0ugac+3LtK0lYSgwL/KXc8oYL3mG4YFQ==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/superjson": { + "version": "2.2.6", + "resolved": "https://registry.npmjs.org/superjson/-/superjson-2.2.6.tgz", + "integrity": "sha512-H+ue8Zo4vJmV2nRjpx86P35lzwDT3nItnIsocgumgr0hHMQ+ZGq5vrERg9kJBo5AWGmxZDhzDo+WVIJqkB0cGA==", + "dev": true, + "license": "MIT", + "dependencies": { + "copy-anything": "^4" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/tabbable": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/tabbable/-/tabbable-6.4.0.tgz", + "integrity": "sha512-05PUHKSNE8ou2dwIxTngl4EzcnsCDZGJ/iCLtDflR/SHB/ny14rXc+qU5P4mG9JkusiV7EivzY9Mhm55AzAvCg==", + "dev": true, + "license": "MIT" + }, + "node_modules/tinyexec": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-1.0.2.tgz", + "integrity": "sha512-W/KYk+NFhkmsYpuHq5JykngiOCnxeVL8v8dFnqxSD8qEEdRfXk1SDM6JzNqcERbcGYj9tMrDQBYV9cjgnunFIg==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/trim-lines": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz", + "integrity": "sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/ts-dedent": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/ts-dedent/-/ts-dedent-2.2.0.tgz", + "integrity": "sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=6.10" + } + }, + "node_modules/ufo": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.6.2.tgz", + "integrity": "sha512-heMioaxBcG9+Znsda5Q8sQbWnLJSl98AFDXTO80wELWEzX3hordXsTdxrIfMQoO9IY1MEnoGoPjpoKpMj+Yx0Q==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/unist-util-is": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.1.tgz", + "integrity": "sha512-LsiILbtBETkDz8I9p1dQ0uyRUWuaQzd/cuEeS1hoRSyW5E5XGmTzlwY1OrNzzakGowI9Dr/I8HVaw4hTtnxy8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-position": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz", + "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-stringify-position": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", + "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-visit": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz", + "integrity": "sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0", + "unist-util-visit-parents": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-visit-parents": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.2.tgz", + "integrity": "sha512-goh1s1TBrqSqukSc8wrjwWhL0hiJxgA8m4kFxGlQ+8FYQ3C/m11FcTs4YYem7V664AhHVvgoQLk890Ssdsr2IQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/uuid": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-11.1.0.tgz", + "integrity": "sha512-0/A9rDy9P7cJ+8w1c9WD9V//9Wj15Ce2MPz8Ri6032usz+NfePxx5AcN3bN+r6ZL6jEo066/yNYB3tn4pQEx+A==", + "dev": true, + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "license": "MIT", + "peer": true, + "bin": { + "uuid": "dist/esm/bin/uuid" + } + }, + "node_modules/vfile": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz", + "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vfile-message": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.3.tgz", + "integrity": "sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-stringify-position": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vite": { + "version": "5.4.21", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.21.tgz", + "integrity": "sha512-o5a9xKjbtuhY6Bi5S3+HvbRERmouabWbyUcpXXUA1u+GNUKoROi9byOJ8M0nHbHYHkYICiMlqxkg1KkYmm25Sw==", + "dev": true, + "license": "MIT", + "dependencies": { + "esbuild": "^0.21.3", + "postcss": "^8.4.43", + "rollup": "^4.20.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || >=20.0.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "sass-embedded": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/vitepress": { + "version": "1.6.4", + "resolved": "https://registry.npmjs.org/vitepress/-/vitepress-1.6.4.tgz", + "integrity": "sha512-+2ym1/+0VVrbhNyRoFFesVvBvHAVMZMK0rw60E3X/5349M1GuVdKeazuksqopEdvkKwKGs21Q729jX81/bkBJg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@docsearch/css": "3.8.2", + "@docsearch/js": "3.8.2", + "@iconify-json/simple-icons": "^1.2.21", + "@shikijs/core": "^2.1.0", + "@shikijs/transformers": "^2.1.0", + "@shikijs/types": "^2.1.0", + "@types/markdown-it": "^14.1.2", + "@vitejs/plugin-vue": "^5.2.1", + "@vue/devtools-api": "^7.7.0", + "@vue/shared": "^3.5.13", + "@vueuse/core": "^12.4.0", + "@vueuse/integrations": "^12.4.0", + "focus-trap": "^7.6.4", + "mark.js": "8.11.1", + "minisearch": "^7.1.1", + "shiki": "^2.1.0", + "vite": "^5.4.14", + "vue": "^3.5.13" + }, + "bin": { + "vitepress": "bin/vitepress.js" + }, + "peerDependencies": { + "markdown-it-mathjax3": "^4", + "postcss": "^8" + }, + "peerDependenciesMeta": { + "markdown-it-mathjax3": { + "optional": true + }, + "postcss": { + "optional": true + } + } + }, + "node_modules/vitepress-plugin-mermaid": { + "version": "2.0.17", + "resolved": "https://registry.npmjs.org/vitepress-plugin-mermaid/-/vitepress-plugin-mermaid-2.0.17.tgz", + "integrity": "sha512-IUzYpwf61GC6k0XzfmAmNrLvMi9TRrVRMsUyCA8KNXhg/mQ1VqWnO0/tBVPiX5UoKF1mDUwqn5QV4qAJl6JnUg==", + "dev": true, + "license": "MIT", + "optionalDependencies": { + "@mermaid-js/mermaid-mindmap": "^9.3.0" + }, + "peerDependencies": { + "mermaid": "10 || 11", + "vitepress": "^1.0.0 || ^1.0.0-alpha" + } + }, + "node_modules/vscode-jsonrpc": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-8.2.0.tgz", + "integrity": "sha512-C+r0eKJUIfiDIfwJhria30+TYWPtuHJXHtI7J0YlOmKAo7ogxP20T0zxB7HZQIFhIyvoBPwWskjxrvAtfjyZfA==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/vscode-languageserver": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/vscode-languageserver/-/vscode-languageserver-9.0.1.tgz", + "integrity": "sha512-woByF3PDpkHFUreUa7Hos7+pUWdeWMXRd26+ZX2A8cFx6v/JPTtd4/uN0/jB6XQHYaOlHbio03NTHCqrgG5n7g==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "vscode-languageserver-protocol": "3.17.5" + }, + "bin": { + "installServerIntoExtension": "bin/installServerIntoExtension" + } + }, + "node_modules/vscode-languageserver-protocol": { + "version": "3.17.5", + "resolved": "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.17.5.tgz", + "integrity": "sha512-mb1bvRJN8SVznADSGWM9u/b07H7Ecg0I3OgXDuLdn307rl/J3A9YD6/eYOssqhecL27hK1IPZAsaqh00i/Jljg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "vscode-jsonrpc": "8.2.0", + "vscode-languageserver-types": "3.17.5" + } + }, + "node_modules/vscode-languageserver-textdocument": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.12.tgz", + "integrity": "sha512-cxWNPesCnQCcMPeenjKKsOCKQZ/L6Tv19DTRIGuLWe32lyzWhihGVJ/rcckZXJxfdKCFvRLS3fpBIsV/ZGX4zA==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/vscode-languageserver-types": { + "version": "3.17.5", + "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.17.5.tgz", + "integrity": "sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/vscode-uri": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.0.8.tgz", + "integrity": "sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/vue": { + "version": "3.5.26", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.26.tgz", + "integrity": "sha512-SJ/NTccVyAoNUJmkM9KUqPcYlY+u8OVL1X5EW9RIs3ch5H2uERxyyIUI4MRxVCSOiEcupX9xNGde1tL9ZKpimA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vue/compiler-dom": "3.5.26", + "@vue/compiler-sfc": "3.5.26", + "@vue/runtime-dom": "3.5.26", + "@vue/server-renderer": "3.5.26", + "@vue/shared": "3.5.26" + }, + "peerDependencies": { + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true } + } + }, + "node_modules/zwitch": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz", + "integrity": "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } } + } } diff --git a/docs/package.json b/docs/package.json index 9abb4dd4..2110b9d4 100644 --- a/docs/package.json +++ b/docs/package.json @@ -8,5 +8,8 @@ "docs:build": "vitepress build .", "docs:preview": "vitepress preview .", "fmt:fix": "prettier --write ." + }, + "dependencies": { + "asciinema-player": "^3.15.1" } } diff --git a/docs/tutorials/evpn-vxlan-fabric.md b/docs/tutorials/evpn-vxlan-fabric.md new file mode 100644 index 00000000..b996e9b2 --- /dev/null +++ b/docs/tutorials/evpn-vxlan-fabric.md @@ -0,0 +1,609 @@ +# EVPN/VXLAN Fabric with Cisco Nexus 9000v + +| Component | Details | +| ---------------- | ------------------------------------------------------------------------------------------------------------------------------- | +| **Vendor** | Cisco NX-OS | +| **Nodes** | 2 spines, 3 leaves, 2 hosts | +| **Image** | `vrnetlab/cisco_n9kv:9300-10.4.6` | +| **Containerlab** | [Containerlab Documentation](https://containerlab.dev/) | +| **Topology** | [topology.clab.yml](https://github.com/ironcore-dev/network-operator/blob/main/examples/cisco-n9k-evpn-vxlan/topology.clab.yml) | +| **Manifests** | [kubernetes/](https://github.com/ironcore-dev/network-operator/tree/main/examples/cisco-n9k-evpn-vxlan/kubernetes) | + +## Description + +A spine-leaf EVPN/VXLAN fabric demonstrating Layer 2 extension across a routed IP fabric. Features vPC multi-homing for high availability, OSPF underlay routing, and BGP EVPN overlay control plane. + +**Use cases:** + +- Data center fabric automation with declarative Kubernetes resources +- Multi-homed server connectivity with active-active forwarding +- VXLAN overlay network with multicast-based BUM traffic handling + +## Lab Environment + +![EVPN/VXLAN Fabric Topology](../assets/evpn-vxlan-topology.png) + +The lab consists of 7 nodes deployed via Containerlab: + +- **2 Spine switches** (spine1, spine2): Route reflectors for BGP EVPN +- **3 Leaf switches** (leaf1, leaf2, leaf3): VXLAN tunnel endpoints (VTEPs) +- **2 Host servers** (host1, host2): Linux endpoints with VLAN 10 connectivity + +**Network design:** + +- Underlay: OSPF Area 0.0.0.0, /31 point-to-point links +- Overlay: iBGP EVPN (ASN 65000), route reflector on spines +- VXLAN: VNI 100010 mapped to VLAN 10 for Layer 2 bridging +- Multi-homing: vPC domain between leaf1 and leaf2 for host1 + +## Deploying the Lab + +Deploy the Containerlab topology: + +```bash +cd examples/cisco-n9k-evpn-vxlan +containerlab deploy -t topology.clab.yml +``` + +Apply all Kubernetes resources: + +```bash +kubectl apply -k ./kubernetes +``` + +**Demo Walkthrough:** + + + + +
+
+ +## Configuration Resources + +The fabric configuration uses multiple Kubernetes Custom Resources, applied in sequence to build the complete EVPN/VXLAN topology. + +### 1. Device Registration + +Register network devices with the Network Operator. Each `Device` resource specifies the gNMI endpoint and credentials. + +> [!NOTE] +> Each network device in the topology requires a `Device` resource. The example below shows leaf1; the tutorial deploys 5 devices total (3 leafs, 2 spines). + +```yaml +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: Device +metadata: + name: leaf1 +spec: + endpoint: + address: 192.168.5.2:50011 + secretRef: + name: fabric-credentials +``` + +```bash +kubectl apply -k ./kubernetes/01-devices +``` + +### 2. Loopback Interfaces + +Configure loopback interfaces for router IDs (lo0) and service addresses (lo1): + +- **lo0**: Router ID for OSPF and BGP on all switches +- **lo1**: VTEP source address on leaf switches, rendezvous point address on spine switches + +> [!NOTE] +> Each switch requires two loopback interfaces (lo0 and lo1). The example below shows leaf1's lo0; the tutorial creates 10 `Interface` resources across all 5 switches. + +```yaml +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: Interface +metadata: + name: leaf1-lo0 +spec: + deviceRef: + name: leaf1 + name: lo0 + description: Router-ID Leaf1 + adminState: Up + type: Loopback + ipv4: + addresses: + - 10.0.0.10/32 +``` + +```bash +kubectl apply -k ./kubernetes/02-loopbacks +``` + +### 3. vPC Keepalive + +Create dedicated VRF and Layer 3 link for vPC peer health monitoring between leaf1 and leaf2. + +> [!NOTE] +> Each vPC peer requires a dedicated `VRF` and physical `Interface` for keepalive. The example below shows leaf1's configuration; the tutorial creates 2 `VRF` and 2 `Interface` resources total for the vPC pair (leaf1 and leaf2). + +```yaml +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: VRF +metadata: + name: leaf1-vpc-keepalive +spec: + deviceRef: + name: leaf1 + name: VPC_KEEPALIVE + description: VRF for vPC Keepalive +--- +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: Interface +metadata: + name: leaf1-eth1-30 +spec: + deviceRef: + name: leaf1 + name: eth1/30 + description: vPC Keepalive + adminState: Up + type: Physical + vrfRef: + name: leaf1-vpc-keepalive + ipv4: + addresses: + - 10.1.1.1/30 +``` + +```bash +kubectl apply -k ./kubernetes/03-vpc-keepalive +``` + +### 4. vPC Peer Link + +Configure port-channel between vPC peers using interfaces eth1/31-32 with LACP. + +> [!NOTE] +> Each vPC peer requires physical member interfaces (eth1/31, eth1/32) and a port-channel aggregate. The example below shows leaf1's configuration; the tutorial creates 6 `Interface` resources total: 4 physical members and 2 port-channels for the vPC pair (leaf1 and leaf2). + +```yaml +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: Interface +metadata: + name: leaf1-eth1-31 +spec: + deviceRef: + name: leaf1 + name: eth1/31 + description: vPC Peer-Link + adminState: Up + type: Physical + switchport: + mode: Trunk + nativeVlan: 1 +--- +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: Interface +metadata: + name: leaf1-eth1-32 +spec: + deviceRef: + name: leaf1 + name: eth1/32 + description: vPC Peer-Link + adminState: Up + type: Physical + switchport: + mode: Trunk + nativeVlan: 1 +--- +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: Interface +metadata: + name: leaf1-po1 +spec: + deviceRef: + name: leaf1 + name: po1 + description: vPC Peer-Link + adminState: Up + type: Aggregate + switchport: + mode: Trunk + nativeVlan: 1 + aggregation: + controlProtocol: + mode: Active + memberInterfaceRefs: + - name: leaf1-eth1-31 + - name: leaf1-eth1-32 +``` + +```bash +kubectl apply -k ./kubernetes/04-vpc-peerlink +``` + +### 5. vPC Domain + +Establish the vPC domain, enabling virtual port-channel switching for active-active multi-homing. + +> [!NOTE] +> Each vPC peer requires a `VPCDomain` resource to enable virtual port-channel switching. The example below shows leaf1; the tutorial creates 2 resources for the vPC pair (leaf1 and leaf2). + +```yaml +apiVersion: nx.cisco.networking.metal.ironcore.dev/v1alpha1 +kind: VPCDomain +metadata: + name: leaf1-vpcdomain +spec: + deviceRef: + name: leaf1 + domainId: 1 + adminState: Up + peer: + adminState: Up + interfaceRef: + name: leaf1-po1 + switch: + enabled: true + gateway: + enabled: true + keepalive: + source: 10.1.1.1 + destination: 10.1.1.2 + vrfRef: + name: leaf1-vpc-keepalive +``` + +```bash +kubectl apply -k ./kubernetes/05-vpc-domain +``` + +### 6. Fabric Interconnects + +Configure routed point-to-point links between spine and leaf switches with IP unnumbered interfaces. + +> [!NOTE] +> Each spine-leaf link requires an `Interface` resource on both ends. The example below shows leaf1's uplink to spine1; with 3 leaves and 2 spines in a full mesh, the tutorial creates 12 interfaces total (2 uplinks per leaf, 3 downlinks per spine). + +```yaml +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: Interface +metadata: + name: leaf1-eth1-1 +spec: + deviceRef: + name: leaf1 + name: eth1/1 + description: Leaf1 to Spine1 + adminState: Up + type: Physical + mtu: 9216 + ipv4: + unnumbered: + interfaceRef: + name: leaf1-lo0 +``` + +```bash +kubectl apply -k ./kubernetes/06-interconnects +``` + +### 7. OSPF Underlay + +Deploy OSPF for IP reachability across the fabric. All interfaces participate in Area 0.0.0.0. + +> [!NOTE] +> Each switch requires an `OSPF` resource to participate in the underlay routing. The example below shows leaf1; the tutorial creates 5 resources across all switches (3 leafs, 2 spines). + +```yaml +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: OSPF +metadata: + name: leaf1-underlay +spec: + deviceRef: + name: leaf1 + instance: UNDERLAY + routerId: 10.0.0.10 + logAdjacencyChanges: true + interfaceRefs: + - name: leaf1-lo0 + area: 0.0.0.0 + passive: true + - name: leaf1-lo1 + area: 0.0.0.0 + passive: true + - name: leaf1-eth1-1 + area: 0.0.0.0 + - name: leaf1-eth1-2 + area: 0.0.0.0 +``` + +```bash +kubectl apply -k ./kubernetes/07-underlay +``` + +### 8. PIM Sparse Mode + +Enable PIM on fabric interfaces for multicast-based BUM traffic. Spines act as rendezvous points. + +> [!NOTE] +> Each switch requires a `PIM` resource for multicast routing. The example below shows leaf1; the tutorial creates 5 resources across all switches (3 leafs, 2 spines). The spine switches are additionally configured to serve as rendezvous points with their loopback lo1 address used as redundant anycast address. + +```yaml +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: PIM +metadata: + name: leaf1-pim +spec: + deviceRef: + name: leaf1 + rendezvousPoints: + - address: 10.0.0.100 + multicastGroups: + - 224.0.0.0/4 + interfaceRefs: + - name: leaf1-lo0 + mode: Sparse + - name: leaf1-lo1 + mode: Sparse + - name: leaf1-eth1-1 + mode: Sparse + - name: leaf1-eth1-2 + mode: Sparse +``` + +```bash +kubectl apply -k ./kubernetes/08-pim +``` + +### 9. BGP Router + +Configure BGP routing process with ASN 65000 and enable L2VPN EVPN address family. + +> [!NOTE] +> Each switch requires a `BGP` resource to configure its routing process. The example below shows leaf1; the tutorial creates 5 resources across all switches (3 leafs, 2 spines). + +```yaml +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: BGP +metadata: + name: leaf1-bgp +spec: + deviceRef: + name: leaf1 + asNumber: 65000 + routerId: 10.0.0.10 + addressFamilies: + ipv4Unicast: + enabled: true +``` + +```bash +kubectl apply -k ./kubernetes/09-bgp-router +``` + +### 10. BGP EVPN Peers + +Establish BGP EVPN peering with spine route reflectors using loopback addresses. + +> [!NOTE] +> Each BGP session requires a `BGPPeer` resource. The example below shows leaf1's peering with spine1; the tutorial creates 12 resources total: 3 leafs each peer with both spines (6 sessions), plus the 2 spines peer with each leaf (6 sessions). + +```yaml +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: BGPPeer +metadata: + name: leaf1-spine1 +spec: + deviceRef: + name: leaf1 + address: 10.0.0.1 + asNumber: 65000 + localAddress: + interfaceRef: + name: leaf1-lo0 + addressFamilies: + l2vpnEvpn: + enabled: true + sendCommunity: Both +``` + +```bash +kubectl apply -k ./kubernetes/10-bgp-peers +``` + +### 11. NVE Interface + +Create the VXLAN tunnel endpoint (NVE) on leaf switches with BGP host reachability for Layer 2 bridging. + +> [!NOTE] +> Each leaf switch requires a `NetworkVirtualizationEdge` resource to act as a VXLAN tunnel endpoint. The example below shows leaf1; the tutorial creates 3 resources for all leaf switches. + +```yaml +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: NetworkVirtualizationEdge +metadata: + name: leaf1-nve1 +spec: + deviceRef: + name: leaf1 + adminState: Up + hostReachability: BGP + sourceInterfaceRef: + name: leaf1-lo1 + multicastGroups: + l2: 224.0.0.0/24 +``` + +```bash +kubectl apply -k ./kubernetes/11-nve +``` + +### 12. VLANs + +Create VLAN 10 on all leaf switches for host connectivity. + +> [!NOTE] +> Each leaf switch requires a `VLAN` resource for host connectivity. The example below shows VLAN 10 on leaf1; the tutorial creates this VLAN on all 3 leaf switches. + +```yaml +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: VLAN +metadata: + name: leaf1-vlan-10 +spec: + deviceRef: + name: leaf1 + id: 10 +``` + +```bash +kubectl apply -k ./kubernetes/12-vlan +``` + +### 13. Host Interfaces + +Configure access ports to hosts. Leaf1 and leaf2 use vPC port-channel to host1; leaf3 connects directly to host2. + +**Host network configuration:** + +- **host1**: Multi-homed with LACP bonding. Physical interfaces eth1 and eth2 are aggregated into bond0 (802.3ad mode), with VLAN subinterface bond0.10 tagged for VLAN 10 and assigned IP address 192.168.10.1/24. +- **host2**: Single-homed connection. Physical interface eth1 carries VLAN subinterface eth1.10 tagged for VLAN 10 and assigned IP address 192.168.10.2/24. + +> [!NOTE] +> Each host connection requires physical `Interface` resources. Multi-homed connections also require port-channel interfaces. The example below shows leaf1's vPC port-channel to host1; the tutorial creates 5 resources total: physical interfaces on each leaf plus vPC port-channels on leaf1 and leaf2. + +```yaml +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: Interface +metadata: + name: leaf1-eth1-10 +spec: + deviceRef: + name: leaf1 + name: eth1/10 + description: Leaf1 to Host1 + adminState: Up + type: Physical + switchport: + mode: Trunk + nativeVlan: 1 + allowedVlans: [10] +--- +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: Interface +metadata: + name: leaf1-po-10 +spec: + deviceRef: + name: leaf1 + name: po10 + description: vPC Leaf1 to Host1 + adminState: Up + type: Aggregate + switchport: + mode: Trunk + nativeVlan: 1 + allowedVlans: [10] + aggregation: + controlProtocol: + mode: Active + memberInterfaceRefs: + - name: leaf1-eth1-10 + multichassis: + id: 10 +``` + +```bash +kubectl apply -k ./kubernetes/13-host +``` + +### 14. EVPN Instance + +Map VLAN 10 to VNI 100010, enabling Layer 2 extension across the VXLAN fabric. + +> [!NOTE] +> Each leaf switch requires an `EVPNInstance` resource to map VLANs to VNIs. The example below shows leaf1 mapping VLAN 10 to VNI 100010; the tutorial creates this mapping on all 3 leaf switches. + +```yaml +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: EVPNInstance +metadata: + name: leaf1-vxlan-100010 +spec: + deviceRef: + name: leaf1 + vni: 100010 + type: Bridged + multicastGroupAddress: 239.1.1.100 + vlanRef: + name: leaf1-vlan-10 +``` + +```bash +kubectl apply -k ./kubernetes/14-vxlan +``` + +## Verification + +Test Layer 2 connectivity across the VXLAN fabric: + +```bash +# From host1 (192.168.10.1), ping host2 (192.168.10.2) +ssh host1 +ping 192.168.10.2 +``` + +Check EVPN routes and VXLAN tunnels: + +```bash +ssh leaf1 +show nve peers +show bgp l2vpn evpn vni-id 100010 +show l2route evpn mac all +``` + +Verify vPC status: + +```bash +ssh leaf1 +show vpc brief +``` + +## Cleanup + +> [!WARNING] +> The `--cascade=foreground` flag is required for proper cleanup. This ensures that child resources (interfaces, VLANs, BGP configurations, etc.) are deleted first before the parent Device resources are removed. Without this flag, the cleanup may fail or leave orphaned configurations on the switches. + +```bash +kubectl delete -k ./kubernetes/ --cascade=foreground +containerlab destroy -t topology.clab.yml +``` diff --git a/docs/tutorials/index.md b/docs/tutorials/index.md new file mode 100644 index 00000000..c154c03b --- /dev/null +++ b/docs/tutorials/index.md @@ -0,0 +1,19 @@ +# Tutorials + +Learn how to use the Network Operator through practical, hands-on examples. + +## Available Tutorials + +### [Building an EVPN/VXLAN Fabric with Cisco Nexus 9000v](/tutorials/evpn-vxlan-fabric) + +Learn how to configure a complete EVPN/VXLAN networking fabric on Cisco Nexus 9000v switches. This tutorial covers: + +- Spine-leaf architecture with 2 spines and 3 leaf switches +- vPC (Virtual Port Channel) for host multi-homing +- OSPF underlay for IP reachability +- BGP EVPN overlay for Layer 2 extension +- VXLAN data plane with multicast BUM traffic handling + +**Level**: Intermediate
+**Duration**: 60-90 minutes
+**Prerequisites**: Kubernetes cluster, Containerlab, Cisco Nexus 9000v image diff --git a/examples/cisco-n9k-evpn-vxlan/README.md b/examples/cisco-n9k-evpn-vxlan/README.md new file mode 100644 index 00000000..4de0820b --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/README.md @@ -0,0 +1,5 @@ +# EVPN/VXLAN Fabric with Cisco Nexus 9000v + +This example demonstrates deploying a leaf-spine EVPN/VXLAN fabric with vPC multi-homing using the Network Operator. + +For detailed setup instructions and configuration explanations, see the [EVPN/VXLAN Fabric Tutorial](https://ironcore-dev.github.io/network-operator/tutorials/evpn-vxlan-fabric). diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/01-devices/kustomization.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/01-devices/kustomization.yaml new file mode 100644 index 00000000..ae9905c8 --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/01-devices/kustomization.yaml @@ -0,0 +1,9 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: + - secret.yaml + - leaf1.yaml + - leaf2.yaml + - leaf3.yaml + - spine1.yaml + - spine2.yaml diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/01-devices/leaf1.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/01-devices/leaf1.yaml new file mode 100644 index 00000000..7eac47f5 --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/01-devices/leaf1.yaml @@ -0,0 +1,11 @@ +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: Device +metadata: + labels: + networking.metal.ironcore.dev/role: evpn-leaf + name: leaf1 +spec: + endpoint: + address: 192.168.5.2:50011 + secretRef: + name: fabric-credentials diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/01-devices/leaf2.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/01-devices/leaf2.yaml new file mode 100644 index 00000000..432ad8a4 --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/01-devices/leaf2.yaml @@ -0,0 +1,11 @@ +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: Device +metadata: + labels: + networking.metal.ironcore.dev/role: evpn-leaf + name: leaf2 +spec: + endpoint: + address: 192.168.5.2:50012 + secretRef: + name: fabric-credentials diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/01-devices/leaf3.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/01-devices/leaf3.yaml new file mode 100644 index 00000000..b426aebc --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/01-devices/leaf3.yaml @@ -0,0 +1,11 @@ +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: Device +metadata: + labels: + networking.metal.ironcore.dev/role: evpn-leaf + name: leaf3 +spec: + endpoint: + address: 192.168.5.2:50013 + secretRef: + name: fabric-credentials diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/01-devices/secret.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/01-devices/secret.yaml new file mode 100644 index 00000000..8d36691c --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/01-devices/secret.yaml @@ -0,0 +1,8 @@ +apiVersion: v1 +kind: Secret +metadata: + name: fabric-credentials +type: kubernetes.io/basic-auth +stringData: + username: admin + password: admin diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/01-devices/spine1.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/01-devices/spine1.yaml new file mode 100644 index 00000000..1d602b44 --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/01-devices/spine1.yaml @@ -0,0 +1,11 @@ +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: Device +metadata: + labels: + networking.metal.ironcore.dev/role: evpn-spine + name: spine1 +spec: + endpoint: + address: 192.168.5.2:50001 + secretRef: + name: fabric-credentials diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/01-devices/spine2.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/01-devices/spine2.yaml new file mode 100644 index 00000000..75927715 --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/01-devices/spine2.yaml @@ -0,0 +1,11 @@ +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: Device +metadata: + labels: + networking.metal.ironcore.dev/role: evpn-spine + name: spine2 +spec: + endpoint: + address: 192.168.5.2:50002 + secretRef: + name: fabric-credentials diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/02-loopbacks/kustomization.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/02-loopbacks/kustomization.yaml new file mode 100644 index 00000000..79c10172 --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/02-loopbacks/kustomization.yaml @@ -0,0 +1,13 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: + - leaf1-lo0.yaml + - leaf1-lo1.yaml + - leaf2-lo0.yaml + - leaf2-lo1.yaml + - leaf3-lo0.yaml + - leaf3-lo1.yaml + - spine1-lo0.yaml + - spine1-lo1.yaml + - spine2-lo0.yaml + - spine2-lo1.yaml diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/02-loopbacks/leaf1-lo0.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/02-loopbacks/leaf1-lo0.yaml new file mode 100644 index 00000000..8bfc7457 --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/02-loopbacks/leaf1-lo0.yaml @@ -0,0 +1,14 @@ +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: Interface +metadata: + name: leaf1-lo0 +spec: + deviceRef: + name: leaf1 + name: lo0 + description: Router-ID Leaf1 + adminState: Up + type: Loopback + ipv4: + addresses: + - 10.0.0.10/32 diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/02-loopbacks/leaf1-lo1.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/02-loopbacks/leaf1-lo1.yaml new file mode 100644 index 00000000..f47b2f29 --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/02-loopbacks/leaf1-lo1.yaml @@ -0,0 +1,15 @@ +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: Interface +metadata: + name: leaf1-lo1 +spec: + deviceRef: + name: leaf1 + name: lo1 + description: VTEP Leaf1 + adminState: Up + type: Loopback + ipv4: + addresses: + - 10.0.1.10/32 + - 10.1.0.10/32 diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/02-loopbacks/leaf2-lo0.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/02-loopbacks/leaf2-lo0.yaml new file mode 100644 index 00000000..45516012 --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/02-loopbacks/leaf2-lo0.yaml @@ -0,0 +1,14 @@ +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: Interface +metadata: + name: leaf2-lo0 +spec: + deviceRef: + name: leaf2 + name: lo0 + description: Router-ID Leaf2 + adminState: Up + type: Loopback + ipv4: + addresses: + - 10.0.0.11/32 diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/02-loopbacks/leaf2-lo1.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/02-loopbacks/leaf2-lo1.yaml new file mode 100644 index 00000000..130b7d2e --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/02-loopbacks/leaf2-lo1.yaml @@ -0,0 +1,15 @@ +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: Interface +metadata: + name: leaf2-lo1 +spec: + deviceRef: + name: leaf2 + name: lo1 + description: VTEP Leaf2 + adminState: Up + type: Loopback + ipv4: + addresses: + - 10.0.1.11/32 + - 10.1.0.10/32 diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/02-loopbacks/leaf3-lo0.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/02-loopbacks/leaf3-lo0.yaml new file mode 100644 index 00000000..83e3bd7a --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/02-loopbacks/leaf3-lo0.yaml @@ -0,0 +1,14 @@ +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: Interface +metadata: + name: leaf3-lo0 +spec: + deviceRef: + name: leaf3 + name: lo0 + description: Router-ID Leaf3 + adminState: Up + type: Loopback + ipv4: + addresses: + - 10.0.0.12/32 diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/02-loopbacks/leaf3-lo1.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/02-loopbacks/leaf3-lo1.yaml new file mode 100644 index 00000000..e81d0ce3 --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/02-loopbacks/leaf3-lo1.yaml @@ -0,0 +1,14 @@ +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: Interface +metadata: + name: leaf3-lo1 +spec: + deviceRef: + name: leaf3 + name: lo1 + description: VTEP Leaf3 + adminState: Up + type: Loopback + ipv4: + addresses: + - 10.0.1.12/32 diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/02-loopbacks/spine1-lo0.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/02-loopbacks/spine1-lo0.yaml new file mode 100644 index 00000000..152916d7 --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/02-loopbacks/spine1-lo0.yaml @@ -0,0 +1,14 @@ +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: Interface +metadata: + name: spine1-lo0 +spec: + deviceRef: + name: spine1 + name: lo0 + description: Router-ID Spine1 + adminState: Up + type: Loopback + ipv4: + addresses: + - 10.0.0.1/32 diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/02-loopbacks/spine1-lo1.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/02-loopbacks/spine1-lo1.yaml new file mode 100644 index 00000000..19548f52 --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/02-loopbacks/spine1-lo1.yaml @@ -0,0 +1,14 @@ +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: Interface +metadata: + name: spine1-lo1 +spec: + deviceRef: + name: spine1 + name: lo1 + description: Anycast RP + adminState: Up + type: Loopback + ipv4: + addresses: + - 10.0.0.100/32 diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/02-loopbacks/spine2-lo0.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/02-loopbacks/spine2-lo0.yaml new file mode 100644 index 00000000..18192995 --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/02-loopbacks/spine2-lo0.yaml @@ -0,0 +1,14 @@ +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: Interface +metadata: + name: spine2-lo0 +spec: + deviceRef: + name: spine2 + name: lo0 + description: Router-ID Spine2 + adminState: Up + type: Loopback + ipv4: + addresses: + - 10.0.0.2/32 diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/02-loopbacks/spine2-lo1.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/02-loopbacks/spine2-lo1.yaml new file mode 100644 index 00000000..6e43bf7b --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/02-loopbacks/spine2-lo1.yaml @@ -0,0 +1,14 @@ +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: Interface +metadata: + name: spine2-lo1 +spec: + deviceRef: + name: spine2 + name: lo1 + description: Anycast RP + adminState: Up + type: Loopback + ipv4: + addresses: + - 10.0.0.100/32 diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/03-vpc-keepalive/kustomization.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/03-vpc-keepalive/kustomization.yaml new file mode 100644 index 00000000..fc9d023b --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/03-vpc-keepalive/kustomization.yaml @@ -0,0 +1,7 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: + - leaf1-vpc-keepalive.yaml + - leaf2-vpc-keepalive.yaml + - leaf1-eth1-30.yaml + - leaf2-eth1-30.yaml diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/03-vpc-keepalive/leaf1-eth1-30.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/03-vpc-keepalive/leaf1-eth1-30.yaml new file mode 100644 index 00000000..9eaeb0d6 --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/03-vpc-keepalive/leaf1-eth1-30.yaml @@ -0,0 +1,18 @@ +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: Interface +metadata: + labels: + networking.metal.ironcore.dev/role: vpc-keepalive + name: leaf1-eth1-30 +spec: + deviceRef: + name: leaf1 + name: eth1/30 + description: vPC Keepalive + adminState: Up + type: Physical + vrfRef: + name: leaf1-vpc-keepalive + ipv4: + addresses: + - 10.1.1.1/30 diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/03-vpc-keepalive/leaf1-vpc-keepalive.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/03-vpc-keepalive/leaf1-vpc-keepalive.yaml new file mode 100644 index 00000000..5a037600 --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/03-vpc-keepalive/leaf1-vpc-keepalive.yaml @@ -0,0 +1,11 @@ +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: VRF +metadata: + labels: + networking.metal.ironcore.dev/role: vpc-keepalive + name: leaf1-vpc-keepalive +spec: + deviceRef: + name: leaf1 + name: VPC_KEEPALIVE + description: VRF for vPC Keepalive diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/03-vpc-keepalive/leaf2-eth1-30.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/03-vpc-keepalive/leaf2-eth1-30.yaml new file mode 100644 index 00000000..fe03ef6e --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/03-vpc-keepalive/leaf2-eth1-30.yaml @@ -0,0 +1,18 @@ +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: Interface +metadata: + labels: + networking.metal.ironcore.dev/role: vpc-keepalive + name: leaf2-eth1-30 +spec: + deviceRef: + name: leaf2 + name: eth1/30 + description: vPC Keepalive + adminState: Up + type: Physical + vrfRef: + name: leaf2-vpc-keepalive + ipv4: + addresses: + - 10.1.1.2/30 diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/03-vpc-keepalive/leaf2-vpc-keepalive.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/03-vpc-keepalive/leaf2-vpc-keepalive.yaml new file mode 100644 index 00000000..2d72cb15 --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/03-vpc-keepalive/leaf2-vpc-keepalive.yaml @@ -0,0 +1,11 @@ +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: VRF +metadata: + labels: + networking.metal.ironcore.dev/role: vpc-keepalive + name: leaf2-vpc-keepalive +spec: + deviceRef: + name: leaf2 + name: VPC_KEEPALIVE + description: VRF for vPC Keepalive diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/04-vpc-peerlink/kustomization.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/04-vpc-peerlink/kustomization.yaml new file mode 100644 index 00000000..adf08a45 --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/04-vpc-peerlink/kustomization.yaml @@ -0,0 +1,10 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: + - spanning-tree-network.yaml + - leaf1-eth1-31.yaml + - leaf1-eth1-32.yaml + - leaf1-po1.yaml + - leaf2-eth1-31.yaml + - leaf2-eth1-32.yaml + - leaf2-po1.yaml diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/04-vpc-peerlink/leaf1-eth1-31.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/04-vpc-peerlink/leaf1-eth1-31.yaml new file mode 100644 index 00000000..7be34a34 --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/04-vpc-peerlink/leaf1-eth1-31.yaml @@ -0,0 +1,20 @@ +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: Interface +metadata: + labels: + networking.metal.ironcore.dev/role: vpc-peer-link + name: leaf1-eth1-31 +spec: + deviceRef: + name: leaf1 + providerConfigRef: + apiVersion: nx.cisco.networking.metal.ironcore.dev/v1alpha1 + kind: InterfaceConfig + name: spanning-tree-network + name: eth1/31 + description: vPC Peer-Link + adminState: Up + type: Physical + switchport: + mode: Trunk + nativeVlan: 1 diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/04-vpc-peerlink/leaf1-eth1-32.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/04-vpc-peerlink/leaf1-eth1-32.yaml new file mode 100644 index 00000000..2b55da5a --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/04-vpc-peerlink/leaf1-eth1-32.yaml @@ -0,0 +1,20 @@ +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: Interface +metadata: + labels: + networking.metal.ironcore.dev/role: vpc-peer-link + name: leaf1-eth1-32 +spec: + deviceRef: + name: leaf1 + providerConfigRef: + apiVersion: nx.cisco.networking.metal.ironcore.dev/v1alpha1 + kind: InterfaceConfig + name: spanning-tree-network + name: eth1/32 + description: vPC Peer-Link + adminState: Up + type: Physical + switchport: + mode: Trunk + nativeVlan: 1 diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/04-vpc-peerlink/leaf1-po1.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/04-vpc-peerlink/leaf1-po1.yaml new file mode 100644 index 00000000..7882252d --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/04-vpc-peerlink/leaf1-po1.yaml @@ -0,0 +1,26 @@ +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: Interface +metadata: + labels: + networking.metal.ironcore.dev/role: vpc-peer-link + name: leaf1-po1 +spec: + deviceRef: + name: leaf1 + providerConfigRef: + apiVersion: nx.cisco.networking.metal.ironcore.dev/v1alpha1 + kind: InterfaceConfig + name: spanning-tree-network + name: po1 + description: vPC Peer-Link + adminState: Up + type: Aggregate + switchport: + mode: Trunk + nativeVlan: 1 + aggregation: + controlProtocol: + mode: Active + memberInterfaceRefs: + - name: leaf1-eth1-31 + - name: leaf1-eth1-32 diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/04-vpc-peerlink/leaf2-eth1-31.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/04-vpc-peerlink/leaf2-eth1-31.yaml new file mode 100644 index 00000000..9420148d --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/04-vpc-peerlink/leaf2-eth1-31.yaml @@ -0,0 +1,20 @@ +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: Interface +metadata: + labels: + networking.metal.ironcore.dev/role: vpc-peer-link + name: leaf2-eth1-31 +spec: + deviceRef: + name: leaf2 + providerConfigRef: + apiVersion: nx.cisco.networking.metal.ironcore.dev/v1alpha1 + kind: InterfaceConfig + name: spanning-tree-network + name: eth1/31 + description: vPC Peer-Link + adminState: Up + type: Physical + switchport: + mode: Trunk + nativeVlan: 1 diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/04-vpc-peerlink/leaf2-eth1-32.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/04-vpc-peerlink/leaf2-eth1-32.yaml new file mode 100644 index 00000000..821106f4 --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/04-vpc-peerlink/leaf2-eth1-32.yaml @@ -0,0 +1,20 @@ +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: Interface +metadata: + labels: + networking.metal.ironcore.dev/role: vpc-peer-link + name: leaf2-eth1-32 +spec: + deviceRef: + name: leaf2 + providerConfigRef: + apiVersion: nx.cisco.networking.metal.ironcore.dev/v1alpha1 + kind: InterfaceConfig + name: spanning-tree-network + name: eth1/32 + description: vPC Peer-Link + adminState: Up + type: Physical + switchport: + mode: Trunk + nativeVlan: 1 diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/04-vpc-peerlink/leaf2-po1.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/04-vpc-peerlink/leaf2-po1.yaml new file mode 100644 index 00000000..d9a5d61c --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/04-vpc-peerlink/leaf2-po1.yaml @@ -0,0 +1,26 @@ +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: Interface +metadata: + labels: + networking.metal.ironcore.dev/role: vpc-peer-link + name: leaf2-po1 +spec: + deviceRef: + name: leaf2 + providerConfigRef: + apiVersion: nx.cisco.networking.metal.ironcore.dev/v1alpha1 + kind: InterfaceConfig + name: spanning-tree-network + name: po1 + description: vPC Peer-Link + adminState: Up + type: Aggregate + switchport: + mode: Trunk + nativeVlan: 1 + aggregation: + controlProtocol: + mode: Active + memberInterfaceRefs: + - name: leaf2-eth1-31 + - name: leaf2-eth1-32 diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/04-vpc-peerlink/spanning-tree-network.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/04-vpc-peerlink/spanning-tree-network.yaml new file mode 100644 index 00000000..755df9fe --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/04-vpc-peerlink/spanning-tree-network.yaml @@ -0,0 +1,7 @@ +apiVersion: nx.cisco.networking.metal.ironcore.dev/v1alpha1 +kind: InterfaceConfig +metadata: + name: spanning-tree-network +spec: + spanningTree: + portType: Network diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/05-vpc-domain/kustomization.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/05-vpc-domain/kustomization.yaml new file mode 100644 index 00000000..954f6652 --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/05-vpc-domain/kustomization.yaml @@ -0,0 +1,5 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: + - leaf1-vpc-domain.yaml + - leaf2-vpc-domain.yaml diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/05-vpc-domain/leaf1-vpc-domain.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/05-vpc-domain/leaf1-vpc-domain.yaml new file mode 100644 index 00000000..e40e9e26 --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/05-vpc-domain/leaf1-vpc-domain.yaml @@ -0,0 +1,22 @@ +apiVersion: nx.cisco.networking.metal.ironcore.dev/v1alpha1 +kind: VPCDomain +metadata: + name: leaf1-vpcdomain +spec: + deviceRef: + name: leaf1 + domainId: 1 + adminState: Up + peer: + adminState: Up + interfaceRef: + name: leaf1-po1 + switch: + enabled: true + gateway: + enabled: true + keepalive: + source: 10.1.1.1 + destination: 10.1.1.2 + vrfRef: + name: leaf1-vpc-keepalive diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/05-vpc-domain/leaf2-vpc-domain.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/05-vpc-domain/leaf2-vpc-domain.yaml new file mode 100644 index 00000000..cc6dfca9 --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/05-vpc-domain/leaf2-vpc-domain.yaml @@ -0,0 +1,22 @@ +apiVersion: nx.cisco.networking.metal.ironcore.dev/v1alpha1 +kind: VPCDomain +metadata: + name: leaf2-vpcdomain +spec: + deviceRef: + name: leaf2 + domainId: 1 + adminState: Up + peer: + adminState: Up + interfaceRef: + name: leaf2-po1 + switch: + enabled: true + gateway: + enabled: true + keepalive: + source: 10.1.1.2 + destination: 10.1.1.1 + vrfRef: + name: leaf2-vpc-keepalive diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/06-interconnects/kustomization.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/06-interconnects/kustomization.yaml new file mode 100644 index 00000000..511e695b --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/06-interconnects/kustomization.yaml @@ -0,0 +1,15 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: + - leaf1-eth1-1.yaml + - leaf1-eth1-2.yaml + - leaf2-eth1-1.yaml + - leaf2-eth1-2.yaml + - leaf3-eth1-1.yaml + - leaf3-eth1-2.yaml + - spine1-eth1-1.yaml + - spine1-eth1-2.yaml + - spine1-eth1-3.yaml + - spine2-eth1-1.yaml + - spine2-eth1-2.yaml + - spine2-eth1-3.yaml diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/06-interconnects/leaf1-eth1-1.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/06-interconnects/leaf1-eth1-1.yaml new file mode 100644 index 00000000..2279a52d --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/06-interconnects/leaf1-eth1-1.yaml @@ -0,0 +1,18 @@ +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: Interface +metadata: + labels: + networking.metal.ironcore.dev/role: fabric + name: leaf1-eth1-1 +spec: + deviceRef: + name: leaf1 + name: eth1/1 + description: Leaf1 to Spine1 + adminState: Up + type: Physical + mtu: 9216 + ipv4: + unnumbered: + interfaceRef: + name: leaf1-lo0 diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/06-interconnects/leaf1-eth1-2.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/06-interconnects/leaf1-eth1-2.yaml new file mode 100644 index 00000000..f663e415 --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/06-interconnects/leaf1-eth1-2.yaml @@ -0,0 +1,18 @@ +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: Interface +metadata: + labels: + networking.metal.ironcore.dev/role: fabric + name: leaf1-eth1-2 +spec: + deviceRef: + name: leaf1 + name: eth1/2 + description: Leaf1 to Spine2 + adminState: Up + type: Physical + mtu: 9216 + ipv4: + unnumbered: + interfaceRef: + name: leaf1-lo0 diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/06-interconnects/leaf2-eth1-1.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/06-interconnects/leaf2-eth1-1.yaml new file mode 100644 index 00000000..39069514 --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/06-interconnects/leaf2-eth1-1.yaml @@ -0,0 +1,18 @@ +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: Interface +metadata: + labels: + networking.metal.ironcore.dev/role: fabric + name: leaf2-eth1-1 +spec: + deviceRef: + name: leaf2 + name: eth1/1 + description: Leaf2 to Spine1 + adminState: Up + type: Physical + mtu: 9216 + ipv4: + unnumbered: + interfaceRef: + name: leaf2-lo0 diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/06-interconnects/leaf2-eth1-2.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/06-interconnects/leaf2-eth1-2.yaml new file mode 100644 index 00000000..ebb21d79 --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/06-interconnects/leaf2-eth1-2.yaml @@ -0,0 +1,18 @@ +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: Interface +metadata: + labels: + networking.metal.ironcore.dev/role: fabric + name: leaf2-eth1-2 +spec: + deviceRef: + name: leaf2 + name: eth1/2 + description: Leaf2 to Spine2 + adminState: Up + type: Physical + mtu: 9216 + ipv4: + unnumbered: + interfaceRef: + name: leaf2-lo0 diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/06-interconnects/leaf3-eth1-1.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/06-interconnects/leaf3-eth1-1.yaml new file mode 100644 index 00000000..ffa16d09 --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/06-interconnects/leaf3-eth1-1.yaml @@ -0,0 +1,18 @@ +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: Interface +metadata: + labels: + networking.metal.ironcore.dev/role: fabric + name: leaf3-eth1-1 +spec: + deviceRef: + name: leaf3 + name: eth1/1 + description: Leaf3 to Spine1 + adminState: Up + type: Physical + mtu: 9216 + ipv4: + unnumbered: + interfaceRef: + name: leaf3-lo0 diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/06-interconnects/leaf3-eth1-2.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/06-interconnects/leaf3-eth1-2.yaml new file mode 100644 index 00000000..897ff27a --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/06-interconnects/leaf3-eth1-2.yaml @@ -0,0 +1,18 @@ +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: Interface +metadata: + labels: + networking.metal.ironcore.dev/role: fabric + name: leaf3-eth1-2 +spec: + deviceRef: + name: leaf3 + name: eth1/2 + description: Leaf3 to Spine2 + adminState: Up + type: Physical + mtu: 9216 + ipv4: + unnumbered: + interfaceRef: + name: leaf3-lo0 diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/06-interconnects/spine1-eth1-1.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/06-interconnects/spine1-eth1-1.yaml new file mode 100644 index 00000000..a02e1229 --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/06-interconnects/spine1-eth1-1.yaml @@ -0,0 +1,18 @@ +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: Interface +metadata: + labels: + networking.metal.ironcore.dev/role: fabric + name: spine1-eth1-1 +spec: + deviceRef: + name: spine1 + name: eth1/1 + description: Spine1 to Leaf1 + adminState: Up + type: Physical + mtu: 9216 + ipv4: + unnumbered: + interfaceRef: + name: spine1-lo0 diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/06-interconnects/spine1-eth1-2.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/06-interconnects/spine1-eth1-2.yaml new file mode 100644 index 00000000..fe50dceb --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/06-interconnects/spine1-eth1-2.yaml @@ -0,0 +1,18 @@ +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: Interface +metadata: + labels: + networking.metal.ironcore.dev/role: fabric + name: spine1-eth1-2 +spec: + deviceRef: + name: spine1 + name: eth1/2 + description: Spine1 to Leaf2 + adminState: Up + type: Physical + mtu: 9216 + ipv4: + unnumbered: + interfaceRef: + name: spine1-lo0 diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/06-interconnects/spine1-eth1-3.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/06-interconnects/spine1-eth1-3.yaml new file mode 100644 index 00000000..296771e0 --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/06-interconnects/spine1-eth1-3.yaml @@ -0,0 +1,18 @@ +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: Interface +metadata: + labels: + networking.metal.ironcore.dev/role: fabric + name: spine1-eth1-3 +spec: + deviceRef: + name: spine1 + name: eth1/3 + description: Spine1 to Leaf3 + adminState: Up + type: Physical + mtu: 9216 + ipv4: + unnumbered: + interfaceRef: + name: spine1-lo0 diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/06-interconnects/spine2-eth1-1.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/06-interconnects/spine2-eth1-1.yaml new file mode 100644 index 00000000..19dce69d --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/06-interconnects/spine2-eth1-1.yaml @@ -0,0 +1,18 @@ +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: Interface +metadata: + labels: + networking.metal.ironcore.dev/role: fabric + name: spine2-eth1-1 +spec: + deviceRef: + name: spine2 + name: eth1/1 + description: Spine2 to Leaf1 + adminState: Up + type: Physical + mtu: 9216 + ipv4: + unnumbered: + interfaceRef: + name: spine2-lo0 diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/06-interconnects/spine2-eth1-2.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/06-interconnects/spine2-eth1-2.yaml new file mode 100644 index 00000000..89bf816d --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/06-interconnects/spine2-eth1-2.yaml @@ -0,0 +1,18 @@ +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: Interface +metadata: + labels: + networking.metal.ironcore.dev/role: fabric + name: spine2-eth1-2 +spec: + deviceRef: + name: spine2 + name: eth1/2 + description: Spine2 to Leaf2 + adminState: Up + type: Physical + mtu: 9216 + ipv4: + unnumbered: + interfaceRef: + name: spine2-lo0 diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/06-interconnects/spine2-eth1-3.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/06-interconnects/spine2-eth1-3.yaml new file mode 100644 index 00000000..6b90576c --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/06-interconnects/spine2-eth1-3.yaml @@ -0,0 +1,18 @@ +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: Interface +metadata: + labels: + networking.metal.ironcore.dev/role: fabric + name: spine2-eth1-3 +spec: + deviceRef: + name: spine2 + name: eth1/3 + description: Spine2 to Leaf3 + adminState: Up + type: Physical + mtu: 9216 + ipv4: + unnumbered: + interfaceRef: + name: spine2-lo0 diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/07-underlay/kustomization.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/07-underlay/kustomization.yaml new file mode 100644 index 00000000..a1feecc5 --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/07-underlay/kustomization.yaml @@ -0,0 +1,8 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: + - leaf1-ospf.yaml + - leaf2-ospf.yaml + - leaf3-ospf.yaml + - spine1-ospf.yaml + - spine2-ospf.yaml diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/07-underlay/leaf1-ospf.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/07-underlay/leaf1-ospf.yaml new file mode 100644 index 00000000..f551d2ed --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/07-underlay/leaf1-ospf.yaml @@ -0,0 +1,21 @@ +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: OSPF +metadata: + name: leaf1-underlay +spec: + deviceRef: + name: leaf1 + instance: UNDERLAY + routerId: 10.0.0.10 + logAdjacencyChanges: true + interfaceRefs: + - name: leaf1-lo0 + area: 0.0.0.0 + passive: true + - name: leaf1-lo1 + area: 0.0.0.0 + passive: true + - name: leaf1-eth1-1 + area: 0.0.0.0 + - name: leaf1-eth1-2 + area: 0.0.0.0 diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/07-underlay/leaf2-ospf.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/07-underlay/leaf2-ospf.yaml new file mode 100644 index 00000000..e4872baa --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/07-underlay/leaf2-ospf.yaml @@ -0,0 +1,21 @@ +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: OSPF +metadata: + name: leaf2-underlay +spec: + deviceRef: + name: leaf2 + instance: UNDERLAY + routerId: 10.0.0.11 + logAdjacencyChanges: true + interfaceRefs: + - name: leaf2-lo0 + area: 0.0.0.0 + passive: true + - name: leaf2-lo1 + area: 0.0.0.0 + passive: true + - name: leaf2-eth1-1 + area: 0.0.0.0 + - name: leaf2-eth1-2 + area: 0.0.0.0 diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/07-underlay/leaf3-ospf.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/07-underlay/leaf3-ospf.yaml new file mode 100644 index 00000000..b9d4eadc --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/07-underlay/leaf3-ospf.yaml @@ -0,0 +1,21 @@ +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: OSPF +metadata: + name: leaf3-underlay +spec: + deviceRef: + name: leaf3 + instance: UNDERLAY + routerId: 10.0.0.12 + logAdjacencyChanges: true + interfaceRefs: + - name: leaf3-lo0 + area: 0.0.0.0 + passive: true + - name: leaf3-lo1 + area: 0.0.0.0 + passive: true + - name: leaf3-eth1-1 + area: 0.0.0.0 + - name: leaf3-eth1-2 + area: 0.0.0.0 diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/07-underlay/spine1-ospf.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/07-underlay/spine1-ospf.yaml new file mode 100644 index 00000000..055ef06e --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/07-underlay/spine1-ospf.yaml @@ -0,0 +1,23 @@ +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: OSPF +metadata: + name: spine1-underlay +spec: + deviceRef: + name: spine1 + instance: UNDERLAY + routerId: 10.0.0.1 + logAdjacencyChanges: true + interfaceRefs: + - name: spine1-lo0 + area: 0.0.0.0 + passive: true + - name: spine1-lo1 + area: 0.0.0.0 + passive: true + - name: spine1-eth1-1 + area: 0.0.0.0 + - name: spine1-eth1-2 + area: 0.0.0.0 + - name: spine1-eth1-3 + area: 0.0.0.0 diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/07-underlay/spine2-ospf.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/07-underlay/spine2-ospf.yaml new file mode 100644 index 00000000..30dad91a --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/07-underlay/spine2-ospf.yaml @@ -0,0 +1,23 @@ +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: OSPF +metadata: + name: spine2-underlay +spec: + deviceRef: + name: spine2 + instance: UNDERLAY + routerId: 10.0.0.2 + logAdjacencyChanges: true + interfaceRefs: + - name: spine2-lo0 + area: 0.0.0.0 + passive: true + - name: spine2-lo1 + area: 0.0.0.0 + passive: true + - name: spine2-eth1-1 + area: 0.0.0.0 + - name: spine2-eth1-2 + area: 0.0.0.0 + - name: spine2-eth1-3 + area: 0.0.0.0 diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/08-pim/kustomization.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/08-pim/kustomization.yaml new file mode 100644 index 00000000..a6c17831 --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/08-pim/kustomization.yaml @@ -0,0 +1,8 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: + - leaf1-pim.yaml + - leaf2-pim.yaml + - leaf3-pim.yaml + - spine1-pim.yaml + - spine2-pim.yaml diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/08-pim/leaf1-pim.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/08-pim/leaf1-pim.yaml new file mode 100644 index 00000000..06a39544 --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/08-pim/leaf1-pim.yaml @@ -0,0 +1,20 @@ +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: PIM +metadata: + name: leaf1-pim +spec: + deviceRef: + name: leaf1 + rendezvousPoints: + - address: 10.0.0.100 + multicastGroups: + - 224.0.0.0/4 + interfaceRefs: + - name: leaf1-lo0 + mode: Sparse + - name: leaf1-lo1 + mode: Sparse + - name: leaf1-eth1-1 + mode: Sparse + - name: leaf1-eth1-2 + mode: Sparse diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/08-pim/leaf2-pim.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/08-pim/leaf2-pim.yaml new file mode 100644 index 00000000..00dc213c --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/08-pim/leaf2-pim.yaml @@ -0,0 +1,20 @@ +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: PIM +metadata: + name: leaf2-pim +spec: + deviceRef: + name: leaf2 + rendezvousPoints: + - address: 10.0.0.100 + multicastGroups: + - 224.0.0.0/4 + interfaceRefs: + - name: leaf2-lo0 + mode: Sparse + - name: leaf2-lo1 + mode: Sparse + - name: leaf2-eth1-1 + mode: Sparse + - name: leaf2-eth1-2 + mode: Sparse diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/08-pim/leaf3-pim.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/08-pim/leaf3-pim.yaml new file mode 100644 index 00000000..dcd5bc69 --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/08-pim/leaf3-pim.yaml @@ -0,0 +1,20 @@ +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: PIM +metadata: + name: leaf3-pim +spec: + deviceRef: + name: leaf3 + rendezvousPoints: + - address: 10.0.0.100 + multicastGroups: + - 224.0.0.0/4 + interfaceRefs: + - name: leaf3-lo0 + mode: Sparse + - name: leaf3-lo1 + mode: Sparse + - name: leaf3-eth1-1 + mode: Sparse + - name: leaf3-eth1-2 + mode: Sparse diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/08-pim/spine1-pim.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/08-pim/spine1-pim.yaml new file mode 100644 index 00000000..c88f1fac --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/08-pim/spine1-pim.yaml @@ -0,0 +1,25 @@ +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: PIM +metadata: + name: spine1-pim +spec: + deviceRef: + name: spine1 + rendezvousPoints: + - address: 10.0.0.100 + multicastGroups: + - 224.0.0.0/4 + anycastAddresses: + - 10.0.0.1 + - 10.0.0.2 + interfaceRefs: + - name: spine1-lo0 + mode: Sparse + - name: spine1-lo1 + mode: Sparse + - name: spine1-eth1-1 + mode: Sparse + - name: spine1-eth1-2 + mode: Sparse + - name: spine1-eth1-3 + mode: Sparse diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/08-pim/spine2-pim.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/08-pim/spine2-pim.yaml new file mode 100644 index 00000000..d9b581e7 --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/08-pim/spine2-pim.yaml @@ -0,0 +1,25 @@ +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: PIM +metadata: + name: spine2-pim +spec: + deviceRef: + name: spine2 + rendezvousPoints: + - address: 10.0.0.100 + multicastGroups: + - 224.0.0.0/4 + anycastAddresses: + - 10.0.0.1 + - 10.0.0.2 + interfaceRefs: + - name: spine2-lo0 + mode: Sparse + - name: spine2-lo1 + mode: Sparse + - name: spine2-eth1-1 + mode: Sparse + - name: spine2-eth1-2 + mode: Sparse + - name: spine2-eth1-3 + mode: Sparse diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/09-bgp-router/kustomization.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/09-bgp-router/kustomization.yaml new file mode 100644 index 00000000..d859aa25 --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/09-bgp-router/kustomization.yaml @@ -0,0 +1,8 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: + - leaf1-bgp.yaml + - leaf2-bgp.yaml + - leaf3-bgp.yaml + - spine1-bgp.yaml + - spine2-bgp.yaml diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/09-bgp-router/leaf1-bgp.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/09-bgp-router/leaf1-bgp.yaml new file mode 100644 index 00000000..7a7be80b --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/09-bgp-router/leaf1-bgp.yaml @@ -0,0 +1,12 @@ +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: BGP +metadata: + name: leaf1-bgp +spec: + deviceRef: + name: leaf1 + asNumber: 65000 + routerId: 10.0.0.10 + addressFamilies: + ipv4Unicast: + enabled: true diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/09-bgp-router/leaf2-bgp.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/09-bgp-router/leaf2-bgp.yaml new file mode 100644 index 00000000..75d911bb --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/09-bgp-router/leaf2-bgp.yaml @@ -0,0 +1,12 @@ +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: BGP +metadata: + name: leaf2-bgp +spec: + deviceRef: + name: leaf2 + asNumber: 65000 + routerId: 10.0.0.11 + addressFamilies: + ipv4Unicast: + enabled: true diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/09-bgp-router/leaf3-bgp.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/09-bgp-router/leaf3-bgp.yaml new file mode 100644 index 00000000..174744fa --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/09-bgp-router/leaf3-bgp.yaml @@ -0,0 +1,12 @@ +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: BGP +metadata: + name: leaf3-bgp +spec: + deviceRef: + name: leaf3 + asNumber: 65000 + routerId: 10.0.0.12 + addressFamilies: + ipv4Unicast: + enabled: true diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/09-bgp-router/spine1-bgp.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/09-bgp-router/spine1-bgp.yaml new file mode 100644 index 00000000..0900ad1b --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/09-bgp-router/spine1-bgp.yaml @@ -0,0 +1,12 @@ +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: BGP +metadata: + name: spine1-bgp +spec: + deviceRef: + name: spine1 + asNumber: 65000 + routerId: 10.0.0.1 + addressFamilies: + ipv4Unicast: + enabled: true diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/09-bgp-router/spine2-bgp.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/09-bgp-router/spine2-bgp.yaml new file mode 100644 index 00000000..f8faf0a4 --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/09-bgp-router/spine2-bgp.yaml @@ -0,0 +1,12 @@ +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: BGP +metadata: + name: spine2-bgp +spec: + deviceRef: + name: spine2 + asNumber: 65000 + routerId: 10.0.0.2 + addressFamilies: + ipv4Unicast: + enabled: true diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/10-bgp-peers/kustomization.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/10-bgp-peers/kustomization.yaml new file mode 100644 index 00000000..fa668a12 --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/10-bgp-peers/kustomization.yaml @@ -0,0 +1,8 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: + - leaf1-bgp-peers.yaml + - leaf2-bgp-peers.yaml + - leaf3-bgp-peers.yaml + - spine1-bgp-peers.yaml + - spine2-bgp-peers.yaml diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/10-bgp-peers/leaf1-bgp-peers.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/10-bgp-peers/leaf1-bgp-peers.yaml new file mode 100644 index 00000000..e25631b7 --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/10-bgp-peers/leaf1-bgp-peers.yaml @@ -0,0 +1,33 @@ +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: BGPPeer +metadata: + name: leaf1-spine1 +spec: + deviceRef: + name: leaf1 + address: 10.0.0.1 + asNumber: 65000 + localAddress: + interfaceRef: + name: leaf1-lo0 + addressFamilies: + l2vpnEvpn: + enabled: true + sendCommunity: Both +--- +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: BGPPeer +metadata: + name: leaf1-spine2 +spec: + deviceRef: + name: leaf1 + address: 10.0.0.2 + asNumber: 65000 + localAddress: + interfaceRef: + name: leaf1-lo0 + addressFamilies: + l2vpnEvpn: + enabled: true + sendCommunity: Both diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/10-bgp-peers/leaf2-bgp-peers.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/10-bgp-peers/leaf2-bgp-peers.yaml new file mode 100644 index 00000000..da048809 --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/10-bgp-peers/leaf2-bgp-peers.yaml @@ -0,0 +1,33 @@ +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: BGPPeer +metadata: + name: leaf2-spine1 +spec: + deviceRef: + name: leaf2 + address: 10.0.0.1 + asNumber: 65000 + localAddress: + interfaceRef: + name: leaf2-lo0 + addressFamilies: + l2vpnEvpn: + enabled: true + sendCommunity: Both +--- +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: BGPPeer +metadata: + name: leaf2-spine2 +spec: + deviceRef: + name: leaf2 + address: 10.0.0.2 + asNumber: 65000 + localAddress: + interfaceRef: + name: leaf2-lo0 + addressFamilies: + l2vpnEvpn: + enabled: true + sendCommunity: Both diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/10-bgp-peers/leaf3-bgp-peers.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/10-bgp-peers/leaf3-bgp-peers.yaml new file mode 100644 index 00000000..da03db0e --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/10-bgp-peers/leaf3-bgp-peers.yaml @@ -0,0 +1,33 @@ +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: BGPPeer +metadata: + name: leaf3-spine1 +spec: + deviceRef: + name: leaf3 + address: 10.0.0.1 + asNumber: 65000 + localAddress: + interfaceRef: + name: leaf3-lo0 + addressFamilies: + l2vpnEvpn: + enabled: true + sendCommunity: Both +--- +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: BGPPeer +metadata: + name: leaf3-spine2 +spec: + deviceRef: + name: leaf3 + address: 10.0.0.2 + asNumber: 65000 + localAddress: + interfaceRef: + name: leaf3-lo0 + addressFamilies: + l2vpnEvpn: + enabled: true + sendCommunity: Both diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/10-bgp-peers/spine1-bgp-peers.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/10-bgp-peers/spine1-bgp-peers.yaml new file mode 100644 index 00000000..0db1934c --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/10-bgp-peers/spine1-bgp-peers.yaml @@ -0,0 +1,53 @@ +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: BGPPeer +metadata: + name: spine1-leaf1 +spec: + deviceRef: + name: spine1 + address: 10.0.0.10 + asNumber: 65000 + localAddress: + interfaceRef: + name: spine1-lo0 + addressFamilies: + l2vpnEvpn: + enabled: true + sendCommunity: Both + routeReflectorClient: true +--- +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: BGPPeer +metadata: + name: spine1-leaf2 +spec: + deviceRef: + name: spine1 + address: 10.0.0.11 + asNumber: 65000 + localAddress: + interfaceRef: + name: spine1-lo0 + addressFamilies: + l2vpnEvpn: + enabled: true + sendCommunity: Both + routeReflectorClient: true +--- +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: BGPPeer +metadata: + name: spine1-leaf3 +spec: + deviceRef: + name: spine1 + address: 10.0.0.12 + asNumber: 65000 + localAddress: + interfaceRef: + name: spine1-lo0 + addressFamilies: + l2vpnEvpn: + enabled: true + sendCommunity: Both + routeReflectorClient: true diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/10-bgp-peers/spine2-bgp-peers.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/10-bgp-peers/spine2-bgp-peers.yaml new file mode 100644 index 00000000..1e84b1ca --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/10-bgp-peers/spine2-bgp-peers.yaml @@ -0,0 +1,53 @@ +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: BGPPeer +metadata: + name: spine2-leaf1 +spec: + deviceRef: + name: spine2 + address: 10.0.0.10 + asNumber: 65000 + localAddress: + interfaceRef: + name: spine2-lo0 + addressFamilies: + l2vpnEvpn: + enabled: true + sendCommunity: Both + routeReflectorClient: true +--- +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: BGPPeer +metadata: + name: spine2-leaf2 +spec: + deviceRef: + name: spine2 + address: 10.0.0.11 + asNumber: 65000 + localAddress: + interfaceRef: + name: spine2-lo0 + addressFamilies: + l2vpnEvpn: + enabled: true + sendCommunity: Both + routeReflectorClient: true +--- +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: BGPPeer +metadata: + name: spine2-leaf3 +spec: + deviceRef: + name: spine2 + address: 10.0.0.12 + asNumber: 65000 + localAddress: + interfaceRef: + name: spine2-lo0 + addressFamilies: + l2vpnEvpn: + enabled: true + sendCommunity: Both + routeReflectorClient: true diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/11-nve/kustomization.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/11-nve/kustomization.yaml new file mode 100644 index 00000000..b2544ce6 --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/11-nve/kustomization.yaml @@ -0,0 +1,6 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: + - leaf1-nve1.yaml + - leaf2-nve1.yaml + - leaf3-nve1.yaml diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/11-nve/leaf1-nve1.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/11-nve/leaf1-nve1.yaml new file mode 100644 index 00000000..3c7432cb --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/11-nve/leaf1-nve1.yaml @@ -0,0 +1,15 @@ +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: NetworkVirtualizationEdge +metadata: + name: leaf1-nve1 +spec: + deviceRef: + name: leaf1 + adminState: Up + hostReachability: BGP + sourceInterfaceRef: + name: leaf1-lo1 + multicastGroups: + l2: 224.0.0.0/24 + anycastGateway: + virtualMAC: 00:00:11:11:22:22 diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/11-nve/leaf2-nve1.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/11-nve/leaf2-nve1.yaml new file mode 100644 index 00000000..5b53f670 --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/11-nve/leaf2-nve1.yaml @@ -0,0 +1,15 @@ +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: NetworkVirtualizationEdge +metadata: + name: leaf2-nve1 +spec: + deviceRef: + name: leaf2 + adminState: Up + hostReachability: BGP + sourceInterfaceRef: + name: leaf2-lo1 + multicastGroups: + l2: 224.0.0.0/24 + anycastGateway: + virtualMAC: 00:00:11:11:22:22 diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/11-nve/leaf3-nve1.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/11-nve/leaf3-nve1.yaml new file mode 100644 index 00000000..2460a17b --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/11-nve/leaf3-nve1.yaml @@ -0,0 +1,15 @@ +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: NetworkVirtualizationEdge +metadata: + name: leaf3-nve1 +spec: + deviceRef: + name: leaf3 + adminState: Up + hostReachability: BGP + sourceInterfaceRef: + name: leaf3-lo1 + multicastGroups: + l2: 224.0.0.0/24 + anycastGateway: + virtualMAC: 00:00:11:11:22:22 diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/12-vlan/kustomization.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/12-vlan/kustomization.yaml new file mode 100644 index 00000000..0721d8b8 --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/12-vlan/kustomization.yaml @@ -0,0 +1,6 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: + - leaf1-vlan-10.yaml + - leaf2-vlan-10.yaml + - leaf3-vlan-10.yaml diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/12-vlan/leaf1-vlan-10.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/12-vlan/leaf1-vlan-10.yaml new file mode 100644 index 00000000..068fafe6 --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/12-vlan/leaf1-vlan-10.yaml @@ -0,0 +1,8 @@ +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: VLAN +metadata: + name: leaf1-vlan-10 +spec: + deviceRef: + name: leaf1 + id: 10 diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/12-vlan/leaf2-vlan-10.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/12-vlan/leaf2-vlan-10.yaml new file mode 100644 index 00000000..276c9ee6 --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/12-vlan/leaf2-vlan-10.yaml @@ -0,0 +1,8 @@ +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: VLAN +metadata: + name: leaf2-vlan-10 +spec: + deviceRef: + name: leaf2 + id: 10 diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/12-vlan/leaf3-vlan-10.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/12-vlan/leaf3-vlan-10.yaml new file mode 100644 index 00000000..f699d0ad --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/12-vlan/leaf3-vlan-10.yaml @@ -0,0 +1,8 @@ +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: VLAN +metadata: + name: leaf3-vlan-10 +spec: + deviceRef: + name: leaf3 + id: 10 diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/13-host/kustomization.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/13-host/kustomization.yaml new file mode 100644 index 00000000..815444bc --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/13-host/kustomization.yaml @@ -0,0 +1,8 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: + - leaf1-eth1-10.yaml + - leaf1-po10.yaml + - leaf2-eth1-10.yaml + - leaf2-po10.yaml + - leaf3-eth1-10.yaml diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/13-host/leaf1-eth1-10.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/13-host/leaf1-eth1-10.yaml new file mode 100644 index 00000000..c81256a3 --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/13-host/leaf1-eth1-10.yaml @@ -0,0 +1,17 @@ +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: Interface +metadata: + labels: + networking.metal.ironcore.dev/role: host + name: leaf1-eth1-10 +spec: + deviceRef: + name: leaf1 + name: eth1/10 + description: Leaf1 to Host1 + adminState: Up + type: Physical + switchport: + mode: Trunk + nativeVlan: 1 + allowedVlans: [10] diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/13-host/leaf1-po10.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/13-host/leaf1-po10.yaml new file mode 100644 index 00000000..ccc0ff5d --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/13-host/leaf1-po10.yaml @@ -0,0 +1,24 @@ +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: Interface +metadata: + labels: + networking.metal.ironcore.dev/role: host + name: leaf1-po-10 +spec: + deviceRef: + name: leaf1 + name: po10 + description: vPC Leaf1 to Host1 + adminState: Up + type: Aggregate + switchport: + mode: Trunk + nativeVlan: 1 + allowedVlans: [10] + aggregation: + controlProtocol: + mode: Active + memberInterfaceRefs: + - name: leaf1-eth1-10 + multichassis: + id: 10 diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/13-host/leaf2-eth1-10.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/13-host/leaf2-eth1-10.yaml new file mode 100644 index 00000000..774606b2 --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/13-host/leaf2-eth1-10.yaml @@ -0,0 +1,17 @@ +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: Interface +metadata: + labels: + networking.metal.ironcore.dev/role: host + name: leaf2-eth1-10 +spec: + deviceRef: + name: leaf2 + name: eth1/10 + description: Leaf2 to Host1 + adminState: Up + type: Physical + switchport: + mode: Trunk + nativeVlan: 1 + allowedVlans: [10] diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/13-host/leaf2-po10.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/13-host/leaf2-po10.yaml new file mode 100644 index 00000000..bd44c016 --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/13-host/leaf2-po10.yaml @@ -0,0 +1,24 @@ +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: Interface +metadata: + labels: + networking.metal.ironcore.dev/role: host + name: leaf2-po-10 +spec: + deviceRef: + name: leaf2 + name: po10 + description: vPC Leaf2 to Host1 + adminState: Up + type: Aggregate + switchport: + mode: Trunk + nativeVlan: 1 + allowedVlans: [10] + aggregation: + controlProtocol: + mode: Active + memberInterfaceRefs: + - name: leaf2-eth1-10 + multichassis: + id: 10 diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/13-host/leaf3-eth1-10.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/13-host/leaf3-eth1-10.yaml new file mode 100644 index 00000000..088c72c6 --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/13-host/leaf3-eth1-10.yaml @@ -0,0 +1,17 @@ +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: Interface +metadata: + labels: + networking.metal.ironcore.dev/role: host + name: leaf3-eth1-10 +spec: + deviceRef: + name: leaf3 + name: eth1/10 + description: Leaf3 to Host2 + adminState: Up + type: Physical + switchport: + mode: Trunk + nativeVlan: 1 + allowedVlans: [10] diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/14-vxlan/kustomization.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/14-vxlan/kustomization.yaml new file mode 100644 index 00000000..eefdf964 --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/14-vxlan/kustomization.yaml @@ -0,0 +1,6 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: + - leaf1-vxlan-100010.yaml + - leaf2-vxlan-100010.yaml + - leaf3-vxlan-100010.yaml diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/14-vxlan/leaf1-vxlan-100010.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/14-vxlan/leaf1-vxlan-100010.yaml new file mode 100644 index 00000000..f8b60bb4 --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/14-vxlan/leaf1-vxlan-100010.yaml @@ -0,0 +1,12 @@ +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: EVPNInstance +metadata: + name: leaf1-vxlan-100010 +spec: + deviceRef: + name: leaf1 + vni: 100010 + type: Bridged + multicastGroupAddress: 239.1.1.100 + vlanRef: + name: leaf1-vlan-10 diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/14-vxlan/leaf2-vxlan-100010.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/14-vxlan/leaf2-vxlan-100010.yaml new file mode 100644 index 00000000..6e35e0bb --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/14-vxlan/leaf2-vxlan-100010.yaml @@ -0,0 +1,12 @@ +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: EVPNInstance +metadata: + name: leaf2-vxlan-100010 +spec: + deviceRef: + name: leaf2 + vni: 100010 + type: Bridged + multicastGroupAddress: 239.1.1.100 + vlanRef: + name: leaf2-vlan-10 diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/14-vxlan/leaf3-vxlan-100010.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/14-vxlan/leaf3-vxlan-100010.yaml new file mode 100644 index 00000000..4e693fab --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/14-vxlan/leaf3-vxlan-100010.yaml @@ -0,0 +1,12 @@ +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: EVPNInstance +metadata: + name: leaf3-vxlan-100010 +spec: + deviceRef: + name: leaf3 + vni: 100010 + type: Bridged + multicastGroupAddress: 239.1.1.100 + vlanRef: + name: leaf3-vlan-10 diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/kustomization.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/kustomization.yaml new file mode 100644 index 00000000..90e6b2bc --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/kustomization.yaml @@ -0,0 +1,16 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: +- 01-devices +- 02-loopbacks +- 03-vpc-keepalive +- 04-vpc-peerlink +- 05-vpc-domain +- 06-interconnects +- 07-underlay +- 08-pim +- 09-bgp-router +- 10-bgp-peers +- 12-vlan +- 13-host +- 14-vxlan diff --git a/examples/cisco-n9k-evpn-vxlan/topology.clab.yml b/examples/cisco-n9k-evpn-vxlan/topology.clab.yml new file mode 100644 index 00000000..038cd085 --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/topology.clab.yml @@ -0,0 +1,124 @@ +name: evpn-vxlan-fabric +topology: + defaults: + kind: cisco_n9kv + kinds: + cisco_n9kv: + image: ${IMAGE:=vrnetlab/cisco_n9kv:9300-10.4.6} + linux: + image: ghcr.io/hellt/network-multitool + env: + PS1: '\h: ' + nodes: + spine1: + group: spine + startup-config: | + hostname spine1 + grpc port 9339 + interface Ethernet1/1-64 + shutdown + spine2: + group: spine + startup-config: | + hostname spine2 + grpc port 9339 + interface Ethernet1/1-64 + shutdown + leaf1: + group: leaf + startup-config: | + hostname leaf1 + grpc port 9339 + interface Ethernet1/1-64 + shutdown + stages: + create: + wait-for: + - node: spine1 + stage: healthy + - node: spine2 + stage: healthy + leaf2: + group: leaf + startup-config: | + hostname leaf2 + grpc port 9339 + interface Ethernet1/1-64 + shutdown + stages: + create: + wait-for: + - node: spine1 + stage: healthy + - node: spine2 + stage: healthy + leaf3: + group: leaf + startup-config: | + hostname leaf3 + grpc port 9339 + interface Ethernet1/1-64 + shutdown + stages: + create: + wait-for: + - node: spine1 + stage: healthy + - node: spine2 + stage: healthy + host1: + kind: linux + group: server + exec: + - ip link add name bond0 type bond + - ip link set dev bond0 address 00:00:00:00:00:01 + - echo 802.3ad >/sys/class/net/bond0/bonding/mode + - echo fast >/sys/class/net/bond0/bonding/lacp_rate + - ip link set dev eth1 down + - ip link set dev eth2 down + - ip link set dev eth1 master bond0 + - ip link set dev eth2 master bond0 + - ip link set dev eth1 up + - ip link set dev eth2 up + - ip link set dev bond0 up + - ip link add link bond0 name bond0.10 type vlan id 10 + - ip link set dev bond0.10 up + - ip addr add 192.168.10.1/24 dev bond0.10 + stages: + create: + wait-for: + - node: leaf1 + stage: healthy + - node: leaf2 + stage: healthy + host2: + kind: linux + group: server + exec: + - ip link set dev eth1 up + - ip link set eth1 address 00:00:00:00:00:02 + - ip link add link eth1 name eth1.10 type vlan id 10 + - ip link set dev eth1.10 up + - ip addr add 192.168.10.2/24 dev eth1.10 + stages: + create: + wait-for: + - node: leaf3 + stage: healthy + links: + # Spine 1 + - endpoints: ["spine1:eth1", "leaf1:eth1"] + - endpoints: ["spine1:eth2", "leaf2:eth1"] + - endpoints: ["spine1:eth3", "leaf3:eth1"] + # Spine 2 + - endpoints: ["spine2:eth1", "leaf1:eth2"] + - endpoints: ["spine2:eth2", "leaf2:eth2"] + - endpoints: ["spine2:eth3", "leaf3:eth2"] + # vPC + - endpoints: ["leaf1:eth30", "leaf2:eth30"] + - endpoints: ["leaf1:eth31", "leaf2:eth31"] + - endpoints: ["leaf1:eth32", "leaf2:eth32"] + # Host + - endpoints: ["leaf1:eth10", "host1:eth1"] + - endpoints: ["leaf2:eth10", "host1:eth2"] + - endpoints: ["leaf3:eth10", "host2:eth1"]