From 37be4cbb0ef4bb46c7e39236f56bcf524f4c8997 Mon Sep 17 00:00:00 2001 From: Kirigaya <1193466151@qq.com> Date: Thu, 26 Dec 2024 23:56:27 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=20libavoid?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/avoid.wasm | Bin 0 -> 485284 bytes public/index.html | 1 + src/App.vue | 50 +- src/hook/global.js | 4 + src/hook/render/cell.js | 3 + src/hook/render/index.js | 7 +- src/hook/utils.js | 5 + src/i18n/ar.json | 3 +- src/i18n/de.json | 3 +- src/i18n/en.json | 5 +- src/i18n/fr.json | 3 +- src/i18n/ja.json | 3 +- src/i18n/ko.json | 3 +- src/i18n/ru.json | 3 +- src/i18n/zh-cn.json | 3 +- src/i18n/zh-tw.json | 3 +- src/lib/avoid.doc.js | 130 ++ src/lib/avoid.js | 3578 ++++++++++++++++++++++++++++++++++++++ 18 files changed, 3789 insertions(+), 18 deletions(-) create mode 100644 public/avoid.wasm create mode 100644 src/hook/utils.js create mode 100644 src/lib/avoid.doc.js create mode 100644 src/lib/avoid.js diff --git a/public/avoid.wasm b/public/avoid.wasm new file mode 100644 index 0000000000000000000000000000000000000000..0018725bf4ec41463b10bdcecfe3c715b4b83815 GIT binary patch literal 485284 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

