@antv/layout 2.0.0-alpha.1 → 2.0.0-alpha.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +26 -301
- package/dist/index.js +815 -814
- package/dist/index.js.map +1 -1
- package/dist/index.min.js +2 -3
- package/dist/index.min.js.map +1 -1
- package/dist/worker.js +1 -1
- package/dist/worker.js.map +1 -1
- package/lib/_virtual/index.js +1 -1
- package/lib/_virtual/index2.js +1 -1
- package/lib/_virtual/index3.js +1 -1
- package/lib/_virtual/matrix.js +1 -1
- package/lib/algorithm/antv-dagre/acyclic.js.map +1 -0
- package/lib/algorithm/antv-dagre/add-border-segments.js.map +1 -0
- package/lib/algorithm/antv-dagre/coordinate-system.js.map +1 -0
- package/lib/algorithm/antv-dagre/data/list.js.map +1 -0
- package/lib/algorithm/antv-dagre/graph.js.map +1 -0
- package/lib/algorithm/antv-dagre/greedy-fas.js.map +1 -0
- package/lib/algorithm/antv-dagre/index.d.ts +15 -0
- package/lib/algorithm/antv-dagre/index.js +339 -0
- package/lib/algorithm/antv-dagre/index.js.map +1 -0
- package/lib/algorithm/antv-dagre/layout.js +471 -0
- package/lib/algorithm/antv-dagre/layout.js.map +1 -0
- package/lib/algorithm/antv-dagre/nesting-graph.js.map +1 -0
- package/lib/algorithm/antv-dagre/normalize.js.map +1 -0
- package/lib/algorithm/antv-dagre/order/add-subgraph-constraints.js.map +1 -0
- package/lib/algorithm/antv-dagre/order/barycenter.js.map +1 -0
- package/lib/algorithm/antv-dagre/order/build-layer-graph.js.map +1 -0
- package/lib/algorithm/antv-dagre/order/cross-count.js.map +1 -0
- package/lib/algorithm/antv-dagre/order/index.js +94 -0
- package/lib/algorithm/antv-dagre/order/index.js.map +1 -0
- package/lib/algorithm/antv-dagre/order/init-data-order.js.map +1 -0
- package/lib/algorithm/antv-dagre/order/init-order.js.map +1 -0
- package/lib/algorithm/antv-dagre/order/resolve-conflicts.js.map +1 -0
- package/lib/algorithm/antv-dagre/order/sort-subgraph.js.map +1 -0
- package/lib/algorithm/antv-dagre/order/sort.js.map +1 -0
- package/lib/algorithm/antv-dagre/parent-dummy-chains.js.map +1 -0
- package/lib/algorithm/antv-dagre/position/bk.js.map +1 -0
- package/lib/algorithm/antv-dagre/position/index.js.map +1 -0
- package/lib/algorithm/antv-dagre/rank/feasible-tree.js.map +1 -0
- package/lib/algorithm/antv-dagre/rank/index.js.map +1 -0
- package/lib/algorithm/antv-dagre/rank/network-simplex.js.map +1 -0
- package/lib/algorithm/antv-dagre/rank/util.js.map +1 -0
- package/lib/algorithm/antv-dagre/types.d.ts +192 -0
- package/lib/algorithm/antv-dagre/util.js +265 -0
- package/lib/algorithm/antv-dagre/util.js.map +1 -0
- package/lib/algorithm/base-layout.d.ts +49 -0
- package/lib/algorithm/base-layout.js +89 -0
- package/lib/algorithm/base-layout.js.map +1 -0
- package/lib/algorithm/base-simulation.d.ts +20 -0
- package/lib/algorithm/base-simulation.js +75 -0
- package/lib/algorithm/base-simulation.js.map +1 -0
- package/lib/algorithm/circular/index.d.ts +15 -0
- package/lib/algorithm/circular/index.js +108 -0
- package/lib/algorithm/circular/index.js.map +1 -0
- package/lib/algorithm/circular/types.d.ts +105 -0
- package/lib/algorithm/combo-combined/index.d.ts +33 -0
- package/lib/algorithm/combo-combined/index.js +303 -0
- package/lib/algorithm/combo-combined/index.js.map +1 -0
- package/lib/algorithm/combo-combined/types.d.ts +37 -0
- package/lib/algorithm/concentric/index.d.ts +15 -0
- package/lib/algorithm/concentric/index.js +192 -0
- package/lib/algorithm/concentric/index.js.map +1 -0
- package/lib/algorithm/concentric/types.d.ts +92 -0
- package/lib/algorithm/d3-force/force-in-a-box.js +343 -0
- package/lib/algorithm/d3-force/force-in-a-box.js.map +1 -0
- package/lib/algorithm/d3-force/index.d.ts +53 -0
- package/lib/algorithm/d3-force/index.js +514 -0
- package/lib/algorithm/d3-force/index.js.map +1 -0
- package/lib/algorithm/d3-force/types.d.ts +336 -0
- package/lib/algorithm/d3-force-3d/index.js +73 -0
- package/lib/algorithm/d3-force-3d/index.js.map +1 -0
- package/lib/algorithm/dagre/index.d.ts +22 -0
- package/lib/algorithm/dagre/index.js +142 -0
- package/lib/algorithm/dagre/index.js.map +1 -0
- package/lib/algorithm/dagre/types.d.ts +79 -0
- package/lib/algorithm/force/attractive.js.map +1 -0
- package/lib/algorithm/force/centripetal.js +87 -0
- package/lib/algorithm/force/centripetal.js.map +1 -0
- package/lib/algorithm/force/collide.js +172 -0
- package/lib/algorithm/force/collide.js.map +1 -0
- package/lib/algorithm/force/gravity.js.map +1 -0
- package/lib/algorithm/force/index.d.ts +87 -0
- package/lib/algorithm/force/index.js +450 -0
- package/lib/algorithm/force/index.js.map +1 -0
- package/lib/algorithm/force/repulsive.js +142 -0
- package/lib/algorithm/force/repulsive.js.map +1 -0
- package/lib/algorithm/force/simulation.d.ts +23 -0
- package/lib/algorithm/force/simulation.js +137 -0
- package/lib/algorithm/force/simulation.js.map +1 -0
- package/lib/algorithm/force/types.d.ts +252 -0
- package/lib/algorithm/force-atlas2/body.js.map +1 -0
- package/lib/algorithm/force-atlas2/index.d.ts +22 -0
- package/lib/algorithm/force-atlas2/index.js +155 -0
- package/lib/algorithm/force-atlas2/index.js.map +1 -0
- package/lib/algorithm/force-atlas2/quad-tree.js.map +1 -0
- package/lib/algorithm/force-atlas2/quad.js.map +1 -0
- package/lib/algorithm/force-atlas2/simulation.d.ts +39 -0
- package/lib/algorithm/force-atlas2/simulation.js +388 -0
- package/lib/algorithm/force-atlas2/simulation.js.map +1 -0
- package/lib/algorithm/force-atlas2/types.d.ts +109 -0
- package/lib/algorithm/fruchterman/index.d.ts +20 -0
- package/lib/algorithm/fruchterman/index.js +93 -0
- package/lib/algorithm/fruchterman/index.js.map +1 -0
- package/lib/algorithm/fruchterman/simulation.js +356 -0
- package/lib/algorithm/fruchterman/simulation.js.map +1 -0
- package/lib/algorithm/fruchterman/types.d.ts +48 -0
- package/lib/algorithm/grid/index.d.ts +16 -0
- package/lib/algorithm/grid/index.js +243 -0
- package/lib/algorithm/grid/index.js.map +1 -0
- package/lib/algorithm/grid/types.d.ts +85 -0
- package/lib/algorithm/mds/index.d.ts +15 -0
- package/lib/algorithm/mds/index.js +127 -0
- package/lib/algorithm/mds/index.js.map +1 -0
- package/lib/algorithm/mds/types.d.ts +25 -0
- package/lib/algorithm/radial/index.d.ts +16 -0
- package/lib/algorithm/radial/index.js +275 -0
- package/lib/algorithm/radial/index.js.map +1 -0
- package/lib/algorithm/radial/radial-nonoverlap-force.js +129 -0
- package/lib/algorithm/radial/radial-nonoverlap-force.js.map +1 -0
- package/lib/algorithm/radial/types.d.ts +103 -0
- package/lib/algorithm/random/index.d.ts +15 -0
- package/lib/algorithm/random/index.js +41 -0
- package/lib/algorithm/random/index.js.map +1 -0
- package/lib/algorithm/random/types.d.ts +11 -0
- package/lib/algorithm/types.d.ts +142 -0
- package/lib/index.d.ts +36 -33
- package/lib/index.js +19 -17
- package/lib/index.js.map +1 -1
- package/lib/model/data.d.ts +46 -0
- package/lib/model/data.js +281 -0
- package/lib/model/data.js.map +1 -0
- package/lib/node_modules/@antv/event-emitter/esm/index.js.map +1 -0
- package/lib/node_modules/@antv/util/esm/lodash/clone.js.map +1 -0
- package/lib/node_modules/@antv/util/esm/lodash/deep-mix.js.map +1 -0
- package/lib/node_modules/@antv/util/esm/lodash/each.js.map +1 -0
- package/lib/node_modules/@antv/util/esm/lodash/get-type.js.map +1 -0
- package/lib/node_modules/@antv/util/esm/lodash/get.js.map +1 -0
- package/lib/node_modules/@antv/util/esm/lodash/is-array-like.js.map +1 -0
- package/lib/node_modules/@antv/util/esm/lodash/is-array.js.map +1 -0
- package/lib/node_modules/@antv/util/esm/lodash/is-boolean.js.map +1 -0
- package/lib/node_modules/@antv/util/esm/lodash/is-empty.js.map +1 -0
- package/lib/node_modules/@antv/util/esm/lodash/is-function.js.map +1 -0
- package/lib/node_modules/@antv/util/esm/lodash/is-nil.js.map +1 -0
- package/lib/node_modules/@antv/util/esm/lodash/is-number.js.map +1 -0
- package/lib/node_modules/@antv/util/esm/lodash/is-object-like.js.map +1 -0
- package/lib/node_modules/@antv/util/esm/lodash/is-object.js.map +1 -0
- package/lib/node_modules/@antv/util/esm/lodash/is-plain-object.js.map +1 -0
- package/lib/node_modules/@antv/util/esm/lodash/is-prototype.js.map +1 -0
- package/lib/node_modules/@antv/util/esm/lodash/is-string.js.map +1 -0
- package/lib/node_modules/@antv/util/esm/lodash/is-type.js.map +1 -0
- package/lib/node_modules/@antv/util/esm/lodash/pick.js.map +1 -0
- package/lib/node_modules/@antv/util/esm/lodash/set.js.map +1 -0
- package/lib/node_modules/comlink/dist/esm/comlink.js.map +1 -0
- package/lib/node_modules/d3-binarytree/src/add.js.map +1 -0
- package/lib/node_modules/d3-binarytree/src/binarytree.js.map +1 -0
- package/lib/node_modules/d3-binarytree/src/cover.js.map +1 -0
- package/lib/node_modules/d3-binarytree/src/data.js.map +1 -0
- package/lib/node_modules/d3-binarytree/src/extent.js.map +1 -0
- package/lib/node_modules/d3-binarytree/src/find.js.map +1 -0
- package/lib/node_modules/d3-binarytree/src/half.js.map +1 -0
- package/lib/node_modules/d3-binarytree/src/remove.js.map +1 -0
- package/lib/node_modules/d3-binarytree/src/root.js.map +1 -0
- package/lib/node_modules/d3-binarytree/src/size.js.map +1 -0
- package/lib/node_modules/d3-binarytree/src/visit.js.map +1 -0
- package/lib/node_modules/d3-binarytree/src/visitAfter.js.map +1 -0
- package/lib/node_modules/d3-binarytree/src/x.js.map +1 -0
- package/lib/node_modules/d3-dispatch/src/dispatch.js.map +1 -0
- package/lib/node_modules/d3-force/src/center.js.map +1 -0
- package/lib/node_modules/d3-force/src/collide.js +103 -0
- package/lib/node_modules/d3-force/src/collide.js.map +1 -0
- package/lib/node_modules/d3-force/src/constant.js.map +1 -0
- package/lib/node_modules/d3-force/src/jiggle.js.map +1 -0
- package/lib/node_modules/d3-force/src/lcg.js.map +1 -0
- package/lib/node_modules/d3-force/src/link.js.map +1 -0
- package/lib/node_modules/d3-force/src/manyBody.js +119 -0
- package/lib/node_modules/d3-force/src/manyBody.js.map +1 -0
- package/lib/node_modules/d3-force/src/radial.js.map +1 -0
- package/lib/node_modules/d3-force/src/simulation.js +159 -0
- package/lib/node_modules/d3-force/src/simulation.js.map +1 -0
- package/lib/node_modules/d3-force/src/x.js.map +1 -0
- package/lib/node_modules/d3-force/src/y.js.map +1 -0
- package/lib/node_modules/d3-force-3d/src/center.js.map +1 -0
- package/lib/node_modules/d3-force-3d/src/collide.js +135 -0
- package/lib/node_modules/d3-force-3d/src/collide.js.map +1 -0
- package/lib/node_modules/d3-force-3d/src/constant.js.map +1 -0
- package/lib/node_modules/d3-force-3d/src/jiggle.js.map +1 -0
- package/lib/node_modules/d3-force-3d/src/lcg.js.map +1 -0
- package/lib/node_modules/d3-force-3d/src/link.js.map +1 -0
- package/lib/node_modules/d3-force-3d/src/manyBody.js +142 -0
- package/lib/node_modules/d3-force-3d/src/manyBody.js.map +1 -0
- package/lib/node_modules/d3-force-3d/src/radial.js.map +1 -0
- package/lib/node_modules/d3-force-3d/src/simulation.js +202 -0
- package/lib/node_modules/d3-force-3d/src/simulation.js.map +1 -0
- package/lib/node_modules/d3-force-3d/src/x.js.map +1 -0
- package/lib/node_modules/d3-force-3d/src/y.js.map +1 -0
- package/lib/node_modules/d3-force-3d/src/z.js.map +1 -0
- package/lib/node_modules/d3-octree/src/add.js.map +1 -0
- package/lib/node_modules/d3-octree/src/cover.js.map +1 -0
- package/lib/node_modules/d3-octree/src/data.js.map +1 -0
- package/lib/node_modules/d3-octree/src/extent.js.map +1 -0
- package/lib/node_modules/d3-octree/src/find.js.map +1 -0
- package/lib/node_modules/d3-octree/src/findAll.js.map +1 -0
- package/lib/node_modules/d3-octree/src/octant.js.map +1 -0
- package/lib/node_modules/d3-octree/src/octree.js.map +1 -0
- package/lib/node_modules/d3-octree/src/remove.js.map +1 -0
- package/lib/node_modules/d3-octree/src/root.js.map +1 -0
- package/lib/node_modules/d3-octree/src/size.js.map +1 -0
- package/lib/node_modules/d3-octree/src/visit.js.map +1 -0
- package/lib/node_modules/d3-octree/src/visitAfter.js.map +1 -0
- package/lib/node_modules/d3-octree/src/x.js.map +1 -0
- package/lib/node_modules/d3-octree/src/y.js.map +1 -0
- package/lib/node_modules/d3-octree/src/z.js.map +1 -0
- package/lib/node_modules/d3-quadtree/src/add.js.map +1 -0
- package/lib/node_modules/d3-quadtree/src/cover.js.map +1 -0
- package/lib/node_modules/d3-quadtree/src/data.js.map +1 -0
- package/lib/node_modules/d3-quadtree/src/extent.js.map +1 -0
- package/lib/node_modules/d3-quadtree/src/find.js.map +1 -0
- package/lib/node_modules/d3-quadtree/src/quad.js.map +1 -0
- package/lib/node_modules/d3-quadtree/src/quadtree.js.map +1 -0
- package/lib/node_modules/d3-quadtree/src/remove.js.map +1 -0
- package/lib/node_modules/d3-quadtree/src/root.js.map +1 -0
- package/lib/node_modules/d3-quadtree/src/size.js.map +1 -0
- package/lib/node_modules/d3-quadtree/src/visit.js.map +1 -0
- package/lib/node_modules/d3-quadtree/src/visitAfter.js.map +1 -0
- package/lib/node_modules/d3-quadtree/src/x.js.map +1 -0
- package/lib/node_modules/d3-quadtree/src/y.js.map +1 -0
- package/lib/node_modules/d3-timer/src/timer.js.map +1 -0
- package/lib/node_modules/dagre/index.js.map +1 -0
- package/lib/node_modules/dagre/lib/acyclic.js.map +1 -0
- package/lib/node_modules/dagre/lib/add-border-segments.js.map +1 -0
- package/lib/node_modules/dagre/lib/coordinate-system.js.map +1 -0
- package/lib/node_modules/dagre/lib/data/list.js.map +1 -0
- package/lib/node_modules/dagre/lib/debug.js.map +1 -0
- package/lib/node_modules/dagre/lib/graphlib.js +31 -0
- package/lib/node_modules/dagre/lib/graphlib.js.map +1 -0
- package/lib/node_modules/dagre/lib/greedy-fas.js.map +1 -0
- package/lib/node_modules/dagre/lib/layout.js.map +1 -0
- package/lib/node_modules/dagre/lib/lodash.js +83 -0
- package/lib/node_modules/dagre/lib/lodash.js.map +1 -0
- package/lib/node_modules/dagre/lib/nesting-graph.js.map +1 -0
- package/lib/node_modules/dagre/lib/normalize.js.map +1 -0
- package/lib/node_modules/dagre/lib/order/add-subgraph-constraints.js.map +1 -0
- package/lib/node_modules/dagre/lib/order/barycenter.js.map +1 -0
- package/lib/node_modules/dagre/lib/order/build-layer-graph.js.map +1 -0
- package/lib/node_modules/dagre/lib/order/cross-count.js.map +1 -0
- package/lib/node_modules/dagre/lib/order/index.js.map +1 -0
- package/lib/node_modules/dagre/lib/order/init-order.js.map +1 -0
- package/lib/node_modules/dagre/lib/order/resolve-conflicts.js.map +1 -0
- package/lib/node_modules/dagre/lib/order/sort-subgraph.js.map +1 -0
- package/lib/node_modules/dagre/lib/order/sort.js.map +1 -0
- package/lib/node_modules/dagre/lib/parent-dummy-chains.js.map +1 -0
- package/lib/node_modules/dagre/lib/position/bk.js.map +1 -0
- package/lib/node_modules/dagre/lib/position/index.js.map +1 -0
- package/lib/node_modules/dagre/lib/rank/feasible-tree.js.map +1 -0
- package/lib/node_modules/dagre/lib/rank/index.js.map +1 -0
- package/lib/node_modules/dagre/lib/rank/network-simplex.js.map +1 -0
- package/lib/node_modules/dagre/lib/rank/util.js.map +1 -0
- package/lib/node_modules/dagre/lib/util.js.map +1 -0
- package/lib/node_modules/dagre/lib/version.js.map +1 -0
- package/lib/node_modules/graphlib/index.js.map +1 -0
- package/lib/node_modules/graphlib/lib/alg/components.js.map +1 -0
- package/lib/node_modules/graphlib/lib/alg/dfs.js.map +1 -0
- package/lib/node_modules/graphlib/lib/alg/dijkstra-all.js.map +1 -0
- package/lib/node_modules/graphlib/lib/alg/dijkstra.js.map +1 -0
- package/lib/node_modules/graphlib/lib/alg/find-cycles.js.map +1 -0
- package/lib/node_modules/graphlib/lib/alg/floyd-warshall.js.map +1 -0
- package/lib/node_modules/graphlib/lib/alg/index.js.map +1 -0
- package/lib/node_modules/graphlib/lib/alg/is-acyclic.js.map +1 -0
- package/lib/node_modules/graphlib/lib/alg/postorder.js.map +1 -0
- package/lib/node_modules/graphlib/lib/alg/preorder.js.map +1 -0
- package/lib/node_modules/graphlib/lib/alg/prim.js.map +1 -0
- package/lib/node_modules/graphlib/lib/alg/tarjan.js.map +1 -0
- package/lib/node_modules/graphlib/lib/alg/topsort.js.map +1 -0
- package/lib/node_modules/graphlib/lib/data/priority-queue.js.map +1 -0
- package/lib/node_modules/graphlib/lib/graph.js.map +1 -0
- package/lib/node_modules/graphlib/lib/index.js.map +1 -0
- package/lib/node_modules/graphlib/lib/json.js.map +1 -0
- package/lib/node_modules/graphlib/lib/lodash.js +63 -0
- package/lib/node_modules/graphlib/lib/lodash.js.map +1 -0
- package/lib/node_modules/graphlib/lib/version.js.map +1 -0
- package/lib/node_modules/is-any-array/lib-esm/index.js.map +1 -0
- package/lib/node_modules/lodash/_DataView.js.map +1 -0
- package/lib/node_modules/lodash/_Hash.js.map +1 -0
- package/lib/node_modules/lodash/_ListCache.js.map +1 -0
- package/lib/node_modules/lodash/_Map.js.map +1 -0
- package/lib/node_modules/lodash/_MapCache.js.map +1 -0
- package/lib/node_modules/lodash/_Promise.js.map +1 -0
- package/lib/node_modules/lodash/_Set.js.map +1 -0
- package/lib/node_modules/lodash/_SetCache.js.map +1 -0
- package/lib/node_modules/lodash/_Stack.js.map +1 -0
- package/lib/node_modules/lodash/_Symbol.js.map +1 -0
- package/lib/node_modules/lodash/_Uint8Array.js.map +1 -0
- package/lib/node_modules/lodash/_WeakMap.js.map +1 -0
- package/lib/node_modules/lodash/_apply.js.map +1 -0
- package/lib/node_modules/lodash/_arrayEach.js.map +1 -0
- package/lib/node_modules/lodash/_arrayFilter.js.map +1 -0
- package/lib/node_modules/lodash/_arrayIncludes.js.map +1 -0
- package/lib/node_modules/lodash/_arrayIncludesWith.js.map +1 -0
- package/lib/node_modules/lodash/_arrayLikeKeys.js.map +1 -0
- package/lib/node_modules/lodash/_arrayMap.js.map +1 -0
- package/lib/node_modules/lodash/_arrayPush.js.map +1 -0
- package/lib/node_modules/lodash/_arrayReduce.js.map +1 -0
- package/lib/node_modules/lodash/_arraySome.js.map +1 -0
- package/lib/node_modules/lodash/_asciiSize.js.map +1 -0
- package/lib/node_modules/lodash/_assignMergeValue.js.map +1 -0
- package/lib/node_modules/lodash/_assignValue.js.map +1 -0
- package/lib/node_modules/lodash/_assocIndexOf.js.map +1 -0
- package/lib/node_modules/lodash/_baseAssign.js.map +1 -0
- package/lib/node_modules/lodash/_baseAssignIn.js.map +1 -0
- package/lib/node_modules/lodash/_baseAssignValue.js.map +1 -0
- package/lib/node_modules/lodash/_baseClone.js.map +1 -0
- package/lib/node_modules/lodash/_baseCreate.js.map +1 -0
- package/lib/node_modules/lodash/_baseEach.js.map +1 -0
- package/lib/node_modules/lodash/_baseExtremum.js.map +1 -0
- package/lib/node_modules/lodash/_baseFilter.js.map +1 -0
- package/lib/node_modules/lodash/_baseFindIndex.js.map +1 -0
- package/lib/node_modules/lodash/_baseFlatten.js.map +1 -0
- package/lib/node_modules/lodash/_baseFor.js.map +1 -0
- package/lib/node_modules/lodash/_baseForOwn.js.map +1 -0
- package/lib/node_modules/lodash/_baseGet.js.map +1 -0
- package/lib/node_modules/lodash/_baseGetAllKeys.js.map +1 -0
- package/lib/node_modules/lodash/_baseGetTag.js.map +1 -0
- package/lib/node_modules/lodash/_baseGt.js.map +1 -0
- package/lib/node_modules/lodash/_baseHas.js.map +1 -0
- package/lib/node_modules/lodash/_baseHasIn.js.map +1 -0
- package/lib/node_modules/lodash/_baseIndexOf.js.map +1 -0
- package/lib/node_modules/lodash/_baseIsArguments.js.map +1 -0
- package/lib/node_modules/lodash/_baseIsEqual.js.map +1 -0
- package/lib/node_modules/lodash/_baseIsEqualDeep.js.map +1 -0
- package/lib/node_modules/lodash/_baseIsMap.js.map +1 -0
- package/lib/node_modules/lodash/_baseIsMatch.js.map +1 -0
- package/lib/node_modules/lodash/_baseIsNaN.js.map +1 -0
- package/lib/node_modules/lodash/_baseIsNative.js.map +1 -0
- package/lib/node_modules/lodash/_baseIsSet.js.map +1 -0
- package/lib/node_modules/lodash/_baseIsTypedArray.js.map +1 -0
- package/lib/node_modules/lodash/_baseIteratee.js.map +1 -0
- package/lib/node_modules/lodash/_baseKeys.js.map +1 -0
- package/lib/node_modules/lodash/_baseKeysIn.js.map +1 -0
- package/lib/node_modules/lodash/_baseLt.js.map +1 -0
- package/lib/node_modules/lodash/_baseMap.js.map +1 -0
- package/lib/node_modules/lodash/_baseMatches.js.map +1 -0
- package/lib/node_modules/lodash/_baseMatchesProperty.js.map +1 -0
- package/lib/node_modules/lodash/_baseMerge.js.map +1 -0
- package/lib/node_modules/lodash/_baseMergeDeep.js.map +1 -0
- package/lib/node_modules/lodash/_baseOrderBy.js.map +1 -0
- package/lib/node_modules/lodash/_basePick.js.map +1 -0
- package/lib/node_modules/lodash/_basePickBy.js.map +1 -0
- package/lib/node_modules/lodash/_baseProperty.js.map +1 -0
- package/lib/node_modules/lodash/_basePropertyDeep.js.map +1 -0
- package/lib/node_modules/lodash/_baseRange.js.map +1 -0
- package/lib/node_modules/lodash/_baseReduce.js.map +1 -0
- package/lib/node_modules/lodash/_baseRest.js.map +1 -0
- package/lib/node_modules/lodash/_baseSet.js.map +1 -0
- package/lib/node_modules/lodash/_baseSetToString.js.map +1 -0
- package/lib/node_modules/lodash/_baseSortBy.js.map +1 -0
- package/lib/node_modules/lodash/_baseTimes.js.map +1 -0
- package/lib/node_modules/lodash/_baseToString.js.map +1 -0
- package/lib/node_modules/lodash/_baseTrim.js.map +1 -0
- package/lib/node_modules/lodash/_baseUnary.js.map +1 -0
- package/lib/node_modules/lodash/_baseUniq.js.map +1 -0
- package/lib/node_modules/lodash/_baseValues.js.map +1 -0
- package/lib/node_modules/lodash/_baseZipObject.js.map +1 -0
- package/lib/node_modules/lodash/_cacheHas.js.map +1 -0
- package/lib/node_modules/lodash/_castFunction.js.map +1 -0
- package/lib/node_modules/lodash/_castPath.js.map +1 -0
- package/lib/node_modules/lodash/_cloneArrayBuffer.js.map +1 -0
- package/lib/node_modules/lodash/_cloneBuffer.js +52 -0
- package/lib/node_modules/lodash/_cloneBuffer.js.map +1 -0
- package/lib/node_modules/lodash/_cloneDataView.js.map +1 -0
- package/lib/node_modules/lodash/_cloneRegExp.js.map +1 -0
- package/lib/node_modules/lodash/_cloneSymbol.js.map +1 -0
- package/lib/node_modules/lodash/_cloneTypedArray.js.map +1 -0
- package/lib/node_modules/lodash/_compareAscending.js.map +1 -0
- package/lib/node_modules/lodash/_compareMultiple.js.map +1 -0
- package/lib/node_modules/lodash/_copyArray.js.map +1 -0
- package/lib/node_modules/lodash/_copyObject.js.map +1 -0
- package/lib/node_modules/lodash/_copySymbols.js.map +1 -0
- package/lib/node_modules/lodash/_copySymbolsIn.js.map +1 -0
- package/lib/node_modules/lodash/_coreJsData.js.map +1 -0
- package/lib/node_modules/lodash/_createAssigner.js.map +1 -0
- package/lib/node_modules/lodash/_createBaseEach.js.map +1 -0
- package/lib/node_modules/lodash/_createBaseFor.js.map +1 -0
- package/lib/node_modules/lodash/_createFind.js.map +1 -0
- package/lib/node_modules/lodash/_createRange.js.map +1 -0
- package/lib/node_modules/lodash/_createSet.js.map +1 -0
- package/lib/node_modules/lodash/_defineProperty.js.map +1 -0
- package/lib/node_modules/lodash/_equalArrays.js.map +1 -0
- package/lib/node_modules/lodash/_equalByTag.js.map +1 -0
- package/lib/node_modules/lodash/_equalObjects.js.map +1 -0
- package/lib/node_modules/lodash/_flatRest.js.map +1 -0
- package/lib/node_modules/lodash/_freeGlobal.js +18 -0
- package/lib/node_modules/lodash/_freeGlobal.js.map +1 -0
- package/lib/node_modules/lodash/_getAllKeys.js.map +1 -0
- package/lib/node_modules/lodash/_getAllKeysIn.js.map +1 -0
- package/lib/node_modules/lodash/_getMapData.js.map +1 -0
- package/lib/node_modules/lodash/_getMatchData.js.map +1 -0
- package/lib/node_modules/lodash/_getNative.js.map +1 -0
- package/lib/node_modules/lodash/_getPrototype.js.map +1 -0
- package/lib/node_modules/lodash/_getRawTag.js.map +1 -0
- package/lib/node_modules/lodash/_getSymbols.js.map +1 -0
- package/lib/node_modules/lodash/_getSymbolsIn.js.map +1 -0
- package/lib/node_modules/lodash/_getTag.js.map +1 -0
- package/lib/node_modules/lodash/_getValue.js.map +1 -0
- package/lib/node_modules/lodash/_hasPath.js.map +1 -0
- package/lib/node_modules/lodash/_hasUnicode.js.map +1 -0
- package/lib/node_modules/lodash/_hashClear.js.map +1 -0
- package/lib/node_modules/lodash/_hashDelete.js.map +1 -0
- package/lib/node_modules/lodash/_hashGet.js.map +1 -0
- package/lib/node_modules/lodash/_hashHas.js.map +1 -0
- package/lib/node_modules/lodash/_hashSet.js.map +1 -0
- package/lib/node_modules/lodash/_initCloneArray.js.map +1 -0
- package/lib/node_modules/lodash/_initCloneByTag.js.map +1 -0
- package/lib/node_modules/lodash/_initCloneObject.js.map +1 -0
- package/lib/node_modules/lodash/_isFlattenable.js.map +1 -0
- package/lib/node_modules/lodash/_isIndex.js.map +1 -0
- package/lib/node_modules/lodash/_isIterateeCall.js.map +1 -0
- package/lib/node_modules/lodash/_isKey.js.map +1 -0
- package/lib/node_modules/lodash/_isKeyable.js.map +1 -0
- package/lib/node_modules/lodash/_isMasked.js.map +1 -0
- package/lib/node_modules/lodash/_isPrototype.js.map +1 -0
- package/lib/node_modules/lodash/_isStrictComparable.js.map +1 -0
- package/lib/node_modules/lodash/_listCacheClear.js.map +1 -0
- package/lib/node_modules/lodash/_listCacheDelete.js.map +1 -0
- package/lib/node_modules/lodash/_listCacheGet.js.map +1 -0
- package/lib/node_modules/lodash/_listCacheHas.js.map +1 -0
- package/lib/node_modules/lodash/_listCacheSet.js.map +1 -0
- package/lib/node_modules/lodash/_mapCacheClear.js.map +1 -0
- package/lib/node_modules/lodash/_mapCacheDelete.js.map +1 -0
- package/lib/node_modules/lodash/_mapCacheGet.js.map +1 -0
- package/lib/node_modules/lodash/_mapCacheHas.js.map +1 -0
- package/lib/node_modules/lodash/_mapCacheSet.js.map +1 -0
- package/lib/node_modules/lodash/_mapToArray.js.map +1 -0
- package/lib/node_modules/lodash/_matchesStrictComparable.js.map +1 -0
- package/lib/node_modules/lodash/_memoizeCapped.js.map +1 -0
- package/lib/node_modules/lodash/_nativeCreate.js.map +1 -0
- package/lib/node_modules/lodash/_nativeKeys.js.map +1 -0
- package/lib/node_modules/lodash/_nativeKeysIn.js.map +1 -0
- package/lib/node_modules/lodash/_nodeUtil.js +47 -0
- package/lib/node_modules/lodash/_nodeUtil.js.map +1 -0
- package/lib/node_modules/lodash/_objectToString.js.map +1 -0
- package/lib/node_modules/lodash/_overArg.js.map +1 -0
- package/lib/node_modules/lodash/_overRest.js.map +1 -0
- package/lib/node_modules/lodash/_root.js.map +1 -0
- package/lib/node_modules/lodash/_safeGet.js.map +1 -0
- package/lib/node_modules/lodash/_setCacheAdd.js.map +1 -0
- package/lib/node_modules/lodash/_setCacheHas.js.map +1 -0
- package/lib/node_modules/lodash/_setToArray.js.map +1 -0
- package/lib/node_modules/lodash/_setToString.js.map +1 -0
- package/lib/node_modules/lodash/_shortOut.js.map +1 -0
- package/lib/node_modules/lodash/_stackClear.js.map +1 -0
- package/lib/node_modules/lodash/_stackDelete.js.map +1 -0
- package/lib/node_modules/lodash/_stackGet.js.map +1 -0
- package/lib/node_modules/lodash/_stackHas.js.map +1 -0
- package/lib/node_modules/lodash/_stackSet.js.map +1 -0
- package/lib/node_modules/lodash/_strictIndexOf.js.map +1 -0
- package/lib/node_modules/lodash/_stringSize.js.map +1 -0
- package/lib/node_modules/lodash/_stringToPath.js.map +1 -0
- package/lib/node_modules/lodash/_toKey.js.map +1 -0
- package/lib/node_modules/lodash/_toSource.js.map +1 -0
- package/lib/node_modules/lodash/_trimmedEndIndex.js.map +1 -0
- package/lib/node_modules/lodash/_unicodeSize.js.map +1 -0
- package/lib/node_modules/lodash/clone.js.map +1 -0
- package/lib/node_modules/lodash/cloneDeep.js.map +1 -0
- package/lib/node_modules/lodash/constant.js.map +1 -0
- package/lib/node_modules/lodash/defaults.js.map +1 -0
- package/lib/node_modules/lodash/each.js.map +1 -0
- package/lib/node_modules/lodash/eq.js.map +1 -0
- package/lib/node_modules/lodash/filter.js.map +1 -0
- package/lib/node_modules/lodash/find.js.map +1 -0
- package/lib/node_modules/lodash/findIndex.js.map +1 -0
- package/lib/node_modules/lodash/flatten.js.map +1 -0
- package/lib/node_modules/lodash/forEach.js.map +1 -0
- package/lib/node_modules/lodash/forIn.js.map +1 -0
- package/lib/node_modules/lodash/get.js.map +1 -0
- package/lib/node_modules/lodash/has.js.map +1 -0
- package/lib/node_modules/lodash/hasIn.js.map +1 -0
- package/lib/node_modules/lodash/identity.js.map +1 -0
- package/lib/node_modules/lodash/isArguments.js.map +1 -0
- package/lib/node_modules/lodash/isArray.js.map +1 -0
- package/lib/node_modules/lodash/isArrayLike.js.map +1 -0
- package/lib/node_modules/lodash/isArrayLikeObject.js.map +1 -0
- package/lib/node_modules/lodash/isBuffer.js +56 -0
- package/lib/node_modules/lodash/isBuffer.js.map +1 -0
- package/lib/node_modules/lodash/isEmpty.js.map +1 -0
- package/lib/node_modules/lodash/isFunction.js.map +1 -0
- package/lib/node_modules/lodash/isLength.js.map +1 -0
- package/lib/node_modules/lodash/isMap.js.map +1 -0
- package/lib/node_modules/lodash/isObject.js.map +1 -0
- package/lib/node_modules/lodash/isObjectLike.js.map +1 -0
- package/lib/node_modules/lodash/isPlainObject.js.map +1 -0
- package/lib/node_modules/lodash/isSet.js.map +1 -0
- package/lib/node_modules/lodash/isString.js.map +1 -0
- package/lib/node_modules/lodash/isSymbol.js.map +1 -0
- package/lib/node_modules/lodash/isTypedArray.js.map +1 -0
- package/lib/node_modules/lodash/isUndefined.js.map +1 -0
- package/lib/node_modules/lodash/keys.js.map +1 -0
- package/lib/node_modules/lodash/keysIn.js.map +1 -0
- package/lib/node_modules/lodash/last.js.map +1 -0
- package/lib/node_modules/lodash/map.js.map +1 -0
- package/lib/node_modules/lodash/mapValues.js.map +1 -0
- package/lib/node_modules/lodash/max.js.map +1 -0
- package/lib/node_modules/lodash/memoize.js.map +1 -0
- package/lib/node_modules/lodash/merge.js.map +1 -0
- package/lib/node_modules/lodash/min.js.map +1 -0
- package/lib/node_modules/lodash/minBy.js.map +1 -0
- package/lib/node_modules/lodash/noop.js.map +1 -0
- package/lib/node_modules/lodash/now.js.map +1 -0
- package/lib/node_modules/lodash/pick.js.map +1 -0
- package/lib/node_modules/lodash/property.js.map +1 -0
- package/lib/node_modules/lodash/range.js.map +1 -0
- package/lib/node_modules/lodash/reduce.js.map +1 -0
- package/lib/node_modules/lodash/size.js.map +1 -0
- package/lib/node_modules/lodash/sortBy.js.map +1 -0
- package/lib/node_modules/lodash/stubArray.js.map +1 -0
- package/lib/node_modules/lodash/stubFalse.js.map +1 -0
- package/lib/node_modules/lodash/toFinite.js.map +1 -0
- package/lib/node_modules/lodash/toInteger.js.map +1 -0
- package/lib/node_modules/lodash/toNumber.js.map +1 -0
- package/lib/node_modules/lodash/toPlainObject.js.map +1 -0
- package/lib/node_modules/lodash/toString.js.map +1 -0
- package/lib/node_modules/lodash/transform.js.map +1 -0
- package/lib/node_modules/lodash/union.js.map +1 -0
- package/lib/node_modules/lodash/uniqueId.js.map +1 -0
- package/lib/node_modules/lodash/values.js.map +1 -0
- package/lib/node_modules/lodash/zipObject.js.map +1 -0
- package/lib/node_modules/ml-array-max/lib-es6/index.js +37 -0
- package/lib/node_modules/ml-array-max/lib-es6/index.js.map +1 -0
- package/lib/node_modules/ml-array-min/lib-es6/index.js +37 -0
- package/lib/node_modules/ml-array-min/lib-es6/index.js.map +1 -0
- package/lib/node_modules/ml-array-rescale/lib-es6/index.js +52 -0
- package/lib/node_modules/ml-array-rescale/lib-es6/index.js.map +1 -0
- package/lib/node_modules/ml-matrix/matrix.js +8 -0
- package/lib/node_modules/ml-matrix/matrix.js.map +1 -0
- package/lib/node_modules/ml-matrix/matrix2.js +5660 -0
- package/lib/node_modules/ml-matrix/matrix2.js.map +1 -0
- package/lib/node_modules/tslib/tslib.es6.js.map +1 -0
- package/lib/registry.js +13 -13
- package/lib/runtime/context.d.ts +15 -0
- package/lib/runtime/context.js +29 -0
- package/lib/runtime/context.js.map +1 -0
- package/lib/runtime/supervisor.d.ts +25 -0
- package/lib/runtime/supervisor.js +75 -0
- package/lib/runtime/supervisor.js.map +1 -0
- package/lib/types/data.d.ts +13 -10
- package/lib/types/edge-label.d.ts +6 -0
- package/lib/types/force.d.ts +1 -2
- package/lib/util/common.d.ts +2 -2
- package/lib/util/common.js.map +1 -1
- package/lib/util/format.js +3 -3
- package/lib/util/math.d.ts +3 -3
- package/lib/util/math.js +1 -1
- package/lib/util/math.js.map +1 -1
- package/lib/util/object.d.ts +1 -2
- package/lib/util/object.js +3 -6
- package/lib/util/object.js.map +1 -1
- package/lib/util/order.d.ts +5 -5
- package/lib/util/order.js +2 -8
- package/lib/util/order.js.map +1 -1
- package/lib/util/size.js +1 -1
- package/lib/worker.js +462 -463
- package/lib/worker.js.map +1 -1
- package/package.json +30 -11
- package/src/algorithm/antv-dagre/acyclic.ts +70 -0
- package/src/algorithm/antv-dagre/add-border-segments.ts +55 -0
- package/src/algorithm/antv-dagre/coordinate-system.ts +77 -0
- package/src/algorithm/antv-dagre/graph.ts +533 -0
- package/src/algorithm/antv-dagre/greedy-fas.ts +185 -0
- package/src/algorithm/antv-dagre/index.ts +619 -0
- package/src/algorithm/antv-dagre/layout.ts +622 -0
- package/src/algorithm/antv-dagre/nesting-graph.ts +184 -0
- package/src/algorithm/antv-dagre/normalize.ts +125 -0
- package/src/algorithm/antv-dagre/order/add-subgraph-constraints.ts +51 -0
- package/src/algorithm/antv-dagre/order/barycenter.ts +26 -0
- package/src/algorithm/antv-dagre/order/build-layer-graph.ts +109 -0
- package/src/algorithm/antv-dagre/order/cross-count.ts +76 -0
- package/src/algorithm/antv-dagre/order/index.ts +123 -0
- package/src/algorithm/antv-dagre/order/init-data-order.ts +29 -0
- package/src/algorithm/antv-dagre/order/init-order.ts +59 -0
- package/src/algorithm/antv-dagre/order/resolve-conflicts.ts +153 -0
- package/src/algorithm/antv-dagre/order/sort-subgraph.ts +111 -0
- package/src/algorithm/antv-dagre/order/sort.ts +94 -0
- package/src/algorithm/antv-dagre/parent-dummy-chains.ts +111 -0
- package/src/algorithm/antv-dagre/position/bk.ts +560 -0
- package/src/algorithm/antv-dagre/position/index.ts +109 -0
- package/src/algorithm/antv-dagre/rank/feasible-tree.ts +179 -0
- package/src/algorithm/antv-dagre/rank/network-simplex.ts +282 -0
- package/src/algorithm/antv-dagre/rank/util.ts +157 -0
- package/src/algorithm/antv-dagre/types.ts +197 -0
- package/src/algorithm/antv-dagre/util.ts +359 -0
- package/src/algorithm/base-layout.ts +137 -0
- package/src/algorithm/base-simulation.ts +94 -0
- package/src/algorithm/circular/index.ts +123 -0
- package/src/algorithm/circular/types.ts +105 -0
- package/src/algorithm/combo-combined/index.ts +412 -0
- package/src/algorithm/combo-combined/types.ts +39 -0
- package/src/algorithm/concentric/index.ts +234 -0
- package/src/algorithm/concentric/types.ts +89 -0
- package/src/algorithm/d3-force/force-in-a-box.ts +404 -0
- package/src/algorithm/d3-force/index.ts +592 -0
- package/src/algorithm/d3-force/types.ts +378 -0
- package/src/algorithm/dagre/index.ts +172 -0
- package/src/algorithm/dagre/types.ts +84 -0
- package/src/algorithm/force/attractive.ts +71 -0
- package/src/algorithm/force/centripetal.ts +133 -0
- package/src/algorithm/force/collide.ts +219 -0
- package/src/algorithm/force/gravity.ts +61 -0
- package/src/algorithm/force/index.ts +541 -0
- package/src/algorithm/force/repulsive.ts +200 -0
- package/src/algorithm/force/simulation.ts +172 -0
- package/src/algorithm/force/types.ts +265 -0
- package/src/algorithm/force-atlas2/index.ts +189 -0
- package/src/algorithm/force-atlas2/quad.ts +117 -0
- package/src/algorithm/force-atlas2/simulation.ts +445 -0
- package/src/algorithm/force-atlas2/types.ts +106 -0
- package/src/algorithm/fruchterman/index.ts +116 -0
- package/src/algorithm/fruchterman/simulation.ts +447 -0
- package/src/algorithm/fruchterman/types.ts +47 -0
- package/src/algorithm/grid/index.ts +305 -0
- package/src/algorithm/grid/types.ts +120 -0
- package/src/algorithm/index.ts +29 -0
- package/src/algorithm/mds/index.ts +143 -0
- package/src/algorithm/mds/types.ts +23 -0
- package/src/algorithm/radial/index.ts +346 -0
- package/src/algorithm/radial/radial-nonoverlap-force.ts +210 -0
- package/src/algorithm/radial/types.ts +100 -0
- package/src/algorithm/random/index.ts +41 -0
- package/src/algorithm/random/types.ts +8 -0
- package/src/algorithm/types.ts +172 -0
- package/src/index.ts +3 -25
- package/src/model/data.ts +381 -0
- package/src/model/index.ts +1 -0
- package/src/registry.ts +13 -13
- package/src/runtime/context.ts +49 -0
- package/src/runtime/index.ts +2 -0
- package/src/runtime/supervisor.ts +80 -0
- package/src/types/data.ts +20 -13
- package/src/types/edge-label.ts +5 -0
- package/src/types/force.ts +2 -2
- package/src/types/index.ts +1 -0
- package/src/util/common.ts +2 -2
- package/src/util/index.ts +0 -1
- package/src/util/math.ts +3 -3
- package/src/util/object.ts +0 -4
- package/src/util/order.ts +13 -20
- package/src/worker.ts +2 -2
- package/lib/antv-dagre/acyclic.js.map +0 -1
- package/lib/antv-dagre/add-border-segments.js.map +0 -1
- package/lib/antv-dagre/coordinate-system.js.map +0 -1
- package/lib/antv-dagre/data/list.js.map +0 -1
- package/lib/antv-dagre/graph.js.map +0 -1
- package/lib/antv-dagre/greedy-fas.js.map +0 -1
- package/lib/antv-dagre/index.d.ts +0 -15
- package/lib/antv-dagre/index.js +0 -337
- package/lib/antv-dagre/index.js.map +0 -1
- package/lib/antv-dagre/layout.js +0 -471
- package/lib/antv-dagre/layout.js.map +0 -1
- package/lib/antv-dagre/nesting-graph.js.map +0 -1
- package/lib/antv-dagre/normalize.js.map +0 -1
- package/lib/antv-dagre/order/add-subgraph-constraints.js.map +0 -1
- package/lib/antv-dagre/order/barycenter.js.map +0 -1
- package/lib/antv-dagre/order/build-layer-graph.js.map +0 -1
- package/lib/antv-dagre/order/cross-count.js.map +0 -1
- package/lib/antv-dagre/order/index.js +0 -94
- package/lib/antv-dagre/order/index.js.map +0 -1
- package/lib/antv-dagre/order/init-data-order.js.map +0 -1
- package/lib/antv-dagre/order/init-order.js.map +0 -1
- package/lib/antv-dagre/order/resolve-conflicts.js.map +0 -1
- package/lib/antv-dagre/order/sort-subgraph.js.map +0 -1
- package/lib/antv-dagre/order/sort.js.map +0 -1
- package/lib/antv-dagre/parent-dummy-chains.js.map +0 -1
- package/lib/antv-dagre/position/bk.js.map +0 -1
- package/lib/antv-dagre/position/index.js.map +0 -1
- package/lib/antv-dagre/rank/feasible-tree.js.map +0 -1
- package/lib/antv-dagre/rank/index.js.map +0 -1
- package/lib/antv-dagre/rank/network-simplex.js.map +0 -1
- package/lib/antv-dagre/rank/util.js.map +0 -1
- package/lib/antv-dagre/types.d.ts +0 -170
- package/lib/antv-dagre/util.js +0 -265
- package/lib/antv-dagre/util.js.map +0 -1
- package/lib/circular/index.d.ts +0 -15
- package/lib/circular/index.js +0 -108
- package/lib/circular/index.js.map +0 -1
- package/lib/circular/types.d.ts +0 -105
- package/lib/combo-combined/index.d.ts +0 -33
- package/lib/combo-combined/index.js +0 -303
- package/lib/combo-combined/index.js.map +0 -1
- package/lib/combo-combined/types.d.ts +0 -37
- package/lib/concentric/index.d.ts +0 -15
- package/lib/concentric/index.js +0 -192
- package/lib/concentric/index.js.map +0 -1
- package/lib/concentric/types.d.ts +0 -92
- package/lib/core/base-layout.d.ts +0 -40
- package/lib/core/base-layout.js +0 -88
- package/lib/core/base-layout.js.map +0 -1
- package/lib/core/base-simulation.d.ts +0 -43
- package/lib/core/base-simulation.js +0 -75
- package/lib/core/base-simulation.js.map +0 -1
- package/lib/core/types.d.ts +0 -89
- package/lib/d3-force/force-in-a-box.js +0 -343
- package/lib/d3-force/force-in-a-box.js.map +0 -1
- package/lib/d3-force/index.d.ts +0 -53
- package/lib/d3-force/index.js +0 -552
- package/lib/d3-force/index.js.map +0 -1
- package/lib/d3-force/types.d.ts +0 -336
- package/lib/d3-force-3d/index.js +0 -73
- package/lib/d3-force-3d/index.js.map +0 -1
- package/lib/dagre/index.d.ts +0 -22
- package/lib/dagre/index.js +0 -142
- package/lib/dagre/index.js.map +0 -1
- package/lib/dagre/types.d.ts +0 -79
- package/lib/force/attractive.js.map +0 -1
- package/lib/force/centripetal.js +0 -87
- package/lib/force/centripetal.js.map +0 -1
- package/lib/force/collide.js +0 -172
- package/lib/force/collide.js.map +0 -1
- package/lib/force/gravity.js.map +0 -1
- package/lib/force/index.d.ts +0 -87
- package/lib/force/index.js +0 -450
- package/lib/force/index.js.map +0 -1
- package/lib/force/repulsive.js +0 -142
- package/lib/force/repulsive.js.map +0 -1
- package/lib/force/simulation.d.ts +0 -23
- package/lib/force/simulation.js +0 -137
- package/lib/force/simulation.js.map +0 -1
- package/lib/force/types.d.ts +0 -252
- package/lib/force-atlas2/body.js.map +0 -1
- package/lib/force-atlas2/index.d.ts +0 -22
- package/lib/force-atlas2/index.js +0 -155
- package/lib/force-atlas2/index.js.map +0 -1
- package/lib/force-atlas2/quad-tree.js.map +0 -1
- package/lib/force-atlas2/quad.js.map +0 -1
- package/lib/force-atlas2/simulation.d.ts +0 -39
- package/lib/force-atlas2/simulation.js +0 -388
- package/lib/force-atlas2/simulation.js.map +0 -1
- package/lib/force-atlas2/types.d.ts +0 -109
- package/lib/fruchterman/index.d.ts +0 -20
- package/lib/fruchterman/index.js +0 -93
- package/lib/fruchterman/index.js.map +0 -1
- package/lib/fruchterman/simulation.js +0 -356
- package/lib/fruchterman/simulation.js.map +0 -1
- package/lib/fruchterman/types.d.ts +0 -48
- package/lib/grid/index.d.ts +0 -16
- package/lib/grid/index.js +0 -243
- package/lib/grid/index.js.map +0 -1
- package/lib/grid/types.d.ts +0 -85
- package/lib/mds/index.d.ts +0 -15
- package/lib/mds/index.js +0 -127
- package/lib/mds/index.js.map +0 -1
- package/lib/mds/types.d.ts +0 -25
- package/lib/node_modules/.pnpm/@antv_event-emitter@0.1.3/node_modules/@antv/event-emitter/esm/index.js.map +0 -1
- package/lib/node_modules/.pnpm/@antv_util@3.3.11/node_modules/@antv/util/esm/lodash/clone.js.map +0 -1
- package/lib/node_modules/.pnpm/@antv_util@3.3.11/node_modules/@antv/util/esm/lodash/deep-mix.js.map +0 -1
- package/lib/node_modules/.pnpm/@antv_util@3.3.11/node_modules/@antv/util/esm/lodash/each.js.map +0 -1
- package/lib/node_modules/.pnpm/@antv_util@3.3.11/node_modules/@antv/util/esm/lodash/get-type.js.map +0 -1
- package/lib/node_modules/.pnpm/@antv_util@3.3.11/node_modules/@antv/util/esm/lodash/get.js.map +0 -1
- package/lib/node_modules/.pnpm/@antv_util@3.3.11/node_modules/@antv/util/esm/lodash/is-array-like.js.map +0 -1
- package/lib/node_modules/.pnpm/@antv_util@3.3.11/node_modules/@antv/util/esm/lodash/is-array.js.map +0 -1
- package/lib/node_modules/.pnpm/@antv_util@3.3.11/node_modules/@antv/util/esm/lodash/is-boolean.js.map +0 -1
- package/lib/node_modules/.pnpm/@antv_util@3.3.11/node_modules/@antv/util/esm/lodash/is-empty.js.map +0 -1
- package/lib/node_modules/.pnpm/@antv_util@3.3.11/node_modules/@antv/util/esm/lodash/is-function.js.map +0 -1
- package/lib/node_modules/.pnpm/@antv_util@3.3.11/node_modules/@antv/util/esm/lodash/is-nil.js.map +0 -1
- package/lib/node_modules/.pnpm/@antv_util@3.3.11/node_modules/@antv/util/esm/lodash/is-number.js.map +0 -1
- package/lib/node_modules/.pnpm/@antv_util@3.3.11/node_modules/@antv/util/esm/lodash/is-object-like.js.map +0 -1
- package/lib/node_modules/.pnpm/@antv_util@3.3.11/node_modules/@antv/util/esm/lodash/is-object.js.map +0 -1
- package/lib/node_modules/.pnpm/@antv_util@3.3.11/node_modules/@antv/util/esm/lodash/is-plain-object.js.map +0 -1
- package/lib/node_modules/.pnpm/@antv_util@3.3.11/node_modules/@antv/util/esm/lodash/is-prototype.js.map +0 -1
- package/lib/node_modules/.pnpm/@antv_util@3.3.11/node_modules/@antv/util/esm/lodash/is-string.js.map +0 -1
- package/lib/node_modules/.pnpm/@antv_util@3.3.11/node_modules/@antv/util/esm/lodash/is-type.js.map +0 -1
- package/lib/node_modules/.pnpm/@antv_util@3.3.11/node_modules/@antv/util/esm/lodash/pick.js.map +0 -1
- package/lib/node_modules/.pnpm/@antv_util@3.3.11/node_modules/@antv/util/esm/lodash/set.js.map +0 -1
- package/lib/node_modules/.pnpm/@rollup_plugin-typescript@12.3.0_rollup@4.54.0_tslib@2.8.1_typescript@4.9.5/node_modules/tslib/tslib.es6.js.map +0 -1
- package/lib/node_modules/.pnpm/comlink@4.4.2/node_modules/comlink/dist/esm/comlink.js.map +0 -1
- package/lib/node_modules/.pnpm/d3-binarytree@1.0.2/node_modules/d3-binarytree/src/add.js.map +0 -1
- package/lib/node_modules/.pnpm/d3-binarytree@1.0.2/node_modules/d3-binarytree/src/binarytree.js.map +0 -1
- package/lib/node_modules/.pnpm/d3-binarytree@1.0.2/node_modules/d3-binarytree/src/cover.js.map +0 -1
- package/lib/node_modules/.pnpm/d3-binarytree@1.0.2/node_modules/d3-binarytree/src/data.js.map +0 -1
- package/lib/node_modules/.pnpm/d3-binarytree@1.0.2/node_modules/d3-binarytree/src/extent.js.map +0 -1
- package/lib/node_modules/.pnpm/d3-binarytree@1.0.2/node_modules/d3-binarytree/src/find.js.map +0 -1
- package/lib/node_modules/.pnpm/d3-binarytree@1.0.2/node_modules/d3-binarytree/src/half.js.map +0 -1
- package/lib/node_modules/.pnpm/d3-binarytree@1.0.2/node_modules/d3-binarytree/src/remove.js.map +0 -1
- package/lib/node_modules/.pnpm/d3-binarytree@1.0.2/node_modules/d3-binarytree/src/root.js.map +0 -1
- package/lib/node_modules/.pnpm/d3-binarytree@1.0.2/node_modules/d3-binarytree/src/size.js.map +0 -1
- package/lib/node_modules/.pnpm/d3-binarytree@1.0.2/node_modules/d3-binarytree/src/visit.js.map +0 -1
- package/lib/node_modules/.pnpm/d3-binarytree@1.0.2/node_modules/d3-binarytree/src/visitAfter.js.map +0 -1
- package/lib/node_modules/.pnpm/d3-binarytree@1.0.2/node_modules/d3-binarytree/src/x.js.map +0 -1
- package/lib/node_modules/.pnpm/d3-dispatch@3.0.1/node_modules/d3-dispatch/src/dispatch.js.map +0 -1
- package/lib/node_modules/.pnpm/d3-force-3d@3.0.6/node_modules/d3-force-3d/src/center.js.map +0 -1
- package/lib/node_modules/.pnpm/d3-force-3d@3.0.6/node_modules/d3-force-3d/src/collide.js +0 -135
- package/lib/node_modules/.pnpm/d3-force-3d@3.0.6/node_modules/d3-force-3d/src/collide.js.map +0 -1
- package/lib/node_modules/.pnpm/d3-force-3d@3.0.6/node_modules/d3-force-3d/src/constant.js.map +0 -1
- package/lib/node_modules/.pnpm/d3-force-3d@3.0.6/node_modules/d3-force-3d/src/jiggle.js.map +0 -1
- package/lib/node_modules/.pnpm/d3-force-3d@3.0.6/node_modules/d3-force-3d/src/lcg.js.map +0 -1
- package/lib/node_modules/.pnpm/d3-force-3d@3.0.6/node_modules/d3-force-3d/src/link.js.map +0 -1
- package/lib/node_modules/.pnpm/d3-force-3d@3.0.6/node_modules/d3-force-3d/src/manyBody.js +0 -142
- package/lib/node_modules/.pnpm/d3-force-3d@3.0.6/node_modules/d3-force-3d/src/manyBody.js.map +0 -1
- package/lib/node_modules/.pnpm/d3-force-3d@3.0.6/node_modules/d3-force-3d/src/radial.js.map +0 -1
- package/lib/node_modules/.pnpm/d3-force-3d@3.0.6/node_modules/d3-force-3d/src/simulation.js +0 -202
- package/lib/node_modules/.pnpm/d3-force-3d@3.0.6/node_modules/d3-force-3d/src/simulation.js.map +0 -1
- package/lib/node_modules/.pnpm/d3-force-3d@3.0.6/node_modules/d3-force-3d/src/x.js.map +0 -1
- package/lib/node_modules/.pnpm/d3-force-3d@3.0.6/node_modules/d3-force-3d/src/y.js.map +0 -1
- package/lib/node_modules/.pnpm/d3-force-3d@3.0.6/node_modules/d3-force-3d/src/z.js.map +0 -1
- package/lib/node_modules/.pnpm/d3-force@3.0.0/node_modules/d3-force/src/center.js.map +0 -1
- package/lib/node_modules/.pnpm/d3-force@3.0.0/node_modules/d3-force/src/collide.js +0 -103
- package/lib/node_modules/.pnpm/d3-force@3.0.0/node_modules/d3-force/src/collide.js.map +0 -1
- package/lib/node_modules/.pnpm/d3-force@3.0.0/node_modules/d3-force/src/constant.js.map +0 -1
- package/lib/node_modules/.pnpm/d3-force@3.0.0/node_modules/d3-force/src/jiggle.js.map +0 -1
- package/lib/node_modules/.pnpm/d3-force@3.0.0/node_modules/d3-force/src/lcg.js.map +0 -1
- package/lib/node_modules/.pnpm/d3-force@3.0.0/node_modules/d3-force/src/link.js.map +0 -1
- package/lib/node_modules/.pnpm/d3-force@3.0.0/node_modules/d3-force/src/manyBody.js +0 -119
- package/lib/node_modules/.pnpm/d3-force@3.0.0/node_modules/d3-force/src/manyBody.js.map +0 -1
- package/lib/node_modules/.pnpm/d3-force@3.0.0/node_modules/d3-force/src/radial.js.map +0 -1
- package/lib/node_modules/.pnpm/d3-force@3.0.0/node_modules/d3-force/src/simulation.js +0 -159
- package/lib/node_modules/.pnpm/d3-force@3.0.0/node_modules/d3-force/src/simulation.js.map +0 -1
- package/lib/node_modules/.pnpm/d3-force@3.0.0/node_modules/d3-force/src/x.js.map +0 -1
- package/lib/node_modules/.pnpm/d3-force@3.0.0/node_modules/d3-force/src/y.js.map +0 -1
- package/lib/node_modules/.pnpm/d3-octree@1.1.0/node_modules/d3-octree/src/add.js.map +0 -1
- package/lib/node_modules/.pnpm/d3-octree@1.1.0/node_modules/d3-octree/src/cover.js.map +0 -1
- package/lib/node_modules/.pnpm/d3-octree@1.1.0/node_modules/d3-octree/src/data.js.map +0 -1
- package/lib/node_modules/.pnpm/d3-octree@1.1.0/node_modules/d3-octree/src/extent.js.map +0 -1
- package/lib/node_modules/.pnpm/d3-octree@1.1.0/node_modules/d3-octree/src/find.js.map +0 -1
- package/lib/node_modules/.pnpm/d3-octree@1.1.0/node_modules/d3-octree/src/findAll.js.map +0 -1
- package/lib/node_modules/.pnpm/d3-octree@1.1.0/node_modules/d3-octree/src/octant.js.map +0 -1
- package/lib/node_modules/.pnpm/d3-octree@1.1.0/node_modules/d3-octree/src/octree.js.map +0 -1
- package/lib/node_modules/.pnpm/d3-octree@1.1.0/node_modules/d3-octree/src/remove.js.map +0 -1
- package/lib/node_modules/.pnpm/d3-octree@1.1.0/node_modules/d3-octree/src/root.js.map +0 -1
- package/lib/node_modules/.pnpm/d3-octree@1.1.0/node_modules/d3-octree/src/size.js.map +0 -1
- package/lib/node_modules/.pnpm/d3-octree@1.1.0/node_modules/d3-octree/src/visit.js.map +0 -1
- package/lib/node_modules/.pnpm/d3-octree@1.1.0/node_modules/d3-octree/src/visitAfter.js.map +0 -1
- package/lib/node_modules/.pnpm/d3-octree@1.1.0/node_modules/d3-octree/src/x.js.map +0 -1
- package/lib/node_modules/.pnpm/d3-octree@1.1.0/node_modules/d3-octree/src/y.js.map +0 -1
- package/lib/node_modules/.pnpm/d3-octree@1.1.0/node_modules/d3-octree/src/z.js.map +0 -1
- package/lib/node_modules/.pnpm/d3-quadtree@3.0.1/node_modules/d3-quadtree/src/add.js.map +0 -1
- package/lib/node_modules/.pnpm/d3-quadtree@3.0.1/node_modules/d3-quadtree/src/cover.js.map +0 -1
- package/lib/node_modules/.pnpm/d3-quadtree@3.0.1/node_modules/d3-quadtree/src/data.js.map +0 -1
- package/lib/node_modules/.pnpm/d3-quadtree@3.0.1/node_modules/d3-quadtree/src/extent.js.map +0 -1
- package/lib/node_modules/.pnpm/d3-quadtree@3.0.1/node_modules/d3-quadtree/src/find.js.map +0 -1
- package/lib/node_modules/.pnpm/d3-quadtree@3.0.1/node_modules/d3-quadtree/src/quad.js.map +0 -1
- package/lib/node_modules/.pnpm/d3-quadtree@3.0.1/node_modules/d3-quadtree/src/quadtree.js.map +0 -1
- package/lib/node_modules/.pnpm/d3-quadtree@3.0.1/node_modules/d3-quadtree/src/remove.js.map +0 -1
- package/lib/node_modules/.pnpm/d3-quadtree@3.0.1/node_modules/d3-quadtree/src/root.js.map +0 -1
- package/lib/node_modules/.pnpm/d3-quadtree@3.0.1/node_modules/d3-quadtree/src/size.js.map +0 -1
- package/lib/node_modules/.pnpm/d3-quadtree@3.0.1/node_modules/d3-quadtree/src/visit.js.map +0 -1
- package/lib/node_modules/.pnpm/d3-quadtree@3.0.1/node_modules/d3-quadtree/src/visitAfter.js.map +0 -1
- package/lib/node_modules/.pnpm/d3-quadtree@3.0.1/node_modules/d3-quadtree/src/x.js.map +0 -1
- package/lib/node_modules/.pnpm/d3-quadtree@3.0.1/node_modules/d3-quadtree/src/y.js.map +0 -1
- package/lib/node_modules/.pnpm/d3-timer@3.0.1/node_modules/d3-timer/src/timer.js.map +0 -1
- package/lib/node_modules/.pnpm/dagre@0.8.5/node_modules/dagre/index.js.map +0 -1
- package/lib/node_modules/.pnpm/dagre@0.8.5/node_modules/dagre/lib/acyclic.js.map +0 -1
- package/lib/node_modules/.pnpm/dagre@0.8.5/node_modules/dagre/lib/add-border-segments.js.map +0 -1
- package/lib/node_modules/.pnpm/dagre@0.8.5/node_modules/dagre/lib/coordinate-system.js.map +0 -1
- package/lib/node_modules/.pnpm/dagre@0.8.5/node_modules/dagre/lib/data/list.js.map +0 -1
- package/lib/node_modules/.pnpm/dagre@0.8.5/node_modules/dagre/lib/debug.js.map +0 -1
- package/lib/node_modules/.pnpm/dagre@0.8.5/node_modules/dagre/lib/graphlib.js +0 -31
- package/lib/node_modules/.pnpm/dagre@0.8.5/node_modules/dagre/lib/graphlib.js.map +0 -1
- package/lib/node_modules/.pnpm/dagre@0.8.5/node_modules/dagre/lib/greedy-fas.js.map +0 -1
- package/lib/node_modules/.pnpm/dagre@0.8.5/node_modules/dagre/lib/layout.js.map +0 -1
- package/lib/node_modules/.pnpm/dagre@0.8.5/node_modules/dagre/lib/lodash.js +0 -83
- package/lib/node_modules/.pnpm/dagre@0.8.5/node_modules/dagre/lib/lodash.js.map +0 -1
- package/lib/node_modules/.pnpm/dagre@0.8.5/node_modules/dagre/lib/nesting-graph.js.map +0 -1
- package/lib/node_modules/.pnpm/dagre@0.8.5/node_modules/dagre/lib/normalize.js.map +0 -1
- package/lib/node_modules/.pnpm/dagre@0.8.5/node_modules/dagre/lib/order/add-subgraph-constraints.js.map +0 -1
- package/lib/node_modules/.pnpm/dagre@0.8.5/node_modules/dagre/lib/order/barycenter.js.map +0 -1
- package/lib/node_modules/.pnpm/dagre@0.8.5/node_modules/dagre/lib/order/build-layer-graph.js.map +0 -1
- package/lib/node_modules/.pnpm/dagre@0.8.5/node_modules/dagre/lib/order/cross-count.js.map +0 -1
- package/lib/node_modules/.pnpm/dagre@0.8.5/node_modules/dagre/lib/order/index.js.map +0 -1
- package/lib/node_modules/.pnpm/dagre@0.8.5/node_modules/dagre/lib/order/init-order.js.map +0 -1
- package/lib/node_modules/.pnpm/dagre@0.8.5/node_modules/dagre/lib/order/resolve-conflicts.js.map +0 -1
- package/lib/node_modules/.pnpm/dagre@0.8.5/node_modules/dagre/lib/order/sort-subgraph.js.map +0 -1
- package/lib/node_modules/.pnpm/dagre@0.8.5/node_modules/dagre/lib/order/sort.js.map +0 -1
- package/lib/node_modules/.pnpm/dagre@0.8.5/node_modules/dagre/lib/parent-dummy-chains.js.map +0 -1
- package/lib/node_modules/.pnpm/dagre@0.8.5/node_modules/dagre/lib/position/bk.js.map +0 -1
- package/lib/node_modules/.pnpm/dagre@0.8.5/node_modules/dagre/lib/position/index.js.map +0 -1
- package/lib/node_modules/.pnpm/dagre@0.8.5/node_modules/dagre/lib/rank/feasible-tree.js.map +0 -1
- package/lib/node_modules/.pnpm/dagre@0.8.5/node_modules/dagre/lib/rank/index.js.map +0 -1
- package/lib/node_modules/.pnpm/dagre@0.8.5/node_modules/dagre/lib/rank/network-simplex.js.map +0 -1
- package/lib/node_modules/.pnpm/dagre@0.8.5/node_modules/dagre/lib/rank/util.js.map +0 -1
- package/lib/node_modules/.pnpm/dagre@0.8.5/node_modules/dagre/lib/util.js.map +0 -1
- package/lib/node_modules/.pnpm/dagre@0.8.5/node_modules/dagre/lib/version.js.map +0 -1
- package/lib/node_modules/.pnpm/graphlib@2.1.8/node_modules/graphlib/index.js.map +0 -1
- package/lib/node_modules/.pnpm/graphlib@2.1.8/node_modules/graphlib/lib/alg/components.js.map +0 -1
- package/lib/node_modules/.pnpm/graphlib@2.1.8/node_modules/graphlib/lib/alg/dfs.js.map +0 -1
- package/lib/node_modules/.pnpm/graphlib@2.1.8/node_modules/graphlib/lib/alg/dijkstra-all.js.map +0 -1
- package/lib/node_modules/.pnpm/graphlib@2.1.8/node_modules/graphlib/lib/alg/dijkstra.js.map +0 -1
- package/lib/node_modules/.pnpm/graphlib@2.1.8/node_modules/graphlib/lib/alg/find-cycles.js.map +0 -1
- package/lib/node_modules/.pnpm/graphlib@2.1.8/node_modules/graphlib/lib/alg/floyd-warshall.js.map +0 -1
- package/lib/node_modules/.pnpm/graphlib@2.1.8/node_modules/graphlib/lib/alg/index.js.map +0 -1
- package/lib/node_modules/.pnpm/graphlib@2.1.8/node_modules/graphlib/lib/alg/is-acyclic.js.map +0 -1
- package/lib/node_modules/.pnpm/graphlib@2.1.8/node_modules/graphlib/lib/alg/postorder.js.map +0 -1
- package/lib/node_modules/.pnpm/graphlib@2.1.8/node_modules/graphlib/lib/alg/preorder.js.map +0 -1
- package/lib/node_modules/.pnpm/graphlib@2.1.8/node_modules/graphlib/lib/alg/prim.js.map +0 -1
- package/lib/node_modules/.pnpm/graphlib@2.1.8/node_modules/graphlib/lib/alg/tarjan.js.map +0 -1
- package/lib/node_modules/.pnpm/graphlib@2.1.8/node_modules/graphlib/lib/alg/topsort.js.map +0 -1
- package/lib/node_modules/.pnpm/graphlib@2.1.8/node_modules/graphlib/lib/data/priority-queue.js.map +0 -1
- package/lib/node_modules/.pnpm/graphlib@2.1.8/node_modules/graphlib/lib/graph.js.map +0 -1
- package/lib/node_modules/.pnpm/graphlib@2.1.8/node_modules/graphlib/lib/index.js.map +0 -1
- package/lib/node_modules/.pnpm/graphlib@2.1.8/node_modules/graphlib/lib/json.js.map +0 -1
- package/lib/node_modules/.pnpm/graphlib@2.1.8/node_modules/graphlib/lib/lodash.js +0 -63
- package/lib/node_modules/.pnpm/graphlib@2.1.8/node_modules/graphlib/lib/lodash.js.map +0 -1
- package/lib/node_modules/.pnpm/graphlib@2.1.8/node_modules/graphlib/lib/version.js.map +0 -1
- package/lib/node_modules/.pnpm/is-any-array@2.0.1/node_modules/is-any-array/lib-esm/index.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_DataView.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_Hash.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_ListCache.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_Map.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_MapCache.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_Promise.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_Set.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_SetCache.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_Stack.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_Symbol.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_Uint8Array.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_WeakMap.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_apply.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_arrayEach.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_arrayFilter.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_arrayIncludes.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_arrayIncludesWith.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_arrayLikeKeys.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_arrayMap.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_arrayPush.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_arrayReduce.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_arraySome.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_asciiSize.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_assignMergeValue.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_assignValue.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_assocIndexOf.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseAssign.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseAssignIn.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseAssignValue.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseClone.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseCreate.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseEach.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseExtremum.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseFilter.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseFindIndex.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseFlatten.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseFor.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseForOwn.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseGet.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseGetAllKeys.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseGetTag.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseGt.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseHas.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseHasIn.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseIndexOf.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseIsArguments.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseIsEqual.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseIsEqualDeep.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseIsMap.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseIsMatch.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseIsNaN.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseIsNative.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseIsSet.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseIsTypedArray.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseIteratee.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseKeys.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseKeysIn.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseLt.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseMap.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseMatches.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseMatchesProperty.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseMerge.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseMergeDeep.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseOrderBy.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_basePick.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_basePickBy.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseProperty.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_basePropertyDeep.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseRange.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseReduce.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseRest.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseSet.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseSetToString.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseSortBy.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseTimes.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseToString.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseTrim.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseUnary.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseUniq.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseValues.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseZipObject.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_cacheHas.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_castFunction.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_castPath.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_cloneArrayBuffer.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_cloneBuffer.js +0 -52
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_cloneBuffer.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_cloneDataView.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_cloneRegExp.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_cloneSymbol.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_cloneTypedArray.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_compareAscending.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_compareMultiple.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_copyArray.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_copyObject.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_copySymbols.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_copySymbolsIn.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_coreJsData.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_createAssigner.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_createBaseEach.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_createBaseFor.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_createFind.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_createRange.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_createSet.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_defineProperty.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_equalArrays.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_equalByTag.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_equalObjects.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_flatRest.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_freeGlobal.js +0 -18
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_freeGlobal.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_getAllKeys.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_getAllKeysIn.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_getMapData.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_getMatchData.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_getNative.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_getPrototype.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_getRawTag.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_getSymbols.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_getSymbolsIn.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_getTag.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_getValue.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_hasPath.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_hasUnicode.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_hashClear.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_hashDelete.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_hashGet.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_hashHas.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_hashSet.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_initCloneArray.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_initCloneByTag.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_initCloneObject.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_isFlattenable.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_isIndex.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_isIterateeCall.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_isKey.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_isKeyable.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_isMasked.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_isPrototype.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_isStrictComparable.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_listCacheClear.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_listCacheDelete.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_listCacheGet.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_listCacheHas.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_listCacheSet.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_mapCacheClear.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_mapCacheDelete.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_mapCacheGet.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_mapCacheHas.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_mapCacheSet.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_mapToArray.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_matchesStrictComparable.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_memoizeCapped.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_nativeCreate.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_nativeKeys.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_nativeKeysIn.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_nodeUtil.js +0 -47
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_nodeUtil.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_objectToString.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_overArg.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_overRest.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_root.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_safeGet.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_setCacheAdd.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_setCacheHas.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_setToArray.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_setToString.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_shortOut.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_stackClear.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_stackDelete.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_stackGet.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_stackHas.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_stackSet.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_strictIndexOf.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_stringSize.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_stringToPath.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_toKey.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_toSource.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_trimmedEndIndex.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_unicodeSize.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/clone.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/cloneDeep.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/constant.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/defaults.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/each.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/eq.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/filter.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/find.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/findIndex.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/flatten.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/forEach.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/forIn.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/get.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/has.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/hasIn.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/identity.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isArguments.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isArray.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isArrayLike.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isArrayLikeObject.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isBuffer.js +0 -56
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isBuffer.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isEmpty.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isFunction.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isLength.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isMap.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isObject.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isObjectLike.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isPlainObject.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isSet.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isString.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isSymbol.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isTypedArray.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isUndefined.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/keys.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/keysIn.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/last.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/map.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/mapValues.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/max.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/memoize.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/merge.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/min.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/minBy.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/noop.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/now.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/pick.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/property.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/range.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/reduce.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/size.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/sortBy.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/stubArray.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/stubFalse.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/toFinite.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/toInteger.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/toNumber.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/toPlainObject.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/toString.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/transform.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/union.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/uniqueId.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/values.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/zipObject.js.map +0 -1
- package/lib/node_modules/.pnpm/ml-array-max@1.2.4/node_modules/ml-array-max/lib-es6/index.js +0 -37
- package/lib/node_modules/.pnpm/ml-array-max@1.2.4/node_modules/ml-array-max/lib-es6/index.js.map +0 -1
- package/lib/node_modules/.pnpm/ml-array-min@1.2.3/node_modules/ml-array-min/lib-es6/index.js +0 -37
- package/lib/node_modules/.pnpm/ml-array-min@1.2.3/node_modules/ml-array-min/lib-es6/index.js.map +0 -1
- package/lib/node_modules/.pnpm/ml-array-rescale@1.3.7/node_modules/ml-array-rescale/lib-es6/index.js +0 -52
- package/lib/node_modules/.pnpm/ml-array-rescale@1.3.7/node_modules/ml-array-rescale/lib-es6/index.js.map +0 -1
- package/lib/node_modules/.pnpm/ml-matrix@6.12.1/node_modules/ml-matrix/matrix.js +0 -8
- package/lib/node_modules/.pnpm/ml-matrix@6.12.1/node_modules/ml-matrix/matrix.js.map +0 -1
- package/lib/node_modules/.pnpm/ml-matrix@6.12.1/node_modules/ml-matrix/matrix2.js +0 -5660
- package/lib/node_modules/.pnpm/ml-matrix@6.12.1/node_modules/ml-matrix/matrix2.js.map +0 -1
- package/lib/radial/index.d.ts +0 -16
- package/lib/radial/index.js +0 -275
- package/lib/radial/index.js.map +0 -1
- package/lib/radial/radial-nonoverlap-force.js +0 -129
- package/lib/radial/radial-nonoverlap-force.js.map +0 -1
- package/lib/radial/types.d.ts +0 -103
- package/lib/random/index.d.ts +0 -15
- package/lib/random/index.js +0 -36
- package/lib/random/index.js.map +0 -1
- package/lib/random/types.d.ts +0 -11
- package/lib/supervisor.d.ts +0 -25
- package/lib/supervisor.js +0 -71
- package/lib/supervisor.js.map +0 -1
- package/lib/util/model.d.ts +0 -45
- package/lib/util/model.js +0 -273
- package/lib/util/model.js.map +0 -1
- package/src/antv-dagre/acyclic.ts +0 -70
- package/src/antv-dagre/add-border-segments.ts +0 -55
- package/src/antv-dagre/coordinate-system.ts +0 -77
- package/src/antv-dagre/graph.ts +0 -533
- package/src/antv-dagre/greedy-fas.ts +0 -185
- package/src/antv-dagre/index.ts +0 -620
- package/src/antv-dagre/layout.ts +0 -622
- package/src/antv-dagre/nesting-graph.ts +0 -184
- package/src/antv-dagre/normalize.ts +0 -125
- package/src/antv-dagre/order/add-subgraph-constraints.ts +0 -51
- package/src/antv-dagre/order/barycenter.ts +0 -26
- package/src/antv-dagre/order/build-layer-graph.ts +0 -109
- package/src/antv-dagre/order/cross-count.ts +0 -76
- package/src/antv-dagre/order/index.ts +0 -123
- package/src/antv-dagre/order/init-data-order.ts +0 -29
- package/src/antv-dagre/order/init-order.ts +0 -59
- package/src/antv-dagre/order/resolve-conflicts.ts +0 -153
- package/src/antv-dagre/order/sort-subgraph.ts +0 -111
- package/src/antv-dagre/order/sort.ts +0 -94
- package/src/antv-dagre/parent-dummy-chains.ts +0 -111
- package/src/antv-dagre/position/bk.ts +0 -560
- package/src/antv-dagre/position/index.ts +0 -109
- package/src/antv-dagre/rank/feasible-tree.ts +0 -179
- package/src/antv-dagre/rank/network-simplex.ts +0 -282
- package/src/antv-dagre/rank/util.ts +0 -157
- package/src/antv-dagre/types.ts +0 -175
- package/src/antv-dagre/util.ts +0 -359
- package/src/circular/index.ts +0 -123
- package/src/circular/types.ts +0 -105
- package/src/combo-combined/index.ts +0 -412
- package/src/combo-combined/types.ts +0 -39
- package/src/concentric/index.ts +0 -234
- package/src/concentric/types.ts +0 -89
- package/src/core/base-layout.ts +0 -126
- package/src/core/base-simulation.ts +0 -115
- package/src/core/types.ts +0 -145
- package/src/d3-force/force-in-a-box.ts +0 -404
- package/src/d3-force/index.ts +0 -642
- package/src/d3-force/types.ts +0 -378
- package/src/dagre/index.ts +0 -172
- package/src/dagre/types.ts +0 -85
- package/src/force/attractive.ts +0 -71
- package/src/force/centripetal.ts +0 -133
- package/src/force/collide.ts +0 -219
- package/src/force/gravity.ts +0 -61
- package/src/force/index.ts +0 -539
- package/src/force/repulsive.ts +0 -200
- package/src/force/simulation.ts +0 -172
- package/src/force/types.ts +0 -265
- package/src/force-atlas2/index.ts +0 -188
- package/src/force-atlas2/quad.ts +0 -117
- package/src/force-atlas2/simulation.ts +0 -445
- package/src/force-atlas2/types.ts +0 -106
- package/src/fruchterman/index.ts +0 -116
- package/src/fruchterman/simulation.ts +0 -447
- package/src/fruchterman/types.ts +0 -47
- package/src/grid/index.ts +0 -305
- package/src/grid/types.ts +0 -120
- package/src/mds/index.ts +0 -143
- package/src/mds/types.ts +0 -23
- package/src/radial/index.ts +0 -345
- package/src/radial/radial-nonoverlap-force.ts +0 -209
- package/src/radial/types.ts +0 -100
- package/src/random/index.ts +0 -35
- package/src/random/types.ts +0 -8
- package/src/supervisor.ts +0 -77
- package/src/util/model.ts +0 -372
- /package/lib/{antv-dagre → algorithm/antv-dagre}/acyclic.js +0 -0
- /package/lib/{antv-dagre → algorithm/antv-dagre}/add-border-segments.js +0 -0
- /package/lib/{antv-dagre → algorithm/antv-dagre}/coordinate-system.js +0 -0
- /package/lib/{antv-dagre → algorithm/antv-dagre}/data/list.js +0 -0
- /package/lib/{antv-dagre → algorithm/antv-dagre}/graph.js +0 -0
- /package/lib/{antv-dagre → algorithm/antv-dagre}/greedy-fas.js +0 -0
- /package/lib/{antv-dagre → algorithm/antv-dagre}/nesting-graph.js +0 -0
- /package/lib/{antv-dagre → algorithm/antv-dagre}/normalize.js +0 -0
- /package/lib/{antv-dagre → algorithm/antv-dagre}/order/add-subgraph-constraints.js +0 -0
- /package/lib/{antv-dagre → algorithm/antv-dagre}/order/barycenter.js +0 -0
- /package/lib/{antv-dagre → algorithm/antv-dagre}/order/build-layer-graph.js +0 -0
- /package/lib/{antv-dagre → algorithm/antv-dagre}/order/cross-count.js +0 -0
- /package/lib/{antv-dagre → algorithm/antv-dagre}/order/init-data-order.js +0 -0
- /package/lib/{antv-dagre → algorithm/antv-dagre}/order/init-order.js +0 -0
- /package/lib/{antv-dagre → algorithm/antv-dagre}/order/resolve-conflicts.js +0 -0
- /package/lib/{antv-dagre → algorithm/antv-dagre}/order/sort-subgraph.js +0 -0
- /package/lib/{antv-dagre → algorithm/antv-dagre}/order/sort.js +0 -0
- /package/lib/{antv-dagre → algorithm/antv-dagre}/parent-dummy-chains.js +0 -0
- /package/lib/{antv-dagre → algorithm/antv-dagre}/position/bk.js +0 -0
- /package/lib/{antv-dagre → algorithm/antv-dagre}/position/index.js +0 -0
- /package/lib/{antv-dagre → algorithm/antv-dagre}/rank/feasible-tree.js +0 -0
- /package/lib/{antv-dagre → algorithm/antv-dagre}/rank/index.js +0 -0
- /package/lib/{antv-dagre → algorithm/antv-dagre}/rank/network-simplex.js +0 -0
- /package/lib/{antv-dagre → algorithm/antv-dagre}/rank/util.js +0 -0
- /package/lib/{d3-force-3d → algorithm/d3-force-3d}/index.d.ts +0 -0
- /package/lib/{d3-force-3d → algorithm/d3-force-3d}/types.d.ts +0 -0
- /package/lib/{force → algorithm/force}/attractive.js +0 -0
- /package/lib/{force → algorithm/force}/gravity.js +0 -0
- /package/lib/{force-atlas2 → algorithm/force-atlas2}/body.js +0 -0
- /package/lib/{force-atlas2 → algorithm/force-atlas2}/quad-tree.js +0 -0
- /package/lib/{force-atlas2 → algorithm/force-atlas2}/quad.js +0 -0
- /package/lib/node_modules/{.pnpm/@antv_event-emitter@0.1.3/node_modules/@antv → @antv}/event-emitter/esm/index.js +0 -0
- /package/lib/node_modules/{.pnpm/@antv_util@3.3.11/node_modules/@antv → @antv}/util/esm/lodash/clone.js +0 -0
- /package/lib/node_modules/{.pnpm/@antv_util@3.3.11/node_modules/@antv → @antv}/util/esm/lodash/deep-mix.js +0 -0
- /package/lib/node_modules/{.pnpm/@antv_util@3.3.11/node_modules/@antv → @antv}/util/esm/lodash/each.js +0 -0
- /package/lib/node_modules/{.pnpm/@antv_util@3.3.11/node_modules/@antv → @antv}/util/esm/lodash/get-type.js +0 -0
- /package/lib/node_modules/{.pnpm/@antv_util@3.3.11/node_modules/@antv → @antv}/util/esm/lodash/get.js +0 -0
- /package/lib/node_modules/{.pnpm/@antv_util@3.3.11/node_modules/@antv → @antv}/util/esm/lodash/is-array-like.js +0 -0
- /package/lib/node_modules/{.pnpm/@antv_util@3.3.11/node_modules/@antv → @antv}/util/esm/lodash/is-array.js +0 -0
- /package/lib/node_modules/{.pnpm/@antv_util@3.3.11/node_modules/@antv → @antv}/util/esm/lodash/is-boolean.js +0 -0
- /package/lib/node_modules/{.pnpm/@antv_util@3.3.11/node_modules/@antv → @antv}/util/esm/lodash/is-empty.js +0 -0
- /package/lib/node_modules/{.pnpm/@antv_util@3.3.11/node_modules/@antv → @antv}/util/esm/lodash/is-function.js +0 -0
- /package/lib/node_modules/{.pnpm/@antv_util@3.3.11/node_modules/@antv → @antv}/util/esm/lodash/is-nil.js +0 -0
- /package/lib/node_modules/{.pnpm/@antv_util@3.3.11/node_modules/@antv → @antv}/util/esm/lodash/is-number.js +0 -0
- /package/lib/node_modules/{.pnpm/@antv_util@3.3.11/node_modules/@antv → @antv}/util/esm/lodash/is-object-like.js +0 -0
- /package/lib/node_modules/{.pnpm/@antv_util@3.3.11/node_modules/@antv → @antv}/util/esm/lodash/is-object.js +0 -0
- /package/lib/node_modules/{.pnpm/@antv_util@3.3.11/node_modules/@antv → @antv}/util/esm/lodash/is-plain-object.js +0 -0
- /package/lib/node_modules/{.pnpm/@antv_util@3.3.11/node_modules/@antv → @antv}/util/esm/lodash/is-prototype.js +0 -0
- /package/lib/node_modules/{.pnpm/@antv_util@3.3.11/node_modules/@antv → @antv}/util/esm/lodash/is-string.js +0 -0
- /package/lib/node_modules/{.pnpm/@antv_util@3.3.11/node_modules/@antv → @antv}/util/esm/lodash/is-type.js +0 -0
- /package/lib/node_modules/{.pnpm/@antv_util@3.3.11/node_modules/@antv → @antv}/util/esm/lodash/pick.js +0 -0
- /package/lib/node_modules/{.pnpm/@antv_util@3.3.11/node_modules/@antv → @antv}/util/esm/lodash/set.js +0 -0
- /package/lib/node_modules/{.pnpm/comlink@4.4.2/node_modules/comlink → comlink}/dist/esm/comlink.js +0 -0
- /package/lib/node_modules/{.pnpm/d3-binarytree@1.0.2/node_modules/d3-binarytree → d3-binarytree}/src/add.js +0 -0
- /package/lib/node_modules/{.pnpm/d3-binarytree@1.0.2/node_modules/d3-binarytree → d3-binarytree}/src/binarytree.js +0 -0
- /package/lib/node_modules/{.pnpm/d3-binarytree@1.0.2/node_modules/d3-binarytree → d3-binarytree}/src/cover.js +0 -0
- /package/lib/node_modules/{.pnpm/d3-binarytree@1.0.2/node_modules/d3-binarytree → d3-binarytree}/src/data.js +0 -0
- /package/lib/node_modules/{.pnpm/d3-binarytree@1.0.2/node_modules/d3-binarytree → d3-binarytree}/src/extent.js +0 -0
- /package/lib/node_modules/{.pnpm/d3-binarytree@1.0.2/node_modules/d3-binarytree → d3-binarytree}/src/find.js +0 -0
- /package/lib/node_modules/{.pnpm/d3-binarytree@1.0.2/node_modules/d3-binarytree → d3-binarytree}/src/half.js +0 -0
- /package/lib/node_modules/{.pnpm/d3-binarytree@1.0.2/node_modules/d3-binarytree → d3-binarytree}/src/remove.js +0 -0
- /package/lib/node_modules/{.pnpm/d3-binarytree@1.0.2/node_modules/d3-binarytree → d3-binarytree}/src/root.js +0 -0
- /package/lib/node_modules/{.pnpm/d3-binarytree@1.0.2/node_modules/d3-binarytree → d3-binarytree}/src/size.js +0 -0
- /package/lib/node_modules/{.pnpm/d3-binarytree@1.0.2/node_modules/d3-binarytree → d3-binarytree}/src/visit.js +0 -0
- /package/lib/node_modules/{.pnpm/d3-binarytree@1.0.2/node_modules/d3-binarytree → d3-binarytree}/src/visitAfter.js +0 -0
- /package/lib/node_modules/{.pnpm/d3-binarytree@1.0.2/node_modules/d3-binarytree → d3-binarytree}/src/x.js +0 -0
- /package/lib/node_modules/{.pnpm/d3-dispatch@3.0.1/node_modules/d3-dispatch → d3-dispatch}/src/dispatch.js +0 -0
- /package/lib/node_modules/{.pnpm/d3-force@3.0.0/node_modules/d3-force → d3-force}/src/center.js +0 -0
- /package/lib/node_modules/{.pnpm/d3-force@3.0.0/node_modules/d3-force → d3-force}/src/constant.js +0 -0
- /package/lib/node_modules/{.pnpm/d3-force@3.0.0/node_modules/d3-force → d3-force}/src/jiggle.js +0 -0
- /package/lib/node_modules/{.pnpm/d3-force@3.0.0/node_modules/d3-force → d3-force}/src/lcg.js +0 -0
- /package/lib/node_modules/{.pnpm/d3-force@3.0.0/node_modules/d3-force → d3-force}/src/link.js +0 -0
- /package/lib/node_modules/{.pnpm/d3-force@3.0.0/node_modules/d3-force → d3-force}/src/radial.js +0 -0
- /package/lib/node_modules/{.pnpm/d3-force@3.0.0/node_modules/d3-force → d3-force}/src/x.js +0 -0
- /package/lib/node_modules/{.pnpm/d3-force@3.0.0/node_modules/d3-force → d3-force}/src/y.js +0 -0
- /package/lib/node_modules/{.pnpm/d3-force-3d@3.0.6/node_modules/d3-force-3d → d3-force-3d}/src/center.js +0 -0
- /package/lib/node_modules/{.pnpm/d3-force-3d@3.0.6/node_modules/d3-force-3d → d3-force-3d}/src/constant.js +0 -0
- /package/lib/node_modules/{.pnpm/d3-force-3d@3.0.6/node_modules/d3-force-3d → d3-force-3d}/src/jiggle.js +0 -0
- /package/lib/node_modules/{.pnpm/d3-force-3d@3.0.6/node_modules/d3-force-3d → d3-force-3d}/src/lcg.js +0 -0
- /package/lib/node_modules/{.pnpm/d3-force-3d@3.0.6/node_modules/d3-force-3d → d3-force-3d}/src/link.js +0 -0
- /package/lib/node_modules/{.pnpm/d3-force-3d@3.0.6/node_modules/d3-force-3d → d3-force-3d}/src/radial.js +0 -0
- /package/lib/node_modules/{.pnpm/d3-force-3d@3.0.6/node_modules/d3-force-3d → d3-force-3d}/src/x.js +0 -0
- /package/lib/node_modules/{.pnpm/d3-force-3d@3.0.6/node_modules/d3-force-3d → d3-force-3d}/src/y.js +0 -0
- /package/lib/node_modules/{.pnpm/d3-force-3d@3.0.6/node_modules/d3-force-3d → d3-force-3d}/src/z.js +0 -0
- /package/lib/node_modules/{.pnpm/d3-octree@1.1.0/node_modules/d3-octree → d3-octree}/src/add.js +0 -0
- /package/lib/node_modules/{.pnpm/d3-octree@1.1.0/node_modules/d3-octree → d3-octree}/src/cover.js +0 -0
- /package/lib/node_modules/{.pnpm/d3-octree@1.1.0/node_modules/d3-octree → d3-octree}/src/data.js +0 -0
- /package/lib/node_modules/{.pnpm/d3-octree@1.1.0/node_modules/d3-octree → d3-octree}/src/extent.js +0 -0
- /package/lib/node_modules/{.pnpm/d3-octree@1.1.0/node_modules/d3-octree → d3-octree}/src/find.js +0 -0
- /package/lib/node_modules/{.pnpm/d3-octree@1.1.0/node_modules/d3-octree → d3-octree}/src/findAll.js +0 -0
- /package/lib/node_modules/{.pnpm/d3-octree@1.1.0/node_modules/d3-octree → d3-octree}/src/octant.js +0 -0
- /package/lib/node_modules/{.pnpm/d3-octree@1.1.0/node_modules/d3-octree → d3-octree}/src/octree.js +0 -0
- /package/lib/node_modules/{.pnpm/d3-octree@1.1.0/node_modules/d3-octree → d3-octree}/src/remove.js +0 -0
- /package/lib/node_modules/{.pnpm/d3-octree@1.1.0/node_modules/d3-octree → d3-octree}/src/root.js +0 -0
- /package/lib/node_modules/{.pnpm/d3-octree@1.1.0/node_modules/d3-octree → d3-octree}/src/size.js +0 -0
- /package/lib/node_modules/{.pnpm/d3-octree@1.1.0/node_modules/d3-octree → d3-octree}/src/visit.js +0 -0
- /package/lib/node_modules/{.pnpm/d3-octree@1.1.0/node_modules/d3-octree → d3-octree}/src/visitAfter.js +0 -0
- /package/lib/node_modules/{.pnpm/d3-octree@1.1.0/node_modules/d3-octree → d3-octree}/src/x.js +0 -0
- /package/lib/node_modules/{.pnpm/d3-octree@1.1.0/node_modules/d3-octree → d3-octree}/src/y.js +0 -0
- /package/lib/node_modules/{.pnpm/d3-octree@1.1.0/node_modules/d3-octree → d3-octree}/src/z.js +0 -0
- /package/lib/node_modules/{.pnpm/d3-quadtree@3.0.1/node_modules/d3-quadtree → d3-quadtree}/src/add.js +0 -0
- /package/lib/node_modules/{.pnpm/d3-quadtree@3.0.1/node_modules/d3-quadtree → d3-quadtree}/src/cover.js +0 -0
- /package/lib/node_modules/{.pnpm/d3-quadtree@3.0.1/node_modules/d3-quadtree → d3-quadtree}/src/data.js +0 -0
- /package/lib/node_modules/{.pnpm/d3-quadtree@3.0.1/node_modules/d3-quadtree → d3-quadtree}/src/extent.js +0 -0
- /package/lib/node_modules/{.pnpm/d3-quadtree@3.0.1/node_modules/d3-quadtree → d3-quadtree}/src/find.js +0 -0
- /package/lib/node_modules/{.pnpm/d3-quadtree@3.0.1/node_modules/d3-quadtree → d3-quadtree}/src/quad.js +0 -0
- /package/lib/node_modules/{.pnpm/d3-quadtree@3.0.1/node_modules/d3-quadtree → d3-quadtree}/src/quadtree.js +0 -0
- /package/lib/node_modules/{.pnpm/d3-quadtree@3.0.1/node_modules/d3-quadtree → d3-quadtree}/src/remove.js +0 -0
- /package/lib/node_modules/{.pnpm/d3-quadtree@3.0.1/node_modules/d3-quadtree → d3-quadtree}/src/root.js +0 -0
- /package/lib/node_modules/{.pnpm/d3-quadtree@3.0.1/node_modules/d3-quadtree → d3-quadtree}/src/size.js +0 -0
- /package/lib/node_modules/{.pnpm/d3-quadtree@3.0.1/node_modules/d3-quadtree → d3-quadtree}/src/visit.js +0 -0
- /package/lib/node_modules/{.pnpm/d3-quadtree@3.0.1/node_modules/d3-quadtree → d3-quadtree}/src/visitAfter.js +0 -0
- /package/lib/node_modules/{.pnpm/d3-quadtree@3.0.1/node_modules/d3-quadtree → d3-quadtree}/src/x.js +0 -0
- /package/lib/node_modules/{.pnpm/d3-quadtree@3.0.1/node_modules/d3-quadtree → d3-quadtree}/src/y.js +0 -0
- /package/lib/node_modules/{.pnpm/d3-timer@3.0.1/node_modules/d3-timer → d3-timer}/src/timer.js +0 -0
- /package/lib/node_modules/{.pnpm/dagre@0.8.5/node_modules/dagre → dagre}/index.js +0 -0
- /package/lib/node_modules/{.pnpm/dagre@0.8.5/node_modules/dagre → dagre}/lib/acyclic.js +0 -0
- /package/lib/node_modules/{.pnpm/dagre@0.8.5/node_modules/dagre → dagre}/lib/add-border-segments.js +0 -0
- /package/lib/node_modules/{.pnpm/dagre@0.8.5/node_modules/dagre → dagre}/lib/coordinate-system.js +0 -0
- /package/lib/node_modules/{.pnpm/dagre@0.8.5/node_modules/dagre → dagre}/lib/data/list.js +0 -0
- /package/lib/node_modules/{.pnpm/dagre@0.8.5/node_modules/dagre → dagre}/lib/debug.js +0 -0
- /package/lib/node_modules/{.pnpm/dagre@0.8.5/node_modules/dagre → dagre}/lib/greedy-fas.js +0 -0
- /package/lib/node_modules/{.pnpm/dagre@0.8.5/node_modules/dagre → dagre}/lib/layout.js +0 -0
- /package/lib/node_modules/{.pnpm/dagre@0.8.5/node_modules/dagre → dagre}/lib/nesting-graph.js +0 -0
- /package/lib/node_modules/{.pnpm/dagre@0.8.5/node_modules/dagre → dagre}/lib/normalize.js +0 -0
- /package/lib/node_modules/{.pnpm/dagre@0.8.5/node_modules/dagre → dagre}/lib/order/add-subgraph-constraints.js +0 -0
- /package/lib/node_modules/{.pnpm/dagre@0.8.5/node_modules/dagre → dagre}/lib/order/barycenter.js +0 -0
- /package/lib/node_modules/{.pnpm/dagre@0.8.5/node_modules/dagre → dagre}/lib/order/build-layer-graph.js +0 -0
- /package/lib/node_modules/{.pnpm/dagre@0.8.5/node_modules/dagre → dagre}/lib/order/cross-count.js +0 -0
- /package/lib/node_modules/{.pnpm/dagre@0.8.5/node_modules/dagre → dagre}/lib/order/index.js +0 -0
- /package/lib/node_modules/{.pnpm/dagre@0.8.5/node_modules/dagre → dagre}/lib/order/init-order.js +0 -0
- /package/lib/node_modules/{.pnpm/dagre@0.8.5/node_modules/dagre → dagre}/lib/order/resolve-conflicts.js +0 -0
- /package/lib/node_modules/{.pnpm/dagre@0.8.5/node_modules/dagre → dagre}/lib/order/sort-subgraph.js +0 -0
- /package/lib/node_modules/{.pnpm/dagre@0.8.5/node_modules/dagre → dagre}/lib/order/sort.js +0 -0
- /package/lib/node_modules/{.pnpm/dagre@0.8.5/node_modules/dagre → dagre}/lib/parent-dummy-chains.js +0 -0
- /package/lib/node_modules/{.pnpm/dagre@0.8.5/node_modules/dagre → dagre}/lib/position/bk.js +0 -0
- /package/lib/node_modules/{.pnpm/dagre@0.8.5/node_modules/dagre → dagre}/lib/position/index.js +0 -0
- /package/lib/node_modules/{.pnpm/dagre@0.8.5/node_modules/dagre → dagre}/lib/rank/feasible-tree.js +0 -0
- /package/lib/node_modules/{.pnpm/dagre@0.8.5/node_modules/dagre → dagre}/lib/rank/index.js +0 -0
- /package/lib/node_modules/{.pnpm/dagre@0.8.5/node_modules/dagre → dagre}/lib/rank/network-simplex.js +0 -0
- /package/lib/node_modules/{.pnpm/dagre@0.8.5/node_modules/dagre → dagre}/lib/rank/util.js +0 -0
- /package/lib/node_modules/{.pnpm/dagre@0.8.5/node_modules/dagre → dagre}/lib/util.js +0 -0
- /package/lib/node_modules/{.pnpm/dagre@0.8.5/node_modules/dagre → dagre}/lib/version.js +0 -0
- /package/lib/node_modules/{.pnpm/graphlib@2.1.8/node_modules/graphlib → graphlib}/index.js +0 -0
- /package/lib/node_modules/{.pnpm/graphlib@2.1.8/node_modules/graphlib → graphlib}/lib/alg/components.js +0 -0
- /package/lib/node_modules/{.pnpm/graphlib@2.1.8/node_modules/graphlib → graphlib}/lib/alg/dfs.js +0 -0
- /package/lib/node_modules/{.pnpm/graphlib@2.1.8/node_modules/graphlib → graphlib}/lib/alg/dijkstra-all.js +0 -0
- /package/lib/node_modules/{.pnpm/graphlib@2.1.8/node_modules/graphlib → graphlib}/lib/alg/dijkstra.js +0 -0
- /package/lib/node_modules/{.pnpm/graphlib@2.1.8/node_modules/graphlib → graphlib}/lib/alg/find-cycles.js +0 -0
- /package/lib/node_modules/{.pnpm/graphlib@2.1.8/node_modules/graphlib → graphlib}/lib/alg/floyd-warshall.js +0 -0
- /package/lib/node_modules/{.pnpm/graphlib@2.1.8/node_modules/graphlib → graphlib}/lib/alg/index.js +0 -0
- /package/lib/node_modules/{.pnpm/graphlib@2.1.8/node_modules/graphlib → graphlib}/lib/alg/is-acyclic.js +0 -0
- /package/lib/node_modules/{.pnpm/graphlib@2.1.8/node_modules/graphlib → graphlib}/lib/alg/postorder.js +0 -0
- /package/lib/node_modules/{.pnpm/graphlib@2.1.8/node_modules/graphlib → graphlib}/lib/alg/preorder.js +0 -0
- /package/lib/node_modules/{.pnpm/graphlib@2.1.8/node_modules/graphlib → graphlib}/lib/alg/prim.js +0 -0
- /package/lib/node_modules/{.pnpm/graphlib@2.1.8/node_modules/graphlib → graphlib}/lib/alg/tarjan.js +0 -0
- /package/lib/node_modules/{.pnpm/graphlib@2.1.8/node_modules/graphlib → graphlib}/lib/alg/topsort.js +0 -0
- /package/lib/node_modules/{.pnpm/graphlib@2.1.8/node_modules/graphlib → graphlib}/lib/data/priority-queue.js +0 -0
- /package/lib/node_modules/{.pnpm/graphlib@2.1.8/node_modules/graphlib → graphlib}/lib/graph.js +0 -0
- /package/lib/node_modules/{.pnpm/graphlib@2.1.8/node_modules/graphlib → graphlib}/lib/index.js +0 -0
- /package/lib/node_modules/{.pnpm/graphlib@2.1.8/node_modules/graphlib → graphlib}/lib/json.js +0 -0
- /package/lib/node_modules/{.pnpm/graphlib@2.1.8/node_modules/graphlib → graphlib}/lib/version.js +0 -0
- /package/lib/node_modules/{.pnpm/is-any-array@2.0.1/node_modules/is-any-array → is-any-array}/lib-esm/index.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_DataView.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_Hash.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_ListCache.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_Map.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_MapCache.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_Promise.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_Set.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_SetCache.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_Stack.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_Symbol.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_Uint8Array.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_WeakMap.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_apply.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_arrayEach.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_arrayFilter.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_arrayIncludes.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_arrayIncludesWith.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_arrayLikeKeys.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_arrayMap.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_arrayPush.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_arrayReduce.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_arraySome.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_asciiSize.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_assignMergeValue.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_assignValue.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_assocIndexOf.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_baseAssign.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_baseAssignIn.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_baseAssignValue.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_baseClone.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_baseCreate.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_baseEach.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_baseExtremum.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_baseFilter.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_baseFindIndex.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_baseFlatten.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_baseFor.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_baseForOwn.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_baseGet.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_baseGetAllKeys.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_baseGetTag.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_baseGt.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_baseHas.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_baseHasIn.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_baseIndexOf.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_baseIsArguments.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_baseIsEqual.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_baseIsEqualDeep.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_baseIsMap.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_baseIsMatch.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_baseIsNaN.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_baseIsNative.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_baseIsSet.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_baseIsTypedArray.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_baseIteratee.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_baseKeys.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_baseKeysIn.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_baseLt.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_baseMap.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_baseMatches.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_baseMatchesProperty.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_baseMerge.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_baseMergeDeep.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_baseOrderBy.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_basePick.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_basePickBy.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_baseProperty.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_basePropertyDeep.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_baseRange.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_baseReduce.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_baseRest.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_baseSet.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_baseSetToString.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_baseSortBy.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_baseTimes.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_baseToString.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_baseTrim.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_baseUnary.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_baseUniq.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_baseValues.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_baseZipObject.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_cacheHas.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_castFunction.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_castPath.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_cloneArrayBuffer.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_cloneDataView.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_cloneRegExp.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_cloneSymbol.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_cloneTypedArray.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_compareAscending.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_compareMultiple.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_copyArray.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_copyObject.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_copySymbols.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_copySymbolsIn.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_coreJsData.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_createAssigner.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_createBaseEach.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_createBaseFor.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_createFind.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_createRange.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_createSet.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_defineProperty.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_equalArrays.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_equalByTag.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_equalObjects.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_flatRest.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_getAllKeys.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_getAllKeysIn.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_getMapData.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_getMatchData.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_getNative.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_getPrototype.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_getRawTag.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_getSymbols.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_getSymbolsIn.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_getTag.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_getValue.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_hasPath.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_hasUnicode.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_hashClear.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_hashDelete.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_hashGet.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_hashHas.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_hashSet.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_initCloneArray.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_initCloneByTag.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_initCloneObject.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_isFlattenable.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_isIndex.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_isIterateeCall.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_isKey.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_isKeyable.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_isMasked.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_isPrototype.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_isStrictComparable.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_listCacheClear.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_listCacheDelete.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_listCacheGet.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_listCacheHas.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_listCacheSet.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_mapCacheClear.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_mapCacheDelete.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_mapCacheGet.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_mapCacheHas.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_mapCacheSet.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_mapToArray.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_matchesStrictComparable.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_memoizeCapped.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_nativeCreate.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_nativeKeys.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_nativeKeysIn.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_objectToString.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_overArg.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_overRest.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_root.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_safeGet.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_setCacheAdd.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_setCacheHas.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_setToArray.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_setToString.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_shortOut.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_stackClear.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_stackDelete.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_stackGet.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_stackHas.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_stackSet.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_strictIndexOf.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_stringSize.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_stringToPath.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_toKey.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_toSource.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_trimmedEndIndex.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_unicodeSize.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/clone.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/cloneDeep.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/constant.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/defaults.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/each.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/eq.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/filter.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/find.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/findIndex.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/flatten.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/forEach.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/forIn.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/get.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/has.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/hasIn.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/identity.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/isArguments.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/isArray.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/isArrayLike.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/isArrayLikeObject.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/isEmpty.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/isFunction.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/isLength.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/isMap.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/isObject.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/isObjectLike.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/isPlainObject.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/isSet.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/isString.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/isSymbol.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/isTypedArray.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/isUndefined.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/keys.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/keysIn.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/last.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/map.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/mapValues.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/max.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/memoize.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/merge.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/min.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/minBy.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/noop.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/now.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/pick.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/property.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/range.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/reduce.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/size.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/sortBy.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/stubArray.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/stubFalse.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/toFinite.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/toInteger.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/toNumber.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/toPlainObject.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/toString.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/transform.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/union.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/uniqueId.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/values.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/zipObject.js +0 -0
- /package/lib/node_modules/{.pnpm/@rollup_plugin-typescript@12.3.0_rollup@4.54.0_tslib@2.8.1_typescript@4.9.5/node_modules/tslib → tslib}/tslib.es6.js +0 -0
- /package/src/{antv-dagre → algorithm/antv-dagre}/data/list.ts +0 -0
- /package/src/{antv-dagre → algorithm/antv-dagre}/rank/index.ts +0 -0
- /package/src/{d3-force-3d → algorithm/d3-force-3d}/index.ts +0 -0
- /package/src/{d3-force-3d → algorithm/d3-force-3d}/types.ts +0 -0
- /package/src/{d3-force-3d → algorithm/d3-force-3d}/typing.d.ts +0 -0
- /package/src/{force → algorithm/force}/typing.d.ts +0 -0
- /package/src/{force-atlas2 → algorithm/force-atlas2}/body.ts +0 -0
- /package/src/{force-atlas2 → algorithm/force-atlas2}/quad-tree.ts +0 -0
package/dist/index.min.js
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).Layout={})}(this,function(t){"use strict";var e="undefined"!=typeof document?document.currentScript:null;function r(t,e,r,n){return new(r||(r=Promise))(function(o,i){function s(t){try{u(n.next(t))}catch(t){i(t)}}function a(t){try{u(n.throw(t))}catch(t){i(t)}}function u(t){var e;t.done?o(t.value):(e=t.value,e instanceof r?e:new r(function(t){t(e)})).then(s,a)}u((n=n.apply(t,e||[])).next())})}"function"==typeof SuppressedError&&SuppressedError;function n(t){return"function"==typeof t}function o(t){return null==t}function i(t){return Array.isArray(t)}var s=function(t){var e=typeof t;return null!==t&&"object"===e||"function"===e};var a={}.toString,u=function(t,e){return a.call(t)==="[object "+e+"]"},c=function(t){if(!function(t){return"object"==typeof t&&null!==t}(t)||!u(t,"Object"))return!1;if(null===Object.getPrototypeOf(t))return!0;for(var e=t;null!==Object.getPrototypeOf(e);)e=Object.getPrototypeOf(e);return Object.getPrototypeOf(t)===e};function h(t){return"string"==typeof t}function l(t){return"number"==typeof t}var d={}.toString,f=Object.prototype,g=function(t){if("object"!=typeof t||null===t)return t;var e;if(i(t)){e=[];for(var r=0,n=t.length;r<n;r++)"object"==typeof t[r]&&null!=t[r]?e[r]=g(t[r]):e[r]=t[r]}else for(var o in e={},t)"object"==typeof t[o]&&null!=t[o]?e[o]=g(t[o]):e[o]=t[o];return e};function p(t,e){if(Object.hasOwn)return Object.hasOwn(t,e);if(null==t)throw new TypeError("Cannot convert undefined or null to object");return Object.prototype.hasOwnProperty.call(Object(t),e)}function v(t,e,r,n){for(var o in r=r||0,n=n||5,e)if(p(e,o)){var s=e[o];null!==s&&c(s)?(c(t[o])||(t[o]={}),r<n?v(t[o],s,r+1,n):t[o]=e[o]):i(s)?(t[o]=[],t[o]=t[o].concat(s)):void 0!==s&&(t[o]=s)}}var m=Object.prototype.hasOwnProperty;function y(t){if(o(t))return!0;if(function(t){return null!==t&&"function"!=typeof t&&isFinite(t.length)}(t))return!t.length;var e=function(t){return d.call(t).replace(/^\[object /,"").replace(/]$/,"")}(t);if("Map"===e||"Set"===e)return!t.size;if(function(t){var e=t&&t.constructor;return t===("function"==typeof e&&e.prototype||f)}(t))return!Object.keys(t).length;for(var r in t)if(m.call(t,r))return!1;return!0}var w=Object.prototype.hasOwnProperty,x=function(t,e){if(null===t||!c(t))return{};var r={};return function(t,e){if(t)if(i(t))for(var r=0,n=t.length;r<n&&!1!==e(t[r],r);r++);else if(s(t))for(var o in t)if(t.hasOwnProperty(o)&&!1===e(t[o],o))break}(e,function(e){w.call(t,e)&&(r[e]=t[e])}),r};
|
|
1
|
+
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).Layout={})}(this,function(t){"use strict";var e="undefined"!=typeof document?document.currentScript:null;function r(t,e,r,n){return new(r||(r=Promise))(function(o,i){function s(t){try{u(n.next(t))}catch(t){i(t)}}function a(t){try{u(n.throw(t))}catch(t){i(t)}}function u(t){var e;t.done?o(t.value):(e=t.value,e instanceof r?e:new r(function(t){t(e)})).then(s,a)}u((n=n.apply(t,e||[])).next())})}"function"==typeof SuppressedError&&SuppressedError;function n(t){return"function"==typeof t}function o(t){return null==t}function i(t){return Array.isArray(t)}var s=function(t){var e=typeof t;return null!==t&&"object"===e||"function"===e};var a={}.toString,u=function(t,e){return a.call(t)==="[object "+e+"]"},c=function(t){if(!function(t){return"object"==typeof t&&null!==t}(t)||!u(t,"Object"))return!1;if(null===Object.getPrototypeOf(t))return!0;for(var e=t;null!==Object.getPrototypeOf(e);)e=Object.getPrototypeOf(e);return Object.getPrototypeOf(t)===e};function h(t){return"string"==typeof t}function l(t){return"number"==typeof t}var d={}.toString,f=Object.prototype,g=function(t){if("object"!=typeof t||null===t)return t;var e;if(i(t)){e=[];for(var r=0,n=t.length;r<n;r++)"object"==typeof t[r]&&null!=t[r]?e[r]=g(t[r]):e[r]=t[r]}else for(var o in e={},t)"object"==typeof t[o]&&null!=t[o]?e[o]=g(t[o]):e[o]=t[o];return e};function p(t,e){if(Object.hasOwn)return Object.hasOwn(t,e);if(null==t)throw new TypeError("Cannot convert undefined or null to object");return Object.prototype.hasOwnProperty.call(Object(t),e)}function v(t,e,r,n){for(var o in r=r||0,n=n||5,e)if(p(e,o)){var s=e[o];null!==s&&c(s)?(c(t[o])||(t[o]={}),r<n?v(t[o],s,r+1,n):t[o]=e[o]):i(s)?(t[o]=[],t[o]=t[o].concat(s)):void 0!==s&&(t[o]=s)}}var m=Object.prototype.hasOwnProperty;function y(t){if(o(t))return!0;if(function(t){return null!==t&&"function"!=typeof t&&isFinite(t.length)}(t))return!t.length;var e=function(t){return d.call(t).replace(/^\[object /,"").replace(/]$/,"")}(t);if("Map"===e||"Set"===e)return!t.size;if(function(t){var e=t&&t.constructor;return t===("function"==typeof e&&e.prototype||f)}(t))return!Object.keys(t).length;for(var r in t)if(m.call(t,r))return!1;return!0}var w=Object.prototype.hasOwnProperty,x=function(t,e){if(null===t||!c(t))return{};var r={};return function(t,e){if(t)if(i(t))for(var r=0,n=t.length;r<n&&!1!==e(t[r],r);r++);else if(s(t))for(var o in t)if(t.hasOwnProperty(o)&&!1===e(t[o],o))break}(e,function(e){w.call(t,e)&&(r[e]=t[e])}),r};const b=Array.isArray;function E(t,e,r=2){if(1===t.nodeCount()){const n=t.firstNode();n.x=e[0],n.y=e[1],3===r&&(n.z=e[2]||0)}}const M=(t,e)=>{const r=t.nodeCount(),n=Array.from({length:r},()=>[]),o={};let i=0;return t.forEachNode(t=>{o[t.id]=i++}),t.forEachEdge(t=>{const r=o[t.source],i=o[t.target];null!=r&&null!=i&&(n[r].push(i),e||n[i].push(r))}),n},N=(t,e)=>{const r=t.length,n=new Array(r);for(let o=0;o<r;o++){const r=t[o],i=r.length,s=new Array(i);for(let t=0;t<i;t++)s[t]=r[t]*e;n[o]=s}return n},_=(t,e,r,n="TB",o,i={})=>{if(!(null==e?void 0:e.length))return;const{stopBranchFn:s,stopAllFn:a}=i;for(let u=0;u<e.length;u++){const c=e[u];if(t.hasNode(c.id)&&!(null==s?void 0:s(c))){if(null==a?void 0:a(c))return;"TB"===n&&r(c),_(t,t.getChildren(c.id,o),r,n,o,i),"TB"!==n&&r(c)}}};function k(t){const e=t.length;new Array(e).fill(0);const r=Array.from({length:e},()=>new Array(e).fill(1/0));for(let n=0;n<e;n++)r[n]=S(t,n);return r}function S(t,e){const r=t.length,n=new Array(r).fill(1/0);n[e]=0;const o=new z;for(o.push([0,e]);!o.empty();){const[e,r]=o.pop();if(e!==n[r])continue;const i=t[r];for(let t=0;t<i.length;t++){const r=i[t],s=e+1;s<n[r]&&(n[r]=s,o.push([s,r]))}}return n}class z{constructor(){this.data=[]}push(t){this.data.push(t),this.bubbleUp(this.data.length-1)}pop(){const t=this.data[0],e=this.data.pop();return this.data.length>0&&(this.data[0]=e,this.bubbleDown(0)),t}empty(){return 0===this.data.length}bubbleUp(t){const e=this.data;for(;t>0;){const r=t-1>>1;if(e[r][0]<=e[t][0])break;[e[r],e[t]]=[e[t],e[r]],t=r}}bubbleDown(t){const e=this.data,r=e.length;for(;;){const n=2*t+1,o=2*t+2;let i=t;if(n<r&&e[n][0]<e[i][0]&&(i=n),o<r&&e[o][0]<e[i][0]&&(i=o),i===t)break;[e[t],e[i]]=[e[i],e[t]],t=i}}}function A(t,e){return function(t,e,r){for(var n=0,o=h(e)?e.split("."):e;t&&n<o.length;)t=t[o[n++]];return void 0===t||n<o.length?r:t}(t,String(e).split("."))}function O(t,...e){return e.forEach(e=>{e&&Object.keys(e).forEach(r=>{const n=e[r];void 0!==n&&(t[r]=n)})}),t}function j(t,e){const r=t.nodes();return r.sort(e),t.setNodeOrder(r),t}function C(t){return j(t,(e,r)=>{const n=t.degree(e.id);return t.degree(r.id)-n})}function I(t){return j(t,(t,e)=>{const r=t.id,n=e.id;return"number"==typeof r&&"number"==typeof n?r-n:String(r).localeCompare(String(n))})}function R(t,e){return j(t,(r,n)=>{const o=t.originalNode(r.id),i=t.originalNode(n.id);return e(o,i)})}function P(t,e=!1){const r=t.nodeCount();if(0===r)return t;const n=t.nodes(),o=[n[0]],i={};i[n[0].id]=!0;let s=0,a=0;return t.forEachNode(u=>{if(0!==a){const c=t.degree(u.id,"both"),h=a<r-1?t.degree(n[a+1].id,"both"):0,l=o[s].id,d=t.neighbors(l,"both").includes(u.id);if(a!==r-1&&c===h&&!d||i[u.id]){const s=e?t.successors(l):t.neighbors(l);let a=!1;for(let e=0;e<s.length;e++){const r=s[e],n=t.node(r);if(n&&t.degree(r)===t.degree(u.id)&&!i[r]){o.push(n),i[r]=!0,a=!0;break}}let c=0;for(;!a&&(i[n[c].id]||(o.push(n[c]),i[n[c].id]=!0,a=!0),c++,c!==r););}else o.push(u),i[u.id]=!0,s++}a++}),t.setNodeOrder(o),t}function T(t){var e;return[t.x,t.y,null!==(e=t.z)&&void 0!==e?e:0]}function F(t){if(!t)return[0,0,0];if(l(t))return[t,t,t];if(Array.isArray(t)&&0===t.length)return[0,0,0];const[e,r=e,n=e]=t;return[e,r,n]}const L=t=>{const{width:e,height:r,center:n}=t,o=null!=e?e:"undefined"!=typeof window?window.innerWidth:0,i=null!=r?r:"undefined"!=typeof window?window.innerHeight:0;return{width:o,height:i,center:null!=n?n:[o/2,i/2]}};function D(t,e){return n(t)?t:l(t)?()=>t:()=>e}function q(t,e=10){return t?n(t)?t:l(t)||Array.isArray(t)?()=>t:s(t)&&t.width&&t.height?()=>[t.width,t.height]:()=>e:()=>e}const V=(t,e,r=10)=>{const n=D(e,0),o=q(t,r);return t=>{const e=o(t),r=n(t);return Math.max(...F(e))+r}};class B{constructor(t,e={}){this.edgeIdCounter=new Map,this.nodeMap=function(t,e){if(!t)throw new Error("Data.nodes is required");const r=new Map;for(const n of t){const t={_original:n};for(const e of $){const r=n[e];o(r)||(t[e]=r)}if(e){const r=e(n);for(const e in r){const n=r[e];o(n)||(t[e]=n)}}if(o(t.id))throw new Error("Node is missing id field");r.set(t.id,t)}return r}(t.nodes,e.node),this.edgeMap=function(t,e,r){const n=new Map;for(const i of t){const t={_original:i};for(const e of G){const r=i[e];o(r)||(t[e]=r)}if(e){const r=e(i);for(const e in r){const n=r[e];o(n)||(t[e]=n)}}if(o(t.source)||o(t.target))throw new Error("Edge is missing source or target field");o(t.id)&&(t.id=null==r?void 0:r(i)),n.set(t.id,t)}return n}(t.edges||[],e.edge,this.getEdgeId.bind(this))}data(){return{nodes:this.nodeMap,edges:this.edgeMap}}replace(t){this.nodeMap=t.nodes,this.edgeMap=t.edges,this.clearCache()}nodes(){return Array.from(this.nodeMap.values())}node(t){return this.nodeMap.get(t)}nodeAt(t){this.indexNodeCache||this.buildNodeIndexCache();const e=this.indexNodeCache.get(t);return e?this.nodeMap.get(e):void 0}nodeIndexOf(t){var e;return this.nodeIndexCache||this.buildNodeIndexCache(),null!==(e=this.nodeIndexCache.get(t))&&void 0!==e?e:-1}firstNode(){return this.nodeMap.values().next().value}forEachNode(t){let e=0;this.nodeMap.forEach(r=>t(r,e++))}originalNode(t){const e=this.nodeMap.get(t);return null==e?void 0:e._original}nodeCount(){return this.nodeMap.size}edges(){return Array.from(this.edgeMap.values())}edge(t){return this.edgeMap.get(t)}firstEdge(){return this.edgeMap.values().next().value}forEachEdge(t){let e=0;this.edgeMap.forEach(r=>t(r,e++))}originalEdge(t){const e=this.edgeMap.get(t);return null==e?void 0:e._original}edgeCount(){return this.edgeMap.size}getEdgeId(t){if(t.id)return t.id;const e=`${t.source}-${t.target}`,r=this.edgeIdCounter.get(e)||0,n=0===r?e:`${e}-${r}`;return this.edgeIdCounter.set(e,r+1),n}degree(t,e="both"){this.degreeCache||this.buildDegreeCache();const r=this.degreeCache.get(t);return r?r[e]:0}neighbors(t,e="both"){if(this.outAdjacencyCache&&this.inAdjacencyCache||this.buildAdjacencyCache(),"out"===e)return Array.from(this.outAdjacencyCache.get(t)||[]);if("in"===e)return Array.from(this.inAdjacencyCache.get(t)||[]);if(this.bothAdjacencyCache)return Array.from(this.bothAdjacencyCache.get(t)||[]);const r=this.inAdjacencyCache.get(t),n=this.outAdjacencyCache.get(t);if(!r&&!n)return[];if(!r)return Array.from(n);if(!n)return Array.from(r);const o=new Set;return r.forEach(t=>o.add(t)),n.forEach(t=>o.add(t)),Array.from(o)}successors(t){return this.neighbors(t,"out")}predecessors(t){return this.neighbors(t,"in")}setNodeOrder(t){const e=new Map;for(const r of t)e.set(r.id,r);this.nodeMap=e,this.nodeIndexCache=void 0,this.indexNodeCache=void 0}clearCache(){this.degreeCache=void 0,this.inAdjacencyCache=void 0,this.outAdjacencyCache=void 0,this.bothAdjacencyCache=void 0,this.nodeIndexCache=void 0,this.indexNodeCache=void 0}buildDegreeCache(){this.degreeCache=new Map;for(const t of this.edges()){const{source:e,target:r}=t;if(t.source===t.target)continue;this.degreeCache.has(e)||this.degreeCache.set(e,{in:0,out:0,both:0});const n=this.degreeCache.get(t.source);n&&(n.out++,n.both++),this.degreeCache.has(r)||this.degreeCache.set(r,{in:0,out:0,both:0});const o=this.degreeCache.get(t.target);o&&(o.in++,o.both++)}}buildAdjacencyCache(){this.inAdjacencyCache=new Map,this.outAdjacencyCache=new Map;for(const t of this.edges())this.nodeMap.has(t.source)&&this.nodeMap.has(t.target)&&(this.outAdjacencyCache.has(t.source)||this.outAdjacencyCache.set(t.source,new Set),this.outAdjacencyCache.get(t.source).add(t.target),this.inAdjacencyCache.has(t.target)||this.inAdjacencyCache.set(t.target,new Set),this.inAdjacencyCache.get(t.target).add(t.source))}buildNodeIndexCache(){this.nodeIndexCache=new Map,this.indexNodeCache=new Map;let t=0;this.nodeMap.forEach((e,r)=>{this.nodeIndexCache.set(r,t),this.indexNodeCache.set(t,r),t++})}destroy(){this.clearCache(),this.nodeMap.clear(),this.edgeMap.clear(),this.edgeIdCounter.clear()}}const $=["id","x","y","z","vx","vy","vz","fx","fy","fz","parentId"],G=["id","source","target","points"];function U(t,e,r,n=2){t.forEachNode(t=>{o(t.x)&&(t.x=Math.random()*e),o(t.y)&&(t.y=Math.random()*r),3===n&&o(t.z)&&(t.z=Math.random()*Math.min(e,r))})}class W{constructor(t,e={}){this.graph=new B(t,e)}export(){return this.graph.data()}replace(t){this.graph.replace(t)}forEachNode(t){this.graph.forEachNode(t)}forEachEdge(t){this.graph.forEachEdge((e,r)=>{e.sourceNode=this.graph.node(e.source),e.targetNode=this.graph.node(e.target),t(e,r)})}destroy(){this.graph.destroy()}}
|
|
2
2
|
/**
|
|
3
3
|
* @license
|
|
4
4
|
* Copyright 2019 Google LLC
|
|
5
5
|
* SPDX-License-Identifier: Apache-2.0
|
|
6
|
-
*/
|
|
7
|
-
const b=Symbol("Comlink.proxy"),E=Symbol("Comlink.endpoint"),M=Symbol("Comlink.releaseProxy"),N=Symbol("Comlink.finalizer"),_=Symbol("Comlink.thrown"),k=t=>"object"==typeof t&&null!==t||"function"==typeof t,S=new Map([["proxy",{canHandle:t=>k(t)&&t[b],serialize(t){const{port1:e,port2:r}=new MessageChannel;return z(t,e),[r,[r]]},deserialize:t=>(t.start(),O(t))}],["throw",{canHandle:t=>k(t)&&_ in t,serialize({value:t}){let e;return e=t instanceof Error?{isError:!0,value:{message:t.message,name:t.name,stack:t.stack}}:{isError:!1,value:t},[e,[]]},deserialize(t){if(t.isError)throw Object.assign(new Error(t.value.message),t.value);throw t.value}}]]);function z(t,e=globalThis,r=["*"]){e.addEventListener("message",function n(o){if(!o||!o.data)return;if(!function(t,e){for(const r of t){if(e===r||"*"===r)return!0;if(r instanceof RegExp&&r.test(e))return!0}return!1}(r,o.origin))return void console.warn(`Invalid origin '${o.origin}' for comlink proxy`);const{id:i,type:s,path:a}=Object.assign({path:[]},o.data),u=(o.data.argumentList||[]).map(D);let c;try{const e=a.slice(0,-1).reduce((t,e)=>t[e],t),r=a.reduce((t,e)=>t[e],t);switch(s){case"GET":c=r;break;case"SET":e[a.slice(-1)[0]]=D(o.data.value),c=!0;break;case"APPLY":c=r.apply(e,u);break;case"CONSTRUCT":c=function(t){return Object.assign(t,{[b]:!0})}(new r(...u));break;case"ENDPOINT":{const{port1:e,port2:r}=new MessageChannel;z(t,r),c=function(t,e){return F.set(t,e),t}(e,[e])}break;case"RELEASE":c=void 0;break;default:return}}catch(t){c={value:t,[_]:0}}Promise.resolve(c).catch(t=>({value:t,[_]:0})).then(r=>{const[o,a]=L(r);e.postMessage(Object.assign(Object.assign({},o),{id:i}),a),"RELEASE"===s&&(e.removeEventListener("message",n),A(e),N in t&&"function"==typeof t[N]&&t[N]())}).catch(t=>{const[r,n]=L({value:new TypeError("Unserializable return value"),[_]:0});e.postMessage(Object.assign(Object.assign({},r),{id:i}),n)})}),e.start&&e.start()}function A(t){(function(t){return"MessagePort"===t.constructor.name})(t)&&t.close()}function O(t,e){const r=new Map;return t.addEventListener("message",function(t){const{data:e}=t;if(!e||!e.id)return;const n=r.get(e.id);if(n)try{n(e)}finally{r.delete(e.id)}}),P(t,r,[],e)}function j(t){if(t)throw new Error("Proxy has been released and is not useable")}function C(t){return q(t,new Map,{type:"RELEASE"}).then(()=>{A(t)})}const I=new WeakMap,R="FinalizationRegistry"in globalThis&&new FinalizationRegistry(t=>{const e=(I.get(t)||0)-1;I.set(t,e),0===e&&C(t)});function P(t,e,r=[],n=function(){}){let o=!1;const i=new Proxy(n,{get(n,s){if(j(o),s===M)return()=>{!function(t){R&&R.unregister(t)}(i),C(t),e.clear(),o=!0};if("then"===s){if(0===r.length)return{then:()=>i};const n=q(t,e,{type:"GET",path:r.map(t=>t.toString())}).then(D);return n.then.bind(n)}return P(t,e,[...r,s])},set(n,i,s){j(o);const[a,u]=L(s);return q(t,e,{type:"SET",path:[...r,i].map(t=>t.toString()),value:a},u).then(D)},apply(n,i,s){j(o);const a=r[r.length-1];if(a===E)return q(t,e,{type:"ENDPOINT"}).then(D);if("bind"===a)return P(t,e,r.slice(0,-1));const[u,c]=T(s);return q(t,e,{type:"APPLY",path:r.map(t=>t.toString()),argumentList:u},c).then(D)},construct(n,i){j(o);const[s,a]=T(i);return q(t,e,{type:"CONSTRUCT",path:r.map(t=>t.toString()),argumentList:s},a).then(D)}});return function(t,e){const r=(I.get(e)||0)+1;I.set(e,r),R&&R.register(t,e,t)}(i,t),i}function T(t){const e=t.map(L);return[e.map(t=>t[0]),(r=e.map(t=>t[1]),Array.prototype.concat.apply([],r))];var r}const F=new WeakMap;function L(t){for(const[e,r]of S)if(r.canHandle(t)){const[n,o]=r.serialize(t);return[{type:"HANDLER",name:e,value:n},o]}return[{type:"RAW",value:t},F.get(t)||[]]}function D(t){switch(t.type){case"HANDLER":return S.get(t.name).deserialize(t.value);case"RAW":return t.value}}function q(t,e,r,n){return new Promise(o=>{const i=new Array(4).fill(0).map(()=>Math.floor(Math.random()*Number.MAX_SAFE_INTEGER).toString(16)).join("-");e.set(i,o),t.start&&t.start(),t.postMessage(Object.assign({id:i},r),n)})}class V{constructor(){this.worker=null,this.workerApi=null}execute(t,e,n){return r(this,void 0,void 0,function*(){if(this.worker||(yield this.initWorker()),!this.workerApi)throw new Error("Worker API not initialized");return yield this.workerApi.execute(t,e,n)})}destroy(){this.workerApi&&this.workerApi.destroy(),this.worker&&(this.worker.terminate(),this.worker=null,this.workerApi=null)}initWorker(){return r(this,void 0,void 0,function*(){const t=this.resolveWorkerPath(),e=t.includes("/lib/")||t.endsWith(".mjs")?"module":"classic";this.worker=new Worker(t,{type:e}),this.workerApi=O(this.worker)})}resolveWorkerPath(){if(void 0!=={url:"undefined"==typeof document&&"undefined"==typeof location?require("url").pathToFileURL(__filename).href:"undefined"==typeof document?location.href:e&&"SCRIPT"===e.tagName.toUpperCase()&&e.src||new URL("index.min.js",document.baseURI).href}&&("undefined"==typeof document&&"undefined"==typeof location?require("url").pathToFileURL(__filename).href:"undefined"==typeof document?location.href:e&&"SCRIPT"===e.tagName.toUpperCase()&&e.src||new URL("index.min.js",document.baseURI).href)){return new URL("undefined"==typeof document&&"undefined"==typeof location?require("url").pathToFileURL(__filename).href:"undefined"==typeof document?location.href:e&&"SCRIPT"===e.tagName.toUpperCase()&&e.src||new URL("index.min.js",document.baseURI).href).href.replace(/\/[^/]+\.js$/,"/worker.js")}if("undefined"!=typeof document){const t=document.getElementsByTagName("script");for(let e=t.length-1;e>=0;e--){const r=t[e].src;if(r&&(r.includes("index.js")||r.includes("index.min.js")))return r.replace(/index(\.min)?\.js/,"worker.js")}}return"./worker.js"}}const B=Array.isArray;function $(t,e,r=2){if(1===t.nodeCount()){const n=t.firstNode();n.x=e[0],n.y=e[1],3===r&&(n.z=e[2]||0)}}const G=(t,e)=>{const r=t.nodeCount(),n=Array.from({length:r},()=>[]),o={};let i=0;return t.forEachNode(t=>{o[t.id]=i++}),t.forEachEdge(t=>{const r=o[t.source],i=o[t.target];null!=r&&null!=i&&(n[r].push(i),e||n[i].push(r))}),n},U=(t,e)=>{const r=t.length,n=new Array(r);for(let o=0;o<r;o++){const r=t[o],i=r.length,s=new Array(i);for(let t=0;t<i;t++)s[t]=r[t]*e;n[o]=s}return n},W=(t,e,r,n="TB",o,i={})=>{if(!(null==e?void 0:e.length))return;const{stopBranchFn:s,stopAllFn:a}=i;for(let u=0;u<e.length;u++){const c=e[u];if(t.hasNode(c.id)&&!(null==s?void 0:s(c))){if(null==a?void 0:a(c))return;"TB"===n&&r(c),W(t,t.getChildren(c.id,o),r,n,o,i),"TB"!==n&&r(c)}}};function Y(t){const e=t.length;new Array(e).fill(0);const r=Array.from({length:e},()=>new Array(e).fill(1/0));for(let n=0;n<e;n++)r[n]=H(t,n);return r}function H(t,e){const r=t.length,n=new Array(r).fill(1/0);n[e]=0;const o=new X;for(o.push([0,e]);!o.empty();){const[e,r]=o.pop();if(e!==n[r])continue;const i=t[r];for(let t=0;t<i.length;t++){const r=i[t],s=e+1;s<n[r]&&(n[r]=s,o.push([s,r]))}}return n}class X{constructor(){this.data=[]}push(t){this.data.push(t),this.bubbleUp(this.data.length-1)}pop(){const t=this.data[0],e=this.data.pop();return this.data.length>0&&(this.data[0]=e,this.bubbleDown(0)),t}empty(){return 0===this.data.length}bubbleUp(t){const e=this.data;for(;t>0;){const r=t-1>>1;if(e[r][0]<=e[t][0])break;[e[r],e[t]]=[e[t],e[r]],t=r}}bubbleDown(t){const e=this.data,r=e.length;for(;;){const n=2*t+1,o=2*t+2;let i=t;if(n<r&&e[n][0]<e[i][0]&&(i=n),o<r&&e[o][0]<e[i][0]&&(i=o),i===t)break;[e[t],e[i]]=[e[i],e[t]],t=i}}}class Q{constructor(t,e={}){this.edgeIdCounter=new Map,this.nodeMap=function(t,e){if(!t)throw new Error("Data.nodes is required");const r=new Map;for(const n of t){const t={_original:n};for(const e of J){const r=n[e];o(r)||(t[e]=r)}if(e){const r=e(n);for(const e in r){const n=r[e];o(n)||(t[e]=n)}}if(o(t.id))throw new Error("Node is missing id field");r.set(t.id,t)}return r}(t.nodes,e.node),this.edgeMap=function(t,e,r){const n=new Map;for(const i of t){const t={_original:i};for(const e of K){const r=i[e];o(r)||(t[e]=r)}if(e){const r=e(i);for(const e in r){const n=r[e];o(n)||(t[e]=n)}}if(o(t.source)||o(t.target))throw new Error("Edge is missing source or target field");o(t.id)&&(t.id=null==r?void 0:r(i)),n.set(t.id,t)}return n}(t.edges||[],e.edge,this.getEdgeId.bind(this))}data(){return{nodes:this.nodeMap,edges:this.edgeMap}}apply(t){this.nodeMap=t.nodes,this.edgeMap=t.edges,this.clearCache()}nodes(){return Array.from(this.nodeMap.values())}node(t){return this.nodeMap.get(t)}nodeAt(t){this.indexNodeCache||this.buildNodeIndexCache();const e=this.indexNodeCache.get(t);return e?this.nodeMap.get(e):void 0}nodeIndexOf(t){var e;return this.nodeIndexCache||this.buildNodeIndexCache(),null!==(e=this.nodeIndexCache.get(t))&&void 0!==e?e:-1}firstNode(){return this.nodeMap.values().next().value}forEachNode(t){let e=0;this.nodeMap.forEach(r=>t(r,e++))}originalNode(t){const e=this.nodeMap.get(t);return null==e?void 0:e._original}nodeCount(){return this.nodeMap.size}edges(){return Array.from(this.edgeMap.values())}edge(t){return this.edgeMap.get(t)}firstEdge(){return this.edgeMap.values().next().value}forEachEdge(t){let e=0;this.edgeMap.forEach(r=>t(r,e++))}originalEdge(t){const e=this.edgeMap.get(t);return null==e?void 0:e._original}edgeCount(){return this.edgeMap.size}getEdgeId(t){if(t.id)return t.id;const e=`${t.source}-${t.target}`,r=this.edgeIdCounter.get(e)||0,n=0===r?e:`${e}-${r}`;return this.edgeIdCounter.set(e,r+1),n}degree(t,e="both"){this.degreeCache||this.buildDegreeCache();const r=this.degreeCache.get(t);return r?r[e]:0}neighbors(t,e="both"){if(this.outAdjacencyCache&&this.inAdjacencyCache||this.buildAdjacencyCache(),"out"===e)return Array.from(this.outAdjacencyCache.get(t)||[]);if("in"===e)return Array.from(this.inAdjacencyCache.get(t)||[]);if(this.bothAdjacencyCache)return Array.from(this.bothAdjacencyCache.get(t)||[]);const r=this.inAdjacencyCache.get(t),n=this.outAdjacencyCache.get(t);if(!r&&!n)return[];if(!r)return Array.from(n);if(!n)return Array.from(r);const o=new Set;return r.forEach(t=>o.add(t)),n.forEach(t=>o.add(t)),Array.from(o)}successors(t){return this.neighbors(t,"out")}predecessors(t){return this.neighbors(t,"in")}clearCache(){this.degreeCache=void 0,this.inAdjacencyCache=void 0,this.outAdjacencyCache=void 0,this.bothAdjacencyCache=void 0,this.nodeIndexCache=void 0,this.indexNodeCache=void 0}buildDegreeCache(){this.degreeCache=new Map;for(const t of this.edges()){const{source:e,target:r}=t;if(t.source===t.target)continue;this.degreeCache.has(e)||this.degreeCache.set(e,{in:0,out:0,both:0});const n=this.degreeCache.get(t.source);n&&(n.out++,n.both++),this.degreeCache.has(r)||this.degreeCache.set(r,{in:0,out:0,both:0});const o=this.degreeCache.get(t.target);o&&(o.in++,o.both++)}}buildAdjacencyCache(){this.inAdjacencyCache=new Map,this.outAdjacencyCache=new Map;for(const t of this.edges())this.nodeMap.has(t.source)&&this.nodeMap.has(t.target)&&(this.outAdjacencyCache.has(t.source)||this.outAdjacencyCache.set(t.source,new Set),this.outAdjacencyCache.get(t.source).add(t.target),this.inAdjacencyCache.has(t.target)||this.inAdjacencyCache.set(t.target,new Set),this.inAdjacencyCache.get(t.target).add(t.source))}buildNodeIndexCache(){this.nodeIndexCache=new Map,this.indexNodeCache=new Map;let t=0;this.nodeMap.forEach((e,r)=>{this.nodeIndexCache.set(r,t),this.indexNodeCache.set(t,r),t++})}destroy(){this.clearCache(),this.nodeMap.clear(),this.edgeMap.clear(),this.edgeIdCounter.clear()}}const J=["id","x","y","z","vx","vy","vz","fx","fy","fz","parentId"],K=["id","source","target","points"];function Z(t,e,r,n=2){t.forEachNode(t=>{o(t.x)&&(t.x=Math.random()*e),o(t.y)&&(t.y=Math.random()*r),3===n&&o(t.z)&&(t.z=Math.random()*Math.min(e,r))})}function tt(t,e){return function(t,e,r){for(var n=0,o=h(e)?e.split("."):e;t&&n<o.length;)t=t[o[n++]];return void 0===t||n<o.length?r:t}(t,String(e).split("."))}function et(t,...e){return e.forEach(e=>{e&&Object.keys(e).forEach(r=>{const n=e[r];void 0!==n&&(t[r]=n)})}),t}function rt(t,e){return Object.assign({},t,e||{})}function nt(t,e){const r=t.nodes();return r.sort(e),t.nodeMap.clear(),r.forEach(e=>{t.nodeMap.set(e.id,e)}),t}function ot(t){return nt(t,(e,r)=>{const n=t.degree(e.id);return t.degree(r.id)-n})}function it(t){return nt(t,(t,e)=>{const r=t.id,n=e.id;return"number"==typeof r&&"number"==typeof n?r-n:String(r).localeCompare(String(n))})}function st(t,e){return nt(t,(r,n)=>{const o=t.originalNode(r.id),i=t.originalNode(n.id);return e(o,i)})}function at(t,e=!1){const r=t.nodeCount();if(0===r)return t;const n=t.nodes(),o=[n[0]],i={};i[n[0].id]=!0;let s=0,a=0;return t.forEachNode(u=>{if(0!==a){const c=t.degree(u.id,"both"),h=a<r-1?t.degree(n[a+1].id,"both"):0,l=o[s].id,d=t.neighbors(l,"both").includes(u.id);if(a!==r-1&&c===h&&!d||i[u.id]){const s=e?t.successors(l):t.neighbors(l);let a=!1;for(let e=0;e<s.length;e++){const r=s[e],n=t.node(r);if(n&&t.degree(r)===t.degree(u.id)&&!i[r]){o.push(n),i[r]=!0,a=!0;break}}let c=0;for(;!a&&(i[n[c].id]||(o.push(n[c]),i[n[c].id]=!0,a=!0),c++,c!==r););}else o.push(u),i[u.id]=!0,s++}a++}),t.nodeMap.clear(),o.forEach(e=>{t.nodeMap.set(e.id,e)}),t}function ut(t){var e;return[t.x,t.y,null!==(e=t.z)&&void 0!==e?e:0]}function ct(t){if(!t)return[0,0,0];if(l(t))return[t,t,t];if(Array.isArray(t)&&0===t.length)return[0,0,0];const[e,r=e,n=e]=t;return[e,r,n]}const ht=t=>{const{width:e,height:r,center:n}=t,o=null!=e?e:"undefined"!=typeof window?window.innerWidth:0,i=null!=r?r:"undefined"!=typeof window?window.innerHeight:0;return{width:o,height:i,center:null!=n?n:[o/2,i/2]}};class lt{constructor(t){this.supervisor=null,this.initialOptions=rt(this.getDefaultOptions(),t)}get options(){return this.runtimeOptions||this.initialOptions}execute(t,e){return r(this,void 0,void 0,function*(){this.runtimeOptions=rt(this.initialOptions,e);const{node:r,edge:n,enableWorker:o}=this.runtimeOptions;this.model=new Q(t,{node:r,edge:n});o&&"undefined"!=typeof Worker?yield this.layoutInWorker(t,this.runtimeOptions):yield this.layout(this.runtimeOptions)})}layoutInWorker(t,e){var n;return r(this,void 0,void 0,function*(){try{this.supervisor||(this.supervisor=new V);const r=yield this.supervisor.execute(this.id,t,e);null===(n=this.model)||void 0===n||n.apply(r)}catch(t){console.error("Layout in worker failed, fallback to main thread layout.",t),yield this.layout(e)}})}forEachNode(t){this.model.forEachNode(t)}forEachEdge(t){this.model.forEachEdge((e,r)=>{e.sourceNode=this.model.nodeMap.get(e.source),e.targetNode=this.model.nodeMap.get(e.target),t(e,r)})}destroy(){var t;null===(t=this.model)||void 0===t||t.destroy(),this.model=null,this.supervisor&&(this.supervisor.destroy(),this.supervisor=null)}}class dt extends lt{}function ft(t,e){return n(t)?t:l(t)?()=>t:()=>e}function gt(t,e=10){return t?n(t)?t:l(t)||Array.isArray(t)?()=>t:s(t)&&t.width&&t.height?()=>[t.width,t.height]:()=>e:()=>e}const pt=(t,e,r=10)=>{const n=ft(e,0),o=gt(t,r);return t=>{const e=o(t),r=n(t);return Math.max(...ct(e))+r}};class vt{constructor(t={}){this.options=t,this.nodes=new Map,this.edges=new Map,this.inEdges=new Map,this.outEdges=new Map,this.parentMap=new Map,this.childrenMap=new Map,t.tree&&Array.isArray(t.tree)&&t.tree.length>0&&("string"==typeof t.tree[0]?t.tree.forEach(t=>{this.parentMap.set(t,new Map),this.childrenMap.set(t,new Map)}):(this.attachTreeStructure("default"),this.addTree(t.tree))),t.nodes&&t.nodes.forEach(t=>this.addNode(t)),t.edges&&t.edges.forEach(t=>this.addEdge(t))}addNode(t){this.nodes.has(t.id)||(this.nodes.set(t.id,t),this.inEdges.set(t.id,new Set),this.outEdges.set(t.id,new Set))}addNodes(t){t.forEach(t=>this.addNode(t))}getNode(t){return this.nodes.get(t)}hasNode(t){return this.nodes.has(t)}removeNode(t){if(!this.nodes.has(t))return;const e=Array.from(this.inEdges.get(t)||[]),r=Array.from(this.outEdges.get(t)||[]);e.forEach(t=>this.removeEdge(t)),r.forEach(t=>this.removeEdge(t)),this.nodes.delete(t),this.inEdges.delete(t),this.outEdges.delete(t),this.parentMap.forEach(e=>{e.delete(t)}),this.childrenMap.forEach(e=>{e.delete(t)})}getAllNodes(){return Array.from(this.nodes.values())}addEdge(t){if(!this.nodes.has(t.source)||!this.nodes.has(t.target))throw new Error(`Cannot add edge ${t.id}: source ${t.source} or target ${t.target} does not exist`);this.edges.set(t.id,t),this.outEdges.get(t.source).add(t.id),this.inEdges.get(t.target).add(t.id)}addEdges(t){t.forEach(t=>this.addEdge(t))}getEdge(t){return this.edges.get(t)}hasEdge(t){return this.edges.has(t)}removeEdge(t){var e,r;const n=this.edges.get(t);n&&(this.edges.delete(t),null===(e=this.outEdges.get(n.source))||void 0===e||e.delete(t),null===(r=this.inEdges.get(n.target))||void 0===r||r.delete(t))}getAllEdges(){return Array.from(this.edges.values())}updateEdgeData(t,e){const r=this.edges.get(t);r&&Object.assign(r.data,e)}updateNodeData(t,e){const r=this.nodes.get(t);r&&Object.assign(r.data,e)}getRelatedEdges(t,e="both"){const r=[];if("in"===e||"both"===e){const e=this.inEdges.get(t);e&&e.forEach(t=>{const e=this.edges.get(t);e&&r.push(e)})}if("out"===e||"both"===e){const e=this.outEdges.get(t);e&&e.forEach(t=>{const e=this.edges.get(t);e&&r.push(e)})}return r}getSuccessors(t){const e=this.outEdges.get(t);if(!e||0===e.size)return[];const r=[];return e.forEach(t=>{const e=this.edges.get(t);if(e){const t=this.nodes.get(e.target);t&&r.push(t)}}),r.length>0?r:[]}getPredecessors(t){const e=this.inEdges.get(t);if(!e||0===e.size)return[];const r=[];return e.forEach(t=>{const e=this.edges.get(t);if(e){const t=this.nodes.get(e.source);t&&r.push(t)}}),r.length>0?r:[]}getNeighbors(t){const e=[...this.getSuccessors(t)||[],...this.getPredecessors(t)||[]],r=Array.from(new Map(e.map(t=>[t.id,t])).values());return r.length>0?r:[]}attachTreeStructure(t){this.parentMap.has(t)||(this.parentMap.set(t,new Map),this.childrenMap.set(t,new Map))}addTree(t,e){var r,n;const o=e||(null!==(n=null===(r=this.options.tree)||void 0===r?void 0:r[0])&&void 0!==n?n:"default");this.hasTreeStructure(o)||this.attachTreeStructure(o);const i=Array.isArray(t)?t:[t],s=(t,e)=>{this.addNode({id:t.id,data:t.data}),void 0!==e&&this.setParent(t.id,e,o),t.children&&t.children.length>0&&t.children.forEach(e=>{s(e,t.id)})};i.forEach(t=>s(t))}hasTreeStructure(t){return this.parentMap.has(t)}setParent(t,e,r){var n,o,i;const s=r||(null!==(o=null===(n=this.options.tree)||void 0===n?void 0:n[0])&&void 0!==o?o:"default");this.parentMap.has(s)||this.attachTreeStructure(s);const a=this.parentMap.get(s),u=this.childrenMap.get(s),c=a.get(t);void 0!==c&&(null===(i=u.get(c))||void 0===i||i.delete(t)),a.set(t,e),u.has(e)||u.set(e,new Set),u.get(e).add(t)}getParent(t,e){var r,n;const o=e||(null!==(n=null===(r=this.options.tree)||void 0===r?void 0:r[0])&&void 0!==n?n:"default");this.parentMap.has(o)||this.attachTreeStructure(o);const i=this.parentMap.get(o);if(!i)return;const s=i.get(t);return void 0===s?null:this.nodes.get(s)}getChildren(t,e){var r,n;const o=e||(null!==(n=null===(r=this.options.tree)||void 0===r?void 0:r[0])&&void 0!==n?n:"default"),i=this.childrenMap.get(o);if(!i)return[];const s=i.get(t);return s?Array.from(s).map(t=>this.nodes.get(t)).filter(t=>void 0!==t):[]}getRoots(t){var e,r;const n=t||(null!==(r=null===(e=this.options.tree)||void 0===e?void 0:e[0])&&void 0!==r?r:"default"),o=this.parentMap.get(n),i=[];return this.nodes.forEach(t=>{o&&void 0!==o.get(t.id)||i.push(t)}),i}dfsTree(t,e){const r=[t],n=new Set;for(;r.length>0;){const t=r.pop();if(n.has(t))continue;const o=this.getNode(t);if(o){n.add(t);if(!0===e(o))continue;const i=this.getChildren(t);for(let t=i.length-1;t>=0;t--)n.has(i[t].id)||r.push(i[t].id)}}}}const mt=(t,e)=>{if("next"!==t&&"prev"!==t)return e},yt=t=>{t.prev.next=t.next,t.next.prev=t.prev,delete t.next,delete t.prev};let wt=class{constructor(){const t={};t.prev=t,t.next=t.prev,this.shortcut=t}dequeue(){const t=this.shortcut,e=t.prev;if(e&&e!==t)return yt(e),e}enqueue(t){const e=this.shortcut;t.prev&&t.next&&yt(t),t.next=e.next,e.next.prev=t,e.next=t,t.prev=e}toString(){const t=[],e=this.shortcut;let r=e.prev;for(;r!==e;)t.push(JSON.stringify(r,mt)),r=null==r?void 0:r.prev;return`[${t.join(", ")}]`}};class xt extends wt{}const bt=()=>1,Et=(t,e,r)=>{let n=[];const o=e[e.length-1],i=e[0];let s;for(;t.getAllNodes().length;){for(;s=i.dequeue();)Mt(t,e,r,s);for(;s=o.dequeue();)Mt(t,e,r,s);if(t.getAllNodes().length)for(let o=e.length-2;o>0;--o)if(s=e[o].dequeue(),s){n=n.concat(Mt(t,e,r,s,!0));break}}return n},Mt=(t,e,r,n,o)=>{var i,s;const a=[];return t.hasNode(n.v)&&(null===(i=t.getRelatedEdges(n.v,"in"))||void 0===i||i.forEach(n=>{const i=n.data.weight,s=t.getNode(n.source);o&&a.push({v:n.source,w:n.target,in:0,out:0}),void 0===s.data.out&&(s.data.out=0),s.data.out-=i,_t(e,r,Object.assign({v:s.id},s.data))}),null===(s=t.getRelatedEdges(n.v,"out"))||void 0===s||s.forEach(n=>{const o=n.data.weight,i=n.target,s=t.getNode(i);void 0===s.data.in&&(s.data.in=0),s.data.in-=o,_t(e,r,Object.assign({v:s.id},s.data))}),t.removeNode(n.v)),o?a:void 0},Nt=(t,e)=>{const r=new vt;let n=0,o=0;t.getAllNodes().forEach(t=>{r.addNode({id:t.id,data:{v:t.id,in:0,out:0}})}),t.getAllEdges().forEach(t=>{const i=r.getRelatedEdges(t.source,"out").find(e=>e.target===t.target),s=(null==e?void 0:e(t))||1;i?r.updateEdgeData(null==i?void 0:i.id,Object.assign(Object.assign({},i.data),{weight:i.data.weight+s})):r.addEdge({id:t.id,source:t.source,target:t.target,data:{weight:s}}),o=Math.max(o,r.getNode(t.source).data.out+=s),n=Math.max(n,r.getNode(t.target).data.in+=s)});const i=[],s=o+n+3;for(let t=0;t<s;t++)i.push(new xt);const a=n+1;return r.getAllNodes().forEach(t=>{_t(i,a,Object.assign({v:t.id},r.getNode(t.id).data))}),{buckets:i,zeroIdx:a,graph:r}},_t=(t,e,r)=>{r.out?r.in?t[r.out-r.in+e].enqueue(r):t[t.length-1].enqueue(r):t[0].enqueue(r)},kt=(t,e)=>{const r=((t,e)=>{var r;if(t.getAllNodes().length<=1)return[];const n=Nt(t,e||bt);return null===(r=Et(n.graph,n.buckets,n.zeroIdx).map(e=>t.getRelatedEdges(e.v,"out").filter(({target:t})=>t===e.w)))||void 0===r?void 0:r.flat()})(t,t=>t.data.weight||1);null==r||r.forEach(e=>{const r=e.data;t.removeEdge(e.id),r.forwardName=e.data.name,r.reversed=!0,t.addEdge({id:e.id,source:e.target,target:e.source,data:Object.assign({},r)})})},St=(t,e,r,n)=>{let o;do{o=`${n}${Math.random()}`}while(t.hasNode(o));return r.dummy=e,t.addNode({id:o,data:r}),o},zt=t=>{const e=new vt;return t.getAllNodes().forEach(r=>{t.getChildren(r.id).length||e.addNode(Object.assign({},r))}),t.getAllEdges().forEach(t=>{e.addEdge(t)}),e},At=(t,e)=>{const r=Number(t.x),n=Number(t.y),o=Number(e.x)-r,i=Number(e.y)-n;let s,a,u=Number(t.width)/2,c=Number(t.height)/2;return o||i?(Math.abs(i)*u>Math.abs(o)*c?(i<0&&(c=-c),s=c*o/i,a=c):(o<0&&(u=-u),s=u,a=u*i/o),{x:r+s,y:n+a}):{x:0,y:0}},Ot=t=>{const e=[],r=Ct(t)+1;for(let t=0;t<r;t++)e.push([]);t.getAllNodes().forEach(t=>{const r=t.data.rank;void 0!==r&&e[r]&&e[r].push(t.id)});for(let n=0;n<r;n++)e[n]=e[n].sort((e,r)=>{return n=t.getNode(e).data.order,o=t.getNode(r).data.order,Number(n)-Number(o);var n,o});return e},jt=(t,e,r,n)=>{const o={width:0,height:0};return l(r)&&l(n)&&(o.rank=r,o.order=n),St(t,"border",o,e)},Ct=t=>{let e;return t.getAllNodes().forEach(t=>{const r=t.data.rank;void 0!==r&&(void 0===e||r>e)&&(e=r)}),e||(e=0),e},It=(t,e)=>t.reduce((t,r)=>e(t)>e(r)?r:t),Rt=(t,e,r,n,o,i)=>{if(!n.includes(e.id)){n.push(e.id),r||i.push(e.id);const s=o(e.id);s&&s.forEach(e=>Rt(t,e,r,n,o,i)),r&&i.push(e.id)}},Pt=(t,e,r,n)=>{const o=Array.isArray(e)?e:[e],i=e=>t.getNeighbors(e),s=[],a=[];return o.forEach(e=>{if(!t.hasNode(e.id))throw new Error(`Graph does not have node: ${e}`);Rt(t,e,"post"===r,a,i,s)}),s},Tt=(t,e,r,n,o,i)=>{const s={rank:i,borderType:e,width:0,height:0},a=i-o.data.minRank,u=o.data[e][a-1],c=St(t,"border",s,r);o.data[e][a]=c,t.setParent(c,n),u&&t.addEdge({id:`e${Math.random()}`,source:u,target:c,data:{weight:1}})},Ft=t=>{t.getAllNodes().forEach(t=>{Lt(t)}),t.getAllEdges().forEach(t=>{Lt(t)})},Lt=t=>{const e=t.data.width;t.data.width=t.data.height,t.data.height=e},Dt=t=>{t.getAllNodes().forEach(t=>{qt(t.data)}),t.getAllEdges().forEach(t=>{var e;null===(e=t.data.points)||void 0===e||e.forEach(t=>qt(t)),t.data.hasOwnProperty("y")&&qt(t.data)})},qt=t=>{(null==t?void 0:t.y)&&(t.y=-t.y)},Vt=t=>{t.getAllNodes().forEach(t=>{Bt(t.data)}),t.getAllEdges().forEach(t=>{var e;null===(e=t.data.points)||void 0===e||e.forEach(t=>Bt(t)),t.data.hasOwnProperty("x")&&Bt(t.data)})},Bt=t=>{const e=t.x;t.x=t.y,t.y=e},$t=(t,e,r,n,o,i,s)=>{const a=t.getChildren(s);if(!(null==a?void 0:a.length))return void(s!==e&&t.addEdge({id:`e${Math.random()}`,source:e,target:s,data:{weight:0,minlen:r}}));const u=jt(t,"_bt"),c=jt(t,"_bb"),h=t.getNode(s);t.setParent(u,s),h.data.borderTop=u,t.setParent(c,s),h.data.borderBottom=c,null==a||a.forEach(a=>{$t(t,e,r,n,o,i,a.id);const h=a.data.borderTop?a.data.borderTop:a.id,l=a.data.borderBottom?a.data.borderBottom:a.id,d=a.data.borderTop?n:2*n,f=h!==l?1:o-i[s]+1;t.addEdge({id:`e${Math.random()}`,source:u,target:h,data:{minlen:f,weight:d,nestingEdge:!0}}),t.addEdge({id:`e${Math.random()}`,source:l,target:c,data:{minlen:f,weight:d,nestingEdge:!0}})}),t.getParent(s)||t.addEdge({id:`e${Math.random()}`,source:e,target:u,data:{weight:0,minlen:o+i[s]}})},Gt=t=>{const e={},r=(n,o)=>{const i=t.getChildren(n);null==i||i.forEach(t=>r(t.id,o+1)),e[n]=o};return t.getRoots().forEach(t=>r(t.id,1)),e},Ut=t=>{let e=0;return t.getAllEdges().forEach(t=>{e+=t.data.weight}),e},Wt="edge-label",Yt=(t,e,r)=>{let n=e.source,o=t.getNode(n).data.rank;const i=e.target,s=t.getNode(i).data.rank,a=e.data.labelRank;if(s===o+1)return;let u,c,h;for(t.removeEdge(e.id),h=0,++o;o<s;++h,++o)e.data.points=[],c={originalEdge:e,width:0,height:0,rank:o},u=St(t,"edge",c,"_d"),o===a&&(c.width=e.data.width,c.height=e.data.height,c.dummy=Wt,c.labelpos=e.data.labelpos),t.addEdge({id:`e${Math.random()}`,source:n,target:u,data:{weight:e.data.weight}}),0===h&&r.push(u),n=u;t.addEdge({id:`e${Math.random()}`,source:n,target:i,data:{weight:e.data.weight}})},Ht=t=>{let e;for(;t.hasNode(e=`_root${Math.random()}`););return e},Xt=(t,e,r)=>{const n=(o=r,i=r.map((t,e)=>e),null==o?void 0:o.reduce((t,e,r)=>(t[e]=i[r],t),{}));var o,i;const s=e.map(e=>{const r=t.getRelatedEdges(e,"out").map(t=>({pos:n[t.target]||0,weight:t.data.weight}));return null==r?void 0:r.sort((t,e)=>t.pos-e.pos)}),a=s.flat().filter(t=>void 0!==t);let u=1;for(;u<r.length;)u<<=1;const c=2*u-1;u-=1;const h=Array(c).fill(0,0,c);let l=0;return null==a||a.forEach(t=>{if(t){let e=t.pos+u;h[e]+=t.weight;let r=0;for(;e>0;)e%2&&(r+=h[e+1]),e=e-1>>1,h[e]+=t.weight;l+=t.weight*r}}),l},Qt=(t,e)=>{let r=0;for(let n=1;n<(null==e?void 0:e.length);n+=1)r+=Xt(t,e[n-1],e[n]);return r},Jt=t=>{const e={},r=t.getAllNodes(),n=r.map(t=>{var e;return null!==(e=t.data.rank)&&void 0!==e?e:-1/0}),o=Math.max(...n),i=[];for(let t=0;t<o+1;t++)i.push([]);const s=r.sort((e,r)=>t.getNode(e.id).data.rank-t.getNode(r.id).data.rank),a=s.filter(e=>void 0!==t.getNode(e.id).data.fixorder).sort((e,r)=>t.getNode(e.id).data.fixorder-t.getNode(r.id).data.fixorder);return null==a||a.forEach(r=>{isNaN(t.getNode(r.id).data.rank)||i[t.getNode(r.id).data.rank].push(r.id),e[r.id]=!0}),null==s||s.forEach(r=>t.dfsTree(r.id,t=>{if(e.hasOwnProperty(t.id))return!0;e[t.id]=!0,isNaN(t.data.rank)||i[t.data.rank].push(t.id)})),i},Kt=t=>{var e,r;const n=[];for(;null==t?void 0:t.length;){const o=t.pop();n.push(o),null===(e=o.in.reverse())||void 0===e||e.forEach(t=>{return(e=o,t=>{t.merged||(void 0===t.barycenter||void 0===e.barycenter||t.barycenter>=e.barycenter)&&Zt(e,t)})(t);var e}),null===(r=o.out)||void 0===r||r.forEach(e=>{return(r=o,e=>{e.in.push(r),0===--e.indegree&&t.push(e)})(e);var r})}const o=n.filter(t=>!t.merged),i=["vs","i","barycenter","weight"];return o.map(t=>{const e={};return null==i||i.forEach(r=>{void 0!==t[r]&&(e[r]=t[r])}),e})},Zt=(t,e)=>{var r;let n=0,o=0;t.weight&&(n+=t.barycenter*t.weight,o+=t.weight),e.weight&&(n+=e.barycenter*e.weight,o+=e.weight),t.vs=null===(r=e.vs)||void 0===r?void 0:r.concat(t.vs),t.barycenter=n/o,t.weight=o,t.i=Math.min(e.i,t.i),e.merged=!0},te=(t,e,r)=>{let n,o=r;for(;e.length&&(n=e[e.length-1]).i<=o;)e.pop(),null==t||t.push(n.vs),o++;return o},ee=(t,e)=>(r,n)=>{if(void 0!==r.fixorder&&void 0!==n.fixorder)return r.fixorder-n.fixorder;if(r.barycenter<n.barycenter)return-1;if(r.barycenter>n.barycenter)return 1;if(e&&void 0!==r.order&&void 0!==n.order){if(r.order<n.order)return-1;if(r.order>n.order)return 1}return t?n.i-r.i:r.i-n.i},re=(t,e,r,n,o,i)=>{var s,a,u,c;let h=t.getChildren(e).map(t=>t.id);const l=t.getNode(e),d=l?l.data.borderLeft:void 0,f=l?l.data.borderRight:void 0,g={};d&&(h=null==h?void 0:h.filter(t=>t!==d&&t!==f));const p=((t,e)=>e.map(e=>{const r=t.getRelatedEdges(e,"in");if(!(null==r?void 0:r.length))return{v:e};const n={sum:0,weight:0};return null==r||r.forEach(e=>{const r=t.getNode(e.source);n.sum+=e.data.weight*r.data.order,n.weight+=e.data.weight}),{v:e,barycenter:n.sum/n.weight,weight:n.weight}}))(t,h||[]);null==p||p.forEach(e=>{var o;if(null===(o=t.getChildren(e.v))||void 0===o?void 0:o.length){const o=re(t,e.v,r,n,i);g[e.v]=o,o.hasOwnProperty("barycenter")&&oe(e,o)}});const v=((t,e)=>{var r,n,o;const i={};null==t||t.forEach((t,e)=>{i[t.v]={i:e,indegree:0,in:[],out:[],vs:[t.v]};const r=i[t.v];void 0!==t.barycenter&&(r.barycenter=t.barycenter,r.weight=t.weight)}),null===(r=e.getAllEdges())||void 0===r||r.forEach(t=>{const e=i[t.source],r=i[t.target];void 0!==e&&void 0!==r&&(r.indegree++,e.out.push(i[t.target]))});const s=null===(o=(n=Object.values(i)).filter)||void 0===o?void 0:o.call(n,t=>!t.indegree);return Kt(s)})(p,r);ne(v,g),null===(s=v.filter(t=>t.vs.length>0))||void 0===s||s.forEach(e=>{const r=t.getNode(e.vs[0]);r&&(e.fixorder=r.data.fixorder,e.order=r.data.order)});const m=((t,e,r,n)=>{const o=((t,e)=>{const r={lhs:[],rhs:[]};return null==t||t.forEach(t=>{e(t)?r.lhs.push(t):r.rhs.push(t)}),r})(t,t=>{const e=t.hasOwnProperty("fixorder")&&!isNaN(t.fixorder);return n?!e&&t.hasOwnProperty("barycenter"):e||t.hasOwnProperty("barycenter")}),i=o.lhs,s=o.rhs.sort((t,e)=>-t.i- -e.i),a=[];let u=0,c=0,h=0;null==i||i.sort(ee(!!e,!!r)),h=te(a,s,h),null==i||i.forEach(t=>{var e;h+=null===(e=t.vs)||void 0===e?void 0:e.length,a.push(t.vs),u+=t.barycenter*t.weight,c+=t.weight,h=te(a,s,h)});const l={vs:a.flat()};return c&&(l.barycenter=u/c,l.weight=c),l})(v,n,o,i);if(d&&(m.vs=[d,m.vs,f].flat(),null===(a=t.getPredecessors(d))||void 0===a?void 0:a.length)){const e=t.getNode((null===(u=t.getPredecessors(d))||void 0===u?void 0:u[0].id)||""),r=t.getNode((null===(c=t.getPredecessors(f))||void 0===c?void 0:c[0].id)||"");m.hasOwnProperty("barycenter")||(m.barycenter=0,m.weight=0),m.barycenter=(m.barycenter*m.weight+e.data.order+r.data.order)/(m.weight+2),m.weight+=2}return m},ne=(t,e)=>{null==t||t.forEach(t=>{var r;const n=null===(r=t.vs)||void 0===r?void 0:r.map(t=>e[t]?e[t].vs:t);t.vs=n.flat()})},oe=(t,e)=>{void 0!==t.barycenter?(t.barycenter=(t.barycenter*t.weight+e.barycenter*e.weight)/(t.weight+e.weight),t.weight+=e.weight):(t.barycenter=e.barycenter,t.weight=e.weight)},ie=(t,e,r)=>e.map(e=>((t,e,r)=>{const n=Ht(t),o=new vt;return o.addNode({id:n,data:{}}),t.getAllNodes().forEach(i=>{var s,a;const u=t.getParent(i.id);(i.data.rank===e||i.data.minRank<=e&&e<=i.data.maxRank)&&(o.hasNode(i.id)||o.addNode(Object.assign({},i)),(null==u?void 0:u.id)&&!o.hasNode(null==u?void 0:u.id)&&o.addNode(Object.assign({},u)),o.setParent(i.id,(null==u?void 0:u.id)||n),t.getRelatedEdges(i.id,r).forEach(e=>{const r=e.source===i.id?e.target:e.source;o.hasNode(r)||o.addNode(Object.assign({},t.getNode(r)));const n=o.getRelatedEdges(r,"out").find(({target:t})=>t===i.id),s=void 0!==n?n.data.weight:0;n?o.updateEdgeData(n.id,Object.assign(Object.assign({},n.data),{weight:e.data.weight+s})):o.addEdge({id:e.id,source:r,target:i.id,data:{weight:e.data.weight+s}})}),i.data.hasOwnProperty("minRank")&&o.updateNodeData(i.id,Object.assign(Object.assign({},i.data),{borderLeft:[null===(s=i.data.borderLeft)||void 0===s?void 0:s[e-i.data.minRank]],borderRight:[null===(a=i.data.borderRight)||void 0===a?void 0:a[e-i.data.minRank]]})))}),o})(t,e,r)),se=(t,e,r,n)=>{const o=new vt;null==t||t.forEach(t=>{var i;const s=t.getRoots()[0].id,a=re(t,s,o,e,r,n);for(let e=0;e<(null===(i=a.vs)||void 0===i?void 0:i.length);e++){const r=t.getNode(a.vs[e]);r&&(r.data.order=e)}((t,e,r)=>{const n={};let o;null==r||r.forEach(r=>{let i,s,a=t.getParent(r);for(;a;){if(i=t.getParent(a.id),i?(s=n[i.id],n[i.id]=a.id):(s=o,o=a.id),s&&s!==a.id)return e.hasNode(s)||e.addNode({id:s,data:{}}),e.hasNode(a.id)||e.addNode({id:a.id,data:{}}),void(e.hasEdge(`e${s}-${a.id}`)||e.addEdge({id:`e${s}-${a.id}`,source:s,target:a.id,data:{}}));a=i}})})(t,o,a.vs)})},ae=(t,e)=>{null==e||e.forEach(e=>{null==e||e.forEach((e,r)=>{t.getNode(e).data.order=r})})},ue=(t,e)=>{const r=(t=>{const e={};let r=0;const n=o=>{const i=r;t.getChildren(o).forEach(t=>n(t.id)),e[o]={low:i,lim:r++}};return t.getRoots().forEach(t=>n(t.id)),e})(t);e.forEach(e=>{var n,o;let i=e,s=t.getNode(i);const a=s.data.originalEdge;if(!a)return;const u=((t,e,r,n)=>{var o,i;const s=[],a=[],u=Math.min(e[r].low,e[n].low),c=Math.max(e[r].lim,e[n].lim);let h,l;h=r;do{h=null===(o=t.getParent(h))||void 0===o?void 0:o.id,s.push(h)}while(h&&(e[h].low>u||c>e[h].lim));for(l=h,h=n;h&&h!==l;)a.push(h),h=null===(i=t.getParent(h))||void 0===i?void 0:i.id;return{lca:l,path:s.concat(a.reverse())}})(t,r,a.source,a.target),c=u.path,h=u.lca;let l=0,d=c[l],f=!0;for(;i!==a.target;){if(s=t.getNode(i),f){for(;d!==h&&(null===(n=t.getNode(d))||void 0===n?void 0:n.data.maxRank)<s.data.rank;)l++,d=c[l];d===h&&(f=!1)}if(!f){for(;l<c.length-1&&(null===(o=t.getNode(c[l+1]))||void 0===o?void 0:o.data.minRank)<=s.data.rank;)l++;d=c[l]}t.hasNode(d)&&t.setParent(i,d),i=t.getSuccessors(i)[0].id}})},ce=(t,e)=>{const r={};function n(e,n){const o=function(t){return JSON.stringify(t.slice(1))}(e);n.get(o)||(!function(e,n,o,i,s){var a,u;let c;for(let h=n;h<o;h++)c=e[h],(null===(a=t.getNode(c))||void 0===a?void 0:a.data.dummy)&&(null===(u=t.getPredecessors(c))||void 0===u||u.forEach(e=>{const n=t.getNode(e.id);n.data.dummy&&(n.data.order<i||n.data.order>s)&&le(r,e.id,c)}))}(...e),n.set(o,!0))}const o=(e,r)=>{let o,i=-1,s=0;const a=new Map;return null==r||r.forEach((u,c)=>{var h;if("border"===(null===(h=t.getNode(u))||void 0===h?void 0:h.data.dummy)){const e=t.getPredecessors(u)||[];e.length&&(o=t.getNode(e[0].id).data.order,n([r,s,c,i,o],a),s=c,i=o)}n([r,s,r.length,o,e.length],a)}),r};return(null==e?void 0:e.length)&&e.reduce(o),r},he=(t,e)=>{var r,n;if(null===(r=t.getNode(e))||void 0===r?void 0:r.data.dummy)return null===(n=t.getPredecessors(e))||void 0===n?void 0:n.find(e=>t.getNode(e.id).data.dummy)},le=(t,e,r)=>{let n=e,o=r;if(n>o){const t=n;n=o,o=t}let i=t[n];i||(t[n]=i={}),i[o]=!0},de=(t,e,r)=>{let n=e,o=r;if(n>r){n=r,o=e}return!!t[n]},fe=(t,e,r,n,o,i)=>{const s=new vt,a=ge(n,o,i);return null==e||e.forEach(e=>{let n;null==e||e.forEach(e=>{const o=r[e];if(s.hasNode(o)||s.addNode({id:o,data:{}}),n){const i=r[n],u=s.getRelatedEdges(i,"out").find(t=>t.target===o);u?s.updateEdgeData(u.id,Object.assign(Object.assign({},u.data),{weight:Math.max(a(t,e,n),u.data.weight||0)})):s.addEdge({id:`e${Math.random()}`,source:i,target:o,data:{weight:Math.max(a(t,e,n),0)}})}n=e})}),s};const ge=(t,e,r)=>(n,o,i)=>{const s=n.getNode(o),a=n.getNode(i);let u=0,c=0;if(u+=s.data.width/2,s.data.hasOwnProperty("labelpos"))switch((s.data.labelpos||"").toLowerCase()){case"l":c=-s.data.width/2;break;case"r":c=s.data.width/2}if(c&&(u+=r?c:-c),c=0,u+=(s.data.dummy?e:t)/2,u+=(a.data.dummy?e:t)/2,u+=a.data.width/2,a.data.labelpos)switch((a.data.labelpos||"").toLowerCase()){case"l":c=a.data.width/2;break;case"r":c=-a.data.width/2}return c&&(u+=r?c:-c),c=0,u},pe=(t,e)=>t.getNode(e).data.width||0,ve=(t,e)=>{const{align:r,nodesep:n=0,edgesep:o=0}=e||{},i=Ot(t),s=Object.assign(((t,e)=>{const r={},n=(e,n)=>{let o=0,i=0;const s=e.length,a=null==n?void 0:n[(null==n?void 0:n.length)-1];return null==n||n.forEach((e,u)=>{var c;const h=he(t,e),l=h?t.getNode(h.id).data.order:s;(h||e===a)&&(null===(c=n.slice(i,u+1))||void 0===c||c.forEach(e=>{var n;null===(n=t.getPredecessors(e))||void 0===n||n.forEach(n=>{var i;const s=t.getNode(n.id),a=s.data.order;!(a<o||l<a)||s.data.dummy&&(null===(i=t.getNode(e))||void 0===i?void 0:i.data.dummy)||le(r,n.id,e)})}),i=u+1,o=l)}),n};return(null==e?void 0:e.length)&&e.reduce(n),r})(t,i),ce(t,i)),a={};let u=[];["u","d"].forEach(e=>{u="u"===e?i:Object.values(i).reverse(),["l","r"].forEach(r=>{"r"===r&&(u=u.map(t=>Object.values(t).reverse()));const i=("u"===e?t.getPredecessors:t.getSuccessors).bind(t),c=((t,e,r,n)=>{const o={},i={},s={};return null==e||e.forEach(t=>{null==t||t.forEach((t,e)=>{o[t]=t,i[t]=t,s[t]=e})}),null==e||e.forEach(t=>{let e=-1;null==t||t.forEach(t=>{let a=n(t).map(t=>t.id);if(a.length){a=a.sort((t,e)=>s[t]-s[e]);const n=(a.length-1)/2;for(let u=Math.floor(n),c=Math.ceil(n);u<=c;++u){const n=a[u];i[t]===t&&e<s[n]&&!de(r,t,n)&&(i[n]=t,i[t]=o[t]=o[n],e=s[n])}}})}),{root:o,align:i}})(0,u,s,i),h=((t,e,r,n,o,i,s)=>{var a;const u={},c=fe(t,e,r,o,i,s),h=s?"borderLeft":"borderRight",l=(t,e)=>{let r=c.getAllNodes(),n=r.pop();const o={};for(;n;)o[n.id]?t(n.id):(o[n.id]=!0,r.push(n),r=r.concat(e(n.id))),n=r.pop()};return l(t=>{u[t]=(c.getRelatedEdges(t,"in")||[]).reduce((t,e)=>Math.max(t,(u[e.source]||0)+e.data.weight),0)},c.getPredecessors.bind(c)),l(e=>{const r=(c.getRelatedEdges(e,"out")||[]).reduce((t,e)=>Math.min(t,(u[e.target]||0)-e.data.weight),Number.POSITIVE_INFINITY),n=t.getNode(e);r!==Number.POSITIVE_INFINITY&&n.data.borderType!==h&&(u[e]=Math.max(u[e],r))},c.getSuccessors.bind(c)),null===(a=Object.values(n))||void 0===a||a.forEach(t=>{u[t]=u[r[t]]}),u})(t,u,c.root,c.align,n,o,"r"===r);"r"===r&&Object.keys(h).forEach(t=>h[t]=-h[t]),a[e+r]=h})});const c=((t,e)=>It(Object.values(e),e=>{var r;let n=Number.NEGATIVE_INFINITY,o=Number.POSITIVE_INFINITY;return null===(r=Object.keys(e))||void 0===r||r.forEach(r=>{const i=e[r],s=pe(t,r)/2;n=Math.max(i+s,n),o=Math.min(i-s,o)}),n-o}))(t,a);return c&&function(t,e){const r=Object.values(e),n=Math.min(...r),o=Math.max(...r);["u","d"].forEach(r=>{["l","r"].forEach(i=>{const s=r+i,a=t[s];let u;if(a===e)return;const c=Object.values(a);u="l"===i?n-Math.min(...c):o-Math.max(...c),u&&(t[s]={},Object.keys(a).forEach(e=>{t[s][e]=a[e]+u}))})})}(a,c),((t,e)=>{const r={};return Object.keys(t.ul).forEach(n=>{if(e)r[n]=t[e.toLowerCase()][n];else{const e=Object.values(t).map(t=>t[n]);r[n]=(e[0]+e[1])/2}}),r})(a,r)},me=(t,e)=>{var r;const n=zt(t);((t,e)=>{const{ranksep:r=0}=e||{},n=Ot(t);let o=0;null==n||n.forEach(e=>{const n=e.map(e=>t.getNode(e).data.height),i=Math.max(...n,0);null==e||e.forEach(e=>{t.getNode(e).data.y=o+i/2}),o+=i+r})})(n,e);const o=ve(n,e);null===(r=Object.keys(o))||void 0===r||r.forEach(t=>{n.getNode(t).data.x=o[t]})},ye=t=>{const e={},r=n=>{var o;const i=t.getNode(n);if(!i)return 0;if(e[n])return i.data.rank;let s;return e[n]=!0,null===(o=t.getRelatedEdges(n,"out"))||void 0===o||o.forEach(t=>{const e=r(t.target)-t.data.minlen;e&&(void 0===s||e<s)&&(s=e)}),s||(s=0),i.data.rank=s,s};t.getAllNodes().filter(e=>0===t.getRelatedEdges(e.id,"in").length).forEach(t=>r(t.id))},we=(t,e)=>t.getNode(e.target).data.rank-t.getNode(e.source).data.rank-e.data.minlen,xe=(t,e)=>{const r=n=>{e.getRelatedEdges(n,"both").forEach(o=>{const i=o.source,s=n===i?o.target:i;t.hasNode(s)||we(e,o)||(t.addNode({id:s,data:{}}),t.addEdge({id:o.id,source:n,target:s,data:{}}),r(s))})};return t.getAllNodes().forEach(t=>r(t.id)),t.getAllNodes().length},be=(t,e)=>{const r=n=>{var o;null===(o=e.getRelatedEdges(n,"both"))||void 0===o||o.forEach(o=>{const i=o.source,s=n===i?o.target:i;t.hasNode(s)||void 0===e.getNode(s).data.layer&&we(e,o)||(t.addNode({id:s,data:{}}),t.addEdge({id:o.id,source:n,target:s,data:{}}),r(s))})};return t.getAllNodes().forEach(t=>r(t.id)),t.getAllNodes().length},Ee=(t,e)=>It(e.getAllEdges(),r=>t.hasNode(r.source)!==t.hasNode(r.target)?we(e,r):1/0),Me=(t,e,r)=>{t.getAllNodes().forEach(t=>{const n=e.getNode(t.id);n.data.rank||(n.data.rank=0),n.data.rank+=r})},Ne=t=>{const e=(t=>{const e=new vt;return t.getAllNodes().forEach(t=>{e.addNode(Object.assign({},t))}),t.getAllEdges().forEach(t=>{const r=e.getRelatedEdges(t.source,"out").find(e=>e.target===t.target);r?e.updateEdgeData(null==r?void 0:r.id,Object.assign(Object.assign({},r.data),{weight:r.data.weight+t.data.weight||0,minlen:Math.max(r.data.minlen,t.data.minlen||1)})):e.addEdge({id:t.id,source:t.source,target:t.target,data:{weight:t.data.weight||0,minlen:t.data.minlen||1}})}),e})(t);ye(e);const r=(t=>{const e=new vt({tree:[]}),r=t.getAllNodes()[0],n=t.getAllNodes().length;let o,i;for(e.addNode(r);xe(e,t)<n;)o=Ee(e,t),i=e.hasNode(o.source)?we(t,o):-we(t,o),Me(e,t,i);return e})(e);let n,o;for(ze(r),_e(r,e);n=Oe(r);)o=je(r,e,n),Ce(r,e,n,o)},_e=(t,e)=>{let r=Pt(t,t.getAllNodes(),"post");r=r.slice(0,(null==r?void 0:r.length)-1),r.forEach(r=>{ke(t,e,r)})},ke=(t,e,r)=>{const n=t.getNode(r).data.parent;t.getRelatedEdges(r,"both").find(t=>t.target===n||t.source===n).data.cutvalue=Se(t,e,r)},Se=(t,e,r)=>{const n=t.getNode(r).data.parent;let o=!0,i=e.getRelatedEdges(r,"out").find(t=>t.target===n),s=0;return i||(o=!1,i=e.getRelatedEdges(n,"out").find(t=>t.target===r)),s=i.data.weight,e.getRelatedEdges(r,"both").forEach(e=>{const i=e.source===r,a=i?e.target:e.source;if(a!==n){const n=i===o,u=e.data.weight;if(s+=n?u:-u,Re(t,r,a)){const e=t.getRelatedEdges(r,"both").find(t=>t.source===a||t.target===a).data.cutvalue;s+=n?-e:e}}}),s},ze=(t,e=t.getAllNodes()[0].id)=>{Ae(t,{},1,e)},Ae=(t,e,r,n,o)=>{var i;const s=r;let a=r;const u=t.getNode(n);return e[n]=!0,null===(i=t.getNeighbors(n))||void 0===i||i.forEach(r=>{e[r.id]||(a=Ae(t,e,a,r.id,n))}),u.data.low=s,u.data.lim=a++,o?u.data.parent=o:delete u.data.parent,a},Oe=t=>t.getAllEdges().find(t=>t.data.cutvalue<0),je=(t,e,r)=>{let n=r.source,o=r.target;e.getRelatedEdges(n,"out").find(t=>t.target===o)||(n=r.target,o=r.source);const i=t.getNode(n),s=t.getNode(o);let a=i,u=!1;i.data.lim>s.data.lim&&(a=s,u=!0);const c=e.getAllEdges().filter(e=>u===Pe(t.getNode(e.source),a)&&u!==Pe(t.getNode(e.target),a));return It(c,t=>we(e,t))},Ce=(t,e,r,n)=>{const o=t.getRelatedEdges(r.source,"both").find(t=>t.source===r.target||t.target===r.target);o&&t.removeEdge(o.id),t.addEdge({id:`e${Math.random()}`,source:n.source,target:n.target,data:{}}),ze(t),_e(t,e),Ie(t,e)},Ie=(t,e)=>{const r=t.getAllNodes().find(t=>!t.data.parent);let n=Pt(t,r,"pre");n=n.slice(1),n.forEach(r=>{const n=t.getNode(r).data.parent;let o=e.getRelatedEdges(r,"out").find(t=>t.target===n),i=!1;!o&&e.hasNode(n)&&(o=e.getRelatedEdges(n,"out").find(t=>t.target===r),i=!0),e.getNode(r).data.rank=(e.hasNode(n)&&e.getNode(n).data.rank||0)+(i?null==o?void 0:o.data.minlen:-(null==o?void 0:o.data.minlen))})},Re=(t,e,r)=>t.getRelatedEdges(e,"both").find(t=>t.source===r||t.target===r),Pe=(t,e)=>e.data.low<=t.data.lim&&t.data.lim<=e.data.lim,Te=ye,Fe=t=>{(t=>{const e={};let r;const n=o=>{var i;const s=t.getNode(o);if(!s)return 0;if(e[o])return s.data.rank;let a;return e[o]=!0,null===(i=t.getRelatedEdges(o,"out"))||void 0===i||i.forEach(t=>{const e=n(t.target)-t.data.minlen;e&&(void 0===a||e<a)&&(a=e)}),a||(a=0),(void 0===r||a<r)&&(r=a),s.data.rank=a,a};t.getAllNodes().filter(e=>0===t.getRelatedEdges(e.id,"in").length).forEach(t=>{t&&n(t.id)}),void 0===r&&(r=0);const o={},i=(e,r)=>{var n;const s=t.getNode(e),a=isNaN(s.data.layer)?r:s.data.layer;(void 0===s.data.rank||s.data.rank<a)&&(s.data.rank=a),o[e]||(o[e]=!0,null===(n=t.getRelatedEdges(e,"out"))||void 0===n||n.forEach(t=>{i(t.target,a+t.data.minlen)}))};t.getAllNodes().forEach(t=>{const e=t.data;e&&(isNaN(e.layer)?e.rank-=r:i(t.id,e.layer))})})(t),(t=>{const e=new vt({tree:[]}),r=t.getAllNodes()[0],n=t.getAllNodes().length;let o,i;for(e.addNode(r);be(e,t)<n;)o=Ee(e,t),i=e.hasNode(o.source)?we(t,o):-we(t,o),Me(e,t,i)})(t)},Le=t=>{Ne(t)},De=(t,e)=>{const{ranker:r,rankdir:n="tb",nodeOrder:o,keepNodeOrder:i,align:s,nodesep:a=50,edgesep:u=20,ranksep:c=50}=e;nr(t),kt(t);const{nestingRoot:h,nodeRankFactor:l}=(t=>{const e=St(t,"root",{},"_root"),r=Gt(t);let n=Math.max(...Object.values(r));Math.abs(n)===1/0&&(n=1);const o=n-1,i=2*o+1;t.getAllEdges().forEach(t=>{t.data.minlen*=i});const s=Ut(t)+1;return t.getRoots().forEach(n=>{$t(t,e,i,s,o,r,n.id)}),{nestingRoot:e,nodeRankFactor:i}})(t);((t,e)=>{switch(e){case"network-simplex":Le(t);break;case"tight-tree":default:Fe(t);break;case"longest-path":Te(t)}})(zt(t),r),Xe(t),((t,e=0)=>{const r=t.getAllNodes(),n=r.filter(t=>void 0!==t.data.rank).map(t=>t.data.rank),o=Math.min(...n),i=[];r.forEach(t=>{const e=(t.data.rank||0)-o;i[e]||(i[e]=[]),i[e].push(t.id)});let s=0;for(let r=0;r<i.length;r++){const n=i[r];void 0===n?r%e!==0&&(s-=1):s&&(null==n||n.forEach(e=>{const r=t.getNode(e);r&&(r.data.rank=r.data.rank||0,r.data.rank+=s)}))}})(t,l),((t,e)=>{e&&t.removeNode(e),t.getAllEdges().forEach(e=>{e.data.nestingEdge&&t.removeEdge(e.id)})})(t,h),(t=>{const e=t.getAllNodes().filter(t=>void 0!==t.data.rank).map(t=>t.data.rank),r=Math.min(...e);t.getAllNodes().forEach(t=>{t.data.hasOwnProperty("rank")&&r!==1/0&&(t.data.rank-=r)})})(t),Qe(t),Je(t);const d=[];((t,e)=>{t.getAllEdges().forEach(r=>Yt(t,r,e))})(t,d),ue(t,d),(t=>{const e=r=>{const n=t.getChildren(r),o=t.getNode(r);if((null==n?void 0:n.length)&&n.forEach(t=>e(t.id)),o.data.hasOwnProperty("minRank")){o.data.borderLeft=[],o.data.borderRight=[];for(let e=o.data.minRank,n=o.data.maxRank+1;e<n;e+=1)Tt(t,"borderLeft","_bl",r,o,e),Tt(t,"borderRight","_br",r,o,e)}};t.getRoots().forEach(t=>e(t.id))})(t),i&&((t,e)=>{const r=t.getAllNodes().filter(e=>{var r;return!(null===(r=t.getChildren(e.id))||void 0===r?void 0:r.length)}).map(t=>t.data.rank),n=Math.max(...r),o=[];for(let t=0;t<n+1;t++)o[t]=[];null==e||e.forEach(e=>{const r=t.getNode(e);r&&!r.data.dummy&&(isNaN(r.data.rank)||(r.data.fixorder=o[r.data.rank].length,o[r.data.rank].push(e)))})})(t,o),((t,e)=>{const r=Ct(t),n=[],o=[];for(let t=1;t<r+1;t++)n.push(t);for(let t=r-1;t>-1;t--)o.push(t);const i=ie(t,n,"in"),s=ie(t,o,"out");let a=Jt(t);ae(t,a);let u,c=Number.POSITIVE_INFINITY;for(let r=0,n=0;n<4;++r,++n){se(r%2?i:s,r%4>=2,!1,e),a=Ot(t);const o=Qt(t,a);o<c&&(n=0,u=g(a),c=o)}a=Jt(t),ae(t,a);for(let r=0,n=0;n<4;++r,++n){se(r%2?i:s,r%4>=2,!0,e),a=Ot(t);const o=Qt(t,a);o<c&&(n=0,u=g(a),c=o)}ae(t,u)})(t,i),or(t),((t,e)=>{const r=e.toLowerCase();"lr"!==r&&"rl"!==r||Ft(t)})(t,n),me(t,{align:s,nodesep:a,edgesep:u,ranksep:c}),ir(t),rr(t),((t,e)=>{e.forEach(e=>{let r=t.getNode(e);const{data:n}=r,o=n.originalEdge;let i;o&&t.addEdge(o);let s=e;for(;r.data.dummy;)i=t.getSuccessors(s)[0],t.removeNode(s),o.data.points.push({x:r.data.x,y:r.data.y}),r.data.dummy===Wt&&(o.data.x=r.data.x,o.data.y=r.data.y,o.data.width=r.data.width,o.data.height=r.data.height),s=i.id,r=t.getNode(s)})})(t,d),tr(t),((t,e)=>{const r=e.toLowerCase();"bt"!==r&&"rl"!==r||Dt(t),"lr"!==r&&"rl"!==r||(Vt(t),Ft(t))})(t,n);const{width:f,height:p}=Ke(t);return Ze(t),er(t),(t=>{t.getAllEdges().forEach(e=>{const r=e.data;if(r.reversed){t.removeEdge(e.id);const n=r.forwardName;delete r.reversed,delete r.forwardName,t.addEdge({id:e.id,source:e.target,target:e.source,data:Object.assign(Object.assign({},r),{forwardName:n})})}})})(t),{width:f,height:p}},qe=(t,e)=>{t.getAllNodes().forEach(r=>{const n=t.getNode(r.id);if(e.hasNode(r.id)){const t=e.getNode(r.id);n.data.fixorder=t.data._order,delete t.data._order}else delete n.data.fixorder})},Ve=(t,e)=>{t.getAllNodes().forEach(r=>{var n;const o=t.getNode(r.id);if(o){const t=e.getNode(r.id);o.data.x=t.data.x,o.data.y=t.data.y,o.data._order=t.data.order,o.data._rank=t.data.rank,(null===(n=e.getChildren(r.id))||void 0===n?void 0:n.length)&&(o.data.width=t.data.width,o.data.height=t.data.height)}}),t.getAllEdges().forEach(r=>{const n=t.getEdge(r.id),o=e.getEdge(r.id);n.data.points=o?o.data.points:[],o&&o.data.hasOwnProperty("x")&&(n.data.x=o.data.x,n.data.y=o.data.y)})},Be=["width","height","layer","fixorder"],$e={width:0,height:0},Ge=["minlen","weight","width","height","labeloffset"],Ue={minlen:1,weight:1,width:0,height:0,labeloffset:10,labelpos:"r"},We=["labelpos"],Ye=t=>{const e=new vt({tree:[]});return t.getAllNodes().forEach(r=>{const n=ar(t.getNode(r.id).data),i=Object.assign(Object.assign({},$e),n),s=sr(i,Be);e.hasNode(r.id)||e.addNode({id:r.id,data:Object.assign({},s)});const a=t.hasTreeStructure("combo")?t.getParent(r.id,"combo"):t.getParent(r.id);o(a)||(e.hasNode(a.id)||e.addNode(Object.assign({},a)),e.setParent(r.id,a.id))}),t.getAllEdges().forEach(r=>{const n=ar(t.getEdge(r.id).data),o={};null==We||We.forEach(t=>{void 0!==n[t]&&(o[t]=n[t])}),e.addEdge({id:r.id,source:r.source,target:r.target,data:Object.assign({},Ue,sr(n,Ge),o)})}),e},He=(t,e)=>{const{ranksep:r=0,rankdir:n}=e;return t.getAllNodes().forEach(t=>{isNaN(t.data.layer)||t.data.layer||(t.data.layer=0)}),t.getAllEdges().forEach(t=>{var e;t.data.minlen*=2,"c"!==(null===(e=t.data.labelpos)||void 0===e?void 0:e.toLowerCase())&&("TB"===n||"BT"===n?t.data.width+=t.data.labeloffset:t.data.height+=t.data.labeloffset)}),r/2},Xe=t=>{t.getAllEdges().forEach(e=>{if(e.data.width&&e.data.height){const r=t.getNode(e.source),n={e:e,rank:(t.getNode(e.target).data.rank-r.data.rank)/2+r.data.rank};St(t,"edge-proxy",n,"_ep")}})},Qe=t=>{let e=0;return t.getAllNodes().forEach(r=>{var n,o;r.data.borderTop&&(r.data.minRank=null===(n=t.getNode(r.data.borderTop))||void 0===n?void 0:n.data.rank,r.data.maxRank=null===(o=t.getNode(r.data.borderBottom))||void 0===o?void 0:o.data.rank,e=Math.max(e,r.data.maxRank||-1/0))}),e},Je=t=>{t.getAllNodes().forEach(e=>{"edge-proxy"===e.data.dummy&&(t.getEdge(e.data.e.id).data.labelRank=e.data.rank,t.removeNode(e.id))})},Ke=(t,e)=>{let r,n,o=0,i=0;const{marginx:s=0,marginy:a=0}={},u=t=>{if(!t.data)return;const e=t.data.x,s=t.data.y,a=t.data.width,u=t.data.height;isNaN(e)||isNaN(a)||(void 0===r&&(r=e-a/2),r=Math.min(r,e-a/2),o=Math.max(o,e+a/2)),isNaN(s)||isNaN(u)||(void 0===n&&(n=s-u/2),n=Math.min(n,s-u/2),i=Math.max(i,s+u/2))};return t.getAllNodes().forEach(t=>{u(t)}),t.getAllEdges().forEach(t=>{(null==t?void 0:t.data.hasOwnProperty("x"))&&u(t)}),r-=s,n-=a,t.getAllNodes().forEach(t=>{t.data.x-=r,t.data.y-=n}),t.getAllEdges().forEach(t=>{var e;null===(e=t.data.points)||void 0===e||e.forEach(t=>{t.x-=r,t.y-=n}),t.data.hasOwnProperty("x")&&(t.data.x-=r),t.data.hasOwnProperty("y")&&(t.data.y-=n)}),{width:o-r+s,height:i-n+a}},Ze=t=>{t.getAllEdges().forEach(e=>{const r=t.getNode(e.source),n=t.getNode(e.target);let o,i;e.data.points?(o=e.data.points[0],i=e.data.points[e.data.points.length-1]):(e.data.points=[],o={x:n.data.x,y:n.data.y},i={x:r.data.x,y:r.data.y}),e.data.points.unshift(At(r.data,o)),e.data.points.push(At(n.data,i))})},tr=t=>{t.getAllEdges().forEach(t=>{if(t.data.hasOwnProperty("x"))switch("l"!==t.data.labelpos&&"r"!==t.data.labelpos||(t.data.width-=t.data.labeloffset),t.data.labelpos){case"l":t.data.x-=t.data.width/2+t.data.labeloffset;break;case"r":t.data.x+=t.data.width/2+t.data.labeloffset}})},er=t=>{t.getAllEdges().forEach(t=>{var e;t.data.reversed&&(null===(e=t.data.points)||void 0===e||e.reverse())})},rr=t=>{t.getAllNodes().forEach(e=>{var r,n,o;if(null===(r=t.getChildren(e.id))||void 0===r?void 0:r.length){const r=t.getNode(e.id),i=t.getNode(r.data.borderTop),s=t.getNode(r.data.borderBottom),a=t.getNode(r.data.borderLeft[(null===(n=r.data.borderLeft)||void 0===n?void 0:n.length)-1]),u=t.getNode(r.data.borderRight[(null===(o=r.data.borderRight)||void 0===o?void 0:o.length)-1]);r.data.width=Math.abs((null==u?void 0:u.data.x)-(null==a?void 0:a.data.x))||10,r.data.height=Math.abs((null==s?void 0:s.data.y)-(null==i?void 0:i.data.y))||10,r.data.x=((null==a?void 0:a.data.x)||0)+r.data.width/2,r.data.y=((null==i?void 0:i.data.y)||0)+r.data.height/2}}),t.getAllNodes().forEach(e=>{"border"===e.data.dummy&&t.removeNode(e.id)})},nr=t=>{t.getAllEdges().forEach(e=>{if(e.source===e.target){const r=t.getNode(e.source);r.data.selfEdges||(r.data.selfEdges=[]),r.data.selfEdges.push(e),t.removeEdge(e.id)}})},or=t=>{const e=Ot(t);null==e||e.forEach(e=>{let r=0;null==e||e.forEach((e,n)=>{var o;const i=t.getNode(e);i.data.order=n+r,null===(o=i.data.selfEdges)||void 0===o||o.forEach(e=>{St(t,"selfedge",{width:e.data.width,height:e.data.height,rank:i.data.rank,order:n+ ++r,e:e},"_se")}),delete i.data.selfEdges})})},ir=t=>{t.getAllNodes().forEach(e=>{const r=t.getNode(e.id);if("selfedge"===r.data.dummy){const n=t.getNode(r.data.e.source),o=n.data.x+n.data.width/2,i=n.data.y,s=r.data.x-o,a=n.data.height/2;t.hasEdge(r.data.e.id)?t.updateEdgeData(r.data.e.id,r.data.e.data):t.addEdge({id:r.data.e.id,source:r.data.e.source,target:r.data.e.target,data:r.data.e.data}),t.removeNode(e.id),r.data.e.data.points=[{x:o+2*s/3,y:i-a},{x:o+5*s/6,y:i-a},{y:i,x:o+s},{x:o+5*s/6,y:i+a},{x:o+2*s/3,y:i+a}],r.data.e.data.x=r.data.x,r.data.e.data.y=r.data.y}})},sr=(t,e)=>{const r={};return null==e||e.forEach(e=>{void 0!==t[e]&&(r[e]=+t[e])}),r},ar=(t={})=>{const e={};return Object.keys(t).forEach(r=>{e[r.toLowerCase()]=t[r]}),e},ur={nodeSize:10,rankdir:"TB",nodesep:50,ranksep:50,edgeLabelSpace:!0,ranker:"tight-tree",controlPoints:!1,radial:!1,focusNode:null};class cr extends lt{constructor(){super(...arguments),this.id="antv-dagre"}getDefaultOptions(){return ur}layout(t){return r(this,void 0,void 0,function*(){const{nodeSize:e,align:r,rankdir:n="TB",ranksep:o,nodesep:i,edgeLabelSpace:s,ranker:a="tight-tree",nodeOrder:u,begin:c,controlPoints:h,radial:d,sortByCombo:f,preset:g}=t,p=ft(o,ur.ranksep),v=ft(i,ur.nodesep);let m=v,y=p;"LR"!==n&&"RL"!==n||(m=p,y=v);const w=gt(e,ur.nodeSize),x=new vt({tree:[]}),b=this.model.nodes(),E=this.model.edges();b.forEach(t=>{var e;const r=ct(w(t)),n=y(t),o=m(t),i=r[0]+2*o,s=r[1]+2*n,a=null===(e=t.data)||void 0===e?void 0:e.layer;l(a)?x.addNode({id:t.id,data:{width:i,height:s,layer:a,originalWidth:r[0],originalHeight:r[1]}}):x.addNode({id:t.id,data:{width:i,height:s,originalWidth:r[0],originalHeight:r[1]}})}),E.forEach(t=>{x.addEdge({id:t.id,source:t.source,target:t.target,data:{}})}),f&&(x.attachTreeStructure("combo"),b.forEach(t=>{const e=null==t?void 0:t.parentId;void 0!==e&&x.hasNode(e)&&x.setParent(t.id,e,"combo")}));let M=null;(null==g?void 0:g.length)&&(M=new vt,g.forEach(t=>{M.addNode({id:t.id,data:t.data})})),((t,e)=>{const{edgeLabelSpace:r,keepNodeOrder:n,prevGraph:o,rankdir:i,ranksep:s}=e;!n&&o&&qe(t,o);const a=Ye(t);let u;r&&(e.ranksep=He(a,{rankdir:i,ranksep:s}));try{u=De(a,e)}catch(t){if("Not possible to find intersection inside of the rectangle"===t.message)return void console.error("The following error may be caused by improper layer setting, please make sure your manual layer setting does not violate the graph's structure:\n",t);throw t}Ve(t,a)})(x,{prevGraph:M,edgeLabelSpace:s,keepNodeOrder:!!u,nodeOrder:u||[],acyclicer:"greedy",ranker:a,rankdir:n,align:r});const N=[0,0];if(c){let t=1/0,e=1/0;x.getAllNodes().forEach(r=>{t>r.data.x&&(t=r.data.x),e>r.data.y&&(e=r.data.y)}),x.getAllEdges().forEach(r=>{var n;null===(n=r.data.points)||void 0===n||n.forEach(r=>{t>r.x&&(t=r.x),e>r.y&&(e=r.y)})}),N[0]=c[0]-t,N[1]=c[1]-e}const _="LR"===n||"RL"===n;if(d);else{const t=new Set,e="BT"===n||"RL"===n?(t,e)=>e-t:(t,e)=>t-e;x.getAllNodes().forEach(e=>{e.data.x=e.data.x+N[0],e.data.y=e.data.y+N[1],t.add(_?e.data.x:e.data.y)});const r=Array.from(t).sort(e),o=_?(t,e)=>t.x!==e.x:(t,e)=>t.y!==e.y,i=_?(t,e,r)=>{const n=Math.max(e.y,r.y),o=Math.min(e.y,r.y);return t.filter(t=>t.y<=n&&t.y>=o)}:(t,e,r)=>{const n=Math.max(e.x,r.x),o=Math.min(e.x,r.x);return t.filter(t=>t.x<=n&&t.x>=o)};x.getAllEdges().forEach((t,e)=>{var n;s&&h&&"loop"!==t.data.type&&(t.data.controlPoints=hr(null===(n=t.data.points)||void 0===n?void 0:n.map(({x:t,y:e})=>({x:t+N[0],y:e+N[1]})),x.getNode(t.source),x.getNode(t.target),r,_,o,i))})}this.model.forEachNode(t=>{const e=x.getNode(t.id);if(e){const{x:r,y:n,width:o,height:i,originalWidth:s,originalHeight:a}=e.data,u=f?x.getChildren(t.id,"combo"):x.getChildren(t.id);if(u.length>0){let e=1/0,r=-1/0,n=1/0,o=-1/0;u.forEach(t=>{const i=t.id,s=x.getNode(i);if(null==s?void 0:s.data){const t=s.data.x,i=s.data.y,a=s.data.originalWidth||s.data.width||0,u=s.data.originalHeight||s.data.height||0;e=Math.min(e,t-a/2),r=Math.max(r,t+a/2),n=Math.min(n,i-u/2),o=Math.max(o,i+u/2)}});const i=20,s=(r-e||0)+2*i,a=(o-n||0)+2*i;t.x=(e+r)/2,t.y=(n+o)/2,t.size=[s,a]}else t.x=r,t.y=n,t.size=[s,a]}}),this.model.forEachEdge(t=>{const e=x.getEdge(t.id);e&&e.data.controlPoints&&(t.points=e.data.controlPoints.map(ut))})})}}const hr=(t,e,r,n,o,i,s)=>{let a=(null==t?void 0:t.slice(1,t.length-1))||[];if(e&&r){let{x:t,y:u}=e.data,{x:c,y:h}=r.data;if(o&&(t=e.data.y,u=e.data.x,c=r.data.y,h=r.data.x),h!==u&&t!==c){const l=n.indexOf(u),d=n[l+1];if(d){const t=a[0],e=o?{x:(u+d)/2,y:(null==t?void 0:t.y)||c}:{x:(null==t?void 0:t.x)||c,y:(u+d)/2};t&&!i(t,e)||a.unshift(e)}const f=n.indexOf(h),g=Math.abs(f-l);if(1===g)a=s(a,e.data,r.data),a.length||a.push(o?{x:(u+h)/2,y:t}:{x:t,y:(u+h)/2});else if(g>1){const e=n[f-1];if(e){const r=a[a.length-1],n=o?{x:(h+e)/2,y:(null==r?void 0:r.y)||c}:{x:(null==r?void 0:r.x)||t,y:(h+e)/2};r&&!i(r,n)||a.push(n)}}}}return a},lr={radius:null,startRadius:null,endRadius:null,startAngle:0,endAngle:2*Math.PI,clockwise:!0,divisions:1,ordering:null,angleRatio:1,nodeSize:10};class dr extends lt{constructor(){super(...arguments),this.id="circular"}getDefaultOptions(){return lr}layout(){return r(this,void 0,void 0,function*(){const{width:t,height:e,center:r}=ht(this.options),n=this.model.nodeCount();if(!n||1===n)return void $(this.model,r);const{ordering:i,nodeSpacing:s,nodeSize:a,endAngle:u=2*Math.PI,startAngle:c=0,divisions:h,angleRatio:l,clockwise:d}=this.options;"topology"===i?at(this.model,!1):"topology-directed"===i?at(this.model,!0):"degree"===i&&ot(this.model);let{radius:f,startRadius:g,endRadius:p}=this.options;const v=this.model.nodes(),m=pt(a,s,lr.nodeSize);if(o(s))f||g||p?!g&&p?g=p:g&&!p&&(p=g):f=Math.min(e,t)/2;else{let t=0;for(const e of v)t+=m(e._original);f=t/(2*Math.PI)}const y=(u-c)/n*l,w=Math.ceil(n/h),x=2*Math.PI/h;for(let t=0;t<n;){const e=v[t];let o=f;o||null===g||null===p||(o=g+t*(p-g)/(n-1)),o||(o=10+100*t/(n-1));const i=t%w*y+x*Math.floor(t/w);let s=c+i;d||(s=u-i),e.x=r[0]+Math.cos(s)*o,e.y=r[1]+Math.sin(s)*o,t++}})}}const fr={nodeSize:30,nodeSpacing:10,preventOverlap:!1,sweep:void 0,equidistant:!1,startAngle:1.5*Math.PI,clockwise:!0,maxLevelDiff:void 0,sortBy:"degree"};class gr extends lt{constructor(){super(...arguments),this.id="concentric"}getDefaultOptions(){return fr}layout(){return r(this,void 0,void 0,function*(){const{width:t,height:e,center:r}=ht(this.options),n=this.model.nodeCount();if(!n||1===n)return void $(this.model,r);const{sortBy:o,maxLevelDiff:i,sweep:s,clockwise:a,equidistant:u,preventOverlap:c,startAngle:h=fr.startAngle,nodeSize:l=fr.nodeSize,nodeSpacing:d}=this.options;let f=o;if(o&&"function"==typeof o){"number"!=typeof o(this.model.firstNode()._original)&&(f="degree")}else f="degree";if("degree"===f)ot(this.model);else{const t=(t,e)=>{const r=f(t),n=f(e);return r===n?0:r>n?-1:1};st(this.model,t)}const g=this.model.nodes(),p=new Map;for(const t of g){const e="degree"===f?this.model.degree(t.id):null==f?void 0:f(t._original);p.set(t.id,e)}const v=this.model.firstNode(),m=i||p.get(v.id)/4,y=pt(l,d),w=new Map;for(const t of g)w.set(t.id,y(t._original));const x=[{nodes:[]}];let b=x[0];for(let t=0;t<n;t++){const e=g[t];if(b.nodes.length>0){const t=b.nodes[0],r=Math.abs(p.get(t.id)-p.get(e.id));m&&r>=m&&(b={nodes:[]},x.push(b))}b.nodes.push(e)}for(const t of x){const e=t.nodes.map(t=>w.get(t.id));t.nodeSizes=e,t.maxNodeSize=Math.max(...e)}if(x.forEach(t=>{const e=void 0===s?2*Math.PI-2*Math.PI/t.nodes.length:s;t.dTheta=e/Math.max(1,t.nodes.length-1)}),c){let t=0;for(let e=0;e<x.length;e++){const r=x[e];if(r.nodes.length>1){const e=r.nodeSizes||[];let n=0;for(let t=0;t<e.length-1;t++)n=Math.max(n,(e[t]+e[t+1])/2);const o=Math.cos(r.dTheta)-Math.cos(0),i=Math.sin(r.dTheta)-Math.sin(0),s=Math.sqrt(o*o+i*i),a=s>0?n/s:0;t=Math.max(a,t)}if(r.r=t,e<x.length-1){const n=x[e+1],o=((r.maxNodeSize||0)+(n.maxNodeSize||0))/2;t+=Math.max(0,o)}}}else{let r=0;x[0].r=0;for(let t=0;t<x.length-1;t++){const e=x[t],n=x[t+1],o=((e.maxNodeSize||0)+(n.maxNodeSize||0))/2;r+=Math.max(0,o),n.r=r}const n=Math.min(t,e)/2;let o=1;for(const t of x){const e=t.r||0;if(e<=0)continue;const r=n-(t.maxNodeSize||0);if(r<=0){o=0;break}o=Math.min(o,r/e)}if(o=Math.max(0,Math.min(1,o)),1!==o)for(const t of x)t.r=(t.r||0)*o}if(u){let t=0,e=0;for(let r=0;r<x.length;r++){const n=(x[r].r||0)-e;t=Math.max(t,n)}e=0,x.forEach((r,n)=>{0===n&&(e=r.r||0),r.r=e,e+=t})}x.forEach(t=>{const e=t.dTheta||0,n=t.r||0;t.nodes.forEach((t,o)=>{const i=h+(a?1:-1)*e*o;t.x=r[0]+n*Math.cos(i),t.y=r[1]+n*Math.sin(i)})})})}}function pr(t,e,r,n){if(isNaN(e)||isNaN(r))return t;var o,i,s,a,u,c,h,l,d,f=t._root,g={data:n},p=t._x0,v=t._y0,m=t._x1,y=t._y1;if(!f)return t._root=g,t;for(;f.length;)if((c=e>=(i=(p+m)/2))?p=i:m=i,(h=r>=(s=(v+y)/2))?v=s:y=s,o=f,!(f=f[l=h<<1|c]))return o[l]=g,t;if(a=+t._x.call(null,f.data),u=+t._y.call(null,f.data),e===a&&r===u)return g.next=f,o?o[l]=g:t._root=g,t;do{o=o?o[l]=new Array(4):t._root=new Array(4),(c=e>=(i=(p+m)/2))?p=i:m=i,(h=r>=(s=(v+y)/2))?v=s:y=s}while((l=h<<1|c)==(d=(u>=s)<<1|a>=i));return o[d]=f,o[l]=g,t}function vr(t,e,r,n,o){this.node=t,this.x0=e,this.y0=r,this.x1=n,this.y1=o}function mr(t){return t[0]}function yr(t){return t[1]}function wr(t,e,r){var n=new xr(null==e?mr:e,null==r?yr:r,NaN,NaN,NaN,NaN);return null==t?n:n.addAll(t)}function xr(t,e,r,n,o,i){this._x=t,this._y=e,this._x0=r,this._y0=n,this._x1=o,this._y1=i,this._root=void 0}function br(t){for(var e={data:t.data},r=e;t=t.next;)r=r.next={data:t.data};return e}var Er=wr.prototype=xr.prototype;function Mr(t){return function(){return t}}function Nr(t){return 1e-6*(t()-.5)}function _r(t){return t.x+t.vx}function kr(t){return t.y+t.vy}function Sr(t){var e,r,n,o=1,i=1;function s(){for(var t,s,u,c,h,l,d,f=e.length,g=0;g<i;++g)for(s=wr(e,_r,kr).visitAfter(a),t=0;t<f;++t)u=e[t],l=r[u.index],d=l*l,c=u.x+u.vx,h=u.y+u.vy,s.visit(p);function p(t,e,r,i,s){var a=t.data,f=t.r,g=l+f;if(!a)return e>c+g||i<c-g||r>h+g||s<h-g;if(a.index>u.index){var p=c-a.x-a.vx,v=h-a.y-a.vy,m=p*p+v*v;m<g*g&&(0===p&&(m+=(p=Nr(n))*p),0===v&&(m+=(v=Nr(n))*v),m=(g-(m=Math.sqrt(m)))/m*o,u.vx+=(p*=m)*(g=(f*=f)/(d+f)),u.vy+=(v*=m)*g,a.vx-=p*(g=1-g),a.vy-=v*g)}}}function a(t){if(t.data)return t.r=r[t.data.index];for(var e=t.r=0;e<4;++e)t[e]&&t[e].r>t.r&&(t.r=t[e].r)}function u(){if(e){var n,o,i=e.length;for(r=new Array(i),n=0;n<i;++n)o=e[n],r[o.index]=+t(o,n,e)}}return"function"!=typeof t&&(t=Mr(null==t?1:+t)),s.initialize=function(t,r){e=t,n=r,u()},s.iterations=function(t){return arguments.length?(i=+t,s):i},s.strength=function(t){return arguments.length?(o=+t,s):o},s.radius=function(e){return arguments.length?(t="function"==typeof e?e:Mr(+e),u(),s):t},s}function zr(t){return t.index}function Ar(t,e){var r=t.get(e);if(!r)throw new Error("node not found: "+e);return r}function Or(t){var e,r,n,o,i,s,a=zr,u=function(t){return 1/Math.min(o[t.source.index],o[t.target.index])},c=Mr(30),h=1;function l(n){for(var o=0,a=t.length;o<h;++o)for(var u,c,l,d,f,g,p,v=0;v<a;++v)c=(u=t[v]).source,d=(l=u.target).x+l.vx-c.x-c.vx||Nr(s),f=l.y+l.vy-c.y-c.vy||Nr(s),d*=g=((g=Math.sqrt(d*d+f*f))-r[v])/g*n*e[v],f*=g,l.vx-=d*(p=i[v]),l.vy-=f*p,c.vx+=d*(p=1-p),c.vy+=f*p}function d(){if(n){var s,u,c=n.length,h=t.length,l=new Map(n.map((t,e)=>[a(t,e,n),t]));for(s=0,o=new Array(c);s<h;++s)(u=t[s]).index=s,"object"!=typeof u.source&&(u.source=Ar(l,u.source)),"object"!=typeof u.target&&(u.target=Ar(l,u.target)),o[u.source.index]=(o[u.source.index]||0)+1,o[u.target.index]=(o[u.target.index]||0)+1;for(s=0,i=new Array(h);s<h;++s)u=t[s],i[s]=o[u.source.index]/(o[u.source.index]+o[u.target.index]);e=new Array(h),f(),r=new Array(h),g()}}function f(){if(n)for(var r=0,o=t.length;r<o;++r)e[r]=+u(t[r],r,t)}function g(){if(n)for(var e=0,o=t.length;e<o;++e)r[e]=+c(t[e],e,t)}return null==t&&(t=[]),l.initialize=function(t,e){n=t,s=e,d()},l.links=function(e){return arguments.length?(t=e,d(),l):t},l.id=function(t){return arguments.length?(a=t,l):a},l.iterations=function(t){return arguments.length?(h=+t,l):h},l.strength=function(t){return arguments.length?(u="function"==typeof t?t:Mr(+t),f(),l):u},l.distance=function(t){return arguments.length?(c="function"==typeof t?t:Mr(+t),g(),l):c},l}Er.copy=function(){var t,e,r=new xr(this._x,this._y,this._x0,this._y0,this._x1,this._y1),n=this._root;if(!n)return r;if(!n.length)return r._root=br(n),r;for(t=[{source:n,target:r._root=new Array(4)}];n=t.pop();)for(var o=0;o<4;++o)(e=n.source[o])&&(e.length?t.push({source:e,target:n.target[o]=new Array(4)}):n.target[o]=br(e));return r},Er.add=function(t){const e=+this._x.call(null,t),r=+this._y.call(null,t);return pr(this.cover(e,r),e,r,t)},Er.addAll=function(t){var e,r,n,o,i=t.length,s=new Array(i),a=new Array(i),u=1/0,c=1/0,h=-1/0,l=-1/0;for(r=0;r<i;++r)isNaN(n=+this._x.call(null,e=t[r]))||isNaN(o=+this._y.call(null,e))||(s[r]=n,a[r]=o,n<u&&(u=n),n>h&&(h=n),o<c&&(c=o),o>l&&(l=o));if(u>h||c>l)return this;for(this.cover(u,c).cover(h,l),r=0;r<i;++r)pr(this,s[r],a[r],t[r]);return this},Er.cover=function(t,e){if(isNaN(t=+t)||isNaN(e=+e))return this;var r=this._x0,n=this._y0,o=this._x1,i=this._y1;if(isNaN(r))o=(r=Math.floor(t))+1,i=(n=Math.floor(e))+1;else{for(var s,a,u=o-r||1,c=this._root;r>t||t>=o||n>e||e>=i;)switch(a=(e<n)<<1|t<r,(s=new Array(4))[a]=c,c=s,u*=2,a){case 0:o=r+u,i=n+u;break;case 1:r=o-u,i=n+u;break;case 2:o=r+u,n=i-u;break;case 3:r=o-u,n=i-u}this._root&&this._root.length&&(this._root=c)}return this._x0=r,this._y0=n,this._x1=o,this._y1=i,this},Er.data=function(){var t=[];return this.visit(function(e){if(!e.length)do{t.push(e.data)}while(e=e.next)}),t},Er.extent=function(t){return arguments.length?this.cover(+t[0][0],+t[0][1]).cover(+t[1][0],+t[1][1]):isNaN(this._x0)?void 0:[[this._x0,this._y0],[this._x1,this._y1]]},Er.find=function(t,e,r){var n,o,i,s,a,u,c,h=this._x0,l=this._y0,d=this._x1,f=this._y1,g=[],p=this._root;for(p&&g.push(new vr(p,h,l,d,f)),null==r?r=1/0:(h=t-r,l=e-r,d=t+r,f=e+r,r*=r);u=g.pop();)if(!(!(p=u.node)||(o=u.x0)>d||(i=u.y0)>f||(s=u.x1)<h||(a=u.y1)<l))if(p.length){var v=(o+s)/2,m=(i+a)/2;g.push(new vr(p[3],v,m,s,a),new vr(p[2],o,m,v,a),new vr(p[1],v,i,s,m),new vr(p[0],o,i,v,m)),(c=(e>=m)<<1|t>=v)&&(u=g[g.length-1],g[g.length-1]=g[g.length-1-c],g[g.length-1-c]=u)}else{var y=t-+this._x.call(null,p.data),w=e-+this._y.call(null,p.data),x=y*y+w*w;if(x<r){var b=Math.sqrt(r=x);h=t-b,l=e-b,d=t+b,f=e+b,n=p.data}}return n},Er.remove=function(t){if(isNaN(i=+this._x.call(null,t))||isNaN(s=+this._y.call(null,t)))return this;var e,r,n,o,i,s,a,u,c,h,l,d,f=this._root,g=this._x0,p=this._y0,v=this._x1,m=this._y1;if(!f)return this;if(f.length)for(;;){if((c=i>=(a=(g+v)/2))?g=a:v=a,(h=s>=(u=(p+m)/2))?p=u:m=u,e=f,!(f=f[l=h<<1|c]))return this;if(!f.length)break;(e[l+1&3]||e[l+2&3]||e[l+3&3])&&(r=e,d=l)}for(;f.data!==t;)if(n=f,!(f=f.next))return this;return(o=f.next)&&delete f.next,n?(o?n.next=o:delete n.next,this):e?(o?e[l]=o:delete e[l],(f=e[0]||e[1]||e[2]||e[3])&&f===(e[3]||e[2]||e[1]||e[0])&&!f.length&&(r?r[d]=f:this._root=f),this):(this._root=o,this)},Er.removeAll=function(t){for(var e=0,r=t.length;e<r;++e)this.remove(t[e]);return this},Er.root=function(){return this._root},Er.size=function(){var t=0;return this.visit(function(e){if(!e.length)do{++t}while(e=e.next)}),t},Er.visit=function(t){var e,r,n,o,i,s,a=[],u=this._root;for(u&&a.push(new vr(u,this._x0,this._y0,this._x1,this._y1));e=a.pop();)if(!t(u=e.node,n=e.x0,o=e.y0,i=e.x1,s=e.y1)&&u.length){var c=(n+i)/2,h=(o+s)/2;(r=u[3])&&a.push(new vr(r,c,h,i,s)),(r=u[2])&&a.push(new vr(r,n,h,c,s)),(r=u[1])&&a.push(new vr(r,c,o,i,h)),(r=u[0])&&a.push(new vr(r,n,o,c,h))}return this},Er.visitAfter=function(t){var e,r=[],n=[];for(this._root&&r.push(new vr(this._root,this._x0,this._y0,this._x1,this._y1));e=r.pop();){var o=e.node;if(o.length){var i,s=e.x0,a=e.y0,u=e.x1,c=e.y1,h=(s+u)/2,l=(a+c)/2;(i=o[0])&&r.push(new vr(i,s,a,h,l)),(i=o[1])&&r.push(new vr(i,h,a,u,l)),(i=o[2])&&r.push(new vr(i,s,l,h,c)),(i=o[3])&&r.push(new vr(i,h,l,u,c))}n.push(e)}for(;e=n.pop();)t(e.node,e.x0,e.y0,e.x1,e.y1);return this},Er.x=function(t){return arguments.length?(this._x=t,this):this._x},Er.y=function(t){return arguments.length?(this._y=t,this):this._y};var jr={value:()=>{}};function Cr(){for(var t,e=0,r=arguments.length,n={};e<r;++e){if(!(t=arguments[e]+"")||t in n||/[\s.]/.test(t))throw new Error("illegal type: "+t);n[t]=[]}return new Ir(n)}function Ir(t){this._=t}function Rr(t,e){for(var r,n=0,o=t.length;n<o;++n)if((r=t[n]).name===e)return r.value}function Pr(t,e,r){for(var n=0,o=t.length;n<o;++n)if(t[n].name===e){t[n]=jr,t=t.slice(0,n).concat(t.slice(n+1));break}return null!=r&&t.push({name:e,value:r}),t}Ir.prototype=Cr.prototype={constructor:Ir,on:function(t,e){var r,n,o=this._,i=(n=o,(t+"").trim().split(/^|\s+/).map(function(t){var e="",r=t.indexOf(".");if(r>=0&&(e=t.slice(r+1),t=t.slice(0,r)),t&&!n.hasOwnProperty(t))throw new Error("unknown type: "+t);return{type:t,name:e}})),s=-1,a=i.length;if(!(arguments.length<2)){if(null!=e&&"function"!=typeof e)throw new Error("invalid callback: "+e);for(;++s<a;)if(r=(t=i[s]).type)o[r]=Pr(o[r],t.name,e);else if(null==e)for(r in o)o[r]=Pr(o[r],t.name,null);return this}for(;++s<a;)if((r=(t=i[s]).type)&&(r=Rr(o[r],t.name)))return r},copy:function(){var t={},e=this._;for(var r in e)t[r]=e[r].slice();return new Ir(t)},call:function(t,e){if((r=arguments.length-2)>0)for(var r,n,o=new Array(r),i=0;i<r;++i)o[i]=arguments[i+2];if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(i=0,r=(n=this._[t]).length;i<r;++i)n[i].value.apply(e,o)},apply:function(t,e,r){if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(var n=this._[t],o=0,i=n.length;o<i;++o)n[o].value.apply(e,r)}};var Tr,Fr,Lr=0,Dr=0,qr=0,Vr=0,Br=0,$r=0,Gr="object"==typeof performance&&performance.now?performance:Date,Ur="object"==typeof window&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(t){setTimeout(t,17)};function Wr(){return Br||(Ur(Yr),Br=Gr.now()+$r)}function Yr(){Br=0}function Hr(){this._call=this._time=this._next=null}function Xr(t,e,r){var n=new Hr;return n.restart(t,e,r),n}function Qr(){Br=(Vr=Gr.now())+$r,Lr=Dr=0;try{!function(){Wr(),++Lr;for(var t,e=Tr;e;)(t=Br-e._time)>=0&&e._call.call(void 0,t),e=e._next;--Lr}()}finally{Lr=0,function(){var t,e,r=Tr,n=1/0;for(;r;)r._call?(n>r._time&&(n=r._time),t=r,r=r._next):(e=r._next,r._next=null,r=t?t._next=e:Tr=e);Fr=t,Kr(n)}(),Br=0}}function Jr(){var t=Gr.now(),e=t-Vr;e>1e3&&($r-=e,Vr=t)}function Kr(t){Lr||(Dr&&(Dr=clearTimeout(Dr)),t-Br>24?(t<1/0&&(Dr=setTimeout(Qr,t-Gr.now()-$r)),qr&&(qr=clearInterval(qr))):(qr||(Vr=Gr.now(),qr=setInterval(Jr,1e3)),Lr=1,Ur(Qr)))}Hr.prototype=Xr.prototype={constructor:Hr,restart:function(t,e,r){if("function"!=typeof t)throw new TypeError("callback is not a function");r=(null==r?Wr():+r)+(null==e?0:+e),this._next||Fr===this||(Fr?Fr._next=this:Tr=this,Fr=this),this._call=t,this._time=r,Kr()},stop:function(){this._call&&(this._call=null,this._time=1/0,Kr())}};const Zr=4294967296;function tn(t){return t.x}function en(t){return t.y}var rn=Math.PI*(3-Math.sqrt(5));function nn(t){var e,r=1,n=.001,o=1-Math.pow(n,1/300),i=0,s=.6,a=new Map,u=Xr(l),c=Cr("tick","end"),h=function(){let t=1;return()=>(t=(1664525*t+1013904223)%Zr)/Zr}();function l(){d(),c.call("tick",e),r<n&&(u.stop(),c.call("end",e))}function d(n){var u,c,h=t.length;void 0===n&&(n=1);for(var l=0;l<n;++l)for(r+=(i-r)*o,a.forEach(function(t){t(r)}),u=0;u<h;++u)null==(c=t[u]).fx?c.x+=c.vx*=s:(c.x=c.fx,c.vx=0),null==c.fy?c.y+=c.vy*=s:(c.y=c.fy,c.vy=0);return e}function f(){for(var e,r=0,n=t.length;r<n;++r){if((e=t[r]).index=r,null!=e.fx&&(e.x=e.fx),null!=e.fy&&(e.y=e.fy),isNaN(e.x)||isNaN(e.y)){var o=10*Math.sqrt(.5+r),i=r*rn;e.x=o*Math.cos(i),e.y=o*Math.sin(i)}(isNaN(e.vx)||isNaN(e.vy))&&(e.vx=e.vy=0)}}function g(e){return e.initialize&&e.initialize(t,h),e}return null==t&&(t=[]),f(),e={tick:d,restart:function(){return u.restart(l),e},stop:function(){return u.stop(),e},nodes:function(r){return arguments.length?(t=r,f(),a.forEach(g),e):t},alpha:function(t){return arguments.length?(r=+t,e):r},alphaMin:function(t){return arguments.length?(n=+t,e):n},alphaDecay:function(t){return arguments.length?(o=+t,e):+o},alphaTarget:function(t){return arguments.length?(i=+t,e):i},velocityDecay:function(t){return arguments.length?(s=1-t,e):1-s},randomSource:function(t){return arguments.length?(h=t,a.forEach(g),e):h},force:function(t,r){return arguments.length>1?(null==r?a.delete(t):a.set(t,g(r)),e):a.get(t)},find:function(e,r,n){var o,i,s,a,u,c=0,h=t.length;for(null==n?n=1/0:n*=n,c=0;c<h;++c)(s=(o=e-(a=t[c]).x)*o+(i=r-a.y)*i)<n&&(u=a,n=s);return u},on:function(t,r){return arguments.length>1?(c.on(t,r),e):c.on(t)}}}function on(){var t,e,r,n,o,i=Mr(-30),s=1,a=1/0,u=.81;function c(r){var o,i=t.length,s=wr(t,tn,en).visitAfter(l);for(n=r,o=0;o<i;++o)e=t[o],s.visit(d)}function h(){if(t){var e,r,n=t.length;for(o=new Array(n),e=0;e<n;++e)r=t[e],o[r.index]=+i(r,e,t)}}function l(t){var e,r,n,i,s,a=0,u=0;if(t.length){for(n=i=s=0;s<4;++s)(e=t[s])&&(r=Math.abs(e.value))&&(a+=e.value,u+=r,n+=r*e.x,i+=r*e.y);t.x=n/u,t.y=i/u}else{(e=t).x=e.data.x,e.y=e.data.y;do{a+=o[e.data.index]}while(e=e.next)}t.value=a}function d(t,i,c,h){if(!t.value)return!0;var l=t.x-e.x,d=t.y-e.y,f=h-i,g=l*l+d*d;if(f*f/u<g)return g<a&&(0===l&&(g+=(l=Nr(r))*l),0===d&&(g+=(d=Nr(r))*d),g<s&&(g=Math.sqrt(s*g)),e.vx+=l*t.value*n/g,e.vy+=d*t.value*n/g),!0;if(!(t.length||g>=a)){(t.data!==e||t.next)&&(0===l&&(g+=(l=Nr(r))*l),0===d&&(g+=(d=Nr(r))*d),g<s&&(g=Math.sqrt(s*g)));do{t.data!==e&&(f=o[t.data.index]*n/g,e.vx+=l*f,e.vy+=d*f)}while(t=t.next)}}return c.initialize=function(e,n){t=e,r=n,h()},c.strength=function(t){return arguments.length?(i="function"==typeof t?t:Mr(+t),h(),c):i},c.distanceMin=function(t){return arguments.length?(s=t*t,c):Math.sqrt(s)},c.distanceMax=function(t){return arguments.length?(a=t*t,c):Math.sqrt(a)},c.theta=function(t){return arguments.length?(u=t*t,c):Math.sqrt(u)},c}function sn(t){var e,r,n,o=Mr(.1);function i(t){for(var o,i=0,s=e.length;i<s;++i)(o=e[i]).vx+=(n[i]-o.x)*r[i]*t}function s(){if(e){var i,s=e.length;for(r=new Array(s),n=new Array(s),i=0;i<s;++i)r[i]=isNaN(n[i]=+t(e[i],i,e))?0:+o(e[i],i,e)}}return"function"!=typeof t&&(t=Mr(null==t?0:+t)),i.initialize=function(t){e=t,s()},i.strength=function(t){return arguments.length?(o="function"==typeof t?t:Mr(+t),s(),i):o},i.x=function(e){return arguments.length?(t="function"==typeof e?e:Mr(+e),s(),i):t},i}function an(t){var e,r,n,o=Mr(.1);function i(t){for(var o,i=0,s=e.length;i<s;++i)(o=e[i]).vy+=(n[i]-o.y)*r[i]*t}function s(){if(e){var i,s=e.length;for(r=new Array(s),n=new Array(s),i=0;i<s;++i)r[i]=isNaN(n[i]=+t(e[i],i,e))?0:+o(e[i],i,e)}}return"function"!=typeof t&&(t=Mr(null==t?0:+t)),i.initialize=function(t){e=t,s()},i.strength=function(t){return arguments.length?(o="function"==typeof t?t:Mr(+t),s(),i):o},i.y=function(e){return arguments.length?(t="function"==typeof e?e:Mr(+e),s(),i):t},i}const un=(t,e)=>t[e];function cn(){function t(t){return()=>t}let e,r=t=>t.cluster,n=t(1),o=t(-1),i=t(100),s=t(.1),a=[0,0],u=[],c={},h=[],l=100,d=100,f={none:{x:0,y:0}},g=[],p="force",v=!0,m=.1;function y(t){if(!v)return y;e.tick(),x();for(let e,n=0,o=u.length,i=t*m;n<o;++n)e=u[n],e.vx||(e.vx=0),e.vy||(e.vy=0),e.vx+=(f[r(e._original)].x-e.x)*i,e.vy+=(f[r(e._original)].y-e.y)*i}function w(){u&&function(){if(!u||!u.length)return;const t=u[0];if(void 0===r(t._original))throw Error("Couldnt find the grouping attribute for the nodes. Make sure to set it up with forceInABox.groupBy('clusterAttr') before calling .links()");const a=function(){const t=[],e=[],o={};let i=[],s={},a=[];return s=function(t){const e={};return t.forEach(t=>{const n=r(t._original);e[n]||(e[n]={count:0,sumforceNodeSize:0})}),t.forEach(t=>{const o=r(t._original),i=n(t._original),s=e[o];s.count=s.count+1,s.sumforceNodeSize=s.sumforceNodeSize+Math.PI*(i*i)*1.3,e[o]=s}),e}(u),a=function(t){const e={},n=[];t.forEach(t=>{const n=function(t){const e=un(t,"source"),n=un(t,"target"),o=r(c[e]._original),i=r(c[n]._original);return o<=i?`${o}~${i}`:`${i}~${o}`}(t);let o=0;void 0!==e[n]&&(o=e[n]),o+=1,e[n]=o});return Object.entries(e).forEach(([t,e])=>{const r=t.split("~")[0],o=t.split("~")[1];void 0!==r&&void 0!==o&&n.push({source:r,target:o,count:e})}),n}(h),i=Object.keys(s),i.forEach((e,r)=>{const n=s[e];t.push({id:e,size:n.count,r:Math.sqrt(n.sumforceNodeSize/Math.PI)}),o[e]=r}),a.forEach(t=>{const r=un(t,"source"),n=un(t,"target"),i=o[r],s=o[n];void 0!==i&&void 0!==s&&e.push({source:i,target:s,count:t.count})}),{nodes:t,links:e}}();e=nn(a.nodes).force("x",sn(l).strength(.1)).force("y",an(d).strength(.1)).force("collide",Sr(t=>t.r).iterations(4)).force("charge",on().strength(o)).force("links",Or(a.nodes.length?a.links:[]).distance(i).strength(s)),g=e.nodes(),x()}()}function x(){return f={none:{x:0,y:0}},g.forEach(t=>{f[t.id]={x:t.x-a[0],y:t.y-a[1]}}),f}return y.initialize=t=>{u=t,w()},y.template=function(t){return arguments.length?(p=t,w(),y):p},y.groupBy=function(t){return arguments.length?"string"==typeof t?(r=e=>e[t],y):(r=t,y):r},y.enableGrouping=function(t){return arguments.length?(v=t,y):v},y.strength=function(t){return arguments.length?(m=t,y):m},y.centerX=function(t){return arguments.length?(l=t,y):l},y.centerY=function(t){return arguments.length?(d=t,y):d},y.nodes=function(t){return arguments.length?(function(t){c={},t.forEach(t=>{c[t.id]=t})}(t||[]),u=t||[],y):u},y.links=function(t){return arguments.length?(h=t||[],w(),y):h},y.forceNodeSize=function(e){return arguments.length?(n="function"==typeof e?e:t(+e),w(),y):n},y.nodeSize=y.forceNodeSize,y.forceCharge=function(e){return arguments.length?(o="function"==typeof e?e:t(+e),w(),y):o},y.forceLinkDistance=function(e){return arguments.length?(i="function"==typeof e?e:t(+e),w(),y):i},y.forceLinkStrength=function(e){return arguments.length?(s="function"==typeof e?e:t(+e),w(),y):s},y.offset=function(t){return arguments.length?(a=t,y):a},y.getFocis=x,y}const hn={centerStrength:1,edgeId:t=>String(t.id),linkDistance:30,edgeStrength:void 0,edgeIterations:1,preventOverlap:!1,nodeSize:10,nodeSpacing:0,collideStrength:1,collideIterations:1,nodeStrength:-30,distanceMin:void 0,distanceMax:void 0,theta:void 0,alpha:1,alphaMin:.001,alphaDecay:1-Math.pow(.001,1/300),alphaTarget:0,velocityDecay:.4,clustering:!1,clusterNodeStrength:-1,clusterEdgeStrength:.1,clusterEdgeDistance:100,clusterFociStrength:.8,clusterNodeSize:10};class ln extends dt{getDefaultOptions(){return hn}mergeOptions(t,e){return function(t){for(var e=[],r=1;r<arguments.length;r++)e[r-1]=arguments[r];for(var n=0;n<e.length;n+=1)v(t,e[n]);return t}({},t,e)}constructor(t){super(t),this.id="d3-force",this.d3Nodes=[],this.d3Edges=[],this.config={simulationAttrs:["alpha","alphaMin","alphaDecay","alphaTarget","velocityDecay","randomSource"]},this.options.forceSimulation&&(this.simulation=this.options.forceSimulation)}stop(){return this.simulation&&this.simulation.stop(),this}tick(t=1){var e,r;if(this.simulation){for(let e=0;e<t;e++)this.simulation.tick();this.syncPositionsFromD3(),null===(r=(e=this.options).onTick)||void 0===r||r.call(e,this)}return this}restart(t){return this.simulation&&(void 0!==t&&this.simulation.alpha(t),this.simulation.restart()),this}reheat(){return this.restart(1)}getAlpha(){var t,e;return null!==(e=null===(t=this.simulation)||void 0===t?void 0:t.alpha())&&void 0!==e?e:0}setAlpha(t){return this.simulation&&this.simulation.alpha(t),this}getForce(t){var e;return null===(e=this.simulation)||void 0===e?void 0:e.force(t)}force(t,e){return this.simulation&&this.simulation.force(t,e),this}nodes(){var t,e;return null!==(e=null===(t=this.simulation)||void 0===t?void 0:t.nodes())&&void 0!==e?e:[]}find(t,e,r){if(this.simulation)return this.simulation.find(t,e,r)}setFixedPosition(t,e){const r=this.d3Nodes.find(e=>e.id===t),n=this.model.node(t);if(!n||!r)return;const o=["fx","fy","fz"];null!==e?e.forEach((t,e)=>{e<o.length&&("number"==typeof t||null===t)&&(n[o[e]]=t,r[o[e]]=t)}):o.forEach(t=>{delete n[t],delete r[t]})}parseOptions(t){var e,r;const n=t;return n.collide&&void 0===(null===(e=n.collide)||void 0===e?void 0:e.radius)&&(n.collide=n.collide||{},n.collide.radius=null!==(r=n.nodeSize)&&void 0!==r?r:10),void 0===n.iterations&&(n.link&&void 0===n.link.iterations&&(n.iterations=n.link.iterations),n.collide&&void 0===n.collide.iterations&&(n.iterations=n.collide.iterations)),n}layout(){var t;return r(this,void 0,void 0,function*(){const e=this.parseOptions(this.options||{});this.createD3Copies();const r=this.setSimulation(e);return r.nodes(this.d3Nodes),null===(t=r.force("link"))||void 0===t||t.links(this.d3Edges),new Promise(t=>{r.on("end",()=>{this.syncPositionsFromD3(),t()})})})}createD3Copies(){this.d3Nodes=[],this.d3Edges=[],this.model.forEachNode(t=>{this.d3Nodes.push(Object.assign({},t))}),this.model.forEachEdge(t=>{this.d3Edges.push(Object.assign({},t))})}syncPositionsFromD3(){this.d3Nodes.forEach(t=>{const e=this.model.node(t.id);e&&(e.x=t.x,e.y=t.y,void 0!==t.z&&(e.z=t.z),void 0!==t.fx&&(e.fx=t.fx),void 0!==t.fy&&(e.fy=t.fy),void 0!==t.fz&&(e.fz=t.fz),void 0!==t.vx&&(e.vx=t.vx),void 0!==t.vy&&(e.vy=t.vy),void 0!==t.vz&&(e.vz=t.vz))})}initSimulation(){return nn()}setSimulation(t){const e=this.simulation||this.options.forceSimulation||this.initSimulation();return this.simulation||(this.simulation=e.on("tick",()=>{var e;this.syncPositionsFromD3(),null===(e=t.onTick)||void 0===e||e.call(t,this)})),dn(e,this.config.simulationAttrs.map(e=>[e,t[e]])),this.setupForces(e,t),e}setupForces(t,e){this.setupLinkForce(t,e),this.setupManyBodyForce(t,e),this.setupCenterForce(t,e),this.setupCollisionForce(t,e),this.setupXForce(t,e),this.setupYForce(t,e),this.setupRadialForce(t,e),this.setupClusterForce(t,e)}getCenterOptions(t){if(!t.width||!t.height||void 0!==t.centerStrength){const e=ht({width:t.width,height:t.height});return et({},t.center||{},{x:e.width/2,y:e.height/2,strength:t.centerStrength})}}setupCenterForce(t,e){const r=this.getCenterOptions(e);if(r){let e=t.force("center");e||(e=function(t,e){var r,n=1;function o(){var o,i,s=r.length,a=0,u=0;for(o=0;o<s;++o)a+=(i=r[o]).x,u+=i.y;for(a=(a/s-t)*n,u=(u/s-e)*n,o=0;o<s;++o)(i=r[o]).x-=a,i.y-=u}return null==t&&(t=0),null==e&&(e=0),o.initialize=function(t){r=t},o.x=function(e){return arguments.length?(t=+e,o):t},o.y=function(t){return arguments.length?(e=+t,o):e},o.strength=function(t){return arguments.length?(n=+t,o):n},o}(r.x,r.y),t.force("center",e));const n=[];void 0!==r.x&&n.push(["x",r.x]),void 0!==r.y&&n.push(["y",r.y]),void 0!==r.strength&&n.push(["strength",r.strength]),dn(e,n)}else t.force("center",null)}getManyBodyOptions(t){if(void 0!==t.manyBody||void 0!==t.nodeStrength||void 0!==t.distanceMin||void 0!==t.distanceMax||void 0!==t.theta)return et({},t.manyBody||{},{strength:t.nodeStrength,distanceMin:t.distanceMin,distanceMax:t.distanceMax,theta:t.theta})}setupManyBodyForce(t,e){const r=this.getManyBodyOptions(e);if(r){let e=t.force("charge");e||(e=on(),t.force("charge",e));const n=[];void 0!==r.strength&&n.push(["strength",r.strength]),void 0!==r.distanceMin&&n.push(["distanceMin",r.distanceMin]),void 0!==r.distanceMax&&n.push(["distanceMax",r.distanceMax]),void 0!==r.theta&&n.push(["theta",r.theta]),dn(e,n)}else t.force("charge",null)}getLinkOptions(t){if(t.link||void 0!==t.edgeId||void 0!==t.linkDistance||void 0!==t.edgeStrength||void 0!==t.edgeIterations)return et({},t.link||{},{id:t.edgeId,distance:t.linkDistance,strength:t.edgeStrength,iterations:t.edgeIterations})}setupLinkForce(t,e){const r=this.model.edges(),n=this.getLinkOptions(e);if(r.length>0&&n){let e=t.force("link");e||(e=Or(),t.force("link",e));const r=[];void 0!==n.id&&r.push(["id",n.id]),void 0!==n.distance&&r.push(["distance",n.distance]),void 0!==n.strength&&r.push(["strength",n.strength]),void 0!==n.iterations&&r.push(["iterations",n.iterations]),dn(e,r)}else t.force("link",null)}getCollisionOptions(t){if(t.preventOverlap&&(void 0!==t.collide||void 0!==t.nodeSize||void 0!==t.nodeSpacing||void 0!==t.collideStrength||void 0!==t.collideIterations)){const e=t.nodeSize||t.nodeSpacing?e=>pt(t.nodeSize,t.nodeSpacing)(e._original)/2:void 0;return et({},t.collide||{},{radius:e,strength:t.collideStrength,iterations:t.collideIterations})}}setupCollisionForce(t,e){const r=this.getCollisionOptions(e);if(r){let e=t.force("collide");e||(e=Sr(),t.force("collide",e));const n=[];void 0!==r.radius&&n.push(["radius",r.radius]),void 0!==r.strength&&n.push(["strength",r.strength]),void 0!==r.iterations&&n.push(["iterations",r.iterations]),dn(e,n)}else t.force("collide",null)}getXForceOptions(t){var e;if(void 0!==t.x||void 0!==t.forceXPosition||void 0!==t.forceXStrength||void 0!==t.width||void 0!==t.height){const r=this.getCenterOptions(t);return et({},t.x||{},{x:null!==(e=t.forceXPosition)&&void 0!==e?e:r&&r.x,strength:t.forceXStrength})}}setupXForce(t,e){const r=this.getXForceOptions(e);if(r){let e=t.force("x");e||(e=sn(),t.force("x",e));const n=[];void 0!==r.x&&n.push(["x",r.x]),void 0!==r.strength&&n.push(["strength",r.strength]),dn(e,n)}else t.force("x",null)}getYForceOptions(t){var e;if(void 0!==t.y||void 0!==t.forceYPosition||void 0!==t.forceYStrength||void 0!==t.width||void 0!==t.height){const r=this.getCenterOptions(t);return et({},t.y||{},{y:null!==(e=t.forceYPosition)&&void 0!==e?e:r&&r.y,strength:t.forceYStrength})}}setupYForce(t,e){const r=this.getYForceOptions(e);if(r){let e=t.force("y");e||(e=an(),t.force("y",e));const n=[];void 0!==r.y&&n.push(["y",r.y]),void 0!==r.strength&&n.push(["strength",r.strength]),dn(e,n)}else t.force("y",null)}getRadialOptions(t){var e,r,n;if(void 0!==t.radial||void 0!==t.radialStrength||void 0!==t.radialRadius||void 0!==t.radialX||void 0!==t.radialY){const o=this.getCenterOptions(t);return et({},t.radial||{},{strength:t.radialStrength,radius:null!==(e=t.radialRadius)&&void 0!==e?e:100,x:null!==(r=t.radialX)&&void 0!==r?r:o&&o.x,y:null!==(n=t.radialY)&&void 0!==n?n:o&&o.y})}}setupRadialForce(t,e){const r=this.getRadialOptions(e);if(r){let e=t.force("radial");e||(e=function(t,e,r){var n,o,i,s=Mr(.1);function a(t){for(var s=0,a=n.length;s<a;++s){var u=n[s],c=u.x-e||1e-6,h=u.y-r||1e-6,l=Math.sqrt(c*c+h*h),d=(i[s]-l)*o[s]*t/l;u.vx+=c*d,u.vy+=h*d}}function u(){if(n){var e,r=n.length;for(o=new Array(r),i=new Array(r),e=0;e<r;++e)i[e]=+t(n[e],e,n),o[e]=isNaN(i[e])?0:+s(n[e],e,n)}}return"function"!=typeof t&&(t=Mr(+t)),null==e&&(e=0),null==r&&(r=0),a.initialize=function(t){n=t,u()},a.strength=function(t){return arguments.length?(s="function"==typeof t?t:Mr(+t),u(),a):s},a.radius=function(e){return arguments.length?(t="function"==typeof e?e:Mr(+e),u(),a):t},a.x=function(t){return arguments.length?(e=+t,a):e},a.y=function(t){return arguments.length?(r=+t,a):r},a}(r.radius||100,r.x,r.y),t.force("radial",e));const n=[];void 0!==r.radius&&n.push(["radius",r.radius]),void 0!==r.strength&&n.push(["strength",r.strength]),void 0!==r.x&&n.push(["x",r.x]),void 0!==r.y&&n.push(["y",r.y]),dn(e,n)}else t.force("radial",null)}setupClusterForce(t,e){const{clustering:r}=e;if(r){const{clusterFociStrength:r,clusterEdgeDistance:n,clusterEdgeStrength:o,clusterNodeStrength:i,clusterNodeSize:s,clusterBy:a}=e,u=this.getCenterOptions(e);let c=t.force("group");c||(c=cn(),t.force("group",c)),dn(c,[["centerX",u&&u.x],["centerY",u&&u.y],["template","force"],["strength",r],["groupBy",a],["nodes",this.model.nodes()],["links",this.model.edges()],["forceLinkDistance",n],["forceLinkStrength",o],["forceCharge",i],["forceNodeSize",s]])}else t.force("group",null)}}const dn=(t,e)=>e.reduce((e,[r,n])=>e[r]&&void 0!==n?e[r].call(t,n):e,t);function fn(t,e,r){var n,o=1;function i(){var i,s,a=n.length,u=0,c=0,h=0;for(i=0;i<a;++i)u+=(s=n[i]).x||0,c+=s.y||0,h+=s.z||0;for(u=(u/a-t)*o,c=(c/a-e)*o,h=(h/a-r)*o,i=0;i<a;++i)s=n[i],u&&(s.x-=u),c&&(s.y-=c),h&&(s.z-=h)}return null==t&&(t=0),null==e&&(e=0),null==r&&(r=0),i.initialize=function(t){n=t},i.x=function(e){return arguments.length?(t=+e,i):t},i.y=function(t){return arguments.length?(e=+t,i):e},i.z=function(t){return arguments.length?(r=+t,i):r},i.strength=function(t){return arguments.length?(o=+t,i):o},i}function gn(t,e,r){if(isNaN(e))return t;var n,o,i,s,a,u,c=t._root,h={data:r},l=t._x0,d=t._x1;if(!c)return t._root=h,t;for(;c.length;)if((s=e>=(o=(l+d)/2))?l=o:d=o,n=c,!(c=c[a=+s]))return n[a]=h,t;if(e===(i=+t._x.call(null,c.data)))return h.next=c,n?n[a]=h:t._root=h,t;do{n=n?n[a]=new Array(2):t._root=new Array(2),(s=e>=(o=(l+d)/2))?l=o:d=o}while((a=+s)===(u=+(i>=o)));return n[u]=c,n[a]=h,t}function pn(t,e,r){this.node=t,this.x0=e,this.x1=r}function vn(t){return t[0]}function mn(t,e){var r=new yn(null==e?vn:e,NaN,NaN);return null==t?r:r.addAll(t)}function yn(t,e,r){this._x=t,this._x0=e,this._x1=r,this._root=void 0}function wn(t){for(var e={data:t.data},r=e;t=t.next;)r=r.next={data:t.data};return e}var xn=mn.prototype=yn.prototype;function bn(t,e,r,n,o){if(isNaN(e)||isNaN(r)||isNaN(n))return t;var i,s,a,u,c,h,l,d,f,g,p,v,m=t._root,y={data:o},w=t._x0,x=t._y0,b=t._z0,E=t._x1,M=t._y1,N=t._z1;if(!m)return t._root=y,t;for(;m.length;)if((d=e>=(s=(w+E)/2))?w=s:E=s,(f=r>=(a=(x+M)/2))?x=a:M=a,(g=n>=(u=(b+N)/2))?b=u:N=u,i=m,!(m=m[p=g<<2|f<<1|d]))return i[p]=y,t;if(c=+t._x.call(null,m.data),h=+t._y.call(null,m.data),l=+t._z.call(null,m.data),e===c&&r===h&&n===l)return y.next=m,i?i[p]=y:t._root=y,t;do{i=i?i[p]=new Array(8):t._root=new Array(8),(d=e>=(s=(w+E)/2))?w=s:E=s,(f=r>=(a=(x+M)/2))?x=a:M=a,(g=n>=(u=(b+N)/2))?b=u:N=u}while((p=g<<2|f<<1|d)==(v=(l>=u)<<2|(h>=a)<<1|c>=s));return i[v]=m,i[p]=y,t}function En(t,e,r,n,o,i,s){this.node=t,this.x0=e,this.y0=r,this.z0=n,this.x1=o,this.y1=i,this.z1=s}xn.copy=function(){var t,e,r=new yn(this._x,this._x0,this._x1),n=this._root;if(!n)return r;if(!n.length)return r._root=wn(n),r;for(t=[{source:n,target:r._root=new Array(2)}];n=t.pop();)for(var o=0;o<2;++o)(e=n.source[o])&&(e.length?t.push({source:e,target:n.target[o]=new Array(2)}):n.target[o]=wn(e));return r},xn.add=function(t){const e=+this._x.call(null,t);return gn(this.cover(e),e,t)},xn.addAll=function(t){Array.isArray(t)||(t=Array.from(t));const e=t.length,r=new Float64Array(e);let n=1/0,o=-1/0;for(let i,s=0;s<e;++s)isNaN(i=+this._x.call(null,t[s]))||(r[s]=i,i<n&&(n=i),i>o&&(o=i));if(n>o)return this;this.cover(n).cover(o);for(let n=0;n<e;++n)gn(this,r[n],t[n]);return this},xn.cover=function(t){if(isNaN(t=+t))return this;var e=this._x0,r=this._x1;if(isNaN(e))r=(e=Math.floor(t))+1;else{for(var n,o,i=r-e||1,s=this._root;e>t||t>=r;)switch(o=+(t<e),(n=new Array(2))[o]=s,s=n,i*=2,o){case 0:r=e+i;break;case 1:e=r-i}this._root&&this._root.length&&(this._root=s)}return this._x0=e,this._x1=r,this},xn.data=function(){var t=[];return this.visit(function(e){if(!e.length)do{t.push(e.data)}while(e=e.next)}),t},xn.extent=function(t){return arguments.length?this.cover(+t[0][0]).cover(+t[1][0]):isNaN(this._x0)?void 0:[[this._x0],[this._x1]]},xn.find=function(t,e){var r,n,o,i,s,a=this._x0,u=this._x1,c=[],h=this._root;for(h&&c.push(new pn(h,a,u)),null==e?e=1/0:(a=t-e,u=t+e);i=c.pop();)if(!(!(h=i.node)||(n=i.x0)>u||(o=i.x1)<a))if(h.length){var l=(n+o)/2;c.push(new pn(h[1],l,o),new pn(h[0],n,l)),(s=+(t>=l))&&(i=c[c.length-1],c[c.length-1]=c[c.length-1-s],c[c.length-1-s]=i)}else{var d=Math.abs(t-+this._x.call(null,h.data));d<e&&(e=d,a=t-d,u=t+d,r=h.data)}return r},xn.remove=function(t){if(isNaN(i=+this._x.call(null,t)))return this;var e,r,n,o,i,s,a,u,c,h=this._root,l=this._x0,d=this._x1;if(!h)return this;if(h.length)for(;;){if((a=i>=(s=(l+d)/2))?l=s:d=s,e=h,!(h=h[u=+a]))return this;if(!h.length)break;e[u+1&1]&&(r=e,c=u)}for(;h.data!==t;)if(n=h,!(h=h.next))return this;return(o=h.next)&&delete h.next,n?(o?n.next=o:delete n.next,this):e?(o?e[u]=o:delete e[u],(h=e[0]||e[1])&&h===(e[1]||e[0])&&!h.length&&(r?r[c]=h:this._root=h),this):(this._root=o,this)},xn.removeAll=function(t){for(var e=0,r=t.length;e<r;++e)this.remove(t[e]);return this},xn.root=function(){return this._root},xn.size=function(){var t=0;return this.visit(function(e){if(!e.length)do{++t}while(e=e.next)}),t},xn.visit=function(t){var e,r,n,o,i=[],s=this._root;for(s&&i.push(new pn(s,this._x0,this._x1));e=i.pop();)if(!t(s=e.node,n=e.x0,o=e.x1)&&s.length){var a=(n+o)/2;(r=s[1])&&i.push(new pn(r,a,o)),(r=s[0])&&i.push(new pn(r,n,a))}return this},xn.visitAfter=function(t){var e,r=[],n=[];for(this._root&&r.push(new pn(this._root,this._x0,this._x1));e=r.pop();){var o=e.node;if(o.length){var i,s=e.x0,a=e.x1,u=(s+a)/2;(i=o[0])&&r.push(new pn(i,s,u)),(i=o[1])&&r.push(new pn(i,u,a))}n.push(e)}for(;e=n.pop();)t(e.node,e.x0,e.x1);return this},xn.x=function(t){return arguments.length?(this._x=t,this):this._x};const Mn=(t,e,r,n,o,i)=>Math.sqrt((t-n)**2+(e-o)**2+(r-i)**2);function Nn(t){return t[0]}function _n(t){return t[1]}function kn(t){return t[2]}function Sn(t,e,r,n){var o=new zn(null==e?Nn:e,null==r?_n:r,null==n?kn:n,NaN,NaN,NaN,NaN,NaN,NaN);return null==t?o:o.addAll(t)}function zn(t,e,r,n,o,i,s,a,u){this._x=t,this._y=e,this._z=r,this._x0=n,this._y0=o,this._z0=i,this._x1=s,this._y1=a,this._z1=u,this._root=void 0}function An(t){for(var e={data:t.data},r=e;t=t.next;)r=r.next={data:t.data};return e}var On=Sn.prototype=zn.prototype;function jn(t){return function(){return t}}function Cn(t){return 1e-6*(t()-.5)}function In(t){return t.x+t.vx}function Rn(t){return t.y+t.vy}function Pn(t){return t.z+t.vz}function Tn(t){var e,r,n,o,i=1,s=1;function a(){for(var t,a,c,h,l,d,f,g,p=e.length,v=0;v<s;++v)for(a=(1===r?mn(e,In):2===r?wr(e,In,Rn):3===r?Sn(e,In,Rn,Pn):null).visitAfter(u),t=0;t<p;++t)c=e[t],f=n[c.index],g=f*f,h=c.x+c.vx,r>1&&(l=c.y+c.vy),r>2&&(d=c.z+c.vz),a.visit(m);function m(t,e,n,s,a,u,p){var v=[e,n,s,a,u,p],m=v[0],y=v[1],w=v[2],x=v[r],b=v[r+1],E=v[r+2],M=t.data,N=t.r,_=f+N;if(!M)return m>h+_||x<h-_||r>1&&(y>l+_||b<l-_)||r>2&&(w>d+_||E<d-_);if(M.index>c.index){var k=h-M.x-M.vx,S=r>1?l-M.y-M.vy:0,z=r>2?d-M.z-M.vz:0,A=k*k+S*S+z*z;A<_*_&&(0===k&&(A+=(k=Cn(o))*k),r>1&&0===S&&(A+=(S=Cn(o))*S),r>2&&0===z&&(A+=(z=Cn(o))*z),A=(_-(A=Math.sqrt(A)))/A*i,c.vx+=(k*=A)*(_=(N*=N)/(g+N)),r>1&&(c.vy+=(S*=A)*_),r>2&&(c.vz+=(z*=A)*_),M.vx-=k*(_=1-_),r>1&&(M.vy-=S*_),r>2&&(M.vz-=z*_))}}}function u(t){if(t.data)return t.r=n[t.data.index];for(var e=t.r=0;e<Math.pow(2,r);++e)t[e]&&t[e].r>t.r&&(t.r=t[e].r)}function c(){if(e){var r,o,i=e.length;for(n=new Array(i),r=0;r<i;++r)o=e[r],n[o.index]=+t(o,r,e)}}return"function"!=typeof t&&(t=jn(null==t?1:+t)),a.initialize=function(t,...n){e=t,o=n.find(t=>"function"==typeof t)||Math.random,r=n.find(t=>[1,2,3].includes(t))||2,c()},a.iterations=function(t){return arguments.length?(s=+t,a):s},a.strength=function(t){return arguments.length?(i=+t,a):i},a.radius=function(e){return arguments.length?(t="function"==typeof e?e:jn(+e),c(),a):t},a}function Fn(t){return t.index}function Ln(t,e){var r=t.get(e);if(!r)throw new Error("node not found: "+e);return r}function Dn(t){var e,r,n,o,i,s,a,u=Fn,c=function(t){return 1/Math.min(i[t.source.index],i[t.target.index])},h=jn(30),l=1;function d(n){for(var i=0,u=t.length;i<l;++i)for(var c,h,d,f,g,p=0,v=0,m=0,y=0;p<u;++p)h=(c=t[p]).source,v=(d=c.target).x+d.vx-h.x-h.vx||Cn(a),o>1&&(m=d.y+d.vy-h.y-h.vy||Cn(a)),o>2&&(y=d.z+d.vz-h.z-h.vz||Cn(a)),v*=f=((f=Math.sqrt(v*v+m*m+y*y))-r[p])/f*n*e[p],m*=f,y*=f,d.vx-=v*(g=s[p]),o>1&&(d.vy-=m*g),o>2&&(d.vz-=y*g),h.vx+=v*(g=1-g),o>1&&(h.vy+=m*g),o>2&&(h.vz+=y*g)}function f(){if(n){var o,a,c=n.length,h=t.length,l=new Map(n.map((t,e)=>[u(t,e,n),t]));for(o=0,i=new Array(c);o<h;++o)(a=t[o]).index=o,"object"!=typeof a.source&&(a.source=Ln(l,a.source)),"object"!=typeof a.target&&(a.target=Ln(l,a.target)),i[a.source.index]=(i[a.source.index]||0)+1,i[a.target.index]=(i[a.target.index]||0)+1;for(o=0,s=new Array(h);o<h;++o)a=t[o],s[o]=i[a.source.index]/(i[a.source.index]+i[a.target.index]);e=new Array(h),g(),r=new Array(h),p()}}function g(){if(n)for(var r=0,o=t.length;r<o;++r)e[r]=+c(t[r],r,t)}function p(){if(n)for(var e=0,o=t.length;e<o;++e)r[e]=+h(t[e],e,t)}return null==t&&(t=[]),d.initialize=function(t,...e){n=t,a=e.find(t=>"function"==typeof t)||Math.random,o=e.find(t=>[1,2,3].includes(t))||2,f()},d.links=function(e){return arguments.length?(t=e,f(),d):t},d.id=function(t){return arguments.length?(u=t,d):u},d.iterations=function(t){return arguments.length?(l=+t,d):l},d.strength=function(t){return arguments.length?(c="function"==typeof t?t:jn(+t),g(),d):c},d.distance=function(t){return arguments.length?(h="function"==typeof t?t:jn(+t),p(),d):h},d}On.copy=function(){var t,e,r=new zn(this._x,this._y,this._z,this._x0,this._y0,this._z0,this._x1,this._y1,this._z1),n=this._root;if(!n)return r;if(!n.length)return r._root=An(n),r;for(t=[{source:n,target:r._root=new Array(8)}];n=t.pop();)for(var o=0;o<8;++o)(e=n.source[o])&&(e.length?t.push({source:e,target:n.target[o]=new Array(8)}):n.target[o]=An(e));return r},On.add=function(t){const e=+this._x.call(null,t),r=+this._y.call(null,t),n=+this._z.call(null,t);return bn(this.cover(e,r,n),e,r,n,t)},On.addAll=function(t){Array.isArray(t)||(t=Array.from(t));const e=t.length,r=new Float64Array(e),n=new Float64Array(e),o=new Float64Array(e);let i=1/0,s=1/0,a=1/0,u=-1/0,c=-1/0,h=-1/0;for(let l,d,f,g,p=0;p<e;++p)isNaN(d=+this._x.call(null,l=t[p]))||isNaN(f=+this._y.call(null,l))||isNaN(g=+this._z.call(null,l))||(r[p]=d,n[p]=f,o[p]=g,d<i&&(i=d),d>u&&(u=d),f<s&&(s=f),f>c&&(c=f),g<a&&(a=g),g>h&&(h=g));if(i>u||s>c||a>h)return this;this.cover(i,s,a).cover(u,c,h);for(let i=0;i<e;++i)bn(this,r[i],n[i],o[i],t[i]);return this},On.cover=function(t,e,r){if(isNaN(t=+t)||isNaN(e=+e)||isNaN(r=+r))return this;var n=this._x0,o=this._y0,i=this._z0,s=this._x1,a=this._y1,u=this._z1;if(isNaN(n))s=(n=Math.floor(t))+1,a=(o=Math.floor(e))+1,u=(i=Math.floor(r))+1;else{for(var c,h,l=s-n||1,d=this._root;n>t||t>=s||o>e||e>=a||i>r||r>=u;)switch(h=(r<i)<<2|(e<o)<<1|t<n,(c=new Array(8))[h]=d,d=c,l*=2,h){case 0:s=n+l,a=o+l,u=i+l;break;case 1:n=s-l,a=o+l,u=i+l;break;case 2:s=n+l,o=a-l,u=i+l;break;case 3:n=s-l,o=a-l,u=i+l;break;case 4:s=n+l,a=o+l,i=u-l;break;case 5:n=s-l,a=o+l,i=u-l;break;case 6:s=n+l,o=a-l,i=u-l;break;case 7:n=s-l,o=a-l,i=u-l}this._root&&this._root.length&&(this._root=d)}return this._x0=n,this._y0=o,this._z0=i,this._x1=s,this._y1=a,this._z1=u,this},On.data=function(){var t=[];return this.visit(function(e){if(!e.length)do{t.push(e.data)}while(e=e.next)}),t},On.extent=function(t){return arguments.length?this.cover(+t[0][0],+t[0][1],+t[0][2]).cover(+t[1][0],+t[1][1],+t[1][2]):isNaN(this._x0)?void 0:[[this._x0,this._y0,this._z0],[this._x1,this._y1,this._z1]]},On.find=function(t,e,r,n){var o,i,s,a,u,c,h,l,d,f=this._x0,g=this._y0,p=this._z0,v=this._x1,m=this._y1,y=this._z1,w=[],x=this._root;for(x&&w.push(new En(x,f,g,p,v,m,y)),null==n?n=1/0:(f=t-n,g=e-n,p=r-n,v=t+n,m=e+n,y=r+n,n*=n);l=w.pop();)if(!(!(x=l.node)||(i=l.x0)>v||(s=l.y0)>m||(a=l.z0)>y||(u=l.x1)<f||(c=l.y1)<g||(h=l.z1)<p))if(x.length){var b=(i+u)/2,E=(s+c)/2,M=(a+h)/2;w.push(new En(x[7],b,E,M,u,c,h),new En(x[6],i,E,M,b,c,h),new En(x[5],b,s,M,u,E,h),new En(x[4],i,s,M,b,E,h),new En(x[3],b,E,a,u,c,M),new En(x[2],i,E,a,b,c,M),new En(x[1],b,s,a,u,E,M),new En(x[0],i,s,a,b,E,M)),(d=(r>=M)<<2|(e>=E)<<1|t>=b)&&(l=w[w.length-1],w[w.length-1]=w[w.length-1-d],w[w.length-1-d]=l)}else{var N=t-+this._x.call(null,x.data),_=e-+this._y.call(null,x.data),k=r-+this._z.call(null,x.data),S=N*N+_*_+k*k;if(S<n){var z=Math.sqrt(n=S);f=t-z,g=e-z,p=r-z,v=t+z,m=e+z,y=r+z,o=x.data}}return o},On.findAllWithinRadius=function(t,e,r,n){const o=[],i=t-n,s=e-n,a=r-n,u=t+n,c=e+n,h=r+n;return this.visit((l,d,f,g,p,v,m)=>{if(!l.length)do{const i=l.data;Mn(t,e,r,this._x(i),this._y(i),this._z(i))<=n&&o.push(i)}while(l=l.next);return d>u||f>c||g>h||p<i||v<s||m<a}),o},On.remove=function(t){if(isNaN(i=+this._x.call(null,t))||isNaN(s=+this._y.call(null,t))||isNaN(a=+this._z.call(null,t)))return this;var e,r,n,o,i,s,a,u,c,h,l,d,f,g,p,v=this._root,m=this._x0,y=this._y0,w=this._z0,x=this._x1,b=this._y1,E=this._z1;if(!v)return this;if(v.length)for(;;){if((l=i>=(u=(m+x)/2))?m=u:x=u,(d=s>=(c=(y+b)/2))?y=c:b=c,(f=a>=(h=(w+E)/2))?w=h:E=h,e=v,!(v=v[g=f<<2|d<<1|l]))return this;if(!v.length)break;(e[g+1&7]||e[g+2&7]||e[g+3&7]||e[g+4&7]||e[g+5&7]||e[g+6&7]||e[g+7&7])&&(r=e,p=g)}for(;v.data!==t;)if(n=v,!(v=v.next))return this;return(o=v.next)&&delete v.next,n?(o?n.next=o:delete n.next,this):e?(o?e[g]=o:delete e[g],(v=e[0]||e[1]||e[2]||e[3]||e[4]||e[5]||e[6]||e[7])&&v===(e[7]||e[6]||e[5]||e[4]||e[3]||e[2]||e[1]||e[0])&&!v.length&&(r?r[p]=v:this._root=v),this):(this._root=o,this)},On.removeAll=function(t){for(var e=0,r=t.length;e<r;++e)this.remove(t[e]);return this},On.root=function(){return this._root},On.size=function(){var t=0;return this.visit(function(e){if(!e.length)do{++t}while(e=e.next)}),t},On.visit=function(t){var e,r,n,o,i,s,a,u,c=[],h=this._root;for(h&&c.push(new En(h,this._x0,this._y0,this._z0,this._x1,this._y1,this._z1));e=c.pop();)if(!t(h=e.node,n=e.x0,o=e.y0,i=e.z0,s=e.x1,a=e.y1,u=e.z1)&&h.length){var l=(n+s)/2,d=(o+a)/2,f=(i+u)/2;(r=h[7])&&c.push(new En(r,l,d,f,s,a,u)),(r=h[6])&&c.push(new En(r,n,d,f,l,a,u)),(r=h[5])&&c.push(new En(r,l,o,f,s,d,u)),(r=h[4])&&c.push(new En(r,n,o,f,l,d,u)),(r=h[3])&&c.push(new En(r,l,d,i,s,a,f)),(r=h[2])&&c.push(new En(r,n,d,i,l,a,f)),(r=h[1])&&c.push(new En(r,l,o,i,s,d,f)),(r=h[0])&&c.push(new En(r,n,o,i,l,d,f))}return this},On.visitAfter=function(t){var e,r=[],n=[];for(this._root&&r.push(new En(this._root,this._x0,this._y0,this._z0,this._x1,this._y1,this._z1));e=r.pop();){var o=e.node;if(o.length){var i,s=e.x0,a=e.y0,u=e.z0,c=e.x1,h=e.y1,l=e.z1,d=(s+c)/2,f=(a+h)/2,g=(u+l)/2;(i=o[0])&&r.push(new En(i,s,a,u,d,f,g)),(i=o[1])&&r.push(new En(i,d,a,u,c,f,g)),(i=o[2])&&r.push(new En(i,s,f,u,d,h,g)),(i=o[3])&&r.push(new En(i,d,f,u,c,h,g)),(i=o[4])&&r.push(new En(i,s,a,g,d,f,l)),(i=o[5])&&r.push(new En(i,d,a,g,c,f,l)),(i=o[6])&&r.push(new En(i,s,f,g,d,h,l)),(i=o[7])&&r.push(new En(i,d,f,g,c,h,l))}n.push(e)}for(;e=n.pop();)t(e.node,e.x0,e.y0,e.z0,e.x1,e.y1,e.z1);return this},On.x=function(t){return arguments.length?(this._x=t,this):this._x},On.y=function(t){return arguments.length?(this._y=t,this):this._y},On.z=function(t){return arguments.length?(this._z=t,this):this._z};const qn=4294967296;function Vn(t){return t.x}function Bn(t){return t.y}function $n(t){return t.z}var Gn=Math.PI*(3-Math.sqrt(5)),Un=20*Math.PI/(9+Math.sqrt(221));function Wn(t,e){e=e||2;var r,n=Math.min(3,Math.max(1,Math.round(e))),o=1,i=.001,s=1-Math.pow(i,1/300),a=0,u=.6,c=new Map,h=Xr(f),l=Cr("tick","end"),d=function(){let t=1;return()=>(t=(1664525*t+1013904223)%qn)/qn}();function f(){g(),l.call("tick",r),o<i&&(h.stop(),l.call("end",r))}function g(e){var i,h,l=t.length;void 0===e&&(e=1);for(var d=0;d<e;++d)for(o+=(a-o)*s,c.forEach(function(t){t(o)}),i=0;i<l;++i)null==(h=t[i]).fx?h.x+=h.vx*=u:(h.x=h.fx,h.vx=0),n>1&&(null==h.fy?h.y+=h.vy*=u:(h.y=h.fy,h.vy=0)),n>2&&(null==h.fz?h.z+=h.vz*=u:(h.z=h.fz,h.vz=0));return r}function p(){for(var e,r=0,o=t.length;r<o;++r){if((e=t[r]).index=r,null!=e.fx&&(e.x=e.fx),null!=e.fy&&(e.y=e.fy),null!=e.fz&&(e.z=e.fz),isNaN(e.x)||n>1&&isNaN(e.y)||n>2&&isNaN(e.z)){var i=10*(n>2?Math.cbrt(.5+r):n>1?Math.sqrt(.5+r):r),s=r*Gn,a=r*Un;1===n?e.x=i:2===n?(e.x=i*Math.cos(s),e.y=i*Math.sin(s)):(e.x=i*Math.sin(s)*Math.cos(a),e.y=i*Math.cos(s),e.z=i*Math.sin(s)*Math.sin(a))}(isNaN(e.vx)||n>1&&isNaN(e.vy)||n>2&&isNaN(e.vz))&&(e.vx=0,n>1&&(e.vy=0),n>2&&(e.vz=0))}}function v(e){return e.initialize&&e.initialize(t,d,n),e}return null==t&&(t=[]),p(),r={tick:g,restart:function(){return h.restart(f),r},stop:function(){return h.stop(),r},numDimensions:function(t){return arguments.length?(n=Math.min(3,Math.max(1,Math.round(t))),c.forEach(v),r):n},nodes:function(e){return arguments.length?(t=e,p(),c.forEach(v),r):t},alpha:function(t){return arguments.length?(o=+t,r):o},alphaMin:function(t){return arguments.length?(i=+t,r):i},alphaDecay:function(t){return arguments.length?(s=+t,r):+s},alphaTarget:function(t){return arguments.length?(a=+t,r):a},velocityDecay:function(t){return arguments.length?(u=1-t,r):1-u},randomSource:function(t){return arguments.length?(d=t,c.forEach(v),r):d},force:function(t,e){return arguments.length>1?(null==e?c.delete(t):c.set(t,v(e)),r):c.get(t)},find:function(){var e,r,o,i,s,a,u=Array.prototype.slice.call(arguments),c=u.shift()||0,h=(n>1?u.shift():null)||0,l=(n>2?u.shift():null)||0,d=u.shift()||1/0,f=0,g=t.length;for(d*=d,f=0;f<g;++f)(i=(e=c-(s=t[f]).x)*e+(r=h-(s.y||0))*r+(o=l-(s.z||0))*o)<d&&(a=s,d=i);return a},on:function(t,e){return arguments.length>1?(l.on(t,e),r):l.on(t)}}}function Yn(){var t,e,r,n,o,i,s=jn(-30),a=1,u=1/0,c=.81;function h(n){var i,s=t.length,a=(1===e?mn(t,Vn):2===e?wr(t,Vn,Bn):3===e?Sn(t,Vn,Bn,$n):null).visitAfter(d);for(o=n,i=0;i<s;++i)r=t[i],a.visit(f)}function l(){if(t){var e,r,n=t.length;for(i=new Array(n),e=0;e<n;++e)r=t[e],i[r.index]=+s(r,e,t)}}function d(t){var r,n,o,s,a,u,c=0,h=0,l=t.length;if(l){for(o=s=a=u=0;u<l;++u)(r=t[u])&&(n=Math.abs(r.value))&&(c+=r.value,h+=n,o+=n*(r.x||0),s+=n*(r.y||0),a+=n*(r.z||0));c*=Math.sqrt(4/l),t.x=o/h,e>1&&(t.y=s/h),e>2&&(t.z=a/h)}else{(r=t).x=r.data.x,e>1&&(r.y=r.data.y),e>2&&(r.z=r.data.z);do{c+=i[r.data.index]}while(r=r.next)}t.value=c}function f(t,s,h,l,d){if(!t.value)return!0;var f=[h,l,d][e-1],g=t.x-r.x,p=e>1?t.y-r.y:0,v=e>2?t.z-r.z:0,m=f-s,y=g*g+p*p+v*v;if(m*m/c<y)return y<u&&(0===g&&(y+=(g=Cn(n))*g),e>1&&0===p&&(y+=(p=Cn(n))*p),e>2&&0===v&&(y+=(v=Cn(n))*v),y<a&&(y=Math.sqrt(a*y)),r.vx+=g*t.value*o/y,e>1&&(r.vy+=p*t.value*o/y),e>2&&(r.vz+=v*t.value*o/y)),!0;if(!(t.length||y>=u)){(t.data!==r||t.next)&&(0===g&&(y+=(g=Cn(n))*g),e>1&&0===p&&(y+=(p=Cn(n))*p),e>2&&0===v&&(y+=(v=Cn(n))*v),y<a&&(y=Math.sqrt(a*y)));do{t.data!==r&&(m=i[t.data.index]*o/y,r.vx+=g*m,e>1&&(r.vy+=p*m),e>2&&(r.vz+=v*m))}while(t=t.next)}}return h.initialize=function(r,...o){t=r,n=o.find(t=>"function"==typeof t)||Math.random,e=o.find(t=>[1,2,3].includes(t))||2,l()},h.strength=function(t){return arguments.length?(s="function"==typeof t?t:jn(+t),l(),h):s},h.distanceMin=function(t){return arguments.length?(a=t*t,h):Math.sqrt(a)},h.distanceMax=function(t){return arguments.length?(u=t*t,h):Math.sqrt(u)},h.theta=function(t){return arguments.length?(c=t*t,h):Math.sqrt(c)},h}function Hn(t,e,r,n){var o,i,s,a,u=jn(.1);function c(t){for(var u=0,c=o.length;u<c;++u){var h=o[u],l=h.x-e||1e-6,d=(h.y||0)-r||1e-6,f=(h.z||0)-n||1e-6,g=Math.sqrt(l*l+d*d+f*f),p=(a[u]-g)*s[u]*t/g;h.vx+=l*p,i>1&&(h.vy+=d*p),i>2&&(h.vz+=f*p)}}function h(){if(o){var e,r=o.length;for(s=new Array(r),a=new Array(r),e=0;e<r;++e)a[e]=+t(o[e],e,o),s[e]=isNaN(a[e])?0:+u(o[e],e,o)}}return"function"!=typeof t&&(t=jn(+t)),null==e&&(e=0),null==r&&(r=0),null==n&&(n=0),c.initialize=function(t,...e){o=t,i=e.find(t=>[1,2,3].includes(t))||2,h()},c.strength=function(t){return arguments.length?(u="function"==typeof t?t:jn(+t),h(),c):u},c.radius=function(e){return arguments.length?(t="function"==typeof e?e:jn(+e),h(),c):t},c.x=function(t){return arguments.length?(e=+t,c):e},c.y=function(t){return arguments.length?(r=+t,c):r},c.z=function(t){return arguments.length?(n=+t,c):n},c}function Xn(t){var e,r,n,o=jn(.1);function i(t){for(var o,i=0,s=e.length;i<s;++i)(o=e[i]).vx+=(n[i]-o.x)*r[i]*t}function s(){if(e){var i,s=e.length;for(r=new Array(s),n=new Array(s),i=0;i<s;++i)r[i]=isNaN(n[i]=+t(e[i],i,e))?0:+o(e[i],i,e)}}return"function"!=typeof t&&(t=jn(null==t?0:+t)),i.initialize=function(t){e=t,s()},i.strength=function(t){return arguments.length?(o="function"==typeof t?t:jn(+t),s(),i):o},i.x=function(e){return arguments.length?(t="function"==typeof e?e:jn(+e),s(),i):t},i}function Qn(t){var e,r,n,o=jn(.1);function i(t){for(var o,i=0,s=e.length;i<s;++i)(o=e[i]).vy+=(n[i]-o.y)*r[i]*t}function s(){if(e){var i,s=e.length;for(r=new Array(s),n=new Array(s),i=0;i<s;++i)r[i]=isNaN(n[i]=+t(e[i],i,e))?0:+o(e[i],i,e)}}return"function"!=typeof t&&(t=jn(null==t?0:+t)),i.initialize=function(t){e=t,s()},i.strength=function(t){return arguments.length?(o="function"==typeof t?t:jn(+t),s(),i):o},i.y=function(e){return arguments.length?(t="function"==typeof e?e:jn(+e),s(),i):t},i}function Jn(t){var e,r,n,o=jn(.1);function i(t){for(var o,i=0,s=e.length;i<s;++i)(o=e[i]).vz+=(n[i]-o.z)*r[i]*t}function s(){if(e){var i,s=e.length;for(r=new Array(s),n=new Array(s),i=0;i<s;++i)r[i]=isNaN(n[i]=+t(e[i],i,e))?0:+o(e[i],i,e)}}return"function"!=typeof t&&(t=jn(null==t?0:+t)),i.initialize=function(t){e=t,s()},i.strength=function(t){return arguments.length?(o="function"==typeof t?t:jn(+t),s(),i):o},i.z=function(e){return arguments.length?(t="function"==typeof e?e:jn(+e),s(),i):t},i}class Kn extends ln{constructor(){super(...arguments),this.id="d3-force-3d",this.config={simulationAttrs:["alpha","alphaMin","alphaDecay","alphaTarget","velocityDecay","randomSource","numDimensions"]},this.forceMap={link:Dn,manyBody:Yn,center:fn,collide:Tn,radial:Hn,x:Xn,y:Qn,z:Jn}}getDefaultOptions(){return{numDimensions:3,link:{id:t=>String(t.id)},manyBody:{},center:{x:0,y:0,z:0}}}initSimulation(){return Wn()}setupForces(t,e){Object.entries(this.forceMap).forEach(([r,n])=>{const o=r;if(e[r]){let r=t.force(o);r||(r=n(),t.force(o,r)),dn(r,Object.entries(e[o]))}else t.force(o,null)})}}var Zn,to,eo,ro,no,oo,io,so,ao,uo,co,ho,lo,fo,go,po,vo,mo,yo,wo,xo,bo,Eo,Mo,No,_o,ko,So,zo,Ao,Oo,jo,Co,Io,Ro,Po,To,Fo,Lo,Do,qo,Vo,Bo,$o,Go,Uo,Wo,Yo,Ho,Xo,Qo,Jo,Ko,Zo,ti,ei,ri,ni,oi,ii,si,ai,ui,ci,hi,li,di,fi,gi,pi,vi,mi,yi,wi,xi,bi,Ei,Mi,Ni,_i,ki,Si,zi,Ai,Oi,ji,Ci,Ii,Ri,Pi,Ti,Fi,Li,Di,qi,Vi,Bi,$i,Gi,Ui,Wi,Yi,Hi,Xi,Qi,Ji,Ki,Zi,ts="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function es(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}function rs(t){if(Object.prototype.hasOwnProperty.call(t,"__esModule"))return t;var e=t.default;if("function"==typeof e){var r=function t(){var r=!1;try{r=this instanceof t}catch{}return r?Reflect.construct(e,arguments,this.constructor):e.apply(this,arguments)};r.prototype=e.prototype}else r={};return Object.defineProperty(r,"__esModule",{value:!0}),Object.keys(t).forEach(function(e){var n=Object.getOwnPropertyDescriptor(t,e);Object.defineProperty(r,e,n.get?n:{enumerable:!0,get:function(){return t[e]}})}),r}function ns(){if(ro)return eo;return ro=1,eo=function(t,e){return t===e||t!=t&&e!=e}}function os(){if(oo)return no;oo=1;var t=ns();return no=function(e,r){for(var n=e.length;n--;)if(t(e[n][0],r))return n;return-1}}function is(){if(po)return go;po=1;var t=to?Zn:(to=1,Zn=function(){this.__data__=[],this.size=0}),e=function(){if(so)return io;so=1;var t=os(),e=Array.prototype.splice;return io=function(r){var n=this.__data__,o=t(n,r);return!(o<0||(o==n.length-1?n.pop():e.call(n,o,1),--this.size,0))},io}(),r=function(){if(uo)return ao;uo=1;var t=os();return ao=function(e){var r=this.__data__,n=t(r,e);return n<0?void 0:r[n][1]},ao}(),n=function(){if(ho)return co;ho=1;var t=os();return co=function(e){return t(this.__data__,e)>-1}}(),o=function(){if(fo)return lo;fo=1;var t=os();return lo=function(e,r){var n=this.__data__,o=t(n,e);return o<0?(++this.size,n.push([e,r])):n[o][1]=r,this},lo}();function i(t){var e=-1,r=null==t?0:t.length;for(this.clear();++e<r;){var n=t[e];this.set(n[0],n[1])}}return i.prototype.clear=t,i.prototype.delete=e,i.prototype.get=r,i.prototype.has=n,i.prototype.set=o,go=i}function ss(){if(_o)return No;_o=1;var t="object"==typeof ts&&ts&&ts.Object===Object&&ts;return No=t}function as(){if(So)return ko;So=1;var t=ss(),e="object"==typeof self&&self&&self.Object===Object&&self,r=t||e||Function("return this")();return ko=r}function us(){if(Ao)return zo;Ao=1;var t=as().Symbol;return zo=t}function cs(){if(Po)return Ro;Po=1;var t=us(),e=function(){if(jo)return Oo;jo=1;var t=us(),e=Object.prototype,r=e.hasOwnProperty,n=e.toString,o=t?t.toStringTag:void 0;return Oo=function(t){var e=r.call(t,o),i=t[o];try{t[o]=void 0;var s=!0}catch(t){}var a=n.call(t);return s&&(e?t[o]=i:delete t[o]),a}}(),r=function(){if(Io)return Co;Io=1;var t=Object.prototype.toString;return Co=function(e){return t.call(e)}}(),n=t?t.toStringTag:void 0;return Ro=function(t){return null==t?void 0===t?"[object Undefined]":"[object Null]":n&&n in Object(t)?e(t):r(t)}}function hs(){if(Fo)return To;return Fo=1,To=function(t){var e=typeof t;return null!=t&&("object"==e||"function"==e)}}function ls(){if(Do)return Lo;Do=1;var t=cs(),e=hs();return Lo=function(r){if(!e(r))return!1;var n=t(r);return"[object Function]"==n||"[object GeneratorFunction]"==n||"[object AsyncFunction]"==n||"[object Proxy]"==n}}function ds(){if($o)return Bo;$o=1;var t,e=function(){if(Vo)return qo;Vo=1;var t=as()["__core-js_shared__"];return qo=t}(),r=(t=/[^.]+$/.exec(e&&e.keys&&e.keys.IE_PROTO||""))?"Symbol(src)_1."+t:"";return Bo=function(t){return!!r&&r in t}}function fs(){if(Uo)return Go;Uo=1;var t=Function.prototype.toString;return Go=function(e){if(null!=e){try{return t.call(e)}catch(t){}try{return e+""}catch(t){}}return""}}function gs(){if(Jo)return Qo;Jo=1;var t=function(){if(Yo)return Wo;Yo=1;var t=ls(),e=ds(),r=hs(),n=fs(),o=/^\[object .+?Constructor\]$/,i=Function.prototype,s=Object.prototype,a=i.toString,u=s.hasOwnProperty,c=RegExp("^"+a.call(u).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");return Wo=function(i){return!(!r(i)||e(i))&&(t(i)?c:o).test(n(i))}}(),e=Xo?Ho:(Xo=1,Ho=function(t,e){return null==t?void 0:t[e]});return Qo=function(r,n){var o=e(r,n);return t(o)?o:void 0}}function ps(){if(Zo)return Ko;Zo=1;var t=gs()(as(),"Map");return Ko=t}function vs(){if(ei)return ti;ei=1;var t=gs()(Object,"create");return ti=t}function ms(){if(fi)return di;fi=1;var t=function(){if(ni)return ri;ni=1;var t=vs();return ri=function(){this.__data__=t?t(null):{},this.size=0}}(),e=ii?oi:(ii=1,oi=function(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e}),r=function(){if(ai)return si;ai=1;var t=vs(),e=Object.prototype.hasOwnProperty;return si=function(r){var n=this.__data__;if(t){var o=n[r];return"__lodash_hash_undefined__"===o?void 0:o}return e.call(n,r)?n[r]:void 0}}(),n=function(){if(ci)return ui;ci=1;var t=vs(),e=Object.prototype.hasOwnProperty;return ui=function(r){var n=this.__data__;return t?void 0!==n[r]:e.call(n,r)}}(),o=function(){if(li)return hi;li=1;var t=vs();return hi=function(e,r){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=t&&void 0===r?"__lodash_hash_undefined__":r,this}}();function i(t){var e=-1,r=null==t?0:t.length;for(this.clear();++e<r;){var n=t[e];this.set(n[0],n[1])}}return i.prototype.clear=t,i.prototype.delete=e,i.prototype.get=r,i.prototype.has=n,i.prototype.set=o,di=i}function ys(){if(wi)return yi;wi=1;var t=mi?vi:(mi=1,vi=function(t){var e=typeof t;return"string"==e||"number"==e||"symbol"==e||"boolean"==e?"__proto__"!==t:null===t});return yi=function(e,r){var n=e.__data__;return t(r)?n["string"==typeof r?"string":"hash"]:n.map}}function ws(){if(Ai)return zi;Ai=1;var t=function(){if(pi)return gi;pi=1;var t=ms(),e=is(),r=ps();return gi=function(){this.size=0,this.__data__={hash:new t,map:new(r||e),string:new t}}}(),e=function(){if(bi)return xi;bi=1;var t=ys();return xi=function(e){var r=t(this,e).delete(e);return this.size-=r?1:0,r}}(),r=function(){if(Mi)return Ei;Mi=1;var t=ys();return Ei=function(e){return t(this,e).get(e)}}(),n=function(){if(_i)return Ni;_i=1;var t=ys();return Ni=function(e){return t(this,e).has(e)}}(),o=function(){if(Si)return ki;Si=1;var t=ys();return ki=function(e,r){var n=t(this,e),o=n.size;return n.set(e,r),this.size+=n.size==o?0:1,this}}();function i(t){var e=-1,r=null==t?0:t.length;for(this.clear();++e<r;){var n=t[e];this.set(n[0],n[1])}}return i.prototype.clear=t,i.prototype.delete=e,i.prototype.get=r,i.prototype.has=n,i.prototype.set=o,zi=i}function xs(){if(Ii)return Ci;Ii=1;var t=is(),e=function(){if(mo)return vo;mo=1;var t=is();return vo=function(){this.__data__=new t,this.size=0}}(),r=wo?yo:(wo=1,yo=function(t){var e=this.__data__,r=e.delete(t);return this.size=e.size,r}),n=bo?xo:(bo=1,xo=function(t){return this.__data__.get(t)}),o=Mo?Eo:(Mo=1,Eo=function(t){return this.__data__.has(t)}),i=function(){if(ji)return Oi;ji=1;var t=is(),e=ps(),r=ws();return Oi=function(n,o){var i=this.__data__;if(i instanceof t){var s=i.__data__;if(!e||s.length<199)return s.push([n,o]),this.size=++i.size,this;i=this.__data__=new r(s)}return i.set(n,o),this.size=i.size,this}}();function s(e){var r=this.__data__=new t(e);this.size=r.size}return s.prototype.clear=e,s.prototype.delete=r,s.prototype.get=n,s.prototype.has=o,s.prototype.set=i,Ci=s}function bs(){if(Pi)return Ri;return Pi=1,Ri=function(t,e){for(var r=-1,n=null==t?0:t.length;++r<n&&!1!==e(t[r],r,t););return t},Ri}function Es(){if(Fi)return Ti;Fi=1;var t=gs(),e=function(){try{var e=t(Object,"defineProperty");return e({},"",{}),e}catch(t){}}();return Ti=e}function Ms(){if(Di)return Li;Di=1;var t=Es();return Li=function(e,r,n){"__proto__"==r&&t?t(e,r,{configurable:!0,enumerable:!0,value:n,writable:!0}):e[r]=n}}function Ns(){if(Vi)return qi;Vi=1;var t=Ms(),e=ns(),r=Object.prototype.hasOwnProperty;return qi=function(n,o,i){var s=n[o];r.call(n,o)&&e(s,i)&&(void 0!==i||o in n)||t(n,o,i)}}function _s(){if($i)return Bi;$i=1;var t=Ns(),e=Ms();return Bi=function(r,n,o,i){var s=!o;o||(o={});for(var a=-1,u=n.length;++a<u;){var c=n[a],h=i?i(o[c],r[c],c,o,r):void 0;void 0===h&&(h=r[c]),s?e(o,c,h):t(o,c,h)}return o},Bi}function ks(){if(Yi)return Wi;return Yi=1,Wi=function(t){return null!=t&&"object"==typeof t}}function Ss(){if(Ji)return Qi;Ji=1;var t=function(){if(Xi)return Hi;Xi=1;var t=cs(),e=ks();return Hi=function(r){return e(r)&&"[object Arguments]"==t(r)}}(),e=ks(),r=Object.prototype,n=r.hasOwnProperty,o=r.propertyIsEnumerable,i=t(function(){return arguments}())?t:function(t){return e(t)&&n.call(t,"callee")&&!o.call(t,"callee")};return Qi=i}function zs(){if(Zi)return Ki;Zi=1;var t=Array.isArray;return Ki=t}var As,Os,js,Cs,Is,Rs,Ps,Ts,Fs,Ls,Ds,qs={exports:{}};function Vs(){return js||(js=1,function(t,e){var r=as(),n=Os?As:(Os=1,As=function(){return!1}),o=e&&!e.nodeType&&e,i=o&&t&&!t.nodeType&&t,s=i&&i.exports===o?r.Buffer:void 0,a=(s?s.isBuffer:void 0)||n;t.exports=a}(qs,qs.exports)),qs.exports}function Bs(){if(Is)return Cs;Is=1;var t=/^(?:0|[1-9]\d*)$/;return Cs=function(e,r){var n=typeof e;return!!(r=null==r?9007199254740991:r)&&("number"==n||"symbol"!=n&&t.test(e))&&e>-1&&e%1==0&&e<r}}function $s(){if(Ps)return Rs;Ps=1;return Rs=function(t){return"number"==typeof t&&t>-1&&t%1==0&&t<=9007199254740991}}function Gs(){if(Ds)return Ls;return Ds=1,Ls=function(t){return function(e){return t(e)}}}var Us,Ws,Ys,Hs,Xs,Qs,Js,Ks,Zs,ta,ea,ra,na,oa,ia,sa,aa,ua,ca,ha,la,da,fa,ga,pa,va,ma,ya={exports:{}};function wa(){return Us||(Us=1,function(t,e){var r=ss(),n=e&&!e.nodeType&&e,o=n&&t&&!t.nodeType&&t,i=o&&o.exports===n&&r.process,s=function(){try{var t=o&&o.require&&o.require("util").types;return t||i&&i.binding&&i.binding("util")}catch(t){}}();t.exports=s}(ya,ya.exports)),ya.exports}function xa(){if(Ys)return Ws;Ys=1;var t=function(){if(Fs)return Ts;Fs=1;var t=cs(),e=$s(),r=ks(),n={};return n["[object Float32Array]"]=n["[object Float64Array]"]=n["[object Int8Array]"]=n["[object Int16Array]"]=n["[object Int32Array]"]=n["[object Uint8Array]"]=n["[object Uint8ClampedArray]"]=n["[object Uint16Array]"]=n["[object Uint32Array]"]=!0,n["[object Arguments]"]=n["[object Array]"]=n["[object ArrayBuffer]"]=n["[object Boolean]"]=n["[object DataView]"]=n["[object Date]"]=n["[object Error]"]=n["[object Function]"]=n["[object Map]"]=n["[object Number]"]=n["[object Object]"]=n["[object RegExp]"]=n["[object Set]"]=n["[object String]"]=n["[object WeakMap]"]=!1,Ts=function(o){return r(o)&&e(o.length)&&!!n[t(o)]}}(),e=Gs(),r=wa(),n=r&&r.isTypedArray,o=n?e(n):t;return Ws=o}function ba(){if(Xs)return Hs;Xs=1;var t=(Ui||(Ui=1,Gi=function(t,e){for(var r=-1,n=Array(t);++r<t;)n[r]=e(r);return n}),Gi),e=Ss(),r=zs(),n=Vs(),o=Bs(),i=xa(),s=Object.prototype.hasOwnProperty;return Hs=function(a,u){var c=r(a),h=!c&&e(a),l=!c&&!h&&n(a),d=!c&&!h&&!l&&i(a),f=c||h||l||d,g=f?t(a.length,String):[],p=g.length;for(var v in a)!u&&!s.call(a,v)||f&&("length"==v||l&&("offset"==v||"parent"==v)||d&&("buffer"==v||"byteLength"==v||"byteOffset"==v)||o(v,p))||g.push(v);return g},Hs}function Ea(){if(Js)return Qs;Js=1;var t=Object.prototype;return Qs=function(e){var r=e&&e.constructor;return e===("function"==typeof r&&r.prototype||t)}}function Ma(){if(Zs)return Ks;return Zs=1,Ks=function(t,e){return function(r){return t(e(r))}}}function Na(){if(na)return ra;na=1;var t=Ea(),e=function(){if(ea)return ta;ea=1;var t=Ma()(Object.keys,Object);return ta=t}(),r=Object.prototype.hasOwnProperty;return ra=function(n){if(!t(n))return e(n);var o=[];for(var i in Object(n))r.call(n,i)&&"constructor"!=i&&o.push(i);return o}}function _a(){if(ia)return oa;ia=1;var t=ls(),e=$s();return oa=function(r){return null!=r&&e(r.length)&&!t(r)}}function ka(){if(aa)return sa;aa=1;var t=ba(),e=Na(),r=_a();return sa=function(n){return r(n)?t(n):e(n)}}function Sa(){if(fa)return da;fa=1;var t=hs(),e=Ea(),r=la?ha:(la=1,ha=function(t){var e=[];if(null!=t)for(var r in Object(t))e.push(r);return e}),n=Object.prototype.hasOwnProperty;return da=function(o){if(!t(o))return r(o);var i=e(o),s=[];for(var a in o)("constructor"!=a||!i&&n.call(o,a))&&s.push(a);return s}}function za(){if(pa)return ga;pa=1;var t=ba(),e=Sa(),r=_a();return ga=function(n){return r(n)?t(n,!0):e(n)}}var Aa,Oa,ja,Ca,Ia,Ra,Pa,Ta,Fa,La,Da,qa,Va,Ba,$a,Ga,Ua,Wa,Ya,Ha,Xa,Qa,Ja,Ka,Za,tu,eu,ru,nu,ou,iu,su,au,uu,cu,hu,lu,du,fu,gu,pu,vu,mu,yu,wu,xu,bu,Eu,Mu,Nu,_u,ku,Su,zu,Au,Ou,ju,Cu,Iu,Ru,Pu,Tu,Fu,Lu,Du,qu,Vu,Bu,$u,Gu,Uu,Wu,Yu,Hu,Xu,Qu,Ju,Ku,Zu,tc,ec,rc,nc,oc,ic,sc,ac,uc,cc,hc,lc,dc,fc,gc,pc,vc,mc,yc,wc,xc,bc,Ec,Mc,Nc,_c,kc,Sc,zc,Ac,Oc,jc,Cc,Ic,Rc,Pc,Tc,Fc,Lc,Dc,qc,Vc,Bc,$c,Gc,Uc,Wc,Yc,Hc,Xc,Qc,Jc,Kc,Zc,th,eh,rh,nh,oh,ih,sh,ah,uh,ch,hh,lh,dh,fh,gh,ph,vh,mh,yh,wh,xh,bh,Eh,Mh,Nh,_h,kh,Sh,zh,Ah,Oh,jh,Ch,Ih,Rh,Ph,Th,Fh,Lh,Dh,qh,Vh,Bh,$h,Gh,Uh,Wh,Yh,Hh,Xh,Qh,Jh,Kh,Zh,tl,el,rl,nl,ol,il,sl,al,ul,cl,hl,ll,dl,fl,gl,pl,vl,ml,yl,wl,xl,bl,El,Ml,Nl,_l,kl,Sl,zl,Al,Ol,jl,Cl,Il,Rl,Pl,Tl,Fl,Ll,Dl,ql,Vl,Bl,$l,Gl,Ul,Wl,Yl,Hl,Xl,Ql,Jl,Kl,Zl,td,ed,rd,nd,od,id,sd,ad,ud,cd,hd,ld,dd,fd,gd,pd,vd,md,yd,wd,xd,bd,Ed,Md,Nd,_d,kd,Sd,zd,Ad,Od,jd,Cd,Id,Rd,Pd,Td,Fd,Ld,Dd,qd,Vd,Bd,$d,Gd,Ud,Wd,Yd,Hd,Xd,Qd,Jd,Kd,Zd,tf,ef,rf,nf,of,sf,af,uf,cf,hf,lf,df,ff,gf,pf,vf,mf,yf,wf,xf,bf,Ef,Mf,Nf,_f,kf,Sf,zf,Af,Of,jf,Cf,If,Rf,Pf,Tf,Ff,Lf,Df,qf,Vf,Bf,$f,Gf,Uf,Wf,Yf,Hf,Xf,Qf,Jf,Kf,Zf,tg,eg,rg,ng,og,ig,sg,ag,ug,cg,hg,lg,dg,fg,gg,pg,vg,mg,yg,wg,xg,bg,Eg,Mg,Ng,_g,kg,Sg,zg,Ag,Og,jg,Cg,Ig,Rg,Pg,Tg,Fg,Lg,Dg,qg,Vg,Bg,$g,Gg,Ug,Wg,Yg,Hg,Xg,Qg,Jg,Kg,Zg,tp,ep,rp,np,op,ip,sp,ap,up,cp,hp,lp,dp,fp,gp,pp,vp,mp,yp,wp,xp,bp,Ep,Mp,Np,_p,kp,Sp,zp,Ap={exports:{}};function Op(){return Aa||(Aa=1,function(t,e){var r=as(),n=e&&!e.nodeType&&e,o=n&&t&&!t.nodeType&&t,i=o&&o.exports===n?r.Buffer:void 0,s=i?i.allocUnsafe:void 0;t.exports=function(t,e){if(e)return t.slice();var r=t.length,n=s?s(r):new t.constructor(r);return t.copy(n),n}}(Ap,Ap.exports)),Ap.exports}function jp(){if(ja)return Oa;return ja=1,Oa=function(t,e){var r=-1,n=t.length;for(e||(e=Array(n));++r<n;)e[r]=t[r];return e},Oa}function Cp(){if(Ia)return Ca;return Ia=1,Ca=function(t,e){for(var r=-1,n=null==t?0:t.length,o=0,i=[];++r<n;){var s=t[r];e(s,r,t)&&(i[o++]=s)}return i},Ca}function Ip(){if(Pa)return Ra;return Pa=1,Ra=function(){return[]}}function Rp(){if(Fa)return Ta;Fa=1;var t=Cp(),e=Ip(),r=Object.prototype.propertyIsEnumerable,n=Object.getOwnPropertySymbols;return Ta=n?function(e){return null==e?[]:(e=Object(e),t(n(e),function(t){return r.call(e,t)}))}:e}function Pp(){if(Va)return qa;return Va=1,qa=function(t,e){for(var r=-1,n=e.length,o=t.length;++r<n;)t[o+r]=e[r];return t},qa}function Tp(){if($a)return Ba;$a=1;var t=Ma()(Object.getPrototypeOf,Object);return Ba=t}function Fp(){if(Ua)return Ga;Ua=1;var t=Pp(),e=Tp(),r=Rp(),n=Ip(),o=Object.getOwnPropertySymbols;return Ga=o?function(n){for(var o=[];n;)t(o,r(n)),n=e(n);return o}:n}function Lp(){if(Xa)return Ha;Xa=1;var t=Pp(),e=zs();return Ha=function(r,n,o){var i=n(r);return e(r)?i:t(i,o(r))}}function Dp(){if(Ja)return Qa;Ja=1;var t=Lp(),e=Rp(),r=ka();return Qa=function(n){return t(n,r,e)}}function qp(){if(iu)return ou;iu=1;var t=gs()(as(),"Set");return ou=t}function Vp(){if(cu)return uu;cu=1;var t=function(){if(eu)return tu;eu=1;var t=gs()(as(),"DataView");return tu=t}(),e=ps(),r=function(){if(nu)return ru;nu=1;var t=gs()(as(),"Promise");return ru=t}(),n=qp(),o=function(){if(au)return su;au=1;var t=gs()(as(),"WeakMap");return su=t}(),i=cs(),s=fs(),a="[object Map]",u="[object Promise]",c="[object Set]",h="[object WeakMap]",l="[object DataView]",d=s(t),f=s(e),g=s(r),p=s(n),v=s(o),m=i;return(t&&m(new t(new ArrayBuffer(1)))!=l||e&&m(new e)!=a||r&&m(r.resolve())!=u||n&&m(new n)!=c||o&&m(new o)!=h)&&(m=function(t){var e=i(t),r="[object Object]"==e?t.constructor:void 0,n=r?s(r):"";if(n)switch(n){case d:return l;case f:return a;case g:return u;case p:return c;case v:return h}return e}),uu=m}function Bp(){if(fu)return du;fu=1;var t=as().Uint8Array;return du=t}function $p(){if(pu)return gu;pu=1;var t=Bp();return gu=function(e){var r=new e.constructor(e.byteLength);return new t(r).set(new t(e)),r}}function Gp(){if(Mu)return Eu;Mu=1;var t=$p();return Eu=function(e,r){var n=r?t(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.length)}}function Up(){if(_u)return Nu;_u=1;var t=$p(),e=function(){if(mu)return vu;mu=1;var t=$p();return vu=function(e,r){var n=r?t(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.byteLength)}}(),r=function(){if(wu)return yu;wu=1;var t=/\w*$/;return yu=function(e){var r=new e.constructor(e.source,t.exec(e));return r.lastIndex=e.lastIndex,r}}(),n=function(){if(bu)return xu;bu=1;var t=us(),e=t?t.prototype:void 0,r=e?e.valueOf:void 0;return xu=function(t){return r?Object(r.call(t)):{}}}(),o=Gp();return Nu=function(i,s,a){var u=i.constructor;switch(s){case"[object ArrayBuffer]":return t(i);case"[object Boolean]":case"[object Date]":return new u(+i);case"[object DataView]":return e(i,a);case"[object Float32Array]":case"[object Float64Array]":case"[object Int8Array]":case"[object Int16Array]":case"[object Int32Array]":case"[object Uint8Array]":case"[object Uint8ClampedArray]":case"[object Uint16Array]":case"[object Uint32Array]":return o(i,a);case"[object Map]":case"[object Set]":return new u;case"[object Number]":case"[object String]":return new u(i);case"[object RegExp]":return r(i);case"[object Symbol]":return n(i)}}}function Wp(){if(Su)return ku;Su=1;var t=hs(),e=Object.create,r=function(){function r(){}return function(n){if(!t(n))return{};if(e)return e(n);r.prototype=n;var o=new r;return r.prototype=void 0,o}}();return ku=r}function Yp(){if(Au)return zu;Au=1;var t=Wp(),e=Tp(),r=Ea();return zu=function(n){return"function"!=typeof n.constructor||r(n)?{}:t(e(n))}}function Hp(){if(Iu)return Cu;Iu=1;var t=function(){if(ju)return Ou;ju=1;var t=Vp(),e=ks();return Ou=function(r){return e(r)&&"[object Map]"==t(r)}}(),e=Gs(),r=wa(),n=r&&r.isMap,o=n?e(n):t;return Cu=o}function Xp(){if(Fu)return Tu;Fu=1;var t=function(){if(Pu)return Ru;Pu=1;var t=Vp(),e=ks();return Ru=function(r){return e(r)&&"[object Set]"==t(r)}}(),e=Gs(),r=wa(),n=r&&r.isSet,o=n?e(n):t;return Tu=o}function Qp(){if(Du)return Lu;Du=1;var t=xs(),e=bs(),r=Ns(),n=function(){if(ca)return ua;ca=1;var t=_s(),e=ka();return ua=function(r,n){return r&&t(n,e(n),r)}}(),o=function(){if(ma)return va;ma=1;var t=_s(),e=za();return va=function(r,n){return r&&t(n,e(n),r)}}(),i=Op(),s=jp(),a=function(){if(Da)return La;Da=1;var t=_s(),e=Rp();return La=function(r,n){return t(r,e(r),n)}}(),u=function(){if(Ya)return Wa;Ya=1;var t=_s(),e=Fp();return Wa=function(r,n){return t(r,e(r),n)}}(),c=Dp(),h=function(){if(Za)return Ka;Za=1;var t=Lp(),e=Fp(),r=za();return Ka=function(n){return t(n,r,e)}}(),l=Vp(),d=function(){if(lu)return hu;lu=1;var t=Object.prototype.hasOwnProperty;return hu=function(e){var r=e.length,n=new e.constructor(r);return r&&"string"==typeof e[0]&&t.call(e,"index")&&(n.index=e.index,n.input=e.input),n}}(),f=Up(),g=Yp(),p=zs(),v=Vs(),m=Hp(),y=hs(),w=Xp(),x=ka(),b=za(),E="[object Arguments]",M="[object Function]",N="[object Object]",_={};return _[E]=_["[object Array]"]=_["[object ArrayBuffer]"]=_["[object DataView]"]=_["[object Boolean]"]=_["[object Date]"]=_["[object Float32Array]"]=_["[object Float64Array]"]=_["[object Int8Array]"]=_["[object Int16Array]"]=_["[object Int32Array]"]=_["[object Map]"]=_["[object Number]"]=_[N]=_["[object RegExp]"]=_["[object Set]"]=_["[object String]"]=_["[object Symbol]"]=_["[object Uint8Array]"]=_["[object Uint8ClampedArray]"]=_["[object Uint16Array]"]=_["[object Uint32Array]"]=!0,_["[object Error]"]=_[M]=_["[object WeakMap]"]=!1,Lu=function k(S,z,A,O,j,C){var I,R=1&z,P=2&z,T=4&z;if(A&&(I=j?A(S,O,j,C):A(S)),void 0!==I)return I;if(!y(S))return S;var F=p(S);if(F){if(I=d(S),!R)return s(S,I)}else{var L=l(S),D=L==M||"[object GeneratorFunction]"==L;if(v(S))return i(S,R);if(L==N||L==E||D&&!j){if(I=P||D?{}:g(S),!R)return P?u(S,o(I,S)):a(S,n(I,S))}else{if(!_[L])return j?S:{};I=f(S,L,R)}}C||(C=new t);var q=C.get(S);if(q)return q;C.set(S,I),w(S)?S.forEach(function(t){I.add(k(t,z,A,t,S,C))}):m(S)&&S.forEach(function(t,e){I.set(e,k(t,z,A,e,S,C))});var V=F?void 0:(T?P?h:c:P?b:x)(S);return e(V||S,function(t,e){V&&(t=S[e=t]),r(I,e,k(t,z,A,e,S,C))}),I},Lu}function Jp(){if(Vu)return qu;Vu=1;var t=Qp();return qu=function(e){return t(e,4)}}function Kp(){if($u)return Bu;return $u=1,Bu=function(t){return function(){return t}}}function Zp(){if(Yu)return Wu;Yu=1;var t=(Uu||(Uu=1,Gu=function(t){return function(e,r,n){for(var o=-1,i=Object(e),s=n(e),a=s.length;a--;){var u=s[t?a:++o];if(!1===r(i[u],u,i))break}return e}}),Gu),e=t();return Wu=e}function tv(){if(Xu)return Hu;Xu=1;var t=Zp(),e=ka();return Hu=function(r,n){return r&&t(r,n,e)}}function ev(){if(Zu)return Ku;Zu=1;var t=tv(),e=function(){if(Ju)return Qu;Ju=1;var t=_a();return Qu=function(e,r){return function(n,o){if(null==n)return n;if(!t(n))return e(n,o);for(var i=n.length,s=r?i:-1,a=Object(n);(r?s--:++s<i)&&!1!==o(a[s],s,a););return n}},Qu}(),r=e(t);return Ku=r}function rv(){if(ec)return tc;return ec=1,tc=function(t){return t}}function nv(){if(nc)return rc;nc=1;var t=rv();return rc=function(e){return"function"==typeof e?e:t}}function ov(){if(ic)return oc;ic=1;var t=bs(),e=ev(),r=nv(),n=zs();return oc=function(o,i){return(n(o)?t:e)(o,r(i))}}function iv(){return ac?sc:(ac=1,sc=ov())}function sv(){if(pc)return gc;pc=1;var t=ws(),e=lc?hc:(lc=1,hc=function(t){return this.__data__.set(t,"__lodash_hash_undefined__"),this}),r=fc?dc:(fc=1,dc=function(t){return this.__data__.has(t)});function n(e){var r=-1,n=null==e?0:e.length;for(this.__data__=new t;++r<n;)this.add(e[r])}return n.prototype.add=n.prototype.push=e,n.prototype.has=r,gc=n}function av(){if(wc)return yc;return wc=1,yc=function(t,e){return t.has(e)}}function uv(){if(bc)return xc;bc=1;var t=sv(),e=(mc||(mc=1,vc=function(t,e){for(var r=-1,n=null==t?0:t.length;++r<n;)if(e(t[r],r,t))return!0;return!1}),vc),r=av();return xc=function(n,o,i,s,a,u){var c=1&i,h=n.length,l=o.length;if(h!=l&&!(c&&l>h))return!1;var d=u.get(n),f=u.get(o);if(d&&f)return d==o&&f==n;var g=-1,p=!0,v=2&i?new t:void 0;for(u.set(n,o),u.set(o,n);++g<h;){var m=n[g],y=o[g];if(s)var w=c?s(y,m,g,o,n,u):s(m,y,g,n,o,u);if(void 0!==w){if(w)continue;p=!1;break}if(v){if(!e(o,function(t,e){if(!r(v,e)&&(m===t||a(m,t,i,s,u)))return v.push(e)})){p=!1;break}}else if(m!==y&&!a(m,y,i,s,u)){p=!1;break}}return u.delete(n),u.delete(o),p},xc}function cv(){if(_c)return Nc;return _c=1,Nc=function(t){var e=-1,r=Array(t.size);return t.forEach(function(t){r[++e]=t}),r},Nc}function hv(){if(Sc)return kc;Sc=1;var t=us(),e=Bp(),r=ns(),n=uv(),o=(Mc||(Mc=1,Ec=function(t){var e=-1,r=Array(t.size);return t.forEach(function(t,n){r[++e]=[n,t]}),r}),Ec),i=cv(),s=t?t.prototype:void 0,a=s?s.valueOf:void 0;return kc=function(t,s,u,c,h,l,d){switch(u){case"[object DataView]":if(t.byteLength!=s.byteLength||t.byteOffset!=s.byteOffset)return!1;t=t.buffer,s=s.buffer;case"[object ArrayBuffer]":return!(t.byteLength!=s.byteLength||!l(new e(t),new e(s)));case"[object Boolean]":case"[object Date]":case"[object Number]":return r(+t,+s);case"[object Error]":return t.name==s.name&&t.message==s.message;case"[object RegExp]":case"[object String]":return t==s+"";case"[object Map]":var f=o;case"[object Set]":var g=1&c;if(f||(f=i),t.size!=s.size&&!g)return!1;var p=d.get(t);if(p)return p==s;c|=2,d.set(t,s);var v=n(f(t),f(s),c,h,l,d);return d.delete(t),v;case"[object Symbol]":if(a)return a.call(t)==a.call(s)}return!1}}function lv(){if(jc)return Oc;jc=1;var t=xs(),e=uv(),r=hv(),n=function(){if(Ac)return zc;Ac=1;var t=Dp(),e=Object.prototype.hasOwnProperty;return zc=function(r,n,o,i,s,a){var u=1&o,c=t(r),h=c.length;if(h!=t(n).length&&!u)return!1;for(var l=h;l--;){var d=c[l];if(!(u?d in n:e.call(n,d)))return!1}var f=a.get(r),g=a.get(n);if(f&&g)return f==n&&g==r;var p=!0;a.set(r,n),a.set(n,r);for(var v=u;++l<h;){var m=r[d=c[l]],y=n[d];if(i)var w=u?i(y,m,d,n,r,a):i(m,y,d,r,n,a);if(!(void 0===w?m===y||s(m,y,o,i,a):w)){p=!1;break}v||(v="constructor"==d)}if(p&&!v){var x=r.constructor,b=n.constructor;x==b||!("constructor"in r)||!("constructor"in n)||"function"==typeof x&&x instanceof x&&"function"==typeof b&&b instanceof b||(p=!1)}return a.delete(r),a.delete(n),p},zc}(),o=Vp(),i=zs(),s=Vs(),a=xa(),u="[object Arguments]",c="[object Array]",h="[object Object]",l=Object.prototype.hasOwnProperty;return Oc=function(d,f,g,p,v,m){var y=i(d),w=i(f),x=y?c:o(d),b=w?c:o(f),E=(x=x==u?h:x)==h,M=(b=b==u?h:b)==h,N=x==b;if(N&&s(d)){if(!s(f))return!1;y=!0,E=!1}if(N&&!E)return m||(m=new t),y||a(d)?e(d,f,g,p,v,m):r(d,f,x,g,p,v,m);if(!(1&g)){var _=E&&l.call(d,"__wrapped__"),k=M&&l.call(f,"__wrapped__");if(_||k){var S=_?d.value():d,z=k?f.value():f;return m||(m=new t),v(S,z,g,p,m)}}return!!N&&(m||(m=new t),n(d,f,g,p,v,m))}}function dv(){if(Ic)return Cc;Ic=1;var t=lv(),e=ks();return Cc=function r(n,o,i,s,a){return n===o||(null==n||null==o||!e(n)&&!e(o)?n!=n&&o!=o:t(n,o,i,s,r,a))},Cc}function fv(){if(Fc)return Tc;Fc=1;var t=hs();return Tc=function(e){return e==e&&!t(e)}}function gv(){if(Vc)return qc;return Vc=1,qc=function(t,e){return function(r){return null!=r&&(r[t]===e&&(void 0!==e||t in Object(r)))}}}function pv(){if($c)return Bc;$c=1;var t=function(){if(Pc)return Rc;Pc=1;var t=xs(),e=dv();return Rc=function(r,n,o,i){var s=o.length,a=s,u=!i;if(null==r)return!a;for(r=Object(r);s--;){var c=o[s];if(u&&c[2]?c[1]!==r[c[0]]:!(c[0]in r))return!1}for(;++s<a;){var h=(c=o[s])[0],l=r[h],d=c[1];if(u&&c[2]){if(void 0===l&&!(h in r))return!1}else{var f=new t;if(i)var g=i(l,d,h,r,n,f);if(!(void 0===g?e(d,l,3,i,f):g))return!1}}return!0},Rc}(),e=function(){if(Dc)return Lc;Dc=1;var t=fv(),e=ka();return Lc=function(r){for(var n=e(r),o=n.length;o--;){var i=n[o],s=r[i];n[o]=[i,s,t(s)]}return n}}(),r=gv();return Bc=function(n){var o=e(n);return 1==o.length&&o[0][2]?r(o[0][0],o[0][1]):function(e){return e===n||t(e,n,o)}}}function vv(){if(Uc)return Gc;Uc=1;var t=cs(),e=ks();return Gc=function(r){return"symbol"==typeof r||e(r)&&"[object Symbol]"==t(r)}}function mv(){if(Yc)return Wc;Yc=1;var t=zs(),e=vv(),r=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,n=/^\w*$/;return Wc=function(o,i){if(t(o))return!1;var s=typeof o;return!("number"!=s&&"symbol"!=s&&"boolean"!=s&&null!=o&&!e(o))||(n.test(o)||!r.test(o)||null!=i&&o in Object(i))}}function yv(){if(Jc)return Qc;Jc=1;var t=function(){if(Xc)return Hc;Xc=1;var t=ws();function e(r,n){if("function"!=typeof r||null!=n&&"function"!=typeof n)throw new TypeError("Expected a function");var o=function(){var t=arguments,e=n?n.apply(this,t):t[0],i=o.cache;if(i.has(e))return i.get(e);var s=r.apply(this,t);return o.cache=i.set(e,s)||i,s};return o.cache=new(e.Cache||t),o}return e.Cache=t,Hc=e}();return Qc=function(e){var r=t(e,function(t){return 500===n.size&&n.clear(),t}),n=r.cache;return r}}function wv(){if(eh)return th;return eh=1,th=function(t,e){for(var r=-1,n=null==t?0:t.length,o=Array(n);++r<n;)o[r]=e(t[r],r,t);return o},th}function xv(){if(ih)return oh;ih=1;var t=function(){if(nh)return rh;nh=1;var t=us(),e=wv(),r=zs(),n=vv(),o=t?t.prototype:void 0,i=o?o.toString:void 0;return rh=function t(o){if("string"==typeof o)return o;if(r(o))return e(o,t)+"";if(n(o))return i?i.call(o):"";var s=o+"";return"0"==s&&1/o==-1/0?"-0":s},rh}();return oh=function(e){return null==e?"":t(e)}}function bv(){if(ah)return sh;ah=1;var t=zs(),e=mv(),r=function(){if(Zc)return Kc;Zc=1;var t=yv(),e=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,r=/\\(\\)?/g,n=t(function(t){var n=[];return 46===t.charCodeAt(0)&&n.push(""),t.replace(e,function(t,e,o,i){n.push(o?i.replace(r,"$1"):e||t)}),n});return Kc=n}(),n=xv();return sh=function(o,i){return t(o)?o:e(o,i)?[o]:r(n(o))}}function Ev(){if(ch)return uh;ch=1;var t=vv();return uh=function(e){if("string"==typeof e||t(e))return e;var r=e+"";return"0"==r&&1/e==-1/0?"-0":r}}function Mv(){if(lh)return hh;lh=1;var t=bv(),e=Ev();return hh=function(r,n){for(var o=0,i=(n=t(n,r)).length;null!=r&&o<i;)r=r[e(n[o++])];return o&&o==i?r:void 0},hh}function Nv(){if(mh)return vh;mh=1;var t=bv(),e=Ss(),r=zs(),n=Bs(),o=$s(),i=Ev();return vh=function(s,a,u){for(var c=-1,h=(a=t(a,s)).length,l=!1;++c<h;){var d=i(a[c]);if(!(l=null!=s&&u(s,d)))break;s=s[d]}return l||++c!=h?l:!!(h=null==s?0:s.length)&&o(h)&&n(d,h)&&(r(s)||e(s))},vh}function _v(){if(wh)return yh;wh=1;var t=ph?gh:(ph=1,gh=function(t,e){return null!=t&&e in Object(t)}),e=Nv();return yh=function(r,n){return null!=r&&e(r,n,t)}}function kv(){if(bh)return xh;bh=1;var t=dv(),e=function(){if(fh)return dh;fh=1;var t=Mv();return dh=function(e,r,n){var o=null==e?void 0:t(e,r);return void 0===o?n:o}}(),r=_v(),n=mv(),o=fv(),i=gv(),s=Ev();return xh=function(a,u){return n(a)&&o(u)?i(s(a),u):function(n){var o=e(n,a);return void 0===o&&o===u?r(n,a):t(u,o,3)}}}function Sv(){if(Mh)return Eh;return Mh=1,Eh=function(t){return function(e){return null==e?void 0:e[t]}}}function zv(){if(Sh)return kh;Sh=1;var t=Sv(),e=function(){if(_h)return Nh;_h=1;var t=Mv();return Nh=function(e){return function(r){return t(r,e)}}}(),r=mv(),n=Ev();return kh=function(o){return r(o)?t(n(o)):e(o)}}function Av(){if(Ah)return zh;Ah=1;var t=pv(),e=kv(),r=rv(),n=zs(),o=zv();return zh=function(i){return"function"==typeof i?i:null==i?r:"object"==typeof i?n(i)?e(i[0],i[1]):t(i):o(i)}}function Ov(){if(jh)return Oh;jh=1;var t=Cp(),e=function(){if(cc)return uc;cc=1;var t=ev();return uc=function(e,r){var n=[];return t(e,function(t,e,o){r(t,e,o)&&n.push(t)}),n},uc}(),r=Av(),n=zs();return Oh=function(o,i){return(n(o)?t:e)(o,r(i,3))}}function jv(){if(Ph)return Rh;Ph=1;var t=function(){if(Ih)return Ch;Ih=1;var t=Object.prototype.hasOwnProperty;return Ch=function(e,r){return null!=e&&t.call(e,r)}}(),e=Nv();return Rh=function(r,n){return null!=r&&e(r,n,t)}}function Cv(){if(Fh)return Th;Fh=1;var t=Na(),e=Vp(),r=Ss(),n=zs(),o=_a(),i=Vs(),s=Ea(),a=xa(),u=Object.prototype.hasOwnProperty;return Th=function(c){if(null==c)return!0;if(o(c)&&(n(c)||"string"==typeof c||"function"==typeof c.splice||i(c)||a(c)||r(c)))return!c.length;var h=e(c);if("[object Map]"==h||"[object Set]"==h)return!c.size;if(s(c))return!t(c).length;for(var l in c)if(u.call(c,l))return!1;return!0}}function Iv(){if(Dh)return Lh;return Dh=1,Lh=function(t){return void 0===t}}function Rv(){if(Vh)return qh;Vh=1;var t=ev(),e=_a();return qh=function(r,n){var o=-1,i=e(r)?Array(r.length):[];return t(r,function(t,e,r){i[++o]=n(t,e,r)}),i},qh}function Pv(){if($h)return Bh;$h=1;var t=wv(),e=Av(),r=Rv(),n=zs();return Bh=function(o,i){return(n(o)?t:r)(o,e(i,3))}}function Tv(){if(Xh)return Hh;Xh=1;var t=(Uh||(Uh=1,Gh=function(t,e,r,n){var o=-1,i=null==t?0:t.length;for(n&&i&&(r=t[++o]);++o<i;)r=e(r,t[o],o,t);return r}),Gh),e=ev(),r=Av(),n=(Yh||(Yh=1,Wh=function(t,e,r,n,o){return o(t,function(t,o,i){r=n?(n=!1,t):e(r,t,o,i)}),r}),Wh),o=zs();return Hh=function(i,s,a){var u=o(i)?t:n,c=arguments.length<3;return u(i,r(s,4),a,c,e)},Hh}function Fv(){if(il)return ol;il=1;var t=function(){if(Zh)return Kh;Zh=1;var t=Sv()("length");return Kh=t}(),e=function(){if(el)return tl;el=1;var t=RegExp("[\\u200d\\ud800-\\udfff\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\ufe0e\\ufe0f]");return tl=function(e){return t.test(e)}}(),r=function(){if(nl)return rl;nl=1;var t="\\ud800-\\udfff",e="["+t+"]",r="[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]",n="\\ud83c[\\udffb-\\udfff]",o="[^"+t+"]",i="(?:\\ud83c[\\udde6-\\uddff]){2}",s="[\\ud800-\\udbff][\\udc00-\\udfff]",a="(?:"+r+"|"+n+")?",u="[\\ufe0e\\ufe0f]?",c=u+a+"(?:\\u200d(?:"+[o,i,s].join("|")+")"+u+a+")*",h="(?:"+[o+r+"?",r,i,s,e].join("|")+")",l=RegExp(n+"(?="+n+")|"+h+c,"g");return rl=function(t){for(var e=l.lastIndex=0;l.test(t);)++e;return e}}();return ol=function(n){return e(n)?r(n):t(n)}}function Lv(){if(al)return sl;al=1;var t=Na(),e=Vp(),r=_a(),n=function(){if(Jh)return Qh;Jh=1;var t=cs(),e=zs(),r=ks();return Qh=function(n){return"string"==typeof n||!e(n)&&r(n)&&"[object String]"==t(n)}}(),o=Fv();return sl=function(i){if(null==i)return 0;if(r(i))return n(i)?o(i):i.length;var s=e(i);return"[object Map]"==s||"[object Set]"==s?i.size:t(i).length}}function Dv(){if(cl)return ul;cl=1;var t=bs(),e=Wp(),r=tv(),n=Av(),o=Tp(),i=zs(),s=Vs(),a=ls(),u=hs(),c=xa();return ul=function(h,l,d){var f=i(h),g=f||s(h)||c(h);if(l=n(l,4),null==d){var p=h&&h.constructor;d=g?f?new p:[]:u(h)&&a(p)?e(o(h)):{}}return(g?t:r)(h,function(t,e,r){return l(d,t,e,r)}),d},ul}function qv(){if(fl)return dl;fl=1;var t=Pp(),e=function(){if(ll)return hl;ll=1;var t=us(),e=Ss(),r=zs(),n=t?t.isConcatSpreadable:void 0;return hl=function(t){return r(t)||e(t)||!!(n&&t&&t[n])}}();return dl=function r(n,o,i,s,a){var u=-1,c=n.length;for(i||(i=e),a||(a=[]);++u<c;){var h=n[u];o>0&&i(h)?o>1?r(h,o-1,i,s,a):t(a,h):s||(a[a.length]=h)}return a},dl}function Vv(){if(ml)return vl;ml=1;var t=pl?gl:(pl=1,gl=function(t,e,r){switch(r.length){case 0:return t.call(e);case 1:return t.call(e,r[0]);case 2:return t.call(e,r[0],r[1]);case 3:return t.call(e,r[0],r[1],r[2])}return t.apply(e,r)}),e=Math.max;return vl=function(r,n,o){return n=e(void 0===n?r.length-1:n,0),function(){for(var i=arguments,s=-1,a=e(i.length-n,0),u=Array(a);++s<a;)u[s]=i[n+s];s=-1;for(var c=Array(n+1);++s<n;)c[s]=i[s];return c[n]=o(u),t(r,this,c)}},vl}function Bv(){if(Ml)return El;Ml=1;var t=function(){if(wl)return yl;wl=1;var t=Kp(),e=Es(),r=rv();return yl=e?function(r,n){return e(r,"toString",{configurable:!0,enumerable:!1,value:t(n),writable:!0})}:r}(),e=function(){if(bl)return xl;bl=1;var t=Date.now;return xl=function(e){var r=0,n=0;return function(){var o=t(),i=16-(o-n);if(n=o,i>0){if(++r>=800)return arguments[0]}else r=0;return e.apply(void 0,arguments)}},xl}(),r=e(t);return El=r}function $v(){if(_l)return Nl;_l=1;var t=rv(),e=Vv(),r=Bv();return Nl=function(n,o){return r(e(n,o,t),n+"")}}function Gv(){if(Sl)return kl;return Sl=1,kl=function(t,e,r,n){for(var o=t.length,i=r+(n?1:-1);n?i--:++i<o;)if(e(t[i],i,t))return i;return-1},kl}function Uv(){if(Il)return Cl;Il=1;var t=Gv(),e=Al?zl:(Al=1,zl=function(t){return t!=t}),r=(jl||(jl=1,Ol=function(t,e,r){for(var n=r-1,o=t.length;++n<o;)if(t[n]===e)return n;return-1}),Ol);return Cl=function(n,o,i){return o==o?r(n,o,i):t(n,e,i)}}function Wv(){if(Vl)return ql;Vl=1;var t=qp(),e=Dl?Ll:(Dl=1,Ll=function(){}),r=cv(),n=t&&1/r(new t([,-0]))[1]==1/0?function(e){return new t(e)}:e;return ql=n}function Yv(){if($l)return Bl;$l=1;var t=sv(),e=function(){if(Pl)return Rl;Pl=1;var t=Uv();return Rl=function(e,r){return!(null==e||!e.length)&&t(e,r,0)>-1}}(),r=(Fl||(Fl=1,Tl=function(t,e,r){for(var n=-1,o=null==t?0:t.length;++n<o;)if(r(e,t[n]))return!0;return!1}),Tl),n=av(),o=Wv(),i=cv();return Bl=function(s,a,u){var c=-1,h=e,l=s.length,d=!0,f=[],g=f;if(u)d=!1,h=r;else if(l>=200){var p=a?null:o(s);if(p)return i(p);d=!1,h=n,g=new t}else g=a?[]:f;t:for(;++c<l;){var v=s[c],m=a?a(v):v;if(v=u||0!==v?v:0,d&&m==m){for(var y=g.length;y--;)if(g[y]===m)continue t;a&&g.push(m),f.push(v)}else h(g,m,u)||(g!==f&&g.push(m),f.push(v))}return f},Bl}function Hv(){if(Ul)return Gl;Ul=1;var t=_a(),e=ks();return Gl=function(r){return e(r)&&t(r)}}function Xv(){if(Yl)return Wl;Yl=1;var t=qv(),e=$v(),r=Yv(),n=Hv(),o=e(function(e){return r(t(e,1,n,!0))});return Wl=o}function Qv(){if(Jl)return Ql;Jl=1;var t=function(){if(Xl)return Hl;Xl=1;var t=wv();return Hl=function(e,r){return t(r,function(t){return e[t]})}}(),e=ka();return Ql=function(r){return null==r?[]:t(r,e(r))}}function Jv(){if(Zl)return Kl;var t;Zl=1;try{t={clone:Jp(),constant:Kp(),each:iv(),filter:Ov(),has:jv(),isArray:zs(),isEmpty:Cv(),isFunction:ls(),isUndefined:Iv(),keys:ka(),map:Pv(),reduce:Tv(),size:Lv(),transform:Dv(),union:Xv(),values:Qv()}}catch(t){}return t||(t=window._),Kl=t}function Kv(){if(ed)return td;ed=1;var t=Jv();td=r;var e="\0";function r(r){this._isDirected=!t.has(r,"directed")||r.directed,this._isMultigraph=!!t.has(r,"multigraph")&&r.multigraph,this._isCompound=!!t.has(r,"compound")&&r.compound,this._label=void 0,this._defaultNodeLabelFn=t.constant(void 0),this._defaultEdgeLabelFn=t.constant(void 0),this._nodes={},this._isCompound&&(this._parent={},this._children={},this._children[e]={}),this._in={},this._preds={},this._out={},this._sucs={},this._edgeObjs={},this._edgeLabels={}}function n(t,e){t[e]?t[e]++:t[e]=1}function o(t,e){--t[e]||delete t[e]}function i(e,r,n,o){var i=""+r,s=""+n;if(!e&&i>s){var a=i;i=s,s=a}return i+""+s+""+(t.isUndefined(o)?"\0":o)}function s(t,e){return i(t,e.v,e.w,e.name)}return r.prototype._nodeCount=0,r.prototype._edgeCount=0,r.prototype.isDirected=function(){return this._isDirected},r.prototype.isMultigraph=function(){return this._isMultigraph},r.prototype.isCompound=function(){return this._isCompound},r.prototype.setGraph=function(t){return this._label=t,this},r.prototype.graph=function(){return this._label},r.prototype.setDefaultNodeLabel=function(e){return t.isFunction(e)||(e=t.constant(e)),this._defaultNodeLabelFn=e,this},r.prototype.nodeCount=function(){return this._nodeCount},r.prototype.nodes=function(){return t.keys(this._nodes)},r.prototype.sources=function(){var e=this;return t.filter(this.nodes(),function(r){return t.isEmpty(e._in[r])})},r.prototype.sinks=function(){var e=this;return t.filter(this.nodes(),function(r){return t.isEmpty(e._out[r])})},r.prototype.setNodes=function(e,r){var n=arguments,o=this;return t.each(e,function(t){n.length>1?o.setNode(t,r):o.setNode(t)}),this},r.prototype.setNode=function(r,n){return t.has(this._nodes,r)?(arguments.length>1&&(this._nodes[r]=n),this):(this._nodes[r]=arguments.length>1?n:this._defaultNodeLabelFn(r),this._isCompound&&(this._parent[r]=e,this._children[r]={},this._children[e][r]=!0),this._in[r]={},this._preds[r]={},this._out[r]={},this._sucs[r]={},++this._nodeCount,this)},r.prototype.node=function(t){return this._nodes[t]},r.prototype.hasNode=function(e){return t.has(this._nodes,e)},r.prototype.removeNode=function(e){var r=this;if(t.has(this._nodes,e)){var n=function(t){r.removeEdge(r._edgeObjs[t])};delete this._nodes[e],this._isCompound&&(this._removeFromParentsChildList(e),delete this._parent[e],t.each(this.children(e),function(t){r.setParent(t)}),delete this._children[e]),t.each(t.keys(this._in[e]),n),delete this._in[e],delete this._preds[e],t.each(t.keys(this._out[e]),n),delete this._out[e],delete this._sucs[e],--this._nodeCount}return this},r.prototype.setParent=function(r,n){if(!this._isCompound)throw new Error("Cannot set parent in a non-compound graph");if(t.isUndefined(n))n=e;else{for(var o=n+="";!t.isUndefined(o);o=this.parent(o))if(o===r)throw new Error("Setting "+n+" as parent of "+r+" would create a cycle");this.setNode(n)}return this.setNode(r),this._removeFromParentsChildList(r),this._parent[r]=n,this._children[n][r]=!0,this},r.prototype._removeFromParentsChildList=function(t){delete this._children[this._parent[t]][t]},r.prototype.parent=function(t){if(this._isCompound){var r=this._parent[t];if(r!==e)return r}},r.prototype.children=function(r){if(t.isUndefined(r)&&(r=e),this._isCompound){var n=this._children[r];if(n)return t.keys(n)}else{if(r===e)return this.nodes();if(this.hasNode(r))return[]}},r.prototype.predecessors=function(e){var r=this._preds[e];if(r)return t.keys(r)},r.prototype.successors=function(e){var r=this._sucs[e];if(r)return t.keys(r)},r.prototype.neighbors=function(e){var r=this.predecessors(e);if(r)return t.union(r,this.successors(e))},r.prototype.isLeaf=function(t){return 0===(this.isDirected()?this.successors(t):this.neighbors(t)).length},r.prototype.filterNodes=function(e){var r=new this.constructor({directed:this._isDirected,multigraph:this._isMultigraph,compound:this._isCompound});r.setGraph(this.graph());var n=this;t.each(this._nodes,function(t,n){e(n)&&r.setNode(n,t)}),t.each(this._edgeObjs,function(t){r.hasNode(t.v)&&r.hasNode(t.w)&&r.setEdge(t,n.edge(t))});var o={};function i(t){var e=n.parent(t);return void 0===e||r.hasNode(e)?(o[t]=e,e):e in o?o[e]:i(e)}return this._isCompound&&t.each(r.nodes(),function(t){r.setParent(t,i(t))}),r},r.prototype.setDefaultEdgeLabel=function(e){return t.isFunction(e)||(e=t.constant(e)),this._defaultEdgeLabelFn=e,this},r.prototype.edgeCount=function(){return this._edgeCount},r.prototype.edges=function(){return t.values(this._edgeObjs)},r.prototype.setPath=function(e,r){var n=this,o=arguments;return t.reduce(e,function(t,e){return o.length>1?n.setEdge(t,e,r):n.setEdge(t,e),e}),this},r.prototype.setEdge=function(){var e,r,o,s,a=!1,u=arguments[0];"object"==typeof u&&null!==u&&"v"in u?(e=u.v,r=u.w,o=u.name,2===arguments.length&&(s=arguments[1],a=!0)):(e=u,r=arguments[1],o=arguments[3],arguments.length>2&&(s=arguments[2],a=!0)),e=""+e,r=""+r,t.isUndefined(o)||(o=""+o);var c=i(this._isDirected,e,r,o);if(t.has(this._edgeLabels,c))return a&&(this._edgeLabels[c]=s),this;if(!t.isUndefined(o)&&!this._isMultigraph)throw new Error("Cannot set a named edge when isMultigraph = false");this.setNode(e),this.setNode(r),this._edgeLabels[c]=a?s:this._defaultEdgeLabelFn(e,r,o);var h=function(t,e,r,n){var o=""+e,i=""+r;if(!t&&o>i){var s=o;o=i,i=s}var a={v:o,w:i};n&&(a.name=n);return a}(this._isDirected,e,r,o);return e=h.v,r=h.w,Object.freeze(h),this._edgeObjs[c]=h,n(this._preds[r],e),n(this._sucs[e],r),this._in[r][c]=h,this._out[e][c]=h,this._edgeCount++,this},r.prototype.edge=function(t,e,r){var n=1===arguments.length?s(this._isDirected,arguments[0]):i(this._isDirected,t,e,r);return this._edgeLabels[n]},r.prototype.hasEdge=function(e,r,n){var o=1===arguments.length?s(this._isDirected,arguments[0]):i(this._isDirected,e,r,n);return t.has(this._edgeLabels,o)},r.prototype.removeEdge=function(t,e,r){var n=1===arguments.length?s(this._isDirected,arguments[0]):i(this._isDirected,t,e,r),a=this._edgeObjs[n];return a&&(t=a.v,e=a.w,delete this._edgeLabels[n],delete this._edgeObjs[n],o(this._preds[e],t),o(this._sucs[t],e),delete this._in[e][n],delete this._out[t][n],this._edgeCount--),this},r.prototype.inEdges=function(e,r){var n=this._in[e];if(n){var o=t.values(n);return r?t.filter(o,function(t){return t.v===r}):o}},r.prototype.outEdges=function(e,r){var n=this._out[e];if(n){var o=t.values(n);return r?t.filter(o,function(t){return t.w===r}):o}},r.prototype.nodeEdges=function(t,e){var r=this.inEdges(t,e);if(r)return r.concat(this.outEdges(t,e))},td}function Zv(){return id?od:(id=1,od={Graph:Kv(),version:nd?rd:(nd=1,rd="2.1.8")})}function tm(){if(ad)return sd;ad=1;var t=Jv(),e=Kv();function r(e){return t.map(e.nodes(),function(r){var n=e.node(r),o=e.parent(r),i={v:r};return t.isUndefined(n)||(i.value=n),t.isUndefined(o)||(i.parent=o),i})}function n(e){return t.map(e.edges(),function(r){var n=e.edge(r),o={v:r.v,w:r.w};return t.isUndefined(r.name)||(o.name=r.name),t.isUndefined(n)||(o.value=n),o})}return sd={write:function(e){var o={options:{directed:e.isDirected(),multigraph:e.isMultigraph(),compound:e.isCompound()},nodes:r(e),edges:n(e)};t.isUndefined(e.graph())||(o.value=t.clone(e.graph()));return o},read:function(r){var n=new e(r.options).setGraph(r.value);return t.each(r.nodes,function(t){n.setNode(t.v,t.value),t.parent&&n.setParent(t.v,t.parent)}),t.each(r.edges,function(t){n.setEdge({v:t.v,w:t.w,name:t.name},t.value)}),n}}}function em(){if(cd)return ud;cd=1;var t=Jv();return ud=function(e){var r,n={},o=[];function i(o){t.has(n,o)||(n[o]=!0,r.push(o),t.each(e.successors(o),i),t.each(e.predecessors(o),i))}return t.each(e.nodes(),function(t){r=[],i(t),r.length&&o.push(r)}),o},ud}function rm(){if(ld)return hd;ld=1;var t=Jv();function e(){this._arr=[],this._keyIndices={}}return hd=e,e.prototype.size=function(){return this._arr.length},e.prototype.keys=function(){return this._arr.map(function(t){return t.key})},e.prototype.has=function(e){return t.has(this._keyIndices,e)},e.prototype.priority=function(t){var e=this._keyIndices[t];if(void 0!==e)return this._arr[e].priority},e.prototype.min=function(){if(0===this.size())throw new Error("Queue underflow");return this._arr[0].key},e.prototype.add=function(e,r){var n=this._keyIndices;if(e=String(e),!t.has(n,e)){var o=this._arr,i=o.length;return n[e]=i,o.push({key:e,priority:r}),this._decrease(i),!0}return!1},e.prototype.removeMin=function(){this._swap(0,this._arr.length-1);var t=this._arr.pop();return delete this._keyIndices[t.key],this._heapify(0),t.key},e.prototype.decrease=function(t,e){var r=this._keyIndices[t];if(e>this._arr[r].priority)throw new Error("New priority is greater than current priority. Key: "+t+" Old: "+this._arr[r].priority+" New: "+e);this._arr[r].priority=e,this._decrease(r)},e.prototype._heapify=function(t){var e=this._arr,r=2*t,n=r+1,o=t;r<e.length&&(o=e[r].priority<e[o].priority?r:o,n<e.length&&(o=e[n].priority<e[o].priority?n:o),o!==t&&(this._swap(t,o),this._heapify(o)))},e.prototype._decrease=function(t){for(var e,r=this._arr,n=r[t].priority;0!==t&&!(r[e=t>>1].priority<n);)this._swap(t,e),t=e},e.prototype._swap=function(t,e){var r=this._arr,n=this._keyIndices,o=r[t],i=r[e];r[t]=i,r[e]=o,n[i.key]=t,n[o.key]=e},hd}function nm(){if(fd)return dd;fd=1;var t=Jv(),e=rm();dd=function(t,n,o,i){return function(t,r,n,o){var i,s,a={},u=new e,c=function(t){var e=t.v!==i?t.v:t.w,r=a[e],o=n(t),c=s.distance+o;if(o<0)throw new Error("dijkstra does not allow negative edge weights. Bad edge: "+t+" Weight: "+o);c<r.distance&&(r.distance=c,r.predecessor=i,u.decrease(e,c))};t.nodes().forEach(function(t){var e=t===r?0:Number.POSITIVE_INFINITY;a[t]={distance:e},u.add(t,e)});for(;u.size()>0&&(i=u.removeMin(),(s=a[i]).distance!==Number.POSITIVE_INFINITY);)o(i).forEach(c);return a}(t,String(n),o||r,i||function(e){return t.outEdges(e)})};var r=t.constant(1);return dd}function om(){if(pd)return gd;pd=1;var t=nm(),e=Jv();return gd=function(r,n,o){return e.transform(r.nodes(),function(e,i){e[i]=t(r,i,n,o)},{})}}function im(){if(md)return vd;md=1;var t=Jv();return vd=function(e){var r=0,n=[],o={},i=[];function s(a){var u=o[a]={onStack:!0,lowlink:r,index:r++};if(n.push(a),e.successors(a).forEach(function(e){t.has(o,e)?o[e].onStack&&(u.lowlink=Math.min(u.lowlink,o[e].index)):(s(e),u.lowlink=Math.min(u.lowlink,o[e].lowlink))}),u.lowlink===u.index){var c,h=[];do{c=n.pop(),o[c].onStack=!1,h.push(c)}while(a!==c);i.push(h)}}return e.nodes().forEach(function(e){t.has(o,e)||s(e)}),i},vd}function sm(){if(wd)return yd;wd=1;var t=Jv(),e=im();return yd=function(r){return t.filter(e(r),function(t){return t.length>1||1===t.length&&r.hasEdge(t[0],t[0])})}}function am(){if(bd)return xd;bd=1;var t=Jv();xd=function(t,r,n){return function(t,e,r){var n={},o=t.nodes();return o.forEach(function(t){n[t]={},n[t][t]={distance:0},o.forEach(function(e){t!==e&&(n[t][e]={distance:Number.POSITIVE_INFINITY})}),r(t).forEach(function(r){var o=r.v===t?r.w:r.v,i=e(r);n[t][o]={distance:i,predecessor:t}})}),o.forEach(function(t){var e=n[t];o.forEach(function(r){var i=n[r];o.forEach(function(r){var n=i[t],o=e[r],s=i[r],a=n.distance+o.distance;a<s.distance&&(s.distance=a,s.predecessor=o.predecessor)})})}),n}(t,r||e,n||function(e){return t.outEdges(e)})};var e=t.constant(1);return xd}function um(){if(Md)return Ed;Md=1;var t=Jv();function e(e){var n={},o={},i=[];if(t.each(e.sinks(),function s(a){if(t.has(o,a))throw new r;t.has(n,a)||(o[a]=!0,n[a]=!0,t.each(e.predecessors(a),s),delete o[a],i.push(a))}),t.size(n)!==e.nodeCount())throw new r;return i}function r(){}return Ed=e,e.CycleException=r,r.prototype=new Error,Ed}function cm(){if(_d)return Nd;_d=1;var t=um();return Nd=function(e){try{t(e)}catch(e){if(e instanceof t.CycleException)return!1;throw e}return!0}}function hm(){if(Sd)return kd;Sd=1;var t=Jv();function e(r,n,o,i,s,a){t.has(i,n)||(i[n]=!0,o||a.push(n),t.each(s(n),function(t){e(r,t,o,i,s,a)}),o&&a.push(n))}return kd=function(r,n,o){t.isArray(n)||(n=[n]);var i=(r.isDirected()?r.successors:r.neighbors).bind(r),s=[],a={};return t.each(n,function(t){if(!r.hasNode(t))throw new Error("Graph does not have node: "+t);e(r,t,"post"===o,a,i,s)}),s},kd}function lm(){if(Ad)return zd;Ad=1;var t=hm();return zd=function(e,r){return t(e,r,"post")}}function dm(){if(jd)return Od;jd=1;var t=hm();return Od=function(e,r){return t(e,r,"pre")}}function fm(){if(Id)return Cd;Id=1;var t=Jv(),e=Kv(),r=rm();return Cd=function(n,o){var i,s=new e,a={},u=new r;function c(t){var e=t.v===i?t.w:t.v,r=u.priority(e);if(void 0!==r){var n=o(t);n<r&&(a[e]=i,u.decrease(e,n))}}if(0===n.nodeCount())return s;t.each(n.nodes(),function(t){u.add(t,Number.POSITIVE_INFINITY),s.setNode(t)}),u.decrease(n.nodes()[0],0);var h=!1;for(;u.size()>0;){if(i=u.removeMin(),t.has(a,i))s.setEdge(i,a[i]);else{if(h)throw new Error("Input graph is not connected: "+n);h=!0}n.nodeEdges(i).forEach(c)}return s}}function gm(){if(Fd)return Td;Fd=1;var t=Zv();return Td={Graph:t.Graph,json:tm(),alg:Pd?Rd:(Pd=1,Rd={components:em(),dijkstra:nm(),dijkstraAll:om(),findCycles:sm(),floydWarshall:am(),isAcyclic:cm(),postorder:lm(),preorder:dm(),prim:fm(),tarjan:im(),topsort:um()}),version:t.version}}function pm(){if(Dd)return Ld;var t;Dd=1;try{t=gm()}catch(t){}return t||(t=window.graphlib),Ld=t}function vm(){if(Vd)return qd;Vd=1;var t=Qp();return qd=function(e){return t(e,5)}}function mm(){if($d)return Bd;$d=1;var t=ns(),e=_a(),r=Bs(),n=hs();return Bd=function(o,i,s){if(!n(s))return!1;var a=typeof i;return!!("number"==a?e(s)&&r(i,s.length):"string"==a&&i in s)&&t(s[i],o)},Bd}function ym(){if(Ud)return Gd;Ud=1;var t=$v(),e=ns(),r=mm(),n=za(),o=Object.prototype,i=o.hasOwnProperty,s=t(function(t,s){t=Object(t);var a=-1,u=s.length,c=u>2?s[2]:void 0;for(c&&r(s[0],s[1],c)&&(u=1);++a<u;)for(var h=s[a],l=n(h),d=-1,f=l.length;++d<f;){var g=l[d],p=t[g];(void 0===p||e(p,o[g])&&!i.call(t,g))&&(t[g]=h[g])}return t});return Gd=s}function wm(){if(Jd)return Qd;Jd=1;var t=function(){if(Xd)return Hd;Xd=1;var t=/\s/;return Hd=function(e){for(var r=e.length;r--&&t.test(e.charAt(r)););return r},Hd}(),e=/^\s+/;return Qd=function(r){return r?r.slice(0,t(r)+1).replace(e,""):r}}function xm(){if(ef)return tf;ef=1;var t=function(){if(Zd)return Kd;Zd=1;var t=wm(),e=hs(),r=vv(),n=/^[-+]0x[0-9a-f]+$/i,o=/^0b[01]+$/i,i=/^0o[0-7]+$/i,s=parseInt;return Kd=function(a){if("number"==typeof a)return a;if(r(a))return NaN;if(e(a)){var u="function"==typeof a.valueOf?a.valueOf():a;a=e(u)?u+"":u}if("string"!=typeof a)return 0===a?a:+a;a=t(a);var c=o.test(a);return c||i.test(a)?s(a.slice(2),c?2:8):n.test(a)?NaN:+a}}(),e=1/0;return tf=function(r){return r?(r=t(r))===e||r===-1/0?17976931348623157e292*(r<0?-1:1):r==r?r:0:0===r?r:0}}function bm(){if(sf)return of;sf=1;var t=Gv(),e=Av(),r=function(){if(nf)return rf;nf=1;var t=xm();return rf=function(e){var r=t(e),n=r%1;return r==r?n?r-n:r:0}}(),n=Math.max;return of=function(o,i,s){var a=null==o?0:o.length;if(!a)return-1;var u=null==s?0:r(s);return u<0&&(u=n(a+u,0)),t(o,e(i,3),u)},of}function Em(){if(uf)return af;uf=1;var t=function(){if(Yd)return Wd;Yd=1;var t=Av(),e=_a(),r=ka();return Wd=function(n){return function(o,i,s){var a=Object(o);if(!e(o)){var u=t(i,3);o=r(o),i=function(t){return u(a[t],t,a)}}var c=n(o,i,s);return c>-1?a[u?o[c]:c]:void 0}},Wd}(),e=t(bm());return af=e}function Mm(){if(hf)return cf;hf=1;var t=qv();return cf=function(e){return(null==e?0:e.length)?t(e,1):[]}}function Nm(){if(df)return lf;df=1;var t=Zp(),e=nv(),r=za();return lf=function(n,o){return null==n?n:t(n,e(o),r)}}function _m(){if(gf)return ff;return gf=1,ff=function(t){var e=null==t?0:t.length;return e?t[e-1]:void 0}}function km(){if(vf)return pf;vf=1;var t=Ms(),e=tv(),r=Av();return pf=function(n,o){var i={};return o=r(o,3),e(n,function(e,r,n){t(i,r,o(e,r,n))}),i}}function Sm(){if(yf)return mf;yf=1;var t=vv();return mf=function(e,r,n){for(var o=-1,i=e.length;++o<i;){var s=e[o],a=r(s);if(null!=a&&(void 0===u?a==a&&!t(a):n(a,u)))var u=a,c=s}return c},mf}function zm(){if(Ef)return bf;Ef=1;var t=Sm(),e=xf?wf:(xf=1,wf=function(t,e){return t>e}),r=rv();return bf=function(n){return n&&n.length?t(n,r,e):void 0}}function Am(){if(Nf)return Mf;Nf=1;var t=Ms(),e=ns();return Mf=function(r,n,o){(void 0!==o&&!e(r[n],o)||void 0===o&&!(n in r))&&t(r,n,o)}}function Om(){if(zf)return Sf;return zf=1,Sf=function(t,e){if(("constructor"!==e||"function"!=typeof t[e])&&"__proto__"!=e)return t[e]}}function jm(){if(Cf)return jf;Cf=1;var t=Am(),e=Op(),r=Gp(),n=jp(),o=Yp(),i=Ss(),s=zs(),a=Hv(),u=Vs(),c=ls(),h=hs(),l=function(){if(kf)return _f;kf=1;var t=cs(),e=Tp(),r=ks(),n=Function.prototype,o=Object.prototype,i=n.toString,s=o.hasOwnProperty,a=i.call(Object);return _f=function(n){if(!r(n)||"[object Object]"!=t(n))return!1;var o=e(n);if(null===o)return!0;var u=s.call(o,"constructor")&&o.constructor;return"function"==typeof u&&u instanceof u&&i.call(u)==a}}(),d=xa(),f=Om(),g=function(){if(Of)return Af;Of=1;var t=_s(),e=za();return Af=function(r){return t(r,e(r))}}();return jf=function(p,v,m,y,w,x,b){var E=f(p,m),M=f(v,m),N=b.get(M);if(N)t(p,m,N);else{var _=x?x(E,M,m+"",p,v,b):void 0,k=void 0===_;if(k){var S=s(M),z=!S&&u(M),A=!S&&!z&&d(M);_=M,S||z||A?s(E)?_=E:a(E)?_=n(E):z?(k=!1,_=e(M,!0)):A?(k=!1,_=r(M,!0)):_=[]:l(M)||i(M)?(_=E,i(E)?_=g(E):h(E)&&!c(E)||(_=o(M))):k=!1}k&&(b.set(M,_),w(_,M,y,x,b),b.delete(M)),t(p,m,_)}}}function Cm(){if(Lf)return Ff;Lf=1;var t=function(){if(Rf)return If;Rf=1;var t=xs(),e=Am(),r=Zp(),n=jm(),o=hs(),i=za(),s=Om();return If=function a(u,c,h,l,d){u!==c&&r(c,function(r,i){if(d||(d=new t),o(r))n(u,c,i,h,a,l,d);else{var f=l?l(s(u,i),r,i+"",u,c,d):void 0;void 0===f&&(f=r),e(u,i,f)}},i)},If}(),e=function(){if(Tf)return Pf;Tf=1;var t=$v(),e=mm();return Pf=function(r){return t(function(t,n){var o=-1,i=n.length,s=i>1?n[i-1]:void 0,a=i>2?n[2]:void 0;for(s=r.length>3&&"function"==typeof s?(i--,s):void 0,a&&e(n[0],n[1],a)&&(s=i<3?void 0:s,i=1),t=Object(t);++o<i;){var u=n[o];u&&r(t,u,o,s)}return t})},Pf}(),r=e(function(e,r,n){t(e,r,n)});return Ff=r}function Im(){if(qf)return Df;return qf=1,Df=function(t,e){return t<e}}function Rm(){if(Bf)return Vf;Bf=1;var t=Sm(),e=Im(),r=rv();return Vf=function(n){return n&&n.length?t(n,r,e):void 0}}function Pm(){if(Gf)return $f;Gf=1;var t=Sm(),e=Av(),r=Im();return $f=function(n,o){return n&&n.length?t(n,e(o,2),r):void 0}}function Tm(){if(Wf)return Uf;Wf=1;var t=as();return Uf=function(){return t.Date.now()}}function Fm(){if(Qf)return Xf;Qf=1;var t=Mv(),e=function(){if(Hf)return Yf;Hf=1;var t=Ns(),e=bv(),r=Bs(),n=hs(),o=Ev();return Yf=function(i,s,a,u){if(!n(i))return i;for(var c=-1,h=(s=e(s,i)).length,l=h-1,d=i;null!=d&&++c<h;){var f=o(s[c]),g=a;if("__proto__"===f||"constructor"===f||"prototype"===f)return i;if(c!=l){var p=d[f];void 0===(g=u?u(p,f,d):void 0)&&(g=n(p)?p:r(s[c+1])?[]:{})}t(d,f,g),d=d[f]}return i},Yf}(),r=bv();return Xf=function(n,o,i){for(var s=-1,a=o.length,u={};++s<a;){var c=o[s],h=t(n,c);i(h,c)&&e(u,r(c,n),h)}return u},Xf}function Lm(){if(rg)return eg;rg=1;var t=function(){if(Kf)return Jf;Kf=1;var t=Fm(),e=_v();return Jf=function(r,n){return t(r,n,function(t,n){return e(r,n)})}}(),e=function(){if(tg)return Zf;tg=1;var t=Mm(),e=Vv(),r=Bv();return Zf=function(n){return r(e(n,void 0,t),n+"")}}()(function(e,r){return null==e?{}:t(e,r)});return eg=e}function Dm(){if(sg)return ig;sg=1;var t=function(){if(og)return ng;og=1;var t=Math.ceil,e=Math.max;return ng=function(r,n,o,i){for(var s=-1,a=e(t((n-r)/(o||1)),0),u=Array(a);a--;)u[i?a:++s]=r,r+=o;return u},ng}(),e=mm(),r=xm();return ig=function(n){return function(o,i,s){return s&&"number"!=typeof s&&e(o,i,s)&&(i=s=void 0),o=r(o),void 0===i?(i=o,o=0):i=r(i),s=void 0===s?o<i?1:-1:r(s),t(o,i,s,n)}}}function qm(){if(ug)return ag;ug=1;var t=Dm()();return ag=t}function Vm(){if(gg)return fg;gg=1;var t=function(){if(dg)return lg;dg=1;var t=vv();return lg=function(e,r){if(e!==r){var n=void 0!==e,o=null===e,i=e==e,s=t(e),a=void 0!==r,u=null===r,c=r==r,h=t(r);if(!u&&!h&&!s&&e>r||s&&a&&c&&!u&&!h||o&&a&&c||!n&&c||!i)return 1;if(!o&&!s&&!h&&e<r||h&&n&&i&&!o&&!s||u&&n&&i||!a&&i||!c)return-1}return 0}}();return fg=function(e,r,n){for(var o=-1,i=e.criteria,s=r.criteria,a=i.length,u=n.length;++o<a;){var c=t(i[o],s[o]);if(c)return o>=u?c:c*("desc"==n[o]?-1:1)}return e.index-r.index},fg}function Bm(){if(vg)return pg;vg=1;var t=wv(),e=Mv(),r=Av(),n=Rv(),o=hg?cg:(hg=1,cg=function(t,e){var r=t.length;for(t.sort(e);r--;)t[r]=t[r].value;return t}),i=Gs(),s=Vm(),a=rv(),u=zs();return pg=function(c,h,l){h=h.length?t(h,function(t){return u(t)?function(r){return e(r,1===t.length?t[0]:t)}:t}):[a];var d=-1;h=t(h,i(r));var f=n(c,function(e,r,n){return{criteria:t(h,function(t){return t(e)}),index:++d,value:e}});return o(f,function(t,e){return s(t,e,l)})},pg}function $m(){if(yg)return mg;yg=1;var t=qv(),e=Bm(),r=$v(),n=mm(),o=r(function(r,o){if(null==r)return[];var i=o.length;return i>1&&n(r,o[0],o[1])?o=[]:i>2&&n(o[0],o[1],o[2])&&(o=[o[0]]),e(r,t(o,1),[])});return mg=o}function Gm(){if(xg)return wg;xg=1;var t=xv(),e=0;return wg=function(r){var n=++e;return t(r)+n}}function Um(){if(Ng)return Mg;Ng=1;var t=Ns(),e=(Eg||(Eg=1,bg=function(t,e,r){for(var n=-1,o=t.length,i=e.length,s={};++n<o;){var a=n<i?e[n]:void 0;r(s,t[n],a)}return s}),bg);return Mg=function(r,n){return e(r||[],n||[],t)}}function Wm(){if(kg)return _g;var t;kg=1;try{t={cloneDeep:vm(),constant:Kp(),defaults:ym(),each:iv(),filter:Ov(),find:Em(),flatten:Mm(),forEach:ov(),forIn:Nm(),has:jv(),isUndefined:Iv(),last:_m(),map:Pv(),mapValues:km(),max:zm(),merge:Cm(),min:Rm(),minBy:Pm(),now:Tm(),pick:Lm(),range:qm(),reduce:Tv(),sortBy:$m(),uniqueId:Gm(),values:Qv(),zipObject:Um()}}catch(t){}return t||(t=window._),_g=t}function Ym(){if(Og)return Ag;Og=1;var t=Wm(),e=pm().Graph,r=function(){if(zg)return Sg;function t(){var t={};t._next=t._prev=t,this._sentinel=t}function e(t){t._prev._next=t._next,t._next._prev=t._prev,delete t._next,delete t._prev}function r(t,e){if("_next"!==t&&"_prev"!==t)return e}return zg=1,Sg=t,t.prototype.dequeue=function(){var t=this._sentinel,r=t._prev;if(r!==t)return e(r),r},t.prototype.enqueue=function(t){var r=this._sentinel;t._prev&&t._next&&e(t),t._next=r._next,r._next._prev=t,r._next=t,t._prev=r},t.prototype.toString=function(){for(var t=[],e=this._sentinel,n=e._prev;n!==e;)t.push(JSON.stringify(n,r)),n=n._prev;return"["+t.join(", ")+"]"},Sg}();Ag=function(s,a){if(s.nodeCount()<=1)return[];var u=function(n,o){var s=new e,a=0,u=0;t.forEach(n.nodes(),function(t){s.setNode(t,{v:t,in:0,out:0})}),t.forEach(n.edges(),function(t){var e=s.edge(t.v,t.w)||0,r=o(t),n=e+r;s.setEdge(t.v,t.w,n),u=Math.max(u,s.node(t.v).out+=r),a=Math.max(a,s.node(t.w).in+=r)});var c=t.range(u+a+3).map(function(){return new r}),h=a+1;return t.forEach(s.nodes(),function(t){i(c,h,s.node(t))}),{graph:s,buckets:c,zeroIdx:h}}(s,a||n),c=function(t,e,r){var n,i=[],s=e[e.length-1],a=e[0];for(;t.nodeCount();){for(;n=a.dequeue();)o(t,e,r,n);for(;n=s.dequeue();)o(t,e,r,n);if(t.nodeCount())for(var u=e.length-2;u>0;--u)if(n=e[u].dequeue()){i=i.concat(o(t,e,r,n,!0));break}}return i}(u.graph,u.buckets,u.zeroIdx);return t.flatten(t.map(c,function(t){return s.outEdges(t.v,t.w)}),!0)};var n=t.constant(1);function o(e,r,n,o,s){var a=s?[]:void 0;return t.forEach(e.inEdges(o.v),function(t){var o=e.edge(t),u=e.node(t.v);s&&a.push({v:t.v,w:t.w}),u.out-=o,i(r,n,u)}),t.forEach(e.outEdges(o.v),function(t){var o=e.edge(t),s=t.w,a=e.node(s);a.in-=o,i(r,n,a)}),e.removeNode(o.v),a}function i(t,e,r){r.out?r.in?t[r.out-r.in+e].enqueue(r):t[t.length-1].enqueue(r):t[0].enqueue(r)}return Ag}function Hm(){if(Cg)return jg;Cg=1;var t=Wm(),e=Ym();return jg={run:function(r){var n="greedy"===r.graph().acyclicer?e(r,function(t){return function(e){return t.edge(e).weight}}(r)):function(e){var r=[],n={},o={};function i(s){t.has(o,s)||(o[s]=!0,n[s]=!0,t.forEach(e.outEdges(s),function(e){t.has(n,e.w)?r.push(e):i(e.w)}),delete n[s])}return t.forEach(e.nodes(),i),r}(r);t.forEach(n,function(e){var n=r.edge(e);r.removeEdge(e),n.forwardName=e.name,n.reversed=!0,r.setEdge(e.w,e.v,n,t.uniqueId("rev"))})},undo:function(e){t.forEach(e.edges(),function(t){var r=e.edge(t);if(r.reversed){e.removeEdge(t);var n=r.forwardName;delete r.reversed,delete r.forwardName,e.setEdge(t.w,t.v,r,n)}})}},jg}function Xm(){if(Rg)return Ig;Rg=1;var t=Wm(),e=pm().Graph;function r(e,r,n,o){var i;do{i=t.uniqueId(o)}while(e.hasNode(i));return n.dummy=r,e.setNode(i,n),i}function n(e){return t.max(t.map(e.nodes(),function(r){var n=e.node(r).rank;if(!t.isUndefined(n))return n}))}return Ig={addDummyNode:r,simplify:function(r){var n=(new e).setGraph(r.graph());return t.forEach(r.nodes(),function(t){n.setNode(t,r.node(t))}),t.forEach(r.edges(),function(t){var e=n.edge(t.v,t.w)||{weight:0,minlen:1},o=r.edge(t);n.setEdge(t.v,t.w,{weight:e.weight+o.weight,minlen:Math.max(e.minlen,o.minlen)})}),n},asNonCompoundGraph:function(r){var n=new e({multigraph:r.isMultigraph()}).setGraph(r.graph());return t.forEach(r.nodes(),function(t){r.children(t).length||n.setNode(t,r.node(t))}),t.forEach(r.edges(),function(t){n.setEdge(t,r.edge(t))}),n},successorWeights:function(e){var r=t.map(e.nodes(),function(r){var n={};return t.forEach(e.outEdges(r),function(t){n[t.w]=(n[t.w]||0)+e.edge(t).weight}),n});return t.zipObject(e.nodes(),r)},predecessorWeights:function(e){var r=t.map(e.nodes(),function(r){var n={};return t.forEach(e.inEdges(r),function(t){n[t.v]=(n[t.v]||0)+e.edge(t).weight}),n});return t.zipObject(e.nodes(),r)},intersectRect:function(t,e){var r,n,o=t.x,i=t.y,s=e.x-o,a=e.y-i,u=t.width/2,c=t.height/2;if(!s&&!a)throw new Error("Not possible to find intersection inside of the rectangle");Math.abs(a)*u>Math.abs(s)*c?(a<0&&(c=-c),r=c*s/a,n=c):(s<0&&(u=-u),r=u,n=u*a/s);return{x:o+r,y:i+n}},buildLayerMatrix:function(e){var r=t.map(t.range(n(e)+1),function(){return[]});return t.forEach(e.nodes(),function(n){var o=e.node(n),i=o.rank;t.isUndefined(i)||(r[i][o.order]=n)}),r},normalizeRanks:function(e){var r=t.min(t.map(e.nodes(),function(t){return e.node(t).rank}));t.forEach(e.nodes(),function(n){var o=e.node(n);t.has(o,"rank")&&(o.rank-=r)})},removeEmptyRanks:function(e){var r=t.min(t.map(e.nodes(),function(t){return e.node(t).rank})),n=[];t.forEach(e.nodes(),function(t){var o=e.node(t).rank-r;n[o]||(n[o]=[]),n[o].push(t)});var o=0,i=e.graph().nodeRankFactor;t.forEach(n,function(r,n){t.isUndefined(r)&&n%i!==0?--o:o&&t.forEach(r,function(t){e.node(t).rank+=o})})},addBorderNode:function(t,e,n,o){var i={width:0,height:0};arguments.length>=4&&(i.rank=n,i.order=o);return r(t,"border",i,e)},maxRank:n,partition:function(e,r){var n={lhs:[],rhs:[]};return t.forEach(e,function(t){r(t)?n.lhs.push(t):n.rhs.push(t)}),n},time:function(e,r){var n=t.now();try{return r()}finally{console.log(e+" time: "+(t.now()-n)+"ms")}},notime:function(t,e){return e()}},Ig}function Qm(){if(Tg)return Pg;Tg=1;var t=Wm(),e=Xm();return Pg={run:function(r){r.graph().dummyChains=[],t.forEach(r.edges(),function(t){!function(t,r){var n,o,i,s=r.v,a=t.node(s).rank,u=r.w,c=t.node(u).rank,h=r.name,l=t.edge(r),d=l.labelRank;if(c===a+1)return;for(t.removeEdge(r),i=0,++a;a<c;++i,++a)l.points=[],o={width:0,height:0,edgeLabel:l,edgeObj:r,rank:a},n=e.addDummyNode(t,"edge",o,"_d"),a===d&&(o.width=l.width,o.height=l.height,o.dummy="edge-label",o.labelpos=l.labelpos),t.setEdge(s,n,{weight:l.weight},h),0===i&&t.graph().dummyChains.push(n),s=n;t.setEdge(s,u,{weight:l.weight},h)}(r,t)})},undo:function(e){t.forEach(e.graph().dummyChains,function(t){var r,n=e.node(t),o=n.edgeLabel;for(e.setEdge(n.edgeObj,o);n.dummy;)r=e.successors(t)[0],e.removeNode(t),o.points.push({x:n.x,y:n.y}),"edge-label"===n.dummy&&(o.x=n.x,o.y=n.y,o.width=n.width,o.height=n.height),t=r,n=e.node(t)})}}}function Jm(){if(Lg)return Fg;Lg=1;var t=Wm();return Fg={longestPath:function(e){var r={};t.forEach(e.sources(),function n(o){var i=e.node(o);if(t.has(r,o))return i.rank;r[o]=!0;var s=t.min(t.map(e.outEdges(o),function(t){return n(t.w)-e.edge(t).minlen}));return s!==Number.POSITIVE_INFINITY&&null!=s||(s=0),i.rank=s})},slack:function(t,e){return t.node(e.w).rank-t.node(e.v).rank-t.edge(e).minlen}},Fg}function Km(){if(qg)return Dg;qg=1;var t=Wm(),e=pm().Graph,r=Jm().slack;function n(e,n){return t.forEach(e.nodes(),function o(i){t.forEach(n.nodeEdges(i),function(t){var s=t.v,a=i===s?t.w:s;e.hasNode(a)||r(n,t)||(e.setNode(a,{}),e.setEdge(i,a,{}),o(a))})}),e.nodeCount()}function o(e,n){return t.minBy(n.edges(),function(t){if(e.hasNode(t.v)!==e.hasNode(t.w))return r(n,t)})}function i(e,r,n){t.forEach(e.nodes(),function(t){r.node(t).rank+=n})}return Dg=function(t){var s,a,u=new e({directed:!1}),c=t.nodes()[0],h=t.nodeCount();u.setNode(c,{});for(;n(u,t)<h;)s=o(u,t),a=u.hasNode(s.v)?r(t,s):-r(t,s),i(u,t,a);return u}}function Zm(){if(Bg)return Vg;Bg=1;var t=Wm(),e=Km(),r=Jm().slack,n=Jm().longestPath,o=pm().alg.preorder,i=pm().alg.postorder,s=Xm().simplify;function a(t){t=s(t),n(t);var r,o=e(t);for(h(o),u(o,t);r=d(o);)g(o,t,r,f(o,t,r))}function u(e,r){var n=i(e,e.nodes());n=n.slice(0,n.length-1),t.forEach(n,function(t){!function(t,e,r){var n=t.node(r),o=n.parent;t.edge(r,o).cutvalue=c(t,e,r)}(e,r,t)})}function c(e,r,n){var o=e.node(n).parent,i=!0,s=r.edge(n,o),a=0;return s||(i=!1,s=r.edge(o,n)),a=s.weight,t.forEach(r.nodeEdges(n),function(t){var s,u,c=t.v===n,h=c?t.w:t.v;if(h!==o){var l=c===i,d=r.edge(t).weight;if(a+=l?d:-d,s=n,u=h,e.hasEdge(s,u)){var f=e.edge(n,h).cutvalue;a+=l?-f:f}}}),a}function h(t,e){arguments.length<2&&(e=t.nodes()[0]),l(t,{},1,e)}function l(e,r,n,o,i){var s=n,a=e.node(o);return r[o]=!0,t.forEach(e.neighbors(o),function(i){t.has(r,i)||(n=l(e,r,n,i,o))}),a.low=s,a.lim=n++,i?a.parent=i:delete a.parent,n}function d(e){return t.find(e.edges(),function(t){return e.edge(t).cutvalue<0})}function f(e,n,o){var i=o.v,s=o.w;n.hasEdge(i,s)||(i=o.w,s=o.v);var a=e.node(i),u=e.node(s),c=a,h=!1;a.lim>u.lim&&(c=u,h=!0);var l=t.filter(n.edges(),function(t){return h===p(e,e.node(t.v),c)&&h!==p(e,e.node(t.w),c)});return t.minBy(l,function(t){return r(n,t)})}function g(e,r,n,i){var s=n.v,a=n.w;e.removeEdge(s,a),e.setEdge(i.v,i.w,{}),h(e),u(e,r),function(e,r){var n=t.find(e.nodes(),function(t){return!r.node(t).parent}),i=o(e,n);i=i.slice(1),t.forEach(i,function(t){var n=e.node(t).parent,o=r.edge(t,n),i=!1;o||(o=r.edge(n,t),i=!0),r.node(t).rank=r.node(n).rank+(i?o.minlen:-o.minlen)})}(e,r)}function p(t,e,r){return r.low<=e.lim&&e.lim<=r.lim}return Vg=a,a.initLowLimValues=h,a.initCutValues=u,a.calcCutValue=c,a.leaveEdge=d,a.enterEdge=f,a.exchangeEdges=g,Vg}function ty(){if(Gg)return $g;Gg=1;var t=Jm().longestPath,e=Km(),r=Zm();$g=function(r){switch(r.graph().ranker){case"network-simplex":default:o(r);break;case"tight-tree":!function(r){t(r),e(r)}(r);break;case"longest-path":n(r)}};var n=t;function o(t){r(t)}return $g}function ey(){if(Wg)return Ug;Wg=1;var t=Wm();return Ug=function(e){var r=function(e){var r={},n=0;function o(i){var s=n;t.forEach(e.children(i),o),r[i]={low:s,lim:n++}}return t.forEach(e.children(),o),r}(e);t.forEach(e.graph().dummyChains,function(t){for(var n=e.node(t),o=n.edgeObj,i=function(t,e,r,n){var o,i,s=[],a=[],u=Math.min(e[r].low,e[n].low),c=Math.max(e[r].lim,e[n].lim);o=r;do{o=t.parent(o),s.push(o)}while(o&&(e[o].low>u||c>e[o].lim));i=o,o=n;for(;(o=t.parent(o))!==i;)a.push(o);return{path:s.concat(a.reverse()),lca:i}}(e,r,o.v,o.w),s=i.path,a=i.lca,u=0,c=s[u],h=!0;t!==o.w;){if(n=e.node(t),h){for(;(c=s[u])!==a&&e.node(c).maxRank<n.rank;)u++;c===a&&(h=!1)}if(!h){for(;u<s.length-1&&e.node(c=s[u+1]).minRank<=n.rank;)u++;c=s[u]}e.setParent(t,c),t=e.successors(t)[0]}})},Ug}function ry(){if(Hg)return Yg;Hg=1;var t=Wm(),e=Xm();function r(n,o,i,s,a,u,c){var h=n.children(c);if(h.length){var l=e.addBorderNode(n,"_bt"),d=e.addBorderNode(n,"_bb"),f=n.node(c);n.setParent(l,c),f.borderTop=l,n.setParent(d,c),f.borderBottom=d,t.forEach(h,function(t){r(n,o,i,s,a,u,t);var e=n.node(t),h=e.borderTop?e.borderTop:t,f=e.borderBottom?e.borderBottom:t,g=e.borderTop?s:2*s,p=h!==f?1:a-u[c]+1;n.setEdge(l,h,{weight:g,minlen:p,nestingEdge:!0}),n.setEdge(f,d,{weight:g,minlen:p,nestingEdge:!0})}),n.parent(c)||n.setEdge(o,l,{weight:0,minlen:a+u[c]})}else c!==o&&n.setEdge(o,c,{weight:0,minlen:i})}return Yg={run:function(n){var o=e.addDummyNode(n,"root",{},"_root"),i=function(e){var r={};function n(o,i){var s=e.children(o);s&&s.length&&t.forEach(s,function(t){n(t,i+1)}),r[o]=i}return t.forEach(e.children(),function(t){n(t,1)}),r}(n),s=t.max(t.values(i))-1,a=2*s+1;n.graph().nestingRoot=o,t.forEach(n.edges(),function(t){n.edge(t).minlen*=a});var u=function(e){return t.reduce(e.edges(),function(t,r){return t+e.edge(r).weight},0)}(n)+1;t.forEach(n.children(),function(t){r(n,o,a,u,s,i,t)}),n.graph().nodeRankFactor=a},cleanup:function(e){var r=e.graph();e.removeNode(r.nestingRoot),delete r.nestingRoot,t.forEach(e.edges(),function(t){e.edge(t).nestingEdge&&e.removeEdge(t)})}},Yg}function ny(){if(Kg)return Jg;Kg=1;var t=Wm();function e(e){t.forEach(e.nodes(),function(t){r(e.node(t))}),t.forEach(e.edges(),function(t){r(e.edge(t))})}function r(t){var e=t.width;t.width=t.height,t.height=e}function n(t){t.y=-t.y}function o(t){var e=t.x;t.x=t.y,t.y=e}return Jg={adjust:function(t){var r=t.graph().rankdir.toLowerCase();"lr"!==r&&"rl"!==r||e(t)},undo:function(r){var i=r.graph().rankdir.toLowerCase();"bt"!==i&&"rl"!==i||function(e){t.forEach(e.nodes(),function(t){n(e.node(t))}),t.forEach(e.edges(),function(r){var o=e.edge(r);t.forEach(o.points,n),t.has(o,"y")&&n(o)})}(r);"lr"!==i&&"rl"!==i||(!function(e){t.forEach(e.nodes(),function(t){o(e.node(t))}),t.forEach(e.edges(),function(r){var n=e.edge(r);t.forEach(n.points,o),t.has(n,"x")&&o(n)})}(r),e(r))}}}function oy(){if(sp)return ip;sp=1;var t=Wm();return ip=function(e,r){var n={};return t.forEach(e,function(e,r){var o=n[e.v]={indegree:0,in:[],out:[],vs:[e.v],i:r};t.isUndefined(e.barycenter)||(o.barycenter=e.barycenter,o.weight=e.weight)}),t.forEach(r.edges(),function(e){var r=n[e.v],o=n[e.w];t.isUndefined(r)||t.isUndefined(o)||(o.indegree++,r.out.push(n[e.w]))}),function(e){var r=[];function n(e){return function(r){r.merged||(t.isUndefined(r.barycenter)||t.isUndefined(e.barycenter)||r.barycenter>=e.barycenter)&&function(t,e){var r=0,n=0;t.weight&&(r+=t.barycenter*t.weight,n+=t.weight);e.weight&&(r+=e.barycenter*e.weight,n+=e.weight);t.vs=e.vs.concat(t.vs),t.barycenter=r/n,t.weight=n,t.i=Math.min(e.i,t.i),e.merged=!0}(e,r)}}function o(t){return function(r){r.in.push(t),0===--r.indegree&&e.push(r)}}for(;e.length;){var i=e.pop();r.push(i),t.forEach(i.in.reverse(),n(i)),t.forEach(i.out,o(i))}return t.map(t.filter(r,function(t){return!t.merged}),function(e){return t.pick(e,["vs","i","barycenter","weight"])})}(t.filter(n,function(t){return!t.indegree}))}}function iy(){if(hp)return cp;hp=1;var t=Wm(),e=function(){if(op)return np;op=1;var t=Wm();return np=function(e,r){return t.map(r,function(r){var n=e.inEdges(r);if(n.length){var o=t.reduce(n,function(t,r){var n=e.edge(r),o=e.node(r.v);return{sum:t.sum+n.weight*o.order,weight:t.weight+n.weight}},{sum:0,weight:0});return{v:r,barycenter:o.sum/o.weight,weight:o.weight}}return{v:r}})}}(),r=oy(),n=function(){if(up)return ap;up=1;var t=Wm(),e=Xm();function r(e,r,n){for(var o;r.length&&(o=t.last(r)).i<=n;)r.pop(),e.push(o.vs),n++;return n}return ap=function(n,o){var i,s=e.partition(n,function(e){return t.has(e,"barycenter")}),a=s.lhs,u=t.sortBy(s.rhs,function(t){return-t.i}),c=[],h=0,l=0,d=0;a.sort((i=!!o,function(t,e){return t.barycenter<e.barycenter?-1:t.barycenter>e.barycenter?1:i?e.i-t.i:t.i-e.i})),d=r(c,u,d),t.forEach(a,function(t){d+=t.vs.length,c.push(t.vs),h+=t.barycenter*t.weight,l+=t.weight,d=r(c,u,d)});var f={vs:t.flatten(c,!0)};return l&&(f.barycenter=h/l,f.weight=l),f}}();return cp=function o(i,s,a,u){var c=i.children(s),h=i.node(s),l=h?h.borderLeft:void 0,d=h?h.borderRight:void 0,f={};l&&(c=t.filter(c,function(t){return t!==l&&t!==d}));var g=e(i,c);t.forEach(g,function(e){if(i.children(e.v).length){var r=o(i,e.v,a,u);f[e.v]=r,t.has(r,"barycenter")&&(n=e,s=r,t.isUndefined(n.barycenter)?(n.barycenter=s.barycenter,n.weight=s.weight):(n.barycenter=(n.barycenter*n.weight+s.barycenter*s.weight)/(n.weight+s.weight),n.weight+=s.weight))}var n,s});var p=r(g,a);!function(e,r){t.forEach(e,function(e){e.vs=t.flatten(e.vs.map(function(t){return r[t]?r[t].vs:t}),!0)})}(p,f);var v=n(p,u);if(l&&(v.vs=t.flatten([l,v.vs,d],!0),i.predecessors(l).length)){var m=i.node(i.predecessors(l)[0]),y=i.node(i.predecessors(d)[0]);t.has(v,"barycenter")||(v.barycenter=0,v.weight=0),v.barycenter=(v.barycenter*v.weight+m.order+y.order)/(v.weight+2),v.weight+=2}return v},cp}function sy(){if(dp)return lp;dp=1;var t=Wm(),e=pm().Graph;return lp=function(r,n,o){var i=function(e){var r;for(;e.hasNode(r=t.uniqueId("_root")););return r}(r),s=new e({compound:!0}).setGraph({root:i}).setDefaultNodeLabel(function(t){return r.node(t)});return t.forEach(r.nodes(),function(e){var a=r.node(e),u=r.parent(e);(a.rank===n||a.minRank<=n&&n<=a.maxRank)&&(s.setNode(e),s.setParent(e,u||i),t.forEach(r[o](e),function(n){var o=n.v===e?n.w:n.v,i=s.edge(o,e),a=t.isUndefined(i)?0:i.weight;s.setEdge(o,e,{weight:r.edge(n).weight+a})}),t.has(a,"minRank")&&s.setNode(e,{borderLeft:a.borderLeft[n],borderRight:a.borderRight[n]}))}),s},lp}function ay(){if(vp)return pp;vp=1;var t=Wm(),e=function(){if(tp)return Zg;tp=1;var t=Wm();return Zg=function(e){var r={},n=t.filter(e.nodes(),function(t){return!e.children(t).length}),o=t.max(t.map(n,function(t){return e.node(t).rank})),i=t.map(t.range(o+1),function(){return[]});function s(n){if(!t.has(r,n)){r[n]=!0;var o=e.node(n);i[o.rank].push(n),t.forEach(e.successors(n),s)}}var a=t.sortBy(n,function(t){return e.node(t).rank});return t.forEach(a,s),i},Zg}(),r=function(){if(rp)return ep;rp=1;var t=Wm();function e(e,r,n){for(var o=t.zipObject(n,t.map(n,function(t,e){return e})),i=t.flatten(t.map(r,function(r){return t.sortBy(t.map(e.outEdges(r),function(t){return{pos:o[t.w],weight:e.edge(t).weight}}),"pos")}),!0),s=1;s<n.length;)s<<=1;var a=2*s-1;s-=1;var u=t.map(new Array(a),function(){return 0}),c=0;return t.forEach(i.forEach(function(t){var e=t.pos+s;u[e]+=t.weight;for(var r=0;e>0;)e%2&&(r+=u[e+1]),u[e=e-1>>1]+=t.weight;c+=t.weight*r})),c}return ep=function(t,r){for(var n=0,o=1;o<r.length;++o)n+=e(t,r[o-1],r[o]);return n}}(),n=iy(),o=sy(),i=function(){if(gp)return fp;gp=1;var t=Wm();return fp=function(e,r,n){var o,i={};t.forEach(n,function(t){for(var n,s,a=e.parent(t);a;){if((n=e.parent(a))?(s=i[n],i[n]=a):(s=o,o=a),s&&s!==a)return void r.setEdge(s,a);a=n}})}}(),s=pm().Graph,a=Xm();function u(e,r,n){return t.map(r,function(t){return o(e,t,n)})}function c(e,r){var o=new s;t.forEach(e,function(e){var s=e.graph().root,a=n(e,s,o,r);t.forEach(a.vs,function(t,r){e.node(t).order=r}),i(e,o,a.vs)})}function h(e,r){t.forEach(r,function(r){t.forEach(r,function(t,r){e.node(t).order=r})})}return pp=function(n){var o=a.maxRank(n),i=u(n,t.range(1,o+1),"inEdges"),s=u(n,t.range(o-1,-1,-1),"outEdges"),l=e(n);h(n,l);for(var d,f=Number.POSITIVE_INFINITY,g=0,p=0;p<4;++g,++p){c(g%2?i:s,g%4>=2),l=a.buildLayerMatrix(n);var v=r(n,l);v<f&&(p=0,d=t.cloneDeep(l),f=v)}h(n,d)},pp}function uy(){if(yp)return mp;yp=1;var t=Wm(),e=pm().Graph,r=Xm();function n(e,r){var n={};return t.reduce(r,function(r,o){var s=0,a=0,u=r.length,c=t.last(o);return t.forEach(o,function(r,h){var l=function(e,r){if(e.node(r).dummy)return t.find(e.predecessors(r),function(t){return e.node(t).dummy})}(e,r),d=l?e.node(l).order:u;(l||r===c)&&(t.forEach(o.slice(a,h+1),function(r){t.forEach(e.predecessors(r),function(t){var o=e.node(t),a=o.order;!(a<s||d<a)||o.dummy&&e.node(r).dummy||i(n,t,r)})}),a=h+1,s=d)}),o}),n}function o(e,r){var n={};function o(r,o,s,a,u){var c;t.forEach(t.range(o,s),function(o){c=r[o],e.node(c).dummy&&t.forEach(e.predecessors(c),function(t){var r=e.node(t);r.dummy&&(r.order<a||r.order>u)&&i(n,t,c)})})}return t.reduce(r,function(r,n){var i,s=-1,a=0;return t.forEach(n,function(t,u){if("border"===e.node(t).dummy){var c=e.predecessors(t);c.length&&(i=e.node(c[0]).order,o(n,a,u,s,i),a=u,s=i)}o(n,a,n.length,i,r.length)}),n}),n}function i(t,e,r){if(e>r){var n=e;e=r,r=n}var o=t[e];o||(t[e]=o={}),o[r]=!0}function s(e,r,n){if(r>n){var o=r;r=n,n=o}return t.has(e[r],n)}function a(e,r,n,o){var i={},a={},u={};return t.forEach(r,function(e){t.forEach(e,function(t,e){i[t]=t,a[t]=t,u[t]=e})}),t.forEach(r,function(e){var r=-1;t.forEach(e,function(e){var c=o(e);if(c.length){c=t.sortBy(c,function(t){return u[t]});for(var h=(c.length-1)/2,l=Math.floor(h),d=Math.ceil(h);l<=d;++l){var f=c[l];a[e]===e&&r<u[f]&&!s(n,e,f)&&(a[f]=e,a[e]=i[e]=i[f],r=u[f])}}})}),{root:i,align:a}}function u(r,n,o,i,s){var a={},u=function(r,n,o,i){var s=new e,a=r.graph(),u=function(e,r,n){return function(o,i,s){var a,u=o.node(i),c=o.node(s),h=0;if(h+=u.width/2,t.has(u,"labelpos"))switch(u.labelpos.toLowerCase()){case"l":a=-u.width/2;break;case"r":a=u.width/2}if(a&&(h+=n?a:-a),a=0,h+=(u.dummy?r:e)/2,h+=(c.dummy?r:e)/2,h+=c.width/2,t.has(c,"labelpos"))switch(c.labelpos.toLowerCase()){case"l":a=c.width/2;break;case"r":a=-c.width/2}return a&&(h+=n?a:-a),a=0,h}}(a.nodesep,a.edgesep,i);return t.forEach(n,function(e){var n;t.forEach(e,function(t){var e=o[t];if(s.setNode(e),n){var i=o[n],a=s.edge(i,e);s.setEdge(i,e,Math.max(u(r,t,n),a||0))}n=t})}),s}(r,n,o,s),c=s?"borderLeft":"borderRight";function h(t,e){for(var r=u.nodes(),n=r.pop(),o={};n;)o[n]?t(n):(o[n]=!0,r.push(n),r=r.concat(e(n))),n=r.pop()}return h(function(t){a[t]=u.inEdges(t).reduce(function(t,e){return Math.max(t,a[e.v]+u.edge(e))},0)},u.predecessors.bind(u)),h(function(t){var e=u.outEdges(t).reduce(function(t,e){return Math.min(t,a[e.w]-u.edge(e))},Number.POSITIVE_INFINITY),n=r.node(t);e!==Number.POSITIVE_INFINITY&&n.borderType!==c&&(a[t]=Math.max(a[t],e))},u.successors.bind(u)),t.forEach(i,function(t){a[t]=a[o[t]]}),a}function c(e,r){return t.minBy(t.values(r),function(r){var n=Number.NEGATIVE_INFINITY,o=Number.POSITIVE_INFINITY;return t.forIn(r,function(t,r){var i=function(t,e){return t.node(e).width}(e,r)/2;n=Math.max(t+i,n),o=Math.min(t-i,o)}),n-o})}function h(e,r){var n=t.values(r),o=t.min(n),i=t.max(n);t.forEach(["u","d"],function(n){t.forEach(["l","r"],function(s){var a,u=n+s,c=e[u];if(c!==r){var h=t.values(c);(a="l"===s?o-t.min(h):i-t.max(h))&&(e[u]=t.mapValues(c,function(t){return t+a}))}})})}function l(e,r){return t.mapValues(e.ul,function(n,o){if(r)return e[r.toLowerCase()][o];var i=t.sortBy(t.map(e,o));return(i[1]+i[2])/2})}return mp={positionX:function(e){var i,s=r.buildLayerMatrix(e),d=t.merge(n(e,s),o(e,s)),f={};t.forEach(["u","d"],function(r){i="u"===r?s:t.values(s).reverse(),t.forEach(["l","r"],function(n){"r"===n&&(i=t.map(i,function(e){return t.values(e).reverse()}));var o=("u"===r?e.predecessors:e.successors).bind(e),s=a(e,i,d,o),c=u(e,i,s.root,s.align,"r"===n);"r"===n&&(c=t.mapValues(c,function(t){return-t})),f[r+n]=c})});var g=c(e,f);return h(f,g),l(f,e.graph().align)},findType1Conflicts:n,findType2Conflicts:o,addConflict:i,hasConflict:s,verticalAlignment:a,horizontalCompaction:u,alignCoordinates:h,findSmallestWidthAlignment:c,balance:l},mp}function cy(){if(xp)return wp;xp=1;var t=Wm(),e=Xm(),r=uy().positionX;return wp=function(n){(function(r){var n=e.buildLayerMatrix(r),o=r.graph().ranksep,i=0;t.forEach(n,function(e){var n=t.max(t.map(e,function(t){return r.node(t).height}));t.forEach(e,function(t){r.node(t).y=i+n/2}),i+=n+o})})(n=e.asNonCompoundGraph(n)),t.forEach(r(n),function(t,e){n.node(e).x=t})},wp}function hy(){if(Ep)return bp;Ep=1;var t=Wm(),e=Hm(),r=Qm(),n=ty(),o=Xm().normalizeRanks,i=ey(),s=Xm().removeEmptyRanks,a=ry(),u=function(){if(Qg)return Xg;Qg=1;var t=Wm(),e=Xm();function r(t,r,n,o,i,s){var a={width:0,height:0,rank:s,borderType:r},u=i[r][s-1],c=e.addDummyNode(t,"border",a,n);i[r][s]=c,t.setParent(c,o),u&&t.setEdge(u,c,{weight:1})}return Xg=function(e){t.forEach(e.children(),function n(o){var i=e.children(o),s=e.node(o);if(i.length&&t.forEach(i,n),t.has(s,"minRank")){s.borderLeft=[],s.borderRight=[];for(var a=s.minRank,u=s.maxRank+1;a<u;++a)r(e,"borderLeft","_bl",o,s,a),r(e,"borderRight","_br",o,s,a)}})},Xg}(),c=ny(),h=ay(),l=cy(),d=Xm(),f=pm().Graph;bp=function(N,_){var k=_&&_.debugTiming?d.time:d.notime;k("layout",function(){var _=k(" buildLayoutGraph",function(){return function(e){var r=new f({multigraph:!0,compound:!0}),n=M(e.graph());return r.setGraph(t.merge({},p,E(n,g),t.pick(n,v))),t.forEach(e.nodes(),function(n){var o=M(e.node(n));r.setNode(n,t.defaults(E(o,m),y)),r.setParent(n,e.parent(n))}),t.forEach(e.edges(),function(n){var o=M(e.edge(n));r.setEdge(n,t.merge({},x,E(o,w),t.pick(o,b)))}),r}(N)});k(" runLayout",function(){!function(f,g){g(" makeSpaceForEdgeLabels",function(){!function(e){var r=e.graph();r.ranksep/=2,t.forEach(e.edges(),function(t){var n=e.edge(t);n.minlen*=2,"c"!==n.labelpos.toLowerCase()&&("TB"===r.rankdir||"BT"===r.rankdir?n.width+=n.labeloffset:n.height+=n.labeloffset)})}(f)}),g(" removeSelfEdges",function(){!function(e){t.forEach(e.edges(),function(t){if(t.v===t.w){var r=e.node(t.v);r.selfEdges||(r.selfEdges=[]),r.selfEdges.push({e:t,label:e.edge(t)}),e.removeEdge(t)}})}(f)}),g(" acyclic",function(){e.run(f)}),g(" nestingGraph.run",function(){a.run(f)}),g(" rank",function(){n(d.asNonCompoundGraph(f))}),g(" injectEdgeLabelProxies",function(){!function(e){t.forEach(e.edges(),function(t){var r=e.edge(t);if(r.width&&r.height){var n=e.node(t.v),o={rank:(e.node(t.w).rank-n.rank)/2+n.rank,e:t};d.addDummyNode(e,"edge-proxy",o,"_ep")}})}(f)}),g(" removeEmptyRanks",function(){s(f)}),g(" nestingGraph.cleanup",function(){a.cleanup(f)}),g(" normalizeRanks",function(){o(f)}),g(" assignRankMinMax",function(){!function(e){var r=0;t.forEach(e.nodes(),function(n){var o=e.node(n);o.borderTop&&(o.minRank=e.node(o.borderTop).rank,o.maxRank=e.node(o.borderBottom).rank,r=t.max(r,o.maxRank))}),e.graph().maxRank=r}(f)}),g(" removeEdgeLabelProxies",function(){!function(e){t.forEach(e.nodes(),function(t){var r=e.node(t);"edge-proxy"===r.dummy&&(e.edge(r.e).labelRank=r.rank,e.removeNode(t))})}(f)}),g(" normalize.run",function(){r.run(f)}),g(" parentDummyChains",function(){i(f)}),g(" addBorderSegments",function(){u(f)}),g(" order",function(){h(f)}),g(" insertSelfEdges",function(){!function(e){var r=d.buildLayerMatrix(e);t.forEach(r,function(r){var n=0;t.forEach(r,function(r,o){var i=e.node(r);i.order=o+n,t.forEach(i.selfEdges,function(t){d.addDummyNode(e,"selfedge",{width:t.label.width,height:t.label.height,rank:i.rank,order:o+ ++n,e:t.e,label:t.label},"_se")}),delete i.selfEdges})})}(f)}),g(" adjustCoordinateSystem",function(){c.adjust(f)}),g(" position",function(){l(f)}),g(" positionSelfEdges",function(){!function(e){t.forEach(e.nodes(),function(t){var r=e.node(t);if("selfedge"===r.dummy){var n=e.node(r.e.v),o=n.x+n.width/2,i=n.y,s=r.x-o,a=n.height/2;e.setEdge(r.e,r.label),e.removeNode(t),r.label.points=[{x:o+2*s/3,y:i-a},{x:o+5*s/6,y:i-a},{x:o+s,y:i},{x:o+5*s/6,y:i+a},{x:o+2*s/3,y:i+a}],r.label.x=r.x,r.label.y=r.y}})}(f)}),g(" removeBorderNodes",function(){!function(e){t.forEach(e.nodes(),function(r){if(e.children(r).length){var n=e.node(r),o=e.node(n.borderTop),i=e.node(n.borderBottom),s=e.node(t.last(n.borderLeft)),a=e.node(t.last(n.borderRight));n.width=Math.abs(a.x-s.x),n.height=Math.abs(i.y-o.y),n.x=s.x+n.width/2,n.y=o.y+n.height/2}}),t.forEach(e.nodes(),function(t){"border"===e.node(t).dummy&&e.removeNode(t)})}(f)}),g(" normalize.undo",function(){r.undo(f)}),g(" fixupEdgeLabelCoords",function(){!function(e){t.forEach(e.edges(),function(r){var n=e.edge(r);if(t.has(n,"x"))switch("l"!==n.labelpos&&"r"!==n.labelpos||(n.width-=n.labeloffset),n.labelpos){case"l":n.x-=n.width/2+n.labeloffset;break;case"r":n.x+=n.width/2+n.labeloffset}})}(f)}),g(" undoCoordinateSystem",function(){c.undo(f)}),g(" translateGraph",function(){!function(e){var r=Number.POSITIVE_INFINITY,n=0,o=Number.POSITIVE_INFINITY,i=0,s=e.graph(),a=s.marginx||0,u=s.marginy||0;function c(t){var e=t.x,s=t.y,a=t.width,u=t.height;r=Math.min(r,e-a/2),n=Math.max(n,e+a/2),o=Math.min(o,s-u/2),i=Math.max(i,s+u/2)}t.forEach(e.nodes(),function(t){c(e.node(t))}),t.forEach(e.edges(),function(r){var n=e.edge(r);t.has(n,"x")&&c(n)}),r-=a,o-=u,t.forEach(e.nodes(),function(t){var n=e.node(t);n.x-=r,n.y-=o}),t.forEach(e.edges(),function(n){var i=e.edge(n);t.forEach(i.points,function(t){t.x-=r,t.y-=o}),t.has(i,"x")&&(i.x-=r),t.has(i,"y")&&(i.y-=o)}),s.width=n-r+a,s.height=i-o+u}(f)}),g(" assignNodeIntersects",function(){!function(e){t.forEach(e.edges(),function(t){var r,n,o=e.edge(t),i=e.node(t.v),s=e.node(t.w);o.points?(r=o.points[0],n=o.points[o.points.length-1]):(o.points=[],r=s,n=i),o.points.unshift(d.intersectRect(i,r)),o.points.push(d.intersectRect(s,n))})}(f)}),g(" reversePoints",function(){!function(e){t.forEach(e.edges(),function(t){var r=e.edge(t);r.reversed&&r.points.reverse()})}(f)}),g(" acyclic.undo",function(){e.undo(f)})}(_,k)}),k(" updateInputGraph",function(){!function(e,r){t.forEach(e.nodes(),function(t){var n=e.node(t),o=r.node(t);n&&(n.x=o.x,n.y=o.y,r.children(t).length&&(n.width=o.width,n.height=o.height))}),t.forEach(e.edges(),function(n){var o=e.edge(n),i=r.edge(n);o.points=i.points,t.has(i,"x")&&(o.x=i.x,o.y=i.y)}),e.graph().width=r.graph().width,e.graph().height=r.graph().height}(N,_)})})};var g=["nodesep","edgesep","ranksep","marginx","marginy"],p={ranksep:50,edgesep:20,nodesep:50,rankdir:"tb"},v=["acyclicer","ranker","rankdir","align"],m=["width","height"],y={width:0,height:0},w=["minlen","weight","width","height","labeloffset"],x={minlen:1,weight:1,width:0,height:0,labeloffset:10,labelpos:"r"},b=["labelpos"];function E(e,r){return t.mapValues(t.pick(e,r),Number)}function M(e){var r={};return t.forEach(e,function(t,e){r[e.toLowerCase()]=t}),r}return bp}function ly(){if(Np)return Mp;Np=1;var t=Wm(),e=Xm(),r=pm().Graph;return Mp={debugOrdering:function(n){var o=e.buildLayerMatrix(n),i=new r({compound:!0,multigraph:!0}).setGraph({});return t.forEach(n.nodes(),function(t){i.setNode(t,{label:t}),i.setParent(t,"layer"+n.node(t).rank)}),t.forEach(n.edges(),function(t){i.setEdge(t.v,t.w,{},t.name)}),t.forEach(o,function(e,r){var n="layer"+r;i.setNode(n,{rank:"same"}),t.reduce(e,function(t,e){return i.setEdge(t,e,{style:"invis"}),e})}),i}}}var dy=zp?Sp:(zp=1,Sp={graphlib:pm(),layout:hy(),debug:ly(),util:{time:Xm().time,notime:Xm().notime},version:kp?_p:(kp=1,_p="0.8.5")}),fy=es(dy);class gy extends lt{constructor(){super(...arguments),this.id="dagre",this.isCompoundGraph=null,this.config={graphAttributes:["rankdir","align","nodesep","edgesep","ranksep","marginx","marginy","acyclicer","ranker"],nodeAttributes:["width","height"],edgeAttributes:["minlen","weight","width","height","labelpos","labeloffset"]}}getDefaultOptions(){return{directed:!0,multigraph:!0,rankdir:"TB",align:void 0,nodesep:50,edgesep:10,ranksep:50,marginx:0,marginy:0,acyclicer:void 0,ranker:"network-simplex",nodeSize:[0,0],edgeMinLen:1,edgeWeight:1,edgeLabelSize:[0,0],edgeLabelPos:"r",edgeLabelOffset:10}}layout(){return r(this,void 0,void 0,function*(){const t=new dy.graphlib.Graph({directed:!!this.options.directed,multigraph:!!this.options.multigraph,compound:this.isCompound()});t.setGraph(x(this.options,this.config.graphAttributes)),t.setDefaultEdgeLabel(()=>({}));const e=gt(this.options.nodeSize,0);this.model.forEachNode(r=>{const n=r._original,[i,s]=ct(e(n)),a={width:i,height:s};if(t.setNode(String(r.id),a),this.isCompound()){if(o(r.parentId))return;t.setParent(String(r.id),String(r.parentId))}});const{edgeLabelSize:r,edgeLabelOffset:n,edgeLabelPos:i,edgeMinLen:s,edgeWeight:a}=this.options,u=gt(r,0),c=ft(n,10),h="function"==typeof i?i:()=>i,l=ft(s,1),d=ft(a,1);this.model.forEachEdge(e=>{const r=e._original,[n,o]=ct(u(r)),i={width:n,height:o,labelpos:h(r),labeloffset:c(r),minlen:l(r),weight:d(r)};t.setEdge(String(e.source),String(e.target),i,String(e.id))}),fy.layout(t),this.model.forEachNode(e=>{const r=t.node(String(e.id));r&&(e.x=r.x,e.y=r.y,e.size=[r.width,r.height])}),this.model.forEachEdge(e=>{const r=t.edge(String(e.source),String(e.target),String(e.id));if(!r)return;const{width:n,height:o,weight:i,minlen:s,labelpos:a,labeloffset:u,points:c}=r;e.labelSize=[n,o],e.weight=i,e.minLen=s,e.labelPos=a,e.labelOffset=u,e.points=c.map(ut)})})}isCompound(){return null!==this.isCompoundGraph?this.isCompoundGraph:(t=this.options.compound,u(t,"Boolean")?this.isCompoundGraph=this.options.compound:(this.isCompoundGraph=this.model.nodes().some(t=>!o(t.parentId)),this.isCompoundGraph));var t}}const py=1e-6;function vy(t){var e;let r=0;if(t.length)for(let e=0;e<t.length;e++){const n=t[e];n&&n.r>r&&(r=n.r)}else if(t.data){r=t.data.r||0;let n=t.next;for(;n;)r=Math.max(r,(null===(e=n.data)||void 0===e?void 0:e.r)||0),n=n.next}t.r=r}function my(t=1,e=.005,r=2){function n(n,o){!function(t,e,r,n,o=2){const i=e/r,s=t.nodes(),a=s.map((t,e)=>{const{nodeStrength:r,x:n,y:o,z:s,size:a,mass:u}=t;return{x:n,y:o,z:s,size:a,index:e,id:t.id,vx:0,vy:0,vz:0,weight:i*r,mass:u||1}}),u=(2===o?wr(a,t=>t.x,t=>t.y):Sn(a,t=>t.x,t=>t.y,t=>t.z)).visitAfter(yy),c=new Map;a.forEach(t=>{c.set(t.id,t),function(t,e,r){e.visit((e,n,o,i,s,a,u)=>wy(e,n,o,i,s,a,u,t,r))}(t,u,o)}),a.map(t=>{const e=t.id;n[e]={x:t.vx/t.mass,y:t.vy/t.mass,z:t.vz/t.mass}})}(n,t,e*e,o,r)}return n.factor=function(e){return arguments.length?(t=e,n):t},n.coulombDisScale=function(t){return arguments.length?(e=t,n):e},n.dimensions=function(t){return arguments.length?(r=t,n):r},n}function yy(t){let e=0,r=0,n=0,o=0,i=0;const s=t.length;if(s){for(let a=0;a<s;a++){const s=t[a];s&&s.weight&&(e+=s.weight,r+=s.x*s.weight,n+=s.y*s.weight,o+=s.z*s.weight,i+=s.size*s.weight)}t.x=r/e,t.y=n/e,t.z=o/e,t.size=i/e,t.weight=e}else{const e=t;t.x=e.data.x,t.y=e.data.y,t.z=e.data.z,t.size=e.data.size,t.weight=e.data.weight}}const wy=(t,e,r,n,o,i,s,a,u)=>{var c;if((null===(c=t.data)||void 0===c?void 0:c.id)===a.id)return;const h=2===u?n:3===u?i:r,l=a.x-t.x||.1,d=a.y-t.y||.1,f=a.z-t.z||.1,g=[l,d,f],p=h-e;let v=0;for(let t=0;t<u;t++)v+=g[t]*g[t];const m=Math.sqrt(v)*v;if(p*p*.81<v){const e=t.weight/m;return a.vx+=l*e,a.vy+=d*e,a.vz+=f*e,!0}if(t.length)return!1;if(t.data!==a){const e=t.data.weight/m;a.vx+=l*e,a.vy+=d*e,a.vz+=f*e}};var xy=function(){function t(){this._events={}}return t.prototype.on=function(t,e,r){return this._events[t]||(this._events[t]=[]),this._events[t].push({callback:e,once:!!r}),this},t.prototype.once=function(t,e){return this.on(t,e,!0)},t.prototype.emit=function(t){for(var e=this,r=[],n=1;n<arguments.length;n++)r[n-1]=arguments[n];var o=this._events[t]||[],i=this._events["*"]||[],s=function(n){for(var o=n.length,i=0;i<o;i++)if(n[i]){var s=n[i],a=s.callback;s.once&&(n.splice(i,1),0===n.length&&delete e._events[t],o--,i--),a.apply(e,r)}};s(o),s(i)},t.prototype.off=function(t,e){if(t)if(e){for(var r=this._events[t]||[],n=r.length,o=0;o<n;o++)r[o].callback===e&&(r.splice(o,1),n--,o--);0===r.length&&delete this._events[t]}else delete this._events[t];else this._events={};return this},t.prototype.getEvents=function(){return this._events},t}();class by extends xy{constructor(){super(...arguments),this.iteration=0,this.judgingDistance=1/0,this.running=!1,this.tickCallback=null,this.endCallback=null,this.timer=0}initialize(t){this.options=t,this.iteration=0,this.judgingDistance=1/0}on(t,e){return"tick"===t&&(this.tickCallback=e),"end"===t&&(this.endCallback=e),this}tick(t=1){var e;for(let r=0;r<t;r++){const t=this.runOneStep();this.judgingDistance=t,this.iteration++,null===(e=this.tickCallback)||void 0===e||e.call(this)}return this}restart(){if(this.running)return this;const{maxIteration:t=500,minMovement:e=0,animate:r=!0}=this.options;if(!r||"undefined"==typeof window){for(;this.iteration<t&&(this.judgingDistance>e||this.iteration<1);)this.tick(1);return Promise.resolve().then(()=>{var t;null===(t=this.endCallback)||void 0===t||t.call(this)}),this}return this.running=!0,this.timer=window.setInterval(()=>{var r;this.tick(1),(this.iteration>=t||this.judgingDistance<e)&&(this.stop(),null===(r=this.endCallback)||void 0===r||r.call(this))},0),this}stop(){return this.running=!1,this.timer&&(clearInterval(this.timer),this.timer=0),this}}class Ey extends by{constructor(){super(...arguments),this.forces=new Map,this.velMap={}}data(t){return this.model=t,t.forEachNode(t=>{this.velMap[t.id]={x:0,y:0,z:0}}),this}force(t,e){return 1===arguments.length?this.forces.get(t)||null:(null===e?this.forces.delete(t):e&&this.forces.set(t,e),e||null)}runOneStep(){const t={},e=this.model.nodes();if(!e.length)return 0;e.forEach(e=>{t[e.id]={x:0,y:0,z:0}}),this.forces.forEach(e=>{e(this.model,t)}),this.updateVelocity(t);const r=this.updatePosition();return this.monitor(t,e),r}setFixedPosition(t,e){const r=this.model.node(t);if(!r)return;const n=["fx","fy","fz"];if(null===e)return void n.forEach(t=>delete r[t]);e.forEach((t,e)=>{e<n.length&&("number"==typeof t||null===t)&&(r[n[e]]=t)});const o=this.velMap[t];o&&(o.x=0,o.y=0,o.z=0)}updateVelocity(t){const{damping:e=.9,maxSpeed:r=100,interval:n=.02,dimensions:o=2}=this.options;this.model.nodes().forEach(i=>{const s=i.id;let a=(this.velMap[s].x+t[s].x*n)*e,u=(this.velMap[s].y+t[s].y*n)*e,c=3===o?(this.velMap[s].z+t[s].z*n)*e:0;const h=Math.sqrt(a*a+u*u+c*c);if(h>r){const t=r/h;a*=t,u*=t,c*=t}this.velMap[s]={x:a,y:u,z:c}})}updatePosition(){const{distanceThresholdMode:t="mean",interval:e=.02,dimensions:r=2}=this.options,n=this.model.nodes();let o=0,i="max"===t?-1/0:"min"===t?1/0:0;return n.forEach(n=>{const s=n.id;if(l(n.fx)&&l(n.fy))return n.x=n.fx,n.y=n.fy,void(3===r&&l(n.fz)&&(n.z=n.fz));const a=this.velMap[s].x*e,u=this.velMap[s].y*e,c=3===r?this.velMap[s].z*e:0;n.x+=a,n.y+=u,3===r&&(n.z=(n.z||0)+c);const h=Math.sqrt(a*a+u*u+c*c);"max"===t?i=Math.max(i,h):"min"===t?i=Math.min(i,h):o+=h}),"mean"===t?o/n.length:i}monitor(t,e){const{monitor:r,dimensions:n=2}=this.options;if(!r)return;let o=0;e.forEach(e=>{const r=t[e.id],i=r.x*r.x+r.y*r.y+(3===n?r.z*r.z:0);o+=(e.mass||1)*i*.5}),r({energy:o,nodes:e,edges:this.model.edges(),iterations:this.iteration})}}const My={nodeSize:30,dimensions:2,maxIteration:500,gravity:10,factor:1,edgeStrength:50,nodeStrength:1e3,coulombDisScale:.005,damping:.9,maxSpeed:200,minMovement:.4,interval:.02,linkDistance:200,clusterNodeStrength:20,collideStrength:1,preventOverlap:!0,distanceThresholdMode:"mean"};class Ny extends dt{constructor(){super(...arguments),this.id="force",this.simulation=null}getDefaultOptions(){return My}layout(){var t;return r(this,void 0,void 0,function*(){const e=this.parseOptions(this.options),{width:r,height:n,dimensions:o}=e;if(this.initializePhysicsData(this.model,e),Z(this.model,r,n,o),!(null===(t=this.model.nodes())||void 0===t?void 0:t.length))return;const i=this.setSimulation(e);return i.data(this.model),i.initialize(e),i.restart(),new Promise(t=>{i.on("end",()=>t())})})}initializePhysicsData(t,e){const{nodeSize:r,getMass:n,nodeStrength:o,edgeStrength:i,linkDistance:s}=e;t.forEachNode(t=>{const e=t._original;t.size=r(e),t.mass=n(e),t.nodeStrength=o(e)}),t.forEachEdge(e=>{const r=e._original;e.edgeStrength=i(r),e.linkDistance=s(r,t.originalNode(e.source),t.originalNode(e.target))})}setSimulation(t){const e=this.simulation||new Ey;return this.simulation||(this.simulation=e.on("tick",()=>{var e;null===(e=t.onTick)||void 0===e||e.call(t,this)})),this.setupRepulsiveForce(e,t),this.setupAttractiveForce(e,t),this.setupCollideForce(e,t),this.setupGravityForce(e,t),this.setupCentripetalForce(e,t),e}setupRepulsiveForce(t,e){const{factor:r,coulombDisScale:n,dimensions:o}=e;let i=t.force("repulsive");i||(i=my(r,n,o),t.force("repulsive",i)),i.factor&&i.factor(r),i.coulombDisScale&&i.coulombDisScale(n),i.dimensions&&i.dimensions(o)}setupAttractiveForce(t,e){const{dimensions:r,preventOverlap:n}=e;if((this.model.edges()||[]).length>0){let e=t.force("attractive");e||(e=function(t=2){let e=!1;function r(e,r){e.forEachEdge(n=>{var o,i;const{source:s,target:a}=n,u=e.node(s),c=e.node(a);if(!u||!c)return;let h=c.x-u.x,l=c.y-u.y,d=3===t?(null!==(o=c.z)&&void 0!==o?o:0)-(null!==(i=u.z)&&void 0!==i?i:0):0;h||l||(h=.01,l=.01,3!==t||d||(d=.01));const f=Math.sqrt(h*h+l*l+d*d);if(f<Number(u.size)+Number(c.size))return;const g=h/f,p=l/f,v=d/f,{linkDistance:m=200,edgeStrength:y=200}=n,w=(m-f)*y,x=1/(u.mass||1),b=1/(c.mass||1),E=g*w,M=p*w,N=v*w;r[s].x-=E*x,r[s].y-=M*x,r[s].z-=N*x,r[a].x+=E*b,r[a].y+=M*b,r[a].z+=N*b})}return r.dimensions=function(e){return arguments.length?(t=e,r):t},r.preventOverlap=function(t){return arguments.length?(e=t,r):e},r}(r),t.force("attractive",e)),e.dimensions&&e.dimensions(r),e.preventOverlap&&e.preventOverlap(n)}else t.force("attractive",null)}setupGravityForce(t,e){const{center:r,gravity:n,getCenter:o}=e;if(n){let e=t.force("gravity");e||(e=function(t=[0,0,0],e=10){let r;function n(n,o){n.nodes()&&n.forEachNode(i=>{const{id:s,mass:a,x:u,y:c,z:h=0}=i;let l=0,d=0,f=0,g=e;const p=n.degree(s),v=null==r?void 0:r(i,p);if(v){const[t,e,r]=v;l=u-t,d=c-e,g=r}else l=u-t[0],d=c-t[1],f=h-(t[2]||0);g&&(o[s].x-=g*l/a,o[s].y-=g*d/a,o[s].z-=g*f/a)})}return n.center=function(e){return arguments.length?(t=e,n):t},n.gravity=function(t){return arguments.length?(e=t,n):e},n.getCenter=function(t){return arguments.length?(r=t,n):r},n}(r,n),t.force("gravity",e)),e.center&&e.center(r),e.gravity&&e.gravity(n),e.getCenter&&e.getCenter(o)}else t.force("gravity",null)}setupCollideForce(t,e){const{preventOverlap:r,collideStrength:n=1,dimensions:o}=e;if(r&&n){let e=t.force("collide");e||(e=function(t=2){let e=1;function r(r,n){const o=r.nodes();if(o.length<2||e<=0)return;if(2===t){const t=o.map((t,e)=>({id:t.id,index:e,x:t.x,y:t.y,r:Number(t.size)/2,mass:t.mass||1,fx:t.fx,fy:t.fy})),e=wr(t,t=>t.x,t=>t.y).visitAfter(vy);for(const r of t)e.visit((t,e,o,s,a)=>{const u=t.r||0,c=r.r+u;if(e>r.x+c||s<r.x-c||o>r.y+c||a<r.y-c)return!0;if(!t.data)return!1;let h=t;do{const t=h.data;t&&t.index>r.index&&i(r,t,n),h=h.next}while(h);return!1});return}const a=o.map((t,e)=>{var r;return{id:t.id,index:e,x:t.x,y:t.y,z:null!==(r=t.z)&&void 0!==r?r:0,r:Number(t.size)/2,mass:t.mass||1,fx:t.fx,fy:t.fy,fz:t.fz}});for(let t=0;t<a.length;t++)for(let e=t+1;e<a.length;e++)s(a[t],a[e],n)}function n(t){return l(t.fx)&&l(t.fy)?0:1/(t.mass||1)}function o(t){return l(t.fx)&&l(t.fy)&&l(t.fz)?0:1/(t.mass||1)}function i(t,r,o){let i=t.x-r.x,s=t.y-r.y,a=Math.hypot(i,s);const u=t.r+r.r;if(a>=u)return;a<py&&(i=t.index<r.index?py:-py,s=0,a=Math.abs(i));const c=i/a,h=s/a,l=(u-a)*e*500,d=n(t),f=n(r);d&&(o[t.id].x+=c*l*d,o[t.id].y+=h*l*d),f&&(o[r.id].x-=c*l*f,o[r.id].y-=h*l*f)}function s(t,r,n){let i=t.x-r.x,s=t.y-r.y,a=t.z-r.z,u=Math.sqrt(i*i+s*s+a*a);const c=t.r+r.r;if(u>=c)return;u<py&&(i=t.index<r.index?py:-py,s=0,a=0,u=Math.abs(i));const h=i/u,l=s/u,d=a/u,f=(c-u)*e*500,g=o(t),p=o(r);g&&(n[t.id].x+=h*f*g,n[t.id].y+=l*f*g,n[t.id].z+=d*f*g),p&&(n[r.id].x-=h*f*p,n[r.id].y-=l*f*p,n[r.id].z-=d*f*p)}return r.dimensions=function(e){return arguments.length?(t=e,r):t},r.strength=function(t){return arguments.length?(e=t,r):e},r}(o),t.force("collide",e)),e.strength&&e.strength(n),e.dimensions&&e.dimensions(o)}else t.force("collide",null)}setupCentripetalForce(t,e){const{centripetalOptions:r,width:n,height:o}=e;if(r){let e=t.force("centripetal");e||(e=function(){let t,e=800,r=600;function n(n,o){if(!t)return;const{leaf:i,single:s,others:a,center:u}=t,c=n.nodes(),h=n.edges(),d=c.map(t=>Object.assign(Object.assign({},t),{data:t.data||{}})),f=h.map(t=>Object.assign(Object.assign({},t),{data:t.data||{}}));n.forEachNode(t=>{const{id:c,mass:h,x:g,y:p,z:v=0,data:m}=t,y=n.degree(c,"in"),w=n.degree(c,"out"),x=n.degree(c,"both"),b=Object.assign(Object.assign({},t),{data:m||{}}),{x:E,y:M,z:N,centerStrength:_}=(null==u?void 0:u(b,d,f,e,r))||{x:0,y:0,z:0,centerStrength:0};if(!l(E)||!l(M))return;const k=(g-E)/h,S=(p-M)/h,z=(v-(N||0))/h;if(_&&(o[c].x-=_*k,o[c].y-=_*S,o[c].z-=_*z),0===x){const t=s(b);if(!t)return;return o[c].x-=t*k,o[c].y-=t*S,void(o[c].z-=t*z)}if(0===y||0===w){const t=i(b,d,f);if(!t)return;return o[c].x-=t*k,o[c].y-=t*S,void(o[c].z-=t*z)}const A=a(b);A&&(o[c].x-=A*k,o[c].y-=A*S,o[c].z-=A*z)})}return n.options=function(e){return arguments.length?(t=e,n):t},n.width=function(t){return arguments.length?(e=t,n):e},n.height=function(t){return arguments.length?(r=t,n):r},n}(),t.force("centripetal",e)),e.options&&e.options(r),e.width&&e.width(n),e.height&&e.height(o)}else t.force("centripetal",null)}parseOptions(t){const e=Object.assign(Object.assign({},t),ht(t));return t.getMass||(e.getMass=t=>{if(!t)return 1;const e=this.model.degree(t.id,"both");return!e||e<5?1:5*e*1}),e.nodeSize=pt(t.nodeSize,t.nodeSpacing),e.linkDistance=t.linkDistance?ft(t.linkDistance,1):t=>1+e.nodeSize(this.model.node(t.source)._original)+e.nodeSize(this.model.node(t.target)._original),e.nodeStrength=ft(t.nodeStrength,1),e.edgeStrength=ft(t.edgeStrength,1),this.formatCentripetal(e),e}formatCentripetal(t){var e;const{dimensions:r,centripetalOptions:n,center:o,clusterNodeStrength:i,leafCluster:s,clustering:a,nodeClusterBy:u}=t,c=n||{leaf:2,single:2,others:1,center:t=>({x:o[0],y:o[1],z:3===r?o[2]:void 0})};let h,l;if("function"!=typeof i&&(t.clusterNodeStrength=()=>i),s&&u&&(h=this.getSameTypeLeafMap(u),l=Array.from(new Set(null===(e=this.model.nodes())||void 0===e?void 0:e.map(t=>u(t._original))))||[],t.centripetalOptions=Object.assign({},c,{single:()=>100,leaf:e=>{const{siblingLeaves:r,sameTypeLeaves:n}=h[e.id]||{};return(null==n?void 0:n.length)===(null==r?void 0:r.length)||1===(null==l?void 0:l.length)?1:t.clusterNodeStrength(e)},others:()=>1,center:t=>{const e=this.model.degree(t.id,"both");if(!e)return{x:100,y:100,z:0};let r;if(1===e){const{sameTypeLeaves:e=[]}=h[t.id]||{};1===e.length?r=void 0:e.length>1&&(r=this.getAvgNodePosition(e))}else r=void 0;return{x:null==r?void 0:r.x,y:null==r?void 0:r.y,z:null==r?void 0:r.z}}})),a&&u){h||(h=this.getSameTypeLeafMap(u));let e=[];y(e)&&this.model.forEachNode(t=>{const r=u(t._original);r&&!e.includes(r)&&e.push(r)});const r={};e.forEach(t=>{const e=this.model.nodes().filter(e=>u(e._original)===t);r[t]=this.getAvgNodePosition(e)}),t.centripetalOptions=Object.assign(c,{single:e=>t.clusterNodeStrength(e),leaf:e=>t.clusterNodeStrength(e),others:e=>t.clusterNodeStrength(e),center:t=>{const e=r[u(t._original)];return{x:null==e?void 0:e.x,y:null==e?void 0:e.y,z:null==e?void 0:e.z}}})}const{leaf:d,single:f,others:g}=t.centripetalOptions||{};d&&"function"!=typeof d&&(t.centripetalOptions.leaf=()=>d),f&&"function"!=typeof f&&(t.centripetalOptions.single=()=>f),g&&"function"!=typeof g&&(t.centripetalOptions.others=()=>g)}getSameTypeLeafMap(t){const e={};return this.model.forEachNode(r=>{1===this.model.degree(r.id,"both")&&(e[r.id]=this.getCoreNodeAndSiblingLeaves(r,t))}),e}getCoreNodeAndSiblingLeaves(t,e){const r=this.model.degree(t.id,"in"),n=this.model.degree(t.id,"out");let o=t,i=[];if(0===r){const e=this.model.successors(t.id);o=this.model.node(e[0]),i=this.model.neighbors(o.id).map(t=>this.model.node(t))}else if(0===n){const e=this.model.predecessors(t.id);o=this.model.node(e[0]),i=this.model.neighbors(o.id).map(t=>this.model.node(t))}i=i.filter(t=>0===this.model.degree(t.id,"in")||0===this.model.degree(t.id,"out"));const s=e(t._original)||"",a=i.filter(t=>e(t._original)===s&&(0===this.model.degree(t.id,"in")||0===this.model.degree(t.id,"out")));return{coreNode:o,siblingLeaves:i,sameTypeLeaves:a}}getAvgNodePosition(t){const e={x:0,y:0};t.forEach(t=>{e.x+=t.x||0,e.y+=t.y||0});const r=t.length||1;return{x:e.x/r,y:e.y/r}}tick(t=1){return this.simulation&&this.simulation.tick(t),this}stop(){return this.simulation&&this.simulation.stop(),this}restart(){return this.simulation&&this.simulation.restart(),this}setFixedPosition(t,e){return this.simulation&&this.simulation.setFixedPosition(t,e),this}}class _y{constructor(t){this.id=t.id||0,this.rx=t.rx,this.ry=t.ry,this.fx=0,this.fy=0,this.mass=t.mass,this.degree=t.degree,this.g=t.g||0}distanceTo(t){const e=this.rx-t.rx,r=this.ry-t.ry;return Math.hypot(e,r)}setPos(t,e){this.rx=t,this.ry=e}resetForce(){this.fx=0,this.fy=0}addForce(t){const e=t.rx-this.rx,r=t.ry-this.ry;let n=Math.hypot(e,r);n=n<1e-4?1e-4:n;const o=this.g*(this.degree+1)*(t.degree+1)/n;this.fx+=o*e/n,this.fy+=o*r/n}in(t){return t.contains(this.rx,this.ry)}add(t){const e=this.mass+t.mass,r=(this.rx*this.mass+t.rx*t.mass)/e,n=(this.ry*this.mass+t.ry*t.mass)/e,o=this.degree+t.degree;return new _y({rx:r,ry:n,mass:e,degree:o})}}class ky{constructor(t){this.xmid=t.xmid,this.ymid=t.ymid,this.length=t.length,this.massCenter=t.massCenter||[0,0],this.mass=t.mass||1}getLength(){return this.length}contains(t,e){const r=this.length/2;return t<=this.xmid+r&&t>=this.xmid-r&&e<=this.ymid+r&&e>=this.ymid-r}NW(){const t=this.xmid-this.length/4,e=this.ymid+this.length/4,r=this.length/2;return new ky({xmid:t,ymid:e,length:r})}NE(){const t=this.xmid+this.length/4,e=this.ymid+this.length/4,r=this.length/2;return new ky({xmid:t,ymid:e,length:r})}SW(){const t=this.xmid-this.length/4,e=this.ymid-this.length/4,r=this.length/2;return new ky({xmid:t,ymid:e,length:r})}SE(){const t=this.xmid+this.length/4,e=this.ymid-this.length/4,r=this.length/2;return new ky({xmid:t,ymid:e,length:r})}}class Sy{constructor(t){this.body=null,this.quad=null,this.NW=null,this.NE=null,this.SW=null,this.SE=null,this.theta=.5,null!=t&&(this.quad=t)}insert(t){null!=this.body?this._isExternal()?(this.quad&&(this.NW=new Sy(this.quad.NW()),this.NE=new Sy(this.quad.NE()),this.SW=new Sy(this.quad.SW()),this.SE=new Sy(this.quad.SE())),this._putBody(this.body),this._putBody(t),this.body=this.body.add(t)):(this.body=this.body.add(t),this._putBody(t)):this.body=t}_putBody(t){this.quad&&(t.in(this.quad.NW())&&this.NW?this.NW.insert(t):t.in(this.quad.NE())&&this.NE?this.NE.insert(t):t.in(this.quad.SW())&&this.SW?this.SW.insert(t):t.in(this.quad.SE())&&this.SE&&this.SE.insert(t))}_isExternal(){return null==this.NW&&null==this.NE&&null==this.SW&&null==this.SE}updateForce(t){if(null!=this.body&&t!==this.body)if(this._isExternal())t.addForce(this.body);else{(this.quad?this.quad.getLength():0)/this.body.distanceTo(t)<this.theta?t.addForce(this.body):(this.NW&&this.NW.updateForce(t),this.NE&&this.NE.updateForce(t),this.SW&&this.SW.updateForce(t),this.SE&&this.SE.updateForce(t))}}}let zy=class extends by{constructor(){super(...arguments),this.sg=0,this.forces={},this.preForces={},this.bodies={},this.sizes={},this.maxIteration=0}data(t,e){return this.model=t,this.sizes=e,this}initialize(t){super.initialize(t),this.maxIteration=t.maxIteration,this.sg=0,this.initForces()}initForces(){const{model:t,options:e}=this,{kr:r,barnesHut:n}=e,o=t.nodes();this.forces={},this.preForces={},this.bodies={};for(let e=0;e<o.length;e+=1){const i=o[e];if(this.forces[i.id]=[0,0],this.preForces[i.id]=[0,0],n){const n={id:e,rx:i.x,ry:i.y,mass:1,g:r,degree:t.degree(i.id)};this.bodies[i.id]=new _y(n)}}}setFixedPosition(t,e){const r=this.model.node(t);if(!r)return;const n=["fx","fy","fz"];null!==e?e.forEach((t,e)=>{e<n.length&&("number"==typeof t||null===t)&&(r[n[e]]=t)}):n.forEach(t=>{delete r[t]})}isNodeFixed(t){return l(t.fx)&&l(t.fy)}syncFixedPositions(){this.model.forEachNode(t=>{this.isNodeFixed(t)&&(t.x=t.fx,t.y=t.fy)})}runOneStep(){const{model:t,options:e}=this,{preventOverlap:r,barnesHut:n}=e,o=this.maxIteration-this.iteration,i=t.nodes();for(let t=0;t<i.length;t+=1){const{id:e}=i[t];this.preForces[e]=[...this.forces[e]||[0,0]],this.forces[e]=[0,0]}return this.syncFixedPositions(),this.calculateAttractive(o),n&&!r?this.calculateOptRepulsiveGravity():this.calculateRepulsiveGravity(o,100),this.updatePositions()}calculateAttractive(t){const{model:e,options:r}=this,{preventOverlap:n,dissuadeHubs:o,mode:i,prune:s}=r,a=e.edges();for(let t=0;t<a.length;t+=1){const{source:r,target:u}=a[t],c=e.node(r),h=e.node(u),l=e.degree(r),d=e.degree(u);if(s&&(l<=1||d<=1))continue;const f=h.x-c.x,g=h.y-c.y;let p=Math.hypot(f,g);p=p<1e-4?1e-4:p;const v=f/p,m=g/p;let y=p;n&&(y=Math.max(0,p-this.sizes[r]-this.sizes[u]));let w=y,x=y;"linlog"===i&&(w=Math.log(1+y),x=w),o&&(w=y/l,x=y/d),this.forces[r][0]+=w*v,this.forces[r][1]+=w*m,this.forces[u][0]-=x*v,this.forces[u][1]-=x*m}}calculateOptRepulsiveGravity(){const{model:t,options:e}=this,{kg:r,center:n,prune:o,kr:i}=e,s=t.nodes(),a=s.length;let u=Number.POSITIVE_INFINITY,c=Number.NEGATIVE_INFINITY,h=Number.POSITIVE_INFINITY,l=Number.NEGATIVE_INFINITY;for(let e=0;e<a;e+=1){const r=s[e],{id:n,x:i,y:a}=r;if(o&&t.degree(n)<=1)continue;const d=this.bodies[n];d&&(d.setPos(i,a),i<u&&(u=i),i>c&&(c=i),a<h&&(h=a),a>l&&(l=a))}let d=Math.max(c-u,l-h);(!isFinite(d)||d<=0)&&(d=1);const f=new ky({xmid:(c+u)/2,ymid:(l+h)/2,length:d,massCenter:n,mass:a}),g=new Sy(f);for(let e=0;e<a;e+=1){const{id:r}=s[e];if(o&&t.degree(r)<=1)continue;const n=this.bodies[r];n&&n.in(f)&&g.insert(n)}for(let e=0;e<a;e+=1){const i=s[e],{id:a,x:u,y:c}=i,h=t.degree(a);if(o&&h<=1)continue;const l=this.bodies[a];if(!l)continue;l.resetForce(),g.updateForce(l),this.forces[a][0]-=l.fx,this.forces[a][1]-=l.fy;const d=u-n[0],f=c-n[1];let p=Math.hypot(d,f);p=p<1e-4?1e-4:p;const v=d/p,m=f/p,y=r*(h+1);this.forces[a][0]-=y*v,this.forces[a][1]-=y*m}}calculateRepulsiveGravity(t,e){const{model:r,options:n}=this,{preventOverlap:o,kr:i,kg:s,center:a,prune:u}=n,c=r.nodes(),h=c.length;for(let t=0;t<h;t+=1){const n=c[t],l=r.degree(n.id);for(let s=t+1;s<h;s+=1){const t=c[s],a=r.degree(t.id);if(u&&(l<=1||a<=1))continue;const h=t.x-n.x,d=t.y-n.y;let f=Math.hypot(h,d);f=f<1e-4?1e-4:f;const g=h/f,p=d/f;let v,m=f;if(o){const r=f-this.sizes[n.id]-this.sizes[t.id];r<0?v=e*(l+1)*(a+1):0===r?v=0:(m=r,v=i*(l+1)*(a+1)/m)}else v=i*(l+1)*(a+1)/m;this.forces[n.id][0]-=v*g,this.forces[n.id][1]-=v*p,this.forces[t.id][0]+=v*g,this.forces[t.id][1]+=v*p}const d=n.x-a[0],f=n.y-a[1];let g=Math.hypot(d,f);g=g<1e-4?1e-4:g;const p=d/g,v=f/g,m=s*(l+1);this.forces[n.id][0]-=m*p,this.forces[n.id][1]-=m*v}}updatePositions(){const{model:t,options:e}=this,{ks:r,tao:n,prune:o,ksmax:i,distanceThresholdMode:s="max"}=e,a=t.nodes(),u=a.length,c={},h={};let l=0,d=0;for(let e=0;e<u;e+=1){const{id:r}=a[e],n=t.degree(r);if(o&&n<=1)continue;const i=this.preForces[r]||[0,0],s=this.forces[r]||[0,0],u=s[0]-i[0],f=s[1]-i[1],g=Math.hypot(u,f),p=s[0]+i[0],v=s[1]+i[1],m=Math.hypot(p,v);c[r]=g,h[r]=m/2,l+=(n+1)*c[r],d+=(n+1)*h[r]}let f=this.sg;const g=this.sg;l<=0?f=g>0?g:1:(f=n*d/l,0!==g&&(f=f>1.5*g?1.5*g:f)),this.sg=f;let p=0,v=1/0,m=0,y=0;for(let e=0;e<u;e+=1){const n=a[e],s=n.id,u=t.degree(s);if(o&&u<=1)continue;if(this.isNodeFixed(n))continue;const h=c[s]||0;let l=r*f/(1+f*Math.sqrt(h)),d=Math.hypot(this.forces[s][0],this.forces[s][1]);d=d<1e-4?1e-4:d;const g=i/d;l>g&&(l=g);const w=l*this.forces[s][0],x=l*this.forces[s][1];n.x+=w,n.y+=x;const b=Math.hypot(w,x);b>0&&(y++,m+=b,b>p&&(p=b),b<v&&(v=b))}switch(s){case"min":return v;case"mean":return y>0?m/y:0;default:return p}}destroy(){this.stop(),this.forces={},this.preForces={},this.bodies={},this.sizes={},this.off()}};const Ay={nodeSize:10,nodeSpacing:0,width:300,height:300,kr:5,kg:1,mode:"normal",preventOverlap:!1,dissuadeHubs:!1,maxIteration:0,ks:.1,ksmax:10,tao:.1};class Oy extends dt{constructor(){super(...arguments),this.id="force-atlas2",this.simulation=null}getDefaultOptions(){return Ay}layout(t){return r(this,void 0,void 0,function*(){const e=this.parseOptions(t),{width:r,height:n,prune:o,center:i}=e,s=this.model.nodeCount();if(!s||1===s)return $(this.model,i);Z(this.model,r,n);const a=this.getSizes(e.nodeSize,e.nodeSpacing),u=this.setSimulation();u.data(this.model,a),u.initialize(e),u.restart();const c=()=>new Promise(t=>{u.on("end",t)});if(!o)return c();if(yield c(),o){const t=this.model.edges();for(let e=0;e<t.length;e+=1){const{source:r,target:n}=t[e],o=this.model.degree(r),i=this.model.degree(n),s=this.model.node(r),a=this.model.node(n);o<=1?(s.x=a.x,s.y=a.y):i<=1&&(a.x=s.x,a.y=s.y)}u.initialize(Object.assign(Object.assign({},e),{prune:!1,barnesHut:!1})),u.tick(100)}})}getSizes(t,e){const r={};return this.model.forEachNode(n=>{const o=pt(t,e);r[n.id]=o(n._original)}),r}setSimulation(){const t=this.simulation||new zy;return this.simulation||(this.simulation=t.on("tick",()=>{var t,e;return null===(e=(t=this.options).onTick)||void 0===e?void 0:e.call(t,this)})),this.simulation}parseOptions(t={}){const{barnesHut:e,prune:r,maxIteration:n,kr:o,kg:i,nodeSize:s,nodeSpacing:a}=t,u={},c=this.model.nodeCount();return void 0===e&&c>250&&(u.barnesHut=!0),void 0===r&&c>100&&(u.prune=!0),0!==n||r?0===n&&r&&(u.maxIteration=100,c<=200&&c>100?u.maxIteration=500:c>200&&(u.maxIteration=950)):(u.maxIteration=250,c<=200&&c>100?u.maxIteration=1e3:c>200&&(u.maxIteration=1200)),o||(u.kr=50,c>100&&c<=500?u.kr=20:c>500&&(u.kr=1)),i||(u.kg=20,c>100&&c<=500?u.kg=10:c>500&&(u.kg=1)),Object.assign(Object.assign(Object.assign(Object.assign({},t),u),ht(t)),{nodeSize:gt(s,Ay.nodeSize),nodeSpacing:ft(a,Ay.nodeSpacing)})}stop(){var t;null===(t=this.simulation)||void 0===t||t.stop()}tick(t=1){var e;null===(e=this.simulation)||void 0===e||e.tick(t)}restart(){var t;null===(t=this.simulation)||void 0===t||t.restart()}setFixedPosition(t,e){var r;null===(r=this.simulation)||void 0===r||r.setFixedPosition(t,e)}destroy(){var t;super.destroy(),this.stop(),null===(t=this.simulation)||void 0===t||t.destroy(),this.simulation=null}}class jy extends by{constructor(){super(...arguments),this.displacements=null,this.clusterMap=null}data(t){return this.model=t,this}initialize(t){super.initialize(t),this.recomputeConstants(),this.displacements=null,this.clusterMap=null,this.initDisplacements()}recomputeConstants(){const{model:t,options:e}=this,{width:r,height:n}=ht(e),o=r*n;this.k2=o/(t.nodeCount()+1),this.k=Math.sqrt(this.k2),this.maxDisplace=Math.sqrt(o)/10}runOneStep(){return this.syncFixedPositions(),this.initDisplacements(),this.calculateRepulsive(),this.calculateAttractive(),this.applyClusterGravity(),this.applyGlobalGravity(),this.updatePositions()}setFixedPosition(t,e){const r=this.model.node(t);if(!r)return;const n=["fx","fy","fz"];null!==e?e.forEach((t,e)=>{e<n.length&&("number"==typeof t||null===t)&&(r[n[e]]=t)}):n.forEach(t=>{delete r[t]})}isNodeFixed(t){return!o(t.fx)&&!o(t.fy)}syncFixedPositions(){const{model:t,options:e}=this,r=3===e.dimensions;t.forEachNode(t=>{this.isNodeFixed(t)&&(t.x=t.fx,t.y=t.fy,r&&void 0!==t.fz&&(t.z=t.fz))})}initDisplacements(){this.displacements||(this.displacements=new Map,this.model.forEachNode(t=>{this.displacements.set(t.id,{x:0,y:0,z:0})})),this.displacements.forEach(t=>{t.x=0,t.y=0,t.z=0})}calculateRepulsive(){const{model:t,options:e}=this,r=3===e.dimensions,n=t.nodes();for(let t=0;t<n.length;t++){const e=n[t],o=this.displacements.get(e.id),i=this.isNodeFixed(e);for(let s=t+1;s<n.length;s++){const t=n[s],a=this.displacements.get(t.id),u=this.isNodeFixed(t);let c=e.x-t.x,h=e.y-t.y,l=r?e.z-t.z:0,d=c*c+h*h+l*l;0===d&&(d=1,c=.01,h=.01,l=.01);const f=this.k2/d,g=c*f,p=h*f,v=l*f;i||u?i&&!u?(a.x-=2*g,a.y-=2*p,r&&(a.z-=2*v)):!i&&u&&(o.x+=2*g,o.y+=2*p,r&&(o.z+=2*v)):(o.x+=g,o.y+=p,a.x-=g,a.y-=p,r&&(o.z+=v,a.z-=v))}}}calculateAttractive(){const{model:t,options:e}=this,r=3===e.dimensions;t.forEachEdge(e=>{const{source:n,target:o}=e;if(!n||!o||n===o)return;const i=t.node(n),s=t.node(o),a=this.displacements.get(n),u=this.displacements.get(o),c=this.isNodeFixed(i),h=this.isNodeFixed(s),l=s.x-i.x,d=s.y-i.y,f=r?s.z-i.z:0,g=Math.sqrt(l*l+d*d+f*f);if(0===g)return;const p=g/this.k,v=l*p,m=d*p,y=f*p;c||h?c&&!h?(u.x-=2*v,u.y-=2*m,r&&(u.z-=2*y)):!c&&h&&(a.x+=2*v,a.y+=2*m,r&&(a.z+=2*y)):(a.x+=v,a.y+=m,u.x-=v,u.y-=m,r&&(a.z+=y,u.z-=y))})}applyClusterGravity(){const{model:t,options:e}=this,{nodeClusterBy:r,clusterGravity:n,dimensions:o,clustering:i}=e;if(!i)return;if(this.clusterMap||(this.clusterMap=new Map,t.forEachNode(e=>{const n=r(t.originalNode(e.id));this.clusterMap.has(n)||this.clusterMap.set(n,{name:n,cx:0,cy:0,cz:0,count:0})})),0===this.clusterMap.size)return;const s=3===o;this.clusterMap.forEach(t=>{t.cx=0,t.cy=0,t.cz=0,t.count=0}),t.forEachNode(e=>{const n=r(t.originalNode(e.id)),o=this.clusterMap.get(n);o&&(o.cx+=e.x,o.cy+=e.y,s&&(o.cz+=e.z),o.count++)}),this.clusterMap.forEach(t=>{t.count>0&&(t.cx/=t.count,t.cy/=t.count,t.cz/=t.count)}),t.forEachNode(e=>{const{id:o}=e;if(this.isNodeFixed(e))return;const i=r(t.originalNode(o)),a=this.clusterMap.get(i);if(!a)return;const u=this.displacements.get(o),c=e.x-a.cx,h=e.y-a.cy,l=s?e.z-a.cz:0,d=Math.sqrt(c*c+h*h+l*l);if(0===d)return;const f=this.k*n;u.x-=f*c/d,u.y-=f*h/d,s&&(u.z-=f*l/d)})}applyGlobalGravity(){const{model:t,options:e}=this,{gravity:r,center:n,dimensions:o}=e,i=3===o,s=.01*this.k*r;t.forEachNode(t=>{const{id:e}=t;if(this.isNodeFixed(t))return;const r=this.displacements.get(e);r.x-=s*(t.x-n[0]),r.y-=s*(t.y-n[1]),i&&(r.z-=s*(t.z-(n[2]||0)))})}updatePositions(){const{model:t,options:e}=this,{speed:r,dimensions:n,distanceThresholdMode:o="max"}=e,i=3===n;let s=0,a=1/0,u=0,c=0;if(t.forEachNode(t=>{const{id:e}=t;if(this.isNodeFixed(t))return;const n=this.displacements.get(e),o=Math.sqrt(n.x*n.x+n.y*n.y+(i?n.z*n.z:0));if(0===o)return;const h=Math.min(this.maxDisplace*(r/800),o),l=h/o;t.x+=n.x*l,t.y+=n.y*l,i&&(t.z=t.z+n.z*l),s=Math.max(s,h),a=Math.min(a,h),u+=h,c++}),0===c)return 0;switch(o){case"min":return a===1/0?0:a;case"mean":return u/c;default:return s}}destroy(){var t,e;this.stop(),null===(t=this.displacements)||void 0===t||t.clear(),null===(e=this.clusterMap)||void 0===e||e.clear()}}const Cy={maxIteration:1e3,gravity:10,speed:5,clustering:!1,clusterGravity:10,width:300,height:300,nodeClusterBy:"data.cluster",dimensions:2};class Iy extends dt{constructor(){super(...arguments),this.id="fruchterman",this.simulation=null}getDefaultOptions(){return Cy}parseOptions(t){const{clustering:e,nodeClusterBy:r}=this.options,n=e&&!!r,o="string"==typeof r?t=>tt(t,r):r;return Object.assign(t||(t={}),ht(t),{clustering:n,nodeClusterBy:o}),t}layout(){return r(this,void 0,void 0,function*(){const t=this.parseOptions(this.options),{dimensions:e,center:r,width:n,height:o}=t,i=this.model.nodeCount();if(!i||1===i)return void $(this.model,r,e);Z(this.model,n,o,e);const s=this.setSimulation();return s.data(this.model),s.initialize(t),s.restart(),new Promise(t=>{s.on("end",()=>t())})})}setSimulation(){const t=this.simulation||new jy;return this.simulation||(this.simulation=t.on("tick",()=>{var t,e;return null===(e=(t=this.options).onTick)||void 0===e?void 0:e.call(t,this)})),this.simulation}restart(){var t;null===(t=this.simulation)||void 0===t||t.restart()}stop(){var t;null===(t=this.simulation)||void 0===t||t.stop()}tick(t=1){var e;null===(e=this.simulation)||void 0===e||e.tick(t)}setFixedPosition(t,e){var r;null===(r=this.simulation)||void 0===r||r.setFixedPosition(t,e)}destroy(){var t;super.destroy(),this.stop(),null===(t=this.simulation)||void 0===t||t.destroy(),this.simulation=null}}class Ry extends lt{constructor(){super(...arguments),this.id="grid"}getDefaultOptions(){return{begin:[0,0],preventOverlap:!0,preventOverlapPadding:10,condense:!1,rows:void 0,cols:void 0,position:void 0,sortBy:"degree",nodeSize:30,width:300,height:300}}normalizeOptions(t={},e){var r;const{rows:n,cols:o}=t,{width:i,height:s,center:a}=ht(t);let u=t.rows,c=t.cols;const h=e.nodeCount();if(null!=n&&null!=o)u=n,c=o;else if(null!=n&&null==o)u=n,c=Math.ceil(h/u);else if(null==n&&null!=o)c=o,u=Math.ceil(h/c);else{const t=Math.sqrt(h*s/i);u=Math.round(t),c=Math.round(i/s*t)}u=Math.max(u,1),c=Math.max(c,1);const l={rows:u,cols:c};if(l.cols*l.rows>h){const t=Py(l),e=Ty(l);(t-1)*e>=h?Py(l,t-1):(e-1)*t>=h&&Ty(l,e-1)}else for(;l.cols*l.rows<h;){const t=Py(l),e=Ty(l);(e+1)*t>=h?Ty(l,e+1):Py(l,t+1)}const d=t.preventOverlap||void 0!==t.nodeSpacing,f=ft(t.nodeSpacing,10),g=gt(t.nodeSize,30);return Object.assign(Object.assign({},t),{begin:t.begin||[0,0],sortBy:t.sortBy||"degree",preventOverlapPadding:null!==(r=t.preventOverlapPadding)&&void 0!==r?r:0,preventOverlap:d,nodeSpacing:f,nodeSize:g,rcs:l,center:a,width:i,height:s})}layout(){return r(this,void 0,void 0,function*(){const{begin:t,rcs:e,sortBy:r,width:n,height:o,condense:i,preventOverlapPadding:s,preventOverlap:a,nodeSpacing:u,nodeSize:c,position:h}=this.normalizeOptions(this.options,this.model),l=this.model.nodeCount();if(!l||1===l)return void $(this.model,t);"degree"===r?ot(this.model):"id"===r?it(this.model):st(this.model,r);let d=i?0:n/e.cols,f=i?0:o/e.rows;a&&this.model.forEachNode(t=>{const e=t._original,[r,n]=ct(c(e)||30),o=void 0!==u?u(e):s,i=r+o,a=n+o;d=Math.max(d,i),f=Math.max(f,a)});const g={},p={row:0,col:0},v={};this.model.forEachNode(r=>{const n=r._original;let o;if(h&&(o=h(n)),o&&(void 0!==o.row||void 0!==o.col)){const t={row:o.row,col:o.col};if(void 0===t.col)for(t.col=0;Fy(g,t);)t.col++;else if(void 0===t.row)for(t.row=0;Fy(g,t);)t.row++;v[r.id]=t,Ly(g,t)}qy(r,t,d,f,v,e,p,g)})})}}const Py=(t,e)=>{let r;const n=t.rows||5,o=t.cols||5;if(null==e)r=Math.min(n,o);else{Math.min(n,o)===t.rows?t.rows=e:t.cols=e}return r},Ty=(t,e)=>{let r;const n=t.rows||5,o=t.cols||5;if(null==e)r=Math.max(n,o);else{Math.max(n,o)===t.rows?t.rows=e:t.cols=e}return r},Fy=(t,e)=>t[`c-${e.row}-${e.col}`]||!1,Ly=(t,e)=>t[`c-${e.row}-${e.col}`]=!0,Dy=(t,e)=>{const r=t.cols||5;e.col++,e.col>=r&&(e.col=0,e.row++)},qy=(t,e,r,n,o,i,s,a)=>{let u,c;const h=o[t.id];if(h)u=h.col*r+r/2+e[0],c=h.row*n+n/2+e[1];else{for(;Fy(a,s);)Dy(i,s);u=s.col*r+r/2+e[0],c=s.row*n+n/2+e[1],Ly(a,s),Dy(i,s)}t.x=u,t.y=c};var Vy={};const By=Object.prototype.toString;function $y(t){const e=By.call(t);return e.endsWith("Array]")&&!e.includes("Big")}var Gy=rs(Object.freeze({__proto__:null,isAnyArray:$y}));var Uy,Wy=Object.freeze({__proto__:null,default:function(t){var e,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!$y(t))throw new TypeError("input must be an array");if(0===t.length)throw new TypeError("input must not be empty");if(void 0!==r.output){if(!$y(r.output))throw new TypeError("output option must be an array if specified");e=r.output}else e=new Array(t.length);var n=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!$y(t))throw new TypeError("input must be an array");if(0===t.length)throw new TypeError("input must not be empty");var r=e.fromIndex,n=void 0===r?0:r,o=e.toIndex,i=void 0===o?t.length:o;if(n<0||n>=t.length||!Number.isInteger(n))throw new Error("fromIndex must be a positive integer smaller than length");if(i<=n||i>t.length||!Number.isInteger(i))throw new Error("toIndex must be an integer greater than fromIndex and at most equal to length");for(var s=t[n],a=n+1;a<i;a++)t[a]<s&&(s=t[a]);return s}(t),o=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!$y(t))throw new TypeError("input must be an array");if(0===t.length)throw new TypeError("input must not be empty");var r=e.fromIndex,n=void 0===r?0:r,o=e.toIndex,i=void 0===o?t.length:o;if(n<0||n>=t.length||!Number.isInteger(n))throw new Error("fromIndex must be a positive integer smaller than length");if(i<=n||i>t.length||!Number.isInteger(i))throw new Error("toIndex must be an integer greater than fromIndex and at most equal to length");for(var s=t[n],a=n+1;a<i;a++)t[a]>s&&(s=t[a]);return s}(t);if(n===o)throw new RangeError("minimum and maximum input values are equal. Cannot rescale a constant array");var i=r.min,s=void 0===i?r.autoMinMax?n:0:i,a=r.max,u=void 0===a?r.autoMinMax?o:1:a;if(s>=u)throw new RangeError("min option must be smaller than max option");for(var c=(u-s)/(o-n),h=0;h<t.length;h++)e[h]=(t[h]-n)*c+s;return e}}),Yy=rs(Wy);function Hy(){if(Uy)return Vy;Uy=1,Object.defineProperty(Vy,"__esModule",{value:!0});var t=Gy,e=Yy;const r=" ".repeat(2),n=" ".repeat(4);function o(t,e={}){const{maxRows:o=15,maxColumns:s=10,maxNumSize:a=8,padMinus:u="auto"}=e;return`${t.constructor.name} {\n${r}[\n${n}${function(t,e,r,o,s){const{rows:a,columns:u}=t,c=Math.min(a,e),h=Math.min(u,r),l=[];if("auto"===s){s=!1;t:for(let e=0;e<c;e++)for(let r=0;r<h;r++)if(t.get(e,r)<0){s=!0;break t}}for(let e=0;e<c;e++){let r=[];for(let n=0;n<h;n++)r.push(i(t.get(e,n),o,s));l.push(`${r.join(" ")}`)}h!==u&&(l[l.length-1]+=` ... ${u-r} more columns`);c!==a&&l.push(`... ${a-e} more rows`);return l.join(`\n${n}`)}(t,o,s,a,u)}\n${r}]\n${r}rows: ${t.rows}\n${r}columns: ${t.columns}\n}`}function i(t,e,r){return(t>=0&&r?` ${s(t,e-1)}`:s(t,e)).padEnd(e)}function s(t,e){let r=t.toString();if(r.length<=e)return r;let n=t.toFixed(e);if(n.length>e&&(n=t.toFixed(Math.max(0,e-(n.length-e)))),n.length<=e&&!n.startsWith("0.000")&&!n.startsWith("-0.000"))return n;let o=t.toExponential(e);return o.length>e&&(o=t.toExponential(Math.max(0,e-(o.length-e)))),o.slice(0)}function a(t,e,r){let n=r?t.rows:t.rows-1;if(e<0||e>n)throw new RangeError("Row index out of range")}function u(t,e,r){let n=r?t.columns:t.columns-1;if(e<0||e>n)throw new RangeError("Column index out of range")}function c(t,e){if(e.to1DArray&&(e=e.to1DArray()),e.length!==t.columns)throw new RangeError("vector size must be the same as the number of columns");return e}function h(t,e){if(e.to1DArray&&(e=e.to1DArray()),e.length!==t.rows)throw new RangeError("vector size must be the same as the number of rows");return e}function l(e,r){if(!t.isAnyArray(r))throw new TypeError("row indices must be an array");for(let t=0;t<r.length;t++)if(r[t]<0||r[t]>=e.rows)throw new RangeError("row indices are out of range")}function d(e,r){if(!t.isAnyArray(r))throw new TypeError("column indices must be an array");for(let t=0;t<r.length;t++)if(r[t]<0||r[t]>=e.columns)throw new RangeError("column indices are out of range")}function f(t,e,r,n,o){if(5!==arguments.length)throw new RangeError("expected 4 arguments");if(p("startRow",e),p("endRow",r),p("startColumn",n),p("endColumn",o),e>r||n>o||e<0||e>=t.rows||r<0||r>=t.rows||n<0||n>=t.columns||o<0||o>=t.columns)throw new RangeError("Submatrix indices are out of range")}function g(t,e=0){let r=[];for(let n=0;n<t;n++)r.push(e);return r}function p(t,e){if("number"!=typeof e)throw new TypeError(`${t} must be a number`)}function v(t){if(t.isEmpty())throw new Error("Empty matrix has no elements to index")}class m{static from1DArray(t,e,r){if(t*e!==r.length)throw new RangeError("data length does not match given dimensions");let n=new x(t,e);for(let o=0;o<t;o++)for(let t=0;t<e;t++)n.set(o,t,r[o*e+t]);return n}static rowVector(t){let e=new x(1,t.length);for(let r=0;r<t.length;r++)e.set(0,r,t[r]);return e}static columnVector(t){let e=new x(t.length,1);for(let r=0;r<t.length;r++)e.set(r,0,t[r]);return e}static zeros(t,e){return new x(t,e)}static ones(t,e){return new x(t,e).fill(1)}static rand(t,e,r={}){if("object"!=typeof r)throw new TypeError("options must be an object");const{random:n=Math.random}=r;let o=new x(t,e);for(let r=0;r<t;r++)for(let t=0;t<e;t++)o.set(r,t,n());return o}static randInt(t,e,r={}){if("object"!=typeof r)throw new TypeError("options must be an object");const{min:n=0,max:o=1e3,random:i=Math.random}=r;if(!Number.isInteger(n))throw new TypeError("min must be an integer");if(!Number.isInteger(o))throw new TypeError("max must be an integer");if(n>=o)throw new RangeError("min must be smaller than max");let s=o-n,a=new x(t,e);for(let r=0;r<t;r++)for(let t=0;t<e;t++){let e=n+Math.round(i()*s);a.set(r,t,e)}return a}static eye(t,e,r){void 0===e&&(e=t),void 0===r&&(r=1);let n=Math.min(t,e),o=this.zeros(t,e);for(let t=0;t<n;t++)o.set(t,t,r);return o}static diag(t,e,r){let n=t.length;void 0===e&&(e=n),void 0===r&&(r=e);let o=Math.min(n,e,r),i=this.zeros(e,r);for(let e=0;e<o;e++)i.set(e,e,t[e]);return i}static min(t,e){t=this.checkMatrix(t),e=this.checkMatrix(e);let r=t.rows,n=t.columns,o=new x(r,n);for(let i=0;i<r;i++)for(let r=0;r<n;r++)o.set(i,r,Math.min(t.get(i,r),e.get(i,r)));return o}static max(t,e){t=this.checkMatrix(t),e=this.checkMatrix(e);let r=t.rows,n=t.columns,o=new this(r,n);for(let i=0;i<r;i++)for(let r=0;r<n;r++)o.set(i,r,Math.max(t.get(i,r),e.get(i,r)));return o}static checkMatrix(t){return m.isMatrix(t)?t:new x(t)}static isMatrix(t){return null!=t&&"Matrix"===t.klass}get size(){return this.rows*this.columns}apply(t){if("function"!=typeof t)throw new TypeError("callback must be a function");for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)t.call(this,e,r);return this}to1DArray(){let t=[];for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)t.push(this.get(e,r));return t}to2DArray(){let t=[];for(let e=0;e<this.rows;e++){t.push([]);for(let r=0;r<this.columns;r++)t[e].push(this.get(e,r))}return t}toJSON(){return this.to2DArray()}isRowVector(){return 1===this.rows}isColumnVector(){return 1===this.columns}isVector(){return 1===this.rows||1===this.columns}isSquare(){return this.rows===this.columns}isEmpty(){return 0===this.rows||0===this.columns}isSymmetric(){if(this.isSquare()){for(let t=0;t<this.rows;t++)for(let e=0;e<=t;e++)if(this.get(t,e)!==this.get(e,t))return!1;return!0}return!1}isDistance(){if(!this.isSymmetric())return!1;for(let t=0;t<this.rows;t++)if(0!==this.get(t,t))return!1;return!0}isEchelonForm(){let t=0,e=0,r=-1,n=!0,o=!1;for(;t<this.rows&&n;){for(e=0,o=!1;e<this.columns&&!1===o;)0===this.get(t,e)?e++:1===this.get(t,e)&&e>r?(o=!0,r=e):(n=!1,o=!0);t++}return n}isReducedEchelonForm(){let t=0,e=0,r=-1,n=!0,o=!1;for(;t<this.rows&&n;){for(e=0,o=!1;e<this.columns&&!1===o;)0===this.get(t,e)?e++:1===this.get(t,e)&&e>r?(o=!0,r=e):(n=!1,o=!0);for(let r=e+1;r<this.rows;r++)0!==this.get(t,r)&&(n=!1);t++}return n}echelonForm(){let t=this.clone(),e=0,r=0;for(;e<t.rows&&r<t.columns;){let n=e;for(let o=e;o<t.rows;o++)t.get(o,r)>t.get(n,r)&&(n=o);if(0===t.get(n,r))r++;else{t.swapRows(e,n);let o=t.get(e,r);for(let n=r;n<t.columns;n++)t.set(e,n,t.get(e,n)/o);for(let n=e+1;n<t.rows;n++){let o=t.get(n,r)/t.get(e,r);t.set(n,r,0);for(let i=r+1;i<t.columns;i++)t.set(n,i,t.get(n,i)-t.get(e,i)*o)}e++,r++}}return t}reducedEchelonForm(){let t=this.echelonForm(),e=t.columns,r=t.rows,n=r-1;for(;n>=0;)if(0===t.maxRow(n))n--;else{let o=0,i=!1;for(;o<r&&!1===i;)1===t.get(n,o)?i=!0:o++;for(let r=0;r<n;r++){let i=t.get(r,o);for(let s=o;s<e;s++){let e=t.get(r,s)-i*t.get(n,s);t.set(r,s,e)}}n--}return t}set(){throw new Error("set method is unimplemented")}get(){throw new Error("get method is unimplemented")}repeat(t={}){if("object"!=typeof t)throw new TypeError("options must be an object");const{rows:e=1,columns:r=1}=t;if(!Number.isInteger(e)||e<=0)throw new TypeError("rows must be a positive integer");if(!Number.isInteger(r)||r<=0)throw new TypeError("columns must be a positive integer");let n=new x(this.rows*e,this.columns*r);for(let t=0;t<e;t++)for(let e=0;e<r;e++)n.setSubMatrix(this,this.rows*t,this.columns*e);return n}fill(t){for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.set(e,r,t);return this}neg(){return this.mulS(-1)}getRow(t){a(this,t);let e=[];for(let r=0;r<this.columns;r++)e.push(this.get(t,r));return e}getRowVector(t){return x.rowVector(this.getRow(t))}setRow(t,e){a(this,t),e=c(this,e);for(let r=0;r<this.columns;r++)this.set(t,r,e[r]);return this}swapRows(t,e){a(this,t),a(this,e);for(let r=0;r<this.columns;r++){let n=this.get(t,r);this.set(t,r,this.get(e,r)),this.set(e,r,n)}return this}getColumn(t){u(this,t);let e=[];for(let r=0;r<this.rows;r++)e.push(this.get(r,t));return e}getColumnVector(t){return x.columnVector(this.getColumn(t))}setColumn(t,e){u(this,t),e=h(this,e);for(let r=0;r<this.rows;r++)this.set(r,t,e[r]);return this}swapColumns(t,e){u(this,t),u(this,e);for(let r=0;r<this.rows;r++){let n=this.get(r,t);this.set(r,t,this.get(r,e)),this.set(r,e,n)}return this}addRowVector(t){t=c(this,t);for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.set(e,r,this.get(e,r)+t[r]);return this}subRowVector(t){t=c(this,t);for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.set(e,r,this.get(e,r)-t[r]);return this}mulRowVector(t){t=c(this,t);for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.set(e,r,this.get(e,r)*t[r]);return this}divRowVector(t){t=c(this,t);for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.set(e,r,this.get(e,r)/t[r]);return this}addColumnVector(t){t=h(this,t);for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.set(e,r,this.get(e,r)+t[e]);return this}subColumnVector(t){t=h(this,t);for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.set(e,r,this.get(e,r)-t[e]);return this}mulColumnVector(t){t=h(this,t);for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.set(e,r,this.get(e,r)*t[e]);return this}divColumnVector(t){t=h(this,t);for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.set(e,r,this.get(e,r)/t[e]);return this}mulRow(t,e){a(this,t);for(let r=0;r<this.columns;r++)this.set(t,r,this.get(t,r)*e);return this}mulColumn(t,e){u(this,t);for(let r=0;r<this.rows;r++)this.set(r,t,this.get(r,t)*e);return this}max(t){if(this.isEmpty())return NaN;switch(t){case"row":{const t=new Array(this.rows).fill(Number.NEGATIVE_INFINITY);for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.get(e,r)>t[e]&&(t[e]=this.get(e,r));return t}case"column":{const t=new Array(this.columns).fill(Number.NEGATIVE_INFINITY);for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.get(e,r)>t[r]&&(t[r]=this.get(e,r));return t}case void 0:{let t=this.get(0,0);for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.get(e,r)>t&&(t=this.get(e,r));return t}default:throw new Error(`invalid option: ${t}`)}}maxIndex(){v(this);let t=this.get(0,0),e=[0,0];for(let r=0;r<this.rows;r++)for(let n=0;n<this.columns;n++)this.get(r,n)>t&&(t=this.get(r,n),e[0]=r,e[1]=n);return e}min(t){if(this.isEmpty())return NaN;switch(t){case"row":{const t=new Array(this.rows).fill(Number.POSITIVE_INFINITY);for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.get(e,r)<t[e]&&(t[e]=this.get(e,r));return t}case"column":{const t=new Array(this.columns).fill(Number.POSITIVE_INFINITY);for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.get(e,r)<t[r]&&(t[r]=this.get(e,r));return t}case void 0:{let t=this.get(0,0);for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.get(e,r)<t&&(t=this.get(e,r));return t}default:throw new Error(`invalid option: ${t}`)}}minIndex(){v(this);let t=this.get(0,0),e=[0,0];for(let r=0;r<this.rows;r++)for(let n=0;n<this.columns;n++)this.get(r,n)<t&&(t=this.get(r,n),e[0]=r,e[1]=n);return e}maxRow(t){if(a(this,t),this.isEmpty())return NaN;let e=this.get(t,0);for(let r=1;r<this.columns;r++)this.get(t,r)>e&&(e=this.get(t,r));return e}maxRowIndex(t){a(this,t),v(this);let e=this.get(t,0),r=[t,0];for(let n=1;n<this.columns;n++)this.get(t,n)>e&&(e=this.get(t,n),r[1]=n);return r}minRow(t){if(a(this,t),this.isEmpty())return NaN;let e=this.get(t,0);for(let r=1;r<this.columns;r++)this.get(t,r)<e&&(e=this.get(t,r));return e}minRowIndex(t){a(this,t),v(this);let e=this.get(t,0),r=[t,0];for(let n=1;n<this.columns;n++)this.get(t,n)<e&&(e=this.get(t,n),r[1]=n);return r}maxColumn(t){if(u(this,t),this.isEmpty())return NaN;let e=this.get(0,t);for(let r=1;r<this.rows;r++)this.get(r,t)>e&&(e=this.get(r,t));return e}maxColumnIndex(t){u(this,t),v(this);let e=this.get(0,t),r=[0,t];for(let n=1;n<this.rows;n++)this.get(n,t)>e&&(e=this.get(n,t),r[0]=n);return r}minColumn(t){if(u(this,t),this.isEmpty())return NaN;let e=this.get(0,t);for(let r=1;r<this.rows;r++)this.get(r,t)<e&&(e=this.get(r,t));return e}minColumnIndex(t){u(this,t),v(this);let e=this.get(0,t),r=[0,t];for(let n=1;n<this.rows;n++)this.get(n,t)<e&&(e=this.get(n,t),r[0]=n);return r}diag(){let t=Math.min(this.rows,this.columns),e=[];for(let r=0;r<t;r++)e.push(this.get(r,r));return e}norm(t="frobenius"){switch(t){case"max":return this.max();case"frobenius":return Math.sqrt(this.dot(this));default:throw new RangeError(`unknown norm type: ${t}`)}}cumulativeSum(){let t=0;for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)t+=this.get(e,r),this.set(e,r,t);return this}dot(t){m.isMatrix(t)&&(t=t.to1DArray());let e=this.to1DArray();if(e.length!==t.length)throw new RangeError("vectors do not have the same size");let r=0;for(let n=0;n<e.length;n++)r+=e[n]*t[n];return r}mmul(t){t=x.checkMatrix(t);let e=this.rows,r=this.columns,n=t.columns,o=new x(e,n),i=new Float64Array(r);for(let s=0;s<n;s++){for(let e=0;e<r;e++)i[e]=t.get(e,s);for(let t=0;t<e;t++){let e=0;for(let n=0;n<r;n++)e+=this.get(t,n)*i[n];o.set(t,s,e)}}return o}mpow(t){if(!this.isSquare())throw new RangeError("Matrix must be square");if(!Number.isInteger(t)||t<0)throw new RangeError("Exponent must be a non-negative integer");let e=x.eye(this.rows),r=this;for(let n=t;n>=1;n/=2)1&n&&(e=e.mmul(r)),r=r.mmul(r);return e}strassen2x2(t){t=x.checkMatrix(t);let e=new x(2,2);const r=this.get(0,0),n=t.get(0,0),o=this.get(0,1),i=t.get(0,1),s=this.get(1,0),a=t.get(1,0),u=this.get(1,1),c=t.get(1,1),h=(r+u)*(n+c),l=(s+u)*n,d=r*(i-c),f=u*(a-n),g=(r+o)*c,p=h+f-g+(o-u)*(a+c),v=d+g,m=l+f,y=h-l+d+(s-r)*(n+i);return e.set(0,0,p),e.set(0,1,v),e.set(1,0,m),e.set(1,1,y),e}strassen3x3(t){t=x.checkMatrix(t);let e=new x(3,3);const r=this.get(0,0),n=this.get(0,1),o=this.get(0,2),i=this.get(1,0),s=this.get(1,1),a=this.get(1,2),u=this.get(2,0),c=this.get(2,1),h=this.get(2,2),l=t.get(0,0),d=t.get(0,1),f=t.get(0,2),g=t.get(1,0),p=t.get(1,1),v=t.get(1,2),m=t.get(2,0),y=t.get(2,1),w=t.get(2,2),b=(r-i)*(-d+p),E=(-r+i+s)*(l-d+p),M=(i+s)*(-l+d),N=r*l,_=(-r+u+c)*(l-f+v),k=(-r+u)*(f-v),S=(u+c)*(-l+f),z=(-o+c+h)*(p+m-y),A=(o-h)*(p-y),O=o*m,j=(c+h)*(-m+y),C=(-o+s+a)*(v+m-w),I=(o-a)*(v-w),R=(s+a)*(-m+w),P=N+O+n*g,T=(r+n+o-i-s-c-h)*p+E+M+N+z+O+j,F=N+_+S+(r+n+o-s-a-u-c)*v+O+C+R,L=b+s*(-l+d+g-p-v-m+w)+E+N+O+C+I,D=b+E+M+N+a*y,q=O+C+I+R+i*f,V=N+_+k+c*(-l+f+g-p-v-m+y)+z+A+O,B=z+A+O+j+u*d,$=N+_+k+S+h*w;return e.set(0,0,P),e.set(0,1,T),e.set(0,2,F),e.set(1,0,L),e.set(1,1,D),e.set(1,2,q),e.set(2,0,V),e.set(2,1,B),e.set(2,2,$),e}mmulStrassen(t){t=x.checkMatrix(t);let e=this.clone(),r=e.rows,n=e.columns,o=t.rows,i=t.columns;function s(t,e,r){let n=t.rows,o=t.columns;if(n===e&&o===r)return t;{let n=m.zeros(e,r);return n=n.setSubMatrix(t,0,0),n}}n!==o&&console.warn(`Multiplying ${r} x ${n} and ${o} x ${i} matrix: dimensions do not match.`);let a=Math.max(r,o),u=Math.max(n,i);return e=s(e,a,u),function t(e,r,n,o){if(n<=512||o<=512)return e.mmul(r);n%2==1&&o%2==1?(e=s(e,n+1,o+1),r=s(r,n+1,o+1)):n%2==1?(e=s(e,n+1,o),r=s(r,n+1,o)):o%2==1&&(e=s(e,n,o+1),r=s(r,n,o+1));let i=parseInt(e.rows/2,10),a=parseInt(e.columns/2,10),u=e.subMatrix(0,i-1,0,a-1),c=r.subMatrix(0,i-1,0,a-1),h=e.subMatrix(0,i-1,a,e.columns-1),l=r.subMatrix(0,i-1,a,r.columns-1),d=e.subMatrix(i,e.rows-1,0,a-1),f=r.subMatrix(i,r.rows-1,0,a-1),g=e.subMatrix(i,e.rows-1,a,e.columns-1),p=r.subMatrix(i,r.rows-1,a,r.columns-1),v=t(m.add(u,g),m.add(c,p),i,a),y=t(m.add(d,g),c,i,a),w=t(u,m.sub(l,p),i,a),x=t(g,m.sub(f,c),i,a),b=t(m.add(u,h),p,i,a),E=t(m.sub(d,u),m.add(c,l),i,a),M=t(m.sub(h,g),m.add(f,p),i,a),N=m.add(v,x);N.sub(b),N.add(M);let _=m.add(w,b),k=m.add(y,x),S=m.sub(v,y);S.add(w),S.add(E);let z=m.zeros(2*N.rows,2*N.columns);return z=z.setSubMatrix(N,0,0),z=z.setSubMatrix(_,N.rows,0),z=z.setSubMatrix(k,0,N.columns),z=z.setSubMatrix(S,N.rows,N.columns),z.subMatrix(0,n-1,0,o-1)}(e,t=s(t,a,u),a,u)}scaleRows(t={}){if("object"!=typeof t)throw new TypeError("options must be an object");const{min:r=0,max:n=1}=t;if(!Number.isFinite(r))throw new TypeError("min must be a number");if(!Number.isFinite(n))throw new TypeError("max must be a number");if(r>=n)throw new RangeError("min must be smaller than max");let o=new x(this.rows,this.columns);for(let t=0;t<this.rows;t++){const i=this.getRow(t);i.length>0&&e(i,{min:r,max:n,output:i}),o.setRow(t,i)}return o}scaleColumns(t={}){if("object"!=typeof t)throw new TypeError("options must be an object");const{min:r=0,max:n=1}=t;if(!Number.isFinite(r))throw new TypeError("min must be a number");if(!Number.isFinite(n))throw new TypeError("max must be a number");if(r>=n)throw new RangeError("min must be smaller than max");let o=new x(this.rows,this.columns);for(let t=0;t<this.columns;t++){const i=this.getColumn(t);i.length&&e(i,{min:r,max:n,output:i}),o.setColumn(t,i)}return o}flipRows(){const t=Math.ceil(this.columns/2);for(let e=0;e<this.rows;e++)for(let r=0;r<t;r++){let t=this.get(e,r),n=this.get(e,this.columns-1-r);this.set(e,r,n),this.set(e,this.columns-1-r,t)}return this}flipColumns(){const t=Math.ceil(this.rows/2);for(let e=0;e<this.columns;e++)for(let r=0;r<t;r++){let t=this.get(r,e),n=this.get(this.rows-1-r,e);this.set(r,e,n),this.set(this.rows-1-r,e,t)}return this}kroneckerProduct(t){t=x.checkMatrix(t);let e=this.rows,r=this.columns,n=t.rows,o=t.columns,i=new x(e*n,r*o);for(let s=0;s<e;s++)for(let e=0;e<r;e++)for(let r=0;r<n;r++)for(let a=0;a<o;a++)i.set(n*s+r,o*e+a,this.get(s,e)*t.get(r,a));return i}kroneckerSum(t){if(t=x.checkMatrix(t),!this.isSquare()||!t.isSquare())throw new Error("Kronecker Sum needs two Square Matrices");let e=this.rows,r=t.rows,n=this.kroneckerProduct(x.eye(r,r)),o=x.eye(e,e).kroneckerProduct(t);return n.add(o)}transpose(){let t=new x(this.columns,this.rows);for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)t.set(r,e,this.get(e,r));return t}sortRows(t=y){for(let e=0;e<this.rows;e++)this.setRow(e,this.getRow(e).sort(t));return this}sortColumns(t=y){for(let e=0;e<this.columns;e++)this.setColumn(e,this.getColumn(e).sort(t));return this}subMatrix(t,e,r,n){f(this,t,e,r,n);let o=new x(e-t+1,n-r+1);for(let i=t;i<=e;i++)for(let e=r;e<=n;e++)o.set(i-t,e-r,this.get(i,e));return o}subMatrixRow(t,e,r){if(void 0===e&&(e=0),void 0===r&&(r=this.columns-1),e>r||e<0||e>=this.columns||r<0||r>=this.columns)throw new RangeError("Argument out of range");let n=new x(t.length,r-e+1);for(let o=0;o<t.length;o++)for(let i=e;i<=r;i++){if(t[o]<0||t[o]>=this.rows)throw new RangeError(`Row index out of range: ${t[o]}`);n.set(o,i-e,this.get(t[o],i))}return n}subMatrixColumn(t,e,r){if(void 0===e&&(e=0),void 0===r&&(r=this.rows-1),e>r||e<0||e>=this.rows||r<0||r>=this.rows)throw new RangeError("Argument out of range");let n=new x(r-e+1,t.length);for(let o=0;o<t.length;o++)for(let i=e;i<=r;i++){if(t[o]<0||t[o]>=this.columns)throw new RangeError(`Column index out of range: ${t[o]}`);n.set(i-e,o,this.get(i,t[o]))}return n}setSubMatrix(t,e,r){if((t=x.checkMatrix(t)).isEmpty())return this;f(this,e,e+t.rows-1,r,r+t.columns-1);for(let n=0;n<t.rows;n++)for(let o=0;o<t.columns;o++)this.set(e+n,r+o,t.get(n,o));return this}selection(t,e){l(this,t),d(this,e);let r=new x(t.length,e.length);for(let n=0;n<t.length;n++){let o=t[n];for(let t=0;t<e.length;t++){let i=e[t];r.set(n,t,this.get(o,i))}}return r}trace(){let t=Math.min(this.rows,this.columns),e=0;for(let r=0;r<t;r++)e+=this.get(r,r);return e}clone(){return this.constructor.copy(this,new x(this.rows,this.columns))}static copy(t,e){for(const[r,n,o]of t.entries())e.set(r,n,o);return e}sum(t){switch(t){case"row":return function(t){let e=g(t.rows);for(let r=0;r<t.rows;++r)for(let n=0;n<t.columns;++n)e[r]+=t.get(r,n);return e}(this);case"column":return function(t){let e=g(t.columns);for(let r=0;r<t.rows;++r)for(let n=0;n<t.columns;++n)e[n]+=t.get(r,n);return e}(this);case void 0:return function(t){let e=0;for(let r=0;r<t.rows;r++)for(let n=0;n<t.columns;n++)e+=t.get(r,n);return e}(this);default:throw new Error(`invalid option: ${t}`)}}product(t){switch(t){case"row":return function(t){let e=g(t.rows,1);for(let r=0;r<t.rows;++r)for(let n=0;n<t.columns;++n)e[r]*=t.get(r,n);return e}(this);case"column":return function(t){let e=g(t.columns,1);for(let r=0;r<t.rows;++r)for(let n=0;n<t.columns;++n)e[n]*=t.get(r,n);return e}(this);case void 0:return function(t){let e=1;for(let r=0;r<t.rows;r++)for(let n=0;n<t.columns;n++)e*=t.get(r,n);return e}(this);default:throw new Error(`invalid option: ${t}`)}}mean(t){const e=this.sum(t);switch(t){case"row":for(let t=0;t<this.rows;t++)e[t]/=this.columns;return e;case"column":for(let t=0;t<this.columns;t++)e[t]/=this.rows;return e;case void 0:return e/this.size;default:throw new Error(`invalid option: ${t}`)}}variance(e,r={}){if("object"==typeof e&&(r=e,e=void 0),"object"!=typeof r)throw new TypeError("options must be an object");const{unbiased:n=!0,mean:o=this.mean(e)}=r;if("boolean"!=typeof n)throw new TypeError("unbiased must be a boolean");switch(e){case"row":if(!t.isAnyArray(o))throw new TypeError("mean must be an array");return function(t,e,r){const n=t.rows,o=t.columns,i=[];for(let s=0;s<n;s++){let n=0,a=0,u=0;for(let e=0;e<o;e++)u=t.get(s,e)-r[s],n+=u,a+=u*u;e?i.push((a-n*n/o)/(o-1)):i.push((a-n*n/o)/o)}return i}(this,n,o);case"column":if(!t.isAnyArray(o))throw new TypeError("mean must be an array");return function(t,e,r){const n=t.rows,o=t.columns,i=[];for(let s=0;s<o;s++){let o=0,a=0,u=0;for(let e=0;e<n;e++)u=t.get(e,s)-r[s],o+=u,a+=u*u;e?i.push((a-o*o/n)/(n-1)):i.push((a-o*o/n)/n)}return i}(this,n,o);case void 0:if("number"!=typeof o)throw new TypeError("mean must be a number");return function(t,e,r){const n=t.rows,o=t.columns,i=n*o;let s=0,a=0,u=0;for(let e=0;e<n;e++)for(let n=0;n<o;n++)u=t.get(e,n)-r,s+=u,a+=u*u;return e?(a-s*s/i)/(i-1):(a-s*s/i)/i}(this,n,o);default:throw new Error(`invalid option: ${e}`)}}standardDeviation(t,e){"object"==typeof t&&(e=t,t=void 0);const r=this.variance(t,e);if(void 0===t)return Math.sqrt(r);for(let t=0;t<r.length;t++)r[t]=Math.sqrt(r[t]);return r}center(e,r={}){if("object"==typeof e&&(r=e,e=void 0),"object"!=typeof r)throw new TypeError("options must be an object");const{center:n=this.mean(e)}=r;switch(e){case"row":if(!t.isAnyArray(n))throw new TypeError("center must be an array");return function(t,e){for(let r=0;r<t.rows;r++)for(let n=0;n<t.columns;n++)t.set(r,n,t.get(r,n)-e[r])}(this,n),this;case"column":if(!t.isAnyArray(n))throw new TypeError("center must be an array");return function(t,e){for(let r=0;r<t.rows;r++)for(let n=0;n<t.columns;n++)t.set(r,n,t.get(r,n)-e[n])}(this,n),this;case void 0:if("number"!=typeof n)throw new TypeError("center must be a number");return function(t,e){for(let r=0;r<t.rows;r++)for(let n=0;n<t.columns;n++)t.set(r,n,t.get(r,n)-e)}(this,n),this;default:throw new Error(`invalid option: ${e}`)}}scale(e,r={}){if("object"==typeof e&&(r=e,e=void 0),"object"!=typeof r)throw new TypeError("options must be an object");let n=r.scale;switch(e){case"row":if(void 0===n)n=function(t){const e=[];for(let r=0;r<t.rows;r++){let n=0;for(let e=0;e<t.columns;e++)n+=t.get(r,e)**2/(t.columns-1);e.push(Math.sqrt(n))}return e}(this);else if(!t.isAnyArray(n))throw new TypeError("scale must be an array");return function(t,e){for(let r=0;r<t.rows;r++)for(let n=0;n<t.columns;n++)t.set(r,n,t.get(r,n)/e[r])}(this,n),this;case"column":if(void 0===n)n=function(t){const e=[];for(let r=0;r<t.columns;r++){let n=0;for(let e=0;e<t.rows;e++)n+=t.get(e,r)**2/(t.rows-1);e.push(Math.sqrt(n))}return e}(this);else if(!t.isAnyArray(n))throw new TypeError("scale must be an array");return function(t,e){for(let r=0;r<t.rows;r++)for(let n=0;n<t.columns;n++)t.set(r,n,t.get(r,n)/e[n])}(this,n),this;case void 0:if(void 0===n)n=function(t){const e=t.size-1;let r=0;for(let n=0;n<t.columns;n++)for(let o=0;o<t.rows;o++)r+=t.get(o,n)**2/e;return Math.sqrt(r)}(this);else if("number"!=typeof n)throw new TypeError("scale must be a number");return function(t,e){for(let r=0;r<t.rows;r++)for(let n=0;n<t.columns;n++)t.set(r,n,t.get(r,n)/e)}(this,n),this;default:throw new Error(`invalid option: ${e}`)}}toString(t){return o(this,t)}[Symbol.iterator](){return this.entries()}*entries(){for(let t=0;t<this.rows;t++)for(let e=0;e<this.columns;e++)yield[t,e,this.get(t,e)]}*values(){for(let t=0;t<this.rows;t++)for(let e=0;e<this.columns;e++)yield this.get(t,e)}}function y(t,e){return t-e}function w(t){return t.every(t=>"number"==typeof t)}m.prototype.klass="Matrix","undefined"!=typeof Symbol&&(m.prototype[Symbol.for("nodejs.util.inspect.custom")]=function(){return o(this)}),m.random=m.rand,m.randomInt=m.randInt,m.diagonal=m.diag,m.prototype.diagonal=m.prototype.diag,m.identity=m.eye,m.prototype.negate=m.prototype.neg,m.prototype.tensorProduct=m.prototype.kroneckerProduct;class x extends m{data;#t(t,e){if(this.data=[],!(Number.isInteger(e)&&e>=0))throw new TypeError("nColumns must be a positive integer");for(let r=0;r<t;r++)this.data.push(new Float64Array(e));this.rows=t,this.columns=e}constructor(e,r){if(super(),x.isMatrix(e))this.#t(e.rows,e.columns),x.copy(e,this);else if(Number.isInteger(e)&&e>=0)this.#t(e,r);else{if(!t.isAnyArray(e))throw new TypeError("First argument must be a positive number or an array");{const t=e;if("number"!=typeof(r=(e=t.length)?t[0].length:0))throw new TypeError("Data must be a 2D array with at least one element");this.data=[];for(let n=0;n<e;n++){if(t[n].length!==r)throw new RangeError("Inconsistent array dimensions");if(!w(t[n]))throw new TypeError("Input data contains non-numeric values");this.data.push(Float64Array.from(t[n]))}this.rows=e,this.columns=r}}}set(t,e,r){return this.data[t][e]=r,this}get(t,e){return this.data[t][e]}removeRow(t){return a(this,t),this.data.splice(t,1),this.rows-=1,this}addRow(t,e){return void 0===e&&(e=t,t=this.rows),a(this,t,!0),e=Float64Array.from(c(this,e)),this.data.splice(t,0,e),this.rows+=1,this}removeColumn(t){u(this,t);for(let e=0;e<this.rows;e++){const r=new Float64Array(this.columns-1);for(let n=0;n<t;n++)r[n]=this.data[e][n];for(let n=t+1;n<this.columns;n++)r[n-1]=this.data[e][n];this.data[e]=r}return this.columns-=1,this}addColumn(t,e){void 0===e&&(e=t,t=this.columns),u(this,t,!0),e=h(this,e);for(let r=0;r<this.rows;r++){const n=new Float64Array(this.columns+1);let o=0;for(;o<t;o++)n[o]=this.data[r][o];for(n[o++]=e[r];o<this.columns+1;o++)n[o]=this.data[r][o-1];this.data[r]=n}return this.columns+=1,this}}!function(t,e){t.prototype.add=function(t){return"number"==typeof t?this.addS(t):this.addM(t)},t.prototype.addS=function(t){for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.set(e,r,this.get(e,r)+t);return this},t.prototype.addM=function(t){if(t=e.checkMatrix(t),this.rows!==t.rows||this.columns!==t.columns)throw new RangeError("Matrices dimensions must be equal");for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.set(e,r,this.get(e,r)+t.get(e,r));return this},t.add=function(t,r){return new e(t).add(r)},t.prototype.sub=function(t){return"number"==typeof t?this.subS(t):this.subM(t)},t.prototype.subS=function(t){for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.set(e,r,this.get(e,r)-t);return this},t.prototype.subM=function(t){if(t=e.checkMatrix(t),this.rows!==t.rows||this.columns!==t.columns)throw new RangeError("Matrices dimensions must be equal");for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.set(e,r,this.get(e,r)-t.get(e,r));return this},t.sub=function(t,r){return new e(t).sub(r)},t.prototype.subtract=t.prototype.sub,t.prototype.subtractS=t.prototype.subS,t.prototype.subtractM=t.prototype.subM,t.subtract=t.sub,t.prototype.mul=function(t){return"number"==typeof t?this.mulS(t):this.mulM(t)},t.prototype.mulS=function(t){for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.set(e,r,this.get(e,r)*t);return this},t.prototype.mulM=function(t){if(t=e.checkMatrix(t),this.rows!==t.rows||this.columns!==t.columns)throw new RangeError("Matrices dimensions must be equal");for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.set(e,r,this.get(e,r)*t.get(e,r));return this},t.mul=function(t,r){return new e(t).mul(r)},t.prototype.multiply=t.prototype.mul,t.prototype.multiplyS=t.prototype.mulS,t.prototype.multiplyM=t.prototype.mulM,t.multiply=t.mul,t.prototype.div=function(t){return"number"==typeof t?this.divS(t):this.divM(t)},t.prototype.divS=function(t){for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.set(e,r,this.get(e,r)/t);return this},t.prototype.divM=function(t){if(t=e.checkMatrix(t),this.rows!==t.rows||this.columns!==t.columns)throw new RangeError("Matrices dimensions must be equal");for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.set(e,r,this.get(e,r)/t.get(e,r));return this},t.div=function(t,r){return new e(t).div(r)},t.prototype.divide=t.prototype.div,t.prototype.divideS=t.prototype.divS,t.prototype.divideM=t.prototype.divM,t.divide=t.div,t.prototype.mod=function(t){return"number"==typeof t?this.modS(t):this.modM(t)},t.prototype.modS=function(t){for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.set(e,r,this.get(e,r)%t);return this},t.prototype.modM=function(t){if(t=e.checkMatrix(t),this.rows!==t.rows||this.columns!==t.columns)throw new RangeError("Matrices dimensions must be equal");for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.set(e,r,this.get(e,r)%t.get(e,r));return this},t.mod=function(t,r){return new e(t).mod(r)},t.prototype.modulus=t.prototype.mod,t.prototype.modulusS=t.prototype.modS,t.prototype.modulusM=t.prototype.modM,t.modulus=t.mod,t.prototype.and=function(t){return"number"==typeof t?this.andS(t):this.andM(t)},t.prototype.andS=function(t){for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.set(e,r,this.get(e,r)&t);return this},t.prototype.andM=function(t){if(t=e.checkMatrix(t),this.rows!==t.rows||this.columns!==t.columns)throw new RangeError("Matrices dimensions must be equal");for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.set(e,r,this.get(e,r)&t.get(e,r));return this},t.and=function(t,r){return new e(t).and(r)},t.prototype.or=function(t){return"number"==typeof t?this.orS(t):this.orM(t)},t.prototype.orS=function(t){for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.set(e,r,this.get(e,r)|t);return this},t.prototype.orM=function(t){if(t=e.checkMatrix(t),this.rows!==t.rows||this.columns!==t.columns)throw new RangeError("Matrices dimensions must be equal");for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.set(e,r,this.get(e,r)|t.get(e,r));return this},t.or=function(t,r){return new e(t).or(r)},t.prototype.xor=function(t){return"number"==typeof t?this.xorS(t):this.xorM(t)},t.prototype.xorS=function(t){for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.set(e,r,this.get(e,r)^t);return this},t.prototype.xorM=function(t){if(t=e.checkMatrix(t),this.rows!==t.rows||this.columns!==t.columns)throw new RangeError("Matrices dimensions must be equal");for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.set(e,r,this.get(e,r)^t.get(e,r));return this},t.xor=function(t,r){return new e(t).xor(r)},t.prototype.leftShift=function(t){return"number"==typeof t?this.leftShiftS(t):this.leftShiftM(t)},t.prototype.leftShiftS=function(t){for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.set(e,r,this.get(e,r)<<t);return this},t.prototype.leftShiftM=function(t){if(t=e.checkMatrix(t),this.rows!==t.rows||this.columns!==t.columns)throw new RangeError("Matrices dimensions must be equal");for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.set(e,r,this.get(e,r)<<t.get(e,r));return this},t.leftShift=function(t,r){return new e(t).leftShift(r)},t.prototype.signPropagatingRightShift=function(t){return"number"==typeof t?this.signPropagatingRightShiftS(t):this.signPropagatingRightShiftM(t)},t.prototype.signPropagatingRightShiftS=function(t){for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.set(e,r,this.get(e,r)>>t);return this},t.prototype.signPropagatingRightShiftM=function(t){if(t=e.checkMatrix(t),this.rows!==t.rows||this.columns!==t.columns)throw new RangeError("Matrices dimensions must be equal");for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.set(e,r,this.get(e,r)>>t.get(e,r));return this},t.signPropagatingRightShift=function(t,r){return new e(t).signPropagatingRightShift(r)},t.prototype.rightShift=function(t){return"number"==typeof t?this.rightShiftS(t):this.rightShiftM(t)},t.prototype.rightShiftS=function(t){for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.set(e,r,this.get(e,r)>>>t);return this},t.prototype.rightShiftM=function(t){if(t=e.checkMatrix(t),this.rows!==t.rows||this.columns!==t.columns)throw new RangeError("Matrices dimensions must be equal");for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.set(e,r,this.get(e,r)>>>t.get(e,r));return this},t.rightShift=function(t,r){return new e(t).rightShift(r)},t.prototype.zeroFillRightShift=t.prototype.rightShift,t.prototype.zeroFillRightShiftS=t.prototype.rightShiftS,t.prototype.zeroFillRightShiftM=t.prototype.rightShiftM,t.zeroFillRightShift=t.rightShift,t.prototype.not=function(){for(let t=0;t<this.rows;t++)for(let e=0;e<this.columns;e++)this.set(t,e,~this.get(t,e));return this},t.not=function(t){return new e(t).not()},t.prototype.abs=function(){for(let t=0;t<this.rows;t++)for(let e=0;e<this.columns;e++)this.set(t,e,Math.abs(this.get(t,e)));return this},t.abs=function(t){return new e(t).abs()},t.prototype.acos=function(){for(let t=0;t<this.rows;t++)for(let e=0;e<this.columns;e++)this.set(t,e,Math.acos(this.get(t,e)));return this},t.acos=function(t){return new e(t).acos()},t.prototype.acosh=function(){for(let t=0;t<this.rows;t++)for(let e=0;e<this.columns;e++)this.set(t,e,Math.acosh(this.get(t,e)));return this},t.acosh=function(t){return new e(t).acosh()},t.prototype.asin=function(){for(let t=0;t<this.rows;t++)for(let e=0;e<this.columns;e++)this.set(t,e,Math.asin(this.get(t,e)));return this},t.asin=function(t){return new e(t).asin()},t.prototype.asinh=function(){for(let t=0;t<this.rows;t++)for(let e=0;e<this.columns;e++)this.set(t,e,Math.asinh(this.get(t,e)));return this},t.asinh=function(t){return new e(t).asinh()},t.prototype.atan=function(){for(let t=0;t<this.rows;t++)for(let e=0;e<this.columns;e++)this.set(t,e,Math.atan(this.get(t,e)));return this},t.atan=function(t){return new e(t).atan()},t.prototype.atanh=function(){for(let t=0;t<this.rows;t++)for(let e=0;e<this.columns;e++)this.set(t,e,Math.atanh(this.get(t,e)));return this},t.atanh=function(t){return new e(t).atanh()},t.prototype.cbrt=function(){for(let t=0;t<this.rows;t++)for(let e=0;e<this.columns;e++)this.set(t,e,Math.cbrt(this.get(t,e)));return this},t.cbrt=function(t){return new e(t).cbrt()},t.prototype.ceil=function(){for(let t=0;t<this.rows;t++)for(let e=0;e<this.columns;e++)this.set(t,e,Math.ceil(this.get(t,e)));return this},t.ceil=function(t){return new e(t).ceil()},t.prototype.clz32=function(){for(let t=0;t<this.rows;t++)for(let e=0;e<this.columns;e++)this.set(t,e,Math.clz32(this.get(t,e)));return this},t.clz32=function(t){return new e(t).clz32()},t.prototype.cos=function(){for(let t=0;t<this.rows;t++)for(let e=0;e<this.columns;e++)this.set(t,e,Math.cos(this.get(t,e)));return this},t.cos=function(t){return new e(t).cos()},t.prototype.cosh=function(){for(let t=0;t<this.rows;t++)for(let e=0;e<this.columns;e++)this.set(t,e,Math.cosh(this.get(t,e)));return this},t.cosh=function(t){return new e(t).cosh()},t.prototype.exp=function(){for(let t=0;t<this.rows;t++)for(let e=0;e<this.columns;e++)this.set(t,e,Math.exp(this.get(t,e)));return this},t.exp=function(t){return new e(t).exp()},t.prototype.expm1=function(){for(let t=0;t<this.rows;t++)for(let e=0;e<this.columns;e++)this.set(t,e,Math.expm1(this.get(t,e)));return this},t.expm1=function(t){return new e(t).expm1()},t.prototype.floor=function(){for(let t=0;t<this.rows;t++)for(let e=0;e<this.columns;e++)this.set(t,e,Math.floor(this.get(t,e)));return this},t.floor=function(t){return new e(t).floor()},t.prototype.fround=function(){for(let t=0;t<this.rows;t++)for(let e=0;e<this.columns;e++)this.set(t,e,Math.fround(this.get(t,e)));return this},t.fround=function(t){return new e(t).fround()},t.prototype.log=function(){for(let t=0;t<this.rows;t++)for(let e=0;e<this.columns;e++)this.set(t,e,Math.log(this.get(t,e)));return this},t.log=function(t){return new e(t).log()},t.prototype.log1p=function(){for(let t=0;t<this.rows;t++)for(let e=0;e<this.columns;e++)this.set(t,e,Math.log1p(this.get(t,e)));return this},t.log1p=function(t){return new e(t).log1p()},t.prototype.log10=function(){for(let t=0;t<this.rows;t++)for(let e=0;e<this.columns;e++)this.set(t,e,Math.log10(this.get(t,e)));return this},t.log10=function(t){return new e(t).log10()},t.prototype.log2=function(){for(let t=0;t<this.rows;t++)for(let e=0;e<this.columns;e++)this.set(t,e,Math.log2(this.get(t,e)));return this},t.log2=function(t){return new e(t).log2()},t.prototype.round=function(){for(let t=0;t<this.rows;t++)for(let e=0;e<this.columns;e++)this.set(t,e,Math.round(this.get(t,e)));return this},t.round=function(t){return new e(t).round()},t.prototype.sign=function(){for(let t=0;t<this.rows;t++)for(let e=0;e<this.columns;e++)this.set(t,e,Math.sign(this.get(t,e)));return this},t.sign=function(t){return new e(t).sign()},t.prototype.sin=function(){for(let t=0;t<this.rows;t++)for(let e=0;e<this.columns;e++)this.set(t,e,Math.sin(this.get(t,e)));return this},t.sin=function(t){return new e(t).sin()},t.prototype.sinh=function(){for(let t=0;t<this.rows;t++)for(let e=0;e<this.columns;e++)this.set(t,e,Math.sinh(this.get(t,e)));return this},t.sinh=function(t){return new e(t).sinh()},t.prototype.sqrt=function(){for(let t=0;t<this.rows;t++)for(let e=0;e<this.columns;e++)this.set(t,e,Math.sqrt(this.get(t,e)));return this},t.sqrt=function(t){return new e(t).sqrt()},t.prototype.tan=function(){for(let t=0;t<this.rows;t++)for(let e=0;e<this.columns;e++)this.set(t,e,Math.tan(this.get(t,e)));return this},t.tan=function(t){return new e(t).tan()},t.prototype.tanh=function(){for(let t=0;t<this.rows;t++)for(let e=0;e<this.columns;e++)this.set(t,e,Math.tanh(this.get(t,e)));return this},t.tanh=function(t){return new e(t).tanh()},t.prototype.trunc=function(){for(let t=0;t<this.rows;t++)for(let e=0;e<this.columns;e++)this.set(t,e,Math.trunc(this.get(t,e)));return this},t.trunc=function(t){return new e(t).trunc()},t.pow=function(t,r){return new e(t).pow(r)},t.prototype.pow=function(t){return"number"==typeof t?this.powS(t):this.powM(t)},t.prototype.powS=function(t){for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.set(e,r,this.get(e,r)**t);return this},t.prototype.powM=function(t){if(t=e.checkMatrix(t),this.rows!==t.rows||this.columns!==t.columns)throw new RangeError("Matrices dimensions must be equal");for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.set(e,r,this.get(e,r)**t.get(e,r));return this}}(m,x);class b extends m{#e;get size(){return this.#e.size}get rows(){return this.#e.rows}get columns(){return this.#e.columns}get diagonalSize(){return this.rows}static isSymmetricMatrix(t){return x.isMatrix(t)&&"SymmetricMatrix"===t.klassType}static zeros(t){return new this(t)}static ones(t){return new this(t).fill(1)}constructor(t){if(super(),x.isMatrix(t)){if(!t.isSymmetric())throw new TypeError("not symmetric data");this.#e=x.copy(t,new x(t.rows,t.rows))}else if(Number.isInteger(t)&&t>=0)this.#e=new x(t,t);else if(this.#e=new x(t),!this.isSymmetric())throw new TypeError("not symmetric data")}clone(){const t=new b(this.diagonalSize);for(const[e,r,n]of this.upperRightEntries())t.set(e,r,n);return t}toMatrix(){return new x(this)}get(t,e){return this.#e.get(t,e)}set(t,e,r){return this.#e.set(t,e,r),this.#e.set(e,t,r),this}removeCross(t){return this.#e.removeRow(t),this.#e.removeColumn(t),this}addCross(t,e){void 0===e&&(e=t,t=this.diagonalSize);const r=e.slice();return r.splice(t,1),this.#e.addRow(t,r),this.#e.addColumn(t,e),this}applyMask(t){if(t.length!==this.diagonalSize)throw new RangeError("Mask size do not match with matrix size");const e=[];for(const[r,n]of t.entries())n||e.push(r);e.reverse();for(const t of e)this.removeCross(t);return this}toCompact(){const{diagonalSize:t}=this,e=new Array(t*(t+1)/2);for(let r=0,n=0,o=0;o<e.length;o++)e[o]=this.get(n,r),++r>=t&&(r=++n);return e}static fromCompact(t){const e=t.length,r=(Math.sqrt(8*e+1)-1)/2;if(!Number.isInteger(r))throw new TypeError(`This array is not a compact representation of a Symmetric Matrix, ${JSON.stringify(t)}`);const n=new b(r);for(let o=0,i=0,s=0;s<e;s++)n.set(o,i,t[s]),++o>=r&&(o=++i);return n}*upperRightEntries(){for(let t=0,e=0;t<this.diagonalSize;void 0){const r=this.get(t,e);yield[t,e,r],++e>=this.diagonalSize&&(e=++t)}}*upperRightValues(){for(let t=0,e=0;t<this.diagonalSize;void 0){const r=this.get(t,e);yield r,++e>=this.diagonalSize&&(e=++t)}}}b.prototype.klassType="SymmetricMatrix";class E extends b{static isDistanceMatrix(t){return b.isSymmetricMatrix(t)&&"DistanceMatrix"===t.klassSubType}constructor(t){if(super(t),!this.isDistance())throw new TypeError("Provided arguments do no produce a distance matrix")}set(t,e,r){return t===e&&(r=0),super.set(t,e,r)}addCross(t,e){return void 0===e&&(e=t,t=this.diagonalSize),(e=e.slice())[t]=0,super.addCross(t,e)}toSymmetricMatrix(){return new b(this)}clone(){const t=new E(this.diagonalSize);for(const[e,r,n]of this.upperRightEntries())e!==r&&t.set(e,r,n);return t}toCompact(){const{diagonalSize:t}=this,e=new Array((t-1)*t/2);for(let r=1,n=0,o=0;o<e.length;o++)e[o]=this.get(n,r),++r>=t&&(r=1+ ++n);return e}static fromCompact(t){const e=t.length;if(0===e)return new this(0);const r=(Math.sqrt(8*e+1)+1)/2;if(!Number.isInteger(r))throw new TypeError(`This array is not a compact representation of a DistanceMatrix, ${JSON.stringify(t)}`);const n=new this(r);for(let o=1,i=0,s=0;s<e;s++)n.set(o,i,t[s]),++o>=r&&(o=1+ ++i);return n}}E.prototype.klassSubType="DistanceMatrix";class M extends m{constructor(t,e,r){super(),this.matrix=t,this.rows=e,this.columns=r}}class N extends M{constructor(t,e,r){l(t,e),d(t,r),super(t,e.length,r.length),this.rowIndices=e,this.columnIndices=r}set(t,e,r){return this.matrix.set(this.rowIndices[t],this.columnIndices[e],r),this}get(t,e){return this.matrix.get(this.rowIndices[t],this.columnIndices[e])}}class _ extends m{constructor(t,e={}){const{rows:r=1}=e;if(t.length%r!==0)throw new Error("the data length is not divisible by the number of rows");super(),this.rows=r,this.columns=t.length/r,this.data=t}set(t,e,r){let n=this._calculateIndex(t,e);return this.data[n]=r,this}get(t,e){let r=this._calculateIndex(t,e);return this.data[r]}_calculateIndex(t,e){return t*this.columns+e}}class k extends m{constructor(t){super(),this.data=t,this.rows=t.length,this.columns=t[0].length}set(t,e,r){return this.data[t][e]=r,this}get(t,e){return this.data[t][e]}}class S{constructor(t){let e,r,n,o,i,s,a,u,c,h=(t=k.checkMatrix(t)).clone(),l=h.rows,d=h.columns,f=new Float64Array(l),g=1;for(e=0;e<l;e++)f[e]=e;for(u=new Float64Array(l),r=0;r<d;r++){for(e=0;e<l;e++)u[e]=h.get(e,r);for(e=0;e<l;e++){for(c=Math.min(e,r),i=0,n=0;n<c;n++)i+=h.get(e,n)*u[n];u[e]-=i,h.set(e,r,u[e])}for(o=r,e=r+1;e<l;e++)Math.abs(u[e])>Math.abs(u[o])&&(o=e);if(o!==r){for(n=0;n<d;n++)s=h.get(o,n),h.set(o,n,h.get(r,n)),h.set(r,n,s);a=f[o],f[o]=f[r],f[r]=a,g=-g}if(r<l&&0!==h.get(r,r))for(e=r+1;e<l;e++)h.set(e,r,h.get(e,r)/h.get(r,r))}this.LU=h,this.pivotVector=f,this.pivotSign=g}isSingular(){let t=this.LU,e=t.columns;for(let r=0;r<e;r++)if(0===t.get(r,r))return!0;return!1}solve(t){t=x.checkMatrix(t);let e=this.LU;if(e.rows!==t.rows)throw new Error("Invalid matrix dimensions");if(this.isSingular())throw new Error("LU matrix is singular");let r,n,o,i=t.columns,s=t.subMatrixRow(this.pivotVector,0,i-1),a=e.columns;for(o=0;o<a;o++)for(r=o+1;r<a;r++)for(n=0;n<i;n++)s.set(r,n,s.get(r,n)-s.get(o,n)*e.get(r,o));for(o=a-1;o>=0;o--){for(n=0;n<i;n++)s.set(o,n,s.get(o,n)/e.get(o,o));for(r=0;r<o;r++)for(n=0;n<i;n++)s.set(r,n,s.get(r,n)-s.get(o,n)*e.get(r,o))}return s}get determinant(){let t=this.LU;if(!t.isSquare())throw new Error("Matrix must be square");let e=this.pivotSign,r=t.columns;for(let n=0;n<r;n++)e*=t.get(n,n);return e}get lowerTriangularMatrix(){let t=this.LU,e=t.rows,r=t.columns,n=new x(e,r);for(let o=0;o<e;o++)for(let e=0;e<r;e++)o>e?n.set(o,e,t.get(o,e)):o===e?n.set(o,e,1):n.set(o,e,0);return n}get upperTriangularMatrix(){let t=this.LU,e=t.rows,r=t.columns,n=new x(e,r);for(let o=0;o<e;o++)for(let e=0;e<r;e++)o<=e?n.set(o,e,t.get(o,e)):n.set(o,e,0);return n}get pivotPermutationVector(){return Array.from(this.pivotVector)}}function z(t,e){let r=0;return Math.abs(t)>Math.abs(e)?(r=e/t,Math.abs(t)*Math.sqrt(1+r*r)):0!==e?(r=t/e,Math.abs(e)*Math.sqrt(1+r*r)):0}class A{constructor(t){let e,r,n,o,i=(t=k.checkMatrix(t)).clone(),s=t.rows,a=t.columns,u=new Float64Array(a);for(n=0;n<a;n++){let t=0;for(e=n;e<s;e++)t=z(t,i.get(e,n));if(0!==t){for(i.get(n,n)<0&&(t=-t),e=n;e<s;e++)i.set(e,n,i.get(e,n)/t);for(i.set(n,n,i.get(n,n)+1),r=n+1;r<a;r++){for(o=0,e=n;e<s;e++)o+=i.get(e,n)*i.get(e,r);for(o=-o/i.get(n,n),e=n;e<s;e++)i.set(e,r,i.get(e,r)+o*i.get(e,n))}}u[n]=-t}this.QR=i,this.Rdiag=u}solve(t){t=x.checkMatrix(t);let e=this.QR,r=e.rows;if(t.rows!==r)throw new Error("Matrix row dimensions must agree");if(!this.isFullRank())throw new Error("Matrix is rank deficient");let n,o,i,s,a=t.columns,u=t.clone(),c=e.columns;for(i=0;i<c;i++)for(o=0;o<a;o++){for(s=0,n=i;n<r;n++)s+=e.get(n,i)*u.get(n,o);for(s=-s/e.get(i,i),n=i;n<r;n++)u.set(n,o,u.get(n,o)+s*e.get(n,i))}for(i=c-1;i>=0;i--){for(o=0;o<a;o++)u.set(i,o,u.get(i,o)/this.Rdiag[i]);for(n=0;n<i;n++)for(o=0;o<a;o++)u.set(n,o,u.get(n,o)-u.get(i,o)*e.get(n,i))}return u.subMatrix(0,c-1,0,a-1)}isFullRank(){let t=this.QR.columns;for(let e=0;e<t;e++)if(0===this.Rdiag[e])return!1;return!0}get upperTriangularMatrix(){let t,e,r=this.QR,n=r.columns,o=new x(n,n);for(t=0;t<n;t++)for(e=0;e<n;e++)t<e?o.set(t,e,r.get(t,e)):t===e?o.set(t,e,this.Rdiag[t]):o.set(t,e,0);return o}get orthogonalMatrix(){let t,e,r,n,o=this.QR,i=o.rows,s=o.columns,a=new x(i,s);for(r=s-1;r>=0;r--){for(t=0;t<i;t++)a.set(t,r,0);for(a.set(r,r,1),e=r;e<s;e++)if(0!==o.get(r,r)){for(n=0,t=r;t<i;t++)n+=o.get(t,r)*a.get(t,e);for(n=-n/o.get(r,r),t=r;t<i;t++)a.set(t,e,a.get(t,e)+n*o.get(t,r))}}return a}}class O{constructor(t,e={}){if((t=k.checkMatrix(t)).isEmpty())throw new Error("Matrix must be non-empty");let r=t.rows,n=t.columns;const{computeLeftSingularVectors:o=!0,computeRightSingularVectors:i=!0,autoTranspose:s=!1}=e;let a,u=Boolean(o),c=Boolean(i),h=!1;if(r<n)if(s){a=t.transpose(),r=a.rows,n=a.columns,h=!0;let e=u;u=c,c=e}else a=t.clone(),console.warn("Computing SVD on a matrix with more columns than rows. Consider enabling autoTranspose");else a=t.clone();let l=Math.min(r,n),d=Math.min(r+1,n),f=new Float64Array(d),g=new x(r,l),p=new x(n,n),v=new Float64Array(n),m=new Float64Array(r),y=new Float64Array(d);for(let t=0;t<d;t++)y[t]=t;let w=Math.min(r-1,n),b=Math.max(0,Math.min(n-2,r)),E=Math.max(w,b);for(let t=0;t<E;t++){if(t<w){f[t]=0;for(let e=t;e<r;e++)f[t]=z(f[t],a.get(e,t));if(0!==f[t]){a.get(t,t)<0&&(f[t]=-f[t]);for(let e=t;e<r;e++)a.set(e,t,a.get(e,t)/f[t]);a.set(t,t,a.get(t,t)+1)}f[t]=-f[t]}for(let e=t+1;e<n;e++){if(t<w&&0!==f[t]){let n=0;for(let o=t;o<r;o++)n+=a.get(o,t)*a.get(o,e);n=-n/a.get(t,t);for(let o=t;o<r;o++)a.set(o,e,a.get(o,e)+n*a.get(o,t))}v[e]=a.get(t,e)}if(u&&t<w)for(let e=t;e<r;e++)g.set(e,t,a.get(e,t));if(t<b){v[t]=0;for(let e=t+1;e<n;e++)v[t]=z(v[t],v[e]);if(0!==v[t]){v[t+1]<0&&(v[t]=0-v[t]);for(let e=t+1;e<n;e++)v[e]/=v[t];v[t+1]+=1}if(v[t]=-v[t],t+1<r&&0!==v[t]){for(let e=t+1;e<r;e++)m[e]=0;for(let e=t+1;e<r;e++)for(let r=t+1;r<n;r++)m[e]+=v[r]*a.get(e,r);for(let e=t+1;e<n;e++){let n=-v[e]/v[t+1];for(let o=t+1;o<r;o++)a.set(o,e,a.get(o,e)+n*m[o])}}if(c)for(let e=t+1;e<n;e++)p.set(e,t,v[e])}}let M=Math.min(n,r+1);if(w<n&&(f[w]=a.get(w,w)),r<M&&(f[M-1]=0),b+1<M&&(v[b]=a.get(b,M-1)),v[M-1]=0,u){for(let t=w;t<l;t++){for(let e=0;e<r;e++)g.set(e,t,0);g.set(t,t,1)}for(let t=w-1;t>=0;t--)if(0!==f[t]){for(let e=t+1;e<l;e++){let n=0;for(let o=t;o<r;o++)n+=g.get(o,t)*g.get(o,e);n=-n/g.get(t,t);for(let o=t;o<r;o++)g.set(o,e,g.get(o,e)+n*g.get(o,t))}for(let e=t;e<r;e++)g.set(e,t,-g.get(e,t));g.set(t,t,1+g.get(t,t));for(let e=0;e<t-1;e++)g.set(e,t,0)}else{for(let e=0;e<r;e++)g.set(e,t,0);g.set(t,t,1)}}if(c)for(let t=n-1;t>=0;t--){if(t<b&&0!==v[t])for(let e=t+1;e<n;e++){let r=0;for(let o=t+1;o<n;o++)r+=p.get(o,t)*p.get(o,e);r=-r/p.get(t+1,t);for(let o=t+1;o<n;o++)p.set(o,e,p.get(o,e)+r*p.get(o,t))}for(let e=0;e<n;e++)p.set(e,t,0);p.set(t,t,1)}let N=M-1,_=Number.EPSILON;for(;M>0;){let t,e;for(t=M-2;t>=-1&&-1!==t;t--){const e=Number.MIN_VALUE+_*Math.abs(f[t]+Math.abs(f[t+1]));if(Math.abs(v[t])<=e||Number.isNaN(v[t])){v[t]=0;break}}if(t===M-2)e=4;else{let r;for(r=M-1;r>=t&&r!==t;r--){let e=(r!==M?Math.abs(v[r]):0)+(r!==t+1?Math.abs(v[r-1]):0);if(Math.abs(f[r])<=_*e){f[r]=0;break}}r===t?e=3:r===M-1?e=1:(e=2,t=r)}switch(t++,e){case 1:{let e=v[M-2];v[M-2]=0;for(let r=M-2;r>=t;r--){let o=z(f[r],e),i=f[r]/o,s=e/o;if(f[r]=o,r!==t&&(e=-s*v[r-1],v[r-1]=i*v[r-1]),c)for(let t=0;t<n;t++)o=i*p.get(t,r)+s*p.get(t,M-1),p.set(t,M-1,-s*p.get(t,r)+i*p.get(t,M-1)),p.set(t,r,o)}break}case 2:{let e=v[t-1];v[t-1]=0;for(let n=t;n<M;n++){let o=z(f[n],e),i=f[n]/o,s=e/o;if(f[n]=o,e=-s*v[n],v[n]=i*v[n],u)for(let e=0;e<r;e++)o=i*g.get(e,n)+s*g.get(e,t-1),g.set(e,t-1,-s*g.get(e,n)+i*g.get(e,t-1)),g.set(e,n,o)}break}case 3:{const e=Math.max(Math.abs(f[M-1]),Math.abs(f[M-2]),Math.abs(v[M-2]),Math.abs(f[t]),Math.abs(v[t])),o=f[M-1]/e,i=f[M-2]/e,s=v[M-2]/e,a=f[t]/e,h=v[t]/e,l=((i+o)*(i-o)+s*s)/2,d=o*s*(o*s);let m=0;0===l&&0===d||(m=l<0?0-Math.sqrt(l*l+d):Math.sqrt(l*l+d),m=d/(l+m));let y=(a+o)*(a-o)+m,w=a*h;for(let e=t;e<M-1;e++){let o=z(y,w);0===o&&(o=Number.MIN_VALUE);let i=y/o,s=w/o;if(e!==t&&(v[e-1]=o),y=i*f[e]+s*v[e],v[e]=i*v[e]-s*f[e],w=s*f[e+1],f[e+1]=i*f[e+1],c)for(let t=0;t<n;t++)o=i*p.get(t,e)+s*p.get(t,e+1),p.set(t,e+1,-s*p.get(t,e)+i*p.get(t,e+1)),p.set(t,e,o);if(o=z(y,w),0===o&&(o=Number.MIN_VALUE),i=y/o,s=w/o,f[e]=o,y=i*v[e]+s*f[e+1],f[e+1]=-s*v[e]+i*f[e+1],w=s*v[e+1],v[e+1]=i*v[e+1],u&&e<r-1)for(let t=0;t<r;t++)o=i*g.get(t,e)+s*g.get(t,e+1),g.set(t,e+1,-s*g.get(t,e)+i*g.get(t,e+1)),g.set(t,e,o)}v[M-2]=y;break}case 4:if(f[t]<=0&&(f[t]=f[t]<0?-f[t]:0,c))for(let e=0;e<=N;e++)p.set(e,t,-p.get(e,t));for(;t<N&&!(f[t]>=f[t+1]);){let e=f[t];if(f[t]=f[t+1],f[t+1]=e,c&&t<n-1)for(let r=0;r<n;r++)e=p.get(r,t+1),p.set(r,t+1,p.get(r,t)),p.set(r,t,e);if(u&&t<r-1)for(let n=0;n<r;n++)e=g.get(n,t+1),g.set(n,t+1,g.get(n,t)),g.set(n,t,e);t++}M--}}if(h){let t=p;p=g,g=t}this.m=r,this.n=n,this.s=f,this.U=g,this.V=p}solve(t){let e=t,r=this.threshold,n=this.s.length,o=x.zeros(n,n);for(let t=0;t<n;t++)Math.abs(this.s[t])<=r?o.set(t,t,0):o.set(t,t,1/this.s[t]);let i=this.U,s=this.rightSingularVectors,a=s.mmul(o),u=s.rows,c=i.rows,h=x.zeros(u,c);for(let t=0;t<u;t++)for(let e=0;e<c;e++){let r=0;for(let o=0;o<n;o++)r+=a.get(t,o)*i.get(e,o);h.set(t,e,r)}return h.mmul(e)}solveForDiagonal(t){return this.solve(x.diag(t))}inverse(){let t=this.V,e=this.threshold,r=t.rows,n=t.columns,o=new x(r,this.s.length);for(let i=0;i<r;i++)for(let r=0;r<n;r++)Math.abs(this.s[r])>e&&o.set(i,r,t.get(i,r)/this.s[r]);let i=this.U,s=i.rows,a=i.columns,u=new x(r,s);for(let t=0;t<r;t++)for(let e=0;e<s;e++){let r=0;for(let n=0;n<a;n++)r+=o.get(t,n)*i.get(e,n);u.set(t,e,r)}return u}get condition(){return this.s[0]/this.s[Math.min(this.m,this.n)-1]}get norm2(){return this.s[0]}get rank(){let t=Math.max(this.m,this.n)*this.s[0]*Number.EPSILON,e=0,r=this.s;for(let n=0,o=r.length;n<o;n++)r[n]>t&&e++;return e}get diagonal(){return Array.from(this.s)}get threshold(){return Number.EPSILON/2*Math.max(this.m,this.n)*this.s[0]}get leftSingularVectors(){return this.U}get rightSingularVectors(){return this.V}get diagonalMatrix(){return x.diag(this.s)}}function j(t,e,r=!1){return t=k.checkMatrix(t),e=k.checkMatrix(e),r?new O(t).solve(e):t.isSquare()?new S(t).solve(e):new A(t).solve(e)}function C(t,e){let r=[];for(let n=0;n<t;n++)n!==e&&r.push(n);return r}function I(t,e,r,n=1e-9,o=1e-9){if(t>o)return new Array(e.rows+1).fill(0);{let t=e.addRow(r,[0]);for(let e=0;e<t.rows;e++)Math.abs(t.get(e,0))<n&&t.set(e,0,0);return t.to1DArray()}}class R{constructor(t,e={}){const{assumeSymmetric:r=!1}=e;if(!(t=k.checkMatrix(t)).isSquare())throw new Error("Matrix is not a square matrix");if(t.isEmpty())throw new Error("Matrix must be non-empty");let n,o,i=t.columns,s=new x(i,i),a=new Float64Array(i),u=new Float64Array(i),c=t,h=!1;if(h=!!r||t.isSymmetric(),h){for(n=0;n<i;n++)for(o=0;o<i;o++)s.set(n,o,c.get(n,o));!function(t,e,r,n){let o,i,s,a,u,c,h,l;for(u=0;u<t;u++)r[u]=n.get(t-1,u);for(a=t-1;a>0;a--){for(l=0,s=0,c=0;c<a;c++)l+=Math.abs(r[c]);if(0===l)for(e[a]=r[a-1],u=0;u<a;u++)r[u]=n.get(a-1,u),n.set(a,u,0),n.set(u,a,0);else{for(c=0;c<a;c++)r[c]/=l,s+=r[c]*r[c];for(o=r[a-1],i=Math.sqrt(s),o>0&&(i=-i),e[a]=l*i,s-=o*i,r[a-1]=o-i,u=0;u<a;u++)e[u]=0;for(u=0;u<a;u++){for(o=r[u],n.set(u,a,o),i=e[u]+n.get(u,u)*o,c=u+1;c<=a-1;c++)i+=n.get(c,u)*r[c],e[c]+=n.get(c,u)*o;e[u]=i}for(o=0,u=0;u<a;u++)e[u]/=s,o+=e[u]*r[u];for(h=o/(s+s),u=0;u<a;u++)e[u]-=h*r[u];for(u=0;u<a;u++){for(o=r[u],i=e[u],c=u;c<=a-1;c++)n.set(c,u,n.get(c,u)-(o*e[c]+i*r[c]));r[u]=n.get(a-1,u),n.set(a,u,0)}}r[a]=s}for(a=0;a<t-1;a++){if(n.set(t-1,a,n.get(a,a)),n.set(a,a,1),s=r[a+1],0!==s){for(c=0;c<=a;c++)r[c]=n.get(c,a+1)/s;for(u=0;u<=a;u++){for(i=0,c=0;c<=a;c++)i+=n.get(c,a+1)*n.get(c,u);for(c=0;c<=a;c++)n.set(c,u,n.get(c,u)-i*r[c])}}for(c=0;c<=a;c++)n.set(c,a+1,0)}for(u=0;u<t;u++)r[u]=n.get(t-1,u),n.set(t-1,u,0);n.set(t-1,t-1,1),e[0]=0}(i,u,a,s),function(t,e,r,n){let o,i,s,a,u,c,h,l,d,f,g,p,v,m,y,w;for(s=1;s<t;s++)e[s-1]=e[s];e[t-1]=0;let x=0,b=0,E=Number.EPSILON;for(c=0;c<t;c++){for(b=Math.max(b,Math.abs(r[c])+Math.abs(e[c])),h=c;h<t&&!(Math.abs(e[h])<=E*b);)h++;if(h>c)do{for(o=r[c],l=(r[c+1]-o)/(2*e[c]),d=z(l,1),l<0&&(d=-d),r[c]=e[c]/(l+d),r[c+1]=e[c]*(l+d),f=r[c+1],i=o-r[c],s=c+2;s<t;s++)r[s]-=i;for(x+=i,l=r[h],g=1,p=g,v=g,m=e[c+1],y=0,w=0,s=h-1;s>=c;s--)for(v=p,p=g,w=y,o=g*e[s],i=g*l,d=z(l,e[s]),e[s+1]=y*d,y=e[s]/d,g=l/d,l=g*r[s]-y*o,r[s+1]=i+y*(g*o+y*r[s]),u=0;u<t;u++)i=n.get(u,s+1),n.set(u,s+1,y*n.get(u,s)+g*i),n.set(u,s,g*n.get(u,s)-y*i);l=-y*w*v*m*e[c]/f,e[c]=y*l,r[c]=g*l}while(Math.abs(e[c])>E*b);r[c]=r[c]+x,e[c]=0}for(s=0;s<t-1;s++){for(u=s,l=r[s],a=s+1;a<t;a++)r[a]<l&&(u=a,l=r[a]);if(u!==s)for(r[u]=r[s],r[s]=l,a=0;a<t;a++)l=n.get(a,s),n.set(a,s,n.get(a,u)),n.set(a,u,l)}}(i,u,a,s)}else{let t=new x(i,i),e=new Float64Array(i);for(o=0;o<i;o++)for(n=0;n<i;n++)t.set(n,o,c.get(n,o));!function(t,e,r,n){let o,i,s,a,u,c,h,l=0,d=t-1;for(c=l+1;c<=d-1;c++){for(h=0,a=c;a<=d;a++)h+=Math.abs(e.get(a,c-1));if(0!==h){for(s=0,a=d;a>=c;a--)r[a]=e.get(a,c-1)/h,s+=r[a]*r[a];for(i=Math.sqrt(s),r[c]>0&&(i=-i),s-=r[c]*i,r[c]=r[c]-i,u=c;u<t;u++){for(o=0,a=d;a>=c;a--)o+=r[a]*e.get(a,u);for(o/=s,a=c;a<=d;a++)e.set(a,u,e.get(a,u)-o*r[a])}for(a=0;a<=d;a++){for(o=0,u=d;u>=c;u--)o+=r[u]*e.get(a,u);for(o/=s,u=c;u<=d;u++)e.set(a,u,e.get(a,u)-o*r[u])}r[c]=h*r[c],e.set(c,c-1,h*i)}}for(a=0;a<t;a++)for(u=0;u<t;u++)n.set(a,u,a===u?1:0);for(c=d-1;c>=l+1;c--)if(0!==e.get(c,c-1)){for(a=c+1;a<=d;a++)r[a]=e.get(a,c-1);for(u=c;u<=d;u++){for(i=0,a=c;a<=d;a++)i+=r[a]*n.get(a,u);for(i=i/r[c]/e.get(c,c-1),a=c;a<=d;a++)n.set(a,u,n.get(a,u)+i*r[a])}}}(i,t,e,s),function(t,e,r,n,o){let i,s,a,u,c,h,l,d,f,g,p,v,m,y,w,x=t-1,b=0,E=t-1,M=Number.EPSILON,N=0,_=0,k=0,S=0,z=0,A=0,O=0,j=0;for(i=0;i<t;i++)for((i<b||i>E)&&(r[i]=o.get(i,i),e[i]=0),s=Math.max(i-1,0);s<t;s++)_+=Math.abs(o.get(i,s));for(;x>=b;){for(u=x;u>b&&(A=Math.abs(o.get(u-1,u-1))+Math.abs(o.get(u,u)),0===A&&(A=_),!(Math.abs(o.get(u,u-1))<M*A));)u--;if(u===x)o.set(x,x,o.get(x,x)+N),r[x]=o.get(x,x),e[x]=0,x--,j=0;else if(u===x-1){if(l=o.get(x,x-1)*o.get(x-1,x),k=(o.get(x-1,x-1)-o.get(x,x))/2,S=k*k+l,O=Math.sqrt(Math.abs(S)),o.set(x,x,o.get(x,x)+N),o.set(x-1,x-1,o.get(x-1,x-1)+N),d=o.get(x,x),S>=0){for(O=k>=0?k+O:k-O,r[x-1]=d+O,r[x]=r[x-1],0!==O&&(r[x]=d-l/O),e[x-1]=0,e[x]=0,d=o.get(x,x-1),A=Math.abs(d)+Math.abs(O),k=d/A,S=O/A,z=Math.sqrt(k*k+S*S),k/=z,S/=z,s=x-1;s<t;s++)O=o.get(x-1,s),o.set(x-1,s,S*O+k*o.get(x,s)),o.set(x,s,S*o.get(x,s)-k*O);for(i=0;i<=x;i++)O=o.get(i,x-1),o.set(i,x-1,S*O+k*o.get(i,x)),o.set(i,x,S*o.get(i,x)-k*O);for(i=b;i<=E;i++)O=n.get(i,x-1),n.set(i,x-1,S*O+k*n.get(i,x)),n.set(i,x,S*n.get(i,x)-k*O)}else r[x-1]=d+k,r[x]=d+k,e[x-1]=O,e[x]=-O;x-=2,j=0}else{if(d=o.get(x,x),f=0,l=0,u<x&&(f=o.get(x-1,x-1),l=o.get(x,x-1)*o.get(x-1,x)),10===j){for(N+=d,i=b;i<=x;i++)o.set(i,i,o.get(i,i)-d);A=Math.abs(o.get(x,x-1))+Math.abs(o.get(x-1,x-2)),d=f=.75*A,l=-.4375*A*A}if(30===j&&(A=(f-d)/2,A=A*A+l,A>0)){for(A=Math.sqrt(A),f<d&&(A=-A),A=d-l/((f-d)/2+A),i=b;i<=x;i++)o.set(i,i,o.get(i,i)-A);N+=A,d=f=l=.964}for(j+=1,c=x-2;c>=u&&(O=o.get(c,c),z=d-O,A=f-O,k=(z*A-l)/o.get(c+1,c)+o.get(c,c+1),S=o.get(c+1,c+1)-O-z-A,z=o.get(c+2,c+1),A=Math.abs(k)+Math.abs(S)+Math.abs(z),k/=A,S/=A,z/=A,c!==u)&&!(Math.abs(o.get(c,c-1))*(Math.abs(S)+Math.abs(z))<M*(Math.abs(k)*(Math.abs(o.get(c-1,c-1))+Math.abs(O)+Math.abs(o.get(c+1,c+1)))));)c--;for(i=c+2;i<=x;i++)o.set(i,i-2,0),i>c+2&&o.set(i,i-3,0);for(a=c;a<=x-1&&(y=a!==x-1,a!==c&&(k=o.get(a,a-1),S=o.get(a+1,a-1),z=y?o.get(a+2,a-1):0,d=Math.abs(k)+Math.abs(S)+Math.abs(z),0!==d&&(k/=d,S/=d,z/=d)),0!==d);a++)if(A=Math.sqrt(k*k+S*S+z*z),k<0&&(A=-A),0!==A){for(a!==c?o.set(a,a-1,-A*d):u!==c&&o.set(a,a-1,-o.get(a,a-1)),k+=A,d=k/A,f=S/A,O=z/A,S/=k,z/=k,s=a;s<t;s++)k=o.get(a,s)+S*o.get(a+1,s),y&&(k+=z*o.get(a+2,s),o.set(a+2,s,o.get(a+2,s)-k*O)),o.set(a,s,o.get(a,s)-k*d),o.set(a+1,s,o.get(a+1,s)-k*f);for(i=0;i<=Math.min(x,a+3);i++)k=d*o.get(i,a)+f*o.get(i,a+1),y&&(k+=O*o.get(i,a+2),o.set(i,a+2,o.get(i,a+2)-k*z)),o.set(i,a,o.get(i,a)-k),o.set(i,a+1,o.get(i,a+1)-k*S);for(i=b;i<=E;i++)k=d*n.get(i,a)+f*n.get(i,a+1),y&&(k+=O*n.get(i,a+2),n.set(i,a+2,n.get(i,a+2)-k*z)),n.set(i,a,n.get(i,a)-k),n.set(i,a+1,n.get(i,a+1)-k*S)}}}if(0===_)return;for(x=t-1;x>=0;x--)if(k=r[x],S=e[x],0===S)for(u=x,o.set(x,x,1),i=x-1;i>=0;i--){for(l=o.get(i,i)-k,z=0,s=u;s<=x;s++)z+=o.get(i,s)*o.get(s,x);if(e[i]<0)O=l,A=z;else if(u=i,0===e[i]?o.set(i,x,0!==l?-z/l:-z/(M*_)):(d=o.get(i,i+1),f=o.get(i+1,i),S=(r[i]-k)*(r[i]-k)+e[i]*e[i],h=(d*A-O*z)/S,o.set(i,x,h),o.set(i+1,x,Math.abs(d)>Math.abs(O)?(-z-l*h)/d:(-A-f*h)/O)),h=Math.abs(o.get(i,x)),M*h*h>1)for(s=i;s<=x;s++)o.set(s,x,o.get(s,x)/h)}else if(S<0)for(u=x-1,Math.abs(o.get(x,x-1))>Math.abs(o.get(x-1,x))?(o.set(x-1,x-1,S/o.get(x,x-1)),o.set(x-1,x,-(o.get(x,x)-k)/o.get(x,x-1))):(w=P(0,-o.get(x-1,x),o.get(x-1,x-1)-k,S),o.set(x-1,x-1,w[0]),o.set(x-1,x,w[1])),o.set(x,x-1,0),o.set(x,x,1),i=x-2;i>=0;i--){for(g=0,p=0,s=u;s<=x;s++)g+=o.get(i,s)*o.get(s,x-1),p+=o.get(i,s)*o.get(s,x);if(l=o.get(i,i)-k,e[i]<0)O=l,z=g,A=p;else if(u=i,0===e[i]?(w=P(-g,-p,l,S),o.set(i,x-1,w[0]),o.set(i,x,w[1])):(d=o.get(i,i+1),f=o.get(i+1,i),v=(r[i]-k)*(r[i]-k)+e[i]*e[i]-S*S,m=2*(r[i]-k)*S,0===v&&0===m&&(v=M*_*(Math.abs(l)+Math.abs(S)+Math.abs(d)+Math.abs(f)+Math.abs(O))),w=P(d*z-O*g+S*p,d*A-O*p-S*g,v,m),o.set(i,x-1,w[0]),o.set(i,x,w[1]),Math.abs(d)>Math.abs(O)+Math.abs(S)?(o.set(i+1,x-1,(-g-l*o.get(i,x-1)+S*o.get(i,x))/d),o.set(i+1,x,(-p-l*o.get(i,x)-S*o.get(i,x-1))/d)):(w=P(-z-f*o.get(i,x-1),-A-f*o.get(i,x),O,S),o.set(i+1,x-1,w[0]),o.set(i+1,x,w[1]))),h=Math.max(Math.abs(o.get(i,x-1)),Math.abs(o.get(i,x))),M*h*h>1)for(s=i;s<=x;s++)o.set(s,x-1,o.get(s,x-1)/h),o.set(s,x,o.get(s,x)/h)}for(i=0;i<t;i++)if(i<b||i>E)for(s=i;s<t;s++)n.set(i,s,o.get(i,s));for(s=t-1;s>=b;s--)for(i=b;i<=E;i++){for(O=0,a=b;a<=Math.min(s,E);a++)O+=n.get(i,a)*o.get(a,s);n.set(i,s,O)}}(i,u,a,s,t)}this.n=i,this.e=u,this.d=a,this.V=s}get realEigenvalues(){return Array.from(this.d)}get imaginaryEigenvalues(){return Array.from(this.e)}get eigenvectorMatrix(){return this.V}get diagonalMatrix(){let t,e,r=this.n,n=this.e,o=this.d,i=new x(r,r);for(t=0;t<r;t++){for(e=0;e<r;e++)i.set(t,e,0);i.set(t,t,o[t]),n[t]>0?i.set(t,t+1,n[t]):n[t]<0&&i.set(t,t-1,n[t])}return i}}function P(t,e,r,n){let o,i;return Math.abs(r)>Math.abs(n)?(o=n/r,i=r+o*n,[(t+o*e)/i,(e-o*t)/i]):(o=r/n,i=n+o*r,[(o*t+e)/i,(o*e-t)/i])}class T{constructor(t){if(!(t=k.checkMatrix(t)).isSymmetric())throw new Error("Matrix is not symmetric");let e,r,n,o=t,i=o.rows,s=new x(i,i),a=!0;for(r=0;r<i;r++){let t=0;for(n=0;n<r;n++){let i=0;for(e=0;e<n;e++)i+=s.get(n,e)*s.get(r,e);i=(o.get(r,n)-i)/s.get(n,n),s.set(r,n,i),t+=i*i}for(t=o.get(r,r)-t,a&&=t>0,s.set(r,r,Math.sqrt(Math.max(t,0))),n=r+1;n<i;n++)s.set(r,n,0)}this.L=s,this.positiveDefinite=a}isPositiveDefinite(){return this.positiveDefinite}solve(t){t=k.checkMatrix(t);let e=this.L,r=e.rows;if(t.rows!==r)throw new Error("Matrix dimensions do not match");if(!1===this.isPositiveDefinite())throw new Error("Matrix is not positive definite");let n,o,i,s=t.columns,a=t.clone();for(i=0;i<r;i++)for(o=0;o<s;o++){for(n=0;n<i;n++)a.set(i,o,a.get(i,o)-a.get(n,o)*e.get(i,n));a.set(i,o,a.get(i,o)/e.get(i,i))}for(i=r-1;i>=0;i--)for(o=0;o<s;o++){for(n=i+1;n<r;n++)a.set(i,o,a.get(i,o)-a.get(n,o)*e.get(n,i));a.set(i,o,a.get(i,o)/e.get(i,i))}return a}get lowerTriangularMatrix(){return this.L}}class F{constructor(e,r={}){e=k.checkMatrix(e);let{Y:n}=r;const{scaleScores:o=!1,maxIterations:i=1e3,terminationCriteria:s=1e-10}=r;let a;if(n){if(n=t.isAnyArray(n)&&"number"==typeof n[0]?x.columnVector(n):k.checkMatrix(n),n.rows!==e.rows)throw new Error("Y should have the same number of rows as X");a=n.getColumnVector(0)}else a=e.getColumnVector(0);let u,c,h,l,d=1;for(let t=0;t<i&&d>s;t++)h=e.transpose().mmul(a).div(a.transpose().mmul(a).get(0,0)),h=h.div(h.norm()),u=e.mmul(h).div(h.transpose().mmul(h).get(0,0)),t>0&&(d=u.clone().sub(l).pow(2).sum()),l=u.clone(),n?(c=n.transpose().mmul(u).div(u.transpose().mmul(u).get(0,0)),c=c.div(c.norm()),a=n.mmul(c).div(c.transpose().mmul(c).get(0,0))):a=u;if(n){let t=e.transpose().mmul(u).div(u.transpose().mmul(u).get(0,0));t=t.div(t.norm());let r=e.clone().sub(u.clone().mmul(t.transpose())),o=a.transpose().mmul(u).div(u.transpose().mmul(u).get(0,0)),i=n.clone().sub(u.clone().mulS(o.get(0,0)).mmul(c.transpose()));this.t=u,this.p=t.transpose(),this.w=h.transpose(),this.q=c,this.u=a,this.s=u.transpose().mmul(u),this.xResidual=r,this.yResidual=i,this.betas=o}else this.w=h.transpose(),this.s=u.transpose().mmul(u).sqrt(),this.t=o?u.clone().div(this.s.get(0,0)):u,this.xResidual=e.sub(u.mmul(h.transpose()))}}return Vy.AbstractMatrix=m,Vy.CHO=T,Vy.CholeskyDecomposition=T,Vy.DistanceMatrix=E,Vy.EVD=R,Vy.EigenvalueDecomposition=R,Vy.LU=S,Vy.LuDecomposition=S,Vy.Matrix=x,Vy.MatrixColumnSelectionView=class extends M{constructor(t,e){d(t,e),super(t,t.rows,e.length),this.columnIndices=e}set(t,e,r){return this.matrix.set(t,this.columnIndices[e],r),this}get(t,e){return this.matrix.get(t,this.columnIndices[e])}},Vy.MatrixColumnView=class extends M{constructor(t,e){u(t,e),super(t,t.rows,1),this.column=e}set(t,e,r){return this.matrix.set(t,this.column,r),this}get(t){return this.matrix.get(t,this.column)}},Vy.MatrixFlipColumnView=class extends M{constructor(t){super(t,t.rows,t.columns)}set(t,e,r){return this.matrix.set(t,this.columns-e-1,r),this}get(t,e){return this.matrix.get(t,this.columns-e-1)}},Vy.MatrixFlipRowView=class extends M{constructor(t){super(t,t.rows,t.columns)}set(t,e,r){return this.matrix.set(this.rows-t-1,e,r),this}get(t,e){return this.matrix.get(this.rows-t-1,e)}},Vy.MatrixRowSelectionView=class extends M{constructor(t,e){l(t,e),super(t,e.length,t.columns),this.rowIndices=e}set(t,e,r){return this.matrix.set(this.rowIndices[t],e,r),this}get(t,e){return this.matrix.get(this.rowIndices[t],e)}},Vy.MatrixRowView=class extends M{constructor(t,e){a(t,e),super(t,1,t.columns),this.row=e}set(t,e,r){return this.matrix.set(this.row,e,r),this}get(t,e){return this.matrix.get(this.row,e)}},Vy.MatrixSelectionView=N,Vy.MatrixSubView=class extends M{constructor(t,e,r,n,o){f(t,e,r,n,o),super(t,r-e+1,o-n+1),this.startRow=e,this.startColumn=n}set(t,e,r){return this.matrix.set(this.startRow+t,this.startColumn+e,r),this}get(t,e){return this.matrix.get(this.startRow+t,this.startColumn+e)}},Vy.MatrixTransposeView=class extends M{constructor(t){super(t,t.columns,t.rows)}set(t,e,r){return this.matrix.set(e,t,r),this}get(t,e){return this.matrix.get(e,t)}},Vy.NIPALS=F,Vy.Nipals=F,Vy.QR=A,Vy.QrDecomposition=A,Vy.SVD=O,Vy.SingularValueDecomposition=O,Vy.SymmetricMatrix=b,Vy.WrapperMatrix1D=_,Vy.WrapperMatrix2D=k,Vy.correlation=function(e,r=e,n={}){e=new x(e);let o=!1;if("object"!=typeof r||x.isMatrix(r)||t.isAnyArray(r)?r=new x(r):(n=r,r=e,o=!0),e.rows!==r.rows)throw new TypeError("Both matrices must have the same number of rows");const{center:i=!0,scale:s=!0}=n;i&&(e.center("column"),o||r.center("column")),s&&(e.scale("column"),o||r.scale("column"));const a=e.standardDeviation("column",{unbiased:!0}),u=o?a:r.standardDeviation("column",{unbiased:!0}),c=e.transpose().mmul(r);for(let t=0;t<c.rows;t++)for(let r=0;r<c.columns;r++)c.set(t,r,c.get(t,r)*(1/(a[t]*u[r]))*(1/(e.rows-1)));return c},Vy.covariance=function(e,r=e,n={}){e=new x(e);let o=!1;if("object"!=typeof r||x.isMatrix(r)||t.isAnyArray(r)?r=new x(r):(n=r,r=e,o=!0),e.rows!==r.rows)throw new TypeError("Both matrices must have the same number of rows");const{center:i=!0}=n;i&&(e=e.center("column"),o||(r=r.center("column")));const s=e.transpose().mmul(r);for(let t=0;t<s.rows;t++)for(let r=0;r<s.columns;r++)s.set(t,r,s.get(t,r)*(1/(e.rows-1)));return s},Vy.default=x,Vy.determinant=function t(e){if((e=x.checkMatrix(e)).isSquare()){if(0===e.columns)return 1;let r,n,o,i;if(2===e.columns)return r=e.get(0,0),n=e.get(0,1),o=e.get(1,0),i=e.get(1,1),r*i-n*o;if(3===e.columns){let i,s,a;return i=new N(e,[1,2],[1,2]),s=new N(e,[1,2],[0,2]),a=new N(e,[1,2],[0,1]),r=e.get(0,0),n=e.get(0,1),o=e.get(0,2),r*t(i)-n*t(s)+o*t(a)}return new S(e).determinant}throw Error("determinant can only be calculated for a square matrix")},Vy.inverse=function(t,e=!1){return t=k.checkMatrix(t),e?new O(t).inverse():j(t,x.eye(t.rows))},Vy.linearDependencies=function(t,e={}){const{thresholdValue:r=1e-9,thresholdError:n=1e-9}=e;let o=(t=x.checkMatrix(t)).rows,i=new x(o,o);for(let e=0;e<o;e++){let s=x.columnVector(t.getRow(e)),a=t.subMatrixRow(C(o,e)).transpose(),u=new O(a).solve(s),c=x.sub(s,a.mmul(u)).abs().max();i.setRow(e,I(c,u,e,r,n))}return i},Vy.pseudoInverse=function(t,e=Number.EPSILON){if((t=x.checkMatrix(t)).isEmpty())return t.transpose();let r=new O(t,{autoTranspose:!0}),n=r.leftSingularVectors,o=r.rightSingularVectors,i=r.diagonal;for(let t=0;t<i.length;t++)Math.abs(i[t])>e?i[t]=1/i[t]:i[t]=0;return o.mmul(x.diag(i).mmul(n.transpose()))},Vy.solve=j,Vy.wrap=function(e,r){if(t.isAnyArray(e))return e[0]&&t.isAnyArray(e[0])?new k(e):new _(e,r);throw new Error("the argument is not an array")},Vy}var Xy=Hy(),Qy=es(Xy);const Jy=Xy.Matrix,Ky=Xy.SingularValueDecomposition;Qy.Matrix?Qy.Matrix:Xy.Matrix;const Zy={center:[0,0],linkDistance:50};class tw extends lt{constructor(){super(...arguments),this.id="mds"}getDefaultOptions(){return Zy}layout(){return r(this,void 0,void 0,function*(){const{linkDistance:t=Zy.linkDistance}=this.options,{center:e}=ht(this.options),r=this.model.nodeCount();if(0===r||1===r)return void $(this.model,e);const n=Y(G(this.model,!1));ew(n);const o=U(n,t),i=rw(o);let s=0;this.model.forEachNode(t=>{const r=i[s++];t.x=r[0]+e[0],t.y=r[1]+e[1]})})}}const ew=t=>{let e=Number.NEGATIVE_INFINITY;const r=[],n=t.length;for(let o=0;o<n;o++){const n=t[o],i=n.length;for(let t=0;t<i;t++){const i=n[t];i===1/0?r.push([o,t]):e<i&&(e=i)}}for(let n=0;n<r.length;n++){const[o,i]=r[n];t[o][i]=e}},rw=(t,e=2,r=Zy.linkDistance)=>{try{const r=t.length,n=new Jy(r,r);for(let e=0;e<r;e++)for(let o=0;o<r;o++){const r=t[e][o];n.set(e,o,-.5*r*r)}const o=n.mean("row"),i=n.mean("column"),s=n.mean();n.add(s).subRowVector(o).subColumnVector(i);const a=new Ky(n),u=Jy.sqrt(a.diagonalMatrix).diagonal(),c=a.leftSingularVectors,h=u,l=[];for(let t=0;t<c.rows;t++){const r=[];for(let n=0;n<e;n++)r.push(c.get(t,n)*h[n]);l.push(r)}return l}catch(e){const n=[];for(let e=0;e<t.length;e++){const t=Math.random()*r,e=Math.random()*r;n.push([t,e])}return n}},nw={maxIteration:10,width:10,speed:100,gravity:10,k:5},ow=(t,e,r,n,o)=>{let i=0;t.forEachNode(s=>{let a=0;t.forEachNode(t=>{if(a<=i)return void a++;if(s.id===t.id)return;if(n.get(s.id)!==n.get(t.id))return;let u=s.x-t.x,c=s.y-t.y,h=Math.sqrt(u*u+c*c);if(0===h){h=1;const t=i>a?1:-1;u=.01*t,c=.01*t}const l=Math.max(...ct(o(s._original)));if(h<Math.max(...ct(o(t._original)))/2+l/2){const n=r*r/h,o=e.get(s.id),i=e.get(t.id),a=u/h*n,l=c/h*n;e.set(s.id,{x:o.x+a,y:o.y+l}),e.set(t.id,{x:i.x-a,y:i.y-l})}a++}),i++})},iw=(t,e,r,n,o,i,s)=>{n&&t.forEachNode(t=>{const r=t.x-o.x,n=t.y-o.y,i=Math.sqrt(r*r+n*n);let s=n/i,a=-r/i;const u=e.get(t.id),c=Math.sqrt(u.x*u.x+u.y*u.y);let h=Math.acos((s*u.x+a*u.y)/c);h>Math.PI/2&&(h-=Math.PI/2,s*=-1,a*=-1);const l=Math.cos(h)*c;e.set(t.id,{x:s*l,y:a*l})});let a=0,u=0;return t.forEachNode(t=>{if(t.id===o.id)return;const c=e.get(t.id),h=Math.sqrt(c.x*c.x+c.y*c.y);if(h>0){const e=Math.min(i*(r/800),h);if(t.x+=c.x/h*e,t.y+=c.y/h*e,n){let e=t.x-o.x,r=t.y-o.y;const n=Math.sqrt(e*e+r*r);e=e/n*s.get(t.id),r=r/n*s.get(t.id),t.x=o.x+e,t.y=o.y+r}a+=e,u++}}),u>0?a/u:0},sw={focusNode:null,linkDistance:50,maxIteration:1e3,maxPreventOverlapIteration:200,preventOverlap:!1,sortStrength:10,strictRadial:!0,unitRadius:null};class aw extends lt{constructor(){super(...arguments),this.id="radial"}getDefaultOptions(){return sw}layout(){return r(this,void 0,void 0,function*(){const{width:t,height:e,center:r}=ht(this.options),n=this.model.nodeCount();if(!n||1===n)return $(this.model,r);const{focusNode:o,linkDistance:i=sw.linkDistance,maxIteration:s=sw.maxIteration,maxPreventOverlapIteration:a=sw.maxPreventOverlapIteration,nodeSize:u,nodeSpacing:c,preventOverlap:h,sortBy:l,sortStrength:d=sw.sortStrength,strictRadial:f,unitRadius:g}=this.options,p=o&&this.model.node(o)||this.model.firstNode(),v=this.model.nodeIndexOf(p.id),m=Y(G(this.model,!1)),y=lw(m,v);hw(m,v,y+1);const w=m[v],x=(t-r[0]>r[0]?r[0]:t-r[0])||t/2,b=(e-r[1]>r[1]?r[1]:e-r[1])||e/2,E=Math.min(x,b),M=Math.max(...w),N=[],_=new Map,k=null!=g?g:E/M;w.forEach((t,e)=>{const r=t*k;N.push(r),_.set(this.model.nodeAt(e).id,r)});const S=uw(this.model,m,i,N,k,l,d),z=rw(S,2,i),A=z[v];let O=0;if(this.model.forEachNode(t=>{const e=z[O];t.x=e[0]-A[0],t.y=e[1]-A[1],O++}),this.run(s,S,N,v),this.model.forEachNode(t=>{t.x+=r[0],t.y+=r[1]}),h){const e={nodeSizeFunc:pt(u,c),radiiMap:_,width:t,strictRadial:Boolean(f),focusNode:p,maxIteration:a,k:n/4.5};((t,e)=>{const r=Object.assign(Object.assign({},nw),e),{maxIteration:n,width:o,k:i,speed:s=nw.speed,strictRadial:a,focusNode:u,radiiMap:c,nodeSizeFunc:h}=r,l=.002*i,d=new Map,f=o/10;for(let e=0;e<n&&(t.forEachNode(t=>{d.set(t.id,{x:0,y:0})}),ow(t,d,i,c,h),!(iw(t,d,s,a,u,f,c)<l));e++);})(this.model,e)}})}run(t,e,r,n){const o=cw(e),i=this.model.nodeCount(),s=this.model.nodes(),a=new Float64Array(i),u=new Float64Array(i);for(let t=0;t<i;t++)a[t]=s[t].x,u[t]=s[t].y;for(let c=0;c<=t;c++){const h=c/t,l=1-h;for(let t=0;t<i;t++){if(t===n)continue;const c=a[t],d=u[t],f=Math.sqrt(c*c+d*d),g=0===f?0:1/f;let p=0,v=0,m=0;for(let r=0;r<i;r++){if(t===r)continue;const n=a[r],i=u[r],s=Math.sqrt((c-n)*(c-n)+(d-i)*(d-i)),h=0===s?0:1/s,l=e[r][t];m+=o[t][r],p+=o[t][r]*(n+l*(c-n)*h),v+=o[t][r]*(i+l*(d-i)*h)}const y=0===r[t]?0:1/r[t];m*=l,m+=h*y*y,p*=l,p+=h*y*c*g,v*=l,v+=h*y*d*g,a[t]=p/m,u[t]=v/m,s[t].x=a[t],s[t].y=u[t]}}}}const uw=(t,e,r,n,o,i,s)=>{const a=e.length,u=new Array(a),c=new Array(a);for(let t=0;t<a;t++)c[t]=n[t]/o;const h=(r+o)/2,l=new Map,d="function"==typeof i?i:null,f="data"===i;for(let o=0;o<a;o++){const i=e[o],g=new Array(a);u[o]=g;const p=c[o]||1;for(let e=0;e<a;e++){if(o===e){g[e]=0;continue}const a=i[e];if(n[o]===n[e])if(f)g[e]=a*Math.abs(o-e)*s/p;else if(d){const r=t.nodeAt(o),n=t.nodeAt(e);let i=l.get(r.id);if(void 0===i){const t=d(r._original)||0;i="string"==typeof t?t.charCodeAt(0):Number(t||0),l.set(r.id,i)}let u=l.get(n.id);if(void 0===u){const t=d(n._original)||0;u="string"==typeof t?t.charCodeAt(0):Number(t||0),l.set(n.id,u)}g[e]=a*Math.abs(i-u)*s/p}else g[e]=a*r/p;else g[e]=a*h}}return u},cw=t=>{const e=t.length,r=t[0].length,n=[];for(let o=0;o<e;o++){const e=[];for(let n=0;n<r;n++)0!==t[o][n]?e.push(1/(t[o][n]*t[o][n])):e.push(0);n.push(e)}return n},hw=(t,e,r)=>{const n=t.length;for(let o=0;o<n;o++)if(t[e][o]===1/0){t[e][o]=r,t[o][e]=r;for(let i=0;i<n;i++)t[o][i]!==1/0&&t[e][i]===1/0&&(t[e][i]=r+t[o][i],t[i][e]=r+t[o][i])}for(let r=0;r<n;r++)if(r!==e)for(let o=0;o<n;o++)if(t[r][o]===1/0){let n=Math.abs(t[e][r]-t[e][o]);n=0===n?1:n,t[r][o]=n}},lw=(t,e)=>{const r=t[e];let n=0;for(let t=0;t<r.length;t++)r[t]!==1/0&&(n=Math.max(n,r[t]));return n};class dw extends lt{constructor(){super(...arguments),this.id="random"}getDefaultOptions(){return{center:[0,0],width:300,height:300}}layout(){return r(this,void 0,void 0,function*(){const{width:t,height:e,center:r}=ht(this.options),n=t=>.9*(Math.random()-.5)*t;this.model.forEachNode(o=>{o.x=n(t)+r[0],o.y=n(e)+r[1]})})}}const fw={"antv-dagre":cr,"d3-force-3d":Kn,"d3-force":ln,"force-atlas2":Oy,circular:dr,concentric:gr,dagre:gy,force:Ny,fruchterman:Iy,grid:Ry,mds:tw,radial:aw,random:dw},gw={layout:t=>t?{type:"concentric",preventOverlap:!0}:{type:"force",preventOverlap:!0},nodeSize:20,nodeSpacing:10,comboPadding:20,comboSpacing:80},pw="root";t.AntVDagreLayout=cr,t.BaseLayout=lt,t.CircularLayout=dr,t.ComboCombinedLayout=class extends lt{constructor(){super(...arguments),this.id="combo-combined",this.relativePositions=new Map,this.getParentId=t=>t.parentId||pw}getDefaultOptions(){return gw}layout(){return r(this,void 0,void 0,function*(){const{center:t}=ht(this.options);this.resetLayoutState();const e=this.buildHierarchyTree();yield this.layoutHierarchy(e),this.convertToGlobalPositions(e,t),this.applyPositionsToModel(e)})}isCombo(t){return Boolean(t.isCombo)}resetLayoutState(){this.relativePositions.clear()}layoutHierarchy(t){return r(this,void 0,void 0,function*(){for(const e of t.children||[])this.isCombo(e)&&(yield this.layoutHierarchy(e));const e=t.children||[];if(0===e.length)return t.size=[0,0,0],void(t.parentId=t.id===pw?null:t.parentId);const n=this.getLayoutConfig(t),{type:o}=n,i=function(t,e){var r={};for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&e.indexOf(n)<0&&(r[n]=t[n]);if(null!=t&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(n=Object.getOwnPropertySymbols(t);o<n.length;o++)e.indexOf(n[o])<0&&Object.prototype.propertyIsEnumerable.call(t,n[o])&&(r[n[o]]=t[n[o]])}return r}(n,["type"]),s=new(this.getLayoutClass(o))(i),a=this.createTemporaryGraphData(e);yield function(t,e,n={}){var o;return r(this,void 0,void 0,function*(){return function(t){return!!t.tick&&!!t.stop}(t)?(t.execute(e,n),t.stop(),t.tick(null!==(o=n.iterations)&&void 0!==o?o:300)):yield t.execute(e,n)})}(s,a,{});const u=s.model.nodes();this.recordRelativePositions(u,t);const{center:c,width:h,height:l}=this.calculateComboBounds(t);t.size=[h,l,0],(t.children||[]).forEach(t=>{const e=this.relativePositions.get(t.id);if(!e)return;const r=Object.assign(Object.assign({},e),{x:e.x-c[0],y:e.y-c[1]});this.relativePositions.set(t.id,r)})})}recordRelativePositions(t,e){const r=this.calculateComboCenter(t);t.forEach(t=>{this.relativePositions.set(t.id,{x:t.x-r[0],y:t.y-r[1],relativeTo:String(e.id)})})}buildHierarchyTree(){const t={id:pw,isCombo:!0,children:[],parentId:null},e=new Map;return e.set(pw,t),this.model.forEachNode(t=>{if(this.isCombo(t)){const r=Object.assign(Object.assign({},t),{children:[],parentId:this.getParentId(t)});e.set(String(t.id),r)}}),this.model.forEachNode(t=>{const r=e.get(this.getParentId(t));if(this.isCombo(t)){const n=e.get(String(t.id));r&&n&&(r.children.push(n),n.parentId=r.id)}else r&&r.children.push(Object.assign(Object.assign({},t),{children:[],parentId:this.getParentId(t)}))}),t}convertToGlobalPositions(t,e){var r,n;const o=t.id===pw?null:this.relativePositions.get(t.id),i=e[0]+(null!==(r=null==o?void 0:o.x)&&void 0!==r?r:0),s=e[1]+(null!==(n=null==o?void 0:o.y)&&void 0!==n?n:0);t.x=i,t.y=s,(t.children||[]).forEach(t=>{var e,r;const n=this.relativePositions.get(t.id);t.x=i+(null!==(e=null==n?void 0:n.x)&&void 0!==e?e:0),t.y=s+(null!==(r=null==n?void 0:n.y)&&void 0!==r?r:0),t.size=this.getNodeLikeSize(t,!1),this.isCombo(t)&&this.convertToGlobalPositions(t,[i,s])})}getLayoutConfig(t){const{layout:e}=this.options;if("function"==typeof e){const r=t.id===pw?null:t.id;return this.normalizeLayoutConfig(e(r))}return this.normalizeLayoutConfig(e)}normalizeLayoutConfig(t){const e=Object.assign(Object.assign({type:"concentric"},ht(this.options)),{nodeSize:t=>t.size,nodeSpacing:0});return t?"string"==typeof t?Object.assign(Object.assign({},e),{type:t}):Object.assign(Object.assign({},e),t):e}getLayoutClass(t){return fw[t]||fw.concentric}createTemporaryGraphData(t){const e=t.map(t=>Object.assign(Object.assign({},t),{size:this.getNodeLikeSize(t)})),r=new Set(t.map(t=>String(t.id))),n=[],o=t=>{let e=String(t);const n=new Set;for(;e&&!n.has(e);){if(r.has(e))return e;n.add(e);const t=this.model.node(e),o=null==t?void 0:t.parentId;e=null==o?null:String(o)}return null};return this.model.forEachEdge(t=>{const e=o(String(t.source)),r=o(String(t.target));e&&r&&e!==r&&n.push({source:e,target:r})}),{nodes:e,edges:n}}calculateComboCenter(t){if(0===t.length)return[0,0];const e=new Map;t.forEach(t=>{const r=this.getNodeLikeSize(t);e.set(t.id,r)});let r=1/0,n=1/0,o=-1/0,i=-1/0;return t.forEach(t=>{const[s=0,a=0]=e.get(t.id);r=Math.min(r,t.x-s/2),n=Math.min(n,t.y-a/2),o=Math.max(o,t.x+s/2),i=Math.max(i,t.y+a/2)}),Number.isFinite(r)&&Number.isFinite(n)?[(r+o)/2,(n+i)/2]:[0,0]}calculateComboBounds(t){const e=t.children||[];if(0===e.length)return{center:[0,0],width:0,height:0};let r=1/0,n=1/0,o=-1/0,i=-1/0;if(e.forEach(t=>{var e,s;const a=this.relativePositions.get(t.id),u=null!==(e=null==a?void 0:a.x)&&void 0!==e?e:0,c=null!==(s=null==a?void 0:a.y)&&void 0!==s?s:0,[h,l]=this.getNodeLikeSize(t);r=Math.min(r,u-h/2),n=Math.min(n,c-l/2),o=Math.max(o,u+h/2),i=Math.max(i,c+l/2)}),!Number.isFinite(r)||!Number.isFinite(n))return{center:[0,0],width:0,height:0};const s=ft(this.options.comboPadding,20)(t._original);return{center:[(r+o)/2,(n+i)/2],width:o-r+2*s,height:i-n+2*s}}getNodeLikeSize(t,e=!0){return this.isCombo(t)?this.getComboSize(t,e):this.getNodeSize(t,e)}getNodeSize(t,e=!0){const{nodeSize:r,nodeSpacing:n}=this.options;return ct(pt(r,e?n:0)(t._original))}getComboSize(t,e=!0){const r=ft(this.options.comboSpacing,0),n=e?r(t._original):0,[o,i]=t.size;return[o+n/2,i+n/2,0]}applyPositionsToModel(t){const e=t=>{const e=this.model.node(t.id);e&&(e.x=t.x,e.y=t.y,t.size&&(e.size=t.size))},r=t=>{t.id!==pw&&e(t),(t.children||[]).forEach(t=>{this.isCombo(t)?r(t):e(t)})};r(t)}},t.ConcentricLayout=gr,t.D3Force3DLayout=Kn,t.D3ForceLayout=ln,t.DagreLayout=gy,t.ForceAtlas2Layout=Oy,t.ForceLayout=Ny,t.FruchtermanLayout=Iy,t.GridLayout=Ry,t.LayoutModel=Q,t.MDSLayout=tw,t.RadialLayout=aw,t.RandomLayout=dw,t.applySingleNodeLayout=$,t.assignDefined=et,t.floydWarshall=t=>{const e=t.length,r=Array.from({length:e},()=>new Array(e));for(let n=0;n<e;n++){const o=t[n],i=r[n];for(let t=0;t<e;t++)i[t]=n===t?0:o[t]>0?o[t]:1/0}for(let t=0;t<e;t++){const n=r[t];for(let o=0;o<e;o++){const i=r[o],s=i[t];if(s!==1/0)for(let t=0;t<e;t++){const e=n[t];if(e===1/0)continue;const r=s+e;r<i[t]&&(i[t]=r)}}}return r},t.getAdjList=G,t.getAdjMatrix=(t,e)=>{const r=t.nodeCount(),n=Array.from({length:r},()=>new Array(r)),o={};let i=0;return t.forEachNode(t=>{o[t.id]=i++}),t.forEachEdge(t=>{const r=o[t.source],i=o[t.target];void 0!==r&&void 0!==i&&(n[r][i]=1,e||(n[i][r]=1))}),n},t.getEuclideanDistance=(t,e)=>Math.sqrt((t.x-e.x)*(t.x-e.x)+(t.y-e.y)*(t.y-e.y)),t.getLayoutBBox=t=>{let e=1/0,r=1/0,n=-1/0,o=-1/0;return t.forEach(t=>{let i=t.data.size;B(i)?1===i.length&&(i=[i[0],i[0]]):void 0===i||isNaN(i)?i=[30,30]:l(i)&&(i=[i,i]);const s=[i[0]/2,i[1]/2],a=t.data.x-s[0],u=t.data.x+s[0],c=t.data.y-s[1],h=t.data.y+s[1];e>a&&(e=a),r>c&&(r=c),n<u&&(n=u),o<h&&(o=h)}),{minX:e,minY:r,maxX:n,maxY:o}},t.getNestedValue=tt,t.graphTreeDfs=W,t.initModelNodePosition=Z,t.isArray=B,t.johnson=Y,t.mergeOptions=rt,t.normalizeViewport=ht,t.orderByDegree=ot,t.orderById=it,t.orderBySorter=st,t.orderByTopology=at,t.parsePoint=ut,t.parseSize=ct,t.registry=fw,t.scaleMatrix=U,t.setNestedValue=function(t,e,r){!function(t,e,r){var n=t,o=h(e)?e.split("."):e;o.forEach(function(t,e){e<o.length-1?(s(n[t])||(n[t]=l(o[e+1])?[]:{}),n=n[t]):n[t]=r})}(t,String(e).split("."),r)},t.toPointObject=function(t){var e;return{x:t[0],y:t[1],z:null!==(e=t[2])&&void 0!==e?e:0}}});
|
|
6
|
+
*/const Y=Symbol("Comlink.proxy"),H=Symbol("Comlink.endpoint"),X=Symbol("Comlink.releaseProxy"),Q=Symbol("Comlink.finalizer"),J=Symbol("Comlink.thrown"),K=t=>"object"==typeof t&&null!==t||"function"==typeof t,Z=new Map([["proxy",{canHandle:t=>K(t)&&t[Y],serialize(t){const{port1:e,port2:r}=new MessageChannel;return tt(t,e),[r,[r]]},deserialize:t=>(t.start(),rt(t))}],["throw",{canHandle:t=>K(t)&&J in t,serialize({value:t}){let e;return e=t instanceof Error?{isError:!0,value:{message:t.message,name:t.name,stack:t.stack}}:{isError:!1,value:t},[e,[]]},deserialize(t){if(t.isError)throw Object.assign(new Error(t.value.message),t.value);throw t.value}}]]);function tt(t,e=globalThis,r=["*"]){e.addEventListener("message",function n(o){if(!o||!o.data)return;if(!function(t,e){for(const r of t){if(e===r||"*"===r)return!0;if(r instanceof RegExp&&r.test(e))return!0}return!1}(r,o.origin))return void console.warn(`Invalid origin '${o.origin}' for comlink proxy`);const{id:i,type:s,path:a}=Object.assign({path:[]},o.data),u=(o.data.argumentList||[]).map(lt);let c;try{const e=a.slice(0,-1).reduce((t,e)=>t[e],t),r=a.reduce((t,e)=>t[e],t);switch(s){case"GET":c=r;break;case"SET":e[a.slice(-1)[0]]=lt(o.data.value),c=!0;break;case"APPLY":c=r.apply(e,u);break;case"CONSTRUCT":c=function(t){return Object.assign(t,{[Y]:!0})}(new r(...u));break;case"ENDPOINT":{const{port1:e,port2:r}=new MessageChannel;tt(t,r),c=function(t,e){return ct.set(t,e),t}(e,[e])}break;case"RELEASE":c=void 0;break;default:return}}catch(t){c={value:t,[J]:0}}Promise.resolve(c).catch(t=>({value:t,[J]:0})).then(r=>{const[o,a]=ht(r);e.postMessage(Object.assign(Object.assign({},o),{id:i}),a),"RELEASE"===s&&(e.removeEventListener("message",n),et(e),Q in t&&"function"==typeof t[Q]&&t[Q]())}).catch(t=>{const[r,n]=ht({value:new TypeError("Unserializable return value"),[J]:0});e.postMessage(Object.assign(Object.assign({},r),{id:i}),n)})}),e.start&&e.start()}function et(t){(function(t){return"MessagePort"===t.constructor.name})(t)&&t.close()}function rt(t,e){const r=new Map;return t.addEventListener("message",function(t){const{data:e}=t;if(!e||!e.id)return;const n=r.get(e.id);if(n)try{n(e)}finally{r.delete(e.id)}}),at(t,r,[],e)}function nt(t){if(t)throw new Error("Proxy has been released and is not useable")}function ot(t){return dt(t,new Map,{type:"RELEASE"}).then(()=>{et(t)})}const it=new WeakMap,st="FinalizationRegistry"in globalThis&&new FinalizationRegistry(t=>{const e=(it.get(t)||0)-1;it.set(t,e),0===e&&ot(t)});function at(t,e,r=[],n=function(){}){let o=!1;const i=new Proxy(n,{get(n,s){if(nt(o),s===X)return()=>{!function(t){st&&st.unregister(t)}(i),ot(t),e.clear(),o=!0};if("then"===s){if(0===r.length)return{then:()=>i};const n=dt(t,e,{type:"GET",path:r.map(t=>t.toString())}).then(lt);return n.then.bind(n)}return at(t,e,[...r,s])},set(n,i,s){nt(o);const[a,u]=ht(s);return dt(t,e,{type:"SET",path:[...r,i].map(t=>t.toString()),value:a},u).then(lt)},apply(n,i,s){nt(o);const a=r[r.length-1];if(a===H)return dt(t,e,{type:"ENDPOINT"}).then(lt);if("bind"===a)return at(t,e,r.slice(0,-1));const[u,c]=ut(s);return dt(t,e,{type:"APPLY",path:r.map(t=>t.toString()),argumentList:u},c).then(lt)},construct(n,i){nt(o);const[s,a]=ut(i);return dt(t,e,{type:"CONSTRUCT",path:r.map(t=>t.toString()),argumentList:s},a).then(lt)}});return function(t,e){const r=(it.get(e)||0)+1;it.set(e,r),st&&st.register(t,e,t)}(i,t),i}function ut(t){const e=t.map(ht);return[e.map(t=>t[0]),(r=e.map(t=>t[1]),Array.prototype.concat.apply([],r))];var r}const ct=new WeakMap;function ht(t){for(const[e,r]of Z)if(r.canHandle(t)){const[n,o]=r.serialize(t);return[{type:"HANDLER",name:e,value:n},o]}return[{type:"RAW",value:t},ct.get(t)||[]]}function lt(t){switch(t.type){case"HANDLER":return Z.get(t.name).deserialize(t.value);case"RAW":return t.value}}function dt(t,e,r,n){return new Promise(o=>{const i=new Array(4).fill(0).map(()=>Math.floor(Math.random()*Number.MAX_SAFE_INTEGER).toString(16)).join("-");e.set(i,o),t.start&&t.start(),t.postMessage(Object.assign({id:i},r),n)})}class ft{constructor(){this.worker=null,this.workerApi=null}execute(t,e,n){return r(this,void 0,void 0,function*(){if(this.worker||(yield this.initWorker()),!this.workerApi)throw new Error("Worker API not initialized");return yield this.workerApi.execute(t,e,n)})}destroy(){this.workerApi&&this.workerApi.destroy(),this.worker&&(this.worker.terminate(),this.worker=null,this.workerApi=null)}initWorker(){return r(this,void 0,void 0,function*(){const t=this.resolveWorkerPath(),e=t.includes("/lib/")||t.endsWith(".mjs")?"module":"classic";this.worker=new Worker(t,{type:e}),this.workerApi=rt(this.worker)})}resolveWorkerPath(){if(void 0!=={url:"undefined"==typeof document&&"undefined"==typeof location?require("url").pathToFileURL(__filename).href:"undefined"==typeof document?location.href:e&&"SCRIPT"===e.tagName.toUpperCase()&&e.src||new URL("index.min.js",document.baseURI).href}&&("undefined"==typeof document&&"undefined"==typeof location?require("url").pathToFileURL(__filename).href:"undefined"==typeof document?location.href:e&&"SCRIPT"===e.tagName.toUpperCase()&&e.src||new URL("index.min.js",document.baseURI).href)){const t=new URL("undefined"==typeof document&&"undefined"==typeof location?require("url").pathToFileURL(__filename).href:"undefined"==typeof document?location.href:e&&"SCRIPT"===e.tagName.toUpperCase()&&e.src||new URL("index.min.js",document.baseURI).href),r=t.href.replace(/\/runtime\/[^/]+\.js$/,"/worker.js");return r!==t.href?r:t.href.replace(/\/[^/]+\.js$/,"/worker.js")}if("undefined"!=typeof document){const t=document.getElementsByTagName("script");for(let e=t.length-1;e>=0;e--){const r=t[e].src;if(r&&(r.includes("index.js")||r.includes("index.min.js")))return r.replace(/index(\.min)?\.js/,"worker.js")}}return"./worker.js"}}class gt{constructor(t){this.supervisor=null,this.initialOptions=this.mergeOptions(this.getDefaultOptions(),t)}get options(){return this.runtimeOptions||this.initialOptions}mergeOptions(t,e){return Object.assign({},t,e||{})}execute(t,e){return r(this,void 0,void 0,function*(){this.runtimeOptions=this.mergeOptions(this.initialOptions,e);const{node:r,edge:n,enableWorker:o}=this.runtimeOptions;this.context=new W(t,{node:r,edge:n}),this.model=this.context.graph;o&&"undefined"!=typeof Worker?yield this.layoutInWorker(t,this.runtimeOptions):yield this.layout(this.runtimeOptions)})}layoutInWorker(t,e){var n;return r(this,void 0,void 0,function*(){try{this.supervisor||(this.supervisor=new ft);const r=yield this.supervisor.execute(this.id,t,e);null===(n=this.context)||void 0===n||n.replace(r)}catch(t){console.error("Layout in worker failed, fallback to main thread layout.",t),yield this.layout(e)}})}forEachNode(t){this.context.forEachNode(t)}forEachEdge(t){this.context.forEachEdge(t)}destroy(){var t;null===(t=this.context)||void 0===t||t.destroy(),this.model=null,this.context=null,this.supervisor&&(this.supervisor.destroy(),this.supervisor=null)}}class pt extends gt{}function vt(t){return!!t.tick&&!!t.stop}class mt{constructor(t={}){this.options=t,this.nodes=new Map,this.edges=new Map,this.inEdges=new Map,this.outEdges=new Map,this.parentMap=new Map,this.childrenMap=new Map,t.tree&&Array.isArray(t.tree)&&t.tree.length>0&&("string"==typeof t.tree[0]?t.tree.forEach(t=>{this.parentMap.set(t,new Map),this.childrenMap.set(t,new Map)}):(this.attachTreeStructure("default"),this.addTree(t.tree))),t.nodes&&t.nodes.forEach(t=>this.addNode(t)),t.edges&&t.edges.forEach(t=>this.addEdge(t))}addNode(t){this.nodes.has(t.id)||(this.nodes.set(t.id,t),this.inEdges.set(t.id,new Set),this.outEdges.set(t.id,new Set))}addNodes(t){t.forEach(t=>this.addNode(t))}getNode(t){return this.nodes.get(t)}hasNode(t){return this.nodes.has(t)}removeNode(t){if(!this.nodes.has(t))return;const e=Array.from(this.inEdges.get(t)||[]),r=Array.from(this.outEdges.get(t)||[]);e.forEach(t=>this.removeEdge(t)),r.forEach(t=>this.removeEdge(t)),this.nodes.delete(t),this.inEdges.delete(t),this.outEdges.delete(t),this.parentMap.forEach(e=>{e.delete(t)}),this.childrenMap.forEach(e=>{e.delete(t)})}getAllNodes(){return Array.from(this.nodes.values())}addEdge(t){if(!this.nodes.has(t.source)||!this.nodes.has(t.target))throw new Error(`Cannot add edge ${t.id}: source ${t.source} or target ${t.target} does not exist`);this.edges.set(t.id,t),this.outEdges.get(t.source).add(t.id),this.inEdges.get(t.target).add(t.id)}addEdges(t){t.forEach(t=>this.addEdge(t))}getEdge(t){return this.edges.get(t)}hasEdge(t){return this.edges.has(t)}removeEdge(t){var e,r;const n=this.edges.get(t);n&&(this.edges.delete(t),null===(e=this.outEdges.get(n.source))||void 0===e||e.delete(t),null===(r=this.inEdges.get(n.target))||void 0===r||r.delete(t))}getAllEdges(){return Array.from(this.edges.values())}updateEdgeData(t,e){const r=this.edges.get(t);r&&Object.assign(r.data,e)}updateNodeData(t,e){const r=this.nodes.get(t);r&&Object.assign(r.data,e)}getRelatedEdges(t,e="both"){const r=[];if("in"===e||"both"===e){const e=this.inEdges.get(t);e&&e.forEach(t=>{const e=this.edges.get(t);e&&r.push(e)})}if("out"===e||"both"===e){const e=this.outEdges.get(t);e&&e.forEach(t=>{const e=this.edges.get(t);e&&r.push(e)})}return r}getSuccessors(t){const e=this.outEdges.get(t);if(!e||0===e.size)return[];const r=[];return e.forEach(t=>{const e=this.edges.get(t);if(e){const t=this.nodes.get(e.target);t&&r.push(t)}}),r.length>0?r:[]}getPredecessors(t){const e=this.inEdges.get(t);if(!e||0===e.size)return[];const r=[];return e.forEach(t=>{const e=this.edges.get(t);if(e){const t=this.nodes.get(e.source);t&&r.push(t)}}),r.length>0?r:[]}getNeighbors(t){const e=[...this.getSuccessors(t)||[],...this.getPredecessors(t)||[]],r=Array.from(new Map(e.map(t=>[t.id,t])).values());return r.length>0?r:[]}attachTreeStructure(t){this.parentMap.has(t)||(this.parentMap.set(t,new Map),this.childrenMap.set(t,new Map))}addTree(t,e){var r,n;const o=e||(null!==(n=null===(r=this.options.tree)||void 0===r?void 0:r[0])&&void 0!==n?n:"default");this.hasTreeStructure(o)||this.attachTreeStructure(o);const i=Array.isArray(t)?t:[t],s=(t,e)=>{this.addNode({id:t.id,data:t.data}),void 0!==e&&this.setParent(t.id,e,o),t.children&&t.children.length>0&&t.children.forEach(e=>{s(e,t.id)})};i.forEach(t=>s(t))}hasTreeStructure(t){return this.parentMap.has(t)}setParent(t,e,r){var n,o,i;const s=r||(null!==(o=null===(n=this.options.tree)||void 0===n?void 0:n[0])&&void 0!==o?o:"default");this.parentMap.has(s)||this.attachTreeStructure(s);const a=this.parentMap.get(s),u=this.childrenMap.get(s),c=a.get(t);void 0!==c&&(null===(i=u.get(c))||void 0===i||i.delete(t)),a.set(t,e),u.has(e)||u.set(e,new Set),u.get(e).add(t)}getParent(t,e){var r,n;const o=e||(null!==(n=null===(r=this.options.tree)||void 0===r?void 0:r[0])&&void 0!==n?n:"default");this.parentMap.has(o)||this.attachTreeStructure(o);const i=this.parentMap.get(o);if(!i)return;const s=i.get(t);return void 0===s?null:this.nodes.get(s)}getChildren(t,e){var r,n;const o=e||(null!==(n=null===(r=this.options.tree)||void 0===r?void 0:r[0])&&void 0!==n?n:"default"),i=this.childrenMap.get(o);if(!i)return[];const s=i.get(t);return s?Array.from(s).map(t=>this.nodes.get(t)).filter(t=>void 0!==t):[]}getRoots(t){var e,r;const n=t||(null!==(r=null===(e=this.options.tree)||void 0===e?void 0:e[0])&&void 0!==r?r:"default"),o=this.parentMap.get(n),i=[];return this.nodes.forEach(t=>{o&&void 0!==o.get(t.id)||i.push(t)}),i}dfsTree(t,e){const r=[t],n=new Set;for(;r.length>0;){const t=r.pop();if(n.has(t))continue;const o=this.getNode(t);if(o){n.add(t);if(!0===e(o))continue;const i=this.getChildren(t);for(let t=i.length-1;t>=0;t--)n.has(i[t].id)||r.push(i[t].id)}}}}const yt=(t,e)=>{if("next"!==t&&"prev"!==t)return e},wt=t=>{t.prev.next=t.next,t.next.prev=t.prev,delete t.next,delete t.prev};let xt=class{constructor(){const t={};t.prev=t,t.next=t.prev,this.shortcut=t}dequeue(){const t=this.shortcut,e=t.prev;if(e&&e!==t)return wt(e),e}enqueue(t){const e=this.shortcut;t.prev&&t.next&&wt(t),t.next=e.next,e.next.prev=t,e.next=t,t.prev=e}toString(){const t=[],e=this.shortcut;let r=e.prev;for(;r!==e;)t.push(JSON.stringify(r,yt)),r=null==r?void 0:r.prev;return`[${t.join(", ")}]`}};class bt extends xt{}const Et=()=>1,Mt=(t,e,r)=>{let n=[];const o=e[e.length-1],i=e[0];let s;for(;t.getAllNodes().length;){for(;s=i.dequeue();)Nt(t,e,r,s);for(;s=o.dequeue();)Nt(t,e,r,s);if(t.getAllNodes().length)for(let o=e.length-2;o>0;--o)if(s=e[o].dequeue(),s){n=n.concat(Nt(t,e,r,s,!0));break}}return n},Nt=(t,e,r,n,o)=>{var i,s;const a=[];return t.hasNode(n.v)&&(null===(i=t.getRelatedEdges(n.v,"in"))||void 0===i||i.forEach(n=>{const i=n.data.weight,s=t.getNode(n.source);o&&a.push({v:n.source,w:n.target,in:0,out:0}),void 0===s.data.out&&(s.data.out=0),s.data.out-=i,kt(e,r,Object.assign({v:s.id},s.data))}),null===(s=t.getRelatedEdges(n.v,"out"))||void 0===s||s.forEach(n=>{const o=n.data.weight,i=n.target,s=t.getNode(i);void 0===s.data.in&&(s.data.in=0),s.data.in-=o,kt(e,r,Object.assign({v:s.id},s.data))}),t.removeNode(n.v)),o?a:void 0},_t=(t,e)=>{const r=new mt;let n=0,o=0;t.getAllNodes().forEach(t=>{r.addNode({id:t.id,data:{v:t.id,in:0,out:0}})}),t.getAllEdges().forEach(t=>{const i=r.getRelatedEdges(t.source,"out").find(e=>e.target===t.target),s=(null==e?void 0:e(t))||1;i?r.updateEdgeData(null==i?void 0:i.id,Object.assign(Object.assign({},i.data),{weight:i.data.weight+s})):r.addEdge({id:t.id,source:t.source,target:t.target,data:{weight:s}}),o=Math.max(o,r.getNode(t.source).data.out+=s),n=Math.max(n,r.getNode(t.target).data.in+=s)});const i=[],s=o+n+3;for(let t=0;t<s;t++)i.push(new bt);const a=n+1;return r.getAllNodes().forEach(t=>{kt(i,a,Object.assign({v:t.id},r.getNode(t.id).data))}),{buckets:i,zeroIdx:a,graph:r}},kt=(t,e,r)=>{r.out?r.in?t[r.out-r.in+e].enqueue(r):t[t.length-1].enqueue(r):t[0].enqueue(r)},St=(t,e)=>{const r=((t,e)=>{var r;if(t.getAllNodes().length<=1)return[];const n=_t(t,e||Et);return null===(r=Mt(n.graph,n.buckets,n.zeroIdx).map(e=>t.getRelatedEdges(e.v,"out").filter(({target:t})=>t===e.w)))||void 0===r?void 0:r.flat()})(t,t=>t.data.weight||1);null==r||r.forEach(e=>{const r=e.data;t.removeEdge(e.id),r.forwardName=e.data.name,r.reversed=!0,t.addEdge({id:e.id,source:e.target,target:e.source,data:Object.assign({},r)})})},zt=(t,e,r,n)=>{let o;do{o=`${n}${Math.random()}`}while(t.hasNode(o));return r.dummy=e,t.addNode({id:o,data:r}),o},At=t=>{const e=new mt;return t.getAllNodes().forEach(r=>{t.getChildren(r.id).length||e.addNode(Object.assign({},r))}),t.getAllEdges().forEach(t=>{e.addEdge(t)}),e},Ot=(t,e)=>{const r=Number(t.x),n=Number(t.y),o=Number(e.x)-r,i=Number(e.y)-n;let s,a,u=Number(t.width)/2,c=Number(t.height)/2;return o||i?(Math.abs(i)*u>Math.abs(o)*c?(i<0&&(c=-c),s=c*o/i,a=c):(o<0&&(u=-u),s=u,a=u*i/o),{x:r+s,y:n+a}):{x:0,y:0}},jt=t=>{const e=[],r=It(t)+1;for(let t=0;t<r;t++)e.push([]);t.getAllNodes().forEach(t=>{const r=t.data.rank;void 0!==r&&e[r]&&e[r].push(t.id)});for(let n=0;n<r;n++)e[n]=e[n].sort((e,r)=>{return n=t.getNode(e).data.order,o=t.getNode(r).data.order,Number(n)-Number(o);var n,o});return e},Ct=(t,e,r,n)=>{const o={width:0,height:0};return l(r)&&l(n)&&(o.rank=r,o.order=n),zt(t,"border",o,e)},It=t=>{let e;return t.getAllNodes().forEach(t=>{const r=t.data.rank;void 0!==r&&(void 0===e||r>e)&&(e=r)}),e||(e=0),e},Rt=(t,e)=>t.reduce((t,r)=>e(t)>e(r)?r:t),Pt=(t,e,r,n,o,i)=>{if(!n.includes(e.id)){n.push(e.id),r||i.push(e.id);const s=o(e.id);s&&s.forEach(e=>Pt(t,e,r,n,o,i)),r&&i.push(e.id)}},Tt=(t,e,r,n)=>{const o=Array.isArray(e)?e:[e],i=e=>t.getNeighbors(e),s=[],a=[];return o.forEach(e=>{if(!t.hasNode(e.id))throw new Error(`Graph does not have node: ${e}`);Pt(t,e,"post"===r,a,i,s)}),s},Ft=(t,e,r,n,o,i)=>{const s={rank:i,borderType:e,width:0,height:0},a=i-o.data.minRank,u=o.data[e][a-1],c=zt(t,"border",s,r);o.data[e][a]=c,t.setParent(c,n),u&&t.addEdge({id:`e${Math.random()}`,source:u,target:c,data:{weight:1}})},Lt=t=>{t.getAllNodes().forEach(t=>{Dt(t)}),t.getAllEdges().forEach(t=>{Dt(t)})},Dt=t=>{const e=t.data.width;t.data.width=t.data.height,t.data.height=e},qt=t=>{t.getAllNodes().forEach(t=>{Vt(t.data)}),t.getAllEdges().forEach(t=>{var e;null===(e=t.data.points)||void 0===e||e.forEach(t=>Vt(t)),t.data.hasOwnProperty("y")&&Vt(t.data)})},Vt=t=>{(null==t?void 0:t.y)&&(t.y=-t.y)},Bt=t=>{t.getAllNodes().forEach(t=>{$t(t.data)}),t.getAllEdges().forEach(t=>{var e;null===(e=t.data.points)||void 0===e||e.forEach(t=>$t(t)),t.data.hasOwnProperty("x")&&$t(t.data)})},$t=t=>{const e=t.x;t.x=t.y,t.y=e},Gt=(t,e,r,n,o,i,s)=>{const a=t.getChildren(s);if(!(null==a?void 0:a.length))return void(s!==e&&t.addEdge({id:`e${Math.random()}`,source:e,target:s,data:{weight:0,minlen:r}}));const u=Ct(t,"_bt"),c=Ct(t,"_bb"),h=t.getNode(s);t.setParent(u,s),h.data.borderTop=u,t.setParent(c,s),h.data.borderBottom=c,null==a||a.forEach(a=>{Gt(t,e,r,n,o,i,a.id);const h=a.data.borderTop?a.data.borderTop:a.id,l=a.data.borderBottom?a.data.borderBottom:a.id,d=a.data.borderTop?n:2*n,f=h!==l?1:o-i[s]+1;t.addEdge({id:`e${Math.random()}`,source:u,target:h,data:{minlen:f,weight:d,nestingEdge:!0}}),t.addEdge({id:`e${Math.random()}`,source:l,target:c,data:{minlen:f,weight:d,nestingEdge:!0}})}),t.getParent(s)||t.addEdge({id:`e${Math.random()}`,source:e,target:u,data:{weight:0,minlen:o+i[s]}})},Ut=t=>{const e={},r=(n,o)=>{const i=t.getChildren(n);null==i||i.forEach(t=>r(t.id,o+1)),e[n]=o};return t.getRoots().forEach(t=>r(t.id,1)),e},Wt=t=>{let e=0;return t.getAllEdges().forEach(t=>{e+=t.data.weight}),e},Yt="edge-label",Ht=(t,e,r)=>{let n=e.source,o=t.getNode(n).data.rank;const i=e.target,s=t.getNode(i).data.rank,a=e.data.labelRank;if(s===o+1)return;let u,c,h;for(t.removeEdge(e.id),h=0,++o;o<s;++h,++o)e.data.points=[],c={originalEdge:e,width:0,height:0,rank:o},u=zt(t,"edge",c,"_d"),o===a&&(c.width=e.data.width,c.height=e.data.height,c.dummy=Yt,c.labelpos=e.data.labelpos),t.addEdge({id:`e${Math.random()}`,source:n,target:u,data:{weight:e.data.weight}}),0===h&&r.push(u),n=u;t.addEdge({id:`e${Math.random()}`,source:n,target:i,data:{weight:e.data.weight}})},Xt=t=>{let e;for(;t.hasNode(e=`_root${Math.random()}`););return e},Qt=(t,e,r)=>{const n=(o=r,i=r.map((t,e)=>e),null==o?void 0:o.reduce((t,e,r)=>(t[e]=i[r],t),{}));var o,i;const s=e.map(e=>{const r=t.getRelatedEdges(e,"out").map(t=>({pos:n[t.target]||0,weight:t.data.weight}));return null==r?void 0:r.sort((t,e)=>t.pos-e.pos)}),a=s.flat().filter(t=>void 0!==t);let u=1;for(;u<r.length;)u<<=1;const c=2*u-1;u-=1;const h=Array(c).fill(0,0,c);let l=0;return null==a||a.forEach(t=>{if(t){let e=t.pos+u;h[e]+=t.weight;let r=0;for(;e>0;)e%2&&(r+=h[e+1]),e=e-1>>1,h[e]+=t.weight;l+=t.weight*r}}),l},Jt=(t,e)=>{let r=0;for(let n=1;n<(null==e?void 0:e.length);n+=1)r+=Qt(t,e[n-1],e[n]);return r},Kt=t=>{const e={},r=t.getAllNodes(),n=r.map(t=>{var e;return null!==(e=t.data.rank)&&void 0!==e?e:-1/0}),o=Math.max(...n),i=[];for(let t=0;t<o+1;t++)i.push([]);const s=r.sort((e,r)=>t.getNode(e.id).data.rank-t.getNode(r.id).data.rank),a=s.filter(e=>void 0!==t.getNode(e.id).data.fixorder).sort((e,r)=>t.getNode(e.id).data.fixorder-t.getNode(r.id).data.fixorder);return null==a||a.forEach(r=>{isNaN(t.getNode(r.id).data.rank)||i[t.getNode(r.id).data.rank].push(r.id),e[r.id]=!0}),null==s||s.forEach(r=>t.dfsTree(r.id,t=>{if(e.hasOwnProperty(t.id))return!0;e[t.id]=!0,isNaN(t.data.rank)||i[t.data.rank].push(t.id)})),i},Zt=t=>{var e,r;const n=[];for(;null==t?void 0:t.length;){const o=t.pop();n.push(o),null===(e=o.in.reverse())||void 0===e||e.forEach(t=>{return(e=o,t=>{t.merged||(void 0===t.barycenter||void 0===e.barycenter||t.barycenter>=e.barycenter)&&te(e,t)})(t);var e}),null===(r=o.out)||void 0===r||r.forEach(e=>{return(r=o,e=>{e.in.push(r),0===--e.indegree&&t.push(e)})(e);var r})}const o=n.filter(t=>!t.merged),i=["vs","i","barycenter","weight"];return o.map(t=>{const e={};return null==i||i.forEach(r=>{void 0!==t[r]&&(e[r]=t[r])}),e})},te=(t,e)=>{var r;let n=0,o=0;t.weight&&(n+=t.barycenter*t.weight,o+=t.weight),e.weight&&(n+=e.barycenter*e.weight,o+=e.weight),t.vs=null===(r=e.vs)||void 0===r?void 0:r.concat(t.vs),t.barycenter=n/o,t.weight=o,t.i=Math.min(e.i,t.i),e.merged=!0},ee=(t,e,r)=>{let n,o=r;for(;e.length&&(n=e[e.length-1]).i<=o;)e.pop(),null==t||t.push(n.vs),o++;return o},re=(t,e)=>(r,n)=>{if(void 0!==r.fixorder&&void 0!==n.fixorder)return r.fixorder-n.fixorder;if(r.barycenter<n.barycenter)return-1;if(r.barycenter>n.barycenter)return 1;if(e&&void 0!==r.order&&void 0!==n.order){if(r.order<n.order)return-1;if(r.order>n.order)return 1}return t?n.i-r.i:r.i-n.i},ne=(t,e,r,n,o,i)=>{var s,a,u,c;let h=t.getChildren(e).map(t=>t.id);const l=t.getNode(e),d=l?l.data.borderLeft:void 0,f=l?l.data.borderRight:void 0,g={};d&&(h=null==h?void 0:h.filter(t=>t!==d&&t!==f));const p=((t,e)=>e.map(e=>{const r=t.getRelatedEdges(e,"in");if(!(null==r?void 0:r.length))return{v:e};const n={sum:0,weight:0};return null==r||r.forEach(e=>{const r=t.getNode(e.source);n.sum+=e.data.weight*r.data.order,n.weight+=e.data.weight}),{v:e,barycenter:n.sum/n.weight,weight:n.weight}}))(t,h||[]);null==p||p.forEach(e=>{var o;if(null===(o=t.getChildren(e.v))||void 0===o?void 0:o.length){const o=ne(t,e.v,r,n,i);g[e.v]=o,o.hasOwnProperty("barycenter")&&ie(e,o)}});const v=((t,e)=>{var r,n,o;const i={};null==t||t.forEach((t,e)=>{i[t.v]={i:e,indegree:0,in:[],out:[],vs:[t.v]};const r=i[t.v];void 0!==t.barycenter&&(r.barycenter=t.barycenter,r.weight=t.weight)}),null===(r=e.getAllEdges())||void 0===r||r.forEach(t=>{const e=i[t.source],r=i[t.target];void 0!==e&&void 0!==r&&(r.indegree++,e.out.push(i[t.target]))});const s=null===(o=(n=Object.values(i)).filter)||void 0===o?void 0:o.call(n,t=>!t.indegree);return Zt(s)})(p,r);oe(v,g),null===(s=v.filter(t=>t.vs.length>0))||void 0===s||s.forEach(e=>{const r=t.getNode(e.vs[0]);r&&(e.fixorder=r.data.fixorder,e.order=r.data.order)});const m=((t,e,r,n)=>{const o=((t,e)=>{const r={lhs:[],rhs:[]};return null==t||t.forEach(t=>{e(t)?r.lhs.push(t):r.rhs.push(t)}),r})(t,t=>{const e=t.hasOwnProperty("fixorder")&&!isNaN(t.fixorder);return n?!e&&t.hasOwnProperty("barycenter"):e||t.hasOwnProperty("barycenter")}),i=o.lhs,s=o.rhs.sort((t,e)=>-t.i- -e.i),a=[];let u=0,c=0,h=0;null==i||i.sort(re(!!e,!!r)),h=ee(a,s,h),null==i||i.forEach(t=>{var e;h+=null===(e=t.vs)||void 0===e?void 0:e.length,a.push(t.vs),u+=t.barycenter*t.weight,c+=t.weight,h=ee(a,s,h)});const l={vs:a.flat()};return c&&(l.barycenter=u/c,l.weight=c),l})(v,n,o,i);if(d&&(m.vs=[d,m.vs,f].flat(),null===(a=t.getPredecessors(d))||void 0===a?void 0:a.length)){const e=t.getNode((null===(u=t.getPredecessors(d))||void 0===u?void 0:u[0].id)||""),r=t.getNode((null===(c=t.getPredecessors(f))||void 0===c?void 0:c[0].id)||"");m.hasOwnProperty("barycenter")||(m.barycenter=0,m.weight=0),m.barycenter=(m.barycenter*m.weight+e.data.order+r.data.order)/(m.weight+2),m.weight+=2}return m},oe=(t,e)=>{null==t||t.forEach(t=>{var r;const n=null===(r=t.vs)||void 0===r?void 0:r.map(t=>e[t]?e[t].vs:t);t.vs=n.flat()})},ie=(t,e)=>{void 0!==t.barycenter?(t.barycenter=(t.barycenter*t.weight+e.barycenter*e.weight)/(t.weight+e.weight),t.weight+=e.weight):(t.barycenter=e.barycenter,t.weight=e.weight)},se=(t,e,r)=>e.map(e=>((t,e,r)=>{const n=Xt(t),o=new mt;return o.addNode({id:n,data:{}}),t.getAllNodes().forEach(i=>{var s,a;const u=t.getParent(i.id);(i.data.rank===e||i.data.minRank<=e&&e<=i.data.maxRank)&&(o.hasNode(i.id)||o.addNode(Object.assign({},i)),(null==u?void 0:u.id)&&!o.hasNode(null==u?void 0:u.id)&&o.addNode(Object.assign({},u)),o.setParent(i.id,(null==u?void 0:u.id)||n),t.getRelatedEdges(i.id,r).forEach(e=>{const r=e.source===i.id?e.target:e.source;o.hasNode(r)||o.addNode(Object.assign({},t.getNode(r)));const n=o.getRelatedEdges(r,"out").find(({target:t})=>t===i.id),s=void 0!==n?n.data.weight:0;n?o.updateEdgeData(n.id,Object.assign(Object.assign({},n.data),{weight:e.data.weight+s})):o.addEdge({id:e.id,source:r,target:i.id,data:{weight:e.data.weight+s}})}),i.data.hasOwnProperty("minRank")&&o.updateNodeData(i.id,Object.assign(Object.assign({},i.data),{borderLeft:[null===(s=i.data.borderLeft)||void 0===s?void 0:s[e-i.data.minRank]],borderRight:[null===(a=i.data.borderRight)||void 0===a?void 0:a[e-i.data.minRank]]})))}),o})(t,e,r)),ae=(t,e,r,n)=>{const o=new mt;null==t||t.forEach(t=>{var i;const s=t.getRoots()[0].id,a=ne(t,s,o,e,r,n);for(let e=0;e<(null===(i=a.vs)||void 0===i?void 0:i.length);e++){const r=t.getNode(a.vs[e]);r&&(r.data.order=e)}((t,e,r)=>{const n={};let o;null==r||r.forEach(r=>{let i,s,a=t.getParent(r);for(;a;){if(i=t.getParent(a.id),i?(s=n[i.id],n[i.id]=a.id):(s=o,o=a.id),s&&s!==a.id)return e.hasNode(s)||e.addNode({id:s,data:{}}),e.hasNode(a.id)||e.addNode({id:a.id,data:{}}),void(e.hasEdge(`e${s}-${a.id}`)||e.addEdge({id:`e${s}-${a.id}`,source:s,target:a.id,data:{}}));a=i}})})(t,o,a.vs)})},ue=(t,e)=>{null==e||e.forEach(e=>{null==e||e.forEach((e,r)=>{t.getNode(e).data.order=r})})},ce=(t,e)=>{const r=(t=>{const e={};let r=0;const n=o=>{const i=r;t.getChildren(o).forEach(t=>n(t.id)),e[o]={low:i,lim:r++}};return t.getRoots().forEach(t=>n(t.id)),e})(t);e.forEach(e=>{var n,o;let i=e,s=t.getNode(i);const a=s.data.originalEdge;if(!a)return;const u=((t,e,r,n)=>{var o,i;const s=[],a=[],u=Math.min(e[r].low,e[n].low),c=Math.max(e[r].lim,e[n].lim);let h,l;h=r;do{h=null===(o=t.getParent(h))||void 0===o?void 0:o.id,s.push(h)}while(h&&(e[h].low>u||c>e[h].lim));for(l=h,h=n;h&&h!==l;)a.push(h),h=null===(i=t.getParent(h))||void 0===i?void 0:i.id;return{lca:l,path:s.concat(a.reverse())}})(t,r,a.source,a.target),c=u.path,h=u.lca;let l=0,d=c[l],f=!0;for(;i!==a.target;){if(s=t.getNode(i),f){for(;d!==h&&(null===(n=t.getNode(d))||void 0===n?void 0:n.data.maxRank)<s.data.rank;)l++,d=c[l];d===h&&(f=!1)}if(!f){for(;l<c.length-1&&(null===(o=t.getNode(c[l+1]))||void 0===o?void 0:o.data.minRank)<=s.data.rank;)l++;d=c[l]}t.hasNode(d)&&t.setParent(i,d),i=t.getSuccessors(i)[0].id}})},he=(t,e)=>{const r={};function n(e,n){const o=function(t){return JSON.stringify(t.slice(1))}(e);n.get(o)||(!function(e,n,o,i,s){var a,u;let c;for(let h=n;h<o;h++)c=e[h],(null===(a=t.getNode(c))||void 0===a?void 0:a.data.dummy)&&(null===(u=t.getPredecessors(c))||void 0===u||u.forEach(e=>{const n=t.getNode(e.id);n.data.dummy&&(n.data.order<i||n.data.order>s)&&de(r,e.id,c)}))}(...e),n.set(o,!0))}const o=(e,r)=>{let o,i=-1,s=0;const a=new Map;return null==r||r.forEach((u,c)=>{var h;if("border"===(null===(h=t.getNode(u))||void 0===h?void 0:h.data.dummy)){const e=t.getPredecessors(u)||[];e.length&&(o=t.getNode(e[0].id).data.order,n([r,s,c,i,o],a),s=c,i=o)}n([r,s,r.length,o,e.length],a)}),r};return(null==e?void 0:e.length)&&e.reduce(o),r},le=(t,e)=>{var r,n;if(null===(r=t.getNode(e))||void 0===r?void 0:r.data.dummy)return null===(n=t.getPredecessors(e))||void 0===n?void 0:n.find(e=>t.getNode(e.id).data.dummy)},de=(t,e,r)=>{let n=e,o=r;if(n>o){const t=n;n=o,o=t}let i=t[n];i||(t[n]=i={}),i[o]=!0},fe=(t,e,r)=>{let n=e,o=r;if(n>r){n=r,o=e}return!!t[n]},ge=(t,e,r,n,o,i)=>{const s=new mt,a=pe(n,o,i);return null==e||e.forEach(e=>{let n;null==e||e.forEach(e=>{const o=r[e];if(s.hasNode(o)||s.addNode({id:o,data:{}}),n){const i=r[n],u=s.getRelatedEdges(i,"out").find(t=>t.target===o);u?s.updateEdgeData(u.id,Object.assign(Object.assign({},u.data),{weight:Math.max(a(t,e,n),u.data.weight||0)})):s.addEdge({id:`e${Math.random()}`,source:i,target:o,data:{weight:Math.max(a(t,e,n),0)}})}n=e})}),s};const pe=(t,e,r)=>(n,o,i)=>{const s=n.getNode(o),a=n.getNode(i);let u=0,c=0;if(u+=s.data.width/2,s.data.hasOwnProperty("labelpos"))switch((s.data.labelpos||"").toLowerCase()){case"l":c=-s.data.width/2;break;case"r":c=s.data.width/2}if(c&&(u+=r?c:-c),c=0,u+=(s.data.dummy?e:t)/2,u+=(a.data.dummy?e:t)/2,u+=a.data.width/2,a.data.labelpos)switch((a.data.labelpos||"").toLowerCase()){case"l":c=a.data.width/2;break;case"r":c=-a.data.width/2}return c&&(u+=r?c:-c),c=0,u},ve=(t,e)=>t.getNode(e).data.width||0,me=(t,e)=>{const{align:r,nodesep:n=0,edgesep:o=0}=e||{},i=jt(t),s=Object.assign(((t,e)=>{const r={},n=(e,n)=>{let o=0,i=0;const s=e.length,a=null==n?void 0:n[(null==n?void 0:n.length)-1];return null==n||n.forEach((e,u)=>{var c;const h=le(t,e),l=h?t.getNode(h.id).data.order:s;(h||e===a)&&(null===(c=n.slice(i,u+1))||void 0===c||c.forEach(e=>{var n;null===(n=t.getPredecessors(e))||void 0===n||n.forEach(n=>{var i;const s=t.getNode(n.id),a=s.data.order;!(a<o||l<a)||s.data.dummy&&(null===(i=t.getNode(e))||void 0===i?void 0:i.data.dummy)||de(r,n.id,e)})}),i=u+1,o=l)}),n};return(null==e?void 0:e.length)&&e.reduce(n),r})(t,i),he(t,i)),a={};let u=[];["u","d"].forEach(e=>{u="u"===e?i:Object.values(i).reverse(),["l","r"].forEach(r=>{"r"===r&&(u=u.map(t=>Object.values(t).reverse()));const i=("u"===e?t.getPredecessors:t.getSuccessors).bind(t),c=((t,e,r,n)=>{const o={},i={},s={};return null==e||e.forEach(t=>{null==t||t.forEach((t,e)=>{o[t]=t,i[t]=t,s[t]=e})}),null==e||e.forEach(t=>{let e=-1;null==t||t.forEach(t=>{let a=n(t).map(t=>t.id);if(a.length){a=a.sort((t,e)=>s[t]-s[e]);const n=(a.length-1)/2;for(let u=Math.floor(n),c=Math.ceil(n);u<=c;++u){const n=a[u];i[t]===t&&e<s[n]&&!fe(r,t,n)&&(i[n]=t,i[t]=o[t]=o[n],e=s[n])}}})}),{root:o,align:i}})(0,u,s,i),h=((t,e,r,n,o,i,s)=>{var a;const u={},c=ge(t,e,r,o,i,s),h=s?"borderLeft":"borderRight",l=(t,e)=>{let r=c.getAllNodes(),n=r.pop();const o={};for(;n;)o[n.id]?t(n.id):(o[n.id]=!0,r.push(n),r=r.concat(e(n.id))),n=r.pop()};return l(t=>{u[t]=(c.getRelatedEdges(t,"in")||[]).reduce((t,e)=>Math.max(t,(u[e.source]||0)+e.data.weight),0)},c.getPredecessors.bind(c)),l(e=>{const r=(c.getRelatedEdges(e,"out")||[]).reduce((t,e)=>Math.min(t,(u[e.target]||0)-e.data.weight),Number.POSITIVE_INFINITY),n=t.getNode(e);r!==Number.POSITIVE_INFINITY&&n.data.borderType!==h&&(u[e]=Math.max(u[e],r))},c.getSuccessors.bind(c)),null===(a=Object.values(n))||void 0===a||a.forEach(t=>{u[t]=u[r[t]]}),u})(t,u,c.root,c.align,n,o,"r"===r);"r"===r&&Object.keys(h).forEach(t=>h[t]=-h[t]),a[e+r]=h})});const c=((t,e)=>Rt(Object.values(e),e=>{var r;let n=Number.NEGATIVE_INFINITY,o=Number.POSITIVE_INFINITY;return null===(r=Object.keys(e))||void 0===r||r.forEach(r=>{const i=e[r],s=ve(t,r)/2;n=Math.max(i+s,n),o=Math.min(i-s,o)}),n-o}))(t,a);return c&&function(t,e){const r=Object.values(e),n=Math.min(...r),o=Math.max(...r);["u","d"].forEach(r=>{["l","r"].forEach(i=>{const s=r+i,a=t[s];let u;if(a===e)return;const c=Object.values(a);u="l"===i?n-Math.min(...c):o-Math.max(...c),u&&(t[s]={},Object.keys(a).forEach(e=>{t[s][e]=a[e]+u}))})})}(a,c),((t,e)=>{const r={};return Object.keys(t.ul).forEach(n=>{if(e)r[n]=t[e.toLowerCase()][n];else{const e=Object.values(t).map(t=>t[n]);r[n]=(e[0]+e[1])/2}}),r})(a,r)},ye=(t,e)=>{var r;const n=At(t);((t,e)=>{const{ranksep:r=0}=e||{},n=jt(t);let o=0;null==n||n.forEach(e=>{const n=e.map(e=>t.getNode(e).data.height),i=Math.max(...n,0);null==e||e.forEach(e=>{t.getNode(e).data.y=o+i/2}),o+=i+r})})(n,e);const o=me(n,e);null===(r=Object.keys(o))||void 0===r||r.forEach(t=>{n.getNode(t).data.x=o[t]})},we=t=>{const e={},r=n=>{var o;const i=t.getNode(n);if(!i)return 0;if(e[n])return i.data.rank;let s;return e[n]=!0,null===(o=t.getRelatedEdges(n,"out"))||void 0===o||o.forEach(t=>{const e=r(t.target)-t.data.minlen;e&&(void 0===s||e<s)&&(s=e)}),s||(s=0),i.data.rank=s,s};t.getAllNodes().filter(e=>0===t.getRelatedEdges(e.id,"in").length).forEach(t=>r(t.id))},xe=(t,e)=>t.getNode(e.target).data.rank-t.getNode(e.source).data.rank-e.data.minlen,be=(t,e)=>{const r=n=>{e.getRelatedEdges(n,"both").forEach(o=>{const i=o.source,s=n===i?o.target:i;t.hasNode(s)||xe(e,o)||(t.addNode({id:s,data:{}}),t.addEdge({id:o.id,source:n,target:s,data:{}}),r(s))})};return t.getAllNodes().forEach(t=>r(t.id)),t.getAllNodes().length},Ee=(t,e)=>{const r=n=>{var o;null===(o=e.getRelatedEdges(n,"both"))||void 0===o||o.forEach(o=>{const i=o.source,s=n===i?o.target:i;t.hasNode(s)||void 0===e.getNode(s).data.layer&&xe(e,o)||(t.addNode({id:s,data:{}}),t.addEdge({id:o.id,source:n,target:s,data:{}}),r(s))})};return t.getAllNodes().forEach(t=>r(t.id)),t.getAllNodes().length},Me=(t,e)=>Rt(e.getAllEdges(),r=>t.hasNode(r.source)!==t.hasNode(r.target)?xe(e,r):1/0),Ne=(t,e,r)=>{t.getAllNodes().forEach(t=>{const n=e.getNode(t.id);n.data.rank||(n.data.rank=0),n.data.rank+=r})},_e=t=>{const e=(t=>{const e=new mt;return t.getAllNodes().forEach(t=>{e.addNode(Object.assign({},t))}),t.getAllEdges().forEach(t=>{const r=e.getRelatedEdges(t.source,"out").find(e=>e.target===t.target);r?e.updateEdgeData(null==r?void 0:r.id,Object.assign(Object.assign({},r.data),{weight:r.data.weight+t.data.weight||0,minlen:Math.max(r.data.minlen,t.data.minlen||1)})):e.addEdge({id:t.id,source:t.source,target:t.target,data:{weight:t.data.weight||0,minlen:t.data.minlen||1}})}),e})(t);we(e);const r=(t=>{const e=new mt({tree:[]}),r=t.getAllNodes()[0],n=t.getAllNodes().length;let o,i;for(e.addNode(r);be(e,t)<n;)o=Me(e,t),i=e.hasNode(o.source)?xe(t,o):-xe(t,o),Ne(e,t,i);return e})(e);let n,o;for(Ae(r),ke(r,e);n=je(r);)o=Ce(r,e,n),Ie(r,e,n,o)},ke=(t,e)=>{let r=Tt(t,t.getAllNodes(),"post");r=r.slice(0,(null==r?void 0:r.length)-1),r.forEach(r=>{Se(t,e,r)})},Se=(t,e,r)=>{const n=t.getNode(r).data.parent;t.getRelatedEdges(r,"both").find(t=>t.target===n||t.source===n).data.cutvalue=ze(t,e,r)},ze=(t,e,r)=>{const n=t.getNode(r).data.parent;let o=!0,i=e.getRelatedEdges(r,"out").find(t=>t.target===n),s=0;return i||(o=!1,i=e.getRelatedEdges(n,"out").find(t=>t.target===r)),s=i.data.weight,e.getRelatedEdges(r,"both").forEach(e=>{const i=e.source===r,a=i?e.target:e.source;if(a!==n){const n=i===o,u=e.data.weight;if(s+=n?u:-u,Pe(t,r,a)){const e=t.getRelatedEdges(r,"both").find(t=>t.source===a||t.target===a).data.cutvalue;s+=n?-e:e}}}),s},Ae=(t,e=t.getAllNodes()[0].id)=>{Oe(t,{},1,e)},Oe=(t,e,r,n,o)=>{var i;const s=r;let a=r;const u=t.getNode(n);return e[n]=!0,null===(i=t.getNeighbors(n))||void 0===i||i.forEach(r=>{e[r.id]||(a=Oe(t,e,a,r.id,n))}),u.data.low=s,u.data.lim=a++,o?u.data.parent=o:delete u.data.parent,a},je=t=>t.getAllEdges().find(t=>t.data.cutvalue<0),Ce=(t,e,r)=>{let n=r.source,o=r.target;e.getRelatedEdges(n,"out").find(t=>t.target===o)||(n=r.target,o=r.source);const i=t.getNode(n),s=t.getNode(o);let a=i,u=!1;i.data.lim>s.data.lim&&(a=s,u=!0);const c=e.getAllEdges().filter(e=>u===Te(t.getNode(e.source),a)&&u!==Te(t.getNode(e.target),a));return Rt(c,t=>xe(e,t))},Ie=(t,e,r,n)=>{const o=t.getRelatedEdges(r.source,"both").find(t=>t.source===r.target||t.target===r.target);o&&t.removeEdge(o.id),t.addEdge({id:`e${Math.random()}`,source:n.source,target:n.target,data:{}}),Ae(t),ke(t,e),Re(t,e)},Re=(t,e)=>{const r=t.getAllNodes().find(t=>!t.data.parent);let n=Tt(t,r,"pre");n=n.slice(1),n.forEach(r=>{const n=t.getNode(r).data.parent;let o=e.getRelatedEdges(r,"out").find(t=>t.target===n),i=!1;!o&&e.hasNode(n)&&(o=e.getRelatedEdges(n,"out").find(t=>t.target===r),i=!0),e.getNode(r).data.rank=(e.hasNode(n)&&e.getNode(n).data.rank||0)+(i?null==o?void 0:o.data.minlen:-(null==o?void 0:o.data.minlen))})},Pe=(t,e,r)=>t.getRelatedEdges(e,"both").find(t=>t.source===r||t.target===r),Te=(t,e)=>e.data.low<=t.data.lim&&t.data.lim<=e.data.lim,Fe=we,Le=t=>{(t=>{const e={};let r;const n=o=>{var i;const s=t.getNode(o);if(!s)return 0;if(e[o])return s.data.rank;let a;return e[o]=!0,null===(i=t.getRelatedEdges(o,"out"))||void 0===i||i.forEach(t=>{const e=n(t.target)-t.data.minlen;e&&(void 0===a||e<a)&&(a=e)}),a||(a=0),(void 0===r||a<r)&&(r=a),s.data.rank=a,a};t.getAllNodes().filter(e=>0===t.getRelatedEdges(e.id,"in").length).forEach(t=>{t&&n(t.id)}),void 0===r&&(r=0);const o={},i=(e,r)=>{var n;const s=t.getNode(e),a=isNaN(s.data.layer)?r:s.data.layer;(void 0===s.data.rank||s.data.rank<a)&&(s.data.rank=a),o[e]||(o[e]=!0,null===(n=t.getRelatedEdges(e,"out"))||void 0===n||n.forEach(t=>{i(t.target,a+t.data.minlen)}))};t.getAllNodes().forEach(t=>{const e=t.data;e&&(isNaN(e.layer)?e.rank-=r:i(t.id,e.layer))})})(t),(t=>{const e=new mt({tree:[]}),r=t.getAllNodes()[0],n=t.getAllNodes().length;let o,i;for(e.addNode(r);Ee(e,t)<n;)o=Me(e,t),i=e.hasNode(o.source)?xe(t,o):-xe(t,o),Ne(e,t,i)})(t)},De=t=>{_e(t)},qe=(t,e)=>{const{ranker:r,rankdir:n="tb",nodeOrder:o,keepNodeOrder:i,align:s,nodesep:a=50,edgesep:u=20,ranksep:c=50}=e;or(t),St(t);const{nestingRoot:h,nodeRankFactor:l}=(t=>{const e=zt(t,"root",{},"_root"),r=Ut(t);let n=Math.max(...Object.values(r));Math.abs(n)===1/0&&(n=1);const o=n-1,i=2*o+1;t.getAllEdges().forEach(t=>{t.data.minlen*=i});const s=Wt(t)+1;return t.getRoots().forEach(n=>{Gt(t,e,i,s,o,r,n.id)}),{nestingRoot:e,nodeRankFactor:i}})(t);((t,e)=>{switch(e){case"network-simplex":De(t);break;case"tight-tree":default:Le(t);break;case"longest-path":Fe(t)}})(At(t),r),Qe(t),((t,e=0)=>{const r=t.getAllNodes(),n=r.filter(t=>void 0!==t.data.rank).map(t=>t.data.rank),o=Math.min(...n),i=[];r.forEach(t=>{const e=(t.data.rank||0)-o;i[e]||(i[e]=[]),i[e].push(t.id)});let s=0;for(let r=0;r<i.length;r++){const n=i[r];void 0===n?r%e!==0&&(s-=1):s&&(null==n||n.forEach(e=>{const r=t.getNode(e);r&&(r.data.rank=r.data.rank||0,r.data.rank+=s)}))}})(t,l),((t,e)=>{e&&t.removeNode(e),t.getAllEdges().forEach(e=>{e.data.nestingEdge&&t.removeEdge(e.id)})})(t,h),(t=>{const e=t.getAllNodes().filter(t=>void 0!==t.data.rank).map(t=>t.data.rank),r=Math.min(...e);t.getAllNodes().forEach(t=>{t.data.hasOwnProperty("rank")&&r!==1/0&&(t.data.rank-=r)})})(t),Je(t),Ke(t);const d=[];((t,e)=>{t.getAllEdges().forEach(r=>Ht(t,r,e))})(t,d),ce(t,d),(t=>{const e=r=>{const n=t.getChildren(r),o=t.getNode(r);if((null==n?void 0:n.length)&&n.forEach(t=>e(t.id)),o.data.hasOwnProperty("minRank")){o.data.borderLeft=[],o.data.borderRight=[];for(let e=o.data.minRank,n=o.data.maxRank+1;e<n;e+=1)Ft(t,"borderLeft","_bl",r,o,e),Ft(t,"borderRight","_br",r,o,e)}};t.getRoots().forEach(t=>e(t.id))})(t),i&&((t,e)=>{const r=t.getAllNodes().filter(e=>{var r;return!(null===(r=t.getChildren(e.id))||void 0===r?void 0:r.length)}).map(t=>t.data.rank),n=Math.max(...r),o=[];for(let t=0;t<n+1;t++)o[t]=[];null==e||e.forEach(e=>{const r=t.getNode(e);r&&!r.data.dummy&&(isNaN(r.data.rank)||(r.data.fixorder=o[r.data.rank].length,o[r.data.rank].push(e)))})})(t,o),((t,e)=>{const r=It(t),n=[],o=[];for(let t=1;t<r+1;t++)n.push(t);for(let t=r-1;t>-1;t--)o.push(t);const i=se(t,n,"in"),s=se(t,o,"out");let a=Kt(t);ue(t,a);let u,c=Number.POSITIVE_INFINITY;for(let r=0,n=0;n<4;++r,++n){ae(r%2?i:s,r%4>=2,!1,e),a=jt(t);const o=Jt(t,a);o<c&&(n=0,u=g(a),c=o)}a=Kt(t),ue(t,a);for(let r=0,n=0;n<4;++r,++n){ae(r%2?i:s,r%4>=2,!0,e),a=jt(t);const o=Jt(t,a);o<c&&(n=0,u=g(a),c=o)}ue(t,u)})(t,i),ir(t),((t,e)=>{const r=e.toLowerCase();"lr"!==r&&"rl"!==r||Lt(t)})(t,n),ye(t,{align:s,nodesep:a,edgesep:u,ranksep:c}),sr(t),nr(t),((t,e)=>{e.forEach(e=>{let r=t.getNode(e);const{data:n}=r,o=n.originalEdge;let i;o&&t.addEdge(o);let s=e;for(;r.data.dummy;)i=t.getSuccessors(s)[0],t.removeNode(s),o.data.points.push({x:r.data.x,y:r.data.y}),r.data.dummy===Yt&&(o.data.x=r.data.x,o.data.y=r.data.y,o.data.width=r.data.width,o.data.height=r.data.height),s=i.id,r=t.getNode(s)})})(t,d),er(t),((t,e)=>{const r=e.toLowerCase();"bt"!==r&&"rl"!==r||qt(t),"lr"!==r&&"rl"!==r||(Bt(t),Lt(t))})(t,n);const{width:f,height:p}=Ze(t);return tr(t),rr(t),(t=>{t.getAllEdges().forEach(e=>{const r=e.data;if(r.reversed){t.removeEdge(e.id);const n=r.forwardName;delete r.reversed,delete r.forwardName,t.addEdge({id:e.id,source:e.target,target:e.source,data:Object.assign(Object.assign({},r),{forwardName:n})})}})})(t),{width:f,height:p}},Ve=(t,e)=>{t.getAllNodes().forEach(r=>{const n=t.getNode(r.id);if(e.hasNode(r.id)){const t=e.getNode(r.id);n.data.fixorder=t.data._order,delete t.data._order}else delete n.data.fixorder})},Be=(t,e)=>{t.getAllNodes().forEach(r=>{var n;const o=t.getNode(r.id);if(o){const t=e.getNode(r.id);o.data.x=t.data.x,o.data.y=t.data.y,o.data._order=t.data.order,o.data._rank=t.data.rank,(null===(n=e.getChildren(r.id))||void 0===n?void 0:n.length)&&(o.data.width=t.data.width,o.data.height=t.data.height)}}),t.getAllEdges().forEach(r=>{const n=t.getEdge(r.id),o=e.getEdge(r.id);n.data.points=o?o.data.points:[],o&&o.data.hasOwnProperty("x")&&(n.data.x=o.data.x,n.data.y=o.data.y)})},$e=["width","height","layer","fixorder"],Ge={width:0,height:0},Ue=["minlen","weight","width","height","labeloffset"],We={minlen:1,weight:1,width:0,height:0,labeloffset:10,labelpos:"r"},Ye=["labelpos"],He=t=>{const e=new mt({tree:[]});return t.getAllNodes().forEach(r=>{const n=ur(t.getNode(r.id).data),i=Object.assign(Object.assign({},Ge),n),s=ar(i,$e);e.hasNode(r.id)||e.addNode({id:r.id,data:Object.assign({},s)});const a=t.hasTreeStructure("combo")?t.getParent(r.id,"combo"):t.getParent(r.id);o(a)||(e.hasNode(a.id)||e.addNode(Object.assign({},a)),e.setParent(r.id,a.id))}),t.getAllEdges().forEach(r=>{const n=ur(t.getEdge(r.id).data),o={};null==Ye||Ye.forEach(t=>{void 0!==n[t]&&(o[t]=n[t])}),e.addEdge({id:r.id,source:r.source,target:r.target,data:Object.assign({},We,ar(n,Ue),o)})}),e},Xe=(t,e)=>{const{ranksep:r=0,rankdir:n}=e;return t.getAllNodes().forEach(t=>{isNaN(t.data.layer)||t.data.layer||(t.data.layer=0)}),t.getAllEdges().forEach(t=>{var e;t.data.minlen*=2,"c"!==(null===(e=t.data.labelpos)||void 0===e?void 0:e.toLowerCase())&&("TB"===n||"BT"===n?t.data.width+=t.data.labeloffset:t.data.height+=t.data.labeloffset)}),r/2},Qe=t=>{t.getAllEdges().forEach(e=>{if(e.data.width&&e.data.height){const r=t.getNode(e.source),n={e:e,rank:(t.getNode(e.target).data.rank-r.data.rank)/2+r.data.rank};zt(t,"edge-proxy",n,"_ep")}})},Je=t=>{let e=0;return t.getAllNodes().forEach(r=>{var n,o;r.data.borderTop&&(r.data.minRank=null===(n=t.getNode(r.data.borderTop))||void 0===n?void 0:n.data.rank,r.data.maxRank=null===(o=t.getNode(r.data.borderBottom))||void 0===o?void 0:o.data.rank,e=Math.max(e,r.data.maxRank||-1/0))}),e},Ke=t=>{t.getAllNodes().forEach(e=>{"edge-proxy"===e.data.dummy&&(t.getEdge(e.data.e.id).data.labelRank=e.data.rank,t.removeNode(e.id))})},Ze=(t,e)=>{let r,n,o=0,i=0;const{marginx:s=0,marginy:a=0}={},u=t=>{if(!t.data)return;const e=t.data.x,s=t.data.y,a=t.data.width,u=t.data.height;isNaN(e)||isNaN(a)||(void 0===r&&(r=e-a/2),r=Math.min(r,e-a/2),o=Math.max(o,e+a/2)),isNaN(s)||isNaN(u)||(void 0===n&&(n=s-u/2),n=Math.min(n,s-u/2),i=Math.max(i,s+u/2))};return t.getAllNodes().forEach(t=>{u(t)}),t.getAllEdges().forEach(t=>{(null==t?void 0:t.data.hasOwnProperty("x"))&&u(t)}),r-=s,n-=a,t.getAllNodes().forEach(t=>{t.data.x-=r,t.data.y-=n}),t.getAllEdges().forEach(t=>{var e;null===(e=t.data.points)||void 0===e||e.forEach(t=>{t.x-=r,t.y-=n}),t.data.hasOwnProperty("x")&&(t.data.x-=r),t.data.hasOwnProperty("y")&&(t.data.y-=n)}),{width:o-r+s,height:i-n+a}},tr=t=>{t.getAllEdges().forEach(e=>{const r=t.getNode(e.source),n=t.getNode(e.target);let o,i;e.data.points?(o=e.data.points[0],i=e.data.points[e.data.points.length-1]):(e.data.points=[],o={x:n.data.x,y:n.data.y},i={x:r.data.x,y:r.data.y}),e.data.points.unshift(Ot(r.data,o)),e.data.points.push(Ot(n.data,i))})},er=t=>{t.getAllEdges().forEach(t=>{if(t.data.hasOwnProperty("x"))switch("l"!==t.data.labelpos&&"r"!==t.data.labelpos||(t.data.width-=t.data.labeloffset),t.data.labelpos){case"l":t.data.x-=t.data.width/2+t.data.labeloffset;break;case"r":t.data.x+=t.data.width/2+t.data.labeloffset}})},rr=t=>{t.getAllEdges().forEach(t=>{var e;t.data.reversed&&(null===(e=t.data.points)||void 0===e||e.reverse())})},nr=t=>{t.getAllNodes().forEach(e=>{var r,n,o;if(null===(r=t.getChildren(e.id))||void 0===r?void 0:r.length){const r=t.getNode(e.id),i=t.getNode(r.data.borderTop),s=t.getNode(r.data.borderBottom),a=t.getNode(r.data.borderLeft[(null===(n=r.data.borderLeft)||void 0===n?void 0:n.length)-1]),u=t.getNode(r.data.borderRight[(null===(o=r.data.borderRight)||void 0===o?void 0:o.length)-1]);r.data.width=Math.abs((null==u?void 0:u.data.x)-(null==a?void 0:a.data.x))||10,r.data.height=Math.abs((null==s?void 0:s.data.y)-(null==i?void 0:i.data.y))||10,r.data.x=((null==a?void 0:a.data.x)||0)+r.data.width/2,r.data.y=((null==i?void 0:i.data.y)||0)+r.data.height/2}}),t.getAllNodes().forEach(e=>{"border"===e.data.dummy&&t.removeNode(e.id)})},or=t=>{t.getAllEdges().forEach(e=>{if(e.source===e.target){const r=t.getNode(e.source);r.data.selfEdges||(r.data.selfEdges=[]),r.data.selfEdges.push(e),t.removeEdge(e.id)}})},ir=t=>{const e=jt(t);null==e||e.forEach(e=>{let r=0;null==e||e.forEach((e,n)=>{var o;const i=t.getNode(e);i.data.order=n+r,null===(o=i.data.selfEdges)||void 0===o||o.forEach(e=>{zt(t,"selfedge",{width:e.data.width,height:e.data.height,rank:i.data.rank,order:n+ ++r,e:e},"_se")}),delete i.data.selfEdges})})},sr=t=>{t.getAllNodes().forEach(e=>{const r=t.getNode(e.id);if("selfedge"===r.data.dummy){const n=t.getNode(r.data.e.source),o=n.data.x+n.data.width/2,i=n.data.y,s=r.data.x-o,a=n.data.height/2;t.hasEdge(r.data.e.id)?t.updateEdgeData(r.data.e.id,r.data.e.data):t.addEdge({id:r.data.e.id,source:r.data.e.source,target:r.data.e.target,data:r.data.e.data}),t.removeNode(e.id),r.data.e.data.points=[{x:o+2*s/3,y:i-a},{x:o+5*s/6,y:i-a},{y:i,x:o+s},{x:o+5*s/6,y:i+a},{x:o+2*s/3,y:i+a}],r.data.e.data.x=r.data.x,r.data.e.data.y=r.data.y}})},ar=(t,e)=>{const r={};return null==e||e.forEach(e=>{void 0!==t[e]&&(r[e]=+t[e])}),r},ur=(t={})=>{const e={};return Object.keys(t).forEach(r=>{e[r.toLowerCase()]=t[r]}),e},cr={nodeSize:10,rankdir:"TB",nodesep:50,ranksep:50,edgeLabelSpace:!0,ranker:"tight-tree",controlPoints:!1,radial:!1,focusNode:null};class hr extends gt{constructor(){super(...arguments),this.id="antv-dagre"}getDefaultOptions(){return cr}layout(t){return r(this,void 0,void 0,function*(){const{nodeSize:e,align:r,rankdir:n="TB",ranksep:o,nodesep:i,edgeLabelSpace:s,ranker:a="tight-tree",nodeOrder:u,begin:c,controlPoints:h,radial:d,sortByCombo:f,preset:g,ranksepFunc:p,nodesepFunc:v}=t,m=D(p,null!=o?o:50),y=D(v,null!=i?i:50);let w=y,x=m;"LR"!==n&&"RL"!==n||(w=m,x=y);const b=q(e,cr.nodeSize),E=new mt({tree:[]}),M=this.model.nodes(),N=this.model.edges();M.forEach(t=>{var e;const r=t._original,n=F(b(r)),o=x(r),i=w(r),s=n[0]+2*i,a=n[1]+2*o,u=null===(e=t.data)||void 0===e?void 0:e.layer;l(u)?E.addNode({id:t.id,data:{width:s,height:a,layer:u,originalWidth:n[0],originalHeight:n[1]}}):E.addNode({id:t.id,data:{width:s,height:a,originalWidth:n[0],originalHeight:n[1]}})}),N.forEach(t=>{E.addEdge({id:t.id,source:t.source,target:t.target,data:{}})}),f&&(E.attachTreeStructure("combo"),M.forEach(t=>{const e=null==t?void 0:t.parentId;void 0!==e&&E.hasNode(e)&&E.setParent(t.id,e,"combo")}));let _=null;(null==g?void 0:g.length)&&(_=new mt,g.forEach(t=>{_.addNode({id:t.id,data:t.data})})),((t,e)=>{const{edgeLabelSpace:r,keepNodeOrder:n,prevGraph:o,rankdir:i,ranksep:s}=e;!n&&o&&Ve(t,o);const a=He(t);let u;r&&(e.ranksep=Xe(a,{rankdir:i,ranksep:s}));try{u=qe(a,e)}catch(t){if("Not possible to find intersection inside of the rectangle"===t.message)return void console.error("The following error may be caused by improper layer setting, please make sure your manual layer setting does not violate the graph's structure:\n",t);throw t}Be(t,a)})(E,{prevGraph:_,edgeLabelSpace:s,keepNodeOrder:!!u,nodeOrder:u||[],acyclicer:"greedy",ranker:a,rankdir:n,nodesep:i,align:r});const k=[0,0];if(c){let t=1/0,e=1/0;E.getAllNodes().forEach(r=>{t>r.data.x&&(t=r.data.x),e>r.data.y&&(e=r.data.y)}),E.getAllEdges().forEach(r=>{var n;null===(n=r.data.points)||void 0===n||n.forEach(r=>{t>r.x&&(t=r.x),e>r.y&&(e=r.y)})}),k[0]=c[0]-t,k[1]=c[1]-e}const S="LR"===n||"RL"===n;if(d);else{const t=new Set,e="BT"===n||"RL"===n?(t,e)=>e-t:(t,e)=>t-e;E.getAllNodes().forEach(e=>{e.data.x=e.data.x+k[0],e.data.y=e.data.y+k[1],t.add(S?e.data.x:e.data.y)});const r=Array.from(t).sort(e),o=S?(t,e)=>t.x!==e.x:(t,e)=>t.y!==e.y,i=S?(t,e,r)=>{const n=Math.max(e.y,r.y),o=Math.min(e.y,r.y);return t.filter(t=>t.y<=n&&t.y>=o)}:(t,e,r)=>{const n=Math.max(e.x,r.x),o=Math.min(e.x,r.x);return t.filter(t=>t.x<=n&&t.x>=o)};E.getAllEdges().forEach((t,e)=>{var n;s&&h&&"loop"!==t.data.type&&(t.data.controlPoints=lr(null===(n=t.data.points)||void 0===n?void 0:n.map(({x:t,y:e})=>({x:t+k[0],y:e+k[1]})),E.getNode(t.source),E.getNode(t.target),r,S,o,i))})}this.model.forEachNode(t=>{const e=E.getNode(t.id);if(e){const{x:r,y:n,width:o,height:i,originalWidth:s,originalHeight:a}=e.data,u=f?E.getChildren(t.id,"combo"):E.getChildren(t.id);if(u.length>0){let e=1/0,r=-1/0,n=1/0,o=-1/0;u.forEach(t=>{const i=t.id,s=E.getNode(i);if(null==s?void 0:s.data){const t=s.data.x,i=s.data.y,a=s.data.originalWidth||s.data.width||0,u=s.data.originalHeight||s.data.height||0;e=Math.min(e,t-a/2),r=Math.max(r,t+a/2),n=Math.min(n,i-u/2),o=Math.max(o,i+u/2)}});const i=20,s=(r-e||0)+2*i,a=(o-n||0)+2*i;t.x=(e+r)/2,t.y=(n+o)/2,t.size=[s,a]}else t.x=r,t.y=n,t.size=[s,a]}}),this.model.forEachEdge(t=>{const e=E.getEdge(t.id);e&&e.data.controlPoints&&(t.points=e.data.controlPoints.map(T))})})}}const lr=(t,e,r,n,o,i,s)=>{let a=(null==t?void 0:t.slice(1,t.length-1))||[];if(e&&r){let{x:t,y:u}=e.data,{x:c,y:h}=r.data;if(o&&(t=e.data.y,u=e.data.x,c=r.data.y,h=r.data.x),h!==u&&t!==c){const l=n.indexOf(u),d=n[l+1];if(d){const t=a[0],e=o?{x:(u+d)/2,y:(null==t?void 0:t.y)||c}:{x:(null==t?void 0:t.x)||c,y:(u+d)/2};t&&!i(t,e)||a.unshift(e)}const f=n.indexOf(h),g=Math.abs(f-l);if(1===g)a=s(a,e.data,r.data),a.length||a.push(o?{x:(u+h)/2,y:t}:{x:t,y:(u+h)/2});else if(g>1){const e=n[f-1];if(e){const r=a[a.length-1],n=o?{x:(h+e)/2,y:(null==r?void 0:r.y)||c}:{x:(null==r?void 0:r.x)||t,y:(h+e)/2};r&&!i(r,n)||a.push(n)}}}}return a},dr={radius:null,startRadius:null,endRadius:null,startAngle:0,endAngle:2*Math.PI,clockwise:!0,divisions:1,ordering:null,angleRatio:1,nodeSize:10};class fr extends gt{constructor(){super(...arguments),this.id="circular"}getDefaultOptions(){return dr}layout(){return r(this,void 0,void 0,function*(){const{width:t,height:e,center:r}=L(this.options),n=this.model.nodeCount();if(!n||1===n)return void E(this.model,r);const{ordering:i,nodeSpacing:s,nodeSize:a,endAngle:u=2*Math.PI,startAngle:c=0,divisions:h,angleRatio:l,clockwise:d}=this.options;"topology"===i?P(this.model,!1):"topology-directed"===i?P(this.model,!0):"degree"===i&&C(this.model);let{radius:f,startRadius:g,endRadius:p}=this.options;const v=this.model.nodes(),m=V(a,s,dr.nodeSize);if(o(s))f||g||p?!g&&p?g=p:g&&!p&&(p=g):f=Math.min(e,t)/2;else{let t=0;for(const e of v)t+=m(e._original);f=t/(2*Math.PI)}const y=(u-c)/n*l,w=Math.ceil(n/h),x=2*Math.PI/h;for(let t=0;t<n;){const e=v[t];let o=f;o||null===g||null===p||(o=g+t*(p-g)/(n-1)),o||(o=10+100*t/(n-1));const i=t%w*y+x*Math.floor(t/w);let s=c+i;d||(s=u-i),e.x=r[0]+Math.cos(s)*o,e.y=r[1]+Math.sin(s)*o,t++}})}}const gr={nodeSize:30,nodeSpacing:10,preventOverlap:!1,sweep:void 0,equidistant:!1,startAngle:1.5*Math.PI,clockwise:!0,maxLevelDiff:void 0,sortBy:"degree"};class pr extends gt{constructor(){super(...arguments),this.id="concentric"}getDefaultOptions(){return gr}layout(){return r(this,void 0,void 0,function*(){const{width:t,height:e,center:r}=L(this.options),n=this.model.nodeCount();if(!n||1===n)return void E(this.model,r);const{sortBy:o,maxLevelDiff:i,sweep:s,clockwise:a,equidistant:u,preventOverlap:c,startAngle:h=gr.startAngle,nodeSize:l=gr.nodeSize,nodeSpacing:d}=this.options;let f=o;if(o&&"function"==typeof o){"number"!=typeof o(this.model.firstNode()._original)&&(f="degree")}else f="degree";if("degree"===f)C(this.model);else{const t=(t,e)=>{const r=f(t),n=f(e);return r===n?0:r>n?-1:1};R(this.model,t)}const g=this.model.nodes(),p=new Map;for(const t of g){const e="degree"===f?this.model.degree(t.id):null==f?void 0:f(t._original);p.set(t.id,e)}const v=this.model.firstNode(),m=i||p.get(v.id)/4,y=V(l,d),w=new Map;for(const t of g)w.set(t.id,y(t._original));const x=[{nodes:[]}];let b=x[0];for(let t=0;t<n;t++){const e=g[t];if(b.nodes.length>0){const t=b.nodes[0],r=Math.abs(p.get(t.id)-p.get(e.id));m&&r>=m&&(b={nodes:[]},x.push(b))}b.nodes.push(e)}for(const t of x){const e=t.nodes.map(t=>w.get(t.id));t.nodeSizes=e,t.maxNodeSize=Math.max(...e)}if(x.forEach(t=>{const e=void 0===s?2*Math.PI-2*Math.PI/t.nodes.length:s;t.dTheta=e/Math.max(1,t.nodes.length-1)}),c){let t=0;for(let e=0;e<x.length;e++){const r=x[e];if(r.nodes.length>1){const e=r.nodeSizes||[];let n=0;for(let t=0;t<e.length-1;t++)n=Math.max(n,(e[t]+e[t+1])/2);const o=Math.cos(r.dTheta)-Math.cos(0),i=Math.sin(r.dTheta)-Math.sin(0),s=Math.sqrt(o*o+i*i),a=s>0?n/s:0;t=Math.max(a,t)}if(r.r=t,e<x.length-1){const n=x[e+1],o=((r.maxNodeSize||0)+(n.maxNodeSize||0))/2;t+=Math.max(0,o)}}}else{let r=0;x[0].r=0;for(let t=0;t<x.length-1;t++){const e=x[t],n=x[t+1],o=((e.maxNodeSize||0)+(n.maxNodeSize||0))/2;r+=Math.max(0,o),n.r=r}const n=Math.min(t,e)/2;let o=1;for(const t of x){const e=t.r||0;if(e<=0)continue;const r=n-(t.maxNodeSize||0);if(r<=0){o=0;break}o=Math.min(o,r/e)}if(o=Math.max(0,Math.min(1,o)),1!==o)for(const t of x)t.r=(t.r||0)*o}if(u){let t=0,e=0;for(let r=0;r<x.length;r++){const n=(x[r].r||0)-e;t=Math.max(t,n)}e=0,x.forEach((r,n)=>{0===n&&(e=r.r||0),r.r=e,e+=t})}x.forEach(t=>{const e=t.dTheta||0,n=t.r||0;t.nodes.forEach((t,o)=>{const i=h+(a?1:-1)*e*o;t.x=r[0]+n*Math.cos(i),t.y=r[1]+n*Math.sin(i)})})})}}function vr(t,e,r,n){if(isNaN(e)||isNaN(r))return t;var o,i,s,a,u,c,h,l,d,f=t._root,g={data:n},p=t._x0,v=t._y0,m=t._x1,y=t._y1;if(!f)return t._root=g,t;for(;f.length;)if((c=e>=(i=(p+m)/2))?p=i:m=i,(h=r>=(s=(v+y)/2))?v=s:y=s,o=f,!(f=f[l=h<<1|c]))return o[l]=g,t;if(a=+t._x.call(null,f.data),u=+t._y.call(null,f.data),e===a&&r===u)return g.next=f,o?o[l]=g:t._root=g,t;do{o=o?o[l]=new Array(4):t._root=new Array(4),(c=e>=(i=(p+m)/2))?p=i:m=i,(h=r>=(s=(v+y)/2))?v=s:y=s}while((l=h<<1|c)==(d=(u>=s)<<1|a>=i));return o[d]=f,o[l]=g,t}function mr(t,e,r,n,o){this.node=t,this.x0=e,this.y0=r,this.x1=n,this.y1=o}function yr(t){return t[0]}function wr(t){return t[1]}function xr(t,e,r){var n=new br(null==e?yr:e,null==r?wr:r,NaN,NaN,NaN,NaN);return null==t?n:n.addAll(t)}function br(t,e,r,n,o,i){this._x=t,this._y=e,this._x0=r,this._y0=n,this._x1=o,this._y1=i,this._root=void 0}function Er(t){for(var e={data:t.data},r=e;t=t.next;)r=r.next={data:t.data};return e}var Mr=xr.prototype=br.prototype;function Nr(t){return function(){return t}}function _r(t){return 1e-6*(t()-.5)}function kr(t){return t.x+t.vx}function Sr(t){return t.y+t.vy}function zr(t){var e,r,n,o=1,i=1;function s(){for(var t,s,u,c,h,l,d,f=e.length,g=0;g<i;++g)for(s=xr(e,kr,Sr).visitAfter(a),t=0;t<f;++t)u=e[t],l=r[u.index],d=l*l,c=u.x+u.vx,h=u.y+u.vy,s.visit(p);function p(t,e,r,i,s){var a=t.data,f=t.r,g=l+f;if(!a)return e>c+g||i<c-g||r>h+g||s<h-g;if(a.index>u.index){var p=c-a.x-a.vx,v=h-a.y-a.vy,m=p*p+v*v;m<g*g&&(0===p&&(m+=(p=_r(n))*p),0===v&&(m+=(v=_r(n))*v),m=(g-(m=Math.sqrt(m)))/m*o,u.vx+=(p*=m)*(g=(f*=f)/(d+f)),u.vy+=(v*=m)*g,a.vx-=p*(g=1-g),a.vy-=v*g)}}}function a(t){if(t.data)return t.r=r[t.data.index];for(var e=t.r=0;e<4;++e)t[e]&&t[e].r>t.r&&(t.r=t[e].r)}function u(){if(e){var n,o,i=e.length;for(r=new Array(i),n=0;n<i;++n)o=e[n],r[o.index]=+t(o,n,e)}}return"function"!=typeof t&&(t=Nr(null==t?1:+t)),s.initialize=function(t,r){e=t,n=r,u()},s.iterations=function(t){return arguments.length?(i=+t,s):i},s.strength=function(t){return arguments.length?(o=+t,s):o},s.radius=function(e){return arguments.length?(t="function"==typeof e?e:Nr(+e),u(),s):t},s}function Ar(t){return t.index}function Or(t,e){var r=t.get(e);if(!r)throw new Error("node not found: "+e);return r}function jr(t){var e,r,n,o,i,s,a=Ar,u=function(t){return 1/Math.min(o[t.source.index],o[t.target.index])},c=Nr(30),h=1;function l(n){for(var o=0,a=t.length;o<h;++o)for(var u,c,l,d,f,g,p,v=0;v<a;++v)c=(u=t[v]).source,d=(l=u.target).x+l.vx-c.x-c.vx||_r(s),f=l.y+l.vy-c.y-c.vy||_r(s),d*=g=((g=Math.sqrt(d*d+f*f))-r[v])/g*n*e[v],f*=g,l.vx-=d*(p=i[v]),l.vy-=f*p,c.vx+=d*(p=1-p),c.vy+=f*p}function d(){if(n){var s,u,c=n.length,h=t.length,l=new Map(n.map((t,e)=>[a(t,e,n),t]));for(s=0,o=new Array(c);s<h;++s)(u=t[s]).index=s,"object"!=typeof u.source&&(u.source=Or(l,u.source)),"object"!=typeof u.target&&(u.target=Or(l,u.target)),o[u.source.index]=(o[u.source.index]||0)+1,o[u.target.index]=(o[u.target.index]||0)+1;for(s=0,i=new Array(h);s<h;++s)u=t[s],i[s]=o[u.source.index]/(o[u.source.index]+o[u.target.index]);e=new Array(h),f(),r=new Array(h),g()}}function f(){if(n)for(var r=0,o=t.length;r<o;++r)e[r]=+u(t[r],r,t)}function g(){if(n)for(var e=0,o=t.length;e<o;++e)r[e]=+c(t[e],e,t)}return null==t&&(t=[]),l.initialize=function(t,e){n=t,s=e,d()},l.links=function(e){return arguments.length?(t=e,d(),l):t},l.id=function(t){return arguments.length?(a=t,l):a},l.iterations=function(t){return arguments.length?(h=+t,l):h},l.strength=function(t){return arguments.length?(u="function"==typeof t?t:Nr(+t),f(),l):u},l.distance=function(t){return arguments.length?(c="function"==typeof t?t:Nr(+t),g(),l):c},l}Mr.copy=function(){var t,e,r=new br(this._x,this._y,this._x0,this._y0,this._x1,this._y1),n=this._root;if(!n)return r;if(!n.length)return r._root=Er(n),r;for(t=[{source:n,target:r._root=new Array(4)}];n=t.pop();)for(var o=0;o<4;++o)(e=n.source[o])&&(e.length?t.push({source:e,target:n.target[o]=new Array(4)}):n.target[o]=Er(e));return r},Mr.add=function(t){const e=+this._x.call(null,t),r=+this._y.call(null,t);return vr(this.cover(e,r),e,r,t)},Mr.addAll=function(t){var e,r,n,o,i=t.length,s=new Array(i),a=new Array(i),u=1/0,c=1/0,h=-1/0,l=-1/0;for(r=0;r<i;++r)isNaN(n=+this._x.call(null,e=t[r]))||isNaN(o=+this._y.call(null,e))||(s[r]=n,a[r]=o,n<u&&(u=n),n>h&&(h=n),o<c&&(c=o),o>l&&(l=o));if(u>h||c>l)return this;for(this.cover(u,c).cover(h,l),r=0;r<i;++r)vr(this,s[r],a[r],t[r]);return this},Mr.cover=function(t,e){if(isNaN(t=+t)||isNaN(e=+e))return this;var r=this._x0,n=this._y0,o=this._x1,i=this._y1;if(isNaN(r))o=(r=Math.floor(t))+1,i=(n=Math.floor(e))+1;else{for(var s,a,u=o-r||1,c=this._root;r>t||t>=o||n>e||e>=i;)switch(a=(e<n)<<1|t<r,(s=new Array(4))[a]=c,c=s,u*=2,a){case 0:o=r+u,i=n+u;break;case 1:r=o-u,i=n+u;break;case 2:o=r+u,n=i-u;break;case 3:r=o-u,n=i-u}this._root&&this._root.length&&(this._root=c)}return this._x0=r,this._y0=n,this._x1=o,this._y1=i,this},Mr.data=function(){var t=[];return this.visit(function(e){if(!e.length)do{t.push(e.data)}while(e=e.next)}),t},Mr.extent=function(t){return arguments.length?this.cover(+t[0][0],+t[0][1]).cover(+t[1][0],+t[1][1]):isNaN(this._x0)?void 0:[[this._x0,this._y0],[this._x1,this._y1]]},Mr.find=function(t,e,r){var n,o,i,s,a,u,c,h=this._x0,l=this._y0,d=this._x1,f=this._y1,g=[],p=this._root;for(p&&g.push(new mr(p,h,l,d,f)),null==r?r=1/0:(h=t-r,l=e-r,d=t+r,f=e+r,r*=r);u=g.pop();)if(!(!(p=u.node)||(o=u.x0)>d||(i=u.y0)>f||(s=u.x1)<h||(a=u.y1)<l))if(p.length){var v=(o+s)/2,m=(i+a)/2;g.push(new mr(p[3],v,m,s,a),new mr(p[2],o,m,v,a),new mr(p[1],v,i,s,m),new mr(p[0],o,i,v,m)),(c=(e>=m)<<1|t>=v)&&(u=g[g.length-1],g[g.length-1]=g[g.length-1-c],g[g.length-1-c]=u)}else{var y=t-+this._x.call(null,p.data),w=e-+this._y.call(null,p.data),x=y*y+w*w;if(x<r){var b=Math.sqrt(r=x);h=t-b,l=e-b,d=t+b,f=e+b,n=p.data}}return n},Mr.remove=function(t){if(isNaN(i=+this._x.call(null,t))||isNaN(s=+this._y.call(null,t)))return this;var e,r,n,o,i,s,a,u,c,h,l,d,f=this._root,g=this._x0,p=this._y0,v=this._x1,m=this._y1;if(!f)return this;if(f.length)for(;;){if((c=i>=(a=(g+v)/2))?g=a:v=a,(h=s>=(u=(p+m)/2))?p=u:m=u,e=f,!(f=f[l=h<<1|c]))return this;if(!f.length)break;(e[l+1&3]||e[l+2&3]||e[l+3&3])&&(r=e,d=l)}for(;f.data!==t;)if(n=f,!(f=f.next))return this;return(o=f.next)&&delete f.next,n?(o?n.next=o:delete n.next,this):e?(o?e[l]=o:delete e[l],(f=e[0]||e[1]||e[2]||e[3])&&f===(e[3]||e[2]||e[1]||e[0])&&!f.length&&(r?r[d]=f:this._root=f),this):(this._root=o,this)},Mr.removeAll=function(t){for(var e=0,r=t.length;e<r;++e)this.remove(t[e]);return this},Mr.root=function(){return this._root},Mr.size=function(){var t=0;return this.visit(function(e){if(!e.length)do{++t}while(e=e.next)}),t},Mr.visit=function(t){var e,r,n,o,i,s,a=[],u=this._root;for(u&&a.push(new mr(u,this._x0,this._y0,this._x1,this._y1));e=a.pop();)if(!t(u=e.node,n=e.x0,o=e.y0,i=e.x1,s=e.y1)&&u.length){var c=(n+i)/2,h=(o+s)/2;(r=u[3])&&a.push(new mr(r,c,h,i,s)),(r=u[2])&&a.push(new mr(r,n,h,c,s)),(r=u[1])&&a.push(new mr(r,c,o,i,h)),(r=u[0])&&a.push(new mr(r,n,o,c,h))}return this},Mr.visitAfter=function(t){var e,r=[],n=[];for(this._root&&r.push(new mr(this._root,this._x0,this._y0,this._x1,this._y1));e=r.pop();){var o=e.node;if(o.length){var i,s=e.x0,a=e.y0,u=e.x1,c=e.y1,h=(s+u)/2,l=(a+c)/2;(i=o[0])&&r.push(new mr(i,s,a,h,l)),(i=o[1])&&r.push(new mr(i,h,a,u,l)),(i=o[2])&&r.push(new mr(i,s,l,h,c)),(i=o[3])&&r.push(new mr(i,h,l,u,c))}n.push(e)}for(;e=n.pop();)t(e.node,e.x0,e.y0,e.x1,e.y1);return this},Mr.x=function(t){return arguments.length?(this._x=t,this):this._x},Mr.y=function(t){return arguments.length?(this._y=t,this):this._y};var Cr={value:()=>{}};function Ir(){for(var t,e=0,r=arguments.length,n={};e<r;++e){if(!(t=arguments[e]+"")||t in n||/[\s.]/.test(t))throw new Error("illegal type: "+t);n[t]=[]}return new Rr(n)}function Rr(t){this._=t}function Pr(t,e){for(var r,n=0,o=t.length;n<o;++n)if((r=t[n]).name===e)return r.value}function Tr(t,e,r){for(var n=0,o=t.length;n<o;++n)if(t[n].name===e){t[n]=Cr,t=t.slice(0,n).concat(t.slice(n+1));break}return null!=r&&t.push({name:e,value:r}),t}Rr.prototype=Ir.prototype={constructor:Rr,on:function(t,e){var r,n,o=this._,i=(n=o,(t+"").trim().split(/^|\s+/).map(function(t){var e="",r=t.indexOf(".");if(r>=0&&(e=t.slice(r+1),t=t.slice(0,r)),t&&!n.hasOwnProperty(t))throw new Error("unknown type: "+t);return{type:t,name:e}})),s=-1,a=i.length;if(!(arguments.length<2)){if(null!=e&&"function"!=typeof e)throw new Error("invalid callback: "+e);for(;++s<a;)if(r=(t=i[s]).type)o[r]=Tr(o[r],t.name,e);else if(null==e)for(r in o)o[r]=Tr(o[r],t.name,null);return this}for(;++s<a;)if((r=(t=i[s]).type)&&(r=Pr(o[r],t.name)))return r},copy:function(){var t={},e=this._;for(var r in e)t[r]=e[r].slice();return new Rr(t)},call:function(t,e){if((r=arguments.length-2)>0)for(var r,n,o=new Array(r),i=0;i<r;++i)o[i]=arguments[i+2];if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(i=0,r=(n=this._[t]).length;i<r;++i)n[i].value.apply(e,o)},apply:function(t,e,r){if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(var n=this._[t],o=0,i=n.length;o<i;++o)n[o].value.apply(e,r)}};var Fr,Lr,Dr=0,qr=0,Vr=0,Br=0,$r=0,Gr=0,Ur="object"==typeof performance&&performance.now?performance:Date,Wr="object"==typeof window&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(t){setTimeout(t,17)};function Yr(){return $r||(Wr(Hr),$r=Ur.now()+Gr)}function Hr(){$r=0}function Xr(){this._call=this._time=this._next=null}function Qr(t,e,r){var n=new Xr;return n.restart(t,e,r),n}function Jr(){$r=(Br=Ur.now())+Gr,Dr=qr=0;try{!function(){Yr(),++Dr;for(var t,e=Fr;e;)(t=$r-e._time)>=0&&e._call.call(void 0,t),e=e._next;--Dr}()}finally{Dr=0,function(){var t,e,r=Fr,n=1/0;for(;r;)r._call?(n>r._time&&(n=r._time),t=r,r=r._next):(e=r._next,r._next=null,r=t?t._next=e:Fr=e);Lr=t,Zr(n)}(),$r=0}}function Kr(){var t=Ur.now(),e=t-Br;e>1e3&&(Gr-=e,Br=t)}function Zr(t){Dr||(qr&&(qr=clearTimeout(qr)),t-$r>24?(t<1/0&&(qr=setTimeout(Jr,t-Ur.now()-Gr)),Vr&&(Vr=clearInterval(Vr))):(Vr||(Br=Ur.now(),Vr=setInterval(Kr,1e3)),Dr=1,Wr(Jr)))}Xr.prototype=Qr.prototype={constructor:Xr,restart:function(t,e,r){if("function"!=typeof t)throw new TypeError("callback is not a function");r=(null==r?Yr():+r)+(null==e?0:+e),this._next||Lr===this||(Lr?Lr._next=this:Fr=this,Lr=this),this._call=t,this._time=r,Zr()},stop:function(){this._call&&(this._call=null,this._time=1/0,Zr())}};const tn=4294967296;function en(t){return t.x}function rn(t){return t.y}var nn=Math.PI*(3-Math.sqrt(5));function on(t){var e,r=1,n=.001,o=1-Math.pow(n,1/300),i=0,s=.6,a=new Map,u=Qr(l),c=Ir("tick","end"),h=function(){let t=1;return()=>(t=(1664525*t+1013904223)%tn)/tn}();function l(){d(),c.call("tick",e),r<n&&(u.stop(),c.call("end",e))}function d(n){var u,c,h=t.length;void 0===n&&(n=1);for(var l=0;l<n;++l)for(r+=(i-r)*o,a.forEach(function(t){t(r)}),u=0;u<h;++u)null==(c=t[u]).fx?c.x+=c.vx*=s:(c.x=c.fx,c.vx=0),null==c.fy?c.y+=c.vy*=s:(c.y=c.fy,c.vy=0);return e}function f(){for(var e,r=0,n=t.length;r<n;++r){if((e=t[r]).index=r,null!=e.fx&&(e.x=e.fx),null!=e.fy&&(e.y=e.fy),isNaN(e.x)||isNaN(e.y)){var o=10*Math.sqrt(.5+r),i=r*nn;e.x=o*Math.cos(i),e.y=o*Math.sin(i)}(isNaN(e.vx)||isNaN(e.vy))&&(e.vx=e.vy=0)}}function g(e){return e.initialize&&e.initialize(t,h),e}return null==t&&(t=[]),f(),e={tick:d,restart:function(){return u.restart(l),e},stop:function(){return u.stop(),e},nodes:function(r){return arguments.length?(t=r,f(),a.forEach(g),e):t},alpha:function(t){return arguments.length?(r=+t,e):r},alphaMin:function(t){return arguments.length?(n=+t,e):n},alphaDecay:function(t){return arguments.length?(o=+t,e):+o},alphaTarget:function(t){return arguments.length?(i=+t,e):i},velocityDecay:function(t){return arguments.length?(s=1-t,e):1-s},randomSource:function(t){return arguments.length?(h=t,a.forEach(g),e):h},force:function(t,r){return arguments.length>1?(null==r?a.delete(t):a.set(t,g(r)),e):a.get(t)},find:function(e,r,n){var o,i,s,a,u,c=0,h=t.length;for(null==n?n=1/0:n*=n,c=0;c<h;++c)(s=(o=e-(a=t[c]).x)*o+(i=r-a.y)*i)<n&&(u=a,n=s);return u},on:function(t,r){return arguments.length>1?(c.on(t,r),e):c.on(t)}}}function sn(){var t,e,r,n,o,i=Nr(-30),s=1,a=1/0,u=.81;function c(r){var o,i=t.length,s=xr(t,en,rn).visitAfter(l);for(n=r,o=0;o<i;++o)e=t[o],s.visit(d)}function h(){if(t){var e,r,n=t.length;for(o=new Array(n),e=0;e<n;++e)r=t[e],o[r.index]=+i(r,e,t)}}function l(t){var e,r,n,i,s,a=0,u=0;if(t.length){for(n=i=s=0;s<4;++s)(e=t[s])&&(r=Math.abs(e.value))&&(a+=e.value,u+=r,n+=r*e.x,i+=r*e.y);t.x=n/u,t.y=i/u}else{(e=t).x=e.data.x,e.y=e.data.y;do{a+=o[e.data.index]}while(e=e.next)}t.value=a}function d(t,i,c,h){if(!t.value)return!0;var l=t.x-e.x,d=t.y-e.y,f=h-i,g=l*l+d*d;if(f*f/u<g)return g<a&&(0===l&&(g+=(l=_r(r))*l),0===d&&(g+=(d=_r(r))*d),g<s&&(g=Math.sqrt(s*g)),e.vx+=l*t.value*n/g,e.vy+=d*t.value*n/g),!0;if(!(t.length||g>=a)){(t.data!==e||t.next)&&(0===l&&(g+=(l=_r(r))*l),0===d&&(g+=(d=_r(r))*d),g<s&&(g=Math.sqrt(s*g)));do{t.data!==e&&(f=o[t.data.index]*n/g,e.vx+=l*f,e.vy+=d*f)}while(t=t.next)}}return c.initialize=function(e,n){t=e,r=n,h()},c.strength=function(t){return arguments.length?(i="function"==typeof t?t:Nr(+t),h(),c):i},c.distanceMin=function(t){return arguments.length?(s=t*t,c):Math.sqrt(s)},c.distanceMax=function(t){return arguments.length?(a=t*t,c):Math.sqrt(a)},c.theta=function(t){return arguments.length?(u=t*t,c):Math.sqrt(u)},c}function an(t){var e,r,n,o=Nr(.1);function i(t){for(var o,i=0,s=e.length;i<s;++i)(o=e[i]).vx+=(n[i]-o.x)*r[i]*t}function s(){if(e){var i,s=e.length;for(r=new Array(s),n=new Array(s),i=0;i<s;++i)r[i]=isNaN(n[i]=+t(e[i],i,e))?0:+o(e[i],i,e)}}return"function"!=typeof t&&(t=Nr(null==t?0:+t)),i.initialize=function(t){e=t,s()},i.strength=function(t){return arguments.length?(o="function"==typeof t?t:Nr(+t),s(),i):o},i.x=function(e){return arguments.length?(t="function"==typeof e?e:Nr(+e),s(),i):t},i}function un(t){var e,r,n,o=Nr(.1);function i(t){for(var o,i=0,s=e.length;i<s;++i)(o=e[i]).vy+=(n[i]-o.y)*r[i]*t}function s(){if(e){var i,s=e.length;for(r=new Array(s),n=new Array(s),i=0;i<s;++i)r[i]=isNaN(n[i]=+t(e[i],i,e))?0:+o(e[i],i,e)}}return"function"!=typeof t&&(t=Nr(null==t?0:+t)),i.initialize=function(t){e=t,s()},i.strength=function(t){return arguments.length?(o="function"==typeof t?t:Nr(+t),s(),i):o},i.y=function(e){return arguments.length?(t="function"==typeof e?e:Nr(+e),s(),i):t},i}const cn=(t,e)=>t[e];function hn(){function t(t){return()=>t}let e,r=t=>t.cluster,n=t(1),o=t(-1),i=t(100),s=t(.1),a=[0,0],u=[],c={},h=[],l=100,d=100,f={none:{x:0,y:0}},g=[],p="force",v=!0,m=.1;function y(t){if(!v)return y;e.tick(),x();for(let e,n=0,o=u.length,i=t*m;n<o;++n)e=u[n],e.vx||(e.vx=0),e.vy||(e.vy=0),e.vx+=(f[r(e._original)].x-e.x)*i,e.vy+=(f[r(e._original)].y-e.y)*i}function w(){u&&function(){if(!u||!u.length)return;const t=u[0];if(void 0===r(t._original))throw Error("Couldnt find the grouping attribute for the nodes. Make sure to set it up with forceInABox.groupBy('clusterAttr') before calling .links()");const a=function(){const t=[],e=[],o={};let i=[],s={},a=[];return s=function(t){const e={};return t.forEach(t=>{const n=r(t._original);e[n]||(e[n]={count:0,sumforceNodeSize:0})}),t.forEach(t=>{const o=r(t._original),i=n(t._original),s=e[o];s.count=s.count+1,s.sumforceNodeSize=s.sumforceNodeSize+Math.PI*(i*i)*1.3,e[o]=s}),e}(u),a=function(t){const e={},n=[];t.forEach(t=>{const n=function(t){const e=cn(t,"source"),n=cn(t,"target"),o=r(c[e]._original),i=r(c[n]._original);return o<=i?`${o}~${i}`:`${i}~${o}`}(t);let o=0;void 0!==e[n]&&(o=e[n]),o+=1,e[n]=o});return Object.entries(e).forEach(([t,e])=>{const r=t.split("~")[0],o=t.split("~")[1];void 0!==r&&void 0!==o&&n.push({source:r,target:o,count:e})}),n}(h),i=Object.keys(s),i.forEach((e,r)=>{const n=s[e];t.push({id:e,size:n.count,r:Math.sqrt(n.sumforceNodeSize/Math.PI)}),o[e]=r}),a.forEach(t=>{const r=cn(t,"source"),n=cn(t,"target"),i=o[r],s=o[n];void 0!==i&&void 0!==s&&e.push({source:i,target:s,count:t.count})}),{nodes:t,links:e}}();e=on(a.nodes).force("x",an(l).strength(.1)).force("y",un(d).strength(.1)).force("collide",zr(t=>t.r).iterations(4)).force("charge",sn().strength(o)).force("links",jr(a.nodes.length?a.links:[]).distance(i).strength(s)),g=e.nodes(),x()}()}function x(){return f={none:{x:0,y:0}},g.forEach(t=>{f[t.id]={x:t.x-a[0],y:t.y-a[1]}}),f}return y.initialize=t=>{u=t,w()},y.template=function(t){return arguments.length?(p=t,w(),y):p},y.groupBy=function(t){return arguments.length?"string"==typeof t?(r=e=>e[t],y):(r=t,y):r},y.enableGrouping=function(t){return arguments.length?(v=t,y):v},y.strength=function(t){return arguments.length?(m=t,y):m},y.centerX=function(t){return arguments.length?(l=t,y):l},y.centerY=function(t){return arguments.length?(d=t,y):d},y.nodes=function(t){return arguments.length?(function(t){c={},t.forEach(t=>{c[t.id]=t})}(t||[]),u=t||[],y):u},y.links=function(t){return arguments.length?(h=t||[],w(),y):h},y.forceNodeSize=function(e){return arguments.length?(n="function"==typeof e?e:t(+e),w(),y):n},y.nodeSize=y.forceNodeSize,y.forceCharge=function(e){return arguments.length?(o="function"==typeof e?e:t(+e),w(),y):o},y.forceLinkDistance=function(e){return arguments.length?(i="function"==typeof e?e:t(+e),w(),y):i},y.forceLinkStrength=function(e){return arguments.length?(s="function"==typeof e?e:t(+e),w(),y):s},y.offset=function(t){return arguments.length?(a=t,y):a},y.getFocis=x,y}const ln={link:{id:t=>String(t.id)},manyBody:{strength:-30},preventOverlap:!1,nodeSize:10,nodeSpacing:0,x:!1,y:!1,clustering:!1,clusterNodeStrength:-1,clusterEdgeStrength:.1,clusterEdgeDistance:100,clusterFociStrength:.8,clusterNodeSize:10};class dn extends pt{getDefaultOptions(){return ln}mergeOptions(t,e){return function(t){for(var e=[],r=1;r<arguments.length;r++)e[r-1]=arguments[r];for(var n=0;n<e.length;n+=1)v(t,e[n]);return t}({},t,e)}constructor(t){super(t),this.id="d3-force",this.d3Nodes=[],this.d3Edges=[],this.config={simulationAttrs:["alpha","alphaMin","alphaDecay","alphaTarget","velocityDecay","randomSource"]},this.options.forceSimulation&&(this.simulation=this.options.forceSimulation)}stop(){return this.simulation&&this.simulation.stop(),this}tick(t=1){var e,r;if(this.simulation){for(let e=0;e<t;e++)this.simulation.tick();this.syncPositionsFromD3(),null===(r=(e=this.options).onTick)||void 0===r||r.call(e,this)}return this}restart(t){return this.simulation&&(void 0!==t&&this.simulation.alpha(t),this.simulation.restart()),this}reheat(){return this.restart(1)}getAlpha(){var t,e;return null!==(e=null===(t=this.simulation)||void 0===t?void 0:t.alpha())&&void 0!==e?e:0}setAlpha(t){return this.simulation&&this.simulation.alpha(t),this}getForce(t){var e;return null===(e=this.simulation)||void 0===e?void 0:e.force(t)}force(t,e){return this.simulation&&this.simulation.force(t,e),this}nodes(){var t,e;return null!==(e=null===(t=this.simulation)||void 0===t?void 0:t.nodes())&&void 0!==e?e:[]}find(t,e,r){if(this.simulation)return this.simulation.find(t,e,r)}setFixedPosition(t,e){const r=this.d3Nodes.find(e=>e.id===t),n=this.model.node(t);if(!n||!r)return;const o=["fx","fy","fz"];null!==e?e.forEach((t,e)=>{e<o.length&&("number"==typeof t||null===t)&&(n[o[e]]=t,r[o[e]]=t)}):o.forEach(t=>{delete n[t],delete r[t]})}parseOptions(t){var e,r;const n=t;return n.collide&&void 0===(null===(e=n.collide)||void 0===e?void 0:e.radius)&&(n.collide=n.collide||{},n.collide.radius=null!==(r=n.nodeSize)&&void 0!==r?r:10),void 0===n.iterations&&(n.link&&void 0===n.link.iterations&&(n.iterations=n.link.iterations),n.collide&&void 0===n.collide.iterations&&(n.iterations=n.collide.iterations)),n}layout(){var t;return r(this,void 0,void 0,function*(){const e=this.parseOptions(this.options||{});this.createD3Copies();const r=this.setSimulation(e);return r.nodes(this.d3Nodes),null===(t=r.force("link"))||void 0===t||t.links(this.d3Edges),new Promise(t=>{r.on("end",()=>{this.syncPositionsFromD3(),t()})})})}createD3Copies(){this.d3Nodes=[],this.d3Edges=[],this.model.forEachNode(t=>{this.d3Nodes.push(Object.assign({},t))}),this.model.forEachEdge(t=>{this.d3Edges.push(Object.assign({},t))})}syncPositionsFromD3(){this.d3Nodes.forEach(t=>{const e=this.model.node(t.id);e&&(e.x=t.x,e.y=t.y,void 0!==t.z&&(e.z=t.z),void 0!==t.fx&&(e.fx=t.fx),void 0!==t.fy&&(e.fy=t.fy),void 0!==t.fz&&(e.fz=t.fz),void 0!==t.vx&&(e.vx=t.vx),void 0!==t.vy&&(e.vy=t.vy),void 0!==t.vz&&(e.vz=t.vz))})}initSimulation(){return on()}setSimulation(t){const e=this.simulation||this.options.forceSimulation||this.initSimulation();return this.simulation||(this.simulation=e.on("tick",()=>{var e;this.syncPositionsFromD3(),null===(e=t.onTick)||void 0===e||e.call(t,this)})),fn(e,this.config.simulationAttrs.map(e=>[e,t[e]])),this.setupForces(e,t),e}setupForces(t,e){this.setupLinkForce(t,e),this.setupManyBodyForce(t,e),this.setupCenterForce(t,e),this.setupCollisionForce(t,e),this.setupXForce(t,e),this.setupYForce(t,e),this.setupRadialForce(t,e),this.setupClusterForce(t,e)}getCenterOptions(t){if(!1===t.center)return;const e=L({width:t.width,height:t.height});return O({},t.center||{},{x:e.width/2,y:e.height/2,strength:t.centerStrength})}setupCenterForce(t,e){const r=this.getCenterOptions(e);if(r){let e=t.force("center");e||(e=function(t,e){var r,n=1;function o(){var o,i,s=r.length,a=0,u=0;for(o=0;o<s;++o)a+=(i=r[o]).x,u+=i.y;for(a=(a/s-t)*n,u=(u/s-e)*n,o=0;o<s;++o)(i=r[o]).x-=a,i.y-=u}return null==t&&(t=0),null==e&&(e=0),o.initialize=function(t){r=t},o.x=function(e){return arguments.length?(t=+e,o):t},o.y=function(t){return arguments.length?(e=+t,o):e},o.strength=function(t){return arguments.length?(n=+t,o):n},o}(r.x,r.y),t.force("center",e));const n=[];void 0!==r.x&&n.push(["x",r.x]),void 0!==r.y&&n.push(["y",r.y]),void 0!==r.strength&&n.push(["strength",r.strength]),fn(e,n)}else t.force("center",null)}getManyBodyOptions(t){if(!1!==t.manyBody)return O({},t.manyBody||{},{strength:t.nodeStrength,distanceMin:t.distanceMin,distanceMax:t.distanceMax,theta:t.theta})}setupManyBodyForce(t,e){const r=this.getManyBodyOptions(e);if(r){let e=t.force("charge");e||(e=sn(),t.force("charge",e));const n=[];void 0!==r.strength&&n.push(["strength",r.strength]),void 0!==r.distanceMin&&n.push(["distanceMin",r.distanceMin]),void 0!==r.distanceMax&&n.push(["distanceMax",r.distanceMax]),void 0!==r.theta&&n.push(["theta",r.theta]),fn(e,n)}else t.force("charge",null)}getLinkOptions(t){if(!1!==t.link)return O({},t.link||{},{id:t.edgeId,distance:t.linkDistance,strength:t.edgeStrength,iterations:t.edgeIterations})}setupLinkForce(t,e){const r=this.model.edges(),n=this.getLinkOptions(e);if(r.length>0&&n){let e=t.force("link");e||(e=jr(),t.force("link",e));const r=[];void 0!==n.id&&r.push(["id",n.id]),void 0!==n.distance&&r.push(["distance",n.distance]),void 0!==n.strength&&r.push(["strength",n.strength]),void 0!==n.iterations&&r.push(["iterations",n.iterations]),fn(e,r)}else t.force("link",null)}getCollisionOptions(t){if(!1===t.preventOverlap||!1===t.collide)return;const e=t.nodeSize||t.nodeSpacing?e=>V(t.nodeSize,t.nodeSpacing)(e._original)/2:void 0;return O({},t.collide||{},{radius:t.collide||e,strength:t.collideStrength,iterations:t.collideIterations})}setupCollisionForce(t,e){const r=this.getCollisionOptions(e);if(r){let e=t.force("collide");e||(e=zr(),t.force("collide",e));const n=[];void 0!==r.radius&&n.push(["radius",r.radius]),void 0!==r.strength&&n.push(["strength",r.strength]),void 0!==r.iterations&&n.push(["iterations",r.iterations]),fn(e,n)}else t.force("collide",null)}getXForceOptions(t){var e;if(!1===t.x)return;const r=this.getCenterOptions(t);return O({},t.x||{},{x:null!==(e=t.forceXPosition)&&void 0!==e?e:r&&r.x,strength:t.forceXStrength})}setupXForce(t,e){const r=this.getXForceOptions(e);if(r){let e=t.force("x");e||(e=an(),t.force("x",e));const n=[];void 0!==r.x&&n.push(["x",r.x]),void 0!==r.strength&&n.push(["strength",r.strength]),fn(e,n)}else t.force("x",null)}getYForceOptions(t){var e;if(!1===t.y)return;const r=this.getCenterOptions(t);return O({},t.y||{},{y:null!==(e=t.forceYPosition)&&void 0!==e?e:r&&r.y,strength:t.forceYStrength})}setupYForce(t,e){const r=this.getYForceOptions(e);if(r){let e=t.force("y");e||(e=un(),t.force("y",e));const n=[];void 0!==r.y&&n.push(["y",r.y]),void 0!==r.strength&&n.push(["strength",r.strength]),fn(e,n)}else t.force("y",null)}getRadialOptions(t){var e,r,n;if(void 0!==t.radial||void 0!==t.radialStrength||void 0!==t.radialRadius||void 0!==t.radialX||void 0!==t.radialY){const o=this.getCenterOptions(t);return O({},t.radial||{},{strength:t.radialStrength,radius:null!==(e=t.radialRadius)&&void 0!==e?e:100,x:null!==(r=t.radialX)&&void 0!==r?r:o&&o.x,y:null!==(n=t.radialY)&&void 0!==n?n:o&&o.y})}}setupRadialForce(t,e){const r=this.getRadialOptions(e);if(r){let e=t.force("radial");e||(e=function(t,e,r){var n,o,i,s=Nr(.1);function a(t){for(var s=0,a=n.length;s<a;++s){var u=n[s],c=u.x-e||1e-6,h=u.y-r||1e-6,l=Math.sqrt(c*c+h*h),d=(i[s]-l)*o[s]*t/l;u.vx+=c*d,u.vy+=h*d}}function u(){if(n){var e,r=n.length;for(o=new Array(r),i=new Array(r),e=0;e<r;++e)i[e]=+t(n[e],e,n),o[e]=isNaN(i[e])?0:+s(n[e],e,n)}}return"function"!=typeof t&&(t=Nr(+t)),null==e&&(e=0),null==r&&(r=0),a.initialize=function(t){n=t,u()},a.strength=function(t){return arguments.length?(s="function"==typeof t?t:Nr(+t),u(),a):s},a.radius=function(e){return arguments.length?(t="function"==typeof e?e:Nr(+e),u(),a):t},a.x=function(t){return arguments.length?(e=+t,a):e},a.y=function(t){return arguments.length?(r=+t,a):r},a}(r.radius||100,r.x,r.y),t.force("radial",e));const n=[];void 0!==r.radius&&n.push(["radius",r.radius]),void 0!==r.strength&&n.push(["strength",r.strength]),void 0!==r.x&&n.push(["x",r.x]),void 0!==r.y&&n.push(["y",r.y]),fn(e,n)}else t.force("radial",null)}setupClusterForce(t,e){const{clustering:r}=e;if(r){const{clusterFociStrength:r,clusterEdgeDistance:n,clusterEdgeStrength:o,clusterNodeStrength:i,clusterNodeSize:s,clusterBy:a}=e,u=this.getCenterOptions(e);let c=t.force("group");c||(c=hn(),t.force("group",c)),fn(c,[["centerX",u&&u.x],["centerY",u&&u.y],["template","force"],["strength",r],["groupBy",a],["nodes",this.model.nodes()],["links",this.model.edges()],["forceLinkDistance",n],["forceLinkStrength",o],["forceCharge",i],["forceNodeSize",s]])}else t.force("group",null)}}const fn=(t,e)=>e.reduce((e,[r,n])=>e[r]&&void 0!==n?e[r].call(t,n):e,t);function gn(t,e,r){var n,o=1;function i(){var i,s,a=n.length,u=0,c=0,h=0;for(i=0;i<a;++i)u+=(s=n[i]).x||0,c+=s.y||0,h+=s.z||0;for(u=(u/a-t)*o,c=(c/a-e)*o,h=(h/a-r)*o,i=0;i<a;++i)s=n[i],u&&(s.x-=u),c&&(s.y-=c),h&&(s.z-=h)}return null==t&&(t=0),null==e&&(e=0),null==r&&(r=0),i.initialize=function(t){n=t},i.x=function(e){return arguments.length?(t=+e,i):t},i.y=function(t){return arguments.length?(e=+t,i):e},i.z=function(t){return arguments.length?(r=+t,i):r},i.strength=function(t){return arguments.length?(o=+t,i):o},i}function pn(t,e,r){if(isNaN(e))return t;var n,o,i,s,a,u,c=t._root,h={data:r},l=t._x0,d=t._x1;if(!c)return t._root=h,t;for(;c.length;)if((s=e>=(o=(l+d)/2))?l=o:d=o,n=c,!(c=c[a=+s]))return n[a]=h,t;if(e===(i=+t._x.call(null,c.data)))return h.next=c,n?n[a]=h:t._root=h,t;do{n=n?n[a]=new Array(2):t._root=new Array(2),(s=e>=(o=(l+d)/2))?l=o:d=o}while((a=+s)===(u=+(i>=o)));return n[u]=c,n[a]=h,t}function vn(t,e,r){this.node=t,this.x0=e,this.x1=r}function mn(t){return t[0]}function yn(t,e){var r=new wn(null==e?mn:e,NaN,NaN);return null==t?r:r.addAll(t)}function wn(t,e,r){this._x=t,this._x0=e,this._x1=r,this._root=void 0}function xn(t){for(var e={data:t.data},r=e;t=t.next;)r=r.next={data:t.data};return e}var bn=yn.prototype=wn.prototype;function En(t,e,r,n,o){if(isNaN(e)||isNaN(r)||isNaN(n))return t;var i,s,a,u,c,h,l,d,f,g,p,v,m=t._root,y={data:o},w=t._x0,x=t._y0,b=t._z0,E=t._x1,M=t._y1,N=t._z1;if(!m)return t._root=y,t;for(;m.length;)if((d=e>=(s=(w+E)/2))?w=s:E=s,(f=r>=(a=(x+M)/2))?x=a:M=a,(g=n>=(u=(b+N)/2))?b=u:N=u,i=m,!(m=m[p=g<<2|f<<1|d]))return i[p]=y,t;if(c=+t._x.call(null,m.data),h=+t._y.call(null,m.data),l=+t._z.call(null,m.data),e===c&&r===h&&n===l)return y.next=m,i?i[p]=y:t._root=y,t;do{i=i?i[p]=new Array(8):t._root=new Array(8),(d=e>=(s=(w+E)/2))?w=s:E=s,(f=r>=(a=(x+M)/2))?x=a:M=a,(g=n>=(u=(b+N)/2))?b=u:N=u}while((p=g<<2|f<<1|d)==(v=(l>=u)<<2|(h>=a)<<1|c>=s));return i[v]=m,i[p]=y,t}function Mn(t,e,r,n,o,i,s){this.node=t,this.x0=e,this.y0=r,this.z0=n,this.x1=o,this.y1=i,this.z1=s}bn.copy=function(){var t,e,r=new wn(this._x,this._x0,this._x1),n=this._root;if(!n)return r;if(!n.length)return r._root=xn(n),r;for(t=[{source:n,target:r._root=new Array(2)}];n=t.pop();)for(var o=0;o<2;++o)(e=n.source[o])&&(e.length?t.push({source:e,target:n.target[o]=new Array(2)}):n.target[o]=xn(e));return r},bn.add=function(t){const e=+this._x.call(null,t);return pn(this.cover(e),e,t)},bn.addAll=function(t){Array.isArray(t)||(t=Array.from(t));const e=t.length,r=new Float64Array(e);let n=1/0,o=-1/0;for(let i,s=0;s<e;++s)isNaN(i=+this._x.call(null,t[s]))||(r[s]=i,i<n&&(n=i),i>o&&(o=i));if(n>o)return this;this.cover(n).cover(o);for(let n=0;n<e;++n)pn(this,r[n],t[n]);return this},bn.cover=function(t){if(isNaN(t=+t))return this;var e=this._x0,r=this._x1;if(isNaN(e))r=(e=Math.floor(t))+1;else{for(var n,o,i=r-e||1,s=this._root;e>t||t>=r;)switch(o=+(t<e),(n=new Array(2))[o]=s,s=n,i*=2,o){case 0:r=e+i;break;case 1:e=r-i}this._root&&this._root.length&&(this._root=s)}return this._x0=e,this._x1=r,this},bn.data=function(){var t=[];return this.visit(function(e){if(!e.length)do{t.push(e.data)}while(e=e.next)}),t},bn.extent=function(t){return arguments.length?this.cover(+t[0][0]).cover(+t[1][0]):isNaN(this._x0)?void 0:[[this._x0],[this._x1]]},bn.find=function(t,e){var r,n,o,i,s,a=this._x0,u=this._x1,c=[],h=this._root;for(h&&c.push(new vn(h,a,u)),null==e?e=1/0:(a=t-e,u=t+e);i=c.pop();)if(!(!(h=i.node)||(n=i.x0)>u||(o=i.x1)<a))if(h.length){var l=(n+o)/2;c.push(new vn(h[1],l,o),new vn(h[0],n,l)),(s=+(t>=l))&&(i=c[c.length-1],c[c.length-1]=c[c.length-1-s],c[c.length-1-s]=i)}else{var d=Math.abs(t-+this._x.call(null,h.data));d<e&&(e=d,a=t-d,u=t+d,r=h.data)}return r},bn.remove=function(t){if(isNaN(i=+this._x.call(null,t)))return this;var e,r,n,o,i,s,a,u,c,h=this._root,l=this._x0,d=this._x1;if(!h)return this;if(h.length)for(;;){if((a=i>=(s=(l+d)/2))?l=s:d=s,e=h,!(h=h[u=+a]))return this;if(!h.length)break;e[u+1&1]&&(r=e,c=u)}for(;h.data!==t;)if(n=h,!(h=h.next))return this;return(o=h.next)&&delete h.next,n?(o?n.next=o:delete n.next,this):e?(o?e[u]=o:delete e[u],(h=e[0]||e[1])&&h===(e[1]||e[0])&&!h.length&&(r?r[c]=h:this._root=h),this):(this._root=o,this)},bn.removeAll=function(t){for(var e=0,r=t.length;e<r;++e)this.remove(t[e]);return this},bn.root=function(){return this._root},bn.size=function(){var t=0;return this.visit(function(e){if(!e.length)do{++t}while(e=e.next)}),t},bn.visit=function(t){var e,r,n,o,i=[],s=this._root;for(s&&i.push(new vn(s,this._x0,this._x1));e=i.pop();)if(!t(s=e.node,n=e.x0,o=e.x1)&&s.length){var a=(n+o)/2;(r=s[1])&&i.push(new vn(r,a,o)),(r=s[0])&&i.push(new vn(r,n,a))}return this},bn.visitAfter=function(t){var e,r=[],n=[];for(this._root&&r.push(new vn(this._root,this._x0,this._x1));e=r.pop();){var o=e.node;if(o.length){var i,s=e.x0,a=e.x1,u=(s+a)/2;(i=o[0])&&r.push(new vn(i,s,u)),(i=o[1])&&r.push(new vn(i,u,a))}n.push(e)}for(;e=n.pop();)t(e.node,e.x0,e.x1);return this},bn.x=function(t){return arguments.length?(this._x=t,this):this._x};const Nn=(t,e,r,n,o,i)=>Math.sqrt((t-n)**2+(e-o)**2+(r-i)**2);function _n(t){return t[0]}function kn(t){return t[1]}function Sn(t){return t[2]}function zn(t,e,r,n){var o=new An(null==e?_n:e,null==r?kn:r,null==n?Sn:n,NaN,NaN,NaN,NaN,NaN,NaN);return null==t?o:o.addAll(t)}function An(t,e,r,n,o,i,s,a,u){this._x=t,this._y=e,this._z=r,this._x0=n,this._y0=o,this._z0=i,this._x1=s,this._y1=a,this._z1=u,this._root=void 0}function On(t){for(var e={data:t.data},r=e;t=t.next;)r=r.next={data:t.data};return e}var jn=zn.prototype=An.prototype;function Cn(t){return function(){return t}}function In(t){return 1e-6*(t()-.5)}function Rn(t){return t.x+t.vx}function Pn(t){return t.y+t.vy}function Tn(t){return t.z+t.vz}function Fn(t){var e,r,n,o,i=1,s=1;function a(){for(var t,a,c,h,l,d,f,g,p=e.length,v=0;v<s;++v)for(a=(1===r?yn(e,Rn):2===r?xr(e,Rn,Pn):3===r?zn(e,Rn,Pn,Tn):null).visitAfter(u),t=0;t<p;++t)c=e[t],f=n[c.index],g=f*f,h=c.x+c.vx,r>1&&(l=c.y+c.vy),r>2&&(d=c.z+c.vz),a.visit(m);function m(t,e,n,s,a,u,p){var v=[e,n,s,a,u,p],m=v[0],y=v[1],w=v[2],x=v[r],b=v[r+1],E=v[r+2],M=t.data,N=t.r,_=f+N;if(!M)return m>h+_||x<h-_||r>1&&(y>l+_||b<l-_)||r>2&&(w>d+_||E<d-_);if(M.index>c.index){var k=h-M.x-M.vx,S=r>1?l-M.y-M.vy:0,z=r>2?d-M.z-M.vz:0,A=k*k+S*S+z*z;A<_*_&&(0===k&&(A+=(k=In(o))*k),r>1&&0===S&&(A+=(S=In(o))*S),r>2&&0===z&&(A+=(z=In(o))*z),A=(_-(A=Math.sqrt(A)))/A*i,c.vx+=(k*=A)*(_=(N*=N)/(g+N)),r>1&&(c.vy+=(S*=A)*_),r>2&&(c.vz+=(z*=A)*_),M.vx-=k*(_=1-_),r>1&&(M.vy-=S*_),r>2&&(M.vz-=z*_))}}}function u(t){if(t.data)return t.r=n[t.data.index];for(var e=t.r=0;e<Math.pow(2,r);++e)t[e]&&t[e].r>t.r&&(t.r=t[e].r)}function c(){if(e){var r,o,i=e.length;for(n=new Array(i),r=0;r<i;++r)o=e[r],n[o.index]=+t(o,r,e)}}return"function"!=typeof t&&(t=Cn(null==t?1:+t)),a.initialize=function(t,...n){e=t,o=n.find(t=>"function"==typeof t)||Math.random,r=n.find(t=>[1,2,3].includes(t))||2,c()},a.iterations=function(t){return arguments.length?(s=+t,a):s},a.strength=function(t){return arguments.length?(i=+t,a):i},a.radius=function(e){return arguments.length?(t="function"==typeof e?e:Cn(+e),c(),a):t},a}function Ln(t){return t.index}function Dn(t,e){var r=t.get(e);if(!r)throw new Error("node not found: "+e);return r}function qn(t){var e,r,n,o,i,s,a,u=Ln,c=function(t){return 1/Math.min(i[t.source.index],i[t.target.index])},h=Cn(30),l=1;function d(n){for(var i=0,u=t.length;i<l;++i)for(var c,h,d,f,g,p=0,v=0,m=0,y=0;p<u;++p)h=(c=t[p]).source,v=(d=c.target).x+d.vx-h.x-h.vx||In(a),o>1&&(m=d.y+d.vy-h.y-h.vy||In(a)),o>2&&(y=d.z+d.vz-h.z-h.vz||In(a)),v*=f=((f=Math.sqrt(v*v+m*m+y*y))-r[p])/f*n*e[p],m*=f,y*=f,d.vx-=v*(g=s[p]),o>1&&(d.vy-=m*g),o>2&&(d.vz-=y*g),h.vx+=v*(g=1-g),o>1&&(h.vy+=m*g),o>2&&(h.vz+=y*g)}function f(){if(n){var o,a,c=n.length,h=t.length,l=new Map(n.map((t,e)=>[u(t,e,n),t]));for(o=0,i=new Array(c);o<h;++o)(a=t[o]).index=o,"object"!=typeof a.source&&(a.source=Dn(l,a.source)),"object"!=typeof a.target&&(a.target=Dn(l,a.target)),i[a.source.index]=(i[a.source.index]||0)+1,i[a.target.index]=(i[a.target.index]||0)+1;for(o=0,s=new Array(h);o<h;++o)a=t[o],s[o]=i[a.source.index]/(i[a.source.index]+i[a.target.index]);e=new Array(h),g(),r=new Array(h),p()}}function g(){if(n)for(var r=0,o=t.length;r<o;++r)e[r]=+c(t[r],r,t)}function p(){if(n)for(var e=0,o=t.length;e<o;++e)r[e]=+h(t[e],e,t)}return null==t&&(t=[]),d.initialize=function(t,...e){n=t,a=e.find(t=>"function"==typeof t)||Math.random,o=e.find(t=>[1,2,3].includes(t))||2,f()},d.links=function(e){return arguments.length?(t=e,f(),d):t},d.id=function(t){return arguments.length?(u=t,d):u},d.iterations=function(t){return arguments.length?(l=+t,d):l},d.strength=function(t){return arguments.length?(c="function"==typeof t?t:Cn(+t),g(),d):c},d.distance=function(t){return arguments.length?(h="function"==typeof t?t:Cn(+t),p(),d):h},d}jn.copy=function(){var t,e,r=new An(this._x,this._y,this._z,this._x0,this._y0,this._z0,this._x1,this._y1,this._z1),n=this._root;if(!n)return r;if(!n.length)return r._root=On(n),r;for(t=[{source:n,target:r._root=new Array(8)}];n=t.pop();)for(var o=0;o<8;++o)(e=n.source[o])&&(e.length?t.push({source:e,target:n.target[o]=new Array(8)}):n.target[o]=On(e));return r},jn.add=function(t){const e=+this._x.call(null,t),r=+this._y.call(null,t),n=+this._z.call(null,t);return En(this.cover(e,r,n),e,r,n,t)},jn.addAll=function(t){Array.isArray(t)||(t=Array.from(t));const e=t.length,r=new Float64Array(e),n=new Float64Array(e),o=new Float64Array(e);let i=1/0,s=1/0,a=1/0,u=-1/0,c=-1/0,h=-1/0;for(let l,d,f,g,p=0;p<e;++p)isNaN(d=+this._x.call(null,l=t[p]))||isNaN(f=+this._y.call(null,l))||isNaN(g=+this._z.call(null,l))||(r[p]=d,n[p]=f,o[p]=g,d<i&&(i=d),d>u&&(u=d),f<s&&(s=f),f>c&&(c=f),g<a&&(a=g),g>h&&(h=g));if(i>u||s>c||a>h)return this;this.cover(i,s,a).cover(u,c,h);for(let i=0;i<e;++i)En(this,r[i],n[i],o[i],t[i]);return this},jn.cover=function(t,e,r){if(isNaN(t=+t)||isNaN(e=+e)||isNaN(r=+r))return this;var n=this._x0,o=this._y0,i=this._z0,s=this._x1,a=this._y1,u=this._z1;if(isNaN(n))s=(n=Math.floor(t))+1,a=(o=Math.floor(e))+1,u=(i=Math.floor(r))+1;else{for(var c,h,l=s-n||1,d=this._root;n>t||t>=s||o>e||e>=a||i>r||r>=u;)switch(h=(r<i)<<2|(e<o)<<1|t<n,(c=new Array(8))[h]=d,d=c,l*=2,h){case 0:s=n+l,a=o+l,u=i+l;break;case 1:n=s-l,a=o+l,u=i+l;break;case 2:s=n+l,o=a-l,u=i+l;break;case 3:n=s-l,o=a-l,u=i+l;break;case 4:s=n+l,a=o+l,i=u-l;break;case 5:n=s-l,a=o+l,i=u-l;break;case 6:s=n+l,o=a-l,i=u-l;break;case 7:n=s-l,o=a-l,i=u-l}this._root&&this._root.length&&(this._root=d)}return this._x0=n,this._y0=o,this._z0=i,this._x1=s,this._y1=a,this._z1=u,this},jn.data=function(){var t=[];return this.visit(function(e){if(!e.length)do{t.push(e.data)}while(e=e.next)}),t},jn.extent=function(t){return arguments.length?this.cover(+t[0][0],+t[0][1],+t[0][2]).cover(+t[1][0],+t[1][1],+t[1][2]):isNaN(this._x0)?void 0:[[this._x0,this._y0,this._z0],[this._x1,this._y1,this._z1]]},jn.find=function(t,e,r,n){var o,i,s,a,u,c,h,l,d,f=this._x0,g=this._y0,p=this._z0,v=this._x1,m=this._y1,y=this._z1,w=[],x=this._root;for(x&&w.push(new Mn(x,f,g,p,v,m,y)),null==n?n=1/0:(f=t-n,g=e-n,p=r-n,v=t+n,m=e+n,y=r+n,n*=n);l=w.pop();)if(!(!(x=l.node)||(i=l.x0)>v||(s=l.y0)>m||(a=l.z0)>y||(u=l.x1)<f||(c=l.y1)<g||(h=l.z1)<p))if(x.length){var b=(i+u)/2,E=(s+c)/2,M=(a+h)/2;w.push(new Mn(x[7],b,E,M,u,c,h),new Mn(x[6],i,E,M,b,c,h),new Mn(x[5],b,s,M,u,E,h),new Mn(x[4],i,s,M,b,E,h),new Mn(x[3],b,E,a,u,c,M),new Mn(x[2],i,E,a,b,c,M),new Mn(x[1],b,s,a,u,E,M),new Mn(x[0],i,s,a,b,E,M)),(d=(r>=M)<<2|(e>=E)<<1|t>=b)&&(l=w[w.length-1],w[w.length-1]=w[w.length-1-d],w[w.length-1-d]=l)}else{var N=t-+this._x.call(null,x.data),_=e-+this._y.call(null,x.data),k=r-+this._z.call(null,x.data),S=N*N+_*_+k*k;if(S<n){var z=Math.sqrt(n=S);f=t-z,g=e-z,p=r-z,v=t+z,m=e+z,y=r+z,o=x.data}}return o},jn.findAllWithinRadius=function(t,e,r,n){const o=[],i=t-n,s=e-n,a=r-n,u=t+n,c=e+n,h=r+n;return this.visit((l,d,f,g,p,v,m)=>{if(!l.length)do{const i=l.data;Nn(t,e,r,this._x(i),this._y(i),this._z(i))<=n&&o.push(i)}while(l=l.next);return d>u||f>c||g>h||p<i||v<s||m<a}),o},jn.remove=function(t){if(isNaN(i=+this._x.call(null,t))||isNaN(s=+this._y.call(null,t))||isNaN(a=+this._z.call(null,t)))return this;var e,r,n,o,i,s,a,u,c,h,l,d,f,g,p,v=this._root,m=this._x0,y=this._y0,w=this._z0,x=this._x1,b=this._y1,E=this._z1;if(!v)return this;if(v.length)for(;;){if((l=i>=(u=(m+x)/2))?m=u:x=u,(d=s>=(c=(y+b)/2))?y=c:b=c,(f=a>=(h=(w+E)/2))?w=h:E=h,e=v,!(v=v[g=f<<2|d<<1|l]))return this;if(!v.length)break;(e[g+1&7]||e[g+2&7]||e[g+3&7]||e[g+4&7]||e[g+5&7]||e[g+6&7]||e[g+7&7])&&(r=e,p=g)}for(;v.data!==t;)if(n=v,!(v=v.next))return this;return(o=v.next)&&delete v.next,n?(o?n.next=o:delete n.next,this):e?(o?e[g]=o:delete e[g],(v=e[0]||e[1]||e[2]||e[3]||e[4]||e[5]||e[6]||e[7])&&v===(e[7]||e[6]||e[5]||e[4]||e[3]||e[2]||e[1]||e[0])&&!v.length&&(r?r[p]=v:this._root=v),this):(this._root=o,this)},jn.removeAll=function(t){for(var e=0,r=t.length;e<r;++e)this.remove(t[e]);return this},jn.root=function(){return this._root},jn.size=function(){var t=0;return this.visit(function(e){if(!e.length)do{++t}while(e=e.next)}),t},jn.visit=function(t){var e,r,n,o,i,s,a,u,c=[],h=this._root;for(h&&c.push(new Mn(h,this._x0,this._y0,this._z0,this._x1,this._y1,this._z1));e=c.pop();)if(!t(h=e.node,n=e.x0,o=e.y0,i=e.z0,s=e.x1,a=e.y1,u=e.z1)&&h.length){var l=(n+s)/2,d=(o+a)/2,f=(i+u)/2;(r=h[7])&&c.push(new Mn(r,l,d,f,s,a,u)),(r=h[6])&&c.push(new Mn(r,n,d,f,l,a,u)),(r=h[5])&&c.push(new Mn(r,l,o,f,s,d,u)),(r=h[4])&&c.push(new Mn(r,n,o,f,l,d,u)),(r=h[3])&&c.push(new Mn(r,l,d,i,s,a,f)),(r=h[2])&&c.push(new Mn(r,n,d,i,l,a,f)),(r=h[1])&&c.push(new Mn(r,l,o,i,s,d,f)),(r=h[0])&&c.push(new Mn(r,n,o,i,l,d,f))}return this},jn.visitAfter=function(t){var e,r=[],n=[];for(this._root&&r.push(new Mn(this._root,this._x0,this._y0,this._z0,this._x1,this._y1,this._z1));e=r.pop();){var o=e.node;if(o.length){var i,s=e.x0,a=e.y0,u=e.z0,c=e.x1,h=e.y1,l=e.z1,d=(s+c)/2,f=(a+h)/2,g=(u+l)/2;(i=o[0])&&r.push(new Mn(i,s,a,u,d,f,g)),(i=o[1])&&r.push(new Mn(i,d,a,u,c,f,g)),(i=o[2])&&r.push(new Mn(i,s,f,u,d,h,g)),(i=o[3])&&r.push(new Mn(i,d,f,u,c,h,g)),(i=o[4])&&r.push(new Mn(i,s,a,g,d,f,l)),(i=o[5])&&r.push(new Mn(i,d,a,g,c,f,l)),(i=o[6])&&r.push(new Mn(i,s,f,g,d,h,l)),(i=o[7])&&r.push(new Mn(i,d,f,g,c,h,l))}n.push(e)}for(;e=n.pop();)t(e.node,e.x0,e.y0,e.z0,e.x1,e.y1,e.z1);return this},jn.x=function(t){return arguments.length?(this._x=t,this):this._x},jn.y=function(t){return arguments.length?(this._y=t,this):this._y},jn.z=function(t){return arguments.length?(this._z=t,this):this._z};const Vn=4294967296;function Bn(t){return t.x}function $n(t){return t.y}function Gn(t){return t.z}var Un=Math.PI*(3-Math.sqrt(5)),Wn=20*Math.PI/(9+Math.sqrt(221));function Yn(t,e){e=e||2;var r,n=Math.min(3,Math.max(1,Math.round(e))),o=1,i=.001,s=1-Math.pow(i,1/300),a=0,u=.6,c=new Map,h=Qr(f),l=Ir("tick","end"),d=function(){let t=1;return()=>(t=(1664525*t+1013904223)%Vn)/Vn}();function f(){g(),l.call("tick",r),o<i&&(h.stop(),l.call("end",r))}function g(e){var i,h,l=t.length;void 0===e&&(e=1);for(var d=0;d<e;++d)for(o+=(a-o)*s,c.forEach(function(t){t(o)}),i=0;i<l;++i)null==(h=t[i]).fx?h.x+=h.vx*=u:(h.x=h.fx,h.vx=0),n>1&&(null==h.fy?h.y+=h.vy*=u:(h.y=h.fy,h.vy=0)),n>2&&(null==h.fz?h.z+=h.vz*=u:(h.z=h.fz,h.vz=0));return r}function p(){for(var e,r=0,o=t.length;r<o;++r){if((e=t[r]).index=r,null!=e.fx&&(e.x=e.fx),null!=e.fy&&(e.y=e.fy),null!=e.fz&&(e.z=e.fz),isNaN(e.x)||n>1&&isNaN(e.y)||n>2&&isNaN(e.z)){var i=10*(n>2?Math.cbrt(.5+r):n>1?Math.sqrt(.5+r):r),s=r*Un,a=r*Wn;1===n?e.x=i:2===n?(e.x=i*Math.cos(s),e.y=i*Math.sin(s)):(e.x=i*Math.sin(s)*Math.cos(a),e.y=i*Math.cos(s),e.z=i*Math.sin(s)*Math.sin(a))}(isNaN(e.vx)||n>1&&isNaN(e.vy)||n>2&&isNaN(e.vz))&&(e.vx=0,n>1&&(e.vy=0),n>2&&(e.vz=0))}}function v(e){return e.initialize&&e.initialize(t,d,n),e}return null==t&&(t=[]),p(),r={tick:g,restart:function(){return h.restart(f),r},stop:function(){return h.stop(),r},numDimensions:function(t){return arguments.length?(n=Math.min(3,Math.max(1,Math.round(t))),c.forEach(v),r):n},nodes:function(e){return arguments.length?(t=e,p(),c.forEach(v),r):t},alpha:function(t){return arguments.length?(o=+t,r):o},alphaMin:function(t){return arguments.length?(i=+t,r):i},alphaDecay:function(t){return arguments.length?(s=+t,r):+s},alphaTarget:function(t){return arguments.length?(a=+t,r):a},velocityDecay:function(t){return arguments.length?(u=1-t,r):1-u},randomSource:function(t){return arguments.length?(d=t,c.forEach(v),r):d},force:function(t,e){return arguments.length>1?(null==e?c.delete(t):c.set(t,v(e)),r):c.get(t)},find:function(){var e,r,o,i,s,a,u=Array.prototype.slice.call(arguments),c=u.shift()||0,h=(n>1?u.shift():null)||0,l=(n>2?u.shift():null)||0,d=u.shift()||1/0,f=0,g=t.length;for(d*=d,f=0;f<g;++f)(i=(e=c-(s=t[f]).x)*e+(r=h-(s.y||0))*r+(o=l-(s.z||0))*o)<d&&(a=s,d=i);return a},on:function(t,e){return arguments.length>1?(l.on(t,e),r):l.on(t)}}}function Hn(){var t,e,r,n,o,i,s=Cn(-30),a=1,u=1/0,c=.81;function h(n){var i,s=t.length,a=(1===e?yn(t,Bn):2===e?xr(t,Bn,$n):3===e?zn(t,Bn,$n,Gn):null).visitAfter(d);for(o=n,i=0;i<s;++i)r=t[i],a.visit(f)}function l(){if(t){var e,r,n=t.length;for(i=new Array(n),e=0;e<n;++e)r=t[e],i[r.index]=+s(r,e,t)}}function d(t){var r,n,o,s,a,u,c=0,h=0,l=t.length;if(l){for(o=s=a=u=0;u<l;++u)(r=t[u])&&(n=Math.abs(r.value))&&(c+=r.value,h+=n,o+=n*(r.x||0),s+=n*(r.y||0),a+=n*(r.z||0));c*=Math.sqrt(4/l),t.x=o/h,e>1&&(t.y=s/h),e>2&&(t.z=a/h)}else{(r=t).x=r.data.x,e>1&&(r.y=r.data.y),e>2&&(r.z=r.data.z);do{c+=i[r.data.index]}while(r=r.next)}t.value=c}function f(t,s,h,l,d){if(!t.value)return!0;var f=[h,l,d][e-1],g=t.x-r.x,p=e>1?t.y-r.y:0,v=e>2?t.z-r.z:0,m=f-s,y=g*g+p*p+v*v;if(m*m/c<y)return y<u&&(0===g&&(y+=(g=In(n))*g),e>1&&0===p&&(y+=(p=In(n))*p),e>2&&0===v&&(y+=(v=In(n))*v),y<a&&(y=Math.sqrt(a*y)),r.vx+=g*t.value*o/y,e>1&&(r.vy+=p*t.value*o/y),e>2&&(r.vz+=v*t.value*o/y)),!0;if(!(t.length||y>=u)){(t.data!==r||t.next)&&(0===g&&(y+=(g=In(n))*g),e>1&&0===p&&(y+=(p=In(n))*p),e>2&&0===v&&(y+=(v=In(n))*v),y<a&&(y=Math.sqrt(a*y)));do{t.data!==r&&(m=i[t.data.index]*o/y,r.vx+=g*m,e>1&&(r.vy+=p*m),e>2&&(r.vz+=v*m))}while(t=t.next)}}return h.initialize=function(r,...o){t=r,n=o.find(t=>"function"==typeof t)||Math.random,e=o.find(t=>[1,2,3].includes(t))||2,l()},h.strength=function(t){return arguments.length?(s="function"==typeof t?t:Cn(+t),l(),h):s},h.distanceMin=function(t){return arguments.length?(a=t*t,h):Math.sqrt(a)},h.distanceMax=function(t){return arguments.length?(u=t*t,h):Math.sqrt(u)},h.theta=function(t){return arguments.length?(c=t*t,h):Math.sqrt(c)},h}function Xn(t,e,r,n){var o,i,s,a,u=Cn(.1);function c(t){for(var u=0,c=o.length;u<c;++u){var h=o[u],l=h.x-e||1e-6,d=(h.y||0)-r||1e-6,f=(h.z||0)-n||1e-6,g=Math.sqrt(l*l+d*d+f*f),p=(a[u]-g)*s[u]*t/g;h.vx+=l*p,i>1&&(h.vy+=d*p),i>2&&(h.vz+=f*p)}}function h(){if(o){var e,r=o.length;for(s=new Array(r),a=new Array(r),e=0;e<r;++e)a[e]=+t(o[e],e,o),s[e]=isNaN(a[e])?0:+u(o[e],e,o)}}return"function"!=typeof t&&(t=Cn(+t)),null==e&&(e=0),null==r&&(r=0),null==n&&(n=0),c.initialize=function(t,...e){o=t,i=e.find(t=>[1,2,3].includes(t))||2,h()},c.strength=function(t){return arguments.length?(u="function"==typeof t?t:Cn(+t),h(),c):u},c.radius=function(e){return arguments.length?(t="function"==typeof e?e:Cn(+e),h(),c):t},c.x=function(t){return arguments.length?(e=+t,c):e},c.y=function(t){return arguments.length?(r=+t,c):r},c.z=function(t){return arguments.length?(n=+t,c):n},c}function Qn(t){var e,r,n,o=Cn(.1);function i(t){for(var o,i=0,s=e.length;i<s;++i)(o=e[i]).vx+=(n[i]-o.x)*r[i]*t}function s(){if(e){var i,s=e.length;for(r=new Array(s),n=new Array(s),i=0;i<s;++i)r[i]=isNaN(n[i]=+t(e[i],i,e))?0:+o(e[i],i,e)}}return"function"!=typeof t&&(t=Cn(null==t?0:+t)),i.initialize=function(t){e=t,s()},i.strength=function(t){return arguments.length?(o="function"==typeof t?t:Cn(+t),s(),i):o},i.x=function(e){return arguments.length?(t="function"==typeof e?e:Cn(+e),s(),i):t},i}function Jn(t){var e,r,n,o=Cn(.1);function i(t){for(var o,i=0,s=e.length;i<s;++i)(o=e[i]).vy+=(n[i]-o.y)*r[i]*t}function s(){if(e){var i,s=e.length;for(r=new Array(s),n=new Array(s),i=0;i<s;++i)r[i]=isNaN(n[i]=+t(e[i],i,e))?0:+o(e[i],i,e)}}return"function"!=typeof t&&(t=Cn(null==t?0:+t)),i.initialize=function(t){e=t,s()},i.strength=function(t){return arguments.length?(o="function"==typeof t?t:Cn(+t),s(),i):o},i.y=function(e){return arguments.length?(t="function"==typeof e?e:Cn(+e),s(),i):t},i}function Kn(t){var e,r,n,o=Cn(.1);function i(t){for(var o,i=0,s=e.length;i<s;++i)(o=e[i]).vz+=(n[i]-o.z)*r[i]*t}function s(){if(e){var i,s=e.length;for(r=new Array(s),n=new Array(s),i=0;i<s;++i)r[i]=isNaN(n[i]=+t(e[i],i,e))?0:+o(e[i],i,e)}}return"function"!=typeof t&&(t=Cn(null==t?0:+t)),i.initialize=function(t){e=t,s()},i.strength=function(t){return arguments.length?(o="function"==typeof t?t:Cn(+t),s(),i):o},i.z=function(e){return arguments.length?(t="function"==typeof e?e:Cn(+e),s(),i):t},i}class Zn extends dn{constructor(){super(...arguments),this.id="d3-force-3d",this.config={simulationAttrs:["alpha","alphaMin","alphaDecay","alphaTarget","velocityDecay","randomSource","numDimensions"]},this.forceMap={link:qn,manyBody:Hn,center:gn,collide:Fn,radial:Xn,x:Qn,y:Jn,z:Kn}}getDefaultOptions(){return{numDimensions:3,link:{id:t=>String(t.id)},manyBody:{},center:{x:0,y:0,z:0}}}initSimulation(){return Yn()}setupForces(t,e){Object.entries(this.forceMap).forEach(([r,n])=>{const o=r;if(e[r]){let r=t.force(o);r||(r=n(),t.force(o,r)),fn(r,Object.entries(e[o]))}else t.force(o,null)})}}var to,eo,ro,no,oo,io,so,ao,uo,co,ho,lo,fo,go,po,vo,mo,yo,wo,xo,bo,Eo,Mo,No,_o,ko,So,zo,Ao,Oo,jo,Co,Io,Ro,Po,To,Fo,Lo,Do,qo,Vo,Bo,$o,Go,Uo,Wo,Yo,Ho,Xo,Qo,Jo,Ko,Zo,ti,ei,ri,ni,oi,ii,si,ai,ui,ci,hi,li,di,fi,gi,pi,vi,mi,yi,wi,xi,bi,Ei,Mi,Ni,_i,ki,Si,zi,Ai,Oi,ji,Ci,Ii,Ri,Pi,Ti,Fi,Li,Di,qi,Vi,Bi,$i,Gi,Ui,Wi,Yi,Hi,Xi,Qi,Ji,Ki,Zi,ts,es="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function rs(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}function ns(t){if(Object.prototype.hasOwnProperty.call(t,"__esModule"))return t;var e=t.default;if("function"==typeof e){var r=function t(){var r=!1;try{r=this instanceof t}catch{}return r?Reflect.construct(e,arguments,this.constructor):e.apply(this,arguments)};r.prototype=e.prototype}else r={};return Object.defineProperty(r,"__esModule",{value:!0}),Object.keys(t).forEach(function(e){var n=Object.getOwnPropertyDescriptor(t,e);Object.defineProperty(r,e,n.get?n:{enumerable:!0,get:function(){return t[e]}})}),r}function os(){if(no)return ro;return no=1,ro=function(t,e){return t===e||t!=t&&e!=e}}function is(){if(io)return oo;io=1;var t=os();return oo=function(e,r){for(var n=e.length;n--;)if(t(e[n][0],r))return n;return-1}}function ss(){if(vo)return po;vo=1;var t=eo?to:(eo=1,to=function(){this.__data__=[],this.size=0}),e=function(){if(ao)return so;ao=1;var t=is(),e=Array.prototype.splice;return so=function(r){var n=this.__data__,o=t(n,r);return!(o<0||(o==n.length-1?n.pop():e.call(n,o,1),--this.size,0))},so}(),r=function(){if(co)return uo;co=1;var t=is();return uo=function(e){var r=this.__data__,n=t(r,e);return n<0?void 0:r[n][1]},uo}(),n=function(){if(lo)return ho;lo=1;var t=is();return ho=function(e){return t(this.__data__,e)>-1}}(),o=function(){if(go)return fo;go=1;var t=is();return fo=function(e,r){var n=this.__data__,o=t(n,e);return o<0?(++this.size,n.push([e,r])):n[o][1]=r,this},fo}();function i(t){var e=-1,r=null==t?0:t.length;for(this.clear();++e<r;){var n=t[e];this.set(n[0],n[1])}}return i.prototype.clear=t,i.prototype.delete=e,i.prototype.get=r,i.prototype.has=n,i.prototype.set=o,po=i}function as(){if(ko)return _o;ko=1;var t="object"==typeof es&&es&&es.Object===Object&&es;return _o=t}function us(){if(zo)return So;zo=1;var t=as(),e="object"==typeof self&&self&&self.Object===Object&&self,r=t||e||Function("return this")();return So=r}function cs(){if(Oo)return Ao;Oo=1;var t=us().Symbol;return Ao=t}function hs(){if(To)return Po;To=1;var t=cs(),e=function(){if(Co)return jo;Co=1;var t=cs(),e=Object.prototype,r=e.hasOwnProperty,n=e.toString,o=t?t.toStringTag:void 0;return jo=function(t){var e=r.call(t,o),i=t[o];try{t[o]=void 0;var s=!0}catch(t){}var a=n.call(t);return s&&(e?t[o]=i:delete t[o]),a}}(),r=function(){if(Ro)return Io;Ro=1;var t=Object.prototype.toString;return Io=function(e){return t.call(e)}}(),n=t?t.toStringTag:void 0;return Po=function(t){return null==t?void 0===t?"[object Undefined]":"[object Null]":n&&n in Object(t)?e(t):r(t)}}function ls(){if(Lo)return Fo;return Lo=1,Fo=function(t){var e=typeof t;return null!=t&&("object"==e||"function"==e)}}function ds(){if(qo)return Do;qo=1;var t=hs(),e=ls();return Do=function(r){if(!e(r))return!1;var n=t(r);return"[object Function]"==n||"[object GeneratorFunction]"==n||"[object AsyncFunction]"==n||"[object Proxy]"==n}}function fs(){if(Go)return $o;Go=1;var t,e=function(){if(Bo)return Vo;Bo=1;var t=us()["__core-js_shared__"];return Vo=t}(),r=(t=/[^.]+$/.exec(e&&e.keys&&e.keys.IE_PROTO||""))?"Symbol(src)_1."+t:"";return $o=function(t){return!!r&&r in t}}function gs(){if(Wo)return Uo;Wo=1;var t=Function.prototype.toString;return Uo=function(e){if(null!=e){try{return t.call(e)}catch(t){}try{return e+""}catch(t){}}return""}}function ps(){if(Ko)return Jo;Ko=1;var t=function(){if(Ho)return Yo;Ho=1;var t=ds(),e=fs(),r=ls(),n=gs(),o=/^\[object .+?Constructor\]$/,i=Function.prototype,s=Object.prototype,a=i.toString,u=s.hasOwnProperty,c=RegExp("^"+a.call(u).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");return Yo=function(i){return!(!r(i)||e(i))&&(t(i)?c:o).test(n(i))}}(),e=Qo?Xo:(Qo=1,Xo=function(t,e){return null==t?void 0:t[e]});return Jo=function(r,n){var o=e(r,n);return t(o)?o:void 0}}function vs(){if(ti)return Zo;ti=1;var t=ps()(us(),"Map");return Zo=t}function ms(){if(ri)return ei;ri=1;var t=ps()(Object,"create");return ei=t}function ys(){if(gi)return fi;gi=1;var t=function(){if(oi)return ni;oi=1;var t=ms();return ni=function(){this.__data__=t?t(null):{},this.size=0}}(),e=si?ii:(si=1,ii=function(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e}),r=function(){if(ui)return ai;ui=1;var t=ms(),e=Object.prototype.hasOwnProperty;return ai=function(r){var n=this.__data__;if(t){var o=n[r];return"__lodash_hash_undefined__"===o?void 0:o}return e.call(n,r)?n[r]:void 0}}(),n=function(){if(hi)return ci;hi=1;var t=ms(),e=Object.prototype.hasOwnProperty;return ci=function(r){var n=this.__data__;return t?void 0!==n[r]:e.call(n,r)}}(),o=function(){if(di)return li;di=1;var t=ms();return li=function(e,r){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=t&&void 0===r?"__lodash_hash_undefined__":r,this}}();function i(t){var e=-1,r=null==t?0:t.length;for(this.clear();++e<r;){var n=t[e];this.set(n[0],n[1])}}return i.prototype.clear=t,i.prototype.delete=e,i.prototype.get=r,i.prototype.has=n,i.prototype.set=o,fi=i}function ws(){if(xi)return wi;xi=1;var t=yi?mi:(yi=1,mi=function(t){var e=typeof t;return"string"==e||"number"==e||"symbol"==e||"boolean"==e?"__proto__"!==t:null===t});return wi=function(e,r){var n=e.__data__;return t(r)?n["string"==typeof r?"string":"hash"]:n.map}}function xs(){if(Oi)return Ai;Oi=1;var t=function(){if(vi)return pi;vi=1;var t=ys(),e=ss(),r=vs();return pi=function(){this.size=0,this.__data__={hash:new t,map:new(r||e),string:new t}}}(),e=function(){if(Ei)return bi;Ei=1;var t=ws();return bi=function(e){var r=t(this,e).delete(e);return this.size-=r?1:0,r}}(),r=function(){if(Ni)return Mi;Ni=1;var t=ws();return Mi=function(e){return t(this,e).get(e)}}(),n=function(){if(ki)return _i;ki=1;var t=ws();return _i=function(e){return t(this,e).has(e)}}(),o=function(){if(zi)return Si;zi=1;var t=ws();return Si=function(e,r){var n=t(this,e),o=n.size;return n.set(e,r),this.size+=n.size==o?0:1,this}}();function i(t){var e=-1,r=null==t?0:t.length;for(this.clear();++e<r;){var n=t[e];this.set(n[0],n[1])}}return i.prototype.clear=t,i.prototype.delete=e,i.prototype.get=r,i.prototype.has=n,i.prototype.set=o,Ai=i}function bs(){if(Ri)return Ii;Ri=1;var t=ss(),e=function(){if(yo)return mo;yo=1;var t=ss();return mo=function(){this.__data__=new t,this.size=0}}(),r=xo?wo:(xo=1,wo=function(t){var e=this.__data__,r=e.delete(t);return this.size=e.size,r}),n=Eo?bo:(Eo=1,bo=function(t){return this.__data__.get(t)}),o=No?Mo:(No=1,Mo=function(t){return this.__data__.has(t)}),i=function(){if(Ci)return ji;Ci=1;var t=ss(),e=vs(),r=xs();return ji=function(n,o){var i=this.__data__;if(i instanceof t){var s=i.__data__;if(!e||s.length<199)return s.push([n,o]),this.size=++i.size,this;i=this.__data__=new r(s)}return i.set(n,o),this.size=i.size,this}}();function s(e){var r=this.__data__=new t(e);this.size=r.size}return s.prototype.clear=e,s.prototype.delete=r,s.prototype.get=n,s.prototype.has=o,s.prototype.set=i,Ii=s}function Es(){if(Ti)return Pi;return Ti=1,Pi=function(t,e){for(var r=-1,n=null==t?0:t.length;++r<n&&!1!==e(t[r],r,t););return t},Pi}function Ms(){if(Li)return Fi;Li=1;var t=ps(),e=function(){try{var e=t(Object,"defineProperty");return e({},"",{}),e}catch(t){}}();return Fi=e}function Ns(){if(qi)return Di;qi=1;var t=Ms();return Di=function(e,r,n){"__proto__"==r&&t?t(e,r,{configurable:!0,enumerable:!0,value:n,writable:!0}):e[r]=n}}function _s(){if(Bi)return Vi;Bi=1;var t=Ns(),e=os(),r=Object.prototype.hasOwnProperty;return Vi=function(n,o,i){var s=n[o];r.call(n,o)&&e(s,i)&&(void 0!==i||o in n)||t(n,o,i)}}function ks(){if(Gi)return $i;Gi=1;var t=_s(),e=Ns();return $i=function(r,n,o,i){var s=!o;o||(o={});for(var a=-1,u=n.length;++a<u;){var c=n[a],h=i?i(o[c],r[c],c,o,r):void 0;void 0===h&&(h=r[c]),s?e(o,c,h):t(o,c,h)}return o},$i}function Ss(){if(Hi)return Yi;return Hi=1,Yi=function(t){return null!=t&&"object"==typeof t}}function zs(){if(Ki)return Ji;Ki=1;var t=function(){if(Qi)return Xi;Qi=1;var t=hs(),e=Ss();return Xi=function(r){return e(r)&&"[object Arguments]"==t(r)}}(),e=Ss(),r=Object.prototype,n=r.hasOwnProperty,o=r.propertyIsEnumerable,i=t(function(){return arguments}())?t:function(t){return e(t)&&n.call(t,"callee")&&!o.call(t,"callee")};return Ji=i}function As(){if(ts)return Zi;ts=1;var t=Array.isArray;return Zi=t}var Os,js,Cs,Is,Rs,Ps,Ts,Fs,Ls,Ds,qs,Vs={exports:{}};function Bs(){return Cs||(Cs=1,function(t,e){var r=us(),n=js?Os:(js=1,Os=function(){return!1}),o=e&&!e.nodeType&&e,i=o&&t&&!t.nodeType&&t,s=i&&i.exports===o?r.Buffer:void 0,a=(s?s.isBuffer:void 0)||n;t.exports=a}(Vs,Vs.exports)),Vs.exports}function $s(){if(Rs)return Is;Rs=1;var t=/^(?:0|[1-9]\d*)$/;return Is=function(e,r){var n=typeof e;return!!(r=null==r?9007199254740991:r)&&("number"==n||"symbol"!=n&&t.test(e))&&e>-1&&e%1==0&&e<r}}function Gs(){if(Ts)return Ps;Ts=1;return Ps=function(t){return"number"==typeof t&&t>-1&&t%1==0&&t<=9007199254740991}}function Us(){if(qs)return Ds;return qs=1,Ds=function(t){return function(e){return t(e)}}}var Ws,Ys,Hs,Xs,Qs,Js,Ks,Zs,ta,ea,ra,na,oa,ia,sa,aa,ua,ca,ha,la,da,fa,ga,pa,va,ma,ya,wa={exports:{}};function xa(){return Ws||(Ws=1,function(t,e){var r=as(),n=e&&!e.nodeType&&e,o=n&&t&&!t.nodeType&&t,i=o&&o.exports===n&&r.process,s=function(){try{var t=o&&o.require&&o.require("util").types;return t||i&&i.binding&&i.binding("util")}catch(t){}}();t.exports=s}(wa,wa.exports)),wa.exports}function ba(){if(Hs)return Ys;Hs=1;var t=function(){if(Ls)return Fs;Ls=1;var t=hs(),e=Gs(),r=Ss(),n={};return n["[object Float32Array]"]=n["[object Float64Array]"]=n["[object Int8Array]"]=n["[object Int16Array]"]=n["[object Int32Array]"]=n["[object Uint8Array]"]=n["[object Uint8ClampedArray]"]=n["[object Uint16Array]"]=n["[object Uint32Array]"]=!0,n["[object Arguments]"]=n["[object Array]"]=n["[object ArrayBuffer]"]=n["[object Boolean]"]=n["[object DataView]"]=n["[object Date]"]=n["[object Error]"]=n["[object Function]"]=n["[object Map]"]=n["[object Number]"]=n["[object Object]"]=n["[object RegExp]"]=n["[object Set]"]=n["[object String]"]=n["[object WeakMap]"]=!1,Fs=function(o){return r(o)&&e(o.length)&&!!n[t(o)]}}(),e=Us(),r=xa(),n=r&&r.isTypedArray,o=n?e(n):t;return Ys=o}function Ea(){if(Qs)return Xs;Qs=1;var t=(Wi||(Wi=1,Ui=function(t,e){for(var r=-1,n=Array(t);++r<t;)n[r]=e(r);return n}),Ui),e=zs(),r=As(),n=Bs(),o=$s(),i=ba(),s=Object.prototype.hasOwnProperty;return Xs=function(a,u){var c=r(a),h=!c&&e(a),l=!c&&!h&&n(a),d=!c&&!h&&!l&&i(a),f=c||h||l||d,g=f?t(a.length,String):[],p=g.length;for(var v in a)!u&&!s.call(a,v)||f&&("length"==v||l&&("offset"==v||"parent"==v)||d&&("buffer"==v||"byteLength"==v||"byteOffset"==v)||o(v,p))||g.push(v);return g},Xs}function Ma(){if(Ks)return Js;Ks=1;var t=Object.prototype;return Js=function(e){var r=e&&e.constructor;return e===("function"==typeof r&&r.prototype||t)}}function Na(){if(ta)return Zs;return ta=1,Zs=function(t,e){return function(r){return t(e(r))}}}function _a(){if(oa)return na;oa=1;var t=Ma(),e=function(){if(ra)return ea;ra=1;var t=Na()(Object.keys,Object);return ea=t}(),r=Object.prototype.hasOwnProperty;return na=function(n){if(!t(n))return e(n);var o=[];for(var i in Object(n))r.call(n,i)&&"constructor"!=i&&o.push(i);return o}}function ka(){if(sa)return ia;sa=1;var t=ds(),e=Gs();return ia=function(r){return null!=r&&e(r.length)&&!t(r)}}function Sa(){if(ua)return aa;ua=1;var t=Ea(),e=_a(),r=ka();return aa=function(n){return r(n)?t(n):e(n)}}function za(){if(ga)return fa;ga=1;var t=ls(),e=Ma(),r=da?la:(da=1,la=function(t){var e=[];if(null!=t)for(var r in Object(t))e.push(r);return e}),n=Object.prototype.hasOwnProperty;return fa=function(o){if(!t(o))return r(o);var i=e(o),s=[];for(var a in o)("constructor"!=a||!i&&n.call(o,a))&&s.push(a);return s}}function Aa(){if(va)return pa;va=1;var t=Ea(),e=za(),r=ka();return pa=function(n){return r(n)?t(n,!0):e(n)}}var Oa,ja,Ca,Ia,Ra,Pa,Ta,Fa,La,Da,qa,Va,Ba,$a,Ga,Ua,Wa,Ya,Ha,Xa,Qa,Ja,Ka,Za,tu,eu,ru,nu,ou,iu,su,au,uu,cu,hu,lu,du,fu,gu,pu,vu,mu,yu,wu,xu,bu,Eu,Mu,Nu,_u,ku,Su,zu,Au,Ou,ju,Cu,Iu,Ru,Pu,Tu,Fu,Lu,Du,qu,Vu,Bu,$u,Gu,Uu,Wu,Yu,Hu,Xu,Qu,Ju,Ku,Zu,tc,ec,rc,nc,oc,ic,sc,ac,uc,cc,hc,lc,dc,fc,gc,pc,vc,mc,yc,wc,xc,bc,Ec,Mc,Nc,_c,kc,Sc,zc,Ac,Oc,jc,Cc,Ic,Rc,Pc,Tc,Fc,Lc,Dc,qc,Vc,Bc,$c,Gc,Uc,Wc,Yc,Hc,Xc,Qc,Jc,Kc,Zc,th,eh,rh,nh,oh,ih,sh,ah,uh,ch,hh,lh,dh,fh,gh,ph,vh,mh,yh,wh,xh,bh,Eh,Mh,Nh,_h,kh,Sh,zh,Ah,Oh,jh,Ch,Ih,Rh,Ph,Th,Fh,Lh,Dh,qh,Vh,Bh,$h,Gh,Uh,Wh,Yh,Hh,Xh,Qh,Jh,Kh,Zh,tl,el,rl,nl,ol,il,sl,al,ul,cl,hl,ll,dl,fl,gl,pl,vl,ml,yl,wl,xl,bl,El,Ml,Nl,_l,kl,Sl,zl,Al,Ol,jl,Cl,Il,Rl,Pl,Tl,Fl,Ll,Dl,ql,Vl,Bl,$l,Gl,Ul,Wl,Yl,Hl,Xl,Ql,Jl,Kl,Zl,td,ed,rd,nd,od,id,sd,ad,ud,cd,hd,ld,dd,fd,gd,pd,vd,md,yd,wd,xd,bd,Ed,Md,Nd,_d,kd,Sd,zd,Ad,Od,jd,Cd,Id,Rd,Pd,Td,Fd,Ld,Dd,qd,Vd,Bd,$d,Gd,Ud,Wd,Yd,Hd,Xd,Qd,Jd,Kd,Zd,tf,ef,rf,nf,of,sf,af,uf,cf,hf,lf,df,ff,gf,pf,vf,mf,yf,wf,xf,bf,Ef,Mf,Nf,_f,kf,Sf,zf,Af,Of,jf,Cf,If,Rf,Pf,Tf,Ff,Lf,Df,qf,Vf,Bf,$f,Gf,Uf,Wf,Yf,Hf,Xf,Qf,Jf,Kf,Zf,tg,eg,rg,ng,og,ig,sg,ag,ug,cg,hg,lg,dg,fg,gg,pg,vg,mg,yg,wg,xg,bg,Eg,Mg,Ng,_g,kg,Sg,zg,Ag,Og,jg,Cg,Ig,Rg,Pg,Tg,Fg,Lg,Dg,qg,Vg,Bg,$g,Gg,Ug,Wg,Yg,Hg,Xg,Qg,Jg,Kg,Zg,tp,ep,rp,np,op,ip,sp,ap,up,cp,hp,lp,dp,fp,gp,pp,vp,mp,yp,wp,xp,bp,Ep,Mp,Np,_p,kp,Sp,zp,Ap,Op={exports:{}};function jp(){return Oa||(Oa=1,function(t,e){var r=us(),n=e&&!e.nodeType&&e,o=n&&t&&!t.nodeType&&t,i=o&&o.exports===n?r.Buffer:void 0,s=i?i.allocUnsafe:void 0;t.exports=function(t,e){if(e)return t.slice();var r=t.length,n=s?s(r):new t.constructor(r);return t.copy(n),n}}(Op,Op.exports)),Op.exports}function Cp(){if(Ca)return ja;return Ca=1,ja=function(t,e){var r=-1,n=t.length;for(e||(e=Array(n));++r<n;)e[r]=t[r];return e},ja}function Ip(){if(Ra)return Ia;return Ra=1,Ia=function(t,e){for(var r=-1,n=null==t?0:t.length,o=0,i=[];++r<n;){var s=t[r];e(s,r,t)&&(i[o++]=s)}return i},Ia}function Rp(){if(Ta)return Pa;return Ta=1,Pa=function(){return[]}}function Pp(){if(La)return Fa;La=1;var t=Ip(),e=Rp(),r=Object.prototype.propertyIsEnumerable,n=Object.getOwnPropertySymbols;return Fa=n?function(e){return null==e?[]:(e=Object(e),t(n(e),function(t){return r.call(e,t)}))}:e}function Tp(){if(Ba)return Va;return Ba=1,Va=function(t,e){for(var r=-1,n=e.length,o=t.length;++r<n;)t[o+r]=e[r];return t},Va}function Fp(){if(Ga)return $a;Ga=1;var t=Na()(Object.getPrototypeOf,Object);return $a=t}function Lp(){if(Wa)return Ua;Wa=1;var t=Tp(),e=Fp(),r=Pp(),n=Rp(),o=Object.getOwnPropertySymbols;return Ua=o?function(n){for(var o=[];n;)t(o,r(n)),n=e(n);return o}:n}function Dp(){if(Qa)return Xa;Qa=1;var t=Tp(),e=As();return Xa=function(r,n,o){var i=n(r);return e(r)?i:t(i,o(r))}}function qp(){if(Ka)return Ja;Ka=1;var t=Dp(),e=Pp(),r=Sa();return Ja=function(n){return t(n,r,e)}}function Vp(){if(su)return iu;su=1;var t=ps()(us(),"Set");return iu=t}function Bp(){if(hu)return cu;hu=1;var t=function(){if(ru)return eu;ru=1;var t=ps()(us(),"DataView");return eu=t}(),e=vs(),r=function(){if(ou)return nu;ou=1;var t=ps()(us(),"Promise");return nu=t}(),n=Vp(),o=function(){if(uu)return au;uu=1;var t=ps()(us(),"WeakMap");return au=t}(),i=hs(),s=gs(),a="[object Map]",u="[object Promise]",c="[object Set]",h="[object WeakMap]",l="[object DataView]",d=s(t),f=s(e),g=s(r),p=s(n),v=s(o),m=i;return(t&&m(new t(new ArrayBuffer(1)))!=l||e&&m(new e)!=a||r&&m(r.resolve())!=u||n&&m(new n)!=c||o&&m(new o)!=h)&&(m=function(t){var e=i(t),r="[object Object]"==e?t.constructor:void 0,n=r?s(r):"";if(n)switch(n){case d:return l;case f:return a;case g:return u;case p:return c;case v:return h}return e}),cu=m}function $p(){if(gu)return fu;gu=1;var t=us().Uint8Array;return fu=t}function Gp(){if(vu)return pu;vu=1;var t=$p();return pu=function(e){var r=new e.constructor(e.byteLength);return new t(r).set(new t(e)),r}}function Up(){if(Nu)return Mu;Nu=1;var t=Gp();return Mu=function(e,r){var n=r?t(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.length)}}function Wp(){if(ku)return _u;ku=1;var t=Gp(),e=function(){if(yu)return mu;yu=1;var t=Gp();return mu=function(e,r){var n=r?t(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.byteLength)}}(),r=function(){if(xu)return wu;xu=1;var t=/\w*$/;return wu=function(e){var r=new e.constructor(e.source,t.exec(e));return r.lastIndex=e.lastIndex,r}}(),n=function(){if(Eu)return bu;Eu=1;var t=cs(),e=t?t.prototype:void 0,r=e?e.valueOf:void 0;return bu=function(t){return r?Object(r.call(t)):{}}}(),o=Up();return _u=function(i,s,a){var u=i.constructor;switch(s){case"[object ArrayBuffer]":return t(i);case"[object Boolean]":case"[object Date]":return new u(+i);case"[object DataView]":return e(i,a);case"[object Float32Array]":case"[object Float64Array]":case"[object Int8Array]":case"[object Int16Array]":case"[object Int32Array]":case"[object Uint8Array]":case"[object Uint8ClampedArray]":case"[object Uint16Array]":case"[object Uint32Array]":return o(i,a);case"[object Map]":case"[object Set]":return new u;case"[object Number]":case"[object String]":return new u(i);case"[object RegExp]":return r(i);case"[object Symbol]":return n(i)}}}function Yp(){if(zu)return Su;zu=1;var t=ls(),e=Object.create,r=function(){function r(){}return function(n){if(!t(n))return{};if(e)return e(n);r.prototype=n;var o=new r;return r.prototype=void 0,o}}();return Su=r}function Hp(){if(Ou)return Au;Ou=1;var t=Yp(),e=Fp(),r=Ma();return Au=function(n){return"function"!=typeof n.constructor||r(n)?{}:t(e(n))}}function Xp(){if(Ru)return Iu;Ru=1;var t=function(){if(Cu)return ju;Cu=1;var t=Bp(),e=Ss();return ju=function(r){return e(r)&&"[object Map]"==t(r)}}(),e=Us(),r=xa(),n=r&&r.isMap,o=n?e(n):t;return Iu=o}function Qp(){if(Lu)return Fu;Lu=1;var t=function(){if(Tu)return Pu;Tu=1;var t=Bp(),e=Ss();return Pu=function(r){return e(r)&&"[object Set]"==t(r)}}(),e=Us(),r=xa(),n=r&&r.isSet,o=n?e(n):t;return Fu=o}function Jp(){if(qu)return Du;qu=1;var t=bs(),e=Es(),r=_s(),n=function(){if(ha)return ca;ha=1;var t=ks(),e=Sa();return ca=function(r,n){return r&&t(n,e(n),r)}}(),o=function(){if(ya)return ma;ya=1;var t=ks(),e=Aa();return ma=function(r,n){return r&&t(n,e(n),r)}}(),i=jp(),s=Cp(),a=function(){if(qa)return Da;qa=1;var t=ks(),e=Pp();return Da=function(r,n){return t(r,e(r),n)}}(),u=function(){if(Ha)return Ya;Ha=1;var t=ks(),e=Lp();return Ya=function(r,n){return t(r,e(r),n)}}(),c=qp(),h=function(){if(tu)return Za;tu=1;var t=Dp(),e=Lp(),r=Aa();return Za=function(n){return t(n,r,e)}}(),l=Bp(),d=function(){if(du)return lu;du=1;var t=Object.prototype.hasOwnProperty;return lu=function(e){var r=e.length,n=new e.constructor(r);return r&&"string"==typeof e[0]&&t.call(e,"index")&&(n.index=e.index,n.input=e.input),n}}(),f=Wp(),g=Hp(),p=As(),v=Bs(),m=Xp(),y=ls(),w=Qp(),x=Sa(),b=Aa(),E="[object Arguments]",M="[object Function]",N="[object Object]",_={};return _[E]=_["[object Array]"]=_["[object ArrayBuffer]"]=_["[object DataView]"]=_["[object Boolean]"]=_["[object Date]"]=_["[object Float32Array]"]=_["[object Float64Array]"]=_["[object Int8Array]"]=_["[object Int16Array]"]=_["[object Int32Array]"]=_["[object Map]"]=_["[object Number]"]=_[N]=_["[object RegExp]"]=_["[object Set]"]=_["[object String]"]=_["[object Symbol]"]=_["[object Uint8Array]"]=_["[object Uint8ClampedArray]"]=_["[object Uint16Array]"]=_["[object Uint32Array]"]=!0,_["[object Error]"]=_[M]=_["[object WeakMap]"]=!1,Du=function k(S,z,A,O,j,C){var I,R=1&z,P=2&z,T=4&z;if(A&&(I=j?A(S,O,j,C):A(S)),void 0!==I)return I;if(!y(S))return S;var F=p(S);if(F){if(I=d(S),!R)return s(S,I)}else{var L=l(S),D=L==M||"[object GeneratorFunction]"==L;if(v(S))return i(S,R);if(L==N||L==E||D&&!j){if(I=P||D?{}:g(S),!R)return P?u(S,o(I,S)):a(S,n(I,S))}else{if(!_[L])return j?S:{};I=f(S,L,R)}}C||(C=new t);var q=C.get(S);if(q)return q;C.set(S,I),w(S)?S.forEach(function(t){I.add(k(t,z,A,t,S,C))}):m(S)&&S.forEach(function(t,e){I.set(e,k(t,z,A,e,S,C))});var V=F?void 0:(T?P?h:c:P?b:x)(S);return e(V||S,function(t,e){V&&(t=S[e=t]),r(I,e,k(t,z,A,e,S,C))}),I},Du}function Kp(){if(Bu)return Vu;Bu=1;var t=Jp();return Vu=function(e){return t(e,4)}}function Zp(){if(Gu)return $u;return Gu=1,$u=function(t){return function(){return t}}}function tv(){if(Hu)return Yu;Hu=1;var t=(Wu||(Wu=1,Uu=function(t){return function(e,r,n){for(var o=-1,i=Object(e),s=n(e),a=s.length;a--;){var u=s[t?a:++o];if(!1===r(i[u],u,i))break}return e}}),Uu),e=t();return Yu=e}function ev(){if(Qu)return Xu;Qu=1;var t=tv(),e=Sa();return Xu=function(r,n){return r&&t(r,n,e)}}function rv(){if(tc)return Zu;tc=1;var t=ev(),e=function(){if(Ku)return Ju;Ku=1;var t=ka();return Ju=function(e,r){return function(n,o){if(null==n)return n;if(!t(n))return e(n,o);for(var i=n.length,s=r?i:-1,a=Object(n);(r?s--:++s<i)&&!1!==o(a[s],s,a););return n}},Ju}(),r=e(t);return Zu=r}function nv(){if(rc)return ec;return rc=1,ec=function(t){return t}}function ov(){if(oc)return nc;oc=1;var t=nv();return nc=function(e){return"function"==typeof e?e:t}}function iv(){if(sc)return ic;sc=1;var t=Es(),e=rv(),r=ov(),n=As();return ic=function(o,i){return(n(o)?t:e)(o,r(i))}}function sv(){return uc?ac:(uc=1,ac=iv())}function av(){if(vc)return pc;vc=1;var t=xs(),e=dc?lc:(dc=1,lc=function(t){return this.__data__.set(t,"__lodash_hash_undefined__"),this}),r=gc?fc:(gc=1,fc=function(t){return this.__data__.has(t)});function n(e){var r=-1,n=null==e?0:e.length;for(this.__data__=new t;++r<n;)this.add(e[r])}return n.prototype.add=n.prototype.push=e,n.prototype.has=r,pc=n}function uv(){if(xc)return wc;return xc=1,wc=function(t,e){return t.has(e)}}function cv(){if(Ec)return bc;Ec=1;var t=av(),e=(yc||(yc=1,mc=function(t,e){for(var r=-1,n=null==t?0:t.length;++r<n;)if(e(t[r],r,t))return!0;return!1}),mc),r=uv();return bc=function(n,o,i,s,a,u){var c=1&i,h=n.length,l=o.length;if(h!=l&&!(c&&l>h))return!1;var d=u.get(n),f=u.get(o);if(d&&f)return d==o&&f==n;var g=-1,p=!0,v=2&i?new t:void 0;for(u.set(n,o),u.set(o,n);++g<h;){var m=n[g],y=o[g];if(s)var w=c?s(y,m,g,o,n,u):s(m,y,g,n,o,u);if(void 0!==w){if(w)continue;p=!1;break}if(v){if(!e(o,function(t,e){if(!r(v,e)&&(m===t||a(m,t,i,s,u)))return v.push(e)})){p=!1;break}}else if(m!==y&&!a(m,y,i,s,u)){p=!1;break}}return u.delete(n),u.delete(o),p},bc}function hv(){if(kc)return _c;return kc=1,_c=function(t){var e=-1,r=Array(t.size);return t.forEach(function(t){r[++e]=t}),r},_c}function lv(){if(zc)return Sc;zc=1;var t=cs(),e=$p(),r=os(),n=cv(),o=(Nc||(Nc=1,Mc=function(t){var e=-1,r=Array(t.size);return t.forEach(function(t,n){r[++e]=[n,t]}),r}),Mc),i=hv(),s=t?t.prototype:void 0,a=s?s.valueOf:void 0;return Sc=function(t,s,u,c,h,l,d){switch(u){case"[object DataView]":if(t.byteLength!=s.byteLength||t.byteOffset!=s.byteOffset)return!1;t=t.buffer,s=s.buffer;case"[object ArrayBuffer]":return!(t.byteLength!=s.byteLength||!l(new e(t),new e(s)));case"[object Boolean]":case"[object Date]":case"[object Number]":return r(+t,+s);case"[object Error]":return t.name==s.name&&t.message==s.message;case"[object RegExp]":case"[object String]":return t==s+"";case"[object Map]":var f=o;case"[object Set]":var g=1&c;if(f||(f=i),t.size!=s.size&&!g)return!1;var p=d.get(t);if(p)return p==s;c|=2,d.set(t,s);var v=n(f(t),f(s),c,h,l,d);return d.delete(t),v;case"[object Symbol]":if(a)return a.call(t)==a.call(s)}return!1}}function dv(){if(Cc)return jc;Cc=1;var t=bs(),e=cv(),r=lv(),n=function(){if(Oc)return Ac;Oc=1;var t=qp(),e=Object.prototype.hasOwnProperty;return Ac=function(r,n,o,i,s,a){var u=1&o,c=t(r),h=c.length;if(h!=t(n).length&&!u)return!1;for(var l=h;l--;){var d=c[l];if(!(u?d in n:e.call(n,d)))return!1}var f=a.get(r),g=a.get(n);if(f&&g)return f==n&&g==r;var p=!0;a.set(r,n),a.set(n,r);for(var v=u;++l<h;){var m=r[d=c[l]],y=n[d];if(i)var w=u?i(y,m,d,n,r,a):i(m,y,d,r,n,a);if(!(void 0===w?m===y||s(m,y,o,i,a):w)){p=!1;break}v||(v="constructor"==d)}if(p&&!v){var x=r.constructor,b=n.constructor;x==b||!("constructor"in r)||!("constructor"in n)||"function"==typeof x&&x instanceof x&&"function"==typeof b&&b instanceof b||(p=!1)}return a.delete(r),a.delete(n),p},Ac}(),o=Bp(),i=As(),s=Bs(),a=ba(),u="[object Arguments]",c="[object Array]",h="[object Object]",l=Object.prototype.hasOwnProperty;return jc=function(d,f,g,p,v,m){var y=i(d),w=i(f),x=y?c:o(d),b=w?c:o(f),E=(x=x==u?h:x)==h,M=(b=b==u?h:b)==h,N=x==b;if(N&&s(d)){if(!s(f))return!1;y=!0,E=!1}if(N&&!E)return m||(m=new t),y||a(d)?e(d,f,g,p,v,m):r(d,f,x,g,p,v,m);if(!(1&g)){var _=E&&l.call(d,"__wrapped__"),k=M&&l.call(f,"__wrapped__");if(_||k){var S=_?d.value():d,z=k?f.value():f;return m||(m=new t),v(S,z,g,p,m)}}return!!N&&(m||(m=new t),n(d,f,g,p,v,m))}}function fv(){if(Rc)return Ic;Rc=1;var t=dv(),e=Ss();return Ic=function r(n,o,i,s,a){return n===o||(null==n||null==o||!e(n)&&!e(o)?n!=n&&o!=o:t(n,o,i,s,r,a))},Ic}function gv(){if(Lc)return Fc;Lc=1;var t=ls();return Fc=function(e){return e==e&&!t(e)}}function pv(){if(Bc)return Vc;return Bc=1,Vc=function(t,e){return function(r){return null!=r&&(r[t]===e&&(void 0!==e||t in Object(r)))}}}function vv(){if(Gc)return $c;Gc=1;var t=function(){if(Tc)return Pc;Tc=1;var t=bs(),e=fv();return Pc=function(r,n,o,i){var s=o.length,a=s,u=!i;if(null==r)return!a;for(r=Object(r);s--;){var c=o[s];if(u&&c[2]?c[1]!==r[c[0]]:!(c[0]in r))return!1}for(;++s<a;){var h=(c=o[s])[0],l=r[h],d=c[1];if(u&&c[2]){if(void 0===l&&!(h in r))return!1}else{var f=new t;if(i)var g=i(l,d,h,r,n,f);if(!(void 0===g?e(d,l,3,i,f):g))return!1}}return!0},Pc}(),e=function(){if(qc)return Dc;qc=1;var t=gv(),e=Sa();return Dc=function(r){for(var n=e(r),o=n.length;o--;){var i=n[o],s=r[i];n[o]=[i,s,t(s)]}return n}}(),r=pv();return $c=function(n){var o=e(n);return 1==o.length&&o[0][2]?r(o[0][0],o[0][1]):function(e){return e===n||t(e,n,o)}}}function mv(){if(Wc)return Uc;Wc=1;var t=hs(),e=Ss();return Uc=function(r){return"symbol"==typeof r||e(r)&&"[object Symbol]"==t(r)}}function yv(){if(Hc)return Yc;Hc=1;var t=As(),e=mv(),r=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,n=/^\w*$/;return Yc=function(o,i){if(t(o))return!1;var s=typeof o;return!("number"!=s&&"symbol"!=s&&"boolean"!=s&&null!=o&&!e(o))||(n.test(o)||!r.test(o)||null!=i&&o in Object(i))}}function wv(){if(Kc)return Jc;Kc=1;var t=function(){if(Qc)return Xc;Qc=1;var t=xs();function e(r,n){if("function"!=typeof r||null!=n&&"function"!=typeof n)throw new TypeError("Expected a function");var o=function(){var t=arguments,e=n?n.apply(this,t):t[0],i=o.cache;if(i.has(e))return i.get(e);var s=r.apply(this,t);return o.cache=i.set(e,s)||i,s};return o.cache=new(e.Cache||t),o}return e.Cache=t,Xc=e}();return Jc=function(e){var r=t(e,function(t){return 500===n.size&&n.clear(),t}),n=r.cache;return r}}function xv(){if(rh)return eh;return rh=1,eh=function(t,e){for(var r=-1,n=null==t?0:t.length,o=Array(n);++r<n;)o[r]=e(t[r],r,t);return o},eh}function bv(){if(sh)return ih;sh=1;var t=function(){if(oh)return nh;oh=1;var t=cs(),e=xv(),r=As(),n=mv(),o=t?t.prototype:void 0,i=o?o.toString:void 0;return nh=function t(o){if("string"==typeof o)return o;if(r(o))return e(o,t)+"";if(n(o))return i?i.call(o):"";var s=o+"";return"0"==s&&1/o==-1/0?"-0":s},nh}();return ih=function(e){return null==e?"":t(e)}}function Ev(){if(uh)return ah;uh=1;var t=As(),e=yv(),r=function(){if(th)return Zc;th=1;var t=wv(),e=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,r=/\\(\\)?/g,n=t(function(t){var n=[];return 46===t.charCodeAt(0)&&n.push(""),t.replace(e,function(t,e,o,i){n.push(o?i.replace(r,"$1"):e||t)}),n});return Zc=n}(),n=bv();return ah=function(o,i){return t(o)?o:e(o,i)?[o]:r(n(o))}}function Mv(){if(hh)return ch;hh=1;var t=mv();return ch=function(e){if("string"==typeof e||t(e))return e;var r=e+"";return"0"==r&&1/e==-1/0?"-0":r}}function Nv(){if(dh)return lh;dh=1;var t=Ev(),e=Mv();return lh=function(r,n){for(var o=0,i=(n=t(n,r)).length;null!=r&&o<i;)r=r[e(n[o++])];return o&&o==i?r:void 0},lh}function _v(){if(yh)return mh;yh=1;var t=Ev(),e=zs(),r=As(),n=$s(),o=Gs(),i=Mv();return mh=function(s,a,u){for(var c=-1,h=(a=t(a,s)).length,l=!1;++c<h;){var d=i(a[c]);if(!(l=null!=s&&u(s,d)))break;s=s[d]}return l||++c!=h?l:!!(h=null==s?0:s.length)&&o(h)&&n(d,h)&&(r(s)||e(s))},mh}function kv(){if(xh)return wh;xh=1;var t=vh?ph:(vh=1,ph=function(t,e){return null!=t&&e in Object(t)}),e=_v();return wh=function(r,n){return null!=r&&e(r,n,t)}}function Sv(){if(Eh)return bh;Eh=1;var t=fv(),e=function(){if(gh)return fh;gh=1;var t=Nv();return fh=function(e,r,n){var o=null==e?void 0:t(e,r);return void 0===o?n:o}}(),r=kv(),n=yv(),o=gv(),i=pv(),s=Mv();return bh=function(a,u){return n(a)&&o(u)?i(s(a),u):function(n){var o=e(n,a);return void 0===o&&o===u?r(n,a):t(u,o,3)}}}function zv(){if(Nh)return Mh;return Nh=1,Mh=function(t){return function(e){return null==e?void 0:e[t]}}}function Av(){if(zh)return Sh;zh=1;var t=zv(),e=function(){if(kh)return _h;kh=1;var t=Nv();return _h=function(e){return function(r){return t(r,e)}}}(),r=yv(),n=Mv();return Sh=function(o){return r(o)?t(n(o)):e(o)}}function Ov(){if(Oh)return Ah;Oh=1;var t=vv(),e=Sv(),r=nv(),n=As(),o=Av();return Ah=function(i){return"function"==typeof i?i:null==i?r:"object"==typeof i?n(i)?e(i[0],i[1]):t(i):o(i)}}function jv(){if(Ch)return jh;Ch=1;var t=Ip(),e=function(){if(hc)return cc;hc=1;var t=rv();return cc=function(e,r){var n=[];return t(e,function(t,e,o){r(t,e,o)&&n.push(t)}),n},cc}(),r=Ov(),n=As();return jh=function(o,i){return(n(o)?t:e)(o,r(i,3))}}function Cv(){if(Th)return Ph;Th=1;var t=function(){if(Rh)return Ih;Rh=1;var t=Object.prototype.hasOwnProperty;return Ih=function(e,r){return null!=e&&t.call(e,r)}}(),e=_v();return Ph=function(r,n){return null!=r&&e(r,n,t)}}function Iv(){if(Lh)return Fh;Lh=1;var t=_a(),e=Bp(),r=zs(),n=As(),o=ka(),i=Bs(),s=Ma(),a=ba(),u=Object.prototype.hasOwnProperty;return Fh=function(c){if(null==c)return!0;if(o(c)&&(n(c)||"string"==typeof c||"function"==typeof c.splice||i(c)||a(c)||r(c)))return!c.length;var h=e(c);if("[object Map]"==h||"[object Set]"==h)return!c.size;if(s(c))return!t(c).length;for(var l in c)if(u.call(c,l))return!1;return!0}}function Rv(){if(qh)return Dh;return qh=1,Dh=function(t){return void 0===t}}function Pv(){if(Bh)return Vh;Bh=1;var t=rv(),e=ka();return Vh=function(r,n){var o=-1,i=e(r)?Array(r.length):[];return t(r,function(t,e,r){i[++o]=n(t,e,r)}),i},Vh}function Tv(){if(Gh)return $h;Gh=1;var t=xv(),e=Ov(),r=Pv(),n=As();return $h=function(o,i){return(n(o)?t:r)(o,e(i,3))}}function Fv(){if(Qh)return Xh;Qh=1;var t=(Wh||(Wh=1,Uh=function(t,e,r,n){var o=-1,i=null==t?0:t.length;for(n&&i&&(r=t[++o]);++o<i;)r=e(r,t[o],o,t);return r}),Uh),e=rv(),r=Ov(),n=(Hh||(Hh=1,Yh=function(t,e,r,n,o){return o(t,function(t,o,i){r=n?(n=!1,t):e(r,t,o,i)}),r}),Yh),o=As();return Xh=function(i,s,a){var u=o(i)?t:n,c=arguments.length<3;return u(i,r(s,4),a,c,e)},Xh}function Lv(){if(sl)return il;sl=1;var t=function(){if(tl)return Zh;tl=1;var t=zv()("length");return Zh=t}(),e=function(){if(rl)return el;rl=1;var t=RegExp("[\\u200d\\ud800-\\udfff\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\ufe0e\\ufe0f]");return el=function(e){return t.test(e)}}(),r=function(){if(ol)return nl;ol=1;var t="\\ud800-\\udfff",e="["+t+"]",r="[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]",n="\\ud83c[\\udffb-\\udfff]",o="[^"+t+"]",i="(?:\\ud83c[\\udde6-\\uddff]){2}",s="[\\ud800-\\udbff][\\udc00-\\udfff]",a="(?:"+r+"|"+n+")?",u="[\\ufe0e\\ufe0f]?",c=u+a+"(?:\\u200d(?:"+[o,i,s].join("|")+")"+u+a+")*",h="(?:"+[o+r+"?",r,i,s,e].join("|")+")",l=RegExp(n+"(?="+n+")|"+h+c,"g");return nl=function(t){for(var e=l.lastIndex=0;l.test(t);)++e;return e}}();return il=function(n){return e(n)?r(n):t(n)}}function Dv(){if(ul)return al;ul=1;var t=_a(),e=Bp(),r=ka(),n=function(){if(Kh)return Jh;Kh=1;var t=hs(),e=As(),r=Ss();return Jh=function(n){return"string"==typeof n||!e(n)&&r(n)&&"[object String]"==t(n)}}(),o=Lv();return al=function(i){if(null==i)return 0;if(r(i))return n(i)?o(i):i.length;var s=e(i);return"[object Map]"==s||"[object Set]"==s?i.size:t(i).length}}function qv(){if(hl)return cl;hl=1;var t=Es(),e=Yp(),r=ev(),n=Ov(),o=Fp(),i=As(),s=Bs(),a=ds(),u=ls(),c=ba();return cl=function(h,l,d){var f=i(h),g=f||s(h)||c(h);if(l=n(l,4),null==d){var p=h&&h.constructor;d=g?f?new p:[]:u(h)&&a(p)?e(o(h)):{}}return(g?t:r)(h,function(t,e,r){return l(d,t,e,r)}),d},cl}function Vv(){if(gl)return fl;gl=1;var t=Tp(),e=function(){if(dl)return ll;dl=1;var t=cs(),e=zs(),r=As(),n=t?t.isConcatSpreadable:void 0;return ll=function(t){return r(t)||e(t)||!!(n&&t&&t[n])}}();return fl=function r(n,o,i,s,a){var u=-1,c=n.length;for(i||(i=e),a||(a=[]);++u<c;){var h=n[u];o>0&&i(h)?o>1?r(h,o-1,i,s,a):t(a,h):s||(a[a.length]=h)}return a},fl}function Bv(){if(yl)return ml;yl=1;var t=vl?pl:(vl=1,pl=function(t,e,r){switch(r.length){case 0:return t.call(e);case 1:return t.call(e,r[0]);case 2:return t.call(e,r[0],r[1]);case 3:return t.call(e,r[0],r[1],r[2])}return t.apply(e,r)}),e=Math.max;return ml=function(r,n,o){return n=e(void 0===n?r.length-1:n,0),function(){for(var i=arguments,s=-1,a=e(i.length-n,0),u=Array(a);++s<a;)u[s]=i[n+s];s=-1;for(var c=Array(n+1);++s<n;)c[s]=i[s];return c[n]=o(u),t(r,this,c)}},ml}function $v(){if(Nl)return Ml;Nl=1;var t=function(){if(xl)return wl;xl=1;var t=Zp(),e=Ms(),r=nv();return wl=e?function(r,n){return e(r,"toString",{configurable:!0,enumerable:!1,value:t(n),writable:!0})}:r}(),e=function(){if(El)return bl;El=1;var t=Date.now;return bl=function(e){var r=0,n=0;return function(){var o=t(),i=16-(o-n);if(n=o,i>0){if(++r>=800)return arguments[0]}else r=0;return e.apply(void 0,arguments)}},bl}(),r=e(t);return Ml=r}function Gv(){if(kl)return _l;kl=1;var t=nv(),e=Bv(),r=$v();return _l=function(n,o){return r(e(n,o,t),n+"")}}function Uv(){if(zl)return Sl;return zl=1,Sl=function(t,e,r,n){for(var o=t.length,i=r+(n?1:-1);n?i--:++i<o;)if(e(t[i],i,t))return i;return-1},Sl}function Wv(){if(Rl)return Il;Rl=1;var t=Uv(),e=Ol?Al:(Ol=1,Al=function(t){return t!=t}),r=(Cl||(Cl=1,jl=function(t,e,r){for(var n=r-1,o=t.length;++n<o;)if(t[n]===e)return n;return-1}),jl);return Il=function(n,o,i){return o==o?r(n,o,i):t(n,e,i)}}function Yv(){if(Bl)return Vl;Bl=1;var t=Vp(),e=ql?Dl:(ql=1,Dl=function(){}),r=hv(),n=t&&1/r(new t([,-0]))[1]==1/0?function(e){return new t(e)}:e;return Vl=n}function Hv(){if(Gl)return $l;Gl=1;var t=av(),e=function(){if(Tl)return Pl;Tl=1;var t=Wv();return Pl=function(e,r){return!(null==e||!e.length)&&t(e,r,0)>-1}}(),r=(Ll||(Ll=1,Fl=function(t,e,r){for(var n=-1,o=null==t?0:t.length;++n<o;)if(r(e,t[n]))return!0;return!1}),Fl),n=uv(),o=Yv(),i=hv();return $l=function(s,a,u){var c=-1,h=e,l=s.length,d=!0,f=[],g=f;if(u)d=!1,h=r;else if(l>=200){var p=a?null:o(s);if(p)return i(p);d=!1,h=n,g=new t}else g=a?[]:f;t:for(;++c<l;){var v=s[c],m=a?a(v):v;if(v=u||0!==v?v:0,d&&m==m){for(var y=g.length;y--;)if(g[y]===m)continue t;a&&g.push(m),f.push(v)}else h(g,m,u)||(g!==f&&g.push(m),f.push(v))}return f},$l}function Xv(){if(Wl)return Ul;Wl=1;var t=ka(),e=Ss();return Ul=function(r){return e(r)&&t(r)}}function Qv(){if(Hl)return Yl;Hl=1;var t=Vv(),e=Gv(),r=Hv(),n=Xv(),o=e(function(e){return r(t(e,1,n,!0))});return Yl=o}function Jv(){if(Kl)return Jl;Kl=1;var t=function(){if(Ql)return Xl;Ql=1;var t=xv();return Xl=function(e,r){return t(r,function(t){return e[t]})}}(),e=Sa();return Jl=function(r){return null==r?[]:t(r,e(r))}}function Kv(){if(td)return Zl;var t;td=1;try{t={clone:Kp(),constant:Zp(),each:sv(),filter:jv(),has:Cv(),isArray:As(),isEmpty:Iv(),isFunction:ds(),isUndefined:Rv(),keys:Sa(),map:Tv(),reduce:Fv(),size:Dv(),transform:qv(),union:Qv(),values:Jv()}}catch(t){}return t||(t=window._),Zl=t}function Zv(){if(rd)return ed;rd=1;var t=Kv();ed=r;var e="\0";function r(r){this._isDirected=!t.has(r,"directed")||r.directed,this._isMultigraph=!!t.has(r,"multigraph")&&r.multigraph,this._isCompound=!!t.has(r,"compound")&&r.compound,this._label=void 0,this._defaultNodeLabelFn=t.constant(void 0),this._defaultEdgeLabelFn=t.constant(void 0),this._nodes={},this._isCompound&&(this._parent={},this._children={},this._children[e]={}),this._in={},this._preds={},this._out={},this._sucs={},this._edgeObjs={},this._edgeLabels={}}function n(t,e){t[e]?t[e]++:t[e]=1}function o(t,e){--t[e]||delete t[e]}function i(e,r,n,o){var i=""+r,s=""+n;if(!e&&i>s){var a=i;i=s,s=a}return i+""+s+""+(t.isUndefined(o)?"\0":o)}function s(t,e){return i(t,e.v,e.w,e.name)}return r.prototype._nodeCount=0,r.prototype._edgeCount=0,r.prototype.isDirected=function(){return this._isDirected},r.prototype.isMultigraph=function(){return this._isMultigraph},r.prototype.isCompound=function(){return this._isCompound},r.prototype.setGraph=function(t){return this._label=t,this},r.prototype.graph=function(){return this._label},r.prototype.setDefaultNodeLabel=function(e){return t.isFunction(e)||(e=t.constant(e)),this._defaultNodeLabelFn=e,this},r.prototype.nodeCount=function(){return this._nodeCount},r.prototype.nodes=function(){return t.keys(this._nodes)},r.prototype.sources=function(){var e=this;return t.filter(this.nodes(),function(r){return t.isEmpty(e._in[r])})},r.prototype.sinks=function(){var e=this;return t.filter(this.nodes(),function(r){return t.isEmpty(e._out[r])})},r.prototype.setNodes=function(e,r){var n=arguments,o=this;return t.each(e,function(t){n.length>1?o.setNode(t,r):o.setNode(t)}),this},r.prototype.setNode=function(r,n){return t.has(this._nodes,r)?(arguments.length>1&&(this._nodes[r]=n),this):(this._nodes[r]=arguments.length>1?n:this._defaultNodeLabelFn(r),this._isCompound&&(this._parent[r]=e,this._children[r]={},this._children[e][r]=!0),this._in[r]={},this._preds[r]={},this._out[r]={},this._sucs[r]={},++this._nodeCount,this)},r.prototype.node=function(t){return this._nodes[t]},r.prototype.hasNode=function(e){return t.has(this._nodes,e)},r.prototype.removeNode=function(e){var r=this;if(t.has(this._nodes,e)){var n=function(t){r.removeEdge(r._edgeObjs[t])};delete this._nodes[e],this._isCompound&&(this._removeFromParentsChildList(e),delete this._parent[e],t.each(this.children(e),function(t){r.setParent(t)}),delete this._children[e]),t.each(t.keys(this._in[e]),n),delete this._in[e],delete this._preds[e],t.each(t.keys(this._out[e]),n),delete this._out[e],delete this._sucs[e],--this._nodeCount}return this},r.prototype.setParent=function(r,n){if(!this._isCompound)throw new Error("Cannot set parent in a non-compound graph");if(t.isUndefined(n))n=e;else{for(var o=n+="";!t.isUndefined(o);o=this.parent(o))if(o===r)throw new Error("Setting "+n+" as parent of "+r+" would create a cycle");this.setNode(n)}return this.setNode(r),this._removeFromParentsChildList(r),this._parent[r]=n,this._children[n][r]=!0,this},r.prototype._removeFromParentsChildList=function(t){delete this._children[this._parent[t]][t]},r.prototype.parent=function(t){if(this._isCompound){var r=this._parent[t];if(r!==e)return r}},r.prototype.children=function(r){if(t.isUndefined(r)&&(r=e),this._isCompound){var n=this._children[r];if(n)return t.keys(n)}else{if(r===e)return this.nodes();if(this.hasNode(r))return[]}},r.prototype.predecessors=function(e){var r=this._preds[e];if(r)return t.keys(r)},r.prototype.successors=function(e){var r=this._sucs[e];if(r)return t.keys(r)},r.prototype.neighbors=function(e){var r=this.predecessors(e);if(r)return t.union(r,this.successors(e))},r.prototype.isLeaf=function(t){return 0===(this.isDirected()?this.successors(t):this.neighbors(t)).length},r.prototype.filterNodes=function(e){var r=new this.constructor({directed:this._isDirected,multigraph:this._isMultigraph,compound:this._isCompound});r.setGraph(this.graph());var n=this;t.each(this._nodes,function(t,n){e(n)&&r.setNode(n,t)}),t.each(this._edgeObjs,function(t){r.hasNode(t.v)&&r.hasNode(t.w)&&r.setEdge(t,n.edge(t))});var o={};function i(t){var e=n.parent(t);return void 0===e||r.hasNode(e)?(o[t]=e,e):e in o?o[e]:i(e)}return this._isCompound&&t.each(r.nodes(),function(t){r.setParent(t,i(t))}),r},r.prototype.setDefaultEdgeLabel=function(e){return t.isFunction(e)||(e=t.constant(e)),this._defaultEdgeLabelFn=e,this},r.prototype.edgeCount=function(){return this._edgeCount},r.prototype.edges=function(){return t.values(this._edgeObjs)},r.prototype.setPath=function(e,r){var n=this,o=arguments;return t.reduce(e,function(t,e){return o.length>1?n.setEdge(t,e,r):n.setEdge(t,e),e}),this},r.prototype.setEdge=function(){var e,r,o,s,a=!1,u=arguments[0];"object"==typeof u&&null!==u&&"v"in u?(e=u.v,r=u.w,o=u.name,2===arguments.length&&(s=arguments[1],a=!0)):(e=u,r=arguments[1],o=arguments[3],arguments.length>2&&(s=arguments[2],a=!0)),e=""+e,r=""+r,t.isUndefined(o)||(o=""+o);var c=i(this._isDirected,e,r,o);if(t.has(this._edgeLabels,c))return a&&(this._edgeLabels[c]=s),this;if(!t.isUndefined(o)&&!this._isMultigraph)throw new Error("Cannot set a named edge when isMultigraph = false");this.setNode(e),this.setNode(r),this._edgeLabels[c]=a?s:this._defaultEdgeLabelFn(e,r,o);var h=function(t,e,r,n){var o=""+e,i=""+r;if(!t&&o>i){var s=o;o=i,i=s}var a={v:o,w:i};n&&(a.name=n);return a}(this._isDirected,e,r,o);return e=h.v,r=h.w,Object.freeze(h),this._edgeObjs[c]=h,n(this._preds[r],e),n(this._sucs[e],r),this._in[r][c]=h,this._out[e][c]=h,this._edgeCount++,this},r.prototype.edge=function(t,e,r){var n=1===arguments.length?s(this._isDirected,arguments[0]):i(this._isDirected,t,e,r);return this._edgeLabels[n]},r.prototype.hasEdge=function(e,r,n){var o=1===arguments.length?s(this._isDirected,arguments[0]):i(this._isDirected,e,r,n);return t.has(this._edgeLabels,o)},r.prototype.removeEdge=function(t,e,r){var n=1===arguments.length?s(this._isDirected,arguments[0]):i(this._isDirected,t,e,r),a=this._edgeObjs[n];return a&&(t=a.v,e=a.w,delete this._edgeLabels[n],delete this._edgeObjs[n],o(this._preds[e],t),o(this._sucs[t],e),delete this._in[e][n],delete this._out[t][n],this._edgeCount--),this},r.prototype.inEdges=function(e,r){var n=this._in[e];if(n){var o=t.values(n);return r?t.filter(o,function(t){return t.v===r}):o}},r.prototype.outEdges=function(e,r){var n=this._out[e];if(n){var o=t.values(n);return r?t.filter(o,function(t){return t.w===r}):o}},r.prototype.nodeEdges=function(t,e){var r=this.inEdges(t,e);if(r)return r.concat(this.outEdges(t,e))},ed}function tm(){return sd?id:(sd=1,id={Graph:Zv(),version:od?nd:(od=1,nd="2.1.8")})}function em(){if(ud)return ad;ud=1;var t=Kv(),e=Zv();function r(e){return t.map(e.nodes(),function(r){var n=e.node(r),o=e.parent(r),i={v:r};return t.isUndefined(n)||(i.value=n),t.isUndefined(o)||(i.parent=o),i})}function n(e){return t.map(e.edges(),function(r){var n=e.edge(r),o={v:r.v,w:r.w};return t.isUndefined(r.name)||(o.name=r.name),t.isUndefined(n)||(o.value=n),o})}return ad={write:function(e){var o={options:{directed:e.isDirected(),multigraph:e.isMultigraph(),compound:e.isCompound()},nodes:r(e),edges:n(e)};t.isUndefined(e.graph())||(o.value=t.clone(e.graph()));return o},read:function(r){var n=new e(r.options).setGraph(r.value);return t.each(r.nodes,function(t){n.setNode(t.v,t.value),t.parent&&n.setParent(t.v,t.parent)}),t.each(r.edges,function(t){n.setEdge({v:t.v,w:t.w,name:t.name},t.value)}),n}}}function rm(){if(hd)return cd;hd=1;var t=Kv();return cd=function(e){var r,n={},o=[];function i(o){t.has(n,o)||(n[o]=!0,r.push(o),t.each(e.successors(o),i),t.each(e.predecessors(o),i))}return t.each(e.nodes(),function(t){r=[],i(t),r.length&&o.push(r)}),o},cd}function nm(){if(dd)return ld;dd=1;var t=Kv();function e(){this._arr=[],this._keyIndices={}}return ld=e,e.prototype.size=function(){return this._arr.length},e.prototype.keys=function(){return this._arr.map(function(t){return t.key})},e.prototype.has=function(e){return t.has(this._keyIndices,e)},e.prototype.priority=function(t){var e=this._keyIndices[t];if(void 0!==e)return this._arr[e].priority},e.prototype.min=function(){if(0===this.size())throw new Error("Queue underflow");return this._arr[0].key},e.prototype.add=function(e,r){var n=this._keyIndices;if(e=String(e),!t.has(n,e)){var o=this._arr,i=o.length;return n[e]=i,o.push({key:e,priority:r}),this._decrease(i),!0}return!1},e.prototype.removeMin=function(){this._swap(0,this._arr.length-1);var t=this._arr.pop();return delete this._keyIndices[t.key],this._heapify(0),t.key},e.prototype.decrease=function(t,e){var r=this._keyIndices[t];if(e>this._arr[r].priority)throw new Error("New priority is greater than current priority. Key: "+t+" Old: "+this._arr[r].priority+" New: "+e);this._arr[r].priority=e,this._decrease(r)},e.prototype._heapify=function(t){var e=this._arr,r=2*t,n=r+1,o=t;r<e.length&&(o=e[r].priority<e[o].priority?r:o,n<e.length&&(o=e[n].priority<e[o].priority?n:o),o!==t&&(this._swap(t,o),this._heapify(o)))},e.prototype._decrease=function(t){for(var e,r=this._arr,n=r[t].priority;0!==t&&!(r[e=t>>1].priority<n);)this._swap(t,e),t=e},e.prototype._swap=function(t,e){var r=this._arr,n=this._keyIndices,o=r[t],i=r[e];r[t]=i,r[e]=o,n[i.key]=t,n[o.key]=e},ld}function om(){if(gd)return fd;gd=1;var t=Kv(),e=nm();fd=function(t,n,o,i){return function(t,r,n,o){var i,s,a={},u=new e,c=function(t){var e=t.v!==i?t.v:t.w,r=a[e],o=n(t),c=s.distance+o;if(o<0)throw new Error("dijkstra does not allow negative edge weights. Bad edge: "+t+" Weight: "+o);c<r.distance&&(r.distance=c,r.predecessor=i,u.decrease(e,c))};t.nodes().forEach(function(t){var e=t===r?0:Number.POSITIVE_INFINITY;a[t]={distance:e},u.add(t,e)});for(;u.size()>0&&(i=u.removeMin(),(s=a[i]).distance!==Number.POSITIVE_INFINITY);)o(i).forEach(c);return a}(t,String(n),o||r,i||function(e){return t.outEdges(e)})};var r=t.constant(1);return fd}function im(){if(vd)return pd;vd=1;var t=om(),e=Kv();return pd=function(r,n,o){return e.transform(r.nodes(),function(e,i){e[i]=t(r,i,n,o)},{})}}function sm(){if(yd)return md;yd=1;var t=Kv();return md=function(e){var r=0,n=[],o={},i=[];function s(a){var u=o[a]={onStack:!0,lowlink:r,index:r++};if(n.push(a),e.successors(a).forEach(function(e){t.has(o,e)?o[e].onStack&&(u.lowlink=Math.min(u.lowlink,o[e].index)):(s(e),u.lowlink=Math.min(u.lowlink,o[e].lowlink))}),u.lowlink===u.index){var c,h=[];do{c=n.pop(),o[c].onStack=!1,h.push(c)}while(a!==c);i.push(h)}}return e.nodes().forEach(function(e){t.has(o,e)||s(e)}),i},md}function am(){if(xd)return wd;xd=1;var t=Kv(),e=sm();return wd=function(r){return t.filter(e(r),function(t){return t.length>1||1===t.length&&r.hasEdge(t[0],t[0])})}}function um(){if(Ed)return bd;Ed=1;var t=Kv();bd=function(t,r,n){return function(t,e,r){var n={},o=t.nodes();return o.forEach(function(t){n[t]={},n[t][t]={distance:0},o.forEach(function(e){t!==e&&(n[t][e]={distance:Number.POSITIVE_INFINITY})}),r(t).forEach(function(r){var o=r.v===t?r.w:r.v,i=e(r);n[t][o]={distance:i,predecessor:t}})}),o.forEach(function(t){var e=n[t];o.forEach(function(r){var i=n[r];o.forEach(function(r){var n=i[t],o=e[r],s=i[r],a=n.distance+o.distance;a<s.distance&&(s.distance=a,s.predecessor=o.predecessor)})})}),n}(t,r||e,n||function(e){return t.outEdges(e)})};var e=t.constant(1);return bd}function cm(){if(Nd)return Md;Nd=1;var t=Kv();function e(e){var n={},o={},i=[];if(t.each(e.sinks(),function s(a){if(t.has(o,a))throw new r;t.has(n,a)||(o[a]=!0,n[a]=!0,t.each(e.predecessors(a),s),delete o[a],i.push(a))}),t.size(n)!==e.nodeCount())throw new r;return i}function r(){}return Md=e,e.CycleException=r,r.prototype=new Error,Md}function hm(){if(kd)return _d;kd=1;var t=cm();return _d=function(e){try{t(e)}catch(e){if(e instanceof t.CycleException)return!1;throw e}return!0}}function lm(){if(zd)return Sd;zd=1;var t=Kv();function e(r,n,o,i,s,a){t.has(i,n)||(i[n]=!0,o||a.push(n),t.each(s(n),function(t){e(r,t,o,i,s,a)}),o&&a.push(n))}return Sd=function(r,n,o){t.isArray(n)||(n=[n]);var i=(r.isDirected()?r.successors:r.neighbors).bind(r),s=[],a={};return t.each(n,function(t){if(!r.hasNode(t))throw new Error("Graph does not have node: "+t);e(r,t,"post"===o,a,i,s)}),s},Sd}function dm(){if(Od)return Ad;Od=1;var t=lm();return Ad=function(e,r){return t(e,r,"post")}}function fm(){if(Cd)return jd;Cd=1;var t=lm();return jd=function(e,r){return t(e,r,"pre")}}function gm(){if(Rd)return Id;Rd=1;var t=Kv(),e=Zv(),r=nm();return Id=function(n,o){var i,s=new e,a={},u=new r;function c(t){var e=t.v===i?t.w:t.v,r=u.priority(e);if(void 0!==r){var n=o(t);n<r&&(a[e]=i,u.decrease(e,n))}}if(0===n.nodeCount())return s;t.each(n.nodes(),function(t){u.add(t,Number.POSITIVE_INFINITY),s.setNode(t)}),u.decrease(n.nodes()[0],0);var h=!1;for(;u.size()>0;){if(i=u.removeMin(),t.has(a,i))s.setEdge(i,a[i]);else{if(h)throw new Error("Input graph is not connected: "+n);h=!0}n.nodeEdges(i).forEach(c)}return s}}function pm(){if(Ld)return Fd;Ld=1;var t=tm();return Fd={Graph:t.Graph,json:em(),alg:Td?Pd:(Td=1,Pd={components:rm(),dijkstra:om(),dijkstraAll:im(),findCycles:am(),floydWarshall:um(),isAcyclic:hm(),postorder:dm(),preorder:fm(),prim:gm(),tarjan:sm(),topsort:cm()}),version:t.version}}function vm(){if(qd)return Dd;var t;qd=1;try{t=pm()}catch(t){}return t||(t=window.graphlib),Dd=t}function mm(){if(Bd)return Vd;Bd=1;var t=Jp();return Vd=function(e){return t(e,5)}}function ym(){if(Gd)return $d;Gd=1;var t=os(),e=ka(),r=$s(),n=ls();return $d=function(o,i,s){if(!n(s))return!1;var a=typeof i;return!!("number"==a?e(s)&&r(i,s.length):"string"==a&&i in s)&&t(s[i],o)},$d}function wm(){if(Wd)return Ud;Wd=1;var t=Gv(),e=os(),r=ym(),n=Aa(),o=Object.prototype,i=o.hasOwnProperty,s=t(function(t,s){t=Object(t);var a=-1,u=s.length,c=u>2?s[2]:void 0;for(c&&r(s[0],s[1],c)&&(u=1);++a<u;)for(var h=s[a],l=n(h),d=-1,f=l.length;++d<f;){var g=l[d],p=t[g];(void 0===p||e(p,o[g])&&!i.call(t,g))&&(t[g]=h[g])}return t});return Ud=s}function xm(){if(Kd)return Jd;Kd=1;var t=function(){if(Qd)return Xd;Qd=1;var t=/\s/;return Xd=function(e){for(var r=e.length;r--&&t.test(e.charAt(r)););return r},Xd}(),e=/^\s+/;return Jd=function(r){return r?r.slice(0,t(r)+1).replace(e,""):r}}function bm(){if(rf)return ef;rf=1;var t=function(){if(tf)return Zd;tf=1;var t=xm(),e=ls(),r=mv(),n=/^[-+]0x[0-9a-f]+$/i,o=/^0b[01]+$/i,i=/^0o[0-7]+$/i,s=parseInt;return Zd=function(a){if("number"==typeof a)return a;if(r(a))return NaN;if(e(a)){var u="function"==typeof a.valueOf?a.valueOf():a;a=e(u)?u+"":u}if("string"!=typeof a)return 0===a?a:+a;a=t(a);var c=o.test(a);return c||i.test(a)?s(a.slice(2),c?2:8):n.test(a)?NaN:+a}}(),e=1/0;return ef=function(r){return r?(r=t(r))===e||r===-1/0?17976931348623157e292*(r<0?-1:1):r==r?r:0:0===r?r:0}}function Em(){if(af)return sf;af=1;var t=Uv(),e=Ov(),r=function(){if(of)return nf;of=1;var t=bm();return nf=function(e){var r=t(e),n=r%1;return r==r?n?r-n:r:0}}(),n=Math.max;return sf=function(o,i,s){var a=null==o?0:o.length;if(!a)return-1;var u=null==s?0:r(s);return u<0&&(u=n(a+u,0)),t(o,e(i,3),u)},sf}function Mm(){if(cf)return uf;cf=1;var t=function(){if(Hd)return Yd;Hd=1;var t=Ov(),e=ka(),r=Sa();return Yd=function(n){return function(o,i,s){var a=Object(o);if(!e(o)){var u=t(i,3);o=r(o),i=function(t){return u(a[t],t,a)}}var c=n(o,i,s);return c>-1?a[u?o[c]:c]:void 0}},Yd}(),e=t(Em());return uf=e}function Nm(){if(lf)return hf;lf=1;var t=Vv();return hf=function(e){return(null==e?0:e.length)?t(e,1):[]}}function _m(){if(ff)return df;ff=1;var t=tv(),e=ov(),r=Aa();return df=function(n,o){return null==n?n:t(n,e(o),r)}}function km(){if(pf)return gf;return pf=1,gf=function(t){var e=null==t?0:t.length;return e?t[e-1]:void 0}}function Sm(){if(mf)return vf;mf=1;var t=Ns(),e=ev(),r=Ov();return vf=function(n,o){var i={};return o=r(o,3),e(n,function(e,r,n){t(i,r,o(e,r,n))}),i}}function zm(){if(wf)return yf;wf=1;var t=mv();return yf=function(e,r,n){for(var o=-1,i=e.length;++o<i;){var s=e[o],a=r(s);if(null!=a&&(void 0===u?a==a&&!t(a):n(a,u)))var u=a,c=s}return c},yf}function Am(){if(Mf)return Ef;Mf=1;var t=zm(),e=bf?xf:(bf=1,xf=function(t,e){return t>e}),r=nv();return Ef=function(n){return n&&n.length?t(n,r,e):void 0}}function Om(){if(_f)return Nf;_f=1;var t=Ns(),e=os();return Nf=function(r,n,o){(void 0!==o&&!e(r[n],o)||void 0===o&&!(n in r))&&t(r,n,o)}}function jm(){if(Af)return zf;return Af=1,zf=function(t,e){if(("constructor"!==e||"function"!=typeof t[e])&&"__proto__"!=e)return t[e]}}function Cm(){if(If)return Cf;If=1;var t=Om(),e=jp(),r=Up(),n=Cp(),o=Hp(),i=zs(),s=As(),a=Xv(),u=Bs(),c=ds(),h=ls(),l=function(){if(Sf)return kf;Sf=1;var t=hs(),e=Fp(),r=Ss(),n=Function.prototype,o=Object.prototype,i=n.toString,s=o.hasOwnProperty,a=i.call(Object);return kf=function(n){if(!r(n)||"[object Object]"!=t(n))return!1;var o=e(n);if(null===o)return!0;var u=s.call(o,"constructor")&&o.constructor;return"function"==typeof u&&u instanceof u&&i.call(u)==a}}(),d=ba(),f=jm(),g=function(){if(jf)return Of;jf=1;var t=ks(),e=Aa();return Of=function(r){return t(r,e(r))}}();return Cf=function(p,v,m,y,w,x,b){var E=f(p,m),M=f(v,m),N=b.get(M);if(N)t(p,m,N);else{var _=x?x(E,M,m+"",p,v,b):void 0,k=void 0===_;if(k){var S=s(M),z=!S&&u(M),A=!S&&!z&&d(M);_=M,S||z||A?s(E)?_=E:a(E)?_=n(E):z?(k=!1,_=e(M,!0)):A?(k=!1,_=r(M,!0)):_=[]:l(M)||i(M)?(_=E,i(E)?_=g(E):h(E)&&!c(E)||(_=o(M))):k=!1}k&&(b.set(M,_),w(_,M,y,x,b),b.delete(M)),t(p,m,_)}}}function Im(){if(Df)return Lf;Df=1;var t=function(){if(Pf)return Rf;Pf=1;var t=bs(),e=Om(),r=tv(),n=Cm(),o=ls(),i=Aa(),s=jm();return Rf=function a(u,c,h,l,d){u!==c&&r(c,function(r,i){if(d||(d=new t),o(r))n(u,c,i,h,a,l,d);else{var f=l?l(s(u,i),r,i+"",u,c,d):void 0;void 0===f&&(f=r),e(u,i,f)}},i)},Rf}(),e=function(){if(Ff)return Tf;Ff=1;var t=Gv(),e=ym();return Tf=function(r){return t(function(t,n){var o=-1,i=n.length,s=i>1?n[i-1]:void 0,a=i>2?n[2]:void 0;for(s=r.length>3&&"function"==typeof s?(i--,s):void 0,a&&e(n[0],n[1],a)&&(s=i<3?void 0:s,i=1),t=Object(t);++o<i;){var u=n[o];u&&r(t,u,o,s)}return t})},Tf}(),r=e(function(e,r,n){t(e,r,n)});return Lf=r}function Rm(){if(Vf)return qf;return Vf=1,qf=function(t,e){return t<e}}function Pm(){if($f)return Bf;$f=1;var t=zm(),e=Rm(),r=nv();return Bf=function(n){return n&&n.length?t(n,r,e):void 0}}function Tm(){if(Uf)return Gf;Uf=1;var t=zm(),e=Ov(),r=Rm();return Gf=function(n,o){return n&&n.length?t(n,e(o,2),r):void 0}}function Fm(){if(Yf)return Wf;Yf=1;var t=us();return Wf=function(){return t.Date.now()}}function Lm(){if(Jf)return Qf;Jf=1;var t=Nv(),e=function(){if(Xf)return Hf;Xf=1;var t=_s(),e=Ev(),r=$s(),n=ls(),o=Mv();return Hf=function(i,s,a,u){if(!n(i))return i;for(var c=-1,h=(s=e(s,i)).length,l=h-1,d=i;null!=d&&++c<h;){var f=o(s[c]),g=a;if("__proto__"===f||"constructor"===f||"prototype"===f)return i;if(c!=l){var p=d[f];void 0===(g=u?u(p,f,d):void 0)&&(g=n(p)?p:r(s[c+1])?[]:{})}t(d,f,g),d=d[f]}return i},Hf}(),r=Ev();return Qf=function(n,o,i){for(var s=-1,a=o.length,u={};++s<a;){var c=o[s],h=t(n,c);i(h,c)&&e(u,r(c,n),h)}return u},Qf}function Dm(){if(ng)return rg;ng=1;var t=function(){if(Zf)return Kf;Zf=1;var t=Lm(),e=kv();return Kf=function(r,n){return t(r,n,function(t,n){return e(r,n)})}}(),e=function(){if(eg)return tg;eg=1;var t=Nm(),e=Bv(),r=$v();return tg=function(n){return r(e(n,void 0,t),n+"")}}()(function(e,r){return null==e?{}:t(e,r)});return rg=e}function qm(){if(ag)return sg;ag=1;var t=function(){if(ig)return og;ig=1;var t=Math.ceil,e=Math.max;return og=function(r,n,o,i){for(var s=-1,a=e(t((n-r)/(o||1)),0),u=Array(a);a--;)u[i?a:++s]=r,r+=o;return u},og}(),e=ym(),r=bm();return sg=function(n){return function(o,i,s){return s&&"number"!=typeof s&&e(o,i,s)&&(i=s=void 0),o=r(o),void 0===i?(i=o,o=0):i=r(i),s=void 0===s?o<i?1:-1:r(s),t(o,i,s,n)}}}function Vm(){if(cg)return ug;cg=1;var t=qm()();return ug=t}function Bm(){if(pg)return gg;pg=1;var t=function(){if(fg)return dg;fg=1;var t=mv();return dg=function(e,r){if(e!==r){var n=void 0!==e,o=null===e,i=e==e,s=t(e),a=void 0!==r,u=null===r,c=r==r,h=t(r);if(!u&&!h&&!s&&e>r||s&&a&&c&&!u&&!h||o&&a&&c||!n&&c||!i)return 1;if(!o&&!s&&!h&&e<r||h&&n&&i&&!o&&!s||u&&n&&i||!a&&i||!c)return-1}return 0}}();return gg=function(e,r,n){for(var o=-1,i=e.criteria,s=r.criteria,a=i.length,u=n.length;++o<a;){var c=t(i[o],s[o]);if(c)return o>=u?c:c*("desc"==n[o]?-1:1)}return e.index-r.index},gg}function $m(){if(mg)return vg;mg=1;var t=xv(),e=Nv(),r=Ov(),n=Pv(),o=lg?hg:(lg=1,hg=function(t,e){var r=t.length;for(t.sort(e);r--;)t[r]=t[r].value;return t}),i=Us(),s=Bm(),a=nv(),u=As();return vg=function(c,h,l){h=h.length?t(h,function(t){return u(t)?function(r){return e(r,1===t.length?t[0]:t)}:t}):[a];var d=-1;h=t(h,i(r));var f=n(c,function(e,r,n){return{criteria:t(h,function(t){return t(e)}),index:++d,value:e}});return o(f,function(t,e){return s(t,e,l)})},vg}function Gm(){if(wg)return yg;wg=1;var t=Vv(),e=$m(),r=Gv(),n=ym(),o=r(function(r,o){if(null==r)return[];var i=o.length;return i>1&&n(r,o[0],o[1])?o=[]:i>2&&n(o[0],o[1],o[2])&&(o=[o[0]]),e(r,t(o,1),[])});return yg=o}function Um(){if(bg)return xg;bg=1;var t=bv(),e=0;return xg=function(r){var n=++e;return t(r)+n}}function Wm(){if(_g)return Ng;_g=1;var t=_s(),e=(Mg||(Mg=1,Eg=function(t,e,r){for(var n=-1,o=t.length,i=e.length,s={};++n<o;){var a=n<i?e[n]:void 0;r(s,t[n],a)}return s}),Eg);return Ng=function(r,n){return e(r||[],n||[],t)}}function Ym(){if(Sg)return kg;var t;Sg=1;try{t={cloneDeep:mm(),constant:Zp(),defaults:wm(),each:sv(),filter:jv(),find:Mm(),flatten:Nm(),forEach:iv(),forIn:_m(),has:Cv(),isUndefined:Rv(),last:km(),map:Tv(),mapValues:Sm(),max:Am(),merge:Im(),min:Pm(),minBy:Tm(),now:Fm(),pick:Dm(),range:Vm(),reduce:Fv(),sortBy:Gm(),uniqueId:Um(),values:Jv(),zipObject:Wm()}}catch(t){}return t||(t=window._),kg=t}function Hm(){if(jg)return Og;jg=1;var t=Ym(),e=vm().Graph,r=function(){if(Ag)return zg;function t(){var t={};t._next=t._prev=t,this._sentinel=t}function e(t){t._prev._next=t._next,t._next._prev=t._prev,delete t._next,delete t._prev}function r(t,e){if("_next"!==t&&"_prev"!==t)return e}return Ag=1,zg=t,t.prototype.dequeue=function(){var t=this._sentinel,r=t._prev;if(r!==t)return e(r),r},t.prototype.enqueue=function(t){var r=this._sentinel;t._prev&&t._next&&e(t),t._next=r._next,r._next._prev=t,r._next=t,t._prev=r},t.prototype.toString=function(){for(var t=[],e=this._sentinel,n=e._prev;n!==e;)t.push(JSON.stringify(n,r)),n=n._prev;return"["+t.join(", ")+"]"},zg}();Og=function(s,a){if(s.nodeCount()<=1)return[];var u=function(n,o){var s=new e,a=0,u=0;t.forEach(n.nodes(),function(t){s.setNode(t,{v:t,in:0,out:0})}),t.forEach(n.edges(),function(t){var e=s.edge(t.v,t.w)||0,r=o(t),n=e+r;s.setEdge(t.v,t.w,n),u=Math.max(u,s.node(t.v).out+=r),a=Math.max(a,s.node(t.w).in+=r)});var c=t.range(u+a+3).map(function(){return new r}),h=a+1;return t.forEach(s.nodes(),function(t){i(c,h,s.node(t))}),{graph:s,buckets:c,zeroIdx:h}}(s,a||n),c=function(t,e,r){var n,i=[],s=e[e.length-1],a=e[0];for(;t.nodeCount();){for(;n=a.dequeue();)o(t,e,r,n);for(;n=s.dequeue();)o(t,e,r,n);if(t.nodeCount())for(var u=e.length-2;u>0;--u)if(n=e[u].dequeue()){i=i.concat(o(t,e,r,n,!0));break}}return i}(u.graph,u.buckets,u.zeroIdx);return t.flatten(t.map(c,function(t){return s.outEdges(t.v,t.w)}),!0)};var n=t.constant(1);function o(e,r,n,o,s){var a=s?[]:void 0;return t.forEach(e.inEdges(o.v),function(t){var o=e.edge(t),u=e.node(t.v);s&&a.push({v:t.v,w:t.w}),u.out-=o,i(r,n,u)}),t.forEach(e.outEdges(o.v),function(t){var o=e.edge(t),s=t.w,a=e.node(s);a.in-=o,i(r,n,a)}),e.removeNode(o.v),a}function i(t,e,r){r.out?r.in?t[r.out-r.in+e].enqueue(r):t[t.length-1].enqueue(r):t[0].enqueue(r)}return Og}function Xm(){if(Ig)return Cg;Ig=1;var t=Ym(),e=Hm();return Cg={run:function(r){var n="greedy"===r.graph().acyclicer?e(r,function(t){return function(e){return t.edge(e).weight}}(r)):function(e){var r=[],n={},o={};function i(s){t.has(o,s)||(o[s]=!0,n[s]=!0,t.forEach(e.outEdges(s),function(e){t.has(n,e.w)?r.push(e):i(e.w)}),delete n[s])}return t.forEach(e.nodes(),i),r}(r);t.forEach(n,function(e){var n=r.edge(e);r.removeEdge(e),n.forwardName=e.name,n.reversed=!0,r.setEdge(e.w,e.v,n,t.uniqueId("rev"))})},undo:function(e){t.forEach(e.edges(),function(t){var r=e.edge(t);if(r.reversed){e.removeEdge(t);var n=r.forwardName;delete r.reversed,delete r.forwardName,e.setEdge(t.w,t.v,r,n)}})}},Cg}function Qm(){if(Pg)return Rg;Pg=1;var t=Ym(),e=vm().Graph;function r(e,r,n,o){var i;do{i=t.uniqueId(o)}while(e.hasNode(i));return n.dummy=r,e.setNode(i,n),i}function n(e){return t.max(t.map(e.nodes(),function(r){var n=e.node(r).rank;if(!t.isUndefined(n))return n}))}return Rg={addDummyNode:r,simplify:function(r){var n=(new e).setGraph(r.graph());return t.forEach(r.nodes(),function(t){n.setNode(t,r.node(t))}),t.forEach(r.edges(),function(t){var e=n.edge(t.v,t.w)||{weight:0,minlen:1},o=r.edge(t);n.setEdge(t.v,t.w,{weight:e.weight+o.weight,minlen:Math.max(e.minlen,o.minlen)})}),n},asNonCompoundGraph:function(r){var n=new e({multigraph:r.isMultigraph()}).setGraph(r.graph());return t.forEach(r.nodes(),function(t){r.children(t).length||n.setNode(t,r.node(t))}),t.forEach(r.edges(),function(t){n.setEdge(t,r.edge(t))}),n},successorWeights:function(e){var r=t.map(e.nodes(),function(r){var n={};return t.forEach(e.outEdges(r),function(t){n[t.w]=(n[t.w]||0)+e.edge(t).weight}),n});return t.zipObject(e.nodes(),r)},predecessorWeights:function(e){var r=t.map(e.nodes(),function(r){var n={};return t.forEach(e.inEdges(r),function(t){n[t.v]=(n[t.v]||0)+e.edge(t).weight}),n});return t.zipObject(e.nodes(),r)},intersectRect:function(t,e){var r,n,o=t.x,i=t.y,s=e.x-o,a=e.y-i,u=t.width/2,c=t.height/2;if(!s&&!a)throw new Error("Not possible to find intersection inside of the rectangle");Math.abs(a)*u>Math.abs(s)*c?(a<0&&(c=-c),r=c*s/a,n=c):(s<0&&(u=-u),r=u,n=u*a/s);return{x:o+r,y:i+n}},buildLayerMatrix:function(e){var r=t.map(t.range(n(e)+1),function(){return[]});return t.forEach(e.nodes(),function(n){var o=e.node(n),i=o.rank;t.isUndefined(i)||(r[i][o.order]=n)}),r},normalizeRanks:function(e){var r=t.min(t.map(e.nodes(),function(t){return e.node(t).rank}));t.forEach(e.nodes(),function(n){var o=e.node(n);t.has(o,"rank")&&(o.rank-=r)})},removeEmptyRanks:function(e){var r=t.min(t.map(e.nodes(),function(t){return e.node(t).rank})),n=[];t.forEach(e.nodes(),function(t){var o=e.node(t).rank-r;n[o]||(n[o]=[]),n[o].push(t)});var o=0,i=e.graph().nodeRankFactor;t.forEach(n,function(r,n){t.isUndefined(r)&&n%i!==0?--o:o&&t.forEach(r,function(t){e.node(t).rank+=o})})},addBorderNode:function(t,e,n,o){var i={width:0,height:0};arguments.length>=4&&(i.rank=n,i.order=o);return r(t,"border",i,e)},maxRank:n,partition:function(e,r){var n={lhs:[],rhs:[]};return t.forEach(e,function(t){r(t)?n.lhs.push(t):n.rhs.push(t)}),n},time:function(e,r){var n=t.now();try{return r()}finally{console.log(e+" time: "+(t.now()-n)+"ms")}},notime:function(t,e){return e()}},Rg}function Jm(){if(Fg)return Tg;Fg=1;var t=Ym(),e=Qm();return Tg={run:function(r){r.graph().dummyChains=[],t.forEach(r.edges(),function(t){!function(t,r){var n,o,i,s=r.v,a=t.node(s).rank,u=r.w,c=t.node(u).rank,h=r.name,l=t.edge(r),d=l.labelRank;if(c===a+1)return;for(t.removeEdge(r),i=0,++a;a<c;++i,++a)l.points=[],o={width:0,height:0,edgeLabel:l,edgeObj:r,rank:a},n=e.addDummyNode(t,"edge",o,"_d"),a===d&&(o.width=l.width,o.height=l.height,o.dummy="edge-label",o.labelpos=l.labelpos),t.setEdge(s,n,{weight:l.weight},h),0===i&&t.graph().dummyChains.push(n),s=n;t.setEdge(s,u,{weight:l.weight},h)}(r,t)})},undo:function(e){t.forEach(e.graph().dummyChains,function(t){var r,n=e.node(t),o=n.edgeLabel;for(e.setEdge(n.edgeObj,o);n.dummy;)r=e.successors(t)[0],e.removeNode(t),o.points.push({x:n.x,y:n.y}),"edge-label"===n.dummy&&(o.x=n.x,o.y=n.y,o.width=n.width,o.height=n.height),t=r,n=e.node(t)})}}}function Km(){if(Dg)return Lg;Dg=1;var t=Ym();return Lg={longestPath:function(e){var r={};t.forEach(e.sources(),function n(o){var i=e.node(o);if(t.has(r,o))return i.rank;r[o]=!0;var s=t.min(t.map(e.outEdges(o),function(t){return n(t.w)-e.edge(t).minlen}));return s!==Number.POSITIVE_INFINITY&&null!=s||(s=0),i.rank=s})},slack:function(t,e){return t.node(e.w).rank-t.node(e.v).rank-t.edge(e).minlen}},Lg}function Zm(){if(Vg)return qg;Vg=1;var t=Ym(),e=vm().Graph,r=Km().slack;function n(e,n){return t.forEach(e.nodes(),function o(i){t.forEach(n.nodeEdges(i),function(t){var s=t.v,a=i===s?t.w:s;e.hasNode(a)||r(n,t)||(e.setNode(a,{}),e.setEdge(i,a,{}),o(a))})}),e.nodeCount()}function o(e,n){return t.minBy(n.edges(),function(t){if(e.hasNode(t.v)!==e.hasNode(t.w))return r(n,t)})}function i(e,r,n){t.forEach(e.nodes(),function(t){r.node(t).rank+=n})}return qg=function(t){var s,a,u=new e({directed:!1}),c=t.nodes()[0],h=t.nodeCount();u.setNode(c,{});for(;n(u,t)<h;)s=o(u,t),a=u.hasNode(s.v)?r(t,s):-r(t,s),i(u,t,a);return u}}function ty(){if($g)return Bg;$g=1;var t=Ym(),e=Zm(),r=Km().slack,n=Km().longestPath,o=vm().alg.preorder,i=vm().alg.postorder,s=Qm().simplify;function a(t){t=s(t),n(t);var r,o=e(t);for(h(o),u(o,t);r=d(o);)g(o,t,r,f(o,t,r))}function u(e,r){var n=i(e,e.nodes());n=n.slice(0,n.length-1),t.forEach(n,function(t){!function(t,e,r){var n=t.node(r),o=n.parent;t.edge(r,o).cutvalue=c(t,e,r)}(e,r,t)})}function c(e,r,n){var o=e.node(n).parent,i=!0,s=r.edge(n,o),a=0;return s||(i=!1,s=r.edge(o,n)),a=s.weight,t.forEach(r.nodeEdges(n),function(t){var s,u,c=t.v===n,h=c?t.w:t.v;if(h!==o){var l=c===i,d=r.edge(t).weight;if(a+=l?d:-d,s=n,u=h,e.hasEdge(s,u)){var f=e.edge(n,h).cutvalue;a+=l?-f:f}}}),a}function h(t,e){arguments.length<2&&(e=t.nodes()[0]),l(t,{},1,e)}function l(e,r,n,o,i){var s=n,a=e.node(o);return r[o]=!0,t.forEach(e.neighbors(o),function(i){t.has(r,i)||(n=l(e,r,n,i,o))}),a.low=s,a.lim=n++,i?a.parent=i:delete a.parent,n}function d(e){return t.find(e.edges(),function(t){return e.edge(t).cutvalue<0})}function f(e,n,o){var i=o.v,s=o.w;n.hasEdge(i,s)||(i=o.w,s=o.v);var a=e.node(i),u=e.node(s),c=a,h=!1;a.lim>u.lim&&(c=u,h=!0);var l=t.filter(n.edges(),function(t){return h===p(e,e.node(t.v),c)&&h!==p(e,e.node(t.w),c)});return t.minBy(l,function(t){return r(n,t)})}function g(e,r,n,i){var s=n.v,a=n.w;e.removeEdge(s,a),e.setEdge(i.v,i.w,{}),h(e),u(e,r),function(e,r){var n=t.find(e.nodes(),function(t){return!r.node(t).parent}),i=o(e,n);i=i.slice(1),t.forEach(i,function(t){var n=e.node(t).parent,o=r.edge(t,n),i=!1;o||(o=r.edge(n,t),i=!0),r.node(t).rank=r.node(n).rank+(i?o.minlen:-o.minlen)})}(e,r)}function p(t,e,r){return r.low<=e.lim&&e.lim<=r.lim}return Bg=a,a.initLowLimValues=h,a.initCutValues=u,a.calcCutValue=c,a.leaveEdge=d,a.enterEdge=f,a.exchangeEdges=g,Bg}function ey(){if(Ug)return Gg;Ug=1;var t=Km().longestPath,e=Zm(),r=ty();Gg=function(r){switch(r.graph().ranker){case"network-simplex":default:o(r);break;case"tight-tree":!function(r){t(r),e(r)}(r);break;case"longest-path":n(r)}};var n=t;function o(t){r(t)}return Gg}function ry(){if(Yg)return Wg;Yg=1;var t=Ym();return Wg=function(e){var r=function(e){var r={},n=0;function o(i){var s=n;t.forEach(e.children(i),o),r[i]={low:s,lim:n++}}return t.forEach(e.children(),o),r}(e);t.forEach(e.graph().dummyChains,function(t){for(var n=e.node(t),o=n.edgeObj,i=function(t,e,r,n){var o,i,s=[],a=[],u=Math.min(e[r].low,e[n].low),c=Math.max(e[r].lim,e[n].lim);o=r;do{o=t.parent(o),s.push(o)}while(o&&(e[o].low>u||c>e[o].lim));i=o,o=n;for(;(o=t.parent(o))!==i;)a.push(o);return{path:s.concat(a.reverse()),lca:i}}(e,r,o.v,o.w),s=i.path,a=i.lca,u=0,c=s[u],h=!0;t!==o.w;){if(n=e.node(t),h){for(;(c=s[u])!==a&&e.node(c).maxRank<n.rank;)u++;c===a&&(h=!1)}if(!h){for(;u<s.length-1&&e.node(c=s[u+1]).minRank<=n.rank;)u++;c=s[u]}e.setParent(t,c),t=e.successors(t)[0]}})},Wg}function ny(){if(Xg)return Hg;Xg=1;var t=Ym(),e=Qm();function r(n,o,i,s,a,u,c){var h=n.children(c);if(h.length){var l=e.addBorderNode(n,"_bt"),d=e.addBorderNode(n,"_bb"),f=n.node(c);n.setParent(l,c),f.borderTop=l,n.setParent(d,c),f.borderBottom=d,t.forEach(h,function(t){r(n,o,i,s,a,u,t);var e=n.node(t),h=e.borderTop?e.borderTop:t,f=e.borderBottom?e.borderBottom:t,g=e.borderTop?s:2*s,p=h!==f?1:a-u[c]+1;n.setEdge(l,h,{weight:g,minlen:p,nestingEdge:!0}),n.setEdge(f,d,{weight:g,minlen:p,nestingEdge:!0})}),n.parent(c)||n.setEdge(o,l,{weight:0,minlen:a+u[c]})}else c!==o&&n.setEdge(o,c,{weight:0,minlen:i})}return Hg={run:function(n){var o=e.addDummyNode(n,"root",{},"_root"),i=function(e){var r={};function n(o,i){var s=e.children(o);s&&s.length&&t.forEach(s,function(t){n(t,i+1)}),r[o]=i}return t.forEach(e.children(),function(t){n(t,1)}),r}(n),s=t.max(t.values(i))-1,a=2*s+1;n.graph().nestingRoot=o,t.forEach(n.edges(),function(t){n.edge(t).minlen*=a});var u=function(e){return t.reduce(e.edges(),function(t,r){return t+e.edge(r).weight},0)}(n)+1;t.forEach(n.children(),function(t){r(n,o,a,u,s,i,t)}),n.graph().nodeRankFactor=a},cleanup:function(e){var r=e.graph();e.removeNode(r.nestingRoot),delete r.nestingRoot,t.forEach(e.edges(),function(t){e.edge(t).nestingEdge&&e.removeEdge(t)})}},Hg}function oy(){if(Zg)return Kg;Zg=1;var t=Ym();function e(e){t.forEach(e.nodes(),function(t){r(e.node(t))}),t.forEach(e.edges(),function(t){r(e.edge(t))})}function r(t){var e=t.width;t.width=t.height,t.height=e}function n(t){t.y=-t.y}function o(t){var e=t.x;t.x=t.y,t.y=e}return Kg={adjust:function(t){var r=t.graph().rankdir.toLowerCase();"lr"!==r&&"rl"!==r||e(t)},undo:function(r){var i=r.graph().rankdir.toLowerCase();"bt"!==i&&"rl"!==i||function(e){t.forEach(e.nodes(),function(t){n(e.node(t))}),t.forEach(e.edges(),function(r){var o=e.edge(r);t.forEach(o.points,n),t.has(o,"y")&&n(o)})}(r);"lr"!==i&&"rl"!==i||(!function(e){t.forEach(e.nodes(),function(t){o(e.node(t))}),t.forEach(e.edges(),function(r){var n=e.edge(r);t.forEach(n.points,o),t.has(n,"x")&&o(n)})}(r),e(r))}}}function iy(){if(ap)return sp;ap=1;var t=Ym();return sp=function(e,r){var n={};return t.forEach(e,function(e,r){var o=n[e.v]={indegree:0,in:[],out:[],vs:[e.v],i:r};t.isUndefined(e.barycenter)||(o.barycenter=e.barycenter,o.weight=e.weight)}),t.forEach(r.edges(),function(e){var r=n[e.v],o=n[e.w];t.isUndefined(r)||t.isUndefined(o)||(o.indegree++,r.out.push(n[e.w]))}),function(e){var r=[];function n(e){return function(r){r.merged||(t.isUndefined(r.barycenter)||t.isUndefined(e.barycenter)||r.barycenter>=e.barycenter)&&function(t,e){var r=0,n=0;t.weight&&(r+=t.barycenter*t.weight,n+=t.weight);e.weight&&(r+=e.barycenter*e.weight,n+=e.weight);t.vs=e.vs.concat(t.vs),t.barycenter=r/n,t.weight=n,t.i=Math.min(e.i,t.i),e.merged=!0}(e,r)}}function o(t){return function(r){r.in.push(t),0===--r.indegree&&e.push(r)}}for(;e.length;){var i=e.pop();r.push(i),t.forEach(i.in.reverse(),n(i)),t.forEach(i.out,o(i))}return t.map(t.filter(r,function(t){return!t.merged}),function(e){return t.pick(e,["vs","i","barycenter","weight"])})}(t.filter(n,function(t){return!t.indegree}))}}function sy(){if(lp)return hp;lp=1;var t=Ym(),e=function(){if(ip)return op;ip=1;var t=Ym();return op=function(e,r){return t.map(r,function(r){var n=e.inEdges(r);if(n.length){var o=t.reduce(n,function(t,r){var n=e.edge(r),o=e.node(r.v);return{sum:t.sum+n.weight*o.order,weight:t.weight+n.weight}},{sum:0,weight:0});return{v:r,barycenter:o.sum/o.weight,weight:o.weight}}return{v:r}})}}(),r=iy(),n=function(){if(cp)return up;cp=1;var t=Ym(),e=Qm();function r(e,r,n){for(var o;r.length&&(o=t.last(r)).i<=n;)r.pop(),e.push(o.vs),n++;return n}return up=function(n,o){var i,s=e.partition(n,function(e){return t.has(e,"barycenter")}),a=s.lhs,u=t.sortBy(s.rhs,function(t){return-t.i}),c=[],h=0,l=0,d=0;a.sort((i=!!o,function(t,e){return t.barycenter<e.barycenter?-1:t.barycenter>e.barycenter?1:i?e.i-t.i:t.i-e.i})),d=r(c,u,d),t.forEach(a,function(t){d+=t.vs.length,c.push(t.vs),h+=t.barycenter*t.weight,l+=t.weight,d=r(c,u,d)});var f={vs:t.flatten(c,!0)};return l&&(f.barycenter=h/l,f.weight=l),f}}();return hp=function o(i,s,a,u){var c=i.children(s),h=i.node(s),l=h?h.borderLeft:void 0,d=h?h.borderRight:void 0,f={};l&&(c=t.filter(c,function(t){return t!==l&&t!==d}));var g=e(i,c);t.forEach(g,function(e){if(i.children(e.v).length){var r=o(i,e.v,a,u);f[e.v]=r,t.has(r,"barycenter")&&(n=e,s=r,t.isUndefined(n.barycenter)?(n.barycenter=s.barycenter,n.weight=s.weight):(n.barycenter=(n.barycenter*n.weight+s.barycenter*s.weight)/(n.weight+s.weight),n.weight+=s.weight))}var n,s});var p=r(g,a);!function(e,r){t.forEach(e,function(e){e.vs=t.flatten(e.vs.map(function(t){return r[t]?r[t].vs:t}),!0)})}(p,f);var v=n(p,u);if(l&&(v.vs=t.flatten([l,v.vs,d],!0),i.predecessors(l).length)){var m=i.node(i.predecessors(l)[0]),y=i.node(i.predecessors(d)[0]);t.has(v,"barycenter")||(v.barycenter=0,v.weight=0),v.barycenter=(v.barycenter*v.weight+m.order+y.order)/(v.weight+2),v.weight+=2}return v},hp}function ay(){if(fp)return dp;fp=1;var t=Ym(),e=vm().Graph;return dp=function(r,n,o){var i=function(e){var r;for(;e.hasNode(r=t.uniqueId("_root")););return r}(r),s=new e({compound:!0}).setGraph({root:i}).setDefaultNodeLabel(function(t){return r.node(t)});return t.forEach(r.nodes(),function(e){var a=r.node(e),u=r.parent(e);(a.rank===n||a.minRank<=n&&n<=a.maxRank)&&(s.setNode(e),s.setParent(e,u||i),t.forEach(r[o](e),function(n){var o=n.v===e?n.w:n.v,i=s.edge(o,e),a=t.isUndefined(i)?0:i.weight;s.setEdge(o,e,{weight:r.edge(n).weight+a})}),t.has(a,"minRank")&&s.setNode(e,{borderLeft:a.borderLeft[n],borderRight:a.borderRight[n]}))}),s},dp}function uy(){if(mp)return vp;mp=1;var t=Ym(),e=function(){if(ep)return tp;ep=1;var t=Ym();return tp=function(e){var r={},n=t.filter(e.nodes(),function(t){return!e.children(t).length}),o=t.max(t.map(n,function(t){return e.node(t).rank})),i=t.map(t.range(o+1),function(){return[]});function s(n){if(!t.has(r,n)){r[n]=!0;var o=e.node(n);i[o.rank].push(n),t.forEach(e.successors(n),s)}}var a=t.sortBy(n,function(t){return e.node(t).rank});return t.forEach(a,s),i},tp}(),r=function(){if(np)return rp;np=1;var t=Ym();function e(e,r,n){for(var o=t.zipObject(n,t.map(n,function(t,e){return e})),i=t.flatten(t.map(r,function(r){return t.sortBy(t.map(e.outEdges(r),function(t){return{pos:o[t.w],weight:e.edge(t).weight}}),"pos")}),!0),s=1;s<n.length;)s<<=1;var a=2*s-1;s-=1;var u=t.map(new Array(a),function(){return 0}),c=0;return t.forEach(i.forEach(function(t){var e=t.pos+s;u[e]+=t.weight;for(var r=0;e>0;)e%2&&(r+=u[e+1]),u[e=e-1>>1]+=t.weight;c+=t.weight*r})),c}return rp=function(t,r){for(var n=0,o=1;o<r.length;++o)n+=e(t,r[o-1],r[o]);return n}}(),n=sy(),o=ay(),i=function(){if(pp)return gp;pp=1;var t=Ym();return gp=function(e,r,n){var o,i={};t.forEach(n,function(t){for(var n,s,a=e.parent(t);a;){if((n=e.parent(a))?(s=i[n],i[n]=a):(s=o,o=a),s&&s!==a)return void r.setEdge(s,a);a=n}})}}(),s=vm().Graph,a=Qm();function u(e,r,n){return t.map(r,function(t){return o(e,t,n)})}function c(e,r){var o=new s;t.forEach(e,function(e){var s=e.graph().root,a=n(e,s,o,r);t.forEach(a.vs,function(t,r){e.node(t).order=r}),i(e,o,a.vs)})}function h(e,r){t.forEach(r,function(r){t.forEach(r,function(t,r){e.node(t).order=r})})}return vp=function(n){var o=a.maxRank(n),i=u(n,t.range(1,o+1),"inEdges"),s=u(n,t.range(o-1,-1,-1),"outEdges"),l=e(n);h(n,l);for(var d,f=Number.POSITIVE_INFINITY,g=0,p=0;p<4;++g,++p){c(g%2?i:s,g%4>=2),l=a.buildLayerMatrix(n);var v=r(n,l);v<f&&(p=0,d=t.cloneDeep(l),f=v)}h(n,d)},vp}function cy(){if(wp)return yp;wp=1;var t=Ym(),e=vm().Graph,r=Qm();function n(e,r){var n={};return t.reduce(r,function(r,o){var s=0,a=0,u=r.length,c=t.last(o);return t.forEach(o,function(r,h){var l=function(e,r){if(e.node(r).dummy)return t.find(e.predecessors(r),function(t){return e.node(t).dummy})}(e,r),d=l?e.node(l).order:u;(l||r===c)&&(t.forEach(o.slice(a,h+1),function(r){t.forEach(e.predecessors(r),function(t){var o=e.node(t),a=o.order;!(a<s||d<a)||o.dummy&&e.node(r).dummy||i(n,t,r)})}),a=h+1,s=d)}),o}),n}function o(e,r){var n={};function o(r,o,s,a,u){var c;t.forEach(t.range(o,s),function(o){c=r[o],e.node(c).dummy&&t.forEach(e.predecessors(c),function(t){var r=e.node(t);r.dummy&&(r.order<a||r.order>u)&&i(n,t,c)})})}return t.reduce(r,function(r,n){var i,s=-1,a=0;return t.forEach(n,function(t,u){if("border"===e.node(t).dummy){var c=e.predecessors(t);c.length&&(i=e.node(c[0]).order,o(n,a,u,s,i),a=u,s=i)}o(n,a,n.length,i,r.length)}),n}),n}function i(t,e,r){if(e>r){var n=e;e=r,r=n}var o=t[e];o||(t[e]=o={}),o[r]=!0}function s(e,r,n){if(r>n){var o=r;r=n,n=o}return t.has(e[r],n)}function a(e,r,n,o){var i={},a={},u={};return t.forEach(r,function(e){t.forEach(e,function(t,e){i[t]=t,a[t]=t,u[t]=e})}),t.forEach(r,function(e){var r=-1;t.forEach(e,function(e){var c=o(e);if(c.length){c=t.sortBy(c,function(t){return u[t]});for(var h=(c.length-1)/2,l=Math.floor(h),d=Math.ceil(h);l<=d;++l){var f=c[l];a[e]===e&&r<u[f]&&!s(n,e,f)&&(a[f]=e,a[e]=i[e]=i[f],r=u[f])}}})}),{root:i,align:a}}function u(r,n,o,i,s){var a={},u=function(r,n,o,i){var s=new e,a=r.graph(),u=function(e,r,n){return function(o,i,s){var a,u=o.node(i),c=o.node(s),h=0;if(h+=u.width/2,t.has(u,"labelpos"))switch(u.labelpos.toLowerCase()){case"l":a=-u.width/2;break;case"r":a=u.width/2}if(a&&(h+=n?a:-a),a=0,h+=(u.dummy?r:e)/2,h+=(c.dummy?r:e)/2,h+=c.width/2,t.has(c,"labelpos"))switch(c.labelpos.toLowerCase()){case"l":a=c.width/2;break;case"r":a=-c.width/2}return a&&(h+=n?a:-a),a=0,h}}(a.nodesep,a.edgesep,i);return t.forEach(n,function(e){var n;t.forEach(e,function(t){var e=o[t];if(s.setNode(e),n){var i=o[n],a=s.edge(i,e);s.setEdge(i,e,Math.max(u(r,t,n),a||0))}n=t})}),s}(r,n,o,s),c=s?"borderLeft":"borderRight";function h(t,e){for(var r=u.nodes(),n=r.pop(),o={};n;)o[n]?t(n):(o[n]=!0,r.push(n),r=r.concat(e(n))),n=r.pop()}return h(function(t){a[t]=u.inEdges(t).reduce(function(t,e){return Math.max(t,a[e.v]+u.edge(e))},0)},u.predecessors.bind(u)),h(function(t){var e=u.outEdges(t).reduce(function(t,e){return Math.min(t,a[e.w]-u.edge(e))},Number.POSITIVE_INFINITY),n=r.node(t);e!==Number.POSITIVE_INFINITY&&n.borderType!==c&&(a[t]=Math.max(a[t],e))},u.successors.bind(u)),t.forEach(i,function(t){a[t]=a[o[t]]}),a}function c(e,r){return t.minBy(t.values(r),function(r){var n=Number.NEGATIVE_INFINITY,o=Number.POSITIVE_INFINITY;return t.forIn(r,function(t,r){var i=function(t,e){return t.node(e).width}(e,r)/2;n=Math.max(t+i,n),o=Math.min(t-i,o)}),n-o})}function h(e,r){var n=t.values(r),o=t.min(n),i=t.max(n);t.forEach(["u","d"],function(n){t.forEach(["l","r"],function(s){var a,u=n+s,c=e[u];if(c!==r){var h=t.values(c);(a="l"===s?o-t.min(h):i-t.max(h))&&(e[u]=t.mapValues(c,function(t){return t+a}))}})})}function l(e,r){return t.mapValues(e.ul,function(n,o){if(r)return e[r.toLowerCase()][o];var i=t.sortBy(t.map(e,o));return(i[1]+i[2])/2})}return yp={positionX:function(e){var i,s=r.buildLayerMatrix(e),d=t.merge(n(e,s),o(e,s)),f={};t.forEach(["u","d"],function(r){i="u"===r?s:t.values(s).reverse(),t.forEach(["l","r"],function(n){"r"===n&&(i=t.map(i,function(e){return t.values(e).reverse()}));var o=("u"===r?e.predecessors:e.successors).bind(e),s=a(e,i,d,o),c=u(e,i,s.root,s.align,"r"===n);"r"===n&&(c=t.mapValues(c,function(t){return-t})),f[r+n]=c})});var g=c(e,f);return h(f,g),l(f,e.graph().align)},findType1Conflicts:n,findType2Conflicts:o,addConflict:i,hasConflict:s,verticalAlignment:a,horizontalCompaction:u,alignCoordinates:h,findSmallestWidthAlignment:c,balance:l},yp}function hy(){if(bp)return xp;bp=1;var t=Ym(),e=Qm(),r=cy().positionX;return xp=function(n){(function(r){var n=e.buildLayerMatrix(r),o=r.graph().ranksep,i=0;t.forEach(n,function(e){var n=t.max(t.map(e,function(t){return r.node(t).height}));t.forEach(e,function(t){r.node(t).y=i+n/2}),i+=n+o})})(n=e.asNonCompoundGraph(n)),t.forEach(r(n),function(t,e){n.node(e).x=t})},xp}function ly(){if(Mp)return Ep;Mp=1;var t=Ym(),e=Xm(),r=Jm(),n=ey(),o=Qm().normalizeRanks,i=ry(),s=Qm().removeEmptyRanks,a=ny(),u=function(){if(Jg)return Qg;Jg=1;var t=Ym(),e=Qm();function r(t,r,n,o,i,s){var a={width:0,height:0,rank:s,borderType:r},u=i[r][s-1],c=e.addDummyNode(t,"border",a,n);i[r][s]=c,t.setParent(c,o),u&&t.setEdge(u,c,{weight:1})}return Qg=function(e){t.forEach(e.children(),function n(o){var i=e.children(o),s=e.node(o);if(i.length&&t.forEach(i,n),t.has(s,"minRank")){s.borderLeft=[],s.borderRight=[];for(var a=s.minRank,u=s.maxRank+1;a<u;++a)r(e,"borderLeft","_bl",o,s,a),r(e,"borderRight","_br",o,s,a)}})},Qg}(),c=oy(),h=uy(),l=hy(),d=Qm(),f=vm().Graph;Ep=function(N,_){var k=_&&_.debugTiming?d.time:d.notime;k("layout",function(){var _=k(" buildLayoutGraph",function(){return function(e){var r=new f({multigraph:!0,compound:!0}),n=M(e.graph());return r.setGraph(t.merge({},p,E(n,g),t.pick(n,v))),t.forEach(e.nodes(),function(n){var o=M(e.node(n));r.setNode(n,t.defaults(E(o,m),y)),r.setParent(n,e.parent(n))}),t.forEach(e.edges(),function(n){var o=M(e.edge(n));r.setEdge(n,t.merge({},x,E(o,w),t.pick(o,b)))}),r}(N)});k(" runLayout",function(){!function(f,g){g(" makeSpaceForEdgeLabels",function(){!function(e){var r=e.graph();r.ranksep/=2,t.forEach(e.edges(),function(t){var n=e.edge(t);n.minlen*=2,"c"!==n.labelpos.toLowerCase()&&("TB"===r.rankdir||"BT"===r.rankdir?n.width+=n.labeloffset:n.height+=n.labeloffset)})}(f)}),g(" removeSelfEdges",function(){!function(e){t.forEach(e.edges(),function(t){if(t.v===t.w){var r=e.node(t.v);r.selfEdges||(r.selfEdges=[]),r.selfEdges.push({e:t,label:e.edge(t)}),e.removeEdge(t)}})}(f)}),g(" acyclic",function(){e.run(f)}),g(" nestingGraph.run",function(){a.run(f)}),g(" rank",function(){n(d.asNonCompoundGraph(f))}),g(" injectEdgeLabelProxies",function(){!function(e){t.forEach(e.edges(),function(t){var r=e.edge(t);if(r.width&&r.height){var n=e.node(t.v),o={rank:(e.node(t.w).rank-n.rank)/2+n.rank,e:t};d.addDummyNode(e,"edge-proxy",o,"_ep")}})}(f)}),g(" removeEmptyRanks",function(){s(f)}),g(" nestingGraph.cleanup",function(){a.cleanup(f)}),g(" normalizeRanks",function(){o(f)}),g(" assignRankMinMax",function(){!function(e){var r=0;t.forEach(e.nodes(),function(n){var o=e.node(n);o.borderTop&&(o.minRank=e.node(o.borderTop).rank,o.maxRank=e.node(o.borderBottom).rank,r=t.max(r,o.maxRank))}),e.graph().maxRank=r}(f)}),g(" removeEdgeLabelProxies",function(){!function(e){t.forEach(e.nodes(),function(t){var r=e.node(t);"edge-proxy"===r.dummy&&(e.edge(r.e).labelRank=r.rank,e.removeNode(t))})}(f)}),g(" normalize.run",function(){r.run(f)}),g(" parentDummyChains",function(){i(f)}),g(" addBorderSegments",function(){u(f)}),g(" order",function(){h(f)}),g(" insertSelfEdges",function(){!function(e){var r=d.buildLayerMatrix(e);t.forEach(r,function(r){var n=0;t.forEach(r,function(r,o){var i=e.node(r);i.order=o+n,t.forEach(i.selfEdges,function(t){d.addDummyNode(e,"selfedge",{width:t.label.width,height:t.label.height,rank:i.rank,order:o+ ++n,e:t.e,label:t.label},"_se")}),delete i.selfEdges})})}(f)}),g(" adjustCoordinateSystem",function(){c.adjust(f)}),g(" position",function(){l(f)}),g(" positionSelfEdges",function(){!function(e){t.forEach(e.nodes(),function(t){var r=e.node(t);if("selfedge"===r.dummy){var n=e.node(r.e.v),o=n.x+n.width/2,i=n.y,s=r.x-o,a=n.height/2;e.setEdge(r.e,r.label),e.removeNode(t),r.label.points=[{x:o+2*s/3,y:i-a},{x:o+5*s/6,y:i-a},{x:o+s,y:i},{x:o+5*s/6,y:i+a},{x:o+2*s/3,y:i+a}],r.label.x=r.x,r.label.y=r.y}})}(f)}),g(" removeBorderNodes",function(){!function(e){t.forEach(e.nodes(),function(r){if(e.children(r).length){var n=e.node(r),o=e.node(n.borderTop),i=e.node(n.borderBottom),s=e.node(t.last(n.borderLeft)),a=e.node(t.last(n.borderRight));n.width=Math.abs(a.x-s.x),n.height=Math.abs(i.y-o.y),n.x=s.x+n.width/2,n.y=o.y+n.height/2}}),t.forEach(e.nodes(),function(t){"border"===e.node(t).dummy&&e.removeNode(t)})}(f)}),g(" normalize.undo",function(){r.undo(f)}),g(" fixupEdgeLabelCoords",function(){!function(e){t.forEach(e.edges(),function(r){var n=e.edge(r);if(t.has(n,"x"))switch("l"!==n.labelpos&&"r"!==n.labelpos||(n.width-=n.labeloffset),n.labelpos){case"l":n.x-=n.width/2+n.labeloffset;break;case"r":n.x+=n.width/2+n.labeloffset}})}(f)}),g(" undoCoordinateSystem",function(){c.undo(f)}),g(" translateGraph",function(){!function(e){var r=Number.POSITIVE_INFINITY,n=0,o=Number.POSITIVE_INFINITY,i=0,s=e.graph(),a=s.marginx||0,u=s.marginy||0;function c(t){var e=t.x,s=t.y,a=t.width,u=t.height;r=Math.min(r,e-a/2),n=Math.max(n,e+a/2),o=Math.min(o,s-u/2),i=Math.max(i,s+u/2)}t.forEach(e.nodes(),function(t){c(e.node(t))}),t.forEach(e.edges(),function(r){var n=e.edge(r);t.has(n,"x")&&c(n)}),r-=a,o-=u,t.forEach(e.nodes(),function(t){var n=e.node(t);n.x-=r,n.y-=o}),t.forEach(e.edges(),function(n){var i=e.edge(n);t.forEach(i.points,function(t){t.x-=r,t.y-=o}),t.has(i,"x")&&(i.x-=r),t.has(i,"y")&&(i.y-=o)}),s.width=n-r+a,s.height=i-o+u}(f)}),g(" assignNodeIntersects",function(){!function(e){t.forEach(e.edges(),function(t){var r,n,o=e.edge(t),i=e.node(t.v),s=e.node(t.w);o.points?(r=o.points[0],n=o.points[o.points.length-1]):(o.points=[],r=s,n=i),o.points.unshift(d.intersectRect(i,r)),o.points.push(d.intersectRect(s,n))})}(f)}),g(" reversePoints",function(){!function(e){t.forEach(e.edges(),function(t){var r=e.edge(t);r.reversed&&r.points.reverse()})}(f)}),g(" acyclic.undo",function(){e.undo(f)})}(_,k)}),k(" updateInputGraph",function(){!function(e,r){t.forEach(e.nodes(),function(t){var n=e.node(t),o=r.node(t);n&&(n.x=o.x,n.y=o.y,r.children(t).length&&(n.width=o.width,n.height=o.height))}),t.forEach(e.edges(),function(n){var o=e.edge(n),i=r.edge(n);o.points=i.points,t.has(i,"x")&&(o.x=i.x,o.y=i.y)}),e.graph().width=r.graph().width,e.graph().height=r.graph().height}(N,_)})})};var g=["nodesep","edgesep","ranksep","marginx","marginy"],p={ranksep:50,edgesep:20,nodesep:50,rankdir:"tb"},v=["acyclicer","ranker","rankdir","align"],m=["width","height"],y={width:0,height:0},w=["minlen","weight","width","height","labeloffset"],x={minlen:1,weight:1,width:0,height:0,labeloffset:10,labelpos:"r"},b=["labelpos"];function E(e,r){return t.mapValues(t.pick(e,r),Number)}function M(e){var r={};return t.forEach(e,function(t,e){r[e.toLowerCase()]=t}),r}return Ep}function dy(){if(_p)return Np;_p=1;var t=Ym(),e=Qm(),r=vm().Graph;return Np={debugOrdering:function(n){var o=e.buildLayerMatrix(n),i=new r({compound:!0,multigraph:!0}).setGraph({});return t.forEach(n.nodes(),function(t){i.setNode(t,{label:t}),i.setParent(t,"layer"+n.node(t).rank)}),t.forEach(n.edges(),function(t){i.setEdge(t.v,t.w,{},t.name)}),t.forEach(o,function(e,r){var n="layer"+r;i.setNode(n,{rank:"same"}),t.reduce(e,function(t,e){return i.setEdge(t,e,{style:"invis"}),e})}),i}}}var fy=Ap?zp:(Ap=1,zp={graphlib:vm(),layout:ly(),debug:dy(),util:{time:Qm().time,notime:Qm().notime},version:Sp?kp:(Sp=1,kp="0.8.5")}),gy=rs(fy);class py extends gt{constructor(){super(...arguments),this.id="dagre",this.isCompoundGraph=null,this.config={graphAttributes:["rankdir","align","nodesep","edgesep","ranksep","marginx","marginy","acyclicer","ranker"],nodeAttributes:["width","height"],edgeAttributes:["minlen","weight","width","height","labelpos","labeloffset"]}}getDefaultOptions(){return{directed:!0,multigraph:!0,rankdir:"TB",align:void 0,nodesep:50,edgesep:10,ranksep:50,marginx:0,marginy:0,acyclicer:void 0,ranker:"network-simplex",nodeSize:[0,0],edgeMinLen:1,edgeWeight:1,edgeLabelSize:[0,0],edgeLabelPos:"r",edgeLabelOffset:10}}layout(){return r(this,void 0,void 0,function*(){const t=new fy.graphlib.Graph({directed:!!this.options.directed,multigraph:!!this.options.multigraph,compound:this.isCompound()});t.setGraph(x(this.options,this.config.graphAttributes)),t.setDefaultEdgeLabel(()=>({}));const e=q(this.options.nodeSize,0);this.model.forEachNode(r=>{const n=r._original,[i,s]=F(e(n)),a={width:i,height:s};if(t.setNode(String(r.id),a),this.isCompound()){if(o(r.parentId))return;t.setParent(String(r.id),String(r.parentId))}});const{edgeLabelSize:r,edgeLabelOffset:n,edgeLabelPos:i,edgeMinLen:s,edgeWeight:a}=this.options,u=q(r,0),c=D(n,10),h="function"==typeof i?i:()=>i,l=D(s,1),d=D(a,1);this.model.forEachEdge(e=>{const r=e._original,[n,o]=F(u(r)),i={width:n,height:o,labelpos:h(r),labeloffset:c(r),minlen:l(r),weight:d(r)};t.setEdge(String(e.source),String(e.target),i,String(e.id))}),gy.layout(t),this.model.forEachNode(e=>{const r=t.node(String(e.id));r&&(e.x=r.x,e.y=r.y,e.size=[r.width,r.height])}),this.model.forEachEdge(e=>{const r=t.edge(String(e.source),String(e.target),String(e.id));if(!r)return;const{width:n,height:o,weight:i,minlen:s,labelpos:a,labeloffset:u,points:c}=r;e.labelSize=[n,o],e.weight=i,e.minLen=s,e.labelPos=a,e.labelOffset=u,e.points=c.map(T)})})}isCompound(){return null!==this.isCompoundGraph?this.isCompoundGraph:(t=this.options.compound,u(t,"Boolean")?this.isCompoundGraph=this.options.compound:(this.isCompoundGraph=this.model.nodes().some(t=>!o(t.parentId)),this.isCompoundGraph));var t}}const vy=1e-6;function my(t){var e;let r=0;if(t.length)for(let e=0;e<t.length;e++){const n=t[e];n&&n.r>r&&(r=n.r)}else if(t.data){r=t.data.r||0;let n=t.next;for(;n;)r=Math.max(r,(null===(e=n.data)||void 0===e?void 0:e.r)||0),n=n.next}t.r=r}function yy(t=1,e=.005,r=2){function n(n,o){!function(t,e,r,n,o=2){const i=e/r,s=t.nodes(),a=s.map((t,e)=>{const{nodeStrength:r,x:n,y:o,z:s,size:a,mass:u}=t;return{x:n,y:o,z:s,size:a,index:e,id:t.id,vx:0,vy:0,vz:0,weight:i*r,mass:u||1}}),u=(2===o?xr(a,t=>t.x,t=>t.y):zn(a,t=>t.x,t=>t.y,t=>t.z)).visitAfter(wy),c=new Map;a.forEach(t=>{c.set(t.id,t),function(t,e,r){e.visit((e,n,o,i,s,a,u)=>xy(e,n,o,i,s,a,u,t,r))}(t,u,o)}),a.map(t=>{const e=t.id;n[e]={x:t.vx/t.mass,y:t.vy/t.mass,z:t.vz/t.mass}})}(n,t,e*e,o,r)}return n.factor=function(e){return arguments.length?(t=e,n):t},n.coulombDisScale=function(t){return arguments.length?(e=t,n):e},n.dimensions=function(t){return arguments.length?(r=t,n):r},n}function wy(t){let e=0,r=0,n=0,o=0,i=0;const s=t.length;if(s){for(let a=0;a<s;a++){const s=t[a];s&&s.weight&&(e+=s.weight,r+=s.x*s.weight,n+=s.y*s.weight,o+=s.z*s.weight,i+=s.size*s.weight)}t.x=r/e,t.y=n/e,t.z=o/e,t.size=i/e,t.weight=e}else{const e=t;t.x=e.data.x,t.y=e.data.y,t.z=e.data.z,t.size=e.data.size,t.weight=e.data.weight}}const xy=(t,e,r,n,o,i,s,a,u)=>{var c;if((null===(c=t.data)||void 0===c?void 0:c.id)===a.id)return;const h=2===u?n:3===u?i:r,l=a.x-t.x||.1,d=a.y-t.y||.1,f=a.z-t.z||.1,g=[l,d,f],p=h-e;let v=0;for(let t=0;t<u;t++)v+=g[t]*g[t];const m=Math.sqrt(v)*v;if(p*p*.81<v){const e=t.weight/m;return a.vx+=l*e,a.vy+=d*e,a.vz+=f*e,!0}if(t.length)return!1;if(t.data!==a){const e=t.data.weight/m;a.vx+=l*e,a.vy+=d*e,a.vz+=f*e}};var by=function(){function t(){this._events={}}return t.prototype.on=function(t,e,r){return this._events[t]||(this._events[t]=[]),this._events[t].push({callback:e,once:!!r}),this},t.prototype.once=function(t,e){return this.on(t,e,!0)},t.prototype.emit=function(t){for(var e=this,r=[],n=1;n<arguments.length;n++)r[n-1]=arguments[n];var o=this._events[t]||[],i=this._events["*"]||[],s=function(n){for(var o=n.length,i=0;i<o;i++)if(n[i]){var s=n[i],a=s.callback;s.once&&(n.splice(i,1),0===n.length&&delete e._events[t],o--,i--),a.apply(e,r)}};s(o),s(i)},t.prototype.off=function(t,e){if(t)if(e){for(var r=this._events[t]||[],n=r.length,o=0;o<n;o++)r[o].callback===e&&(r.splice(o,1),n--,o--);0===r.length&&delete this._events[t]}else delete this._events[t];else this._events={};return this},t.prototype.getEvents=function(){return this._events},t}();class Ey extends by{constructor(){super(...arguments),this.iteration=0,this.judgingDistance=1/0,this.running=!1,this.tickCallback=null,this.endCallback=null,this.timer=0}initialize(t){this.options=t,this.iteration=0,this.judgingDistance=1/0}on(t,e){return"tick"===t&&(this.tickCallback=e),"end"===t&&(this.endCallback=e),this}tick(t=1){var e;for(let r=0;r<t;r++){const t=this.runOneStep();this.judgingDistance=t,this.iteration++,null===(e=this.tickCallback)||void 0===e||e.call(this)}return this}restart(){if(this.running)return this;const{maxIteration:t=500,minMovement:e=0,animate:r=!0}=this.options;if(!r||"undefined"==typeof window){for(;this.iteration<t&&(this.judgingDistance>e||this.iteration<1);)this.tick(1);return Promise.resolve().then(()=>{var t;null===(t=this.endCallback)||void 0===t||t.call(this)}),this}return this.running=!0,this.timer=window.setInterval(()=>{var r;this.tick(1),(this.iteration>=t||this.judgingDistance<e)&&(this.stop(),null===(r=this.endCallback)||void 0===r||r.call(this))},0),this}stop(){return this.running=!1,this.timer&&(clearInterval(this.timer),this.timer=0),this}}class My extends Ey{constructor(){super(...arguments),this.forces=new Map,this.velMap={}}data(t){return this.model=t,t.forEachNode(t=>{this.velMap[t.id]={x:0,y:0,z:0}}),this}force(t,e){return 1===arguments.length?this.forces.get(t)||null:(null===e?this.forces.delete(t):e&&this.forces.set(t,e),e||null)}runOneStep(){const t={},e=this.model.nodes();if(!e.length)return 0;e.forEach(e=>{t[e.id]={x:0,y:0,z:0}}),this.forces.forEach(e=>{e(this.model,t)}),this.updateVelocity(t);const r=this.updatePosition();return this.monitor(t,e),r}setFixedPosition(t,e){const r=this.model.node(t);if(!r)return;const n=["fx","fy","fz"];if(null===e)return void n.forEach(t=>delete r[t]);e.forEach((t,e)=>{e<n.length&&("number"==typeof t||null===t)&&(r[n[e]]=t)});const o=this.velMap[t];o&&(o.x=0,o.y=0,o.z=0)}updateVelocity(t){const{damping:e=.9,maxSpeed:r=100,interval:n=.02,dimensions:o=2}=this.options;this.model.nodes().forEach(i=>{const s=i.id;let a=(this.velMap[s].x+t[s].x*n)*e,u=(this.velMap[s].y+t[s].y*n)*e,c=3===o?(this.velMap[s].z+t[s].z*n)*e:0;const h=Math.sqrt(a*a+u*u+c*c);if(h>r){const t=r/h;a*=t,u*=t,c*=t}this.velMap[s]={x:a,y:u,z:c}})}updatePosition(){const{distanceThresholdMode:t="mean",interval:e=.02,dimensions:r=2}=this.options,n=this.model.nodes();let o=0,i="max"===t?-1/0:"min"===t?1/0:0;return n.forEach(n=>{const s=n.id;if(l(n.fx)&&l(n.fy))return n.x=n.fx,n.y=n.fy,void(3===r&&l(n.fz)&&(n.z=n.fz));const a=this.velMap[s].x*e,u=this.velMap[s].y*e,c=3===r?this.velMap[s].z*e:0;n.x+=a,n.y+=u,3===r&&(n.z=(n.z||0)+c);const h=Math.sqrt(a*a+u*u+c*c);"max"===t?i=Math.max(i,h):"min"===t?i=Math.min(i,h):o+=h}),"mean"===t?o/n.length:i}monitor(t,e){const{monitor:r,dimensions:n=2}=this.options;if(!r)return;let o=0;e.forEach(e=>{const r=t[e.id],i=r.x*r.x+r.y*r.y+(3===n?r.z*r.z:0);o+=(e.mass||1)*i*.5}),r({energy:o,nodes:e,edges:this.model.edges(),iterations:this.iteration})}}const Ny={nodeSize:30,dimensions:2,maxIteration:500,gravity:10,factor:1,edgeStrength:50,nodeStrength:1e3,coulombDisScale:.005,damping:.9,maxSpeed:200,minMovement:.4,interval:.02,linkDistance:200,clusterNodeStrength:20,collideStrength:1,preventOverlap:!0,distanceThresholdMode:"mean"};class _y extends pt{constructor(){super(...arguments),this.id="force",this.simulation=null}getDefaultOptions(){return Ny}layout(){var t;return r(this,void 0,void 0,function*(){const e=this.parseOptions(this.options),{width:r,height:n,dimensions:o}=e;if(this.initializePhysicsData(this.model,e),U(this.model,r,n,o),!(null===(t=this.model.nodes())||void 0===t?void 0:t.length))return;const i=this.setSimulation(e);return i.data(this.model),i.initialize(e),i.restart(),new Promise(t=>{i.on("end",()=>t())})})}initializePhysicsData(t,e){const{nodeSize:r,getMass:n,nodeStrength:o,edgeStrength:i,linkDistance:s}=e;t.forEachNode(t=>{const e=t._original;t.size=r(e),t.mass=n(e),t.nodeStrength=o(e)}),t.forEachEdge(e=>{const r=e._original;e.edgeStrength=i(r),e.linkDistance=s(r,t.originalNode(e.source),t.originalNode(e.target))})}setSimulation(t){const e=this.simulation||new My;return this.simulation||(this.simulation=e.on("tick",()=>{var e;null===(e=t.onTick)||void 0===e||e.call(t,this)})),this.setupRepulsiveForce(e,t),this.setupAttractiveForce(e,t),this.setupCollideForce(e,t),this.setupGravityForce(e,t),this.setupCentripetalForce(e,t),e}setupRepulsiveForce(t,e){const{factor:r,coulombDisScale:n,dimensions:o}=e;let i=t.force("repulsive");i||(i=yy(r,n,o),t.force("repulsive",i)),i.factor&&i.factor(r),i.coulombDisScale&&i.coulombDisScale(n),i.dimensions&&i.dimensions(o)}setupAttractiveForce(t,e){const{dimensions:r,preventOverlap:n}=e;if((this.model.edges()||[]).length>0){let e=t.force("attractive");e||(e=function(t=2){let e=!1;function r(e,r){e.forEachEdge(n=>{var o,i;const{source:s,target:a}=n,u=e.node(s),c=e.node(a);if(!u||!c)return;let h=c.x-u.x,l=c.y-u.y,d=3===t?(null!==(o=c.z)&&void 0!==o?o:0)-(null!==(i=u.z)&&void 0!==i?i:0):0;h||l||(h=.01,l=.01,3!==t||d||(d=.01));const f=Math.sqrt(h*h+l*l+d*d);if(f<Number(u.size)+Number(c.size))return;const g=h/f,p=l/f,v=d/f,{linkDistance:m=200,edgeStrength:y=200}=n,w=(m-f)*y,x=1/(u.mass||1),b=1/(c.mass||1),E=g*w,M=p*w,N=v*w;r[s].x-=E*x,r[s].y-=M*x,r[s].z-=N*x,r[a].x+=E*b,r[a].y+=M*b,r[a].z+=N*b})}return r.dimensions=function(e){return arguments.length?(t=e,r):t},r.preventOverlap=function(t){return arguments.length?(e=t,r):e},r}(r),t.force("attractive",e)),e.dimensions&&e.dimensions(r),e.preventOverlap&&e.preventOverlap(n)}else t.force("attractive",null)}setupGravityForce(t,e){const{center:r,gravity:n,getCenter:o}=e;if(n){let e=t.force("gravity");e||(e=function(t=[0,0,0],e=10){let r;function n(n,o){n.nodes()&&n.forEachNode(i=>{const{id:s,mass:a,x:u,y:c,z:h=0}=i;let l=0,d=0,f=0,g=e;const p=n.degree(s),v=null==r?void 0:r(i,p);if(v){const[t,e,r]=v;l=u-t,d=c-e,g=r}else l=u-t[0],d=c-t[1],f=h-(t[2]||0);g&&(o[s].x-=g*l/a,o[s].y-=g*d/a,o[s].z-=g*f/a)})}return n.center=function(e){return arguments.length?(t=e,n):t},n.gravity=function(t){return arguments.length?(e=t,n):e},n.getCenter=function(t){return arguments.length?(r=t,n):r},n}(r,n),t.force("gravity",e)),e.center&&e.center(r),e.gravity&&e.gravity(n),e.getCenter&&e.getCenter(o)}else t.force("gravity",null)}setupCollideForce(t,e){const{preventOverlap:r,collideStrength:n=1,dimensions:o}=e;if(r&&n){let e=t.force("collide");e||(e=function(t=2){let e=1;function r(r,n){const o=r.nodes();if(o.length<2||e<=0)return;if(2===t){const t=o.map((t,e)=>({id:t.id,index:e,x:t.x,y:t.y,r:Number(t.size)/2,mass:t.mass||1,fx:t.fx,fy:t.fy})),e=xr(t,t=>t.x,t=>t.y).visitAfter(my);for(const r of t)e.visit((t,e,o,s,a)=>{const u=t.r||0,c=r.r+u;if(e>r.x+c||s<r.x-c||o>r.y+c||a<r.y-c)return!0;if(!t.data)return!1;let h=t;do{const t=h.data;t&&t.index>r.index&&i(r,t,n),h=h.next}while(h);return!1});return}const a=o.map((t,e)=>{var r;return{id:t.id,index:e,x:t.x,y:t.y,z:null!==(r=t.z)&&void 0!==r?r:0,r:Number(t.size)/2,mass:t.mass||1,fx:t.fx,fy:t.fy,fz:t.fz}});for(let t=0;t<a.length;t++)for(let e=t+1;e<a.length;e++)s(a[t],a[e],n)}function n(t){return l(t.fx)&&l(t.fy)?0:1/(t.mass||1)}function o(t){return l(t.fx)&&l(t.fy)&&l(t.fz)?0:1/(t.mass||1)}function i(t,r,o){let i=t.x-r.x,s=t.y-r.y,a=Math.hypot(i,s);const u=t.r+r.r;if(a>=u)return;a<vy&&(i=t.index<r.index?vy:-vy,s=0,a=Math.abs(i));const c=i/a,h=s/a,l=(u-a)*e*500,d=n(t),f=n(r);d&&(o[t.id].x+=c*l*d,o[t.id].y+=h*l*d),f&&(o[r.id].x-=c*l*f,o[r.id].y-=h*l*f)}function s(t,r,n){let i=t.x-r.x,s=t.y-r.y,a=t.z-r.z,u=Math.sqrt(i*i+s*s+a*a);const c=t.r+r.r;if(u>=c)return;u<vy&&(i=t.index<r.index?vy:-vy,s=0,a=0,u=Math.abs(i));const h=i/u,l=s/u,d=a/u,f=(c-u)*e*500,g=o(t),p=o(r);g&&(n[t.id].x+=h*f*g,n[t.id].y+=l*f*g,n[t.id].z+=d*f*g),p&&(n[r.id].x-=h*f*p,n[r.id].y-=l*f*p,n[r.id].z-=d*f*p)}return r.dimensions=function(e){return arguments.length?(t=e,r):t},r.strength=function(t){return arguments.length?(e=t,r):e},r}(o),t.force("collide",e)),e.strength&&e.strength(n),e.dimensions&&e.dimensions(o)}else t.force("collide",null)}setupCentripetalForce(t,e){const{centripetalOptions:r,width:n,height:o}=e;if(r){let e=t.force("centripetal");e||(e=function(){let t,e=800,r=600;function n(n,o){if(!t)return;const{leaf:i,single:s,others:a,center:u}=t,c=n.nodes(),h=n.edges(),d=c.map(t=>Object.assign(Object.assign({},t),{data:t.data||{}})),f=h.map(t=>Object.assign(Object.assign({},t),{data:t.data||{}}));n.forEachNode(t=>{const{id:c,mass:h,x:g,y:p,z:v=0,data:m}=t,y=n.degree(c,"in"),w=n.degree(c,"out"),x=n.degree(c,"both"),b=Object.assign(Object.assign({},t),{data:m||{}}),{x:E,y:M,z:N,centerStrength:_}=(null==u?void 0:u(b,d,f,e,r))||{x:0,y:0,z:0,centerStrength:0};if(!l(E)||!l(M))return;const k=(g-E)/h,S=(p-M)/h,z=(v-(N||0))/h;if(_&&(o[c].x-=_*k,o[c].y-=_*S,o[c].z-=_*z),0===x){const t=s(b);if(!t)return;return o[c].x-=t*k,o[c].y-=t*S,void(o[c].z-=t*z)}if(0===y||0===w){const t=i(b,d,f);if(!t)return;return o[c].x-=t*k,o[c].y-=t*S,void(o[c].z-=t*z)}const A=a(b);A&&(o[c].x-=A*k,o[c].y-=A*S,o[c].z-=A*z)})}return n.options=function(e){return arguments.length?(t=e,n):t},n.width=function(t){return arguments.length?(e=t,n):e},n.height=function(t){return arguments.length?(r=t,n):r},n}(),t.force("centripetal",e)),e.options&&e.options(r),e.width&&e.width(n),e.height&&e.height(o)}else t.force("centripetal",null)}parseOptions(t){const e=Object.assign(Object.assign({},t),L(t));return t.getMass||(e.getMass=t=>{if(!t)return 1;const e=this.model.degree(t.id,"both");return!e||e<5?1:5*e*1}),e.nodeSize=V(t.nodeSize,t.nodeSpacing),e.linkDistance=t.linkDistance?D(t.linkDistance,1):t=>1+e.nodeSize(this.model.node(t.source)._original)+e.nodeSize(this.model.node(t.target)._original),e.nodeStrength=D(t.nodeStrength,1),e.edgeStrength=D(t.edgeStrength,1),this.formatCentripetal(e),e}formatCentripetal(t){var e;const{dimensions:r,centripetalOptions:n,center:o,clusterNodeStrength:i,leafCluster:s,clustering:a,nodeClusterBy:u}=t,c=n||{leaf:2,single:2,others:1,center:t=>({x:o[0],y:o[1],z:3===r?o[2]:void 0})};let h,l;if("function"!=typeof i&&(t.clusterNodeStrength=()=>i),s&&u&&(h=this.getSameTypeLeafMap(u),l=Array.from(new Set(null===(e=this.model.nodes())||void 0===e?void 0:e.map(t=>u(t._original))))||[],t.centripetalOptions=Object.assign({},c,{single:()=>100,leaf:e=>{const{siblingLeaves:r,sameTypeLeaves:n}=h[e.id]||{};return(null==n?void 0:n.length)===(null==r?void 0:r.length)||1===(null==l?void 0:l.length)?1:t.clusterNodeStrength(e)},others:()=>1,center:t=>{const e=this.model.degree(t.id,"both");if(!e)return{x:100,y:100,z:0};let r;if(1===e){const{sameTypeLeaves:e=[]}=h[t.id]||{};1===e.length?r=void 0:e.length>1&&(r=this.getAvgNodePosition(e))}else r=void 0;return{x:null==r?void 0:r.x,y:null==r?void 0:r.y,z:null==r?void 0:r.z}}})),a&&u){h||(h=this.getSameTypeLeafMap(u));let e=[];y(e)&&this.model.forEachNode(t=>{const r=u(t._original);r&&!e.includes(r)&&e.push(r)});const r={};e.forEach(t=>{const e=this.model.nodes().filter(e=>u(e._original)===t);r[t]=this.getAvgNodePosition(e)}),t.centripetalOptions=Object.assign(c,{single:e=>t.clusterNodeStrength(e),leaf:e=>t.clusterNodeStrength(e),others:e=>t.clusterNodeStrength(e),center:t=>{const e=r[u(t._original)];return{x:null==e?void 0:e.x,y:null==e?void 0:e.y,z:null==e?void 0:e.z}}})}const{leaf:d,single:f,others:g}=t.centripetalOptions||{};d&&"function"!=typeof d&&(t.centripetalOptions.leaf=()=>d),f&&"function"!=typeof f&&(t.centripetalOptions.single=()=>f),g&&"function"!=typeof g&&(t.centripetalOptions.others=()=>g)}getSameTypeLeafMap(t){const e={};return this.model.forEachNode(r=>{1===this.model.degree(r.id,"both")&&(e[r.id]=this.getCoreNodeAndSiblingLeaves(r,t))}),e}getCoreNodeAndSiblingLeaves(t,e){const r=this.model.degree(t.id,"in"),n=this.model.degree(t.id,"out");let o=t,i=[];if(0===r){const e=this.model.successors(t.id);o=this.model.node(e[0]),i=this.model.neighbors(o.id).map(t=>this.model.node(t))}else if(0===n){const e=this.model.predecessors(t.id);o=this.model.node(e[0]),i=this.model.neighbors(o.id).map(t=>this.model.node(t))}i=i.filter(t=>0===this.model.degree(t.id,"in")||0===this.model.degree(t.id,"out"));const s=e(t._original)||"",a=i.filter(t=>e(t._original)===s&&(0===this.model.degree(t.id,"in")||0===this.model.degree(t.id,"out")));return{coreNode:o,siblingLeaves:i,sameTypeLeaves:a}}getAvgNodePosition(t){const e={x:0,y:0};t.forEach(t=>{e.x+=t.x||0,e.y+=t.y||0});const r=t.length||1;return{x:e.x/r,y:e.y/r}}tick(t=1){return this.simulation&&this.simulation.tick(t),this}stop(){return this.simulation&&this.simulation.stop(),this}restart(){return this.simulation&&this.simulation.restart(),this}setFixedPosition(t,e){return this.simulation&&this.simulation.setFixedPosition(t,e),this}}class ky{constructor(t){this.id=t.id||0,this.rx=t.rx,this.ry=t.ry,this.fx=0,this.fy=0,this.mass=t.mass,this.degree=t.degree,this.g=t.g||0}distanceTo(t){const e=this.rx-t.rx,r=this.ry-t.ry;return Math.hypot(e,r)}setPos(t,e){this.rx=t,this.ry=e}resetForce(){this.fx=0,this.fy=0}addForce(t){const e=t.rx-this.rx,r=t.ry-this.ry;let n=Math.hypot(e,r);n=n<1e-4?1e-4:n;const o=this.g*(this.degree+1)*(t.degree+1)/n;this.fx+=o*e/n,this.fy+=o*r/n}in(t){return t.contains(this.rx,this.ry)}add(t){const e=this.mass+t.mass,r=(this.rx*this.mass+t.rx*t.mass)/e,n=(this.ry*this.mass+t.ry*t.mass)/e,o=this.degree+t.degree;return new ky({rx:r,ry:n,mass:e,degree:o})}}class Sy{constructor(t){this.xmid=t.xmid,this.ymid=t.ymid,this.length=t.length,this.massCenter=t.massCenter||[0,0],this.mass=t.mass||1}getLength(){return this.length}contains(t,e){const r=this.length/2;return t<=this.xmid+r&&t>=this.xmid-r&&e<=this.ymid+r&&e>=this.ymid-r}NW(){const t=this.xmid-this.length/4,e=this.ymid+this.length/4,r=this.length/2;return new Sy({xmid:t,ymid:e,length:r})}NE(){const t=this.xmid+this.length/4,e=this.ymid+this.length/4,r=this.length/2;return new Sy({xmid:t,ymid:e,length:r})}SW(){const t=this.xmid-this.length/4,e=this.ymid-this.length/4,r=this.length/2;return new Sy({xmid:t,ymid:e,length:r})}SE(){const t=this.xmid+this.length/4,e=this.ymid-this.length/4,r=this.length/2;return new Sy({xmid:t,ymid:e,length:r})}}class zy{constructor(t){this.body=null,this.quad=null,this.NW=null,this.NE=null,this.SW=null,this.SE=null,this.theta=.5,null!=t&&(this.quad=t)}insert(t){null!=this.body?this._isExternal()?(this.quad&&(this.NW=new zy(this.quad.NW()),this.NE=new zy(this.quad.NE()),this.SW=new zy(this.quad.SW()),this.SE=new zy(this.quad.SE())),this._putBody(this.body),this._putBody(t),this.body=this.body.add(t)):(this.body=this.body.add(t),this._putBody(t)):this.body=t}_putBody(t){this.quad&&(t.in(this.quad.NW())&&this.NW?this.NW.insert(t):t.in(this.quad.NE())&&this.NE?this.NE.insert(t):t.in(this.quad.SW())&&this.SW?this.SW.insert(t):t.in(this.quad.SE())&&this.SE&&this.SE.insert(t))}_isExternal(){return null==this.NW&&null==this.NE&&null==this.SW&&null==this.SE}updateForce(t){if(null!=this.body&&t!==this.body)if(this._isExternal())t.addForce(this.body);else{(this.quad?this.quad.getLength():0)/this.body.distanceTo(t)<this.theta?t.addForce(this.body):(this.NW&&this.NW.updateForce(t),this.NE&&this.NE.updateForce(t),this.SW&&this.SW.updateForce(t),this.SE&&this.SE.updateForce(t))}}}let Ay=class extends Ey{constructor(){super(...arguments),this.sg=0,this.forces={},this.preForces={},this.bodies={},this.sizes={},this.maxIteration=0}data(t,e){return this.model=t,this.sizes=e,this}initialize(t){super.initialize(t),this.maxIteration=t.maxIteration,this.sg=0,this.initForces()}initForces(){const{model:t,options:e}=this,{kr:r,barnesHut:n}=e,o=t.nodes();this.forces={},this.preForces={},this.bodies={};for(let e=0;e<o.length;e+=1){const i=o[e];if(this.forces[i.id]=[0,0],this.preForces[i.id]=[0,0],n){const n={id:e,rx:i.x,ry:i.y,mass:1,g:r,degree:t.degree(i.id)};this.bodies[i.id]=new ky(n)}}}setFixedPosition(t,e){const r=this.model.node(t);if(!r)return;const n=["fx","fy","fz"];null!==e?e.forEach((t,e)=>{e<n.length&&("number"==typeof t||null===t)&&(r[n[e]]=t)}):n.forEach(t=>{delete r[t]})}isNodeFixed(t){return l(t.fx)&&l(t.fy)}syncFixedPositions(){this.model.forEachNode(t=>{this.isNodeFixed(t)&&(t.x=t.fx,t.y=t.fy)})}runOneStep(){const{model:t,options:e}=this,{preventOverlap:r,barnesHut:n}=e,o=this.maxIteration-this.iteration,i=t.nodes();for(let t=0;t<i.length;t+=1){const{id:e}=i[t];this.preForces[e]=[...this.forces[e]||[0,0]],this.forces[e]=[0,0]}return this.syncFixedPositions(),this.calculateAttractive(o),n&&!r?this.calculateOptRepulsiveGravity():this.calculateRepulsiveGravity(o,100),this.updatePositions()}calculateAttractive(t){const{model:e,options:r}=this,{preventOverlap:n,dissuadeHubs:o,mode:i,prune:s}=r,a=e.edges();for(let t=0;t<a.length;t+=1){const{source:r,target:u}=a[t],c=e.node(r),h=e.node(u),l=e.degree(r),d=e.degree(u);if(s&&(l<=1||d<=1))continue;const f=h.x-c.x,g=h.y-c.y;let p=Math.hypot(f,g);p=p<1e-4?1e-4:p;const v=f/p,m=g/p;let y=p;n&&(y=Math.max(0,p-this.sizes[r]-this.sizes[u]));let w=y,x=y;"linlog"===i&&(w=Math.log(1+y),x=w),o&&(w=y/l,x=y/d),this.forces[r][0]+=w*v,this.forces[r][1]+=w*m,this.forces[u][0]-=x*v,this.forces[u][1]-=x*m}}calculateOptRepulsiveGravity(){const{model:t,options:e}=this,{kg:r,center:n,prune:o,kr:i}=e,s=t.nodes(),a=s.length;let u=Number.POSITIVE_INFINITY,c=Number.NEGATIVE_INFINITY,h=Number.POSITIVE_INFINITY,l=Number.NEGATIVE_INFINITY;for(let e=0;e<a;e+=1){const r=s[e],{id:n,x:i,y:a}=r;if(o&&t.degree(n)<=1)continue;const d=this.bodies[n];d&&(d.setPos(i,a),i<u&&(u=i),i>c&&(c=i),a<h&&(h=a),a>l&&(l=a))}let d=Math.max(c-u,l-h);(!isFinite(d)||d<=0)&&(d=1);const f=new Sy({xmid:(c+u)/2,ymid:(l+h)/2,length:d,massCenter:n,mass:a}),g=new zy(f);for(let e=0;e<a;e+=1){const{id:r}=s[e];if(o&&t.degree(r)<=1)continue;const n=this.bodies[r];n&&n.in(f)&&g.insert(n)}for(let e=0;e<a;e+=1){const i=s[e],{id:a,x:u,y:c}=i,h=t.degree(a);if(o&&h<=1)continue;const l=this.bodies[a];if(!l)continue;l.resetForce(),g.updateForce(l),this.forces[a][0]-=l.fx,this.forces[a][1]-=l.fy;const d=u-n[0],f=c-n[1];let p=Math.hypot(d,f);p=p<1e-4?1e-4:p;const v=d/p,m=f/p,y=r*(h+1);this.forces[a][0]-=y*v,this.forces[a][1]-=y*m}}calculateRepulsiveGravity(t,e){const{model:r,options:n}=this,{preventOverlap:o,kr:i,kg:s,center:a,prune:u}=n,c=r.nodes(),h=c.length;for(let t=0;t<h;t+=1){const n=c[t],l=r.degree(n.id);for(let s=t+1;s<h;s+=1){const t=c[s],a=r.degree(t.id);if(u&&(l<=1||a<=1))continue;const h=t.x-n.x,d=t.y-n.y;let f=Math.hypot(h,d);f=f<1e-4?1e-4:f;const g=h/f,p=d/f;let v,m=f;if(o){const r=f-this.sizes[n.id]-this.sizes[t.id];r<0?v=e*(l+1)*(a+1):0===r?v=0:(m=r,v=i*(l+1)*(a+1)/m)}else v=i*(l+1)*(a+1)/m;this.forces[n.id][0]-=v*g,this.forces[n.id][1]-=v*p,this.forces[t.id][0]+=v*g,this.forces[t.id][1]+=v*p}const d=n.x-a[0],f=n.y-a[1];let g=Math.hypot(d,f);g=g<1e-4?1e-4:g;const p=d/g,v=f/g,m=s*(l+1);this.forces[n.id][0]-=m*p,this.forces[n.id][1]-=m*v}}updatePositions(){const{model:t,options:e}=this,{ks:r,tao:n,prune:o,ksmax:i,distanceThresholdMode:s="max"}=e,a=t.nodes(),u=a.length,c={},h={};let l=0,d=0;for(let e=0;e<u;e+=1){const{id:r}=a[e],n=t.degree(r);if(o&&n<=1)continue;const i=this.preForces[r]||[0,0],s=this.forces[r]||[0,0],u=s[0]-i[0],f=s[1]-i[1],g=Math.hypot(u,f),p=s[0]+i[0],v=s[1]+i[1],m=Math.hypot(p,v);c[r]=g,h[r]=m/2,l+=(n+1)*c[r],d+=(n+1)*h[r]}let f=this.sg;const g=this.sg;l<=0?f=g>0?g:1:(f=n*d/l,0!==g&&(f=f>1.5*g?1.5*g:f)),this.sg=f;let p=0,v=1/0,m=0,y=0;for(let e=0;e<u;e+=1){const n=a[e],s=n.id,u=t.degree(s);if(o&&u<=1)continue;if(this.isNodeFixed(n))continue;const h=c[s]||0;let l=r*f/(1+f*Math.sqrt(h)),d=Math.hypot(this.forces[s][0],this.forces[s][1]);d=d<1e-4?1e-4:d;const g=i/d;l>g&&(l=g);const w=l*this.forces[s][0],x=l*this.forces[s][1];n.x+=w,n.y+=x;const b=Math.hypot(w,x);b>0&&(y++,m+=b,b>p&&(p=b),b<v&&(v=b))}switch(s){case"min":return v;case"mean":return y>0?m/y:0;default:return p}}destroy(){this.stop(),this.forces={},this.preForces={},this.bodies={},this.sizes={},this.off()}};const Oy={nodeSize:10,nodeSpacing:0,width:300,height:300,kr:5,kg:1,mode:"normal",preventOverlap:!1,dissuadeHubs:!1,maxIteration:0,ks:.1,ksmax:10,tao:.1};class jy extends pt{constructor(){super(...arguments),this.id="force-atlas2",this.simulation=null}getDefaultOptions(){return Oy}layout(t){return r(this,void 0,void 0,function*(){const e=this.parseOptions(t),{width:r,height:n,prune:o,center:i}=e,s=this.model.nodeCount();if(!s||1===s)return E(this.model,i);U(this.model,r,n);const a=this.getSizes(e.nodeSize,e.nodeSpacing),u=this.setSimulation();u.data(this.model,a),u.initialize(e),u.restart();const c=()=>new Promise(t=>{u.on("end",t)});if(!o)return c();if(yield c(),o){const t=this.model.edges();for(let e=0;e<t.length;e+=1){const{source:r,target:n}=t[e],o=this.model.degree(r),i=this.model.degree(n),s=this.model.node(r),a=this.model.node(n);o<=1?(s.x=a.x,s.y=a.y):i<=1&&(a.x=s.x,a.y=s.y)}u.initialize(Object.assign(Object.assign({},e),{prune:!1,barnesHut:!1})),u.tick(100)}})}getSizes(t,e){const r={};return this.model.forEachNode(n=>{const o=V(t,e);r[n.id]=o(n._original)}),r}setSimulation(){const t=this.simulation||new Ay;return this.simulation||(this.simulation=t.on("tick",()=>{var t,e;return null===(e=(t=this.options).onTick)||void 0===e?void 0:e.call(t,this)})),this.simulation}parseOptions(t={}){const{barnesHut:e,prune:r,maxIteration:n,kr:o,kg:i,nodeSize:s,nodeSpacing:a}=t,u={},c=this.model.nodeCount();return void 0===e&&c>250&&(u.barnesHut=!0),void 0===r&&c>100&&(u.prune=!0),0!==n||r?0===n&&r&&(u.maxIteration=100,c<=200&&c>100?u.maxIteration=500:c>200&&(u.maxIteration=950)):(u.maxIteration=250,c<=200&&c>100?u.maxIteration=1e3:c>200&&(u.maxIteration=1200)),o||(u.kr=50,c>100&&c<=500?u.kr=20:c>500&&(u.kr=1)),i||(u.kg=20,c>100&&c<=500?u.kg=10:c>500&&(u.kg=1)),Object.assign(Object.assign(Object.assign(Object.assign({},t),u),L(t)),{nodeSize:q(s,Oy.nodeSize),nodeSpacing:D(a,Oy.nodeSpacing)})}stop(){var t;null===(t=this.simulation)||void 0===t||t.stop()}tick(t=1){var e;null===(e=this.simulation)||void 0===e||e.tick(t)}restart(){var t;null===(t=this.simulation)||void 0===t||t.restart()}setFixedPosition(t,e){var r;null===(r=this.simulation)||void 0===r||r.setFixedPosition(t,e)}destroy(){var t;super.destroy(),this.stop(),null===(t=this.simulation)||void 0===t||t.destroy(),this.simulation=null}}class Cy extends Ey{constructor(){super(...arguments),this.displacements=null,this.clusterMap=null}data(t){return this.model=t,this}initialize(t){super.initialize(t),this.recomputeConstants(),this.displacements=null,this.clusterMap=null,this.initDisplacements()}recomputeConstants(){const{model:t,options:e}=this,{width:r,height:n}=L(e),o=r*n;this.k2=o/(t.nodeCount()+1),this.k=Math.sqrt(this.k2),this.maxDisplace=Math.sqrt(o)/10}runOneStep(){return this.syncFixedPositions(),this.initDisplacements(),this.calculateRepulsive(),this.calculateAttractive(),this.applyClusterGravity(),this.applyGlobalGravity(),this.updatePositions()}setFixedPosition(t,e){const r=this.model.node(t);if(!r)return;const n=["fx","fy","fz"];null!==e?e.forEach((t,e)=>{e<n.length&&("number"==typeof t||null===t)&&(r[n[e]]=t)}):n.forEach(t=>{delete r[t]})}isNodeFixed(t){return!o(t.fx)&&!o(t.fy)}syncFixedPositions(){const{model:t,options:e}=this,r=3===e.dimensions;t.forEachNode(t=>{this.isNodeFixed(t)&&(t.x=t.fx,t.y=t.fy,r&&void 0!==t.fz&&(t.z=t.fz))})}initDisplacements(){this.displacements||(this.displacements=new Map,this.model.forEachNode(t=>{this.displacements.set(t.id,{x:0,y:0,z:0})})),this.displacements.forEach(t=>{t.x=0,t.y=0,t.z=0})}calculateRepulsive(){const{model:t,options:e}=this,r=3===e.dimensions,n=t.nodes();for(let t=0;t<n.length;t++){const e=n[t],o=this.displacements.get(e.id),i=this.isNodeFixed(e);for(let s=t+1;s<n.length;s++){const t=n[s],a=this.displacements.get(t.id),u=this.isNodeFixed(t);let c=e.x-t.x,h=e.y-t.y,l=r?e.z-t.z:0,d=c*c+h*h+l*l;0===d&&(d=1,c=.01,h=.01,l=.01);const f=this.k2/d,g=c*f,p=h*f,v=l*f;i||u?i&&!u?(a.x-=2*g,a.y-=2*p,r&&(a.z-=2*v)):!i&&u&&(o.x+=2*g,o.y+=2*p,r&&(o.z+=2*v)):(o.x+=g,o.y+=p,a.x-=g,a.y-=p,r&&(o.z+=v,a.z-=v))}}}calculateAttractive(){const{model:t,options:e}=this,r=3===e.dimensions;t.forEachEdge(e=>{const{source:n,target:o}=e;if(!n||!o||n===o)return;const i=t.node(n),s=t.node(o),a=this.displacements.get(n),u=this.displacements.get(o),c=this.isNodeFixed(i),h=this.isNodeFixed(s),l=s.x-i.x,d=s.y-i.y,f=r?s.z-i.z:0,g=Math.sqrt(l*l+d*d+f*f);if(0===g)return;const p=g/this.k,v=l*p,m=d*p,y=f*p;c||h?c&&!h?(u.x-=2*v,u.y-=2*m,r&&(u.z-=2*y)):!c&&h&&(a.x+=2*v,a.y+=2*m,r&&(a.z+=2*y)):(a.x+=v,a.y+=m,u.x-=v,u.y-=m,r&&(a.z+=y,u.z-=y))})}applyClusterGravity(){const{model:t,options:e}=this,{nodeClusterBy:r,clusterGravity:n,dimensions:o,clustering:i}=e;if(!i)return;if(this.clusterMap||(this.clusterMap=new Map,t.forEachNode(e=>{const n=r(t.originalNode(e.id));this.clusterMap.has(n)||this.clusterMap.set(n,{name:n,cx:0,cy:0,cz:0,count:0})})),0===this.clusterMap.size)return;const s=3===o;this.clusterMap.forEach(t=>{t.cx=0,t.cy=0,t.cz=0,t.count=0}),t.forEachNode(e=>{const n=r(t.originalNode(e.id)),o=this.clusterMap.get(n);o&&(o.cx+=e.x,o.cy+=e.y,s&&(o.cz+=e.z),o.count++)}),this.clusterMap.forEach(t=>{t.count>0&&(t.cx/=t.count,t.cy/=t.count,t.cz/=t.count)}),t.forEachNode(e=>{const{id:o}=e;if(this.isNodeFixed(e))return;const i=r(t.originalNode(o)),a=this.clusterMap.get(i);if(!a)return;const u=this.displacements.get(o),c=e.x-a.cx,h=e.y-a.cy,l=s?e.z-a.cz:0,d=Math.sqrt(c*c+h*h+l*l);if(0===d)return;const f=this.k*n;u.x-=f*c/d,u.y-=f*h/d,s&&(u.z-=f*l/d)})}applyGlobalGravity(){const{model:t,options:e}=this,{gravity:r,center:n,dimensions:o}=e,i=3===o,s=.01*this.k*r;t.forEachNode(t=>{const{id:e}=t;if(this.isNodeFixed(t))return;const r=this.displacements.get(e);r.x-=s*(t.x-n[0]),r.y-=s*(t.y-n[1]),i&&(r.z-=s*(t.z-(n[2]||0)))})}updatePositions(){const{model:t,options:e}=this,{speed:r,dimensions:n,distanceThresholdMode:o="max"}=e,i=3===n;let s=0,a=1/0,u=0,c=0;if(t.forEachNode(t=>{const{id:e}=t;if(this.isNodeFixed(t))return;const n=this.displacements.get(e),o=Math.sqrt(n.x*n.x+n.y*n.y+(i?n.z*n.z:0));if(0===o)return;const h=Math.min(this.maxDisplace*(r/800),o),l=h/o;t.x+=n.x*l,t.y+=n.y*l,i&&(t.z=t.z+n.z*l),s=Math.max(s,h),a=Math.min(a,h),u+=h,c++}),0===c)return 0;switch(o){case"min":return a===1/0?0:a;case"mean":return u/c;default:return s}}destroy(){var t,e;this.stop(),null===(t=this.displacements)||void 0===t||t.clear(),null===(e=this.clusterMap)||void 0===e||e.clear()}}const Iy={maxIteration:1e3,gravity:10,speed:5,clustering:!1,clusterGravity:10,width:300,height:300,nodeClusterBy:"data.cluster",dimensions:2};class Ry extends pt{constructor(){super(...arguments),this.id="fruchterman",this.simulation=null}getDefaultOptions(){return Iy}parseOptions(t){const{clustering:e,nodeClusterBy:r}=this.options,n=e&&!!r,o="string"==typeof r?t=>A(t,r):r;return Object.assign(t||(t={}),L(t),{clustering:n,nodeClusterBy:o}),t}layout(){return r(this,void 0,void 0,function*(){const t=this.parseOptions(this.options),{dimensions:e,center:r,width:n,height:o}=t,i=this.model.nodeCount();if(!i||1===i)return void E(this.model,r,e);U(this.model,n,o,e);const s=this.setSimulation();return s.data(this.model),s.initialize(t),s.restart(),new Promise(t=>{s.on("end",()=>t())})})}setSimulation(){const t=this.simulation||new Cy;return this.simulation||(this.simulation=t.on("tick",()=>{var t,e;return null===(e=(t=this.options).onTick)||void 0===e?void 0:e.call(t,this)})),this.simulation}restart(){var t;null===(t=this.simulation)||void 0===t||t.restart()}stop(){var t;null===(t=this.simulation)||void 0===t||t.stop()}tick(t=1){var e;null===(e=this.simulation)||void 0===e||e.tick(t)}setFixedPosition(t,e){var r;null===(r=this.simulation)||void 0===r||r.setFixedPosition(t,e)}destroy(){var t;super.destroy(),this.stop(),null===(t=this.simulation)||void 0===t||t.destroy(),this.simulation=null}}class Py extends gt{constructor(){super(...arguments),this.id="grid"}getDefaultOptions(){return{begin:[0,0],preventOverlap:!0,preventOverlapPadding:10,condense:!1,rows:void 0,cols:void 0,position:void 0,sortBy:"degree",nodeSize:30,width:300,height:300}}normalizeOptions(t={},e){var r;const{rows:n,cols:o}=t,{width:i,height:s,center:a}=L(t);let u=t.rows,c=t.cols;const h=e.nodeCount();if(null!=n&&null!=o)u=n,c=o;else if(null!=n&&null==o)u=n,c=Math.ceil(h/u);else if(null==n&&null!=o)c=o,u=Math.ceil(h/c);else{const t=Math.sqrt(h*s/i);u=Math.round(t),c=Math.round(i/s*t)}u=Math.max(u,1),c=Math.max(c,1);const l={rows:u,cols:c};if(l.cols*l.rows>h){const t=Ty(l),e=Fy(l);(t-1)*e>=h?Ty(l,t-1):(e-1)*t>=h&&Fy(l,e-1)}else for(;l.cols*l.rows<h;){const t=Ty(l),e=Fy(l);(e+1)*t>=h?Fy(l,e+1):Ty(l,t+1)}const d=t.preventOverlap||void 0!==t.nodeSpacing,f=D(t.nodeSpacing,10),g=q(t.nodeSize,30);return Object.assign(Object.assign({},t),{begin:t.begin||[0,0],sortBy:t.sortBy||"degree",preventOverlapPadding:null!==(r=t.preventOverlapPadding)&&void 0!==r?r:0,preventOverlap:d,nodeSpacing:f,nodeSize:g,rcs:l,center:a,width:i,height:s})}layout(){return r(this,void 0,void 0,function*(){const{begin:t,rcs:e,sortBy:r,width:n,height:o,condense:i,preventOverlapPadding:s,preventOverlap:a,nodeSpacing:u,nodeSize:c,position:h}=this.normalizeOptions(this.options,this.model),l=this.model.nodeCount();if(!l||1===l)return void E(this.model,t);"degree"===r?C(this.model):"id"===r?I(this.model):R(this.model,r);let d=i?0:n/e.cols,f=i?0:o/e.rows;a&&this.model.forEachNode(t=>{const e=t._original,[r,n]=F(c(e)||30),o=void 0!==u?u(e):s,i=r+o,a=n+o;d=Math.max(d,i),f=Math.max(f,a)});const g={},p={row:0,col:0},v={};this.model.forEachNode(r=>{const n=r._original;let o;if(h&&(o=h(n)),o&&(void 0!==o.row||void 0!==o.col)){const t={row:o.row,col:o.col};if(void 0===t.col)for(t.col=0;Ly(g,t);)t.col++;else if(void 0===t.row)for(t.row=0;Ly(g,t);)t.row++;v[r.id]=t,Dy(g,t)}Vy(r,t,d,f,v,e,p,g)})})}}const Ty=(t,e)=>{let r;const n=t.rows||5,o=t.cols||5;if(null==e)r=Math.min(n,o);else{Math.min(n,o)===t.rows?t.rows=e:t.cols=e}return r},Fy=(t,e)=>{let r;const n=t.rows||5,o=t.cols||5;if(null==e)r=Math.max(n,o);else{Math.max(n,o)===t.rows?t.rows=e:t.cols=e}return r},Ly=(t,e)=>t[`c-${e.row}-${e.col}`]||!1,Dy=(t,e)=>t[`c-${e.row}-${e.col}`]=!0,qy=(t,e)=>{const r=t.cols||5;e.col++,e.col>=r&&(e.col=0,e.row++)},Vy=(t,e,r,n,o,i,s,a)=>{let u,c;const h=o[t.id];if(h)u=h.col*r+r/2+e[0],c=h.row*n+n/2+e[1];else{for(;Ly(a,s);)qy(i,s);u=s.col*r+r/2+e[0],c=s.row*n+n/2+e[1],Dy(a,s),qy(i,s)}t.x=u,t.y=c};var By={};const $y=Object.prototype.toString;function Gy(t){const e=$y.call(t);return e.endsWith("Array]")&&!e.includes("Big")}var Uy=ns(Object.freeze({__proto__:null,isAnyArray:Gy}));var Wy,Yy=Object.freeze({__proto__:null,default:function(t){var e,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!Gy(t))throw new TypeError("input must be an array");if(0===t.length)throw new TypeError("input must not be empty");if(void 0!==r.output){if(!Gy(r.output))throw new TypeError("output option must be an array if specified");e=r.output}else e=new Array(t.length);var n=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!Gy(t))throw new TypeError("input must be an array");if(0===t.length)throw new TypeError("input must not be empty");var r=e.fromIndex,n=void 0===r?0:r,o=e.toIndex,i=void 0===o?t.length:o;if(n<0||n>=t.length||!Number.isInteger(n))throw new Error("fromIndex must be a positive integer smaller than length");if(i<=n||i>t.length||!Number.isInteger(i))throw new Error("toIndex must be an integer greater than fromIndex and at most equal to length");for(var s=t[n],a=n+1;a<i;a++)t[a]<s&&(s=t[a]);return s}(t),o=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!Gy(t))throw new TypeError("input must be an array");if(0===t.length)throw new TypeError("input must not be empty");var r=e.fromIndex,n=void 0===r?0:r,o=e.toIndex,i=void 0===o?t.length:o;if(n<0||n>=t.length||!Number.isInteger(n))throw new Error("fromIndex must be a positive integer smaller than length");if(i<=n||i>t.length||!Number.isInteger(i))throw new Error("toIndex must be an integer greater than fromIndex and at most equal to length");for(var s=t[n],a=n+1;a<i;a++)t[a]>s&&(s=t[a]);return s}(t);if(n===o)throw new RangeError("minimum and maximum input values are equal. Cannot rescale a constant array");var i=r.min,s=void 0===i?r.autoMinMax?n:0:i,a=r.max,u=void 0===a?r.autoMinMax?o:1:a;if(s>=u)throw new RangeError("min option must be smaller than max option");for(var c=(u-s)/(o-n),h=0;h<t.length;h++)e[h]=(t[h]-n)*c+s;return e}}),Hy=ns(Yy);function Xy(){if(Wy)return By;Wy=1,Object.defineProperty(By,"__esModule",{value:!0});var t=Uy,e=Hy;const r=" ".repeat(2),n=" ".repeat(4);function o(t,e={}){const{maxRows:o=15,maxColumns:s=10,maxNumSize:a=8,padMinus:u="auto"}=e;return`${t.constructor.name} {\n${r}[\n${n}${function(t,e,r,o,s){const{rows:a,columns:u}=t,c=Math.min(a,e),h=Math.min(u,r),l=[];if("auto"===s){s=!1;t:for(let e=0;e<c;e++)for(let r=0;r<h;r++)if(t.get(e,r)<0){s=!0;break t}}for(let e=0;e<c;e++){let r=[];for(let n=0;n<h;n++)r.push(i(t.get(e,n),o,s));l.push(`${r.join(" ")}`)}h!==u&&(l[l.length-1]+=` ... ${u-r} more columns`);c!==a&&l.push(`... ${a-e} more rows`);return l.join(`\n${n}`)}(t,o,s,a,u)}\n${r}]\n${r}rows: ${t.rows}\n${r}columns: ${t.columns}\n}`}function i(t,e,r){return(t>=0&&r?` ${s(t,e-1)}`:s(t,e)).padEnd(e)}function s(t,e){let r=t.toString();if(r.length<=e)return r;let n=t.toFixed(e);if(n.length>e&&(n=t.toFixed(Math.max(0,e-(n.length-e)))),n.length<=e&&!n.startsWith("0.000")&&!n.startsWith("-0.000"))return n;let o=t.toExponential(e);return o.length>e&&(o=t.toExponential(Math.max(0,e-(o.length-e)))),o.slice(0)}function a(t,e,r){let n=r?t.rows:t.rows-1;if(e<0||e>n)throw new RangeError("Row index out of range")}function u(t,e,r){let n=r?t.columns:t.columns-1;if(e<0||e>n)throw new RangeError("Column index out of range")}function c(t,e){if(e.to1DArray&&(e=e.to1DArray()),e.length!==t.columns)throw new RangeError("vector size must be the same as the number of columns");return e}function h(t,e){if(e.to1DArray&&(e=e.to1DArray()),e.length!==t.rows)throw new RangeError("vector size must be the same as the number of rows");return e}function l(e,r){if(!t.isAnyArray(r))throw new TypeError("row indices must be an array");for(let t=0;t<r.length;t++)if(r[t]<0||r[t]>=e.rows)throw new RangeError("row indices are out of range")}function d(e,r){if(!t.isAnyArray(r))throw new TypeError("column indices must be an array");for(let t=0;t<r.length;t++)if(r[t]<0||r[t]>=e.columns)throw new RangeError("column indices are out of range")}function f(t,e,r,n,o){if(5!==arguments.length)throw new RangeError("expected 4 arguments");if(p("startRow",e),p("endRow",r),p("startColumn",n),p("endColumn",o),e>r||n>o||e<0||e>=t.rows||r<0||r>=t.rows||n<0||n>=t.columns||o<0||o>=t.columns)throw new RangeError("Submatrix indices are out of range")}function g(t,e=0){let r=[];for(let n=0;n<t;n++)r.push(e);return r}function p(t,e){if("number"!=typeof e)throw new TypeError(`${t} must be a number`)}function v(t){if(t.isEmpty())throw new Error("Empty matrix has no elements to index")}class m{static from1DArray(t,e,r){if(t*e!==r.length)throw new RangeError("data length does not match given dimensions");let n=new x(t,e);for(let o=0;o<t;o++)for(let t=0;t<e;t++)n.set(o,t,r[o*e+t]);return n}static rowVector(t){let e=new x(1,t.length);for(let r=0;r<t.length;r++)e.set(0,r,t[r]);return e}static columnVector(t){let e=new x(t.length,1);for(let r=0;r<t.length;r++)e.set(r,0,t[r]);return e}static zeros(t,e){return new x(t,e)}static ones(t,e){return new x(t,e).fill(1)}static rand(t,e,r={}){if("object"!=typeof r)throw new TypeError("options must be an object");const{random:n=Math.random}=r;let o=new x(t,e);for(let r=0;r<t;r++)for(let t=0;t<e;t++)o.set(r,t,n());return o}static randInt(t,e,r={}){if("object"!=typeof r)throw new TypeError("options must be an object");const{min:n=0,max:o=1e3,random:i=Math.random}=r;if(!Number.isInteger(n))throw new TypeError("min must be an integer");if(!Number.isInteger(o))throw new TypeError("max must be an integer");if(n>=o)throw new RangeError("min must be smaller than max");let s=o-n,a=new x(t,e);for(let r=0;r<t;r++)for(let t=0;t<e;t++){let e=n+Math.round(i()*s);a.set(r,t,e)}return a}static eye(t,e,r){void 0===e&&(e=t),void 0===r&&(r=1);let n=Math.min(t,e),o=this.zeros(t,e);for(let t=0;t<n;t++)o.set(t,t,r);return o}static diag(t,e,r){let n=t.length;void 0===e&&(e=n),void 0===r&&(r=e);let o=Math.min(n,e,r),i=this.zeros(e,r);for(let e=0;e<o;e++)i.set(e,e,t[e]);return i}static min(t,e){t=this.checkMatrix(t),e=this.checkMatrix(e);let r=t.rows,n=t.columns,o=new x(r,n);for(let i=0;i<r;i++)for(let r=0;r<n;r++)o.set(i,r,Math.min(t.get(i,r),e.get(i,r)));return o}static max(t,e){t=this.checkMatrix(t),e=this.checkMatrix(e);let r=t.rows,n=t.columns,o=new this(r,n);for(let i=0;i<r;i++)for(let r=0;r<n;r++)o.set(i,r,Math.max(t.get(i,r),e.get(i,r)));return o}static checkMatrix(t){return m.isMatrix(t)?t:new x(t)}static isMatrix(t){return null!=t&&"Matrix"===t.klass}get size(){return this.rows*this.columns}apply(t){if("function"!=typeof t)throw new TypeError("callback must be a function");for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)t.call(this,e,r);return this}to1DArray(){let t=[];for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)t.push(this.get(e,r));return t}to2DArray(){let t=[];for(let e=0;e<this.rows;e++){t.push([]);for(let r=0;r<this.columns;r++)t[e].push(this.get(e,r))}return t}toJSON(){return this.to2DArray()}isRowVector(){return 1===this.rows}isColumnVector(){return 1===this.columns}isVector(){return 1===this.rows||1===this.columns}isSquare(){return this.rows===this.columns}isEmpty(){return 0===this.rows||0===this.columns}isSymmetric(){if(this.isSquare()){for(let t=0;t<this.rows;t++)for(let e=0;e<=t;e++)if(this.get(t,e)!==this.get(e,t))return!1;return!0}return!1}isDistance(){if(!this.isSymmetric())return!1;for(let t=0;t<this.rows;t++)if(0!==this.get(t,t))return!1;return!0}isEchelonForm(){let t=0,e=0,r=-1,n=!0,o=!1;for(;t<this.rows&&n;){for(e=0,o=!1;e<this.columns&&!1===o;)0===this.get(t,e)?e++:1===this.get(t,e)&&e>r?(o=!0,r=e):(n=!1,o=!0);t++}return n}isReducedEchelonForm(){let t=0,e=0,r=-1,n=!0,o=!1;for(;t<this.rows&&n;){for(e=0,o=!1;e<this.columns&&!1===o;)0===this.get(t,e)?e++:1===this.get(t,e)&&e>r?(o=!0,r=e):(n=!1,o=!0);for(let r=e+1;r<this.rows;r++)0!==this.get(t,r)&&(n=!1);t++}return n}echelonForm(){let t=this.clone(),e=0,r=0;for(;e<t.rows&&r<t.columns;){let n=e;for(let o=e;o<t.rows;o++)t.get(o,r)>t.get(n,r)&&(n=o);if(0===t.get(n,r))r++;else{t.swapRows(e,n);let o=t.get(e,r);for(let n=r;n<t.columns;n++)t.set(e,n,t.get(e,n)/o);for(let n=e+1;n<t.rows;n++){let o=t.get(n,r)/t.get(e,r);t.set(n,r,0);for(let i=r+1;i<t.columns;i++)t.set(n,i,t.get(n,i)-t.get(e,i)*o)}e++,r++}}return t}reducedEchelonForm(){let t=this.echelonForm(),e=t.columns,r=t.rows,n=r-1;for(;n>=0;)if(0===t.maxRow(n))n--;else{let o=0,i=!1;for(;o<r&&!1===i;)1===t.get(n,o)?i=!0:o++;for(let r=0;r<n;r++){let i=t.get(r,o);for(let s=o;s<e;s++){let e=t.get(r,s)-i*t.get(n,s);t.set(r,s,e)}}n--}return t}set(){throw new Error("set method is unimplemented")}get(){throw new Error("get method is unimplemented")}repeat(t={}){if("object"!=typeof t)throw new TypeError("options must be an object");const{rows:e=1,columns:r=1}=t;if(!Number.isInteger(e)||e<=0)throw new TypeError("rows must be a positive integer");if(!Number.isInteger(r)||r<=0)throw new TypeError("columns must be a positive integer");let n=new x(this.rows*e,this.columns*r);for(let t=0;t<e;t++)for(let e=0;e<r;e++)n.setSubMatrix(this,this.rows*t,this.columns*e);return n}fill(t){for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.set(e,r,t);return this}neg(){return this.mulS(-1)}getRow(t){a(this,t);let e=[];for(let r=0;r<this.columns;r++)e.push(this.get(t,r));return e}getRowVector(t){return x.rowVector(this.getRow(t))}setRow(t,e){a(this,t),e=c(this,e);for(let r=0;r<this.columns;r++)this.set(t,r,e[r]);return this}swapRows(t,e){a(this,t),a(this,e);for(let r=0;r<this.columns;r++){let n=this.get(t,r);this.set(t,r,this.get(e,r)),this.set(e,r,n)}return this}getColumn(t){u(this,t);let e=[];for(let r=0;r<this.rows;r++)e.push(this.get(r,t));return e}getColumnVector(t){return x.columnVector(this.getColumn(t))}setColumn(t,e){u(this,t),e=h(this,e);for(let r=0;r<this.rows;r++)this.set(r,t,e[r]);return this}swapColumns(t,e){u(this,t),u(this,e);for(let r=0;r<this.rows;r++){let n=this.get(r,t);this.set(r,t,this.get(r,e)),this.set(r,e,n)}return this}addRowVector(t){t=c(this,t);for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.set(e,r,this.get(e,r)+t[r]);return this}subRowVector(t){t=c(this,t);for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.set(e,r,this.get(e,r)-t[r]);return this}mulRowVector(t){t=c(this,t);for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.set(e,r,this.get(e,r)*t[r]);return this}divRowVector(t){t=c(this,t);for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.set(e,r,this.get(e,r)/t[r]);return this}addColumnVector(t){t=h(this,t);for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.set(e,r,this.get(e,r)+t[e]);return this}subColumnVector(t){t=h(this,t);for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.set(e,r,this.get(e,r)-t[e]);return this}mulColumnVector(t){t=h(this,t);for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.set(e,r,this.get(e,r)*t[e]);return this}divColumnVector(t){t=h(this,t);for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.set(e,r,this.get(e,r)/t[e]);return this}mulRow(t,e){a(this,t);for(let r=0;r<this.columns;r++)this.set(t,r,this.get(t,r)*e);return this}mulColumn(t,e){u(this,t);for(let r=0;r<this.rows;r++)this.set(r,t,this.get(r,t)*e);return this}max(t){if(this.isEmpty())return NaN;switch(t){case"row":{const t=new Array(this.rows).fill(Number.NEGATIVE_INFINITY);for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.get(e,r)>t[e]&&(t[e]=this.get(e,r));return t}case"column":{const t=new Array(this.columns).fill(Number.NEGATIVE_INFINITY);for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.get(e,r)>t[r]&&(t[r]=this.get(e,r));return t}case void 0:{let t=this.get(0,0);for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.get(e,r)>t&&(t=this.get(e,r));return t}default:throw new Error(`invalid option: ${t}`)}}maxIndex(){v(this);let t=this.get(0,0),e=[0,0];for(let r=0;r<this.rows;r++)for(let n=0;n<this.columns;n++)this.get(r,n)>t&&(t=this.get(r,n),e[0]=r,e[1]=n);return e}min(t){if(this.isEmpty())return NaN;switch(t){case"row":{const t=new Array(this.rows).fill(Number.POSITIVE_INFINITY);for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.get(e,r)<t[e]&&(t[e]=this.get(e,r));return t}case"column":{const t=new Array(this.columns).fill(Number.POSITIVE_INFINITY);for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.get(e,r)<t[r]&&(t[r]=this.get(e,r));return t}case void 0:{let t=this.get(0,0);for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.get(e,r)<t&&(t=this.get(e,r));return t}default:throw new Error(`invalid option: ${t}`)}}minIndex(){v(this);let t=this.get(0,0),e=[0,0];for(let r=0;r<this.rows;r++)for(let n=0;n<this.columns;n++)this.get(r,n)<t&&(t=this.get(r,n),e[0]=r,e[1]=n);return e}maxRow(t){if(a(this,t),this.isEmpty())return NaN;let e=this.get(t,0);for(let r=1;r<this.columns;r++)this.get(t,r)>e&&(e=this.get(t,r));return e}maxRowIndex(t){a(this,t),v(this);let e=this.get(t,0),r=[t,0];for(let n=1;n<this.columns;n++)this.get(t,n)>e&&(e=this.get(t,n),r[1]=n);return r}minRow(t){if(a(this,t),this.isEmpty())return NaN;let e=this.get(t,0);for(let r=1;r<this.columns;r++)this.get(t,r)<e&&(e=this.get(t,r));return e}minRowIndex(t){a(this,t),v(this);let e=this.get(t,0),r=[t,0];for(let n=1;n<this.columns;n++)this.get(t,n)<e&&(e=this.get(t,n),r[1]=n);return r}maxColumn(t){if(u(this,t),this.isEmpty())return NaN;let e=this.get(0,t);for(let r=1;r<this.rows;r++)this.get(r,t)>e&&(e=this.get(r,t));return e}maxColumnIndex(t){u(this,t),v(this);let e=this.get(0,t),r=[0,t];for(let n=1;n<this.rows;n++)this.get(n,t)>e&&(e=this.get(n,t),r[0]=n);return r}minColumn(t){if(u(this,t),this.isEmpty())return NaN;let e=this.get(0,t);for(let r=1;r<this.rows;r++)this.get(r,t)<e&&(e=this.get(r,t));return e}minColumnIndex(t){u(this,t),v(this);let e=this.get(0,t),r=[0,t];for(let n=1;n<this.rows;n++)this.get(n,t)<e&&(e=this.get(n,t),r[0]=n);return r}diag(){let t=Math.min(this.rows,this.columns),e=[];for(let r=0;r<t;r++)e.push(this.get(r,r));return e}norm(t="frobenius"){switch(t){case"max":return this.max();case"frobenius":return Math.sqrt(this.dot(this));default:throw new RangeError(`unknown norm type: ${t}`)}}cumulativeSum(){let t=0;for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)t+=this.get(e,r),this.set(e,r,t);return this}dot(t){m.isMatrix(t)&&(t=t.to1DArray());let e=this.to1DArray();if(e.length!==t.length)throw new RangeError("vectors do not have the same size");let r=0;for(let n=0;n<e.length;n++)r+=e[n]*t[n];return r}mmul(t){t=x.checkMatrix(t);let e=this.rows,r=this.columns,n=t.columns,o=new x(e,n),i=new Float64Array(r);for(let s=0;s<n;s++){for(let e=0;e<r;e++)i[e]=t.get(e,s);for(let t=0;t<e;t++){let e=0;for(let n=0;n<r;n++)e+=this.get(t,n)*i[n];o.set(t,s,e)}}return o}mpow(t){if(!this.isSquare())throw new RangeError("Matrix must be square");if(!Number.isInteger(t)||t<0)throw new RangeError("Exponent must be a non-negative integer");let e=x.eye(this.rows),r=this;for(let n=t;n>=1;n/=2)1&n&&(e=e.mmul(r)),r=r.mmul(r);return e}strassen2x2(t){t=x.checkMatrix(t);let e=new x(2,2);const r=this.get(0,0),n=t.get(0,0),o=this.get(0,1),i=t.get(0,1),s=this.get(1,0),a=t.get(1,0),u=this.get(1,1),c=t.get(1,1),h=(r+u)*(n+c),l=(s+u)*n,d=r*(i-c),f=u*(a-n),g=(r+o)*c,p=h+f-g+(o-u)*(a+c),v=d+g,m=l+f,y=h-l+d+(s-r)*(n+i);return e.set(0,0,p),e.set(0,1,v),e.set(1,0,m),e.set(1,1,y),e}strassen3x3(t){t=x.checkMatrix(t);let e=new x(3,3);const r=this.get(0,0),n=this.get(0,1),o=this.get(0,2),i=this.get(1,0),s=this.get(1,1),a=this.get(1,2),u=this.get(2,0),c=this.get(2,1),h=this.get(2,2),l=t.get(0,0),d=t.get(0,1),f=t.get(0,2),g=t.get(1,0),p=t.get(1,1),v=t.get(1,2),m=t.get(2,0),y=t.get(2,1),w=t.get(2,2),b=(r-i)*(-d+p),E=(-r+i+s)*(l-d+p),M=(i+s)*(-l+d),N=r*l,_=(-r+u+c)*(l-f+v),k=(-r+u)*(f-v),S=(u+c)*(-l+f),z=(-o+c+h)*(p+m-y),A=(o-h)*(p-y),O=o*m,j=(c+h)*(-m+y),C=(-o+s+a)*(v+m-w),I=(o-a)*(v-w),R=(s+a)*(-m+w),P=N+O+n*g,T=(r+n+o-i-s-c-h)*p+E+M+N+z+O+j,F=N+_+S+(r+n+o-s-a-u-c)*v+O+C+R,L=b+s*(-l+d+g-p-v-m+w)+E+N+O+C+I,D=b+E+M+N+a*y,q=O+C+I+R+i*f,V=N+_+k+c*(-l+f+g-p-v-m+y)+z+A+O,B=z+A+O+j+u*d,$=N+_+k+S+h*w;return e.set(0,0,P),e.set(0,1,T),e.set(0,2,F),e.set(1,0,L),e.set(1,1,D),e.set(1,2,q),e.set(2,0,V),e.set(2,1,B),e.set(2,2,$),e}mmulStrassen(t){t=x.checkMatrix(t);let e=this.clone(),r=e.rows,n=e.columns,o=t.rows,i=t.columns;function s(t,e,r){let n=t.rows,o=t.columns;if(n===e&&o===r)return t;{let n=m.zeros(e,r);return n=n.setSubMatrix(t,0,0),n}}n!==o&&console.warn(`Multiplying ${r} x ${n} and ${o} x ${i} matrix: dimensions do not match.`);let a=Math.max(r,o),u=Math.max(n,i);return e=s(e,a,u),function t(e,r,n,o){if(n<=512||o<=512)return e.mmul(r);n%2==1&&o%2==1?(e=s(e,n+1,o+1),r=s(r,n+1,o+1)):n%2==1?(e=s(e,n+1,o),r=s(r,n+1,o)):o%2==1&&(e=s(e,n,o+1),r=s(r,n,o+1));let i=parseInt(e.rows/2,10),a=parseInt(e.columns/2,10),u=e.subMatrix(0,i-1,0,a-1),c=r.subMatrix(0,i-1,0,a-1),h=e.subMatrix(0,i-1,a,e.columns-1),l=r.subMatrix(0,i-1,a,r.columns-1),d=e.subMatrix(i,e.rows-1,0,a-1),f=r.subMatrix(i,r.rows-1,0,a-1),g=e.subMatrix(i,e.rows-1,a,e.columns-1),p=r.subMatrix(i,r.rows-1,a,r.columns-1),v=t(m.add(u,g),m.add(c,p),i,a),y=t(m.add(d,g),c,i,a),w=t(u,m.sub(l,p),i,a),x=t(g,m.sub(f,c),i,a),b=t(m.add(u,h),p,i,a),E=t(m.sub(d,u),m.add(c,l),i,a),M=t(m.sub(h,g),m.add(f,p),i,a),N=m.add(v,x);N.sub(b),N.add(M);let _=m.add(w,b),k=m.add(y,x),S=m.sub(v,y);S.add(w),S.add(E);let z=m.zeros(2*N.rows,2*N.columns);return z=z.setSubMatrix(N,0,0),z=z.setSubMatrix(_,N.rows,0),z=z.setSubMatrix(k,0,N.columns),z=z.setSubMatrix(S,N.rows,N.columns),z.subMatrix(0,n-1,0,o-1)}(e,t=s(t,a,u),a,u)}scaleRows(t={}){if("object"!=typeof t)throw new TypeError("options must be an object");const{min:r=0,max:n=1}=t;if(!Number.isFinite(r))throw new TypeError("min must be a number");if(!Number.isFinite(n))throw new TypeError("max must be a number");if(r>=n)throw new RangeError("min must be smaller than max");let o=new x(this.rows,this.columns);for(let t=0;t<this.rows;t++){const i=this.getRow(t);i.length>0&&e(i,{min:r,max:n,output:i}),o.setRow(t,i)}return o}scaleColumns(t={}){if("object"!=typeof t)throw new TypeError("options must be an object");const{min:r=0,max:n=1}=t;if(!Number.isFinite(r))throw new TypeError("min must be a number");if(!Number.isFinite(n))throw new TypeError("max must be a number");if(r>=n)throw new RangeError("min must be smaller than max");let o=new x(this.rows,this.columns);for(let t=0;t<this.columns;t++){const i=this.getColumn(t);i.length&&e(i,{min:r,max:n,output:i}),o.setColumn(t,i)}return o}flipRows(){const t=Math.ceil(this.columns/2);for(let e=0;e<this.rows;e++)for(let r=0;r<t;r++){let t=this.get(e,r),n=this.get(e,this.columns-1-r);this.set(e,r,n),this.set(e,this.columns-1-r,t)}return this}flipColumns(){const t=Math.ceil(this.rows/2);for(let e=0;e<this.columns;e++)for(let r=0;r<t;r++){let t=this.get(r,e),n=this.get(this.rows-1-r,e);this.set(r,e,n),this.set(this.rows-1-r,e,t)}return this}kroneckerProduct(t){t=x.checkMatrix(t);let e=this.rows,r=this.columns,n=t.rows,o=t.columns,i=new x(e*n,r*o);for(let s=0;s<e;s++)for(let e=0;e<r;e++)for(let r=0;r<n;r++)for(let a=0;a<o;a++)i.set(n*s+r,o*e+a,this.get(s,e)*t.get(r,a));return i}kroneckerSum(t){if(t=x.checkMatrix(t),!this.isSquare()||!t.isSquare())throw new Error("Kronecker Sum needs two Square Matrices");let e=this.rows,r=t.rows,n=this.kroneckerProduct(x.eye(r,r)),o=x.eye(e,e).kroneckerProduct(t);return n.add(o)}transpose(){let t=new x(this.columns,this.rows);for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)t.set(r,e,this.get(e,r));return t}sortRows(t=y){for(let e=0;e<this.rows;e++)this.setRow(e,this.getRow(e).sort(t));return this}sortColumns(t=y){for(let e=0;e<this.columns;e++)this.setColumn(e,this.getColumn(e).sort(t));return this}subMatrix(t,e,r,n){f(this,t,e,r,n);let o=new x(e-t+1,n-r+1);for(let i=t;i<=e;i++)for(let e=r;e<=n;e++)o.set(i-t,e-r,this.get(i,e));return o}subMatrixRow(t,e,r){if(void 0===e&&(e=0),void 0===r&&(r=this.columns-1),e>r||e<0||e>=this.columns||r<0||r>=this.columns)throw new RangeError("Argument out of range");let n=new x(t.length,r-e+1);for(let o=0;o<t.length;o++)for(let i=e;i<=r;i++){if(t[o]<0||t[o]>=this.rows)throw new RangeError(`Row index out of range: ${t[o]}`);n.set(o,i-e,this.get(t[o],i))}return n}subMatrixColumn(t,e,r){if(void 0===e&&(e=0),void 0===r&&(r=this.rows-1),e>r||e<0||e>=this.rows||r<0||r>=this.rows)throw new RangeError("Argument out of range");let n=new x(r-e+1,t.length);for(let o=0;o<t.length;o++)for(let i=e;i<=r;i++){if(t[o]<0||t[o]>=this.columns)throw new RangeError(`Column index out of range: ${t[o]}`);n.set(i-e,o,this.get(i,t[o]))}return n}setSubMatrix(t,e,r){if((t=x.checkMatrix(t)).isEmpty())return this;f(this,e,e+t.rows-1,r,r+t.columns-1);for(let n=0;n<t.rows;n++)for(let o=0;o<t.columns;o++)this.set(e+n,r+o,t.get(n,o));return this}selection(t,e){l(this,t),d(this,e);let r=new x(t.length,e.length);for(let n=0;n<t.length;n++){let o=t[n];for(let t=0;t<e.length;t++){let i=e[t];r.set(n,t,this.get(o,i))}}return r}trace(){let t=Math.min(this.rows,this.columns),e=0;for(let r=0;r<t;r++)e+=this.get(r,r);return e}clone(){return this.constructor.copy(this,new x(this.rows,this.columns))}static copy(t,e){for(const[r,n,o]of t.entries())e.set(r,n,o);return e}sum(t){switch(t){case"row":return function(t){let e=g(t.rows);for(let r=0;r<t.rows;++r)for(let n=0;n<t.columns;++n)e[r]+=t.get(r,n);return e}(this);case"column":return function(t){let e=g(t.columns);for(let r=0;r<t.rows;++r)for(let n=0;n<t.columns;++n)e[n]+=t.get(r,n);return e}(this);case void 0:return function(t){let e=0;for(let r=0;r<t.rows;r++)for(let n=0;n<t.columns;n++)e+=t.get(r,n);return e}(this);default:throw new Error(`invalid option: ${t}`)}}product(t){switch(t){case"row":return function(t){let e=g(t.rows,1);for(let r=0;r<t.rows;++r)for(let n=0;n<t.columns;++n)e[r]*=t.get(r,n);return e}(this);case"column":return function(t){let e=g(t.columns,1);for(let r=0;r<t.rows;++r)for(let n=0;n<t.columns;++n)e[n]*=t.get(r,n);return e}(this);case void 0:return function(t){let e=1;for(let r=0;r<t.rows;r++)for(let n=0;n<t.columns;n++)e*=t.get(r,n);return e}(this);default:throw new Error(`invalid option: ${t}`)}}mean(t){const e=this.sum(t);switch(t){case"row":for(let t=0;t<this.rows;t++)e[t]/=this.columns;return e;case"column":for(let t=0;t<this.columns;t++)e[t]/=this.rows;return e;case void 0:return e/this.size;default:throw new Error(`invalid option: ${t}`)}}variance(e,r={}){if("object"==typeof e&&(r=e,e=void 0),"object"!=typeof r)throw new TypeError("options must be an object");const{unbiased:n=!0,mean:o=this.mean(e)}=r;if("boolean"!=typeof n)throw new TypeError("unbiased must be a boolean");switch(e){case"row":if(!t.isAnyArray(o))throw new TypeError("mean must be an array");return function(t,e,r){const n=t.rows,o=t.columns,i=[];for(let s=0;s<n;s++){let n=0,a=0,u=0;for(let e=0;e<o;e++)u=t.get(s,e)-r[s],n+=u,a+=u*u;e?i.push((a-n*n/o)/(o-1)):i.push((a-n*n/o)/o)}return i}(this,n,o);case"column":if(!t.isAnyArray(o))throw new TypeError("mean must be an array");return function(t,e,r){const n=t.rows,o=t.columns,i=[];for(let s=0;s<o;s++){let o=0,a=0,u=0;for(let e=0;e<n;e++)u=t.get(e,s)-r[s],o+=u,a+=u*u;e?i.push((a-o*o/n)/(n-1)):i.push((a-o*o/n)/n)}return i}(this,n,o);case void 0:if("number"!=typeof o)throw new TypeError("mean must be a number");return function(t,e,r){const n=t.rows,o=t.columns,i=n*o;let s=0,a=0,u=0;for(let e=0;e<n;e++)for(let n=0;n<o;n++)u=t.get(e,n)-r,s+=u,a+=u*u;return e?(a-s*s/i)/(i-1):(a-s*s/i)/i}(this,n,o);default:throw new Error(`invalid option: ${e}`)}}standardDeviation(t,e){"object"==typeof t&&(e=t,t=void 0);const r=this.variance(t,e);if(void 0===t)return Math.sqrt(r);for(let t=0;t<r.length;t++)r[t]=Math.sqrt(r[t]);return r}center(e,r={}){if("object"==typeof e&&(r=e,e=void 0),"object"!=typeof r)throw new TypeError("options must be an object");const{center:n=this.mean(e)}=r;switch(e){case"row":if(!t.isAnyArray(n))throw new TypeError("center must be an array");return function(t,e){for(let r=0;r<t.rows;r++)for(let n=0;n<t.columns;n++)t.set(r,n,t.get(r,n)-e[r])}(this,n),this;case"column":if(!t.isAnyArray(n))throw new TypeError("center must be an array");return function(t,e){for(let r=0;r<t.rows;r++)for(let n=0;n<t.columns;n++)t.set(r,n,t.get(r,n)-e[n])}(this,n),this;case void 0:if("number"!=typeof n)throw new TypeError("center must be a number");return function(t,e){for(let r=0;r<t.rows;r++)for(let n=0;n<t.columns;n++)t.set(r,n,t.get(r,n)-e)}(this,n),this;default:throw new Error(`invalid option: ${e}`)}}scale(e,r={}){if("object"==typeof e&&(r=e,e=void 0),"object"!=typeof r)throw new TypeError("options must be an object");let n=r.scale;switch(e){case"row":if(void 0===n)n=function(t){const e=[];for(let r=0;r<t.rows;r++){let n=0;for(let e=0;e<t.columns;e++)n+=t.get(r,e)**2/(t.columns-1);e.push(Math.sqrt(n))}return e}(this);else if(!t.isAnyArray(n))throw new TypeError("scale must be an array");return function(t,e){for(let r=0;r<t.rows;r++)for(let n=0;n<t.columns;n++)t.set(r,n,t.get(r,n)/e[r])}(this,n),this;case"column":if(void 0===n)n=function(t){const e=[];for(let r=0;r<t.columns;r++){let n=0;for(let e=0;e<t.rows;e++)n+=t.get(e,r)**2/(t.rows-1);e.push(Math.sqrt(n))}return e}(this);else if(!t.isAnyArray(n))throw new TypeError("scale must be an array");return function(t,e){for(let r=0;r<t.rows;r++)for(let n=0;n<t.columns;n++)t.set(r,n,t.get(r,n)/e[n])}(this,n),this;case void 0:if(void 0===n)n=function(t){const e=t.size-1;let r=0;for(let n=0;n<t.columns;n++)for(let o=0;o<t.rows;o++)r+=t.get(o,n)**2/e;return Math.sqrt(r)}(this);else if("number"!=typeof n)throw new TypeError("scale must be a number");return function(t,e){for(let r=0;r<t.rows;r++)for(let n=0;n<t.columns;n++)t.set(r,n,t.get(r,n)/e)}(this,n),this;default:throw new Error(`invalid option: ${e}`)}}toString(t){return o(this,t)}[Symbol.iterator](){return this.entries()}*entries(){for(let t=0;t<this.rows;t++)for(let e=0;e<this.columns;e++)yield[t,e,this.get(t,e)]}*values(){for(let t=0;t<this.rows;t++)for(let e=0;e<this.columns;e++)yield this.get(t,e)}}function y(t,e){return t-e}function w(t){return t.every(t=>"number"==typeof t)}m.prototype.klass="Matrix","undefined"!=typeof Symbol&&(m.prototype[Symbol.for("nodejs.util.inspect.custom")]=function(){return o(this)}),m.random=m.rand,m.randomInt=m.randInt,m.diagonal=m.diag,m.prototype.diagonal=m.prototype.diag,m.identity=m.eye,m.prototype.negate=m.prototype.neg,m.prototype.tensorProduct=m.prototype.kroneckerProduct;class x extends m{data;#t(t,e){if(this.data=[],!(Number.isInteger(e)&&e>=0))throw new TypeError("nColumns must be a positive integer");for(let r=0;r<t;r++)this.data.push(new Float64Array(e));this.rows=t,this.columns=e}constructor(e,r){if(super(),x.isMatrix(e))this.#t(e.rows,e.columns),x.copy(e,this);else if(Number.isInteger(e)&&e>=0)this.#t(e,r);else{if(!t.isAnyArray(e))throw new TypeError("First argument must be a positive number or an array");{const t=e;if("number"!=typeof(r=(e=t.length)?t[0].length:0))throw new TypeError("Data must be a 2D array with at least one element");this.data=[];for(let n=0;n<e;n++){if(t[n].length!==r)throw new RangeError("Inconsistent array dimensions");if(!w(t[n]))throw new TypeError("Input data contains non-numeric values");this.data.push(Float64Array.from(t[n]))}this.rows=e,this.columns=r}}}set(t,e,r){return this.data[t][e]=r,this}get(t,e){return this.data[t][e]}removeRow(t){return a(this,t),this.data.splice(t,1),this.rows-=1,this}addRow(t,e){return void 0===e&&(e=t,t=this.rows),a(this,t,!0),e=Float64Array.from(c(this,e)),this.data.splice(t,0,e),this.rows+=1,this}removeColumn(t){u(this,t);for(let e=0;e<this.rows;e++){const r=new Float64Array(this.columns-1);for(let n=0;n<t;n++)r[n]=this.data[e][n];for(let n=t+1;n<this.columns;n++)r[n-1]=this.data[e][n];this.data[e]=r}return this.columns-=1,this}addColumn(t,e){void 0===e&&(e=t,t=this.columns),u(this,t,!0),e=h(this,e);for(let r=0;r<this.rows;r++){const n=new Float64Array(this.columns+1);let o=0;for(;o<t;o++)n[o]=this.data[r][o];for(n[o++]=e[r];o<this.columns+1;o++)n[o]=this.data[r][o-1];this.data[r]=n}return this.columns+=1,this}}!function(t,e){t.prototype.add=function(t){return"number"==typeof t?this.addS(t):this.addM(t)},t.prototype.addS=function(t){for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.set(e,r,this.get(e,r)+t);return this},t.prototype.addM=function(t){if(t=e.checkMatrix(t),this.rows!==t.rows||this.columns!==t.columns)throw new RangeError("Matrices dimensions must be equal");for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.set(e,r,this.get(e,r)+t.get(e,r));return this},t.add=function(t,r){return new e(t).add(r)},t.prototype.sub=function(t){return"number"==typeof t?this.subS(t):this.subM(t)},t.prototype.subS=function(t){for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.set(e,r,this.get(e,r)-t);return this},t.prototype.subM=function(t){if(t=e.checkMatrix(t),this.rows!==t.rows||this.columns!==t.columns)throw new RangeError("Matrices dimensions must be equal");for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.set(e,r,this.get(e,r)-t.get(e,r));return this},t.sub=function(t,r){return new e(t).sub(r)},t.prototype.subtract=t.prototype.sub,t.prototype.subtractS=t.prototype.subS,t.prototype.subtractM=t.prototype.subM,t.subtract=t.sub,t.prototype.mul=function(t){return"number"==typeof t?this.mulS(t):this.mulM(t)},t.prototype.mulS=function(t){for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.set(e,r,this.get(e,r)*t);return this},t.prototype.mulM=function(t){if(t=e.checkMatrix(t),this.rows!==t.rows||this.columns!==t.columns)throw new RangeError("Matrices dimensions must be equal");for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.set(e,r,this.get(e,r)*t.get(e,r));return this},t.mul=function(t,r){return new e(t).mul(r)},t.prototype.multiply=t.prototype.mul,t.prototype.multiplyS=t.prototype.mulS,t.prototype.multiplyM=t.prototype.mulM,t.multiply=t.mul,t.prototype.div=function(t){return"number"==typeof t?this.divS(t):this.divM(t)},t.prototype.divS=function(t){for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.set(e,r,this.get(e,r)/t);return this},t.prototype.divM=function(t){if(t=e.checkMatrix(t),this.rows!==t.rows||this.columns!==t.columns)throw new RangeError("Matrices dimensions must be equal");for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.set(e,r,this.get(e,r)/t.get(e,r));return this},t.div=function(t,r){return new e(t).div(r)},t.prototype.divide=t.prototype.div,t.prototype.divideS=t.prototype.divS,t.prototype.divideM=t.prototype.divM,t.divide=t.div,t.prototype.mod=function(t){return"number"==typeof t?this.modS(t):this.modM(t)},t.prototype.modS=function(t){for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.set(e,r,this.get(e,r)%t);return this},t.prototype.modM=function(t){if(t=e.checkMatrix(t),this.rows!==t.rows||this.columns!==t.columns)throw new RangeError("Matrices dimensions must be equal");for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.set(e,r,this.get(e,r)%t.get(e,r));return this},t.mod=function(t,r){return new e(t).mod(r)},t.prototype.modulus=t.prototype.mod,t.prototype.modulusS=t.prototype.modS,t.prototype.modulusM=t.prototype.modM,t.modulus=t.mod,t.prototype.and=function(t){return"number"==typeof t?this.andS(t):this.andM(t)},t.prototype.andS=function(t){for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.set(e,r,this.get(e,r)&t);return this},t.prototype.andM=function(t){if(t=e.checkMatrix(t),this.rows!==t.rows||this.columns!==t.columns)throw new RangeError("Matrices dimensions must be equal");for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.set(e,r,this.get(e,r)&t.get(e,r));return this},t.and=function(t,r){return new e(t).and(r)},t.prototype.or=function(t){return"number"==typeof t?this.orS(t):this.orM(t)},t.prototype.orS=function(t){for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.set(e,r,this.get(e,r)|t);return this},t.prototype.orM=function(t){if(t=e.checkMatrix(t),this.rows!==t.rows||this.columns!==t.columns)throw new RangeError("Matrices dimensions must be equal");for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.set(e,r,this.get(e,r)|t.get(e,r));return this},t.or=function(t,r){return new e(t).or(r)},t.prototype.xor=function(t){return"number"==typeof t?this.xorS(t):this.xorM(t)},t.prototype.xorS=function(t){for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.set(e,r,this.get(e,r)^t);return this},t.prototype.xorM=function(t){if(t=e.checkMatrix(t),this.rows!==t.rows||this.columns!==t.columns)throw new RangeError("Matrices dimensions must be equal");for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.set(e,r,this.get(e,r)^t.get(e,r));return this},t.xor=function(t,r){return new e(t).xor(r)},t.prototype.leftShift=function(t){return"number"==typeof t?this.leftShiftS(t):this.leftShiftM(t)},t.prototype.leftShiftS=function(t){for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.set(e,r,this.get(e,r)<<t);return this},t.prototype.leftShiftM=function(t){if(t=e.checkMatrix(t),this.rows!==t.rows||this.columns!==t.columns)throw new RangeError("Matrices dimensions must be equal");for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.set(e,r,this.get(e,r)<<t.get(e,r));return this},t.leftShift=function(t,r){return new e(t).leftShift(r)},t.prototype.signPropagatingRightShift=function(t){return"number"==typeof t?this.signPropagatingRightShiftS(t):this.signPropagatingRightShiftM(t)},t.prototype.signPropagatingRightShiftS=function(t){for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.set(e,r,this.get(e,r)>>t);return this},t.prototype.signPropagatingRightShiftM=function(t){if(t=e.checkMatrix(t),this.rows!==t.rows||this.columns!==t.columns)throw new RangeError("Matrices dimensions must be equal");for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.set(e,r,this.get(e,r)>>t.get(e,r));return this},t.signPropagatingRightShift=function(t,r){return new e(t).signPropagatingRightShift(r)},t.prototype.rightShift=function(t){return"number"==typeof t?this.rightShiftS(t):this.rightShiftM(t)},t.prototype.rightShiftS=function(t){for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.set(e,r,this.get(e,r)>>>t);return this},t.prototype.rightShiftM=function(t){if(t=e.checkMatrix(t),this.rows!==t.rows||this.columns!==t.columns)throw new RangeError("Matrices dimensions must be equal");for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.set(e,r,this.get(e,r)>>>t.get(e,r));return this},t.rightShift=function(t,r){return new e(t).rightShift(r)},t.prototype.zeroFillRightShift=t.prototype.rightShift,t.prototype.zeroFillRightShiftS=t.prototype.rightShiftS,t.prototype.zeroFillRightShiftM=t.prototype.rightShiftM,t.zeroFillRightShift=t.rightShift,t.prototype.not=function(){for(let t=0;t<this.rows;t++)for(let e=0;e<this.columns;e++)this.set(t,e,~this.get(t,e));return this},t.not=function(t){return new e(t).not()},t.prototype.abs=function(){for(let t=0;t<this.rows;t++)for(let e=0;e<this.columns;e++)this.set(t,e,Math.abs(this.get(t,e)));return this},t.abs=function(t){return new e(t).abs()},t.prototype.acos=function(){for(let t=0;t<this.rows;t++)for(let e=0;e<this.columns;e++)this.set(t,e,Math.acos(this.get(t,e)));return this},t.acos=function(t){return new e(t).acos()},t.prototype.acosh=function(){for(let t=0;t<this.rows;t++)for(let e=0;e<this.columns;e++)this.set(t,e,Math.acosh(this.get(t,e)));return this},t.acosh=function(t){return new e(t).acosh()},t.prototype.asin=function(){for(let t=0;t<this.rows;t++)for(let e=0;e<this.columns;e++)this.set(t,e,Math.asin(this.get(t,e)));return this},t.asin=function(t){return new e(t).asin()},t.prototype.asinh=function(){for(let t=0;t<this.rows;t++)for(let e=0;e<this.columns;e++)this.set(t,e,Math.asinh(this.get(t,e)));return this},t.asinh=function(t){return new e(t).asinh()},t.prototype.atan=function(){for(let t=0;t<this.rows;t++)for(let e=0;e<this.columns;e++)this.set(t,e,Math.atan(this.get(t,e)));return this},t.atan=function(t){return new e(t).atan()},t.prototype.atanh=function(){for(let t=0;t<this.rows;t++)for(let e=0;e<this.columns;e++)this.set(t,e,Math.atanh(this.get(t,e)));return this},t.atanh=function(t){return new e(t).atanh()},t.prototype.cbrt=function(){for(let t=0;t<this.rows;t++)for(let e=0;e<this.columns;e++)this.set(t,e,Math.cbrt(this.get(t,e)));return this},t.cbrt=function(t){return new e(t).cbrt()},t.prototype.ceil=function(){for(let t=0;t<this.rows;t++)for(let e=0;e<this.columns;e++)this.set(t,e,Math.ceil(this.get(t,e)));return this},t.ceil=function(t){return new e(t).ceil()},t.prototype.clz32=function(){for(let t=0;t<this.rows;t++)for(let e=0;e<this.columns;e++)this.set(t,e,Math.clz32(this.get(t,e)));return this},t.clz32=function(t){return new e(t).clz32()},t.prototype.cos=function(){for(let t=0;t<this.rows;t++)for(let e=0;e<this.columns;e++)this.set(t,e,Math.cos(this.get(t,e)));return this},t.cos=function(t){return new e(t).cos()},t.prototype.cosh=function(){for(let t=0;t<this.rows;t++)for(let e=0;e<this.columns;e++)this.set(t,e,Math.cosh(this.get(t,e)));return this},t.cosh=function(t){return new e(t).cosh()},t.prototype.exp=function(){for(let t=0;t<this.rows;t++)for(let e=0;e<this.columns;e++)this.set(t,e,Math.exp(this.get(t,e)));return this},t.exp=function(t){return new e(t).exp()},t.prototype.expm1=function(){for(let t=0;t<this.rows;t++)for(let e=0;e<this.columns;e++)this.set(t,e,Math.expm1(this.get(t,e)));return this},t.expm1=function(t){return new e(t).expm1()},t.prototype.floor=function(){for(let t=0;t<this.rows;t++)for(let e=0;e<this.columns;e++)this.set(t,e,Math.floor(this.get(t,e)));return this},t.floor=function(t){return new e(t).floor()},t.prototype.fround=function(){for(let t=0;t<this.rows;t++)for(let e=0;e<this.columns;e++)this.set(t,e,Math.fround(this.get(t,e)));return this},t.fround=function(t){return new e(t).fround()},t.prototype.log=function(){for(let t=0;t<this.rows;t++)for(let e=0;e<this.columns;e++)this.set(t,e,Math.log(this.get(t,e)));return this},t.log=function(t){return new e(t).log()},t.prototype.log1p=function(){for(let t=0;t<this.rows;t++)for(let e=0;e<this.columns;e++)this.set(t,e,Math.log1p(this.get(t,e)));return this},t.log1p=function(t){return new e(t).log1p()},t.prototype.log10=function(){for(let t=0;t<this.rows;t++)for(let e=0;e<this.columns;e++)this.set(t,e,Math.log10(this.get(t,e)));return this},t.log10=function(t){return new e(t).log10()},t.prototype.log2=function(){for(let t=0;t<this.rows;t++)for(let e=0;e<this.columns;e++)this.set(t,e,Math.log2(this.get(t,e)));return this},t.log2=function(t){return new e(t).log2()},t.prototype.round=function(){for(let t=0;t<this.rows;t++)for(let e=0;e<this.columns;e++)this.set(t,e,Math.round(this.get(t,e)));return this},t.round=function(t){return new e(t).round()},t.prototype.sign=function(){for(let t=0;t<this.rows;t++)for(let e=0;e<this.columns;e++)this.set(t,e,Math.sign(this.get(t,e)));return this},t.sign=function(t){return new e(t).sign()},t.prototype.sin=function(){for(let t=0;t<this.rows;t++)for(let e=0;e<this.columns;e++)this.set(t,e,Math.sin(this.get(t,e)));return this},t.sin=function(t){return new e(t).sin()},t.prototype.sinh=function(){for(let t=0;t<this.rows;t++)for(let e=0;e<this.columns;e++)this.set(t,e,Math.sinh(this.get(t,e)));return this},t.sinh=function(t){return new e(t).sinh()},t.prototype.sqrt=function(){for(let t=0;t<this.rows;t++)for(let e=0;e<this.columns;e++)this.set(t,e,Math.sqrt(this.get(t,e)));return this},t.sqrt=function(t){return new e(t).sqrt()},t.prototype.tan=function(){for(let t=0;t<this.rows;t++)for(let e=0;e<this.columns;e++)this.set(t,e,Math.tan(this.get(t,e)));return this},t.tan=function(t){return new e(t).tan()},t.prototype.tanh=function(){for(let t=0;t<this.rows;t++)for(let e=0;e<this.columns;e++)this.set(t,e,Math.tanh(this.get(t,e)));return this},t.tanh=function(t){return new e(t).tanh()},t.prototype.trunc=function(){for(let t=0;t<this.rows;t++)for(let e=0;e<this.columns;e++)this.set(t,e,Math.trunc(this.get(t,e)));return this},t.trunc=function(t){return new e(t).trunc()},t.pow=function(t,r){return new e(t).pow(r)},t.prototype.pow=function(t){return"number"==typeof t?this.powS(t):this.powM(t)},t.prototype.powS=function(t){for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.set(e,r,this.get(e,r)**t);return this},t.prototype.powM=function(t){if(t=e.checkMatrix(t),this.rows!==t.rows||this.columns!==t.columns)throw new RangeError("Matrices dimensions must be equal");for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.set(e,r,this.get(e,r)**t.get(e,r));return this}}(m,x);class b extends m{#e;get size(){return this.#e.size}get rows(){return this.#e.rows}get columns(){return this.#e.columns}get diagonalSize(){return this.rows}static isSymmetricMatrix(t){return x.isMatrix(t)&&"SymmetricMatrix"===t.klassType}static zeros(t){return new this(t)}static ones(t){return new this(t).fill(1)}constructor(t){if(super(),x.isMatrix(t)){if(!t.isSymmetric())throw new TypeError("not symmetric data");this.#e=x.copy(t,new x(t.rows,t.rows))}else if(Number.isInteger(t)&&t>=0)this.#e=new x(t,t);else if(this.#e=new x(t),!this.isSymmetric())throw new TypeError("not symmetric data")}clone(){const t=new b(this.diagonalSize);for(const[e,r,n]of this.upperRightEntries())t.set(e,r,n);return t}toMatrix(){return new x(this)}get(t,e){return this.#e.get(t,e)}set(t,e,r){return this.#e.set(t,e,r),this.#e.set(e,t,r),this}removeCross(t){return this.#e.removeRow(t),this.#e.removeColumn(t),this}addCross(t,e){void 0===e&&(e=t,t=this.diagonalSize);const r=e.slice();return r.splice(t,1),this.#e.addRow(t,r),this.#e.addColumn(t,e),this}applyMask(t){if(t.length!==this.diagonalSize)throw new RangeError("Mask size do not match with matrix size");const e=[];for(const[r,n]of t.entries())n||e.push(r);e.reverse();for(const t of e)this.removeCross(t);return this}toCompact(){const{diagonalSize:t}=this,e=new Array(t*(t+1)/2);for(let r=0,n=0,o=0;o<e.length;o++)e[o]=this.get(n,r),++r>=t&&(r=++n);return e}static fromCompact(t){const e=t.length,r=(Math.sqrt(8*e+1)-1)/2;if(!Number.isInteger(r))throw new TypeError(`This array is not a compact representation of a Symmetric Matrix, ${JSON.stringify(t)}`);const n=new b(r);for(let o=0,i=0,s=0;s<e;s++)n.set(o,i,t[s]),++o>=r&&(o=++i);return n}*upperRightEntries(){for(let t=0,e=0;t<this.diagonalSize;void 0){const r=this.get(t,e);yield[t,e,r],++e>=this.diagonalSize&&(e=++t)}}*upperRightValues(){for(let t=0,e=0;t<this.diagonalSize;void 0){const r=this.get(t,e);yield r,++e>=this.diagonalSize&&(e=++t)}}}b.prototype.klassType="SymmetricMatrix";class E extends b{static isDistanceMatrix(t){return b.isSymmetricMatrix(t)&&"DistanceMatrix"===t.klassSubType}constructor(t){if(super(t),!this.isDistance())throw new TypeError("Provided arguments do no produce a distance matrix")}set(t,e,r){return t===e&&(r=0),super.set(t,e,r)}addCross(t,e){return void 0===e&&(e=t,t=this.diagonalSize),(e=e.slice())[t]=0,super.addCross(t,e)}toSymmetricMatrix(){return new b(this)}clone(){const t=new E(this.diagonalSize);for(const[e,r,n]of this.upperRightEntries())e!==r&&t.set(e,r,n);return t}toCompact(){const{diagonalSize:t}=this,e=new Array((t-1)*t/2);for(let r=1,n=0,o=0;o<e.length;o++)e[o]=this.get(n,r),++r>=t&&(r=1+ ++n);return e}static fromCompact(t){const e=t.length;if(0===e)return new this(0);const r=(Math.sqrt(8*e+1)+1)/2;if(!Number.isInteger(r))throw new TypeError(`This array is not a compact representation of a DistanceMatrix, ${JSON.stringify(t)}`);const n=new this(r);for(let o=1,i=0,s=0;s<e;s++)n.set(o,i,t[s]),++o>=r&&(o=1+ ++i);return n}}E.prototype.klassSubType="DistanceMatrix";class M extends m{constructor(t,e,r){super(),this.matrix=t,this.rows=e,this.columns=r}}class N extends M{constructor(t,e,r){l(t,e),d(t,r),super(t,e.length,r.length),this.rowIndices=e,this.columnIndices=r}set(t,e,r){return this.matrix.set(this.rowIndices[t],this.columnIndices[e],r),this}get(t,e){return this.matrix.get(this.rowIndices[t],this.columnIndices[e])}}class _ extends m{constructor(t,e={}){const{rows:r=1}=e;if(t.length%r!==0)throw new Error("the data length is not divisible by the number of rows");super(),this.rows=r,this.columns=t.length/r,this.data=t}set(t,e,r){let n=this._calculateIndex(t,e);return this.data[n]=r,this}get(t,e){let r=this._calculateIndex(t,e);return this.data[r]}_calculateIndex(t,e){return t*this.columns+e}}class k extends m{constructor(t){super(),this.data=t,this.rows=t.length,this.columns=t[0].length}set(t,e,r){return this.data[t][e]=r,this}get(t,e){return this.data[t][e]}}class S{constructor(t){let e,r,n,o,i,s,a,u,c,h=(t=k.checkMatrix(t)).clone(),l=h.rows,d=h.columns,f=new Float64Array(l),g=1;for(e=0;e<l;e++)f[e]=e;for(u=new Float64Array(l),r=0;r<d;r++){for(e=0;e<l;e++)u[e]=h.get(e,r);for(e=0;e<l;e++){for(c=Math.min(e,r),i=0,n=0;n<c;n++)i+=h.get(e,n)*u[n];u[e]-=i,h.set(e,r,u[e])}for(o=r,e=r+1;e<l;e++)Math.abs(u[e])>Math.abs(u[o])&&(o=e);if(o!==r){for(n=0;n<d;n++)s=h.get(o,n),h.set(o,n,h.get(r,n)),h.set(r,n,s);a=f[o],f[o]=f[r],f[r]=a,g=-g}if(r<l&&0!==h.get(r,r))for(e=r+1;e<l;e++)h.set(e,r,h.get(e,r)/h.get(r,r))}this.LU=h,this.pivotVector=f,this.pivotSign=g}isSingular(){let t=this.LU,e=t.columns;for(let r=0;r<e;r++)if(0===t.get(r,r))return!0;return!1}solve(t){t=x.checkMatrix(t);let e=this.LU;if(e.rows!==t.rows)throw new Error("Invalid matrix dimensions");if(this.isSingular())throw new Error("LU matrix is singular");let r,n,o,i=t.columns,s=t.subMatrixRow(this.pivotVector,0,i-1),a=e.columns;for(o=0;o<a;o++)for(r=o+1;r<a;r++)for(n=0;n<i;n++)s.set(r,n,s.get(r,n)-s.get(o,n)*e.get(r,o));for(o=a-1;o>=0;o--){for(n=0;n<i;n++)s.set(o,n,s.get(o,n)/e.get(o,o));for(r=0;r<o;r++)for(n=0;n<i;n++)s.set(r,n,s.get(r,n)-s.get(o,n)*e.get(r,o))}return s}get determinant(){let t=this.LU;if(!t.isSquare())throw new Error("Matrix must be square");let e=this.pivotSign,r=t.columns;for(let n=0;n<r;n++)e*=t.get(n,n);return e}get lowerTriangularMatrix(){let t=this.LU,e=t.rows,r=t.columns,n=new x(e,r);for(let o=0;o<e;o++)for(let e=0;e<r;e++)o>e?n.set(o,e,t.get(o,e)):o===e?n.set(o,e,1):n.set(o,e,0);return n}get upperTriangularMatrix(){let t=this.LU,e=t.rows,r=t.columns,n=new x(e,r);for(let o=0;o<e;o++)for(let e=0;e<r;e++)o<=e?n.set(o,e,t.get(o,e)):n.set(o,e,0);return n}get pivotPermutationVector(){return Array.from(this.pivotVector)}}function z(t,e){let r=0;return Math.abs(t)>Math.abs(e)?(r=e/t,Math.abs(t)*Math.sqrt(1+r*r)):0!==e?(r=t/e,Math.abs(e)*Math.sqrt(1+r*r)):0}class A{constructor(t){let e,r,n,o,i=(t=k.checkMatrix(t)).clone(),s=t.rows,a=t.columns,u=new Float64Array(a);for(n=0;n<a;n++){let t=0;for(e=n;e<s;e++)t=z(t,i.get(e,n));if(0!==t){for(i.get(n,n)<0&&(t=-t),e=n;e<s;e++)i.set(e,n,i.get(e,n)/t);for(i.set(n,n,i.get(n,n)+1),r=n+1;r<a;r++){for(o=0,e=n;e<s;e++)o+=i.get(e,n)*i.get(e,r);for(o=-o/i.get(n,n),e=n;e<s;e++)i.set(e,r,i.get(e,r)+o*i.get(e,n))}}u[n]=-t}this.QR=i,this.Rdiag=u}solve(t){t=x.checkMatrix(t);let e=this.QR,r=e.rows;if(t.rows!==r)throw new Error("Matrix row dimensions must agree");if(!this.isFullRank())throw new Error("Matrix is rank deficient");let n,o,i,s,a=t.columns,u=t.clone(),c=e.columns;for(i=0;i<c;i++)for(o=0;o<a;o++){for(s=0,n=i;n<r;n++)s+=e.get(n,i)*u.get(n,o);for(s=-s/e.get(i,i),n=i;n<r;n++)u.set(n,o,u.get(n,o)+s*e.get(n,i))}for(i=c-1;i>=0;i--){for(o=0;o<a;o++)u.set(i,o,u.get(i,o)/this.Rdiag[i]);for(n=0;n<i;n++)for(o=0;o<a;o++)u.set(n,o,u.get(n,o)-u.get(i,o)*e.get(n,i))}return u.subMatrix(0,c-1,0,a-1)}isFullRank(){let t=this.QR.columns;for(let e=0;e<t;e++)if(0===this.Rdiag[e])return!1;return!0}get upperTriangularMatrix(){let t,e,r=this.QR,n=r.columns,o=new x(n,n);for(t=0;t<n;t++)for(e=0;e<n;e++)t<e?o.set(t,e,r.get(t,e)):t===e?o.set(t,e,this.Rdiag[t]):o.set(t,e,0);return o}get orthogonalMatrix(){let t,e,r,n,o=this.QR,i=o.rows,s=o.columns,a=new x(i,s);for(r=s-1;r>=0;r--){for(t=0;t<i;t++)a.set(t,r,0);for(a.set(r,r,1),e=r;e<s;e++)if(0!==o.get(r,r)){for(n=0,t=r;t<i;t++)n+=o.get(t,r)*a.get(t,e);for(n=-n/o.get(r,r),t=r;t<i;t++)a.set(t,e,a.get(t,e)+n*o.get(t,r))}}return a}}class O{constructor(t,e={}){if((t=k.checkMatrix(t)).isEmpty())throw new Error("Matrix must be non-empty");let r=t.rows,n=t.columns;const{computeLeftSingularVectors:o=!0,computeRightSingularVectors:i=!0,autoTranspose:s=!1}=e;let a,u=Boolean(o),c=Boolean(i),h=!1;if(r<n)if(s){a=t.transpose(),r=a.rows,n=a.columns,h=!0;let e=u;u=c,c=e}else a=t.clone(),console.warn("Computing SVD on a matrix with more columns than rows. Consider enabling autoTranspose");else a=t.clone();let l=Math.min(r,n),d=Math.min(r+1,n),f=new Float64Array(d),g=new x(r,l),p=new x(n,n),v=new Float64Array(n),m=new Float64Array(r),y=new Float64Array(d);for(let t=0;t<d;t++)y[t]=t;let w=Math.min(r-1,n),b=Math.max(0,Math.min(n-2,r)),E=Math.max(w,b);for(let t=0;t<E;t++){if(t<w){f[t]=0;for(let e=t;e<r;e++)f[t]=z(f[t],a.get(e,t));if(0!==f[t]){a.get(t,t)<0&&(f[t]=-f[t]);for(let e=t;e<r;e++)a.set(e,t,a.get(e,t)/f[t]);a.set(t,t,a.get(t,t)+1)}f[t]=-f[t]}for(let e=t+1;e<n;e++){if(t<w&&0!==f[t]){let n=0;for(let o=t;o<r;o++)n+=a.get(o,t)*a.get(o,e);n=-n/a.get(t,t);for(let o=t;o<r;o++)a.set(o,e,a.get(o,e)+n*a.get(o,t))}v[e]=a.get(t,e)}if(u&&t<w)for(let e=t;e<r;e++)g.set(e,t,a.get(e,t));if(t<b){v[t]=0;for(let e=t+1;e<n;e++)v[t]=z(v[t],v[e]);if(0!==v[t]){v[t+1]<0&&(v[t]=0-v[t]);for(let e=t+1;e<n;e++)v[e]/=v[t];v[t+1]+=1}if(v[t]=-v[t],t+1<r&&0!==v[t]){for(let e=t+1;e<r;e++)m[e]=0;for(let e=t+1;e<r;e++)for(let r=t+1;r<n;r++)m[e]+=v[r]*a.get(e,r);for(let e=t+1;e<n;e++){let n=-v[e]/v[t+1];for(let o=t+1;o<r;o++)a.set(o,e,a.get(o,e)+n*m[o])}}if(c)for(let e=t+1;e<n;e++)p.set(e,t,v[e])}}let M=Math.min(n,r+1);if(w<n&&(f[w]=a.get(w,w)),r<M&&(f[M-1]=0),b+1<M&&(v[b]=a.get(b,M-1)),v[M-1]=0,u){for(let t=w;t<l;t++){for(let e=0;e<r;e++)g.set(e,t,0);g.set(t,t,1)}for(let t=w-1;t>=0;t--)if(0!==f[t]){for(let e=t+1;e<l;e++){let n=0;for(let o=t;o<r;o++)n+=g.get(o,t)*g.get(o,e);n=-n/g.get(t,t);for(let o=t;o<r;o++)g.set(o,e,g.get(o,e)+n*g.get(o,t))}for(let e=t;e<r;e++)g.set(e,t,-g.get(e,t));g.set(t,t,1+g.get(t,t));for(let e=0;e<t-1;e++)g.set(e,t,0)}else{for(let e=0;e<r;e++)g.set(e,t,0);g.set(t,t,1)}}if(c)for(let t=n-1;t>=0;t--){if(t<b&&0!==v[t])for(let e=t+1;e<n;e++){let r=0;for(let o=t+1;o<n;o++)r+=p.get(o,t)*p.get(o,e);r=-r/p.get(t+1,t);for(let o=t+1;o<n;o++)p.set(o,e,p.get(o,e)+r*p.get(o,t))}for(let e=0;e<n;e++)p.set(e,t,0);p.set(t,t,1)}let N=M-1,_=Number.EPSILON;for(;M>0;){let t,e;for(t=M-2;t>=-1&&-1!==t;t--){const e=Number.MIN_VALUE+_*Math.abs(f[t]+Math.abs(f[t+1]));if(Math.abs(v[t])<=e||Number.isNaN(v[t])){v[t]=0;break}}if(t===M-2)e=4;else{let r;for(r=M-1;r>=t&&r!==t;r--){let e=(r!==M?Math.abs(v[r]):0)+(r!==t+1?Math.abs(v[r-1]):0);if(Math.abs(f[r])<=_*e){f[r]=0;break}}r===t?e=3:r===M-1?e=1:(e=2,t=r)}switch(t++,e){case 1:{let e=v[M-2];v[M-2]=0;for(let r=M-2;r>=t;r--){let o=z(f[r],e),i=f[r]/o,s=e/o;if(f[r]=o,r!==t&&(e=-s*v[r-1],v[r-1]=i*v[r-1]),c)for(let t=0;t<n;t++)o=i*p.get(t,r)+s*p.get(t,M-1),p.set(t,M-1,-s*p.get(t,r)+i*p.get(t,M-1)),p.set(t,r,o)}break}case 2:{let e=v[t-1];v[t-1]=0;for(let n=t;n<M;n++){let o=z(f[n],e),i=f[n]/o,s=e/o;if(f[n]=o,e=-s*v[n],v[n]=i*v[n],u)for(let e=0;e<r;e++)o=i*g.get(e,n)+s*g.get(e,t-1),g.set(e,t-1,-s*g.get(e,n)+i*g.get(e,t-1)),g.set(e,n,o)}break}case 3:{const e=Math.max(Math.abs(f[M-1]),Math.abs(f[M-2]),Math.abs(v[M-2]),Math.abs(f[t]),Math.abs(v[t])),o=f[M-1]/e,i=f[M-2]/e,s=v[M-2]/e,a=f[t]/e,h=v[t]/e,l=((i+o)*(i-o)+s*s)/2,d=o*s*(o*s);let m=0;0===l&&0===d||(m=l<0?0-Math.sqrt(l*l+d):Math.sqrt(l*l+d),m=d/(l+m));let y=(a+o)*(a-o)+m,w=a*h;for(let e=t;e<M-1;e++){let o=z(y,w);0===o&&(o=Number.MIN_VALUE);let i=y/o,s=w/o;if(e!==t&&(v[e-1]=o),y=i*f[e]+s*v[e],v[e]=i*v[e]-s*f[e],w=s*f[e+1],f[e+1]=i*f[e+1],c)for(let t=0;t<n;t++)o=i*p.get(t,e)+s*p.get(t,e+1),p.set(t,e+1,-s*p.get(t,e)+i*p.get(t,e+1)),p.set(t,e,o);if(o=z(y,w),0===o&&(o=Number.MIN_VALUE),i=y/o,s=w/o,f[e]=o,y=i*v[e]+s*f[e+1],f[e+1]=-s*v[e]+i*f[e+1],w=s*v[e+1],v[e+1]=i*v[e+1],u&&e<r-1)for(let t=0;t<r;t++)o=i*g.get(t,e)+s*g.get(t,e+1),g.set(t,e+1,-s*g.get(t,e)+i*g.get(t,e+1)),g.set(t,e,o)}v[M-2]=y;break}case 4:if(f[t]<=0&&(f[t]=f[t]<0?-f[t]:0,c))for(let e=0;e<=N;e++)p.set(e,t,-p.get(e,t));for(;t<N&&!(f[t]>=f[t+1]);){let e=f[t];if(f[t]=f[t+1],f[t+1]=e,c&&t<n-1)for(let r=0;r<n;r++)e=p.get(r,t+1),p.set(r,t+1,p.get(r,t)),p.set(r,t,e);if(u&&t<r-1)for(let n=0;n<r;n++)e=g.get(n,t+1),g.set(n,t+1,g.get(n,t)),g.set(n,t,e);t++}M--}}if(h){let t=p;p=g,g=t}this.m=r,this.n=n,this.s=f,this.U=g,this.V=p}solve(t){let e=t,r=this.threshold,n=this.s.length,o=x.zeros(n,n);for(let t=0;t<n;t++)Math.abs(this.s[t])<=r?o.set(t,t,0):o.set(t,t,1/this.s[t]);let i=this.U,s=this.rightSingularVectors,a=s.mmul(o),u=s.rows,c=i.rows,h=x.zeros(u,c);for(let t=0;t<u;t++)for(let e=0;e<c;e++){let r=0;for(let o=0;o<n;o++)r+=a.get(t,o)*i.get(e,o);h.set(t,e,r)}return h.mmul(e)}solveForDiagonal(t){return this.solve(x.diag(t))}inverse(){let t=this.V,e=this.threshold,r=t.rows,n=t.columns,o=new x(r,this.s.length);for(let i=0;i<r;i++)for(let r=0;r<n;r++)Math.abs(this.s[r])>e&&o.set(i,r,t.get(i,r)/this.s[r]);let i=this.U,s=i.rows,a=i.columns,u=new x(r,s);for(let t=0;t<r;t++)for(let e=0;e<s;e++){let r=0;for(let n=0;n<a;n++)r+=o.get(t,n)*i.get(e,n);u.set(t,e,r)}return u}get condition(){return this.s[0]/this.s[Math.min(this.m,this.n)-1]}get norm2(){return this.s[0]}get rank(){let t=Math.max(this.m,this.n)*this.s[0]*Number.EPSILON,e=0,r=this.s;for(let n=0,o=r.length;n<o;n++)r[n]>t&&e++;return e}get diagonal(){return Array.from(this.s)}get threshold(){return Number.EPSILON/2*Math.max(this.m,this.n)*this.s[0]}get leftSingularVectors(){return this.U}get rightSingularVectors(){return this.V}get diagonalMatrix(){return x.diag(this.s)}}function j(t,e,r=!1){return t=k.checkMatrix(t),e=k.checkMatrix(e),r?new O(t).solve(e):t.isSquare()?new S(t).solve(e):new A(t).solve(e)}function C(t,e){let r=[];for(let n=0;n<t;n++)n!==e&&r.push(n);return r}function I(t,e,r,n=1e-9,o=1e-9){if(t>o)return new Array(e.rows+1).fill(0);{let t=e.addRow(r,[0]);for(let e=0;e<t.rows;e++)Math.abs(t.get(e,0))<n&&t.set(e,0,0);return t.to1DArray()}}class R{constructor(t,e={}){const{assumeSymmetric:r=!1}=e;if(!(t=k.checkMatrix(t)).isSquare())throw new Error("Matrix is not a square matrix");if(t.isEmpty())throw new Error("Matrix must be non-empty");let n,o,i=t.columns,s=new x(i,i),a=new Float64Array(i),u=new Float64Array(i),c=t,h=!1;if(h=!!r||t.isSymmetric(),h){for(n=0;n<i;n++)for(o=0;o<i;o++)s.set(n,o,c.get(n,o));!function(t,e,r,n){let o,i,s,a,u,c,h,l;for(u=0;u<t;u++)r[u]=n.get(t-1,u);for(a=t-1;a>0;a--){for(l=0,s=0,c=0;c<a;c++)l+=Math.abs(r[c]);if(0===l)for(e[a]=r[a-1],u=0;u<a;u++)r[u]=n.get(a-1,u),n.set(a,u,0),n.set(u,a,0);else{for(c=0;c<a;c++)r[c]/=l,s+=r[c]*r[c];for(o=r[a-1],i=Math.sqrt(s),o>0&&(i=-i),e[a]=l*i,s-=o*i,r[a-1]=o-i,u=0;u<a;u++)e[u]=0;for(u=0;u<a;u++){for(o=r[u],n.set(u,a,o),i=e[u]+n.get(u,u)*o,c=u+1;c<=a-1;c++)i+=n.get(c,u)*r[c],e[c]+=n.get(c,u)*o;e[u]=i}for(o=0,u=0;u<a;u++)e[u]/=s,o+=e[u]*r[u];for(h=o/(s+s),u=0;u<a;u++)e[u]-=h*r[u];for(u=0;u<a;u++){for(o=r[u],i=e[u],c=u;c<=a-1;c++)n.set(c,u,n.get(c,u)-(o*e[c]+i*r[c]));r[u]=n.get(a-1,u),n.set(a,u,0)}}r[a]=s}for(a=0;a<t-1;a++){if(n.set(t-1,a,n.get(a,a)),n.set(a,a,1),s=r[a+1],0!==s){for(c=0;c<=a;c++)r[c]=n.get(c,a+1)/s;for(u=0;u<=a;u++){for(i=0,c=0;c<=a;c++)i+=n.get(c,a+1)*n.get(c,u);for(c=0;c<=a;c++)n.set(c,u,n.get(c,u)-i*r[c])}}for(c=0;c<=a;c++)n.set(c,a+1,0)}for(u=0;u<t;u++)r[u]=n.get(t-1,u),n.set(t-1,u,0);n.set(t-1,t-1,1),e[0]=0}(i,u,a,s),function(t,e,r,n){let o,i,s,a,u,c,h,l,d,f,g,p,v,m,y,w;for(s=1;s<t;s++)e[s-1]=e[s];e[t-1]=0;let x=0,b=0,E=Number.EPSILON;for(c=0;c<t;c++){for(b=Math.max(b,Math.abs(r[c])+Math.abs(e[c])),h=c;h<t&&!(Math.abs(e[h])<=E*b);)h++;if(h>c)do{for(o=r[c],l=(r[c+1]-o)/(2*e[c]),d=z(l,1),l<0&&(d=-d),r[c]=e[c]/(l+d),r[c+1]=e[c]*(l+d),f=r[c+1],i=o-r[c],s=c+2;s<t;s++)r[s]-=i;for(x+=i,l=r[h],g=1,p=g,v=g,m=e[c+1],y=0,w=0,s=h-1;s>=c;s--)for(v=p,p=g,w=y,o=g*e[s],i=g*l,d=z(l,e[s]),e[s+1]=y*d,y=e[s]/d,g=l/d,l=g*r[s]-y*o,r[s+1]=i+y*(g*o+y*r[s]),u=0;u<t;u++)i=n.get(u,s+1),n.set(u,s+1,y*n.get(u,s)+g*i),n.set(u,s,g*n.get(u,s)-y*i);l=-y*w*v*m*e[c]/f,e[c]=y*l,r[c]=g*l}while(Math.abs(e[c])>E*b);r[c]=r[c]+x,e[c]=0}for(s=0;s<t-1;s++){for(u=s,l=r[s],a=s+1;a<t;a++)r[a]<l&&(u=a,l=r[a]);if(u!==s)for(r[u]=r[s],r[s]=l,a=0;a<t;a++)l=n.get(a,s),n.set(a,s,n.get(a,u)),n.set(a,u,l)}}(i,u,a,s)}else{let t=new x(i,i),e=new Float64Array(i);for(o=0;o<i;o++)for(n=0;n<i;n++)t.set(n,o,c.get(n,o));!function(t,e,r,n){let o,i,s,a,u,c,h,l=0,d=t-1;for(c=l+1;c<=d-1;c++){for(h=0,a=c;a<=d;a++)h+=Math.abs(e.get(a,c-1));if(0!==h){for(s=0,a=d;a>=c;a--)r[a]=e.get(a,c-1)/h,s+=r[a]*r[a];for(i=Math.sqrt(s),r[c]>0&&(i=-i),s-=r[c]*i,r[c]=r[c]-i,u=c;u<t;u++){for(o=0,a=d;a>=c;a--)o+=r[a]*e.get(a,u);for(o/=s,a=c;a<=d;a++)e.set(a,u,e.get(a,u)-o*r[a])}for(a=0;a<=d;a++){for(o=0,u=d;u>=c;u--)o+=r[u]*e.get(a,u);for(o/=s,u=c;u<=d;u++)e.set(a,u,e.get(a,u)-o*r[u])}r[c]=h*r[c],e.set(c,c-1,h*i)}}for(a=0;a<t;a++)for(u=0;u<t;u++)n.set(a,u,a===u?1:0);for(c=d-1;c>=l+1;c--)if(0!==e.get(c,c-1)){for(a=c+1;a<=d;a++)r[a]=e.get(a,c-1);for(u=c;u<=d;u++){for(i=0,a=c;a<=d;a++)i+=r[a]*n.get(a,u);for(i=i/r[c]/e.get(c,c-1),a=c;a<=d;a++)n.set(a,u,n.get(a,u)+i*r[a])}}}(i,t,e,s),function(t,e,r,n,o){let i,s,a,u,c,h,l,d,f,g,p,v,m,y,w,x=t-1,b=0,E=t-1,M=Number.EPSILON,N=0,_=0,k=0,S=0,z=0,A=0,O=0,j=0;for(i=0;i<t;i++)for((i<b||i>E)&&(r[i]=o.get(i,i),e[i]=0),s=Math.max(i-1,0);s<t;s++)_+=Math.abs(o.get(i,s));for(;x>=b;){for(u=x;u>b&&(A=Math.abs(o.get(u-1,u-1))+Math.abs(o.get(u,u)),0===A&&(A=_),!(Math.abs(o.get(u,u-1))<M*A));)u--;if(u===x)o.set(x,x,o.get(x,x)+N),r[x]=o.get(x,x),e[x]=0,x--,j=0;else if(u===x-1){if(l=o.get(x,x-1)*o.get(x-1,x),k=(o.get(x-1,x-1)-o.get(x,x))/2,S=k*k+l,O=Math.sqrt(Math.abs(S)),o.set(x,x,o.get(x,x)+N),o.set(x-1,x-1,o.get(x-1,x-1)+N),d=o.get(x,x),S>=0){for(O=k>=0?k+O:k-O,r[x-1]=d+O,r[x]=r[x-1],0!==O&&(r[x]=d-l/O),e[x-1]=0,e[x]=0,d=o.get(x,x-1),A=Math.abs(d)+Math.abs(O),k=d/A,S=O/A,z=Math.sqrt(k*k+S*S),k/=z,S/=z,s=x-1;s<t;s++)O=o.get(x-1,s),o.set(x-1,s,S*O+k*o.get(x,s)),o.set(x,s,S*o.get(x,s)-k*O);for(i=0;i<=x;i++)O=o.get(i,x-1),o.set(i,x-1,S*O+k*o.get(i,x)),o.set(i,x,S*o.get(i,x)-k*O);for(i=b;i<=E;i++)O=n.get(i,x-1),n.set(i,x-1,S*O+k*n.get(i,x)),n.set(i,x,S*n.get(i,x)-k*O)}else r[x-1]=d+k,r[x]=d+k,e[x-1]=O,e[x]=-O;x-=2,j=0}else{if(d=o.get(x,x),f=0,l=0,u<x&&(f=o.get(x-1,x-1),l=o.get(x,x-1)*o.get(x-1,x)),10===j){for(N+=d,i=b;i<=x;i++)o.set(i,i,o.get(i,i)-d);A=Math.abs(o.get(x,x-1))+Math.abs(o.get(x-1,x-2)),d=f=.75*A,l=-.4375*A*A}if(30===j&&(A=(f-d)/2,A=A*A+l,A>0)){for(A=Math.sqrt(A),f<d&&(A=-A),A=d-l/((f-d)/2+A),i=b;i<=x;i++)o.set(i,i,o.get(i,i)-A);N+=A,d=f=l=.964}for(j+=1,c=x-2;c>=u&&(O=o.get(c,c),z=d-O,A=f-O,k=(z*A-l)/o.get(c+1,c)+o.get(c,c+1),S=o.get(c+1,c+1)-O-z-A,z=o.get(c+2,c+1),A=Math.abs(k)+Math.abs(S)+Math.abs(z),k/=A,S/=A,z/=A,c!==u)&&!(Math.abs(o.get(c,c-1))*(Math.abs(S)+Math.abs(z))<M*(Math.abs(k)*(Math.abs(o.get(c-1,c-1))+Math.abs(O)+Math.abs(o.get(c+1,c+1)))));)c--;for(i=c+2;i<=x;i++)o.set(i,i-2,0),i>c+2&&o.set(i,i-3,0);for(a=c;a<=x-1&&(y=a!==x-1,a!==c&&(k=o.get(a,a-1),S=o.get(a+1,a-1),z=y?o.get(a+2,a-1):0,d=Math.abs(k)+Math.abs(S)+Math.abs(z),0!==d&&(k/=d,S/=d,z/=d)),0!==d);a++)if(A=Math.sqrt(k*k+S*S+z*z),k<0&&(A=-A),0!==A){for(a!==c?o.set(a,a-1,-A*d):u!==c&&o.set(a,a-1,-o.get(a,a-1)),k+=A,d=k/A,f=S/A,O=z/A,S/=k,z/=k,s=a;s<t;s++)k=o.get(a,s)+S*o.get(a+1,s),y&&(k+=z*o.get(a+2,s),o.set(a+2,s,o.get(a+2,s)-k*O)),o.set(a,s,o.get(a,s)-k*d),o.set(a+1,s,o.get(a+1,s)-k*f);for(i=0;i<=Math.min(x,a+3);i++)k=d*o.get(i,a)+f*o.get(i,a+1),y&&(k+=O*o.get(i,a+2),o.set(i,a+2,o.get(i,a+2)-k*z)),o.set(i,a,o.get(i,a)-k),o.set(i,a+1,o.get(i,a+1)-k*S);for(i=b;i<=E;i++)k=d*n.get(i,a)+f*n.get(i,a+1),y&&(k+=O*n.get(i,a+2),n.set(i,a+2,n.get(i,a+2)-k*z)),n.set(i,a,n.get(i,a)-k),n.set(i,a+1,n.get(i,a+1)-k*S)}}}if(0===_)return;for(x=t-1;x>=0;x--)if(k=r[x],S=e[x],0===S)for(u=x,o.set(x,x,1),i=x-1;i>=0;i--){for(l=o.get(i,i)-k,z=0,s=u;s<=x;s++)z+=o.get(i,s)*o.get(s,x);if(e[i]<0)O=l,A=z;else if(u=i,0===e[i]?o.set(i,x,0!==l?-z/l:-z/(M*_)):(d=o.get(i,i+1),f=o.get(i+1,i),S=(r[i]-k)*(r[i]-k)+e[i]*e[i],h=(d*A-O*z)/S,o.set(i,x,h),o.set(i+1,x,Math.abs(d)>Math.abs(O)?(-z-l*h)/d:(-A-f*h)/O)),h=Math.abs(o.get(i,x)),M*h*h>1)for(s=i;s<=x;s++)o.set(s,x,o.get(s,x)/h)}else if(S<0)for(u=x-1,Math.abs(o.get(x,x-1))>Math.abs(o.get(x-1,x))?(o.set(x-1,x-1,S/o.get(x,x-1)),o.set(x-1,x,-(o.get(x,x)-k)/o.get(x,x-1))):(w=P(0,-o.get(x-1,x),o.get(x-1,x-1)-k,S),o.set(x-1,x-1,w[0]),o.set(x-1,x,w[1])),o.set(x,x-1,0),o.set(x,x,1),i=x-2;i>=0;i--){for(g=0,p=0,s=u;s<=x;s++)g+=o.get(i,s)*o.get(s,x-1),p+=o.get(i,s)*o.get(s,x);if(l=o.get(i,i)-k,e[i]<0)O=l,z=g,A=p;else if(u=i,0===e[i]?(w=P(-g,-p,l,S),o.set(i,x-1,w[0]),o.set(i,x,w[1])):(d=o.get(i,i+1),f=o.get(i+1,i),v=(r[i]-k)*(r[i]-k)+e[i]*e[i]-S*S,m=2*(r[i]-k)*S,0===v&&0===m&&(v=M*_*(Math.abs(l)+Math.abs(S)+Math.abs(d)+Math.abs(f)+Math.abs(O))),w=P(d*z-O*g+S*p,d*A-O*p-S*g,v,m),o.set(i,x-1,w[0]),o.set(i,x,w[1]),Math.abs(d)>Math.abs(O)+Math.abs(S)?(o.set(i+1,x-1,(-g-l*o.get(i,x-1)+S*o.get(i,x))/d),o.set(i+1,x,(-p-l*o.get(i,x)-S*o.get(i,x-1))/d)):(w=P(-z-f*o.get(i,x-1),-A-f*o.get(i,x),O,S),o.set(i+1,x-1,w[0]),o.set(i+1,x,w[1]))),h=Math.max(Math.abs(o.get(i,x-1)),Math.abs(o.get(i,x))),M*h*h>1)for(s=i;s<=x;s++)o.set(s,x-1,o.get(s,x-1)/h),o.set(s,x,o.get(s,x)/h)}for(i=0;i<t;i++)if(i<b||i>E)for(s=i;s<t;s++)n.set(i,s,o.get(i,s));for(s=t-1;s>=b;s--)for(i=b;i<=E;i++){for(O=0,a=b;a<=Math.min(s,E);a++)O+=n.get(i,a)*o.get(a,s);n.set(i,s,O)}}(i,u,a,s,t)}this.n=i,this.e=u,this.d=a,this.V=s}get realEigenvalues(){return Array.from(this.d)}get imaginaryEigenvalues(){return Array.from(this.e)}get eigenvectorMatrix(){return this.V}get diagonalMatrix(){let t,e,r=this.n,n=this.e,o=this.d,i=new x(r,r);for(t=0;t<r;t++){for(e=0;e<r;e++)i.set(t,e,0);i.set(t,t,o[t]),n[t]>0?i.set(t,t+1,n[t]):n[t]<0&&i.set(t,t-1,n[t])}return i}}function P(t,e,r,n){let o,i;return Math.abs(r)>Math.abs(n)?(o=n/r,i=r+o*n,[(t+o*e)/i,(e-o*t)/i]):(o=r/n,i=n+o*r,[(o*t+e)/i,(o*e-t)/i])}class T{constructor(t){if(!(t=k.checkMatrix(t)).isSymmetric())throw new Error("Matrix is not symmetric");let e,r,n,o=t,i=o.rows,s=new x(i,i),a=!0;for(r=0;r<i;r++){let t=0;for(n=0;n<r;n++){let i=0;for(e=0;e<n;e++)i+=s.get(n,e)*s.get(r,e);i=(o.get(r,n)-i)/s.get(n,n),s.set(r,n,i),t+=i*i}for(t=o.get(r,r)-t,a&&=t>0,s.set(r,r,Math.sqrt(Math.max(t,0))),n=r+1;n<i;n++)s.set(r,n,0)}this.L=s,this.positiveDefinite=a}isPositiveDefinite(){return this.positiveDefinite}solve(t){t=k.checkMatrix(t);let e=this.L,r=e.rows;if(t.rows!==r)throw new Error("Matrix dimensions do not match");if(!1===this.isPositiveDefinite())throw new Error("Matrix is not positive definite");let n,o,i,s=t.columns,a=t.clone();for(i=0;i<r;i++)for(o=0;o<s;o++){for(n=0;n<i;n++)a.set(i,o,a.get(i,o)-a.get(n,o)*e.get(i,n));a.set(i,o,a.get(i,o)/e.get(i,i))}for(i=r-1;i>=0;i--)for(o=0;o<s;o++){for(n=i+1;n<r;n++)a.set(i,o,a.get(i,o)-a.get(n,o)*e.get(n,i));a.set(i,o,a.get(i,o)/e.get(i,i))}return a}get lowerTriangularMatrix(){return this.L}}class F{constructor(e,r={}){e=k.checkMatrix(e);let{Y:n}=r;const{scaleScores:o=!1,maxIterations:i=1e3,terminationCriteria:s=1e-10}=r;let a;if(n){if(n=t.isAnyArray(n)&&"number"==typeof n[0]?x.columnVector(n):k.checkMatrix(n),n.rows!==e.rows)throw new Error("Y should have the same number of rows as X");a=n.getColumnVector(0)}else a=e.getColumnVector(0);let u,c,h,l,d=1;for(let t=0;t<i&&d>s;t++)h=e.transpose().mmul(a).div(a.transpose().mmul(a).get(0,0)),h=h.div(h.norm()),u=e.mmul(h).div(h.transpose().mmul(h).get(0,0)),t>0&&(d=u.clone().sub(l).pow(2).sum()),l=u.clone(),n?(c=n.transpose().mmul(u).div(u.transpose().mmul(u).get(0,0)),c=c.div(c.norm()),a=n.mmul(c).div(c.transpose().mmul(c).get(0,0))):a=u;if(n){let t=e.transpose().mmul(u).div(u.transpose().mmul(u).get(0,0));t=t.div(t.norm());let r=e.clone().sub(u.clone().mmul(t.transpose())),o=a.transpose().mmul(u).div(u.transpose().mmul(u).get(0,0)),i=n.clone().sub(u.clone().mulS(o.get(0,0)).mmul(c.transpose()));this.t=u,this.p=t.transpose(),this.w=h.transpose(),this.q=c,this.u=a,this.s=u.transpose().mmul(u),this.xResidual=r,this.yResidual=i,this.betas=o}else this.w=h.transpose(),this.s=u.transpose().mmul(u).sqrt(),this.t=o?u.clone().div(this.s.get(0,0)):u,this.xResidual=e.sub(u.mmul(h.transpose()))}}return By.AbstractMatrix=m,By.CHO=T,By.CholeskyDecomposition=T,By.DistanceMatrix=E,By.EVD=R,By.EigenvalueDecomposition=R,By.LU=S,By.LuDecomposition=S,By.Matrix=x,By.MatrixColumnSelectionView=class extends M{constructor(t,e){d(t,e),super(t,t.rows,e.length),this.columnIndices=e}set(t,e,r){return this.matrix.set(t,this.columnIndices[e],r),this}get(t,e){return this.matrix.get(t,this.columnIndices[e])}},By.MatrixColumnView=class extends M{constructor(t,e){u(t,e),super(t,t.rows,1),this.column=e}set(t,e,r){return this.matrix.set(t,this.column,r),this}get(t){return this.matrix.get(t,this.column)}},By.MatrixFlipColumnView=class extends M{constructor(t){super(t,t.rows,t.columns)}set(t,e,r){return this.matrix.set(t,this.columns-e-1,r),this}get(t,e){return this.matrix.get(t,this.columns-e-1)}},By.MatrixFlipRowView=class extends M{constructor(t){super(t,t.rows,t.columns)}set(t,e,r){return this.matrix.set(this.rows-t-1,e,r),this}get(t,e){return this.matrix.get(this.rows-t-1,e)}},By.MatrixRowSelectionView=class extends M{constructor(t,e){l(t,e),super(t,e.length,t.columns),this.rowIndices=e}set(t,e,r){return this.matrix.set(this.rowIndices[t],e,r),this}get(t,e){return this.matrix.get(this.rowIndices[t],e)}},By.MatrixRowView=class extends M{constructor(t,e){a(t,e),super(t,1,t.columns),this.row=e}set(t,e,r){return this.matrix.set(this.row,e,r),this}get(t,e){return this.matrix.get(this.row,e)}},By.MatrixSelectionView=N,By.MatrixSubView=class extends M{constructor(t,e,r,n,o){f(t,e,r,n,o),super(t,r-e+1,o-n+1),this.startRow=e,this.startColumn=n}set(t,e,r){return this.matrix.set(this.startRow+t,this.startColumn+e,r),this}get(t,e){return this.matrix.get(this.startRow+t,this.startColumn+e)}},By.MatrixTransposeView=class extends M{constructor(t){super(t,t.columns,t.rows)}set(t,e,r){return this.matrix.set(e,t,r),this}get(t,e){return this.matrix.get(e,t)}},By.NIPALS=F,By.Nipals=F,By.QR=A,By.QrDecomposition=A,By.SVD=O,By.SingularValueDecomposition=O,By.SymmetricMatrix=b,By.WrapperMatrix1D=_,By.WrapperMatrix2D=k,By.correlation=function(e,r=e,n={}){e=new x(e);let o=!1;if("object"!=typeof r||x.isMatrix(r)||t.isAnyArray(r)?r=new x(r):(n=r,r=e,o=!0),e.rows!==r.rows)throw new TypeError("Both matrices must have the same number of rows");const{center:i=!0,scale:s=!0}=n;i&&(e.center("column"),o||r.center("column")),s&&(e.scale("column"),o||r.scale("column"));const a=e.standardDeviation("column",{unbiased:!0}),u=o?a:r.standardDeviation("column",{unbiased:!0}),c=e.transpose().mmul(r);for(let t=0;t<c.rows;t++)for(let r=0;r<c.columns;r++)c.set(t,r,c.get(t,r)*(1/(a[t]*u[r]))*(1/(e.rows-1)));return c},By.covariance=function(e,r=e,n={}){e=new x(e);let o=!1;if("object"!=typeof r||x.isMatrix(r)||t.isAnyArray(r)?r=new x(r):(n=r,r=e,o=!0),e.rows!==r.rows)throw new TypeError("Both matrices must have the same number of rows");const{center:i=!0}=n;i&&(e=e.center("column"),o||(r=r.center("column")));const s=e.transpose().mmul(r);for(let t=0;t<s.rows;t++)for(let r=0;r<s.columns;r++)s.set(t,r,s.get(t,r)*(1/(e.rows-1)));return s},By.default=x,By.determinant=function t(e){if((e=x.checkMatrix(e)).isSquare()){if(0===e.columns)return 1;let r,n,o,i;if(2===e.columns)return r=e.get(0,0),n=e.get(0,1),o=e.get(1,0),i=e.get(1,1),r*i-n*o;if(3===e.columns){let i,s,a;return i=new N(e,[1,2],[1,2]),s=new N(e,[1,2],[0,2]),a=new N(e,[1,2],[0,1]),r=e.get(0,0),n=e.get(0,1),o=e.get(0,2),r*t(i)-n*t(s)+o*t(a)}return new S(e).determinant}throw Error("determinant can only be calculated for a square matrix")},By.inverse=function(t,e=!1){return t=k.checkMatrix(t),e?new O(t).inverse():j(t,x.eye(t.rows))},By.linearDependencies=function(t,e={}){const{thresholdValue:r=1e-9,thresholdError:n=1e-9}=e;let o=(t=x.checkMatrix(t)).rows,i=new x(o,o);for(let e=0;e<o;e++){let s=x.columnVector(t.getRow(e)),a=t.subMatrixRow(C(o,e)).transpose(),u=new O(a).solve(s),c=x.sub(s,a.mmul(u)).abs().max();i.setRow(e,I(c,u,e,r,n))}return i},By.pseudoInverse=function(t,e=Number.EPSILON){if((t=x.checkMatrix(t)).isEmpty())return t.transpose();let r=new O(t,{autoTranspose:!0}),n=r.leftSingularVectors,o=r.rightSingularVectors,i=r.diagonal;for(let t=0;t<i.length;t++)Math.abs(i[t])>e?i[t]=1/i[t]:i[t]=0;return o.mmul(x.diag(i).mmul(n.transpose()))},By.solve=j,By.wrap=function(e,r){if(t.isAnyArray(e))return e[0]&&t.isAnyArray(e[0])?new k(e):new _(e,r);throw new Error("the argument is not an array")},By}var Qy=Xy(),Jy=rs(Qy);const Ky=Qy.Matrix,Zy=Qy.SingularValueDecomposition;Jy.Matrix?Jy.Matrix:Qy.Matrix;const tw={center:[0,0],linkDistance:50};class ew extends gt{constructor(){super(...arguments),this.id="mds"}getDefaultOptions(){return tw}layout(){return r(this,void 0,void 0,function*(){const{linkDistance:t=tw.linkDistance}=this.options,{center:e}=L(this.options),r=this.model.nodeCount();if(0===r||1===r)return void E(this.model,e);const n=k(M(this.model,!1));rw(n);const o=N(n,t),i=nw(o);let s=0;this.model.forEachNode(t=>{const r=i[s++];t.x=r[0]+e[0],t.y=r[1]+e[1]})})}}const rw=t=>{let e=Number.NEGATIVE_INFINITY;const r=[],n=t.length;for(let o=0;o<n;o++){const n=t[o],i=n.length;for(let t=0;t<i;t++){const i=n[t];i===1/0?r.push([o,t]):e<i&&(e=i)}}for(let n=0;n<r.length;n++){const[o,i]=r[n];t[o][i]=e}},nw=(t,e=2,r=tw.linkDistance)=>{try{const r=t.length,n=new Ky(r,r);for(let e=0;e<r;e++)for(let o=0;o<r;o++){const r=t[e][o];n.set(e,o,-.5*r*r)}const o=n.mean("row"),i=n.mean("column"),s=n.mean();n.add(s).subRowVector(o).subColumnVector(i);const a=new Zy(n),u=Ky.sqrt(a.diagonalMatrix).diagonal(),c=a.leftSingularVectors,h=u,l=[];for(let t=0;t<c.rows;t++){const r=[];for(let n=0;n<e;n++)r.push(c.get(t,n)*h[n]);l.push(r)}return l}catch(e){const n=[];for(let e=0;e<t.length;e++){const t=Math.random()*r,e=Math.random()*r;n.push([t,e])}return n}},ow={maxIteration:10,width:10,speed:100,gravity:10,k:5},iw=(t,e,r,n,o)=>{let i=0;t.forEachNode(s=>{let a=0;t.forEachNode(t=>{if(a<=i)return void a++;if(s.id===t.id)return;if(n.get(s.id)!==n.get(t.id))return;let u=s.x-t.x,c=s.y-t.y,h=Math.sqrt(u*u+c*c);if(0===h){h=1;const t=i>a?1:-1;u=.01*t,c=.01*t}const l=Math.max(...F(o(s._original)));if(h<Math.max(...F(o(t._original)))/2+l/2){const n=r*r/h,o=e.get(s.id),i=e.get(t.id),a=u/h*n,l=c/h*n;e.set(s.id,{x:o.x+a,y:o.y+l}),e.set(t.id,{x:i.x-a,y:i.y-l})}a++}),i++})},sw=(t,e,r,n,o,i,s)=>{n&&t.forEachNode(t=>{const r=t.x-o.x,n=t.y-o.y,i=Math.sqrt(r*r+n*n);let s=n/i,a=-r/i;const u=e.get(t.id),c=Math.sqrt(u.x*u.x+u.y*u.y);let h=Math.acos((s*u.x+a*u.y)/c);h>Math.PI/2&&(h-=Math.PI/2,s*=-1,a*=-1);const l=Math.cos(h)*c;e.set(t.id,{x:s*l,y:a*l})});let a=0,u=0;return t.forEachNode(t=>{if(t.id===o.id)return;const c=e.get(t.id),h=Math.sqrt(c.x*c.x+c.y*c.y);if(h>0){const e=Math.min(i*(r/800),h);if(t.x+=c.x/h*e,t.y+=c.y/h*e,n){let e=t.x-o.x,r=t.y-o.y;const n=Math.sqrt(e*e+r*r);e=e/n*s.get(t.id),r=r/n*s.get(t.id),t.x=o.x+e,t.y=o.y+r}a+=e,u++}}),u>0?a/u:0},aw={focusNode:null,linkDistance:50,maxIteration:1e3,maxPreventOverlapIteration:200,preventOverlap:!1,sortStrength:10,strictRadial:!0,unitRadius:null};class uw extends gt{constructor(){super(...arguments),this.id="radial"}getDefaultOptions(){return aw}layout(){return r(this,void 0,void 0,function*(){const{width:t,height:e,center:r}=L(this.options),n=this.model.nodeCount();if(!n||1===n)return E(this.model,r);const{focusNode:o,linkDistance:i=aw.linkDistance,maxIteration:s=aw.maxIteration,maxPreventOverlapIteration:a=aw.maxPreventOverlapIteration,nodeSize:u,nodeSpacing:c,preventOverlap:h,sortBy:l,sortStrength:d=aw.sortStrength,strictRadial:f,unitRadius:g}=this.options,p=o&&this.model.node(o)||this.model.firstNode(),v=this.model.nodeIndexOf(p.id),m=k(M(this.model,!1)),y=dw(m,v);lw(m,v,y+1);const w=m[v],x=(t-r[0]>r[0]?r[0]:t-r[0])||t/2,b=(e-r[1]>r[1]?r[1]:e-r[1])||e/2,N=Math.min(x,b),_=Math.max(...w),S=[],z=new Map,A=null!=g?g:N/_;w.forEach((t,e)=>{const r=t*A;S.push(r),z.set(this.model.nodeAt(e).id,r)});const O=cw(this.model,m,i,S,A,l,d),j=nw(O,2,i),C=j[v];let I=0;if(this.model.forEachNode(t=>{const e=j[I];t.x=e[0]-C[0],t.y=e[1]-C[1],I++}),this.run(s,O,S,v),this.model.forEachNode(t=>{t.x+=r[0],t.y+=r[1]}),h){const e={nodeSizeFunc:V(u,c),radiiMap:z,width:t,strictRadial:Boolean(f),focusNode:p,maxIteration:a,k:n/4.5};((t,e)=>{const r=Object.assign(Object.assign({},ow),e),{maxIteration:n,width:o,k:i,speed:s=ow.speed,strictRadial:a,focusNode:u,radiiMap:c,nodeSizeFunc:h}=r,l=.002*i,d=new Map,f=o/10;for(let e=0;e<n&&(t.forEachNode(t=>{d.set(t.id,{x:0,y:0})}),iw(t,d,i,c,h),!(sw(t,d,s,a,u,f,c)<l));e++);})(this.model,e)}})}run(t,e,r,n){const o=hw(e),i=this.model.nodeCount(),s=this.model.nodes(),a=new Float64Array(i),u=new Float64Array(i);for(let t=0;t<i;t++)a[t]=s[t].x,u[t]=s[t].y;for(let c=0;c<=t;c++){const h=c/t,l=1-h;for(let t=0;t<i;t++){if(t===n)continue;const c=a[t],d=u[t],f=Math.sqrt(c*c+d*d),g=0===f?0:1/f;let p=0,v=0,m=0;for(let r=0;r<i;r++){if(t===r)continue;const n=a[r],i=u[r],s=Math.sqrt((c-n)*(c-n)+(d-i)*(d-i)),h=0===s?0:1/s,l=e[r][t];m+=o[t][r],p+=o[t][r]*(n+l*(c-n)*h),v+=o[t][r]*(i+l*(d-i)*h)}const y=0===r[t]?0:1/r[t];m*=l,m+=h*y*y,p*=l,p+=h*y*c*g,v*=l,v+=h*y*d*g,a[t]=p/m,u[t]=v/m,s[t].x=a[t],s[t].y=u[t]}}}}const cw=(t,e,r,n,o,i,s)=>{const a=e.length,u=new Array(a),c=new Array(a);for(let t=0;t<a;t++)c[t]=n[t]/o;const h=(r+o)/2,l=new Map,d="function"==typeof i?i:null,f="data"===i;for(let o=0;o<a;o++){const i=e[o],g=new Array(a);u[o]=g;const p=c[o]||1;for(let e=0;e<a;e++){if(o===e){g[e]=0;continue}const a=i[e];if(n[o]===n[e])if(f)g[e]=a*Math.abs(o-e)*s/p;else if(d){const r=t.nodeAt(o),n=t.nodeAt(e);let i=l.get(r.id);if(void 0===i){const t=d(r._original)||0;i="string"==typeof t?t.charCodeAt(0):Number(t||0),l.set(r.id,i)}let u=l.get(n.id);if(void 0===u){const t=d(n._original)||0;u="string"==typeof t?t.charCodeAt(0):Number(t||0),l.set(n.id,u)}g[e]=a*Math.abs(i-u)*s/p}else g[e]=a*r/p;else g[e]=a*h}}return u},hw=t=>{const e=t.length,r=t[0].length,n=[];for(let o=0;o<e;o++){const e=[];for(let n=0;n<r;n++)0!==t[o][n]?e.push(1/(t[o][n]*t[o][n])):e.push(0);n.push(e)}return n},lw=(t,e,r)=>{const n=t.length;for(let o=0;o<n;o++)if(t[e][o]===1/0){t[e][o]=r,t[o][e]=r;for(let i=0;i<n;i++)t[o][i]!==1/0&&t[e][i]===1/0&&(t[e][i]=r+t[o][i],t[i][e]=r+t[o][i])}for(let r=0;r<n;r++)if(r!==e)for(let o=0;o<n;o++)if(t[r][o]===1/0){let n=Math.abs(t[e][r]-t[e][o]);n=0===n?1:n,t[r][o]=n}},dw=(t,e)=>{const r=t[e];let n=0;for(let t=0;t<r.length;t++)r[t]!==1/0&&(n=Math.max(n,r[t]));return n};class fw extends gt{constructor(){super(...arguments),this.id="random"}getDefaultOptions(){return{center:[0,0],width:300,height:300}}layout(){return r(this,void 0,void 0,function*(){const{width:t,height:e,center:r}=L(this.options);this.model.forEachNode(n=>{n.x=gw(t)+r[0],n.y=gw(e)+r[1]})})}}const gw=t=>.9*(Math.random()-.5)*t,pw={"antv-dagre":hr,"d3-force-3d":Zn,"d3-force":dn,"force-atlas2":jy,circular:fr,concentric:pr,dagre:py,force:_y,fruchterman:Ry,grid:Py,mds:ew,radial:uw,random:fw},vw={layout:t=>t?{type:"concentric",preventOverlap:!0}:{type:"force",preventOverlap:!0},nodeSize:20,nodeSpacing:10,comboPadding:20,comboSpacing:80},mw="root";t.AntVDagreLayout=hr,t.BaseLayout=gt,t.CircularLayout=fr,t.ComboCombinedLayout=class extends gt{constructor(){super(...arguments),this.id="combo-combined",this.relativePositions=new Map,this.getParentId=t=>t.parentId||mw}getDefaultOptions(){return vw}layout(){return r(this,void 0,void 0,function*(){const{center:t}=L(this.options);this.resetLayoutState();const e=this.buildHierarchyTree();yield this.layoutHierarchy(e),this.convertToGlobalPositions(e,t),this.applyPositionsToModel(e)})}isCombo(t){return Boolean(t.isCombo)}resetLayoutState(){this.relativePositions.clear()}layoutHierarchy(t){return r(this,void 0,void 0,function*(){for(const e of t.children||[])this.isCombo(e)&&(yield this.layoutHierarchy(e));const e=t.children||[];if(0===e.length)return t.size=[0,0,0],void(t.parentId=t.id===mw?null:t.parentId);const n=this.getLayoutConfig(t),{type:o}=n,i=function(t,e){var r={};for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&e.indexOf(n)<0&&(r[n]=t[n]);if(null!=t&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(n=Object.getOwnPropertySymbols(t);o<n.length;o++)e.indexOf(n[o])<0&&Object.prototype.propertyIsEnumerable.call(t,n[o])&&(r[n[o]]=t[n[o]])}return r}(n,["type"]),s=new(this.getLayoutClass(o))(i),a=this.createTemporaryGraphData(e);yield function(t,e,n={}){var o;return r(this,void 0,void 0,function*(){return vt(t)?(t.execute(e,n),t.stop(),t.tick(null!==(o=n.iterations)&&void 0!==o?o:300)):yield t.execute(e,n)})}(s,a,{});const u=s.model.nodes();this.recordRelativePositions(u,t);const{center:c,width:h,height:l}=this.calculateComboBounds(t);t.size=[h,l,0],(t.children||[]).forEach(t=>{const e=this.relativePositions.get(t.id);if(!e)return;const r=Object.assign(Object.assign({},e),{x:e.x-c[0],y:e.y-c[1]});this.relativePositions.set(t.id,r)})})}recordRelativePositions(t,e){const r=this.calculateComboCenter(t);t.forEach(t=>{this.relativePositions.set(t.id,{x:t.x-r[0],y:t.y-r[1],relativeTo:String(e.id)})})}buildHierarchyTree(){const t={id:mw,isCombo:!0,children:[],parentId:null},e=new Map;return e.set(mw,t),this.model.forEachNode(t=>{if(this.isCombo(t)){const r=Object.assign(Object.assign({},t),{children:[],parentId:this.getParentId(t)});e.set(String(t.id),r)}}),this.model.forEachNode(t=>{const r=e.get(this.getParentId(t));if(this.isCombo(t)){const n=e.get(String(t.id));r&&n&&(r.children.push(n),n.parentId=r.id)}else r&&r.children.push(Object.assign(Object.assign({},t),{children:[],parentId:this.getParentId(t)}))}),t}convertToGlobalPositions(t,e){var r,n;const o=t.id===mw?null:this.relativePositions.get(t.id),i=e[0]+(null!==(r=null==o?void 0:o.x)&&void 0!==r?r:0),s=e[1]+(null!==(n=null==o?void 0:o.y)&&void 0!==n?n:0);t.x=i,t.y=s,(t.children||[]).forEach(t=>{var e,r;const n=this.relativePositions.get(t.id);t.x=i+(null!==(e=null==n?void 0:n.x)&&void 0!==e?e:0),t.y=s+(null!==(r=null==n?void 0:n.y)&&void 0!==r?r:0),t.size=this.getNodeLikeSize(t,!1),this.isCombo(t)&&this.convertToGlobalPositions(t,[i,s])})}getLayoutConfig(t){const{layout:e}=this.options;if("function"==typeof e){const r=t.id===mw?null:t.id;return this.normalizeLayoutConfig(e(r))}return this.normalizeLayoutConfig(e)}normalizeLayoutConfig(t){const e=Object.assign(Object.assign({type:"concentric"},L(this.options)),{nodeSize:t=>t.size,nodeSpacing:0});return t?"string"==typeof t?Object.assign(Object.assign({},e),{type:t}):Object.assign(Object.assign({},e),t):e}getLayoutClass(t){return pw[t]||pw.concentric}createTemporaryGraphData(t){const e=t.map(t=>Object.assign(Object.assign({},t),{size:this.getNodeLikeSize(t)})),r=new Set(t.map(t=>String(t.id))),n=[],o=t=>{let e=String(t);const n=new Set;for(;e&&!n.has(e);){if(r.has(e))return e;n.add(e);const t=this.model.node(e),o=null==t?void 0:t.parentId;e=null==o?null:String(o)}return null};return this.model.forEachEdge(t=>{const e=o(String(t.source)),r=o(String(t.target));e&&r&&e!==r&&n.push({source:e,target:r})}),{nodes:e,edges:n}}calculateComboCenter(t){if(0===t.length)return[0,0];const e=new Map;t.forEach(t=>{const r=this.getNodeLikeSize(t);e.set(t.id,r)});let r=1/0,n=1/0,o=-1/0,i=-1/0;return t.forEach(t=>{const[s=0,a=0]=e.get(t.id);r=Math.min(r,t.x-s/2),n=Math.min(n,t.y-a/2),o=Math.max(o,t.x+s/2),i=Math.max(i,t.y+a/2)}),Number.isFinite(r)&&Number.isFinite(n)?[(r+o)/2,(n+i)/2]:[0,0]}calculateComboBounds(t){const e=t.children||[];if(0===e.length)return{center:[0,0],width:0,height:0};let r=1/0,n=1/0,o=-1/0,i=-1/0;if(e.forEach(t=>{var e,s;const a=this.relativePositions.get(t.id),u=null!==(e=null==a?void 0:a.x)&&void 0!==e?e:0,c=null!==(s=null==a?void 0:a.y)&&void 0!==s?s:0,[h,l]=this.getNodeLikeSize(t);r=Math.min(r,u-h/2),n=Math.min(n,c-l/2),o=Math.max(o,u+h/2),i=Math.max(i,c+l/2)}),!Number.isFinite(r)||!Number.isFinite(n))return{center:[0,0],width:0,height:0};const s=D(this.options.comboPadding,20)(t._original);return{center:[(r+o)/2,(n+i)/2],width:o-r+2*s,height:i-n+2*s}}getNodeLikeSize(t,e=!0){return this.isCombo(t)?this.getComboSize(t,e):this.getNodeSize(t,e)}getNodeSize(t,e=!0){const{nodeSize:r,nodeSpacing:n}=this.options;return F(V(r,e?n:0)(t._original))}getComboSize(t,e=!0){const r=D(this.options.comboSpacing,0),n=e?r(t._original):0,[o,i]=t.size;return[o+n/2,i+n/2,0]}applyPositionsToModel(t){const e=t=>{const e=this.model.node(t.id);e&&(e.x=t.x,e.y=t.y,t.size&&(e.size=t.size))},r=t=>{t.id!==mw&&e(t),(t.children||[]).forEach(t=>{this.isCombo(t)?r(t):e(t)})};r(t)}},t.ConcentricLayout=pr,t.D3Force3DLayout=Zn,t.D3ForceLayout=dn,t.DagreLayout=py,t.ForceAtlas2Layout=jy,t.ForceLayout=_y,t.FruchtermanLayout=Ry,t.GraphLib=B,t.GridLayout=Py,t.MDSLayout=ew,t.RadialLayout=uw,t.RandomLayout=fw,t.RuntimeContext=W,t.Supervisor=ft,t.applySingleNodeLayout=E,t.assignDefined=O,t.floydWarshall=t=>{const e=t.length,r=Array.from({length:e},()=>new Array(e));for(let n=0;n<e;n++){const o=t[n],i=r[n];for(let t=0;t<e;t++)i[t]=n===t?0:o[t]>0?o[t]:1/0}for(let t=0;t<e;t++){const n=r[t];for(let o=0;o<e;o++){const i=r[o],s=i[t];if(s!==1/0)for(let t=0;t<e;t++){const e=n[t];if(e===1/0)continue;const r=s+e;r<i[t]&&(i[t]=r)}}}return r},t.getAdjList=M,t.getAdjMatrix=(t,e)=>{const r=t.nodeCount(),n=Array.from({length:r},()=>new Array(r)),o={};let i=0;return t.forEachNode(t=>{o[t.id]=i++}),t.forEachEdge(t=>{const r=o[t.source],i=o[t.target];void 0!==r&&void 0!==i&&(n[r][i]=1,e||(n[i][r]=1))}),n},t.getEuclideanDistance=(t,e)=>Math.sqrt((t.x-e.x)*(t.x-e.x)+(t.y-e.y)*(t.y-e.y)),t.getLayoutBBox=t=>{let e=1/0,r=1/0,n=-1/0,o=-1/0;return t.forEach(t=>{let i=t.data.size;b(i)?1===i.length&&(i=[i[0],i[0]]):void 0===i||isNaN(i)?i=[30,30]:l(i)&&(i=[i,i]);const s=[i[0]/2,i[1]/2],a=t.data.x-s[0],u=t.data.x+s[0],c=t.data.y-s[1],h=t.data.y+s[1];e>a&&(e=a),r>c&&(r=c),n<u&&(n=u),o<h&&(o=h)}),{minX:e,minY:r,maxX:n,maxY:o}},t.getNestedValue=A,t.graphTreeDfs=_,t.initNodePosition=U,t.isArray=b,t.isLayoutWithIterations=vt,t.johnson=k,t.normalizeViewport=L,t.orderByDegree=C,t.orderById=I,t.orderBySorter=R,t.orderByTopology=P,t.parsePoint=T,t.parseSize=F,t.registry=pw,t.scaleMatrix=N,t.setNestedValue=function(t,e,r){!function(t,e,r){var n=t,o=h(e)?e.split("."):e;o.forEach(function(t,e){e<o.length-1?(s(n[t])||(n[t]=l(o[e+1])?[]:{}),n=n[t]):n[t]=r})}(t,String(e).split("."),r)},t.toPointObject=function(t){var e;return{x:t[0],y:t[1],z:null!==(e=t[2])&&void 0!==e?e:0}}});
|
|
8
7
|
//# sourceMappingURL=index.min.js.map
|