screeps-clockwork 0.4.0 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../node_modules/fastestsmallesttextencoderdecoder-encodeinto/EncoderDecoderTogether.min.js","../src/wasm/screeps_clockwork.js","../../src/wrappers/bfsDistanceMap.ts","../../src/wrappers/bfsFlowField.ts","../../src/wrappers/dijkstraDistanceMap.ts","../../src/wrappers/dijkstraFlowField.ts","../../src/wrappers/getRange.ts","../../src/utils/fromPacked.ts","../../src/wrappers/path.ts","../../src/wrappers/pathtoDistanceMapOrigin.ts","../../src/wrappers/pathtoFlowFieldOrigin.ts","../../src/wrappers/pathtoMonoFlowFieldOrigin.ts","../../src/index.ts"],"sourcesContent":["'use strict';(function(q){function y(){}function C(b){var c=b.charCodeAt(0)|0;if(55296<=c)if(56319>=c)if(b=b.charCodeAt(1)|0,56320<=b&&57343>=b){if(c=(c<<10)+b-56613888|0,65535<c)return v(240|c>>18,128|c>>12&63,128|c>>6&63,128|c&63)}else c=65533;else 57343>=c&&(c=65533);return 2047>=c?v(192|c>>6,128|c&63):v(224|c>>12,128|c>>6&63,128|c&63)}function z(){}function A(b,c){var g=void 0===b?\"\":(\"\"+b).replace(D,C),d=g.length|0,a=0,k=0,f=c.length|0,h=b.length|0;f<d&&(d=f);a:for(;a<d;a=a+1|0){b=g.charCodeAt(a)|\n0;switch(b>>4){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:k=k+1|0;case 8:case 9:case 10:case 11:break;case 12:case 13:if((a+1|0)<f){k=k+1|0;break}case 14:if((a+2|0)<f){k=k+1|0;break}case 15:if((a+3|0)<f){k=k+1|0;break}default:break a}c[a]=b}return{written:a,read:h<k?h:k}}var v=String.fromCharCode,x={}.toString,E=x.call(q.SharedArrayBuffer),F=x(),t=q.Uint8Array,w=t||Array,u=t?ArrayBuffer:w,G=u.isView||function(b){return b&&\"length\"in b},H=x.call(u.prototype),B=z.prototype;u=q.TextEncoder;\nvar D=/[\\x80-\\uD7ff\\uDC00-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]?/g,e=new (t?Uint16Array:w)(32);y.prototype.decode=function(b){if(!G(b)){var c=x.call(b);if(c!==H&&c!==E&&c!==F)throw TypeError(\"Failed to execute 'decode' on 'TextDecoder': The provided value is not of type '(ArrayBuffer or ArrayBufferView)'\");b=t?new w(b):b||[]}for(var g=c=\"\",d=0,a=b.length|0,k=a-32|0,f,h,l=0,r=0,n,m=0,p=-1;d<a;){for(f=d<=k?32:a-d|0;m<f;d=d+1|0,m=m+1|0){h=b[d]&255;switch(h>>4){case 15:n=b[d=d+1|0]&255;if(2!==n>>6||\n247<h){d=d-1|0;break}l=(h&7)<<6|n&63;r=5;h=256;case 14:n=b[d=d+1|0]&255,l<<=6,l|=(h&15)<<6|n&63,r=2===n>>6?r+4|0:24,h=h+256&768;case 13:case 12:n=b[d=d+1|0]&255,l<<=6,l|=(h&31)<<6|n&63,r=r+7|0,d<a&&2===n>>6&&l>>r&&1114112>l?(h=l,l=l-65536|0,0<=l&&(p=(l>>10)+55296|0,h=(l&1023)+56320|0,31>m?(e[m]=p,m=m+1|0,p=-1):(n=p,p=h,h=n))):(h>>=8,d=d-h-1|0,h=65533),l=r=0,f=d<=k?32:a-d|0;default:e[m]=h;continue;case 11:case 10:case 9:case 8:}e[m]=65533}g+=v(e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8],e[9],e[10],\ne[11],e[12],e[13],e[14],e[15],e[16],e[17],e[18],e[19],e[20],e[21],e[22],e[23],e[24],e[25],e[26],e[27],e[28],e[29],e[30],e[31]);32>m&&(g=g.slice(0,m-32|0));if(d<a){if(e[0]=p,m=~p>>>31,p=-1,g.length<c.length)continue}else-1!==p&&(g+=v(p));c+=g;g=\"\"}return c};B.encode=function(b){b=void 0===b?\"\":\"\"+b;var c=b.length|0,g=new w((c<<1)+8|0),d,a=0,k=!t;for(d=0;d<c;d=d+1|0,a=a+1|0){var f=b.charCodeAt(d)|0;if(127>=f)g[a]=f;else{if(2047>=f)g[a]=192|f>>6;else{a:{if(55296<=f)if(56319>=f){var h=b.charCodeAt(d=\nd+1|0)|0;if(56320<=h&&57343>=h){f=(f<<10)+h-56613888|0;if(65535<f){g[a]=240|f>>18;g[a=a+1|0]=128|f>>12&63;g[a=a+1|0]=128|f>>6&63;g[a=a+1|0]=128|f&63;continue}break a}f=65533}else 57343>=f&&(f=65533);!k&&d<<1<a&&d<<1<(a-7|0)&&(k=!0,h=new w(3*c),h.set(g),g=h)}g[a]=224|f>>12;g[a=a+1|0]=128|f>>6&63}g[a=a+1|0]=128|f&63}}return t?g.subarray(0,a):g.slice(0,a)};B.encodeInto=A;if(!u)q.TextDecoder=y,q.TextEncoder=z;else if(!(q=u.prototype).encodeInto){var I=new u;q.encodeInto=function(b,c){var g=b.length|0,\nd=c.length|0;if(g<d>>1){var a=I.encode(b);if((a.length|0)<d)return c.set(a),{read:g,written:a.length|0}}return A(b,c)}}})(\"undefined\"==typeof global?\"undefined\"==typeof self?this:self:global);//AnonyCo\n//# sourceMappingURL=https://cdn.jsdelivr.net/gh/AnonyCo/FastestSmallestTextEncoderDecoder/encodeInto/EncoderDecoderTogether.min.js.map\n","let wasm;\n\nconst heap = new Array(128).fill(undefined);\n\nheap.push(undefined, null, true, false);\n\nfunction getObject(idx) { return heap[idx]; }\n\nlet heap_next = heap.length;\n\nfunction dropObject(idx) {\n if (idx < 132) return;\n heap[idx] = heap_next;\n heap_next = idx;\n}\n\nfunction takeObject(idx) {\n const ret = getObject(idx);\n dropObject(idx);\n return ret;\n}\n\nfunction isLikeNone(x) {\n return x === undefined || x === null;\n}\n\nlet cachedDataViewMemory0 = null;\n\nfunction getDataViewMemory0() {\n if (cachedDataViewMemory0 === null || cachedDataViewMemory0.buffer.detached === true || (cachedDataViewMemory0.buffer.detached === undefined && cachedDataViewMemory0.buffer !== wasm.memory.buffer)) {\n cachedDataViewMemory0 = new DataView(wasm.memory.buffer);\n }\n return cachedDataViewMemory0;\n}\n\nfunction addHeapObject(obj) {\n if (heap_next === heap.length) heap.push(heap.length + 1);\n const idx = heap_next;\n heap_next = heap[idx];\n\n heap[idx] = obj;\n return idx;\n}\n\nconst cachedTextDecoder = (typeof TextDecoder !== 'undefined' ? new TextDecoder('utf-8', { ignoreBOM: true, fatal: true }) : { decode: () => { throw Error('TextDecoder not available') } } );\n\nif (typeof TextDecoder !== 'undefined') { cachedTextDecoder.decode(); };\n\nlet cachedUint8ArrayMemory0 = null;\n\nfunction getUint8ArrayMemory0() {\n if (cachedUint8ArrayMemory0 === null || cachedUint8ArrayMemory0.byteLength === 0) {\n cachedUint8ArrayMemory0 = new Uint8Array(wasm.memory.buffer);\n }\n return cachedUint8ArrayMemory0;\n}\n\nfunction getStringFromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return cachedTextDecoder.decode(getUint8ArrayMemory0().subarray(ptr, ptr + len));\n}\n\nlet cachedUint32ArrayMemory0 = null;\n\nfunction getUint32ArrayMemory0() {\n if (cachedUint32ArrayMemory0 === null || cachedUint32ArrayMemory0.byteLength === 0) {\n cachedUint32ArrayMemory0 = new Uint32Array(wasm.memory.buffer);\n }\n return cachedUint32ArrayMemory0;\n}\n\nfunction getArrayU32FromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return getUint32ArrayMemory0().subarray(ptr / 4, ptr / 4 + len);\n}\n\nfunction _assertClass(instance, klass) {\n if (!(instance instanceof klass)) {\n throw new Error(`expected instance of ${klass.name}`);\n }\n return instance.ptr;\n}\n\nlet WASM_VECTOR_LEN = 0;\n\nfunction passArray32ToWasm0(arg, malloc) {\n const ptr = malloc(arg.length * 4, 4) >>> 0;\n getUint32ArrayMemory0().set(arg, ptr / 4);\n WASM_VECTOR_LEN = arg.length;\n return ptr;\n}\n/**\n * WASM wrapper for the Dijkstra flow field function.\n * @param {Uint32Array} start_packed\n * @param {ClockworkCostMatrix} cost_matrix\n * @returns {FlowField}\n */\nexport function js_dijkstra_flow_field(start_packed, cost_matrix) {\n const ptr0 = passArray32ToWasm0(start_packed, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n _assertClass(cost_matrix, ClockworkCostMatrix);\n const ret = wasm.js_dijkstra_flow_field(ptr0, len0, cost_matrix.__wbg_ptr);\n return FlowField.__wrap(ret);\n}\n\nfunction getArrayJsValueFromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n const mem = getDataViewMemory0();\n const result = [];\n for (let i = ptr; i < ptr + 4 * len; i += 4) {\n result.push(takeObject(mem.getUint32(i, true)));\n }\n return result;\n}\n\nfunction passArrayJsValueToWasm0(array, malloc) {\n const ptr = malloc(array.length * 4, 4) >>> 0;\n const mem = getDataViewMemory0();\n for (let i = 0; i < array.length; i++) {\n mem.setUint32(ptr + 4 * i, addHeapObject(array[i]), true);\n }\n WASM_VECTOR_LEN = array.length;\n return ptr;\n}\n/**\n * @param {number} start\n * @param {MonoFlowField} flow_field\n * @returns {Path}\n */\nexport function js_path_to_mono_flow_field_origin(start, flow_field) {\n _assertClass(flow_field, MonoFlowField);\n const ret = wasm.js_path_to_mono_flow_field_origin(start, flow_field.__wbg_ptr);\n return Path.__wrap(ret);\n}\n\n/**\n * WASM wrapper for the Dijkstra distance map function.\n * @param {Uint32Array} start_packed\n * @param {ClockworkCostMatrix} cost_matrix\n * @returns {DistanceMap}\n */\nexport function js_dijkstra_distance_map(start_packed, cost_matrix) {\n const ptr0 = passArray32ToWasm0(start_packed, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n _assertClass(cost_matrix, ClockworkCostMatrix);\n const ret = wasm.js_dijkstra_distance_map(ptr0, len0, cost_matrix.__wbg_ptr);\n return DistanceMap.__wrap(ret);\n}\n\n/**\n * WASM wrapper for the BFS mono flow field function.\n * @param {Uint32Array} start_packed\n * @param {ClockworkCostMatrix} cost_matrix\n * @returns {MonoFlowField}\n */\nexport function js_bfs_mono_flow_field(start_packed, cost_matrix) {\n const ptr0 = passArray32ToWasm0(start_packed, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n _assertClass(cost_matrix, ClockworkCostMatrix);\n const ret = wasm.js_bfs_mono_flow_field(ptr0, len0, cost_matrix.__wbg_ptr);\n return MonoFlowField.__wrap(ret);\n}\n\n/**\n * @param {number} start\n * @param {DistanceMap} distance_map\n * @returns {Path}\n */\nexport function js_path_to_distance_map_origin(start, distance_map) {\n _assertClass(distance_map, DistanceMap);\n const ret = wasm.js_path_to_distance_map_origin(start, distance_map.__wbg_ptr);\n return Path.__wrap(ret);\n}\n\n/**\n * @returns {string}\n */\nexport function version() {\n let deferred1_0;\n let deferred1_1;\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n wasm.version(retptr);\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n deferred1_0 = r0;\n deferred1_1 = r1;\n return getStringFromWasm0(r0, r1);\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);\n }\n}\n\n/**\n * Exports the global range calculation between two positions.\n * @param {number} packed_pos_1\n * @param {number} packed_pos_2\n * @returns {number}\n */\nexport function get_range(packed_pos_1, packed_pos_2) {\n const ret = wasm.get_range(packed_pos_1, packed_pos_2);\n return ret >>> 0;\n}\n\n/**\n * WASM wrapper for the BFS distance map function.\n * @param {Uint32Array} start_packed\n * @param {ClockworkCostMatrix} cost_matrix\n * @returns {DistanceMap}\n */\nexport function js_bfs_distance_map(start_packed, cost_matrix) {\n const ptr0 = passArray32ToWasm0(start_packed, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n _assertClass(cost_matrix, ClockworkCostMatrix);\n const ret = wasm.js_bfs_distance_map(ptr0, len0, cost_matrix.__wbg_ptr);\n return DistanceMap.__wrap(ret);\n}\n\n/**\n * WASM wrapper for the BFS flow field function.\n * @param {Uint32Array} start_packed\n * @param {ClockworkCostMatrix} cost_matrix\n * @returns {FlowField}\n */\nexport function js_bfs_flow_field(start_packed, cost_matrix) {\n const ptr0 = passArray32ToWasm0(start_packed, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n _assertClass(cost_matrix, ClockworkCostMatrix);\n const ret = wasm.js_bfs_flow_field(ptr0, len0, cost_matrix.__wbg_ptr);\n return FlowField.__wrap(ret);\n}\n\n/**\n * WASM wrapper for the Dijkstra mono flow field function.\n * @param {Uint32Array} start_packed\n * @param {ClockworkCostMatrix} cost_matrix\n * @returns {MonoFlowField}\n */\nexport function js_dijkstra_mono_flow_field(start_packed, cost_matrix) {\n const ptr0 = passArray32ToWasm0(start_packed, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n _assertClass(cost_matrix, ClockworkCostMatrix);\n const ret = wasm.js_dijkstra_mono_flow_field(ptr0, len0, cost_matrix.__wbg_ptr);\n return MonoFlowField.__wrap(ret);\n}\n\n/**\n * @param {number} start\n * @param {FlowField} flow_field\n * @returns {Path}\n */\nexport function js_path_to_flow_field_origin(start, flow_field) {\n _assertClass(flow_field, FlowField);\n const ret = wasm.js_path_to_flow_field_origin(start, flow_field.__wbg_ptr);\n return Path.__wrap(ret);\n}\n\nfunction handleError(f, args) {\n try {\n return f.apply(this, args);\n } catch (e) {\n wasm.__wbindgen_exn_store(addHeapObject(e));\n }\n}\n\nfunction notDefined(what) { return () => { throw new Error(`${what} is not defined`); }; }\n/**\n * Translates `COLOR_*` and `COLORS_ALL` constants.\n */\nexport const Color = Object.freeze({ Red:1,\"1\":\"Red\",Purple:2,\"2\":\"Purple\",Blue:3,\"3\":\"Blue\",Cyan:4,\"4\":\"Cyan\",Green:5,\"5\":\"Green\",Yellow:6,\"6\":\"Yellow\",Orange:7,\"7\":\"Orange\",Brown:8,\"8\":\"Brown\",Grey:9,\"9\":\"Grey\",White:10,\"10\":\"White\", });\n/**\n * Translates the `DENSITY_*` constants.\n */\nexport const Density = Object.freeze({ Low:1,\"1\":\"Low\",Moderate:2,\"2\":\"Moderate\",High:3,\"3\":\"High\",Ultra:4,\"4\":\"Ultra\", });\n/**\n * Translates direction constants.\n */\nexport const Direction = Object.freeze({ Top:1,\"1\":\"Top\",TopRight:2,\"2\":\"TopRight\",Right:3,\"3\":\"Right\",BottomRight:4,\"4\":\"BottomRight\",Bottom:5,\"5\":\"Bottom\",BottomLeft:6,\"6\":\"BottomLeft\",Left:7,\"7\":\"Left\",TopLeft:8,\"8\":\"TopLeft\", });\n/**\n * Type used for when the game returns a direction to an exit.\n *\n * Restricted more than `Direction` in that it can't be diagonal. Used as the\n * result of [`Room::find_exit_to`].\n *\n * Can be converted to [`Find`] for immediate use of [`Room::find`]\n * and [`Direction`].\n *\n * [`Room::find`]: crate::objects::Room::find\n * [`Room::find_exit_to`]: crate::objects::Room::find_exit_to\n */\nexport const ExitDirection = Object.freeze({ Top:1,\"1\":\"Top\",Right:3,\"3\":\"Right\",Bottom:5,\"5\":\"Bottom\",Left:7,\"7\":\"Left\", });\n/**\n * Translates `FIND_*` constants for interal API calls\n *\n * Unless you're storing the type of find constant to be used for a call, you\n * likely want the constants which implement the `FindConstant` trait to make\n * calls to find methods.\n *\n * This is hidden from the documentation to avoid confusion due to its narrow\n * use case, but wasm_bindgen requires it remain public.\n */\nexport const Find = Object.freeze({\n/**\n * Find all exit positions at the top of the room\n */\nExitTop:1,\"1\":\"ExitTop\",ExitRight:3,\"3\":\"ExitRight\",ExitBottom:5,\"5\":\"ExitBottom\",ExitLeft:7,\"7\":\"ExitLeft\",Exit:10,\"10\":\"Exit\",Creeps:101,\"101\":\"Creeps\",MyCreeps:102,\"102\":\"MyCreeps\",HostileCreeps:103,\"103\":\"HostileCreeps\",SourcesActive:104,\"104\":\"SourcesActive\",Sources:105,\"105\":\"Sources\",DroppedResources:106,\"106\":\"DroppedResources\",Structures:107,\"107\":\"Structures\",MyStructures:108,\"108\":\"MyStructures\",HostileStructures:109,\"109\":\"HostileStructures\",Flags:110,\"110\":\"Flags\",ConstructionSites:111,\"111\":\"ConstructionSites\",MySpawns:112,\"112\":\"MySpawns\",HostileSpawns:113,\"113\":\"HostileSpawns\",MyConstructionSites:114,\"114\":\"MyConstructionSites\",HostileConstructionSites:115,\"115\":\"HostileConstructionSites\",Minerals:116,\"116\":\"Minerals\",Nukes:117,\"117\":\"Nukes\",Tombstones:118,\"118\":\"Tombstones\",PowerCreeps:119,\"119\":\"PowerCreeps\",MyPowerCreeps:120,\"120\":\"MyPowerCreeps\",HostilePowerCreeps:121,\"121\":\"HostilePowerCreeps\",Deposits:122,\"122\":\"Deposits\",Ruins:123,\"123\":\"Ruins\",ScoreContainers:10011,\"10011\":\"ScoreContainers\",ScoreCollectors:10012,\"10012\":\"ScoreCollectors\",SymbolContainers:10021,\"10021\":\"SymbolContainers\",SymbolDecoders:10022,\"10022\":\"SymbolDecoders\",Reactors:10051,\"10051\":\"Reactors\", });\n/**\n * Translates the `EFFECT_*` constants, which are natural effect types\n */\nexport const NaturalEffectType = Object.freeze({ Invulnerability:1001,\"1001\":\"Invulnerability\",CollapseTimer:1002,\"1002\":\"CollapseTimer\", });\n/**\n * Translates the `PWR_*` constants, which are types of powers used by power\n * creeps\n */\nexport const PowerType = Object.freeze({ GenerateOps:1,\"1\":\"GenerateOps\",OperateSpawn:2,\"2\":\"OperateSpawn\",OperateTower:3,\"3\":\"OperateTower\",OperateStorage:4,\"4\":\"OperateStorage\",OperateLab:5,\"5\":\"OperateLab\",OperateExtension:6,\"6\":\"OperateExtension\",OperateObserver:7,\"7\":\"OperateObserver\",OperateTerminal:8,\"8\":\"OperateTerminal\",DisruptSpawn:9,\"9\":\"DisruptSpawn\",DisruptTower:10,\"10\":\"DisruptTower\",Shield:12,\"12\":\"Shield\",RegenSource:13,\"13\":\"RegenSource\",RegenMineral:14,\"14\":\"RegenMineral\",DisruptTerminal:15,\"15\":\"DisruptTerminal\",OperatePower:16,\"16\":\"OperatePower\",Fortify:17,\"17\":\"Fortify\",OperateController:18,\"18\":\"OperateController\",OperateFactory:19,\"19\":\"OperateFactory\", });\n/**\n * Translates `TERRAIN_*` constants.\n */\nexport const Terrain = Object.freeze({ Plain:0,\"0\":\"Plain\",Wall:1,\"1\":\"Wall\",Swamp:2,\"2\":\"Swamp\", });\n\nconst __wbindgen_enum_IntershardResourceType = [\"cpuUnlock\", \"pixel\", \"accessKey\"];\n\nconst __wbindgen_enum_Look = [\"creep\", \"energy\", \"resource\", \"source\", \"mineral\", \"structure\", \"flag\", \"constructionSite\", \"nuke\", \"terrain\", \"tombstone\", \"powerCreep\", \"deposit\", \"ruin\", \"scoreContainer\", \"scoreCollector\", \"symbolContainer\", \"symbolDecoder\", \"reactor\"];\n\nconst __wbindgen_enum_OrderType = [\"sell\", \"buy\"];\n\nconst __wbindgen_enum_Part = [\"move\", \"work\", \"carry\", \"attack\", \"ranged_attack\", \"tough\", \"heal\", \"claim\"];\n\nconst __wbindgen_enum_PowerCreepClass = [\"operator\"];\n\nconst __wbindgen_enum_ResourceType = [\"energy\", \"power\", \"H\", \"O\", \"U\", \"L\", \"K\", \"Z\", \"X\", \"G\", \"silicon\", \"metal\", \"biomass\", \"mist\", \"OH\", \"ZK\", \"UL\", \"UH\", \"UO\", \"KH\", \"KO\", \"LH\", \"LO\", \"ZH\", \"ZO\", \"GH\", \"GO\", \"UH2O\", \"UHO2\", \"KH2O\", \"KHO2\", \"LH2O\", \"LHO2\", \"ZH2O\", \"ZHO2\", \"GH2O\", \"GHO2\", \"XUH2O\", \"XUHO2\", \"XKH2O\", \"XKHO2\", \"XLH2O\", \"XLHO2\", \"XZH2O\", \"XZHO2\", \"XGH2O\", \"XGHO2\", \"ops\", \"utrium_bar\", \"lemergium_bar\", \"zynthium_bar\", \"keanium_bar\", \"ghodium_melt\", \"oxidant\", \"reductant\", \"purifier\", \"battery\", \"composite\", \"crystal\", \"liquid\", \"wire\", \"switch\", \"transistor\", \"microchip\", \"circuit\", \"device\", \"cell\", \"phlegm\", \"tissue\", \"muscle\", \"organoid\", \"organism\", \"alloy\", \"tube\", \"fixtures\", \"frame\", \"hydraulics\", \"machine\", \"condensate\", \"concentrate\", \"extract\", \"spirit\", \"emanation\", \"essence\", \"score\", \"symbol_aleph\", \"symbol_beth\", \"symbol_gimmel\", \"symbol_daleth\", \"symbol_he\", \"symbol_waw\", \"symbol_zayin\", \"symbol_heth\", \"symbol_teth\", \"symbol_yodh\", \"symbol_kaph\", \"symbol_lamedh\", \"symbol_mem\", \"symbol_nun\", \"symbol_samekh\", \"symbol_ayin\", \"symbol_pe\", \"symbol_tsade\", \"symbol_qoph\", \"symbol_res\", \"symbol_sim\", \"symbol_taw\", \"T\"];\n\nconst __wbindgen_enum_RoomStatus = [\"normal\", \"closed\", \"novice\", \"respawn\"];\n\nconst __wbindgen_enum_StructureType = [\"spawn\", \"extension\", \"road\", \"constructedWall\", \"rampart\", \"keeperLair\", \"portal\", \"controller\", \"link\", \"storage\", \"tower\", \"observer\", \"powerBank\", \"powerSpawn\", \"extractor\", \"lab\", \"terminal\", \"container\", \"nuker\", \"factory\", \"invaderCore\"];\n\nconst ClockworkCostMatrixFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_clockworkcostmatrix_free(ptr >>> 0, 1));\n/**\n * A wrapper around the `LocalCostMatrix` type from the Screeps API.\n * Instances can be passed between WASM and JS as a pointer, using the\n * methods to get and set values, rather than copying the entire matrix.\n */\nexport class ClockworkCostMatrix {\n\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n ClockworkCostMatrixFinalization.unregister(this);\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_clockworkcostmatrix_free(ptr, 0);\n }\n /**\n * Creates a new cost matrix within the WASM module. Optionally, a default value\n * can be provided to initialize all cells in the matrix to that value.\n * @param {number | undefined} [_default]\n */\n constructor(_default) {\n const ret = wasm.clockworkcostmatrix_new(isLikeNone(_default) ? 0xFFFFFF : _default);\n this.__wbg_ptr = ret >>> 0;\n ClockworkCostMatrixFinalization.register(this, this.__wbg_ptr, this);\n return this;\n }\n /**\n * Gets the cost of a given position in the cost matrix.\n * @param {number} x\n * @param {number} y\n * @returns {number}\n */\n get(x, y) {\n const ret = wasm.clockworkcostmatrix_get(this.__wbg_ptr, x, y);\n return ret;\n }\n /**\n * Sets the cost of a given position in the cost matrix.\n * @param {number} x\n * @param {number} y\n * @param {number} value\n */\n set(x, y, value) {\n wasm.clockworkcostmatrix_set(this.__wbg_ptr, x, y, value);\n }\n}\n\nconst DistanceMapFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_distancemap_free(ptr >>> 0, 1));\n/**\n * Maps a distance value onto individual room tile positions.\n */\nexport class DistanceMap {\n\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(DistanceMap.prototype);\n obj.__wbg_ptr = ptr;\n DistanceMapFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n DistanceMapFinalization.unregister(this);\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_distancemap_free(ptr, 0);\n }\n /**\n * Converts the distance map into a flat array of distances.\n * @returns {Uint32Array}\n */\n toArray() {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n wasm.distancemap_toArray(retptr, this.__wbg_ptr);\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n var v1 = getArrayU32FromWasm0(r0, r1).slice();\n wasm.__wbindgen_free(r0, r1 * 4, 4);\n return v1;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n }\n /**\n * Gets the distance value at a given position.\n * @param {number} x\n * @param {number} y\n * @returns {number}\n */\n get(x, y) {\n const ret = wasm.distancemap_get(this.__wbg_ptr, x, y);\n return ret >>> 0;\n }\n /**\n * Sets the distance value at a given position.\n * @param {number} x\n * @param {number} y\n * @param {number} value\n */\n set(x, y, value) {\n wasm.distancemap_set(this.__wbg_ptr, x, y, value);\n }\n}\n\nconst FlowFieldFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_flowfield_free(ptr >>> 0, 1));\n/**\n * A flow field is a 50x50 grid (representing a room), representing viable directions\n * to travel to reach a particular target (or targets). A given tile may have multiple\n * equally valid directions, so we represent this as a bitfield (where each bit in an\n * 8-bit unsigned integer represents a direction that is either viable or not).\n */\nexport class FlowField {\n\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(FlowField.prototype);\n obj.__wbg_ptr = ptr;\n FlowFieldFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n FlowFieldFinalization.unregister(this);\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_flowfield_free(ptr, 0);\n }\n /**\n * Get the internal value for a given coordinate.\n * @param {number} x\n * @param {number} y\n * @returns {number}\n */\n get(x, y) {\n const ret = wasm.flowfield_get(this.__wbg_ptr, x, y);\n return ret;\n }\n /**\n * Set the internal value for a given coordinate.\n * @param {number} x\n * @param {number} y\n * @param {number} value\n */\n set(x, y, value) {\n wasm.flowfield_set(this.__wbg_ptr, x, y, value);\n }\n /**\n * Get the list of valid directions for a given coordinate.\n * @param {number} x\n * @param {number} y\n * @returns {any[]}\n */\n getDirections(x, y) {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n wasm.flowfield_getDirections(retptr, this.__wbg_ptr, x, y);\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n var v1 = getArrayJsValueFromWasm0(r0, r1).slice();\n wasm.__wbindgen_free(r0, r1 * 4, 4);\n return v1;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n }\n /**\n * Set the list of valid directions for a given coordinate.\n * @param {number} x\n * @param {number} y\n * @param {any[]} directions\n */\n setDirections(x, y, directions) {\n const ptr0 = passArrayJsValueToWasm0(directions, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n wasm.flowfield_setDirections(this.__wbg_ptr, x, y, ptr0, len0);\n }\n /**\n * Add a direction to the list of valid directions for a given coordinate.\n * @param {number} x\n * @param {number} y\n * @param {Direction} direction\n */\n addDirection(x, y, direction) {\n wasm.flowfield_addDirection(this.__wbg_ptr, x, y, direction);\n }\n}\n\nconst MonoFlowFieldFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_monoflowfield_free(ptr >>> 0, 1));\n/**\n * A flow field is a 50x50 grid (representing a room), representing viable directions\n * to travel to reach a particular target (or targets). A mono flow field only stores\n * a single direction for each tile, so we represent this as 4 bits of an unsigned\n * integer (0 for no direction, 1 for TOP, etc.).\n */\nexport class MonoFlowField {\n\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(MonoFlowField.prototype);\n obj.__wbg_ptr = ptr;\n MonoFlowFieldFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n MonoFlowFieldFinalization.unregister(this);\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_monoflowfield_free(ptr, 0);\n }\n /**\n * Get the direction for a given coordinate.\n * @param {number} x\n * @param {number} y\n * @returns {Direction | undefined}\n */\n get(x, y) {\n const ret = wasm.monoflowfield_get(this.__wbg_ptr, x, y);\n return ret === 0 ? undefined : ret;\n }\n /**\n * Set the direction for a given coordinate.\n * @param {number} x\n * @param {number} y\n * @param {Direction | undefined} [value]\n */\n set(x, y, value) {\n wasm.monoflowfield_set(this.__wbg_ptr, x, y, isLikeNone(value) ? 0 : value);\n }\n}\n\nconst PathFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_path_free(ptr >>> 0, 1));\n/**\n * A list of positions representing a path.\n */\nexport class Path {\n\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(Path.prototype);\n obj.__wbg_ptr = ptr;\n PathFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n PathFinalization.unregister(this);\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_path_free(ptr, 0);\n }\n /**\n * @param {number} packed_position\n */\n add(packed_position) {\n wasm.path_add(this.__wbg_ptr, packed_position);\n }\n /**\n * @param {number} index\n * @returns {number | undefined}\n */\n get(index) {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n wasm.path_get(retptr, this.__wbg_ptr, index);\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n return r0 === 0 ? undefined : r1 >>> 0;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n }\n /**\n * @returns {number}\n */\n len() {\n const ret = wasm.path_len(this.__wbg_ptr);\n return ret >>> 0;\n }\n /**\n * Given a position, find the index of the next adjacent position\n * in the path. If the position is not in the path, the target is\n * the next adjacent position closest to the end of the path. If\n * the position is neither on nor adjacent to the path, return None.\n * @param {number} packed_position\n * @returns {number | undefined}\n */\n find_next_index(packed_position) {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n wasm.path_find_next_index(retptr, this.__wbg_ptr, packed_position);\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n return r0 === 0 ? undefined : r1 >>> 0;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n }\n /**\n * @returns {Uint32Array}\n */\n to_array() {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n wasm.path_to_array(retptr, this.__wbg_ptr);\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n var v1 = getArrayU32FromWasm0(r0, r1).slice();\n wasm.__wbindgen_free(r0, r1 * 4, 4);\n return v1;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n }\n /**\n * @returns {Uint32Array}\n */\n to_array_reversed() {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n wasm.path_to_array_reversed(retptr, this.__wbg_ptr);\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n var v1 = getArrayU32FromWasm0(r0, r1).slice();\n wasm.__wbindgen_free(r0, r1 * 4, 4);\n return v1;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n }\n}\n\nconst PathFatigueFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_pathfatigue_free(ptr >>> 0, 1));\n/**\n * Tracks fatigue cost for each position in a path. Used to calculate move time\n * for a given creep build.\n */\nexport class PathFatigue {\n\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n PathFatigueFinalization.unregister(this);\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_pathfatigue_free(ptr, 0);\n }\n /**\n * @param {Path} path\n */\n constructor(path) {\n _assertClass(path, Path);\n const ret = wasm.pathfatigue_new(path.__wbg_ptr);\n this.__wbg_ptr = ret >>> 0;\n PathFatigueFinalization.register(this, this.__wbg_ptr, this);\n return this;\n }\n /**\n * Refreshes fatigue cost for each position in the path. If the PathFatigue\n * has not been initialized yet, every position's fatigue cost will be set,\n * even if there is no vision in the room, based on terrain costs. If the\n * list *has* been initialized, only positions with vision will be updated.\n *\n * When there is vision, this also accounts for roads at the position.\n * @param {Path} path\n */\n refresh(path) {\n _assertClass(path, Path);\n wasm.pathfatigue_refresh(this.__wbg_ptr, path.__wbg_ptr);\n }\n /**\n * @returns {number}\n */\n len() {\n const ret = wasm.path_len(this.__wbg_ptr);\n return ret >>> 0;\n }\n /**\n * Calculates the total move time for the path, given a fatigue ratio.\n *\n * For unboosted creeps, the ratio is `Math.floor(moveParts * 2 / fatigueParts)`\n * where `fatigue_parts` are any part except MOVE and empty CARRY parts.\n * @param {number} fatigue_ratio\n * @returns {number}\n */\n moveTime(fatigue_ratio) {\n const ret = wasm.pathfatigue_moveTime(this.__wbg_ptr, fatigue_ratio);\n return ret >>> 0;\n }\n}\n\nconst SearchGoalFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_searchgoal_free(ptr >>> 0, 1));\n\nexport class SearchGoal {\n\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n SearchGoalFinalization.unregister(this);\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_searchgoal_free(ptr, 0);\n }\n /**\n * @returns {any}\n */\n get pos() {\n const ret = wasm.searchgoal_pos(this.__wbg_ptr);\n return takeObject(ret);\n }\n /**\n * @returns {number}\n */\n get range() {\n const ret = wasm.searchgoal_range(this.__wbg_ptr);\n return ret >>> 0;\n }\n}\n\nasync function __wbg_load(module, imports) {\n if (typeof Response === 'function' && module instanceof Response) {\n if (typeof WebAssembly.instantiateStreaming === 'function') {\n try {\n return await WebAssembly.instantiateStreaming(module, imports);\n\n } catch (e) {\n if (module.headers.get('Content-Type') != 'application/wasm') {\n console.warn(\"`WebAssembly.instantiateStreaming` failed because your server does not serve Wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\\n\", e);\n\n } else {\n throw e;\n }\n }\n }\n\n const bytes = await module.arrayBuffer();\n return await WebAssembly.instantiate(bytes, imports);\n\n } else {\n const instance = await WebAssembly.instantiate(module, imports);\n\n if (instance instanceof WebAssembly.Instance) {\n return { instance, module };\n\n } else {\n return instance;\n }\n }\n}\n\nfunction __wbg_get_imports() {\n const imports = {};\n imports.wbg = {};\n imports.wbg.__wbindgen_object_drop_ref = function(arg0) {\n takeObject(arg0);\n };\n imports.wbg.__wbindgen_is_null = function(arg0) {\n const ret = getObject(arg0) === null;\n return ret;\n };\n imports.wbg.__wbindgen_is_undefined = function(arg0) {\n const ret = getObject(arg0) === undefined;\n return ret;\n };\n imports.wbg.__wbindgen_number_get = function(arg0, arg1) {\n const obj = getObject(arg1);\n const ret = typeof(obj) === 'number' ? obj : undefined;\n getDataViewMemory0().setFloat64(arg0 + 8 * 1, isLikeNone(ret) ? 0 : ret, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, !isLikeNone(ret), true);\n };\n imports.wbg.__wbindgen_number_new = function(arg0) {\n const ret = arg0;\n return addHeapObject(ret);\n };\n imports.wbg.__wbindgen_try_into_number = function(arg0) {\n let result;\n try { result = +getObject(arg0) } catch (e) { result = e }\n const ret = result;\n return addHeapObject(ret);\n};\nimports.wbg.__wbindgen_string_new = function(arg0, arg1) {\n const ret = getStringFromWasm0(arg0, arg1);\n return addHeapObject(ret);\n};\nimports.wbg.__wbg_setpacked_e36387710a3ff5bb = function(arg0, arg1) {\n getObject(arg0).__packedPos = arg1 >>> 0;\n};\nimports.wbg.__wbg_getvalue_b80bdd3552834f00 = function(arg0, arg1) {\n const ret = getObject(arg0)[getObject(arg1)];\n return addHeapObject(ret);\n};\nimports.wbg.__wbg_getRoomTerrain_de7e854c5bcae92b = function() { return handleError(function (arg0) {\n const ret = Game.map.getRoomTerrain(getObject(arg0));\n return addHeapObject(ret);\n}, arguments) };\nimports.wbg.__wbg_lookFor_649f089b6bfdb0c7 = function() { return handleError(function (arg0, arg1) {\n const ret = getObject(arg0).lookFor(__wbindgen_enum_Look[arg1]);\n return isLikeNone(ret) ? 0 : addHeapObject(ret);\n}, arguments) };\nimports.wbg.__wbg_rooms_8265844828084f14 = function() {\n const ret = Game.rooms;\n return addHeapObject(ret);\n};\nimports.wbg.__wbg_static_accessor_ROOM_POSITION_PROTOTYPE_359d8a1531b99b4c = function() {\n const ret = RoomPosition.prototype;\n return addHeapObject(ret);\n};\nimports.wbg.__wbg_structuretype_f649797e27122f54 = function(arg0) {\n const ret = getObject(arg0).structureType;\n return (__wbindgen_enum_StructureType.indexOf(ret) + 1 || 22) - 1;\n};\nimports.wbg.__wbg_get_ac6072ecac1ab4ec = function(arg0, arg1, arg2) {\n const ret = getObject(arg0).get(arg1, arg2);\n return ret;\n};\nimports.wbg.__wbg_get_5419cf6b954aa11d = function(arg0, arg1) {\n const ret = getObject(arg0)[arg1 >>> 0];\n return addHeapObject(ret);\n};\nimports.wbg.__wbg_length_f217bbbf7e8e4df4 = function(arg0) {\n const ret = getObject(arg0).length;\n return ret;\n};\nimports.wbg.__wbg_create_70ef5302cb22a5c4 = function(arg0) {\n const ret = Object.create(getObject(arg0));\n return addHeapObject(ret);\n};\nimports.wbg.__wbg_ceil_f6b5b24722eb28de = typeof Math.ceil == 'function' ? Math.ceil : notDefined('Math.ceil');\nimports.wbg.__wbindgen_throw = function(arg0, arg1) {\n throw new Error(getStringFromWasm0(arg0, arg1));\n};\n\nreturn imports;\n}\n\nfunction __wbg_init_memory(imports, memory) {\n\n}\n\nfunction __wbg_finalize_init(instance, module) {\n wasm = instance.exports;\n __wbg_init.__wbindgen_wasm_module = module;\n cachedDataViewMemory0 = null;\n cachedUint32ArrayMemory0 = null;\n cachedUint8ArrayMemory0 = null;\n\n\n\n return wasm;\n}\n\nfunction initSync(module) {\n if (wasm !== undefined) return wasm;\n\n\n if (typeof module !== 'undefined') {\n if (Object.getPrototypeOf(module) === Object.prototype) {\n ({module} = module)\n } else {\n console.warn('using deprecated parameters for `initSync()`; pass a single object instead')\n }\n }\n\n const imports = __wbg_get_imports();\n\n __wbg_init_memory(imports);\n\n if (!(module instanceof WebAssembly.Module)) {\n module = new WebAssembly.Module(module);\n }\n\n const instance = new WebAssembly.Instance(module, imports);\n\n return __wbg_finalize_init(instance, module);\n}\n\nasync function __wbg_init(module_or_path) {\n if (wasm !== undefined) return wasm;\n\n\n if (typeof module_or_path !== 'undefined') {\n if (Object.getPrototypeOf(module_or_path) === Object.prototype) {\n ({module_or_path} = module_or_path)\n } else {\n console.warn('using deprecated parameters for the initialization function; pass a single object instead')\n }\n }\n\n if (typeof module_or_path === 'undefined') {\n module_or_path = new URL('screeps_clockwork_bg.wasm', import.meta.url);\n }\n const imports = __wbg_get_imports();\n\n if (typeof module_or_path === 'string' || (typeof Request === 'function' && module_or_path instanceof Request) || (typeof URL === 'function' && module_or_path instanceof URL)) {\n module_or_path = fetch(module_or_path);\n }\n\n __wbg_init_memory(imports);\n\n const { instance, module } = await __wbg_load(await module_or_path, imports);\n\n return __wbg_finalize_init(instance, module);\n}\n\nexport { initSync };\nexport default __wbg_init;\n","import { ClockworkCostMatrix, js_bfs_distance_map } from '../wasm/screeps_clockwork';\n\n/**\n * Generate a [distance map](https://glitchassassin.github.io/screeps-clockwork/primitives/flowfield.html) for a set of positions\n * using a breadth-first search algorithm.\n *\n * The BFS algorithm doesn't include variable costs, and only considers\n * values of 255 (impassible) in the provided cost matrix. Any other\n * values are ignored.\n *\n * This might be useful for creeps with only MOVE parts and/or empty\n * CARRY parts, which don't generate fatigue.\n *\n * Note that the `roomName` on start positions is ignored - all positions\n * are assumed to be in the same room as the cost matrix.\n *\n * @param start - The starting positions.\n * @param costMatrix - The cost matrix to use for the flow field.\n * @returns The flow field.\n */\nexport function bfsDistanceMap(start: RoomPosition[], costMatrix: ClockworkCostMatrix) {\n const startPacked = new Uint32Array(start.map(pos => pos.__packedPos));\n const result = js_bfs_distance_map(startPacked, costMatrix);\n return result;\n}\n","import { ClockworkCostMatrix, js_bfs_flow_field, js_bfs_mono_flow_field } from '../wasm/screeps_clockwork';\n\n/**\n * Generate a [flow field](https://glitchassassin.github.io/screeps-clockwork/primitives/flowfield.html) for a set of positions\n * using a breadth-first search algorithm.\n *\n * The BFS algorithm doesn't include variable costs, and only considers\n * values of 255 (impassible) in the provided cost matrix. Any other\n * values are ignored.\n *\n * This might be useful for creeps with only MOVE parts and/or empty\n * CARRY parts, which don't generate fatigue.\n *\n * @param start - The starting positions.\n * @param costMatrix - The cost matrix to use for the flow field.\n * @returns The flow field.\n */\nexport function bfsFlowField(start: RoomPosition[], costMatrix: ClockworkCostMatrix) {\n const startPacked = new Uint32Array(start.map(pos => pos.__packedPos));\n const result = js_bfs_flow_field(startPacked, costMatrix);\n return result;\n}\n\n/**\n * Generate a [mono-directional flow field](https://glitchassassin.github.io/screeps-clockwork/primitives/flowfield.html)\n * for a set of positions using a breadth-first search algorithm.\n *\n * The BFS algorithm doesn't include variable costs, and only considers\n * values of 255 (impassible) in the provided cost matrix. Any other\n * values are ignored.\n *\n * This might be useful for creeps with only MOVE parts and/or empty\n * CARRY parts, which don't generate fatigue.\n *\n * Note that the `roomName` on start positions is ignored - all positions\n * are assumed to be in the same room as the cost matrix.\n *\n * @param start - The starting positions.\n * @param costMatrix - The cost matrix to use for the flow field.\n * @returns The flow field.\n */\nexport function bfsMonoFlowField(start: RoomPosition[], costMatrix: ClockworkCostMatrix) {\n const startPacked = new Uint32Array(start.map(pos => pos.__packedPos));\n const result = js_bfs_mono_flow_field(startPacked, costMatrix);\n return result;\n}\n","import { ClockworkCostMatrix, js_dijkstra_distance_map } from '../wasm/screeps_clockwork';\n\n/**\n * Generate a [distance map](https://glitchassassin.github.io/screeps-clockwork/primitives/flowfield.html) for a set of positions\n * using Dijkstra's algorithm.\n *\n * Dijkstra's algorithm includes variable costs to account for terrain or other cost functions.\n *\n * Note that values of 0 in the cost matrix may have unexpected behavior. You probably want\n * a cost matrix with a default value of at least 1.\n *\n * Note that the `roomName` on start positions is ignored - all positions\n * are assumed to be in the same room as the cost matrix.\n *\n * @param start - The starting positions.\n * @param costMatrix - The cost matrix to use for the flow field.\n * @returns The flow field.\n */\nexport function dijkstraDistanceMap(start: RoomPosition[], costMatrix: ClockworkCostMatrix) {\n const startPacked = new Uint32Array(start.map(pos => pos.__packedPos));\n const result = js_dijkstra_distance_map(startPacked, costMatrix);\n return result;\n}\n","import { ClockworkCostMatrix, js_dijkstra_flow_field, js_dijkstra_mono_flow_field } from '../wasm/screeps_clockwork';\n\n/**\n * Generate a [flow field](https://glitchassassin.github.io/screeps-clockwork/primitives/flowfield.html) for a set of positions\n * using Dijkstra's algorithm.\n *\n * Dijkstra's algorithm includes variable costs to account for terrain or other cost functions.\n *\n * Note that values of 0 in the cost matrix may have unexpected behavior. You probably want\n * a cost matrix with a default value of at least 1.\n *\n * @param start - The starting positions.\n * @param costMatrix - The cost matrix to use for the flow field.\n * @returns The flow field.\n */\nexport function dijkstraFlowField(start: RoomPosition[], costMatrix: ClockworkCostMatrix) {\n const startPacked = new Uint32Array(start.map(pos => pos.__packedPos));\n const result = js_dijkstra_flow_field(startPacked, costMatrix);\n return result;\n}\n\n/**\n * Generate a [mono-directional flow field](https://glitchassassin.github.io/screeps-clockwork/primitives/flowfield.html)\n * for a set of positions using Dijkstra's algorithm.\n *\n * Dijkstra's algorithm includes variable costs to account for terrain or other cost functions.\n *\n * Note that values of 0 in the cost matrix may have unexpected behavior. You probably want\n * a cost matrix with a default value of at least 1.\n *\n * Note that the `roomName` on start positions is ignored - all positions\n * are assumed to be in the same room as the cost matrix.\n *\n * @param start - The starting positions.\n * @param costMatrix - The cost matrix to use for the flow field.\n * @returns The flow field.\n */\nexport function dijkstraMonoFlowField(start: RoomPosition[], costMatrix: ClockworkCostMatrix) {\n const startPacked = new Uint32Array(start.map(pos => pos.__packedPos));\n const result = js_dijkstra_mono_flow_field(startPacked, costMatrix);\n return result;\n}\n","import { get_range } from '../wasm/screeps_clockwork';\n\n/**\n * Get the global range between two positions. This is different\n * from the `getRange` method on `RoomPosition`, which gets the\n * range only within the same room.\n *\n * @param pos1 - The first position.\n * @param pos2 - The second position.\n * @returns The range between the two positions.\n */\nexport function getRange(pos1: RoomPosition, pos2: RoomPosition) {\n return get_range(pos1.__packedPos, pos2.__packedPos);\n}\n","export function fromPacked(packedPos: number): RoomPosition {\n const pos = Object.create(RoomPosition.prototype);\n pos.__packedPos = packedPos;\n return pos;\n}\n","import { fromPacked } from '../utils/fromPacked';\nimport { Path as ClockworkPath } from '../wasm/screeps_clockwork';\n\nexport class Path {\n constructor(private readonly path: ClockworkPath) {}\n\n [Symbol.iterator]() {\n let index = 0;\n const length = this.length;\n\n return {\n next: () => {\n if (index < length - 1) {\n return { value: this.get(index++), done: false };\n } else {\n return { value: this.get(index++), done: true };\n }\n }\n };\n }\n\n /**\n * Iterate over the path in reverse order\n */\n *reversed() {\n let index = this.length - 1;\n\n return {\n next: () => {\n if (index > 0) {\n return { value: this.get(index--), done: false };\n } else {\n return { value: this.get(index--), done: true };\n }\n }\n };\n }\n\n get(index: number) {\n const packedPos = this.path.get(index);\n if (packedPos === undefined) {\n throw new Error('Index out of bounds');\n }\n return fromPacked(packedPos);\n }\n\n get length() {\n return this.path.len();\n }\n\n findNextIndex(index: number) {\n return this.path.find_next_index(index);\n }\n\n toArray() {\n const result: RoomPosition[] = [];\n for (const packedPos of this.path.to_array()) {\n result.push(fromPacked(packedPos));\n }\n return result;\n }\n\n toArrayReversed() {\n const result: RoomPosition[] = [];\n for (const packedPos of this.path.to_array_reversed()) {\n result.push(fromPacked(packedPos));\n }\n return result;\n }\n\n free() {\n this.path.free();\n }\n}\n","import { DistanceMap, js_path_to_distance_map_origin } from '../wasm/screeps_clockwork';\nimport { Path } from './path';\nexport function pathToDistanceMapOrigin(start: RoomPosition, distanceMap: DistanceMap): Path {\n return new Path(js_path_to_distance_map_origin(start.__packedPos, distanceMap));\n}\n","import { FlowField, js_path_to_flow_field_origin } from '../wasm/screeps_clockwork';\nimport { Path } from './path';\n\nexport function pathToFlowFieldOrigin(start: RoomPosition, flowField: FlowField): Path {\n return new Path(js_path_to_flow_field_origin(start.__packedPos, flowField));\n}\n","import { MonoFlowField, js_path_to_mono_flow_field_origin } from '../wasm/screeps_clockwork';\nimport { Path } from './path';\n\nexport function pathToMonoFlowFieldOrigin(start: RoomPosition, flowField: MonoFlowField): Path {\n return new Path(js_path_to_mono_flow_field_origin(start.__packedPos, flowField));\n}\n","import 'fastestsmallesttextencoderdecoder-encodeinto/EncoderDecoderTogether.min.js';\n\nimport {\n type InitOutput,\n ClockworkCostMatrix,\n DistanceMap,\n FlowField,\n MonoFlowField,\n initSync,\n version\n} from './wasm/screeps_clockwork';\nexport { ClockworkCostMatrix, DistanceMap, FlowField, MonoFlowField };\n\nexport * from './wrappers/bfsDistanceMap';\nexport * from './wrappers/bfsFlowField';\nexport * from './wrappers/dijkstraDistanceMap';\nexport * from './wrappers/dijkstraFlowField';\nexport * from './wrappers/getRange';\nexport * from './wrappers/path';\nexport * from './wrappers/pathtoDistanceMapOrigin';\nexport * from './wrappers/pathtoFlowFieldOrigin';\nexport * from './wrappers/pathtoMonoFlowFieldOrigin';\n\ndeclare namespace WebAssembly {\n class Module {\n constructor(bytes: Uint8Array);\n }\n}\n\nlet wasm_bytes: Uint8Array;\nlet wasm_module: WebAssembly.Module;\nlet wasm_instance: InitOutput;\nlet initialized = false;\n/**\n * The `initialize` function should be called in your main loop before\n * using any other screeps-clockwork functions. Depending on available\n * CPU, it may not load the WASM module completely in the first tick,\n * but it will pick back up where it left off if the script times out.\n *\n * @param verbose - If true, will log the state of the WASM module as it loads.\n */\nexport function initialize(verbose = false) {\n if (!wasm_bytes) wasm_bytes = require('screeps_clockwork.wasm');\n if (verbose && !initialized) console.log('[clockwork] wasm_bytes loaded');\n if (!wasm_module) wasm_module = new WebAssembly.Module(wasm_bytes);\n if (verbose && !initialized) console.log('[clockwork] wasm_module loaded');\n if (!wasm_instance) wasm_instance = initSync({ module: wasm_module });\n if (verbose && !initialized) {\n console.log('[clockwork] wasm_instance loaded');\n console.log(`[clockwork] version ${version()} initialized`);\n }\n initialized = true;\n}\n"],"names":["global","this","Path"],"mappings":"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,CAAC,GAAG,CAAC,EAAE,CAAC;AACnf,CAAA,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACtf,CAAA,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GA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"}
1
+ {"version":3,"file":"index.js","sources":["../node_modules/fastestsmallesttextencoderdecoder-encodeinto/EncoderDecoderTogether.min.js","../src/wasm/snippets/screeps-clockwork-0c898bceac5fd1d1/inline0.js","../src/wasm/screeps_clockwork.js","../../src/utils/constants.ts","../../src/utils/fromPacked.ts","../../src/wrappers/path.ts","../../src/wrappers/distanceMap.ts","../../src/wrappers/multiroomDistanceMap.ts","../../src/wrappers/bfsDistanceMap.ts","../../src/wrappers/flowField.ts","../../src/wrappers/monoFlowField.ts","../../src/wrappers/multiroomFlowField.ts","../../src/wrappers/multiroomMonoFlowField.ts","../../src/wrappers/bfsFlowField.ts","../../src/wrappers/dijkstraDistanceMap.ts","../../src/wrappers/dijkstraFlowField.ts","../../src/wrappers/getRange.ts","../../src/index.ts"],"sourcesContent":["'use strict';(function(q){function y(){}function C(b){var c=b.charCodeAt(0)|0;if(55296<=c)if(56319>=c)if(b=b.charCodeAt(1)|0,56320<=b&&57343>=b){if(c=(c<<10)+b-56613888|0,65535<c)return v(240|c>>18,128|c>>12&63,128|c>>6&63,128|c&63)}else c=65533;else 57343>=c&&(c=65533);return 2047>=c?v(192|c>>6,128|c&63):v(224|c>>12,128|c>>6&63,128|c&63)}function z(){}function A(b,c){var g=void 0===b?\"\":(\"\"+b).replace(D,C),d=g.length|0,a=0,k=0,f=c.length|0,h=b.length|0;f<d&&(d=f);a:for(;a<d;a=a+1|0){b=g.charCodeAt(a)|\n0;switch(b>>4){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:k=k+1|0;case 8:case 9:case 10:case 11:break;case 12:case 13:if((a+1|0)<f){k=k+1|0;break}case 14:if((a+2|0)<f){k=k+1|0;break}case 15:if((a+3|0)<f){k=k+1|0;break}default:break a}c[a]=b}return{written:a,read:h<k?h:k}}var v=String.fromCharCode,x={}.toString,E=x.call(q.SharedArrayBuffer),F=x(),t=q.Uint8Array,w=t||Array,u=t?ArrayBuffer:w,G=u.isView||function(b){return b&&\"length\"in b},H=x.call(u.prototype),B=z.prototype;u=q.TextEncoder;\nvar D=/[\\x80-\\uD7ff\\uDC00-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]?/g,e=new (t?Uint16Array:w)(32);y.prototype.decode=function(b){if(!G(b)){var c=x.call(b);if(c!==H&&c!==E&&c!==F)throw TypeError(\"Failed to execute 'decode' on 'TextDecoder': The provided value is not of type '(ArrayBuffer or ArrayBufferView)'\");b=t?new w(b):b||[]}for(var g=c=\"\",d=0,a=b.length|0,k=a-32|0,f,h,l=0,r=0,n,m=0,p=-1;d<a;){for(f=d<=k?32:a-d|0;m<f;d=d+1|0,m=m+1|0){h=b[d]&255;switch(h>>4){case 15:n=b[d=d+1|0]&255;if(2!==n>>6||\n247<h){d=d-1|0;break}l=(h&7)<<6|n&63;r=5;h=256;case 14:n=b[d=d+1|0]&255,l<<=6,l|=(h&15)<<6|n&63,r=2===n>>6?r+4|0:24,h=h+256&768;case 13:case 12:n=b[d=d+1|0]&255,l<<=6,l|=(h&31)<<6|n&63,r=r+7|0,d<a&&2===n>>6&&l>>r&&1114112>l?(h=l,l=l-65536|0,0<=l&&(p=(l>>10)+55296|0,h=(l&1023)+56320|0,31>m?(e[m]=p,m=m+1|0,p=-1):(n=p,p=h,h=n))):(h>>=8,d=d-h-1|0,h=65533),l=r=0,f=d<=k?32:a-d|0;default:e[m]=h;continue;case 11:case 10:case 9:case 8:}e[m]=65533}g+=v(e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8],e[9],e[10],\ne[11],e[12],e[13],e[14],e[15],e[16],e[17],e[18],e[19],e[20],e[21],e[22],e[23],e[24],e[25],e[26],e[27],e[28],e[29],e[30],e[31]);32>m&&(g=g.slice(0,m-32|0));if(d<a){if(e[0]=p,m=~p>>>31,p=-1,g.length<c.length)continue}else-1!==p&&(g+=v(p));c+=g;g=\"\"}return c};B.encode=function(b){b=void 0===b?\"\":\"\"+b;var c=b.length|0,g=new w((c<<1)+8|0),d,a=0,k=!t;for(d=0;d<c;d=d+1|0,a=a+1|0){var f=b.charCodeAt(d)|0;if(127>=f)g[a]=f;else{if(2047>=f)g[a]=192|f>>6;else{a:{if(55296<=f)if(56319>=f){var h=b.charCodeAt(d=\nd+1|0)|0;if(56320<=h&&57343>=h){f=(f<<10)+h-56613888|0;if(65535<f){g[a]=240|f>>18;g[a=a+1|0]=128|f>>12&63;g[a=a+1|0]=128|f>>6&63;g[a=a+1|0]=128|f&63;continue}break a}f=65533}else 57343>=f&&(f=65533);!k&&d<<1<a&&d<<1<(a-7|0)&&(k=!0,h=new w(3*c),h.set(g),g=h)}g[a]=224|f>>12;g[a=a+1|0]=128|f>>6&63}g[a=a+1|0]=128|f&63}}return t?g.subarray(0,a):g.slice(0,a)};B.encodeInto=A;if(!u)q.TextDecoder=y,q.TextEncoder=z;else if(!(q=u.prototype).encodeInto){var I=new u;q.encodeInto=function(b,c){var g=b.length|0,\nd=c.length|0;if(g<d>>1){var a=I.encode(b);if((a.length|0)<d)return c.set(a),{read:g,written:a.length|0}}return A(b,c)}}})(\"undefined\"==typeof global?\"undefined\"==typeof self?this:self:global);//AnonyCo\n//# sourceMappingURL=https://cdn.jsdelivr.net/gh/AnonyCo/FastestSmallestTextEncoderDecoder/encodeInto/EncoderDecoderTogether.min.js.map\n","\n export function clockworkcostmatrix_get_pointer(value) {\n if (!value || \n typeof value !== 'object' || \n !('__wbg_ptr' in value) ||\n value.constructor.name !== 'ClockworkCostMatrix') {\n return 0;\n }\n return value.__wbg_ptr;\n }\n","import { clockworkcostmatrix_get_pointer } from './snippets/screeps-clockwork-0c898bceac5fd1d1/inline0.js';\n\nlet wasm;\n\nconst heap = new Array(128).fill(undefined);\n\nheap.push(undefined, null, true, false);\n\nfunction getObject(idx) { return heap[idx]; }\n\nlet heap_next = heap.length;\n\nfunction addHeapObject(obj) {\n if (heap_next === heap.length) heap.push(heap.length + 1);\n const idx = heap_next;\n heap_next = heap[idx];\n\n heap[idx] = obj;\n return idx;\n}\n\nfunction handleError(f, args) {\n try {\n return f.apply(this, args);\n } catch (e) {\n wasm.__wbindgen_exn_store(addHeapObject(e));\n }\n}\n\nfunction dropObject(idx) {\n if (idx < 132) return;\n heap[idx] = heap_next;\n heap_next = idx;\n}\n\nfunction takeObject(idx) {\n const ret = getObject(idx);\n dropObject(idx);\n return ret;\n}\n\nconst cachedTextDecoder = (typeof TextDecoder !== 'undefined' ? new TextDecoder('utf-8', { ignoreBOM: true, fatal: true }) : { decode: () => { throw Error('TextDecoder not available') } } );\n\nif (typeof TextDecoder !== 'undefined') { cachedTextDecoder.decode(); };\n\nlet cachedUint8ArrayMemory0 = null;\n\nfunction getUint8ArrayMemory0() {\n if (cachedUint8ArrayMemory0 === null || cachedUint8ArrayMemory0.byteLength === 0) {\n cachedUint8ArrayMemory0 = new Uint8Array(wasm.memory.buffer);\n }\n return cachedUint8ArrayMemory0;\n}\n\nfunction getStringFromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return cachedTextDecoder.decode(getUint8ArrayMemory0().subarray(ptr, ptr + len));\n}\n\nfunction isLikeNone(x) {\n return x === undefined || x === null;\n}\n\nlet WASM_VECTOR_LEN = 0;\n\nconst cachedTextEncoder = (typeof TextEncoder !== 'undefined' ? new TextEncoder('utf-8') : { encode: () => { throw Error('TextEncoder not available') } } );\n\nconst encodeString = (typeof cachedTextEncoder.encodeInto === 'function'\n ? function (arg, view) {\n return cachedTextEncoder.encodeInto(arg, view);\n}\n : function (arg, view) {\n const buf = cachedTextEncoder.encode(arg);\n view.set(buf);\n return {\n read: arg.length,\n written: buf.length\n };\n});\n\nfunction passStringToWasm0(arg, malloc, realloc) {\n\n if (realloc === undefined) {\n const buf = cachedTextEncoder.encode(arg);\n const ptr = malloc(buf.length, 1) >>> 0;\n getUint8ArrayMemory0().subarray(ptr, ptr + buf.length).set(buf);\n WASM_VECTOR_LEN = buf.length;\n return ptr;\n }\n\n let len = arg.length;\n let ptr = malloc(len, 1) >>> 0;\n\n const mem = getUint8ArrayMemory0();\n\n let offset = 0;\n\n for (; offset < len; offset++) {\n const code = arg.charCodeAt(offset);\n if (code > 0x7F) break;\n mem[ptr + offset] = code;\n }\n\n if (offset !== len) {\n if (offset !== 0) {\n arg = arg.slice(offset);\n }\n ptr = realloc(ptr, len, len = offset + arg.length * 3, 1) >>> 0;\n const view = getUint8ArrayMemory0().subarray(ptr + offset, ptr + len);\n const ret = encodeString(arg, view);\n\n offset += ret.written;\n ptr = realloc(ptr, len, offset, 1) >>> 0;\n }\n\n WASM_VECTOR_LEN = offset;\n return ptr;\n}\n\nlet cachedDataViewMemory0 = null;\n\nfunction getDataViewMemory0() {\n if (cachedDataViewMemory0 === null || cachedDataViewMemory0.buffer.detached === true || (cachedDataViewMemory0.buffer.detached === undefined && cachedDataViewMemory0.buffer !== wasm.memory.buffer)) {\n cachedDataViewMemory0 = new DataView(wasm.memory.buffer);\n }\n return cachedDataViewMemory0;\n}\n\nlet cachedUint32ArrayMemory0 = null;\n\nfunction getUint32ArrayMemory0() {\n if (cachedUint32ArrayMemory0 === null || cachedUint32ArrayMemory0.byteLength === 0) {\n cachedUint32ArrayMemory0 = new Uint32Array(wasm.memory.buffer);\n }\n return cachedUint32ArrayMemory0;\n}\n\nfunction passArray32ToWasm0(arg, malloc) {\n const ptr = malloc(arg.length * 4, 4) >>> 0;\n getUint32ArrayMemory0().set(arg, ptr / 4);\n WASM_VECTOR_LEN = arg.length;\n return ptr;\n}\n\nlet stack_pointer = 128;\n\nfunction addBorrowedObject(obj) {\n if (stack_pointer == 1) throw new Error('out of js stack');\n heap[--stack_pointer] = obj;\n return stack_pointer;\n}\n/**\n * WASM wrapper for the BFS multiroom flow field function.\n * @param {Uint32Array} start_packed\n * @param {Function} get_cost_matrix\n * @param {number} max_tiles\n * @param {number} max_rooms\n * @param {number} max_room_distance\n * @param {number} max_tile_distance\n * @returns {MultiroomFlowField}\n */\nexport function js_bfs_multiroom_flow_field(start_packed, get_cost_matrix, max_tiles, max_rooms, max_room_distance, max_tile_distance) {\n try {\n const ptr0 = passArray32ToWasm0(start_packed, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.js_bfs_multiroom_flow_field(ptr0, len0, addBorrowedObject(get_cost_matrix), max_tiles, max_rooms, max_room_distance, max_tile_distance);\n return MultiroomFlowField.__wrap(ret);\n } finally {\n heap[stack_pointer++] = undefined;\n }\n}\n\nfunction _assertClass(instance, klass) {\n if (!(instance instanceof klass)) {\n throw new Error(`expected instance of ${klass.name}`);\n }\n}\n/**\n * WASM wrapper for the Dijkstra distance map function.\n * @param {Uint32Array} start_packed\n * @param {ClockworkCostMatrix} cost_matrix\n * @returns {DistanceMap}\n */\nexport function js_dijkstra_distance_map(start_packed, cost_matrix) {\n const ptr0 = passArray32ToWasm0(start_packed, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n _assertClass(cost_matrix, ClockworkCostMatrix);\n const ret = wasm.js_dijkstra_distance_map(ptr0, len0, cost_matrix.__wbg_ptr);\n return DistanceMap.__wrap(ret);\n}\n\n/**\n * @param {number} start\n * @param {FlowField} flow_field\n * @returns {Path}\n */\nexport function js_path_to_flow_field_origin(start, flow_field) {\n _assertClass(flow_field, FlowField);\n const ret = wasm.js_path_to_flow_field_origin(start, flow_field.__wbg_ptr);\n return Path.__wrap(ret);\n}\n\nfunction getArrayJsValueFromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n const mem = getDataViewMemory0();\n const result = [];\n for (let i = ptr; i < ptr + 4 * len; i += 4) {\n result.push(takeObject(mem.getUint32(i, true)));\n }\n return result;\n}\n\nfunction passArrayJsValueToWasm0(array, malloc) {\n const ptr = malloc(array.length * 4, 4) >>> 0;\n const mem = getDataViewMemory0();\n for (let i = 0; i < array.length; i++) {\n mem.setUint32(ptr + 4 * i, addHeapObject(array[i]), true);\n }\n WASM_VECTOR_LEN = array.length;\n return ptr;\n}\n/**\n * WASM wrapper for the BFS distance map function.\n * @param {Uint32Array} start_packed\n * @param {ClockworkCostMatrix} cost_matrix\n * @returns {DistanceMap}\n */\nexport function js_bfs_distance_map(start_packed, cost_matrix) {\n const ptr0 = passArray32ToWasm0(start_packed, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n _assertClass(cost_matrix, ClockworkCostMatrix);\n const ret = wasm.js_bfs_distance_map(ptr0, len0, cost_matrix.__wbg_ptr);\n return DistanceMap.__wrap(ret);\n}\n\n/**\n * @param {Uint32Array} start_packed\n * @param {Function} get_cost_matrix\n * @param {number} max_tiles\n * @param {number} max_rooms\n * @param {number} max_room_distance\n * @param {number} max_tile_distance\n * @returns {MultiroomDistanceMap}\n */\nexport function js_dijkstra_multiroom_distance_map(start_packed, get_cost_matrix, max_tiles, max_rooms, max_room_distance, max_tile_distance) {\n try {\n const ptr0 = passArray32ToWasm0(start_packed, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.js_dijkstra_multiroom_distance_map(ptr0, len0, addBorrowedObject(get_cost_matrix), max_tiles, max_rooms, max_room_distance, max_tile_distance);\n return MultiroomDistanceMap.__wrap(ret);\n } finally {\n heap[stack_pointer++] = undefined;\n }\n}\n\n/**\n * @param {Uint32Array} start_packed\n * @param {Function} get_cost_matrix\n * @param {number} max_tiles\n * @param {number} max_rooms\n * @param {number} max_room_distance\n * @param {number} max_tile_distance\n * @returns {MultiroomFlowField}\n */\nexport function js_dijkstra_multiroom_flow_field(start_packed, get_cost_matrix, max_tiles, max_rooms, max_room_distance, max_tile_distance) {\n try {\n const ptr0 = passArray32ToWasm0(start_packed, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.js_dijkstra_multiroom_flow_field(ptr0, len0, addBorrowedObject(get_cost_matrix), max_tiles, max_rooms, max_room_distance, max_tile_distance);\n return MultiroomFlowField.__wrap(ret);\n } finally {\n heap[stack_pointer++] = undefined;\n }\n}\n\n/**\n * WASM wrapper for the BFS multiroom distance map function.\n * @param {Uint32Array} start_packed\n * @param {Function} get_cost_matrix\n * @param {number} max_tiles\n * @param {number} max_rooms\n * @param {number} max_room_distance\n * @param {number} max_tile_distance\n * @returns {MultiroomDistanceMap}\n */\nexport function js_bfs_multiroom_distance_map(start_packed, get_cost_matrix, max_tiles, max_rooms, max_room_distance, max_tile_distance) {\n try {\n const ptr0 = passArray32ToWasm0(start_packed, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.js_bfs_multiroom_distance_map(ptr0, len0, addBorrowedObject(get_cost_matrix), max_tiles, max_rooms, max_room_distance, max_tile_distance);\n return MultiroomDistanceMap.__wrap(ret);\n } finally {\n heap[stack_pointer++] = undefined;\n }\n}\n\n/**\n * WASM wrapper for the Dijkstra flow field function.\n * @param {Uint32Array} start_packed\n * @param {ClockworkCostMatrix} cost_matrix\n * @returns {FlowField}\n */\nexport function js_dijkstra_flow_field(start_packed, cost_matrix) {\n const ptr0 = passArray32ToWasm0(start_packed, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n _assertClass(cost_matrix, ClockworkCostMatrix);\n const ret = wasm.js_dijkstra_flow_field(ptr0, len0, cost_matrix.__wbg_ptr);\n return FlowField.__wrap(ret);\n}\n\n/**\n * @param {Uint32Array} start_packed\n * @param {Function} get_cost_matrix\n * @param {number} max_tiles\n * @param {number} max_rooms\n * @param {number} max_room_distance\n * @param {number} max_tile_distance\n * @returns {MultiroomMonoFlowField}\n */\nexport function js_dijkstra_multiroom_mono_flow_field(start_packed, get_cost_matrix, max_tiles, max_rooms, max_room_distance, max_tile_distance) {\n try {\n const ptr0 = passArray32ToWasm0(start_packed, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.js_dijkstra_multiroom_mono_flow_field(ptr0, len0, addBorrowedObject(get_cost_matrix), max_tiles, max_rooms, max_room_distance, max_tile_distance);\n return MultiroomMonoFlowField.__wrap(ret);\n } finally {\n heap[stack_pointer++] = undefined;\n }\n}\n\n/**\n * @param {number} start\n * @param {MultiroomDistanceMap} distance_map\n * @returns {Path}\n */\nexport function js_path_to_multiroom_distance_map_origin(start, distance_map) {\n _assertClass(distance_map, MultiroomDistanceMap);\n const ret = wasm.js_path_to_multiroom_distance_map_origin(start, distance_map.__wbg_ptr);\n return Path.__wrap(ret);\n}\n\n/**\n * WASM wrapper for the BFS flow field function.\n * @param {Uint32Array} start_packed\n * @param {ClockworkCostMatrix} cost_matrix\n * @returns {FlowField}\n */\nexport function js_bfs_flow_field(start_packed, cost_matrix) {\n const ptr0 = passArray32ToWasm0(start_packed, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n _assertClass(cost_matrix, ClockworkCostMatrix);\n const ret = wasm.js_bfs_flow_field(ptr0, len0, cost_matrix.__wbg_ptr);\n return FlowField.__wrap(ret);\n}\n\n/**\n * @param {number} start\n * @param {MonoFlowField} flow_field\n * @returns {Path}\n */\nexport function js_path_to_mono_flow_field_origin(start, flow_field) {\n _assertClass(flow_field, MonoFlowField);\n const ret = wasm.js_path_to_mono_flow_field_origin(start, flow_field.__wbg_ptr);\n return Path.__wrap(ret);\n}\n\n/**\n * @param {number} start\n * @param {MultiroomMonoFlowField} flow_field\n * @returns {Path}\n */\nexport function js_path_to_multiroom_mono_flow_field_origin(start, flow_field) {\n _assertClass(flow_field, MultiroomMonoFlowField);\n const ret = wasm.js_path_to_multiroom_mono_flow_field_origin(start, flow_field.__wbg_ptr);\n return Path.__wrap(ret);\n}\n\nlet cachedUint16ArrayMemory0 = null;\n\nfunction getUint16ArrayMemory0() {\n if (cachedUint16ArrayMemory0 === null || cachedUint16ArrayMemory0.byteLength === 0) {\n cachedUint16ArrayMemory0 = new Uint16Array(wasm.memory.buffer);\n }\n return cachedUint16ArrayMemory0;\n}\n\nfunction getArrayU16FromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return getUint16ArrayMemory0().subarray(ptr / 2, ptr / 2 + len);\n}\n/**\n * WASM wrapper for the BFS multiroom monodirectional flow field function.\n * @param {Uint32Array} start_packed\n * @param {Function} get_cost_matrix\n * @param {number} max_tiles\n * @param {number} max_rooms\n * @param {number} max_room_distance\n * @param {number} max_tile_distance\n * @returns {MultiroomMonoFlowField}\n */\nexport function js_bfs_multiroom_mono_flow_field(start_packed, get_cost_matrix, max_tiles, max_rooms, max_room_distance, max_tile_distance) {\n try {\n const ptr0 = passArray32ToWasm0(start_packed, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.js_bfs_multiroom_mono_flow_field(ptr0, len0, addBorrowedObject(get_cost_matrix), max_tiles, max_rooms, max_room_distance, max_tile_distance);\n return MultiroomMonoFlowField.__wrap(ret);\n } finally {\n heap[stack_pointer++] = undefined;\n }\n}\n\n/**\n * WASM wrapper for the BFS mono flow field function.\n * @param {Uint32Array} start_packed\n * @param {ClockworkCostMatrix} cost_matrix\n * @returns {MonoFlowField}\n */\nexport function js_bfs_mono_flow_field(start_packed, cost_matrix) {\n const ptr0 = passArray32ToWasm0(start_packed, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n _assertClass(cost_matrix, ClockworkCostMatrix);\n const ret = wasm.js_bfs_mono_flow_field(ptr0, len0, cost_matrix.__wbg_ptr);\n return MonoFlowField.__wrap(ret);\n}\n\n/**\n * @param {number} start\n * @param {DistanceMap} distance_map\n * @returns {Path}\n */\nexport function js_path_to_distance_map_origin(start, distance_map) {\n _assertClass(distance_map, DistanceMap);\n const ret = wasm.js_path_to_distance_map_origin(start, distance_map.__wbg_ptr);\n return Path.__wrap(ret);\n}\n\n/**\n * @param {number} start\n * @param {MultiroomFlowField} flow_field\n * @returns {Path}\n */\nexport function js_path_to_multiroom_flow_field_origin(start, flow_field) {\n _assertClass(flow_field, MultiroomFlowField);\n const ret = wasm.js_path_to_multiroom_flow_field_origin(start, flow_field.__wbg_ptr);\n return Path.__wrap(ret);\n}\n\n/**\n * WASM wrapper for the Dijkstra mono flow field function.\n * @param {Uint32Array} start_packed\n * @param {ClockworkCostMatrix} cost_matrix\n * @returns {MonoFlowField}\n */\nexport function js_dijkstra_mono_flow_field(start_packed, cost_matrix) {\n const ptr0 = passArray32ToWasm0(start_packed, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n _assertClass(cost_matrix, ClockworkCostMatrix);\n const ret = wasm.js_dijkstra_mono_flow_field(ptr0, len0, cost_matrix.__wbg_ptr);\n return MonoFlowField.__wrap(ret);\n}\n\nfunction getArrayU32FromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return getUint32ArrayMemory0().subarray(ptr / 4, ptr / 4 + len);\n}\n/**\n * @returns {string}\n */\nexport function version() {\n let deferred1_0;\n let deferred1_1;\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n wasm.version(retptr);\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n deferred1_0 = r0;\n deferred1_1 = r1;\n return getStringFromWasm0(r0, r1);\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);\n }\n}\n\n/**\n * Exports the global range calculation between two positions.\n * @param {number} packed_pos_1\n * @param {number} packed_pos_2\n * @returns {number}\n */\nexport function get_range(packed_pos_1, packed_pos_2) {\n const ret = wasm.get_range(packed_pos_1, packed_pos_2);\n return ret >>> 0;\n}\n\n/**\n * Translates `COLOR_*` and `COLORS_ALL` constants.\n * @enum {1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10}\n */\nexport const Color = Object.freeze({\n Red: 1, \"1\": \"Red\",\n Purple: 2, \"2\": \"Purple\",\n Blue: 3, \"3\": \"Blue\",\n Cyan: 4, \"4\": \"Cyan\",\n Green: 5, \"5\": \"Green\",\n Yellow: 6, \"6\": \"Yellow\",\n Orange: 7, \"7\": \"Orange\",\n Brown: 8, \"8\": \"Brown\",\n Grey: 9, \"9\": \"Grey\",\n White: 10, \"10\": \"White\",\n});\n/**\n * Translates the `DENSITY_*` constants.\n * @enum {1 | 2 | 3 | 4}\n */\nexport const Density = Object.freeze({\n Low: 1, \"1\": \"Low\",\n Moderate: 2, \"2\": \"Moderate\",\n High: 3, \"3\": \"High\",\n Ultra: 4, \"4\": \"Ultra\",\n});\n/**\n * Translates direction constants.\n * @enum {1 | 2 | 3 | 4 | 5 | 6 | 7 | 8}\n */\nexport const Direction = Object.freeze({\n Top: 1, \"1\": \"Top\",\n TopRight: 2, \"2\": \"TopRight\",\n Right: 3, \"3\": \"Right\",\n BottomRight: 4, \"4\": \"BottomRight\",\n Bottom: 5, \"5\": \"Bottom\",\n BottomLeft: 6, \"6\": \"BottomLeft\",\n Left: 7, \"7\": \"Left\",\n TopLeft: 8, \"8\": \"TopLeft\",\n});\n/**\n * Type used for when the game returns a direction to an exit.\n *\n * Restricted more than `Direction` in that it can't be diagonal. Used as the\n * result of [`Room::find_exit_to`].\n *\n * Can be converted to [`Find`] for immediate use of [`Room::find`]\n * and [`Direction`].\n *\n * [`Room::find`]: crate::objects::Room::find\n * [`Room::find_exit_to`]: crate::objects::Room::find_exit_to\n * @enum {1 | 3 | 5 | 7}\n */\nexport const ExitDirection = Object.freeze({\n Top: 1, \"1\": \"Top\",\n Right: 3, \"3\": \"Right\",\n Bottom: 5, \"5\": \"Bottom\",\n Left: 7, \"7\": \"Left\",\n});\n/**\n * Translates `FIND_*` constants for interal API calls\n *\n * Unless you're storing the type of find constant to be used for a call, you\n * likely want the constants which implement the `FindConstant` trait to make\n * calls to find methods.\n *\n * This is hidden from the documentation to avoid confusion due to its narrow\n * use case, but wasm_bindgen requires it remain public.\n * @enum {1 | 3 | 5 | 7 | 10 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 10011 | 10012 | 10021 | 10022 | 10051}\n */\nexport const Find = Object.freeze({\n /**\n * Find all exit positions at the top of the room\n */\n ExitTop: 1, \"1\": \"ExitTop\",\n ExitRight: 3, \"3\": \"ExitRight\",\n ExitBottom: 5, \"5\": \"ExitBottom\",\n ExitLeft: 7, \"7\": \"ExitLeft\",\n Exit: 10, \"10\": \"Exit\",\n Creeps: 101, \"101\": \"Creeps\",\n MyCreeps: 102, \"102\": \"MyCreeps\",\n HostileCreeps: 103, \"103\": \"HostileCreeps\",\n SourcesActive: 104, \"104\": \"SourcesActive\",\n Sources: 105, \"105\": \"Sources\",\n DroppedResources: 106, \"106\": \"DroppedResources\",\n Structures: 107, \"107\": \"Structures\",\n MyStructures: 108, \"108\": \"MyStructures\",\n HostileStructures: 109, \"109\": \"HostileStructures\",\n Flags: 110, \"110\": \"Flags\",\n ConstructionSites: 111, \"111\": \"ConstructionSites\",\n MySpawns: 112, \"112\": \"MySpawns\",\n HostileSpawns: 113, \"113\": \"HostileSpawns\",\n MyConstructionSites: 114, \"114\": \"MyConstructionSites\",\n HostileConstructionSites: 115, \"115\": \"HostileConstructionSites\",\n Minerals: 116, \"116\": \"Minerals\",\n Nukes: 117, \"117\": \"Nukes\",\n Tombstones: 118, \"118\": \"Tombstones\",\n PowerCreeps: 119, \"119\": \"PowerCreeps\",\n MyPowerCreeps: 120, \"120\": \"MyPowerCreeps\",\n HostilePowerCreeps: 121, \"121\": \"HostilePowerCreeps\",\n Deposits: 122, \"122\": \"Deposits\",\n Ruins: 123, \"123\": \"Ruins\",\n ScoreContainers: 10011, \"10011\": \"ScoreContainers\",\n ScoreCollectors: 10012, \"10012\": \"ScoreCollectors\",\n SymbolContainers: 10021, \"10021\": \"SymbolContainers\",\n SymbolDecoders: 10022, \"10022\": \"SymbolDecoders\",\n Reactors: 10051, \"10051\": \"Reactors\",\n});\n/**\n * Translates the `EFFECT_*` constants, which are natural effect types\n * @enum {1001 | 1002}\n */\nexport const NaturalEffectType = Object.freeze({\n Invulnerability: 1001, \"1001\": \"Invulnerability\",\n CollapseTimer: 1002, \"1002\": \"CollapseTimer\",\n});\n/**\n * Translates the `PWR_*` constants, which are types of powers used by power\n * creeps\n * @enum {1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19}\n */\nexport const PowerType = Object.freeze({\n GenerateOps: 1, \"1\": \"GenerateOps\",\n OperateSpawn: 2, \"2\": \"OperateSpawn\",\n OperateTower: 3, \"3\": \"OperateTower\",\n OperateStorage: 4, \"4\": \"OperateStorage\",\n OperateLab: 5, \"5\": \"OperateLab\",\n OperateExtension: 6, \"6\": \"OperateExtension\",\n OperateObserver: 7, \"7\": \"OperateObserver\",\n OperateTerminal: 8, \"8\": \"OperateTerminal\",\n DisruptSpawn: 9, \"9\": \"DisruptSpawn\",\n DisruptTower: 10, \"10\": \"DisruptTower\",\n Shield: 12, \"12\": \"Shield\",\n RegenSource: 13, \"13\": \"RegenSource\",\n RegenMineral: 14, \"14\": \"RegenMineral\",\n DisruptTerminal: 15, \"15\": \"DisruptTerminal\",\n OperatePower: 16, \"16\": \"OperatePower\",\n Fortify: 17, \"17\": \"Fortify\",\n OperateController: 18, \"18\": \"OperateController\",\n OperateFactory: 19, \"19\": \"OperateFactory\",\n});\n/**\n * Translates `TERRAIN_*` constants.\n * @enum {0 | 1 | 2}\n */\nexport const Terrain = Object.freeze({\n Plain: 0, \"0\": \"Plain\",\n Wall: 1, \"1\": \"Wall\",\n Swamp: 2, \"2\": \"Swamp\",\n});\n\nconst __wbindgen_enum_Look = [\"creep\", \"energy\", \"resource\", \"source\", \"mineral\", \"structure\", \"flag\", \"constructionSite\", \"nuke\", \"terrain\", \"tombstone\", \"powerCreep\", \"deposit\", \"ruin\", \"scoreContainer\", \"scoreCollector\", \"symbolContainer\", \"symbolDecoder\", \"reactor\"];\n\nconst __wbindgen_enum_StructureType = [\"spawn\", \"extension\", \"road\", \"constructedWall\", \"rampart\", \"keeperLair\", \"portal\", \"controller\", \"link\", \"storage\", \"tower\", \"observer\", \"powerBank\", \"powerSpawn\", \"extractor\", \"lab\", \"terminal\", \"container\", \"nuker\", \"factory\", \"invaderCore\"];\n\nconst ClockworkCostMatrixFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_clockworkcostmatrix_free(ptr >>> 0, 1));\n/**\n * A wrapper around the `LocalCostMatrix` type from the Screeps API.\n * Instances can be passed between WASM and JS as a pointer, using the\n * methods to get and set values, rather than copying the entire matrix.\n */\nexport class ClockworkCostMatrix {\n\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n ClockworkCostMatrixFinalization.unregister(this);\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_clockworkcostmatrix_free(ptr, 0);\n }\n /**\n * Creates a new cost matrix within the WASM module. Optionally, a default value\n * can be provided to initialize all cells in the matrix to that value.\n * @param {number | undefined} [_default]\n */\n constructor(_default) {\n const ret = wasm.clockworkcostmatrix_new(isLikeNone(_default) ? 0xFFFFFF : _default);\n this.__wbg_ptr = ret >>> 0;\n ClockworkCostMatrixFinalization.register(this, this.__wbg_ptr, this);\n return this;\n }\n /**\n * Gets the cost of a given position in the cost matrix.\n * @param {number} x\n * @param {number} y\n * @returns {number}\n */\n get(x, y) {\n const ret = wasm.clockworkcostmatrix_get(this.__wbg_ptr, x, y);\n return ret;\n }\n /**\n * Sets the cost of a given position in the cost matrix.\n * @param {number} x\n * @param {number} y\n * @param {number} value\n */\n set(x, y, value) {\n wasm.clockworkcostmatrix_set(this.__wbg_ptr, x, y, value);\n }\n}\n\nconst DistanceMapFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_distancemap_free(ptr >>> 0, 1));\n/**\n * Maps a distance value onto individual room tile positions.\n */\nexport class DistanceMap {\n\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(DistanceMap.prototype);\n obj.__wbg_ptr = ptr;\n DistanceMapFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n DistanceMapFinalization.unregister(this);\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_distancemap_free(ptr, 0);\n }\n /**\n * Converts the distance map into a flat array of distances.\n * @returns {Uint32Array}\n */\n toArray() {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n wasm.distancemap_toArray(retptr, this.__wbg_ptr);\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n var v1 = getArrayU32FromWasm0(r0, r1).slice();\n wasm.__wbindgen_free(r0, r1 * 4, 4);\n return v1;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n }\n /**\n * Gets the distance value at a given position.\n * @param {number} x\n * @param {number} y\n * @returns {number}\n */\n get(x, y) {\n const ret = wasm.distancemap_get(this.__wbg_ptr, x, y);\n return ret >>> 0;\n }\n /**\n * Sets the distance value at a given position.\n * @param {number} x\n * @param {number} y\n * @param {number} value\n */\n set(x, y, value) {\n wasm.distancemap_set(this.__wbg_ptr, x, y, value);\n }\n}\n\nconst FlowFieldFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_flowfield_free(ptr >>> 0, 1));\n/**\n * A flow field is a 50x50 grid (representing a room), representing viable directions\n * to travel to reach a particular target (or targets). A given tile may have multiple\n * equally valid directions, so we represent this as a bitfield (where each bit in an\n * 8-bit unsigned integer represents a direction that is either viable or not).\n */\nexport class FlowField {\n\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(FlowField.prototype);\n obj.__wbg_ptr = ptr;\n FlowFieldFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n FlowFieldFinalization.unregister(this);\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_flowfield_free(ptr, 0);\n }\n /**\n * Get the internal value for a given coordinate.\n * @param {number} x\n * @param {number} y\n * @returns {number}\n */\n get(x, y) {\n const ret = wasm.flowfield_get(this.__wbg_ptr, x, y);\n return ret;\n }\n /**\n * Set the internal value for a given coordinate.\n * @param {number} x\n * @param {number} y\n * @param {number} value\n */\n set(x, y, value) {\n wasm.flowfield_set(this.__wbg_ptr, x, y, value);\n }\n /**\n * Get the list of valid directions for a given coordinate.\n * @param {number} x\n * @param {number} y\n * @returns {any[]}\n */\n getDirections(x, y) {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n wasm.flowfield_getDirections(retptr, this.__wbg_ptr, x, y);\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n var v1 = getArrayJsValueFromWasm0(r0, r1).slice();\n wasm.__wbindgen_free(r0, r1 * 4, 4);\n return v1;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n }\n /**\n * Set the list of valid directions for a given coordinate.\n * @param {number} x\n * @param {number} y\n * @param {any[]} directions\n */\n setDirections(x, y, directions) {\n const ptr0 = passArrayJsValueToWasm0(directions, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n wasm.flowfield_setDirections(this.__wbg_ptr, x, y, ptr0, len0);\n }\n /**\n * Add a direction to the list of valid directions for a given coordinate.\n * @param {number} x\n * @param {number} y\n * @param {Direction} direction\n */\n addDirection(x, y, direction) {\n wasm.flowfield_addDirection(this.__wbg_ptr, x, y, direction);\n }\n}\n\nconst MonoFlowFieldFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_monoflowfield_free(ptr >>> 0, 1));\n/**\n * A flow field is a 50x50 grid (representing a room), representing viable directions\n * to travel to reach a particular target (or targets). A mono flow field only stores\n * a single direction for each tile, so we represent this as 4 bits of an unsigned\n * integer (0 for no direction, 1 for TOP, etc.).\n */\nexport class MonoFlowField {\n\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(MonoFlowField.prototype);\n obj.__wbg_ptr = ptr;\n MonoFlowFieldFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n MonoFlowFieldFinalization.unregister(this);\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_monoflowfield_free(ptr, 0);\n }\n /**\n * Get the direction for a given coordinate.\n * @param {number} x\n * @param {number} y\n * @returns {Direction | undefined}\n */\n get(x, y) {\n const ret = wasm.monoflowfield_get(this.__wbg_ptr, x, y);\n return ret === 0 ? undefined : ret;\n }\n /**\n * Set the direction for a given coordinate.\n * @param {number} x\n * @param {number} y\n * @param {Direction | undefined} [value]\n */\n set(x, y, value) {\n wasm.monoflowfield_set(this.__wbg_ptr, x, y, isLikeNone(value) ? 0 : value);\n }\n}\n\nconst MultiroomDistanceMapFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_multiroomdistancemap_free(ptr >>> 0, 1));\n/**\n * Maps distance values across multiple rooms, storing a DistanceMap for each room\n */\nexport class MultiroomDistanceMap {\n\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(MultiroomDistanceMap.prototype);\n obj.__wbg_ptr = ptr;\n MultiroomDistanceMapFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n MultiroomDistanceMapFinalization.unregister(this);\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_multiroomdistancemap_free(ptr, 0);\n }\n /**\n * Creates a new empty multiroom distance map (JavaScript constructor)\n */\n constructor() {\n const ret = wasm.multiroomdistancemap_js_new();\n this.__wbg_ptr = ret >>> 0;\n MultiroomDistanceMapFinalization.register(this, this.__wbg_ptr, this);\n return this;\n }\n /**\n * Gets the distance value at a given position\n * @param {number} packed_pos\n * @returns {number}\n */\n get(packed_pos) {\n const ret = wasm.multiroomdistancemap_get(this.__wbg_ptr, packed_pos);\n return ret >>> 0;\n }\n /**\n * Sets the distance value at a given position\n * @param {number} packed_pos\n * @param {number} value\n */\n set(packed_pos, value) {\n wasm.multiroomdistancemap_set(this.__wbg_ptr, packed_pos, value);\n }\n /**\n * Gets the list of rooms in the map\n * @returns {Uint16Array}\n */\n get_rooms() {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n wasm.multiroomdistancemap_get_rooms(retptr, this.__wbg_ptr);\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n var v1 = getArrayU16FromWasm0(r0, r1).slice();\n wasm.__wbindgen_free(r0, r1 * 2, 2);\n return v1;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n }\n /**\n * Gets the DistanceMap for a given room\n * @param {number} room_name\n * @returns {DistanceMap | undefined}\n */\n get_room(room_name) {\n const ret = wasm.multiroomdistancemap_get_room(this.__wbg_ptr, room_name);\n return ret === 0 ? undefined : DistanceMap.__wrap(ret);\n }\n}\n\nconst MultiroomFlowFieldFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_multiroomflowfield_free(ptr >>> 0, 1));\n/**\n * Maps flow field values across multiple rooms, storing a FlowField for each room\n */\nexport class MultiroomFlowField {\n\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(MultiroomFlowField.prototype);\n obj.__wbg_ptr = ptr;\n MultiroomFlowFieldFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n MultiroomFlowFieldFinalization.unregister(this);\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_multiroomflowfield_free(ptr, 0);\n }\n /**\n * Creates a new empty multiroom flow field (JavaScript constructor)\n */\n constructor() {\n const ret = wasm.multiroomflowfield_js_new();\n this.__wbg_ptr = ret >>> 0;\n MultiroomFlowFieldFinalization.register(this, this.__wbg_ptr, this);\n return this;\n }\n /**\n * Gets the flow field value at a given position\n * @param {number} packed_pos\n * @returns {number}\n */\n get(packed_pos) {\n const ret = wasm.multiroomflowfield_get(this.__wbg_ptr, packed_pos);\n return ret;\n }\n /**\n * Sets the flow field value at a given position\n * @param {number} packed_pos\n * @param {number} value\n */\n set(packed_pos, value) {\n wasm.multiroomflowfield_set(this.__wbg_ptr, packed_pos, value);\n }\n /**\n * Gets the list of rooms in the flow field\n * @returns {Uint16Array}\n */\n getRooms() {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n wasm.multiroomflowfield_getRooms(retptr, this.__wbg_ptr);\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n var v1 = getArrayU16FromWasm0(r0, r1).slice();\n wasm.__wbindgen_free(r0, r1 * 2, 2);\n return v1;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n }\n /**\n * Gets the FlowField for a given room\n * @param {number} room_name\n * @returns {FlowField | undefined}\n */\n getRoom(room_name) {\n const ret = wasm.multiroomflowfield_getRoom(this.__wbg_ptr, room_name);\n return ret === 0 ? undefined : FlowField.__wrap(ret);\n }\n /**\n * Gets the list of valid directions at a given position (JavaScript)\n * @param {number} packed_pos\n * @returns {any[]}\n */\n getDirections(packed_pos) {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n wasm.multiroomflowfield_getDirections(retptr, this.__wbg_ptr, packed_pos);\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n var v1 = getArrayJsValueFromWasm0(r0, r1).slice();\n wasm.__wbindgen_free(r0, r1 * 4, 4);\n return v1;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n }\n /**\n * Sets the list of valid directions at a given position (JavaScript)\n * @param {number} packed_pos\n * @param {any[]} directions\n */\n setDirections(packed_pos, directions) {\n const ptr0 = passArrayJsValueToWasm0(directions, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n wasm.multiroomflowfield_setDirections(this.__wbg_ptr, packed_pos, ptr0, len0);\n }\n /**\n * Adds a direction to the list of valid directions at a given position (JavaScript)\n * @param {number} packed_pos\n * @param {Direction} direction\n */\n addDirection(packed_pos, direction) {\n wasm.multiroomflowfield_addDirection(this.__wbg_ptr, packed_pos, direction);\n }\n}\n\nconst MultiroomMonoFlowFieldFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_multiroommonoflowfield_free(ptr >>> 0, 1));\n/**\n * Maps monodirectional flow field values across multiple rooms, storing a MonoFlowField for each room\n */\nexport class MultiroomMonoFlowField {\n\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(MultiroomMonoFlowField.prototype);\n obj.__wbg_ptr = ptr;\n MultiroomMonoFlowFieldFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n MultiroomMonoFlowFieldFinalization.unregister(this);\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_multiroommonoflowfield_free(ptr, 0);\n }\n /**\n * Creates a new empty multiroom monodirectional flow field (JavaScript constructor)\n */\n constructor() {\n const ret = wasm.multiroomdistancemap_js_new();\n this.__wbg_ptr = ret >>> 0;\n MultiroomMonoFlowFieldFinalization.register(this, this.__wbg_ptr, this);\n return this;\n }\n /**\n * Gets the direction at a given position\n * @param {number} packed_pos\n * @returns {Direction | undefined}\n */\n get(packed_pos) {\n const ret = wasm.multiroommonoflowfield_get(this.__wbg_ptr, packed_pos);\n return ret === 0 ? undefined : ret;\n }\n /**\n * Sets the direction at a given position\n * @param {number} packed_pos\n * @param {Direction | undefined} [direction]\n */\n set(packed_pos, direction) {\n wasm.multiroommonoflowfield_set(this.__wbg_ptr, packed_pos, isLikeNone(direction) ? 0 : direction);\n }\n /**\n * Gets the list of rooms in the flow field\n * @returns {Uint16Array}\n */\n getRooms() {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n wasm.multiroommonoflowfield_getRooms(retptr, this.__wbg_ptr);\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n var v1 = getArrayU16FromWasm0(r0, r1).slice();\n wasm.__wbindgen_free(r0, r1 * 2, 2);\n return v1;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n }\n /**\n * Gets the MonoFlowField for a given room\n * @param {number} room_name\n * @returns {MonoFlowField | undefined}\n */\n getRoom(room_name) {\n const ret = wasm.multiroommonoflowfield_getRoom(this.__wbg_ptr, room_name);\n return ret === 0 ? undefined : MonoFlowField.__wrap(ret);\n }\n}\n\nconst PathFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_path_free(ptr >>> 0, 1));\n/**\n * A list of positions representing a path.\n */\nexport class Path {\n\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(Path.prototype);\n obj.__wbg_ptr = ptr;\n PathFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n PathFinalization.unregister(this);\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_path_free(ptr, 0);\n }\n /**\n * @param {number} packed_position\n */\n add(packed_position) {\n wasm.path_add(this.__wbg_ptr, packed_position);\n }\n /**\n * @param {number} index\n * @returns {number | undefined}\n */\n get(index) {\n const ret = wasm.path_get(this.__wbg_ptr, index);\n return ret === 0x100000001 ? undefined : ret;\n }\n /**\n * @returns {number}\n */\n len() {\n const ret = wasm.path_len(this.__wbg_ptr);\n return ret >>> 0;\n }\n /**\n * Given a position, find the index of the next adjacent position\n * in the path. If the position is not in the path, the target is\n * the next adjacent position closest to the end of the path. If\n * the position is neither on nor adjacent to the path, return None.\n * @param {number} packed_position\n * @returns {number | undefined}\n */\n find_next_index(packed_position) {\n const ret = wasm.path_find_next_index(this.__wbg_ptr, packed_position);\n return ret === 0x100000001 ? undefined : ret;\n }\n /**\n * @returns {Uint32Array}\n */\n to_array() {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n wasm.path_to_array(retptr, this.__wbg_ptr);\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n var v1 = getArrayU32FromWasm0(r0, r1).slice();\n wasm.__wbindgen_free(r0, r1 * 4, 4);\n return v1;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n }\n /**\n * @returns {Uint32Array}\n */\n to_array_reversed() {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n wasm.path_to_array_reversed(retptr, this.__wbg_ptr);\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n var v1 = getArrayU32FromWasm0(r0, r1).slice();\n wasm.__wbindgen_free(r0, r1 * 4, 4);\n return v1;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n }\n}\n\nconst PathFatigueFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_pathfatigue_free(ptr >>> 0, 1));\n/**\n * Tracks fatigue cost for each position in a path. Used to calculate move time\n * for a given creep build.\n */\nexport class PathFatigue {\n\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n PathFatigueFinalization.unregister(this);\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_pathfatigue_free(ptr, 0);\n }\n /**\n * @param {Path} path\n */\n constructor(path) {\n _assertClass(path, Path);\n const ret = wasm.pathfatigue_new(path.__wbg_ptr);\n this.__wbg_ptr = ret >>> 0;\n PathFatigueFinalization.register(this, this.__wbg_ptr, this);\n return this;\n }\n /**\n * Refreshes fatigue cost for each position in the path. If the PathFatigue\n * has not been initialized yet, every position's fatigue cost will be set,\n * even if there is no vision in the room, based on terrain costs. If the\n * list *has* been initialized, only positions with vision will be updated.\n *\n * When there is vision, this also accounts for roads at the position.\n * @param {Path} path\n */\n refresh(path) {\n _assertClass(path, Path);\n wasm.pathfatigue_refresh(this.__wbg_ptr, path.__wbg_ptr);\n }\n /**\n * @returns {number}\n */\n len() {\n const ret = wasm.path_len(this.__wbg_ptr);\n return ret >>> 0;\n }\n /**\n * Calculates the total move time for the path, given a fatigue ratio.\n *\n * For unboosted creeps, the ratio is `Math.floor(moveParts * 2 / fatigueParts)`\n * where `fatigue_parts` are any part except MOVE and empty CARRY parts.\n * @param {number} fatigue_ratio\n * @returns {number}\n */\n moveTime(fatigue_ratio) {\n const ret = wasm.pathfatigue_moveTime(this.__wbg_ptr, fatigue_ratio);\n return ret >>> 0;\n }\n}\n\nconst SearchGoalFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_searchgoal_free(ptr >>> 0, 1));\n\nexport class SearchGoal {\n\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n SearchGoalFinalization.unregister(this);\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_searchgoal_free(ptr, 0);\n }\n /**\n * @returns {any}\n */\n get pos() {\n const ret = wasm.searchgoal_pos(this.__wbg_ptr);\n return takeObject(ret);\n }\n /**\n * @returns {number}\n */\n get range() {\n const ret = wasm.searchgoal_range(this.__wbg_ptr);\n return ret >>> 0;\n }\n}\n\nasync function __wbg_load(module, imports) {\n if (typeof Response === 'function' && module instanceof Response) {\n if (typeof WebAssembly.instantiateStreaming === 'function') {\n try {\n return await WebAssembly.instantiateStreaming(module, imports);\n\n } catch (e) {\n if (module.headers.get('Content-Type') != 'application/wasm') {\n console.warn(\"`WebAssembly.instantiateStreaming` failed because your server does not serve Wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\\n\", e);\n\n } else {\n throw e;\n }\n }\n }\n\n const bytes = await module.arrayBuffer();\n return await WebAssembly.instantiate(bytes, imports);\n\n } else {\n const instance = await WebAssembly.instantiate(module, imports);\n\n if (instance instanceof WebAssembly.Instance) {\n return { instance, module };\n\n } else {\n return instance;\n }\n }\n}\n\nfunction __wbg_get_imports() {\n const imports = {};\n imports.wbg = {};\n imports.wbg.__wbg_call_0411c0c3c424db9a = function() { return handleError(function (arg0, arg1, arg2) {\n const ret = getObject(arg0).call(getObject(arg1), getObject(arg2));\n return addHeapObject(ret);\n }, arguments) };\n imports.wbg.__wbg_ceil_73d048b08f059b46 = function(arg0) {\n const ret = Math.ceil(arg0);\n return ret;\n };\n imports.wbg.__wbg_clockworkcostmatrixgetpointer_79ff2a01ab0022a6 = function(arg0) {\n const ret = clockworkcostmatrix_get_pointer(takeObject(arg0));\n return ret;\n };\n imports.wbg.__wbg_create_7616c10d022615b4 = function(arg0) {\n const ret = Object.create(getObject(arg0));\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_error_7534b8e9a36f1ab4 = function(arg0, arg1) {\n let deferred0_0;\n let deferred0_1;\n try {\n deferred0_0 = arg0;\n deferred0_1 = arg1;\n console.error(getStringFromWasm0(arg0, arg1));\n } finally {\n wasm.__wbindgen_free(deferred0_0, deferred0_1, 1);\n }\n };\n imports.wbg.__wbg_getRoomTerrain_82fcc54e35a8985e = function() { return handleError(function (arg0) {\n const ret = Game.map.getRoomTerrain(getObject(arg0));\n return addHeapObject(ret);\n }, arguments) };\n imports.wbg.__wbg_get_1f5a4efd15e39f01 = function(arg0, arg1, arg2) {\n const ret = getObject(arg0).get(arg1, arg2);\n return ret;\n };\n imports.wbg.__wbg_get_68aa371864aa301a = function(arg0, arg1) {\n const ret = getObject(arg0)[arg1 >>> 0];\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_getvalue_a18eaf2c77e125e4 = function(arg0, arg1) {\n const ret = getObject(arg0)[getObject(arg1)];\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_length_e74df4881604f1d9 = function(arg0) {\n const ret = getObject(arg0).length;\n return ret;\n };\n imports.wbg.__wbg_log_e9cc7e18c0c70cf4 = function(arg0, arg1) {\n console.log(getStringFromWasm0(arg0, arg1));\n };\n imports.wbg.__wbg_lookFor_04c5885fea38e9b2 = function() { return handleError(function (arg0, arg1) {\n const ret = getObject(arg0).lookFor(__wbindgen_enum_Look[arg1]);\n return isLikeNone(ret) ? 0 : addHeapObject(ret);\n }, arguments) };\n imports.wbg.__wbg_new_8a6f238a6ece86ea = function() {\n const ret = new Error();\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_rooms_c7983d4650f28959 = function() {\n const ret = Game.rooms;\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_setpacked_50526296a5796941 = function(arg0, arg1) {\n getObject(arg0).__packedPos = arg1 >>> 0;\n };\n imports.wbg.__wbg_stack_0ed75d68575b0f3c = function(arg0, arg1) {\n const ret = getObject(arg1).stack;\n const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len1 = WASM_VECTOR_LEN;\n getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);\n };\n imports.wbg.__wbg_static_accessor_ROOM_POSITION_PROTOTYPE_359d8a1531b99b4c = function() {\n const ret = RoomPosition.prototype;\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_structuretype_d5991613c372a27e = function(arg0) {\n const ret = getObject(arg0).structureType;\n return (__wbindgen_enum_StructureType.indexOf(ret) + 1 || 22) - 1;\n };\n imports.wbg.__wbindgen_is_null = function(arg0) {\n const ret = getObject(arg0) === null;\n return ret;\n };\n imports.wbg.__wbindgen_is_undefined = function(arg0) {\n const ret = getObject(arg0) === undefined;\n return ret;\n };\n imports.wbg.__wbindgen_number_get = function(arg0, arg1) {\n const obj = getObject(arg1);\n const ret = typeof(obj) === 'number' ? obj : undefined;\n getDataViewMemory0().setFloat64(arg0 + 8 * 1, isLikeNone(ret) ? 0 : ret, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, !isLikeNone(ret), true);\n };\n imports.wbg.__wbindgen_number_new = function(arg0) {\n const ret = arg0;\n return addHeapObject(ret);\n };\n imports.wbg.__wbindgen_object_drop_ref = function(arg0) {\n takeObject(arg0);\n };\n imports.wbg.__wbindgen_rethrow = function(arg0) {\n throw takeObject(arg0);\n };\n imports.wbg.__wbindgen_string_new = function(arg0, arg1) {\n const ret = getStringFromWasm0(arg0, arg1);\n return addHeapObject(ret);\n };\n imports.wbg.__wbindgen_throw = function(arg0, arg1) {\n throw new Error(getStringFromWasm0(arg0, arg1));\n };\n imports.wbg.__wbindgen_try_into_number = function(arg0) {\n let result;\n try { result = +getObject(arg0) } catch (e) { result = e }\n const ret = result;\n return addHeapObject(ret);\n };\n\n return imports;\n}\n\nfunction __wbg_init_memory(imports, memory) {\n\n}\n\nfunction __wbg_finalize_init(instance, module) {\n wasm = instance.exports;\n __wbg_init.__wbindgen_wasm_module = module;\n cachedDataViewMemory0 = null;\n cachedUint16ArrayMemory0 = null;\n cachedUint32ArrayMemory0 = null;\n cachedUint8ArrayMemory0 = null;\n\n\n\n return wasm;\n}\n\nfunction initSync(module) {\n if (wasm !== undefined) return wasm;\n\n\n if (typeof module !== 'undefined') {\n if (Object.getPrototypeOf(module) === Object.prototype) {\n ({module} = module)\n } else {\n console.warn('using deprecated parameters for `initSync()`; pass a single object instead')\n }\n }\n\n const imports = __wbg_get_imports();\n\n __wbg_init_memory(imports);\n\n if (!(module instanceof WebAssembly.Module)) {\n module = new WebAssembly.Module(module);\n }\n\n const instance = new WebAssembly.Instance(module, imports);\n\n return __wbg_finalize_init(instance, module);\n}\n\nasync function __wbg_init(module_or_path) {\n if (wasm !== undefined) return wasm;\n\n\n if (typeof module_or_path !== 'undefined') {\n if (Object.getPrototypeOf(module_or_path) === Object.prototype) {\n ({module_or_path} = module_or_path)\n } else {\n console.warn('using deprecated parameters for the initialization function; pass a single object instead')\n }\n }\n\n if (typeof module_or_path === 'undefined') {\n module_or_path = new URL('screeps_clockwork_bg.wasm', import.meta.url);\n }\n const imports = __wbg_get_imports();\n\n if (typeof module_or_path === 'string' || (typeof Request === 'function' && module_or_path instanceof Request) || (typeof URL === 'function' && module_or_path instanceof URL)) {\n module_or_path = fetch(module_or_path);\n }\n\n __wbg_init_memory(imports);\n\n const { instance, module } = await __wbg_load(await module_or_path, imports);\n\n return __wbg_finalize_init(instance, module);\n}\n\nexport { initSync };\nexport default __wbg_init;\n","export const MAX_USIZE = 0xffffffff;\n","export function fromPacked(packedPos: number): RoomPosition {\n const pos = Object.create(RoomPosition.prototype);\n pos.__packedPos = packedPos;\n return pos;\n}\n\nexport function fromPackedRoomName(packedRoomName: number): string {\n // Handle sim room case\n if (packedRoomName === 0) {\n return 'sim';\n }\n\n const HALF_WORLD_SIZE = 128;\n const x_coord = ((packedRoomName >> 8) & 0xff) - HALF_WORLD_SIZE;\n const y_coord = (packedRoomName & 0xff) - HALF_WORLD_SIZE;\n\n const result = (x_coord >= 0 ? `E${x_coord}` : `W${~x_coord}`) + (y_coord >= 0 ? `S${y_coord}` : `N${~y_coord}`);\n\n return result;\n}\n\nexport function packRoomName(room: string): number {\n // Handle sim room case\n if (room === 'sim') {\n return 0;\n }\n\n const HALF_WORLD_SIZE = 128;\n const [, h_dir, h_coord, v_dir, v_coord] = room.match(/^([WE])(\\d+)([NS])(\\d+)$/)!;\n\n let x = parseInt(h_coord);\n if (h_dir === 'W') {\n x = ~x;\n }\n\n let y = parseInt(v_coord);\n if (v_dir === 'N') {\n y = ~y;\n }\n\n x += HALF_WORLD_SIZE;\n y += HALF_WORLD_SIZE;\n\n return (x << 8) | y;\n}\n","import { fromPacked } from '../utils/fromPacked';\nimport { Path as ClockworkPath } from '../wasm/screeps_clockwork';\n\n/**\n * A path from a start position to an end position. Typically returned by a\n * function like `pathToFlowFieldOrigin` rather than created directly.\n */\nexport class Path {\n constructor(private readonly path: ClockworkPath) {}\n\n /**\n * Iterate over the path.\n *\n * @example\n * ```typescript\n * for (const pos of path) {\n * console.log(pos);\n * }\n * ```\n */\n [Symbol.iterator]() {\n let index = 0;\n const length = this.length;\n\n return {\n next: () => {\n if (index < length - 1) {\n return { value: this.get(index++), done: false };\n } else {\n return { value: this.get(index++), done: true };\n }\n }\n };\n }\n\n /**\n * Iterate over the path in reverse order.\n *\n * @example\n * ```typescript\n * for (const pos of path.reversed()) {\n * console.log(pos);\n * }\n * ```\n */\n *reversed() {\n let index = this.length - 1;\n\n return {\n next: () => {\n if (index > 0) {\n return { value: this.get(index--), done: false };\n } else {\n return { value: this.get(index--), done: true };\n }\n }\n };\n }\n\n /**\n * Get the position at a given index.\n */\n get(index: number) {\n const packedPos = this.path.get(index);\n if (packedPos === undefined) {\n throw new Error('Index out of bounds');\n }\n return fromPacked(packedPos);\n }\n\n /**\n * Get the length of the path.\n */\n get length() {\n return this.path.len();\n }\n\n /**\n * Given a current position, find the index of the next position in the path.\n */\n findNextIndex(pos: RoomPosition) {\n return this.path.find_next_index(pos.__packedPos);\n }\n\n /**\n * Convert the path to an array of positions.\n */\n toArray() {\n const result: RoomPosition[] = [];\n for (const packedPos of this.path.to_array()) {\n result.push(fromPacked(packedPos));\n }\n return result;\n }\n\n /**\n * Convert the path to an array of positions in reverse order.\n */\n toArrayReversed() {\n const result: RoomPosition[] = [];\n for (const packedPos of this.path.to_array_reversed()) {\n result.push(fromPacked(packedPos));\n }\n return result;\n }\n\n /**\n * Free the memory allocated for this path.\n */\n free() {\n this.path.free();\n }\n}\n","import { DistanceMap, js_path_to_distance_map_origin } from '../wasm/screeps_clockwork';\nimport { Path } from './path';\n\n/**\n * A distance map for a single room.\n */\nexport class ClockworkDistanceMap {\n constructor(private _map: DistanceMap) {}\n\n /**\n * Gets the distance value at a given position.\n */\n get(x: number, y: number): number {\n return this._map.get(x, y);\n }\n\n /**\n * Sets the distance value at a given position.\n */\n set(x: number, y: number, value: number) {\n this._map.set(x, y, value);\n }\n\n /**\n * Converts the distance map into a flat array of distances.\n */\n toArray(): Uint32Array {\n return this._map.toArray();\n }\n\n /**\n * Frees the memory allocated for this distance map.\n */\n free() {\n this._map.free();\n }\n\n /**\n * Path to the origin from a given position.\n */\n pathToOrigin(start: RoomPosition): Path {\n return new Path(js_path_to_distance_map_origin(start.__packedPos, this._map));\n }\n}\n","import { fromPackedRoomName, packRoomName } from '../utils/fromPacked';\nimport { DistanceMap, js_path_to_multiroom_distance_map_origin, MultiroomDistanceMap } from '../wasm/screeps_clockwork';\nimport { Path } from './path';\n\n/**\n * A distance map that covers multiple rooms. Typically returned by a function\n * like `bfsMultiroomDistanceMap` rather than created directly.\n */\nexport class ClockworkMultiroomDistanceMap {\n constructor(private _map: MultiroomDistanceMap) {}\n\n /**\n * Get the stored value for a given position.\n */\n get(pos: RoomPosition): number {\n return this._map.get(pos.__packedPos);\n }\n\n /**\n * Set the stored value for a given position.\n */\n set(pos: RoomPosition, value: number) {\n this._map.set(pos.__packedPos, value);\n }\n\n /**\n * Get the DistanceMap for a given room.\n */\n getRoom(room: string): DistanceMap | undefined {\n return this._map.get_room(packRoomName(room));\n }\n\n /**\n * List all the rooms covered by this distance map.\n */\n getRooms(): string[] {\n return [...this._map.get_rooms()].map(room => fromPackedRoomName(room));\n }\n\n /**\n * Free the memory allocated for this distance map.\n */\n free() {\n this._map.free();\n }\n\n /**\n * Path to the origin from a given position.\n */\n pathToOrigin(start: RoomPosition): Path {\n return new Path(js_path_to_multiroom_distance_map_origin(start.__packedPos, this._map));\n }\n}\n","import { MAX_USIZE } from '../utils/constants';\nimport { fromPackedRoomName } from '../utils/fromPacked';\nimport { ClockworkCostMatrix, js_bfs_distance_map, js_bfs_multiroom_distance_map } from '../wasm/screeps_clockwork';\nimport { ClockworkDistanceMap } from './distanceMap';\nimport { ClockworkMultiroomDistanceMap } from './multiroomDistanceMap';\n\n/**\n * Generate a [distance map](https://glitchassassin.github.io/screeps-clockwork/primitives/flowfield.html) for a set of positions\n * using a breadth-first search algorithm.\n *\n * The BFS algorithm doesn't include variable costs, and only considers\n * values of 255 (impassible) in the provided cost matrix. Any other\n * values are ignored.\n *\n * This might be useful for creeps with only MOVE parts and/or empty\n * CARRY parts, which don't generate fatigue.\n *\n * Note that the `roomName` on start positions is ignored - all positions\n * are assumed to be in the same room as the cost matrix.\n *\n * @param start - The starting positions.\n * @param costMatrix - The cost matrix to use for the flow field.\n * @returns The flow field.\n */\nexport function bfsDistanceMap(start: RoomPosition[], costMatrix: ClockworkCostMatrix) {\n const startPacked = new Uint32Array(start.map(pos => pos.__packedPos));\n const result = js_bfs_distance_map(startPacked, costMatrix);\n return new ClockworkDistanceMap(result);\n}\n\n/**\n * Create a distance map for the given start positions, using a breadth-first search.\n * This does not factor in terrain costs (treating anything less than 255 in the cost\n * matrix as passable), so it's faster but less useful than Dijkstra's algorithm.\n *\n * This calculates a distance map across multiple rooms, with a few configurable limits:\n * - `maxTiles`: The maximum number of tiles to explore.\n * - `maxRooms`: The maximum number of rooms to explore.\n * - `maxRoomDistance`: Don't explore rooms further (in Manhattan distance) than this.\n * - `maxTileDistance`: Don't explore tiles further (in Chebyshev distance) than this.\n *\n * At least one of these limits must be set.\n *\n * @param start - The starting positions.\n * @param options - The options for the distance map.\n * @returns A multi-room distance map.\n */\nexport function bfsMultiroomDistanceMap(\n start: RoomPosition[],\n {\n costMatrixCallback,\n maxTiles = MAX_USIZE,\n maxRooms = MAX_USIZE,\n maxRoomDistance = MAX_USIZE,\n maxTileDistance = MAX_USIZE\n }: {\n costMatrixCallback: (room: string) => ClockworkCostMatrix | undefined;\n maxTiles?: number;\n maxRooms?: number;\n maxRoomDistance?: number;\n maxTileDistance?: number;\n }\n) {\n if ([maxTiles, maxRooms, maxRoomDistance, maxTileDistance].every(n => n === MAX_USIZE)) {\n throw new Error('At least one of maxTiles, maxRooms, maxRoomDistance, or maxTileDistance must be set');\n }\n\n const startPacked = new Uint32Array(start.map(pos => pos.__packedPos));\n const result = js_bfs_multiroom_distance_map(\n startPacked,\n (room: number) => costMatrixCallback(fromPackedRoomName(room)),\n maxTiles,\n maxRooms,\n maxRoomDistance,\n maxTileDistance\n );\n return new ClockworkMultiroomDistanceMap(result);\n}\n","import { FlowField, js_path_to_flow_field_origin } from '../wasm/screeps_clockwork';\nimport { Path } from './path';\n\n/**\n * A flow field for a single room that stores multiple directions per tile.\n */\nexport class ClockworkFlowField {\n constructor(private _flowField: FlowField) {}\n\n /**\n * Get the internal value for a given coordinate.\n */\n get(x: number, y: number): number {\n return this._flowField.get(x, y);\n }\n\n /**\n * Set the internal value for a given coordinate.\n */\n set(x: number, y: number, value: number): void {\n this._flowField.set(x, y, value);\n }\n\n /**\n * Get the list of valid directions for a given coordinate.\n */\n getDirections(x: number, y: number): DirectionConstant[] {\n return this._flowField.getDirections(x, y);\n }\n\n /**\n * Set the list of valid directions for a given coordinate.\n */\n setDirections(x: number, y: number, directions: DirectionConstant[]): void {\n this._flowField.setDirections(x, y, directions);\n }\n\n /**\n * Add a direction to the list of valid directions for a given coordinate.\n */\n addDirection(x: number, y: number, direction: DirectionConstant): void {\n this._flowField.addDirection(x, y, direction);\n }\n\n /**\n * Free the memory allocated for this flow field.\n */\n free(): void {\n this._flowField.free();\n }\n\n /**\n * Given a flow field (for a single room), find the path from a given position to\n * the origin. Never paths through other rooms.\n */\n pathToOrigin(start: RoomPosition): Path {\n return new Path(js_path_to_flow_field_origin(start.__packedPos, this._flowField));\n }\n}\n","import { js_path_to_mono_flow_field_origin, MonoFlowField } from '../wasm/screeps_clockwork';\nimport { Path } from './path';\n\n/**\n * A flow field for a single room that stores one direction per tile.\n */\nexport class ClockworkMonoFlowField {\n constructor(private _flowField: MonoFlowField) {}\n\n /**\n * Get the direction for a given coordinate.\n */\n get(x: number, y: number): DirectionConstant | undefined {\n return this._flowField.get(x, y);\n }\n\n /**\n * Set the direction for a given coordinate.\n */\n set(x: number, y: number, value?: DirectionConstant): void {\n this._flowField.set(x, y, value);\n }\n\n /**\n * Free the memory allocated for this flow field.\n */\n free(): void {\n this._flowField.free();\n }\n\n /**\n * Given a monodirectional flow field (for a single room), find the path from a given position to\n * the origin. Never paths through other rooms.\n */\n pathToOrigin(start: RoomPosition): Path {\n return new Path(js_path_to_mono_flow_field_origin(start.__packedPos, this._flowField));\n }\n}\n","import { fromPackedRoomName, packRoomName } from '../utils/fromPacked';\nimport { MultiroomFlowField, js_path_to_multiroom_flow_field_origin } from '../wasm/screeps_clockwork';\nimport { ClockworkFlowField } from './flowField';\nimport { Path } from './path';\n\n/**\n * A flow field that spans multiple rooms, storing multiple directions per tile.\n */\nexport class ClockworkMultiroomFlowField {\n constructor(private _flowField: MultiroomFlowField) {}\n\n /**\n * Get the flow field value at a given position.\n */\n get(pos: RoomPosition): number {\n return this._flowField.get(pos.__packedPos);\n }\n\n /**\n * Set the flow field value at a given position.\n */\n set(pos: RoomPosition, value: number): void {\n this._flowField.set(pos.__packedPos, value);\n }\n\n /**\n * Get the list of valid directions at a given position.\n */\n getDirections(pos: RoomPosition): DirectionConstant[] {\n return this._flowField.getDirections(pos.__packedPos);\n }\n\n /**\n * Set the list of valid directions at a given position.\n */\n setDirections(pos: RoomPosition, directions: DirectionConstant[]): void {\n this._flowField.setDirections(pos.__packedPos, directions);\n }\n\n /**\n * Add a direction to the list of valid directions at a given position.\n */\n addDirection(pos: RoomPosition, direction: DirectionConstant): void {\n this._flowField.addDirection(pos.__packedPos, direction);\n }\n\n /**\n * Get the list of rooms in the flow field.\n */\n getRooms(): string[] {\n const rooms = [];\n for (const packedRoomName of this._flowField.getRooms()) {\n rooms.push(fromPackedRoomName(packedRoomName));\n }\n return rooms;\n }\n\n /**\n * Get the flow field for a given room.\n */\n getRoom(roomName: string): ClockworkFlowField | null {\n const flowField = this._flowField.getRoom(packRoomName(roomName));\n return flowField ? new ClockworkFlowField(flowField) : null;\n }\n\n /**\n * Find a path from a given position to the origin of the flow field.\n */\n pathToOrigin(start: RoomPosition): Path {\n return new Path(js_path_to_multiroom_flow_field_origin(start.__packedPos, this._flowField));\n }\n\n /**\n * Free the memory allocated for this flow field.\n */\n free(): void {\n this._flowField.free();\n }\n}\n","import { fromPackedRoomName, packRoomName } from '../utils/fromPacked';\nimport { MultiroomMonoFlowField, js_path_to_multiroom_mono_flow_field_origin } from '../wasm/screeps_clockwork';\nimport { ClockworkMonoFlowField } from './monoFlowField';\nimport { Path } from './path';\n\n/**\n * A flow field that spans multiple rooms, storing a single direction per tile.\n */\nexport class ClockworkMultiroomMonoFlowField {\n constructor(private _flowField: MultiroomMonoFlowField) {}\n\n /**\n * Get the direction at a given position.\n */\n get(pos: RoomPosition): DirectionConstant | null {\n return this._flowField.get(pos.__packedPos) ?? null;\n }\n\n /**\n * Set the direction at a given position.\n */\n set(pos: RoomPosition, direction: DirectionConstant | null): void {\n this._flowField.set(pos.__packedPos, direction ?? undefined);\n }\n\n /**\n * Get the list of rooms in the flow field.\n */\n getRooms(): string[] {\n const rooms = [];\n for (const packedRoomName of this._flowField.getRooms()) {\n rooms.push(fromPackedRoomName(packedRoomName));\n }\n return rooms;\n }\n\n /**\n * Get the flow field for a given room.\n */\n getRoom(roomName: string): ClockworkMonoFlowField | null {\n const flowField = this._flowField.getRoom(packRoomName(roomName));\n return flowField ? new ClockworkMonoFlowField(flowField) : null;\n }\n\n /**\n * Find a path from a given position to the origin of the flow field.\n */\n pathToOrigin(start: RoomPosition): Path {\n return new Path(js_path_to_multiroom_mono_flow_field_origin(start.__packedPos, this._flowField));\n }\n\n /**\n * Free the memory allocated for this flow field.\n */\n free(): void {\n this._flowField.free();\n }\n}\n","import { MAX_USIZE } from '../utils/constants';\nimport { fromPackedRoomName } from '../utils/fromPacked';\nimport {\n ClockworkCostMatrix,\n js_bfs_flow_field,\n js_bfs_mono_flow_field,\n js_bfs_multiroom_flow_field,\n js_bfs_multiroom_mono_flow_field\n} from '../wasm/screeps_clockwork';\nimport { ClockworkFlowField } from './flowField';\nimport { ClockworkMonoFlowField } from './monoFlowField';\nimport { ClockworkMultiroomFlowField } from './multiroomFlowField';\nimport { ClockworkMultiroomMonoFlowField } from './multiroomMonoFlowField';\n\n/**\n * Generate a [flow field](https://glitchassassin.github.io/screeps-clockwork/primitives/flowfield.html) for a set of positions\n * using a breadth-first search algorithm.\n *\n * The BFS algorithm doesn't include variable costs, and only considers\n * values of 255 (impassible) in the provided cost matrix. Any other\n * values are ignored.\n *\n * This might be useful for creeps with only MOVE parts and/or empty\n * CARRY parts, which don't generate fatigue.\n *\n * @param start - The starting positions.\n * @param costMatrix - The cost matrix to use for the flow field.\n * @returns The flow field.\n */\nexport function bfsFlowField(start: RoomPosition[], costMatrix: ClockworkCostMatrix) {\n const startPacked = new Uint32Array(start.map(pos => pos.__packedPos));\n const result = js_bfs_flow_field(startPacked, costMatrix);\n return new ClockworkFlowField(result);\n}\n\n/**\n * Generate a [mono-directional flow field](https://glitchassassin.github.io/screeps-clockwork/primitives/flowfield.html)\n * for a set of positions using a breadth-first search algorithm.\n *\n * The BFS algorithm doesn't include variable costs, and only considers\n * values of 255 (impassible) in the provided cost matrix. Any other\n * values are ignored.\n *\n * This might be useful for creeps with only MOVE parts and/or empty\n * CARRY parts, which don't generate fatigue.\n *\n * Note that the `roomName` on start positions is ignored - all positions\n * are assumed to be in the same room as the cost matrix.\n *\n * @param start - The starting positions.\n * @param costMatrix - The cost matrix to use for the flow field.\n * @returns The flow field.\n */\nexport function bfsMonoFlowField(start: RoomPosition[], costMatrix: ClockworkCostMatrix) {\n const startPacked = new Uint32Array(start.map(pos => pos.__packedPos));\n const result = js_bfs_mono_flow_field(startPacked, costMatrix);\n return new ClockworkMonoFlowField(result);\n}\n\n/**\n * Generate a multiroom flow field for a set of positions using a breadth-first search algorithm.\n *\n * The BFS algorithm doesn't include variable costs, and only considers\n * values of 255 (impassible) in the provided cost matrix. Any other\n * values are ignored.\n *\n * This might be useful for creeps with only MOVE parts and/or empty\n * CARRY parts, which don't generate fatigue.\n *\n * @param start - The starting positions.\n * @param costMatrixCallback - A function that returns a cost matrix for a given room name.\n * @param options - Options for the flow field generation.\n * @returns The flow field.\n */\nexport function bfsMultiroomFlowField(\n start: RoomPosition[],\n {\n costMatrixCallback,\n maxTiles = MAX_USIZE,\n maxRooms = MAX_USIZE,\n maxRoomDistance = MAX_USIZE,\n maxTileDistance = MAX_USIZE\n }: {\n costMatrixCallback: (roomName: string) => ClockworkCostMatrix | undefined;\n maxTiles?: number;\n maxRooms?: number;\n maxRoomDistance?: number;\n maxTileDistance?: number;\n }\n) {\n if ([maxTiles, maxRooms, maxRoomDistance, maxTileDistance].every(n => n === MAX_USIZE)) {\n throw new Error('At least one of maxTiles, maxRooms, maxRoomDistance, or maxTileDistance must be set');\n }\n\n const startPacked = new Uint32Array(start.map(pos => pos.__packedPos));\n const result = js_bfs_multiroom_flow_field(\n startPacked,\n (packedRoomName: number) => {\n const roomName = fromPackedRoomName(packedRoomName);\n return costMatrixCallback(roomName);\n },\n maxTiles,\n maxRooms,\n maxRoomDistance,\n maxTileDistance\n );\n return new ClockworkMultiroomFlowField(result);\n}\n\n/**\n * Generate a multiroom mono-directional flow field for a set of positions using a breadth-first search algorithm.\n *\n * The BFS algorithm doesn't include variable costs, and only considers\n * values of 255 (impassible) in the provided cost matrix. Any other\n * values are ignored.\n *\n * This might be useful for creeps with only MOVE parts and/or empty\n * CARRY parts, which don't generate fatigue.\n *\n * @param start - The starting positions.\n * @param getCostMatrix - A function that returns a cost matrix for a given room name.\n * @param options - Options for the flow field generation.\n * @returns The flow field.\n */\nexport function bfsMultiroomMonoFlowField(\n start: RoomPosition[],\n {\n costMatrixCallback,\n maxTiles = MAX_USIZE,\n maxRooms = MAX_USIZE,\n maxRoomDistance = MAX_USIZE,\n maxTileDistance = MAX_USIZE\n }: {\n costMatrixCallback: (roomName: string) => ClockworkCostMatrix | undefined;\n maxTiles?: number;\n maxRooms?: number;\n maxRoomDistance?: number;\n maxTileDistance?: number;\n }\n) {\n if ([maxTiles, maxRooms, maxRoomDistance, maxTileDistance].every(n => n === MAX_USIZE)) {\n throw new Error('At least one of maxTiles, maxRooms, maxRoomDistance, or maxTileDistance must be set');\n }\n\n const startPacked = new Uint32Array(start.map(pos => pos.__packedPos));\n const result = js_bfs_multiroom_mono_flow_field(\n startPacked,\n (packedRoomName: number) => {\n const roomName = fromPackedRoomName(packedRoomName);\n return costMatrixCallback(roomName);\n },\n maxTiles,\n maxRooms,\n maxRoomDistance,\n maxTileDistance\n );\n return new ClockworkMultiroomMonoFlowField(result);\n}\n","import { MAX_USIZE } from '../utils/constants';\nimport { fromPackedRoomName } from '../utils/fromPacked';\nimport {\n ClockworkCostMatrix,\n js_dijkstra_distance_map,\n js_dijkstra_multiroom_distance_map\n} from '../wasm/screeps_clockwork';\nimport { ClockworkDistanceMap } from './distanceMap';\nimport { ClockworkMultiroomDistanceMap } from './multiroomDistanceMap';\n\n/**\n * Generate a [distance map](https://glitchassassin.github.io/screeps-clockwork/primitives/flowfield.html) for a set of positions\n * using Dijkstra's algorithm.\n *\n * Dijkstra's algorithm includes variable costs to account for terrain or other cost functions.\n *\n * Note that values of 0 in the cost matrix may have unexpected behavior. You probably want\n * a cost matrix with a default value of at least 1.\n *\n * Note that the `roomName` on start positions is ignored - all positions\n * are assumed to be in the same room as the cost matrix.\n *\n * @param start - The starting positions.\n * @param costMatrix - The cost matrix to use for the flow field.\n * @returns The flow field.\n */\nexport function dijkstraDistanceMap(start: RoomPosition[], costMatrix: ClockworkCostMatrix) {\n const startPacked = new Uint32Array(start.map(pos => pos.__packedPos));\n const result = js_dijkstra_distance_map(startPacked, costMatrix);\n return new ClockworkDistanceMap(result);\n}\n\n/**\n * Create a distance map for the given start positions, using Dijkstra's algorithm to\n * factor in terrain costs (0-255, where 255 is impassable).\n *\n * This calculates a distance map across multiple rooms, with a few configurable limits:\n * - `maxTiles`: The maximum number of tiles to explore.\n * - `maxRooms`: The maximum number of rooms to explore.\n * - `maxRoomDistance`: Don't explore rooms further (in Manhattan distance) than this.\n * - `maxTileDistance`: Don't explore tiles further (in accumulated cost) than this.\n *\n * At least one of these limits must be set.\n *\n * @param start - The starting positions.\n * @param options - The options for the distance map.\n * @returns A multi-room distance map.\n */\nexport function dijkstraMultiroomDistanceMap(\n start: RoomPosition[],\n {\n costMatrixCallback,\n maxTiles = MAX_USIZE,\n maxRooms = MAX_USIZE,\n maxRoomDistance = MAX_USIZE,\n maxTileDistance = MAX_USIZE\n }: {\n costMatrixCallback: (room: string) => ClockworkCostMatrix | undefined;\n maxTiles?: number;\n maxRooms?: number;\n maxRoomDistance?: number;\n maxTileDistance?: number;\n }\n) {\n if ([maxTiles, maxRooms, maxRoomDistance, maxTileDistance].every(n => n === MAX_USIZE)) {\n throw new Error('At least one of maxTiles, maxRooms, maxRoomDistance, or maxTileDistance must be set');\n }\n\n const startPacked = new Uint32Array(start.map(pos => pos.__packedPos));\n const result = js_dijkstra_multiroom_distance_map(\n startPacked,\n (room: number) => costMatrixCallback(fromPackedRoomName(room)),\n maxTiles,\n maxRooms,\n maxRoomDistance,\n maxTileDistance\n );\n return new ClockworkMultiroomDistanceMap(result);\n}\n","import { MAX_USIZE } from '../utils/constants';\nimport { fromPackedRoomName } from '../utils/fromPacked';\nimport {\n ClockworkCostMatrix,\n js_dijkstra_flow_field,\n js_dijkstra_mono_flow_field,\n js_dijkstra_multiroom_flow_field,\n js_dijkstra_multiroom_mono_flow_field\n} from '../wasm/screeps_clockwork';\nimport { ClockworkFlowField } from './flowField';\nimport { ClockworkMonoFlowField } from './monoFlowField';\nimport { ClockworkMultiroomFlowField } from './multiroomFlowField';\nimport { ClockworkMultiroomMonoFlowField } from './multiroomMonoFlowField';\n\n/**\n * Generate a [flow field](https://glitchassassin.github.io/screeps-clockwork/primitives/flowfield.html) for a set of positions\n * using Dijkstra's algorithm.\n *\n * Dijkstra's algorithm includes variable costs to account for terrain or other cost functions.\n *\n * Note that values of 0 in the cost matrix may have unexpected behavior. You probably want\n * a cost matrix with a default value of at least 1.\n *\n * @param start - The starting positions.\n * @param costMatrix - The cost matrix to use for the flow field.\n * @returns The flow field.\n */\nexport function dijkstraFlowField(start: RoomPosition[], costMatrix: ClockworkCostMatrix) {\n const startPacked = new Uint32Array(start.map(pos => pos.__packedPos));\n const result = js_dijkstra_flow_field(startPacked, costMatrix);\n return new ClockworkFlowField(result);\n}\n\n/**\n * Generate a [mono-directional flow field](https://glitchassassin.github.io/screeps-clockwork/primitives/flowfield.html)\n * for a set of positions using Dijkstra's algorithm.\n *\n * Dijkstra's algorithm includes variable costs to account for terrain or other cost functions.\n *\n * Note that values of 0 in the cost matrix may have unexpected behavior. You probably want\n * a cost matrix with a default value of at least 1.\n *\n * Note that the `roomName` on start positions is ignored - all positions\n * are assumed to be in the same room as the cost matrix.\n *\n * @param start - The starting positions.\n * @param costMatrix - The cost matrix to use for the flow field.\n * @returns The flow field.\n */\nexport function dijkstraMonoFlowField(start: RoomPosition[], costMatrix: ClockworkCostMatrix) {\n const startPacked = new Uint32Array(start.map(pos => pos.__packedPos));\n const result = js_dijkstra_mono_flow_field(startPacked, costMatrix);\n return new ClockworkMonoFlowField(result);\n}\n\n/**\n * Generate a multiroom flow field for a set of positions using Dijkstra's algorithm.\n *\n * Dijkstra's algorithm includes variable costs to account for terrain or other cost functions.\n *\n * Note that values of 0 in the cost matrix may have unexpected behavior. You probably want\n * a cost matrix with a default value of at least 1.\n *\n * @param start - The starting positions.\n * @param costMatrixCallback - A function that returns a cost matrix for a given room name.\n * @param options - Options for the flow field generation.\n * @returns The flow field.\n */\nexport function dijkstraMultiroomFlowField(\n start: RoomPosition[],\n {\n costMatrixCallback,\n maxTiles = MAX_USIZE,\n maxRooms = MAX_USIZE,\n maxRoomDistance = MAX_USIZE,\n maxTileDistance = MAX_USIZE\n }: {\n costMatrixCallback: (roomName: string) => ClockworkCostMatrix | undefined;\n maxTiles?: number;\n maxRooms?: number;\n maxRoomDistance?: number;\n maxTileDistance?: number;\n }\n) {\n if ([maxTiles, maxRooms, maxRoomDistance, maxTileDistance].every(n => n === MAX_USIZE)) {\n throw new Error('At least one of maxTiles, maxRooms, maxRoomDistance, or maxTileDistance must be set');\n }\n\n const startPacked = new Uint32Array(start.map(pos => pos.__packedPos));\n const result = js_dijkstra_multiroom_flow_field(\n startPacked,\n (packedRoomName: number) => {\n const roomName = fromPackedRoomName(packedRoomName);\n return costMatrixCallback(roomName);\n },\n maxTiles,\n maxRooms,\n maxRoomDistance,\n maxTileDistance\n );\n return new ClockworkMultiroomFlowField(result);\n}\n\n/**\n * Generate a multiroom mono-directional flow field for a set of positions using Dijkstra's algorithm.\n *\n * Dijkstra's algorithm includes variable costs to account for terrain or other cost functions.\n *\n * Note that values of 0 in the cost matrix may have unexpected behavior. You probably want\n * a cost matrix with a default value of at least 1.\n *\n * @param start - The starting positions.\n * @param costMatrixCallback - A function that returns a cost matrix for a given room name.\n * @param options - Options for the flow field generation.\n * @returns The flow field.\n */\nexport function dijkstraMultiroomMonoFlowField(\n start: RoomPosition[],\n {\n costMatrixCallback,\n maxTiles = MAX_USIZE,\n maxRooms = MAX_USIZE,\n maxRoomDistance = MAX_USIZE,\n maxTileDistance = MAX_USIZE\n }: {\n costMatrixCallback: (roomName: string) => ClockworkCostMatrix | undefined;\n maxTiles?: number;\n maxRooms?: number;\n maxRoomDistance?: number;\n maxTileDistance?: number;\n }\n) {\n if ([maxTiles, maxRooms, maxRoomDistance, maxTileDistance].every(n => n === MAX_USIZE)) {\n throw new Error('At least one of maxTiles, maxRooms, maxRoomDistance, or maxTileDistance must be set');\n }\n\n const startPacked = new Uint32Array(start.map(pos => pos.__packedPos));\n const result = js_dijkstra_multiroom_mono_flow_field(\n startPacked,\n (packedRoomName: number) => {\n const roomName = fromPackedRoomName(packedRoomName);\n return costMatrixCallback(roomName);\n },\n maxTiles,\n maxRooms,\n maxRoomDistance,\n maxTileDistance\n );\n return new ClockworkMultiroomMonoFlowField(result);\n}\n","import { get_range } from '../wasm/screeps_clockwork';\n\n/**\n * Get the global range between two positions. This is different\n * from the `getRange` method on `RoomPosition`, which gets the\n * range only within the same room.\n *\n * @param pos1 - The first position.\n * @param pos2 - The second position.\n * @returns The range between the two positions.\n */\nexport function getRange(pos1: RoomPosition, pos2: RoomPosition) {\n return get_range(pos1.__packedPos, pos2.__packedPos);\n}\n","import 'fastestsmallesttextencoderdecoder-encodeinto/EncoderDecoderTogether.min.js';\n\nimport {\n type InitOutput,\n ClockworkCostMatrix,\n DistanceMap,\n FlowField,\n MonoFlowField,\n initSync,\n version\n} from './wasm/screeps_clockwork';\nexport { ClockworkCostMatrix, DistanceMap, FlowField, MonoFlowField };\n\nexport * from './wrappers/bfsDistanceMap';\nexport * from './wrappers/bfsFlowField';\nexport * from './wrappers/dijkstraDistanceMap';\nexport * from './wrappers/dijkstraFlowField';\nexport * from './wrappers/flowField';\nexport * from './wrappers/getRange';\nexport * from './wrappers/monoFlowField';\nexport * from './wrappers/multiroomFlowField';\nexport * from './wrappers/multiroomMonoFlowField';\nexport * from './wrappers/path';\n\ndeclare namespace WebAssembly {\n class Module {\n constructor(bytes: Uint8Array);\n }\n}\n\nlet wasm_bytes: Uint8Array;\nlet wasm_module: WebAssembly.Module;\nlet wasm_instance: InitOutput;\nlet initialized = false;\n/**\n * The `initialize` function should be called in your main loop before\n * using any other screeps-clockwork functions. Depending on available\n * CPU, it may not load the WASM module completely in the first tick,\n * but it will pick back up where it left off if the script times out.\n *\n * @param verbose - If true, will log the state of the WASM module as it loads.\n */\nexport function initialize(verbose = false) {\n // need to freshly override the fake console object each tick\n console.error = console_error;\n if (!wasm_bytes) wasm_bytes = require('screeps_clockwork.wasm');\n if (verbose && !initialized) console.log('[clockwork] wasm_bytes loaded');\n if (!wasm_module) wasm_module = new WebAssembly.Module(wasm_bytes);\n if (verbose && !initialized) console.log('[clockwork] wasm_module loaded');\n if (!wasm_instance) wasm_instance = initSync({ module: wasm_module });\n if (verbose && !initialized) {\n console.log('[clockwork] wasm_instance loaded');\n console.log(`[clockwork] version ${version()} initialized`);\n }\n initialized = true;\n}\n\n// This provides the function `console.error` that wasm_bindgen sometimes expects to exist,\n// especially with type checks in debug mode. An alternative is to have this be `function () {}`\n// and let the exception handler log the thrown JS exceptions, but there is some additional\n// information that wasm_bindgen only passes here.\n//\n// There is nothing special about this function and it may also be used by any JS/Rust code as a convenience.\nfunction console_error() {\n const processedArgs = Array.from(arguments)\n .map(arg => {\n if (arg instanceof Error) {\n // On this version of Node, the `stack` property of errors contains\n // the message as well.\n return arg.stack;\n } else {\n return arg;\n }\n })\n .join(' ');\n console.log('ERROR:', processedArgs);\n}\n"],"names":["global","this","Path"],"mappings":"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,CAAC,GAAG,CAAC,EAAE,CAAC;AACnf,CAAA,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACtf,CAAA,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GA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"}