fya@C?_ZF@H*uGATf(Nt$LO=60FT!W>> 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 s-bVg#ZPNvL$i+~ diff --git a/src/App.vue b/src/App.vue index 09bbb28..16a56a5 100644 --- a/src/App.vue +++ b/src/App.vue @@ -10,8 +10,13 @@ import Render from '@/components/render'; import RightNav from '@/components/right-nav.vue'; import { onMounted, watch } from 'vue'; import { setDefaultCss } from './hook/css'; +import { useI18n } from 'vue-i18n'; +const { t } = useI18n(); + +import { AvoidLib } from '@/lib/avoid'; import { globalLookup, globalSetting } from './hook/global'; +import { ElLoading } from 'element-plus'; // 监听 globalSetting 并录入 localStorage watch( @@ -27,19 +32,56 @@ onMounted(async () => { // 设置 css 宏,纠正样式 setDefaultCss(); + const loading = new ElLoading.service({ + lock: true, + text: t('loading'), + background: 'rgba(0, 0, 0, 0.7)' + }); + // 初始化载入 netlist 的 json 文件 - const [ netJson, skinBinary ] = await window.readNetFile(); + const [ netJson, skinBinary ] = await window.readNetFile(); + + // 载入 avoid lib + const wasmBinaryResponse = await fetch(window.avoidWasm); + const wasmBinary = await wasmBinaryResponse.arrayBuffer(); + await AvoidLib.load({ wasmBinary }); + const Avoid = AvoidLib.getInstance(); + globalLookup.Avoid = Avoid; + + + const router = new Avoid.Router(Avoid.PolyLineRouting); + const srcPt = new Avoid.Point(1.2, 0.5); + const dstPt = new Avoid.Point(1.5, 4); + const srcConnEnd = new Avoid.ConnEnd(srcPt); + const dstConnEnd = new Avoid.ConnEnd(dstPt); + const connRef = new Avoid.ConnRef(router); + + + function connCallback(connRefPtr) { + const connRef = Avoid.wrapPointer(connRefPtr, Avoid.ConnRef); + console.log(`Connector ${connRef.id()} needs rerouting!`); + const route = connRef.displayRoute(); + console.log('New path: '); + for (let i = 0; i < route.size(); i++) { + console.log(`(${route.get_ps(i).x}, ${route.get_ps(i).y})`); + } + } + + connRef.setCallback(connCallback, connRef); + // Force inital callback: + router.processTransaction(); + const render = globalLookup.netlistRender; const skinManager = globalLookup.skinManager; skinManager.load(skinBinary); - render.load(netJson); + const layout = await render.createLayout(); const svg = await render.render(layout, '#netlist'); - - console.log(svg); + + loading.close(); }); diff --git a/src/hook/global.js b/src/hook/global.js index ece5821..f842c60 100644 --- a/src/hook/global.js +++ b/src/hook/global.js @@ -22,6 +22,10 @@ export const globalLookup = { */ netlistRender: new NetlistRender(), + /** + * @type {Avoid} + */ + Avoid: undefined }; function loadSetting() { diff --git a/src/hook/render/cell.js b/src/hook/render/cell.js index 2b8d983..20eb19f 100644 --- a/src/hook/render/cell.js +++ b/src/hook/render/cell.js @@ -239,6 +239,9 @@ async function dragStart(event, manager, rootRender) { context.elkGraph.children = nodes; context.elkGraph.edges = edges; + context.elkGraph.layoutOptions = { + 'elk.algorithm': 'layered' + }; } /** diff --git a/src/hook/render/index.js b/src/hook/render/index.js index e6f9513..5f5ce67 100644 --- a/src/hook/render/index.js +++ b/src/hook/render/index.js @@ -9,6 +9,7 @@ import { InstantiationRender } from './instantiation'; import { CellRender } from './cell'; import { ConnectionRender } from './connection'; import { WireRender } from './wire'; +import { pinkLog } from '../utils'; export class NetlistRender { /** @@ -113,10 +114,8 @@ export class NetlistRender { const start = performance.now(); const layoutGraph = await this.elk.layout(graph); const timecost = (performance.now() - start).toFixed(3); - console.log( - `%c 布局计算耗时 ${timecost} ms`, - 'background-color: #CB81DA; color: white; padding: 3px; border-radius: 3px;' - ); + + pinkLog(`布局计算耗时 ${timecost} ms`); return layoutGraph; } diff --git a/src/hook/utils.js b/src/hook/utils.js new file mode 100644 index 0000000..70c42f2 --- /dev/null +++ b/src/hook/utils.js @@ -0,0 +1,5 @@ +const pinkLogStyle = 'background-color: #CB81DA; color: white; padding: 3px; border-radius: 3px;'; + +export function pinkLog(message) { + console.log('%c' + message, pinkLogStyle); +} \ No newline at end of file diff --git a/src/i18n/ar.json b/src/i18n/ar.json index 9d780dd..44904d9 100644 --- a/src/i18n/ar.json +++ b/src/i18n/ar.json @@ -14,5 +14,6 @@ "usermanual.click-move": "انقر + اسحب", "usermanual.move-view": "عرض الجوال", "usermanual.scale-view": "تكبير/تصغير العرض", - "usermanual.scale-view-more": "تكبير العرض (مقياس أكبر)" + "usermanual.scale-view-more": "تكبير العرض (مقياس أكبر)", + "loading": "جاري التحميل" } \ No newline at end of file diff --git a/src/i18n/de.json b/src/i18n/de.json index 1ea9544..df284d2 100644 --- a/src/i18n/de.json +++ b/src/i18n/de.json @@ -14,5 +14,6 @@ "usermanual.click-move": "Klicken + Ziehen", "usermanual.move-view": "Mobile Ansicht", "usermanual.scale-view": "Ansicht zoomen", - "usermanual.scale-view-more": "Ansicht vergrößern (größerer Maßstab)" + "usermanual.scale-view-more": "Ansicht vergrößern (größerer Maßstab)", + "loading": "Laden" } \ No newline at end of file diff --git a/src/i18n/en.json b/src/i18n/en.json index 78f761d..cd779fe 100644 --- a/src/i18n/en.json +++ b/src/i18n/en.json @@ -3,7 +3,7 @@ "general-setting": "General", "appearance-setting": "Appearance", "current-version": "current version", - "copyright": "The copyright of this software belongs to Digital-IDE project team. Welcome to Star.", + "copyright": "The copyright of this software belongs to Digital-IDE project team. Welcome to Star.", "confirm": "confirm", "cancel": "cancel", "tips": "Tips", @@ -14,5 +14,6 @@ "usermanual.click-move": "Click + Drag", "usermanual.move-view": "Mobile View", "usermanual.scale-view": "View zoom", - "usermanual.scale-view-more": "View zoom (larger scale)" + "usermanual.scale-view-more": "View zoom (larger scale)", + "loading": "loading" } \ No newline at end of file diff --git a/src/i18n/fr.json b/src/i18n/fr.json index dd7395d..b18ac45 100644 --- a/src/i18n/fr.json +++ b/src/i18n/fr.json @@ -14,5 +14,6 @@ "usermanual.click-move": "Cliquer + Glisser", "usermanual.move-view": "Vue mobile", "usermanual.scale-view": "Zoom de la vue", - "usermanual.scale-view-more": "Zoom de la vue (échelle plus grande)" + "usermanual.scale-view-more": "Zoom de la vue (échelle plus grande)", + "loading": "Chargement" } \ No newline at end of file diff --git a/src/i18n/ja.json b/src/i18n/ja.json index 2f78b80..2ca324d 100644 --- a/src/i18n/ja.json +++ b/src/i18n/ja.json @@ -14,5 +14,6 @@ "usermanual.click-move": "クリック + ドラッグ", "usermanual.move-view": "モバイル表示", "usermanual.scale-view": "ビューのズーム", - "usermanual.scale-view-more": "ビューのズーム(より大きなスケール)" + "usermanual.scale-view-more": "ビューのズーム(より大きなスケール)", + "loading": "読み込み中" } \ No newline at end of file diff --git a/src/i18n/ko.json b/src/i18n/ko.json index 7b6071a..4a2d2e8 100644 --- a/src/i18n/ko.json +++ b/src/i18n/ko.json @@ -14,5 +14,6 @@ "usermanual.click-move": "클릭 + 드래그", "usermanual.move-view": "모바일 보기", "usermanual.scale-view": "보기 확대/축소", - "usermanual.scale-view-more": "보기 확대 (더 큰 스케일)" + "usermanual.scale-view-more": "보기 확대 (더 큰 스케일)", + "loading": "로딩 중" } \ No newline at end of file diff --git a/src/i18n/ru.json b/src/i18n/ru.json index db969bd..3765b53 100644 --- a/src/i18n/ru.json +++ b/src/i18n/ru.json @@ -14,5 +14,6 @@ "usermanual.click-move": "Клик + Перетаскивание", "usermanual.move-view": "Мобильный вид", "usermanual.scale-view": "Масштабирование вида", - "usermanual.scale-view-more": "Масштабирование вида (больший масштаб)" + "usermanual.scale-view-more": "Масштабирование вида (больший масштаб)", + "loading": "Загрузка" } \ No newline at end of file diff --git a/src/i18n/zh-cn.json b/src/i18n/zh-cn.json index f62f2c5..a2bf7b6 100644 --- a/src/i18n/zh-cn.json +++ b/src/i18n/zh-cn.json @@ -14,5 +14,6 @@ "usermanual.click-move": "点击 + 拖动", "usermanual.move-view": "移动视图", "usermanual.scale-view": "视图缩放", - "usermanual.scale-view-more": "视图缩放(尺度更大)" + "usermanual.scale-view-more": "视图缩放(尺度更大)", + "loading": "加载中" } \ No newline at end of file diff --git a/src/i18n/zh-tw.json b/src/i18n/zh-tw.json index dc34b98..36d8b00 100644 --- a/src/i18n/zh-tw.json +++ b/src/i18n/zh-tw.json @@ -14,5 +14,6 @@ "usermanual.click-move": "點擊 + 拖動", "usermanual.move-view": "移動視圖", "usermanual.scale-view": "視圖縮放", - "usermanual.scale-view-more": "視圖縮放(尺度更大)" + "usermanual.scale-view-more": "視圖縮放(尺度更大)", + "loading": "加載中" } \ No newline at end of file diff --git a/src/lib/avoid.doc.js b/src/lib/avoid.doc.js new file mode 100644 index 0000000..4f39fba --- /dev/null +++ b/src/lib/avoid.doc.js @@ -0,0 +1,130 @@ +/** + * Represents a point with x and y coordinates. + * @typedef {Object} Point + * @property {number} x - The x-coordinate. + * @property {number} y - The y-coordinate. + */ + +/** + * Represents a router for managing shapes and connectors. + * @typedef {Object} Router + * @property {function(number): void} processTransaction - Processes the current transaction. + * @property {function(): void} printInfo - Prints router information. + * @property {function(ConnRef): void} deleteConnector - Deletes a connector. + * @property {function(ShapeRef, Polygon): void} moveShape - Moves a shape to a new polygon. + * @property {function(ShapeRef, number, number): void} moveShape - Moves a shape by a specified offset. + * @property {function(ShapeRef): void} deleteShape - Deletes a shape. + * @property {function(number, number): void} setRoutingParameter - Sets a routing parameter. + * @property {function(number, boolean): void} setRoutingOption - Sets a routing option. + */ + +/** + * Represents a polyline. + * @typedef {Object} PolyLine + * @property {function(): number} size - Returns the number of points in the polyline. + * @property {function(number): Point} get_ps - Returns the point at the specified index. + */ + +/** + * Represents a connection endpoint. + * @typedef {Object} ConnEnd + * @property {function(Point): void} constructor - Creates a connection endpoint from a point. + * @property {function(ShapeRef, number): void} constructor - Creates a connection endpoint from a shape reference. + * @property {function(JunctionRef, number): ConnEnd} createConnEndFromJunctionRef - Creates a connection endpoint from a junction reference. + */ + +/** + * Represents a connector reference. + * @typedef {Object} ConnRef + * @property {function(Router): void} constructor - Creates a connector reference. + * @property {function(Router, ConnEnd, ConnEnd): void} constructor - Creates a connector reference with endpoints. + * @property {function(): PolyLine} displayRoute - Displays the route of the connector. + * @property {function(ConnEnd): void} setSourceEndpoint - Sets the source endpoint of the connector. + * @property {function(ConnEnd): void} setDestEndpoint - Sets the destination endpoint of the connector. + * @property {function(number): void} setRoutingType - Sets the routing type of the connector. + * @property {function(function(number): void, ConnRef): void} setCallback - Sets a callback for the connector. + * @property {function(boolean): void} setHateCrossings - Sets whether the connector hates crossings. + * @property {function(): boolean} doesHateCrossings - Returns whether the connector hates crossings. + */ + +/** + * Enum for connection direction flags. + * @typedef {Object} ConnDirFlags + */ + +/** + * Represents a shape connection pin. + * @typedef {Object} ShapeConnectionPin + * @property {function(ShapeRef, number, number, number, boolean, number, ConnDirFlags): void} constructor - Creates a shape connection pin. + * @property {function(JunctionRef, number, ConnDirFlags): void} constructor - Creates a shape connection pin from a junction reference. + * @property {function(number): void} setConnectionCost - Sets the connection cost. + * @property {function(boolean): void} setExclusive - Sets whether the pin is exclusive. + * @property {function(): boolean} isExclusive - Returns whether the pin is exclusive. + * @property {function(): ConnDirFlags} directions - Returns the visible directions. + * @property {function(): Point} position - Returns the position of the pin. + * @property {function(Point): void} updatePosition - Updates the position of the pin. + */ + +/** + * Represents a junction reference. + * @typedef {Object} JunctionRef + * @property {function(Router, Point, number): void} constructor - Creates a junction reference. + * @property {function(): Point} position - Returns the position of the junction. + * @property {function(boolean): void} setPositionFixed - Sets whether the position is fixed. + * @property {function(): boolean} positionFixed - Returns whether the position is fixed. + * @property {function(): Point} recommendedPosition - Returns the recommended position. + */ + +/** + * Represents a polygon. + * @typedef {Object} Polygon + */ + +/** + * Represents a rectangle. + * @typedef {Object} Rectangle + * @property {function(Point, number, number): void} constructor - Creates a rectangle from a center point, width, and height. + * @property {function(Point, Point): void} constructor - Creates a rectangle from top-left and bottom-right points. + */ + +/** + * Represents an obstacle. + * @typedef {Object} Obstacle + * @property {function(): number} id - Returns the ID of the obstacle. + * @property {function(): Polygon} polygon - Returns the polygon of the obstacle. + * @property {function(): Router} router - Returns the router of the obstacle. + * @property {function(): Point} position - Returns the position of the obstacle. + * @property {function(Polygon): void} setNewPoly - Sets a new polygon for the obstacle. + */ + +/** + * Represents a shape reference. + * @typedef {Object} ShapeRef + * @property {function(Router, Polygon): void} constructor - Creates a shape reference. + */ + +/** + * Represents the Avoid library. + * @typedef {Object} Avoid + * @property {number} PolyLineRouting - Polyline routing flag. + * @property {number} OrthogonalRouting - Orthogonal routing flag. + * @property {ConnEnd} ConnEnd - ConnEnd class. + * @property {ConnRef} ConnRef - ConnRef class. + * @property {Point} Point - Point class. + * @property {Rectangle} Rectangle - Rectangle class. + * @property {Router} Router - Router class. + * @property {Obstacle} Obstacle - Obstacle class. + * @property {ShapeRef} ShapeRef - ShapeRef class. + * @property {JunctionRef} JunctionRef - JunctionRef class. + * @property {function(any): void} destroy - Destroys an object. + * @property {function(any): number} getPointer - Gets the pointer of an object. + * @property {function(number, any): any} wrapPointer - Wraps a pointer into an object. + */ + +/** + * Represents the Avoid library namespace. + * @typedef {Object} AvoidLib + * @property {Avoid | null} avoidLib - The Avoid library instance. + * @property {function(string): Promise} load - Loads the Avoid library. + * @property {function(): Avoid} getInstance - Gets the Avoid instance. + */ \ No newline at end of file diff --git a/src/lib/avoid.js b/src/lib/avoid.js new file mode 100644 index 0000000..bc3c430 --- /dev/null +++ b/src/lib/avoid.js @@ -0,0 +1,3578 @@ +/* eslint-disable */ +var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, { + get: (a, b) => (typeof require !== "undefined" ? require : a)[b] +}) : x)(function (x) { + if (typeof require !== "undefined") + return require.apply(this, arguments); + throw new Error('Dynamic require of "' + x + '" is not supported'); +}); + +// examples/debug-src/generated/libavoid.js +var initAvoidModule = (() => { + var _scriptDir = typeof document !== "undefined" && document.currentScript ? document.currentScript.src : void 0; + return function (initAvoidModule2 = {}) { + var Module = typeof initAvoidModule2 != "undefined" ? initAvoidModule2 : {}; + var readyPromiseResolve, readyPromiseReject; + Module["ready"] = new Promise(function (resolve, reject) { + readyPromiseResolve = resolve; + readyPromiseReject = reject; + }); + ["_malloc", "getExceptionMessage", "___get_exception_message", "_free", "___cpp_exception", "___cxa_increment_exception_refcount", "___cxa_decrement_exception_refcount", "___thrown_object_from_unwind_exception", "_fflush", "_emscripten_bind_VoidPtr___destroy___0", "_emscripten_bind_HyperedgeImprover_HyperedgeImprover_0", "_emscripten_bind_HyperedgeImprover_clear_0", "_emscripten_bind_HyperedgeImprover_setRouter_1", "_emscripten_bind_HyperedgeImprover___destroy___0", "_emscripten_bind_Box_Box_0", "_emscripten_bind_Box_length_1", "_emscripten_bind_Box_width_0", "_emscripten_bind_Box_height_0", "_emscripten_bind_Box_get_min_0", "_emscripten_bind_Box_set_min_1", "_emscripten_bind_Box_get_max_0", "_emscripten_bind_Box_set_max_1", "_emscripten_bind_Box___destroy___0", "_emscripten_bind_PolygonInterface_clear_0", "_emscripten_bind_PolygonInterface_empty_0", "_emscripten_bind_PolygonInterface_size_0", "_emscripten_bind_PolygonInterface_id_0", "_emscripten_bind_PolygonInterface_at_1", "_emscripten_bind_PolygonInterface_boundingRectPolygon_0", "_emscripten_bind_PolygonInterface_offsetBoundingBox_1", "_emscripten_bind_PolygonInterface_offsetPolygon_1", "_emscripten_bind_PolygonInterface___destroy___0", "_emscripten_bind_Polygon_Polygon_0", "_emscripten_bind_Polygon_Polygon_1", "_emscripten_bind_Polygon_setPoint_2", "_emscripten_bind_Polygon_size_0", "_emscripten_bind_Polygon_get_ps_1", "_emscripten_bind_Polygon_set_ps_2", "_emscripten_bind_Polygon___destroy___0", "_emscripten_bind_Point_Point_0", "_emscripten_bind_Point_Point_2", "_emscripten_bind_Point_equal_1", "_emscripten_bind_Point_get_x_0", "_emscripten_bind_Point_set_x_1", "_emscripten_bind_Point_get_y_0", "_emscripten_bind_Point_set_y_1", "_emscripten_bind_Point_get_id_0", "_emscripten_bind_Point_set_id_1", "_emscripten_bind_Point_get_vn_0", "_emscripten_bind_Point_set_vn_1", "_emscripten_bind_Point___destroy___0", "_emscripten_bind_Rectangle_Rectangle_2", "_emscripten_bind_Rectangle_Rectangle_3", "_emscripten_bind_Rectangle___destroy___0", "_emscripten_bind_HyperedgeTreeNode_HyperedgeTreeNode_0", "_emscripten_bind_HyperedgeTreeNode_writeEdgesToConns_2", "_emscripten_bind_HyperedgeTreeNode___destroy___0", "_emscripten_bind_HyperedgeTreeEdge_HyperedgeTreeEdge_3", "_emscripten_bind_HyperedgeTreeEdge___destroy___0", "_emscripten_bind_AStarPath_AStarPath_0", "_emscripten_bind_AStarPath_search_4", "_emscripten_bind_AStarPath___destroy___0", "_emscripten_bind_ConnEnd_ConnEnd_1", "_emscripten_bind_ConnEnd_ConnEnd_2", "_emscripten_bind_ConnEnd_createConnEndFromJunctionRef_1", "_emscripten_bind_ConnEnd___destroy___0", "_emscripten_bind_ActionInfo_ActionInfo_2", "_emscripten_bind_ActionInfo_ActionInfo_3", "_emscripten_bind_ActionInfo_ActionInfo_4", "_emscripten_bind_ActionInfo_obstacle_0", "_emscripten_bind_ActionInfo_shape_0", "_emscripten_bind_ActionInfo_conn_0", "_emscripten_bind_ActionInfo_junction_0", "_emscripten_bind_ActionInfo_addConnEndUpdate_3", "_emscripten_bind_ActionInfo_get_type_0", "_emscripten_bind_ActionInfo_set_type_1", "_emscripten_bind_ActionInfo_get_objPtr_0", "_emscripten_bind_ActionInfo_set_objPtr_1", "_emscripten_bind_ActionInfo_get_newPoly_0", "_emscripten_bind_ActionInfo_set_newPoly_1", "_emscripten_bind_ActionInfo_get_newPosition_0", "_emscripten_bind_ActionInfo_set_newPosition_1", "_emscripten_bind_ActionInfo_get_firstMove_0", "_emscripten_bind_ActionInfo_set_firstMove_1", "_emscripten_bind_ActionInfo___destroy___0", "_emscripten_bind_ShapeConnectionPin_ShapeConnectionPin_2", "_emscripten_bind_ShapeConnectionPin_ShapeConnectionPin_3", "_emscripten_bind_ShapeConnectionPin_ShapeConnectionPin_6", "_emscripten_bind_ShapeConnectionPin_ShapeConnectionPin_7", "_emscripten_bind_ShapeConnectionPin_setConnectionCost_1", "_emscripten_bind_ShapeConnectionPin_position_0", "_emscripten_bind_ShapeConnectionPin_position_1", "_emscripten_bind_ShapeConnectionPin_directions_0", "_emscripten_bind_ShapeConnectionPin_setExclusive_1", "_emscripten_bind_ShapeConnectionPin_isExclusive_0", "_emscripten_bind_ShapeConnectionPin_updatePosition_1", "_emscripten_bind_ShapeConnectionPin___destroy___0", "_emscripten_bind_Obstacle_id_0", "_emscripten_bind_Obstacle_polygon_0", "_emscripten_bind_Obstacle_router_0", "_emscripten_bind_Obstacle_position_0", "_emscripten_bind_Obstacle_setNewPoly_1", "_emscripten_bind_Obstacle___destroy___0", "_emscripten_bind_JunctionRef_JunctionRef_2", "_emscripten_bind_JunctionRef_JunctionRef_3", "_emscripten_bind_JunctionRef_position_0", "_emscripten_bind_JunctionRef_setPositionFixed_1", "_emscripten_bind_JunctionRef_positionFixed_0", "_emscripten_bind_JunctionRef_recommendedPosition_0", "_emscripten_bind_JunctionRef___destroy___0", "_emscripten_bind_ShapeRef_ShapeRef_2", "_emscripten_bind_ShapeRef_ShapeRef_3", "_emscripten_bind_ShapeRef_polygon_0", "_emscripten_bind_ShapeRef_position_0", "_emscripten_bind_ShapeRef_setNewPoly_1", "_emscripten_bind_ShapeRef___destroy___0", "_emscripten_bind_HyperedgeNewAndDeletedObjectLists___destroy___0", "_emscripten_bind_HyperedgeRerouter_HyperedgeRerouter_0", "_emscripten_bind_HyperedgeRerouter_registerHyperedgeForRerouting_1", "_emscripten_bind_HyperedgeRerouter___destroy___0", "_emscripten_bind_VertInf___destroy___0", "_emscripten_bind_VertID_VertID_0", "_emscripten_bind_VertID_VertID_2", "_emscripten_bind_VertID_VertID_3", "_emscripten_bind_VertID_get_objID_0", "_emscripten_bind_VertID_set_objID_1", "_emscripten_bind_VertID_get_vn_0", "_emscripten_bind_VertID_set_vn_1", "_emscripten_bind_VertID_get_props_0", "_emscripten_bind_VertID_set_props_1", "_emscripten_bind_VertID_get_src_0", "_emscripten_bind_VertID_get_tar_0", "_emscripten_bind_VertID_get_PROP_ConnPoint_0", "_emscripten_bind_VertID_get_PROP_OrthShapeEdge_0", "_emscripten_bind_VertID_get_PROP_ConnectionPin_0", "_emscripten_bind_VertID_get_PROP_ConnCheckpoint_0", "_emscripten_bind_VertID_get_PROP_DummyPinHelper_0", "_emscripten_bind_VertID___destroy___0", "_emscripten_bind_MinimumTerminalSpanningTree___destroy___0", "_emscripten_bind_Checkpoint_Checkpoint_1", "_emscripten_bind_Checkpoint___destroy___0", "_emscripten_bind_ConnRef_ConnRef_3", "_emscripten_bind_ConnRef_ConnRef_4", "_emscripten_bind_ConnRef_id_0", "_emscripten_bind_ConnRef_setCallback_2", "_emscripten_bind_ConnRef_setSourceEndpoint_1", "_emscripten_bind_ConnRef_setDestEndpoint_1", "_emscripten_bind_ConnRef_routingType_0", "_emscripten_bind_ConnRef_setRoutingType_1", "_emscripten_bind_ConnRef_displayRoute_0", "_emscripten_bind_ConnRef_setHateCrossings_1", "_emscripten_bind_ConnRef_doesHateCrossings_0", "_emscripten_bind_ConnRef___destroy___0", "_emscripten_bind_EdgeInf_EdgeInf_2", "_emscripten_bind_EdgeInf_EdgeInf_3", "_emscripten_bind_EdgeInf___destroy___0", "_emscripten_bind_LineRep_get_begin_0", "_emscripten_bind_LineRep_set_begin_1", "_emscripten_bind_LineRep_get_end_0", "_emscripten_bind_LineRep_set_end_1", "_emscripten_bind_LineRep___destroy___0", "_emscripten_bind_Router_Router_1", "_emscripten_bind_Router_processTransaction_0", "_emscripten_bind_Router_printInfo_0", "_emscripten_bind_Router_deleteConnector_1", "_emscripten_bind_Router_moveShape_2", "_emscripten_bind_Router_moveShape_3", "_emscripten_bind_Router_deleteShape_1", "_emscripten_bind_Router_moveJunction_2", "_emscripten_bind_Router_moveJunction_3", "_emscripten_bind_Router_setRoutingParameter_2", "_emscripten_bind_Router_setRoutingOption_2", "_emscripten_bind_Router___destroy___0", "_emscripten_enum_Avoid_ConnDirFlag_ConnDirNone", "_emscripten_enum_Avoid_ConnDirFlag_ConnDirUp", "_emscripten_enum_Avoid_ConnDirFlag_ConnDirDown", "_emscripten_enum_Avoid_ConnDirFlag_ConnDirLeft", "_emscripten_enum_Avoid_ConnDirFlag_ConnDirRight", "_emscripten_enum_Avoid_ConnDirFlag_ConnDirAll", "_emscripten_enum_Avoid_ConnEndType_ConnEndPoint", "_emscripten_enum_Avoid_ConnEndType_ConnEndShapePin", "_emscripten_enum_Avoid_ConnEndType_ConnEndJunction", "_emscripten_enum_Avoid_ConnEndType_ConnEndEmpty", "_emscripten_enum_Avoid_ActionType_ShapeMove", "_emscripten_enum_Avoid_ActionType_ShapeAdd", "_emscripten_enum_Avoid_ActionType_ShapeRemove", "_emscripten_enum_Avoid_ActionType_JunctionMove", "_emscripten_enum_Avoid_ActionType_JunctionAdd", "_emscripten_enum_Avoid_ActionType_JunctionRemove", "_emscripten_enum_Avoid_ActionType_ConnChange", "_emscripten_enum_Avoid_ActionType_ConnectionPinChange", "_emscripten_enum_Avoid_ShapeTransformationType_TransformationType_CW90", "_emscripten_enum_Avoid_ShapeTransformationType_TransformationType_CW180", "_emscripten_enum_Avoid_ShapeTransformationType_TransformationType_CW270", "_emscripten_enum_Avoid_ShapeTransformationType_TransformationType_FlipX", "_emscripten_enum_Avoid_ShapeTransformationType_TransformationType_FlipY", "_emscripten_enum_Avoid_ConnType_ConnType_None", "_emscripten_enum_Avoid_ConnType_ConnType_PolyLine", "_emscripten_enum_Avoid_ConnType_ConnType_Orthogonal", "_emscripten_enum_Avoid_RouterFlag_PolyLineRouting", "_emscripten_enum_Avoid_RouterFlag_OrthogonalRouting", "_emscripten_enum_Avoid_RoutingParameter_segmentPenalty", "_emscripten_enum_Avoid_RoutingParameter_anglePenalty", "_emscripten_enum_Avoid_RoutingParameter_crossingPenalty", "_emscripten_enum_Avoid_RoutingParameter_clusterCrossingPenalty", "_emscripten_enum_Avoid_RoutingParameter_fixedSharedPathPenalty", "_emscripten_enum_Avoid_RoutingParameter_portDirectionPenalty", "_emscripten_enum_Avoid_RoutingParameter_shapeBufferDistance", "_emscripten_enum_Avoid_RoutingParameter_idealNudgingDistance", "_emscripten_enum_Avoid_RoutingParameter_reverseDirectionPenalty", "_emscripten_enum_Avoid_RoutingOption_nudgeOrthogonalSegmentsConnectedToShapes", "_emscripten_enum_Avoid_RoutingOption_improveHyperedgeRoutesMovingJunctions", "_emscripten_enum_Avoid_RoutingOption_penaliseOrthogonalSharedPathsAtConnEnds", "_emscripten_enum_Avoid_RoutingOption_nudgeOrthogonalTouchingColinearSegments", "_emscripten_enum_Avoid_RoutingOption_performUnifyingNudgingPreprocessingStep", "_emscripten_enum_Avoid_RoutingOption_improveHyperedgeRoutesMovingAddingAndDeletingJunctions", "_emscripten_enum_Avoid_RoutingOption_nudgeSharedPathsWithCommonEndPoint", "onRuntimeInitialized"].forEach((prop) => { + if (!Object.getOwnPropertyDescriptor(Module["ready"], prop)) { + Object.defineProperty(Module["ready"], prop, { + get: () => abort("You are getting " + prop + " on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js"), + set: () => abort("You are setting " + prop + " on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js") + }); + } + }); + var moduleOverrides = Object.assign({}, Module); + var arguments_ = []; + var thisProgram = "./this.program"; + var quit_ = (status, toThrow) => { + throw toThrow; + }; + var ENVIRONMENT_IS_WEB = true; + var ENVIRONMENT_IS_WORKER = false; + var ENVIRONMENT_IS_NODE = false; + var ENVIRONMENT_IS_SHELL = false; + if (Module["ENVIRONMENT"]) { + throw new Error("Module.ENVIRONMENT has been deprecated. To force the environment, use the ENVIRONMENT compile-time option (for example, -sENVIRONMENT=web or -sENVIRONMENT=node)"); + } + var scriptDirectory = ""; + function locateFile(path) { + if (Module["locateFile"]) { + return Module["locateFile"](path, scriptDirectory); + } + return scriptDirectory + path; + } + var read_, readAsync, readBinary, setWindowTitle; + if (ENVIRONMENT_IS_SHELL) { + if (typeof process == "object" && typeof __require === "function" || typeof window == "object" || typeof importScripts == "function") + throw new Error("not compiled for this environment (did you build to HTML and try to run it not on the web, or set ENVIRONMENT to something - like node - and run it someplace else - like on the web?)"); + if (typeof read != "undefined") { + read_ = function shell_read(f) { + return read(f); + }; + } + readBinary = function readBinary2(f) { + let data; + if (typeof readbuffer == "function") { + return new Uint8Array(readbuffer(f)); + } + data = read(f, "binary"); + assert(typeof data == "object"); + return data; + }; + readAsync = function readAsync2(f, onload, onerror) { + setTimeout(() => onload(readBinary(f)), 0); + }; + if (typeof clearTimeout == "undefined") { + globalThis.clearTimeout = (id) => { + }; + } + if (typeof scriptArgs != "undefined") { + arguments_ = scriptArgs; + } else if (typeof arguments != "undefined") { + arguments_ = arguments; + } + if (typeof quit == "function") { + quit_ = (status, toThrow) => { + setTimeout(() => { + if (!(toThrow instanceof ExitStatus)) { + let toLog = toThrow; + if (toThrow && typeof toThrow == "object" && toThrow.stack) { + toLog = [toThrow, toThrow.stack]; + } + err("exiting due to exception: " + toLog); + } + quit(status); + }); + throw toThrow; + }; + } + if (typeof print != "undefined") { + if (typeof console == "undefined") + console = /** @type{!Console} */ + {}; + console.log = /** @type{!function(this:Console, ...*): undefined} */ + print; + console.warn = console.error = /** @type{!function(this:Console, ...*): undefined} */ + typeof printErr != "undefined" ? printErr : print; + } + } else if (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER) { + if (ENVIRONMENT_IS_WORKER) { + scriptDirectory = self.location.href; + } else if (typeof document != "undefined" && document.currentScript) { + scriptDirectory = document.currentScript.src; + } + if (_scriptDir) { + scriptDirectory = _scriptDir; + } + if (scriptDirectory.indexOf("blob:") !== 0) { + scriptDirectory = scriptDirectory.substr(0, scriptDirectory.replace(/[?#].*/, "").lastIndexOf("/") + 1); + } else { + scriptDirectory = ""; + } + if (!(typeof window == "object" || typeof importScripts == "function")) + throw new Error("not compiled for this environment (did you build to HTML and try to run it not on the web, or set ENVIRONMENT to something - like node - and run it someplace else - like on the web?)"); + { + read_ = (url) => { + var xhr = new XMLHttpRequest(); + xhr.open("GET", url, false); + xhr.send(null); + return xhr.responseText; + }; + if (ENVIRONMENT_IS_WORKER) { + readBinary = (url) => { + var xhr = new XMLHttpRequest(); + xhr.open("GET", url, false); + xhr.responseType = "arraybuffer"; + xhr.send(null); + return new Uint8Array( + /** @type{!ArrayBuffer} */ + xhr.response + ); + }; + } + readAsync = (url, onload, onerror) => { + var xhr = new XMLHttpRequest(); + xhr.open("GET", url, true); + xhr.responseType = "arraybuffer"; + xhr.onload = () => { + if (xhr.status == 200 || xhr.status == 0 && xhr.response) { + onload(xhr.response); + return; + } + onerror(); + }; + xhr.onerror = onerror; + xhr.send(null); + }; + } + setWindowTitle = (title) => document.title = title; + } else { + throw new Error("environment detection error"); + } + var out = Module["print"] || console.log.bind(console); + var err = Module["printErr"] || console.warn.bind(console); + Object.assign(Module, moduleOverrides); + moduleOverrides = null; + checkIncomingModuleAPI(); + if (Module["arguments"]) + arguments_ = Module["arguments"]; + legacyModuleProp("arguments", "arguments_"); + if (Module["thisProgram"]) + thisProgram = Module["thisProgram"]; + legacyModuleProp("thisProgram", "thisProgram"); + if (Module["quit"]) + quit_ = Module["quit"]; + legacyModuleProp("quit", "quit_"); + assert(typeof Module["memoryInitializerPrefixURL"] == "undefined", "Module.memoryInitializerPrefixURL option was removed, use Module.locateFile instead"); + assert(typeof Module["pthreadMainPrefixURL"] == "undefined", "Module.pthreadMainPrefixURL option was removed, use Module.locateFile instead"); + assert(typeof Module["cdInitializerPrefixURL"] == "undefined", "Module.cdInitializerPrefixURL option was removed, use Module.locateFile instead"); + assert(typeof Module["filePackagePrefixURL"] == "undefined", "Module.filePackagePrefixURL option was removed, use Module.locateFile instead"); + assert(typeof Module["read"] == "undefined", "Module.read option was removed (modify read_ in JS)"); + assert(typeof Module["readAsync"] == "undefined", "Module.readAsync option was removed (modify readAsync in JS)"); + assert(typeof Module["readBinary"] == "undefined", "Module.readBinary option was removed (modify readBinary in JS)"); + assert(typeof Module["setWindowTitle"] == "undefined", "Module.setWindowTitle option was removed (modify setWindowTitle in JS)"); + assert(typeof Module["TOTAL_MEMORY"] == "undefined", "Module.TOTAL_MEMORY has been renamed Module.INITIAL_MEMORY"); + legacyModuleProp("read", "read_"); + legacyModuleProp("readAsync", "readAsync"); + legacyModuleProp("readBinary", "readBinary"); + legacyModuleProp("setWindowTitle", "setWindowTitle"); + var IDBFS = "IDBFS is no longer included by default; build with -lidbfs.js"; + var PROXYFS = "PROXYFS is no longer included by default; build with -lproxyfs.js"; + var WORKERFS = "WORKERFS is no longer included by default; build with -lworkerfs.js"; + var NODEFS = "NODEFS is no longer included by default; build with -lnodefs.js"; + assert(!ENVIRONMENT_IS_WORKER, "worker environment detected but not enabled at build time. Add 'worker' to `-sENVIRONMENT` to enable."); + assert(!ENVIRONMENT_IS_NODE, "node environment detected but not enabled at build time. Add 'node' to `-sENVIRONMENT` to enable."); + assert(!ENVIRONMENT_IS_SHELL, "shell environment detected but not enabled at build time. Add 'shell' to `-sENVIRONMENT` to enable."); + var wasmBinary; + + if (Module["wasmBinary"]) { + wasmBinary = Module["wasmBinary"]; + } + legacyModuleProp("wasmBinary", "wasmBinary"); + var noExitRuntime = Module["noExitRuntime"] || true; + legacyModuleProp("noExitRuntime", "noExitRuntime"); + if (typeof WebAssembly != "object") { + abort("no native wasm support detected"); + } + var wasmMemory; + var ABORT = false; + var EXITSTATUS; + function assert(condition, text) { + if (!condition) { + abort("Assertion failed" + (text ? ": " + text : "")); + } + } + var HEAP, HEAP8, HEAPU8, HEAP16, HEAPU16, HEAP32, HEAPU32, HEAPF32, HEAPF64; + function updateMemoryViews() { + var b = wasmMemory.buffer; + Module["HEAP8"] = HEAP8 = new Int8Array(b); + Module["HEAP16"] = HEAP16 = new Int16Array(b); + Module["HEAP32"] = HEAP32 = new Int32Array(b); + Module["HEAPU8"] = HEAPU8 = new Uint8Array(b); + Module["HEAPU16"] = HEAPU16 = new Uint16Array(b); + Module["HEAPU32"] = HEAPU32 = new Uint32Array(b); + Module["HEAPF32"] = HEAPF32 = new Float32Array(b); + Module["HEAPF64"] = HEAPF64 = new Float64Array(b); + } + assert(!Module["STACK_SIZE"], "STACK_SIZE can no longer be set at runtime. Use -sSTACK_SIZE at link time"); + assert( + typeof Int32Array != "undefined" && typeof Float64Array !== "undefined" && Int32Array.prototype.subarray != void 0 && Int32Array.prototype.set != void 0, + "JS engine does not provide full typed array support" + ); + assert(!Module["wasmMemory"], "Use of `wasmMemory` detected. Use -sIMPORTED_MEMORY to define wasmMemory externally"); + assert(!Module["INITIAL_MEMORY"], "Detected runtime INITIAL_MEMORY setting. Use -sIMPORTED_MEMORY to define wasmMemory dynamically"); + var wasmTable; + function writeStackCookie() { + var max = _emscripten_stack_get_end(); + assert((max & 3) == 0); + if (max == 0) { + max += 4; + } + HEAPU32[max >> 2] = 34821223; + HEAPU32[max + 4 >> 2] = 2310721022; + HEAPU32[0] = 1668509029; + } + function checkStackCookie() { + if (ABORT) + return; + var max = _emscripten_stack_get_end(); + if (max == 0) { + max += 4; + } + var cookie1 = HEAPU32[max >> 2]; + var cookie2 = HEAPU32[max + 4 >> 2]; + if (cookie1 != 34821223 || cookie2 != 2310721022) { + abort("Stack overflow! Stack cookie has been overwritten at " + ptrToString(max) + ", expected hex dwords 0x89BACDFE and 0x2135467, but received " + ptrToString(cookie2) + " " + ptrToString(cookie1)); + } + if (HEAPU32[0] !== 1668509029) { + abort("Runtime error: The application has corrupted its heap memory area (address zero)!"); + } + } + (function () { + var h16 = new Int16Array(1); + var h8 = new Int8Array(h16.buffer); + h16[0] = 25459; + if (h8[0] !== 115 || h8[1] !== 99) + throw "Runtime error: expected the system to be little-endian! (Run with -sSUPPORT_BIG_ENDIAN to bypass)"; + })(); + var __ATPRERUN__ = []; + var __ATINIT__ = []; + var __ATEXIT__ = []; + var __ATPOSTRUN__ = []; + var runtimeInitialized = false; + var runtimeKeepaliveCounter = 0; + function keepRuntimeAlive() { + return noExitRuntime || runtimeKeepaliveCounter > 0; + } + function preRun() { + if (Module["preRun"]) { + if (typeof Module["preRun"] == "function") + Module["preRun"] = [Module["preRun"]]; + while (Module["preRun"].length) { + addOnPreRun(Module["preRun"].shift()); + } + } + callRuntimeCallbacks(__ATPRERUN__); + } + function initRuntime() { + assert(!runtimeInitialized); + runtimeInitialized = true; + checkStackCookie(); + callRuntimeCallbacks(__ATINIT__); + } + function postRun() { + checkStackCookie(); + if (Module["postRun"]) { + if (typeof Module["postRun"] == "function") + Module["postRun"] = [Module["postRun"]]; + while (Module["postRun"].length) { + addOnPostRun(Module["postRun"].shift()); + } + } + callRuntimeCallbacks(__ATPOSTRUN__); + } + function addOnPreRun(cb) { + __ATPRERUN__.unshift(cb); + } + function addOnInit(cb) { + __ATINIT__.unshift(cb); + } + function addOnExit(cb) { + } + function addOnPostRun(cb) { + __ATPOSTRUN__.unshift(cb); + } + assert(Math.imul, "This browser does not support Math.imul(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill"); + assert(Math.fround, "This browser does not support Math.fround(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill"); + assert(Math.clz32, "This browser does not support Math.clz32(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill"); + assert(Math.trunc, "This browser does not support Math.trunc(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill"); + var runDependencies = 0; + var runDependencyWatcher = null; + var dependenciesFulfilled = null; + var runDependencyTracking = {}; + function getUniqueRunDependency(id) { + var orig = id; + while (1) { + if (!runDependencyTracking[id]) + return id; + id = orig + Math.random(); + } + } + function addRunDependency(id) { + runDependencies++; + if (Module["monitorRunDependencies"]) { + Module["monitorRunDependencies"](runDependencies); + } + if (id) { + assert(!runDependencyTracking[id]); + runDependencyTracking[id] = 1; + if (runDependencyWatcher === null && typeof setInterval != "undefined") { + runDependencyWatcher = setInterval(function () { + if (ABORT) { + clearInterval(runDependencyWatcher); + runDependencyWatcher = null; + return; + } + var shown = false; + for (var dep in runDependencyTracking) { + if (!shown) { + shown = true; + err("still waiting on run dependencies:"); + } + err("dependency: " + dep); + } + if (shown) { + err("(end of list)"); + } + }, 1e4); + } + } else { + err("warning: run dependency added without ID"); + } + } + function removeRunDependency(id) { + runDependencies--; + if (Module["monitorRunDependencies"]) { + Module["monitorRunDependencies"](runDependencies); + } + if (id) { + assert(runDependencyTracking[id]); + delete runDependencyTracking[id]; + } else { + err("warning: run dependency removed without ID"); + } + if (runDependencies == 0) { + if (runDependencyWatcher !== null) { + clearInterval(runDependencyWatcher); + runDependencyWatcher = null; + } + if (dependenciesFulfilled) { + var callback = dependenciesFulfilled; + dependenciesFulfilled = null; + callback(); + } + } + } + function abort(what) { + if (Module["onAbort"]) { + Module["onAbort"](what); + } + what = "Aborted(" + what + ")"; + err(what); + ABORT = true; + EXITSTATUS = 1; + if (runtimeInitialized) { + ___trap(); + } + var e = new WebAssembly.RuntimeError(what); + readyPromiseReject(e); + throw e; + } + var FS = { + error: function () { + abort("Filesystem support (FS) was not included. The problem is that you are using files from JS, but files were not used from C/C++, so filesystem support was not auto-included. You can force-include filesystem support with -sFORCE_FILESYSTEM"); + }, + init: function () { + FS.error(); + }, + createDataFile: function () { + FS.error(); + }, + createPreloadedFile: function () { + FS.error(); + }, + createLazyFile: function () { + FS.error(); + }, + open: function () { + FS.error(); + }, + mkdev: function () { + FS.error(); + }, + registerDevice: function () { + FS.error(); + }, + analyzePath: function () { + FS.error(); + }, + ErrnoError: function ErrnoError() { + FS.error(); + } + }; + Module["FS_createDataFile"] = FS.createDataFile; + Module["FS_createPreloadedFile"] = FS.createPreloadedFile; + var dataURIPrefix = "data:application/octet-stream;base64,"; + function isDataURI(filename) { + return filename.startsWith(dataURIPrefix); + } + function isFileURI(filename) { + return filename.startsWith("file://"); + } + function createExportWrapper(name, fixedasm) { + return function () { + var displayName = name; + var asm2 = fixedasm; + if (!fixedasm) { + asm2 = Module["asm"]; + } + assert(runtimeInitialized, "native function `" + displayName + "` called before runtime initialization"); + if (!asm2[name]) { + assert(asm2[name], "exported native function `" + displayName + "` not found"); + } + return asm2[name].apply(null, arguments); + }; + } + var abortWrapperDepth = 0; + function makeAbortWrapper(original) { + return function () { + if (ABORT) { + throw "program has already aborted!"; + } + abortWrapperDepth += 1; + try { + return original.apply(null, arguments); + } catch (e) { + if (ABORT || abortWrapperDepth > 1 || e === "unwind") { + throw e; + } + abort("unhandled exception: " + [e, e.stack]); + } finally { + abortWrapperDepth -= 1; + } + }; + } + function instrumentWasmExportsWithAbort(exports) { + var instExports = {}; + for (var name in exports) { + var original = exports[name]; + if (typeof original == "function") { + instExports[name] = makeAbortWrapper(original); + } else { + instExports[name] = original; + } + } + return instExports; + } + function instrumentWasmTableWithAbort() { + var realGet = wasmTable.get; + var wrapperCache = {}; + wasmTable.get = (i) => { + var func = realGet.call(wasmTable, i); + var cached = wrapperCache[i]; + if (!cached || cached.func !== func) { + cached = wrapperCache[i] = { + func, + wrapper: makeAbortWrapper(func) + }; + } + return cached.wrapper; + }; + } + var wasmBinaryFile; + wasmBinaryFile = "avoid.wasm"; + if (typeof wasmBinaryFile === 'string' || !isDataURI(wasmBinaryFile)) { + wasmBinaryFile = locateFile(wasmBinaryFile); + } + function getBinary(file) { + try { + if (file == wasmBinaryFile && wasmBinary) { + return new Uint8Array(wasmBinary); + } + if (readBinary) { + return readBinary(file); + } + throw "both async and sync fetching of the wasm failed"; + } catch (err2) { + abort(err2); + } + } + function getBinaryPromise(binaryFile) { + console.log(wasmBinary); + + if (!wasmBinary && (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER)) { + if (typeof fetch == "function") { + return fetch(binaryFile, { credentials: "same-origin" }).then(function (response) { + if (!response["ok"]) { + throw "failed to load wasm binary file at '" + binaryFile + "'"; + } + return response["arrayBuffer"](); + }).catch(function () { + return getBinary(binaryFile); + }); + } + } + return Promise.resolve().then(function () { + return getBinary(binaryFile); + }); + } + function instantiateArrayBuffer(binaryFile, imports, receiver) { + return getBinaryPromise(binaryFile).then(function (binary) { + return WebAssembly.instantiate(binary, imports); + }).then(function (instance) { + return instance; + }).then(receiver, function (reason) { + err("failed to asynchronously prepare wasm: " + reason); + if (isFileURI(wasmBinaryFile)) { + err("warning: Loading from a file URI (" + wasmBinaryFile + ") is not supported in most browsers. See https://emscripten.org/docs/getting_started/FAQ.html#how-do-i-run-a-local-webserver-for-testing-why-does-my-program-stall-in-downloading-or-preparing"); + } + abort(reason); + }); + } + function instantiateAsync(binary, binaryFile, imports, callback) { + if (!binary && typeof WebAssembly.instantiateStreaming == "function" && !isDataURI(binaryFile) && typeof fetch == "function") { + return fetch(binaryFile, { credentials: "same-origin" }).then(function (response) { + var result = WebAssembly.instantiateStreaming(response, imports); + return result.then( + callback, + function (reason) { + err("wasm streaming compile failed: " + reason); + err("falling back to ArrayBuffer instantiation"); + return instantiateArrayBuffer(binaryFile, imports, callback); + } + ); + }); + } else { + return instantiateArrayBuffer(binaryFile, imports, callback); + } + } + function createWasm() { + var info = { + "env": wasmImports, + "wasi_snapshot_preview1": wasmImports + }; + function receiveInstance(instance, module) { + var exports = instance.exports; + exports = instrumentWasmExportsWithAbort(exports); + Module["asm"] = exports; + wasmMemory = Module["asm"]["memory"]; + assert(wasmMemory, "memory not found in wasm exports"); + updateMemoryViews(); + wasmTable = Module["asm"]["__indirect_function_table"]; + assert(wasmTable, "table not found in wasm exports"); + addOnInit(Module["asm"]["__wasm_call_ctors"]); + instrumentWasmTableWithAbort(); + removeRunDependency("wasm-instantiate"); + return exports; + } + addRunDependency("wasm-instantiate"); + var trueModule = Module; + function receiveInstantiationResult(result) { + assert(Module === trueModule, "the Module object should not be replaced during async compilation - perhaps the order of HTML elements is wrong?"); + trueModule = null; + receiveInstance(result["instance"]); + } + if (Module["instantiateWasm"]) { + try { + return Module["instantiateWasm"](info, receiveInstance); + } catch (e) { + err("Module.instantiateWasm callback failed with error: " + e); + readyPromiseReject(e); + } + } + err("asynchronously preparing wasm"); + instantiateAsync(wasmBinary, wasmBinaryFile, info, receiveInstantiationResult).catch(readyPromiseReject); + return {}; + } + var tempDouble; + var tempI64; + function legacyModuleProp(prop, newName) { + if (!Object.getOwnPropertyDescriptor(Module, prop)) { + Object.defineProperty(Module, prop, { + configurable: true, + get: function () { + abort("Module." + prop + " has been replaced with plain " + newName + " (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)"); + } + }); + } + } + function ignoredModuleProp(prop) { + if (Object.getOwnPropertyDescriptor(Module, prop)) { + abort("`Module." + prop + "` was supplied but `" + prop + "` not included in INCOMING_MODULE_JS_API"); + } + } + function isExportedByForceFilesystem(name) { + return name === "FS_createPath" || name === "FS_createDataFile" || name === "FS_createPreloadedFile" || name === "FS_unlink" || name === "addRunDependency" || // The old FS has some functionality that WasmFS lacks. + name === "FS_createLazyFile" || name === "FS_createDevice" || name === "removeRunDependency"; + } + function missingGlobal(sym, msg) { + if (typeof globalThis !== "undefined") { + Object.defineProperty(globalThis, sym, { + configurable: true, + get: function () { + warnOnce("`" + sym + "` is not longer defined by emscripten. " + msg); + return void 0; + } + }); + } + } + missingGlobal("buffer", "Please use HEAP8.buffer or wasmMemory.buffer"); + function missingLibrarySymbol(sym) { + if (typeof globalThis !== "undefined" && !Object.getOwnPropertyDescriptor(globalThis, sym)) { + Object.defineProperty(globalThis, sym, { + configurable: true, + get: function () { + var msg = "`" + sym + "` is a library symbol and not included by default; add it to your library.js __deps or to DEFAULT_LIBRARY_FUNCS_TO_INCLUDE on the command line"; + var librarySymbol = sym; + if (!librarySymbol.startsWith("_")) { + librarySymbol = "$" + sym; + } + msg += " (e.g. -sDEFAULT_LIBRARY_FUNCS_TO_INCLUDE=" + librarySymbol + ")"; + if (isExportedByForceFilesystem(sym)) { + msg += ". Alternatively, forcing filesystem support (-sFORCE_FILESYSTEM) can export this for you"; + } + warnOnce(msg); + return void 0; + } + }); + } + unexportedRuntimeSymbol(sym); + } + function unexportedRuntimeSymbol(sym) { + if (!Object.getOwnPropertyDescriptor(Module, sym)) { + Object.defineProperty(Module, sym, { + configurable: true, + get: function () { + var msg = "'" + sym + "' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)"; + if (isExportedByForceFilesystem(sym)) { + msg += ". Alternatively, forcing filesystem support (-sFORCE_FILESYSTEM) can export this for you"; + } + abort(msg); + } + }); + } + } + function dbg(text) { + console.error.apply(console, arguments); + } + function array_bounds_check_error(idx, size) { + throw "Array index " + idx + " out of bounds: [0," + size + ")"; + } + function ExitStatus(status) { + this.name = "ExitStatus"; + this.message = "Program terminated with exit(" + status + ")"; + this.status = status; + } + function uleb128Encode(n, target) { + assert(n < 16384); + if (n < 128) { + target.push(n); + } else { + target.push(n % 128 | 128, n >> 7); + } + } + function sigToWasmTypes(sig) { + var typeNames = { + "i": "i32", + // i64 values will be split into two i32s. + "j": "i32", + "f": "f32", + "d": "f64", + "p": "i32" + }; + var type = { + parameters: [], + results: sig[0] == "v" ? [] : [typeNames[sig[0]]] + }; + for (var i = 1; i < sig.length; ++i) { + assert(sig[i] in typeNames, "invalid signature char: " + sig[i]); + type.parameters.push(typeNames[sig[i]]); + if (sig[i] === "j") { + type.parameters.push("i32"); + } + } + return type; + } + function generateFuncType(sig, target) { + var sigRet = sig.slice(0, 1); + var sigParam = sig.slice(1); + var typeCodes = { + "i": 127, + // i32 + "p": 127, + // i32 + "j": 126, + // i64 + "f": 125, + // f32 + "d": 124 + // f64 + }; + target.push( + 96 + /* form: func */ + ); + uleb128Encode(sigParam.length, target); + for (var i = 0; i < sigParam.length; ++i) { + assert(sigParam[i] in typeCodes, "invalid signature char: " + sigParam[i]); + target.push(typeCodes[sigParam[i]]); + } + if (sigRet == "v") { + target.push(0); + } else { + target.push(1, typeCodes[sigRet]); + } + } + function convertJsFunctionToWasm(func, sig) { + if (typeof WebAssembly.Function == "function") { + return new WebAssembly.Function(sigToWasmTypes(sig), func); + } + var typeSectionBody = [ + 1 + // count: 1 + ]; + generateFuncType(sig, typeSectionBody); + var bytes = [ + 0, + 97, + 115, + 109, + // magic ("\0asm") + 1, + 0, + 0, + 0, + // version: 1 + 1 + // Type section code + ]; + uleb128Encode(typeSectionBody.length, bytes); + bytes.push.apply(bytes, typeSectionBody); + bytes.push( + 2, + 7, + // import section + // (import "e" "f" (func 0 (type 0))) + 1, + 1, + 101, + 1, + 102, + 0, + 0, + 7, + 5, + // export section + // (export "f" (func 0 (type 0))) + 1, + 1, + 102, + 0, + 0 + ); + var module = new WebAssembly.Module(new Uint8Array(bytes)); + var instance = new WebAssembly.Instance(module, { "e": { "f": func } }); + var wrappedFunc = instance.exports["f"]; + return wrappedFunc; + } + var wasmTableMirror = []; + function getWasmTableEntry(funcPtr) { + var func = wasmTableMirror[funcPtr]; + if (!func) { + if (funcPtr >= wasmTableMirror.length) + wasmTableMirror.length = funcPtr + 1; + wasmTableMirror[funcPtr] = func = wasmTable.get(funcPtr); + } + assert(wasmTable.get(funcPtr) == func, "JavaScript-side Wasm function table mirror is out of date!"); + return func; + } + function updateTableMap(offset, count) { + if (functionsInTableMap) { + for (var i = offset; i < offset + count; i++) { + var item = getWasmTableEntry(i); + if (item) { + functionsInTableMap.set(item, i); + } + } + } + } + var functionsInTableMap = void 0; + function getFunctionAddress(func) { + if (!functionsInTableMap) { + functionsInTableMap = /* @__PURE__ */ new WeakMap(); + updateTableMap(0, wasmTable.length); + } + return functionsInTableMap.get(func) || 0; + } + var freeTableIndexes = []; + function getEmptyTableSlot() { + if (freeTableIndexes.length) { + return freeTableIndexes.pop(); + } + try { + wasmTable.grow(1); + } catch (err2) { + if (!(err2 instanceof RangeError)) { + throw err2; + } + throw "Unable to grow wasm table. Set ALLOW_TABLE_GROWTH."; + } + return wasmTable.length - 1; + } + function setWasmTableEntry(idx, func) { + wasmTable.set(idx, func); + wasmTableMirror[idx] = wasmTable.get(idx); + } + function addFunction(func, sig) { + assert(typeof func != "undefined"); + var rtn = getFunctionAddress(func); + if (rtn) { + return rtn; + } + var ret = getEmptyTableSlot(); + try { + setWasmTableEntry(ret, func); + } catch (err2) { + if (!(err2 instanceof TypeError)) { + throw err2; + } + assert(typeof sig != "undefined", "Missing signature argument to addFunction: " + func); + var wrapped = convertJsFunctionToWasm(func, sig); + setWasmTableEntry(ret, wrapped); + } + functionsInTableMap.set(func, ret); + return ret; + } + function callRuntimeCallbacks(callbacks) { + while (callbacks.length > 0) { + callbacks.shift()(Module); + } + } + function getCppExceptionTag() { + return Module["asm"]["__cpp_exception"]; + } + function getCppExceptionThrownObjectFromWebAssemblyException(ex) { + var unwind_header = ex.getArg(getCppExceptionTag(), 0); + return ___thrown_object_from_unwind_exception(unwind_header); + } + function decrementExceptionRefcount(ex) { + var ptr = getCppExceptionThrownObjectFromWebAssemblyException(ex); + ___cxa_decrement_exception_refcount(ptr); + } + function withStackSave(f) { + var stack = stackSave(); + var ret = f(); + stackRestore(stack); + return ret; + } + var UTF8Decoder = typeof TextDecoder != "undefined" ? new TextDecoder("utf8") : void 0; + function UTF8ArrayToString(heapOrArray, idx, maxBytesToRead) { + var endIdx = idx + maxBytesToRead; + var endPtr = idx; + while (heapOrArray[endPtr] && !(endPtr >= endIdx)) + ++endPtr; + if (endPtr - idx > 16 && heapOrArray.buffer && UTF8Decoder) { + return UTF8Decoder.decode(heapOrArray.subarray(idx, endPtr)); + } + var str = ""; + while (idx < endPtr) { + var u0 = heapOrArray[idx++]; + if (!(u0 & 128)) { + str += String.fromCharCode(u0); + continue; + } + var u1 = heapOrArray[idx++] & 63; + if ((u0 & 224) == 192) { + str += String.fromCharCode((u0 & 31) << 6 | u1); + continue; + } + var u2 = heapOrArray[idx++] & 63; + if ((u0 & 240) == 224) { + u0 = (u0 & 15) << 12 | u1 << 6 | u2; + } else { + if ((u0 & 248) != 240) + warnOnce("Invalid UTF-8 leading byte " + ptrToString(u0) + " encountered when deserializing a UTF-8 string in wasm memory to a JS string!"); + u0 = (u0 & 7) << 18 | u1 << 12 | u2 << 6 | heapOrArray[idx++] & 63; + } + if (u0 < 65536) { + str += String.fromCharCode(u0); + } else { + var ch = u0 - 65536; + str += String.fromCharCode(55296 | ch >> 10, 56320 | ch & 1023); + } + } + return str; + } + function UTF8ToString(ptr, maxBytesToRead) { + assert(typeof ptr == "number"); + return ptr ? UTF8ArrayToString(HEAPU8, ptr, maxBytesToRead) : ""; + } + function getExceptionMessageCommon(ptr) { + return withStackSave(function () { + var type_addr_addr = stackAlloc(4); + var message_addr_addr = stackAlloc(4); + ___get_exception_message(ptr, type_addr_addr, message_addr_addr); + var type_addr = HEAPU32[type_addr_addr >> 2]; + var message_addr = HEAPU32[message_addr_addr >> 2]; + var type = UTF8ToString(type_addr); + _free(type_addr); + var message; + if (message_addr) { + message = UTF8ToString(message_addr); + _free(message_addr); + } + return [type, message]; + }); + } + function getExceptionMessage(ex) { + var ptr = getCppExceptionThrownObjectFromWebAssemblyException(ex); + return getExceptionMessageCommon(ptr); + } + Module["getExceptionMessage"] = getExceptionMessage; + function getValue(ptr, type = "i8") { + if (type.endsWith("*")) + type = "*"; + switch (type) { + case "i1": + return HEAP8[ptr >> 0]; + case "i8": + return HEAP8[ptr >> 0]; + case "i16": + return HEAP16[ptr >> 1]; + case "i32": + return HEAP32[ptr >> 2]; + case "i64": + return HEAP32[ptr >> 2]; + case "float": + return HEAPF32[ptr >> 2]; + case "double": + return HEAPF64[ptr >> 3]; + case "*": + return HEAPU32[ptr >> 2]; + default: + abort("invalid type for getValue: " + type); + } + } + function incrementExceptionRefcount(ex) { + var ptr = getCppExceptionThrownObjectFromWebAssemblyException(ex); + ___cxa_increment_exception_refcount(ptr); + } + function ptrToString(ptr) { + assert(typeof ptr === "number"); + return "0x" + ptr.toString(16).padStart(8, "0"); + } + function setValue(ptr, value, type = "i8") { + if (type.endsWith("*")) + type = "*"; + switch (type) { + case "i1": + HEAP8[ptr >> 0] = value; + break; + case "i8": + HEAP8[ptr >> 0] = value; + break; + case "i16": + HEAP16[ptr >> 1] = value; + break; + case "i32": + HEAP32[ptr >> 2] = value; + break; + case "i64": + tempI64 = [value >>> 0, (tempDouble = value, +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? (Math.min(+Math.floor(tempDouble / 4294967296), 4294967295) | 0) >>> 0 : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)], HEAP32[ptr >> 2] = tempI64[0], HEAP32[ptr + 4 >> 2] = tempI64[1]; + break; + case "float": + HEAPF32[ptr >> 2] = value; + break; + case "double": + HEAPF64[ptr >> 3] = value; + break; + case "*": + HEAPU32[ptr >> 2] = value; + break; + default: + abort("invalid type for setValue: " + type); + } + } + function warnOnce(text) { + if (!warnOnce.shown) + warnOnce.shown = {}; + if (!warnOnce.shown[text]) { + warnOnce.shown[text] = 1; + err(text); + } + } + function ___assert_fail(condition, filename, line, func) { + abort("Assertion failed: " + UTF8ToString(condition) + ", at: " + [filename ? UTF8ToString(filename) : "unknown filename", line, func ? UTF8ToString(func) : "unknown function"]); + } + function ___throw_exception_with_stack_trace(ex) { + var e = new WebAssembly.Exception(getCppExceptionTag(), [ex], { traceStack: true }); + e.message = getExceptionMessage(e); + if (e.stack) { + var arr = e.stack.split("\n"); + arr.splice(1, 1); + e.stack = arr.join("\n"); + } + throw e; + } + function _abort() { + abort("native code called abort()"); + } + function _emscripten_date_now() { + return Date.now(); + } + function _emscripten_memcpy_big(dest, src, num) { + HEAPU8.copyWithin(dest, src, src + num); + } + function getHeapMax() { + return 2147483648; + } + function emscripten_realloc_buffer(size) { + var b = wasmMemory.buffer; + try { + wasmMemory.grow(size - b.byteLength + 65535 >>> 16); + updateMemoryViews(); + return 1; + } catch (e) { + err("emscripten_realloc_buffer: Attempted to grow heap from " + b.byteLength + " bytes to " + size + " bytes, but got error: " + e); + } + } + function _emscripten_resize_heap(requestedSize) { + var oldSize = HEAPU8.length; + requestedSize = requestedSize >>> 0; + assert(requestedSize > oldSize); + var maxHeapSize = getHeapMax(); + if (requestedSize > maxHeapSize) { + err("Cannot enlarge memory, asked to go up to " + requestedSize + " bytes, but the limit is " + maxHeapSize + " bytes!"); + return false; + } + let alignUp = (x, multiple) => x + (multiple - x % multiple) % multiple; + for (var cutDown = 1; cutDown <= 4; cutDown *= 2) { + var overGrownHeapSize = oldSize * (1 + 0.2 / cutDown); + overGrownHeapSize = Math.min(overGrownHeapSize, requestedSize + 100663296); + var newSize = Math.min(maxHeapSize, alignUp(Math.max(requestedSize, overGrownHeapSize), 65536)); + var replacement = emscripten_realloc_buffer(newSize); + if (replacement) { + return true; + } + } + err("Failed to grow the heap from " + oldSize + " bytes to " + newSize + " bytes, not enough memory!"); + return false; + } + var ENV = {}; + function getExecutableName() { + return thisProgram || "./this.program"; + } + function getEnvStrings() { + if (!getEnvStrings.strings) { + var lang = (typeof navigator == "object" && navigator.languages && navigator.languages[0] || "C").replace("-", "_") + ".UTF-8"; + var env = { + "USER": "web_user", + "LOGNAME": "web_user", + "PATH": "/", + "PWD": "/", + "HOME": "/home/web_user", + "LANG": lang, + "_": getExecutableName() + }; + for (var x in ENV) { + if (ENV[x] === void 0) + delete env[x]; + else + env[x] = ENV[x]; + } + var strings = []; + for (var x in env) { + strings.push(x + "=" + env[x]); + } + getEnvStrings.strings = strings; + } + return getEnvStrings.strings; + } + function stringToAscii(str, buffer) { + for (var i = 0; i < str.length; ++i) { + assert(str.charCodeAt(i) === (str.charCodeAt(i) & 255)); + HEAP8[buffer++ >> 0] = str.charCodeAt(i); + } + HEAP8[buffer >> 0] = 0; + } + var SYSCALLS = { + varargs: void 0, get: function () { + assert(SYSCALLS.varargs != void 0); + SYSCALLS.varargs += 4; + var ret = HEAP32[SYSCALLS.varargs - 4 >> 2]; + return ret; + }, getStr: function (ptr) { + var ret = UTF8ToString(ptr); + return ret; + } + }; + function _environ_get(__environ, environ_buf) { + var bufSize = 0; + getEnvStrings().forEach(function (string, i) { + var ptr = environ_buf + bufSize; + HEAPU32[__environ + i * 4 >> 2] = ptr; + stringToAscii(string, ptr); + bufSize += string.length + 1; + }); + return 0; + } + function _environ_sizes_get(penviron_count, penviron_buf_size) { + var strings = getEnvStrings(); + HEAPU32[penviron_count >> 2] = strings.length; + var bufSize = 0; + strings.forEach(function (string) { + bufSize += string.length + 1; + }); + HEAPU32[penviron_buf_size >> 2] = bufSize; + return 0; + } + function _fd_close(fd) { + abort("fd_close called without SYSCALLS_REQUIRE_FILESYSTEM"); + } + function convertI32PairToI53Checked(lo, hi) { + assert(lo == lo >>> 0 || lo == (lo | 0)); + assert(hi === (hi | 0)); + return hi + 2097152 >>> 0 < 4194305 - !!lo ? (lo >>> 0) + hi * 4294967296 : NaN; + } + function _fd_seek(fd, offset_low, offset_high, whence, newOffset) { + return 70; + } + var printCharBuffers = [null, [], []]; + function printChar(stream, curr) { + var buffer = printCharBuffers[stream]; + assert(buffer); + if (curr === 0 || curr === 10) { + (stream === 1 ? out : err)(UTF8ArrayToString(buffer, 0)); + buffer.length = 0; + } else { + buffer.push(curr); + } + } + function flush_NO_FILESYSTEM() { + _fflush(0); + if (printCharBuffers[1].length) + printChar(1, 10); + if (printCharBuffers[2].length) + printChar(2, 10); + } + function _fd_write(fd, iov, iovcnt, pnum) { + var num = 0; + for (var i = 0; i < iovcnt; i++) { + var ptr = HEAPU32[iov >> 2]; + var len = HEAPU32[iov + 4 >> 2]; + iov += 8; + for (var j = 0; j < len; j++) { + printChar(fd, HEAPU8[ptr + j]); + } + num += len; + } + HEAPU32[pnum >> 2] = num; + return 0; + } + function isLeapYear(year) { + return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0); + } + function arraySum(array, index) { + var sum = 0; + for (var i = 0; i <= index; sum += array[i++]) { + } + return sum; + } + var MONTH_DAYS_LEAP = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; + var MONTH_DAYS_REGULAR = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; + function addDays(date, days) { + var newDate = new Date(date.getTime()); + while (days > 0) { + var leap = isLeapYear(newDate.getFullYear()); + var currentMonth = newDate.getMonth(); + var daysInCurrentMonth = (leap ? MONTH_DAYS_LEAP : MONTH_DAYS_REGULAR)[currentMonth]; + if (days > daysInCurrentMonth - newDate.getDate()) { + days -= daysInCurrentMonth - newDate.getDate() + 1; + newDate.setDate(1); + if (currentMonth < 11) { + newDate.setMonth(currentMonth + 1); + } else { + newDate.setMonth(0); + newDate.setFullYear(newDate.getFullYear() + 1); + } + } else { + newDate.setDate(newDate.getDate() + days); + return newDate; + } + } + return newDate; + } + function lengthBytesUTF8(str) { + var len = 0; + for (var i = 0; i < str.length; ++i) { + var c = str.charCodeAt(i); + if (c <= 127) { + len++; + } else if (c <= 2047) { + len += 2; + } else if (c >= 55296 && c <= 57343) { + len += 4; + ++i; + } else { + len += 3; + } + } + return len; + } + function stringToUTF8Array(str, heap, outIdx, maxBytesToWrite) { + assert(typeof str === "string"); + if (!(maxBytesToWrite > 0)) + return 0; + var startIdx = outIdx; + var endIdx = outIdx + maxBytesToWrite - 1; + for (var i = 0; i < str.length; ++i) { + var u = str.charCodeAt(i); + if (u >= 55296 && u <= 57343) { + var u1 = str.charCodeAt(++i); + u = 65536 + ((u & 1023) << 10) | u1 & 1023; + } + if (u <= 127) { + if (outIdx >= endIdx) + break; + heap[outIdx++] = u; + } else if (u <= 2047) { + if (outIdx + 1 >= endIdx) + break; + heap[outIdx++] = 192 | u >> 6; + heap[outIdx++] = 128 | u & 63; + } else if (u <= 65535) { + if (outIdx + 2 >= endIdx) + break; + heap[outIdx++] = 224 | u >> 12; + heap[outIdx++] = 128 | u >> 6 & 63; + heap[outIdx++] = 128 | u & 63; + } else { + if (outIdx + 3 >= endIdx) + break; + if (u > 1114111) + warnOnce("Invalid Unicode code point " + ptrToString(u) + " encountered when serializing a JS string to a UTF-8 string in wasm memory! (Valid unicode code points should be in range 0-0x10FFFF)."); + heap[outIdx++] = 240 | u >> 18; + heap[outIdx++] = 128 | u >> 12 & 63; + heap[outIdx++] = 128 | u >> 6 & 63; + heap[outIdx++] = 128 | u & 63; + } + } + heap[outIdx] = 0; + return outIdx - startIdx; + } + function intArrayFromString(stringy, dontAddNull, length) { + var len = length > 0 ? length : lengthBytesUTF8(stringy) + 1; + var u8array = new Array(len); + var numBytesWritten = stringToUTF8Array(stringy, u8array, 0, u8array.length); + if (dontAddNull) + u8array.length = numBytesWritten; + return u8array; + } + function writeArrayToMemory(array, buffer) { + assert(array.length >= 0, "writeArrayToMemory array must have a length (should be an array or typed array)"); + HEAP8.set(array, buffer); + } + function _strftime(s, maxsize, format, tm) { + var tm_zone = HEAP32[tm + 40 >> 2]; + var date = { + tm_sec: HEAP32[tm >> 2], + tm_min: HEAP32[tm + 4 >> 2], + tm_hour: HEAP32[tm + 8 >> 2], + tm_mday: HEAP32[tm + 12 >> 2], + tm_mon: HEAP32[tm + 16 >> 2], + tm_year: HEAP32[tm + 20 >> 2], + tm_wday: HEAP32[tm + 24 >> 2], + tm_yday: HEAP32[tm + 28 >> 2], + tm_isdst: HEAP32[tm + 32 >> 2], + tm_gmtoff: HEAP32[tm + 36 >> 2], + tm_zone: tm_zone ? UTF8ToString(tm_zone) : "" + }; + var pattern = UTF8ToString(format); + var EXPANSION_RULES_1 = { + "%c": "%a %b %d %H:%M:%S %Y", + // Replaced by the locale's appropriate date and time representation - e.g., Mon Aug 3 14:02:01 2013 + "%D": "%m/%d/%y", + // Equivalent to %m / %d / %y + "%F": "%Y-%m-%d", + // Equivalent to %Y - %m - %d + "%h": "%b", + // Equivalent to %b + "%r": "%I:%M:%S %p", + // Replaced by the time in a.m. and p.m. notation + "%R": "%H:%M", + // Replaced by the time in 24-hour notation + "%T": "%H:%M:%S", + // Replaced by the time + "%x": "%m/%d/%y", + // Replaced by the locale's appropriate date representation + "%X": "%H:%M:%S", + // Replaced by the locale's appropriate time representation + // Modified Conversion Specifiers + "%Ec": "%c", + // Replaced by the locale's alternative appropriate date and time representation. + "%EC": "%C", + // Replaced by the name of the base year (period) in the locale's alternative representation. + "%Ex": "%m/%d/%y", + // Replaced by the locale's alternative date representation. + "%EX": "%H:%M:%S", + // Replaced by the locale's alternative time representation. + "%Ey": "%y", + // Replaced by the offset from %EC (year only) in the locale's alternative representation. + "%EY": "%Y", + // Replaced by the full alternative year representation. + "%Od": "%d", + // Replaced by the day of the month, using the locale's alternative numeric symbols, filled as needed with leading zeros if there is any alternative symbol for zero; otherwise, with leading characters. + "%Oe": "%e", + // Replaced by the day of the month, using the locale's alternative numeric symbols, filled as needed with leading characters. + "%OH": "%H", + // Replaced by the hour (24-hour clock) using the locale's alternative numeric symbols. + "%OI": "%I", + // Replaced by the hour (12-hour clock) using the locale's alternative numeric symbols. + "%Om": "%m", + // Replaced by the month using the locale's alternative numeric symbols. + "%OM": "%M", + // Replaced by the minutes using the locale's alternative numeric symbols. + "%OS": "%S", + // Replaced by the seconds using the locale's alternative numeric symbols. + "%Ou": "%u", + // Replaced by the weekday as a number in the locale's alternative representation (Monday=1). + "%OU": "%U", + // Replaced by the week number of the year (Sunday as the first day of the week, rules corresponding to %U ) using the locale's alternative numeric symbols. + "%OV": "%V", + // Replaced by the week number of the year (Monday as the first day of the week, rules corresponding to %V ) using the locale's alternative numeric symbols. + "%Ow": "%w", + // Replaced by the number of the weekday (Sunday=0) using the locale's alternative numeric symbols. + "%OW": "%W", + // Replaced by the week number of the year (Monday as the first day of the week) using the locale's alternative numeric symbols. + "%Oy": "%y" + // Replaced by the year (offset from %C ) using the locale's alternative numeric symbols. + }; + for (var rule in EXPANSION_RULES_1) { + pattern = pattern.replace(new RegExp(rule, "g"), EXPANSION_RULES_1[rule]); + } + var WEEKDAYS = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]; + var MONTHS = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]; + function leadingSomething(value, digits, character) { + var str = typeof value == "number" ? value.toString() : value || ""; + while (str.length < digits) { + str = character[0] + str; + } + return str; + } + function leadingNulls(value, digits) { + return leadingSomething(value, digits, "0"); + } + function compareByDay(date1, date2) { + function sgn(value) { + return value < 0 ? -1 : value > 0 ? 1 : 0; + } + var compare2; + if ((compare2 = sgn(date1.getFullYear() - date2.getFullYear())) === 0) { + if ((compare2 = sgn(date1.getMonth() - date2.getMonth())) === 0) { + compare2 = sgn(date1.getDate() - date2.getDate()); + } + } + return compare2; + } + function getFirstWeekStartDate(janFourth) { + switch (janFourth.getDay()) { + case 0: + return new Date(janFourth.getFullYear() - 1, 11, 29); + case 1: + return janFourth; + case 2: + return new Date(janFourth.getFullYear(), 0, 3); + case 3: + return new Date(janFourth.getFullYear(), 0, 2); + case 4: + return new Date(janFourth.getFullYear(), 0, 1); + case 5: + return new Date(janFourth.getFullYear() - 1, 11, 31); + case 6: + return new Date(janFourth.getFullYear() - 1, 11, 30); + } + } + function getWeekBasedYear(date2) { + var thisDate = addDays(new Date(date2.tm_year + 1900, 0, 1), date2.tm_yday); + var janFourthThisYear = new Date(thisDate.getFullYear(), 0, 4); + var janFourthNextYear = new Date(thisDate.getFullYear() + 1, 0, 4); + var firstWeekStartThisYear = getFirstWeekStartDate(janFourthThisYear); + var firstWeekStartNextYear = getFirstWeekStartDate(janFourthNextYear); + if (compareByDay(firstWeekStartThisYear, thisDate) <= 0) { + if (compareByDay(firstWeekStartNextYear, thisDate) <= 0) { + return thisDate.getFullYear() + 1; + } + return thisDate.getFullYear(); + } + return thisDate.getFullYear() - 1; + } + var EXPANSION_RULES_2 = { + "%a": function (date2) { + return WEEKDAYS[date2.tm_wday].substring(0, 3); + }, + "%A": function (date2) { + return WEEKDAYS[date2.tm_wday]; + }, + "%b": function (date2) { + return MONTHS[date2.tm_mon].substring(0, 3); + }, + "%B": function (date2) { + return MONTHS[date2.tm_mon]; + }, + "%C": function (date2) { + var year = date2.tm_year + 1900; + return leadingNulls(year / 100 | 0, 2); + }, + "%d": function (date2) { + return leadingNulls(date2.tm_mday, 2); + }, + "%e": function (date2) { + return leadingSomething(date2.tm_mday, 2, " "); + }, + "%g": function (date2) { + return getWeekBasedYear(date2).toString().substring(2); + }, + "%G": function (date2) { + return getWeekBasedYear(date2); + }, + "%H": function (date2) { + return leadingNulls(date2.tm_hour, 2); + }, + "%I": function (date2) { + var twelveHour = date2.tm_hour; + if (twelveHour == 0) + twelveHour = 12; + else if (twelveHour > 12) + twelveHour -= 12; + return leadingNulls(twelveHour, 2); + }, + "%j": function (date2) { + return leadingNulls(date2.tm_mday + arraySum(isLeapYear(date2.tm_year + 1900) ? MONTH_DAYS_LEAP : MONTH_DAYS_REGULAR, date2.tm_mon - 1), 3); + }, + "%m": function (date2) { + return leadingNulls(date2.tm_mon + 1, 2); + }, + "%M": function (date2) { + return leadingNulls(date2.tm_min, 2); + }, + "%n": function () { + return "\n"; + }, + "%p": function (date2) { + if (date2.tm_hour >= 0 && date2.tm_hour < 12) { + return "AM"; + } + return "PM"; + }, + "%S": function (date2) { + return leadingNulls(date2.tm_sec, 2); + }, + "%t": function () { + return " "; + }, + "%u": function (date2) { + return date2.tm_wday || 7; + }, + "%U": function (date2) { + var days = date2.tm_yday + 7 - date2.tm_wday; + return leadingNulls(Math.floor(days / 7), 2); + }, + "%V": function (date2) { + var val = Math.floor((date2.tm_yday + 7 - (date2.tm_wday + 6) % 7) / 7); + if ((date2.tm_wday + 371 - date2.tm_yday - 2) % 7 <= 2) { + val++; + } + if (!val) { + val = 52; + var dec31 = (date2.tm_wday + 7 - date2.tm_yday - 1) % 7; + if (dec31 == 4 || dec31 == 5 && isLeapYear(date2.tm_year % 400 - 1)) { + val++; + } + } else if (val == 53) { + var jan1 = (date2.tm_wday + 371 - date2.tm_yday) % 7; + if (jan1 != 4 && (jan1 != 3 || !isLeapYear(date2.tm_year))) + val = 1; + } + return leadingNulls(val, 2); + }, + "%w": function (date2) { + return date2.tm_wday; + }, + "%W": function (date2) { + var days = date2.tm_yday + 7 - (date2.tm_wday + 6) % 7; + return leadingNulls(Math.floor(days / 7), 2); + }, + "%y": function (date2) { + return (date2.tm_year + 1900).toString().substring(2); + }, + "%Y": function (date2) { + return date2.tm_year + 1900; + }, + "%z": function (date2) { + var off = date2.tm_gmtoff; + var ahead = off >= 0; + off = Math.abs(off) / 60; + off = off / 60 * 100 + off % 60; + return (ahead ? "+" : "-") + String("0000" + off).slice(-4); + }, + "%Z": function (date2) { + return date2.tm_zone; + }, + "%%": function () { + return "%"; + } + }; + pattern = pattern.replace(/%%/g, "\0\0"); + for (var rule in EXPANSION_RULES_2) { + if (pattern.includes(rule)) { + pattern = pattern.replace(new RegExp(rule, "g"), EXPANSION_RULES_2[rule](date)); + } + } + pattern = pattern.replace(/\0\0/g, "%"); + var bytes = intArrayFromString(pattern, false); + if (bytes.length > maxsize) { + return 0; + } + writeArrayToMemory(bytes, s); + return bytes.length - 1; + } + function _strftime_l(s, maxsize, format, tm, loc) { + return _strftime(s, maxsize, format, tm); + } + function checkIncomingModuleAPI() { + ignoredModuleProp("fetchSettings"); + } + var wasmImports = { + "__assert_fail": ___assert_fail, + "__throw_exception_with_stack_trace": ___throw_exception_with_stack_trace, + "abort": _abort, + "emscripten_date_now": _emscripten_date_now, + "emscripten_memcpy_big": _emscripten_memcpy_big, + "emscripten_resize_heap": _emscripten_resize_heap, + "environ_get": _environ_get, + "environ_sizes_get": _environ_sizes_get, + "fd_close": _fd_close, + "fd_seek": _fd_seek, + "fd_write": _fd_write, + "strftime_l": _strftime_l + }; + var asm = createWasm(); + var ___wasm_call_ctors = createExportWrapper("__wasm_call_ctors"); + var _malloc = Module["_malloc"] = createExportWrapper("malloc"); + var _free = Module["_free"] = createExportWrapper("free"); + var _fflush = Module["_fflush"] = createExportWrapper("fflush"); + var _emscripten_bind_VoidPtr___destroy___0 = Module["_emscripten_bind_VoidPtr___destroy___0"] = createExportWrapper("emscripten_bind_VoidPtr___destroy___0"); + var _emscripten_bind_HyperedgeImprover_HyperedgeImprover_0 = Module["_emscripten_bind_HyperedgeImprover_HyperedgeImprover_0"] = createExportWrapper("emscripten_bind_HyperedgeImprover_HyperedgeImprover_0"); + var _emscripten_bind_HyperedgeImprover_clear_0 = Module["_emscripten_bind_HyperedgeImprover_clear_0"] = createExportWrapper("emscripten_bind_HyperedgeImprover_clear_0"); + var _emscripten_bind_HyperedgeImprover_setRouter_1 = Module["_emscripten_bind_HyperedgeImprover_setRouter_1"] = createExportWrapper("emscripten_bind_HyperedgeImprover_setRouter_1"); + var _emscripten_bind_HyperedgeImprover___destroy___0 = Module["_emscripten_bind_HyperedgeImprover___destroy___0"] = createExportWrapper("emscripten_bind_HyperedgeImprover___destroy___0"); + var _emscripten_bind_Box_Box_0 = Module["_emscripten_bind_Box_Box_0"] = createExportWrapper("emscripten_bind_Box_Box_0"); + var _emscripten_bind_Box_length_1 = Module["_emscripten_bind_Box_length_1"] = createExportWrapper("emscripten_bind_Box_length_1"); + var _emscripten_bind_Box_width_0 = Module["_emscripten_bind_Box_width_0"] = createExportWrapper("emscripten_bind_Box_width_0"); + var _emscripten_bind_Box_height_0 = Module["_emscripten_bind_Box_height_0"] = createExportWrapper("emscripten_bind_Box_height_0"); + var _emscripten_bind_Box_get_min_0 = Module["_emscripten_bind_Box_get_min_0"] = createExportWrapper("emscripten_bind_Box_get_min_0"); + var _emscripten_bind_Box_set_min_1 = Module["_emscripten_bind_Box_set_min_1"] = createExportWrapper("emscripten_bind_Box_set_min_1"); + var _emscripten_bind_Box_get_max_0 = Module["_emscripten_bind_Box_get_max_0"] = createExportWrapper("emscripten_bind_Box_get_max_0"); + var _emscripten_bind_Box_set_max_1 = Module["_emscripten_bind_Box_set_max_1"] = createExportWrapper("emscripten_bind_Box_set_max_1"); + var _emscripten_bind_Box___destroy___0 = Module["_emscripten_bind_Box___destroy___0"] = createExportWrapper("emscripten_bind_Box___destroy___0"); + var _emscripten_bind_PolygonInterface_clear_0 = Module["_emscripten_bind_PolygonInterface_clear_0"] = createExportWrapper("emscripten_bind_PolygonInterface_clear_0"); + var _emscripten_bind_PolygonInterface_empty_0 = Module["_emscripten_bind_PolygonInterface_empty_0"] = createExportWrapper("emscripten_bind_PolygonInterface_empty_0"); + var _emscripten_bind_PolygonInterface_size_0 = Module["_emscripten_bind_PolygonInterface_size_0"] = createExportWrapper("emscripten_bind_PolygonInterface_size_0"); + var _emscripten_bind_PolygonInterface_id_0 = Module["_emscripten_bind_PolygonInterface_id_0"] = createExportWrapper("emscripten_bind_PolygonInterface_id_0"); + var _emscripten_bind_PolygonInterface_at_1 = Module["_emscripten_bind_PolygonInterface_at_1"] = createExportWrapper("emscripten_bind_PolygonInterface_at_1"); + var _emscripten_bind_PolygonInterface_boundingRectPolygon_0 = Module["_emscripten_bind_PolygonInterface_boundingRectPolygon_0"] = createExportWrapper("emscripten_bind_PolygonInterface_boundingRectPolygon_0"); + var _emscripten_bind_PolygonInterface_offsetBoundingBox_1 = Module["_emscripten_bind_PolygonInterface_offsetBoundingBox_1"] = createExportWrapper("emscripten_bind_PolygonInterface_offsetBoundingBox_1"); + var _emscripten_bind_PolygonInterface_offsetPolygon_1 = Module["_emscripten_bind_PolygonInterface_offsetPolygon_1"] = createExportWrapper("emscripten_bind_PolygonInterface_offsetPolygon_1"); + var _emscripten_bind_PolygonInterface___destroy___0 = Module["_emscripten_bind_PolygonInterface___destroy___0"] = createExportWrapper("emscripten_bind_PolygonInterface___destroy___0"); + var _emscripten_bind_Polygon_Polygon_0 = Module["_emscripten_bind_Polygon_Polygon_0"] = createExportWrapper("emscripten_bind_Polygon_Polygon_0"); + var _emscripten_bind_Polygon_Polygon_1 = Module["_emscripten_bind_Polygon_Polygon_1"] = createExportWrapper("emscripten_bind_Polygon_Polygon_1"); + var _emscripten_bind_Polygon_setPoint_2 = Module["_emscripten_bind_Polygon_setPoint_2"] = createExportWrapper("emscripten_bind_Polygon_setPoint_2"); + var _emscripten_bind_Polygon_size_0 = Module["_emscripten_bind_Polygon_size_0"] = createExportWrapper("emscripten_bind_Polygon_size_0"); + var _emscripten_bind_Polygon_get_ps_1 = Module["_emscripten_bind_Polygon_get_ps_1"] = createExportWrapper("emscripten_bind_Polygon_get_ps_1"); + var _emscripten_bind_Polygon_set_ps_2 = Module["_emscripten_bind_Polygon_set_ps_2"] = createExportWrapper("emscripten_bind_Polygon_set_ps_2"); + var _emscripten_bind_Polygon___destroy___0 = Module["_emscripten_bind_Polygon___destroy___0"] = createExportWrapper("emscripten_bind_Polygon___destroy___0"); + var _emscripten_bind_Point_Point_0 = Module["_emscripten_bind_Point_Point_0"] = createExportWrapper("emscripten_bind_Point_Point_0"); + var _emscripten_bind_Point_Point_2 = Module["_emscripten_bind_Point_Point_2"] = createExportWrapper("emscripten_bind_Point_Point_2"); + var _emscripten_bind_Point_equal_1 = Module["_emscripten_bind_Point_equal_1"] = createExportWrapper("emscripten_bind_Point_equal_1"); + var _emscripten_bind_Point_get_x_0 = Module["_emscripten_bind_Point_get_x_0"] = createExportWrapper("emscripten_bind_Point_get_x_0"); + var _emscripten_bind_Point_set_x_1 = Module["_emscripten_bind_Point_set_x_1"] = createExportWrapper("emscripten_bind_Point_set_x_1"); + var _emscripten_bind_Point_get_y_0 = Module["_emscripten_bind_Point_get_y_0"] = createExportWrapper("emscripten_bind_Point_get_y_0"); + var _emscripten_bind_Point_set_y_1 = Module["_emscripten_bind_Point_set_y_1"] = createExportWrapper("emscripten_bind_Point_set_y_1"); + var _emscripten_bind_Point_get_id_0 = Module["_emscripten_bind_Point_get_id_0"] = createExportWrapper("emscripten_bind_Point_get_id_0"); + var _emscripten_bind_Point_set_id_1 = Module["_emscripten_bind_Point_set_id_1"] = createExportWrapper("emscripten_bind_Point_set_id_1"); + var _emscripten_bind_Point_get_vn_0 = Module["_emscripten_bind_Point_get_vn_0"] = createExportWrapper("emscripten_bind_Point_get_vn_0"); + var _emscripten_bind_Point_set_vn_1 = Module["_emscripten_bind_Point_set_vn_1"] = createExportWrapper("emscripten_bind_Point_set_vn_1"); + var _emscripten_bind_Point___destroy___0 = Module["_emscripten_bind_Point___destroy___0"] = createExportWrapper("emscripten_bind_Point___destroy___0"); + var _emscripten_bind_Rectangle_Rectangle_2 = Module["_emscripten_bind_Rectangle_Rectangle_2"] = createExportWrapper("emscripten_bind_Rectangle_Rectangle_2"); + var _emscripten_bind_Rectangle_Rectangle_3 = Module["_emscripten_bind_Rectangle_Rectangle_3"] = createExportWrapper("emscripten_bind_Rectangle_Rectangle_3"); + var _emscripten_bind_Rectangle___destroy___0 = Module["_emscripten_bind_Rectangle___destroy___0"] = createExportWrapper("emscripten_bind_Rectangle___destroy___0"); + var _emscripten_bind_HyperedgeTreeNode_HyperedgeTreeNode_0 = Module["_emscripten_bind_HyperedgeTreeNode_HyperedgeTreeNode_0"] = createExportWrapper("emscripten_bind_HyperedgeTreeNode_HyperedgeTreeNode_0"); + var _emscripten_bind_HyperedgeTreeNode_writeEdgesToConns_2 = Module["_emscripten_bind_HyperedgeTreeNode_writeEdgesToConns_2"] = createExportWrapper("emscripten_bind_HyperedgeTreeNode_writeEdgesToConns_2"); + var _emscripten_bind_HyperedgeTreeNode___destroy___0 = Module["_emscripten_bind_HyperedgeTreeNode___destroy___0"] = createExportWrapper("emscripten_bind_HyperedgeTreeNode___destroy___0"); + var _emscripten_bind_HyperedgeTreeEdge_HyperedgeTreeEdge_3 = Module["_emscripten_bind_HyperedgeTreeEdge_HyperedgeTreeEdge_3"] = createExportWrapper("emscripten_bind_HyperedgeTreeEdge_HyperedgeTreeEdge_3"); + var _emscripten_bind_HyperedgeTreeEdge___destroy___0 = Module["_emscripten_bind_HyperedgeTreeEdge___destroy___0"] = createExportWrapper("emscripten_bind_HyperedgeTreeEdge___destroy___0"); + var _emscripten_bind_AStarPath_AStarPath_0 = Module["_emscripten_bind_AStarPath_AStarPath_0"] = createExportWrapper("emscripten_bind_AStarPath_AStarPath_0"); + var _emscripten_bind_AStarPath_search_4 = Module["_emscripten_bind_AStarPath_search_4"] = createExportWrapper("emscripten_bind_AStarPath_search_4"); + var _emscripten_bind_AStarPath___destroy___0 = Module["_emscripten_bind_AStarPath___destroy___0"] = createExportWrapper("emscripten_bind_AStarPath___destroy___0"); + var _emscripten_bind_ConnEnd_ConnEnd_1 = Module["_emscripten_bind_ConnEnd_ConnEnd_1"] = createExportWrapper("emscripten_bind_ConnEnd_ConnEnd_1"); + var _emscripten_bind_ConnEnd_ConnEnd_2 = Module["_emscripten_bind_ConnEnd_ConnEnd_2"] = createExportWrapper("emscripten_bind_ConnEnd_ConnEnd_2"); + var _emscripten_bind_ConnEnd_createConnEndFromJunctionRef_1 = Module["_emscripten_bind_ConnEnd_createConnEndFromJunctionRef_1"] = createExportWrapper("emscripten_bind_ConnEnd_createConnEndFromJunctionRef_1"); + var _emscripten_bind_ConnEnd___destroy___0 = Module["_emscripten_bind_ConnEnd___destroy___0"] = createExportWrapper("emscripten_bind_ConnEnd___destroy___0"); + var _emscripten_bind_ActionInfo_ActionInfo_2 = Module["_emscripten_bind_ActionInfo_ActionInfo_2"] = createExportWrapper("emscripten_bind_ActionInfo_ActionInfo_2"); + var _emscripten_bind_ActionInfo_ActionInfo_3 = Module["_emscripten_bind_ActionInfo_ActionInfo_3"] = createExportWrapper("emscripten_bind_ActionInfo_ActionInfo_3"); + var _emscripten_bind_ActionInfo_ActionInfo_4 = Module["_emscripten_bind_ActionInfo_ActionInfo_4"] = createExportWrapper("emscripten_bind_ActionInfo_ActionInfo_4"); + var _emscripten_bind_ActionInfo_obstacle_0 = Module["_emscripten_bind_ActionInfo_obstacle_0"] = createExportWrapper("emscripten_bind_ActionInfo_obstacle_0"); + var _emscripten_bind_ActionInfo_shape_0 = Module["_emscripten_bind_ActionInfo_shape_0"] = createExportWrapper("emscripten_bind_ActionInfo_shape_0"); + var _emscripten_bind_ActionInfo_conn_0 = Module["_emscripten_bind_ActionInfo_conn_0"] = createExportWrapper("emscripten_bind_ActionInfo_conn_0"); + var _emscripten_bind_ActionInfo_junction_0 = Module["_emscripten_bind_ActionInfo_junction_0"] = createExportWrapper("emscripten_bind_ActionInfo_junction_0"); + var _emscripten_bind_ActionInfo_addConnEndUpdate_3 = Module["_emscripten_bind_ActionInfo_addConnEndUpdate_3"] = createExportWrapper("emscripten_bind_ActionInfo_addConnEndUpdate_3"); + var _emscripten_bind_ActionInfo_get_type_0 = Module["_emscripten_bind_ActionInfo_get_type_0"] = createExportWrapper("emscripten_bind_ActionInfo_get_type_0"); + var _emscripten_bind_ActionInfo_set_type_1 = Module["_emscripten_bind_ActionInfo_set_type_1"] = createExportWrapper("emscripten_bind_ActionInfo_set_type_1"); + var _emscripten_bind_ActionInfo_get_objPtr_0 = Module["_emscripten_bind_ActionInfo_get_objPtr_0"] = createExportWrapper("emscripten_bind_ActionInfo_get_objPtr_0"); + var _emscripten_bind_ActionInfo_set_objPtr_1 = Module["_emscripten_bind_ActionInfo_set_objPtr_1"] = createExportWrapper("emscripten_bind_ActionInfo_set_objPtr_1"); + var _emscripten_bind_ActionInfo_get_newPoly_0 = Module["_emscripten_bind_ActionInfo_get_newPoly_0"] = createExportWrapper("emscripten_bind_ActionInfo_get_newPoly_0"); + var _emscripten_bind_ActionInfo_set_newPoly_1 = Module["_emscripten_bind_ActionInfo_set_newPoly_1"] = createExportWrapper("emscripten_bind_ActionInfo_set_newPoly_1"); + var _emscripten_bind_ActionInfo_get_newPosition_0 = Module["_emscripten_bind_ActionInfo_get_newPosition_0"] = createExportWrapper("emscripten_bind_ActionInfo_get_newPosition_0"); + var _emscripten_bind_ActionInfo_set_newPosition_1 = Module["_emscripten_bind_ActionInfo_set_newPosition_1"] = createExportWrapper("emscripten_bind_ActionInfo_set_newPosition_1"); + var _emscripten_bind_ActionInfo_get_firstMove_0 = Module["_emscripten_bind_ActionInfo_get_firstMove_0"] = createExportWrapper("emscripten_bind_ActionInfo_get_firstMove_0"); + var _emscripten_bind_ActionInfo_set_firstMove_1 = Module["_emscripten_bind_ActionInfo_set_firstMove_1"] = createExportWrapper("emscripten_bind_ActionInfo_set_firstMove_1"); + var _emscripten_bind_ActionInfo___destroy___0 = Module["_emscripten_bind_ActionInfo___destroy___0"] = createExportWrapper("emscripten_bind_ActionInfo___destroy___0"); + var _emscripten_bind_ShapeConnectionPin_ShapeConnectionPin_2 = Module["_emscripten_bind_ShapeConnectionPin_ShapeConnectionPin_2"] = createExportWrapper("emscripten_bind_ShapeConnectionPin_ShapeConnectionPin_2"); + var _emscripten_bind_ShapeConnectionPin_ShapeConnectionPin_3 = Module["_emscripten_bind_ShapeConnectionPin_ShapeConnectionPin_3"] = createExportWrapper("emscripten_bind_ShapeConnectionPin_ShapeConnectionPin_3"); + var _emscripten_bind_ShapeConnectionPin_ShapeConnectionPin_6 = Module["_emscripten_bind_ShapeConnectionPin_ShapeConnectionPin_6"] = createExportWrapper("emscripten_bind_ShapeConnectionPin_ShapeConnectionPin_6"); + var _emscripten_bind_ShapeConnectionPin_ShapeConnectionPin_7 = Module["_emscripten_bind_ShapeConnectionPin_ShapeConnectionPin_7"] = createExportWrapper("emscripten_bind_ShapeConnectionPin_ShapeConnectionPin_7"); + var _emscripten_bind_ShapeConnectionPin_setConnectionCost_1 = Module["_emscripten_bind_ShapeConnectionPin_setConnectionCost_1"] = createExportWrapper("emscripten_bind_ShapeConnectionPin_setConnectionCost_1"); + var _emscripten_bind_ShapeConnectionPin_position_0 = Module["_emscripten_bind_ShapeConnectionPin_position_0"] = createExportWrapper("emscripten_bind_ShapeConnectionPin_position_0"); + var _emscripten_bind_ShapeConnectionPin_position_1 = Module["_emscripten_bind_ShapeConnectionPin_position_1"] = createExportWrapper("emscripten_bind_ShapeConnectionPin_position_1"); + var _emscripten_bind_ShapeConnectionPin_directions_0 = Module["_emscripten_bind_ShapeConnectionPin_directions_0"] = createExportWrapper("emscripten_bind_ShapeConnectionPin_directions_0"); + var _emscripten_bind_ShapeConnectionPin_setExclusive_1 = Module["_emscripten_bind_ShapeConnectionPin_setExclusive_1"] = createExportWrapper("emscripten_bind_ShapeConnectionPin_setExclusive_1"); + var _emscripten_bind_ShapeConnectionPin_isExclusive_0 = Module["_emscripten_bind_ShapeConnectionPin_isExclusive_0"] = createExportWrapper("emscripten_bind_ShapeConnectionPin_isExclusive_0"); + var _emscripten_bind_ShapeConnectionPin_updatePosition_1 = Module["_emscripten_bind_ShapeConnectionPin_updatePosition_1"] = createExportWrapper("emscripten_bind_ShapeConnectionPin_updatePosition_1"); + var _emscripten_bind_ShapeConnectionPin___destroy___0 = Module["_emscripten_bind_ShapeConnectionPin___destroy___0"] = createExportWrapper("emscripten_bind_ShapeConnectionPin___destroy___0"); + var _emscripten_bind_Obstacle_id_0 = Module["_emscripten_bind_Obstacle_id_0"] = createExportWrapper("emscripten_bind_Obstacle_id_0"); + var _emscripten_bind_Obstacle_polygon_0 = Module["_emscripten_bind_Obstacle_polygon_0"] = createExportWrapper("emscripten_bind_Obstacle_polygon_0"); + var _emscripten_bind_Obstacle_router_0 = Module["_emscripten_bind_Obstacle_router_0"] = createExportWrapper("emscripten_bind_Obstacle_router_0"); + var _emscripten_bind_Obstacle_position_0 = Module["_emscripten_bind_Obstacle_position_0"] = createExportWrapper("emscripten_bind_Obstacle_position_0"); + var _emscripten_bind_Obstacle_setNewPoly_1 = Module["_emscripten_bind_Obstacle_setNewPoly_1"] = createExportWrapper("emscripten_bind_Obstacle_setNewPoly_1"); + var _emscripten_bind_Obstacle___destroy___0 = Module["_emscripten_bind_Obstacle___destroy___0"] = createExportWrapper("emscripten_bind_Obstacle___destroy___0"); + var _emscripten_bind_JunctionRef_JunctionRef_2 = Module["_emscripten_bind_JunctionRef_JunctionRef_2"] = createExportWrapper("emscripten_bind_JunctionRef_JunctionRef_2"); + var _emscripten_bind_JunctionRef_JunctionRef_3 = Module["_emscripten_bind_JunctionRef_JunctionRef_3"] = createExportWrapper("emscripten_bind_JunctionRef_JunctionRef_3"); + var _emscripten_bind_JunctionRef_position_0 = Module["_emscripten_bind_JunctionRef_position_0"] = createExportWrapper("emscripten_bind_JunctionRef_position_0"); + var _emscripten_bind_JunctionRef_setPositionFixed_1 = Module["_emscripten_bind_JunctionRef_setPositionFixed_1"] = createExportWrapper("emscripten_bind_JunctionRef_setPositionFixed_1"); + var _emscripten_bind_JunctionRef_positionFixed_0 = Module["_emscripten_bind_JunctionRef_positionFixed_0"] = createExportWrapper("emscripten_bind_JunctionRef_positionFixed_0"); + var _emscripten_bind_JunctionRef_recommendedPosition_0 = Module["_emscripten_bind_JunctionRef_recommendedPosition_0"] = createExportWrapper("emscripten_bind_JunctionRef_recommendedPosition_0"); + var _emscripten_bind_JunctionRef___destroy___0 = Module["_emscripten_bind_JunctionRef___destroy___0"] = createExportWrapper("emscripten_bind_JunctionRef___destroy___0"); + var _emscripten_bind_ShapeRef_ShapeRef_2 = Module["_emscripten_bind_ShapeRef_ShapeRef_2"] = createExportWrapper("emscripten_bind_ShapeRef_ShapeRef_2"); + var _emscripten_bind_ShapeRef_ShapeRef_3 = Module["_emscripten_bind_ShapeRef_ShapeRef_3"] = createExportWrapper("emscripten_bind_ShapeRef_ShapeRef_3"); + var _emscripten_bind_ShapeRef_polygon_0 = Module["_emscripten_bind_ShapeRef_polygon_0"] = createExportWrapper("emscripten_bind_ShapeRef_polygon_0"); + var _emscripten_bind_ShapeRef_position_0 = Module["_emscripten_bind_ShapeRef_position_0"] = createExportWrapper("emscripten_bind_ShapeRef_position_0"); + var _emscripten_bind_ShapeRef_setNewPoly_1 = Module["_emscripten_bind_ShapeRef_setNewPoly_1"] = createExportWrapper("emscripten_bind_ShapeRef_setNewPoly_1"); + var _emscripten_bind_ShapeRef___destroy___0 = Module["_emscripten_bind_ShapeRef___destroy___0"] = createExportWrapper("emscripten_bind_ShapeRef___destroy___0"); + var _emscripten_bind_HyperedgeNewAndDeletedObjectLists___destroy___0 = Module["_emscripten_bind_HyperedgeNewAndDeletedObjectLists___destroy___0"] = createExportWrapper("emscripten_bind_HyperedgeNewAndDeletedObjectLists___destroy___0"); + var _emscripten_bind_HyperedgeRerouter_HyperedgeRerouter_0 = Module["_emscripten_bind_HyperedgeRerouter_HyperedgeRerouter_0"] = createExportWrapper("emscripten_bind_HyperedgeRerouter_HyperedgeRerouter_0"); + var _emscripten_bind_HyperedgeRerouter_registerHyperedgeForRerouting_1 = Module["_emscripten_bind_HyperedgeRerouter_registerHyperedgeForRerouting_1"] = createExportWrapper("emscripten_bind_HyperedgeRerouter_registerHyperedgeForRerouting_1"); + var _emscripten_bind_HyperedgeRerouter___destroy___0 = Module["_emscripten_bind_HyperedgeRerouter___destroy___0"] = createExportWrapper("emscripten_bind_HyperedgeRerouter___destroy___0"); + var _emscripten_bind_VertInf___destroy___0 = Module["_emscripten_bind_VertInf___destroy___0"] = createExportWrapper("emscripten_bind_VertInf___destroy___0"); + var _emscripten_bind_VertID_VertID_0 = Module["_emscripten_bind_VertID_VertID_0"] = createExportWrapper("emscripten_bind_VertID_VertID_0"); + var _emscripten_bind_VertID_VertID_2 = Module["_emscripten_bind_VertID_VertID_2"] = createExportWrapper("emscripten_bind_VertID_VertID_2"); + var _emscripten_bind_VertID_VertID_3 = Module["_emscripten_bind_VertID_VertID_3"] = createExportWrapper("emscripten_bind_VertID_VertID_3"); + var _emscripten_bind_VertID_get_objID_0 = Module["_emscripten_bind_VertID_get_objID_0"] = createExportWrapper("emscripten_bind_VertID_get_objID_0"); + var _emscripten_bind_VertID_set_objID_1 = Module["_emscripten_bind_VertID_set_objID_1"] = createExportWrapper("emscripten_bind_VertID_set_objID_1"); + var _emscripten_bind_VertID_get_vn_0 = Module["_emscripten_bind_VertID_get_vn_0"] = createExportWrapper("emscripten_bind_VertID_get_vn_0"); + var _emscripten_bind_VertID_set_vn_1 = Module["_emscripten_bind_VertID_set_vn_1"] = createExportWrapper("emscripten_bind_VertID_set_vn_1"); + var _emscripten_bind_VertID_get_props_0 = Module["_emscripten_bind_VertID_get_props_0"] = createExportWrapper("emscripten_bind_VertID_get_props_0"); + var _emscripten_bind_VertID_set_props_1 = Module["_emscripten_bind_VertID_set_props_1"] = createExportWrapper("emscripten_bind_VertID_set_props_1"); + var _emscripten_bind_VertID_get_src_0 = Module["_emscripten_bind_VertID_get_src_0"] = createExportWrapper("emscripten_bind_VertID_get_src_0"); + var _emscripten_bind_VertID_get_tar_0 = Module["_emscripten_bind_VertID_get_tar_0"] = createExportWrapper("emscripten_bind_VertID_get_tar_0"); + var _emscripten_bind_VertID_get_PROP_ConnPoint_0 = Module["_emscripten_bind_VertID_get_PROP_ConnPoint_0"] = createExportWrapper("emscripten_bind_VertID_get_PROP_ConnPoint_0"); + var _emscripten_bind_VertID_get_PROP_OrthShapeEdge_0 = Module["_emscripten_bind_VertID_get_PROP_OrthShapeEdge_0"] = createExportWrapper("emscripten_bind_VertID_get_PROP_OrthShapeEdge_0"); + var _emscripten_bind_VertID_get_PROP_ConnectionPin_0 = Module["_emscripten_bind_VertID_get_PROP_ConnectionPin_0"] = createExportWrapper("emscripten_bind_VertID_get_PROP_ConnectionPin_0"); + var _emscripten_bind_VertID_get_PROP_ConnCheckpoint_0 = Module["_emscripten_bind_VertID_get_PROP_ConnCheckpoint_0"] = createExportWrapper("emscripten_bind_VertID_get_PROP_ConnCheckpoint_0"); + var _emscripten_bind_VertID_get_PROP_DummyPinHelper_0 = Module["_emscripten_bind_VertID_get_PROP_DummyPinHelper_0"] = createExportWrapper("emscripten_bind_VertID_get_PROP_DummyPinHelper_0"); + var _emscripten_bind_VertID___destroy___0 = Module["_emscripten_bind_VertID___destroy___0"] = createExportWrapper("emscripten_bind_VertID___destroy___0"); + var _emscripten_bind_MinimumTerminalSpanningTree___destroy___0 = Module["_emscripten_bind_MinimumTerminalSpanningTree___destroy___0"] = createExportWrapper("emscripten_bind_MinimumTerminalSpanningTree___destroy___0"); + var _emscripten_bind_Checkpoint_Checkpoint_1 = Module["_emscripten_bind_Checkpoint_Checkpoint_1"] = createExportWrapper("emscripten_bind_Checkpoint_Checkpoint_1"); + var _emscripten_bind_Checkpoint___destroy___0 = Module["_emscripten_bind_Checkpoint___destroy___0"] = createExportWrapper("emscripten_bind_Checkpoint___destroy___0"); + var _emscripten_bind_ConnRef_ConnRef_3 = Module["_emscripten_bind_ConnRef_ConnRef_3"] = createExportWrapper("emscripten_bind_ConnRef_ConnRef_3"); + var _emscripten_bind_ConnRef_ConnRef_4 = Module["_emscripten_bind_ConnRef_ConnRef_4"] = createExportWrapper("emscripten_bind_ConnRef_ConnRef_4"); + var _emscripten_bind_ConnRef_id_0 = Module["_emscripten_bind_ConnRef_id_0"] = createExportWrapper("emscripten_bind_ConnRef_id_0"); + var _emscripten_bind_ConnRef_setCallback_2 = Module["_emscripten_bind_ConnRef_setCallback_2"] = createExportWrapper("emscripten_bind_ConnRef_setCallback_2"); + var _emscripten_bind_ConnRef_setSourceEndpoint_1 = Module["_emscripten_bind_ConnRef_setSourceEndpoint_1"] = createExportWrapper("emscripten_bind_ConnRef_setSourceEndpoint_1"); + var _emscripten_bind_ConnRef_setDestEndpoint_1 = Module["_emscripten_bind_ConnRef_setDestEndpoint_1"] = createExportWrapper("emscripten_bind_ConnRef_setDestEndpoint_1"); + var _emscripten_bind_ConnRef_routingType_0 = Module["_emscripten_bind_ConnRef_routingType_0"] = createExportWrapper("emscripten_bind_ConnRef_routingType_0"); + var _emscripten_bind_ConnRef_setRoutingType_1 = Module["_emscripten_bind_ConnRef_setRoutingType_1"] = createExportWrapper("emscripten_bind_ConnRef_setRoutingType_1"); + var _emscripten_bind_ConnRef_displayRoute_0 = Module["_emscripten_bind_ConnRef_displayRoute_0"] = createExportWrapper("emscripten_bind_ConnRef_displayRoute_0"); + var _emscripten_bind_ConnRef_setHateCrossings_1 = Module["_emscripten_bind_ConnRef_setHateCrossings_1"] = createExportWrapper("emscripten_bind_ConnRef_setHateCrossings_1"); + var _emscripten_bind_ConnRef_doesHateCrossings_0 = Module["_emscripten_bind_ConnRef_doesHateCrossings_0"] = createExportWrapper("emscripten_bind_ConnRef_doesHateCrossings_0"); + var _emscripten_bind_ConnRef___destroy___0 = Module["_emscripten_bind_ConnRef___destroy___0"] = createExportWrapper("emscripten_bind_ConnRef___destroy___0"); + var _emscripten_bind_EdgeInf_EdgeInf_2 = Module["_emscripten_bind_EdgeInf_EdgeInf_2"] = createExportWrapper("emscripten_bind_EdgeInf_EdgeInf_2"); + var _emscripten_bind_EdgeInf_EdgeInf_3 = Module["_emscripten_bind_EdgeInf_EdgeInf_3"] = createExportWrapper("emscripten_bind_EdgeInf_EdgeInf_3"); + var _emscripten_bind_EdgeInf___destroy___0 = Module["_emscripten_bind_EdgeInf___destroy___0"] = createExportWrapper("emscripten_bind_EdgeInf___destroy___0"); + var _emscripten_bind_LineRep_get_begin_0 = Module["_emscripten_bind_LineRep_get_begin_0"] = createExportWrapper("emscripten_bind_LineRep_get_begin_0"); + var _emscripten_bind_LineRep_set_begin_1 = Module["_emscripten_bind_LineRep_set_begin_1"] = createExportWrapper("emscripten_bind_LineRep_set_begin_1"); + var _emscripten_bind_LineRep_get_end_0 = Module["_emscripten_bind_LineRep_get_end_0"] = createExportWrapper("emscripten_bind_LineRep_get_end_0"); + var _emscripten_bind_LineRep_set_end_1 = Module["_emscripten_bind_LineRep_set_end_1"] = createExportWrapper("emscripten_bind_LineRep_set_end_1"); + var _emscripten_bind_LineRep___destroy___0 = Module["_emscripten_bind_LineRep___destroy___0"] = createExportWrapper("emscripten_bind_LineRep___destroy___0"); + var _emscripten_bind_Router_Router_1 = Module["_emscripten_bind_Router_Router_1"] = createExportWrapper("emscripten_bind_Router_Router_1"); + var _emscripten_bind_Router_processTransaction_0 = Module["_emscripten_bind_Router_processTransaction_0"] = createExportWrapper("emscripten_bind_Router_processTransaction_0"); + var _emscripten_bind_Router_printInfo_0 = Module["_emscripten_bind_Router_printInfo_0"] = createExportWrapper("emscripten_bind_Router_printInfo_0"); + var _emscripten_bind_Router_deleteConnector_1 = Module["_emscripten_bind_Router_deleteConnector_1"] = createExportWrapper("emscripten_bind_Router_deleteConnector_1"); + var _emscripten_bind_Router_moveShape_2 = Module["_emscripten_bind_Router_moveShape_2"] = createExportWrapper("emscripten_bind_Router_moveShape_2"); + var _emscripten_bind_Router_moveShape_3 = Module["_emscripten_bind_Router_moveShape_3"] = createExportWrapper("emscripten_bind_Router_moveShape_3"); + var _emscripten_bind_Router_deleteShape_1 = Module["_emscripten_bind_Router_deleteShape_1"] = createExportWrapper("emscripten_bind_Router_deleteShape_1"); + var _emscripten_bind_Router_moveJunction_2 = Module["_emscripten_bind_Router_moveJunction_2"] = createExportWrapper("emscripten_bind_Router_moveJunction_2"); + var _emscripten_bind_Router_moveJunction_3 = Module["_emscripten_bind_Router_moveJunction_3"] = createExportWrapper("emscripten_bind_Router_moveJunction_3"); + var _emscripten_bind_Router_setRoutingParameter_2 = Module["_emscripten_bind_Router_setRoutingParameter_2"] = createExportWrapper("emscripten_bind_Router_setRoutingParameter_2"); + var _emscripten_bind_Router_setRoutingOption_2 = Module["_emscripten_bind_Router_setRoutingOption_2"] = createExportWrapper("emscripten_bind_Router_setRoutingOption_2"); + var _emscripten_bind_Router___destroy___0 = Module["_emscripten_bind_Router___destroy___0"] = createExportWrapper("emscripten_bind_Router___destroy___0"); + var _emscripten_enum_Avoid_ConnDirFlag_ConnDirNone = Module["_emscripten_enum_Avoid_ConnDirFlag_ConnDirNone"] = createExportWrapper("emscripten_enum_Avoid_ConnDirFlag_ConnDirNone"); + var _emscripten_enum_Avoid_ConnDirFlag_ConnDirUp = Module["_emscripten_enum_Avoid_ConnDirFlag_ConnDirUp"] = createExportWrapper("emscripten_enum_Avoid_ConnDirFlag_ConnDirUp"); + var _emscripten_enum_Avoid_ConnDirFlag_ConnDirDown = Module["_emscripten_enum_Avoid_ConnDirFlag_ConnDirDown"] = createExportWrapper("emscripten_enum_Avoid_ConnDirFlag_ConnDirDown"); + var _emscripten_enum_Avoid_ConnDirFlag_ConnDirLeft = Module["_emscripten_enum_Avoid_ConnDirFlag_ConnDirLeft"] = createExportWrapper("emscripten_enum_Avoid_ConnDirFlag_ConnDirLeft"); + var _emscripten_enum_Avoid_ConnDirFlag_ConnDirRight = Module["_emscripten_enum_Avoid_ConnDirFlag_ConnDirRight"] = createExportWrapper("emscripten_enum_Avoid_ConnDirFlag_ConnDirRight"); + var _emscripten_enum_Avoid_ConnDirFlag_ConnDirAll = Module["_emscripten_enum_Avoid_ConnDirFlag_ConnDirAll"] = createExportWrapper("emscripten_enum_Avoid_ConnDirFlag_ConnDirAll"); + var _emscripten_enum_Avoid_ConnEndType_ConnEndPoint = Module["_emscripten_enum_Avoid_ConnEndType_ConnEndPoint"] = createExportWrapper("emscripten_enum_Avoid_ConnEndType_ConnEndPoint"); + var _emscripten_enum_Avoid_ConnEndType_ConnEndShapePin = Module["_emscripten_enum_Avoid_ConnEndType_ConnEndShapePin"] = createExportWrapper("emscripten_enum_Avoid_ConnEndType_ConnEndShapePin"); + var _emscripten_enum_Avoid_ConnEndType_ConnEndJunction = Module["_emscripten_enum_Avoid_ConnEndType_ConnEndJunction"] = createExportWrapper("emscripten_enum_Avoid_ConnEndType_ConnEndJunction"); + var _emscripten_enum_Avoid_ConnEndType_ConnEndEmpty = Module["_emscripten_enum_Avoid_ConnEndType_ConnEndEmpty"] = createExportWrapper("emscripten_enum_Avoid_ConnEndType_ConnEndEmpty"); + var _emscripten_enum_Avoid_ActionType_ShapeMove = Module["_emscripten_enum_Avoid_ActionType_ShapeMove"] = createExportWrapper("emscripten_enum_Avoid_ActionType_ShapeMove"); + var _emscripten_enum_Avoid_ActionType_ShapeAdd = Module["_emscripten_enum_Avoid_ActionType_ShapeAdd"] = createExportWrapper("emscripten_enum_Avoid_ActionType_ShapeAdd"); + var _emscripten_enum_Avoid_ActionType_ShapeRemove = Module["_emscripten_enum_Avoid_ActionType_ShapeRemove"] = createExportWrapper("emscripten_enum_Avoid_ActionType_ShapeRemove"); + var _emscripten_enum_Avoid_ActionType_JunctionMove = Module["_emscripten_enum_Avoid_ActionType_JunctionMove"] = createExportWrapper("emscripten_enum_Avoid_ActionType_JunctionMove"); + var _emscripten_enum_Avoid_ActionType_JunctionAdd = Module["_emscripten_enum_Avoid_ActionType_JunctionAdd"] = createExportWrapper("emscripten_enum_Avoid_ActionType_JunctionAdd"); + var _emscripten_enum_Avoid_ActionType_JunctionRemove = Module["_emscripten_enum_Avoid_ActionType_JunctionRemove"] = createExportWrapper("emscripten_enum_Avoid_ActionType_JunctionRemove"); + var _emscripten_enum_Avoid_ActionType_ConnChange = Module["_emscripten_enum_Avoid_ActionType_ConnChange"] = createExportWrapper("emscripten_enum_Avoid_ActionType_ConnChange"); + var _emscripten_enum_Avoid_ActionType_ConnectionPinChange = Module["_emscripten_enum_Avoid_ActionType_ConnectionPinChange"] = createExportWrapper("emscripten_enum_Avoid_ActionType_ConnectionPinChange"); + var _emscripten_enum_Avoid_ShapeTransformationType_TransformationType_CW90 = Module["_emscripten_enum_Avoid_ShapeTransformationType_TransformationType_CW90"] = createExportWrapper("emscripten_enum_Avoid_ShapeTransformationType_TransformationType_CW90"); + var _emscripten_enum_Avoid_ShapeTransformationType_TransformationType_CW180 = Module["_emscripten_enum_Avoid_ShapeTransformationType_TransformationType_CW180"] = createExportWrapper("emscripten_enum_Avoid_ShapeTransformationType_TransformationType_CW180"); + var _emscripten_enum_Avoid_ShapeTransformationType_TransformationType_CW270 = Module["_emscripten_enum_Avoid_ShapeTransformationType_TransformationType_CW270"] = createExportWrapper("emscripten_enum_Avoid_ShapeTransformationType_TransformationType_CW270"); + var _emscripten_enum_Avoid_ShapeTransformationType_TransformationType_FlipX = Module["_emscripten_enum_Avoid_ShapeTransformationType_TransformationType_FlipX"] = createExportWrapper("emscripten_enum_Avoid_ShapeTransformationType_TransformationType_FlipX"); + var _emscripten_enum_Avoid_ShapeTransformationType_TransformationType_FlipY = Module["_emscripten_enum_Avoid_ShapeTransformationType_TransformationType_FlipY"] = createExportWrapper("emscripten_enum_Avoid_ShapeTransformationType_TransformationType_FlipY"); + var _emscripten_enum_Avoid_ConnType_ConnType_None = Module["_emscripten_enum_Avoid_ConnType_ConnType_None"] = createExportWrapper("emscripten_enum_Avoid_ConnType_ConnType_None"); + var _emscripten_enum_Avoid_ConnType_ConnType_PolyLine = Module["_emscripten_enum_Avoid_ConnType_ConnType_PolyLine"] = createExportWrapper("emscripten_enum_Avoid_ConnType_ConnType_PolyLine"); + var _emscripten_enum_Avoid_ConnType_ConnType_Orthogonal = Module["_emscripten_enum_Avoid_ConnType_ConnType_Orthogonal"] = createExportWrapper("emscripten_enum_Avoid_ConnType_ConnType_Orthogonal"); + var _emscripten_enum_Avoid_RouterFlag_PolyLineRouting = Module["_emscripten_enum_Avoid_RouterFlag_PolyLineRouting"] = createExportWrapper("emscripten_enum_Avoid_RouterFlag_PolyLineRouting"); + var _emscripten_enum_Avoid_RouterFlag_OrthogonalRouting = Module["_emscripten_enum_Avoid_RouterFlag_OrthogonalRouting"] = createExportWrapper("emscripten_enum_Avoid_RouterFlag_OrthogonalRouting"); + var _emscripten_enum_Avoid_RoutingParameter_segmentPenalty = Module["_emscripten_enum_Avoid_RoutingParameter_segmentPenalty"] = createExportWrapper("emscripten_enum_Avoid_RoutingParameter_segmentPenalty"); + var _emscripten_enum_Avoid_RoutingParameter_anglePenalty = Module["_emscripten_enum_Avoid_RoutingParameter_anglePenalty"] = createExportWrapper("emscripten_enum_Avoid_RoutingParameter_anglePenalty"); + var _emscripten_enum_Avoid_RoutingParameter_crossingPenalty = Module["_emscripten_enum_Avoid_RoutingParameter_crossingPenalty"] = createExportWrapper("emscripten_enum_Avoid_RoutingParameter_crossingPenalty"); + var _emscripten_enum_Avoid_RoutingParameter_clusterCrossingPenalty = Module["_emscripten_enum_Avoid_RoutingParameter_clusterCrossingPenalty"] = createExportWrapper("emscripten_enum_Avoid_RoutingParameter_clusterCrossingPenalty"); + var _emscripten_enum_Avoid_RoutingParameter_fixedSharedPathPenalty = Module["_emscripten_enum_Avoid_RoutingParameter_fixedSharedPathPenalty"] = createExportWrapper("emscripten_enum_Avoid_RoutingParameter_fixedSharedPathPenalty"); + var _emscripten_enum_Avoid_RoutingParameter_portDirectionPenalty = Module["_emscripten_enum_Avoid_RoutingParameter_portDirectionPenalty"] = createExportWrapper("emscripten_enum_Avoid_RoutingParameter_portDirectionPenalty"); + var _emscripten_enum_Avoid_RoutingParameter_shapeBufferDistance = Module["_emscripten_enum_Avoid_RoutingParameter_shapeBufferDistance"] = createExportWrapper("emscripten_enum_Avoid_RoutingParameter_shapeBufferDistance"); + var _emscripten_enum_Avoid_RoutingParameter_idealNudgingDistance = Module["_emscripten_enum_Avoid_RoutingParameter_idealNudgingDistance"] = createExportWrapper("emscripten_enum_Avoid_RoutingParameter_idealNudgingDistance"); + var _emscripten_enum_Avoid_RoutingParameter_reverseDirectionPenalty = Module["_emscripten_enum_Avoid_RoutingParameter_reverseDirectionPenalty"] = createExportWrapper("emscripten_enum_Avoid_RoutingParameter_reverseDirectionPenalty"); + var _emscripten_enum_Avoid_RoutingOption_nudgeOrthogonalSegmentsConnectedToShapes = Module["_emscripten_enum_Avoid_RoutingOption_nudgeOrthogonalSegmentsConnectedToShapes"] = createExportWrapper("emscripten_enum_Avoid_RoutingOption_nudgeOrthogonalSegmentsConnectedToShapes"); + var _emscripten_enum_Avoid_RoutingOption_improveHyperedgeRoutesMovingJunctions = Module["_emscripten_enum_Avoid_RoutingOption_improveHyperedgeRoutesMovingJunctions"] = createExportWrapper("emscripten_enum_Avoid_RoutingOption_improveHyperedgeRoutesMovingJunctions"); + var _emscripten_enum_Avoid_RoutingOption_penaliseOrthogonalSharedPathsAtConnEnds = Module["_emscripten_enum_Avoid_RoutingOption_penaliseOrthogonalSharedPathsAtConnEnds"] = createExportWrapper("emscripten_enum_Avoid_RoutingOption_penaliseOrthogonalSharedPathsAtConnEnds"); + var _emscripten_enum_Avoid_RoutingOption_nudgeOrthogonalTouchingColinearSegments = Module["_emscripten_enum_Avoid_RoutingOption_nudgeOrthogonalTouchingColinearSegments"] = createExportWrapper("emscripten_enum_Avoid_RoutingOption_nudgeOrthogonalTouchingColinearSegments"); + var _emscripten_enum_Avoid_RoutingOption_performUnifyingNudgingPreprocessingStep = Module["_emscripten_enum_Avoid_RoutingOption_performUnifyingNudgingPreprocessingStep"] = createExportWrapper("emscripten_enum_Avoid_RoutingOption_performUnifyingNudgingPreprocessingStep"); + var _emscripten_enum_Avoid_RoutingOption_improveHyperedgeRoutesMovingAddingAndDeletingJunctions = Module["_emscripten_enum_Avoid_RoutingOption_improveHyperedgeRoutesMovingAddingAndDeletingJunctions"] = createExportWrapper("emscripten_enum_Avoid_RoutingOption_improveHyperedgeRoutesMovingAddingAndDeletingJunctions"); + var _emscripten_enum_Avoid_RoutingOption_nudgeSharedPathsWithCommonEndPoint = Module["_emscripten_enum_Avoid_RoutingOption_nudgeSharedPathsWithCommonEndPoint"] = createExportWrapper("emscripten_enum_Avoid_RoutingOption_nudgeSharedPathsWithCommonEndPoint"); + var ___errno_location = createExportWrapper("__errno_location"); + var ___trap = function () { + return (___trap = Module["asm"]["__trap"]).apply(null, arguments); + }; + var _emscripten_stack_init = function () { + return (_emscripten_stack_init = Module["asm"]["emscripten_stack_init"]).apply(null, arguments); + }; + var _emscripten_stack_get_free = function () { + return (_emscripten_stack_get_free = Module["asm"]["emscripten_stack_get_free"]).apply(null, arguments); + }; + var _emscripten_stack_get_base = function () { + return (_emscripten_stack_get_base = Module["asm"]["emscripten_stack_get_base"]).apply(null, arguments); + }; + var _emscripten_stack_get_end = function () { + return (_emscripten_stack_get_end = Module["asm"]["emscripten_stack_get_end"]).apply(null, arguments); + }; + var stackSave = createExportWrapper("stackSave"); + var stackRestore = createExportWrapper("stackRestore"); + var stackAlloc = createExportWrapper("stackAlloc"); + var _emscripten_stack_get_current = function () { + return (_emscripten_stack_get_current = Module["asm"]["emscripten_stack_get_current"]).apply(null, arguments); + }; + var ___cxa_decrement_exception_refcount = Module["___cxa_decrement_exception_refcount"] = createExportWrapper("__cxa_decrement_exception_refcount"); + var ___cxa_increment_exception_refcount = Module["___cxa_increment_exception_refcount"] = createExportWrapper("__cxa_increment_exception_refcount"); + var ___thrown_object_from_unwind_exception = Module["___thrown_object_from_unwind_exception"] = createExportWrapper("__thrown_object_from_unwind_exception"); + var ___get_exception_message = Module["___get_exception_message"] = createExportWrapper("__get_exception_message"); + var dynCall_jiji = Module["dynCall_jiji"] = createExportWrapper("dynCall_jiji"); + var dynCall_viijii = Module["dynCall_viijii"] = createExportWrapper("dynCall_viijii"); + var dynCall_iiiiij = Module["dynCall_iiiiij"] = createExportWrapper("dynCall_iiiiij"); + var dynCall_iiiiijj = Module["dynCall_iiiiijj"] = createExportWrapper("dynCall_iiiiijj"); + var dynCall_iiiiiijj = Module["dynCall_iiiiiijj"] = createExportWrapper("dynCall_iiiiiijj"); + var ___start_em_js = Module["___start_em_js"] = 110416; + var ___stop_em_js = Module["___stop_em_js"] = 110514; + var missingLibrarySymbols = [ + "zeroMemory", + "exitJS", + "ydayFromDate", + "setErrNo", + "inetPton4", + "inetNtop4", + "inetPton6", + "inetNtop6", + "readSockaddr", + "writeSockaddr", + "getHostByName", + "initRandomFill", + "randomFill", + "traverseStack", + "getCallstack", + "emscriptenLog", + "convertPCtoSourceLocation", + "readEmAsmArgs", + "jstoi_q", + "jstoi_s", + "listenOnce", + "autoResumeAudioContext", + "dynCallLegacy", + "getDynCaller", + "dynCall", + "handleException", + "runtimeKeepalivePush", + "runtimeKeepalivePop", + "callUserCallback", + "maybeExit", + "safeSetTimeout", + "asmjsMangle", + "asyncLoad", + "alignMemory", + "mmapAlloc", + "HandleAllocator", + "getNativeTypeSize", + "STACK_SIZE", + "STACK_ALIGN", + "POINTER_SIZE", + "ASSERTIONS", + "writeI53ToI64", + "writeI53ToI64Clamped", + "writeI53ToI64Signaling", + "writeI53ToU64Clamped", + "writeI53ToU64Signaling", + "readI53FromI64", + "readI53FromU64", + "convertI32PairToI53", + "convertU32PairToI53", + "getCFunc", + "ccall", + "cwrap", + "removeFunction", + "reallyNegative", + "unSign", + "strLen", + "reSign", + "formatString", + "stringToUTF8", + "intArrayToString", + "AsciiToString", + "UTF16ToString", + "stringToUTF16", + "lengthBytesUTF16", + "UTF32ToString", + "stringToUTF32", + "lengthBytesUTF32", + "stringToNewUTF8", + "stringToUTF8OnStack", + "getSocketFromFD", + "getSocketAddress", + "registerKeyEventCallback", + "maybeCStringToJsString", + "findEventTarget", + "findCanvasEventTarget", + "getBoundingClientRect", + "fillMouseEventData", + "registerMouseEventCallback", + "registerWheelEventCallback", + "registerUiEventCallback", + "registerFocusEventCallback", + "fillDeviceOrientationEventData", + "registerDeviceOrientationEventCallback", + "fillDeviceMotionEventData", + "registerDeviceMotionEventCallback", + "screenOrientation", + "fillOrientationChangeEventData", + "registerOrientationChangeEventCallback", + "fillFullscreenChangeEventData", + "registerFullscreenChangeEventCallback", + "JSEvents_requestFullscreen", + "JSEvents_resizeCanvasForFullscreen", + "registerRestoreOldStyle", + "hideEverythingExceptGivenElement", + "restoreHiddenElements", + "setLetterbox", + "softFullscreenResizeWebGLRenderTarget", + "doRequestFullscreen", + "fillPointerlockChangeEventData", + "registerPointerlockChangeEventCallback", + "registerPointerlockErrorEventCallback", + "requestPointerLock", + "fillVisibilityChangeEventData", + "registerVisibilityChangeEventCallback", + "registerTouchEventCallback", + "fillGamepadEventData", + "registerGamepadEventCallback", + "registerBeforeUnloadEventCallback", + "fillBatteryEventData", + "battery", + "registerBatteryEventCallback", + "setCanvasElementSize", + "getCanvasElementSize", + "demangle", + "demangleAll", + "jsStackTrace", + "stackTrace", + "checkWasiClock", + "wasiRightsToMuslOFlags", + "wasiOFlagsToMuslOFlags", + "createDyncallWrapper", + "setImmediateWrapped", + "clearImmediateWrapped", + "polyfillSetImmediate", + "getPromise", + "makePromise", + "idsToPromises", + "makePromiseCallback", + "setMainLoop", + "heapObjectForWebGLType", + "heapAccessShiftForWebGLHeap", + "webgl_enable_ANGLE_instanced_arrays", + "webgl_enable_OES_vertex_array_object", + "webgl_enable_WEBGL_draw_buffers", + "webgl_enable_WEBGL_multi_draw", + "emscriptenWebGLGet", + "computeUnpackAlignedImageSize", + "colorChannelsInGlTextureFormat", + "emscriptenWebGLGetTexPixelData", + "__glGenObject", + "emscriptenWebGLGetUniform", + "webglGetUniformLocation", + "webglPrepareUniformLocationsBeforeFirstUse", + "webglGetLeftBracePos", + "emscriptenWebGLGetVertexAttrib", + "__glGetActiveAttribOrUniform", + "writeGLArray", + "registerWebGlEventCallback", + "runAndAbortIfError", + "SDL_unicode", + "SDL_ttfContext", + "SDL_audio", + "GLFW_Window", + "ALLOC_NORMAL", + "ALLOC_STACK", + "allocate", + "writeStringToMemory", + "writeAsciiToMemory" + ]; + missingLibrarySymbols.forEach(missingLibrarySymbol); + var unexportedSymbols = [ + "run", + "addOnPreRun", + "addOnInit", + "addOnPreMain", + "addOnExit", + "addOnPostRun", + "addRunDependency", + "removeRunDependency", + "FS_createFolder", + "FS_createPath", + "FS_createDataFile", + "FS_createPreloadedFile", + "FS_createLazyFile", + "FS_createLink", + "FS_createDevice", + "FS_unlink", + "out", + "err", + "callMain", + "abort", + "keepRuntimeAlive", + "wasmMemory", + "stackAlloc", + "stackSave", + "stackRestore", + "getTempRet0", + "setTempRet0", + "writeStackCookie", + "checkStackCookie", + "ptrToString", + "getHeapMax", + "emscripten_realloc_buffer", + "ENV", + "MONTH_DAYS_REGULAR", + "MONTH_DAYS_LEAP", + "MONTH_DAYS_REGULAR_CUMULATIVE", + "MONTH_DAYS_LEAP_CUMULATIVE", + "isLeapYear", + "arraySum", + "addDays", + "ERRNO_CODES", + "ERRNO_MESSAGES", + "DNS", + "Protocols", + "Sockets", + "timers", + "warnOnce", + "UNWIND_CACHE", + "readEmAsmArgsArray", + "getExecutableName", + "convertI32PairToI53Checked", + "uleb128Encode", + "sigToWasmTypes", + "generateFuncType", + "convertJsFunctionToWasm", + "freeTableIndexes", + "functionsInTableMap", + "getEmptyTableSlot", + "updateTableMap", + "getFunctionAddress", + "addFunction", + "setValue", + "getValue", + "PATH", + "PATH_FS", + "UTF8Decoder", + "UTF8ArrayToString", + "UTF8ToString", + "stringToUTF8Array", + "lengthBytesUTF8", + "intArrayFromString", + "stringToAscii", + "UTF16Decoder", + "writeArrayToMemory", + "SYSCALLS", + "JSEvents", + "specialHTMLTargets", + "currentFullscreenStrategy", + "restoreOldWindowedStyle", + "ExitStatus", + "getEnvStrings", + "flush_NO_FILESYSTEM", + "dlopenMissingError", + "promiseMap", + "getExceptionMessageCommon", + "getCppExceptionTag", + "getCppExceptionThrownObjectFromWebAssemblyException", + "incrementExceptionRefcount", + "decrementExceptionRefcount", + "getExceptionMessage", + "Browser", + "wget", + "tempFixedLengthArray", + "miniTempWebGLFloatBuffers", + "miniTempWebGLIntBuffers", + "GL", + "emscripten_webgl_power_preferences", + "AL", + "GLUT", + "EGL", + "GLEW", + "IDBStore", + "SDL", + "SDL_gfx", + "GLFW", + "allocateUTF8", + "allocateUTF8OnStack" + ]; + unexportedSymbols.forEach(unexportedRuntimeSymbol); + var calledRun; + dependenciesFulfilled = function runCaller() { + if (!calledRun) + run(); + if (!calledRun) + dependenciesFulfilled = runCaller; + }; + function stackCheckInit() { + _emscripten_stack_init(); + writeStackCookie(); + } + function run() { + if (runDependencies > 0) { + err("run() called, but dependencies remain, so not running"); + return; + } + stackCheckInit(); + preRun(); + if (runDependencies > 0) { + err("run() called, but dependencies remain, so not running"); + return; + } + function doRun() { + if (calledRun) + return; + calledRun = true; + Module["calledRun"] = true; + if (ABORT) + return; + initRuntime(); + readyPromiseResolve(Module); + if (Module["onRuntimeInitialized"]) + Module["onRuntimeInitialized"](); + assert(!Module["_main"], 'compiled without a main, but one is present. if you added it from JS, use Module["onRuntimeInitialized"]'); + postRun(); + } + if (Module["setStatus"]) { + Module["setStatus"]("Running..."); + setTimeout(function () { + setTimeout(function () { + Module["setStatus"](""); + }, 1); + doRun(); + }, 1); + } else { + doRun(); + } + checkStackCookie(); + } + function checkUnflushedContent() { + var oldOut = out; + var oldErr = err; + var has = false; + out = err = (x) => { + has = true; + }; + try { + flush_NO_FILESYSTEM(); + } catch (e) { + } + out = oldOut; + err = oldErr; + if (has) { + warnOnce("stdio streams had content in them that was not flushed. you should set EXIT_RUNTIME to 1 (see the FAQ), or make sure to emit a newline when you printf etc."); + warnOnce("(this may also be due to not including full filesystem support - try building with -sFORCE_FILESYSTEM)"); + } + } + if (Module["preInit"]) { + if (typeof Module["preInit"] == "function") + Module["preInit"] = [Module["preInit"]]; + while (Module["preInit"].length > 0) { + Module["preInit"].pop()(); + } + } + run(); + function WrapperObject() { + } + WrapperObject.prototype = Object.create(WrapperObject.prototype); + WrapperObject.prototype.constructor = WrapperObject; + WrapperObject.prototype.__class__ = WrapperObject; + WrapperObject.__cache__ = {}; + Module["WrapperObject"] = WrapperObject; + function getCache(__class__) { + return (__class__ || WrapperObject).__cache__; + } + Module["getCache"] = getCache; + function wrapPointer(ptr, __class__) { + var cache = getCache(__class__); + var ret = cache[ptr]; + if (ret) + return ret; + ret = Object.create((__class__ || WrapperObject).prototype); + ret.ptr = ptr; + return cache[ptr] = ret; + } + Module["wrapPointer"] = wrapPointer; + function castObject(obj, __class__) { + return wrapPointer(obj.ptr, __class__); + } + Module["castObject"] = castObject; + Module["NULL"] = wrapPointer(0); + function destroy(obj) { + if (!obj["__destroy__"]) + throw "Error: Cannot destroy object. (Did you create it yourself?)"; + obj["__destroy__"](); + delete getCache(obj.__class__)[obj.ptr]; + } + Module["destroy"] = destroy; + function compare(obj1, obj2) { + return obj1.ptr === obj2.ptr; + } + Module["compare"] = compare; + function getPointer(obj) { + return obj.ptr; + } + Module["getPointer"] = getPointer; + function getClass(obj) { + return obj.__class__; + } + Module["getClass"] = getClass; + var ensureCache = { + buffer: 0, + // the main buffer of temporary storage + size: 0, + // the size of buffer + pos: 0, + // the next free offset in buffer + temps: [], + // extra allocations + needed: 0, + // the total size we need next time + prepare: function () { + if (ensureCache.needed) { + for (var i = 0; i < ensureCache.temps.length; i++) { + Module["_free"](ensureCache.temps[i]); + } + ensureCache.temps.length = 0; + Module["_free"](ensureCache.buffer); + ensureCache.buffer = 0; + ensureCache.size += ensureCache.needed; + ensureCache.needed = 0; + } + if (!ensureCache.buffer) { + ensureCache.size += 128; + ensureCache.buffer = Module["_malloc"](ensureCache.size); + assert(ensureCache.buffer); + } + ensureCache.pos = 0; + }, + alloc: function (array, view) { + assert(ensureCache.buffer); + var bytes = view.BYTES_PER_ELEMENT; + var len = array.length * bytes; + len = len + 7 & -8; + var ret; + if (ensureCache.pos + len >= ensureCache.size) { + assert(len > 0); + ensureCache.needed += len; + ret = Module["_malloc"](len); + ensureCache.temps.push(ret); + } else { + ret = ensureCache.buffer + ensureCache.pos; + ensureCache.pos += len; + } + return ret; + }, + copy: function (array, view, offset) { + offset >>>= 0; + var bytes = view.BYTES_PER_ELEMENT; + switch (bytes) { + case 2: + offset >>>= 1; + break; + case 4: + offset >>>= 2; + break; + case 8: + offset >>>= 3; + break; + } + for (var i = 0; i < array.length; i++) { + view[offset + i] = array[i]; + } + } + }; + function ensureString(value) { + if (typeof value === "string") { + var intArray = intArrayFromString(value); + var offset = ensureCache.alloc(intArray, HEAP8); + ensureCache.copy(intArray, HEAP8, offset); + return offset; + } + return value; + } + function ensureInt8(value) { + if (typeof value === "object") { + var offset = ensureCache.alloc(value, HEAP8); + ensureCache.copy(value, HEAP8, offset); + return offset; + } + return value; + } + function ensureInt16(value) { + if (typeof value === "object") { + var offset = ensureCache.alloc(value, HEAP16); + ensureCache.copy(value, HEAP16, offset); + return offset; + } + return value; + } + function ensureInt32(value) { + if (typeof value === "object") { + var offset = ensureCache.alloc(value, HEAP32); + ensureCache.copy(value, HEAP32, offset); + return offset; + } + return value; + } + function ensureFloat32(value) { + if (typeof value === "object") { + var offset = ensureCache.alloc(value, HEAPF32); + ensureCache.copy(value, HEAPF32, offset); + return offset; + } + return value; + } + function ensureFloat64(value) { + if (typeof value === "object") { + var offset = ensureCache.alloc(value, HEAPF64); + ensureCache.copy(value, HEAPF64, offset); + return offset; + } + return value; + } + function VoidPtr() { + throw "cannot construct a VoidPtr, no constructor in IDL"; + } + VoidPtr.prototype = Object.create(WrapperObject.prototype); + VoidPtr.prototype.constructor = VoidPtr; + VoidPtr.prototype.__class__ = VoidPtr; + VoidPtr.__cache__ = {}; + Module["VoidPtr"] = VoidPtr; + VoidPtr.prototype["__destroy__"] = VoidPtr.prototype.__destroy__ = function () { + var self2 = this.ptr; + _emscripten_bind_VoidPtr___destroy___0(self2); + }; + function HyperedgeImprover() { + this.ptr = _emscripten_bind_HyperedgeImprover_HyperedgeImprover_0(); + getCache(HyperedgeImprover)[this.ptr] = this; + } + ; + ; + HyperedgeImprover.prototype = Object.create(WrapperObject.prototype); + HyperedgeImprover.prototype.constructor = HyperedgeImprover; + HyperedgeImprover.prototype.__class__ = HyperedgeImprover; + HyperedgeImprover.__cache__ = {}; + Module["HyperedgeImprover"] = HyperedgeImprover; + HyperedgeImprover.prototype["clear"] = HyperedgeImprover.prototype.clear = function () { + var self2 = this.ptr; + _emscripten_bind_HyperedgeImprover_clear_0(self2); + }; + ; + HyperedgeImprover.prototype["setRouter"] = HyperedgeImprover.prototype.setRouter = function (router) { + var self2 = this.ptr; + if (router && typeof router === "object") + router = router.ptr; + _emscripten_bind_HyperedgeImprover_setRouter_1(self2, router); + }; + ; + HyperedgeImprover.prototype["__destroy__"] = HyperedgeImprover.prototype.__destroy__ = function () { + var self2 = this.ptr; + _emscripten_bind_HyperedgeImprover___destroy___0(self2); + }; + function Box() { + this.ptr = _emscripten_bind_Box_Box_0(); + getCache(Box)[this.ptr] = this; + } + ; + ; + Box.prototype = Object.create(WrapperObject.prototype); + Box.prototype.constructor = Box; + Box.prototype.__class__ = Box; + Box.__cache__ = {}; + Module["Box"] = Box; + Box.prototype["length"] = Box.prototype.length = function (dimension) { + var self2 = this.ptr; + if (dimension && typeof dimension === "object") + dimension = dimension.ptr; + return _emscripten_bind_Box_length_1(self2, dimension); + }; + ; + Box.prototype["width"] = Box.prototype.width = function () { + var self2 = this.ptr; + return _emscripten_bind_Box_width_0(self2); + }; + ; + Box.prototype["height"] = Box.prototype.height = function () { + var self2 = this.ptr; + return _emscripten_bind_Box_height_0(self2); + }; + ; + Box.prototype["get_min"] = Box.prototype.get_min = function () { + var self2 = this.ptr; + return wrapPointer(_emscripten_bind_Box_get_min_0(self2), Point); + }; + Box.prototype["set_min"] = Box.prototype.set_min = function (arg0) { + var self2 = this.ptr; + if (arg0 && typeof arg0 === "object") + arg0 = arg0.ptr; + _emscripten_bind_Box_set_min_1(self2, arg0); + }; + Object.defineProperty(Box.prototype, "min", { get: Box.prototype.get_min, set: Box.prototype.set_min }); + Box.prototype["get_max"] = Box.prototype.get_max = function () { + var self2 = this.ptr; + return wrapPointer(_emscripten_bind_Box_get_max_0(self2), Point); + }; + Box.prototype["set_max"] = Box.prototype.set_max = function (arg0) { + var self2 = this.ptr; + if (arg0 && typeof arg0 === "object") + arg0 = arg0.ptr; + _emscripten_bind_Box_set_max_1(self2, arg0); + }; + Object.defineProperty(Box.prototype, "max", { get: Box.prototype.get_max, set: Box.prototype.set_max }); + Box.prototype["__destroy__"] = Box.prototype.__destroy__ = function () { + var self2 = this.ptr; + _emscripten_bind_Box___destroy___0(self2); + }; + function PolygonInterface() { + throw "cannot construct a PolygonInterface, no constructor in IDL"; + } + PolygonInterface.prototype = Object.create(WrapperObject.prototype); + PolygonInterface.prototype.constructor = PolygonInterface; + PolygonInterface.prototype.__class__ = PolygonInterface; + PolygonInterface.__cache__ = {}; + Module["PolygonInterface"] = PolygonInterface; + PolygonInterface.prototype["clear"] = PolygonInterface.prototype.clear = function () { + var self2 = this.ptr; + _emscripten_bind_PolygonInterface_clear_0(self2); + }; + ; + PolygonInterface.prototype["empty"] = PolygonInterface.prototype.empty = function () { + var self2 = this.ptr; + return !!_emscripten_bind_PolygonInterface_empty_0(self2); + }; + ; + PolygonInterface.prototype["size"] = PolygonInterface.prototype.size = function () { + var self2 = this.ptr; + return _emscripten_bind_PolygonInterface_size_0(self2); + }; + ; + PolygonInterface.prototype["id"] = PolygonInterface.prototype.id = function () { + var self2 = this.ptr; + return _emscripten_bind_PolygonInterface_id_0(self2); + }; + ; + PolygonInterface.prototype["at"] = PolygonInterface.prototype.at = function (index) { + var self2 = this.ptr; + if (index && typeof index === "object") + index = index.ptr; + return wrapPointer(_emscripten_bind_PolygonInterface_at_1(self2, index), Point); + }; + ; + PolygonInterface.prototype["boundingRectPolygon"] = PolygonInterface.prototype.boundingRectPolygon = function () { + var self2 = this.ptr; + return wrapPointer(_emscripten_bind_PolygonInterface_boundingRectPolygon_0(self2), Polygon); + }; + ; + PolygonInterface.prototype["offsetBoundingBox"] = PolygonInterface.prototype.offsetBoundingBox = function (offset) { + var self2 = this.ptr; + if (offset && typeof offset === "object") + offset = offset.ptr; + return wrapPointer(_emscripten_bind_PolygonInterface_offsetBoundingBox_1(self2, offset), Box); + }; + ; + PolygonInterface.prototype["offsetPolygon"] = PolygonInterface.prototype.offsetPolygon = function (offset) { + var self2 = this.ptr; + if (offset && typeof offset === "object") + offset = offset.ptr; + return wrapPointer(_emscripten_bind_PolygonInterface_offsetPolygon_1(self2, offset), Polygon); + }; + ; + PolygonInterface.prototype["__destroy__"] = PolygonInterface.prototype.__destroy__ = function () { + var self2 = this.ptr; + _emscripten_bind_PolygonInterface___destroy___0(self2); + }; + function Polygon(n) { + if (n && typeof n === "object") + n = n.ptr; + if (n === void 0) { + this.ptr = _emscripten_bind_Polygon_Polygon_0(); + getCache(Polygon)[this.ptr] = this; + return; + } + this.ptr = _emscripten_bind_Polygon_Polygon_1(n); + getCache(Polygon)[this.ptr] = this; + } + ; + ; + Polygon.prototype = Object.create(WrapperObject.prototype); + Polygon.prototype.constructor = Polygon; + Polygon.prototype.__class__ = Polygon; + Polygon.__cache__ = {}; + Module["Polygon"] = Polygon; + Polygon.prototype["setPoint"] = Polygon.prototype.setPoint = function (index, point) { + var self2 = this.ptr; + if (index && typeof index === "object") + index = index.ptr; + if (point && typeof point === "object") + point = point.ptr; + _emscripten_bind_Polygon_setPoint_2(self2, index, point); + }; + ; + Polygon.prototype["size"] = Polygon.prototype.size = function () { + var self2 = this.ptr; + return _emscripten_bind_Polygon_size_0(self2); + }; + ; + Polygon.prototype["get_ps"] = Polygon.prototype.get_ps = function (arg0) { + var self2 = this.ptr; + if (arg0 && typeof arg0 === "object") + arg0 = arg0.ptr; + return wrapPointer(_emscripten_bind_Polygon_get_ps_1(self2, arg0), Point); + }; + Polygon.prototype["set_ps"] = Polygon.prototype.set_ps = function (arg0, arg1) { + var self2 = this.ptr; + ensureCache.prepare(); + if (arg0 && typeof arg0 === "object") + arg0 = arg0.ptr; + if (arg1 && typeof arg1 === "object") + arg1 = arg1.ptr; + _emscripten_bind_Polygon_set_ps_2(self2, arg0, arg1); + }; + Object.defineProperty(Polygon.prototype, "ps", { get: Polygon.prototype.get_ps, set: Polygon.prototype.set_ps }); + Polygon.prototype["__destroy__"] = Polygon.prototype.__destroy__ = function () { + var self2 = this.ptr; + _emscripten_bind_Polygon___destroy___0(self2); + }; + function Point(xv, yv) { + if (xv && typeof xv === "object") + xv = xv.ptr; + if (yv && typeof yv === "object") + yv = yv.ptr; + if (xv === void 0) { + this.ptr = _emscripten_bind_Point_Point_0(); + getCache(Point)[this.ptr] = this; + return; + } + if (yv === void 0) { + this.ptr = _emscripten_bind_Point_Point_1(xv); + getCache(Point)[this.ptr] = this; + return; + } + this.ptr = _emscripten_bind_Point_Point_2(xv, yv); + getCache(Point)[this.ptr] = this; + } + ; + ; + Point.prototype = Object.create(WrapperObject.prototype); + Point.prototype.constructor = Point; + Point.prototype.__class__ = Point; + Point.__cache__ = {}; + Module["Point"] = Point; + Point.prototype["equal"] = Point.prototype.equal = function (rhs) { + var self2 = this.ptr; + if (rhs && typeof rhs === "object") + rhs = rhs.ptr; + return !!_emscripten_bind_Point_equal_1(self2, rhs); + }; + ; + Point.prototype["get_x"] = Point.prototype.get_x = function () { + var self2 = this.ptr; + return _emscripten_bind_Point_get_x_0(self2); + }; + Point.prototype["set_x"] = Point.prototype.set_x = function (arg0) { + var self2 = this.ptr; + if (arg0 && typeof arg0 === "object") + arg0 = arg0.ptr; + _emscripten_bind_Point_set_x_1(self2, arg0); + }; + Object.defineProperty(Point.prototype, "x", { get: Point.prototype.get_x, set: Point.prototype.set_x }); + Point.prototype["get_y"] = Point.prototype.get_y = function () { + var self2 = this.ptr; + return _emscripten_bind_Point_get_y_0(self2); + }; + Point.prototype["set_y"] = Point.prototype.set_y = function (arg0) { + var self2 = this.ptr; + if (arg0 && typeof arg0 === "object") + arg0 = arg0.ptr; + _emscripten_bind_Point_set_y_1(self2, arg0); + }; + Object.defineProperty(Point.prototype, "y", { get: Point.prototype.get_y, set: Point.prototype.set_y }); + Point.prototype["get_id"] = Point.prototype.get_id = function () { + var self2 = this.ptr; + return _emscripten_bind_Point_get_id_0(self2); + }; + Point.prototype["set_id"] = Point.prototype.set_id = function (arg0) { + var self2 = this.ptr; + if (arg0 && typeof arg0 === "object") + arg0 = arg0.ptr; + _emscripten_bind_Point_set_id_1(self2, arg0); + }; + Object.defineProperty(Point.prototype, "id", { get: Point.prototype.get_id, set: Point.prototype.set_id }); + Point.prototype["get_vn"] = Point.prototype.get_vn = function () { + var self2 = this.ptr; + return _emscripten_bind_Point_get_vn_0(self2); + }; + Point.prototype["set_vn"] = Point.prototype.set_vn = function (arg0) { + var self2 = this.ptr; + if (arg0 && typeof arg0 === "object") + arg0 = arg0.ptr; + _emscripten_bind_Point_set_vn_1(self2, arg0); + }; + Object.defineProperty(Point.prototype, "vn", { get: Point.prototype.get_vn, set: Point.prototype.set_vn }); + Point.prototype["__destroy__"] = Point.prototype.__destroy__ = function () { + var self2 = this.ptr; + _emscripten_bind_Point___destroy___0(self2); + }; + function Rectangle(centre, width, height) { + if (centre && typeof centre === "object") + centre = centre.ptr; + if (width && typeof width === "object") + width = width.ptr; + if (height && typeof height === "object") + height = height.ptr; + if (height === void 0) { + this.ptr = _emscripten_bind_Rectangle_Rectangle_2(centre, width); + getCache(Rectangle)[this.ptr] = this; + return; + } + this.ptr = _emscripten_bind_Rectangle_Rectangle_3(centre, width, height); + getCache(Rectangle)[this.ptr] = this; + } + ; + ; + Rectangle.prototype = Object.create(WrapperObject.prototype); + Rectangle.prototype.constructor = Rectangle; + Rectangle.prototype.__class__ = Rectangle; + Rectangle.__cache__ = {}; + Module["Rectangle"] = Rectangle; + Rectangle.prototype["__destroy__"] = Rectangle.prototype.__destroy__ = function () { + var self2 = this.ptr; + _emscripten_bind_Rectangle___destroy___0(self2); + }; + function HyperedgeTreeNode() { + this.ptr = _emscripten_bind_HyperedgeTreeNode_HyperedgeTreeNode_0(); + getCache(HyperedgeTreeNode)[this.ptr] = this; + } + ; + ; + HyperedgeTreeNode.prototype = Object.create(WrapperObject.prototype); + HyperedgeTreeNode.prototype.constructor = HyperedgeTreeNode; + HyperedgeTreeNode.prototype.__class__ = HyperedgeTreeNode; + HyperedgeTreeNode.__cache__ = {}; + Module["HyperedgeTreeNode"] = HyperedgeTreeNode; + HyperedgeTreeNode.prototype["writeEdgesToConns"] = HyperedgeTreeNode.prototype.writeEdgesToConns = function (ignored, pass) { + var self2 = this.ptr; + if (ignored && typeof ignored === "object") + ignored = ignored.ptr; + if (pass && typeof pass === "object") + pass = pass.ptr; + _emscripten_bind_HyperedgeTreeNode_writeEdgesToConns_2(self2, ignored, pass); + }; + ; + HyperedgeTreeNode.prototype["__destroy__"] = HyperedgeTreeNode.prototype.__destroy__ = function () { + var self2 = this.ptr; + _emscripten_bind_HyperedgeTreeNode___destroy___0(self2); + }; + function HyperedgeTreeEdge(node1, node2, conn) { + if (node1 && typeof node1 === "object") + node1 = node1.ptr; + if (node2 && typeof node2 === "object") + node2 = node2.ptr; + if (conn && typeof conn === "object") + conn = conn.ptr; + this.ptr = _emscripten_bind_HyperedgeTreeEdge_HyperedgeTreeEdge_3(node1, node2, conn); + getCache(HyperedgeTreeEdge)[this.ptr] = this; + } + ; + ; + HyperedgeTreeEdge.prototype = Object.create(WrapperObject.prototype); + HyperedgeTreeEdge.prototype.constructor = HyperedgeTreeEdge; + HyperedgeTreeEdge.prototype.__class__ = HyperedgeTreeEdge; + HyperedgeTreeEdge.__cache__ = {}; + Module["HyperedgeTreeEdge"] = HyperedgeTreeEdge; + HyperedgeTreeEdge.prototype["__destroy__"] = HyperedgeTreeEdge.prototype.__destroy__ = function () { + var self2 = this.ptr; + _emscripten_bind_HyperedgeTreeEdge___destroy___0(self2); + }; + function AStarPath() { + this.ptr = _emscripten_bind_AStarPath_AStarPath_0(); + getCache(AStarPath)[this.ptr] = this; + } + ; + ; + AStarPath.prototype = Object.create(WrapperObject.prototype); + AStarPath.prototype.constructor = AStarPath; + AStarPath.prototype.__class__ = AStarPath; + AStarPath.__cache__ = {}; + Module["AStarPath"] = AStarPath; + AStarPath.prototype["search"] = AStarPath.prototype.search = function (lineRef, src, tar, start) { + var self2 = this.ptr; + if (lineRef && typeof lineRef === "object") + lineRef = lineRef.ptr; + if (src && typeof src === "object") + src = src.ptr; + if (tar && typeof tar === "object") + tar = tar.ptr; + if (start && typeof start === "object") + start = start.ptr; + _emscripten_bind_AStarPath_search_4(self2, lineRef, src, tar, start); + }; + ; + AStarPath.prototype["__destroy__"] = AStarPath.prototype.__destroy__ = function () { + var self2 = this.ptr; + _emscripten_bind_AStarPath___destroy___0(self2); + }; + function ConnEnd(shapeRef, connectionPinClassID) { + if (shapeRef && typeof shapeRef === "object") + shapeRef = shapeRef.ptr; + if (connectionPinClassID && typeof connectionPinClassID === "object") + connectionPinClassID = connectionPinClassID.ptr; + if (connectionPinClassID === void 0) { + this.ptr = _emscripten_bind_ConnEnd_ConnEnd_1(shapeRef); + getCache(ConnEnd)[this.ptr] = this; + return; + } + this.ptr = _emscripten_bind_ConnEnd_ConnEnd_2(shapeRef, connectionPinClassID); + getCache(ConnEnd)[this.ptr] = this; + } + ; + ; + ConnEnd.prototype = Object.create(WrapperObject.prototype); + ConnEnd.prototype.constructor = ConnEnd; + ConnEnd.prototype.__class__ = ConnEnd; + ConnEnd.__cache__ = {}; + Module["ConnEnd"] = ConnEnd; + ConnEnd.prototype["createConnEndFromJunctionRef"] = ConnEnd.prototype.createConnEndFromJunctionRef = function (junctionRef) { + var self2 = this.ptr; + if (junctionRef && typeof junctionRef === "object") + junctionRef = junctionRef.ptr; + return wrapPointer(_emscripten_bind_ConnEnd_createConnEndFromJunctionRef_1(self2, junctionRef), ConnEnd); + }; + ; + ConnEnd.prototype["__destroy__"] = ConnEnd.prototype.__destroy__ = function () { + var self2 = this.ptr; + _emscripten_bind_ConnEnd___destroy___0(self2); + }; + function ActionInfo(t, s, p, fm) { + if (t && typeof t === "object") + t = t.ptr; + if (s && typeof s === "object") + s = s.ptr; + if (p && typeof p === "object") + p = p.ptr; + if (fm && typeof fm === "object") + fm = fm.ptr; + if (p === void 0) { + this.ptr = _emscripten_bind_ActionInfo_ActionInfo_2(t, s); + getCache(ActionInfo)[this.ptr] = this; + return; + } + if (fm === void 0) { + this.ptr = _emscripten_bind_ActionInfo_ActionInfo_3(t, s, p); + getCache(ActionInfo)[this.ptr] = this; + return; + } + this.ptr = _emscripten_bind_ActionInfo_ActionInfo_4(t, s, p, fm); + getCache(ActionInfo)[this.ptr] = this; + } + ; + ; + ActionInfo.prototype = Object.create(WrapperObject.prototype); + ActionInfo.prototype.constructor = ActionInfo; + ActionInfo.prototype.__class__ = ActionInfo; + ActionInfo.__cache__ = {}; + Module["ActionInfo"] = ActionInfo; + ActionInfo.prototype["obstacle"] = ActionInfo.prototype.obstacle = function () { + var self2 = this.ptr; + return wrapPointer(_emscripten_bind_ActionInfo_obstacle_0(self2), Obstacle); + }; + ; + ActionInfo.prototype["shape"] = ActionInfo.prototype.shape = function () { + var self2 = this.ptr; + return wrapPointer(_emscripten_bind_ActionInfo_shape_0(self2), ShapeRef); + }; + ; + ActionInfo.prototype["conn"] = ActionInfo.prototype.conn = function () { + var self2 = this.ptr; + return wrapPointer(_emscripten_bind_ActionInfo_conn_0(self2), ConnRef); + }; + ; + ActionInfo.prototype["junction"] = ActionInfo.prototype.junction = function () { + var self2 = this.ptr; + return wrapPointer(_emscripten_bind_ActionInfo_junction_0(self2), JunctionRef); + }; + ; + ActionInfo.prototype["addConnEndUpdate"] = ActionInfo.prototype.addConnEndUpdate = function (type, connEnd, isConnPinMoveUpdate) { + var self2 = this.ptr; + if (type && typeof type === "object") + type = type.ptr; + if (connEnd && typeof connEnd === "object") + connEnd = connEnd.ptr; + if (isConnPinMoveUpdate && typeof isConnPinMoveUpdate === "object") + isConnPinMoveUpdate = isConnPinMoveUpdate.ptr; + _emscripten_bind_ActionInfo_addConnEndUpdate_3(self2, type, connEnd, isConnPinMoveUpdate); + }; + ; + ActionInfo.prototype["get_type"] = ActionInfo.prototype.get_type = function () { + var self2 = this.ptr; + return _emscripten_bind_ActionInfo_get_type_0(self2); + }; + ActionInfo.prototype["set_type"] = ActionInfo.prototype.set_type = function (arg0) { + var self2 = this.ptr; + if (arg0 && typeof arg0 === "object") + arg0 = arg0.ptr; + _emscripten_bind_ActionInfo_set_type_1(self2, arg0); + }; + Object.defineProperty(ActionInfo.prototype, "type", { get: ActionInfo.prototype.get_type, set: ActionInfo.prototype.set_type }); + ActionInfo.prototype["get_objPtr"] = ActionInfo.prototype.get_objPtr = function () { + var self2 = this.ptr; + return wrapPointer(_emscripten_bind_ActionInfo_get_objPtr_0(self2), VoidPtr); + }; + ActionInfo.prototype["set_objPtr"] = ActionInfo.prototype.set_objPtr = function (arg0) { + var self2 = this.ptr; + if (arg0 && typeof arg0 === "object") + arg0 = arg0.ptr; + _emscripten_bind_ActionInfo_set_objPtr_1(self2, arg0); + }; + Object.defineProperty(ActionInfo.prototype, "objPtr", { get: ActionInfo.prototype.get_objPtr, set: ActionInfo.prototype.set_objPtr }); + ActionInfo.prototype["get_newPoly"] = ActionInfo.prototype.get_newPoly = function () { + var self2 = this.ptr; + return wrapPointer(_emscripten_bind_ActionInfo_get_newPoly_0(self2), Polygon); + }; + ActionInfo.prototype["set_newPoly"] = ActionInfo.prototype.set_newPoly = function (arg0) { + var self2 = this.ptr; + if (arg0 && typeof arg0 === "object") + arg0 = arg0.ptr; + _emscripten_bind_ActionInfo_set_newPoly_1(self2, arg0); + }; + Object.defineProperty(ActionInfo.prototype, "newPoly", { get: ActionInfo.prototype.get_newPoly, set: ActionInfo.prototype.set_newPoly }); + ActionInfo.prototype["get_newPosition"] = ActionInfo.prototype.get_newPosition = function () { + var self2 = this.ptr; + return wrapPointer(_emscripten_bind_ActionInfo_get_newPosition_0(self2), Point); + }; + ActionInfo.prototype["set_newPosition"] = ActionInfo.prototype.set_newPosition = function (arg0) { + var self2 = this.ptr; + if (arg0 && typeof arg0 === "object") + arg0 = arg0.ptr; + _emscripten_bind_ActionInfo_set_newPosition_1(self2, arg0); + }; + Object.defineProperty(ActionInfo.prototype, "newPosition", { get: ActionInfo.prototype.get_newPosition, set: ActionInfo.prototype.set_newPosition }); + ActionInfo.prototype["get_firstMove"] = ActionInfo.prototype.get_firstMove = function () { + var self2 = this.ptr; + return !!_emscripten_bind_ActionInfo_get_firstMove_0(self2); + }; + ActionInfo.prototype["set_firstMove"] = ActionInfo.prototype.set_firstMove = function (arg0) { + var self2 = this.ptr; + if (arg0 && typeof arg0 === "object") + arg0 = arg0.ptr; + _emscripten_bind_ActionInfo_set_firstMove_1(self2, arg0); + }; + Object.defineProperty(ActionInfo.prototype, "firstMove", { get: ActionInfo.prototype.get_firstMove, set: ActionInfo.prototype.set_firstMove }); + ActionInfo.prototype["__destroy__"] = ActionInfo.prototype.__destroy__ = function () { + var self2 = this.ptr; + _emscripten_bind_ActionInfo___destroy___0(self2); + }; + function ShapeConnectionPin(shape, classId, xOffset, yOffset, proportional, insideOffset, visDirs) { + if (shape && typeof shape === "object") + shape = shape.ptr; + if (classId && typeof classId === "object") + classId = classId.ptr; + if (xOffset && typeof xOffset === "object") + xOffset = xOffset.ptr; + if (yOffset && typeof yOffset === "object") + yOffset = yOffset.ptr; + if (proportional && typeof proportional === "object") + proportional = proportional.ptr; + if (insideOffset && typeof insideOffset === "object") + insideOffset = insideOffset.ptr; + if (visDirs && typeof visDirs === "object") + visDirs = visDirs.ptr; + if (xOffset === void 0) { + this.ptr = _emscripten_bind_ShapeConnectionPin_ShapeConnectionPin_2(shape, classId); + getCache(ShapeConnectionPin)[this.ptr] = this; + return; + } + if (yOffset === void 0) { + this.ptr = _emscripten_bind_ShapeConnectionPin_ShapeConnectionPin_3(shape, classId, xOffset); + getCache(ShapeConnectionPin)[this.ptr] = this; + return; + } + if (proportional === void 0) { + this.ptr = _emscripten_bind_ShapeConnectionPin_ShapeConnectionPin_4(shape, classId, xOffset, yOffset); + getCache(ShapeConnectionPin)[this.ptr] = this; + return; + } + if (insideOffset === void 0) { + this.ptr = _emscripten_bind_ShapeConnectionPin_ShapeConnectionPin_5(shape, classId, xOffset, yOffset, proportional); + getCache(ShapeConnectionPin)[this.ptr] = this; + return; + } + if (visDirs === void 0) { + this.ptr = _emscripten_bind_ShapeConnectionPin_ShapeConnectionPin_6(shape, classId, xOffset, yOffset, proportional, insideOffset); + getCache(ShapeConnectionPin)[this.ptr] = this; + return; + } + this.ptr = _emscripten_bind_ShapeConnectionPin_ShapeConnectionPin_7(shape, classId, xOffset, yOffset, proportional, insideOffset, visDirs); + getCache(ShapeConnectionPin)[this.ptr] = this; + } + ; + ; + ShapeConnectionPin.prototype = Object.create(WrapperObject.prototype); + ShapeConnectionPin.prototype.constructor = ShapeConnectionPin; + ShapeConnectionPin.prototype.__class__ = ShapeConnectionPin; + ShapeConnectionPin.__cache__ = {}; + Module["ShapeConnectionPin"] = ShapeConnectionPin; + ShapeConnectionPin.prototype["setConnectionCost"] = ShapeConnectionPin.prototype.setConnectionCost = function (cost) { + var self2 = this.ptr; + if (cost && typeof cost === "object") + cost = cost.ptr; + _emscripten_bind_ShapeConnectionPin_setConnectionCost_1(self2, cost); + }; + ; + ShapeConnectionPin.prototype["position"] = ShapeConnectionPin.prototype.position = function (newPoly) { + var self2 = this.ptr; + if (newPoly && typeof newPoly === "object") + newPoly = newPoly.ptr; + if (newPoly === void 0) { + return wrapPointer(_emscripten_bind_ShapeConnectionPin_position_0(self2), Point); + } + return wrapPointer(_emscripten_bind_ShapeConnectionPin_position_1(self2, newPoly), Point); + }; + ; + ShapeConnectionPin.prototype["directions"] = ShapeConnectionPin.prototype.directions = function () { + var self2 = this.ptr; + return _emscripten_bind_ShapeConnectionPin_directions_0(self2); + }; + ; + ShapeConnectionPin.prototype["setExclusive"] = ShapeConnectionPin.prototype.setExclusive = function (exclusive) { + var self2 = this.ptr; + if (exclusive && typeof exclusive === "object") + exclusive = exclusive.ptr; + _emscripten_bind_ShapeConnectionPin_setExclusive_1(self2, exclusive); + }; + ; + ShapeConnectionPin.prototype["isExclusive"] = ShapeConnectionPin.prototype.isExclusive = function () { + var self2 = this.ptr; + return !!_emscripten_bind_ShapeConnectionPin_isExclusive_0(self2); + }; + ; + ShapeConnectionPin.prototype["updatePosition"] = ShapeConnectionPin.prototype.updatePosition = function (newPosition) { + var self2 = this.ptr; + if (newPosition && typeof newPosition === "object") + newPosition = newPosition.ptr; + _emscripten_bind_ShapeConnectionPin_updatePosition_1(self2, newPosition); + }; + ; + ShapeConnectionPin.prototype["__destroy__"] = ShapeConnectionPin.prototype.__destroy__ = function () { + var self2 = this.ptr; + _emscripten_bind_ShapeConnectionPin___destroy___0(self2); + }; + function Obstacle() { + throw "cannot construct a Obstacle, no constructor in IDL"; + } + Obstacle.prototype = Object.create(WrapperObject.prototype); + Obstacle.prototype.constructor = Obstacle; + Obstacle.prototype.__class__ = Obstacle; + Obstacle.__cache__ = {}; + Module["Obstacle"] = Obstacle; + Obstacle.prototype["id"] = Obstacle.prototype.id = function () { + var self2 = this.ptr; + return _emscripten_bind_Obstacle_id_0(self2); + }; + ; + Obstacle.prototype["polygon"] = Obstacle.prototype.polygon = function () { + var self2 = this.ptr; + return wrapPointer(_emscripten_bind_Obstacle_polygon_0(self2), Polygon); + }; + ; + Obstacle.prototype["router"] = Obstacle.prototype.router = function () { + var self2 = this.ptr; + return wrapPointer(_emscripten_bind_Obstacle_router_0(self2), Router); + }; + ; + Obstacle.prototype["position"] = Obstacle.prototype.position = function () { + var self2 = this.ptr; + return wrapPointer(_emscripten_bind_Obstacle_position_0(self2), Point); + }; + ; + Obstacle.prototype["setNewPoly"] = Obstacle.prototype.setNewPoly = function (poly) { + var self2 = this.ptr; + if (poly && typeof poly === "object") + poly = poly.ptr; + _emscripten_bind_Obstacle_setNewPoly_1(self2, poly); + }; + ; + Obstacle.prototype["__destroy__"] = Obstacle.prototype.__destroy__ = function () { + var self2 = this.ptr; + _emscripten_bind_Obstacle___destroy___0(self2); + }; + function JunctionRef(router, position, id) { + if (router && typeof router === "object") + router = router.ptr; + if (position && typeof position === "object") + position = position.ptr; + if (id && typeof id === "object") + id = id.ptr; + if (id === void 0) { + this.ptr = _emscripten_bind_JunctionRef_JunctionRef_2(router, position); + getCache(JunctionRef)[this.ptr] = this; + return; + } + this.ptr = _emscripten_bind_JunctionRef_JunctionRef_3(router, position, id); + getCache(JunctionRef)[this.ptr] = this; + } + ; + ; + JunctionRef.prototype = Object.create(WrapperObject.prototype); + JunctionRef.prototype.constructor = JunctionRef; + JunctionRef.prototype.__class__ = JunctionRef; + JunctionRef.__cache__ = {}; + Module["JunctionRef"] = JunctionRef; + JunctionRef.prototype["position"] = JunctionRef.prototype.position = function () { + var self2 = this.ptr; + return wrapPointer(_emscripten_bind_JunctionRef_position_0(self2), Point); + }; + ; + JunctionRef.prototype["setPositionFixed"] = JunctionRef.prototype.setPositionFixed = function (fixed) { + var self2 = this.ptr; + if (fixed && typeof fixed === "object") + fixed = fixed.ptr; + _emscripten_bind_JunctionRef_setPositionFixed_1(self2, fixed); + }; + ; + JunctionRef.prototype["positionFixed"] = JunctionRef.prototype.positionFixed = function () { + var self2 = this.ptr; + return !!_emscripten_bind_JunctionRef_positionFixed_0(self2); + }; + ; + JunctionRef.prototype["recommendedPosition"] = JunctionRef.prototype.recommendedPosition = function () { + var self2 = this.ptr; + return wrapPointer(_emscripten_bind_JunctionRef_recommendedPosition_0(self2), Point); + }; + ; + JunctionRef.prototype["__destroy__"] = JunctionRef.prototype.__destroy__ = function () { + var self2 = this.ptr; + _emscripten_bind_JunctionRef___destroy___0(self2); + }; + function ShapeRef(router, poly, id) { + if (router && typeof router === "object") + router = router.ptr; + if (poly && typeof poly === "object") + poly = poly.ptr; + if (id && typeof id === "object") + id = id.ptr; + if (id === void 0) { + this.ptr = _emscripten_bind_ShapeRef_ShapeRef_2(router, poly); + getCache(ShapeRef)[this.ptr] = this; + return; + } + this.ptr = _emscripten_bind_ShapeRef_ShapeRef_3(router, poly, id); + getCache(ShapeRef)[this.ptr] = this; + } + ; + ; + ShapeRef.prototype = Object.create(WrapperObject.prototype); + ShapeRef.prototype.constructor = ShapeRef; + ShapeRef.prototype.__class__ = ShapeRef; + ShapeRef.__cache__ = {}; + Module["ShapeRef"] = ShapeRef; + ShapeRef.prototype["polygon"] = ShapeRef.prototype.polygon = function () { + var self2 = this.ptr; + return wrapPointer(_emscripten_bind_ShapeRef_polygon_0(self2), Polygon); + }; + ; + ShapeRef.prototype["position"] = ShapeRef.prototype.position = function () { + var self2 = this.ptr; + return wrapPointer(_emscripten_bind_ShapeRef_position_0(self2), Point); + }; + ; + ShapeRef.prototype["setNewPoly"] = ShapeRef.prototype.setNewPoly = function (poly) { + var self2 = this.ptr; + if (poly && typeof poly === "object") + poly = poly.ptr; + _emscripten_bind_ShapeRef_setNewPoly_1(self2, poly); + }; + ; + ShapeRef.prototype["__destroy__"] = ShapeRef.prototype.__destroy__ = function () { + var self2 = this.ptr; + _emscripten_bind_ShapeRef___destroy___0(self2); + }; + function HyperedgeNewAndDeletedObjectLists() { + throw "cannot construct a HyperedgeNewAndDeletedObjectLists, no constructor in IDL"; + } + HyperedgeNewAndDeletedObjectLists.prototype = Object.create(WrapperObject.prototype); + HyperedgeNewAndDeletedObjectLists.prototype.constructor = HyperedgeNewAndDeletedObjectLists; + HyperedgeNewAndDeletedObjectLists.prototype.__class__ = HyperedgeNewAndDeletedObjectLists; + HyperedgeNewAndDeletedObjectLists.__cache__ = {}; + Module["HyperedgeNewAndDeletedObjectLists"] = HyperedgeNewAndDeletedObjectLists; + HyperedgeNewAndDeletedObjectLists.prototype["__destroy__"] = HyperedgeNewAndDeletedObjectLists.prototype.__destroy__ = function () { + var self2 = this.ptr; + _emscripten_bind_HyperedgeNewAndDeletedObjectLists___destroy___0(self2); + }; + function HyperedgeRerouter() { + this.ptr = _emscripten_bind_HyperedgeRerouter_HyperedgeRerouter_0(); + getCache(HyperedgeRerouter)[this.ptr] = this; + } + ; + ; + HyperedgeRerouter.prototype = Object.create(WrapperObject.prototype); + HyperedgeRerouter.prototype.constructor = HyperedgeRerouter; + HyperedgeRerouter.prototype.__class__ = HyperedgeRerouter; + HyperedgeRerouter.__cache__ = {}; + Module["HyperedgeRerouter"] = HyperedgeRerouter; + HyperedgeRerouter.prototype["registerHyperedgeForRerouting"] = HyperedgeRerouter.prototype.registerHyperedgeForRerouting = function (junction) { + var self2 = this.ptr; + if (junction && typeof junction === "object") + junction = junction.ptr; + return _emscripten_bind_HyperedgeRerouter_registerHyperedgeForRerouting_1(self2, junction); + }; + ; + HyperedgeRerouter.prototype["__destroy__"] = HyperedgeRerouter.prototype.__destroy__ = function () { + var self2 = this.ptr; + _emscripten_bind_HyperedgeRerouter___destroy___0(self2); + }; + function VertInf() { + throw "cannot construct a VertInf, no constructor in IDL"; + } + VertInf.prototype = Object.create(WrapperObject.prototype); + VertInf.prototype.constructor = VertInf; + VertInf.prototype.__class__ = VertInf; + VertInf.__cache__ = {}; + Module["VertInf"] = VertInf; + VertInf.prototype["__destroy__"] = VertInf.prototype.__destroy__ = function () { + var self2 = this.ptr; + _emscripten_bind_VertInf___destroy___0(self2); + }; + function VertID(id, n, p) { + if (id && typeof id === "object") + id = id.ptr; + if (n && typeof n === "object") + n = n.ptr; + if (p && typeof p === "object") + p = p.ptr; + if (id === void 0) { + this.ptr = _emscripten_bind_VertID_VertID_0(); + getCache(VertID)[this.ptr] = this; + return; + } + if (n === void 0) { + this.ptr = _emscripten_bind_VertID_VertID_1(id); + getCache(VertID)[this.ptr] = this; + return; + } + if (p === void 0) { + this.ptr = _emscripten_bind_VertID_VertID_2(id, n); + getCache(VertID)[this.ptr] = this; + return; + } + this.ptr = _emscripten_bind_VertID_VertID_3(id, n, p); + getCache(VertID)[this.ptr] = this; + } + ; + ; + VertID.prototype = Object.create(WrapperObject.prototype); + VertID.prototype.constructor = VertID; + VertID.prototype.__class__ = VertID; + VertID.__cache__ = {}; + Module["VertID"] = VertID; + VertID.prototype["get_objID"] = VertID.prototype.get_objID = function () { + var self2 = this.ptr; + return _emscripten_bind_VertID_get_objID_0(self2); + }; + VertID.prototype["set_objID"] = VertID.prototype.set_objID = function (arg0) { + var self2 = this.ptr; + if (arg0 && typeof arg0 === "object") + arg0 = arg0.ptr; + _emscripten_bind_VertID_set_objID_1(self2, arg0); + }; + Object.defineProperty(VertID.prototype, "objID", { get: VertID.prototype.get_objID, set: VertID.prototype.set_objID }); + VertID.prototype["get_vn"] = VertID.prototype.get_vn = function () { + var self2 = this.ptr; + return _emscripten_bind_VertID_get_vn_0(self2); + }; + VertID.prototype["set_vn"] = VertID.prototype.set_vn = function (arg0) { + var self2 = this.ptr; + if (arg0 && typeof arg0 === "object") + arg0 = arg0.ptr; + _emscripten_bind_VertID_set_vn_1(self2, arg0); + }; + Object.defineProperty(VertID.prototype, "vn", { get: VertID.prototype.get_vn, set: VertID.prototype.set_vn }); + VertID.prototype["get_props"] = VertID.prototype.get_props = function () { + var self2 = this.ptr; + return _emscripten_bind_VertID_get_props_0(self2); + }; + VertID.prototype["set_props"] = VertID.prototype.set_props = function (arg0) { + var self2 = this.ptr; + if (arg0 && typeof arg0 === "object") + arg0 = arg0.ptr; + _emscripten_bind_VertID_set_props_1(self2, arg0); + }; + Object.defineProperty(VertID.prototype, "props", { get: VertID.prototype.get_props, set: VertID.prototype.set_props }); + VertID.prototype["get_src"] = VertID.prototype.get_src = function () { + var self2 = this.ptr; + return _emscripten_bind_VertID_get_src_0(self2); + }; + Object.defineProperty(VertID.prototype, "src", { get: VertID.prototype.get_src }); + VertID.prototype["get_tar"] = VertID.prototype.get_tar = function () { + var self2 = this.ptr; + return _emscripten_bind_VertID_get_tar_0(self2); + }; + Object.defineProperty(VertID.prototype, "tar", { get: VertID.prototype.get_tar }); + VertID.prototype["get_PROP_ConnPoint"] = VertID.prototype.get_PROP_ConnPoint = function () { + var self2 = this.ptr; + return _emscripten_bind_VertID_get_PROP_ConnPoint_0(self2); + }; + Object.defineProperty(VertID.prototype, "PROP_ConnPoint", { get: VertID.prototype.get_PROP_ConnPoint }); + VertID.prototype["get_PROP_OrthShapeEdge"] = VertID.prototype.get_PROP_OrthShapeEdge = function () { + var self2 = this.ptr; + return _emscripten_bind_VertID_get_PROP_OrthShapeEdge_0(self2); + }; + Object.defineProperty(VertID.prototype, "PROP_OrthShapeEdge", { get: VertID.prototype.get_PROP_OrthShapeEdge }); + VertID.prototype["get_PROP_ConnectionPin"] = VertID.prototype.get_PROP_ConnectionPin = function () { + var self2 = this.ptr; + return _emscripten_bind_VertID_get_PROP_ConnectionPin_0(self2); + }; + Object.defineProperty(VertID.prototype, "PROP_ConnectionPin", { get: VertID.prototype.get_PROP_ConnectionPin }); + VertID.prototype["get_PROP_ConnCheckpoint"] = VertID.prototype.get_PROP_ConnCheckpoint = function () { + var self2 = this.ptr; + return _emscripten_bind_VertID_get_PROP_ConnCheckpoint_0(self2); + }; + Object.defineProperty(VertID.prototype, "PROP_ConnCheckpoint", { get: VertID.prototype.get_PROP_ConnCheckpoint }); + VertID.prototype["get_PROP_DummyPinHelper"] = VertID.prototype.get_PROP_DummyPinHelper = function () { + var self2 = this.ptr; + return _emscripten_bind_VertID_get_PROP_DummyPinHelper_0(self2); + }; + Object.defineProperty(VertID.prototype, "PROP_DummyPinHelper", { get: VertID.prototype.get_PROP_DummyPinHelper }); + VertID.prototype["__destroy__"] = VertID.prototype.__destroy__ = function () { + var self2 = this.ptr; + _emscripten_bind_VertID___destroy___0(self2); + }; + function MinimumTerminalSpanningTree() { + throw "cannot construct a MinimumTerminalSpanningTree, no constructor in IDL"; + } + MinimumTerminalSpanningTree.prototype = Object.create(WrapperObject.prototype); + MinimumTerminalSpanningTree.prototype.constructor = MinimumTerminalSpanningTree; + MinimumTerminalSpanningTree.prototype.__class__ = MinimumTerminalSpanningTree; + MinimumTerminalSpanningTree.__cache__ = {}; + Module["MinimumTerminalSpanningTree"] = MinimumTerminalSpanningTree; + MinimumTerminalSpanningTree.prototype["__destroy__"] = MinimumTerminalSpanningTree.prototype.__destroy__ = function () { + var self2 = this.ptr; + _emscripten_bind_MinimumTerminalSpanningTree___destroy___0(self2); + }; + function Checkpoint(p) { + if (p && typeof p === "object") + p = p.ptr; + this.ptr = _emscripten_bind_Checkpoint_Checkpoint_1(p); + getCache(Checkpoint)[this.ptr] = this; + } + ; + ; + Checkpoint.prototype = Object.create(WrapperObject.prototype); + Checkpoint.prototype.constructor = Checkpoint; + Checkpoint.prototype.__class__ = Checkpoint; + Checkpoint.__cache__ = {}; + Module["Checkpoint"] = Checkpoint; + Checkpoint.prototype["__destroy__"] = Checkpoint.prototype.__destroy__ = function () { + var self2 = this.ptr; + _emscripten_bind_Checkpoint___destroy___0(self2); + }; + function ConnRef(router, src, dst, id) { + if (router && typeof router === "object") + router = router.ptr; + if (src && typeof src === "object") + src = src.ptr; + if (dst && typeof dst === "object") + dst = dst.ptr; + if (id && typeof id === "object") + id = id.ptr; + if (id === void 0) { + this.ptr = _emscripten_bind_ConnRef_ConnRef_3(router, src, dst); + getCache(ConnRef)[this.ptr] = this; + return; + } + this.ptr = _emscripten_bind_ConnRef_ConnRef_4(router, src, dst, id); + getCache(ConnRef)[this.ptr] = this; + } + ; + ; + ConnRef.prototype = Object.create(WrapperObject.prototype); + ConnRef.prototype.constructor = ConnRef; + ConnRef.prototype.__class__ = ConnRef; + ConnRef.__cache__ = {}; + Module["ConnRef"] = ConnRef; + ConnRef.prototype["id"] = ConnRef.prototype.id = function () { + var self2 = this.ptr; + return _emscripten_bind_ConnRef_id_0(self2); + }; + ; + ConnRef.prototype["setCallback"] = ConnRef.prototype.setCallback = function (cb, ptr) { + var self2 = this.ptr; + assert(cb instanceof Function, "Expecting function"); + var callback_val_0 = addFunction(cb, "vi"); + if (ptr && typeof ptr === "object") + ptr = ptr.ptr; + _emscripten_bind_ConnRef_setCallback_2(self2, callback_val_0, ptr); + }; + ; + ConnRef.prototype["setSourceEndpoint"] = ConnRef.prototype.setSourceEndpoint = function (srcPoint) { + var self2 = this.ptr; + if (srcPoint && typeof srcPoint === "object") + srcPoint = srcPoint.ptr; + _emscripten_bind_ConnRef_setSourceEndpoint_1(self2, srcPoint); + }; + ; + ConnRef.prototype["setDestEndpoint"] = ConnRef.prototype.setDestEndpoint = function (dstPoint) { + var self2 = this.ptr; + if (dstPoint && typeof dstPoint === "object") + dstPoint = dstPoint.ptr; + _emscripten_bind_ConnRef_setDestEndpoint_1(self2, dstPoint); + }; + ; + ConnRef.prototype["routingType"] = ConnRef.prototype.routingType = function () { + var self2 = this.ptr; + return _emscripten_bind_ConnRef_routingType_0(self2); + }; + ; + ConnRef.prototype["setRoutingType"] = ConnRef.prototype.setRoutingType = function (type) { + var self2 = this.ptr; + if (type && typeof type === "object") + type = type.ptr; + _emscripten_bind_ConnRef_setRoutingType_1(self2, type); + }; + ; + ConnRef.prototype["displayRoute"] = ConnRef.prototype.displayRoute = function () { + var self2 = this.ptr; + return wrapPointer(_emscripten_bind_ConnRef_displayRoute_0(self2), Polygon); + }; + ; + ConnRef.prototype["setHateCrossings"] = ConnRef.prototype.setHateCrossings = function (value) { + var self2 = this.ptr; + if (value && typeof value === "object") + value = value.ptr; + _emscripten_bind_ConnRef_setHateCrossings_1(self2, value); + }; + ; + ConnRef.prototype["doesHateCrossings"] = ConnRef.prototype.doesHateCrossings = function () { + var self2 = this.ptr; + return !!_emscripten_bind_ConnRef_doesHateCrossings_0(self2); + }; + ; + ConnRef.prototype["__destroy__"] = ConnRef.prototype.__destroy__ = function () { + var self2 = this.ptr; + _emscripten_bind_ConnRef___destroy___0(self2); + }; + function EdgeInf(v1, v2, orthogonal) { + if (v1 && typeof v1 === "object") + v1 = v1.ptr; + if (v2 && typeof v2 === "object") + v2 = v2.ptr; + if (orthogonal && typeof orthogonal === "object") + orthogonal = orthogonal.ptr; + if (orthogonal === void 0) { + this.ptr = _emscripten_bind_EdgeInf_EdgeInf_2(v1, v2); + getCache(EdgeInf)[this.ptr] = this; + return; + } + this.ptr = _emscripten_bind_EdgeInf_EdgeInf_3(v1, v2, orthogonal); + getCache(EdgeInf)[this.ptr] = this; + } + ; + ; + EdgeInf.prototype = Object.create(WrapperObject.prototype); + EdgeInf.prototype.constructor = EdgeInf; + EdgeInf.prototype.__class__ = EdgeInf; + EdgeInf.__cache__ = {}; + Module["EdgeInf"] = EdgeInf; + EdgeInf.prototype["__destroy__"] = EdgeInf.prototype.__destroy__ = function () { + var self2 = this.ptr; + _emscripten_bind_EdgeInf___destroy___0(self2); + }; + function LineRep() { + throw "cannot construct a LineRep, no constructor in IDL"; + } + LineRep.prototype = Object.create(WrapperObject.prototype); + LineRep.prototype.constructor = LineRep; + LineRep.prototype.__class__ = LineRep; + LineRep.__cache__ = {}; + Module["LineRep"] = LineRep; + LineRep.prototype["get_begin"] = LineRep.prototype.get_begin = function () { + var self2 = this.ptr; + return wrapPointer(_emscripten_bind_LineRep_get_begin_0(self2), Point); + }; + LineRep.prototype["set_begin"] = LineRep.prototype.set_begin = function (arg0) { + var self2 = this.ptr; + if (arg0 && typeof arg0 === "object") + arg0 = arg0.ptr; + _emscripten_bind_LineRep_set_begin_1(self2, arg0); + }; + Object.defineProperty(LineRep.prototype, "begin", { get: LineRep.prototype.get_begin, set: LineRep.prototype.set_begin }); + LineRep.prototype["get_end"] = LineRep.prototype.get_end = function () { + var self2 = this.ptr; + return wrapPointer(_emscripten_bind_LineRep_get_end_0(self2), Point); + }; + LineRep.prototype["set_end"] = LineRep.prototype.set_end = function (arg0) { + var self2 = this.ptr; + if (arg0 && typeof arg0 === "object") + arg0 = arg0.ptr; + _emscripten_bind_LineRep_set_end_1(self2, arg0); + }; + Object.defineProperty(LineRep.prototype, "end", { get: LineRep.prototype.get_end, set: LineRep.prototype.set_end }); + LineRep.prototype["__destroy__"] = LineRep.prototype.__destroy__ = function () { + var self2 = this.ptr; + _emscripten_bind_LineRep___destroy___0(self2); + }; + function Router(flags) { + if (flags && typeof flags === "object") + flags = flags.ptr; + this.ptr = _emscripten_bind_Router_Router_1(flags); + getCache(Router)[this.ptr] = this; + } + ; + ; + Router.prototype = Object.create(WrapperObject.prototype); + Router.prototype.constructor = Router; + Router.prototype.__class__ = Router; + Router.__cache__ = {}; + Module["Router"] = Router; + Router.prototype["processTransaction"] = Router.prototype.processTransaction = function () { + var self2 = this.ptr; + return !!_emscripten_bind_Router_processTransaction_0(self2); + }; + ; + Router.prototype["printInfo"] = Router.prototype.printInfo = function () { + var self2 = this.ptr; + _emscripten_bind_Router_printInfo_0(self2); + }; + ; + Router.prototype["deleteConnector"] = Router.prototype.deleteConnector = function (connector) { + var self2 = this.ptr; + if (connector && typeof connector === "object") + connector = connector.ptr; + _emscripten_bind_Router_deleteConnector_1(self2, connector); + }; + ; + Router.prototype["moveShape"] = Router.prototype.moveShape = function (shape, xDiff, yDiff) { + var self2 = this.ptr; + if (shape && typeof shape === "object") + shape = shape.ptr; + if (xDiff && typeof xDiff === "object") + xDiff = xDiff.ptr; + if (yDiff && typeof yDiff === "object") + yDiff = yDiff.ptr; + if (yDiff === void 0) { + _emscripten_bind_Router_moveShape_2(self2, shape, xDiff); + return; + } + _emscripten_bind_Router_moveShape_3(self2, shape, xDiff, yDiff); + }; + ; + Router.prototype["deleteShape"] = Router.prototype.deleteShape = function (shape) { + var self2 = this.ptr; + if (shape && typeof shape === "object") + shape = shape.ptr; + _emscripten_bind_Router_deleteShape_1(self2, shape); + }; + ; + Router.prototype["moveJunction"] = Router.prototype.moveJunction = function (junction, xDiff, yDiff) { + var self2 = this.ptr; + if (junction && typeof junction === "object") + junction = junction.ptr; + if (xDiff && typeof xDiff === "object") + xDiff = xDiff.ptr; + if (yDiff && typeof yDiff === "object") + yDiff = yDiff.ptr; + if (yDiff === void 0) { + _emscripten_bind_Router_moveJunction_2(self2, junction, xDiff); + return; + } + _emscripten_bind_Router_moveJunction_3(self2, junction, xDiff, yDiff); + }; + ; + Router.prototype["setRoutingParameter"] = Router.prototype.setRoutingParameter = function (parameter, value) { + var self2 = this.ptr; + if (parameter && typeof parameter === "object") + parameter = parameter.ptr; + if (value && typeof value === "object") + value = value.ptr; + _emscripten_bind_Router_setRoutingParameter_2(self2, parameter, value); + }; + ; + Router.prototype["setRoutingOption"] = Router.prototype.setRoutingOption = function (option, value) { + var self2 = this.ptr; + if (option && typeof option === "object") + option = option.ptr; + if (value && typeof value === "object") + value = value.ptr; + _emscripten_bind_Router_setRoutingOption_2(self2, option, value); + }; + ; + Router.prototype["__destroy__"] = Router.prototype.__destroy__ = function () { + var self2 = this.ptr; + _emscripten_bind_Router___destroy___0(self2); + }; + (function () { + function setupEnums() { + Module["ConnDirNone"] = _emscripten_enum_Avoid_ConnDirFlag_ConnDirNone(); + Module["ConnDirUp"] = _emscripten_enum_Avoid_ConnDirFlag_ConnDirUp(); + Module["ConnDirDown"] = _emscripten_enum_Avoid_ConnDirFlag_ConnDirDown(); + Module["ConnDirLeft"] = _emscripten_enum_Avoid_ConnDirFlag_ConnDirLeft(); + Module["ConnDirRight"] = _emscripten_enum_Avoid_ConnDirFlag_ConnDirRight(); + Module["ConnDirAll"] = _emscripten_enum_Avoid_ConnDirFlag_ConnDirAll(); + Module["ConnEndPoint"] = _emscripten_enum_Avoid_ConnEndType_ConnEndPoint(); + Module["ConnEndShapePin"] = _emscripten_enum_Avoid_ConnEndType_ConnEndShapePin(); + Module["ConnEndJunction"] = _emscripten_enum_Avoid_ConnEndType_ConnEndJunction(); + Module["ConnEndEmpty"] = _emscripten_enum_Avoid_ConnEndType_ConnEndEmpty(); + Module["ShapeMove"] = _emscripten_enum_Avoid_ActionType_ShapeMove(); + Module["ShapeAdd"] = _emscripten_enum_Avoid_ActionType_ShapeAdd(); + Module["ShapeRemove"] = _emscripten_enum_Avoid_ActionType_ShapeRemove(); + Module["JunctionMove"] = _emscripten_enum_Avoid_ActionType_JunctionMove(); + Module["JunctionAdd"] = _emscripten_enum_Avoid_ActionType_JunctionAdd(); + Module["JunctionRemove"] = _emscripten_enum_Avoid_ActionType_JunctionRemove(); + Module["ConnChange"] = _emscripten_enum_Avoid_ActionType_ConnChange(); + Module["ConnectionPinChange"] = _emscripten_enum_Avoid_ActionType_ConnectionPinChange(); + Module["TransformationType_CW90"] = _emscripten_enum_Avoid_ShapeTransformationType_TransformationType_CW90(); + Module["TransformationType_CW180"] = _emscripten_enum_Avoid_ShapeTransformationType_TransformationType_CW180(); + Module["TransformationType_CW270"] = _emscripten_enum_Avoid_ShapeTransformationType_TransformationType_CW270(); + Module["TransformationType_FlipX"] = _emscripten_enum_Avoid_ShapeTransformationType_TransformationType_FlipX(); + Module["TransformationType_FlipY"] = _emscripten_enum_Avoid_ShapeTransformationType_TransformationType_FlipY(); + Module["ConnType_None"] = _emscripten_enum_Avoid_ConnType_ConnType_None(); + Module["ConnType_PolyLine"] = _emscripten_enum_Avoid_ConnType_ConnType_PolyLine(); + Module["ConnType_Orthogonal"] = _emscripten_enum_Avoid_ConnType_ConnType_Orthogonal(); + Module["PolyLineRouting"] = _emscripten_enum_Avoid_RouterFlag_PolyLineRouting(); + Module["OrthogonalRouting"] = _emscripten_enum_Avoid_RouterFlag_OrthogonalRouting(); + Module["segmentPenalty"] = _emscripten_enum_Avoid_RoutingParameter_segmentPenalty(); + Module["anglePenalty"] = _emscripten_enum_Avoid_RoutingParameter_anglePenalty(); + Module["crossingPenalty"] = _emscripten_enum_Avoid_RoutingParameter_crossingPenalty(); + Module["clusterCrossingPenalty"] = _emscripten_enum_Avoid_RoutingParameter_clusterCrossingPenalty(); + Module["fixedSharedPathPenalty"] = _emscripten_enum_Avoid_RoutingParameter_fixedSharedPathPenalty(); + Module["portDirectionPenalty"] = _emscripten_enum_Avoid_RoutingParameter_portDirectionPenalty(); + Module["shapeBufferDistance"] = _emscripten_enum_Avoid_RoutingParameter_shapeBufferDistance(); + Module["idealNudgingDistance"] = _emscripten_enum_Avoid_RoutingParameter_idealNudgingDistance(); + Module["reverseDirectionPenalty"] = _emscripten_enum_Avoid_RoutingParameter_reverseDirectionPenalty(); + Module["nudgeOrthogonalSegmentsConnectedToShapes"] = _emscripten_enum_Avoid_RoutingOption_nudgeOrthogonalSegmentsConnectedToShapes(); + Module["improveHyperedgeRoutesMovingJunctions"] = _emscripten_enum_Avoid_RoutingOption_improveHyperedgeRoutesMovingJunctions(); + Module["penaliseOrthogonalSharedPathsAtConnEnds"] = _emscripten_enum_Avoid_RoutingOption_penaliseOrthogonalSharedPathsAtConnEnds(); + Module["nudgeOrthogonalTouchingColinearSegments"] = _emscripten_enum_Avoid_RoutingOption_nudgeOrthogonalTouchingColinearSegments(); + Module["performUnifyingNudgingPreprocessingStep"] = _emscripten_enum_Avoid_RoutingOption_performUnifyingNudgingPreprocessingStep(); + Module["improveHyperedgeRoutesMovingAddingAndDeletingJunctions"] = _emscripten_enum_Avoid_RoutingOption_improveHyperedgeRoutesMovingAddingAndDeletingJunctions(); + Module["nudgeSharedPathsWithCommonEndPoint"] = _emscripten_enum_Avoid_RoutingOption_nudgeSharedPathsWithCommonEndPoint(); + } + if (runtimeInitialized) + setupEnums(); + else + addOnInit(setupEnums); + })(); + return initAvoidModule2.ready; + }; +})(); +var libavoid_default = initAvoidModule; + +/** + * @returns {AvoidLib} + */ +var createAvoidLibObj = (initAvoid) => { + return { + avoidLib: void 0, + async load(moduleArgs = {}) { + const wasmBinary = moduleArgs['wasmBinary']; + if (!this.avoidLib) { + this.avoidLib = await initAvoid({ wasmBinary }); + } else { + console.log("Avoid library is already initialized"); + } + }, + getInstance() { + if (!this.avoidLib) { + throw new Error("Avoid library should be initialized before using"); + } + return this.avoidLib; + } + }; +}; + +var AvoidLib = createAvoidLibObj(libavoid_default); +export { + AvoidLib +};