aboutsummaryrefslogtreecommitdiff
path: root/docs/js
diff options
context:
space:
mode:
Diffstat (limited to 'docs/js')
-rw-r--r--docs/js/RDKit_minimal.js1
-rw-r--r--docs/js/RDKit_minimal.min.js2
-rw-r--r--docs/js/RDKit_minimal.min.js.map1
-rw-r--r--docs/js/RDKit_minimal.wasmbin0 -> 4603887 bytes
-rw-r--r--docs/js/main.js8910
-rw-r--r--docs/js/main.min.js2
-rw-r--r--docs/js/main.min.js.map1
-rw-r--r--docs/js/my.js0
-rw-r--r--docs/js/my.min.js2
-rw-r--r--docs/js/my.min.js.map1
10 files changed, 8920 insertions, 0 deletions
diff --git a/docs/js/RDKit_minimal.js b/docs/js/RDKit_minimal.js
new file mode 100644
index 0000000..15771f9
--- /dev/null
+++ b/docs/js/RDKit_minimal.js
@@ -0,0 +1 @@
+var Module=typeof Module!=="undefined"?Module:{};var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram="./this.program";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window==="object";ENVIRONMENT_IS_WORKER=typeof importScripts==="function";ENVIRONMENT_IS_NODE=typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string";ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require("path").dirname(scriptDirectory)+"/"}else{scriptDirectory=__dirname+"/"}read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process["argv"].length>1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",abort);quit_=function(status){process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"}}else if(ENVIRONMENT_IS_SHELL){if(typeof read!="undefined"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){arguments_=scriptArgs}else if(typeof arguments!="undefined"){arguments_=arguments}if(typeof quit==="function"){quit_=function(status){quit(status)}}if(typeof print!=="undefined"){if(typeof console==="undefined")console={};console.log=print;console.warn=console.error=typeof printErr!=="undefined"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1)}else{scriptDirectory=""}{read_=function shell_read(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function readBinary(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function readAsync(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function xhr_onload(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var STACK_ALIGN=16;function dynamicAlloc(size){var ret=HEAP32[DYNAMICTOP_PTR>>2];var end=ret+size+15&-16;HEAP32[DYNAMICTOP_PTR>>2]=end;return ret}function getNativeTypeSize(type){switch(type){case"i1":case"i8":return 1;case"i16":return 2;case"i32":return 4;case"i64":return 8;case"float":return 4;case"double":return 8;default:{if(type[type.length-1]==="*"){return 4}else if(type[0]==="i"){var bits=Number(type.substr(1));assert(bits%8===0,"getNativeTypeSize invalid bits "+bits+", type "+type);return bits/8}else{return 0}}}}function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}function convertJsFunctionToWasm(func,sig){if(typeof WebAssembly.Function==="function"){var typeNames={"i":"i32","j":"i64","f":"f32","d":"f64"};var type={parameters:[],results:sig[0]=="v"?[]:[typeNames[sig[0]]]};for(var i=1;i<sig.length;++i){type.parameters.push(typeNames[sig[i]])}return new WebAssembly.Function(type,func)}var typeSection=[1,0,1,96];var sigRet=sig.slice(0,1);var sigParam=sig.slice(1);var typeCodes={"i":127,"j":126,"f":125,"d":124};typeSection.push(sigParam.length);for(var i=0;i<sigParam.length;++i){typeSection.push(typeCodes[sigParam[i]])}if(sigRet=="v"){typeSection.push(0)}else{typeSection=typeSection.concat([1,typeCodes[sigRet]])}typeSection[1]=typeSection.length-2;var bytes=new Uint8Array([0,97,115,109,1,0,0,0].concat(typeSection,[2,7,1,1,101,1,102,0,0,7,5,1,1,102,0,0]));var module=new WebAssembly.Module(bytes);var instance=new WebAssembly.Instance(module,{"e":{"f":func}});var wrappedFunc=instance.exports["f"];return wrappedFunc}var freeTableIndexes=[];var functionsInTableMap;function addFunctionWasm(func,sig){var table=wasmTable;if(!functionsInTableMap){functionsInTableMap=new WeakMap;for(var i=0;i<table.length;i++){var item=table.get(i);if(item){functionsInTableMap.set(item,i)}}}if(functionsInTableMap.has(func)){return functionsInTableMap.get(func)}var ret;if(freeTableIndexes.length){ret=freeTableIndexes.pop()}else{ret=table.length;try{table.grow(1)}catch(err){if(!(err instanceof RangeError)){throw err}throw"Unable to grow wasm table. Set ALLOW_TABLE_GROWTH."}}try{table.set(ret,func)}catch(err){if(!(err instanceof TypeError)){throw err}var wrapped=convertJsFunctionToWasm(func,sig);table.set(ret,wrapped)}functionsInTableMap.set(func,ret);return ret}function removeFunctionWasm(index){functionsInTableMap.delete(wasmTable.get(index));freeTableIndexes.push(index)}var funcWrappers={};function dynCall(sig,ptr,args){if(args&&args.length){return Module["dynCall_"+sig].apply(null,[ptr].concat(args))}else{return Module["dynCall_"+sig].call(null,ptr)}}var tempRet0=0;var setTempRet0=function(value){tempRet0=value};var getTempRet0=function(){return tempRet0};var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime;if(Module["noExitRuntime"])noExitRuntime=Module["noExitRuntime"];if(typeof WebAssembly!=="object"){abort("no native wasm support detected")}function setValue(ptr,value,type,noSafe){type=type||"i8";if(type.charAt(type.length-1)==="*")type="i32";switch(type){case"i1":HEAP8[ptr>>0]=value;break;case"i8":HEAP8[ptr>>0]=value;break;case"i16":HEAP16[ptr>>1]=value;break;case"i32":HEAP32[ptr>>2]=value;break;case"i64":tempI64=[value>>>0,(tempDouble=value,+Math_abs(tempDouble)>=1?tempDouble>0?(Math_min(+Math_floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math_ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[ptr>>2]=tempI64[0],HEAP32[ptr+4>>2]=tempI64[1];break;case"float":HEAPF32[ptr>>2]=value;break;case"double":HEAPF64[ptr>>3]=value;break;default:abort("invalid type for setValue: "+type)}}var wasmMemory;var wasmTable=new WebAssembly.Table({"initial":4549,"maximum":4549+0,"element":"anyfunc"});var ABORT=false;var EXITSTATUS=0;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}function getCFunc(ident){var func=Module["_"+ident];assert(func,"Cannot call unknown function "+ident+", make sure it is exported");return func}function ccall(ident,returnType,argTypes,args,opts){var toC={"string":function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){var len=(str.length<<2)+1;ret=stackAlloc(len);stringToUTF8(str,ret,len)}return ret},"array":function(arr){var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}};function convertReturnValue(ret){if(returnType==="string")return UTF8ToString(ret);if(returnType==="boolean")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i<args.length;i++){var converter=toC[argTypes[i]];if(converter){if(stack===0)stack=stackSave();cArgs[i]=converter(args[i])}else{cArgs[i]=args[i]}}}var ret=func.apply(null,cArgs);ret=convertReturnValue(ret);if(stack!==0)stackRestore(stack);return ret}var ALLOC_NONE=3;var UTF8Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf8"):undefined;function UTF8ArrayToString(heap,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var endPtr=idx;while(heap[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&heap.subarray&&UTF8Decoder){return UTF8Decoder.decode(heap.subarray(idx,endPtr))}else{var str="";while(idx<endPtr){var u0=heap[idx++];if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heap[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heap[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heap[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i<str.length;++i){var u=str.charCodeAt(i);if(u>=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i<str.length;++i){var u=str.charCodeAt(i);if(u>=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}var UTF16Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf-16le"):undefined;function UTF16ToString(ptr,maxBytesToRead){var endPtr=ptr;var idx=endPtr>>1;var maxIdx=idx+maxBytesToRead/2;while(!(idx>=maxIdx)&&HEAPU16[idx])++idx;endPtr=idx<<1;if(endPtr-ptr>32&&UTF16Decoder){return UTF16Decoder.decode(HEAPU8.subarray(ptr,endPtr))}else{var i=0;var str="";while(1){var codeUnit=HEAP16[ptr+i*2>>1];if(codeUnit==0||i==maxBytesToRead/2)return str;++i;str+=String.fromCharCode(codeUnit)}}}function stringToUTF16(str,outPtr,maxBytesToWrite){if(maxBytesToWrite===undefined){maxBytesToWrite=2147483647}if(maxBytesToWrite<2)return 0;maxBytesToWrite-=2;var startPtr=outPtr;var numCharsToWrite=maxBytesToWrite<str.length*2?maxBytesToWrite/2:str.length;for(var i=0;i<numCharsToWrite;++i){var codeUnit=str.charCodeAt(i);HEAP16[outPtr>>1]=codeUnit;outPtr+=2}HEAP16[outPtr>>1]=0;return outPtr-startPtr}function lengthBytesUTF16(str){return str.length*2}function UTF32ToString(ptr,maxBytesToRead){var i=0;var str="";while(!(i>=maxBytesToRead/4)){var utf32=HEAP32[ptr+i*4>>2];if(utf32==0)break;++i;if(utf32>=65536){var ch=utf32-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}else{str+=String.fromCharCode(utf32)}}return str}function stringToUTF32(str,outPtr,maxBytesToWrite){if(maxBytesToWrite===undefined){maxBytesToWrite=2147483647}if(maxBytesToWrite<4)return 0;var startPtr=outPtr;var endPtr=startPtr+maxBytesToWrite-4;for(var i=0;i<str.length;++i){var codeUnit=str.charCodeAt(i);if(codeUnit>=55296&&codeUnit<=57343){var trailSurrogate=str.charCodeAt(++i);codeUnit=65536+((codeUnit&1023)<<10)|trailSurrogate&1023}HEAP32[outPtr>>2]=codeUnit;outPtr+=4;if(outPtr+4>endPtr)break}HEAP32[outPtr>>2]=0;return outPtr-startPtr}function lengthBytesUTF32(str){var len=0;for(var i=0;i<str.length;++i){var codeUnit=str.charCodeAt(i);if(codeUnit>=55296&&codeUnit<=57343)++i;len+=4}return len}function allocateUTF8(str){var size=lengthBytesUTF8(str)+1;var ret=_malloc(size);if(ret)stringToUTF8Array(str,HEAP8,ret,size);return ret}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i<str.length;++i){HEAP8[buffer++>>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}var WASM_PAGE_SIZE=65536;var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var STACK_BASE=5736160,DYNAMIC_BASE=5736160,DYNAMICTOP_PTR=493104;var INITIAL_INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{wasmMemory=new WebAssembly.Memory({"initial":INITIAL_INITIAL_MEMORY/WASM_PAGE_SIZE,"maximum":INITIAL_INITIAL_MEMORY/WASM_PAGE_SIZE})}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_INITIAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);HEAP32[DYNAMICTOP_PTR>>2]=DYNAMIC_BASE;function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){Module["dynCall_v"](func)}else{Module["dynCall_vi"](func,callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){FS.ignorePermissions=false;callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){runtimeExited=true}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var Math_abs=Math.abs;var Math_ceil=Math.ceil;var Math_floor=Math.floor;var Math_min=Math.min;var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}what+="";out(what);err(what);ABORT=true;EXITSTATUS=1;what="abort("+what+"). Build with -s ASSERTIONS=1 for more info.";throw new WebAssembly.RuntimeError(what)}function hasPrefix(str,prefix){return String.prototype.startsWith?str.startsWith(prefix):str.indexOf(prefix)===0}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return hasPrefix(filename,dataURIPrefix)}var fileURIPrefix="file://";function isFileURI(filename){return hasPrefix(filename,fileURIPrefix)}var wasmBinaryFile="RDKit_minimal.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(){try{if(wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(wasmBinaryFile)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)&&typeof fetch==="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary()})}return new Promise(function(resolve,reject){resolve(getBinary())})}function createWasm(){var info={"env":asmLibraryArg,"wasi_snapshot_preview1":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;removeRunDependency("wasm-instantiate")}addRunDependency("wasm-instantiate");function receiveInstantiatedSource(output){receiveInstance(output["instance"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch==="function"){fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiatedSource,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiatedSource)})})}else{return instantiateArrayBuffer(receiveInstantiatedSource)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync();return{}}var tempDouble;var tempI64;__ATINIT__.push({func:function(){___wasm_call_ctors()}});function demangle(func){return func}function demangleAll(text){var regex=/\b_Z[\w\d_]+/g;return text.replace(regex,function(x){var y=demangle(x);return x===y?x:y+" ["+x+"]"})}function jsStackTrace(){var err=new Error;if(!err.stack){try{throw new Error}catch(e){err=e}if(!err.stack){return"(no stack trace available)"}}return err.stack.toString()}function stackTrace(){var js=jsStackTrace();if(Module["extraStackTrace"])js+="\n"+Module["extraStackTrace"]();return demangleAll(js)}function ___cxa_allocate_exception(size){return _malloc(size)}function _atexit(func,arg){}function ___cxa_atexit(a0,a1){return _atexit(a0,a1)}var ___exception_infos={};var ___exception_caught=[];function ___exception_addRef(ptr){if(!ptr)return;var info=___exception_infos[ptr];info.refcount++}function ___exception_deAdjust(adjusted){if(!adjusted||___exception_infos[adjusted])return adjusted;for(var key in ___exception_infos){var ptr=+key;var adj=___exception_infos[ptr].adjusted;var len=adj.length;for(var i=0;i<len;i++){if(adj[i]===adjusted){return ptr}}}return adjusted}function ___cxa_begin_catch(ptr){var info=___exception_infos[ptr];if(info&&!info.caught){info.caught=true;__ZSt18uncaught_exceptionv.uncaught_exceptions--}if(info)info.rethrown=false;___exception_caught.push(ptr);___exception_addRef(___exception_deAdjust(ptr));return ptr}var ___exception_last=0;function ___cxa_free_exception(ptr){try{return _free(ptr)}catch(e){}}function ___exception_decRef(ptr){if(!ptr)return;var info=___exception_infos[ptr];info.refcount--;if(info.refcount===0&&!info.rethrown){if(info.destructor){Module["dynCall_ii"](info.destructor,ptr)}delete ___exception_infos[ptr];___cxa_free_exception(ptr)}}function ___cxa_end_catch(){_setThrew(0);var ptr=___exception_caught.pop();if(ptr){___exception_decRef(___exception_deAdjust(ptr));___exception_last=0}}function ___cxa_find_matching_catch_2(){var thrown=___exception_last;if(!thrown){return(setTempRet0(0),0)|0}var info=___exception_infos[thrown];var throwntype=info.type;if(!throwntype){return(setTempRet0(0),thrown)|0}var typeArray=Array.prototype.slice.call(arguments);var pointer=___cxa_is_pointer_type(throwntype);var buffer=493264;HEAP32[buffer>>2]=thrown;thrown=buffer;for(var i=0;i<typeArray.length;i++){if(typeArray[i]&&___cxa_can_catch(typeArray[i],throwntype,thrown)){thrown=HEAP32[thrown>>2];info.adjusted.push(thrown);return(setTempRet0(typeArray[i]),thrown)|0}}thrown=HEAP32[thrown>>2];return(setTempRet0(throwntype),thrown)|0}function ___cxa_find_matching_catch_3(){var thrown=___exception_last;if(!thrown){return(setTempRet0(0),0)|0}var info=___exception_infos[thrown];var throwntype=info.type;if(!throwntype){return(setTempRet0(0),thrown)|0}var typeArray=Array.prototype.slice.call(arguments);var pointer=___cxa_is_pointer_type(throwntype);var buffer=493264;HEAP32[buffer>>2]=thrown;thrown=buffer;for(var i=0;i<typeArray.length;i++){if(typeArray[i]&&___cxa_can_catch(typeArray[i],throwntype,thrown)){thrown=HEAP32[thrown>>2];info.adjusted.push(thrown);return(setTempRet0(typeArray[i]),thrown)|0}}thrown=HEAP32[thrown>>2];return(setTempRet0(throwntype),thrown)|0}function ___cxa_find_matching_catch_4(){var thrown=___exception_last;if(!thrown){return(setTempRet0(0),0)|0}var info=___exception_infos[thrown];var throwntype=info.type;if(!throwntype){return(setTempRet0(0),thrown)|0}var typeArray=Array.prototype.slice.call(arguments);var pointer=___cxa_is_pointer_type(throwntype);var buffer=493264;HEAP32[buffer>>2]=thrown;thrown=buffer;for(var i=0;i<typeArray.length;i++){if(typeArray[i]&&___cxa_can_catch(typeArray[i],throwntype,thrown)){thrown=HEAP32[thrown>>2];info.adjusted.push(thrown);return(setTempRet0(typeArray[i]),thrown)|0}}thrown=HEAP32[thrown>>2];return(setTempRet0(throwntype),thrown)|0}function ___cxa_rethrow(){var ptr=___exception_caught.pop();ptr=___exception_deAdjust(ptr);if(!___exception_infos[ptr].rethrown){___exception_caught.push(ptr);___exception_infos[ptr].rethrown=true}___exception_last=ptr;throw ptr}function ___cxa_throw(ptr,type,destructor){___exception_infos[ptr]={ptr:ptr,adjusted:[ptr],type:type,destructor:destructor,refcount:0,caught:false,rethrown:false};___exception_last=ptr;if(!("uncaught_exception"in __ZSt18uncaught_exceptionv)){__ZSt18uncaught_exceptionv.uncaught_exceptions=1}else{__ZSt18uncaught_exceptionv.uncaught_exceptions++}throw ptr}function ___cxa_uncaught_exceptions(){return __ZSt18uncaught_exceptionv.uncaught_exceptions}function setErrNo(value){HEAP32[___errno_location()>>2]=value;return value}function ___map_file(pathname,size){setErrNo(63);return-1}function ___resumeException(ptr){if(!___exception_last){___exception_last=ptr}throw ptr}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path==="/")return"/";var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}};var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:function(from,to){from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start<arr.length;start++){if(arr[start]!=="")break}var end=arr.length-1;for(;end>=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i<length;i++){if(fromParts[i]!==toParts[i]){samePartsLength=i;break}}var outputParts=[];for(var i=samePartsLength;i<fromParts.length;i++){outputParts.push("..")}outputParts=outputParts.concat(toParts.slice(samePartsLength));return outputParts.join("/")}};var TTY={ttys:[],init:function(){},shutdown:function(){},register:function(dev,ops){TTY.ttys[dev]={input:[],output:[],ops:ops};FS.registerDevice(dev,TTY.stream_ops)},stream_ops:{open:function(stream){var tty=TTY.ttys[stream.node.rdev];if(!tty){throw new FS.ErrnoError(43)}stream.tty=tty;stream.seekable=false},close:function(stream){stream.tty.ops.flush(stream.tty)},flush:function(stream){stream.tty.ops.flush(stream.tty)},read:function(stream,buffer,offset,length,pos){if(!stream.tty||!stream.tty.ops.get_char){throw new FS.ErrnoError(60)}var bytesRead=0;for(var i=0;i<length;i++){var result;try{result=stream.tty.ops.get_char(stream.tty)}catch(e){throw new FS.ErrnoError(29)}if(result===undefined&&bytesRead===0){throw new FS.ErrnoError(6)}if(result===null||result===undefined)break;bytesRead++;buffer[offset+i]=result}if(bytesRead){stream.node.timestamp=Date.now()}return bytesRead},write:function(stream,buffer,offset,length,pos){if(!stream.tty||!stream.tty.ops.put_char){throw new FS.ErrnoError(60)}try{for(var i=0;i<length;i++){stream.tty.ops.put_char(stream.tty,buffer[offset+i])}}catch(e){throw new FS.ErrnoError(29)}if(length){stream.node.timestamp=Date.now()}return i}},default_tty_ops:{get_char:function(tty){if(!tty.input.length){var result=null;if(ENVIRONMENT_IS_NODE){var BUFSIZE=256;var buf=Buffer.alloc?Buffer.alloc(BUFSIZE):new Buffer(BUFSIZE);var bytesRead=0;try{bytesRead=nodeFS.readSync(process.stdin.fd,buf,0,BUFSIZE,null)}catch(e){if(e.toString().indexOf("EOF")!=-1)bytesRead=0;else throw e}if(bytesRead>0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};var MEMFS={ops_table:null,mount:function(mount){return MEMFS.createNode(null,"/",16384|511,0)},createNode:function(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode)){throw new FS.ErrnoError(63)}if(!MEMFS.ops_table){MEMFS.ops_table={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,allocate:MEMFS.stream_ops.allocate,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}}}var node=FS.createNode(parent,name,mode,dev);if(FS.isDir(node.mode)){node.node_ops=MEMFS.ops_table.dir.node;node.stream_ops=MEMFS.ops_table.dir.stream;node.contents={}}else if(FS.isFile(node.mode)){node.node_ops=MEMFS.ops_table.file.node;node.stream_ops=MEMFS.ops_table.file.stream;node.usedBytes=0;node.contents=null}else if(FS.isLink(node.mode)){node.node_ops=MEMFS.ops_table.link.node;node.stream_ops=MEMFS.ops_table.link.stream}else if(FS.isChrdev(node.mode)){node.node_ops=MEMFS.ops_table.chrdev.node;node.stream_ops=MEMFS.ops_table.chrdev.stream}node.timestamp=Date.now();if(parent){parent.contents[name]=node}return node},getFileDataAsRegularArray:function(node){if(node.contents&&node.contents.subarray){var arr=[];for(var i=0;i<node.usedBytes;++i)arr.push(node.contents[i]);return arr}return node.contents},getFileDataAsTypedArray:function(node){if(!node.contents)return new Uint8Array(0);if(node.contents.subarray)return node.contents.subarray(0,node.usedBytes);return new Uint8Array(node.contents)},expandFileStorage:function(node,newCapacity){var prevCapacity=node.contents?node.contents.length:0;if(prevCapacity>=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity<CAPACITY_DOUBLING_MAX?2:1.125)>>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0);return},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0;return}if(!node.contents||node.contents.subarray){var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize;return}if(!node.contents)node.contents=[];if(node.contents.length>newSize)node.contents.length=newSize;else while(node.contents.length<newSize)node.contents.push(0);node.usedBytes=newSize},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.name=new_name;new_dir.contents[new_name]=old_node;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name]},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name]},readdir:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i<size;i++)buffer[offset+i]=contents[position+i]}return size},write:function(stream,buffer,offset,length,position,canOwn){if(!length)return 0;var node=stream.node;node.timestamp=Date.now();if(buffer.subarray&&(!node.contents||node.contents.subarray)){if(canOwn){node.contents=buffer.subarray(offset,offset+length);node.usedBytes=length;return length}else if(node.usedBytes===0&&position===0){node.contents=buffer.slice(offset,offset+length);node.usedBytes=length;return length}else if(position+length<=node.usedBytes){node.contents.set(buffer.subarray(offset,offset+length),position);return length}}MEMFS.expandFileStorage(node,position+length);if(node.contents.subarray&&buffer.subarray)node.contents.set(buffer.subarray(offset,offset+length),position);else{for(var i=0;i<length;i++){node.contents[position+i]=buffer[offset+i]}}node.usedBytes=Math.max(node.usedBytes,position+length);return length},llseek:function(stream,offset,whence){var position=offset;if(whence===1){position+=stream.position}else if(whence===2){if(FS.isFile(stream.node.mode)){position+=stream.node.usedBytes}}if(position<0){throw new FS.ErrnoError(28)}return position},allocate:function(stream,offset,length){MEMFS.expandFileStorage(stream.node,offset+length);stream.node.usedBytes=Math.max(stream.node.usedBytes,offset+length)},mmap:function(stream,address,length,position,prot,flags){assert(address===0);if(!FS.isFile(stream.node.mode)){throw new FS.ErrnoError(43)}var ptr;var allocated;var contents=stream.node.contents;if(!(flags&2)&&contents.buffer===buffer){allocated=false;ptr=contents.byteOffset}else{if(position>0||position+length<contents.length){if(contents.subarray){contents=contents.subarray(position,position+length)}else{contents=Array.prototype.slice.call(contents,position,position+length)}}allocated=true;ptr=_malloc(length);if(!ptr){throw new FS.ErrnoError(48)}HEAP8.set(contents,ptr)}return{ptr:ptr,allocated:allocated}},msync:function(stream,buffer,offset,length,mmapFlags){if(!FS.isFile(stream.node.mode)){throw new FS.ErrnoError(43)}if(mmapFlags&2){return 0}var bytesWritten=MEMFS.stream_ops.write(stream,buffer,0,length,offset,false);return 0}}};var FS={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:false,ignorePermissions:true,trackingDelegate:{},tracking:{openFlags:{READ:1,WRITE:2}},ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,handleFSError:function(e){if(!(e instanceof FS.ErrnoError))throw e+" : "+stackTrace();return setErrNo(e.errno)},lookupPath:function(path,opts){path=PATH_FS.resolve(FS.cwd(),path);opts=opts||{};if(!path)return{path:"",node:null};var defaults={follow_mount:true,recurse_count:0};for(var key in defaults){if(opts[key]===undefined){opts[key]=defaults[key]}}if(opts.recurse_count>8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),false);var current=FS.root;var current_path="/";for(var i=0;i<parts.length;i++){var islast=i===parts.length-1;if(islast&&opts.parent){break}current=FS.lookupNode(current,parts[i]);current_path=PATH.join2(current_path,parts[i]);if(FS.isMountpoint(current)){if(!islast||islast&&opts.follow_mount){current=current.mounted.root}}if(!islast||opts.follow){var count=0;while(FS.isLink(current.mode)){var link=FS.readlink(current_path);current_path=PATH_FS.resolve(PATH.dirname(current_path),link);var lookup=FS.lookupPath(current_path,{recurse_count:opts.recurse_count});current=lookup.node;if(count++>40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:function(parentid,name){var hash=0;for(var i=0;i<name.length;i++){hash=(hash<<5)-hash+name.charCodeAt(i)|0}return(parentid+hash>>>0)%FS.nameTable.length},hashAddNode:function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:function(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:function(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:function(node){FS.hashRemoveNode(node)},isRoot:function(node){return node===node.parent},isMountpoint:function(node){return!!node.mounted},isFile:function(mode){return(mode&61440)===32768},isDir:function(mode){return(mode&61440)===16384},isLink:function(mode){return(mode&61440)===40960},isChrdev:function(mode){return(mode&61440)===8192},isBlkdev:function(mode){return(mode&61440)===24576},isFIFO:function(mode){return(mode&61440)===4096},isSocket:function(mode){return(mode&49152)===49152},flagModes:{"r":0,"rs":1052672,"r+":2,"w":577,"wx":705,"xw":705,"w+":578,"wx+":706,"xw+":706,"a":1089,"ax":1217,"xa":1217,"a+":1090,"ax+":1218,"xa+":1218},modeStringToFlags:function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:function(node,perms){if(FS.ignorePermissions){return 0}if(perms.indexOf("r")!==-1&&!(node.mode&292)){return 2}else if(perms.indexOf("w")!==-1&&!(node.mode&146)){return 2}else if(perms.indexOf("x")!==-1&&!(node.mode&73)){return 2}return 0},mayLookup:function(dir){var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:function(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:function(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:function(fd){return FS.streams[fd]},createStream:function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}}}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:function(fd){FS.streams[fd]=null},chrdev_stream_ops:{open:function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:function(){throw new FS.ErrnoError(70)}},major:function(dev){return dev>>8},minor:function(dev){return dev&255},makedev:function(ma,mi){return ma<<8|mi},registerDevice:function(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:function(dev){return FS.devices[dev]},getMounts:function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.indexOf(current.mount)!==-1){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:function(parent,name){return parent.node_ops.lookup(parent,name)},mknod:function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:function(path,mode){var dirs=path.split("/");var d="";for(var i=0;i<dirs.length;++i){if(!dirs[i])continue;d+="/"+dirs[i];try{FS.mkdir(d,mode)}catch(e){if(e.errno!=20)throw e}}},mkdev:function(path,mode,dev){if(typeof dev==="undefined"){dev=mode;mode=438}mode|=8192;return FS.mknod(path,mode,dev)},symlink:function(oldpath,newpath){if(!PATH_FS.resolve(oldpath)){throw new FS.ErrnoError(44)}var lookup=FS.lookupPath(newpath,{parent:true});var parent=lookup.node;if(!parent){throw new FS.ErrnoError(44)}var newname=PATH.basename(newpath);var errCode=FS.mayCreate(parent,newname);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.symlink){throw new FS.ErrnoError(63)}return parent.node_ops.symlink(parent,newname,oldpath)},rename:function(old_path,new_path){var old_dirname=PATH.dirname(old_path);var new_dirname=PATH.dirname(new_path);var old_name=PATH.basename(old_path);var new_name=PATH.basename(new_path);var lookup,old_dir,new_dir;try{lookup=FS.lookupPath(old_path,{parent:true});old_dir=lookup.node;lookup=FS.lookupPath(new_path,{parent:true});new_dir=lookup.node}catch(e){throw new FS.ErrnoError(10)}if(!old_dir||!new_dir)throw new FS.ErrnoError(44);if(old_dir.mount!==new_dir.mount){throw new FS.ErrnoError(75)}var old_node=FS.lookupNode(old_dir,old_name);var relative=PATH_FS.relative(old_path,new_dirname);if(relative.charAt(0)!=="."){throw new FS.ErrnoError(28)}relative=PATH_FS.relative(new_path,old_dirname);if(relative.charAt(0)!=="."){throw new FS.ErrnoError(55)}var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(old_node===new_node){return}var isdir=FS.isDir(old_node.mode);var errCode=FS.mayDelete(old_dir,old_name,isdir);if(errCode){throw new FS.ErrnoError(errCode)}errCode=new_node?FS.mayDelete(new_dir,new_name,isdir):FS.mayCreate(new_dir,new_name);if(errCode){throw new FS.ErrnoError(errCode)}if(!old_dir.node_ops.rename){throw new FS.ErrnoError(63)}if(FS.isMountpoint(old_node)||new_node&&FS.isMountpoint(new_node)){throw new FS.ErrnoError(10)}if(new_dir!==old_dir){errCode=FS.nodePermissions(old_dir,"w");if(errCode){throw new FS.ErrnoError(errCode)}}try{if(FS.trackingDelegate["willMovePath"]){FS.trackingDelegate["willMovePath"](old_path,new_path)}}catch(e){err("FS.trackingDelegate['willMovePath']('"+old_path+"', '"+new_path+"') threw an exception: "+e.message)}FS.hashRemoveNode(old_node);try{old_dir.node_ops.rename(old_node,new_dir,new_name)}catch(e){throw e}finally{FS.hashAddNode(old_node)}try{if(FS.trackingDelegate["onMovePath"])FS.trackingDelegate["onMovePath"](old_path,new_path)}catch(e){err("FS.trackingDelegate['onMovePath']('"+old_path+"', '"+new_path+"') threw an exception: "+e.message)}},rmdir:function(path){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var errCode=FS.mayDelete(parent,name,true);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.rmdir){throw new FS.ErrnoError(63)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}try{if(FS.trackingDelegate["willDeletePath"]){FS.trackingDelegate["willDeletePath"](path)}}catch(e){err("FS.trackingDelegate['willDeletePath']('"+path+"') threw an exception: "+e.message)}parent.node_ops.rmdir(parent,name);FS.destroyNode(node);try{if(FS.trackingDelegate["onDeletePath"])FS.trackingDelegate["onDeletePath"](path)}catch(e){err("FS.trackingDelegate['onDeletePath']('"+path+"') threw an exception: "+e.message)}},readdir:function(path){var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;if(!node.node_ops.readdir){throw new FS.ErrnoError(54)}return node.node_ops.readdir(node)},unlink:function(path){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var errCode=FS.mayDelete(parent,name,false);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.unlink){throw new FS.ErrnoError(63)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}try{if(FS.trackingDelegate["willDeletePath"]){FS.trackingDelegate["willDeletePath"](path)}}catch(e){err("FS.trackingDelegate['willDeletePath']('"+path+"') threw an exception: "+e.message)}parent.node_ops.unlink(parent,name);FS.destroyNode(node);try{if(FS.trackingDelegate["onDeletePath"])FS.trackingDelegate["onDeletePath"](path)}catch(e){err("FS.trackingDelegate['onDeletePath']('"+path+"') threw an exception: "+e.message)}},readlink:function(path){var lookup=FS.lookupPath(path);var link=lookup.node;if(!link){throw new FS.ErrnoError(44)}if(!link.node_ops.readlink){throw new FS.ErrnoError(28)}return PATH_FS.resolve(FS.getPath(link.parent),link.node_ops.readlink(link))},stat:function(path,dontFollow){var lookup=FS.lookupPath(path,{follow:!dontFollow});var node=lookup.node;if(!node){throw new FS.ErrnoError(44)}if(!node.node_ops.getattr){throw new FS.ErrnoError(63)}return node.node_ops.getattr(node)},lstat:function(path){return FS.stat(path,true)},chmod:function(path,mode,dontFollow){var node;if(typeof path==="string"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(63)}node.node_ops.setattr(node,{mode:mode&4095|node.mode&~4095,timestamp:Date.now()})},lchmod:function(path,mode){FS.chmod(path,mode,true)},fchmod:function(fd,mode){var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}FS.chmod(stream.node,mode)},chown:function(path,uid,gid,dontFollow){var node;if(typeof path==="string"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(63)}node.node_ops.setattr(node,{timestamp:Date.now()})},lchown:function(path,uid,gid){FS.chown(path,uid,gid,true)},fchown:function(fd,uid,gid){var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}FS.chown(stream.node,uid,gid)},truncate:function(path,len){if(len<0){throw new FS.ErrnoError(28)}var node;if(typeof path==="string"){var lookup=FS.lookupPath(path,{follow:true});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(63)}if(FS.isDir(node.mode)){throw new FS.ErrnoError(31)}if(!FS.isFile(node.mode)){throw new FS.ErrnoError(28)}var errCode=FS.nodePermissions(node,"w");if(errCode){throw new FS.ErrnoError(errCode)}node.node_ops.setattr(node,{size:len,timestamp:Date.now()})},ftruncate:function(fd,len){var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(28)}FS.truncate(stream.node,len)},utime:function(path,atime,mtime){var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;node.node_ops.setattr(node,{timestamp:Math.max(atime,mtime)})},open:function(path,flags,mode,fd_start,fd_end){if(path===""){throw new FS.ErrnoError(44)}flags=typeof flags==="string"?FS.modeStringToFlags(flags):flags;mode=typeof mode==="undefined"?438:mode;if(flags&64){mode=mode&4095|32768}else{mode=0}var node;if(typeof path==="object"){node=path}else{path=PATH.normalize(path);try{var lookup=FS.lookupPath(path,{follow:!(flags&131072)});node=lookup.node}catch(e){}}var created=false;if(flags&64){if(node){if(flags&128){throw new FS.ErrnoError(20)}}else{node=FS.mknod(path,mode,0);created=true}}if(!node){throw new FS.ErrnoError(44)}if(FS.isChrdev(node.mode)){flags&=~512}if(flags&65536&&!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}if(!created){var errCode=FS.mayOpen(node,flags);if(errCode){throw new FS.ErrnoError(errCode)}}if(flags&512){FS.truncate(node,0)}flags&=~(128|512|131072);var stream=FS.createStream({node:node,path:FS.getPath(node),flags:flags,seekable:true,position:0,stream_ops:node.stream_ops,ungotten:[],error:false},fd_start,fd_end);if(stream.stream_ops.open){stream.stream_ops.open(stream)}if(Module["logReadFiles"]&&!(flags&1)){if(!FS.readFiles)FS.readFiles={};if(!(path in FS.readFiles)){FS.readFiles[path]=1;err("FS.trackingDelegate error on read file: "+path)}}try{if(FS.trackingDelegate["onOpenFile"]){var trackingFlags=0;if((flags&2097155)!==1){trackingFlags|=FS.tracking.openFlags.READ}if((flags&2097155)!==0){trackingFlags|=FS.tracking.openFlags.WRITE}FS.trackingDelegate["onOpenFile"](path,trackingFlags)}}catch(e){err("FS.trackingDelegate['onOpenFile']('"+path+"', flags) threw an exception: "+e.message)}return stream},close:function(stream){if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(stream.getdents)stream.getdents=null;try{if(stream.stream_ops.close){stream.stream_ops.close(stream)}}catch(e){throw e}finally{FS.closeStream(stream.fd)}stream.fd=null},isClosed:function(stream){return stream.fd===null},llseek:function(stream,offset,whence){if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(!stream.seekable||!stream.stream_ops.llseek){throw new FS.ErrnoError(70)}if(whence!=0&&whence!=1&&whence!=2){throw new FS.ErrnoError(28)}stream.position=stream.stream_ops.llseek(stream,offset,whence);stream.ungotten=[];return stream.position},read:function(stream,buffer,offset,length,position){if(length<0||position<0){throw new FS.ErrnoError(28)}if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(8)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(31)}if(!stream.stream_ops.read){throw new FS.ErrnoError(28)}var seeking=typeof position!=="undefined";if(!seeking){position=stream.position}else if(!stream.seekable){throw new FS.ErrnoError(70)}var bytesRead=stream.stream_ops.read(stream,buffer,offset,length,position);if(!seeking)stream.position+=bytesRead;return bytesRead},write:function(stream,buffer,offset,length,position,canOwn){if(length<0||position<0){throw new FS.ErrnoError(28)}if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(8)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(31)}if(!stream.stream_ops.write){throw new FS.ErrnoError(28)}if(stream.seekable&&stream.flags&1024){FS.llseek(stream,0,2)}var seeking=typeof position!=="undefined";if(!seeking){position=stream.position}else if(!stream.seekable){throw new FS.ErrnoError(70)}var bytesWritten=stream.stream_ops.write(stream,buffer,offset,length,position,canOwn);if(!seeking)stream.position+=bytesWritten;try{if(stream.path&&FS.trackingDelegate["onWriteToFile"])FS.trackingDelegate["onWriteToFile"](stream.path)}catch(e){err("FS.trackingDelegate['onWriteToFile']('"+stream.path+"') threw an exception: "+e.message)}return bytesWritten},allocate:function(stream,offset,length){if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(offset<0||length<=0){throw new FS.ErrnoError(28)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(8)}if(!FS.isFile(stream.node.mode)&&!FS.isDir(stream.node.mode)){throw new FS.ErrnoError(43)}if(!stream.stream_ops.allocate){throw new FS.ErrnoError(138)}stream.stream_ops.allocate(stream,offset,length)},mmap:function(stream,address,length,position,prot,flags){if((prot&2)!==0&&(flags&2)===0&&(stream.flags&2097155)!==2){throw new FS.ErrnoError(2)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(2)}if(!stream.stream_ops.mmap){throw new FS.ErrnoError(43)}return stream.stream_ops.mmap(stream,address,length,position,prot,flags)},msync:function(stream,buffer,offset,length,mmapFlags){if(!stream||!stream.stream_ops.msync){return 0}return stream.stream_ops.msync(stream,buffer,offset,length,mmapFlags)},munmap:function(stream){return 0},ioctl:function(stream,cmd,arg){if(!stream.stream_ops.ioctl){throw new FS.ErrnoError(59)}return stream.stream_ops.ioctl(stream,cmd,arg)},readFile:function(path,opts){opts=opts||{};opts.flags=opts.flags||"r";opts.encoding=opts.encoding||"binary";if(opts.encoding!=="utf8"&&opts.encoding!=="binary"){throw new Error('Invalid encoding type "'+opts.encoding+'"')}var ret;var stream=FS.open(path,opts.flags);var stat=FS.stat(path);var length=stat.size;var buf=new Uint8Array(length);FS.read(stream,buf,0,length,0);if(opts.encoding==="utf8"){ret=UTF8ArrayToString(buf,0)}else if(opts.encoding==="binary"){ret=buf}FS.close(stream);return ret},writeFile:function(path,data,opts){opts=opts||{};opts.flags=opts.flags||"w";var stream=FS.open(path,opts.flags,opts.mode);if(typeof data==="string"){var buf=new Uint8Array(lengthBytesUTF8(data)+1);var actualNumBytes=stringToUTF8Array(data,buf,0,buf.length);FS.write(stream,buf,0,actualNumBytes,undefined,opts.canOwn)}else if(ArrayBuffer.isView(data)){FS.write(stream,data,0,data.byteLength,undefined,opts.canOwn)}else{throw new Error("Unsupported data type")}FS.close(stream)},cwd:function(){return FS.currentPath},chdir:function(path){var lookup=FS.lookupPath(path,{follow:true});if(lookup.node===null){throw new FS.ErrnoError(44)}if(!FS.isDir(lookup.node.mode)){throw new FS.ErrnoError(54)}var errCode=FS.nodePermissions(lookup.node,"x");if(errCode){throw new FS.ErrnoError(errCode)}FS.currentPath=lookup.path},createDefaultDirectories:function(){FS.mkdir("/tmp");FS.mkdir("/home");FS.mkdir("/home/web_user")},createDefaultDevices:function(){FS.mkdir("/dev");FS.registerDevice(FS.makedev(1,3),{read:function(){return 0},write:function(stream,buffer,offset,length,pos){return length}});FS.mkdev("/dev/null",FS.makedev(1,3));TTY.register(FS.makedev(5,0),TTY.default_tty_ops);TTY.register(FS.makedev(6,0),TTY.default_tty1_ops);FS.mkdev("/dev/tty",FS.makedev(5,0));FS.mkdev("/dev/tty1",FS.makedev(6,0));var random_device;if(typeof crypto==="object"&&typeof crypto["getRandomValues"]==="function"){var randomBuffer=new Uint8Array(1);random_device=function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");random_device=function(){return crypto_module["randomBytes"](1)[0]}}catch(e){}}else{}if(!random_device){random_device=function(){abort("random_device")}}FS.createDevice("/dev","random",random_device);FS.createDevice("/dev","urandom",random_device);FS.mkdir("/dev/shm");FS.mkdir("/dev/shm/tmp")},createSpecialDirectories:function(){FS.mkdir("/proc");FS.mkdir("/proc/self");FS.mkdir("/proc/self/fd");FS.mount({mount:function(){var node=FS.createNode("/proc/self","fd",16384|511,73);node.node_ops={lookup:function(parent,name){var fd=+name;var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);var ret={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:function(){return stream.path}}};ret.parent=ret;return ret}};return node}},{},"/proc/self/fd")},createStandardStreams:function(){if(Module["stdin"]){FS.createDevice("/dev","stdin",Module["stdin"])}else{FS.symlink("/dev/tty","/dev/stdin")}if(Module["stdout"]){FS.createDevice("/dev","stdout",null,Module["stdout"])}else{FS.symlink("/dev/tty","/dev/stdout")}if(Module["stderr"]){FS.createDevice("/dev","stderr",null,Module["stderr"])}else{FS.symlink("/dev/tty1","/dev/stderr")}var stdin=FS.open("/dev/stdin","r");var stdout=FS.open("/dev/stdout","w");var stderr=FS.open("/dev/stderr","w")},ensureErrnoError:function(){if(FS.ErrnoError)return;FS.ErrnoError=function ErrnoError(errno,node){this.node=node;this.setErrno=function(errno){this.errno=errno};this.setErrno(errno);this.message="FS error"};FS.ErrnoError.prototype=new Error;FS.ErrnoError.prototype.constructor=FS.ErrnoError;[44].forEach(function(code){FS.genericErrors[code]=new FS.ErrnoError(code);FS.genericErrors[code].stack="<generic error, no stack>"})},staticInit:function(){FS.ensureErrnoError();FS.nameTable=new Array(4096);FS.mount(MEMFS,{},"/");FS.createDefaultDirectories();FS.createDefaultDevices();FS.createSpecialDirectories();FS.filesystems={"MEMFS":MEMFS}},init:function(input,output,error){FS.init.initialized=true;FS.ensureErrnoError();Module["stdin"]=input||Module["stdin"];Module["stdout"]=output||Module["stdout"];Module["stderr"]=error||Module["stderr"];FS.createStandardStreams()},quit:function(){FS.init.initialized=false;var fflush=Module["_fflush"];if(fflush)fflush(0);for(var i=0;i<FS.streams.length;i++){var stream=FS.streams[i];if(!stream){continue}FS.close(stream)}},getMode:function(canRead,canWrite){var mode=0;if(canRead)mode|=292|73;if(canWrite)mode|=146;return mode},joinPath:function(parts,forceRelative){var path=PATH.join.apply(null,parts);if(forceRelative&&path[0]=="/")path=path.substr(1);return path},absolutePath:function(relative,base){return PATH_FS.resolve(base,relative)},standardizePath:function(path){return PATH.normalize(path)},findObject:function(path,dontResolveLastLink){var ret=FS.analyzePath(path,dontResolveLastLink);if(ret.exists){return ret.object}else{setErrNo(ret.error);return null}},analyzePath:function(path,dontResolveLastLink){try{var lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});path=lookup.path}catch(e){}var ret={isRoot:false,exists:false,error:0,name:null,path:null,object:null,parentExists:false,parentPath:null,parentObject:null};try{var lookup=FS.lookupPath(path,{parent:true});ret.parentExists=true;ret.parentPath=lookup.path;ret.parentObject=lookup.node;ret.name=PATH.basename(path);lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});ret.exists=true;ret.path=lookup.path;ret.object=lookup.node;ret.name=lookup.node.name;ret.isRoot=lookup.path==="/"}catch(e){ret.error=e.errno}return ret},createFolder:function(parent,name,canRead,canWrite){var path=PATH.join2(typeof parent==="string"?parent:FS.getPath(parent),name);var mode=FS.getMode(canRead,canWrite);return FS.mkdir(path,mode)},createPath:function(parent,path,canRead,canWrite){parent=typeof parent==="string"?parent:FS.getPath(parent);var parts=path.split("/").reverse();while(parts.length){var part=parts.pop();if(!part)continue;var current=PATH.join2(parent,part);try{FS.mkdir(current)}catch(e){}parent=current}return current},createFile:function(parent,name,properties,canRead,canWrite){var path=PATH.join2(typeof parent==="string"?parent:FS.getPath(parent),name);var mode=FS.getMode(canRead,canWrite);return FS.create(path,mode)},createDataFile:function(parent,name,data,canRead,canWrite,canOwn){var path=name?PATH.join2(typeof parent==="string"?parent:FS.getPath(parent),name):parent;var mode=FS.getMode(canRead,canWrite);var node=FS.create(path,mode);if(data){if(typeof data==="string"){var arr=new Array(data.length);for(var i=0,len=data.length;i<len;++i)arr[i]=data.charCodeAt(i);data=arr}FS.chmod(node,mode|146);var stream=FS.open(node,"w");FS.write(stream,data,0,data.length,0,canOwn);FS.close(stream);FS.chmod(node,mode)}return node},createDevice:function(parent,name,input,output){var path=PATH.join2(typeof parent==="string"?parent:FS.getPath(parent),name);var mode=FS.getMode(!!input,!!output);if(!FS.createDevice.major)FS.createDevice.major=64;var dev=FS.makedev(FS.createDevice.major++,0);FS.registerDevice(dev,{open:function(stream){stream.seekable=false},close:function(stream){if(output&&output.buffer&&output.buffer.length){output(10)}},read:function(stream,buffer,offset,length,pos){var bytesRead=0;for(var i=0;i<length;i++){var result;try{result=input()}catch(e){throw new FS.ErrnoError(29)}if(result===undefined&&bytesRead===0){throw new FS.ErrnoError(6)}if(result===null||result===undefined)break;bytesRead++;buffer[offset+i]=result}if(bytesRead){stream.node.timestamp=Date.now()}return bytesRead},write:function(stream,buffer,offset,length,pos){for(var i=0;i<length;i++){try{output(buffer[offset+i])}catch(e){throw new FS.ErrnoError(29)}}if(length){stream.node.timestamp=Date.now()}return i}});return FS.mkdev(path,mode,dev)},createLink:function(parent,name,target,canRead,canWrite){var path=PATH.join2(typeof parent==="string"?parent:FS.getPath(parent),name);return FS.symlink(target,path)},forceLoadFile:function(obj){if(obj.isDevice||obj.isFolder||obj.link||obj.contents)return true;var success=true;if(typeof XMLHttpRequest!=="undefined"){throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.")}else if(read_){try{obj.contents=intArrayFromString(read_(obj.url),true);obj.usedBytes=obj.contents.length}catch(e){success=false}}else{throw new Error("Cannot load without read() or XMLHttpRequest.")}if(!success)setErrNo(29);return success},createLazyFile:function(parent,name,url,canRead,canWrite){function LazyUint8Array(){this.lengthKnown=false;this.chunks=[]}LazyUint8Array.prototype.get=function LazyUint8Array_get(idx){if(idx>this.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}};var lazyArray=this;lazyArray.setDataGetter(function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){if(!FS.forceLoadFile(node)){throw new FS.ErrnoError(29)}return fn.apply(null,arguments)}});stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){if(!FS.forceLoadFile(node)){throw new FS.ErrnoError(29)}var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i<size;i++){buffer[offset+i]=contents[position+i]}}else{for(var i=0;i<size;i++){buffer[offset+i]=contents.get(position+i)}}return size};node.stream_ops=stream_ops;return node},createPreloadedFile:function(parent,name,url,canRead,canWrite,onload,onerror,dontCreateFile,canOwn,preFinish){Browser.init();var fullname=name?PATH_FS.resolve(PATH.join2(parent,name)):parent;var dep=getUniqueRunDependency("cp "+fullname);function processData(byteArray){function finish(byteArray){if(preFinish)preFinish();if(!dontCreateFile){FS.createDataFile(parent,name,byteArray,canRead,canWrite,canOwn)}if(onload)onload();removeRunDependency(dep)}var handled=false;Module["preloadPlugins"].forEach(function(plugin){if(handled)return;if(plugin["canHandle"](fullname)){plugin["handle"](byteArray,fullname,finish,function(){if(onerror)onerror();removeRunDependency(dep)});handled=true}});if(!handled)finish(byteArray)}addRunDependency(dep);if(typeof url=="string"){Browser.asyncLoad(url,function(byteArray){processData(byteArray)},onerror)}else{processData(url)}},indexedDB:function(){return window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB},DB_NAME:function(){return"EM_FS_"+window.location.pathname},DB_VERSION:20,DB_STORE_NAME:"FILE_DATA",saveFilesToDB:function(paths,onload,onerror){onload=onload||function(){};onerror=onerror||function(){};var indexedDB=FS.indexedDB();try{var openRequest=indexedDB.open(FS.DB_NAME(),FS.DB_VERSION)}catch(e){return onerror(e)}openRequest.onupgradeneeded=function openRequest_onupgradeneeded(){out("creating db");var db=openRequest.result;db.createObjectStore(FS.DB_STORE_NAME)};openRequest.onsuccess=function openRequest_onsuccess(){var db=openRequest.result;var transaction=db.transaction([FS.DB_STORE_NAME],"readwrite");var files=transaction.objectStore(FS.DB_STORE_NAME);var ok=0,fail=0,total=paths.length;function finish(){if(fail==0)onload();else onerror()}paths.forEach(function(path){var putRequest=files.put(FS.analyzePath(path).object.contents,path);putRequest.onsuccess=function putRequest_onsuccess(){ok++;if(ok+fail==total)finish()};putRequest.onerror=function putRequest_onerror(){fail++;if(ok+fail==total)finish()}});transaction.onerror=onerror};openRequest.onerror=onerror},loadFilesFromDB:function(paths,onload,onerror){onload=onload||function(){};onerror=onerror||function(){};var indexedDB=FS.indexedDB();try{var openRequest=indexedDB.open(FS.DB_NAME(),FS.DB_VERSION)}catch(e){return onerror(e)}openRequest.onupgradeneeded=onerror;openRequest.onsuccess=function openRequest_onsuccess(){var db=openRequest.result;try{var transaction=db.transaction([FS.DB_STORE_NAME],"readonly")}catch(e){onerror(e);return}var files=transaction.objectStore(FS.DB_STORE_NAME);var ok=0,fail=0,total=paths.length;function finish(){if(fail==0)onload();else onerror()}paths.forEach(function(path){var getRequest=files.get(path);getRequest.onsuccess=function getRequest_onsuccess(){if(FS.analyzePath(path).exists){FS.unlink(path)}FS.createDataFile(PATH.dirname(path),PATH.basename(path),getRequest.result,true,true,true);ok++;if(ok+fail==total)finish()};getRequest.onerror=function getRequest_onerror(){fail++;if(ok+fail==total)finish()}});transaction.onerror=onerror};openRequest.onerror=onerror}};var SYSCALLS={mappings:{},DEFAULT_POLLMASK:5,umask:511,calculateAt:function(dirfd,path){if(path[0]!=="/"){var dir;if(dirfd===-100){dir=FS.cwd()}else{var dirstream=FS.getStream(dirfd);if(!dirstream)throw new FS.ErrnoError(8);dir=dirstream.path}path=PATH.join2(dir,path)}return path},doStat:function(func,path,buf){try{var stat=func(path)}catch(e){if(e&&e.node&&PATH.normalize(path)!==PATH.normalize(FS.getPath(e.node))){return-54}throw e}HEAP32[buf>>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math_abs(tempDouble)>=1?tempDouble>0?(Math_min(+Math_floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math_ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math_abs(tempDouble)>=1?tempDouble>0?(Math_min(+Math_floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math_ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},doMkdir:function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-28}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0},doDup:function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i<iovcnt;i++){var ptr=HEAP32[iov+i*8>>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr<len)break}return ret},doWritev:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i<iovcnt;i++){var ptr=HEAP32[iov+i*8>>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream},get64:function(low,high){return low}};function ___sys_fcntl64(fd,cmd,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(cmd){case 0:{var arg=SYSCALLS.get();if(arg<0){return-28}var newStream;newStream=FS.open(stream.path,stream.flags,0,arg);return newStream.fd}case 1:case 2:return 0;case 3:return stream.flags;case 4:{var arg=SYSCALLS.get();stream.flags|=arg;return 0}case 12:{var arg=SYSCALLS.get();var offset=0;HEAP16[arg+offset>>1]=2;return 0}case 13:case 14:return 0;case 16:case 8:return-28;case 9:setErrNo(28);return-1;default:{return-28}}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___sys_ioctl(fd,op,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(op){case 21509:case 21505:{if(!stream.tty)return-59;return 0}case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:{if(!stream.tty)return-59;return 0}case 21519:{if(!stream.tty)return-59;var argp=SYSCALLS.get();HEAP32[argp>>2]=0;return 0}case 21520:{if(!stream.tty)return-59;return-28}case 21531:{var argp=SYSCALLS.get();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return-59;return 0}case 21524:{if(!stream.tty)return-59;return 0}default:abort("bad ioctl syscall "+op)}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function syscallMunmap(addr,len){if((addr|0)===-1||len===0){return-28}var info=SYSCALLS.mappings[addr];if(!info)return 0;if(len===info.len){var stream=FS.getStream(info.fd);if(info.prot&2){SYSCALLS.doMsync(addr,stream,len,info.flags,info.offset)}FS.munmap(stream);SYSCALLS.mappings[addr]=null;if(info.allocated){_free(info.malloc)}}return 0}function ___sys_munmap(addr,len){try{return syscallMunmap(addr,len)}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___sys_open(path,flags,varargs){SYSCALLS.varargs=varargs;try{var pathname=SYSCALLS.getStr(path);var mode=SYSCALLS.get();var stream=FS.open(pathname,flags,mode);return stream.fd}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function getShiftFromSize(size){switch(size){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError("Unknown type size: "+size)}}function embind_init_charCodes(){var codes=new Array(256);for(var i=0;i<256;++i){codes[i]=String.fromCharCode(i)}embind_charCodes=codes}var embind_charCodes=undefined;function readLatin1String(ptr){var ret="";var c=ptr;while(HEAPU8[c]){ret+=embind_charCodes[HEAPU8[c++]]}return ret}var awaitingDependencies={};var registeredTypes={};var typeDependencies={};var char_0=48;var char_9=57;function makeLegalFunctionName(name){if(undefined===name){return"_unknown"}name=name.replace(/[^a-zA-Z0-9_]/g,"$");var f=name.charCodeAt(0);if(f>=char_0&&f<=char_9){return"_"+name}else{return name}}function createNamedFunction(name,body){name=makeLegalFunctionName(name);return new Function("body","return function "+name+"() {\n"+' "use strict";'+" return body.apply(this, arguments);\n"+"};\n")(body)}function extendError(baseErrorType,errorName){var errorClass=createNamedFunction(errorName,function(message){this.name=errorName;this.message=message;var stack=new Error(message).stack;if(stack!==undefined){this.stack=this.toString()+"\n"+stack.replace(/^Error(:[^\n]*)?\n/,"")}});errorClass.prototype=Object.create(baseErrorType.prototype);errorClass.prototype.constructor=errorClass;errorClass.prototype.toString=function(){if(this.message===undefined){return this.name}else{return this.name+": "+this.message}};return errorClass}var BindingError=undefined;function throwBindingError(message){throw new BindingError(message)}var InternalError=undefined;function throwInternalError(message){throw new InternalError(message)}function whenDependentTypesAreResolved(myTypes,dependentTypes,getTypeConverters){myTypes.forEach(function(type){typeDependencies[type]=dependentTypes});function onComplete(typeConverters){var myTypeConverters=getTypeConverters(typeConverters);if(myTypeConverters.length!==myTypes.length){throwInternalError("Mismatched type converter count")}for(var i=0;i<myTypes.length;++i){registerType(myTypes[i],myTypeConverters[i])}}var typeConverters=new Array(dependentTypes.length);var unregisteredTypes=[];var registered=0;dependentTypes.forEach(function(dt,i){if(registeredTypes.hasOwnProperty(dt)){typeConverters[i]=registeredTypes[dt]}else{unregisteredTypes.push(dt);if(!awaitingDependencies.hasOwnProperty(dt)){awaitingDependencies[dt]=[]}awaitingDependencies[dt].push(function(){typeConverters[i]=registeredTypes[dt];++registered;if(registered===unregisteredTypes.length){onComplete(typeConverters)}})}});if(0===unregisteredTypes.length){onComplete(typeConverters)}}function registerType(rawType,registeredInstance,options){options=options||{};if(!("argPackAdvance"in registeredInstance)){throw new TypeError("registerType registeredInstance requires argPackAdvance")}var name=registeredInstance.name;if(!rawType){throwBindingError('type "'+name+'" must have a positive integer typeid pointer')}if(registeredTypes.hasOwnProperty(rawType)){if(options.ignoreDuplicateRegistrations){return}else{throwBindingError("Cannot register type '"+name+"' twice")}}registeredTypes[rawType]=registeredInstance;delete typeDependencies[rawType];if(awaitingDependencies.hasOwnProperty(rawType)){var callbacks=awaitingDependencies[rawType];delete awaitingDependencies[rawType];callbacks.forEach(function(cb){cb()})}}function __embind_register_bool(rawType,name,size,trueValue,falseValue){var shift=getShiftFromSize(size);name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":function(wt){return!!wt},"toWireType":function(destructors,o){return o?trueValue:falseValue},"argPackAdvance":8,"readValueFromPointer":function(pointer){var heap;if(size===1){heap=HEAP8}else if(size===2){heap=HEAP16}else if(size===4){heap=HEAP32}else{throw new TypeError("Unknown boolean type size: "+name)}return this["fromWireType"](heap[pointer>>shift])},destructorFunction:null})}function ClassHandle_isAliasOf(other){if(!(this instanceof ClassHandle)){return false}if(!(other instanceof ClassHandle)){return false}var leftClass=this.$$.ptrType.registeredClass;var left=this.$$.ptr;var rightClass=other.$$.ptrType.registeredClass;var right=other.$$.ptr;while(leftClass.baseClass){left=leftClass.upcast(left);leftClass=leftClass.baseClass}while(rightClass.baseClass){right=rightClass.upcast(right);rightClass=rightClass.baseClass}return leftClass===rightClass&&left===right}function shallowCopyInternalPointer(o){return{count:o.count,deleteScheduled:o.deleteScheduled,preservePointerOnDelete:o.preservePointerOnDelete,ptr:o.ptr,ptrType:o.ptrType,smartPtr:o.smartPtr,smartPtrType:o.smartPtrType}}function throwInstanceAlreadyDeleted(obj){function getInstanceTypeName(handle){return handle.$$.ptrType.registeredClass.name}throwBindingError(getInstanceTypeName(obj)+" instance already deleted")}var finalizationGroup=false;function detachFinalizer(handle){}function runDestructor($$){if($$.smartPtr){$$.smartPtrType.rawDestructor($$.smartPtr)}else{$$.ptrType.registeredClass.rawDestructor($$.ptr)}}function releaseClassHandle($$){$$.count.value-=1;var toDelete=0===$$.count.value;if(toDelete){runDestructor($$)}}function attachFinalizer(handle){if("undefined"===typeof FinalizationGroup){attachFinalizer=function(handle){return handle};return handle}finalizationGroup=new FinalizationGroup(function(iter){for(var result=iter.next();!result.done;result=iter.next()){var $$=result.value;if(!$$.ptr){console.warn("object already deleted: "+$$.ptr)}else{releaseClassHandle($$)}}});attachFinalizer=function(handle){finalizationGroup.register(handle,handle.$$,handle.$$);return handle};detachFinalizer=function(handle){finalizationGroup.unregister(handle.$$)};return attachFinalizer(handle)}function ClassHandle_clone(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this)}if(this.$$.preservePointerOnDelete){this.$$.count.value+=1;return this}else{var clone=attachFinalizer(Object.create(Object.getPrototypeOf(this),{$$:{value:shallowCopyInternalPointer(this.$$)}}));clone.$$.count.value+=1;clone.$$.deleteScheduled=false;return clone}}function ClassHandle_delete(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this)}if(this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete){throwBindingError("Object already scheduled for deletion")}detachFinalizer(this);releaseClassHandle(this.$$);if(!this.$$.preservePointerOnDelete){this.$$.smartPtr=undefined;this.$$.ptr=undefined}}function ClassHandle_isDeleted(){return!this.$$.ptr}var delayFunction=undefined;var deletionQueue=[];function flushPendingDeletes(){while(deletionQueue.length){var obj=deletionQueue.pop();obj.$$.deleteScheduled=false;obj["delete"]()}}function ClassHandle_deleteLater(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this)}if(this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete){throwBindingError("Object already scheduled for deletion")}deletionQueue.push(this);if(deletionQueue.length===1&&delayFunction){delayFunction(flushPendingDeletes)}this.$$.deleteScheduled=true;return this}function init_ClassHandle(){ClassHandle.prototype["isAliasOf"]=ClassHandle_isAliasOf;ClassHandle.prototype["clone"]=ClassHandle_clone;ClassHandle.prototype["delete"]=ClassHandle_delete;ClassHandle.prototype["isDeleted"]=ClassHandle_isDeleted;ClassHandle.prototype["deleteLater"]=ClassHandle_deleteLater}function ClassHandle(){}var registeredPointers={};function ensureOverloadTable(proto,methodName,humanName){if(undefined===proto[methodName].overloadTable){var prevFunc=proto[methodName];proto[methodName]=function(){if(!proto[methodName].overloadTable.hasOwnProperty(arguments.length)){throwBindingError("Function '"+humanName+"' called with an invalid number of arguments ("+arguments.length+") - expects one of ("+proto[methodName].overloadTable+")!")}return proto[methodName].overloadTable[arguments.length].apply(this,arguments)};proto[methodName].overloadTable=[];proto[methodName].overloadTable[prevFunc.argCount]=prevFunc}}function exposePublicSymbol(name,value,numArguments){if(Module.hasOwnProperty(name)){if(undefined===numArguments||undefined!==Module[name].overloadTable&&undefined!==Module[name].overloadTable[numArguments]){throwBindingError("Cannot register public name '"+name+"' twice")}ensureOverloadTable(Module,name,name);if(Module.hasOwnProperty(numArguments)){throwBindingError("Cannot register multiple overloads of a function with the same number of arguments ("+numArguments+")!")}Module[name].overloadTable[numArguments]=value}else{Module[name]=value;if(undefined!==numArguments){Module[name].numArguments=numArguments}}}function RegisteredClass(name,constructor,instancePrototype,rawDestructor,baseClass,getActualType,upcast,downcast){this.name=name;this.constructor=constructor;this.instancePrototype=instancePrototype;this.rawDestructor=rawDestructor;this.baseClass=baseClass;this.getActualType=getActualType;this.upcast=upcast;this.downcast=downcast;this.pureVirtualFunctions=[]}function upcastPointer(ptr,ptrClass,desiredClass){while(ptrClass!==desiredClass){if(!ptrClass.upcast){throwBindingError("Expected null or instance of "+desiredClass.name+", got an instance of "+ptrClass.name)}ptr=ptrClass.upcast(ptr);ptrClass=ptrClass.baseClass}return ptr}function constNoSmartPtrRawPointerToWireType(destructors,handle){if(handle===null){if(this.isReference){throwBindingError("null is not a valid "+this.name)}return 0}if(!handle.$$){throwBindingError('Cannot pass "'+_embind_repr(handle)+'" as a '+this.name)}if(!handle.$$.ptr){throwBindingError("Cannot pass deleted object as a pointer of type "+this.name)}var handleClass=handle.$$.ptrType.registeredClass;var ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);return ptr}function genericPointerToWireType(destructors,handle){var ptr;if(handle===null){if(this.isReference){throwBindingError("null is not a valid "+this.name)}if(this.isSmartPointer){ptr=this.rawConstructor();if(destructors!==null){destructors.push(this.rawDestructor,ptr)}return ptr}else{return 0}}if(!handle.$$){throwBindingError('Cannot pass "'+_embind_repr(handle)+'" as a '+this.name)}if(!handle.$$.ptr){throwBindingError("Cannot pass deleted object as a pointer of type "+this.name)}if(!this.isConst&&handle.$$.ptrType.isConst){throwBindingError("Cannot convert argument of type "+(handle.$$.smartPtrType?handle.$$.smartPtrType.name:handle.$$.ptrType.name)+" to parameter type "+this.name)}var handleClass=handle.$$.ptrType.registeredClass;ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);if(this.isSmartPointer){if(undefined===handle.$$.smartPtr){throwBindingError("Passing raw pointer to smart pointer is illegal")}switch(this.sharingPolicy){case 0:if(handle.$$.smartPtrType===this){ptr=handle.$$.smartPtr}else{throwBindingError("Cannot convert argument of type "+(handle.$$.smartPtrType?handle.$$.smartPtrType.name:handle.$$.ptrType.name)+" to parameter type "+this.name)}break;case 1:ptr=handle.$$.smartPtr;break;case 2:if(handle.$$.smartPtrType===this){ptr=handle.$$.smartPtr}else{var clonedHandle=handle["clone"]();ptr=this.rawShare(ptr,__emval_register(function(){clonedHandle["delete"]()}));if(destructors!==null){destructors.push(this.rawDestructor,ptr)}}break;default:throwBindingError("Unsupporting sharing policy")}}return ptr}function nonConstNoSmartPtrRawPointerToWireType(destructors,handle){if(handle===null){if(this.isReference){throwBindingError("null is not a valid "+this.name)}return 0}if(!handle.$$){throwBindingError('Cannot pass "'+_embind_repr(handle)+'" as a '+this.name)}if(!handle.$$.ptr){throwBindingError("Cannot pass deleted object as a pointer of type "+this.name)}if(handle.$$.ptrType.isConst){throwBindingError("Cannot convert argument of type "+handle.$$.ptrType.name+" to parameter type "+this.name)}var handleClass=handle.$$.ptrType.registeredClass;var ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);return ptr}function simpleReadValueFromPointer(pointer){return this["fromWireType"](HEAPU32[pointer>>2])}function RegisteredPointer_getPointee(ptr){if(this.rawGetPointee){ptr=this.rawGetPointee(ptr)}return ptr}function RegisteredPointer_destructor(ptr){if(this.rawDestructor){this.rawDestructor(ptr)}}function RegisteredPointer_deleteObject(handle){if(handle!==null){handle["delete"]()}}function downcastPointer(ptr,ptrClass,desiredClass){if(ptrClass===desiredClass){return ptr}if(undefined===desiredClass.baseClass){return null}var rv=downcastPointer(ptr,ptrClass,desiredClass.baseClass);if(rv===null){return null}return desiredClass.downcast(rv)}function getInheritedInstanceCount(){return Object.keys(registeredInstances).length}function getLiveInheritedInstances(){var rv=[];for(var k in registeredInstances){if(registeredInstances.hasOwnProperty(k)){rv.push(registeredInstances[k])}}return rv}function setDelayFunction(fn){delayFunction=fn;if(deletionQueue.length&&delayFunction){delayFunction(flushPendingDeletes)}}function init_embind(){Module["getInheritedInstanceCount"]=getInheritedInstanceCount;Module["getLiveInheritedInstances"]=getLiveInheritedInstances;Module["flushPendingDeletes"]=flushPendingDeletes;Module["setDelayFunction"]=setDelayFunction}var registeredInstances={};function getBasestPointer(class_,ptr){if(ptr===undefined){throwBindingError("ptr should not be undefined")}while(class_.baseClass){ptr=class_.upcast(ptr);class_=class_.baseClass}return ptr}function getInheritedInstance(class_,ptr){ptr=getBasestPointer(class_,ptr);return registeredInstances[ptr]}function makeClassHandle(prototype,record){if(!record.ptrType||!record.ptr){throwInternalError("makeClassHandle requires ptr and ptrType")}var hasSmartPtrType=!!record.smartPtrType;var hasSmartPtr=!!record.smartPtr;if(hasSmartPtrType!==hasSmartPtr){throwInternalError("Both smartPtrType and smartPtr must be specified")}record.count={value:1};return attachFinalizer(Object.create(prototype,{$$:{value:record}}))}function RegisteredPointer_fromWireType(ptr){var rawPointer=this.getPointee(ptr);if(!rawPointer){this.destructor(ptr);return null}var registeredInstance=getInheritedInstance(this.registeredClass,rawPointer);if(undefined!==registeredInstance){if(0===registeredInstance.$$.count.value){registeredInstance.$$.ptr=rawPointer;registeredInstance.$$.smartPtr=ptr;return registeredInstance["clone"]()}else{var rv=registeredInstance["clone"]();this.destructor(ptr);return rv}}function makeDefaultHandle(){if(this.isSmartPointer){return makeClassHandle(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:rawPointer,smartPtrType:this,smartPtr:ptr})}else{return makeClassHandle(this.registeredClass.instancePrototype,{ptrType:this,ptr:ptr})}}var actualType=this.registeredClass.getActualType(rawPointer);var registeredPointerRecord=registeredPointers[actualType];if(!registeredPointerRecord){return makeDefaultHandle.call(this)}var toType;if(this.isConst){toType=registeredPointerRecord.constPointerType}else{toType=registeredPointerRecord.pointerType}var dp=downcastPointer(rawPointer,this.registeredClass,toType.registeredClass);if(dp===null){return makeDefaultHandle.call(this)}if(this.isSmartPointer){return makeClassHandle(toType.registeredClass.instancePrototype,{ptrType:toType,ptr:dp,smartPtrType:this,smartPtr:ptr})}else{return makeClassHandle(toType.registeredClass.instancePrototype,{ptrType:toType,ptr:dp})}}function init_RegisteredPointer(){RegisteredPointer.prototype.getPointee=RegisteredPointer_getPointee;RegisteredPointer.prototype.destructor=RegisteredPointer_destructor;RegisteredPointer.prototype["argPackAdvance"]=8;RegisteredPointer.prototype["readValueFromPointer"]=simpleReadValueFromPointer;RegisteredPointer.prototype["deleteObject"]=RegisteredPointer_deleteObject;RegisteredPointer.prototype["fromWireType"]=RegisteredPointer_fromWireType}function RegisteredPointer(name,registeredClass,isReference,isConst,isSmartPointer,pointeeType,sharingPolicy,rawGetPointee,rawConstructor,rawShare,rawDestructor){this.name=name;this.registeredClass=registeredClass;this.isReference=isReference;this.isConst=isConst;this.isSmartPointer=isSmartPointer;this.pointeeType=pointeeType;this.sharingPolicy=sharingPolicy;this.rawGetPointee=rawGetPointee;this.rawConstructor=rawConstructor;this.rawShare=rawShare;this.rawDestructor=rawDestructor;if(!isSmartPointer&&registeredClass.baseClass===undefined){if(isConst){this["toWireType"]=constNoSmartPtrRawPointerToWireType;this.destructorFunction=null}else{this["toWireType"]=nonConstNoSmartPtrRawPointerToWireType;this.destructorFunction=null}}else{this["toWireType"]=genericPointerToWireType}}function replacePublicSymbol(name,value,numArguments){if(!Module.hasOwnProperty(name)){throwInternalError("Replacing nonexistant public symbol")}if(undefined!==Module[name].overloadTable&&undefined!==numArguments){Module[name].overloadTable[numArguments]=value}else{Module[name]=value;Module[name].argCount=numArguments}}function embind__requireFunction(signature,rawFunction){signature=readLatin1String(signature);function makeDynCaller(dynCall){var args=[];for(var i=1;i<signature.length;++i){args.push("a"+i)}var name="dynCall_"+signature+"_"+rawFunction;var body="return function "+name+"("+args.join(", ")+") {\n";body+=" return dynCall(rawFunction"+(args.length?", ":"")+args.join(", ")+");\n";body+="};\n";return new Function("dynCall","rawFunction",body)(dynCall,rawFunction)}var dc=Module["dynCall_"+signature];var fp=makeDynCaller(dc);if(typeof fp!=="function"){throwBindingError("unknown function pointer with signature "+signature+": "+rawFunction)}return fp}var UnboundTypeError=undefined;function getTypeName(type){var ptr=___getTypeName(type);var rv=readLatin1String(ptr);_free(ptr);return rv}function throwUnboundTypeError(message,types){var unboundTypes=[];var seen={};function visit(type){if(seen[type]){return}if(registeredTypes[type]){return}if(typeDependencies[type]){typeDependencies[type].forEach(visit);return}unboundTypes.push(type);seen[type]=true}types.forEach(visit);throw new UnboundTypeError(message+": "+unboundTypes.map(getTypeName).join([", "]))}function __embind_register_class(rawType,rawPointerType,rawConstPointerType,baseClassRawType,getActualTypeSignature,getActualType,upcastSignature,upcast,downcastSignature,downcast,name,destructorSignature,rawDestructor){name=readLatin1String(name);getActualType=embind__requireFunction(getActualTypeSignature,getActualType);if(upcast){upcast=embind__requireFunction(upcastSignature,upcast)}if(downcast){downcast=embind__requireFunction(downcastSignature,downcast)}rawDestructor=embind__requireFunction(destructorSignature,rawDestructor);var legalFunctionName=makeLegalFunctionName(name);exposePublicSymbol(legalFunctionName,function(){throwUnboundTypeError("Cannot construct "+name+" due to unbound types",[baseClassRawType])});whenDependentTypesAreResolved([rawType,rawPointerType,rawConstPointerType],baseClassRawType?[baseClassRawType]:[],function(base){base=base[0];var baseClass;var basePrototype;if(baseClassRawType){baseClass=base.registeredClass;basePrototype=baseClass.instancePrototype}else{basePrototype=ClassHandle.prototype}var constructor=createNamedFunction(legalFunctionName,function(){if(Object.getPrototypeOf(this)!==instancePrototype){throw new BindingError("Use 'new' to construct "+name)}if(undefined===registeredClass.constructor_body){throw new BindingError(name+" has no accessible constructor")}var body=registeredClass.constructor_body[arguments.length];if(undefined===body){throw new BindingError("Tried to invoke ctor of "+name+" with invalid number of parameters ("+arguments.length+") - expected ("+Object.keys(registeredClass.constructor_body).toString()+") parameters instead!")}return body.apply(this,arguments)});var instancePrototype=Object.create(basePrototype,{constructor:{value:constructor}});constructor.prototype=instancePrototype;var registeredClass=new RegisteredClass(name,constructor,instancePrototype,rawDestructor,baseClass,getActualType,upcast,downcast);var referenceConverter=new RegisteredPointer(name,registeredClass,true,false,false);var pointerConverter=new RegisteredPointer(name+"*",registeredClass,false,false,false);var constPointerConverter=new RegisteredPointer(name+" const*",registeredClass,false,true,false);registeredPointers[rawType]={pointerType:pointerConverter,constPointerType:constPointerConverter};replacePublicSymbol(legalFunctionName,constructor);return[referenceConverter,pointerConverter,constPointerConverter]})}function new_(constructor,argumentList){if(!(constructor instanceof Function)){throw new TypeError("new_ called with constructor type "+typeof constructor+" which is not a function")}var dummy=createNamedFunction(constructor.name||"unknownFunctionName",function(){});dummy.prototype=constructor.prototype;var obj=new dummy;var r=constructor.apply(obj,argumentList);return r instanceof Object?r:obj}function runDestructors(destructors){while(destructors.length){var ptr=destructors.pop();var del=destructors.pop();del(ptr)}}function craftInvokerFunction(humanName,argTypes,classType,cppInvokerFunc,cppTargetFunc){var argCount=argTypes.length;if(argCount<2){throwBindingError("argTypes array size mismatch! Must at least get return value and 'this' types!")}var isClassMethodFunc=argTypes[1]!==null&&classType!==null;var needsDestructorStack=false;for(var i=1;i<argTypes.length;++i){if(argTypes[i]!==null&&argTypes[i].destructorFunction===undefined){needsDestructorStack=true;break}}var returns=argTypes[0].name!=="void";var argsList="";var argsListWired="";for(var i=0;i<argCount-2;++i){argsList+=(i!==0?", ":"")+"arg"+i;argsListWired+=(i!==0?", ":"")+"arg"+i+"Wired"}var invokerFnBody="return function "+makeLegalFunctionName(humanName)+"("+argsList+") {\n"+"if (arguments.length !== "+(argCount-2)+") {\n"+"throwBindingError('function "+humanName+" called with ' + arguments.length + ' arguments, expected "+(argCount-2)+" args!');\n"+"}\n";if(needsDestructorStack){invokerFnBody+="var destructors = [];\n"}var dtorStack=needsDestructorStack?"destructors":"null";var args1=["throwBindingError","invoker","fn","runDestructors","retType","classParam"];var args2=[throwBindingError,cppInvokerFunc,cppTargetFunc,runDestructors,argTypes[0],argTypes[1]];if(isClassMethodFunc){invokerFnBody+="var thisWired = classParam.toWireType("+dtorStack+", this);\n"}for(var i=0;i<argCount-2;++i){invokerFnBody+="var arg"+i+"Wired = argType"+i+".toWireType("+dtorStack+", arg"+i+"); // "+argTypes[i+2].name+"\n";args1.push("argType"+i);args2.push(argTypes[i+2])}if(isClassMethodFunc){argsListWired="thisWired"+(argsListWired.length>0?", ":"")+argsListWired}invokerFnBody+=(returns?"var rv = ":"")+"invoker(fn"+(argsListWired.length>0?", ":"")+argsListWired+");\n";if(needsDestructorStack){invokerFnBody+="runDestructors(destructors);\n"}else{for(var i=isClassMethodFunc?1:2;i<argTypes.length;++i){var paramName=i===1?"thisWired":"arg"+(i-2)+"Wired";if(argTypes[i].destructorFunction!==null){invokerFnBody+=paramName+"_dtor("+paramName+"); // "+argTypes[i].name+"\n";args1.push(paramName+"_dtor");args2.push(argTypes[i].destructorFunction)}}}if(returns){invokerFnBody+="var ret = retType.fromWireType(rv);\n"+"return ret;\n"}else{}invokerFnBody+="}\n";args1.push(invokerFnBody);var invokerFunction=new_(Function,args1).apply(null,args2);return invokerFunction}function heap32VectorToArray(count,firstElement){var array=[];for(var i=0;i<count;i++){array.push(HEAP32[(firstElement>>2)+i])}return array}function __embind_register_class_function(rawClassType,methodName,argCount,rawArgTypesAddr,invokerSignature,rawInvoker,context,isPureVirtual){var rawArgTypes=heap32VectorToArray(argCount,rawArgTypesAddr);methodName=readLatin1String(methodName);rawInvoker=embind__requireFunction(invokerSignature,rawInvoker);whenDependentTypesAreResolved([],[rawClassType],function(classType){classType=classType[0];var humanName=classType.name+"."+methodName;if(isPureVirtual){classType.registeredClass.pureVirtualFunctions.push(methodName)}function unboundTypesHandler(){throwUnboundTypeError("Cannot call "+humanName+" due to unbound types",rawArgTypes)}var proto=classType.registeredClass.instancePrototype;var method=proto[methodName];if(undefined===method||undefined===method.overloadTable&&method.className!==classType.name&&method.argCount===argCount-2){unboundTypesHandler.argCount=argCount-2;unboundTypesHandler.className=classType.name;proto[methodName]=unboundTypesHandler}else{ensureOverloadTable(proto,methodName,humanName);proto[methodName].overloadTable[argCount-2]=unboundTypesHandler}whenDependentTypesAreResolved([],rawArgTypes,function(argTypes){var memberFunction=craftInvokerFunction(humanName,argTypes,classType,rawInvoker,context);if(undefined===proto[methodName].overloadTable){memberFunction.argCount=argCount-2;proto[methodName]=memberFunction}else{proto[methodName].overloadTable[argCount-2]=memberFunction}return[]});return[]})}var emval_free_list=[];var emval_handle_array=[{},{value:undefined},{value:null},{value:true},{value:false}];function __emval_decref(handle){if(handle>4&&0===--emval_handle_array[handle].refcount){emval_handle_array[handle]=undefined;emval_free_list.push(handle)}}function count_emval_handles(){var count=0;for(var i=5;i<emval_handle_array.length;++i){if(emval_handle_array[i]!==undefined){++count}}return count}function get_first_emval(){for(var i=5;i<emval_handle_array.length;++i){if(emval_handle_array[i]!==undefined){return emval_handle_array[i]}}return null}function init_emval(){Module["count_emval_handles"]=count_emval_handles;Module["get_first_emval"]=get_first_emval}function __emval_register(value){switch(value){case undefined:{return 1}case null:{return 2}case true:{return 3}case false:{return 4}default:{var handle=emval_free_list.length?emval_free_list.pop():emval_handle_array.length;emval_handle_array[handle]={refcount:1,value:value};return handle}}}function __embind_register_emval(rawType,name){name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":function(handle){var rv=emval_handle_array[handle].value;__emval_decref(handle);return rv},"toWireType":function(destructors,value){return __emval_register(value)},"argPackAdvance":8,"readValueFromPointer":simpleReadValueFromPointer,destructorFunction:null})}function _embind_repr(v){if(v===null){return"null"}var t=typeof v;if(t==="object"||t==="array"||t==="function"){return v.toString()}else{return""+v}}function floatReadValueFromPointer(name,shift){switch(shift){case 2:return function(pointer){return this["fromWireType"](HEAPF32[pointer>>2])};case 3:return function(pointer){return this["fromWireType"](HEAPF64[pointer>>3])};default:throw new TypeError("Unknown float type: "+name)}}function __embind_register_float(rawType,name,size){var shift=getShiftFromSize(size);name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":function(value){return value},"toWireType":function(destructors,value){if(typeof value!=="number"&&typeof value!=="boolean"){throw new TypeError('Cannot convert "'+_embind_repr(value)+'" to '+this.name)}return value},"argPackAdvance":8,"readValueFromPointer":floatReadValueFromPointer(name,shift),destructorFunction:null})}function __embind_register_function(name,argCount,rawArgTypesAddr,signature,rawInvoker,fn){var argTypes=heap32VectorToArray(argCount,rawArgTypesAddr);name=readLatin1String(name);rawInvoker=embind__requireFunction(signature,rawInvoker);exposePublicSymbol(name,function(){throwUnboundTypeError("Cannot call "+name+" due to unbound types",argTypes)},argCount-1);whenDependentTypesAreResolved([],argTypes,function(argTypes){var invokerArgsArray=[argTypes[0],null].concat(argTypes.slice(1));replacePublicSymbol(name,craftInvokerFunction(name,invokerArgsArray,null,rawInvoker,fn),argCount-1);return[]})}function integerReadValueFromPointer(name,shift,signed){switch(shift){case 0:return signed?function readS8FromPointer(pointer){return HEAP8[pointer]}:function readU8FromPointer(pointer){return HEAPU8[pointer]};case 1:return signed?function readS16FromPointer(pointer){return HEAP16[pointer>>1]}:function readU16FromPointer(pointer){return HEAPU16[pointer>>1]};case 2:return signed?function readS32FromPointer(pointer){return HEAP32[pointer>>2]}:function readU32FromPointer(pointer){return HEAPU32[pointer>>2]};default:throw new TypeError("Unknown integer type: "+name)}}function __embind_register_integer(primitiveType,name,size,minRange,maxRange){name=readLatin1String(name);if(maxRange===-1){maxRange=4294967295}var shift=getShiftFromSize(size);var fromWireType=function(value){return value};if(minRange===0){var bitshift=32-8*size;fromWireType=function(value){return value<<bitshift>>>bitshift}}var isUnsignedType=name.indexOf("unsigned")!=-1;registerType(primitiveType,{name:name,"fromWireType":fromWireType,"toWireType":function(destructors,value){if(typeof value!=="number"&&typeof value!=="boolean"){throw new TypeError('Cannot convert "'+_embind_repr(value)+'" to '+this.name)}if(value<minRange||value>maxRange){throw new TypeError('Passing a number "'+_embind_repr(value)+'" from JS side to C/C++ side to an argument of type "'+name+'", which is outside the valid range ['+minRange+", "+maxRange+"]!")}return isUnsignedType?value>>>0:value|0},"argPackAdvance":8,"readValueFromPointer":integerReadValueFromPointer(name,shift,minRange!==0),destructorFunction:null})}function __embind_register_memory_view(rawType,dataTypeIndex,name){var typeMapping=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array];var TA=typeMapping[dataTypeIndex];function decodeMemoryView(handle){handle=handle>>2;var heap=HEAPU32;var size=heap[handle];var data=heap[handle+1];return new TA(buffer,data,size)}name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":decodeMemoryView,"argPackAdvance":8,"readValueFromPointer":decodeMemoryView},{ignoreDuplicateRegistrations:true})}function __embind_register_std_string(rawType,name){name=readLatin1String(name);var stdStringIsUTF8=name==="std::string";registerType(rawType,{name:name,"fromWireType":function(value){var length=HEAPU32[value>>2];var str;if(stdStringIsUTF8){var decodeStartPtr=value+4;for(var i=0;i<=length;++i){var currentBytePtr=value+4+i;if(HEAPU8[currentBytePtr]==0||i==length){var maxRead=currentBytePtr-decodeStartPtr;var stringSegment=UTF8ToString(decodeStartPtr,maxRead);if(str===undefined){str=stringSegment}else{str+=String.fromCharCode(0);str+=stringSegment}decodeStartPtr=currentBytePtr+1}}}else{var a=new Array(length);for(var i=0;i<length;++i){a[i]=String.fromCharCode(HEAPU8[value+4+i])}str=a.join("")}_free(value);return str},"toWireType":function(destructors,value){if(value instanceof ArrayBuffer){value=new Uint8Array(value)}var getLength;var valueIsOfTypeString=typeof value==="string";if(!(valueIsOfTypeString||value instanceof Uint8Array||value instanceof Uint8ClampedArray||value instanceof Int8Array)){throwBindingError("Cannot pass non-string to std::string")}if(stdStringIsUTF8&&valueIsOfTypeString){getLength=function(){return lengthBytesUTF8(value)}}else{getLength=function(){return value.length}}var length=getLength();var ptr=_malloc(4+length+1);HEAPU32[ptr>>2]=length;if(stdStringIsUTF8&&valueIsOfTypeString){stringToUTF8(value,ptr+4,length+1)}else{if(valueIsOfTypeString){for(var i=0;i<length;++i){var charCode=value.charCodeAt(i);if(charCode>255){_free(ptr);throwBindingError("String has UTF-16 code units that do not fit in 8 bits")}HEAPU8[ptr+4+i]=charCode}}else{for(var i=0;i<length;++i){HEAPU8[ptr+4+i]=value[i]}}}if(destructors!==null){destructors.push(_free,ptr)}return ptr},"argPackAdvance":8,"readValueFromPointer":simpleReadValueFromPointer,destructorFunction:function(ptr){_free(ptr)}})}function __embind_register_std_wstring(rawType,charSize,name){name=readLatin1String(name);var decodeString,encodeString,getHeap,lengthBytesUTF,shift;if(charSize===2){decodeString=UTF16ToString;encodeString=stringToUTF16;lengthBytesUTF=lengthBytesUTF16;getHeap=function(){return HEAPU16};shift=1}else if(charSize===4){decodeString=UTF32ToString;encodeString=stringToUTF32;lengthBytesUTF=lengthBytesUTF32;getHeap=function(){return HEAPU32};shift=2}registerType(rawType,{name:name,"fromWireType":function(value){var length=HEAPU32[value>>2];var HEAP=getHeap();var str;var decodeStartPtr=value+4;for(var i=0;i<=length;++i){var currentBytePtr=value+4+i*charSize;if(HEAP[currentBytePtr>>shift]==0||i==length){var maxReadBytes=currentBytePtr-decodeStartPtr;var stringSegment=decodeString(decodeStartPtr,maxReadBytes);if(str===undefined){str=stringSegment}else{str+=String.fromCharCode(0);str+=stringSegment}decodeStartPtr=currentBytePtr+charSize}}_free(value);return str},"toWireType":function(destructors,value){if(!(typeof value==="string")){throwBindingError("Cannot pass non-string to C++ string type "+name)}var length=lengthBytesUTF(value);var ptr=_malloc(4+length+charSize);HEAPU32[ptr>>2]=length>>shift;encodeString(value,ptr+4,length+charSize);if(destructors!==null){destructors.push(_free,ptr)}return ptr},"argPackAdvance":8,"readValueFromPointer":simpleReadValueFromPointer,destructorFunction:function(ptr){_free(ptr)}})}function __embind_register_void(rawType,name){name=readLatin1String(name);registerType(rawType,{isVoid:true,name:name,"argPackAdvance":0,"fromWireType":function(){return undefined},"toWireType":function(destructors,o){return undefined}})}function requireHandle(handle){if(!handle){throwBindingError("Cannot use deleted val. handle = "+handle)}return emval_handle_array[handle].value}function requireRegisteredType(rawType,humanName){var impl=registeredTypes[rawType];if(undefined===impl){throwBindingError(humanName+" has unknown type "+getTypeName(rawType))}return impl}function __emval_as(handle,returnType,destructorsRef){handle=requireHandle(handle);returnType=requireRegisteredType(returnType,"emval::as");var destructors=[];var rd=__emval_register(destructors);HEAP32[destructorsRef>>2]=rd;return returnType["toWireType"](destructors,handle)}function __emval_allocateDestructors(destructorsRef){var destructors=[];HEAP32[destructorsRef>>2]=__emval_register(destructors);return destructors}var emval_symbols={};function getStringOrSymbol(address){var symbol=emval_symbols[address];if(symbol===undefined){return readLatin1String(address)}else{return symbol}}var emval_methodCallers=[];function __emval_call_method(caller,handle,methodName,destructorsRef,args){caller=emval_methodCallers[caller];handle=requireHandle(handle);methodName=getStringOrSymbol(methodName);return caller(handle,methodName,__emval_allocateDestructors(destructorsRef),args)}function __emval_call_void_method(caller,handle,methodName,args){caller=emval_methodCallers[caller];handle=requireHandle(handle);methodName=getStringOrSymbol(methodName);caller(handle,methodName,null,args)}function __emval_addMethodCaller(caller){var id=emval_methodCallers.length;emval_methodCallers.push(caller);return id}function __emval_lookupTypes(argCount,argTypes){var a=new Array(argCount);for(var i=0;i<argCount;++i){a[i]=requireRegisteredType(HEAP32[(argTypes>>2)+i],"parameter "+i)}return a}function __emval_get_method_caller(argCount,argTypes){var types=__emval_lookupTypes(argCount,argTypes);var retType=types[0];var signatureName=retType.name+"_$"+types.slice(1).map(function(t){return t.name}).join("_")+"$";var params=["retType"];var args=[retType];var argsList="";for(var i=0;i<argCount-1;++i){argsList+=(i!==0?", ":"")+"arg"+i;params.push("argType"+i);args.push(types[1+i])}var functionName=makeLegalFunctionName("methodCaller_"+signatureName);var functionBody="return function "+functionName+"(handle, name, destructors, args) {\n";var offset=0;for(var i=0;i<argCount-1;++i){functionBody+=" var arg"+i+" = argType"+i+".readValueFromPointer(args"+(offset?"+"+offset:"")+");\n";offset+=types[i+1]["argPackAdvance"]}functionBody+=" var rv = handle[name]("+argsList+");\n";for(var i=0;i<argCount-1;++i){if(types[i+1]["deleteObject"]){functionBody+=" argType"+i+".deleteObject(arg"+i+");\n"}}if(!retType.isVoid){functionBody+=" return retType.toWireType(destructors, rv);\n"}functionBody+="};\n";params.push(functionBody);var invokerFunction=new_(Function,params).apply(null,args);return __emval_addMethodCaller(invokerFunction)}function __emval_get_property(handle,key){handle=requireHandle(handle);key=requireHandle(key);return __emval_register(handle[key])}function __emval_incref(handle){if(handle>4){emval_handle_array[handle].refcount+=1}}function __emval_new_cstring(v){return __emval_register(getStringOrSymbol(v))}function __emval_run_destructors(handle){var destructors=emval_handle_array[handle].value;runDestructors(destructors);__emval_decref(handle)}function __emval_set_property(handle,key,value){handle=requireHandle(handle);key=requireHandle(key);value=requireHandle(value);handle[key]=value}function __emval_take_value(type,argv){type=requireRegisteredType(type,"_emval_take_value");var v=type["readValueFromPointer"](argv);return __emval_register(v)}function _abort(){abort()}function _clock(){if(_clock.start===undefined)_clock.start=Date.now();return(Date.now()-_clock.start)*(1e6/1e3)|0}function _emscripten_get_sbrk_ptr(){return 493104}function _longjmp(env,value){_setThrew(env,value||1);throw"longjmp"}function _emscripten_longjmp(env,value){_longjmp(env,value)}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function abortOnCannotGrowMemory(requestedSize){abort("OOM")}function _emscripten_resize_heap(requestedSize){requestedSize=requestedSize>>>0;abortOnCannotGrowMemory(requestedSize)}var ENV={};function __getExecutableName(){return thisProgram||"./this.program"}function getEnvStrings(){if(!getEnvStrings.strings){var env={"USER":"web_user","LOGNAME":"web_user","PATH":"/","PWD":"/","HOME":"/home/web_user","LANG":(typeof navigator==="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8","_":__getExecutableName()};for(var x in ENV){env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(x+"="+env[x])}getEnvStrings.strings=strings}return getEnvStrings.strings}function _environ_get(__environ,environ_buf){var bufSize=0;getEnvStrings().forEach(function(string,i){var ptr=environ_buf+bufSize;HEAP32[__environ+i*4>>2]=ptr;writeAsciiToMemory(string,ptr);bufSize+=string.length+1});return 0}function _environ_sizes_get(penviron_count,penviron_buf_size){var strings=getEnvStrings();HEAP32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(function(string){bufSize+=string.length+1});HEAP32[penviron_buf_size>>2]=bufSize;return 0}function _fd_close(fd){try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_fdstat_get(fd,pbuf){try{var stream=SYSCALLS.getStreamFromFD(fd);var type=stream.tty?2:FS.isDir(stream.mode)?3:FS.isLink(stream.mode)?7:4;HEAP8[pbuf>>0]=type;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_read(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doReadv(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){try{var stream=SYSCALLS.getStreamFromFD(fd);var HIGH_OFFSET=4294967296;var offset=offset_high*HIGH_OFFSET+(offset_low>>>0);var DOUBLE_LIMIT=9007199254740992;if(offset<=-DOUBLE_LIMIT||offset>=DOUBLE_LIMIT){return-61}FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math_abs(tempDouble)>=1?tempDouble>0?(Math_min(+Math_floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math_ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_write(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _getTempRet0(){return getTempRet0()|0}function _llvm_eh_typeid_for(type){return type}var ___tm_current=493120;var ___tm_timezone=(stringToUTF8("GMT",493168,4),493168);function _tzset(){if(_tzset.called)return;_tzset.called=true;HEAP32[__get_timezone()>>2]=(new Date).getTimezoneOffset()*60;var currentYear=(new Date).getFullYear();var winter=new Date(currentYear,0,1);var summer=new Date(currentYear,6,1);HEAP32[__get_daylight()>>2]=Number(winter.getTimezoneOffset()!=summer.getTimezoneOffset());function extractZone(date){var match=date.toTimeString().match(/\(([A-Za-z ]+)\)$/);return match?match[1]:"GMT"}var winterName=extractZone(winter);var summerName=extractZone(summer);var winterNamePtr=allocateUTF8(winterName);var summerNamePtr=allocateUTF8(summerName);if(summer.getTimezoneOffset()<winter.getTimezoneOffset()){HEAP32[__get_tzname()>>2]=winterNamePtr;HEAP32[__get_tzname()+4>>2]=summerNamePtr}else{HEAP32[__get_tzname()>>2]=summerNamePtr;HEAP32[__get_tzname()+4>>2]=winterNamePtr}}function _localtime_r(time,tmPtr){_tzset();var date=new Date(HEAP32[time>>2]*1e3);HEAP32[tmPtr>>2]=date.getSeconds();HEAP32[tmPtr+4>>2]=date.getMinutes();HEAP32[tmPtr+8>>2]=date.getHours();HEAP32[tmPtr+12>>2]=date.getDate();HEAP32[tmPtr+16>>2]=date.getMonth();HEAP32[tmPtr+20>>2]=date.getFullYear()-1900;HEAP32[tmPtr+24>>2]=date.getDay();var start=new Date(date.getFullYear(),0,1);var yday=(date.getTime()-start.getTime())/(1e3*60*60*24)|0;HEAP32[tmPtr+28>>2]=yday;HEAP32[tmPtr+36>>2]=-(date.getTimezoneOffset()*60);var summerOffset=new Date(date.getFullYear(),6,1).getTimezoneOffset();var winterOffset=start.getTimezoneOffset();var dst=(summerOffset!=winterOffset&&date.getTimezoneOffset()==Math.min(winterOffset,summerOffset))|0;HEAP32[tmPtr+32>>2]=dst;var zonePtr=HEAP32[__get_tzname()+(dst?4:0)>>2];HEAP32[tmPtr+40>>2]=zonePtr;return tmPtr}function _localtime(time){return _localtime_r(time,___tm_current)}function _pthread_mutexattr_destroy(){}function _pthread_mutexattr_init(){}function _pthread_mutexattr_settype(){}function _round(d){d=+d;return d>=+0?+Math_floor(d+ +.5):+Math_ceil(d-+.5)}function _setTempRet0($i){setTempRet0($i|0)}function __isLeapYear(year){return year%4===0&&(year%100!==0||year%400===0)}function __arraySum(array,index){var sum=0;for(var i=0;i<=index;sum+=array[i++]){}return sum}var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];var __MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function __addDays(date,days){var newDate=new Date(date.getTime());while(days>0){var leap=__isLeapYear(newDate.getFullYear());var currentMonth=newDate.getMonth();var daysInCurrentMonth=(leap?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR)[currentMonth];if(days>daysInCurrentMonth-newDate.getDate()){days-=daysInCurrentMonth-newDate.getDate()+1;newDate.setDate(1);if(currentMonth<11){newDate.setMonth(currentMonth+1)}else{newDate.setMonth(0);newDate.setFullYear(newDate.getFullYear()+1)}}else{newDate.setDate(newDate.getDate()+days);return newDate}}return newDate}function _strftime(s,maxsize,format,tm){var tm_zone=HEAP32[tm+40>>2];var date={tm_sec:HEAP32[tm>>2],tm_min:HEAP32[tm+4>>2],tm_hour:HEAP32[tm+8>>2],tm_mday:HEAP32[tm+12>>2],tm_mon:HEAP32[tm+16>>2],tm_year:HEAP32[tm+20>>2],tm_wday:HEAP32[tm+24>>2],tm_yday:HEAP32[tm+28>>2],tm_isdst:HEAP32[tm+32>>2],tm_gmtoff:HEAP32[tm+36>>2],tm_zone:tm_zone?UTF8ToString(tm_zone):""};var pattern=UTF8ToString(format);var EXPANSION_RULES_1={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_1[rule])}var WEEKDAYS=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var MONTHS=["January","February","March","April","May","June","July","August","September","October","November","December"];function leadingSomething(value,digits,character){var str=typeof value==="number"?value.toString():value||"";while(str.length<digits){str=character[0]+str}return str}function leadingNulls(value,digits){return leadingSomething(value,digits,"0")}function compareByDay(date1,date2){function sgn(value){return value<0?-1:value>0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}else{return thisDate.getFullYear()}}else{return thisDate.getFullYear()-1}}var EXPANSION_RULES_2={"%a":function(date){return WEEKDAYS[date.tm_wday].substring(0,3)},"%A":function(date){return WEEKDAYS[date.tm_wday]},"%b":function(date){return MONTHS[date.tm_mon].substring(0,3)},"%B":function(date){return MONTHS[date.tm_mon]},"%C":function(date){var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},"%d":function(date){return leadingNulls(date.tm_mday,2)},"%e":function(date){return leadingSomething(date.tm_mday,2," ")},"%g":function(date){return getWeekBasedYear(date).toString().substring(2)},"%G":function(date){return getWeekBasedYear(date)},"%H":function(date){return leadingNulls(date.tm_hour,2)},"%I":function(date){var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)},"%j":function(date){return leadingNulls(date.tm_mday+__arraySum(__isLeapYear(date.tm_year+1900)?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,date.tm_mon-1),3)},"%m":function(date){return leadingNulls(date.tm_mon+1,2)},"%M":function(date){return leadingNulls(date.tm_min,2)},"%n":function(){return"\n"},"%p":function(date){if(date.tm_hour>=0&&date.tm_hour<12){return"AM"}else{return"PM"}},"%S":function(date){return leadingNulls(date.tm_sec,2)},"%t":function(){return"\t"},"%u":function(date){return date.tm_wday||7},"%U":function(date){var janFirst=new Date(date.tm_year+1900,0,1);var firstSunday=janFirst.getDay()===0?janFirst:__addDays(janFirst,7-janFirst.getDay());var endDate=new Date(date.tm_year+1900,date.tm_mon,date.tm_mday);if(compareByDay(firstSunday,endDate)<0){var februaryFirstUntilEndMonth=__arraySum(__isLeapYear(endDate.getFullYear())?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,endDate.getMonth()-1)-31;var firstSundayUntilEndJanuary=31-firstSunday.getDate();var days=firstSundayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate();return leadingNulls(Math.ceil(days/7),2)}return compareByDay(firstSunday,janFirst)===0?"01":"00"},"%V":function(date){var janFourthThisYear=new Date(date.tm_year+1900,0,4);var janFourthNextYear=new Date(date.tm_year+1901,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);var endDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);if(compareByDay(endDate,firstWeekStartThisYear)<0){return"53"}if(compareByDay(firstWeekStartNextYear,endDate)<=0){return"01"}var daysDifference;if(firstWeekStartThisYear.getFullYear()<date.tm_year+1900){daysDifference=date.tm_yday+32-firstWeekStartThisYear.getDate()}else{daysDifference=date.tm_yday+1-firstWeekStartThisYear.getDate()}return leadingNulls(Math.ceil(daysDifference/7),2)},"%w":function(date){return date.tm_wday},"%W":function(date){var janFirst=new Date(date.tm_year,0,1);var firstMonday=janFirst.getDay()===1?janFirst:__addDays(janFirst,janFirst.getDay()===0?1:7-janFirst.getDay()+1);var endDate=new Date(date.tm_year+1900,date.tm_mon,date.tm_mday);if(compareByDay(firstMonday,endDate)<0){var februaryFirstUntilEndMonth=__arraySum(__isLeapYear(endDate.getFullYear())?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,endDate.getMonth()-1)-31;var firstMondayUntilEndJanuary=31-firstMonday.getDate();var days=firstMondayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate();return leadingNulls(Math.ceil(days/7),2)}return compareByDay(firstMonday,janFirst)===0?"01":"00"},"%y":function(date){return(date.tm_year+1900).toString().substring(2)},"%Y":function(date){return date.tm_year+1900},"%z":function(date){var off=date.tm_gmtoff;var ahead=off>=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?"+":"-")+String("0000"+off).slice(-4)},"%Z":function(date){return date.tm_zone},"%%":function(){return"%"}};for(var rule in EXPANSION_RULES_2){if(pattern.indexOf(rule)>=0){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_2[rule](date))}}var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1}function _strftime_l(s,maxsize,format,tm){return _strftime(s,maxsize,format,tm)}function _time(ptr){var ret=Date.now()/1e3|0;if(ptr){HEAP32[ptr>>2]=ret}return ret}var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.staticInit();embind_init_charCodes();BindingError=Module["BindingError"]=extendError(Error,"BindingError");InternalError=Module["InternalError"]=extendError(Error,"InternalError");init_ClassHandle();init_RegisteredPointer();init_embind();UnboundTypeError=Module["UnboundTypeError"]=extendError(Error,"UnboundTypeError");init_emval();var ASSERTIONS=false;function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var asmLibraryArg={"__cxa_allocate_exception":___cxa_allocate_exception,"__cxa_atexit":___cxa_atexit,"__cxa_begin_catch":___cxa_begin_catch,"__cxa_end_catch":___cxa_end_catch,"__cxa_find_matching_catch_2":___cxa_find_matching_catch_2,"__cxa_find_matching_catch_3":___cxa_find_matching_catch_3,"__cxa_find_matching_catch_4":___cxa_find_matching_catch_4,"__cxa_free_exception":___cxa_free_exception,"__cxa_rethrow":___cxa_rethrow,"__cxa_throw":___cxa_throw,"__cxa_uncaught_exceptions":___cxa_uncaught_exceptions,"__map_file":___map_file,"__resumeException":___resumeException,"__sys_fcntl64":___sys_fcntl64,"__sys_ioctl":___sys_ioctl,"__sys_munmap":___sys_munmap,"__sys_open":___sys_open,"_embind_register_bool":__embind_register_bool,"_embind_register_class":__embind_register_class,"_embind_register_class_function":__embind_register_class_function,"_embind_register_emval":__embind_register_emval,"_embind_register_float":__embind_register_float,"_embind_register_function":__embind_register_function,"_embind_register_integer":__embind_register_integer,"_embind_register_memory_view":__embind_register_memory_view,"_embind_register_std_string":__embind_register_std_string,"_embind_register_std_wstring":__embind_register_std_wstring,"_embind_register_void":__embind_register_void,"_emval_as":__emval_as,"_emval_call_method":__emval_call_method,"_emval_call_void_method":__emval_call_void_method,"_emval_decref":__emval_decref,"_emval_get_method_caller":__emval_get_method_caller,"_emval_get_property":__emval_get_property,"_emval_incref":__emval_incref,"_emval_new_cstring":__emval_new_cstring,"_emval_run_destructors":__emval_run_destructors,"_emval_set_property":__emval_set_property,"_emval_take_value":__emval_take_value,"abort":_abort,"clock":_clock,"emscripten_get_sbrk_ptr":_emscripten_get_sbrk_ptr,"emscripten_longjmp":_emscripten_longjmp,"emscripten_memcpy_big":_emscripten_memcpy_big,"emscripten_resize_heap":_emscripten_resize_heap,"environ_get":_environ_get,"environ_sizes_get":_environ_sizes_get,"fd_close":_fd_close,"fd_fdstat_get":_fd_fdstat_get,"fd_read":_fd_read,"fd_seek":_fd_seek,"fd_write":_fd_write,"getTempRet0":_getTempRet0,"invoke_di":invoke_di,"invoke_dii":invoke_dii,"invoke_diid":invoke_diid,"invoke_diii":invoke_diii,"invoke_diiii":invoke_diiii,"invoke_diiiii":invoke_diiiii,"invoke_fi":invoke_fi,"invoke_fif":invoke_fif,"invoke_fii":invoke_fii,"invoke_fiii":invoke_fiii,"invoke_fiiii":invoke_fiiii,"invoke_fiiiiiff":invoke_fiiiiiff,"invoke_i":invoke_i,"invoke_ii":invoke_ii,"invoke_iid":invoke_iid,"invoke_iiddi":invoke_iiddi,"invoke_iiddii":invoke_iiddii,"invoke_iiddiii":invoke_iiddiii,"invoke_iif":invoke_iif,"invoke_iii":invoke_iii,"invoke_iiii":invoke_iiii,"invoke_iiiii":invoke_iiiii,"invoke_iiiiid":invoke_iiiiid,"invoke_iiiiii":invoke_iiiiii,"invoke_iiiiiid":invoke_iiiiiid,"invoke_iiiiiii":invoke_iiiiiii,"invoke_iiiiiiii":invoke_iiiiiiii,"invoke_iiiiiiiii":invoke_iiiiiiiii,"invoke_iiiiiiiiiddiii":invoke_iiiiiiiiiddiii,"invoke_iiiiiiiiii":invoke_iiiiiiiiii,"invoke_iiiiiiiiiii":invoke_iiiiiiiiiii,"invoke_iiiiiiiiiiii":invoke_iiiiiiiiiiii,"invoke_iiiiiiiiiiiii":invoke_iiiiiiiiiiiii,"invoke_iij":invoke_iij,"invoke_jiiii":invoke_jiiii,"invoke_v":invoke_v,"invoke_vi":invoke_vi,"invoke_vid":invoke_vid,"invoke_vidi":invoke_vidi,"invoke_vidiiiiiii":invoke_vidiiiiiii,"invoke_vif":invoke_vif,"invoke_viffffff":invoke_viffffff,"invoke_viffi":invoke_viffi,"invoke_vifii":invoke_vifii,"invoke_vii":invoke_vii,"invoke_viid":invoke_viid,"invoke_viidddd":invoke_viidddd,"invoke_viidi":invoke_viidi,"invoke_viidii":invoke_viidii,"invoke_viidiiiiiii":invoke_viidiiiiiii,"invoke_viif":invoke_viif,"invoke_viifii":invoke_viifii,"invoke_viii":invoke_viii,"invoke_viiid":invoke_viiid,"invoke_viiidi":invoke_viiidi,"invoke_viiidiiiid":invoke_viiidiiiid,"invoke_viiiff":invoke_viiiff,"invoke_viiii":invoke_viiii,"invoke_viiiidd":invoke_viiiidd,"invoke_viiiiffffiii":invoke_viiiiffffiii,"invoke_viiiii":invoke_viiiii,"invoke_viiiiidi":invoke_viiiiidi,"invoke_viiiiii":invoke_viiiiii,"invoke_viiiiiid":invoke_viiiiiid,"invoke_viiiiiii":invoke_viiiiiii,"invoke_viiiiiiii":invoke_viiiiiiii,"invoke_viiiiiiiii":invoke_viiiiiiiii,"invoke_viiiiiiiiii":invoke_viiiiiiiiii,"invoke_viiiiiiiiiii":invoke_viiiiiiiiiii,"invoke_viiiiiiiiiiiiiii":invoke_viiiiiiiiiiiiiii,"llvm_eh_typeid_for":_llvm_eh_typeid_for,"localtime":_localtime,"memory":wasmMemory,"pthread_mutexattr_destroy":_pthread_mutexattr_destroy,"pthread_mutexattr_init":_pthread_mutexattr_init,"pthread_mutexattr_settype":_pthread_mutexattr_settype,"round":_round,"setTempRet0":_setTempRet0,"strftime_l":_strftime_l,"table":wasmTable,"time":_time};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["__wasm_call_ctors"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["malloc"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["free"]).apply(null,arguments)};var _realloc=Module["_realloc"]=function(){return(_realloc=Module["_realloc"]=Module["asm"]["realloc"]).apply(null,arguments)};var ___errno_location=Module["___errno_location"]=function(){return(___errno_location=Module["___errno_location"]=Module["asm"]["__errno_location"]).apply(null,arguments)};var _testSetjmp=Module["_testSetjmp"]=function(){return(_testSetjmp=Module["_testSetjmp"]=Module["asm"]["testSetjmp"]).apply(null,arguments)};var _saveSetjmp=Module["_saveSetjmp"]=function(){return(_saveSetjmp=Module["_saveSetjmp"]=Module["asm"]["saveSetjmp"]).apply(null,arguments)};var ___getTypeName=Module["___getTypeName"]=function(){return(___getTypeName=Module["___getTypeName"]=Module["asm"]["__getTypeName"]).apply(null,arguments)};var ___embind_register_native_and_builtin_types=Module["___embind_register_native_and_builtin_types"]=function(){return(___embind_register_native_and_builtin_types=Module["___embind_register_native_and_builtin_types"]=Module["asm"]["__embind_register_native_and_builtin_types"]).apply(null,arguments)};var __get_tzname=Module["__get_tzname"]=function(){return(__get_tzname=Module["__get_tzname"]=Module["asm"]["_get_tzname"]).apply(null,arguments)};var __get_daylight=Module["__get_daylight"]=function(){return(__get_daylight=Module["__get_daylight"]=Module["asm"]["_get_daylight"]).apply(null,arguments)};var __get_timezone=Module["__get_timezone"]=function(){return(__get_timezone=Module["__get_timezone"]=Module["asm"]["_get_timezone"]).apply(null,arguments)};var _setThrew=Module["_setThrew"]=function(){return(_setThrew=Module["_setThrew"]=Module["asm"]["setThrew"]).apply(null,arguments)};var stackSave=Module["stackSave"]=function(){return(stackSave=Module["stackSave"]=Module["asm"]["stackSave"]).apply(null,arguments)};var stackRestore=Module["stackRestore"]=function(){return(stackRestore=Module["stackRestore"]=Module["asm"]["stackRestore"]).apply(null,arguments)};var stackAlloc=Module["stackAlloc"]=function(){return(stackAlloc=Module["stackAlloc"]=Module["asm"]["stackAlloc"]).apply(null,arguments)};var __ZSt18uncaught_exceptionv=Module["__ZSt18uncaught_exceptionv"]=function(){return(__ZSt18uncaught_exceptionv=Module["__ZSt18uncaught_exceptionv"]=Module["asm"]["_ZSt18uncaught_exceptionv"]).apply(null,arguments)};var ___cxa_can_catch=Module["___cxa_can_catch"]=function(){return(___cxa_can_catch=Module["___cxa_can_catch"]=Module["asm"]["__cxa_can_catch"]).apply(null,arguments)};var ___cxa_is_pointer_type=Module["___cxa_is_pointer_type"]=function(){return(___cxa_is_pointer_type=Module["___cxa_is_pointer_type"]=Module["asm"]["__cxa_is_pointer_type"]).apply(null,arguments)};var dynCall_v=Module["dynCall_v"]=function(){return(dynCall_v=Module["dynCall_v"]=Module["asm"]["dynCall_v"]).apply(null,arguments)};var dynCall_vi=Module["dynCall_vi"]=function(){return(dynCall_vi=Module["dynCall_vi"]=Module["asm"]["dynCall_vi"]).apply(null,arguments)};var dynCall_vii=Module["dynCall_vii"]=function(){return(dynCall_vii=Module["dynCall_vii"]=Module["asm"]["dynCall_vii"]).apply(null,arguments)};var dynCall_viii=Module["dynCall_viii"]=function(){return(dynCall_viii=Module["dynCall_viii"]=Module["asm"]["dynCall_viii"]).apply(null,arguments)};var dynCall_viiii=Module["dynCall_viiii"]=function(){return(dynCall_viiii=Module["dynCall_viiii"]=Module["asm"]["dynCall_viiii"]).apply(null,arguments)};var dynCall_viiiii=Module["dynCall_viiiii"]=function(){return(dynCall_viiiii=Module["dynCall_viiiii"]=Module["asm"]["dynCall_viiiii"]).apply(null,arguments)};var dynCall_viiiiii=Module["dynCall_viiiiii"]=function(){return(dynCall_viiiiii=Module["dynCall_viiiiii"]=Module["asm"]["dynCall_viiiiii"]).apply(null,arguments)};var dynCall_viiiiiii=Module["dynCall_viiiiiii"]=function(){return(dynCall_viiiiiii=Module["dynCall_viiiiiii"]=Module["asm"]["dynCall_viiiiiii"]).apply(null,arguments)};var dynCall_viiiiiiii=Module["dynCall_viiiiiiii"]=function(){return(dynCall_viiiiiiii=Module["dynCall_viiiiiiii"]=Module["asm"]["dynCall_viiiiiiii"]).apply(null,arguments)};var dynCall_viiiiiiiii=Module["dynCall_viiiiiiiii"]=function(){return(dynCall_viiiiiiiii=Module["dynCall_viiiiiiiii"]=Module["asm"]["dynCall_viiiiiiiii"]).apply(null,arguments)};var dynCall_viiiiiiiiii=Module["dynCall_viiiiiiiiii"]=function(){return(dynCall_viiiiiiiiii=Module["dynCall_viiiiiiiiii"]=Module["asm"]["dynCall_viiiiiiiiii"]).apply(null,arguments)};var dynCall_viiiiiiiiiii=Module["dynCall_viiiiiiiiiii"]=function(){return(dynCall_viiiiiiiiiii=Module["dynCall_viiiiiiiiiii"]=Module["asm"]["dynCall_viiiiiiiiiii"]).apply(null,arguments)};var dynCall_viiiiiiiiiiiiiii=Module["dynCall_viiiiiiiiiiiiiii"]=function(){return(dynCall_viiiiiiiiiiiiiii=Module["dynCall_viiiiiiiiiiiiiii"]=Module["asm"]["dynCall_viiiiiiiiiiiiiii"]).apply(null,arguments)};var dynCall_viiiiiid=Module["dynCall_viiiiiid"]=function(){return(dynCall_viiiiiid=Module["dynCall_viiiiiid"]=Module["asm"]["dynCall_viiiiiid"]).apply(null,arguments)};var dynCall_viiiiidi=Module["dynCall_viiiiidi"]=function(){return(dynCall_viiiiidi=Module["dynCall_viiiiidi"]=Module["asm"]["dynCall_viiiiidi"]).apply(null,arguments)};var dynCall_viiiiffffiii=Module["dynCall_viiiiffffiii"]=function(){return(dynCall_viiiiffffiii=Module["dynCall_viiiiffffiii"]=Module["asm"]["dynCall_viiiiffffiii"]).apply(null,arguments)};var dynCall_viiiidd=Module["dynCall_viiiidd"]=function(){return(dynCall_viiiidd=Module["dynCall_viiiidd"]=Module["asm"]["dynCall_viiiidd"]).apply(null,arguments)};var dynCall_viiiff=Module["dynCall_viiiff"]=function(){return(dynCall_viiiff=Module["dynCall_viiiff"]=Module["asm"]["dynCall_viiiff"]).apply(null,arguments)};var dynCall_viiid=Module["dynCall_viiid"]=function(){return(dynCall_viiid=Module["dynCall_viiid"]=Module["asm"]["dynCall_viiid"]).apply(null,arguments)};var dynCall_viiidi=Module["dynCall_viiidi"]=function(){return(dynCall_viiidi=Module["dynCall_viiidi"]=Module["asm"]["dynCall_viiidi"]).apply(null,arguments)};var dynCall_viiidiiiid=Module["dynCall_viiidiiiid"]=function(){return(dynCall_viiidiiiid=Module["dynCall_viiidiiiid"]=Module["asm"]["dynCall_viiidiiiid"]).apply(null,arguments)};var dynCall_viif=Module["dynCall_viif"]=function(){return(dynCall_viif=Module["dynCall_viif"]=Module["asm"]["dynCall_viif"]).apply(null,arguments)};var dynCall_viifii=Module["dynCall_viifii"]=function(){return(dynCall_viifii=Module["dynCall_viifii"]=Module["asm"]["dynCall_viifii"]).apply(null,arguments)};var dynCall_viid=Module["dynCall_viid"]=function(){return(dynCall_viid=Module["dynCall_viid"]=Module["asm"]["dynCall_viid"]).apply(null,arguments)};var dynCall_viidi=Module["dynCall_viidi"]=function(){return(dynCall_viidi=Module["dynCall_viidi"]=Module["asm"]["dynCall_viidi"]).apply(null,arguments)};var dynCall_viidii=Module["dynCall_viidii"]=function(){return(dynCall_viidii=Module["dynCall_viidii"]=Module["asm"]["dynCall_viidii"]).apply(null,arguments)};var dynCall_viidiiiiiii=Module["dynCall_viidiiiiiii"]=function(){return(dynCall_viidiiiiiii=Module["dynCall_viidiiiiiii"]=Module["asm"]["dynCall_viidiiiiiii"]).apply(null,arguments)};var dynCall_viidddd=Module["dynCall_viidddd"]=function(){return(dynCall_viidddd=Module["dynCall_viidddd"]=Module["asm"]["dynCall_viidddd"]).apply(null,arguments)};var dynCall_vif=Module["dynCall_vif"]=function(){return(dynCall_vif=Module["dynCall_vif"]=Module["asm"]["dynCall_vif"]).apply(null,arguments)};var dynCall_vifii=Module["dynCall_vifii"]=function(){return(dynCall_vifii=Module["dynCall_vifii"]=Module["asm"]["dynCall_vifii"]).apply(null,arguments)};var dynCall_viffi=Module["dynCall_viffi"]=function(){return(dynCall_viffi=Module["dynCall_viffi"]=Module["asm"]["dynCall_viffi"]).apply(null,arguments)};var dynCall_viffffff=Module["dynCall_viffffff"]=function(){return(dynCall_viffffff=Module["dynCall_viffffff"]=Module["asm"]["dynCall_viffffff"]).apply(null,arguments)};var dynCall_vid=Module["dynCall_vid"]=function(){return(dynCall_vid=Module["dynCall_vid"]=Module["asm"]["dynCall_vid"]).apply(null,arguments)};var dynCall_vidi=Module["dynCall_vidi"]=function(){return(dynCall_vidi=Module["dynCall_vidi"]=Module["asm"]["dynCall_vidi"]).apply(null,arguments)};var dynCall_vidiiiiiii=Module["dynCall_vidiiiiiii"]=function(){return(dynCall_vidiiiiiii=Module["dynCall_vidiiiiiii"]=Module["asm"]["dynCall_vidiiiiiii"]).apply(null,arguments)};var dynCall_i=Module["dynCall_i"]=function(){return(dynCall_i=Module["dynCall_i"]=Module["asm"]["dynCall_i"]).apply(null,arguments)};var dynCall_ii=Module["dynCall_ii"]=function(){return(dynCall_ii=Module["dynCall_ii"]=Module["asm"]["dynCall_ii"]).apply(null,arguments)};var dynCall_iii=Module["dynCall_iii"]=function(){return(dynCall_iii=Module["dynCall_iii"]=Module["asm"]["dynCall_iii"]).apply(null,arguments)};var dynCall_iiii=Module["dynCall_iiii"]=function(){return(dynCall_iiii=Module["dynCall_iiii"]=Module["asm"]["dynCall_iiii"]).apply(null,arguments)};var dynCall_iiiii=Module["dynCall_iiiii"]=function(){return(dynCall_iiiii=Module["dynCall_iiiii"]=Module["asm"]["dynCall_iiiii"]).apply(null,arguments)};var dynCall_iiiiii=Module["dynCall_iiiiii"]=function(){return(dynCall_iiiiii=Module["dynCall_iiiiii"]=Module["asm"]["dynCall_iiiiii"]).apply(null,arguments)};var dynCall_iiiiiii=Module["dynCall_iiiiiii"]=function(){return(dynCall_iiiiiii=Module["dynCall_iiiiiii"]=Module["asm"]["dynCall_iiiiiii"]).apply(null,arguments)};var dynCall_iiiiiiii=Module["dynCall_iiiiiiii"]=function(){return(dynCall_iiiiiiii=Module["dynCall_iiiiiiii"]=Module["asm"]["dynCall_iiiiiiii"]).apply(null,arguments)};var dynCall_iiiiiiiii=Module["dynCall_iiiiiiiii"]=function(){return(dynCall_iiiiiiiii=Module["dynCall_iiiiiiiii"]=Module["asm"]["dynCall_iiiiiiiii"]).apply(null,arguments)};var dynCall_iiiiiiiiii=Module["dynCall_iiiiiiiiii"]=function(){return(dynCall_iiiiiiiiii=Module["dynCall_iiiiiiiiii"]=Module["asm"]["dynCall_iiiiiiiiii"]).apply(null,arguments)};var dynCall_iiiiiiiiiii=Module["dynCall_iiiiiiiiiii"]=function(){return(dynCall_iiiiiiiiiii=Module["dynCall_iiiiiiiiiii"]=Module["asm"]["dynCall_iiiiiiiiiii"]).apply(null,arguments)};var dynCall_iiiiiiiiiiii=Module["dynCall_iiiiiiiiiiii"]=function(){return(dynCall_iiiiiiiiiiii=Module["dynCall_iiiiiiiiiiii"]=Module["asm"]["dynCall_iiiiiiiiiiii"]).apply(null,arguments)};var dynCall_iiiiiiiiiiiii=Module["dynCall_iiiiiiiiiiiii"]=function(){return(dynCall_iiiiiiiiiiiii=Module["dynCall_iiiiiiiiiiiii"]=Module["asm"]["dynCall_iiiiiiiiiiiii"]).apply(null,arguments)};var dynCall_iiiiiiiiiddiii=Module["dynCall_iiiiiiiiiddiii"]=function(){return(dynCall_iiiiiiiiiddiii=Module["dynCall_iiiiiiiiiddiii"]=Module["asm"]["dynCall_iiiiiiiiiddiii"]).apply(null,arguments)};var dynCall_iiiiiid=Module["dynCall_iiiiiid"]=function(){return(dynCall_iiiiiid=Module["dynCall_iiiiiid"]=Module["asm"]["dynCall_iiiiiid"]).apply(null,arguments)};var dynCall_iiiiid=Module["dynCall_iiiiid"]=function(){return(dynCall_iiiiid=Module["dynCall_iiiiid"]=Module["asm"]["dynCall_iiiiid"]).apply(null,arguments)};var dynCall_iij=Module["dynCall_iij"]=function(){return(dynCall_iij=Module["dynCall_iij"]=Module["asm"]["dynCall_iij"]).apply(null,arguments)};var dynCall_iif=Module["dynCall_iif"]=function(){return(dynCall_iif=Module["dynCall_iif"]=Module["asm"]["dynCall_iif"]).apply(null,arguments)};var dynCall_iid=Module["dynCall_iid"]=function(){return(dynCall_iid=Module["dynCall_iid"]=Module["asm"]["dynCall_iid"]).apply(null,arguments)};var dynCall_iiddi=Module["dynCall_iiddi"]=function(){return(dynCall_iiddi=Module["dynCall_iiddi"]=Module["asm"]["dynCall_iiddi"]).apply(null,arguments)};var dynCall_iiddii=Module["dynCall_iiddii"]=function(){return(dynCall_iiddii=Module["dynCall_iiddii"]=Module["asm"]["dynCall_iiddii"]).apply(null,arguments)};var dynCall_iiddiii=Module["dynCall_iiddiii"]=function(){return(dynCall_iiddiii=Module["dynCall_iiddiii"]=Module["asm"]["dynCall_iiddiii"]).apply(null,arguments)};var dynCall_jiiii=Module["dynCall_jiiii"]=function(){return(dynCall_jiiii=Module["dynCall_jiiii"]=Module["asm"]["dynCall_jiiii"]).apply(null,arguments)};var dynCall_fi=Module["dynCall_fi"]=function(){return(dynCall_fi=Module["dynCall_fi"]=Module["asm"]["dynCall_fi"]).apply(null,arguments)};var dynCall_fii=Module["dynCall_fii"]=function(){return(dynCall_fii=Module["dynCall_fii"]=Module["asm"]["dynCall_fii"]).apply(null,arguments)};var dynCall_fiii=Module["dynCall_fiii"]=function(){return(dynCall_fiii=Module["dynCall_fiii"]=Module["asm"]["dynCall_fiii"]).apply(null,arguments)};var dynCall_fiiii=Module["dynCall_fiiii"]=function(){return(dynCall_fiiii=Module["dynCall_fiiii"]=Module["asm"]["dynCall_fiiii"]).apply(null,arguments)};var dynCall_fiiiiiff=Module["dynCall_fiiiiiff"]=function(){return(dynCall_fiiiiiff=Module["dynCall_fiiiiiff"]=Module["asm"]["dynCall_fiiiiiff"]).apply(null,arguments)};var dynCall_fif=Module["dynCall_fif"]=function(){return(dynCall_fif=Module["dynCall_fif"]=Module["asm"]["dynCall_fif"]).apply(null,arguments)};var dynCall_di=Module["dynCall_di"]=function(){return(dynCall_di=Module["dynCall_di"]=Module["asm"]["dynCall_di"]).apply(null,arguments)};var dynCall_dii=Module["dynCall_dii"]=function(){return(dynCall_dii=Module["dynCall_dii"]=Module["asm"]["dynCall_dii"]).apply(null,arguments)};var dynCall_diii=Module["dynCall_diii"]=function(){return(dynCall_diii=Module["dynCall_diii"]=Module["asm"]["dynCall_diii"]).apply(null,arguments)};var dynCall_diiii=Module["dynCall_diiii"]=function(){return(dynCall_diiii=Module["dynCall_diiii"]=Module["asm"]["dynCall_diiii"]).apply(null,arguments)};var dynCall_diiiii=Module["dynCall_diiiii"]=function(){return(dynCall_diiiii=Module["dynCall_diiiii"]=Module["asm"]["dynCall_diiiii"]).apply(null,arguments)};var dynCall_diid=Module["dynCall_diid"]=function(){return(dynCall_diid=Module["dynCall_diid"]=Module["asm"]["dynCall_diid"]).apply(null,arguments)};var __growWasmMemory=Module["__growWasmMemory"]=function(){return(__growWasmMemory=Module["__growWasmMemory"]=Module["asm"]["__growWasmMemory"]).apply(null,arguments)};var dynCall_iiidi=Module["dynCall_iiidi"]=function(){return(dynCall_iiidi=Module["dynCall_iiidi"]=Module["asm"]["dynCall_iiidi"]).apply(null,arguments)};var dynCall_viijii=Module["dynCall_viijii"]=function(){return(dynCall_viijii=Module["dynCall_viijii"]=Module["asm"]["dynCall_viijii"]).apply(null,arguments)};var dynCall_viiddd=Module["dynCall_viiddd"]=function(){return(dynCall_viiddd=Module["dynCall_viiddd"]=Module["asm"]["dynCall_viiddd"]).apply(null,arguments)};var dynCall_viiiidi=Module["dynCall_viiiidi"]=function(){return(dynCall_viiiidi=Module["dynCall_viiiidi"]=Module["asm"]["dynCall_viiiidi"]).apply(null,arguments)};var dynCall_iiiiiiiiiiiiiiiii=Module["dynCall_iiiiiiiiiiiiiiiii"]=function(){return(dynCall_iiiiiiiiiiiiiiiii=Module["dynCall_iiiiiiiiiiiiiiiii"]=Module["asm"]["dynCall_iiiiiiiiiiiiiiiii"]).apply(null,arguments)};var dynCall_iiiiiiiiiiiiiiiiii=Module["dynCall_iiiiiiiiiiiiiiiiii"]=function(){return(dynCall_iiiiiiiiiiiiiiiiii=Module["dynCall_iiiiiiiiiiiiiiiiii"]=Module["asm"]["dynCall_iiiiiiiiiiiiiiiiii"]).apply(null,arguments)};var dynCall_jiji=Module["dynCall_jiji"]=function(){return(dynCall_jiji=Module["dynCall_jiji"]=Module["asm"]["dynCall_jiji"]).apply(null,arguments)};var dynCall_iidiiii=Module["dynCall_iidiiii"]=function(){return(dynCall_iidiiii=Module["dynCall_iidiiii"]=Module["asm"]["dynCall_iidiiii"]).apply(null,arguments)};var dynCall_iiiiij=Module["dynCall_iiiiij"]=function(){return(dynCall_iiiiij=Module["dynCall_iiiiij"]=Module["asm"]["dynCall_iiiiij"]).apply(null,arguments)};var dynCall_iiiiijj=Module["dynCall_iiiiijj"]=function(){return(dynCall_iiiiijj=Module["dynCall_iiiiijj"]=Module["asm"]["dynCall_iiiiijj"]).apply(null,arguments)};var dynCall_iiiiiijj=Module["dynCall_iiiiiijj"]=function(){return(dynCall_iiiiiijj=Module["dynCall_iiiiiijj"]=Module["asm"]["dynCall_iiiiiijj"]).apply(null,arguments)};function invoke_viiii(index,a1,a2,a3,a4){var sp=stackSave();try{dynCall_viiii(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_ii(index,a1){var sp=stackSave();try{return dynCall_ii(index,a1)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_iii(index,a1,a2){var sp=stackSave();try{return dynCall_iii(index,a1,a2)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_vi(index,a1){var sp=stackSave();try{dynCall_vi(index,a1)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_diii(index,a1,a2,a3){var sp=stackSave();try{return dynCall_diii(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_iiiiii(index,a1,a2,a3,a4,a5){var sp=stackSave();try{return dynCall_iiiiii(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_vii(index,a1,a2){var sp=stackSave();try{dynCall_vii(index,a1,a2)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_viiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9){var sp=stackSave();try{dynCall_viiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_viiiiiii(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{dynCall_viiiiiii(index,a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_viii(index,a1,a2,a3){var sp=stackSave();try{dynCall_viii(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_viiiii(index,a1,a2,a3,a4,a5){var sp=stackSave();try{dynCall_viiiii(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_iiiiiii(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{return dynCall_iiiiiii(index,a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_iiiii(index,a1,a2,a3,a4){var sp=stackSave();try{return dynCall_iiiii(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_iiii(index,a1,a2,a3){var sp=stackSave();try{return dynCall_iiii(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_dii(index,a1,a2){var sp=stackSave();try{return dynCall_dii(index,a1,a2)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_viiiiii(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{dynCall_viiiiii(index,a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_iiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9){var sp=stackSave();try{return dynCall_iiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_viidi(index,a1,a2,a3,a4){var sp=stackSave();try{dynCall_viidi(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_v(index){var sp=stackSave();try{dynCall_v(index)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_iid(index,a1,a2){var sp=stackSave();try{return dynCall_iid(index,a1,a2)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_iif(index,a1,a2){var sp=stackSave();try{return dynCall_iif(index,a1,a2)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_i(index){var sp=stackSave();try{return dynCall_i(index)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_iiiiiiii(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{return dynCall_iiiiiiii(index,a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_viidddd(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{dynCall_viidddd(index,a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_viid(index,a1,a2,a3){var sp=stackSave();try{dynCall_viid(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_di(index,a1){var sp=stackSave();try{return dynCall_di(index,a1)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_vid(index,a1,a2){var sp=stackSave();try{dynCall_vid(index,a1,a2)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_viiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8){var sp=stackSave();try{dynCall_viiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_viiidiiiid(index,a1,a2,a3,a4,a5,a6,a7,a8,a9){var sp=stackSave();try{dynCall_viiidiiiid(index,a1,a2,a3,a4,a5,a6,a7,a8,a9)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_viiiiidi(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{dynCall_viiiiidi(index,a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_viiiidd(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{dynCall_viiiidd(index,a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_viiidi(index,a1,a2,a3,a4,a5){var sp=stackSave();try{dynCall_viiidi(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_viidiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10){var sp=stackSave();try{dynCall_viidiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_viiiiiid(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{dynCall_viiiiiid(index,a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_vidiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9){var sp=stackSave();try{dynCall_vidiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_iiiiiid(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{return dynCall_iiiiiid(index,a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_viiiff(index,a1,a2,a3,a4,a5){var sp=stackSave();try{dynCall_viiiff(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_iiddii(index,a1,a2,a3,a4,a5){var sp=stackSave();try{return dynCall_iiddii(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_iiddiii(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{return dynCall_iiddiii(index,a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_viiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10){var sp=stackSave();try{dynCall_viiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_fii(index,a1,a2){var sp=stackSave();try{return dynCall_fii(index,a1,a2)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_iiddi(index,a1,a2,a3,a4){var sp=stackSave();try{return dynCall_iiddi(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_viidii(index,a1,a2,a3,a4,a5){var sp=stackSave();try{dynCall_viidii(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_viiid(index,a1,a2,a3,a4){var sp=stackSave();try{dynCall_viiid(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_diid(index,a1,a2,a3){var sp=stackSave();try{return dynCall_diid(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_iiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8){var sp=stackSave();try{return dynCall_iiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_viiiiiiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15){var sp=stackSave();try{dynCall_viiiiiiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_iiiiiiiiiddiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13){var sp=stackSave();try{return dynCall_iiiiiiiiiddiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_vidi(index,a1,a2,a3){var sp=stackSave();try{dynCall_vidi(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_diiii(index,a1,a2,a3,a4){var sp=stackSave();try{return dynCall_diiii(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_diiiii(index,a1,a2,a3,a4,a5){var sp=stackSave();try{return dynCall_diiiii(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_viif(index,a1,a2,a3){var sp=stackSave();try{dynCall_viif(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_fiiii(index,a1,a2,a3,a4){var sp=stackSave();try{return dynCall_fiiii(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_fi(index,a1){var sp=stackSave();try{return dynCall_fi(index,a1)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_vif(index,a1,a2){var sp=stackSave();try{dynCall_vif(index,a1,a2)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_viffi(index,a1,a2,a3,a4){var sp=stackSave();try{dynCall_viffi(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_viiiiffffiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11){var sp=stackSave();try{dynCall_viiiiffffiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_viffffff(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{dynCall_viffffff(index,a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_fif(index,a1,a2){var sp=stackSave();try{return dynCall_fif(index,a1,a2)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_vifii(index,a1,a2,a3,a4){var sp=stackSave();try{dynCall_vifii(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_fiiiiiff(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{return dynCall_fiiiiiff(index,a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_viifii(index,a1,a2,a3,a4,a5){var sp=stackSave();try{dynCall_viifii(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_viiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11){var sp=stackSave();try{dynCall_viiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_iiiiid(index,a1,a2,a3,a4,a5){var sp=stackSave();try{return dynCall_iiiiid(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_iiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10){var sp=stackSave();try{return dynCall_iiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_iiiiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12){var sp=stackSave();try{return dynCall_iiiiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_fiii(index,a1,a2,a3){var sp=stackSave();try{return dynCall_fiii(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_iiiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11){var sp=stackSave();try{return dynCall_iiiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_iij(index,a1,a2,a3){var sp=stackSave();try{return dynCall_iij(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_jiiii(index,a1,a2,a3,a4){var sp=stackSave();try{return dynCall_jiiii(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function run(args){args=args||arguments_;if(runDependencies>0){return}preRun();if(runDependencies>0)return;function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}noExitRuntime=true;run(); \ No newline at end of file
diff --git a/docs/js/RDKit_minimal.min.js b/docs/js/RDKit_minimal.min.js
new file mode 100644
index 0000000..b66c683
--- /dev/null
+++ b/docs/js/RDKit_minimal.min.js
@@ -0,0 +1,2 @@
+var key,Module=void 0!==Module?Module:{},moduleOverrides={};for(key in Module)Module.hasOwnProperty(key)&&(moduleOverrides[key]=Module[key]);var read_,readAsync,readBinary,setWindowTitle,nodeFS,nodePath,arguments_=[],thisProgram="./this.program",quit_=function(e,i){throw i},ENVIRONMENT_IS_WEB=!1,ENVIRONMENT_IS_WORKER=!1,ENVIRONMENT_IS_NODE=!1,ENVIRONMENT_IS_SHELL=!1,ENVIRONMENT_IS_WEB="object"==typeof window,ENVIRONMENT_IS_WORKER="function"==typeof importScripts,ENVIRONMENT_IS_NODE="object"==typeof process&&"object"==typeof process.versions&&"string"==typeof process.versions.node,ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER,scriptDirectory="";function locateFile(e){return Module.locateFile?Module.locateFile(e,scriptDirectory):scriptDirectory+e}ENVIRONMENT_IS_NODE?(scriptDirectory=ENVIRONMENT_IS_WORKER?require("path").dirname(scriptDirectory)+"/":__dirname+"/",read_=function(e,i){return nodeFS=nodeFS||require("fs"),e=(nodePath=nodePath||require("path")).normalize(e),nodeFS.readFileSync(e,i?null:"utf8")},readBinary=function(e){e=read_(e,!0);return assert((e=!e.buffer?new Uint8Array(e):e).buffer),e},1<process.argv.length&&(thisProgram=process.argv[1].replace(/\\/g,"/")),arguments_=process.argv.slice(2),"undefined"!=typeof module&&(module.exports=Module),process.on("uncaughtException",function(e){if(!(e instanceof ExitStatus))throw e}),process.on("unhandledRejection",abort),quit_=function(e){process.exit(e)},Module.inspect=function(){return"[Emscripten Module object]"}):ENVIRONMENT_IS_SHELL?("undefined"!=typeof read&&(read_=function(e){return read(e)}),readBinary=function(e){return"function"==typeof readbuffer?new Uint8Array(readbuffer(e)):(assert("object"==typeof(e=read(e,"binary"))),e)},"undefined"!=typeof scriptArgs?arguments_=scriptArgs:"undefined"!=typeof arguments&&(arguments_=arguments),"function"==typeof quit&&(quit_=function(e){quit(e)}),"undefined"!=typeof print&&("undefined"==typeof console&&(console={}),console.log=print,console.warn=console.error="undefined"!=typeof printErr?printErr:print)):(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)&&(ENVIRONMENT_IS_WORKER?scriptDirectory=self.location.href:document.currentScript&&(scriptDirectory=document.currentScript.src),scriptDirectory=0!==scriptDirectory.indexOf("blob:")?scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1):"",read_=function(e){var i=new XMLHttpRequest;return i.open("GET",e,!1),i.send(null),i.responseText},ENVIRONMENT_IS_WORKER&&(readBinary=function(e){var i=new XMLHttpRequest;return i.open("GET",e,!1),i.responseType="arraybuffer",i.send(null),new Uint8Array(i.response)}),readAsync=function(e,i,n){var t=new XMLHttpRequest;t.open("GET",e,!0),t.responseType="arraybuffer",t.onload=function(){200==t.status||0==t.status&&t.response?i(t.response):n()},t.onerror=n,t.send(null)},setWindowTitle=function(e){document.title=e});var out=Module.print||console.log.bind(console),err=Module.printErr||console.warn.bind(console);for(key in moduleOverrides)moduleOverrides.hasOwnProperty(key)&&(Module[key]=moduleOverrides[key]);moduleOverrides=null,Module.arguments&&(arguments_=Module.arguments),Module.thisProgram&&(thisProgram=Module.thisProgram),Module.quit&&(quit_=Module.quit);var STACK_ALIGN=16;function dynamicAlloc(e){var i=HEAP32[DYNAMICTOP_PTR>>2];return HEAP32[DYNAMICTOP_PTR>>2]=i+e+15&-16,i}function getNativeTypeSize(e){switch(e){case"i1":case"i8":return 1;case"i16":return 2;case"i32":return 4;case"i64":return 8;case"float":return 4;case"double":return 8;default:if("*"===e[e.length-1])return 4;if("i"!==e[0])return 0;var i=Number(e.substr(1));return assert(i%8==0,"getNativeTypeSize invalid bits "+i+", type "+e),i/8}}function warnOnce(e){warnOnce.shown||(warnOnce.shown={}),warnOnce.shown[e]||(warnOnce.shown[e]=1,err(e))}function convertJsFunctionToWasm(e,i){if("function"==typeof WebAssembly.Function){for(var n={i:"i32",j:"i64",f:"f32",d:"f64"},t={parameters:[],results:"v"==i[0]?[]:[n[i[0]]]},r=1;r<i.length;++r)t.parameters.push(n[i[r]]);return new WebAssembly.Function(t,e)}var o=[1,0,1,96],a=i.slice(0,1),l=i.slice(1),u={i:127,j:126,f:125,d:124};o.push(l.length);for(r=0;r<l.length;++r)o.push(u[l[r]]);"v"==a?o.push(0):o=o.concat([1,u[a]]),o[1]=o.length-2;a=new Uint8Array([0,97,115,109,1,0,0,0].concat(o,[2,7,1,1,101,1,102,0,0,7,5,1,1,102,0,0])),a=new WebAssembly.Module(a);return new WebAssembly.Instance(a,{e:{f:e}}).exports.f}var functionsInTableMap,freeTableIndexes=[];function addFunctionWasm(i,n){var t,r=wasmTable;if(!functionsInTableMap){functionsInTableMap=new WeakMap;for(var e=0;e<r.length;e++){var o=r.get(e);o&&functionsInTableMap.set(o,e)}}if(functionsInTableMap.has(i))return functionsInTableMap.get(i);if(freeTableIndexes.length)t=freeTableIndexes.pop();else{t=r.length;try{r.grow(1)}catch(e){if(!(e instanceof RangeError))throw e;throw"Unable to grow wasm table. Set ALLOW_TABLE_GROWTH."}}try{r.set(t,i)}catch(e){if(!(e instanceof TypeError))throw e;n=convertJsFunctionToWasm(i,n);r.set(t,n)}return functionsInTableMap.set(i,t),t}function removeFunctionWasm(e){functionsInTableMap.delete(wasmTable.get(e)),freeTableIndexes.push(e)}var funcWrappers={};function dynCall(e,i,n){return n&&n.length?Module["dynCall_"+e].apply(null,[i].concat(n)):Module["dynCall_"+e].call(null,i)}var wasmBinary,noExitRuntime,wasmMemory,tempRet0=0,setTempRet0=function(e){tempRet0=e},getTempRet0=function(){return tempRet0};function setValue(e,i,n,t){switch(n="*"===(n=n||"i8").charAt(n.length-1)?"i32":n){case"i1":case"i8":HEAP8[e>>0]=i;break;case"i16":HEAP16[e>>1]=i;break;case"i32":HEAP32[e>>2]=i;break;case"i64":tempI64=[i>>>0,1<=+Math_abs(tempDouble=i)?0<tempDouble?(0|Math_min(+Math_floor(tempDouble/4294967296),4294967295))>>>0:~~+Math_ceil((tempDouble-(~~tempDouble>>>0))/4294967296)>>>0:0],HEAP32[e>>2]=tempI64[0],HEAP32[e+4>>2]=tempI64[1];break;case"float":HEAPF32[e>>2]=i;break;case"double":HEAPF64[e>>3]=i;break;default:abort("invalid type for setValue: "+n)}}Module.wasmBinary&&(wasmBinary=Module.wasmBinary),Module.noExitRuntime&&(noExitRuntime=Module.noExitRuntime),"object"!=typeof WebAssembly&&abort("no native wasm support detected");var wasmTable=new WebAssembly.Table({initial:4549,maximum:4549,element:"anyfunc"}),ABORT=!1,EXITSTATUS=0;function assert(e,i){e||abort("Assertion failed: "+i)}function getCFunc(e){var i=Module["_"+e];return assert(i,"Cannot call unknown function "+e+", make sure it is exported"),i}function ccall(e,i,n,t,r){var o={string:function(e){var i,n=0;return null!=e&&0!==e&&(i=1+(e.length<<2),stringToUTF8(e,n=stackAlloc(i),i)),n},array:function(e){var i=stackAlloc(e.length);return writeArrayToMemory(e,i),i}};var e=getCFunc(e),a=[],l=0;if(t)for(var u=0;u<t.length;u++){var s=o[n[u]];s?(0===l&&(l=stackSave()),a[u]=s(t[u])):a[u]=t[u]}var d,e=e.apply(null,a);return d=e,e="string"===i?UTF8ToString(d):"boolean"===i?Boolean(d):d,0!==l&&stackRestore(l),e}var ALLOC_NONE=3,UTF8Decoder="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0;function UTF8ArrayToString(e,i,n){for(var t=i+n,r=i;e[r]&&!(t<=r);)++r;if(16<r-i&&e.subarray&&UTF8Decoder)return UTF8Decoder.decode(e.subarray(i,r));for(var o="";i<r;){var a,l,u=e[i++];128&u?(a=63&e[i++],192!=(224&u)?(l=63&e[i++],(u=224==(240&u)?(15&u)<<12|a<<6|l:(7&u)<<18|a<<12|l<<6|63&e[i++])<65536?o+=String.fromCharCode(u):(l=u-65536,o+=String.fromCharCode(55296|l>>10,56320|1023&l))):o+=String.fromCharCode((31&u)<<6|a)):o+=String.fromCharCode(u)}return o}function UTF8ToString(e,i){return e?UTF8ArrayToString(HEAPU8,e,i):""}function stringToUTF8Array(e,i,n,t){if(!(0<t))return 0;for(var r=n,o=n+t-1,a=0;a<e.length;++a){var l=e.charCodeAt(a);if((l=55296<=l&&l<=57343?65536+((1023&l)<<10)|1023&e.charCodeAt(++a):l)<=127){if(o<=n)break;i[n++]=l}else if(l<=2047){if(o<=n+1)break;i[n++]=192|l>>6,i[n++]=128|63&l}else if(l<=65535){if(o<=n+2)break;i[n++]=224|l>>12,i[n++]=128|l>>6&63,i[n++]=128|63&l}else{if(o<=n+3)break;i[n++]=240|l>>18,i[n++]=128|l>>12&63,i[n++]=128|l>>6&63,i[n++]=128|63&l}}return i[n]=0,n-r}function stringToUTF8(e,i,n){return stringToUTF8Array(e,HEAPU8,i,n)}function lengthBytesUTF8(e){for(var i=0,n=0;n<e.length;++n){var t=e.charCodeAt(n);(t=55296<=t&&t<=57343?65536+((1023&t)<<10)|1023&e.charCodeAt(++n):t)<=127?++i:i+=t<=2047?2:t<=65535?3:4}return i}var UTF16Decoder="undefined"!=typeof TextDecoder?new TextDecoder("utf-16le"):void 0;function UTF16ToString(e,i){for(var n=e,t=n>>1,r=t+i/2;!(r<=t)&&HEAPU16[t];)++t;if(32<(n=t<<1)-e&&UTF16Decoder)return UTF16Decoder.decode(HEAPU8.subarray(e,n));for(var o=0,a="";;){var l=HEAP16[e+2*o>>1];if(0==l||o==i/2)return a;++o,a+=String.fromCharCode(l)}}function stringToUTF16(e,i,n){if((n=void 0===n?2147483647:n)<2)return 0;for(var t=i,r=(n-=2)<2*e.length?n/2:e.length,o=0;o<r;++o){var a=e.charCodeAt(o);HEAP16[i>>1]=a,i+=2}return HEAP16[i>>1]=0,i-t}function lengthBytesUTF16(e){return 2*e.length}function UTF32ToString(e,i){for(var n=0,t="";!(i/4<=n);){var r,o=HEAP32[e+4*n>>2];if(0==o)break;++n,65536<=o?(r=o-65536,t+=String.fromCharCode(55296|r>>10,56320|1023&r)):t+=String.fromCharCode(o)}return t}function stringToUTF32(e,i,n){if((n=void 0===n?2147483647:n)<4)return 0;for(var t=i,r=t+n-4,o=0;o<e.length;++o){var a=e.charCodeAt(o);if(55296<=a&&a<=57343&&(a=65536+((1023&a)<<10)|1023&e.charCodeAt(++o)),HEAP32[i>>2]=a,r<(i+=4)+4)break}return HEAP32[i>>2]=0,i-t}function lengthBytesUTF32(e){for(var i=0,n=0;n<e.length;++n){var t=e.charCodeAt(n);55296<=t&&t<=57343&&++n,i+=4}return i}function allocateUTF8(e){var i=lengthBytesUTF8(e)+1,n=_malloc(i);return n&&stringToUTF8Array(e,HEAP8,n,i),n}function writeArrayToMemory(e,i){HEAP8.set(e,i)}function writeAsciiToMemory(e,i,n){for(var t=0;t<e.length;++t)HEAP8[i++>>0]=e.charCodeAt(t);n||(HEAP8[i>>0]=0)}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64,WASM_PAGE_SIZE=65536;function updateGlobalBufferAndViews(e){buffer=e,Module.HEAP8=HEAP8=new Int8Array(e),Module.HEAP16=HEAP16=new Int16Array(e),Module.HEAP32=HEAP32=new Int32Array(e),Module.HEAPU8=HEAPU8=new Uint8Array(e),Module.HEAPU16=HEAPU16=new Uint16Array(e),Module.HEAPU32=HEAPU32=new Uint32Array(e),Module.HEAPF32=HEAPF32=new Float32Array(e),Module.HEAPF64=HEAPF64=new Float64Array(e)}var STACK_BASE=5736160,DYNAMIC_BASE=5736160,DYNAMICTOP_PTR=493104,INITIAL_INITIAL_MEMORY=Module.INITIAL_MEMORY||16777216;function callRuntimeCallbacks(e){for(;0<e.length;){var i,n=e.shift();"function"!=typeof n?"number"==typeof(i=n.func)?void 0===n.arg?Module.dynCall_v(i):Module.dynCall_vi(i,n.arg):i(void 0===n.arg?null:n.arg):n(Module)}}wasmMemory=Module.wasmMemory||new WebAssembly.Memory({initial:INITIAL_INITIAL_MEMORY/WASM_PAGE_SIZE,maximum:INITIAL_INITIAL_MEMORY/WASM_PAGE_SIZE}),INITIAL_INITIAL_MEMORY=(buffer=wasmMemory?wasmMemory.buffer:buffer).byteLength,updateGlobalBufferAndViews(buffer),HEAP32[DYNAMICTOP_PTR>>2]=DYNAMIC_BASE;var __ATPRERUN__=[],__ATINIT__=[],__ATMAIN__=[],__ATPOSTRUN__=[],runtimeInitialized=!1,runtimeExited=!1;function preRun(){if(Module.preRun)for("function"==typeof Module.preRun&&(Module.preRun=[Module.preRun]);Module.preRun.length;)addOnPreRun(Module.preRun.shift());callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=!0,Module.noFSInit||FS.init.initialized||FS.init(),TTY.init(),callRuntimeCallbacks(__ATINIT__)}function preMain(){FS.ignorePermissions=!1,callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){runtimeExited=!0}function postRun(){if(Module.postRun)for("function"==typeof Module.postRun&&(Module.postRun=[Module.postRun]);Module.postRun.length;)addOnPostRun(Module.postRun.shift());callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(e){__ATPRERUN__.unshift(e)}function addOnPostRun(e){__ATPOSTRUN__.unshift(e)}var Math_abs=Math.abs,Math_ceil=Math.ceil,Math_floor=Math.floor,Math_min=Math.min,runDependencies=0,runDependencyWatcher=null,dependenciesFulfilled=null;function getUniqueRunDependency(e){return e}function addRunDependency(e){runDependencies++,Module.monitorRunDependencies&&Module.monitorRunDependencies(runDependencies)}function removeRunDependency(e){var i;runDependencies--,Module.monitorRunDependencies&&Module.monitorRunDependencies(runDependencies),0==runDependencies&&(null!==runDependencyWatcher&&(clearInterval(runDependencyWatcher),runDependencyWatcher=null),dependenciesFulfilled&&(i=dependenciesFulfilled,dependenciesFulfilled=null,i()))}function abort(e){throw Module.onAbort&&Module.onAbort(e),out(e+=""),err(e),ABORT=!0,EXITSTATUS=1,e="abort("+e+"). Build with -s ASSERTIONS=1 for more info.",new WebAssembly.RuntimeError(e)}function hasPrefix(e,i){return String.prototype.startsWith?e.startsWith(i):0===e.indexOf(i)}Module.preloadedImages={},Module.preloadedAudios={};var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(e){return hasPrefix(e,dataURIPrefix)}var fileURIPrefix="file://";function isFileURI(e){return hasPrefix(e,fileURIPrefix)}var tempDouble,tempI64,wasmBinaryFile="RDKit_minimal.wasm";function getBinary(){try{if(wasmBinary)return new Uint8Array(wasmBinary);if(readBinary)return readBinary(wasmBinaryFile);throw"both async and sync fetching of the wasm failed"}catch(e){abort(e)}}function getBinaryPromise(){return wasmBinary||!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_WORKER||"function"!=typeof fetch||isFileURI(wasmBinaryFile)?new Promise(function(e,i){e(getBinary())}):fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(e){if(!e.ok)throw"failed to load wasm binary file at '"+wasmBinaryFile+"'";return e.arrayBuffer()}).catch(function(){return getBinary()})}function createWasm(){var i={env:asmLibraryArg,wasi_snapshot_preview1:asmLibraryArg};function n(e,i){e=e.exports;Module.asm=e,removeRunDependency("wasm-instantiate")}function t(e){n(e.instance)}function r(e){return getBinaryPromise().then(function(e){return WebAssembly.instantiate(e,i)}).then(e,function(e){err("failed to asynchronously prepare wasm: "+e),abort(e)})}if(addRunDependency("wasm-instantiate"),Module.instantiateWasm)try{return Module.instantiateWasm(i,n)}catch(e){return err("Module.instantiateWasm callback failed with error: "+e),!1}return function(){if(wasmBinary||"function"!=typeof WebAssembly.instantiateStreaming||isDataURI(wasmBinaryFile)||isFileURI(wasmBinaryFile)||"function"!=typeof fetch)return r(t);fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(e){return WebAssembly.instantiateStreaming(e,i).then(t,function(e){return err("wasm streaming compile failed: "+e),err("falling back to ArrayBuffer instantiation"),r(t)})})}(),{}}function demangle(e){return e}function demangleAll(e){return e.replace(/\b_Z[\w\d_]+/g,function(e){var i=demangle(e);return e===i?e:i+" ["+e+"]"})}function jsStackTrace(){var i=new Error;if(!i.stack){try{throw new Error}catch(e){i=e}if(!i.stack)return"(no stack trace available)"}return i.stack.toString()}function stackTrace(){var e=jsStackTrace();return Module.extraStackTrace&&(e+="\n"+Module.extraStackTrace()),demangleAll(e)}function ___cxa_allocate_exception(e){return _malloc(e)}function _atexit(e,i){}function ___cxa_atexit(e,i){return _atexit(e,i)}isDataURI(wasmBinaryFile)||(wasmBinaryFile=locateFile(wasmBinaryFile)),__ATINIT__.push({func:function(){___wasm_call_ctors()}});var ___exception_infos={},___exception_caught=[];function ___exception_addRef(e){e&&___exception_infos[e].refcount++}function ___exception_deAdjust(e){if(!e||___exception_infos[e])return e;for(var i in ___exception_infos)for(var n=+i,t=___exception_infos[n].adjusted,r=t.length,o=0;o<r;o++)if(t[o]===e)return n;return e}function ___cxa_begin_catch(e){var i=___exception_infos[e];return i&&!i.caught&&(i.caught=!0,__ZSt18uncaught_exceptionv.uncaught_exceptions--),i&&(i.rethrown=!1),___exception_caught.push(e),___exception_addRef(___exception_deAdjust(e)),e}var ___exception_last=0;function ___cxa_free_exception(e){try{return _free(e)}catch(e){}}function ___exception_decRef(e){var i;e&&((i=___exception_infos[e]).refcount--,0!==i.refcount||i.rethrown||(i.destructor&&Module.dynCall_ii(i.destructor,e),delete ___exception_infos[e],___cxa_free_exception(e)))}function ___cxa_end_catch(){_setThrew(0);var e=___exception_caught.pop();e&&(___exception_decRef(___exception_deAdjust(e)),___exception_last=0)}function ___cxa_find_matching_catch_2(){if(!(t=___exception_last))return 0|(setTempRet0(0),0);var e=___exception_infos[t],i=e.type;if(!i)return 0|(setTempRet0(0),t);var n=Array.prototype.slice.call(arguments);___cxa_is_pointer_type(i);HEAP32[123316]=t;for(var t=493264,r=0;r<n.length;r++)if(n[r]&&___cxa_can_catch(n[r],i,t))return t=HEAP32[t>>2],e.adjusted.push(t),0|(setTempRet0(n[r]),t);return t=HEAP32[t>>2],0|(setTempRet0(i),t)}function ___cxa_find_matching_catch_3(){if(!(t=___exception_last))return 0|(setTempRet0(0),0);var e=___exception_infos[t],i=e.type;if(!i)return 0|(setTempRet0(0),t);var n=Array.prototype.slice.call(arguments);___cxa_is_pointer_type(i);HEAP32[123316]=t;for(var t=493264,r=0;r<n.length;r++)if(n[r]&&___cxa_can_catch(n[r],i,t))return t=HEAP32[t>>2],e.adjusted.push(t),0|(setTempRet0(n[r]),t);return t=HEAP32[t>>2],0|(setTempRet0(i),t)}function ___cxa_find_matching_catch_4(){if(!(t=___exception_last))return 0|(setTempRet0(0),0);var e=___exception_infos[t],i=e.type;if(!i)return 0|(setTempRet0(0),t);var n=Array.prototype.slice.call(arguments);___cxa_is_pointer_type(i);HEAP32[123316]=t;for(var t=493264,r=0;r<n.length;r++)if(n[r]&&___cxa_can_catch(n[r],i,t))return t=HEAP32[t>>2],e.adjusted.push(t),0|(setTempRet0(n[r]),t);return t=HEAP32[t>>2],0|(setTempRet0(i),t)}function ___cxa_rethrow(){var e=___exception_deAdjust(e=___exception_caught.pop());throw ___exception_infos[e].rethrown||(___exception_caught.push(e),___exception_infos[e].rethrown=!0),___exception_last=e}function ___cxa_throw(e,i,n){throw ___exception_infos[e]={ptr:e,adjusted:[e],type:i,destructor:n,refcount:0,caught:!1,rethrown:!1},___exception_last=e,"uncaught_exception"in __ZSt18uncaught_exceptionv?__ZSt18uncaught_exceptionv.uncaught_exceptions++:__ZSt18uncaught_exceptionv.uncaught_exceptions=1,e}function ___cxa_uncaught_exceptions(){return __ZSt18uncaught_exceptionv.uncaught_exceptions}function setErrNo(e){return HEAP32[___errno_location()>>2]=e}function ___map_file(e,i){return setErrNo(63),-1}function ___resumeException(e){throw ___exception_last=___exception_last||e,e}var PATH={splitPath:function(e){return/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/.exec(e).slice(1)},normalizeArray:function(e,i){for(var n=0,t=e.length-1;0<=t;t--){var r=e[t];"."===r?e.splice(t,1):".."===r?(e.splice(t,1),n++):n&&(e.splice(t,1),n--)}if(i)for(;n;n--)e.unshift("..");return e},normalize:function(e){var i="/"===e.charAt(0),n="/"===e.substr(-1);return(e=!(e=PATH.normalizeArray(e.split("/").filter(function(e){return!!e}),!i).join("/"))&&!i?".":e)&&n&&(e+="/"),(i?"/":"")+e},dirname:function(e){var i=PATH.splitPath(e),e=i[0],i=i[1];return e||i?e+(i=i&&i.substr(0,i.length-1)):"."},basename:function(e){if("/"===e)return"/";var i=e.lastIndexOf("/");return-1===i?e:e.substr(i+1)},extname:function(e){return PATH.splitPath(e)[3]},join:function(){var e=Array.prototype.slice.call(arguments,0);return PATH.normalize(e.join("/"))},join2:function(e,i){return PATH.normalize(e+"/"+i)}},PATH_FS={resolve:function(){for(var e="",i=!1,n=arguments.length-1;-1<=n&&!i;n--){var t=0<=n?arguments[n]:FS.cwd();if("string"!=typeof t)throw new TypeError("Arguments to path.resolve must be strings");if(!t)return"";e=t+"/"+e,i="/"===t.charAt(0)}return(i?"/":"")+(e=PATH.normalizeArray(e.split("/").filter(function(e){return!!e}),!i).join("/"))||"."},relative:function(e,i){function n(e){for(var i=0;i<e.length&&""===e[i];i++);for(var n=e.length-1;0<=n&&""===e[n];n--);return n<i?[]:e.slice(i,n-i+1)}e=PATH_FS.resolve(e).substr(1),i=PATH_FS.resolve(i).substr(1);for(var t=n(e.split("/")),r=n(i.split("/")),o=Math.min(t.length,r.length),a=o,l=0;l<o;l++)if(t[l]!==r[l]){a=l;break}for(var u=[],l=a;l<t.length;l++)u.push("..");return(u=u.concat(r.slice(a))).join("/")}},TTY={ttys:[],init:function(){},shutdown:function(){},register:function(e,i){TTY.ttys[e]={input:[],output:[],ops:i},FS.registerDevice(e,TTY.stream_ops)},stream_ops:{open:function(e){var i=TTY.ttys[e.node.rdev];if(!i)throw new FS.ErrnoError(43);e.tty=i,e.seekable=!1},close:function(e){e.tty.ops.flush(e.tty)},flush:function(e){e.tty.ops.flush(e.tty)},read:function(e,i,n,t,r){if(!e.tty||!e.tty.ops.get_char)throw new FS.ErrnoError(60);for(var o,a=0,l=0;l<t;l++){try{o=e.tty.ops.get_char(e.tty)}catch(e){throw new FS.ErrnoError(29)}if(void 0===o&&0===a)throw new FS.ErrnoError(6);if(null==o)break;a++,i[n+l]=o}return a&&(e.node.timestamp=Date.now()),a},write:function(e,i,n,t,r){if(!e.tty||!e.tty.ops.put_char)throw new FS.ErrnoError(60);try{for(var o=0;o<t;o++)e.tty.ops.put_char(e.tty,i[n+o])}catch(e){throw new FS.ErrnoError(29)}return t&&(e.node.timestamp=Date.now()),o}},default_tty_ops:{get_char:function(e){if(!e.input.length){var i=null;if(ENVIRONMENT_IS_NODE){var n=Buffer.alloc?Buffer.alloc(256):new Buffer(256),t=0;try{t=nodeFS.readSync(process.stdin.fd,n,0,256,null)}catch(e){if(-1==e.toString().indexOf("EOF"))throw e;t=0}i=0<t?n.slice(0,t).toString("utf-8"):null}else"undefined"!=typeof window&&"function"==typeof window.prompt?null!==(i=window.prompt("Input: "))&&(i+="\n"):"function"==typeof readline&&null!==(i=readline())&&(i+="\n");if(!i)return null;e.input=intArrayFromString(i,!0)}return e.input.shift()},put_char:function(e,i){null===i||10===i?(out(UTF8ArrayToString(e.output,0)),e.output=[]):0!=i&&e.output.push(i)},flush:function(e){e.output&&0<e.output.length&&(out(UTF8ArrayToString(e.output,0)),e.output=[])}},default_tty1_ops:{put_char:function(e,i){null===i||10===i?(err(UTF8ArrayToString(e.output,0)),e.output=[]):0!=i&&e.output.push(i)},flush:function(e){e.output&&0<e.output.length&&(err(UTF8ArrayToString(e.output,0)),e.output=[])}}},MEMFS={ops_table:null,mount:function(e){return MEMFS.createNode(null,"/",16895,0)},createNode:function(e,i,n,t){if(FS.isBlkdev(n)||FS.isFIFO(n))throw new FS.ErrnoError(63);MEMFS.ops_table||(MEMFS.ops_table={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,allocate:MEMFS.stream_ops.allocate,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}});t=FS.createNode(e,i,n,t);return FS.isDir(t.mode)?(t.node_ops=MEMFS.ops_table.dir.node,t.stream_ops=MEMFS.ops_table.dir.stream,t.contents={}):FS.isFile(t.mode)?(t.node_ops=MEMFS.ops_table.file.node,t.stream_ops=MEMFS.ops_table.file.stream,t.usedBytes=0,t.contents=null):FS.isLink(t.mode)?(t.node_ops=MEMFS.ops_table.link.node,t.stream_ops=MEMFS.ops_table.link.stream):FS.isChrdev(t.mode)&&(t.node_ops=MEMFS.ops_table.chrdev.node,t.stream_ops=MEMFS.ops_table.chrdev.stream),t.timestamp=Date.now(),e&&(e.contents[i]=t),t},getFileDataAsRegularArray:function(e){if(e.contents&&e.contents.subarray){for(var i=[],n=0;n<e.usedBytes;++n)i.push(e.contents[n]);return i}return e.contents},getFileDataAsTypedArray:function(e){return e.contents?e.contents.subarray?e.contents.subarray(0,e.usedBytes):new Uint8Array(e.contents):new Uint8Array(0)},expandFileStorage:function(e,i){var n=e.contents?e.contents.length:0;i<=n||(i=Math.max(i,n*(n<1048576?2:1.125)>>>0),0!=n&&(i=Math.max(i,256)),n=e.contents,e.contents=new Uint8Array(i),0<e.usedBytes&&e.contents.set(n.subarray(0,e.usedBytes),0))},resizeFileStorage:function(e,i){if(e.usedBytes!=i){if(0==i)return e.contents=null,void(e.usedBytes=0);if(!e.contents||e.contents.subarray){var n=e.contents;return e.contents=new Uint8Array(i),n&&e.contents.set(n.subarray(0,Math.min(i,e.usedBytes))),void(e.usedBytes=i)}if(e.contents||(e.contents=[]),e.contents.length>i)e.contents.length=i;else for(;e.contents.length<i;)e.contents.push(0);e.usedBytes=i}},node_ops:{getattr:function(e){var i={};return i.dev=FS.isChrdev(e.mode)?e.id:1,i.ino=e.id,i.mode=e.mode,i.nlink=1,i.uid=0,i.gid=0,i.rdev=e.rdev,FS.isDir(e.mode)?i.size=4096:FS.isFile(e.mode)?i.size=e.usedBytes:FS.isLink(e.mode)?i.size=e.link.length:i.size=0,i.atime=new Date(e.timestamp),i.mtime=new Date(e.timestamp),i.ctime=new Date(e.timestamp),i.blksize=4096,i.blocks=Math.ceil(i.size/i.blksize),i},setattr:function(e,i){void 0!==i.mode&&(e.mode=i.mode),void 0!==i.timestamp&&(e.timestamp=i.timestamp),void 0!==i.size&&MEMFS.resizeFileStorage(e,i.size)},lookup:function(e,i){throw FS.genericErrors[44]},mknod:function(e,i,n,t){return MEMFS.createNode(e,i,n,t)},rename:function(e,i,n){if(FS.isDir(e.mode)){var t;try{t=FS.lookupNode(i,n)}catch(e){}if(t)for(var r in t.contents)throw new FS.ErrnoError(55)}delete e.parent.contents[e.name],e.name=n,(i.contents[n]=e).parent=i},unlink:function(e,i){delete e.contents[i]},rmdir:function(e,i){for(var n in FS.lookupNode(e,i).contents)throw new FS.ErrnoError(55);delete e.contents[i]},readdir:function(e){var i,n=[".",".."];for(i in e.contents)e.contents.hasOwnProperty(i)&&n.push(i);return n},symlink:function(e,i,n){i=MEMFS.createNode(e,i,41471,0);return i.link=n,i},readlink:function(e){if(!FS.isLink(e.mode))throw new FS.ErrnoError(28);return e.link}},stream_ops:{read:function(e,i,n,t,r){var o=e.node.contents;if(r>=e.node.usedBytes)return 0;var a=Math.min(e.node.usedBytes-r,t);if(8<a&&o.subarray)i.set(o.subarray(r,r+a),n);else for(var l=0;l<a;l++)i[n+l]=o[r+l];return a},write:function(e,i,n,t,r,o){if(!t)return 0;var a=e.node;if(a.timestamp=Date.now(),i.subarray&&(!a.contents||a.contents.subarray)){if(o)return a.contents=i.subarray(n,n+t),a.usedBytes=t;if(0===a.usedBytes&&0===r)return a.contents=i.slice(n,n+t),a.usedBytes=t;if(r+t<=a.usedBytes)return a.contents.set(i.subarray(n,n+t),r),t}if(MEMFS.expandFileStorage(a,r+t),a.contents.subarray&&i.subarray)a.contents.set(i.subarray(n,n+t),r);else for(var l=0;l<t;l++)a.contents[r+l]=i[n+l];return a.usedBytes=Math.max(a.usedBytes,r+t),t},llseek:function(e,i,n){if(1===n?i+=e.position:2===n&&FS.isFile(e.node.mode)&&(i+=e.node.usedBytes),i<0)throw new FS.ErrnoError(28);return i},allocate:function(e,i,n){MEMFS.expandFileStorage(e.node,i+n),e.node.usedBytes=Math.max(e.node.usedBytes,i+n)},mmap:function(e,i,n,t,r,o){if(assert(0===i),!FS.isFile(e.node.mode))throw new FS.ErrnoError(43);var a,l,e=e.node.contents;if(2&o||e.buffer!==buffer){if((0<t||t+n<e.length)&&(e=e.subarray?e.subarray(t,t+n):Array.prototype.slice.call(e,t,t+n)),l=!0,!(a=_malloc(n)))throw new FS.ErrnoError(48);HEAP8.set(e,a)}else l=!1,a=e.byteOffset;return{ptr:a,allocated:l}},msync:function(e,i,n,t,r){if(!FS.isFile(e.node.mode))throw new FS.ErrnoError(43);if(2&r)return 0;MEMFS.stream_ops.write(e,i,0,t,n,!1);return 0}}},FS={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:!1,ignorePermissions:!0,trackingDelegate:{},tracking:{openFlags:{READ:1,WRITE:2}},ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,handleFSError:function(e){if(!(e instanceof FS.ErrnoError))throw e+" : "+stackTrace();return setErrNo(e.errno)},lookupPath:function(e,i){if(i=i||{},!(e=PATH_FS.resolve(FS.cwd(),e)))return{path:"",node:null};var n,t={follow_mount:!0,recurse_count:0};for(n in t)void 0===i[n]&&(i[n]=t[n]);if(8<i.recurse_count)throw new FS.ErrnoError(32);for(var r=PATH.normalizeArray(e.split("/").filter(function(e){return!!e}),!1),o=FS.root,a="/",l=0;l<r.length;l++){var u=l===r.length-1;if(u&&i.parent)break;if(o=FS.lookupNode(o,r[l]),a=PATH.join2(a,r[l]),FS.isMountpoint(o)&&(!u||u&&i.follow_mount)&&(o=o.mounted.root),!u||i.follow)for(var s=0;FS.isLink(o.mode);){var d=FS.readlink(a),a=PATH_FS.resolve(PATH.dirname(a),d),o=FS.lookupPath(a,{recurse_count:i.recurse_count}).node;if(40<s++)throw new FS.ErrnoError(32)}}return{path:a,node:o}},getPath:function(e){for(var i;;){if(FS.isRoot(e)){var n=e.mount.mountpoint;return i?"/"!==n[n.length-1]?n+"/"+i:n+i:n}i=i?e.name+"/"+i:e.name,e=e.parent}},hashName:function(e,i){for(var n=0,t=0;t<i.length;t++)n=(n<<5)-n+i.charCodeAt(t)|0;return(e+n>>>0)%FS.nameTable.length},hashAddNode:function(e){var i=FS.hashName(e.parent.id,e.name);e.name_next=FS.nameTable[i],FS.nameTable[i]=e},hashRemoveNode:function(e){var i=FS.hashName(e.parent.id,e.name);if(FS.nameTable[i]===e)FS.nameTable[i]=e.name_next;else for(var n=FS.nameTable[i];n;){if(n.name_next===e){n.name_next=e.name_next;break}n=n.name_next}},lookupNode:function(e,i){var n=FS.mayLookup(e);if(n)throw new FS.ErrnoError(n,e);for(var n=FS.hashName(e.id,i),t=FS.nameTable[n];t;t=t.name_next){var r=t.name;if(t.parent.id===e.id&&r===i)return t}return FS.lookup(e,i)},createNode:function(e,i,n,t){t=new FS.FSNode(e,i,n,t);return FS.hashAddNode(t),t},destroyNode:function(e){FS.hashRemoveNode(e)},isRoot:function(e){return e===e.parent},isMountpoint:function(e){return!!e.mounted},isFile:function(e){return 32768==(61440&e)},isDir:function(e){return 16384==(61440&e)},isLink:function(e){return 40960==(61440&e)},isChrdev:function(e){return 8192==(61440&e)},isBlkdev:function(e){return 24576==(61440&e)},isFIFO:function(e){return 4096==(61440&e)},isSocket:function(e){return 49152==(49152&e)},flagModes:{r:0,rs:1052672,"r+":2,w:577,wx:705,xw:705,"w+":578,"wx+":706,"xw+":706,a:1089,ax:1217,xa:1217,"a+":1090,"ax+":1218,"xa+":1218},modeStringToFlags:function(e){var i=FS.flagModes[e];if(void 0===i)throw new Error("Unknown file open mode: "+e);return i},flagsToPermissionString:function(e){var i=["r","w","rw"][3&e];return 512&e&&(i+="w"),i},nodePermissions:function(e,i){return FS.ignorePermissions||(-1===i.indexOf("r")||292&e.mode)&&(-1===i.indexOf("w")||146&e.mode)&&(-1===i.indexOf("x")||73&e.mode)?0:2},mayLookup:function(e){var i=FS.nodePermissions(e,"x");return i||(e.node_ops.lookup?0:2)},mayCreate:function(e,i){try{FS.lookupNode(e,i);return 20}catch(e){}return FS.nodePermissions(e,"wx")},mayDelete:function(e,i,n){var t;try{t=FS.lookupNode(e,i)}catch(e){return e.errno}e=FS.nodePermissions(e,"wx");if(e)return e;if(n){if(!FS.isDir(t.mode))return 54;if(FS.isRoot(t)||FS.getPath(t)===FS.cwd())return 10}else if(FS.isDir(t.mode))return 31;return 0},mayOpen:function(e,i){return e?FS.isLink(e.mode)?32:FS.isDir(e.mode)&&("r"!==FS.flagsToPermissionString(i)||512&i)?31:FS.nodePermissions(e,FS.flagsToPermissionString(i)):44},MAX_OPEN_FDS:4096,nextfd:function(e,i){i=i||FS.MAX_OPEN_FDS;for(var n=e=e||0;n<=i;n++)if(!FS.streams[n])return n;throw new FS.ErrnoError(33)},getStream:function(e){return FS.streams[e]},createStream:function(e,i,n){FS.FSStream||(FS.FSStream=function(){},FS.FSStream.prototype={object:{get:function(){return this.node},set:function(e){this.node=e}},isRead:{get:function(){return 1!=(2097155&this.flags)}},isWrite:{get:function(){return 0!=(2097155&this.flags)}},isAppend:{get:function(){return 1024&this.flags}}});var t,r=new FS.FSStream;for(t in e)r[t]=e[t];e=r;n=FS.nextfd(i,n);return e.fd=n,FS.streams[n]=e},closeStream:function(e){FS.streams[e]=null},chrdev_stream_ops:{open:function(e){var i=FS.getDevice(e.node.rdev);e.stream_ops=i.stream_ops,e.stream_ops.open&&e.stream_ops.open(e)},llseek:function(){throw new FS.ErrnoError(70)}},major:function(e){return e>>8},minor:function(e){return 255&e},makedev:function(e,i){return e<<8|i},registerDevice:function(e,i){FS.devices[e]={stream_ops:i}},getDevice:function(e){return FS.devices[e]},getMounts:function(e){for(var i=[],n=[e];n.length;){var t=n.pop();i.push(t),n.push.apply(n,t.mounts)}return i},syncfs:function(i,n){"function"==typeof i&&(n=i,i=!1),FS.syncFSRequests++,1<FS.syncFSRequests&&err("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work");var t=FS.getMounts(FS.root.mount),r=0;function o(e){return FS.syncFSRequests--,n(e)}function a(e){if(e)return a.errored?void 0:(a.errored=!0,o(e));++r>=t.length&&o(null)}t.forEach(function(e){return e.type.syncfs?void e.type.syncfs(e,i,a):a(null)})},mount:function(e,i,n){var t="/"===n,r=!n;if(t&&FS.root)throw new FS.ErrnoError(10);if(!t&&!r){var o=FS.lookupPath(n,{follow_mount:!1});if(n=o.path,o=o.node,FS.isMountpoint(o))throw new FS.ErrnoError(10);if(!FS.isDir(o.mode))throw new FS.ErrnoError(54)}n={type:e,opts:i,mountpoint:n,mounts:[]},e=e.mount(n);return(e.mount=n).root=e,t?FS.root=e:o&&(o.mounted=n,o.mount&&o.mount.mounts.push(n)),e},unmount:function(e){var i=FS.lookupPath(e,{follow_mount:!1});if(!FS.isMountpoint(i.node))throw new FS.ErrnoError(28);var e=i.node,i=e.mounted,t=FS.getMounts(i);Object.keys(FS.nameTable).forEach(function(e){for(var i=FS.nameTable[e];i;){var n=i.name_next;-1!==t.indexOf(i.mount)&&FS.destroyNode(i),i=n}}),e.mounted=null;i=e.mount.mounts.indexOf(i);e.mount.mounts.splice(i,1)},lookup:function(e,i){return e.node_ops.lookup(e,i)},mknod:function(e,i,n){var t=FS.lookupPath(e,{parent:!0}).node,r=PATH.basename(e);if(!r||"."===r||".."===r)throw new FS.ErrnoError(28);e=FS.mayCreate(t,r);if(e)throw new FS.ErrnoError(e);if(!t.node_ops.mknod)throw new FS.ErrnoError(63);return t.node_ops.mknod(t,r,i,n)},create:function(e,i){return i=void 0!==i?i:438,i&=4095,FS.mknod(e,i|=32768,0)},mkdir:function(e,i){return i=void 0!==i?i:511,i&=1023,FS.mknod(e,i|=16384,0)},mkdirTree:function(e,i){for(var n=e.split("/"),t="",r=0;r<n.length;++r)if(n[r]){t+="/"+n[r];try{FS.mkdir(t,i)}catch(e){if(20!=e.errno)throw e}}},mkdev:function(e,i,n){return void 0===n&&(n=i,i=438),FS.mknod(e,i|=8192,n)},symlink:function(e,i){if(!PATH_FS.resolve(e))throw new FS.ErrnoError(44);var n=FS.lookupPath(i,{parent:!0}).node;if(!n)throw new FS.ErrnoError(44);var t=PATH.basename(i),i=FS.mayCreate(n,t);if(i)throw new FS.ErrnoError(i);if(!n.node_ops.symlink)throw new FS.ErrnoError(63);return n.node_ops.symlink(n,t,e)},rename:function(i,n){var e,t,r=PATH.dirname(i),o=PATH.dirname(n),a=PATH.basename(i),l=PATH.basename(n);try{e=FS.lookupPath(i,{parent:!0}).node,t=FS.lookupPath(n,{parent:!0}).node}catch(e){throw new FS.ErrnoError(10)}if(!e||!t)throw new FS.ErrnoError(44);if(e.mount!==t.mount)throw new FS.ErrnoError(75);var u,s=FS.lookupNode(e,a),o=PATH_FS.relative(i,o);if("."!==o.charAt(0))throw new FS.ErrnoError(28);if("."!==(o=PATH_FS.relative(n,r)).charAt(0))throw new FS.ErrnoError(55);try{u=FS.lookupNode(t,l)}catch(e){}if(s!==u){o=FS.isDir(s.mode),a=FS.mayDelete(e,a,o);if(a)throw new FS.ErrnoError(a);if(a=u?FS.mayDelete(t,l,o):FS.mayCreate(t,l))throw new FS.ErrnoError(a);if(!e.node_ops.rename)throw new FS.ErrnoError(63);if(FS.isMountpoint(s)||u&&FS.isMountpoint(u))throw new FS.ErrnoError(10);if(t!==e&&(a=FS.nodePermissions(e,"w")))throw new FS.ErrnoError(a);try{FS.trackingDelegate.willMovePath&&FS.trackingDelegate.willMovePath(i,n)}catch(e){err("FS.trackingDelegate['willMovePath']('"+i+"', '"+n+"') threw an exception: "+e.message)}FS.hashRemoveNode(s);try{e.node_ops.rename(s,t,l)}catch(e){throw e}finally{FS.hashAddNode(s)}try{FS.trackingDelegate.onMovePath&&FS.trackingDelegate.onMovePath(i,n)}catch(e){err("FS.trackingDelegate['onMovePath']('"+i+"', '"+n+"') threw an exception: "+e.message)}}},rmdir:function(i){var e=FS.lookupPath(i,{parent:!0}).node,n=PATH.basename(i),t=FS.lookupNode(e,n),r=FS.mayDelete(e,n,!0);if(r)throw new FS.ErrnoError(r);if(!e.node_ops.rmdir)throw new FS.ErrnoError(63);if(FS.isMountpoint(t))throw new FS.ErrnoError(10);try{FS.trackingDelegate.willDeletePath&&FS.trackingDelegate.willDeletePath(i)}catch(e){err("FS.trackingDelegate['willDeletePath']('"+i+"') threw an exception: "+e.message)}e.node_ops.rmdir(e,n),FS.destroyNode(t);try{FS.trackingDelegate.onDeletePath&&FS.trackingDelegate.onDeletePath(i)}catch(e){err("FS.trackingDelegate['onDeletePath']('"+i+"') threw an exception: "+e.message)}},readdir:function(e){e=FS.lookupPath(e,{follow:!0}).node;if(!e.node_ops.readdir)throw new FS.ErrnoError(54);return e.node_ops.readdir(e)},unlink:function(i){var e=FS.lookupPath(i,{parent:!0}).node,n=PATH.basename(i),t=FS.lookupNode(e,n),r=FS.mayDelete(e,n,!1);if(r)throw new FS.ErrnoError(r);if(!e.node_ops.unlink)throw new FS.ErrnoError(63);if(FS.isMountpoint(t))throw new FS.ErrnoError(10);try{FS.trackingDelegate.willDeletePath&&FS.trackingDelegate.willDeletePath(i)}catch(e){err("FS.trackingDelegate['willDeletePath']('"+i+"') threw an exception: "+e.message)}e.node_ops.unlink(e,n),FS.destroyNode(t);try{FS.trackingDelegate.onDeletePath&&FS.trackingDelegate.onDeletePath(i)}catch(e){err("FS.trackingDelegate['onDeletePath']('"+i+"') threw an exception: "+e.message)}},readlink:function(e){e=FS.lookupPath(e).node;if(!e)throw new FS.ErrnoError(44);if(!e.node_ops.readlink)throw new FS.ErrnoError(28);return PATH_FS.resolve(FS.getPath(e.parent),e.node_ops.readlink(e))},stat:function(e,i){i=FS.lookupPath(e,{follow:!i}).node;if(!i)throw new FS.ErrnoError(44);if(!i.node_ops.getattr)throw new FS.ErrnoError(63);return i.node_ops.getattr(i)},lstat:function(e){return FS.stat(e,!0)},chmod:function(e,i,n){if(!(e="string"==typeof e?FS.lookupPath(e,{follow:!n}).node:e).node_ops.setattr)throw new FS.ErrnoError(63);e.node_ops.setattr(e,{mode:4095&i|-4096&e.mode,timestamp:Date.now()})},lchmod:function(e,i){FS.chmod(e,i,!0)},fchmod:function(e,i){e=FS.getStream(e);if(!e)throw new FS.ErrnoError(8);FS.chmod(e.node,i)},chown:function(e,i,n,t){if(!(e="string"==typeof e?FS.lookupPath(e,{follow:!t}).node:e).node_ops.setattr)throw new FS.ErrnoError(63);e.node_ops.setattr(e,{timestamp:Date.now()})},lchown:function(e,i,n){FS.chown(e,i,n,!0)},fchown:function(e,i,n){e=FS.getStream(e);if(!e)throw new FS.ErrnoError(8);FS.chown(e.node,i,n)},truncate:function(e,i){if(i<0)throw new FS.ErrnoError(28);var n;if(!(n="string"==typeof e?FS.lookupPath(e,{follow:!0}).node:e).node_ops.setattr)throw new FS.ErrnoError(63);if(FS.isDir(n.mode))throw new FS.ErrnoError(31);if(!FS.isFile(n.mode))throw new FS.ErrnoError(28);e=FS.nodePermissions(n,"w");if(e)throw new FS.ErrnoError(e);n.node_ops.setattr(n,{size:i,timestamp:Date.now()})},ftruncate:function(e,i){e=FS.getStream(e);if(!e)throw new FS.ErrnoError(8);if(0==(2097155&e.flags))throw new FS.ErrnoError(28);FS.truncate(e.node,i)},utime:function(e,i,n){e=FS.lookupPath(e,{follow:!0}).node;e.node_ops.setattr(e,{timestamp:Math.max(i,n)})},open:function(i,e,n,t,r){if(""===i)throw new FS.ErrnoError(44);if(n=void 0===n?438:n,n=64&(e="string"==typeof e?FS.modeStringToFlags(e):e)?4095&n|32768:0,"object"==typeof i)o=i;else{i=PATH.normalize(i);try{var o=FS.lookupPath(i,{follow:!(131072&e)}).node}catch(e){}}var a=!1;if(64&e)if(o){if(128&e)throw new FS.ErrnoError(20)}else o=FS.mknod(i,n,0),a=!0;if(!o)throw new FS.ErrnoError(44);if(FS.isChrdev(o.mode)&&(e&=-513),65536&e&&!FS.isDir(o.mode))throw new FS.ErrnoError(54);if(!a){a=FS.mayOpen(o,e);if(a)throw new FS.ErrnoError(a)}512&e&&FS.truncate(o,0),e&=-131713;var l,r=FS.createStream({node:o,path:FS.getPath(o),flags:e,seekable:!0,position:0,stream_ops:o.stream_ops,ungotten:[],error:!1},t,r);r.stream_ops.open&&r.stream_ops.open(r),!Module.logReadFiles||1&e||(FS.readFiles||(FS.readFiles={}),i in FS.readFiles||(FS.readFiles[i]=1,err("FS.trackingDelegate error on read file: "+i)));try{FS.trackingDelegate.onOpenFile&&(l=0,1!=(2097155&e)&&(l|=FS.tracking.openFlags.READ),0!=(2097155&e)&&(l|=FS.tracking.openFlags.WRITE),FS.trackingDelegate.onOpenFile(i,l))}catch(e){err("FS.trackingDelegate['onOpenFile']('"+i+"', flags) threw an exception: "+e.message)}return r},close:function(e){if(FS.isClosed(e))throw new FS.ErrnoError(8);e.getdents&&(e.getdents=null);try{e.stream_ops.close&&e.stream_ops.close(e)}catch(e){throw e}finally{FS.closeStream(e.fd)}e.fd=null},isClosed:function(e){return null===e.fd},llseek:function(e,i,n){if(FS.isClosed(e))throw new FS.ErrnoError(8);if(!e.seekable||!e.stream_ops.llseek)throw new FS.ErrnoError(70);if(0!=n&&1!=n&&2!=n)throw new FS.ErrnoError(28);return e.position=e.stream_ops.llseek(e,i,n),e.ungotten=[],e.position},read:function(e,i,n,t,r){if(t<0||r<0)throw new FS.ErrnoError(28);if(FS.isClosed(e))throw new FS.ErrnoError(8);if(1==(2097155&e.flags))throw new FS.ErrnoError(8);if(FS.isDir(e.node.mode))throw new FS.ErrnoError(31);if(!e.stream_ops.read)throw new FS.ErrnoError(28);var o=void 0!==r;if(o){if(!e.seekable)throw new FS.ErrnoError(70)}else r=e.position;r=e.stream_ops.read(e,i,n,t,r);return o||(e.position+=r),r},write:function(i,e,n,t,r,o){if(t<0||r<0)throw new FS.ErrnoError(28);if(FS.isClosed(i))throw new FS.ErrnoError(8);if(0==(2097155&i.flags))throw new FS.ErrnoError(8);if(FS.isDir(i.node.mode))throw new FS.ErrnoError(31);if(!i.stream_ops.write)throw new FS.ErrnoError(28);i.seekable&&1024&i.flags&&FS.llseek(i,0,2);var a=void 0!==r;if(a){if(!i.seekable)throw new FS.ErrnoError(70)}else r=i.position;o=i.stream_ops.write(i,e,n,t,r,o);a||(i.position+=o);try{i.path&&FS.trackingDelegate.onWriteToFile&&FS.trackingDelegate.onWriteToFile(i.path)}catch(e){err("FS.trackingDelegate['onWriteToFile']('"+i.path+"') threw an exception: "+e.message)}return o},allocate:function(e,i,n){if(FS.isClosed(e))throw new FS.ErrnoError(8);if(i<0||n<=0)throw new FS.ErrnoError(28);if(0==(2097155&e.flags))throw new FS.ErrnoError(8);if(!FS.isFile(e.node.mode)&&!FS.isDir(e.node.mode))throw new FS.ErrnoError(43);if(!e.stream_ops.allocate)throw new FS.ErrnoError(138);e.stream_ops.allocate(e,i,n)},mmap:function(e,i,n,t,r,o){if(0!=(2&r)&&0==(2&o)&&2!=(2097155&e.flags))throw new FS.ErrnoError(2);if(1==(2097155&e.flags))throw new FS.ErrnoError(2);if(!e.stream_ops.mmap)throw new FS.ErrnoError(43);return e.stream_ops.mmap(e,i,n,t,r,o)},msync:function(e,i,n,t,r){return e&&e.stream_ops.msync?e.stream_ops.msync(e,i,n,t,r):0},munmap:function(e){return 0},ioctl:function(e,i,n){if(!e.stream_ops.ioctl)throw new FS.ErrnoError(59);return e.stream_ops.ioctl(e,i,n)},readFile:function(e,i){if((i=i||{}).flags=i.flags||"r",i.encoding=i.encoding||"binary","utf8"!==i.encoding&&"binary"!==i.encoding)throw new Error('Invalid encoding type "'+i.encoding+'"');var n,t=FS.open(e,i.flags),r=FS.stat(e).size,e=new Uint8Array(r);return FS.read(t,e,0,r,0),"utf8"===i.encoding?n=UTF8ArrayToString(e,0):"binary"===i.encoding&&(n=e),FS.close(t),n},writeFile:function(e,i,n){(n=n||{}).flags=n.flags||"w";var t=FS.open(e,n.flags,n.mode);if("string"==typeof i){var r=new Uint8Array(lengthBytesUTF8(i)+1),e=stringToUTF8Array(i,r,0,r.length);FS.write(t,r,0,e,void 0,n.canOwn)}else{if(!ArrayBuffer.isView(i))throw new Error("Unsupported data type");FS.write(t,i,0,i.byteLength,void 0,n.canOwn)}FS.close(t)},cwd:function(){return FS.currentPath},chdir:function(e){var i=FS.lookupPath(e,{follow:!0});if(null===i.node)throw new FS.ErrnoError(44);if(!FS.isDir(i.node.mode))throw new FS.ErrnoError(54);e=FS.nodePermissions(i.node,"x");if(e)throw new FS.ErrnoError(e);FS.currentPath=i.path},createDefaultDirectories:function(){FS.mkdir("/tmp"),FS.mkdir("/home"),FS.mkdir("/home/web_user")},createDefaultDevices:function(){if(FS.mkdir("/dev"),FS.registerDevice(FS.makedev(1,3),{read:function(){return 0},write:function(e,i,n,t,r){return t}}),FS.mkdev("/dev/null",FS.makedev(1,3)),TTY.register(FS.makedev(5,0),TTY.default_tty_ops),TTY.register(FS.makedev(6,0),TTY.default_tty1_ops),FS.mkdev("/dev/tty",FS.makedev(5,0)),FS.mkdev("/dev/tty1",FS.makedev(6,0)),"object"==typeof crypto&&"function"==typeof crypto.getRandomValues)var e=new Uint8Array(1),i=function(){return crypto.getRandomValues(e),e[0]};else if(ENVIRONMENT_IS_NODE)try{var n=require("crypto");i=function(){return n.randomBytes(1)[0]}}catch(e){}FS.createDevice("/dev","random",i=i||function(){abort("random_device")}),FS.createDevice("/dev","urandom",i),FS.mkdir("/dev/shm"),FS.mkdir("/dev/shm/tmp")},createSpecialDirectories:function(){FS.mkdir("/proc"),FS.mkdir("/proc/self"),FS.mkdir("/proc/self/fd"),FS.mount({mount:function(){var e=FS.createNode("/proc/self","fd",16895,73);return e.node_ops={lookup:function(e,i){var n=FS.getStream(+i);if(!n)throw new FS.ErrnoError(8);i={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:function(){return n.path}}};return i.parent=i}},e}},{},"/proc/self/fd")},createStandardStreams:function(){Module.stdin?FS.createDevice("/dev","stdin",Module.stdin):FS.symlink("/dev/tty","/dev/stdin"),Module.stdout?FS.createDevice("/dev","stdout",null,Module.stdout):FS.symlink("/dev/tty","/dev/stdout"),Module.stderr?FS.createDevice("/dev","stderr",null,Module.stderr):FS.symlink("/dev/tty1","/dev/stderr");FS.open("/dev/stdin","r"),FS.open("/dev/stdout","w"),FS.open("/dev/stderr","w")},ensureErrnoError:function(){FS.ErrnoError||(FS.ErrnoError=function(e,i){this.node=i,this.setErrno=function(e){this.errno=e},this.setErrno(e),this.message="FS error"},FS.ErrnoError.prototype=new Error,FS.ErrnoError.prototype.constructor=FS.ErrnoError,[44].forEach(function(e){FS.genericErrors[e]=new FS.ErrnoError(e),FS.genericErrors[e].stack="<generic error, no stack>"}))},staticInit:function(){FS.ensureErrnoError(),FS.nameTable=new Array(4096),FS.mount(MEMFS,{},"/"),FS.createDefaultDirectories(),FS.createDefaultDevices(),FS.createSpecialDirectories(),FS.filesystems={MEMFS:MEMFS}},init:function(e,i,n){FS.init.initialized=!0,FS.ensureErrnoError(),Module.stdin=e||Module.stdin,Module.stdout=i||Module.stdout,Module.stderr=n||Module.stderr,FS.createStandardStreams()},quit:function(){FS.init.initialized=!1;var e=Module._fflush;e&&e(0);for(var i=0;i<FS.streams.length;i++){var n=FS.streams[i];n&&FS.close(n)}},getMode:function(e,i){var n=0;return e&&(n|=365),i&&(n|=146),n},joinPath:function(e,i){e=PATH.join.apply(null,e);return e=i&&"/"==e[0]?e.substr(1):e},absolutePath:function(e,i){return PATH_FS.resolve(i,e)},standardizePath:function(e){return PATH.normalize(e)},findObject:function(e,i){i=FS.analyzePath(e,i);return i.exists?i.object:(setErrNo(i.error),null)},analyzePath:function(e,i){try{e=(t=FS.lookupPath(e,{follow:!i})).path}catch(e){}var n={isRoot:!1,exists:!1,error:0,name:null,path:null,object:null,parentExists:!1,parentPath:null,parentObject:null};try{var t=FS.lookupPath(e,{parent:!0});n.parentExists=!0,n.parentPath=t.path,n.parentObject=t.node,n.name=PATH.basename(e),t=FS.lookupPath(e,{follow:!i}),n.exists=!0,n.path=t.path,n.object=t.node,n.name=t.node.name,n.isRoot="/"===t.path}catch(e){n.error=e.errno}return n},createFolder:function(e,i,n,t){i=PATH.join2("string"==typeof e?e:FS.getPath(e),i),t=FS.getMode(n,t);return FS.mkdir(i,t)},createPath:function(e,i,n,t){e="string"==typeof e?e:FS.getPath(e);for(var r=i.split("/").reverse();r.length;){var o=r.pop();if(o){var a=PATH.join2(e,o);try{FS.mkdir(a)}catch(e){}e=a}}return a},createFile:function(e,i,n,t,r){i=PATH.join2("string"==typeof e?e:FS.getPath(e),i),r=FS.getMode(t,r);return FS.create(i,r)},createDataFile:function(e,i,n,t,r,o){e=i?PATH.join2("string"==typeof e?e:FS.getPath(e),i):e,t=FS.getMode(t,r),r=FS.create(e,t);if(n){if("string"==typeof n){for(var a=new Array(n.length),l=0,u=n.length;l<u;++l)a[l]=n.charCodeAt(l);n=a}FS.chmod(r,146|t);e=FS.open(r,"w");FS.write(e,n,0,n.length,0,o),FS.close(e),FS.chmod(r,t)}return r},createDevice:function(e,i,u,a){var n=PATH.join2("string"==typeof e?e:FS.getPath(e),i),e=FS.getMode(!!u,!!a);FS.createDevice.major||(FS.createDevice.major=64);i=FS.makedev(FS.createDevice.major++,0);return FS.registerDevice(i,{open:function(e){e.seekable=!1},close:function(e){a&&a.buffer&&a.buffer.length&&a(10)},read:function(e,i,n,t,r){for(var o,a=0,l=0;l<t;l++){try{o=u()}catch(e){throw new FS.ErrnoError(29)}if(void 0===o&&0===a)throw new FS.ErrnoError(6);if(null==o)break;a++,i[n+l]=o}return a&&(e.node.timestamp=Date.now()),a},write:function(e,i,n,t,r){for(var o=0;o<t;o++)try{a(i[n+o])}catch(e){throw new FS.ErrnoError(29)}return t&&(e.node.timestamp=Date.now()),o}}),FS.mkdev(n,e,i)},createLink:function(e,i,n,t,r){i=PATH.join2("string"==typeof e?e:FS.getPath(e),i);return FS.symlink(n,i)},forceLoadFile:function(e){if(e.isDevice||e.isFolder||e.link||e.contents)return!0;var i=!0;if("undefined"!=typeof XMLHttpRequest)throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.");if(!read_)throw new Error("Cannot load without read() or XMLHttpRequest.");try{e.contents=intArrayFromString(read_(e.url),!0),e.usedBytes=e.contents.length}catch(e){i=!1}return i||setErrNo(29),i},createLazyFile:function(e,i,a,n,t){function r(){this.lengthKnown=!1,this.chunks=[]}if(r.prototype.get=function(e){if(!(e>this.length-1||e<0)){var i=e%this.chunkSize,e=e/this.chunkSize|0;return this.getter(e)[i]}},r.prototype.setDataGetter=function(e){this.getter=e},r.prototype.cacheLength=function(){var e=new XMLHttpRequest;if(e.open("HEAD",a,!1),e.send(null),!(200<=e.status&&e.status<300||304===e.status))throw new Error("Couldn't load "+a+". Status: "+e.status);var t=Number(e.getResponseHeader("Content-length")),i=(n=e.getResponseHeader("Accept-Ranges"))&&"bytes"===n,n=(n=e.getResponseHeader("Content-Encoding"))&&"gzip"===n,r=1048576;i||(r=t);var o=this;o.setDataGetter(function(e){var i=e*r,n=(e+1)*r-1,n=Math.min(n,t-1);if(void 0===o.chunks[e]&&(o.chunks[e]=function(e,i){if(i<e)throw new Error("invalid range ("+e+", "+i+") or no bytes requested!");if(t-1<i)throw new Error("only "+t+" bytes available! programmer error!");var n=new XMLHttpRequest;if(n.open("GET",a,!1),t!==r&&n.setRequestHeader("Range","bytes="+e+"-"+i),"undefined"!=typeof Uint8Array&&(n.responseType="arraybuffer"),n.overrideMimeType&&n.overrideMimeType("text/plain; charset=x-user-defined"),n.send(null),!(200<=n.status&&n.status<300||304===n.status))throw new Error("Couldn't load "+a+". Status: "+n.status);return void 0!==n.response?new Uint8Array(n.response||[]):intArrayFromString(n.responseText||"",!0)}(i,n)),void 0===o.chunks[e])throw new Error("doXHR failed!");return o.chunks[e]}),!n&&t||(r=t=1,t=this.getter(0).length,r=t,out("LazyFiles on gzip forces download of the whole file when length is accessed")),this._length=t,this._chunkSize=r,this.lengthKnown=!0},"undefined"!=typeof XMLHttpRequest){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var o=new r;Object.defineProperties(o,{length:{get:function(){return this.lengthKnown||this.cacheLength(),this._length}},chunkSize:{get:function(){return this.lengthKnown||this.cacheLength(),this._chunkSize}}});o={isDevice:!1,contents:o}}else o={isDevice:!1,url:a};var u=FS.createFile(e,i,o,n,t);o.contents?u.contents=o.contents:o.url&&(u.contents=null,u.url=o.url),Object.defineProperties(u,{usedBytes:{get:function(){return this.contents.length}}});var l={};return Object.keys(u.stream_ops).forEach(function(e){var i=u.stream_ops[e];l[e]=function(){if(!FS.forceLoadFile(u))throw new FS.ErrnoError(29);return i.apply(null,arguments)}}),l.read=function(e,i,n,t,r){if(!FS.forceLoadFile(u))throw new FS.ErrnoError(29);var o=e.node.contents;if(r>=o.length)return 0;var a=Math.min(o.length-r,t);if(o.slice)for(var l=0;l<a;l++)i[n+l]=o[r+l];else for(l=0;l<a;l++)i[n+l]=o.get(r+l);return a},u.stream_ops=l,u},createPreloadedFile:function(r,o,e,a,l,u,s,d,c,_){Browser.init();var f=o?PATH_FS.resolve(PATH.join2(r,o)):r,p=getUniqueRunDependency("cp "+f);function i(i){function n(e){_&&_(),d||FS.createDataFile(r,o,e,a,l,c),u&&u(),removeRunDependency(p)}var t=!1;Module.preloadPlugins.forEach(function(e){t||e.canHandle(f)&&(e.handle(i,f,n,function(){s&&s(),removeRunDependency(p)}),t=!0)}),t||n(i)}addRunDependency(p),"string"==typeof e?Browser.asyncLoad(e,function(e){i(e)},s):i(e)},indexedDB:function(){return window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB},DB_NAME:function(){return"EM_FS_"+window.location.pathname},DB_VERSION:20,DB_STORE_NAME:"FILE_DATA",saveFilesToDB:function(a,l,u){l=l||function(){},u=u||function(){};var e=FS.indexedDB();try{var s=e.open(FS.DB_NAME(),FS.DB_VERSION)}catch(e){return u(e)}s.onupgradeneeded=function(){out("creating db"),s.result.createObjectStore(FS.DB_STORE_NAME)},s.onsuccess=function(){var e=s.result.transaction([FS.DB_STORE_NAME],"readwrite"),i=e.objectStore(FS.DB_STORE_NAME),n=0,t=0,r=a.length;function o(){(0==t?l:u)()}a.forEach(function(e){e=i.put(FS.analyzePath(e).object.contents,e);e.onsuccess=function(){++n+t==r&&o()},e.onerror=function(){n+ ++t==r&&o()}}),e.onerror=u},s.onerror=u},loadFilesFromDB:function(l,u,s){u=u||function(){},s=s||function(){};var e=FS.indexedDB();try{var d=e.open(FS.DB_NAME(),FS.DB_VERSION)}catch(e){return s(e)}d.onupgradeneeded=s,d.onsuccess=function(){var e=d.result;try{var i=e.transaction([FS.DB_STORE_NAME],"readonly")}catch(e){return void s(e)}var n=i.objectStore(FS.DB_STORE_NAME),t=0,r=0,o=l.length;function a(){(0==r?u:s)()}l.forEach(function(e){var i=n.get(e);i.onsuccess=function(){FS.analyzePath(e).exists&&FS.unlink(e),FS.createDataFile(PATH.dirname(e),PATH.basename(e),i.result,!0,!0,!0),++t+r==o&&a()},i.onerror=function(){t+ ++r==o&&a()}}),i.onerror=s},d.onerror=s}},SYSCALLS={mappings:{},DEFAULT_POLLMASK:5,umask:511,calculateAt:function(e,i){if("/"!==i[0]){var n;if(-100===e)n=FS.cwd();else{e=FS.getStream(e);if(!e)throw new FS.ErrnoError(8);n=e.path}i=PATH.join2(n,i)}return i},doStat:function(e,i,n){try{var t=e(i)}catch(e){if(e&&e.node&&PATH.normalize(i)!==PATH.normalize(FS.getPath(e.node)))return-54;throw e}return HEAP32[n>>2]=t.dev,HEAP32[n+4>>2]=0,HEAP32[n+8>>2]=t.ino,HEAP32[n+12>>2]=t.mode,HEAP32[n+16>>2]=t.nlink,HEAP32[n+20>>2]=t.uid,HEAP32[n+24>>2]=t.gid,HEAP32[n+28>>2]=t.rdev,HEAP32[n+32>>2]=0,tempI64=[t.size>>>0,(tempDouble=t.size,1<=+Math_abs(tempDouble)?0<tempDouble?(0|Math_min(+Math_floor(tempDouble/4294967296),4294967295))>>>0:~~+Math_ceil((tempDouble-(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[n+40>>2]=tempI64[0],HEAP32[n+44>>2]=tempI64[1],HEAP32[n+48>>2]=4096,HEAP32[n+52>>2]=t.blocks,HEAP32[n+56>>2]=t.atime.getTime()/1e3|0,HEAP32[n+60>>2]=0,HEAP32[n+64>>2]=t.mtime.getTime()/1e3|0,HEAP32[n+68>>2]=0,HEAP32[n+72>>2]=t.ctime.getTime()/1e3|0,HEAP32[n+76>>2]=0,tempI64=[t.ino>>>0,(tempDouble=t.ino,1<=+Math_abs(tempDouble)?0<tempDouble?(0|Math_min(+Math_floor(tempDouble/4294967296),4294967295))>>>0:~~+Math_ceil((tempDouble-(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[n+80>>2]=tempI64[0],HEAP32[n+84>>2]=tempI64[1],0},doMsync:function(e,i,n,t,r){e=HEAPU8.slice(e,e+n);FS.msync(i,e,r,n,t)},doMkdir:function(e,i){return"/"===(e=PATH.normalize(e))[e.length-1]&&(e=e.substr(0,e.length-1)),FS.mkdir(e,i,0),0},doMknod:function(e,i,n){switch(61440&i){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}return FS.mknod(e,i,n),0},doReadlink:function(e,i,n){if(n<=0)return-28;var t=FS.readlink(e),r=Math.min(n,lengthBytesUTF8(t)),e=HEAP8[i+r];return stringToUTF8(t,i,n+1),HEAP8[i+r]=e,r},doAccess:function(e,i){if(-8&i)return-28;var n=FS.lookupPath(e,{follow:!0}).node;if(!n)return-44;e="";return 4&i&&(e+="r"),2&i&&(e+="w"),1&i&&(e+="x"),e&&FS.nodePermissions(n,e)?-2:0},doDup:function(e,i,n){var t=FS.getStream(n);return t&&FS.close(t),FS.open(e,i,0,n,n).fd},doReadv:function(e,i,n,t){for(var r=0,o=0;o<n;o++){var a=HEAP32[i+8*o>>2],l=HEAP32[i+(8*o+4)>>2],a=FS.read(e,HEAP8,a,l,t);if(a<0)return-1;if(r+=a,a<l)break}return r},doWritev:function(e,i,n,t){for(var r=0,o=0;o<n;o++){var a=HEAP32[i+8*o>>2],l=HEAP32[i+(8*o+4)>>2],l=FS.write(e,HEAP8,a,l,t);if(l<0)return-1;r+=l}return r},varargs:void 0,get:function(){return SYSCALLS.varargs+=4,HEAP32[SYSCALLS.varargs-4>>2]},getStr:function(e){return UTF8ToString(e)},getStreamFromFD:function(e){e=FS.getStream(e);if(!e)throw new FS.ErrnoError(8);return e},get64:function(e,i){return e}};function ___sys_fcntl64(e,i,n){SYSCALLS.varargs=n;try{var t=SYSCALLS.getStreamFromFD(e);switch(i){case 0:return(r=SYSCALLS.get())<0?-28:FS.open(t.path,t.flags,0,r).fd;case 1:case 2:return 0;case 3:return t.flags;case 4:var r=SYSCALLS.get();return t.flags|=r,0;case 12:r=SYSCALLS.get();return HEAP16[r+0>>1]=2,0;case 13:case 14:return 0;case 16:case 8:return-28;case 9:return setErrNo(28),-1;default:return-28}}catch(e){return void 0!==FS&&e instanceof FS.ErrnoError||abort(e),-e.errno}}function ___sys_ioctl(e,i,n){SYSCALLS.varargs=n;try{var t=SYSCALLS.getStreamFromFD(e);switch(i){case 21509:case 21505:return t.tty?0:-59;case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:return t.tty?0:-59;case 21519:if(!t.tty)return-59;var r=SYSCALLS.get();return HEAP32[r>>2]=0;case 21520:return t.tty?-28:-59;case 21531:r=SYSCALLS.get();return FS.ioctl(t,i,r);case 21523:case 21524:return t.tty?0:-59;default:abort("bad ioctl syscall "+i)}}catch(e){return void 0!==FS&&e instanceof FS.ErrnoError||abort(e),-e.errno}}function syscallMunmap(e,i){if(-1==(0|e)||0===i)return-28;var n,t=SYSCALLS.mappings[e];return t&&i===t.len&&(n=FS.getStream(t.fd),2&t.prot&&SYSCALLS.doMsync(e,n,i,t.flags,t.offset),FS.munmap(n),SYSCALLS.mappings[e]=null,t.allocated&&_free(t.malloc)),0}function ___sys_munmap(e,i){try{return syscallMunmap(e,i)}catch(e){return void 0!==FS&&e instanceof FS.ErrnoError||abort(e),-e.errno}}function ___sys_open(e,i,n){SYSCALLS.varargs=n;try{var t=SYSCALLS.getStr(e),r=SYSCALLS.get();return FS.open(t,i,r).fd}catch(e){return void 0!==FS&&e instanceof FS.ErrnoError||abort(e),-e.errno}}function getShiftFromSize(e){switch(e){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError("Unknown type size: "+e)}}function embind_init_charCodes(){for(var e=new Array(256),i=0;i<256;++i)e[i]=String.fromCharCode(i);embind_charCodes=e}var embind_charCodes=void 0;function readLatin1String(e){for(var i="",n=e;HEAPU8[n];)i+=embind_charCodes[HEAPU8[n++]];return i}var awaitingDependencies={},registeredTypes={},typeDependencies={},char_0=48,char_9=57;function makeLegalFunctionName(e){if(void 0===e)return"_unknown";var i=(e=e.replace(/[^a-zA-Z0-9_]/g,"$")).charCodeAt(0);return char_0<=i&&i<=char_9?"_"+e:e}function createNamedFunction(e,i){return e=makeLegalFunctionName(e),new Function("body","return function "+e+'() {\n "use strict"; return body.apply(this, arguments);\n};\n')(i)}function extendError(e,i){var n=createNamedFunction(i,function(e){this.name=i,this.message=e;e=new Error(e).stack;void 0!==e&&(this.stack=this.toString()+"\n"+e.replace(/^Error(:[^\n]*)?\n/,""))});return n.prototype=Object.create(e.prototype),(n.prototype.constructor=n).prototype.toString=function(){return void 0===this.message?this.name:this.name+": "+this.message},n}var BindingError=void 0;function throwBindingError(e){throw new BindingError(e)}var InternalError=void 0;function throwInternalError(e){throw new InternalError(e)}function whenDependentTypesAreResolved(t,i,r){function n(e){var i=r(e);i.length!==t.length&&throwInternalError("Mismatched type converter count");for(var n=0;n<t.length;++n)registerType(t[n],i[n])}t.forEach(function(e){typeDependencies[e]=i});var o=new Array(i.length),a=[],l=0;i.forEach(function(e,i){registeredTypes.hasOwnProperty(e)?o[i]=registeredTypes[e]:(a.push(e),awaitingDependencies.hasOwnProperty(e)||(awaitingDependencies[e]=[]),awaitingDependencies[e].push(function(){o[i]=registeredTypes[e],++l===a.length&&n(o)}))}),0===a.length&&n(o)}function registerType(e,i,n){if(n=n||{},!("argPackAdvance"in i))throw new TypeError("registerType registeredInstance requires argPackAdvance");var t=i.name;if(e||throwBindingError('type "'+t+'" must have a positive integer typeid pointer'),registeredTypes.hasOwnProperty(e)){if(n.ignoreDuplicateRegistrations)return;throwBindingError("Cannot register type '"+t+"' twice")}registeredTypes[e]=i,delete typeDependencies[e],awaitingDependencies.hasOwnProperty(e)&&(i=awaitingDependencies[e],delete awaitingDependencies[e],i.forEach(function(e){e()}))}function __embind_register_bool(e,n,t,r,o){var a=getShiftFromSize(t);registerType(e,{name:n=readLatin1String(n),fromWireType:function(e){return!!e},toWireType:function(e,i){return i?r:o},argPackAdvance:8,readValueFromPointer:function(e){var i;if(1===t)i=HEAP8;else if(2===t)i=HEAP16;else{if(4!==t)throw new TypeError("Unknown boolean type size: "+n);i=HEAP32}return this.fromWireType(i[e>>a])},destructorFunction:null})}function ClassHandle_isAliasOf(e){if(!(this instanceof ClassHandle))return!1;if(!(e instanceof ClassHandle))return!1;for(var i=this.$$.ptrType.registeredClass,n=this.$$.ptr,t=e.$$.ptrType.registeredClass,r=e.$$.ptr;i.baseClass;)n=i.upcast(n),i=i.baseClass;for(;t.baseClass;)r=t.upcast(r),t=t.baseClass;return i===t&&n===r}function shallowCopyInternalPointer(e){return{count:e.count,deleteScheduled:e.deleteScheduled,preservePointerOnDelete:e.preservePointerOnDelete,ptr:e.ptr,ptrType:e.ptrType,smartPtr:e.smartPtr,smartPtrType:e.smartPtrType}}function throwInstanceAlreadyDeleted(e){throwBindingError(e.$$.ptrType.registeredClass.name+" instance already deleted")}var finalizationGroup=!1;function detachFinalizer(e){}function runDestructor(e){e.smartPtr?e.smartPtrType.rawDestructor(e.smartPtr):e.ptrType.registeredClass.rawDestructor(e.ptr)}function releaseClassHandle(e){--e.count.value,0===e.count.value&&runDestructor(e)}function attachFinalizer(e){return"undefined"==typeof FinalizationGroup?(attachFinalizer=function(e){return e},e):(finalizationGroup=new FinalizationGroup(function(e){for(var i=e.next();!i.done;i=e.next()){var n=i.value;n.ptr?releaseClassHandle(n):console.warn("object already deleted: "+n.ptr)}}),detachFinalizer=function(e){finalizationGroup.unregister(e.$$)},(attachFinalizer=function(e){return finalizationGroup.register(e,e.$$,e.$$),e})(e))}function ClassHandle_clone(){if(this.$$.ptr||throwInstanceAlreadyDeleted(this),this.$$.preservePointerOnDelete)return this.$$.count.value+=1,this;var e=attachFinalizer(Object.create(Object.getPrototypeOf(this),{$$:{value:shallowCopyInternalPointer(this.$$)}}));return e.$$.count.value+=1,e.$$.deleteScheduled=!1,e}function ClassHandle_delete(){this.$$.ptr||throwInstanceAlreadyDeleted(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&throwBindingError("Object already scheduled for deletion"),detachFinalizer(this),releaseClassHandle(this.$$),this.$$.preservePointerOnDelete||(this.$$.smartPtr=void 0,this.$$.ptr=void 0)}function ClassHandle_isDeleted(){return!this.$$.ptr}var delayFunction=void 0,deletionQueue=[];function flushPendingDeletes(){for(;deletionQueue.length;){var e=deletionQueue.pop();e.$$.deleteScheduled=!1,e.delete()}}function ClassHandle_deleteLater(){return this.$$.ptr||throwInstanceAlreadyDeleted(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&throwBindingError("Object already scheduled for deletion"),deletionQueue.push(this),1===deletionQueue.length&&delayFunction&&delayFunction(flushPendingDeletes),this.$$.deleteScheduled=!0,this}function init_ClassHandle(){ClassHandle.prototype.isAliasOf=ClassHandle_isAliasOf,ClassHandle.prototype.clone=ClassHandle_clone,ClassHandle.prototype.delete=ClassHandle_delete,ClassHandle.prototype.isDeleted=ClassHandle_isDeleted,ClassHandle.prototype.deleteLater=ClassHandle_deleteLater}function ClassHandle(){}var registeredPointers={};function ensureOverloadTable(e,i,n){var t;void 0===e[i].overloadTable&&(t=e[i],e[i]=function(){return e[i].overloadTable.hasOwnProperty(arguments.length)||throwBindingError("Function '"+n+"' called with an invalid number of arguments ("+arguments.length+") - expects one of ("+e[i].overloadTable+")!"),e[i].overloadTable[arguments.length].apply(this,arguments)},e[i].overloadTable=[],e[i].overloadTable[t.argCount]=t)}function exposePublicSymbol(e,i,n){Module.hasOwnProperty(e)?((void 0===n||void 0!==Module[e].overloadTable&&void 0!==Module[e].overloadTable[n])&&throwBindingError("Cannot register public name '"+e+"' twice"),ensureOverloadTable(Module,e,e),Module.hasOwnProperty(n)&&throwBindingError("Cannot register multiple overloads of a function with the same number of arguments ("+n+")!"),Module[e].overloadTable[n]=i):(Module[e]=i,void 0!==n&&(Module[e].numArguments=n))}function RegisteredClass(e,i,n,t,r,o,a,l){this.name=e,this.constructor=i,this.instancePrototype=n,this.rawDestructor=t,this.baseClass=r,this.getActualType=o,this.upcast=a,this.downcast=l,this.pureVirtualFunctions=[]}function upcastPointer(e,i,n){for(;i!==n;)i.upcast||throwBindingError("Expected null or instance of "+n.name+", got an instance of "+i.name),e=i.upcast(e),i=i.baseClass;return e}function constNoSmartPtrRawPointerToWireType(e,i){if(null===i)return this.isReference&&throwBindingError("null is not a valid "+this.name),0;i.$$||throwBindingError('Cannot pass "'+_embind_repr(i)+'" as a '+this.name),i.$$.ptr||throwBindingError("Cannot pass deleted object as a pointer of type "+this.name);var n=i.$$.ptrType.registeredClass;return upcastPointer(i.$$.ptr,n,this.registeredClass)}function genericPointerToWireType(e,i){if(null===i)return this.isReference&&throwBindingError("null is not a valid "+this.name),this.isSmartPointer?(t=this.rawConstructor(),null!==e&&e.push(this.rawDestructor,t),t):0;i.$$||throwBindingError('Cannot pass "'+_embind_repr(i)+'" as a '+this.name),i.$$.ptr||throwBindingError("Cannot pass deleted object as a pointer of type "+this.name),!this.isConst&&i.$$.ptrType.isConst&&throwBindingError("Cannot convert argument of type "+(i.$$.smartPtrType||i.$$.ptrType).name+" to parameter type "+this.name);var n,t,r=i.$$.ptrType.registeredClass;if(t=upcastPointer(i.$$.ptr,r,this.registeredClass),this.isSmartPointer)switch(void 0===i.$$.smartPtr&&throwBindingError("Passing raw pointer to smart pointer is illegal"),this.sharingPolicy){case 0:i.$$.smartPtrType===this?t=i.$$.smartPtr:throwBindingError("Cannot convert argument of type "+(i.$$.smartPtrType||i.$$.ptrType).name+" to parameter type "+this.name);break;case 1:t=i.$$.smartPtr;break;case 2:i.$$.smartPtrType===this?t=i.$$.smartPtr:(n=i.clone(),t=this.rawShare(t,__emval_register(function(){n.delete()})),null!==e&&e.push(this.rawDestructor,t));break;default:throwBindingError("Unsupporting sharing policy")}return t}function nonConstNoSmartPtrRawPointerToWireType(e,i){if(null===i)return this.isReference&&throwBindingError("null is not a valid "+this.name),0;i.$$||throwBindingError('Cannot pass "'+_embind_repr(i)+'" as a '+this.name),i.$$.ptr||throwBindingError("Cannot pass deleted object as a pointer of type "+this.name),i.$$.ptrType.isConst&&throwBindingError("Cannot convert argument of type "+i.$$.ptrType.name+" to parameter type "+this.name);var n=i.$$.ptrType.registeredClass;return upcastPointer(i.$$.ptr,n,this.registeredClass)}function simpleReadValueFromPointer(e){return this.fromWireType(HEAPU32[e>>2])}function RegisteredPointer_getPointee(e){return e=this.rawGetPointee?this.rawGetPointee(e):e}function RegisteredPointer_destructor(e){this.rawDestructor&&this.rawDestructor(e)}function RegisteredPointer_deleteObject(e){null!==e&&e.delete()}function downcastPointer(e,i,n){if(i===n)return e;if(void 0===n.baseClass)return null;i=downcastPointer(e,i,n.baseClass);return null===i?null:n.downcast(i)}function getInheritedInstanceCount(){return Object.keys(registeredInstances).length}function getLiveInheritedInstances(){var e,i=[];for(e in registeredInstances)registeredInstances.hasOwnProperty(e)&&i.push(registeredInstances[e]);return i}function setDelayFunction(e){delayFunction=e,deletionQueue.length&&delayFunction&&delayFunction(flushPendingDeletes)}function init_embind(){Module.getInheritedInstanceCount=getInheritedInstanceCount,Module.getLiveInheritedInstances=getLiveInheritedInstances,Module.flushPendingDeletes=flushPendingDeletes,Module.setDelayFunction=setDelayFunction}var registeredInstances={};function getBasestPointer(e,i){for(void 0===i&&throwBindingError("ptr should not be undefined");e.baseClass;)i=e.upcast(i),e=e.baseClass;return i}function getInheritedInstance(e,i){return i=getBasestPointer(e,i),registeredInstances[i]}function makeClassHandle(e,i){return i.ptrType&&i.ptr||throwInternalError("makeClassHandle requires ptr and ptrType"),!!i.smartPtrType!=!!i.smartPtr&&throwInternalError("Both smartPtrType and smartPtr must be specified"),i.count={value:1},attachFinalizer(Object.create(e,{$$:{value:i}}))}function RegisteredPointer_fromWireType(e){var i=this.getPointee(e);if(!i)return this.destructor(e),null;var n=getInheritedInstance(this.registeredClass,i);if(void 0!==n){if(0===n.$$.count.value)return n.$$.ptr=i,n.$$.smartPtr=e,n.clone();var t=n.clone();return this.destructor(e),t}function r(){return this.isSmartPointer?makeClassHandle(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:i,smartPtrType:this,smartPtr:e}):makeClassHandle(this.registeredClass.instancePrototype,{ptrType:this,ptr:e})}n=this.registeredClass.getActualType(i),t=registeredPointers[n];if(!t)return r.call(this);n=this.isConst?t.constPointerType:t.pointerType,t=downcastPointer(i,this.registeredClass,n.registeredClass);return null===t?r.call(this):this.isSmartPointer?makeClassHandle(n.registeredClass.instancePrototype,{ptrType:n,ptr:t,smartPtrType:this,smartPtr:e}):makeClassHandle(n.registeredClass.instancePrototype,{ptrType:n,ptr:t})}function init_RegisteredPointer(){RegisteredPointer.prototype.getPointee=RegisteredPointer_getPointee,RegisteredPointer.prototype.destructor=RegisteredPointer_destructor,RegisteredPointer.prototype.argPackAdvance=8,RegisteredPointer.prototype.readValueFromPointer=simpleReadValueFromPointer,RegisteredPointer.prototype.deleteObject=RegisteredPointer_deleteObject,RegisteredPointer.prototype.fromWireType=RegisteredPointer_fromWireType}function RegisteredPointer(e,i,n,t,r,o,a,l,u,s,d){this.name=e,this.registeredClass=i,this.isReference=n,this.isConst=t,this.isSmartPointer=r,this.pointeeType=o,this.sharingPolicy=a,this.rawGetPointee=l,this.rawConstructor=u,this.rawShare=s,this.rawDestructor=d,r||void 0!==i.baseClass?this.toWireType=genericPointerToWireType:(this.toWireType=t?constNoSmartPtrRawPointerToWireType:nonConstNoSmartPtrRawPointerToWireType,this.destructorFunction=null)}function replacePublicSymbol(e,i,n){Module.hasOwnProperty(e)||throwInternalError("Replacing nonexistant public symbol"),void 0!==Module[e].overloadTable&&void 0!==n?Module[e].overloadTable[n]=i:(Module[e]=i,Module[e].argCount=n)}function embind__requireFunction(r,o){r=readLatin1String(r);var e=function(e){for(var i=[],n=1;n<r.length;++n)i.push("a"+n);var t="return function "+("dynCall_"+r+"_"+o)+"("+i.join(", ")+") {\n";return t+=" return dynCall(rawFunction"+(i.length?", ":"")+i.join(", ")+");\n",t+="};\n",new Function("dynCall","rawFunction",t)(e,o)}(Module["dynCall_"+r]);return"function"!=typeof e&&throwBindingError("unknown function pointer with signature "+r+": "+o),e}var UnboundTypeError=void 0;function getTypeName(e){var i=___getTypeName(e),e=readLatin1String(i);return _free(i),e}function throwUnboundTypeError(e,i){var n=[],t={};throw i.forEach(function e(i){t[i]||registeredTypes[i]||(typeDependencies[i]?typeDependencies[i].forEach(e):(n.push(i),t[i]=!0))}),new UnboundTypeError(e+": "+n.map(getTypeName).join([", "]))}function __embind_register_class(a,e,i,l,n,u,t,s,r,d,c,o,_){c=readLatin1String(c),u=embind__requireFunction(n,u),s=s&&embind__requireFunction(t,s),d=d&&embind__requireFunction(r,d),_=embind__requireFunction(o,_);var f=makeLegalFunctionName(c);exposePublicSymbol(f,function(){throwUnboundTypeError("Cannot construct "+c+" due to unbound types",[l])}),whenDependentTypesAreResolved([a,e,i],l?[l]:[],function(e){e=e[0];var i=l?(o=e.registeredClass).instancePrototype:ClassHandle.prototype,n=createNamedFunction(f,function(){if(Object.getPrototypeOf(this)!==t)throw new BindingError("Use 'new' to construct "+c);if(void 0===r.constructor_body)throw new BindingError(c+" has no accessible constructor");var e=r.constructor_body[arguments.length];if(void 0===e)throw new BindingError("Tried to invoke ctor of "+c+" with invalid number of parameters ("+arguments.length+") - expected ("+Object.keys(r.constructor_body).toString()+") parameters instead!");return e.apply(this,arguments)}),t=Object.create(i,{constructor:{value:n}});n.prototype=t;var r=new RegisteredClass(c,n,t,_,o,u,s,d),e=new RegisteredPointer(c,r,!0,!1,!1),i=new RegisteredPointer(c+"*",r,!1,!1,!1),o=new RegisteredPointer(c+" const*",r,!1,!0,!1);return registeredPointers[a]={pointerType:i,constPointerType:o},replacePublicSymbol(f,n),[e,i,o]})}function new_(e,i){if(!(e instanceof Function))throw new TypeError("new_ called with constructor type "+typeof e+" which is not a function");var n=createNamedFunction(e.name||"unknownFunctionName",function(){});n.prototype=e.prototype;n=new n,i=e.apply(n,i);return i instanceof Object?i:n}function runDestructors(e){for(;e.length;){var i=e.pop();e.pop()(i)}}function craftInvokerFunction(e,i,n,t,r){var o=i.length;o<2&&throwBindingError("argTypes array size mismatch! Must at least get return value and 'this' types!");for(var a=null!==i[1]&&null!==n,l=!1,u=1;u<i.length;++u)if(null!==i[u]&&void 0===i[u].destructorFunction){l=!0;break}for(var n="void"!==i[0].name,s="",d="",u=0;u<o-2;++u)s+=(0!==u?", ":"")+"arg"+u,d+=(0!==u?", ":"")+"arg"+u+"Wired";var c="return function "+makeLegalFunctionName(e)+"("+s+") {\nif (arguments.length !== "+(o-2)+") {\nthrowBindingError('function "+e+" called with ' + arguments.length + ' arguments, expected "+(o-2)+" args!');\n}\n";l&&(c+="var destructors = [];\n");var _=l?"destructors":"null",f=["throwBindingError","invoker","fn","runDestructors","retType","classParam"],p=[throwBindingError,t,r,runDestructors,i[0],i[1]];a&&(c+="var thisWired = classParam.toWireType("+_+", this);\n");for(u=0;u<o-2;++u)c+="var arg"+u+"Wired = argType"+u+".toWireType("+_+", arg"+u+"); // "+i[u+2].name+"\n",f.push("argType"+u),p.push(i[u+2]);if(c+=(n?"var rv = ":"")+"invoker(fn"+(0<(d=a?"thisWired"+(0<d.length?", ":"")+d:d).length?", ":"")+d+");\n",l)c+="runDestructors(destructors);\n";else for(u=a?1:2;u<i.length;++u){var y=1===u?"thisWired":"arg"+(u-2)+"Wired";null!==i[u].destructorFunction&&(c+=y+"_dtor("+y+"); // "+i[u].name+"\n",f.push(y+"_dtor"),p.push(i[u].destructorFunction))}return n&&(c+="var ret = retType.fromWireType(rv);\nreturn ret;\n"),f.push(c+="}\n"),new_(Function,f).apply(null,p)}function heap32VectorToArray(e,i){for(var n=[],t=0;t<e;t++)n.push(HEAP32[(i>>2)+t]);return n}function __embind_register_class_function(e,o,a,i,n,l,u,s){var d=heap32VectorToArray(a,i);o=readLatin1String(o),l=embind__requireFunction(n,l),whenDependentTypesAreResolved([],[e],function(i){var n=(i=i[0]).name+"."+o;function e(){throwUnboundTypeError("Cannot call "+n+" due to unbound types",d)}s&&i.registeredClass.pureVirtualFunctions.push(o);var t=i.registeredClass.instancePrototype,r=t[o];return void 0===r||void 0===r.overloadTable&&r.className!==i.name&&r.argCount===a-2?(e.argCount=a-2,e.className=i.name,t[o]=e):(ensureOverloadTable(t,o,n),t[o].overloadTable[a-2]=e),whenDependentTypesAreResolved([],d,function(e){e=craftInvokerFunction(n,e,i,l,u);return void 0===t[o].overloadTable?(e.argCount=a-2,t[o]=e):t[o].overloadTable[a-2]=e,[]}),[]})}var emval_free_list=[],emval_handle_array=[{},{value:void 0},{value:null},{value:!0},{value:!1}];function __emval_decref(e){4<e&&0==--emval_handle_array[e].refcount&&(emval_handle_array[e]=void 0,emval_free_list.push(e))}function count_emval_handles(){for(var e=0,i=5;i<emval_handle_array.length;++i)void 0!==emval_handle_array[i]&&++e;return e}function get_first_emval(){for(var e=5;e<emval_handle_array.length;++e)if(void 0!==emval_handle_array[e])return emval_handle_array[e];return null}function init_emval(){Module.count_emval_handles=count_emval_handles,Module.get_first_emval=get_first_emval}function __emval_register(e){switch(e){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:var i=emval_free_list.length?emval_free_list.pop():emval_handle_array.length;return emval_handle_array[i]={refcount:1,value:e},i}}function __embind_register_emval(e,i){registerType(e,{name:i=readLatin1String(i),fromWireType:function(e){var i=emval_handle_array[e].value;return __emval_decref(e),i},toWireType:function(e,i){return __emval_register(i)},argPackAdvance:8,readValueFromPointer:simpleReadValueFromPointer,destructorFunction:null})}function _embind_repr(e){if(null===e)return"null";var i=typeof e;return"object"==i||"array"==i||"function"==i?e.toString():""+e}function floatReadValueFromPointer(e,i){switch(i){case 2:return function(e){return this.fromWireType(HEAPF32[e>>2])};case 3:return function(e){return this.fromWireType(HEAPF64[e>>3])};default:throw new TypeError("Unknown float type: "+e)}}function __embind_register_float(e,i,n){n=getShiftFromSize(n);registerType(e,{name:i=readLatin1String(i),fromWireType:function(e){return e},toWireType:function(e,i){if("number"!=typeof i&&"boolean"!=typeof i)throw new TypeError('Cannot convert "'+_embind_repr(i)+'" to '+this.name);return i},argPackAdvance:8,readValueFromPointer:floatReadValueFromPointer(i,n),destructorFunction:null})}function __embind_register_function(i,n,e,t,r,o){var a=heap32VectorToArray(n,e);i=readLatin1String(i),r=embind__requireFunction(t,r),exposePublicSymbol(i,function(){throwUnboundTypeError("Cannot call "+i+" due to unbound types",a)},n-1),whenDependentTypesAreResolved([],a,function(e){e=[e[0],null].concat(e.slice(1));return replacePublicSymbol(i,craftInvokerFunction(i,e,null,r,o),n-1),[]})}function integerReadValueFromPointer(e,i,n){switch(i){case 0:return n?function(e){return HEAP8[e]}:function(e){return HEAPU8[e]};case 1:return n?function(e){return HEAP16[e>>1]}:function(e){return HEAPU16[e>>1]};case 2:return n?function(e){return HEAP32[e>>2]}:function(e){return HEAPU32[e>>2]};default:throw new TypeError("Unknown integer type: "+e)}}function __embind_register_integer(e,n,i,t,r){n=readLatin1String(n),-1===r&&(r=4294967295);var o,a=getShiftFromSize(i),l=function(e){return e};0===t&&(o=32-8*i,l=function(e){return e<<o>>>o});var u=-1!=n.indexOf("unsigned");registerType(e,{name:n,fromWireType:l,toWireType:function(e,i){if("number"!=typeof i&&"boolean"!=typeof i)throw new TypeError('Cannot convert "'+_embind_repr(i)+'" to '+this.name);if(i<t||r<i)throw new TypeError('Passing a number "'+_embind_repr(i)+'" from JS side to C/C++ side to an argument of type "'+n+'", which is outside the valid range ['+t+", "+r+"]!");return u?i>>>0:0|i},argPackAdvance:8,readValueFromPointer:integerReadValueFromPointer(n,a,0!==t),destructorFunction:null})}function __embind_register_memory_view(e,i,n){var t=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][i];function r(e){var i=HEAPU32[e>>=2],e=HEAPU32[e+1];return new t(buffer,e,i)}registerType(e,{name:n=readLatin1String(n),fromWireType:r,argPackAdvance:8,readValueFromPointer:r},{ignoreDuplicateRegistrations:!0})}function __embind_register_std_string(e,i){var u="std::string"===(i=readLatin1String(i));registerType(e,{name:i,fromWireType:function(e){var i,n=HEAPU32[e>>2];if(u)for(var t=e+4,r=0;r<=n;++r){var o,a=e+4+r;0!=HEAPU8[a]&&r!=n||(o=UTF8ToString(t,a-t),void 0===i?i=o:(i+=String.fromCharCode(0),i+=o),t=a+1)}else{for(var l=new Array(n),r=0;r<n;++r)l[r]=String.fromCharCode(HEAPU8[e+4+r]);i=l.join("")}return _free(e),i},toWireType:function(e,i){var n="string"==typeof(i=i instanceof ArrayBuffer?new Uint8Array(i):i);n||i instanceof Uint8Array||i instanceof Uint8ClampedArray||i instanceof Int8Array||throwBindingError("Cannot pass non-string to std::string");var t=(u&&n?function(){return lengthBytesUTF8(i)}:function(){return i.length})(),r=_malloc(4+t+1);if(HEAPU32[r>>2]=t,u&&n)stringToUTF8(i,r+4,t+1);else if(n)for(var o=0;o<t;++o){var a=i.charCodeAt(o);255<a&&(_free(r),throwBindingError("String has UTF-16 code units that do not fit in 8 bits")),HEAPU8[r+4+o]=a}else for(o=0;o<t;++o)HEAPU8[r+4+o]=i[o];return null!==e&&e.push(_free,r),r},argPackAdvance:8,readValueFromPointer:simpleReadValueFromPointer,destructorFunction:function(e){_free(e)}})}function __embind_register_std_wstring(e,u,r){var s,o,d,a,c;r=readLatin1String(r),2===u?(s=UTF16ToString,o=stringToUTF16,a=lengthBytesUTF16,d=function(){return HEAPU16},c=1):4===u&&(s=UTF32ToString,o=stringToUTF32,a=lengthBytesUTF32,d=function(){return HEAPU32},c=2),registerType(e,{name:r,fromWireType:function(e){for(var i,n=HEAPU32[e>>2],t=d(),r=e+4,o=0;o<=n;++o){var a,l=e+4+o*u;0!=t[l>>c]&&o!=n||(a=s(r,l-r),void 0===i?i=a:(i+=String.fromCharCode(0),i+=a),r=l+u)}return _free(e),i},toWireType:function(e,i){"string"!=typeof i&&throwBindingError("Cannot pass non-string to C++ string type "+r);var n=a(i),t=_malloc(4+n+u);return HEAPU32[t>>2]=n>>c,o(i,t+4,n+u),null!==e&&e.push(_free,t),t},argPackAdvance:8,readValueFromPointer:simpleReadValueFromPointer,destructorFunction:function(e){_free(e)}})}function __embind_register_void(e,i){registerType(e,{isVoid:!0,name:i=readLatin1String(i),argPackAdvance:0,fromWireType:function(){},toWireType:function(e,i){}})}function requireHandle(e){return e||throwBindingError("Cannot use deleted val. handle = "+e),emval_handle_array[e].value}function requireRegisteredType(e,i){var n=registeredTypes[e];return void 0===n&&throwBindingError(i+" has unknown type "+getTypeName(e)),n}function __emval_as(e,i,n){e=requireHandle(e),i=requireRegisteredType(i,"emval::as");var t=[],r=__emval_register(t);return HEAP32[n>>2]=r,i.toWireType(t,e)}function __emval_allocateDestructors(e){var i=[];return HEAP32[e>>2]=__emval_register(i),i}var emval_symbols={};function getStringOrSymbol(e){var i=emval_symbols[e];return void 0===i?readLatin1String(e):i}var emval_methodCallers=[];function __emval_call_method(e,i,n,t,r){return(e=emval_methodCallers[e])(i=requireHandle(i),n=getStringOrSymbol(n),__emval_allocateDestructors(t),r)}function __emval_call_void_method(e,i,n,t){(e=emval_methodCallers[e])(i=requireHandle(i),n=getStringOrSymbol(n),null,t)}function __emval_addMethodCaller(e){var i=emval_methodCallers.length;return emval_methodCallers.push(e),i}function __emval_lookupTypes(e,i){for(var n=new Array(e),t=0;t<e;++t)n[t]=requireRegisteredType(HEAP32[(i>>2)+t],"parameter "+t);return n}function __emval_get_method_caller(e,i){for(var n=__emval_lookupTypes(e,i),t=n[0],i=t.name+"_$"+n.slice(1).map(function(e){return e.name}).join("_")+"$",r=["retType"],o=[t],a="",l=0;l<e-1;++l)a+=(0!==l?", ":"")+"arg"+l,r.push("argType"+l),o.push(n[1+l]);for(var u="return function "+makeLegalFunctionName("methodCaller_"+i)+"(handle, name, destructors, args) {\n",s=0,l=0;l<e-1;++l)u+=" var arg"+l+" = argType"+l+".readValueFromPointer(args"+(s?"+"+s:"")+");\n",s+=n[l+1].argPackAdvance;u+=" var rv = handle[name]("+a+");\n";for(l=0;l<e-1;++l)n[l+1].deleteObject&&(u+=" argType"+l+".deleteObject(arg"+l+");\n");return t.isVoid||(u+=" return retType.toWireType(destructors, rv);\n"),r.push(u+="};\n"),__emval_addMethodCaller(new_(Function,r).apply(null,o))}function __emval_get_property(e,i){return __emval_register((e=requireHandle(e))[i=requireHandle(i)])}function __emval_incref(e){4<e&&(emval_handle_array[e].refcount+=1)}function __emval_new_cstring(e){return __emval_register(getStringOrSymbol(e))}function __emval_run_destructors(e){runDestructors(emval_handle_array[e].value),__emval_decref(e)}function __emval_set_property(e,i,n){e=requireHandle(e),i=requireHandle(i),n=requireHandle(n),e[i]=n}function __emval_take_value(e,i){return __emval_register((e=requireRegisteredType(e,"_emval_take_value")).readValueFromPointer(i))}function _abort(){abort()}function _clock(){return void 0===_clock.start&&(_clock.start=Date.now()),1e3*(Date.now()-_clock.start)|0}function _emscripten_get_sbrk_ptr(){return 493104}function _longjmp(e,i){throw _setThrew(e,i||1),"longjmp"}function _emscripten_longjmp(e,i){_longjmp(e,i)}function _emscripten_memcpy_big(e,i,n){HEAPU8.copyWithin(e,i,i+n)}function abortOnCannotGrowMemory(e){abort("OOM")}function _emscripten_resize_heap(e){abortOnCannotGrowMemory(e>>>=0)}var ENV={};function __getExecutableName(){return thisProgram||"./this.program"}function getEnvStrings(){if(!getEnvStrings.strings){var e={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:("object"==typeof navigator&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",_:__getExecutableName()};for(i in ENV)e[i]=ENV[i];var i,n=[];for(i in e)n.push(i+"="+e[i]);getEnvStrings.strings=n}return getEnvStrings.strings}function _environ_get(t,r){var o=0;return getEnvStrings().forEach(function(e,i){var n=r+o;writeAsciiToMemory(e,HEAP32[t+4*i>>2]=n),o+=e.length+1}),0}function _environ_sizes_get(e,i){var n=getEnvStrings();HEAP32[e>>2]=n.length;var t=0;return n.forEach(function(e){t+=e.length+1}),HEAP32[i>>2]=t,0}function _fd_close(e){try{var i=SYSCALLS.getStreamFromFD(e);return FS.close(i),0}catch(e){return void 0!==FS&&e instanceof FS.ErrnoError||abort(e),e.errno}}function _fd_fdstat_get(e,i){try{var n=SYSCALLS.getStreamFromFD(e),t=n.tty?2:FS.isDir(n.mode)?3:FS.isLink(n.mode)?7:4;return HEAP8[i>>0]=t,0}catch(e){return void 0!==FS&&e instanceof FS.ErrnoError||abort(e),e.errno}}function _fd_read(e,i,n,t){try{var r=SYSCALLS.getStreamFromFD(e),o=SYSCALLS.doReadv(r,i,n);return HEAP32[t>>2]=o,0}catch(e){return void 0!==FS&&e instanceof FS.ErrnoError||abort(e),e.errno}}function _fd_seek(e,i,n,t,r){try{var o=SYSCALLS.getStreamFromFD(e),a=4294967296*n+(i>>>0),l=9007199254740992;return a<=-l||l<=a?-61:(FS.llseek(o,a,t),tempI64=[o.position>>>0,(tempDouble=o.position,1<=+Math_abs(tempDouble)?0<tempDouble?(0|Math_min(+Math_floor(tempDouble/4294967296),4294967295))>>>0:~~+Math_ceil((tempDouble-(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[r>>2]=tempI64[0],HEAP32[r+4>>2]=tempI64[1],o.getdents&&0==a&&0===t&&(o.getdents=null),0)}catch(e){return void 0!==FS&&e instanceof FS.ErrnoError||abort(e),e.errno}}function _fd_write(e,i,n,t){try{var r=SYSCALLS.getStreamFromFD(e),o=SYSCALLS.doWritev(r,i,n);return HEAP32[t>>2]=o,0}catch(e){return void 0!==FS&&e instanceof FS.ErrnoError||abort(e),e.errno}}function _getTempRet0(){return 0|getTempRet0()}function _llvm_eh_typeid_for(e){return e}var ___tm_current=493120,___tm_timezone=(stringToUTF8("GMT",493168,4),493168);function _tzset(){var e,i,n,t;function r(e){e=e.toTimeString().match(/\(([A-Za-z ]+)\)$/);return e?e[1]:"GMT"}_tzset.called||(_tzset.called=!0,HEAP32[__get_timezone()>>2]=60*(new Date).getTimezoneOffset(),t=(new Date).getFullYear(),e=new Date(t,0,1),i=new Date(t,6,1),HEAP32[__get_daylight()>>2]=Number(e.getTimezoneOffset()!=i.getTimezoneOffset()),n=r(e),t=r(i),n=allocateUTF8(n),t=allocateUTF8(t),i.getTimezoneOffset()<e.getTimezoneOffset()?(HEAP32[__get_tzname()>>2]=n,HEAP32[__get_tzname()+4>>2]=t):(HEAP32[__get_tzname()>>2]=t,HEAP32[__get_tzname()+4>>2]=n))}function _localtime_r(e,i){_tzset();var n=new Date(1e3*HEAP32[e>>2]);HEAP32[i>>2]=n.getSeconds(),HEAP32[i+4>>2]=n.getMinutes(),HEAP32[i+8>>2]=n.getHours(),HEAP32[i+12>>2]=n.getDate(),HEAP32[i+16>>2]=n.getMonth(),HEAP32[i+20>>2]=n.getFullYear()-1900,HEAP32[i+24>>2]=n.getDay();var t=new Date(n.getFullYear(),0,1),e=(n.getTime()-t.getTime())/864e5|0;HEAP32[i+28>>2]=e,HEAP32[i+36>>2]=-60*n.getTimezoneOffset();e=new Date(n.getFullYear(),6,1).getTimezoneOffset(),t=t.getTimezoneOffset(),e=0|(e!=t&&n.getTimezoneOffset()==Math.min(t,e));HEAP32[i+32>>2]=e;e=HEAP32[__get_tzname()+(e?4:0)>>2];return HEAP32[i+40>>2]=e,i}function _localtime(e){return _localtime_r(e,___tm_current)}function _pthread_mutexattr_destroy(){}function _pthread_mutexattr_init(){}function _pthread_mutexattr_settype(){}function _round(e){return 0<=(e=+e)?+Math_floor(e+.5):+Math_ceil(e-.5)}function _setTempRet0(e){setTempRet0(0|e)}function __isLeapYear(e){return e%4==0&&(e%100!=0||e%400==0)}function __arraySum(e,i){for(var n=0,t=0;t<=i;n+=e[t++]);return n}var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31],__MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function __addDays(e,i){for(var n=new Date(e.getTime());0<i;){var t=__isLeapYear(n.getFullYear()),r=n.getMonth(),t=(t?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR)[r];if(!(i>t-n.getDate()))return n.setDate(n.getDate()+i),n;i-=t-n.getDate()+1,n.setDate(1),r<11?n.setMonth(r+1):(n.setMonth(0),n.setFullYear(n.getFullYear()+1))}return n}function _strftime(e,i,n,t){var r=HEAP32[t+40>>2],o={tm_sec:HEAP32[t>>2],tm_min:HEAP32[t+4>>2],tm_hour:HEAP32[t+8>>2],tm_mday:HEAP32[t+12>>2],tm_mon:HEAP32[t+16>>2],tm_year:HEAP32[t+20>>2],tm_wday:HEAP32[t+24>>2],tm_yday:HEAP32[t+28>>2],tm_isdst:HEAP32[t+32>>2],tm_gmtoff:HEAP32[t+36>>2],tm_zone:r?UTF8ToString(r):""},a=UTF8ToString(n),l={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(y in l)a=a.replace(new RegExp(y,"g"),l[y]);var u=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],s=["January","February","March","April","May","June","July","August","September","October","November","December"];function d(e,i,n){for(var t="number"==typeof e?e.toString():e||"";t.length<i;)t=n[0]+t;return t}function c(e,i){return d(e,i,"0")}function _(e,i){function n(e){return e<0?-1:0<e?1:0}var t;return t=0===(t=n(e.getFullYear()-i.getFullYear()))&&0===(t=n(e.getMonth()-i.getMonth()))?n(e.getDate()-i.getDate()):t}function f(e){switch(e.getDay()){case 0:return new Date(e.getFullYear()-1,11,29);case 1:return e;case 2:return new Date(e.getFullYear(),0,3);case 3:return new Date(e.getFullYear(),0,2);case 4:return new Date(e.getFullYear(),0,1);case 5:return new Date(e.getFullYear()-1,11,31);case 6:return new Date(e.getFullYear()-1,11,30)}}function p(e){var i=__addDays(new Date(e.tm_year+1900,0,1),e.tm_yday),n=new Date(i.getFullYear(),0,4),e=new Date(i.getFullYear()+1,0,4),n=f(n),e=f(e);return _(n,i)<=0?_(e,i)<=0?i.getFullYear()+1:i.getFullYear():i.getFullYear()-1}var y,m={"%a":function(e){return u[e.tm_wday].substring(0,3)},"%A":function(e){return u[e.tm_wday]},"%b":function(e){return s[e.tm_mon].substring(0,3)},"%B":function(e){return s[e.tm_mon]},"%C":function(e){return c((e.tm_year+1900)/100|0,2)},"%d":function(e){return c(e.tm_mday,2)},"%e":function(e){return d(e.tm_mday,2," ")},"%g":function(e){return p(e).toString().substring(2)},"%G":p,"%H":function(e){return c(e.tm_hour,2)},"%I":function(e){e=e.tm_hour;return 0==e?e=12:12<e&&(e-=12),c(e,2)},"%j":function(e){return c(e.tm_mday+__arraySum(__isLeapYear(e.tm_year+1900)?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,e.tm_mon-1),3)},"%m":function(e){return c(e.tm_mon+1,2)},"%M":function(e){return c(e.tm_min,2)},"%n":function(){return"\n"},"%p":function(e){return 0<=e.tm_hour&&e.tm_hour<12?"AM":"PM"},"%S":function(e){return c(e.tm_sec,2)},"%t":function(){return"\t"},"%u":function(e){return e.tm_wday||7},"%U":function(e){var i=new Date(e.tm_year+1900,0,1),n=0===i.getDay()?i:__addDays(i,7-i.getDay()),t=new Date(e.tm_year+1900,e.tm_mon,e.tm_mday);if(_(n,t)<0){e=__arraySum(__isLeapYear(t.getFullYear())?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,t.getMonth()-1)-31,t=31-n.getDate()+e+t.getDate();return c(Math.ceil(t/7),2)}return 0===_(n,i)?"01":"00"},"%V":function(e){var i=new Date(e.tm_year+1900,0,4),n=new Date(e.tm_year+1901,0,4),t=f(i),i=f(n),n=__addDays(new Date(e.tm_year+1900,0,1),e.tm_yday);return _(n,t)<0?"53":_(i,n)<=0?"01":(t=t.getFullYear()<e.tm_year+1900?e.tm_yday+32-t.getDate():e.tm_yday+1-t.getDate(),c(Math.ceil(t/7),2))},"%w":function(e){return e.tm_wday},"%W":function(e){var i=new Date(e.tm_year,0,1),n=1===i.getDay()?i:__addDays(i,0===i.getDay()?1:7-i.getDay()+1),t=new Date(e.tm_year+1900,e.tm_mon,e.tm_mday);if(_(n,t)<0){e=__arraySum(__isLeapYear(t.getFullYear())?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,t.getMonth()-1)-31,t=31-n.getDate()+e+t.getDate();return c(Math.ceil(t/7),2)}return 0===_(n,i)?"01":"00"},"%y":function(e){return(e.tm_year+1900).toString().substring(2)},"%Y":function(e){return e.tm_year+1900},"%z":function(e){var i=e.tm_gmtoff,e=0<=i;return i=(i=Math.abs(i)/60)/60*100+i%60,(e?"+":"-")+String("0000"+i).slice(-4)},"%Z":function(e){return e.tm_zone},"%%":function(){return"%"}};for(y in m)0<=a.indexOf(y)&&(a=a.replace(new RegExp(y,"g"),m[y](o)));n=intArrayFromString(a,!1);return n.length>i?0:(writeArrayToMemory(n,e),n.length-1)}function _strftime_l(e,i,n,t){return _strftime(e,i,n,t)}function _time(e){var i=Date.now()/1e3|0;return e&&(HEAP32[e>>2]=i),i}var FSNode=function(e,i,n,t){this.parent=e=e||this,this.mount=e.mount,this.mounted=null,this.id=FS.nextInode++,this.name=i,this.mode=n,this.node_ops={},this.stream_ops={},this.rdev=t},readMode=365,writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(e){e?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(e){e?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}}),FS.FSNode=FSNode,FS.staticInit(),embind_init_charCodes(),BindingError=Module.BindingError=extendError(Error,"BindingError"),InternalError=Module.InternalError=extendError(Error,"InternalError"),init_ClassHandle(),init_RegisteredPointer(),init_embind(),UnboundTypeError=Module.UnboundTypeError=extendError(Error,"UnboundTypeError"),init_emval();var ASSERTIONS=!1;function intArrayFromString(e,i,n){n=0<n?n:lengthBytesUTF8(e)+1,n=new Array(n),e=stringToUTF8Array(e,n,0,n.length);return i&&(n.length=e),n}var calledRun,asmLibraryArg={__cxa_allocate_exception:___cxa_allocate_exception,__cxa_atexit:___cxa_atexit,__cxa_begin_catch:___cxa_begin_catch,__cxa_end_catch:___cxa_end_catch,__cxa_find_matching_catch_2:___cxa_find_matching_catch_2,__cxa_find_matching_catch_3:___cxa_find_matching_catch_3,__cxa_find_matching_catch_4:___cxa_find_matching_catch_4,__cxa_free_exception:___cxa_free_exception,__cxa_rethrow:___cxa_rethrow,__cxa_throw:___cxa_throw,__cxa_uncaught_exceptions:___cxa_uncaught_exceptions,__map_file:___map_file,__resumeException:___resumeException,__sys_fcntl64:___sys_fcntl64,__sys_ioctl:___sys_ioctl,__sys_munmap:___sys_munmap,__sys_open:___sys_open,_embind_register_bool:__embind_register_bool,_embind_register_class:__embind_register_class,_embind_register_class_function:__embind_register_class_function,_embind_register_emval:__embind_register_emval,_embind_register_float:__embind_register_float,_embind_register_function:__embind_register_function,_embind_register_integer:__embind_register_integer,_embind_register_memory_view:__embind_register_memory_view,_embind_register_std_string:__embind_register_std_string,_embind_register_std_wstring:__embind_register_std_wstring,_embind_register_void:__embind_register_void,_emval_as:__emval_as,_emval_call_method:__emval_call_method,_emval_call_void_method:__emval_call_void_method,_emval_decref:__emval_decref,_emval_get_method_caller:__emval_get_method_caller,_emval_get_property:__emval_get_property,_emval_incref:__emval_incref,_emval_new_cstring:__emval_new_cstring,_emval_run_destructors:__emval_run_destructors,_emval_set_property:__emval_set_property,_emval_take_value:__emval_take_value,abort:_abort,clock:_clock,emscripten_get_sbrk_ptr:_emscripten_get_sbrk_ptr,emscripten_longjmp:_emscripten_longjmp,emscripten_memcpy_big:_emscripten_memcpy_big,emscripten_resize_heap:_emscripten_resize_heap,environ_get:_environ_get,environ_sizes_get:_environ_sizes_get,fd_close:_fd_close,fd_fdstat_get:_fd_fdstat_get,fd_read:_fd_read,fd_seek:_fd_seek,fd_write:_fd_write,getTempRet0:_getTempRet0,invoke_di:invoke_di,invoke_dii:invoke_dii,invoke_diid:invoke_diid,invoke_diii:invoke_diii,invoke_diiii:invoke_diiii,invoke_diiiii:invoke_diiiii,invoke_fi:invoke_fi,invoke_fif:invoke_fif,invoke_fii:invoke_fii,invoke_fiii:invoke_fiii,invoke_fiiii:invoke_fiiii,invoke_fiiiiiff:invoke_fiiiiiff,invoke_i:invoke_i,invoke_ii:invoke_ii,invoke_iid:invoke_iid,invoke_iiddi:invoke_iiddi,invoke_iiddii:invoke_iiddii,invoke_iiddiii:invoke_iiddiii,invoke_iif:invoke_iif,invoke_iii:invoke_iii,invoke_iiii:invoke_iiii,invoke_iiiii:invoke_iiiii,invoke_iiiiid:invoke_iiiiid,invoke_iiiiii:invoke_iiiiii,invoke_iiiiiid:invoke_iiiiiid,invoke_iiiiiii:invoke_iiiiiii,invoke_iiiiiiii:invoke_iiiiiiii,invoke_iiiiiiiii:invoke_iiiiiiiii,invoke_iiiiiiiiiddiii:invoke_iiiiiiiiiddiii,invoke_iiiiiiiiii:invoke_iiiiiiiiii,invoke_iiiiiiiiiii:invoke_iiiiiiiiiii,invoke_iiiiiiiiiiii:invoke_iiiiiiiiiiii,invoke_iiiiiiiiiiiii:invoke_iiiiiiiiiiiii,invoke_iij:invoke_iij,invoke_jiiii:invoke_jiiii,invoke_v:invoke_v,invoke_vi:invoke_vi,invoke_vid:invoke_vid,invoke_vidi:invoke_vidi,invoke_vidiiiiiii:invoke_vidiiiiiii,invoke_vif:invoke_vif,invoke_viffffff:invoke_viffffff,invoke_viffi:invoke_viffi,invoke_vifii:invoke_vifii,invoke_vii:invoke_vii,invoke_viid:invoke_viid,invoke_viidddd:invoke_viidddd,invoke_viidi:invoke_viidi,invoke_viidii:invoke_viidii,invoke_viidiiiiiii:invoke_viidiiiiiii,invoke_viif:invoke_viif,invoke_viifii:invoke_viifii,invoke_viii:invoke_viii,invoke_viiid:invoke_viiid,invoke_viiidi:invoke_viiidi,invoke_viiidiiiid:invoke_viiidiiiid,invoke_viiiff:invoke_viiiff,invoke_viiii:invoke_viiii,invoke_viiiidd:invoke_viiiidd,invoke_viiiiffffiii:invoke_viiiiffffiii,invoke_viiiii:invoke_viiiii,invoke_viiiiidi:invoke_viiiiidi,invoke_viiiiii:invoke_viiiiii,invoke_viiiiiid:invoke_viiiiiid,invoke_viiiiiii:invoke_viiiiiii,invoke_viiiiiiii:invoke_viiiiiiii,invoke_viiiiiiiii:invoke_viiiiiiiii,invoke_viiiiiiiiii:invoke_viiiiiiiiii,invoke_viiiiiiiiiii:invoke_viiiiiiiiiii,invoke_viiiiiiiiiiiiiii:invoke_viiiiiiiiiiiiiii,llvm_eh_typeid_for:_llvm_eh_typeid_for,localtime:_localtime,memory:wasmMemory,pthread_mutexattr_destroy:_pthread_mutexattr_destroy,pthread_mutexattr_init:_pthread_mutexattr_init,pthread_mutexattr_settype:_pthread_mutexattr_settype,round:_round,setTempRet0:_setTempRet0,strftime_l:_strftime_l,table:wasmTable,time:_time},asm=createWasm(),___wasm_call_ctors=Module.___wasm_call_ctors=function(){return(___wasm_call_ctors=Module.___wasm_call_ctors=Module.asm.__wasm_call_ctors).apply(null,arguments)},_malloc=Module._malloc=function(){return(_malloc=Module._malloc=Module.asm.malloc).apply(null,arguments)},_free=Module._free=function(){return(_free=Module._free=Module.asm.free).apply(null,arguments)},_realloc=Module._realloc=function(){return(_realloc=Module._realloc=Module.asm.realloc).apply(null,arguments)},___errno_location=Module.___errno_location=function(){return(___errno_location=Module.___errno_location=Module.asm.__errno_location).apply(null,arguments)},_testSetjmp=Module._testSetjmp=function(){return(_testSetjmp=Module._testSetjmp=Module.asm.testSetjmp).apply(null,arguments)},_saveSetjmp=Module._saveSetjmp=function(){return(_saveSetjmp=Module._saveSetjmp=Module.asm.saveSetjmp).apply(null,arguments)},___getTypeName=Module.___getTypeName=function(){return(___getTypeName=Module.___getTypeName=Module.asm.__getTypeName).apply(null,arguments)},___embind_register_native_and_builtin_types=Module.___embind_register_native_and_builtin_types=function(){return(___embind_register_native_and_builtin_types=Module.___embind_register_native_and_builtin_types=Module.asm.__embind_register_native_and_builtin_types).apply(null,arguments)},__get_tzname=Module.__get_tzname=function(){return(__get_tzname=Module.__get_tzname=Module.asm._get_tzname).apply(null,arguments)},__get_daylight=Module.__get_daylight=function(){return(__get_daylight=Module.__get_daylight=Module.asm._get_daylight).apply(null,arguments)},__get_timezone=Module.__get_timezone=function(){return(__get_timezone=Module.__get_timezone=Module.asm._get_timezone).apply(null,arguments)},_setThrew=Module._setThrew=function(){return(_setThrew=Module._setThrew=Module.asm.setThrew).apply(null,arguments)},stackSave=Module.stackSave=function(){return(stackSave=Module.stackSave=Module.asm.stackSave).apply(null,arguments)},stackRestore=Module.stackRestore=function(){return(stackRestore=Module.stackRestore=Module.asm.stackRestore).apply(null,arguments)},stackAlloc=Module.stackAlloc=function(){return(stackAlloc=Module.stackAlloc=Module.asm.stackAlloc).apply(null,arguments)},__ZSt18uncaught_exceptionv=Module.__ZSt18uncaught_exceptionv=function(){return(__ZSt18uncaught_exceptionv=Module.__ZSt18uncaught_exceptionv=Module.asm._ZSt18uncaught_exceptionv).apply(null,arguments)},___cxa_can_catch=Module.___cxa_can_catch=function(){return(___cxa_can_catch=Module.___cxa_can_catch=Module.asm.__cxa_can_catch).apply(null,arguments)},___cxa_is_pointer_type=Module.___cxa_is_pointer_type=function(){return(___cxa_is_pointer_type=Module.___cxa_is_pointer_type=Module.asm.__cxa_is_pointer_type).apply(null,arguments)},dynCall_v=Module.dynCall_v=function(){return(dynCall_v=Module.dynCall_v=Module.asm.dynCall_v).apply(null,arguments)},dynCall_vi=Module.dynCall_vi=function(){return(dynCall_vi=Module.dynCall_vi=Module.asm.dynCall_vi).apply(null,arguments)},dynCall_vii=Module.dynCall_vii=function(){return(dynCall_vii=Module.dynCall_vii=Module.asm.dynCall_vii).apply(null,arguments)},dynCall_viii=Module.dynCall_viii=function(){return(dynCall_viii=Module.dynCall_viii=Module.asm.dynCall_viii).apply(null,arguments)},dynCall_viiii=Module.dynCall_viiii=function(){return(dynCall_viiii=Module.dynCall_viiii=Module.asm.dynCall_viiii).apply(null,arguments)},dynCall_viiiii=Module.dynCall_viiiii=function(){return(dynCall_viiiii=Module.dynCall_viiiii=Module.asm.dynCall_viiiii).apply(null,arguments)},dynCall_viiiiii=Module.dynCall_viiiiii=function(){return(dynCall_viiiiii=Module.dynCall_viiiiii=Module.asm.dynCall_viiiiii).apply(null,arguments)},dynCall_viiiiiii=Module.dynCall_viiiiiii=function(){return(dynCall_viiiiiii=Module.dynCall_viiiiiii=Module.asm.dynCall_viiiiiii).apply(null,arguments)},dynCall_viiiiiiii=Module.dynCall_viiiiiiii=function(){return(dynCall_viiiiiiii=Module.dynCall_viiiiiiii=Module.asm.dynCall_viiiiiiii).apply(null,arguments)},dynCall_viiiiiiiii=Module.dynCall_viiiiiiiii=function(){return(dynCall_viiiiiiiii=Module.dynCall_viiiiiiiii=Module.asm.dynCall_viiiiiiiii).apply(null,arguments)},dynCall_viiiiiiiiii=Module.dynCall_viiiiiiiiii=function(){return(dynCall_viiiiiiiiii=Module.dynCall_viiiiiiiiii=Module.asm.dynCall_viiiiiiiiii).apply(null,arguments)},dynCall_viiiiiiiiiii=Module.dynCall_viiiiiiiiiii=function(){return(dynCall_viiiiiiiiiii=Module.dynCall_viiiiiiiiiii=Module.asm.dynCall_viiiiiiiiiii).apply(null,arguments)},dynCall_viiiiiiiiiiiiiii=Module.dynCall_viiiiiiiiiiiiiii=function(){return(dynCall_viiiiiiiiiiiiiii=Module.dynCall_viiiiiiiiiiiiiii=Module.asm.dynCall_viiiiiiiiiiiiiii).apply(null,arguments)},dynCall_viiiiiid=Module.dynCall_viiiiiid=function(){return(dynCall_viiiiiid=Module.dynCall_viiiiiid=Module.asm.dynCall_viiiiiid).apply(null,arguments)},dynCall_viiiiidi=Module.dynCall_viiiiidi=function(){return(dynCall_viiiiidi=Module.dynCall_viiiiidi=Module.asm.dynCall_viiiiidi).apply(null,arguments)},dynCall_viiiiffffiii=Module.dynCall_viiiiffffiii=function(){return(dynCall_viiiiffffiii=Module.dynCall_viiiiffffiii=Module.asm.dynCall_viiiiffffiii).apply(null,arguments)},dynCall_viiiidd=Module.dynCall_viiiidd=function(){return(dynCall_viiiidd=Module.dynCall_viiiidd=Module.asm.dynCall_viiiidd).apply(null,arguments)},dynCall_viiiff=Module.dynCall_viiiff=function(){return(dynCall_viiiff=Module.dynCall_viiiff=Module.asm.dynCall_viiiff).apply(null,arguments)},dynCall_viiid=Module.dynCall_viiid=function(){return(dynCall_viiid=Module.dynCall_viiid=Module.asm.dynCall_viiid).apply(null,arguments)},dynCall_viiidi=Module.dynCall_viiidi=function(){return(dynCall_viiidi=Module.dynCall_viiidi=Module.asm.dynCall_viiidi).apply(null,arguments)},dynCall_viiidiiiid=Module.dynCall_viiidiiiid=function(){return(dynCall_viiidiiiid=Module.dynCall_viiidiiiid=Module.asm.dynCall_viiidiiiid).apply(null,arguments)},dynCall_viif=Module.dynCall_viif=function(){return(dynCall_viif=Module.dynCall_viif=Module.asm.dynCall_viif).apply(null,arguments)},dynCall_viifii=Module.dynCall_viifii=function(){return(dynCall_viifii=Module.dynCall_viifii=Module.asm.dynCall_viifii).apply(null,arguments)},dynCall_viid=Module.dynCall_viid=function(){return(dynCall_viid=Module.dynCall_viid=Module.asm.dynCall_viid).apply(null,arguments)},dynCall_viidi=Module.dynCall_viidi=function(){return(dynCall_viidi=Module.dynCall_viidi=Module.asm.dynCall_viidi).apply(null,arguments)},dynCall_viidii=Module.dynCall_viidii=function(){return(dynCall_viidii=Module.dynCall_viidii=Module.asm.dynCall_viidii).apply(null,arguments)},dynCall_viidiiiiiii=Module.dynCall_viidiiiiiii=function(){return(dynCall_viidiiiiiii=Module.dynCall_viidiiiiiii=Module.asm.dynCall_viidiiiiiii).apply(null,arguments)},dynCall_viidddd=Module.dynCall_viidddd=function(){return(dynCall_viidddd=Module.dynCall_viidddd=Module.asm.dynCall_viidddd).apply(null,arguments)},dynCall_vif=Module.dynCall_vif=function(){return(dynCall_vif=Module.dynCall_vif=Module.asm.dynCall_vif).apply(null,arguments)},dynCall_vifii=Module.dynCall_vifii=function(){return(dynCall_vifii=Module.dynCall_vifii=Module.asm.dynCall_vifii).apply(null,arguments)},dynCall_viffi=Module.dynCall_viffi=function(){return(dynCall_viffi=Module.dynCall_viffi=Module.asm.dynCall_viffi).apply(null,arguments)},dynCall_viffffff=Module.dynCall_viffffff=function(){return(dynCall_viffffff=Module.dynCall_viffffff=Module.asm.dynCall_viffffff).apply(null,arguments)},dynCall_vid=Module.dynCall_vid=function(){return(dynCall_vid=Module.dynCall_vid=Module.asm.dynCall_vid).apply(null,arguments)},dynCall_vidi=Module.dynCall_vidi=function(){return(dynCall_vidi=Module.dynCall_vidi=Module.asm.dynCall_vidi).apply(null,arguments)},dynCall_vidiiiiiii=Module.dynCall_vidiiiiiii=function(){return(dynCall_vidiiiiiii=Module.dynCall_vidiiiiiii=Module.asm.dynCall_vidiiiiiii).apply(null,arguments)},dynCall_i=Module.dynCall_i=function(){return(dynCall_i=Module.dynCall_i=Module.asm.dynCall_i).apply(null,arguments)},dynCall_ii=Module.dynCall_ii=function(){return(dynCall_ii=Module.dynCall_ii=Module.asm.dynCall_ii).apply(null,arguments)},dynCall_iii=Module.dynCall_iii=function(){return(dynCall_iii=Module.dynCall_iii=Module.asm.dynCall_iii).apply(null,arguments)},dynCall_iiii=Module.dynCall_iiii=function(){return(dynCall_iiii=Module.dynCall_iiii=Module.asm.dynCall_iiii).apply(null,arguments)},dynCall_iiiii=Module.dynCall_iiiii=function(){return(dynCall_iiiii=Module.dynCall_iiiii=Module.asm.dynCall_iiiii).apply(null,arguments)},dynCall_iiiiii=Module.dynCall_iiiiii=function(){return(dynCall_iiiiii=Module.dynCall_iiiiii=Module.asm.dynCall_iiiiii).apply(null,arguments)},dynCall_iiiiiii=Module.dynCall_iiiiiii=function(){return(dynCall_iiiiiii=Module.dynCall_iiiiiii=Module.asm.dynCall_iiiiiii).apply(null,arguments)},dynCall_iiiiiiii=Module.dynCall_iiiiiiii=function(){return(dynCall_iiiiiiii=Module.dynCall_iiiiiiii=Module.asm.dynCall_iiiiiiii).apply(null,arguments)},dynCall_iiiiiiiii=Module.dynCall_iiiiiiiii=function(){return(dynCall_iiiiiiiii=Module.dynCall_iiiiiiiii=Module.asm.dynCall_iiiiiiiii).apply(null,arguments)},dynCall_iiiiiiiiii=Module.dynCall_iiiiiiiiii=function(){return(dynCall_iiiiiiiiii=Module.dynCall_iiiiiiiiii=Module.asm.dynCall_iiiiiiiiii).apply(null,arguments)},dynCall_iiiiiiiiiii=Module.dynCall_iiiiiiiiiii=function(){return(dynCall_iiiiiiiiiii=Module.dynCall_iiiiiiiiiii=Module.asm.dynCall_iiiiiiiiiii).apply(null,arguments)},dynCall_iiiiiiiiiiii=Module.dynCall_iiiiiiiiiiii=function(){return(dynCall_iiiiiiiiiiii=Module.dynCall_iiiiiiiiiiii=Module.asm.dynCall_iiiiiiiiiiii).apply(null,arguments)},dynCall_iiiiiiiiiiiii=Module.dynCall_iiiiiiiiiiiii=function(){return(dynCall_iiiiiiiiiiiii=Module.dynCall_iiiiiiiiiiiii=Module.asm.dynCall_iiiiiiiiiiiii).apply(null,arguments)},dynCall_iiiiiiiiiddiii=Module.dynCall_iiiiiiiiiddiii=function(){return(dynCall_iiiiiiiiiddiii=Module.dynCall_iiiiiiiiiddiii=Module.asm.dynCall_iiiiiiiiiddiii).apply(null,arguments)},dynCall_iiiiiid=Module.dynCall_iiiiiid=function(){return(dynCall_iiiiiid=Module.dynCall_iiiiiid=Module.asm.dynCall_iiiiiid).apply(null,arguments)},dynCall_iiiiid=Module.dynCall_iiiiid=function(){return(dynCall_iiiiid=Module.dynCall_iiiiid=Module.asm.dynCall_iiiiid).apply(null,arguments)},dynCall_iij=Module.dynCall_iij=function(){return(dynCall_iij=Module.dynCall_iij=Module.asm.dynCall_iij).apply(null,arguments)},dynCall_iif=Module.dynCall_iif=function(){return(dynCall_iif=Module.dynCall_iif=Module.asm.dynCall_iif).apply(null,arguments)},dynCall_iid=Module.dynCall_iid=function(){return(dynCall_iid=Module.dynCall_iid=Module.asm.dynCall_iid).apply(null,arguments)},dynCall_iiddi=Module.dynCall_iiddi=function(){return(dynCall_iiddi=Module.dynCall_iiddi=Module.asm.dynCall_iiddi).apply(null,arguments)},dynCall_iiddii=Module.dynCall_iiddii=function(){return(dynCall_iiddii=Module.dynCall_iiddii=Module.asm.dynCall_iiddii).apply(null,arguments)},dynCall_iiddiii=Module.dynCall_iiddiii=function(){return(dynCall_iiddiii=Module.dynCall_iiddiii=Module.asm.dynCall_iiddiii).apply(null,arguments)},dynCall_jiiii=Module.dynCall_jiiii=function(){return(dynCall_jiiii=Module.dynCall_jiiii=Module.asm.dynCall_jiiii).apply(null,arguments)},dynCall_fi=Module.dynCall_fi=function(){return(dynCall_fi=Module.dynCall_fi=Module.asm.dynCall_fi).apply(null,arguments)},dynCall_fii=Module.dynCall_fii=function(){return(dynCall_fii=Module.dynCall_fii=Module.asm.dynCall_fii).apply(null,arguments)},dynCall_fiii=Module.dynCall_fiii=function(){return(dynCall_fiii=Module.dynCall_fiii=Module.asm.dynCall_fiii).apply(null,arguments)},dynCall_fiiii=Module.dynCall_fiiii=function(){return(dynCall_fiiii=Module.dynCall_fiiii=Module.asm.dynCall_fiiii).apply(null,arguments)},dynCall_fiiiiiff=Module.dynCall_fiiiiiff=function(){return(dynCall_fiiiiiff=Module.dynCall_fiiiiiff=Module.asm.dynCall_fiiiiiff).apply(null,arguments)},dynCall_fif=Module.dynCall_fif=function(){return(dynCall_fif=Module.dynCall_fif=Module.asm.dynCall_fif).apply(null,arguments)},dynCall_di=Module.dynCall_di=function(){return(dynCall_di=Module.dynCall_di=Module.asm.dynCall_di).apply(null,arguments)},dynCall_dii=Module.dynCall_dii=function(){return(dynCall_dii=Module.dynCall_dii=Module.asm.dynCall_dii).apply(null,arguments)},dynCall_diii=Module.dynCall_diii=function(){return(dynCall_diii=Module.dynCall_diii=Module.asm.dynCall_diii).apply(null,arguments)},dynCall_diiii=Module.dynCall_diiii=function(){return(dynCall_diiii=Module.dynCall_diiii=Module.asm.dynCall_diiii).apply(null,arguments)},dynCall_diiiii=Module.dynCall_diiiii=function(){return(dynCall_diiiii=Module.dynCall_diiiii=Module.asm.dynCall_diiiii).apply(null,arguments)},dynCall_diid=Module.dynCall_diid=function(){return(dynCall_diid=Module.dynCall_diid=Module.asm.dynCall_diid).apply(null,arguments)},__growWasmMemory=Module.__growWasmMemory=function(){return(__growWasmMemory=Module.__growWasmMemory=Module.asm.__growWasmMemory).apply(null,arguments)},dynCall_iiidi=Module.dynCall_iiidi=function(){return(dynCall_iiidi=Module.dynCall_iiidi=Module.asm.dynCall_iiidi).apply(null,arguments)},dynCall_viijii=Module.dynCall_viijii=function(){return(dynCall_viijii=Module.dynCall_viijii=Module.asm.dynCall_viijii).apply(null,arguments)},dynCall_viiddd=Module.dynCall_viiddd=function(){return(dynCall_viiddd=Module.dynCall_viiddd=Module.asm.dynCall_viiddd).apply(null,arguments)},dynCall_viiiidi=Module.dynCall_viiiidi=function(){return(dynCall_viiiidi=Module.dynCall_viiiidi=Module.asm.dynCall_viiiidi).apply(null,arguments)},dynCall_iiiiiiiiiiiiiiiii=Module.dynCall_iiiiiiiiiiiiiiiii=function(){return(dynCall_iiiiiiiiiiiiiiiii=Module.dynCall_iiiiiiiiiiiiiiiii=Module.asm.dynCall_iiiiiiiiiiiiiiiii).apply(null,arguments)},dynCall_iiiiiiiiiiiiiiiiii=Module.dynCall_iiiiiiiiiiiiiiiiii=function(){return(dynCall_iiiiiiiiiiiiiiiiii=Module.dynCall_iiiiiiiiiiiiiiiiii=Module.asm.dynCall_iiiiiiiiiiiiiiiiii).apply(null,arguments)},dynCall_jiji=Module.dynCall_jiji=function(){return(dynCall_jiji=Module.dynCall_jiji=Module.asm.dynCall_jiji).apply(null,arguments)},dynCall_iidiiii=Module.dynCall_iidiiii=function(){return(dynCall_iidiiii=Module.dynCall_iidiiii=Module.asm.dynCall_iidiiii).apply(null,arguments)},dynCall_iiiiij=Module.dynCall_iiiiij=function(){return(dynCall_iiiiij=Module.dynCall_iiiiij=Module.asm.dynCall_iiiiij).apply(null,arguments)},dynCall_iiiiijj=Module.dynCall_iiiiijj=function(){return(dynCall_iiiiijj=Module.dynCall_iiiiijj=Module.asm.dynCall_iiiiijj).apply(null,arguments)},dynCall_iiiiiijj=Module.dynCall_iiiiiijj=function(){return(dynCall_iiiiiijj=Module.dynCall_iiiiiijj=Module.asm.dynCall_iiiiiijj).apply(null,arguments)};function invoke_viiii(e,i,n,t,r){var o=stackSave();try{dynCall_viiii(e,i,n,t,r)}catch(e){if(stackRestore(o),e!==e+0&&"longjmp"!==e)throw e;_setThrew(1,0)}}function invoke_ii(e,i){var n=stackSave();try{return dynCall_ii(e,i)}catch(e){if(stackRestore(n),e!==e+0&&"longjmp"!==e)throw e;_setThrew(1,0)}}function invoke_iii(e,i,n){var t=stackSave();try{return dynCall_iii(e,i,n)}catch(e){if(stackRestore(t),e!==e+0&&"longjmp"!==e)throw e;_setThrew(1,0)}}function invoke_vi(e,i){var n=stackSave();try{dynCall_vi(e,i)}catch(e){if(stackRestore(n),e!==e+0&&"longjmp"!==e)throw e;_setThrew(1,0)}}function invoke_diii(e,i,n,t){var r=stackSave();try{return dynCall_diii(e,i,n,t)}catch(e){if(stackRestore(r),e!==e+0&&"longjmp"!==e)throw e;_setThrew(1,0)}}function invoke_iiiiii(e,i,n,t,r,o){var a=stackSave();try{return dynCall_iiiiii(e,i,n,t,r,o)}catch(e){if(stackRestore(a),e!==e+0&&"longjmp"!==e)throw e;_setThrew(1,0)}}function invoke_vii(e,i,n){var t=stackSave();try{dynCall_vii(e,i,n)}catch(e){if(stackRestore(t),e!==e+0&&"longjmp"!==e)throw e;_setThrew(1,0)}}function invoke_viiiiiiiii(e,i,n,t,r,o,a,l,u,s){var d=stackSave();try{dynCall_viiiiiiiii(e,i,n,t,r,o,a,l,u,s)}catch(e){if(stackRestore(d),e!==e+0&&"longjmp"!==e)throw e;_setThrew(1,0)}}function invoke_viiiiiii(e,i,n,t,r,o,a,l){var u=stackSave();try{dynCall_viiiiiii(e,i,n,t,r,o,a,l)}catch(e){if(stackRestore(u),e!==e+0&&"longjmp"!==e)throw e;_setThrew(1,0)}}function invoke_viii(e,i,n,t){var r=stackSave();try{dynCall_viii(e,i,n,t)}catch(e){if(stackRestore(r),e!==e+0&&"longjmp"!==e)throw e;_setThrew(1,0)}}function invoke_viiiii(e,i,n,t,r,o){var a=stackSave();try{dynCall_viiiii(e,i,n,t,r,o)}catch(e){if(stackRestore(a),e!==e+0&&"longjmp"!==e)throw e;_setThrew(1,0)}}function invoke_iiiiiii(e,i,n,t,r,o,a){var l=stackSave();try{return dynCall_iiiiiii(e,i,n,t,r,o,a)}catch(e){if(stackRestore(l),e!==e+0&&"longjmp"!==e)throw e;_setThrew(1,0)}}function invoke_iiiii(e,i,n,t,r){var o=stackSave();try{return dynCall_iiiii(e,i,n,t,r)}catch(e){if(stackRestore(o),e!==e+0&&"longjmp"!==e)throw e;_setThrew(1,0)}}function invoke_iiii(e,i,n,t){var r=stackSave();try{return dynCall_iiii(e,i,n,t)}catch(e){if(stackRestore(r),e!==e+0&&"longjmp"!==e)throw e;_setThrew(1,0)}}function invoke_dii(e,i,n){var t=stackSave();try{return dynCall_dii(e,i,n)}catch(e){if(stackRestore(t),e!==e+0&&"longjmp"!==e)throw e;_setThrew(1,0)}}function invoke_viiiiii(e,i,n,t,r,o,a){var l=stackSave();try{dynCall_viiiiii(e,i,n,t,r,o,a)}catch(e){if(stackRestore(l),e!==e+0&&"longjmp"!==e)throw e;_setThrew(1,0)}}function invoke_iiiiiiiiii(e,i,n,t,r,o,a,l,u,s){var d=stackSave();try{return dynCall_iiiiiiiiii(e,i,n,t,r,o,a,l,u,s)}catch(e){if(stackRestore(d),e!==e+0&&"longjmp"!==e)throw e;_setThrew(1,0)}}function invoke_viidi(e,i,n,t,r){var o=stackSave();try{dynCall_viidi(e,i,n,t,r)}catch(e){if(stackRestore(o),e!==e+0&&"longjmp"!==e)throw e;_setThrew(1,0)}}function invoke_v(e){var i=stackSave();try{dynCall_v(e)}catch(e){if(stackRestore(i),e!==e+0&&"longjmp"!==e)throw e;_setThrew(1,0)}}function invoke_iid(e,i,n){var t=stackSave();try{return dynCall_iid(e,i,n)}catch(e){if(stackRestore(t),e!==e+0&&"longjmp"!==e)throw e;_setThrew(1,0)}}function invoke_iif(e,i,n){var t=stackSave();try{return dynCall_iif(e,i,n)}catch(e){if(stackRestore(t),e!==e+0&&"longjmp"!==e)throw e;_setThrew(1,0)}}function invoke_i(e){var i=stackSave();try{return dynCall_i(e)}catch(e){if(stackRestore(i),e!==e+0&&"longjmp"!==e)throw e;_setThrew(1,0)}}function invoke_iiiiiiii(e,i,n,t,r,o,a,l){var u=stackSave();try{return dynCall_iiiiiiii(e,i,n,t,r,o,a,l)}catch(e){if(stackRestore(u),e!==e+0&&"longjmp"!==e)throw e;_setThrew(1,0)}}function invoke_viidddd(e,i,n,t,r,o,a){var l=stackSave();try{dynCall_viidddd(e,i,n,t,r,o,a)}catch(e){if(stackRestore(l),e!==e+0&&"longjmp"!==e)throw e;_setThrew(1,0)}}function invoke_viid(e,i,n,t){var r=stackSave();try{dynCall_viid(e,i,n,t)}catch(e){if(stackRestore(r),e!==e+0&&"longjmp"!==e)throw e;_setThrew(1,0)}}function invoke_di(e,i){var n=stackSave();try{return dynCall_di(e,i)}catch(e){if(stackRestore(n),e!==e+0&&"longjmp"!==e)throw e;_setThrew(1,0)}}function invoke_vid(e,i,n){var t=stackSave();try{dynCall_vid(e,i,n)}catch(e){if(stackRestore(t),e!==e+0&&"longjmp"!==e)throw e;_setThrew(1,0)}}function invoke_viiiiiiii(e,i,n,t,r,o,a,l,u){var s=stackSave();try{dynCall_viiiiiiii(e,i,n,t,r,o,a,l,u)}catch(e){if(stackRestore(s),e!==e+0&&"longjmp"!==e)throw e;_setThrew(1,0)}}function invoke_viiidiiiid(e,i,n,t,r,o,a,l,u,s){var d=stackSave();try{dynCall_viiidiiiid(e,i,n,t,r,o,a,l,u,s)}catch(e){if(stackRestore(d),e!==e+0&&"longjmp"!==e)throw e;_setThrew(1,0)}}function invoke_viiiiidi(e,i,n,t,r,o,a,l){var u=stackSave();try{dynCall_viiiiidi(e,i,n,t,r,o,a,l)}catch(e){if(stackRestore(u),e!==e+0&&"longjmp"!==e)throw e;_setThrew(1,0)}}function invoke_viiiidd(e,i,n,t,r,o,a){var l=stackSave();try{dynCall_viiiidd(e,i,n,t,r,o,a)}catch(e){if(stackRestore(l),e!==e+0&&"longjmp"!==e)throw e;_setThrew(1,0)}}function invoke_viiidi(e,i,n,t,r,o){var a=stackSave();try{dynCall_viiidi(e,i,n,t,r,o)}catch(e){if(stackRestore(a),e!==e+0&&"longjmp"!==e)throw e;_setThrew(1,0)}}function invoke_viidiiiiiii(e,i,n,t,r,o,a,l,u,s,d){var c=stackSave();try{dynCall_viidiiiiiii(e,i,n,t,r,o,a,l,u,s,d)}catch(e){if(stackRestore(c),e!==e+0&&"longjmp"!==e)throw e;_setThrew(1,0)}}function invoke_viiiiiid(e,i,n,t,r,o,a,l){var u=stackSave();try{dynCall_viiiiiid(e,i,n,t,r,o,a,l)}catch(e){if(stackRestore(u),e!==e+0&&"longjmp"!==e)throw e;_setThrew(1,0)}}function invoke_vidiiiiiii(e,i,n,t,r,o,a,l,u,s){var d=stackSave();try{dynCall_vidiiiiiii(e,i,n,t,r,o,a,l,u,s)}catch(e){if(stackRestore(d),e!==e+0&&"longjmp"!==e)throw e;_setThrew(1,0)}}function invoke_iiiiiid(e,i,n,t,r,o,a){var l=stackSave();try{return dynCall_iiiiiid(e,i,n,t,r,o,a)}catch(e){if(stackRestore(l),e!==e+0&&"longjmp"!==e)throw e;_setThrew(1,0)}}function invoke_viiiff(e,i,n,t,r,o){var a=stackSave();try{dynCall_viiiff(e,i,n,t,r,o)}catch(e){if(stackRestore(a),e!==e+0&&"longjmp"!==e)throw e;_setThrew(1,0)}}function invoke_iiddii(e,i,n,t,r,o){var a=stackSave();try{return dynCall_iiddii(e,i,n,t,r,o)}catch(e){if(stackRestore(a),e!==e+0&&"longjmp"!==e)throw e;_setThrew(1,0)}}function invoke_iiddiii(e,i,n,t,r,o,a){var l=stackSave();try{return dynCall_iiddiii(e,i,n,t,r,o,a)}catch(e){if(stackRestore(l),e!==e+0&&"longjmp"!==e)throw e;_setThrew(1,0)}}function invoke_viiiiiiiiii(e,i,n,t,r,o,a,l,u,s,d){var c=stackSave();try{dynCall_viiiiiiiiii(e,i,n,t,r,o,a,l,u,s,d)}catch(e){if(stackRestore(c),e!==e+0&&"longjmp"!==e)throw e;_setThrew(1,0)}}function invoke_fii(e,i,n){var t=stackSave();try{return dynCall_fii(e,i,n)}catch(e){if(stackRestore(t),e!==e+0&&"longjmp"!==e)throw e;_setThrew(1,0)}}function invoke_iiddi(e,i,n,t,r){var o=stackSave();try{return dynCall_iiddi(e,i,n,t,r)}catch(e){if(stackRestore(o),e!==e+0&&"longjmp"!==e)throw e;_setThrew(1,0)}}function invoke_viidii(e,i,n,t,r,o){var a=stackSave();try{dynCall_viidii(e,i,n,t,r,o)}catch(e){if(stackRestore(a),e!==e+0&&"longjmp"!==e)throw e;_setThrew(1,0)}}function invoke_viiid(e,i,n,t,r){var o=stackSave();try{dynCall_viiid(e,i,n,t,r)}catch(e){if(stackRestore(o),e!==e+0&&"longjmp"!==e)throw e;_setThrew(1,0)}}function invoke_diid(e,i,n,t){var r=stackSave();try{return dynCall_diid(e,i,n,t)}catch(e){if(stackRestore(r),e!==e+0&&"longjmp"!==e)throw e;_setThrew(1,0)}}function invoke_iiiiiiiii(e,i,n,t,r,o,a,l,u){var s=stackSave();try{return dynCall_iiiiiiiii(e,i,n,t,r,o,a,l,u)}catch(e){if(stackRestore(s),e!==e+0&&"longjmp"!==e)throw e;_setThrew(1,0)}}function invoke_viiiiiiiiiiiiiii(e,i,n,t,r,o,a,l,u,s,d,c,_,f,p,y){var m=stackSave();try{dynCall_viiiiiiiiiiiiiii(e,i,n,t,r,o,a,l,u,s,d,c,_,f,p,y)}catch(e){if(stackRestore(m),e!==e+0&&"longjmp"!==e)throw e;_setThrew(1,0)}}function invoke_iiiiiiiiiddiii(e,i,n,t,r,o,a,l,u,s,d,c,_,f){var p=stackSave();try{return dynCall_iiiiiiiiiddiii(e,i,n,t,r,o,a,l,u,s,d,c,_,f)}catch(e){if(stackRestore(p),e!==e+0&&"longjmp"!==e)throw e;_setThrew(1,0)}}function invoke_vidi(e,i,n,t){var r=stackSave();try{dynCall_vidi(e,i,n,t)}catch(e){if(stackRestore(r),e!==e+0&&"longjmp"!==e)throw e;_setThrew(1,0)}}function invoke_diiii(e,i,n,t,r){var o=stackSave();try{return dynCall_diiii(e,i,n,t,r)}catch(e){if(stackRestore(o),e!==e+0&&"longjmp"!==e)throw e;_setThrew(1,0)}}function invoke_diiiii(e,i,n,t,r,o){var a=stackSave();try{return dynCall_diiiii(e,i,n,t,r,o)}catch(e){if(stackRestore(a),e!==e+0&&"longjmp"!==e)throw e;_setThrew(1,0)}}function invoke_viif(e,i,n,t){var r=stackSave();try{dynCall_viif(e,i,n,t)}catch(e){if(stackRestore(r),e!==e+0&&"longjmp"!==e)throw e;_setThrew(1,0)}}function invoke_fiiii(e,i,n,t,r){var o=stackSave();try{return dynCall_fiiii(e,i,n,t,r)}catch(e){if(stackRestore(o),e!==e+0&&"longjmp"!==e)throw e;_setThrew(1,0)}}function invoke_fi(e,i){var n=stackSave();try{return dynCall_fi(e,i)}catch(e){if(stackRestore(n),e!==e+0&&"longjmp"!==e)throw e;_setThrew(1,0)}}function invoke_vif(e,i,n){var t=stackSave();try{dynCall_vif(e,i,n)}catch(e){if(stackRestore(t),e!==e+0&&"longjmp"!==e)throw e;_setThrew(1,0)}}function invoke_viffi(e,i,n,t,r){var o=stackSave();try{dynCall_viffi(e,i,n,t,r)}catch(e){if(stackRestore(o),e!==e+0&&"longjmp"!==e)throw e;_setThrew(1,0)}}function invoke_viiiiffffiii(e,i,n,t,r,o,a,l,u,s,d,c){var _=stackSave();try{dynCall_viiiiffffiii(e,i,n,t,r,o,a,l,u,s,d,c)}catch(e){if(stackRestore(_),e!==e+0&&"longjmp"!==e)throw e;_setThrew(1,0)}}function invoke_viffffff(e,i,n,t,r,o,a,l){var u=stackSave();try{dynCall_viffffff(e,i,n,t,r,o,a,l)}catch(e){if(stackRestore(u),e!==e+0&&"longjmp"!==e)throw e;_setThrew(1,0)}}function invoke_fif(e,i,n){var t=stackSave();try{return dynCall_fif(e,i,n)}catch(e){if(stackRestore(t),e!==e+0&&"longjmp"!==e)throw e;_setThrew(1,0)}}function invoke_vifii(e,i,n,t,r){var o=stackSave();try{dynCall_vifii(e,i,n,t,r)}catch(e){if(stackRestore(o),e!==e+0&&"longjmp"!==e)throw e;_setThrew(1,0)}}function invoke_fiiiiiff(e,i,n,t,r,o,a,l){var u=stackSave();try{return dynCall_fiiiiiff(e,i,n,t,r,o,a,l)}catch(e){if(stackRestore(u),e!==e+0&&"longjmp"!==e)throw e;_setThrew(1,0)}}function invoke_viifii(e,i,n,t,r,o){var a=stackSave();try{dynCall_viifii(e,i,n,t,r,o)}catch(e){if(stackRestore(a),e!==e+0&&"longjmp"!==e)throw e;_setThrew(1,0)}}function invoke_viiiiiiiiiii(e,i,n,t,r,o,a,l,u,s,d,c){var _=stackSave();try{dynCall_viiiiiiiiiii(e,i,n,t,r,o,a,l,u,s,d,c)}catch(e){if(stackRestore(_),e!==e+0&&"longjmp"!==e)throw e;_setThrew(1,0)}}function invoke_iiiiid(e,i,n,t,r,o){var a=stackSave();try{return dynCall_iiiiid(e,i,n,t,r,o)}catch(e){if(stackRestore(a),e!==e+0&&"longjmp"!==e)throw e;_setThrew(1,0)}}function invoke_iiiiiiiiiii(e,i,n,t,r,o,a,l,u,s,d){var c=stackSave();try{return dynCall_iiiiiiiiiii(e,i,n,t,r,o,a,l,u,s,d)}catch(e){if(stackRestore(c),e!==e+0&&"longjmp"!==e)throw e;_setThrew(1,0)}}function invoke_iiiiiiiiiiiii(e,i,n,t,r,o,a,l,u,s,d,c,_){var f=stackSave();try{return dynCall_iiiiiiiiiiiii(e,i,n,t,r,o,a,l,u,s,d,c,_)}catch(e){if(stackRestore(f),e!==e+0&&"longjmp"!==e)throw e;_setThrew(1,0)}}function invoke_fiii(e,i,n,t){var r=stackSave();try{return dynCall_fiii(e,i,n,t)}catch(e){if(stackRestore(r),e!==e+0&&"longjmp"!==e)throw e;_setThrew(1,0)}}function invoke_iiiiiiiiiiii(e,i,n,t,r,o,a,l,u,s,d,c){var _=stackSave();try{return dynCall_iiiiiiiiiiii(e,i,n,t,r,o,a,l,u,s,d,c)}catch(e){if(stackRestore(_),e!==e+0&&"longjmp"!==e)throw e;_setThrew(1,0)}}function invoke_iij(e,i,n,t){var r=stackSave();try{return dynCall_iij(e,i,n,t)}catch(e){if(stackRestore(r),e!==e+0&&"longjmp"!==e)throw e;_setThrew(1,0)}}function invoke_jiiii(e,i,n,t,r){var o=stackSave();try{return dynCall_jiiii(e,i,n,t,r)}catch(e){if(stackRestore(o),e!==e+0&&"longjmp"!==e)throw e;_setThrew(1,0)}}function ExitStatus(e){this.name="ExitStatus",this.message="Program terminated with exit("+e+")",this.status=e}function run(e){function i(){calledRun||(calledRun=!0,Module.calledRun=!0,ABORT||(initRuntime(),preMain(),Module.onRuntimeInitialized&&Module.onRuntimeInitialized(),postRun()))}0<runDependencies||(preRun(),0<runDependencies||(Module.setStatus?(Module.setStatus("Running..."),setTimeout(function(){setTimeout(function(){Module.setStatus("")},1),i()},1)):i()))}if(dependenciesFulfilled=function e(){calledRun||run(),calledRun||(dependenciesFulfilled=e)},Module.run=run,Module.preInit)for("function"==typeof Module.preInit&&(Module.preInit=[Module.preInit]);0<Module.preInit.length;)Module.preInit.pop()();noExitRuntime=!0,run();
+//# sourceMappingURL=RDKit_minimal.min.js.map
diff --git a/docs/js/RDKit_minimal.min.js.map b/docs/js/RDKit_minimal.min.js.map
new file mode 100644
index 0000000..6697619
--- /dev/null
+++ b/docs/js/RDKit_minimal.min.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"RDKit_minimal.min.js","sources":["RDKit_minimal.min.js"],"sourcesContent":["var Module=typeof Module!==\"undefined\"?Module:{};var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram=\"./this.program\";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window===\"object\";ENVIRONMENT_IS_WORKER=typeof importScripts===\"function\";ENVIRONMENT_IS_NODE=typeof process===\"object\"&&typeof process.versions===\"object\"&&typeof process.versions.node===\"string\";ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var scriptDirectory=\"\";function locateFile(path){if(Module[\"locateFile\"]){return Module[\"locateFile\"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require(\"path\").dirname(scriptDirectory)+\"/\"}else{scriptDirectory=__dirname+\"/\"}read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require(\"fs\");if(!nodePath)nodePath=require(\"path\");filename=nodePath[\"normalize\"](filename);return nodeFS[\"readFileSync\"](filename,binary?null:\"utf8\")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process[\"argv\"].length>1){thisProgram=process[\"argv\"][1].replace(/\\\\/g,\"/\")}arguments_=process[\"argv\"].slice(2);if(typeof module!==\"undefined\"){module[\"exports\"]=Module}process[\"on\"](\"uncaughtException\",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process[\"on\"](\"unhandledRejection\",abort);quit_=function(status){process[\"exit\"](status)};Module[\"inspect\"]=function(){return\"[Emscripten Module object]\"}}else if(ENVIRONMENT_IS_SHELL){if(typeof read!=\"undefined\"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer===\"function\"){return new Uint8Array(readbuffer(f))}data=read(f,\"binary\");assert(typeof data===\"object\");return data};if(typeof scriptArgs!=\"undefined\"){arguments_=scriptArgs}else if(typeof arguments!=\"undefined\"){arguments_=arguments}if(typeof quit===\"function\"){quit_=function(status){quit(status)}}if(typeof print!==\"undefined\"){if(typeof console===\"undefined\")console={};console.log=print;console.warn=console.error=typeof printErr!==\"undefined\"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf(\"blob:\")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf(\"/\")+1)}else{scriptDirectory=\"\"}{read_=function shell_read(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function readBinary(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.responseType=\"arraybuffer\";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function readAsync(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,true);xhr.responseType=\"arraybuffer\";xhr.onload=function xhr_onload(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}var out=Module[\"print\"]||console.log.bind(console);var err=Module[\"printErr\"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module[\"arguments\"])arguments_=Module[\"arguments\"];if(Module[\"thisProgram\"])thisProgram=Module[\"thisProgram\"];if(Module[\"quit\"])quit_=Module[\"quit\"];var STACK_ALIGN=16;function dynamicAlloc(size){var ret=HEAP32[DYNAMICTOP_PTR>>2];var end=ret+size+15&-16;HEAP32[DYNAMICTOP_PTR>>2]=end;return ret}function getNativeTypeSize(type){switch(type){case\"i1\":case\"i8\":return 1;case\"i16\":return 2;case\"i32\":return 4;case\"i64\":return 8;case\"float\":return 4;case\"double\":return 8;default:{if(type[type.length-1]===\"*\"){return 4}else if(type[0]===\"i\"){var bits=Number(type.substr(1));assert(bits%8===0,\"getNativeTypeSize invalid bits \"+bits+\", type \"+type);return bits/8}else{return 0}}}}function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}function convertJsFunctionToWasm(func,sig){if(typeof WebAssembly.Function===\"function\"){var typeNames={\"i\":\"i32\",\"j\":\"i64\",\"f\":\"f32\",\"d\":\"f64\"};var type={parameters:[],results:sig[0]==\"v\"?[]:[typeNames[sig[0]]]};for(var i=1;i<sig.length;++i){type.parameters.push(typeNames[sig[i]])}return new WebAssembly.Function(type,func)}var typeSection=[1,0,1,96];var sigRet=sig.slice(0,1);var sigParam=sig.slice(1);var typeCodes={\"i\":127,\"j\":126,\"f\":125,\"d\":124};typeSection.push(sigParam.length);for(var i=0;i<sigParam.length;++i){typeSection.push(typeCodes[sigParam[i]])}if(sigRet==\"v\"){typeSection.push(0)}else{typeSection=typeSection.concat([1,typeCodes[sigRet]])}typeSection[1]=typeSection.length-2;var bytes=new Uint8Array([0,97,115,109,1,0,0,0].concat(typeSection,[2,7,1,1,101,1,102,0,0,7,5,1,1,102,0,0]));var module=new WebAssembly.Module(bytes);var instance=new WebAssembly.Instance(module,{\"e\":{\"f\":func}});var wrappedFunc=instance.exports[\"f\"];return wrappedFunc}var freeTableIndexes=[];var functionsInTableMap;function addFunctionWasm(func,sig){var table=wasmTable;if(!functionsInTableMap){functionsInTableMap=new WeakMap;for(var i=0;i<table.length;i++){var item=table.get(i);if(item){functionsInTableMap.set(item,i)}}}if(functionsInTableMap.has(func)){return functionsInTableMap.get(func)}var ret;if(freeTableIndexes.length){ret=freeTableIndexes.pop()}else{ret=table.length;try{table.grow(1)}catch(err){if(!(err instanceof RangeError)){throw err}throw\"Unable to grow wasm table. Set ALLOW_TABLE_GROWTH.\"}}try{table.set(ret,func)}catch(err){if(!(err instanceof TypeError)){throw err}var wrapped=convertJsFunctionToWasm(func,sig);table.set(ret,wrapped)}functionsInTableMap.set(func,ret);return ret}function removeFunctionWasm(index){functionsInTableMap.delete(wasmTable.get(index));freeTableIndexes.push(index)}var funcWrappers={};function dynCall(sig,ptr,args){if(args&&args.length){return Module[\"dynCall_\"+sig].apply(null,[ptr].concat(args))}else{return Module[\"dynCall_\"+sig].call(null,ptr)}}var tempRet0=0;var setTempRet0=function(value){tempRet0=value};var getTempRet0=function(){return tempRet0};var wasmBinary;if(Module[\"wasmBinary\"])wasmBinary=Module[\"wasmBinary\"];var noExitRuntime;if(Module[\"noExitRuntime\"])noExitRuntime=Module[\"noExitRuntime\"];if(typeof WebAssembly!==\"object\"){abort(\"no native wasm support detected\")}function setValue(ptr,value,type,noSafe){type=type||\"i8\";if(type.charAt(type.length-1)===\"*\")type=\"i32\";switch(type){case\"i1\":HEAP8[ptr>>0]=value;break;case\"i8\":HEAP8[ptr>>0]=value;break;case\"i16\":HEAP16[ptr>>1]=value;break;case\"i32\":HEAP32[ptr>>2]=value;break;case\"i64\":tempI64=[value>>>0,(tempDouble=value,+Math_abs(tempDouble)>=1?tempDouble>0?(Math_min(+Math_floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math_ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[ptr>>2]=tempI64[0],HEAP32[ptr+4>>2]=tempI64[1];break;case\"float\":HEAPF32[ptr>>2]=value;break;case\"double\":HEAPF64[ptr>>3]=value;break;default:abort(\"invalid type for setValue: \"+type)}}var wasmMemory;var wasmTable=new WebAssembly.Table({\"initial\":4549,\"maximum\":4549+0,\"element\":\"anyfunc\"});var ABORT=false;var EXITSTATUS=0;function assert(condition,text){if(!condition){abort(\"Assertion failed: \"+text)}}function getCFunc(ident){var func=Module[\"_\"+ident];assert(func,\"Cannot call unknown function \"+ident+\", make sure it is exported\");return func}function ccall(ident,returnType,argTypes,args,opts){var toC={\"string\":function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){var len=(str.length<<2)+1;ret=stackAlloc(len);stringToUTF8(str,ret,len)}return ret},\"array\":function(arr){var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}};function convertReturnValue(ret){if(returnType===\"string\")return UTF8ToString(ret);if(returnType===\"boolean\")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i<args.length;i++){var converter=toC[argTypes[i]];if(converter){if(stack===0)stack=stackSave();cArgs[i]=converter(args[i])}else{cArgs[i]=args[i]}}}var ret=func.apply(null,cArgs);ret=convertReturnValue(ret);if(stack!==0)stackRestore(stack);return ret}var ALLOC_NONE=3;var UTF8Decoder=typeof TextDecoder!==\"undefined\"?new TextDecoder(\"utf8\"):undefined;function UTF8ArrayToString(heap,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var endPtr=idx;while(heap[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&heap.subarray&&UTF8Decoder){return UTF8Decoder.decode(heap.subarray(idx,endPtr))}else{var str=\"\";while(idx<endPtr){var u0=heap[idx++];if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heap[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heap[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heap[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):\"\"}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i<str.length;++i){var u=str.charCodeAt(i);if(u>=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i<str.length;++i){var u=str.charCodeAt(i);if(u>=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}var UTF16Decoder=typeof TextDecoder!==\"undefined\"?new TextDecoder(\"utf-16le\"):undefined;function UTF16ToString(ptr,maxBytesToRead){var endPtr=ptr;var idx=endPtr>>1;var maxIdx=idx+maxBytesToRead/2;while(!(idx>=maxIdx)&&HEAPU16[idx])++idx;endPtr=idx<<1;if(endPtr-ptr>32&&UTF16Decoder){return UTF16Decoder.decode(HEAPU8.subarray(ptr,endPtr))}else{var i=0;var str=\"\";while(1){var codeUnit=HEAP16[ptr+i*2>>1];if(codeUnit==0||i==maxBytesToRead/2)return str;++i;str+=String.fromCharCode(codeUnit)}}}function stringToUTF16(str,outPtr,maxBytesToWrite){if(maxBytesToWrite===undefined){maxBytesToWrite=2147483647}if(maxBytesToWrite<2)return 0;maxBytesToWrite-=2;var startPtr=outPtr;var numCharsToWrite=maxBytesToWrite<str.length*2?maxBytesToWrite/2:str.length;for(var i=0;i<numCharsToWrite;++i){var codeUnit=str.charCodeAt(i);HEAP16[outPtr>>1]=codeUnit;outPtr+=2}HEAP16[outPtr>>1]=0;return outPtr-startPtr}function lengthBytesUTF16(str){return str.length*2}function UTF32ToString(ptr,maxBytesToRead){var i=0;var str=\"\";while(!(i>=maxBytesToRead/4)){var utf32=HEAP32[ptr+i*4>>2];if(utf32==0)break;++i;if(utf32>=65536){var ch=utf32-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}else{str+=String.fromCharCode(utf32)}}return str}function stringToUTF32(str,outPtr,maxBytesToWrite){if(maxBytesToWrite===undefined){maxBytesToWrite=2147483647}if(maxBytesToWrite<4)return 0;var startPtr=outPtr;var endPtr=startPtr+maxBytesToWrite-4;for(var i=0;i<str.length;++i){var codeUnit=str.charCodeAt(i);if(codeUnit>=55296&&codeUnit<=57343){var trailSurrogate=str.charCodeAt(++i);codeUnit=65536+((codeUnit&1023)<<10)|trailSurrogate&1023}HEAP32[outPtr>>2]=codeUnit;outPtr+=4;if(outPtr+4>endPtr)break}HEAP32[outPtr>>2]=0;return outPtr-startPtr}function lengthBytesUTF32(str){var len=0;for(var i=0;i<str.length;++i){var codeUnit=str.charCodeAt(i);if(codeUnit>=55296&&codeUnit<=57343)++i;len+=4}return len}function allocateUTF8(str){var size=lengthBytesUTF8(str)+1;var ret=_malloc(size);if(ret)stringToUTF8Array(str,HEAP8,ret,size);return ret}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i<str.length;++i){HEAP8[buffer++>>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}var WASM_PAGE_SIZE=65536;var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module[\"HEAP8\"]=HEAP8=new Int8Array(buf);Module[\"HEAP16\"]=HEAP16=new Int16Array(buf);Module[\"HEAP32\"]=HEAP32=new Int32Array(buf);Module[\"HEAPU8\"]=HEAPU8=new Uint8Array(buf);Module[\"HEAPU16\"]=HEAPU16=new Uint16Array(buf);Module[\"HEAPU32\"]=HEAPU32=new Uint32Array(buf);Module[\"HEAPF32\"]=HEAPF32=new Float32Array(buf);Module[\"HEAPF64\"]=HEAPF64=new Float64Array(buf)}var STACK_BASE=5736160,DYNAMIC_BASE=5736160,DYNAMICTOP_PTR=493104;var INITIAL_INITIAL_MEMORY=Module[\"INITIAL_MEMORY\"]||16777216;if(Module[\"wasmMemory\"]){wasmMemory=Module[\"wasmMemory\"]}else{wasmMemory=new WebAssembly.Memory({\"initial\":INITIAL_INITIAL_MEMORY/WASM_PAGE_SIZE,\"maximum\":INITIAL_INITIAL_MEMORY/WASM_PAGE_SIZE})}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_INITIAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);HEAP32[DYNAMICTOP_PTR>>2]=DYNAMIC_BASE;function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback==\"function\"){callback(Module);continue}var func=callback.func;if(typeof func===\"number\"){if(callback.arg===undefined){Module[\"dynCall_v\"](func)}else{Module[\"dynCall_vi\"](func,callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(Module[\"preRun\"]){if(typeof Module[\"preRun\"]==\"function\")Module[\"preRun\"]=[Module[\"preRun\"]];while(Module[\"preRun\"].length){addOnPreRun(Module[\"preRun\"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(!Module[\"noFSInit\"]&&!FS.init.initialized)FS.init();TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){FS.ignorePermissions=false;callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){runtimeExited=true}function postRun(){if(Module[\"postRun\"]){if(typeof Module[\"postRun\"]==\"function\")Module[\"postRun\"]=[Module[\"postRun\"]];while(Module[\"postRun\"].length){addOnPostRun(Module[\"postRun\"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var Math_abs=Math.abs;var Math_ceil=Math.ceil;var Math_floor=Math.floor;var Math_min=Math.min;var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){runDependencies++;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module[\"preloadedImages\"]={};Module[\"preloadedAudios\"]={};function abort(what){if(Module[\"onAbort\"]){Module[\"onAbort\"](what)}what+=\"\";out(what);err(what);ABORT=true;EXITSTATUS=1;what=\"abort(\"+what+\"). Build with -s ASSERTIONS=1 for more info.\";throw new WebAssembly.RuntimeError(what)}function hasPrefix(str,prefix){return String.prototype.startsWith?str.startsWith(prefix):str.indexOf(prefix)===0}var dataURIPrefix=\"data:application/octet-stream;base64,\";function isDataURI(filename){return hasPrefix(filename,dataURIPrefix)}var fileURIPrefix=\"file://\";function isFileURI(filename){return hasPrefix(filename,fileURIPrefix)}var wasmBinaryFile=\"RDKit_minimal.wasm\";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(){try{if(wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(wasmBinaryFile)}else{throw\"both async and sync fetching of the wasm failed\"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)&&typeof fetch===\"function\"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){if(!response[\"ok\"]){throw\"failed to load wasm binary file at '\"+wasmBinaryFile+\"'\"}return response[\"arrayBuffer\"]()}).catch(function(){return getBinary()})}return new Promise(function(resolve,reject){resolve(getBinary())})}function createWasm(){var info={\"env\":asmLibraryArg,\"wasi_snapshot_preview1\":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module[\"asm\"]=exports;removeRunDependency(\"wasm-instantiate\")}addRunDependency(\"wasm-instantiate\");function receiveInstantiatedSource(output){receiveInstance(output[\"instance\"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(receiver,function(reason){err(\"failed to asynchronously prepare wasm: \"+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming===\"function\"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch===\"function\"){fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiatedSource,function(reason){err(\"wasm streaming compile failed: \"+reason);err(\"falling back to ArrayBuffer instantiation\");return instantiateArrayBuffer(receiveInstantiatedSource)})})}else{return instantiateArrayBuffer(receiveInstantiatedSource)}}if(Module[\"instantiateWasm\"]){try{var exports=Module[\"instantiateWasm\"](info,receiveInstance);return exports}catch(e){err(\"Module.instantiateWasm callback failed with error: \"+e);return false}}instantiateAsync();return{}}var tempDouble;var tempI64;__ATINIT__.push({func:function(){___wasm_call_ctors()}});function demangle(func){return func}function demangleAll(text){var regex=/\\b_Z[\\w\\d_]+/g;return text.replace(regex,function(x){var y=demangle(x);return x===y?x:y+\" [\"+x+\"]\"})}function jsStackTrace(){var err=new Error;if(!err.stack){try{throw new Error}catch(e){err=e}if(!err.stack){return\"(no stack trace available)\"}}return err.stack.toString()}function stackTrace(){var js=jsStackTrace();if(Module[\"extraStackTrace\"])js+=\"\\n\"+Module[\"extraStackTrace\"]();return demangleAll(js)}function ___cxa_allocate_exception(size){return _malloc(size)}function _atexit(func,arg){}function ___cxa_atexit(a0,a1){return _atexit(a0,a1)}var ___exception_infos={};var ___exception_caught=[];function ___exception_addRef(ptr){if(!ptr)return;var info=___exception_infos[ptr];info.refcount++}function ___exception_deAdjust(adjusted){if(!adjusted||___exception_infos[adjusted])return adjusted;for(var key in ___exception_infos){var ptr=+key;var adj=___exception_infos[ptr].adjusted;var len=adj.length;for(var i=0;i<len;i++){if(adj[i]===adjusted){return ptr}}}return adjusted}function ___cxa_begin_catch(ptr){var info=___exception_infos[ptr];if(info&&!info.caught){info.caught=true;__ZSt18uncaught_exceptionv.uncaught_exceptions--}if(info)info.rethrown=false;___exception_caught.push(ptr);___exception_addRef(___exception_deAdjust(ptr));return ptr}var ___exception_last=0;function ___cxa_free_exception(ptr){try{return _free(ptr)}catch(e){}}function ___exception_decRef(ptr){if(!ptr)return;var info=___exception_infos[ptr];info.refcount--;if(info.refcount===0&&!info.rethrown){if(info.destructor){Module[\"dynCall_ii\"](info.destructor,ptr)}delete ___exception_infos[ptr];___cxa_free_exception(ptr)}}function ___cxa_end_catch(){_setThrew(0);var ptr=___exception_caught.pop();if(ptr){___exception_decRef(___exception_deAdjust(ptr));___exception_last=0}}function ___cxa_find_matching_catch_2(){var thrown=___exception_last;if(!thrown){return(setTempRet0(0),0)|0}var info=___exception_infos[thrown];var throwntype=info.type;if(!throwntype){return(setTempRet0(0),thrown)|0}var typeArray=Array.prototype.slice.call(arguments);var pointer=___cxa_is_pointer_type(throwntype);var buffer=493264;HEAP32[buffer>>2]=thrown;thrown=buffer;for(var i=0;i<typeArray.length;i++){if(typeArray[i]&&___cxa_can_catch(typeArray[i],throwntype,thrown)){thrown=HEAP32[thrown>>2];info.adjusted.push(thrown);return(setTempRet0(typeArray[i]),thrown)|0}}thrown=HEAP32[thrown>>2];return(setTempRet0(throwntype),thrown)|0}function ___cxa_find_matching_catch_3(){var thrown=___exception_last;if(!thrown){return(setTempRet0(0),0)|0}var info=___exception_infos[thrown];var throwntype=info.type;if(!throwntype){return(setTempRet0(0),thrown)|0}var typeArray=Array.prototype.slice.call(arguments);var pointer=___cxa_is_pointer_type(throwntype);var buffer=493264;HEAP32[buffer>>2]=thrown;thrown=buffer;for(var i=0;i<typeArray.length;i++){if(typeArray[i]&&___cxa_can_catch(typeArray[i],throwntype,thrown)){thrown=HEAP32[thrown>>2];info.adjusted.push(thrown);return(setTempRet0(typeArray[i]),thrown)|0}}thrown=HEAP32[thrown>>2];return(setTempRet0(throwntype),thrown)|0}function ___cxa_find_matching_catch_4(){var thrown=___exception_last;if(!thrown){return(setTempRet0(0),0)|0}var info=___exception_infos[thrown];var throwntype=info.type;if(!throwntype){return(setTempRet0(0),thrown)|0}var typeArray=Array.prototype.slice.call(arguments);var pointer=___cxa_is_pointer_type(throwntype);var buffer=493264;HEAP32[buffer>>2]=thrown;thrown=buffer;for(var i=0;i<typeArray.length;i++){if(typeArray[i]&&___cxa_can_catch(typeArray[i],throwntype,thrown)){thrown=HEAP32[thrown>>2];info.adjusted.push(thrown);return(setTempRet0(typeArray[i]),thrown)|0}}thrown=HEAP32[thrown>>2];return(setTempRet0(throwntype),thrown)|0}function ___cxa_rethrow(){var ptr=___exception_caught.pop();ptr=___exception_deAdjust(ptr);if(!___exception_infos[ptr].rethrown){___exception_caught.push(ptr);___exception_infos[ptr].rethrown=true}___exception_last=ptr;throw ptr}function ___cxa_throw(ptr,type,destructor){___exception_infos[ptr]={ptr:ptr,adjusted:[ptr],type:type,destructor:destructor,refcount:0,caught:false,rethrown:false};___exception_last=ptr;if(!(\"uncaught_exception\"in __ZSt18uncaught_exceptionv)){__ZSt18uncaught_exceptionv.uncaught_exceptions=1}else{__ZSt18uncaught_exceptionv.uncaught_exceptions++}throw ptr}function ___cxa_uncaught_exceptions(){return __ZSt18uncaught_exceptionv.uncaught_exceptions}function setErrNo(value){HEAP32[___errno_location()>>2]=value;return value}function ___map_file(pathname,size){setErrNo(63);return-1}function ___resumeException(ptr){if(!___exception_last){___exception_last=ptr}throw ptr}var PATH={splitPath:function(filename){var splitPathRe=/^(\\/?|)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?|)(\\.[^.\\/]*|))(?:[\\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last===\".\"){parts.splice(i,1)}else if(last===\"..\"){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift(\"..\")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)===\"/\",trailingSlash=path.substr(-1)===\"/\";path=PATH.normalizeArray(path.split(\"/\").filter(function(p){return!!p}),!isAbsolute).join(\"/\");if(!path&&!isAbsolute){path=\".\"}if(path&&trailingSlash){path+=\"/\"}return(isAbsolute?\"/\":\"\")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return\".\"}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path===\"/\")return\"/\";var lastSlash=path.lastIndexOf(\"/\");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join(\"/\"))},join2:function(l,r){return PATH.normalize(l+\"/\"+r)}};var PATH_FS={resolve:function(){var resolvedPath=\"\",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!==\"string\"){throw new TypeError(\"Arguments to path.resolve must be strings\")}else if(!path){return\"\"}resolvedPath=path+\"/\"+resolvedPath;resolvedAbsolute=path.charAt(0)===\"/\"}resolvedPath=PATH.normalizeArray(resolvedPath.split(\"/\").filter(function(p){return!!p}),!resolvedAbsolute).join(\"/\");return(resolvedAbsolute?\"/\":\"\")+resolvedPath||\".\"},relative:function(from,to){from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start<arr.length;start++){if(arr[start]!==\"\")break}var end=arr.length-1;for(;end>=0;end--){if(arr[end]!==\"\")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split(\"/\"));var toParts=trim(to.split(\"/\"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i<length;i++){if(fromParts[i]!==toParts[i]){samePartsLength=i;break}}var outputParts=[];for(var i=samePartsLength;i<fromParts.length;i++){outputParts.push(\"..\")}outputParts=outputParts.concat(toParts.slice(samePartsLength));return outputParts.join(\"/\")}};var TTY={ttys:[],init:function(){},shutdown:function(){},register:function(dev,ops){TTY.ttys[dev]={input:[],output:[],ops:ops};FS.registerDevice(dev,TTY.stream_ops)},stream_ops:{open:function(stream){var tty=TTY.ttys[stream.node.rdev];if(!tty){throw new FS.ErrnoError(43)}stream.tty=tty;stream.seekable=false},close:function(stream){stream.tty.ops.flush(stream.tty)},flush:function(stream){stream.tty.ops.flush(stream.tty)},read:function(stream,buffer,offset,length,pos){if(!stream.tty||!stream.tty.ops.get_char){throw new FS.ErrnoError(60)}var bytesRead=0;for(var i=0;i<length;i++){var result;try{result=stream.tty.ops.get_char(stream.tty)}catch(e){throw new FS.ErrnoError(29)}if(result===undefined&&bytesRead===0){throw new FS.ErrnoError(6)}if(result===null||result===undefined)break;bytesRead++;buffer[offset+i]=result}if(bytesRead){stream.node.timestamp=Date.now()}return bytesRead},write:function(stream,buffer,offset,length,pos){if(!stream.tty||!stream.tty.ops.put_char){throw new FS.ErrnoError(60)}try{for(var i=0;i<length;i++){stream.tty.ops.put_char(stream.tty,buffer[offset+i])}}catch(e){throw new FS.ErrnoError(29)}if(length){stream.node.timestamp=Date.now()}return i}},default_tty_ops:{get_char:function(tty){if(!tty.input.length){var result=null;if(ENVIRONMENT_IS_NODE){var BUFSIZE=256;var buf=Buffer.alloc?Buffer.alloc(BUFSIZE):new Buffer(BUFSIZE);var bytesRead=0;try{bytesRead=nodeFS.readSync(process.stdin.fd,buf,0,BUFSIZE,null)}catch(e){if(e.toString().indexOf(\"EOF\")!=-1)bytesRead=0;else throw e}if(bytesRead>0){result=buf.slice(0,bytesRead).toString(\"utf-8\")}else{result=null}}else if(typeof window!=\"undefined\"&&typeof window.prompt==\"function\"){result=window.prompt(\"Input: \");if(result!==null){result+=\"\\n\"}}else if(typeof readline==\"function\"){result=readline();if(result!==null){result+=\"\\n\"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};var MEMFS={ops_table:null,mount:function(mount){return MEMFS.createNode(null,\"/\",16384|511,0)},createNode:function(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode)){throw new FS.ErrnoError(63)}if(!MEMFS.ops_table){MEMFS.ops_table={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,allocate:MEMFS.stream_ops.allocate,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}}}var node=FS.createNode(parent,name,mode,dev);if(FS.isDir(node.mode)){node.node_ops=MEMFS.ops_table.dir.node;node.stream_ops=MEMFS.ops_table.dir.stream;node.contents={}}else if(FS.isFile(node.mode)){node.node_ops=MEMFS.ops_table.file.node;node.stream_ops=MEMFS.ops_table.file.stream;node.usedBytes=0;node.contents=null}else if(FS.isLink(node.mode)){node.node_ops=MEMFS.ops_table.link.node;node.stream_ops=MEMFS.ops_table.link.stream}else if(FS.isChrdev(node.mode)){node.node_ops=MEMFS.ops_table.chrdev.node;node.stream_ops=MEMFS.ops_table.chrdev.stream}node.timestamp=Date.now();if(parent){parent.contents[name]=node}return node},getFileDataAsRegularArray:function(node){if(node.contents&&node.contents.subarray){var arr=[];for(var i=0;i<node.usedBytes;++i)arr.push(node.contents[i]);return arr}return node.contents},getFileDataAsTypedArray:function(node){if(!node.contents)return new Uint8Array(0);if(node.contents.subarray)return node.contents.subarray(0,node.usedBytes);return new Uint8Array(node.contents)},expandFileStorage:function(node,newCapacity){var prevCapacity=node.contents?node.contents.length:0;if(prevCapacity>=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity<CAPACITY_DOUBLING_MAX?2:1.125)>>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0);return},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0;return}if(!node.contents||node.contents.subarray){var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize;return}if(!node.contents)node.contents=[];if(node.contents.length>newSize)node.contents.length=newSize;else while(node.contents.length<newSize)node.contents.push(0);node.usedBytes=newSize},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.name=new_name;new_dir.contents[new_name]=old_node;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name]},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name]},readdir:function(node){var entries=[\".\",\"..\"];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i<size;i++)buffer[offset+i]=contents[position+i]}return size},write:function(stream,buffer,offset,length,position,canOwn){if(!length)return 0;var node=stream.node;node.timestamp=Date.now();if(buffer.subarray&&(!node.contents||node.contents.subarray)){if(canOwn){node.contents=buffer.subarray(offset,offset+length);node.usedBytes=length;return length}else if(node.usedBytes===0&&position===0){node.contents=buffer.slice(offset,offset+length);node.usedBytes=length;return length}else if(position+length<=node.usedBytes){node.contents.set(buffer.subarray(offset,offset+length),position);return length}}MEMFS.expandFileStorage(node,position+length);if(node.contents.subarray&&buffer.subarray)node.contents.set(buffer.subarray(offset,offset+length),position);else{for(var i=0;i<length;i++){node.contents[position+i]=buffer[offset+i]}}node.usedBytes=Math.max(node.usedBytes,position+length);return length},llseek:function(stream,offset,whence){var position=offset;if(whence===1){position+=stream.position}else if(whence===2){if(FS.isFile(stream.node.mode)){position+=stream.node.usedBytes}}if(position<0){throw new FS.ErrnoError(28)}return position},allocate:function(stream,offset,length){MEMFS.expandFileStorage(stream.node,offset+length);stream.node.usedBytes=Math.max(stream.node.usedBytes,offset+length)},mmap:function(stream,address,length,position,prot,flags){assert(address===0);if(!FS.isFile(stream.node.mode)){throw new FS.ErrnoError(43)}var ptr;var allocated;var contents=stream.node.contents;if(!(flags&2)&&contents.buffer===buffer){allocated=false;ptr=contents.byteOffset}else{if(position>0||position+length<contents.length){if(contents.subarray){contents=contents.subarray(position,position+length)}else{contents=Array.prototype.slice.call(contents,position,position+length)}}allocated=true;ptr=_malloc(length);if(!ptr){throw new FS.ErrnoError(48)}HEAP8.set(contents,ptr)}return{ptr:ptr,allocated:allocated}},msync:function(stream,buffer,offset,length,mmapFlags){if(!FS.isFile(stream.node.mode)){throw new FS.ErrnoError(43)}if(mmapFlags&2){return 0}var bytesWritten=MEMFS.stream_ops.write(stream,buffer,0,length,offset,false);return 0}}};var FS={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:\"/\",initialized:false,ignorePermissions:true,trackingDelegate:{},tracking:{openFlags:{READ:1,WRITE:2}},ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,handleFSError:function(e){if(!(e instanceof FS.ErrnoError))throw e+\" : \"+stackTrace();return setErrNo(e.errno)},lookupPath:function(path,opts){path=PATH_FS.resolve(FS.cwd(),path);opts=opts||{};if(!path)return{path:\"\",node:null};var defaults={follow_mount:true,recurse_count:0};for(var key in defaults){if(opts[key]===undefined){opts[key]=defaults[key]}}if(opts.recurse_count>8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split(\"/\").filter(function(p){return!!p}),false);var current=FS.root;var current_path=\"/\";for(var i=0;i<parts.length;i++){var islast=i===parts.length-1;if(islast&&opts.parent){break}current=FS.lookupNode(current,parts[i]);current_path=PATH.join2(current_path,parts[i]);if(FS.isMountpoint(current)){if(!islast||islast&&opts.follow_mount){current=current.mounted.root}}if(!islast||opts.follow){var count=0;while(FS.isLink(current.mode)){var link=FS.readlink(current_path);current_path=PATH_FS.resolve(PATH.dirname(current_path),link);var lookup=FS.lookupPath(current_path,{recurse_count:opts.recurse_count});current=lookup.node;if(count++>40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!==\"/\"?mount+\"/\"+path:mount+path}path=path?node.name+\"/\"+path:node.name;node=node.parent}},hashName:function(parentid,name){var hash=0;for(var i=0;i<name.length;i++){hash=(hash<<5)-hash+name.charCodeAt(i)|0}return(parentid+hash>>>0)%FS.nameTable.length},hashAddNode:function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:function(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:function(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:function(node){FS.hashRemoveNode(node)},isRoot:function(node){return node===node.parent},isMountpoint:function(node){return!!node.mounted},isFile:function(mode){return(mode&61440)===32768},isDir:function(mode){return(mode&61440)===16384},isLink:function(mode){return(mode&61440)===40960},isChrdev:function(mode){return(mode&61440)===8192},isBlkdev:function(mode){return(mode&61440)===24576},isFIFO:function(mode){return(mode&61440)===4096},isSocket:function(mode){return(mode&49152)===49152},flagModes:{\"r\":0,\"rs\":1052672,\"r+\":2,\"w\":577,\"wx\":705,\"xw\":705,\"w+\":578,\"wx+\":706,\"xw+\":706,\"a\":1089,\"ax\":1217,\"xa\":1217,\"a+\":1090,\"ax+\":1218,\"xa+\":1218},modeStringToFlags:function(str){var flags=FS.flagModes[str];if(typeof flags===\"undefined\"){throw new Error(\"Unknown file open mode: \"+str)}return flags},flagsToPermissionString:function(flag){var perms=[\"r\",\"w\",\"rw\"][flag&3];if(flag&512){perms+=\"w\"}return perms},nodePermissions:function(node,perms){if(FS.ignorePermissions){return 0}if(perms.indexOf(\"r\")!==-1&&!(node.mode&292)){return 2}else if(perms.indexOf(\"w\")!==-1&&!(node.mode&146)){return 2}else if(perms.indexOf(\"x\")!==-1&&!(node.mode&73)){return 2}return 0},mayLookup:function(dir){var errCode=FS.nodePermissions(dir,\"x\");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:function(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,\"wx\")},mayDelete:function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,\"wx\");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:function(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!==\"r\"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:function(fd){return FS.streams[fd]},createStream:function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}}}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:function(fd){FS.streams[fd]=null},chrdev_stream_ops:{open:function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:function(){throw new FS.ErrnoError(70)}},major:function(dev){return dev>>8},minor:function(dev){return dev&255},makedev:function(ma,mi){return ma<<8|mi},registerDevice:function(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:function(dev){return FS.devices[dev]},getMounts:function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:function(populate,callback){if(typeof populate===\"function\"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err(\"warning: \"+FS.syncFSRequests+\" FS.syncfs operations in flight at once, probably just doing extra work\")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:function(type,opts,mountpoint){var root=mountpoint===\"/\";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.indexOf(current.mount)!==-1){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:function(parent,name){return parent.node_ops.lookup(parent,name)},mknod:function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name===\".\"||name===\"..\"){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:function(path,mode){var dirs=path.split(\"/\");var d=\"\";for(var i=0;i<dirs.length;++i){if(!dirs[i])continue;d+=\"/\"+dirs[i];try{FS.mkdir(d,mode)}catch(e){if(e.errno!=20)throw e}}},mkdev:function(path,mode,dev){if(typeof dev===\"undefined\"){dev=mode;mode=438}mode|=8192;return FS.mknod(path,mode,dev)},symlink:function(oldpath,newpath){if(!PATH_FS.resolve(oldpath)){throw new FS.ErrnoError(44)}var lookup=FS.lookupPath(newpath,{parent:true});var parent=lookup.node;if(!parent){throw new FS.ErrnoError(44)}var newname=PATH.basename(newpath);var errCode=FS.mayCreate(parent,newname);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.symlink){throw new FS.ErrnoError(63)}return parent.node_ops.symlink(parent,newname,oldpath)},rename:function(old_path,new_path){var old_dirname=PATH.dirname(old_path);var new_dirname=PATH.dirname(new_path);var old_name=PATH.basename(old_path);var new_name=PATH.basename(new_path);var lookup,old_dir,new_dir;try{lookup=FS.lookupPath(old_path,{parent:true});old_dir=lookup.node;lookup=FS.lookupPath(new_path,{parent:true});new_dir=lookup.node}catch(e){throw new FS.ErrnoError(10)}if(!old_dir||!new_dir)throw new FS.ErrnoError(44);if(old_dir.mount!==new_dir.mount){throw new FS.ErrnoError(75)}var old_node=FS.lookupNode(old_dir,old_name);var relative=PATH_FS.relative(old_path,new_dirname);if(relative.charAt(0)!==\".\"){throw new FS.ErrnoError(28)}relative=PATH_FS.relative(new_path,old_dirname);if(relative.charAt(0)!==\".\"){throw new FS.ErrnoError(55)}var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(old_node===new_node){return}var isdir=FS.isDir(old_node.mode);var errCode=FS.mayDelete(old_dir,old_name,isdir);if(errCode){throw new FS.ErrnoError(errCode)}errCode=new_node?FS.mayDelete(new_dir,new_name,isdir):FS.mayCreate(new_dir,new_name);if(errCode){throw new FS.ErrnoError(errCode)}if(!old_dir.node_ops.rename){throw new FS.ErrnoError(63)}if(FS.isMountpoint(old_node)||new_node&&FS.isMountpoint(new_node)){throw new FS.ErrnoError(10)}if(new_dir!==old_dir){errCode=FS.nodePermissions(old_dir,\"w\");if(errCode){throw new FS.ErrnoError(errCode)}}try{if(FS.trackingDelegate[\"willMovePath\"]){FS.trackingDelegate[\"willMovePath\"](old_path,new_path)}}catch(e){err(\"FS.trackingDelegate['willMovePath']('\"+old_path+\"', '\"+new_path+\"') threw an exception: \"+e.message)}FS.hashRemoveNode(old_node);try{old_dir.node_ops.rename(old_node,new_dir,new_name)}catch(e){throw e}finally{FS.hashAddNode(old_node)}try{if(FS.trackingDelegate[\"onMovePath\"])FS.trackingDelegate[\"onMovePath\"](old_path,new_path)}catch(e){err(\"FS.trackingDelegate['onMovePath']('\"+old_path+\"', '\"+new_path+\"') threw an exception: \"+e.message)}},rmdir:function(path){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var errCode=FS.mayDelete(parent,name,true);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.rmdir){throw new FS.ErrnoError(63)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}try{if(FS.trackingDelegate[\"willDeletePath\"]){FS.trackingDelegate[\"willDeletePath\"](path)}}catch(e){err(\"FS.trackingDelegate['willDeletePath']('\"+path+\"') threw an exception: \"+e.message)}parent.node_ops.rmdir(parent,name);FS.destroyNode(node);try{if(FS.trackingDelegate[\"onDeletePath\"])FS.trackingDelegate[\"onDeletePath\"](path)}catch(e){err(\"FS.trackingDelegate['onDeletePath']('\"+path+\"') threw an exception: \"+e.message)}},readdir:function(path){var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;if(!node.node_ops.readdir){throw new FS.ErrnoError(54)}return node.node_ops.readdir(node)},unlink:function(path){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var errCode=FS.mayDelete(parent,name,false);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.unlink){throw new FS.ErrnoError(63)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}try{if(FS.trackingDelegate[\"willDeletePath\"]){FS.trackingDelegate[\"willDeletePath\"](path)}}catch(e){err(\"FS.trackingDelegate['willDeletePath']('\"+path+\"') threw an exception: \"+e.message)}parent.node_ops.unlink(parent,name);FS.destroyNode(node);try{if(FS.trackingDelegate[\"onDeletePath\"])FS.trackingDelegate[\"onDeletePath\"](path)}catch(e){err(\"FS.trackingDelegate['onDeletePath']('\"+path+\"') threw an exception: \"+e.message)}},readlink:function(path){var lookup=FS.lookupPath(path);var link=lookup.node;if(!link){throw new FS.ErrnoError(44)}if(!link.node_ops.readlink){throw new FS.ErrnoError(28)}return PATH_FS.resolve(FS.getPath(link.parent),link.node_ops.readlink(link))},stat:function(path,dontFollow){var lookup=FS.lookupPath(path,{follow:!dontFollow});var node=lookup.node;if(!node){throw new FS.ErrnoError(44)}if(!node.node_ops.getattr){throw new FS.ErrnoError(63)}return node.node_ops.getattr(node)},lstat:function(path){return FS.stat(path,true)},chmod:function(path,mode,dontFollow){var node;if(typeof path===\"string\"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(63)}node.node_ops.setattr(node,{mode:mode&4095|node.mode&~4095,timestamp:Date.now()})},lchmod:function(path,mode){FS.chmod(path,mode,true)},fchmod:function(fd,mode){var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}FS.chmod(stream.node,mode)},chown:function(path,uid,gid,dontFollow){var node;if(typeof path===\"string\"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(63)}node.node_ops.setattr(node,{timestamp:Date.now()})},lchown:function(path,uid,gid){FS.chown(path,uid,gid,true)},fchown:function(fd,uid,gid){var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}FS.chown(stream.node,uid,gid)},truncate:function(path,len){if(len<0){throw new FS.ErrnoError(28)}var node;if(typeof path===\"string\"){var lookup=FS.lookupPath(path,{follow:true});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(63)}if(FS.isDir(node.mode)){throw new FS.ErrnoError(31)}if(!FS.isFile(node.mode)){throw new FS.ErrnoError(28)}var errCode=FS.nodePermissions(node,\"w\");if(errCode){throw new FS.ErrnoError(errCode)}node.node_ops.setattr(node,{size:len,timestamp:Date.now()})},ftruncate:function(fd,len){var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(28)}FS.truncate(stream.node,len)},utime:function(path,atime,mtime){var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;node.node_ops.setattr(node,{timestamp:Math.max(atime,mtime)})},open:function(path,flags,mode,fd_start,fd_end){if(path===\"\"){throw new FS.ErrnoError(44)}flags=typeof flags===\"string\"?FS.modeStringToFlags(flags):flags;mode=typeof mode===\"undefined\"?438:mode;if(flags&64){mode=mode&4095|32768}else{mode=0}var node;if(typeof path===\"object\"){node=path}else{path=PATH.normalize(path);try{var lookup=FS.lookupPath(path,{follow:!(flags&131072)});node=lookup.node}catch(e){}}var created=false;if(flags&64){if(node){if(flags&128){throw new FS.ErrnoError(20)}}else{node=FS.mknod(path,mode,0);created=true}}if(!node){throw new FS.ErrnoError(44)}if(FS.isChrdev(node.mode)){flags&=~512}if(flags&65536&&!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}if(!created){var errCode=FS.mayOpen(node,flags);if(errCode){throw new FS.ErrnoError(errCode)}}if(flags&512){FS.truncate(node,0)}flags&=~(128|512|131072);var stream=FS.createStream({node:node,path:FS.getPath(node),flags:flags,seekable:true,position:0,stream_ops:node.stream_ops,ungotten:[],error:false},fd_start,fd_end);if(stream.stream_ops.open){stream.stream_ops.open(stream)}if(Module[\"logReadFiles\"]&&!(flags&1)){if(!FS.readFiles)FS.readFiles={};if(!(path in FS.readFiles)){FS.readFiles[path]=1;err(\"FS.trackingDelegate error on read file: \"+path)}}try{if(FS.trackingDelegate[\"onOpenFile\"]){var trackingFlags=0;if((flags&2097155)!==1){trackingFlags|=FS.tracking.openFlags.READ}if((flags&2097155)!==0){trackingFlags|=FS.tracking.openFlags.WRITE}FS.trackingDelegate[\"onOpenFile\"](path,trackingFlags)}}catch(e){err(\"FS.trackingDelegate['onOpenFile']('\"+path+\"', flags) threw an exception: \"+e.message)}return stream},close:function(stream){if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(stream.getdents)stream.getdents=null;try{if(stream.stream_ops.close){stream.stream_ops.close(stream)}}catch(e){throw e}finally{FS.closeStream(stream.fd)}stream.fd=null},isClosed:function(stream){return stream.fd===null},llseek:function(stream,offset,whence){if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(!stream.seekable||!stream.stream_ops.llseek){throw new FS.ErrnoError(70)}if(whence!=0&&whence!=1&&whence!=2){throw new FS.ErrnoError(28)}stream.position=stream.stream_ops.llseek(stream,offset,whence);stream.ungotten=[];return stream.position},read:function(stream,buffer,offset,length,position){if(length<0||position<0){throw new FS.ErrnoError(28)}if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(8)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(31)}if(!stream.stream_ops.read){throw new FS.ErrnoError(28)}var seeking=typeof position!==\"undefined\";if(!seeking){position=stream.position}else if(!stream.seekable){throw new FS.ErrnoError(70)}var bytesRead=stream.stream_ops.read(stream,buffer,offset,length,position);if(!seeking)stream.position+=bytesRead;return bytesRead},write:function(stream,buffer,offset,length,position,canOwn){if(length<0||position<0){throw new FS.ErrnoError(28)}if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(8)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(31)}if(!stream.stream_ops.write){throw new FS.ErrnoError(28)}if(stream.seekable&&stream.flags&1024){FS.llseek(stream,0,2)}var seeking=typeof position!==\"undefined\";if(!seeking){position=stream.position}else if(!stream.seekable){throw new FS.ErrnoError(70)}var bytesWritten=stream.stream_ops.write(stream,buffer,offset,length,position,canOwn);if(!seeking)stream.position+=bytesWritten;try{if(stream.path&&FS.trackingDelegate[\"onWriteToFile\"])FS.trackingDelegate[\"onWriteToFile\"](stream.path)}catch(e){err(\"FS.trackingDelegate['onWriteToFile']('\"+stream.path+\"') threw an exception: \"+e.message)}return bytesWritten},allocate:function(stream,offset,length){if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(offset<0||length<=0){throw new FS.ErrnoError(28)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(8)}if(!FS.isFile(stream.node.mode)&&!FS.isDir(stream.node.mode)){throw new FS.ErrnoError(43)}if(!stream.stream_ops.allocate){throw new FS.ErrnoError(138)}stream.stream_ops.allocate(stream,offset,length)},mmap:function(stream,address,length,position,prot,flags){if((prot&2)!==0&&(flags&2)===0&&(stream.flags&2097155)!==2){throw new FS.ErrnoError(2)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(2)}if(!stream.stream_ops.mmap){throw new FS.ErrnoError(43)}return stream.stream_ops.mmap(stream,address,length,position,prot,flags)},msync:function(stream,buffer,offset,length,mmapFlags){if(!stream||!stream.stream_ops.msync){return 0}return stream.stream_ops.msync(stream,buffer,offset,length,mmapFlags)},munmap:function(stream){return 0},ioctl:function(stream,cmd,arg){if(!stream.stream_ops.ioctl){throw new FS.ErrnoError(59)}return stream.stream_ops.ioctl(stream,cmd,arg)},readFile:function(path,opts){opts=opts||{};opts.flags=opts.flags||\"r\";opts.encoding=opts.encoding||\"binary\";if(opts.encoding!==\"utf8\"&&opts.encoding!==\"binary\"){throw new Error('Invalid encoding type \"'+opts.encoding+'\"')}var ret;var stream=FS.open(path,opts.flags);var stat=FS.stat(path);var length=stat.size;var buf=new Uint8Array(length);FS.read(stream,buf,0,length,0);if(opts.encoding===\"utf8\"){ret=UTF8ArrayToString(buf,0)}else if(opts.encoding===\"binary\"){ret=buf}FS.close(stream);return ret},writeFile:function(path,data,opts){opts=opts||{};opts.flags=opts.flags||\"w\";var stream=FS.open(path,opts.flags,opts.mode);if(typeof data===\"string\"){var buf=new Uint8Array(lengthBytesUTF8(data)+1);var actualNumBytes=stringToUTF8Array(data,buf,0,buf.length);FS.write(stream,buf,0,actualNumBytes,undefined,opts.canOwn)}else if(ArrayBuffer.isView(data)){FS.write(stream,data,0,data.byteLength,undefined,opts.canOwn)}else{throw new Error(\"Unsupported data type\")}FS.close(stream)},cwd:function(){return FS.currentPath},chdir:function(path){var lookup=FS.lookupPath(path,{follow:true});if(lookup.node===null){throw new FS.ErrnoError(44)}if(!FS.isDir(lookup.node.mode)){throw new FS.ErrnoError(54)}var errCode=FS.nodePermissions(lookup.node,\"x\");if(errCode){throw new FS.ErrnoError(errCode)}FS.currentPath=lookup.path},createDefaultDirectories:function(){FS.mkdir(\"/tmp\");FS.mkdir(\"/home\");FS.mkdir(\"/home/web_user\")},createDefaultDevices:function(){FS.mkdir(\"/dev\");FS.registerDevice(FS.makedev(1,3),{read:function(){return 0},write:function(stream,buffer,offset,length,pos){return length}});FS.mkdev(\"/dev/null\",FS.makedev(1,3));TTY.register(FS.makedev(5,0),TTY.default_tty_ops);TTY.register(FS.makedev(6,0),TTY.default_tty1_ops);FS.mkdev(\"/dev/tty\",FS.makedev(5,0));FS.mkdev(\"/dev/tty1\",FS.makedev(6,0));var random_device;if(typeof crypto===\"object\"&&typeof crypto[\"getRandomValues\"]===\"function\"){var randomBuffer=new Uint8Array(1);random_device=function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require(\"crypto\");random_device=function(){return crypto_module[\"randomBytes\"](1)[0]}}catch(e){}}else{}if(!random_device){random_device=function(){abort(\"random_device\")}}FS.createDevice(\"/dev\",\"random\",random_device);FS.createDevice(\"/dev\",\"urandom\",random_device);FS.mkdir(\"/dev/shm\");FS.mkdir(\"/dev/shm/tmp\")},createSpecialDirectories:function(){FS.mkdir(\"/proc\");FS.mkdir(\"/proc/self\");FS.mkdir(\"/proc/self/fd\");FS.mount({mount:function(){var node=FS.createNode(\"/proc/self\",\"fd\",16384|511,73);node.node_ops={lookup:function(parent,name){var fd=+name;var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);var ret={parent:null,mount:{mountpoint:\"fake\"},node_ops:{readlink:function(){return stream.path}}};ret.parent=ret;return ret}};return node}},{},\"/proc/self/fd\")},createStandardStreams:function(){if(Module[\"stdin\"]){FS.createDevice(\"/dev\",\"stdin\",Module[\"stdin\"])}else{FS.symlink(\"/dev/tty\",\"/dev/stdin\")}if(Module[\"stdout\"]){FS.createDevice(\"/dev\",\"stdout\",null,Module[\"stdout\"])}else{FS.symlink(\"/dev/tty\",\"/dev/stdout\")}if(Module[\"stderr\"]){FS.createDevice(\"/dev\",\"stderr\",null,Module[\"stderr\"])}else{FS.symlink(\"/dev/tty1\",\"/dev/stderr\")}var stdin=FS.open(\"/dev/stdin\",\"r\");var stdout=FS.open(\"/dev/stdout\",\"w\");var stderr=FS.open(\"/dev/stderr\",\"w\")},ensureErrnoError:function(){if(FS.ErrnoError)return;FS.ErrnoError=function ErrnoError(errno,node){this.node=node;this.setErrno=function(errno){this.errno=errno};this.setErrno(errno);this.message=\"FS error\"};FS.ErrnoError.prototype=new Error;FS.ErrnoError.prototype.constructor=FS.ErrnoError;[44].forEach(function(code){FS.genericErrors[code]=new FS.ErrnoError(code);FS.genericErrors[code].stack=\"<generic error, no stack>\"})},staticInit:function(){FS.ensureErrnoError();FS.nameTable=new Array(4096);FS.mount(MEMFS,{},\"/\");FS.createDefaultDirectories();FS.createDefaultDevices();FS.createSpecialDirectories();FS.filesystems={\"MEMFS\":MEMFS}},init:function(input,output,error){FS.init.initialized=true;FS.ensureErrnoError();Module[\"stdin\"]=input||Module[\"stdin\"];Module[\"stdout\"]=output||Module[\"stdout\"];Module[\"stderr\"]=error||Module[\"stderr\"];FS.createStandardStreams()},quit:function(){FS.init.initialized=false;var fflush=Module[\"_fflush\"];if(fflush)fflush(0);for(var i=0;i<FS.streams.length;i++){var stream=FS.streams[i];if(!stream){continue}FS.close(stream)}},getMode:function(canRead,canWrite){var mode=0;if(canRead)mode|=292|73;if(canWrite)mode|=146;return mode},joinPath:function(parts,forceRelative){var path=PATH.join.apply(null,parts);if(forceRelative&&path[0]==\"/\")path=path.substr(1);return path},absolutePath:function(relative,base){return PATH_FS.resolve(base,relative)},standardizePath:function(path){return PATH.normalize(path)},findObject:function(path,dontResolveLastLink){var ret=FS.analyzePath(path,dontResolveLastLink);if(ret.exists){return ret.object}else{setErrNo(ret.error);return null}},analyzePath:function(path,dontResolveLastLink){try{var lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});path=lookup.path}catch(e){}var ret={isRoot:false,exists:false,error:0,name:null,path:null,object:null,parentExists:false,parentPath:null,parentObject:null};try{var lookup=FS.lookupPath(path,{parent:true});ret.parentExists=true;ret.parentPath=lookup.path;ret.parentObject=lookup.node;ret.name=PATH.basename(path);lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});ret.exists=true;ret.path=lookup.path;ret.object=lookup.node;ret.name=lookup.node.name;ret.isRoot=lookup.path===\"/\"}catch(e){ret.error=e.errno}return ret},createFolder:function(parent,name,canRead,canWrite){var path=PATH.join2(typeof parent===\"string\"?parent:FS.getPath(parent),name);var mode=FS.getMode(canRead,canWrite);return FS.mkdir(path,mode)},createPath:function(parent,path,canRead,canWrite){parent=typeof parent===\"string\"?parent:FS.getPath(parent);var parts=path.split(\"/\").reverse();while(parts.length){var part=parts.pop();if(!part)continue;var current=PATH.join2(parent,part);try{FS.mkdir(current)}catch(e){}parent=current}return current},createFile:function(parent,name,properties,canRead,canWrite){var path=PATH.join2(typeof parent===\"string\"?parent:FS.getPath(parent),name);var mode=FS.getMode(canRead,canWrite);return FS.create(path,mode)},createDataFile:function(parent,name,data,canRead,canWrite,canOwn){var path=name?PATH.join2(typeof parent===\"string\"?parent:FS.getPath(parent),name):parent;var mode=FS.getMode(canRead,canWrite);var node=FS.create(path,mode);if(data){if(typeof data===\"string\"){var arr=new Array(data.length);for(var i=0,len=data.length;i<len;++i)arr[i]=data.charCodeAt(i);data=arr}FS.chmod(node,mode|146);var stream=FS.open(node,\"w\");FS.write(stream,data,0,data.length,0,canOwn);FS.close(stream);FS.chmod(node,mode)}return node},createDevice:function(parent,name,input,output){var path=PATH.join2(typeof parent===\"string\"?parent:FS.getPath(parent),name);var mode=FS.getMode(!!input,!!output);if(!FS.createDevice.major)FS.createDevice.major=64;var dev=FS.makedev(FS.createDevice.major++,0);FS.registerDevice(dev,{open:function(stream){stream.seekable=false},close:function(stream){if(output&&output.buffer&&output.buffer.length){output(10)}},read:function(stream,buffer,offset,length,pos){var bytesRead=0;for(var i=0;i<length;i++){var result;try{result=input()}catch(e){throw new FS.ErrnoError(29)}if(result===undefined&&bytesRead===0){throw new FS.ErrnoError(6)}if(result===null||result===undefined)break;bytesRead++;buffer[offset+i]=result}if(bytesRead){stream.node.timestamp=Date.now()}return bytesRead},write:function(stream,buffer,offset,length,pos){for(var i=0;i<length;i++){try{output(buffer[offset+i])}catch(e){throw new FS.ErrnoError(29)}}if(length){stream.node.timestamp=Date.now()}return i}});return FS.mkdev(path,mode,dev)},createLink:function(parent,name,target,canRead,canWrite){var path=PATH.join2(typeof parent===\"string\"?parent:FS.getPath(parent),name);return FS.symlink(target,path)},forceLoadFile:function(obj){if(obj.isDevice||obj.isFolder||obj.link||obj.contents)return true;var success=true;if(typeof XMLHttpRequest!==\"undefined\"){throw new Error(\"Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.\")}else if(read_){try{obj.contents=intArrayFromString(read_(obj.url),true);obj.usedBytes=obj.contents.length}catch(e){success=false}}else{throw new Error(\"Cannot load without read() or XMLHttpRequest.\")}if(!success)setErrNo(29);return success},createLazyFile:function(parent,name,url,canRead,canWrite){function LazyUint8Array(){this.lengthKnown=false;this.chunks=[]}LazyUint8Array.prototype.get=function LazyUint8Array_get(idx){if(idx>this.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open(\"HEAD\",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error(\"Couldn't load \"+url+\". Status: \"+xhr.status);var datalength=Number(xhr.getResponseHeader(\"Content-length\"));var header;var hasByteServing=(header=xhr.getResponseHeader(\"Accept-Ranges\"))&&header===\"bytes\";var usesGzip=(header=xhr.getResponseHeader(\"Content-Encoding\"))&&header===\"gzip\";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=function(from,to){if(from>to)throw new Error(\"invalid range (\"+from+\", \"+to+\") or no bytes requested!\");if(to>datalength-1)throw new Error(\"only \"+datalength+\" bytes available! programmer error!\");var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);if(datalength!==chunkSize)xhr.setRequestHeader(\"Range\",\"bytes=\"+from+\"-\"+to);if(typeof Uint8Array!=\"undefined\")xhr.responseType=\"arraybuffer\";if(xhr.overrideMimeType){xhr.overrideMimeType(\"text/plain; charset=x-user-defined\")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error(\"Couldn't load \"+url+\". Status: \"+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||\"\",true)}};var lazyArray=this;lazyArray.setDataGetter(function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]===\"undefined\"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]===\"undefined\")throw new Error(\"doXHR failed!\");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out(\"LazyFiles on gzip forces download of the whole file when length is accessed\")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!==\"undefined\"){if(!ENVIRONMENT_IS_WORKER)throw\"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc\";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){if(!FS.forceLoadFile(node)){throw new FS.ErrnoError(29)}return fn.apply(null,arguments)}});stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){if(!FS.forceLoadFile(node)){throw new FS.ErrnoError(29)}var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i<size;i++){buffer[offset+i]=contents[position+i]}}else{for(var i=0;i<size;i++){buffer[offset+i]=contents.get(position+i)}}return size};node.stream_ops=stream_ops;return node},createPreloadedFile:function(parent,name,url,canRead,canWrite,onload,onerror,dontCreateFile,canOwn,preFinish){Browser.init();var fullname=name?PATH_FS.resolve(PATH.join2(parent,name)):parent;var dep=getUniqueRunDependency(\"cp \"+fullname);function processData(byteArray){function finish(byteArray){if(preFinish)preFinish();if(!dontCreateFile){FS.createDataFile(parent,name,byteArray,canRead,canWrite,canOwn)}if(onload)onload();removeRunDependency(dep)}var handled=false;Module[\"preloadPlugins\"].forEach(function(plugin){if(handled)return;if(plugin[\"canHandle\"](fullname)){plugin[\"handle\"](byteArray,fullname,finish,function(){if(onerror)onerror();removeRunDependency(dep)});handled=true}});if(!handled)finish(byteArray)}addRunDependency(dep);if(typeof url==\"string\"){Browser.asyncLoad(url,function(byteArray){processData(byteArray)},onerror)}else{processData(url)}},indexedDB:function(){return window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB},DB_NAME:function(){return\"EM_FS_\"+window.location.pathname},DB_VERSION:20,DB_STORE_NAME:\"FILE_DATA\",saveFilesToDB:function(paths,onload,onerror){onload=onload||function(){};onerror=onerror||function(){};var indexedDB=FS.indexedDB();try{var openRequest=indexedDB.open(FS.DB_NAME(),FS.DB_VERSION)}catch(e){return onerror(e)}openRequest.onupgradeneeded=function openRequest_onupgradeneeded(){out(\"creating db\");var db=openRequest.result;db.createObjectStore(FS.DB_STORE_NAME)};openRequest.onsuccess=function openRequest_onsuccess(){var db=openRequest.result;var transaction=db.transaction([FS.DB_STORE_NAME],\"readwrite\");var files=transaction.objectStore(FS.DB_STORE_NAME);var ok=0,fail=0,total=paths.length;function finish(){if(fail==0)onload();else onerror()}paths.forEach(function(path){var putRequest=files.put(FS.analyzePath(path).object.contents,path);putRequest.onsuccess=function putRequest_onsuccess(){ok++;if(ok+fail==total)finish()};putRequest.onerror=function putRequest_onerror(){fail++;if(ok+fail==total)finish()}});transaction.onerror=onerror};openRequest.onerror=onerror},loadFilesFromDB:function(paths,onload,onerror){onload=onload||function(){};onerror=onerror||function(){};var indexedDB=FS.indexedDB();try{var openRequest=indexedDB.open(FS.DB_NAME(),FS.DB_VERSION)}catch(e){return onerror(e)}openRequest.onupgradeneeded=onerror;openRequest.onsuccess=function openRequest_onsuccess(){var db=openRequest.result;try{var transaction=db.transaction([FS.DB_STORE_NAME],\"readonly\")}catch(e){onerror(e);return}var files=transaction.objectStore(FS.DB_STORE_NAME);var ok=0,fail=0,total=paths.length;function finish(){if(fail==0)onload();else onerror()}paths.forEach(function(path){var getRequest=files.get(path);getRequest.onsuccess=function getRequest_onsuccess(){if(FS.analyzePath(path).exists){FS.unlink(path)}FS.createDataFile(PATH.dirname(path),PATH.basename(path),getRequest.result,true,true,true);ok++;if(ok+fail==total)finish()};getRequest.onerror=function getRequest_onerror(){fail++;if(ok+fail==total)finish()}});transaction.onerror=onerror};openRequest.onerror=onerror}};var SYSCALLS={mappings:{},DEFAULT_POLLMASK:5,umask:511,calculateAt:function(dirfd,path){if(path[0]!==\"/\"){var dir;if(dirfd===-100){dir=FS.cwd()}else{var dirstream=FS.getStream(dirfd);if(!dirstream)throw new FS.ErrnoError(8);dir=dirstream.path}path=PATH.join2(dir,path)}return path},doStat:function(func,path,buf){try{var stat=func(path)}catch(e){if(e&&e.node&&PATH.normalize(path)!==PATH.normalize(FS.getPath(e.node))){return-54}throw e}HEAP32[buf>>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math_abs(tempDouble)>=1?tempDouble>0?(Math_min(+Math_floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math_ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math_abs(tempDouble)>=1?tempDouble>0?(Math_min(+Math_floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math_ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},doMkdir:function(path,mode){path=PATH.normalize(path);if(path[path.length-1]===\"/\")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-28}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;if(!node){return-44}var perms=\"\";if(amode&4)perms+=\"r\";if(amode&2)perms+=\"w\";if(amode&1)perms+=\"x\";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0},doDup:function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i<iovcnt;i++){var ptr=HEAP32[iov+i*8>>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr<len)break}return ret},doWritev:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i<iovcnt;i++){var ptr=HEAP32[iov+i*8>>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream},get64:function(low,high){return low}};function ___sys_fcntl64(fd,cmd,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(cmd){case 0:{var arg=SYSCALLS.get();if(arg<0){return-28}var newStream;newStream=FS.open(stream.path,stream.flags,0,arg);return newStream.fd}case 1:case 2:return 0;case 3:return stream.flags;case 4:{var arg=SYSCALLS.get();stream.flags|=arg;return 0}case 12:{var arg=SYSCALLS.get();var offset=0;HEAP16[arg+offset>>1]=2;return 0}case 13:case 14:return 0;case 16:case 8:return-28;case 9:setErrNo(28);return-1;default:{return-28}}}catch(e){if(typeof FS===\"undefined\"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___sys_ioctl(fd,op,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(op){case 21509:case 21505:{if(!stream.tty)return-59;return 0}case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:{if(!stream.tty)return-59;return 0}case 21519:{if(!stream.tty)return-59;var argp=SYSCALLS.get();HEAP32[argp>>2]=0;return 0}case 21520:{if(!stream.tty)return-59;return-28}case 21531:{var argp=SYSCALLS.get();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return-59;return 0}case 21524:{if(!stream.tty)return-59;return 0}default:abort(\"bad ioctl syscall \"+op)}}catch(e){if(typeof FS===\"undefined\"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function syscallMunmap(addr,len){if((addr|0)===-1||len===0){return-28}var info=SYSCALLS.mappings[addr];if(!info)return 0;if(len===info.len){var stream=FS.getStream(info.fd);if(info.prot&2){SYSCALLS.doMsync(addr,stream,len,info.flags,info.offset)}FS.munmap(stream);SYSCALLS.mappings[addr]=null;if(info.allocated){_free(info.malloc)}}return 0}function ___sys_munmap(addr,len){try{return syscallMunmap(addr,len)}catch(e){if(typeof FS===\"undefined\"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___sys_open(path,flags,varargs){SYSCALLS.varargs=varargs;try{var pathname=SYSCALLS.getStr(path);var mode=SYSCALLS.get();var stream=FS.open(pathname,flags,mode);return stream.fd}catch(e){if(typeof FS===\"undefined\"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function getShiftFromSize(size){switch(size){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError(\"Unknown type size: \"+size)}}function embind_init_charCodes(){var codes=new Array(256);for(var i=0;i<256;++i){codes[i]=String.fromCharCode(i)}embind_charCodes=codes}var embind_charCodes=undefined;function readLatin1String(ptr){var ret=\"\";var c=ptr;while(HEAPU8[c]){ret+=embind_charCodes[HEAPU8[c++]]}return ret}var awaitingDependencies={};var registeredTypes={};var typeDependencies={};var char_0=48;var char_9=57;function makeLegalFunctionName(name){if(undefined===name){return\"_unknown\"}name=name.replace(/[^a-zA-Z0-9_]/g,\"$\");var f=name.charCodeAt(0);if(f>=char_0&&f<=char_9){return\"_\"+name}else{return name}}function createNamedFunction(name,body){name=makeLegalFunctionName(name);return new Function(\"body\",\"return function \"+name+\"() {\\n\"+' \"use strict\";'+\" return body.apply(this, arguments);\\n\"+\"};\\n\")(body)}function extendError(baseErrorType,errorName){var errorClass=createNamedFunction(errorName,function(message){this.name=errorName;this.message=message;var stack=new Error(message).stack;if(stack!==undefined){this.stack=this.toString()+\"\\n\"+stack.replace(/^Error(:[^\\n]*)?\\n/,\"\")}});errorClass.prototype=Object.create(baseErrorType.prototype);errorClass.prototype.constructor=errorClass;errorClass.prototype.toString=function(){if(this.message===undefined){return this.name}else{return this.name+\": \"+this.message}};return errorClass}var BindingError=undefined;function throwBindingError(message){throw new BindingError(message)}var InternalError=undefined;function throwInternalError(message){throw new InternalError(message)}function whenDependentTypesAreResolved(myTypes,dependentTypes,getTypeConverters){myTypes.forEach(function(type){typeDependencies[type]=dependentTypes});function onComplete(typeConverters){var myTypeConverters=getTypeConverters(typeConverters);if(myTypeConverters.length!==myTypes.length){throwInternalError(\"Mismatched type converter count\")}for(var i=0;i<myTypes.length;++i){registerType(myTypes[i],myTypeConverters[i])}}var typeConverters=new Array(dependentTypes.length);var unregisteredTypes=[];var registered=0;dependentTypes.forEach(function(dt,i){if(registeredTypes.hasOwnProperty(dt)){typeConverters[i]=registeredTypes[dt]}else{unregisteredTypes.push(dt);if(!awaitingDependencies.hasOwnProperty(dt)){awaitingDependencies[dt]=[]}awaitingDependencies[dt].push(function(){typeConverters[i]=registeredTypes[dt];++registered;if(registered===unregisteredTypes.length){onComplete(typeConverters)}})}});if(0===unregisteredTypes.length){onComplete(typeConverters)}}function registerType(rawType,registeredInstance,options){options=options||{};if(!(\"argPackAdvance\"in registeredInstance)){throw new TypeError(\"registerType registeredInstance requires argPackAdvance\")}var name=registeredInstance.name;if(!rawType){throwBindingError('type \"'+name+'\" must have a positive integer typeid pointer')}if(registeredTypes.hasOwnProperty(rawType)){if(options.ignoreDuplicateRegistrations){return}else{throwBindingError(\"Cannot register type '\"+name+\"' twice\")}}registeredTypes[rawType]=registeredInstance;delete typeDependencies[rawType];if(awaitingDependencies.hasOwnProperty(rawType)){var callbacks=awaitingDependencies[rawType];delete awaitingDependencies[rawType];callbacks.forEach(function(cb){cb()})}}function __embind_register_bool(rawType,name,size,trueValue,falseValue){var shift=getShiftFromSize(size);name=readLatin1String(name);registerType(rawType,{name:name,\"fromWireType\":function(wt){return!!wt},\"toWireType\":function(destructors,o){return o?trueValue:falseValue},\"argPackAdvance\":8,\"readValueFromPointer\":function(pointer){var heap;if(size===1){heap=HEAP8}else if(size===2){heap=HEAP16}else if(size===4){heap=HEAP32}else{throw new TypeError(\"Unknown boolean type size: \"+name)}return this[\"fromWireType\"](heap[pointer>>shift])},destructorFunction:null})}function ClassHandle_isAliasOf(other){if(!(this instanceof ClassHandle)){return false}if(!(other instanceof ClassHandle)){return false}var leftClass=this.$$.ptrType.registeredClass;var left=this.$$.ptr;var rightClass=other.$$.ptrType.registeredClass;var right=other.$$.ptr;while(leftClass.baseClass){left=leftClass.upcast(left);leftClass=leftClass.baseClass}while(rightClass.baseClass){right=rightClass.upcast(right);rightClass=rightClass.baseClass}return leftClass===rightClass&&left===right}function shallowCopyInternalPointer(o){return{count:o.count,deleteScheduled:o.deleteScheduled,preservePointerOnDelete:o.preservePointerOnDelete,ptr:o.ptr,ptrType:o.ptrType,smartPtr:o.smartPtr,smartPtrType:o.smartPtrType}}function throwInstanceAlreadyDeleted(obj){function getInstanceTypeName(handle){return handle.$$.ptrType.registeredClass.name}throwBindingError(getInstanceTypeName(obj)+\" instance already deleted\")}var finalizationGroup=false;function detachFinalizer(handle){}function runDestructor($$){if($$.smartPtr){$$.smartPtrType.rawDestructor($$.smartPtr)}else{$$.ptrType.registeredClass.rawDestructor($$.ptr)}}function releaseClassHandle($$){$$.count.value-=1;var toDelete=0===$$.count.value;if(toDelete){runDestructor($$)}}function attachFinalizer(handle){if(\"undefined\"===typeof FinalizationGroup){attachFinalizer=function(handle){return handle};return handle}finalizationGroup=new FinalizationGroup(function(iter){for(var result=iter.next();!result.done;result=iter.next()){var $$=result.value;if(!$$.ptr){console.warn(\"object already deleted: \"+$$.ptr)}else{releaseClassHandle($$)}}});attachFinalizer=function(handle){finalizationGroup.register(handle,handle.$$,handle.$$);return handle};detachFinalizer=function(handle){finalizationGroup.unregister(handle.$$)};return attachFinalizer(handle)}function ClassHandle_clone(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this)}if(this.$$.preservePointerOnDelete){this.$$.count.value+=1;return this}else{var clone=attachFinalizer(Object.create(Object.getPrototypeOf(this),{$$:{value:shallowCopyInternalPointer(this.$$)}}));clone.$$.count.value+=1;clone.$$.deleteScheduled=false;return clone}}function ClassHandle_delete(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this)}if(this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete){throwBindingError(\"Object already scheduled for deletion\")}detachFinalizer(this);releaseClassHandle(this.$$);if(!this.$$.preservePointerOnDelete){this.$$.smartPtr=undefined;this.$$.ptr=undefined}}function ClassHandle_isDeleted(){return!this.$$.ptr}var delayFunction=undefined;var deletionQueue=[];function flushPendingDeletes(){while(deletionQueue.length){var obj=deletionQueue.pop();obj.$$.deleteScheduled=false;obj[\"delete\"]()}}function ClassHandle_deleteLater(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this)}if(this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete){throwBindingError(\"Object already scheduled for deletion\")}deletionQueue.push(this);if(deletionQueue.length===1&&delayFunction){delayFunction(flushPendingDeletes)}this.$$.deleteScheduled=true;return this}function init_ClassHandle(){ClassHandle.prototype[\"isAliasOf\"]=ClassHandle_isAliasOf;ClassHandle.prototype[\"clone\"]=ClassHandle_clone;ClassHandle.prototype[\"delete\"]=ClassHandle_delete;ClassHandle.prototype[\"isDeleted\"]=ClassHandle_isDeleted;ClassHandle.prototype[\"deleteLater\"]=ClassHandle_deleteLater}function ClassHandle(){}var registeredPointers={};function ensureOverloadTable(proto,methodName,humanName){if(undefined===proto[methodName].overloadTable){var prevFunc=proto[methodName];proto[methodName]=function(){if(!proto[methodName].overloadTable.hasOwnProperty(arguments.length)){throwBindingError(\"Function '\"+humanName+\"' called with an invalid number of arguments (\"+arguments.length+\") - expects one of (\"+proto[methodName].overloadTable+\")!\")}return proto[methodName].overloadTable[arguments.length].apply(this,arguments)};proto[methodName].overloadTable=[];proto[methodName].overloadTable[prevFunc.argCount]=prevFunc}}function exposePublicSymbol(name,value,numArguments){if(Module.hasOwnProperty(name)){if(undefined===numArguments||undefined!==Module[name].overloadTable&&undefined!==Module[name].overloadTable[numArguments]){throwBindingError(\"Cannot register public name '\"+name+\"' twice\")}ensureOverloadTable(Module,name,name);if(Module.hasOwnProperty(numArguments)){throwBindingError(\"Cannot register multiple overloads of a function with the same number of arguments (\"+numArguments+\")!\")}Module[name].overloadTable[numArguments]=value}else{Module[name]=value;if(undefined!==numArguments){Module[name].numArguments=numArguments}}}function RegisteredClass(name,constructor,instancePrototype,rawDestructor,baseClass,getActualType,upcast,downcast){this.name=name;this.constructor=constructor;this.instancePrototype=instancePrototype;this.rawDestructor=rawDestructor;this.baseClass=baseClass;this.getActualType=getActualType;this.upcast=upcast;this.downcast=downcast;this.pureVirtualFunctions=[]}function upcastPointer(ptr,ptrClass,desiredClass){while(ptrClass!==desiredClass){if(!ptrClass.upcast){throwBindingError(\"Expected null or instance of \"+desiredClass.name+\", got an instance of \"+ptrClass.name)}ptr=ptrClass.upcast(ptr);ptrClass=ptrClass.baseClass}return ptr}function constNoSmartPtrRawPointerToWireType(destructors,handle){if(handle===null){if(this.isReference){throwBindingError(\"null is not a valid \"+this.name)}return 0}if(!handle.$$){throwBindingError('Cannot pass \"'+_embind_repr(handle)+'\" as a '+this.name)}if(!handle.$$.ptr){throwBindingError(\"Cannot pass deleted object as a pointer of type \"+this.name)}var handleClass=handle.$$.ptrType.registeredClass;var ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);return ptr}function genericPointerToWireType(destructors,handle){var ptr;if(handle===null){if(this.isReference){throwBindingError(\"null is not a valid \"+this.name)}if(this.isSmartPointer){ptr=this.rawConstructor();if(destructors!==null){destructors.push(this.rawDestructor,ptr)}return ptr}else{return 0}}if(!handle.$$){throwBindingError('Cannot pass \"'+_embind_repr(handle)+'\" as a '+this.name)}if(!handle.$$.ptr){throwBindingError(\"Cannot pass deleted object as a pointer of type \"+this.name)}if(!this.isConst&&handle.$$.ptrType.isConst){throwBindingError(\"Cannot convert argument of type \"+(handle.$$.smartPtrType?handle.$$.smartPtrType.name:handle.$$.ptrType.name)+\" to parameter type \"+this.name)}var handleClass=handle.$$.ptrType.registeredClass;ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);if(this.isSmartPointer){if(undefined===handle.$$.smartPtr){throwBindingError(\"Passing raw pointer to smart pointer is illegal\")}switch(this.sharingPolicy){case 0:if(handle.$$.smartPtrType===this){ptr=handle.$$.smartPtr}else{throwBindingError(\"Cannot convert argument of type \"+(handle.$$.smartPtrType?handle.$$.smartPtrType.name:handle.$$.ptrType.name)+\" to parameter type \"+this.name)}break;case 1:ptr=handle.$$.smartPtr;break;case 2:if(handle.$$.smartPtrType===this){ptr=handle.$$.smartPtr}else{var clonedHandle=handle[\"clone\"]();ptr=this.rawShare(ptr,__emval_register(function(){clonedHandle[\"delete\"]()}));if(destructors!==null){destructors.push(this.rawDestructor,ptr)}}break;default:throwBindingError(\"Unsupporting sharing policy\")}}return ptr}function nonConstNoSmartPtrRawPointerToWireType(destructors,handle){if(handle===null){if(this.isReference){throwBindingError(\"null is not a valid \"+this.name)}return 0}if(!handle.$$){throwBindingError('Cannot pass \"'+_embind_repr(handle)+'\" as a '+this.name)}if(!handle.$$.ptr){throwBindingError(\"Cannot pass deleted object as a pointer of type \"+this.name)}if(handle.$$.ptrType.isConst){throwBindingError(\"Cannot convert argument of type \"+handle.$$.ptrType.name+\" to parameter type \"+this.name)}var handleClass=handle.$$.ptrType.registeredClass;var ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);return ptr}function simpleReadValueFromPointer(pointer){return this[\"fromWireType\"](HEAPU32[pointer>>2])}function RegisteredPointer_getPointee(ptr){if(this.rawGetPointee){ptr=this.rawGetPointee(ptr)}return ptr}function RegisteredPointer_destructor(ptr){if(this.rawDestructor){this.rawDestructor(ptr)}}function RegisteredPointer_deleteObject(handle){if(handle!==null){handle[\"delete\"]()}}function downcastPointer(ptr,ptrClass,desiredClass){if(ptrClass===desiredClass){return ptr}if(undefined===desiredClass.baseClass){return null}var rv=downcastPointer(ptr,ptrClass,desiredClass.baseClass);if(rv===null){return null}return desiredClass.downcast(rv)}function getInheritedInstanceCount(){return Object.keys(registeredInstances).length}function getLiveInheritedInstances(){var rv=[];for(var k in registeredInstances){if(registeredInstances.hasOwnProperty(k)){rv.push(registeredInstances[k])}}return rv}function setDelayFunction(fn){delayFunction=fn;if(deletionQueue.length&&delayFunction){delayFunction(flushPendingDeletes)}}function init_embind(){Module[\"getInheritedInstanceCount\"]=getInheritedInstanceCount;Module[\"getLiveInheritedInstances\"]=getLiveInheritedInstances;Module[\"flushPendingDeletes\"]=flushPendingDeletes;Module[\"setDelayFunction\"]=setDelayFunction}var registeredInstances={};function getBasestPointer(class_,ptr){if(ptr===undefined){throwBindingError(\"ptr should not be undefined\")}while(class_.baseClass){ptr=class_.upcast(ptr);class_=class_.baseClass}return ptr}function getInheritedInstance(class_,ptr){ptr=getBasestPointer(class_,ptr);return registeredInstances[ptr]}function makeClassHandle(prototype,record){if(!record.ptrType||!record.ptr){throwInternalError(\"makeClassHandle requires ptr and ptrType\")}var hasSmartPtrType=!!record.smartPtrType;var hasSmartPtr=!!record.smartPtr;if(hasSmartPtrType!==hasSmartPtr){throwInternalError(\"Both smartPtrType and smartPtr must be specified\")}record.count={value:1};return attachFinalizer(Object.create(prototype,{$$:{value:record}}))}function RegisteredPointer_fromWireType(ptr){var rawPointer=this.getPointee(ptr);if(!rawPointer){this.destructor(ptr);return null}var registeredInstance=getInheritedInstance(this.registeredClass,rawPointer);if(undefined!==registeredInstance){if(0===registeredInstance.$$.count.value){registeredInstance.$$.ptr=rawPointer;registeredInstance.$$.smartPtr=ptr;return registeredInstance[\"clone\"]()}else{var rv=registeredInstance[\"clone\"]();this.destructor(ptr);return rv}}function makeDefaultHandle(){if(this.isSmartPointer){return makeClassHandle(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:rawPointer,smartPtrType:this,smartPtr:ptr})}else{return makeClassHandle(this.registeredClass.instancePrototype,{ptrType:this,ptr:ptr})}}var actualType=this.registeredClass.getActualType(rawPointer);var registeredPointerRecord=registeredPointers[actualType];if(!registeredPointerRecord){return makeDefaultHandle.call(this)}var toType;if(this.isConst){toType=registeredPointerRecord.constPointerType}else{toType=registeredPointerRecord.pointerType}var dp=downcastPointer(rawPointer,this.registeredClass,toType.registeredClass);if(dp===null){return makeDefaultHandle.call(this)}if(this.isSmartPointer){return makeClassHandle(toType.registeredClass.instancePrototype,{ptrType:toType,ptr:dp,smartPtrType:this,smartPtr:ptr})}else{return makeClassHandle(toType.registeredClass.instancePrototype,{ptrType:toType,ptr:dp})}}function init_RegisteredPointer(){RegisteredPointer.prototype.getPointee=RegisteredPointer_getPointee;RegisteredPointer.prototype.destructor=RegisteredPointer_destructor;RegisteredPointer.prototype[\"argPackAdvance\"]=8;RegisteredPointer.prototype[\"readValueFromPointer\"]=simpleReadValueFromPointer;RegisteredPointer.prototype[\"deleteObject\"]=RegisteredPointer_deleteObject;RegisteredPointer.prototype[\"fromWireType\"]=RegisteredPointer_fromWireType}function RegisteredPointer(name,registeredClass,isReference,isConst,isSmartPointer,pointeeType,sharingPolicy,rawGetPointee,rawConstructor,rawShare,rawDestructor){this.name=name;this.registeredClass=registeredClass;this.isReference=isReference;this.isConst=isConst;this.isSmartPointer=isSmartPointer;this.pointeeType=pointeeType;this.sharingPolicy=sharingPolicy;this.rawGetPointee=rawGetPointee;this.rawConstructor=rawConstructor;this.rawShare=rawShare;this.rawDestructor=rawDestructor;if(!isSmartPointer&&registeredClass.baseClass===undefined){if(isConst){this[\"toWireType\"]=constNoSmartPtrRawPointerToWireType;this.destructorFunction=null}else{this[\"toWireType\"]=nonConstNoSmartPtrRawPointerToWireType;this.destructorFunction=null}}else{this[\"toWireType\"]=genericPointerToWireType}}function replacePublicSymbol(name,value,numArguments){if(!Module.hasOwnProperty(name)){throwInternalError(\"Replacing nonexistant public symbol\")}if(undefined!==Module[name].overloadTable&&undefined!==numArguments){Module[name].overloadTable[numArguments]=value}else{Module[name]=value;Module[name].argCount=numArguments}}function embind__requireFunction(signature,rawFunction){signature=readLatin1String(signature);function makeDynCaller(dynCall){var args=[];for(var i=1;i<signature.length;++i){args.push(\"a\"+i)}var name=\"dynCall_\"+signature+\"_\"+rawFunction;var body=\"return function \"+name+\"(\"+args.join(\", \")+\") {\\n\";body+=\" return dynCall(rawFunction\"+(args.length?\", \":\"\")+args.join(\", \")+\");\\n\";body+=\"};\\n\";return new Function(\"dynCall\",\"rawFunction\",body)(dynCall,rawFunction)}var dc=Module[\"dynCall_\"+signature];var fp=makeDynCaller(dc);if(typeof fp!==\"function\"){throwBindingError(\"unknown function pointer with signature \"+signature+\": \"+rawFunction)}return fp}var UnboundTypeError=undefined;function getTypeName(type){var ptr=___getTypeName(type);var rv=readLatin1String(ptr);_free(ptr);return rv}function throwUnboundTypeError(message,types){var unboundTypes=[];var seen={};function visit(type){if(seen[type]){return}if(registeredTypes[type]){return}if(typeDependencies[type]){typeDependencies[type].forEach(visit);return}unboundTypes.push(type);seen[type]=true}types.forEach(visit);throw new UnboundTypeError(message+\": \"+unboundTypes.map(getTypeName).join([\", \"]))}function __embind_register_class(rawType,rawPointerType,rawConstPointerType,baseClassRawType,getActualTypeSignature,getActualType,upcastSignature,upcast,downcastSignature,downcast,name,destructorSignature,rawDestructor){name=readLatin1String(name);getActualType=embind__requireFunction(getActualTypeSignature,getActualType);if(upcast){upcast=embind__requireFunction(upcastSignature,upcast)}if(downcast){downcast=embind__requireFunction(downcastSignature,downcast)}rawDestructor=embind__requireFunction(destructorSignature,rawDestructor);var legalFunctionName=makeLegalFunctionName(name);exposePublicSymbol(legalFunctionName,function(){throwUnboundTypeError(\"Cannot construct \"+name+\" due to unbound types\",[baseClassRawType])});whenDependentTypesAreResolved([rawType,rawPointerType,rawConstPointerType],baseClassRawType?[baseClassRawType]:[],function(base){base=base[0];var baseClass;var basePrototype;if(baseClassRawType){baseClass=base.registeredClass;basePrototype=baseClass.instancePrototype}else{basePrototype=ClassHandle.prototype}var constructor=createNamedFunction(legalFunctionName,function(){if(Object.getPrototypeOf(this)!==instancePrototype){throw new BindingError(\"Use 'new' to construct \"+name)}if(undefined===registeredClass.constructor_body){throw new BindingError(name+\" has no accessible constructor\")}var body=registeredClass.constructor_body[arguments.length];if(undefined===body){throw new BindingError(\"Tried to invoke ctor of \"+name+\" with invalid number of parameters (\"+arguments.length+\") - expected (\"+Object.keys(registeredClass.constructor_body).toString()+\") parameters instead!\")}return body.apply(this,arguments)});var instancePrototype=Object.create(basePrototype,{constructor:{value:constructor}});constructor.prototype=instancePrototype;var registeredClass=new RegisteredClass(name,constructor,instancePrototype,rawDestructor,baseClass,getActualType,upcast,downcast);var referenceConverter=new RegisteredPointer(name,registeredClass,true,false,false);var pointerConverter=new RegisteredPointer(name+\"*\",registeredClass,false,false,false);var constPointerConverter=new RegisteredPointer(name+\" const*\",registeredClass,false,true,false);registeredPointers[rawType]={pointerType:pointerConverter,constPointerType:constPointerConverter};replacePublicSymbol(legalFunctionName,constructor);return[referenceConverter,pointerConverter,constPointerConverter]})}function new_(constructor,argumentList){if(!(constructor instanceof Function)){throw new TypeError(\"new_ called with constructor type \"+typeof constructor+\" which is not a function\")}var dummy=createNamedFunction(constructor.name||\"unknownFunctionName\",function(){});dummy.prototype=constructor.prototype;var obj=new dummy;var r=constructor.apply(obj,argumentList);return r instanceof Object?r:obj}function runDestructors(destructors){while(destructors.length){var ptr=destructors.pop();var del=destructors.pop();del(ptr)}}function craftInvokerFunction(humanName,argTypes,classType,cppInvokerFunc,cppTargetFunc){var argCount=argTypes.length;if(argCount<2){throwBindingError(\"argTypes array size mismatch! Must at least get return value and 'this' types!\")}var isClassMethodFunc=argTypes[1]!==null&&classType!==null;var needsDestructorStack=false;for(var i=1;i<argTypes.length;++i){if(argTypes[i]!==null&&argTypes[i].destructorFunction===undefined){needsDestructorStack=true;break}}var returns=argTypes[0].name!==\"void\";var argsList=\"\";var argsListWired=\"\";for(var i=0;i<argCount-2;++i){argsList+=(i!==0?\", \":\"\")+\"arg\"+i;argsListWired+=(i!==0?\", \":\"\")+\"arg\"+i+\"Wired\"}var invokerFnBody=\"return function \"+makeLegalFunctionName(humanName)+\"(\"+argsList+\") {\\n\"+\"if (arguments.length !== \"+(argCount-2)+\") {\\n\"+\"throwBindingError('function \"+humanName+\" called with ' + arguments.length + ' arguments, expected \"+(argCount-2)+\" args!');\\n\"+\"}\\n\";if(needsDestructorStack){invokerFnBody+=\"var destructors = [];\\n\"}var dtorStack=needsDestructorStack?\"destructors\":\"null\";var args1=[\"throwBindingError\",\"invoker\",\"fn\",\"runDestructors\",\"retType\",\"classParam\"];var args2=[throwBindingError,cppInvokerFunc,cppTargetFunc,runDestructors,argTypes[0],argTypes[1]];if(isClassMethodFunc){invokerFnBody+=\"var thisWired = classParam.toWireType(\"+dtorStack+\", this);\\n\"}for(var i=0;i<argCount-2;++i){invokerFnBody+=\"var arg\"+i+\"Wired = argType\"+i+\".toWireType(\"+dtorStack+\", arg\"+i+\"); // \"+argTypes[i+2].name+\"\\n\";args1.push(\"argType\"+i);args2.push(argTypes[i+2])}if(isClassMethodFunc){argsListWired=\"thisWired\"+(argsListWired.length>0?\", \":\"\")+argsListWired}invokerFnBody+=(returns?\"var rv = \":\"\")+\"invoker(fn\"+(argsListWired.length>0?\", \":\"\")+argsListWired+\");\\n\";if(needsDestructorStack){invokerFnBody+=\"runDestructors(destructors);\\n\"}else{for(var i=isClassMethodFunc?1:2;i<argTypes.length;++i){var paramName=i===1?\"thisWired\":\"arg\"+(i-2)+\"Wired\";if(argTypes[i].destructorFunction!==null){invokerFnBody+=paramName+\"_dtor(\"+paramName+\"); // \"+argTypes[i].name+\"\\n\";args1.push(paramName+\"_dtor\");args2.push(argTypes[i].destructorFunction)}}}if(returns){invokerFnBody+=\"var ret = retType.fromWireType(rv);\\n\"+\"return ret;\\n\"}else{}invokerFnBody+=\"}\\n\";args1.push(invokerFnBody);var invokerFunction=new_(Function,args1).apply(null,args2);return invokerFunction}function heap32VectorToArray(count,firstElement){var array=[];for(var i=0;i<count;i++){array.push(HEAP32[(firstElement>>2)+i])}return array}function __embind_register_class_function(rawClassType,methodName,argCount,rawArgTypesAddr,invokerSignature,rawInvoker,context,isPureVirtual){var rawArgTypes=heap32VectorToArray(argCount,rawArgTypesAddr);methodName=readLatin1String(methodName);rawInvoker=embind__requireFunction(invokerSignature,rawInvoker);whenDependentTypesAreResolved([],[rawClassType],function(classType){classType=classType[0];var humanName=classType.name+\".\"+methodName;if(isPureVirtual){classType.registeredClass.pureVirtualFunctions.push(methodName)}function unboundTypesHandler(){throwUnboundTypeError(\"Cannot call \"+humanName+\" due to unbound types\",rawArgTypes)}var proto=classType.registeredClass.instancePrototype;var method=proto[methodName];if(undefined===method||undefined===method.overloadTable&&method.className!==classType.name&&method.argCount===argCount-2){unboundTypesHandler.argCount=argCount-2;unboundTypesHandler.className=classType.name;proto[methodName]=unboundTypesHandler}else{ensureOverloadTable(proto,methodName,humanName);proto[methodName].overloadTable[argCount-2]=unboundTypesHandler}whenDependentTypesAreResolved([],rawArgTypes,function(argTypes){var memberFunction=craftInvokerFunction(humanName,argTypes,classType,rawInvoker,context);if(undefined===proto[methodName].overloadTable){memberFunction.argCount=argCount-2;proto[methodName]=memberFunction}else{proto[methodName].overloadTable[argCount-2]=memberFunction}return[]});return[]})}var emval_free_list=[];var emval_handle_array=[{},{value:undefined},{value:null},{value:true},{value:false}];function __emval_decref(handle){if(handle>4&&0===--emval_handle_array[handle].refcount){emval_handle_array[handle]=undefined;emval_free_list.push(handle)}}function count_emval_handles(){var count=0;for(var i=5;i<emval_handle_array.length;++i){if(emval_handle_array[i]!==undefined){++count}}return count}function get_first_emval(){for(var i=5;i<emval_handle_array.length;++i){if(emval_handle_array[i]!==undefined){return emval_handle_array[i]}}return null}function init_emval(){Module[\"count_emval_handles\"]=count_emval_handles;Module[\"get_first_emval\"]=get_first_emval}function __emval_register(value){switch(value){case undefined:{return 1}case null:{return 2}case true:{return 3}case false:{return 4}default:{var handle=emval_free_list.length?emval_free_list.pop():emval_handle_array.length;emval_handle_array[handle]={refcount:1,value:value};return handle}}}function __embind_register_emval(rawType,name){name=readLatin1String(name);registerType(rawType,{name:name,\"fromWireType\":function(handle){var rv=emval_handle_array[handle].value;__emval_decref(handle);return rv},\"toWireType\":function(destructors,value){return __emval_register(value)},\"argPackAdvance\":8,\"readValueFromPointer\":simpleReadValueFromPointer,destructorFunction:null})}function _embind_repr(v){if(v===null){return\"null\"}var t=typeof v;if(t===\"object\"||t===\"array\"||t===\"function\"){return v.toString()}else{return\"\"+v}}function floatReadValueFromPointer(name,shift){switch(shift){case 2:return function(pointer){return this[\"fromWireType\"](HEAPF32[pointer>>2])};case 3:return function(pointer){return this[\"fromWireType\"](HEAPF64[pointer>>3])};default:throw new TypeError(\"Unknown float type: \"+name)}}function __embind_register_float(rawType,name,size){var shift=getShiftFromSize(size);name=readLatin1String(name);registerType(rawType,{name:name,\"fromWireType\":function(value){return value},\"toWireType\":function(destructors,value){if(typeof value!==\"number\"&&typeof value!==\"boolean\"){throw new TypeError('Cannot convert \"'+_embind_repr(value)+'\" to '+this.name)}return value},\"argPackAdvance\":8,\"readValueFromPointer\":floatReadValueFromPointer(name,shift),destructorFunction:null})}function __embind_register_function(name,argCount,rawArgTypesAddr,signature,rawInvoker,fn){var argTypes=heap32VectorToArray(argCount,rawArgTypesAddr);name=readLatin1String(name);rawInvoker=embind__requireFunction(signature,rawInvoker);exposePublicSymbol(name,function(){throwUnboundTypeError(\"Cannot call \"+name+\" due to unbound types\",argTypes)},argCount-1);whenDependentTypesAreResolved([],argTypes,function(argTypes){var invokerArgsArray=[argTypes[0],null].concat(argTypes.slice(1));replacePublicSymbol(name,craftInvokerFunction(name,invokerArgsArray,null,rawInvoker,fn),argCount-1);return[]})}function integerReadValueFromPointer(name,shift,signed){switch(shift){case 0:return signed?function readS8FromPointer(pointer){return HEAP8[pointer]}:function readU8FromPointer(pointer){return HEAPU8[pointer]};case 1:return signed?function readS16FromPointer(pointer){return HEAP16[pointer>>1]}:function readU16FromPointer(pointer){return HEAPU16[pointer>>1]};case 2:return signed?function readS32FromPointer(pointer){return HEAP32[pointer>>2]}:function readU32FromPointer(pointer){return HEAPU32[pointer>>2]};default:throw new TypeError(\"Unknown integer type: \"+name)}}function __embind_register_integer(primitiveType,name,size,minRange,maxRange){name=readLatin1String(name);if(maxRange===-1){maxRange=4294967295}var shift=getShiftFromSize(size);var fromWireType=function(value){return value};if(minRange===0){var bitshift=32-8*size;fromWireType=function(value){return value<<bitshift>>>bitshift}}var isUnsignedType=name.indexOf(\"unsigned\")!=-1;registerType(primitiveType,{name:name,\"fromWireType\":fromWireType,\"toWireType\":function(destructors,value){if(typeof value!==\"number\"&&typeof value!==\"boolean\"){throw new TypeError('Cannot convert \"'+_embind_repr(value)+'\" to '+this.name)}if(value<minRange||value>maxRange){throw new TypeError('Passing a number \"'+_embind_repr(value)+'\" from JS side to C/C++ side to an argument of type \"'+name+'\", which is outside the valid range ['+minRange+\", \"+maxRange+\"]!\")}return isUnsignedType?value>>>0:value|0},\"argPackAdvance\":8,\"readValueFromPointer\":integerReadValueFromPointer(name,shift,minRange!==0),destructorFunction:null})}function __embind_register_memory_view(rawType,dataTypeIndex,name){var typeMapping=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array];var TA=typeMapping[dataTypeIndex];function decodeMemoryView(handle){handle=handle>>2;var heap=HEAPU32;var size=heap[handle];var data=heap[handle+1];return new TA(buffer,data,size)}name=readLatin1String(name);registerType(rawType,{name:name,\"fromWireType\":decodeMemoryView,\"argPackAdvance\":8,\"readValueFromPointer\":decodeMemoryView},{ignoreDuplicateRegistrations:true})}function __embind_register_std_string(rawType,name){name=readLatin1String(name);var stdStringIsUTF8=name===\"std::string\";registerType(rawType,{name:name,\"fromWireType\":function(value){var length=HEAPU32[value>>2];var str;if(stdStringIsUTF8){var decodeStartPtr=value+4;for(var i=0;i<=length;++i){var currentBytePtr=value+4+i;if(HEAPU8[currentBytePtr]==0||i==length){var maxRead=currentBytePtr-decodeStartPtr;var stringSegment=UTF8ToString(decodeStartPtr,maxRead);if(str===undefined){str=stringSegment}else{str+=String.fromCharCode(0);str+=stringSegment}decodeStartPtr=currentBytePtr+1}}}else{var a=new Array(length);for(var i=0;i<length;++i){a[i]=String.fromCharCode(HEAPU8[value+4+i])}str=a.join(\"\")}_free(value);return str},\"toWireType\":function(destructors,value){if(value instanceof ArrayBuffer){value=new Uint8Array(value)}var getLength;var valueIsOfTypeString=typeof value===\"string\";if(!(valueIsOfTypeString||value instanceof Uint8Array||value instanceof Uint8ClampedArray||value instanceof Int8Array)){throwBindingError(\"Cannot pass non-string to std::string\")}if(stdStringIsUTF8&&valueIsOfTypeString){getLength=function(){return lengthBytesUTF8(value)}}else{getLength=function(){return value.length}}var length=getLength();var ptr=_malloc(4+length+1);HEAPU32[ptr>>2]=length;if(stdStringIsUTF8&&valueIsOfTypeString){stringToUTF8(value,ptr+4,length+1)}else{if(valueIsOfTypeString){for(var i=0;i<length;++i){var charCode=value.charCodeAt(i);if(charCode>255){_free(ptr);throwBindingError(\"String has UTF-16 code units that do not fit in 8 bits\")}HEAPU8[ptr+4+i]=charCode}}else{for(var i=0;i<length;++i){HEAPU8[ptr+4+i]=value[i]}}}if(destructors!==null){destructors.push(_free,ptr)}return ptr},\"argPackAdvance\":8,\"readValueFromPointer\":simpleReadValueFromPointer,destructorFunction:function(ptr){_free(ptr)}})}function __embind_register_std_wstring(rawType,charSize,name){name=readLatin1String(name);var decodeString,encodeString,getHeap,lengthBytesUTF,shift;if(charSize===2){decodeString=UTF16ToString;encodeString=stringToUTF16;lengthBytesUTF=lengthBytesUTF16;getHeap=function(){return HEAPU16};shift=1}else if(charSize===4){decodeString=UTF32ToString;encodeString=stringToUTF32;lengthBytesUTF=lengthBytesUTF32;getHeap=function(){return HEAPU32};shift=2}registerType(rawType,{name:name,\"fromWireType\":function(value){var length=HEAPU32[value>>2];var HEAP=getHeap();var str;var decodeStartPtr=value+4;for(var i=0;i<=length;++i){var currentBytePtr=value+4+i*charSize;if(HEAP[currentBytePtr>>shift]==0||i==length){var maxReadBytes=currentBytePtr-decodeStartPtr;var stringSegment=decodeString(decodeStartPtr,maxReadBytes);if(str===undefined){str=stringSegment}else{str+=String.fromCharCode(0);str+=stringSegment}decodeStartPtr=currentBytePtr+charSize}}_free(value);return str},\"toWireType\":function(destructors,value){if(!(typeof value===\"string\")){throwBindingError(\"Cannot pass non-string to C++ string type \"+name)}var length=lengthBytesUTF(value);var ptr=_malloc(4+length+charSize);HEAPU32[ptr>>2]=length>>shift;encodeString(value,ptr+4,length+charSize);if(destructors!==null){destructors.push(_free,ptr)}return ptr},\"argPackAdvance\":8,\"readValueFromPointer\":simpleReadValueFromPointer,destructorFunction:function(ptr){_free(ptr)}})}function __embind_register_void(rawType,name){name=readLatin1String(name);registerType(rawType,{isVoid:true,name:name,\"argPackAdvance\":0,\"fromWireType\":function(){return undefined},\"toWireType\":function(destructors,o){return undefined}})}function requireHandle(handle){if(!handle){throwBindingError(\"Cannot use deleted val. handle = \"+handle)}return emval_handle_array[handle].value}function requireRegisteredType(rawType,humanName){var impl=registeredTypes[rawType];if(undefined===impl){throwBindingError(humanName+\" has unknown type \"+getTypeName(rawType))}return impl}function __emval_as(handle,returnType,destructorsRef){handle=requireHandle(handle);returnType=requireRegisteredType(returnType,\"emval::as\");var destructors=[];var rd=__emval_register(destructors);HEAP32[destructorsRef>>2]=rd;return returnType[\"toWireType\"](destructors,handle)}function __emval_allocateDestructors(destructorsRef){var destructors=[];HEAP32[destructorsRef>>2]=__emval_register(destructors);return destructors}var emval_symbols={};function getStringOrSymbol(address){var symbol=emval_symbols[address];if(symbol===undefined){return readLatin1String(address)}else{return symbol}}var emval_methodCallers=[];function __emval_call_method(caller,handle,methodName,destructorsRef,args){caller=emval_methodCallers[caller];handle=requireHandle(handle);methodName=getStringOrSymbol(methodName);return caller(handle,methodName,__emval_allocateDestructors(destructorsRef),args)}function __emval_call_void_method(caller,handle,methodName,args){caller=emval_methodCallers[caller];handle=requireHandle(handle);methodName=getStringOrSymbol(methodName);caller(handle,methodName,null,args)}function __emval_addMethodCaller(caller){var id=emval_methodCallers.length;emval_methodCallers.push(caller);return id}function __emval_lookupTypes(argCount,argTypes){var a=new Array(argCount);for(var i=0;i<argCount;++i){a[i]=requireRegisteredType(HEAP32[(argTypes>>2)+i],\"parameter \"+i)}return a}function __emval_get_method_caller(argCount,argTypes){var types=__emval_lookupTypes(argCount,argTypes);var retType=types[0];var signatureName=retType.name+\"_$\"+types.slice(1).map(function(t){return t.name}).join(\"_\")+\"$\";var params=[\"retType\"];var args=[retType];var argsList=\"\";for(var i=0;i<argCount-1;++i){argsList+=(i!==0?\", \":\"\")+\"arg\"+i;params.push(\"argType\"+i);args.push(types[1+i])}var functionName=makeLegalFunctionName(\"methodCaller_\"+signatureName);var functionBody=\"return function \"+functionName+\"(handle, name, destructors, args) {\\n\";var offset=0;for(var i=0;i<argCount-1;++i){functionBody+=\" var arg\"+i+\" = argType\"+i+\".readValueFromPointer(args\"+(offset?\"+\"+offset:\"\")+\");\\n\";offset+=types[i+1][\"argPackAdvance\"]}functionBody+=\" var rv = handle[name](\"+argsList+\");\\n\";for(var i=0;i<argCount-1;++i){if(types[i+1][\"deleteObject\"]){functionBody+=\" argType\"+i+\".deleteObject(arg\"+i+\");\\n\"}}if(!retType.isVoid){functionBody+=\" return retType.toWireType(destructors, rv);\\n\"}functionBody+=\"};\\n\";params.push(functionBody);var invokerFunction=new_(Function,params).apply(null,args);return __emval_addMethodCaller(invokerFunction)}function __emval_get_property(handle,key){handle=requireHandle(handle);key=requireHandle(key);return __emval_register(handle[key])}function __emval_incref(handle){if(handle>4){emval_handle_array[handle].refcount+=1}}function __emval_new_cstring(v){return __emval_register(getStringOrSymbol(v))}function __emval_run_destructors(handle){var destructors=emval_handle_array[handle].value;runDestructors(destructors);__emval_decref(handle)}function __emval_set_property(handle,key,value){handle=requireHandle(handle);key=requireHandle(key);value=requireHandle(value);handle[key]=value}function __emval_take_value(type,argv){type=requireRegisteredType(type,\"_emval_take_value\");var v=type[\"readValueFromPointer\"](argv);return __emval_register(v)}function _abort(){abort()}function _clock(){if(_clock.start===undefined)_clock.start=Date.now();return(Date.now()-_clock.start)*(1e6/1e3)|0}function _emscripten_get_sbrk_ptr(){return 493104}function _longjmp(env,value){_setThrew(env,value||1);throw\"longjmp\"}function _emscripten_longjmp(env,value){_longjmp(env,value)}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function abortOnCannotGrowMemory(requestedSize){abort(\"OOM\")}function _emscripten_resize_heap(requestedSize){requestedSize=requestedSize>>>0;abortOnCannotGrowMemory(requestedSize)}var ENV={};function __getExecutableName(){return thisProgram||\"./this.program\"}function getEnvStrings(){if(!getEnvStrings.strings){var env={\"USER\":\"web_user\",\"LOGNAME\":\"web_user\",\"PATH\":\"/\",\"PWD\":\"/\",\"HOME\":\"/home/web_user\",\"LANG\":(typeof navigator===\"object\"&&navigator.languages&&navigator.languages[0]||\"C\").replace(\"-\",\"_\")+\".UTF-8\",\"_\":__getExecutableName()};for(var x in ENV){env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(x+\"=\"+env[x])}getEnvStrings.strings=strings}return getEnvStrings.strings}function _environ_get(__environ,environ_buf){var bufSize=0;getEnvStrings().forEach(function(string,i){var ptr=environ_buf+bufSize;HEAP32[__environ+i*4>>2]=ptr;writeAsciiToMemory(string,ptr);bufSize+=string.length+1});return 0}function _environ_sizes_get(penviron_count,penviron_buf_size){var strings=getEnvStrings();HEAP32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(function(string){bufSize+=string.length+1});HEAP32[penviron_buf_size>>2]=bufSize;return 0}function _fd_close(fd){try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS===\"undefined\"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_fdstat_get(fd,pbuf){try{var stream=SYSCALLS.getStreamFromFD(fd);var type=stream.tty?2:FS.isDir(stream.mode)?3:FS.isLink(stream.mode)?7:4;HEAP8[pbuf>>0]=type;return 0}catch(e){if(typeof FS===\"undefined\"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_read(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doReadv(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS===\"undefined\"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){try{var stream=SYSCALLS.getStreamFromFD(fd);var HIGH_OFFSET=4294967296;var offset=offset_high*HIGH_OFFSET+(offset_low>>>0);var DOUBLE_LIMIT=9007199254740992;if(offset<=-DOUBLE_LIMIT||offset>=DOUBLE_LIMIT){return-61}FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math_abs(tempDouble)>=1?tempDouble>0?(Math_min(+Math_floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math_ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS===\"undefined\"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_write(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS===\"undefined\"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _getTempRet0(){return getTempRet0()|0}function _llvm_eh_typeid_for(type){return type}var ___tm_current=493120;var ___tm_timezone=(stringToUTF8(\"GMT\",493168,4),493168);function _tzset(){if(_tzset.called)return;_tzset.called=true;HEAP32[__get_timezone()>>2]=(new Date).getTimezoneOffset()*60;var currentYear=(new Date).getFullYear();var winter=new Date(currentYear,0,1);var summer=new Date(currentYear,6,1);HEAP32[__get_daylight()>>2]=Number(winter.getTimezoneOffset()!=summer.getTimezoneOffset());function extractZone(date){var match=date.toTimeString().match(/\\(([A-Za-z ]+)\\)$/);return match?match[1]:\"GMT\"}var winterName=extractZone(winter);var summerName=extractZone(summer);var winterNamePtr=allocateUTF8(winterName);var summerNamePtr=allocateUTF8(summerName);if(summer.getTimezoneOffset()<winter.getTimezoneOffset()){HEAP32[__get_tzname()>>2]=winterNamePtr;HEAP32[__get_tzname()+4>>2]=summerNamePtr}else{HEAP32[__get_tzname()>>2]=summerNamePtr;HEAP32[__get_tzname()+4>>2]=winterNamePtr}}function _localtime_r(time,tmPtr){_tzset();var date=new Date(HEAP32[time>>2]*1e3);HEAP32[tmPtr>>2]=date.getSeconds();HEAP32[tmPtr+4>>2]=date.getMinutes();HEAP32[tmPtr+8>>2]=date.getHours();HEAP32[tmPtr+12>>2]=date.getDate();HEAP32[tmPtr+16>>2]=date.getMonth();HEAP32[tmPtr+20>>2]=date.getFullYear()-1900;HEAP32[tmPtr+24>>2]=date.getDay();var start=new Date(date.getFullYear(),0,1);var yday=(date.getTime()-start.getTime())/(1e3*60*60*24)|0;HEAP32[tmPtr+28>>2]=yday;HEAP32[tmPtr+36>>2]=-(date.getTimezoneOffset()*60);var summerOffset=new Date(date.getFullYear(),6,1).getTimezoneOffset();var winterOffset=start.getTimezoneOffset();var dst=(summerOffset!=winterOffset&&date.getTimezoneOffset()==Math.min(winterOffset,summerOffset))|0;HEAP32[tmPtr+32>>2]=dst;var zonePtr=HEAP32[__get_tzname()+(dst?4:0)>>2];HEAP32[tmPtr+40>>2]=zonePtr;return tmPtr}function _localtime(time){return _localtime_r(time,___tm_current)}function _pthread_mutexattr_destroy(){}function _pthread_mutexattr_init(){}function _pthread_mutexattr_settype(){}function _round(d){d=+d;return d>=+0?+Math_floor(d+ +.5):+Math_ceil(d-+.5)}function _setTempRet0($i){setTempRet0($i|0)}function __isLeapYear(year){return year%4===0&&(year%100!==0||year%400===0)}function __arraySum(array,index){var sum=0;for(var i=0;i<=index;sum+=array[i++]){}return sum}var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];var __MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function __addDays(date,days){var newDate=new Date(date.getTime());while(days>0){var leap=__isLeapYear(newDate.getFullYear());var currentMonth=newDate.getMonth();var daysInCurrentMonth=(leap?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR)[currentMonth];if(days>daysInCurrentMonth-newDate.getDate()){days-=daysInCurrentMonth-newDate.getDate()+1;newDate.setDate(1);if(currentMonth<11){newDate.setMonth(currentMonth+1)}else{newDate.setMonth(0);newDate.setFullYear(newDate.getFullYear()+1)}}else{newDate.setDate(newDate.getDate()+days);return newDate}}return newDate}function _strftime(s,maxsize,format,tm){var tm_zone=HEAP32[tm+40>>2];var date={tm_sec:HEAP32[tm>>2],tm_min:HEAP32[tm+4>>2],tm_hour:HEAP32[tm+8>>2],tm_mday:HEAP32[tm+12>>2],tm_mon:HEAP32[tm+16>>2],tm_year:HEAP32[tm+20>>2],tm_wday:HEAP32[tm+24>>2],tm_yday:HEAP32[tm+28>>2],tm_isdst:HEAP32[tm+32>>2],tm_gmtoff:HEAP32[tm+36>>2],tm_zone:tm_zone?UTF8ToString(tm_zone):\"\"};var pattern=UTF8ToString(format);var EXPANSION_RULES_1={\"%c\":\"%a %b %d %H:%M:%S %Y\",\"%D\":\"%m/%d/%y\",\"%F\":\"%Y-%m-%d\",\"%h\":\"%b\",\"%r\":\"%I:%M:%S %p\",\"%R\":\"%H:%M\",\"%T\":\"%H:%M:%S\",\"%x\":\"%m/%d/%y\",\"%X\":\"%H:%M:%S\",\"%Ec\":\"%c\",\"%EC\":\"%C\",\"%Ex\":\"%m/%d/%y\",\"%EX\":\"%H:%M:%S\",\"%Ey\":\"%y\",\"%EY\":\"%Y\",\"%Od\":\"%d\",\"%Oe\":\"%e\",\"%OH\":\"%H\",\"%OI\":\"%I\",\"%Om\":\"%m\",\"%OM\":\"%M\",\"%OS\":\"%S\",\"%Ou\":\"%u\",\"%OU\":\"%U\",\"%OV\":\"%V\",\"%Ow\":\"%w\",\"%OW\":\"%W\",\"%Oy\":\"%y\"};for(var rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,\"g\"),EXPANSION_RULES_1[rule])}var WEEKDAYS=[\"Sunday\",\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\"];var MONTHS=[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"];function leadingSomething(value,digits,character){var str=typeof value===\"number\"?value.toString():value||\"\";while(str.length<digits){str=character[0]+str}return str}function leadingNulls(value,digits){return leadingSomething(value,digits,\"0\")}function compareByDay(date1,date2){function sgn(value){return value<0?-1:value>0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}else{return thisDate.getFullYear()}}else{return thisDate.getFullYear()-1}}var EXPANSION_RULES_2={\"%a\":function(date){return WEEKDAYS[date.tm_wday].substring(0,3)},\"%A\":function(date){return WEEKDAYS[date.tm_wday]},\"%b\":function(date){return MONTHS[date.tm_mon].substring(0,3)},\"%B\":function(date){return MONTHS[date.tm_mon]},\"%C\":function(date){var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},\"%d\":function(date){return leadingNulls(date.tm_mday,2)},\"%e\":function(date){return leadingSomething(date.tm_mday,2,\" \")},\"%g\":function(date){return getWeekBasedYear(date).toString().substring(2)},\"%G\":function(date){return getWeekBasedYear(date)},\"%H\":function(date){return leadingNulls(date.tm_hour,2)},\"%I\":function(date){var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)},\"%j\":function(date){return leadingNulls(date.tm_mday+__arraySum(__isLeapYear(date.tm_year+1900)?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,date.tm_mon-1),3)},\"%m\":function(date){return leadingNulls(date.tm_mon+1,2)},\"%M\":function(date){return leadingNulls(date.tm_min,2)},\"%n\":function(){return\"\\n\"},\"%p\":function(date){if(date.tm_hour>=0&&date.tm_hour<12){return\"AM\"}else{return\"PM\"}},\"%S\":function(date){return leadingNulls(date.tm_sec,2)},\"%t\":function(){return\"\\t\"},\"%u\":function(date){return date.tm_wday||7},\"%U\":function(date){var janFirst=new Date(date.tm_year+1900,0,1);var firstSunday=janFirst.getDay()===0?janFirst:__addDays(janFirst,7-janFirst.getDay());var endDate=new Date(date.tm_year+1900,date.tm_mon,date.tm_mday);if(compareByDay(firstSunday,endDate)<0){var februaryFirstUntilEndMonth=__arraySum(__isLeapYear(endDate.getFullYear())?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,endDate.getMonth()-1)-31;var firstSundayUntilEndJanuary=31-firstSunday.getDate();var days=firstSundayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate();return leadingNulls(Math.ceil(days/7),2)}return compareByDay(firstSunday,janFirst)===0?\"01\":\"00\"},\"%V\":function(date){var janFourthThisYear=new Date(date.tm_year+1900,0,4);var janFourthNextYear=new Date(date.tm_year+1901,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);var endDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);if(compareByDay(endDate,firstWeekStartThisYear)<0){return\"53\"}if(compareByDay(firstWeekStartNextYear,endDate)<=0){return\"01\"}var daysDifference;if(firstWeekStartThisYear.getFullYear()<date.tm_year+1900){daysDifference=date.tm_yday+32-firstWeekStartThisYear.getDate()}else{daysDifference=date.tm_yday+1-firstWeekStartThisYear.getDate()}return leadingNulls(Math.ceil(daysDifference/7),2)},\"%w\":function(date){return date.tm_wday},\"%W\":function(date){var janFirst=new Date(date.tm_year,0,1);var firstMonday=janFirst.getDay()===1?janFirst:__addDays(janFirst,janFirst.getDay()===0?1:7-janFirst.getDay()+1);var endDate=new Date(date.tm_year+1900,date.tm_mon,date.tm_mday);if(compareByDay(firstMonday,endDate)<0){var februaryFirstUntilEndMonth=__arraySum(__isLeapYear(endDate.getFullYear())?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,endDate.getMonth()-1)-31;var firstMondayUntilEndJanuary=31-firstMonday.getDate();var days=firstMondayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate();return leadingNulls(Math.ceil(days/7),2)}return compareByDay(firstMonday,janFirst)===0?\"01\":\"00\"},\"%y\":function(date){return(date.tm_year+1900).toString().substring(2)},\"%Y\":function(date){return date.tm_year+1900},\"%z\":function(date){var off=date.tm_gmtoff;var ahead=off>=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?\"+\":\"-\")+String(\"0000\"+off).slice(-4)},\"%Z\":function(date){return date.tm_zone},\"%%\":function(){return\"%\"}};for(var rule in EXPANSION_RULES_2){if(pattern.indexOf(rule)>=0){pattern=pattern.replace(new RegExp(rule,\"g\"),EXPANSION_RULES_2[rule](date))}}var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1}function _strftime_l(s,maxsize,format,tm){return _strftime(s,maxsize,format,tm)}function _time(ptr){var ret=Date.now()/1e3|0;if(ptr){HEAP32[ptr>>2]=ret}return ret}var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.staticInit();embind_init_charCodes();BindingError=Module[\"BindingError\"]=extendError(Error,\"BindingError\");InternalError=Module[\"InternalError\"]=extendError(Error,\"InternalError\");init_ClassHandle();init_RegisteredPointer();init_embind();UnboundTypeError=Module[\"UnboundTypeError\"]=extendError(Error,\"UnboundTypeError\");init_emval();var ASSERTIONS=false;function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var asmLibraryArg={\"__cxa_allocate_exception\":___cxa_allocate_exception,\"__cxa_atexit\":___cxa_atexit,\"__cxa_begin_catch\":___cxa_begin_catch,\"__cxa_end_catch\":___cxa_end_catch,\"__cxa_find_matching_catch_2\":___cxa_find_matching_catch_2,\"__cxa_find_matching_catch_3\":___cxa_find_matching_catch_3,\"__cxa_find_matching_catch_4\":___cxa_find_matching_catch_4,\"__cxa_free_exception\":___cxa_free_exception,\"__cxa_rethrow\":___cxa_rethrow,\"__cxa_throw\":___cxa_throw,\"__cxa_uncaught_exceptions\":___cxa_uncaught_exceptions,\"__map_file\":___map_file,\"__resumeException\":___resumeException,\"__sys_fcntl64\":___sys_fcntl64,\"__sys_ioctl\":___sys_ioctl,\"__sys_munmap\":___sys_munmap,\"__sys_open\":___sys_open,\"_embind_register_bool\":__embind_register_bool,\"_embind_register_class\":__embind_register_class,\"_embind_register_class_function\":__embind_register_class_function,\"_embind_register_emval\":__embind_register_emval,\"_embind_register_float\":__embind_register_float,\"_embind_register_function\":__embind_register_function,\"_embind_register_integer\":__embind_register_integer,\"_embind_register_memory_view\":__embind_register_memory_view,\"_embind_register_std_string\":__embind_register_std_string,\"_embind_register_std_wstring\":__embind_register_std_wstring,\"_embind_register_void\":__embind_register_void,\"_emval_as\":__emval_as,\"_emval_call_method\":__emval_call_method,\"_emval_call_void_method\":__emval_call_void_method,\"_emval_decref\":__emval_decref,\"_emval_get_method_caller\":__emval_get_method_caller,\"_emval_get_property\":__emval_get_property,\"_emval_incref\":__emval_incref,\"_emval_new_cstring\":__emval_new_cstring,\"_emval_run_destructors\":__emval_run_destructors,\"_emval_set_property\":__emval_set_property,\"_emval_take_value\":__emval_take_value,\"abort\":_abort,\"clock\":_clock,\"emscripten_get_sbrk_ptr\":_emscripten_get_sbrk_ptr,\"emscripten_longjmp\":_emscripten_longjmp,\"emscripten_memcpy_big\":_emscripten_memcpy_big,\"emscripten_resize_heap\":_emscripten_resize_heap,\"environ_get\":_environ_get,\"environ_sizes_get\":_environ_sizes_get,\"fd_close\":_fd_close,\"fd_fdstat_get\":_fd_fdstat_get,\"fd_read\":_fd_read,\"fd_seek\":_fd_seek,\"fd_write\":_fd_write,\"getTempRet0\":_getTempRet0,\"invoke_di\":invoke_di,\"invoke_dii\":invoke_dii,\"invoke_diid\":invoke_diid,\"invoke_diii\":invoke_diii,\"invoke_diiii\":invoke_diiii,\"invoke_diiiii\":invoke_diiiii,\"invoke_fi\":invoke_fi,\"invoke_fif\":invoke_fif,\"invoke_fii\":invoke_fii,\"invoke_fiii\":invoke_fiii,\"invoke_fiiii\":invoke_fiiii,\"invoke_fiiiiiff\":invoke_fiiiiiff,\"invoke_i\":invoke_i,\"invoke_ii\":invoke_ii,\"invoke_iid\":invoke_iid,\"invoke_iiddi\":invoke_iiddi,\"invoke_iiddii\":invoke_iiddii,\"invoke_iiddiii\":invoke_iiddiii,\"invoke_iif\":invoke_iif,\"invoke_iii\":invoke_iii,\"invoke_iiii\":invoke_iiii,\"invoke_iiiii\":invoke_iiiii,\"invoke_iiiiid\":invoke_iiiiid,\"invoke_iiiiii\":invoke_iiiiii,\"invoke_iiiiiid\":invoke_iiiiiid,\"invoke_iiiiiii\":invoke_iiiiiii,\"invoke_iiiiiiii\":invoke_iiiiiiii,\"invoke_iiiiiiiii\":invoke_iiiiiiiii,\"invoke_iiiiiiiiiddiii\":invoke_iiiiiiiiiddiii,\"invoke_iiiiiiiiii\":invoke_iiiiiiiiii,\"invoke_iiiiiiiiiii\":invoke_iiiiiiiiiii,\"invoke_iiiiiiiiiiii\":invoke_iiiiiiiiiiii,\"invoke_iiiiiiiiiiiii\":invoke_iiiiiiiiiiiii,\"invoke_iij\":invoke_iij,\"invoke_jiiii\":invoke_jiiii,\"invoke_v\":invoke_v,\"invoke_vi\":invoke_vi,\"invoke_vid\":invoke_vid,\"invoke_vidi\":invoke_vidi,\"invoke_vidiiiiiii\":invoke_vidiiiiiii,\"invoke_vif\":invoke_vif,\"invoke_viffffff\":invoke_viffffff,\"invoke_viffi\":invoke_viffi,\"invoke_vifii\":invoke_vifii,\"invoke_vii\":invoke_vii,\"invoke_viid\":invoke_viid,\"invoke_viidddd\":invoke_viidddd,\"invoke_viidi\":invoke_viidi,\"invoke_viidii\":invoke_viidii,\"invoke_viidiiiiiii\":invoke_viidiiiiiii,\"invoke_viif\":invoke_viif,\"invoke_viifii\":invoke_viifii,\"invoke_viii\":invoke_viii,\"invoke_viiid\":invoke_viiid,\"invoke_viiidi\":invoke_viiidi,\"invoke_viiidiiiid\":invoke_viiidiiiid,\"invoke_viiiff\":invoke_viiiff,\"invoke_viiii\":invoke_viiii,\"invoke_viiiidd\":invoke_viiiidd,\"invoke_viiiiffffiii\":invoke_viiiiffffiii,\"invoke_viiiii\":invoke_viiiii,\"invoke_viiiiidi\":invoke_viiiiidi,\"invoke_viiiiii\":invoke_viiiiii,\"invoke_viiiiiid\":invoke_viiiiiid,\"invoke_viiiiiii\":invoke_viiiiiii,\"invoke_viiiiiiii\":invoke_viiiiiiii,\"invoke_viiiiiiiii\":invoke_viiiiiiiii,\"invoke_viiiiiiiiii\":invoke_viiiiiiiiii,\"invoke_viiiiiiiiiii\":invoke_viiiiiiiiiii,\"invoke_viiiiiiiiiiiiiii\":invoke_viiiiiiiiiiiiiii,\"llvm_eh_typeid_for\":_llvm_eh_typeid_for,\"localtime\":_localtime,\"memory\":wasmMemory,\"pthread_mutexattr_destroy\":_pthread_mutexattr_destroy,\"pthread_mutexattr_init\":_pthread_mutexattr_init,\"pthread_mutexattr_settype\":_pthread_mutexattr_settype,\"round\":_round,\"setTempRet0\":_setTempRet0,\"strftime_l\":_strftime_l,\"table\":wasmTable,\"time\":_time};var asm=createWasm();var ___wasm_call_ctors=Module[\"___wasm_call_ctors\"]=function(){return(___wasm_call_ctors=Module[\"___wasm_call_ctors\"]=Module[\"asm\"][\"__wasm_call_ctors\"]).apply(null,arguments)};var _malloc=Module[\"_malloc\"]=function(){return(_malloc=Module[\"_malloc\"]=Module[\"asm\"][\"malloc\"]).apply(null,arguments)};var _free=Module[\"_free\"]=function(){return(_free=Module[\"_free\"]=Module[\"asm\"][\"free\"]).apply(null,arguments)};var _realloc=Module[\"_realloc\"]=function(){return(_realloc=Module[\"_realloc\"]=Module[\"asm\"][\"realloc\"]).apply(null,arguments)};var ___errno_location=Module[\"___errno_location\"]=function(){return(___errno_location=Module[\"___errno_location\"]=Module[\"asm\"][\"__errno_location\"]).apply(null,arguments)};var _testSetjmp=Module[\"_testSetjmp\"]=function(){return(_testSetjmp=Module[\"_testSetjmp\"]=Module[\"asm\"][\"testSetjmp\"]).apply(null,arguments)};var _saveSetjmp=Module[\"_saveSetjmp\"]=function(){return(_saveSetjmp=Module[\"_saveSetjmp\"]=Module[\"asm\"][\"saveSetjmp\"]).apply(null,arguments)};var ___getTypeName=Module[\"___getTypeName\"]=function(){return(___getTypeName=Module[\"___getTypeName\"]=Module[\"asm\"][\"__getTypeName\"]).apply(null,arguments)};var ___embind_register_native_and_builtin_types=Module[\"___embind_register_native_and_builtin_types\"]=function(){return(___embind_register_native_and_builtin_types=Module[\"___embind_register_native_and_builtin_types\"]=Module[\"asm\"][\"__embind_register_native_and_builtin_types\"]).apply(null,arguments)};var __get_tzname=Module[\"__get_tzname\"]=function(){return(__get_tzname=Module[\"__get_tzname\"]=Module[\"asm\"][\"_get_tzname\"]).apply(null,arguments)};var __get_daylight=Module[\"__get_daylight\"]=function(){return(__get_daylight=Module[\"__get_daylight\"]=Module[\"asm\"][\"_get_daylight\"]).apply(null,arguments)};var __get_timezone=Module[\"__get_timezone\"]=function(){return(__get_timezone=Module[\"__get_timezone\"]=Module[\"asm\"][\"_get_timezone\"]).apply(null,arguments)};var _setThrew=Module[\"_setThrew\"]=function(){return(_setThrew=Module[\"_setThrew\"]=Module[\"asm\"][\"setThrew\"]).apply(null,arguments)};var stackSave=Module[\"stackSave\"]=function(){return(stackSave=Module[\"stackSave\"]=Module[\"asm\"][\"stackSave\"]).apply(null,arguments)};var stackRestore=Module[\"stackRestore\"]=function(){return(stackRestore=Module[\"stackRestore\"]=Module[\"asm\"][\"stackRestore\"]).apply(null,arguments)};var stackAlloc=Module[\"stackAlloc\"]=function(){return(stackAlloc=Module[\"stackAlloc\"]=Module[\"asm\"][\"stackAlloc\"]).apply(null,arguments)};var __ZSt18uncaught_exceptionv=Module[\"__ZSt18uncaught_exceptionv\"]=function(){return(__ZSt18uncaught_exceptionv=Module[\"__ZSt18uncaught_exceptionv\"]=Module[\"asm\"][\"_ZSt18uncaught_exceptionv\"]).apply(null,arguments)};var ___cxa_can_catch=Module[\"___cxa_can_catch\"]=function(){return(___cxa_can_catch=Module[\"___cxa_can_catch\"]=Module[\"asm\"][\"__cxa_can_catch\"]).apply(null,arguments)};var ___cxa_is_pointer_type=Module[\"___cxa_is_pointer_type\"]=function(){return(___cxa_is_pointer_type=Module[\"___cxa_is_pointer_type\"]=Module[\"asm\"][\"__cxa_is_pointer_type\"]).apply(null,arguments)};var dynCall_v=Module[\"dynCall_v\"]=function(){return(dynCall_v=Module[\"dynCall_v\"]=Module[\"asm\"][\"dynCall_v\"]).apply(null,arguments)};var dynCall_vi=Module[\"dynCall_vi\"]=function(){return(dynCall_vi=Module[\"dynCall_vi\"]=Module[\"asm\"][\"dynCall_vi\"]).apply(null,arguments)};var dynCall_vii=Module[\"dynCall_vii\"]=function(){return(dynCall_vii=Module[\"dynCall_vii\"]=Module[\"asm\"][\"dynCall_vii\"]).apply(null,arguments)};var dynCall_viii=Module[\"dynCall_viii\"]=function(){return(dynCall_viii=Module[\"dynCall_viii\"]=Module[\"asm\"][\"dynCall_viii\"]).apply(null,arguments)};var dynCall_viiii=Module[\"dynCall_viiii\"]=function(){return(dynCall_viiii=Module[\"dynCall_viiii\"]=Module[\"asm\"][\"dynCall_viiii\"]).apply(null,arguments)};var dynCall_viiiii=Module[\"dynCall_viiiii\"]=function(){return(dynCall_viiiii=Module[\"dynCall_viiiii\"]=Module[\"asm\"][\"dynCall_viiiii\"]).apply(null,arguments)};var dynCall_viiiiii=Module[\"dynCall_viiiiii\"]=function(){return(dynCall_viiiiii=Module[\"dynCall_viiiiii\"]=Module[\"asm\"][\"dynCall_viiiiii\"]).apply(null,arguments)};var dynCall_viiiiiii=Module[\"dynCall_viiiiiii\"]=function(){return(dynCall_viiiiiii=Module[\"dynCall_viiiiiii\"]=Module[\"asm\"][\"dynCall_viiiiiii\"]).apply(null,arguments)};var dynCall_viiiiiiii=Module[\"dynCall_viiiiiiii\"]=function(){return(dynCall_viiiiiiii=Module[\"dynCall_viiiiiiii\"]=Module[\"asm\"][\"dynCall_viiiiiiii\"]).apply(null,arguments)};var dynCall_viiiiiiiii=Module[\"dynCall_viiiiiiiii\"]=function(){return(dynCall_viiiiiiiii=Module[\"dynCall_viiiiiiiii\"]=Module[\"asm\"][\"dynCall_viiiiiiiii\"]).apply(null,arguments)};var dynCall_viiiiiiiiii=Module[\"dynCall_viiiiiiiiii\"]=function(){return(dynCall_viiiiiiiiii=Module[\"dynCall_viiiiiiiiii\"]=Module[\"asm\"][\"dynCall_viiiiiiiiii\"]).apply(null,arguments)};var dynCall_viiiiiiiiiii=Module[\"dynCall_viiiiiiiiiii\"]=function(){return(dynCall_viiiiiiiiiii=Module[\"dynCall_viiiiiiiiiii\"]=Module[\"asm\"][\"dynCall_viiiiiiiiiii\"]).apply(null,arguments)};var dynCall_viiiiiiiiiiiiiii=Module[\"dynCall_viiiiiiiiiiiiiii\"]=function(){return(dynCall_viiiiiiiiiiiiiii=Module[\"dynCall_viiiiiiiiiiiiiii\"]=Module[\"asm\"][\"dynCall_viiiiiiiiiiiiiii\"]).apply(null,arguments)};var dynCall_viiiiiid=Module[\"dynCall_viiiiiid\"]=function(){return(dynCall_viiiiiid=Module[\"dynCall_viiiiiid\"]=Module[\"asm\"][\"dynCall_viiiiiid\"]).apply(null,arguments)};var dynCall_viiiiidi=Module[\"dynCall_viiiiidi\"]=function(){return(dynCall_viiiiidi=Module[\"dynCall_viiiiidi\"]=Module[\"asm\"][\"dynCall_viiiiidi\"]).apply(null,arguments)};var dynCall_viiiiffffiii=Module[\"dynCall_viiiiffffiii\"]=function(){return(dynCall_viiiiffffiii=Module[\"dynCall_viiiiffffiii\"]=Module[\"asm\"][\"dynCall_viiiiffffiii\"]).apply(null,arguments)};var dynCall_viiiidd=Module[\"dynCall_viiiidd\"]=function(){return(dynCall_viiiidd=Module[\"dynCall_viiiidd\"]=Module[\"asm\"][\"dynCall_viiiidd\"]).apply(null,arguments)};var dynCall_viiiff=Module[\"dynCall_viiiff\"]=function(){return(dynCall_viiiff=Module[\"dynCall_viiiff\"]=Module[\"asm\"][\"dynCall_viiiff\"]).apply(null,arguments)};var dynCall_viiid=Module[\"dynCall_viiid\"]=function(){return(dynCall_viiid=Module[\"dynCall_viiid\"]=Module[\"asm\"][\"dynCall_viiid\"]).apply(null,arguments)};var dynCall_viiidi=Module[\"dynCall_viiidi\"]=function(){return(dynCall_viiidi=Module[\"dynCall_viiidi\"]=Module[\"asm\"][\"dynCall_viiidi\"]).apply(null,arguments)};var dynCall_viiidiiiid=Module[\"dynCall_viiidiiiid\"]=function(){return(dynCall_viiidiiiid=Module[\"dynCall_viiidiiiid\"]=Module[\"asm\"][\"dynCall_viiidiiiid\"]).apply(null,arguments)};var dynCall_viif=Module[\"dynCall_viif\"]=function(){return(dynCall_viif=Module[\"dynCall_viif\"]=Module[\"asm\"][\"dynCall_viif\"]).apply(null,arguments)};var dynCall_viifii=Module[\"dynCall_viifii\"]=function(){return(dynCall_viifii=Module[\"dynCall_viifii\"]=Module[\"asm\"][\"dynCall_viifii\"]).apply(null,arguments)};var dynCall_viid=Module[\"dynCall_viid\"]=function(){return(dynCall_viid=Module[\"dynCall_viid\"]=Module[\"asm\"][\"dynCall_viid\"]).apply(null,arguments)};var dynCall_viidi=Module[\"dynCall_viidi\"]=function(){return(dynCall_viidi=Module[\"dynCall_viidi\"]=Module[\"asm\"][\"dynCall_viidi\"]).apply(null,arguments)};var dynCall_viidii=Module[\"dynCall_viidii\"]=function(){return(dynCall_viidii=Module[\"dynCall_viidii\"]=Module[\"asm\"][\"dynCall_viidii\"]).apply(null,arguments)};var dynCall_viidiiiiiii=Module[\"dynCall_viidiiiiiii\"]=function(){return(dynCall_viidiiiiiii=Module[\"dynCall_viidiiiiiii\"]=Module[\"asm\"][\"dynCall_viidiiiiiii\"]).apply(null,arguments)};var dynCall_viidddd=Module[\"dynCall_viidddd\"]=function(){return(dynCall_viidddd=Module[\"dynCall_viidddd\"]=Module[\"asm\"][\"dynCall_viidddd\"]).apply(null,arguments)};var dynCall_vif=Module[\"dynCall_vif\"]=function(){return(dynCall_vif=Module[\"dynCall_vif\"]=Module[\"asm\"][\"dynCall_vif\"]).apply(null,arguments)};var dynCall_vifii=Module[\"dynCall_vifii\"]=function(){return(dynCall_vifii=Module[\"dynCall_vifii\"]=Module[\"asm\"][\"dynCall_vifii\"]).apply(null,arguments)};var dynCall_viffi=Module[\"dynCall_viffi\"]=function(){return(dynCall_viffi=Module[\"dynCall_viffi\"]=Module[\"asm\"][\"dynCall_viffi\"]).apply(null,arguments)};var dynCall_viffffff=Module[\"dynCall_viffffff\"]=function(){return(dynCall_viffffff=Module[\"dynCall_viffffff\"]=Module[\"asm\"][\"dynCall_viffffff\"]).apply(null,arguments)};var dynCall_vid=Module[\"dynCall_vid\"]=function(){return(dynCall_vid=Module[\"dynCall_vid\"]=Module[\"asm\"][\"dynCall_vid\"]).apply(null,arguments)};var dynCall_vidi=Module[\"dynCall_vidi\"]=function(){return(dynCall_vidi=Module[\"dynCall_vidi\"]=Module[\"asm\"][\"dynCall_vidi\"]).apply(null,arguments)};var dynCall_vidiiiiiii=Module[\"dynCall_vidiiiiiii\"]=function(){return(dynCall_vidiiiiiii=Module[\"dynCall_vidiiiiiii\"]=Module[\"asm\"][\"dynCall_vidiiiiiii\"]).apply(null,arguments)};var dynCall_i=Module[\"dynCall_i\"]=function(){return(dynCall_i=Module[\"dynCall_i\"]=Module[\"asm\"][\"dynCall_i\"]).apply(null,arguments)};var dynCall_ii=Module[\"dynCall_ii\"]=function(){return(dynCall_ii=Module[\"dynCall_ii\"]=Module[\"asm\"][\"dynCall_ii\"]).apply(null,arguments)};var dynCall_iii=Module[\"dynCall_iii\"]=function(){return(dynCall_iii=Module[\"dynCall_iii\"]=Module[\"asm\"][\"dynCall_iii\"]).apply(null,arguments)};var dynCall_iiii=Module[\"dynCall_iiii\"]=function(){return(dynCall_iiii=Module[\"dynCall_iiii\"]=Module[\"asm\"][\"dynCall_iiii\"]).apply(null,arguments)};var dynCall_iiiii=Module[\"dynCall_iiiii\"]=function(){return(dynCall_iiiii=Module[\"dynCall_iiiii\"]=Module[\"asm\"][\"dynCall_iiiii\"]).apply(null,arguments)};var dynCall_iiiiii=Module[\"dynCall_iiiiii\"]=function(){return(dynCall_iiiiii=Module[\"dynCall_iiiiii\"]=Module[\"asm\"][\"dynCall_iiiiii\"]).apply(null,arguments)};var dynCall_iiiiiii=Module[\"dynCall_iiiiiii\"]=function(){return(dynCall_iiiiiii=Module[\"dynCall_iiiiiii\"]=Module[\"asm\"][\"dynCall_iiiiiii\"]).apply(null,arguments)};var dynCall_iiiiiiii=Module[\"dynCall_iiiiiiii\"]=function(){return(dynCall_iiiiiiii=Module[\"dynCall_iiiiiiii\"]=Module[\"asm\"][\"dynCall_iiiiiiii\"]).apply(null,arguments)};var dynCall_iiiiiiiii=Module[\"dynCall_iiiiiiiii\"]=function(){return(dynCall_iiiiiiiii=Module[\"dynCall_iiiiiiiii\"]=Module[\"asm\"][\"dynCall_iiiiiiiii\"]).apply(null,arguments)};var dynCall_iiiiiiiiii=Module[\"dynCall_iiiiiiiiii\"]=function(){return(dynCall_iiiiiiiiii=Module[\"dynCall_iiiiiiiiii\"]=Module[\"asm\"][\"dynCall_iiiiiiiiii\"]).apply(null,arguments)};var dynCall_iiiiiiiiiii=Module[\"dynCall_iiiiiiiiiii\"]=function(){return(dynCall_iiiiiiiiiii=Module[\"dynCall_iiiiiiiiiii\"]=Module[\"asm\"][\"dynCall_iiiiiiiiiii\"]).apply(null,arguments)};var dynCall_iiiiiiiiiiii=Module[\"dynCall_iiiiiiiiiiii\"]=function(){return(dynCall_iiiiiiiiiiii=Module[\"dynCall_iiiiiiiiiiii\"]=Module[\"asm\"][\"dynCall_iiiiiiiiiiii\"]).apply(null,arguments)};var dynCall_iiiiiiiiiiiii=Module[\"dynCall_iiiiiiiiiiiii\"]=function(){return(dynCall_iiiiiiiiiiiii=Module[\"dynCall_iiiiiiiiiiiii\"]=Module[\"asm\"][\"dynCall_iiiiiiiiiiiii\"]).apply(null,arguments)};var dynCall_iiiiiiiiiddiii=Module[\"dynCall_iiiiiiiiiddiii\"]=function(){return(dynCall_iiiiiiiiiddiii=Module[\"dynCall_iiiiiiiiiddiii\"]=Module[\"asm\"][\"dynCall_iiiiiiiiiddiii\"]).apply(null,arguments)};var dynCall_iiiiiid=Module[\"dynCall_iiiiiid\"]=function(){return(dynCall_iiiiiid=Module[\"dynCall_iiiiiid\"]=Module[\"asm\"][\"dynCall_iiiiiid\"]).apply(null,arguments)};var dynCall_iiiiid=Module[\"dynCall_iiiiid\"]=function(){return(dynCall_iiiiid=Module[\"dynCall_iiiiid\"]=Module[\"asm\"][\"dynCall_iiiiid\"]).apply(null,arguments)};var dynCall_iij=Module[\"dynCall_iij\"]=function(){return(dynCall_iij=Module[\"dynCall_iij\"]=Module[\"asm\"][\"dynCall_iij\"]).apply(null,arguments)};var dynCall_iif=Module[\"dynCall_iif\"]=function(){return(dynCall_iif=Module[\"dynCall_iif\"]=Module[\"asm\"][\"dynCall_iif\"]).apply(null,arguments)};var dynCall_iid=Module[\"dynCall_iid\"]=function(){return(dynCall_iid=Module[\"dynCall_iid\"]=Module[\"asm\"][\"dynCall_iid\"]).apply(null,arguments)};var dynCall_iiddi=Module[\"dynCall_iiddi\"]=function(){return(dynCall_iiddi=Module[\"dynCall_iiddi\"]=Module[\"asm\"][\"dynCall_iiddi\"]).apply(null,arguments)};var dynCall_iiddii=Module[\"dynCall_iiddii\"]=function(){return(dynCall_iiddii=Module[\"dynCall_iiddii\"]=Module[\"asm\"][\"dynCall_iiddii\"]).apply(null,arguments)};var dynCall_iiddiii=Module[\"dynCall_iiddiii\"]=function(){return(dynCall_iiddiii=Module[\"dynCall_iiddiii\"]=Module[\"asm\"][\"dynCall_iiddiii\"]).apply(null,arguments)};var dynCall_jiiii=Module[\"dynCall_jiiii\"]=function(){return(dynCall_jiiii=Module[\"dynCall_jiiii\"]=Module[\"asm\"][\"dynCall_jiiii\"]).apply(null,arguments)};var dynCall_fi=Module[\"dynCall_fi\"]=function(){return(dynCall_fi=Module[\"dynCall_fi\"]=Module[\"asm\"][\"dynCall_fi\"]).apply(null,arguments)};var dynCall_fii=Module[\"dynCall_fii\"]=function(){return(dynCall_fii=Module[\"dynCall_fii\"]=Module[\"asm\"][\"dynCall_fii\"]).apply(null,arguments)};var dynCall_fiii=Module[\"dynCall_fiii\"]=function(){return(dynCall_fiii=Module[\"dynCall_fiii\"]=Module[\"asm\"][\"dynCall_fiii\"]).apply(null,arguments)};var dynCall_fiiii=Module[\"dynCall_fiiii\"]=function(){return(dynCall_fiiii=Module[\"dynCall_fiiii\"]=Module[\"asm\"][\"dynCall_fiiii\"]).apply(null,arguments)};var dynCall_fiiiiiff=Module[\"dynCall_fiiiiiff\"]=function(){return(dynCall_fiiiiiff=Module[\"dynCall_fiiiiiff\"]=Module[\"asm\"][\"dynCall_fiiiiiff\"]).apply(null,arguments)};var dynCall_fif=Module[\"dynCall_fif\"]=function(){return(dynCall_fif=Module[\"dynCall_fif\"]=Module[\"asm\"][\"dynCall_fif\"]).apply(null,arguments)};var dynCall_di=Module[\"dynCall_di\"]=function(){return(dynCall_di=Module[\"dynCall_di\"]=Module[\"asm\"][\"dynCall_di\"]).apply(null,arguments)};var dynCall_dii=Module[\"dynCall_dii\"]=function(){return(dynCall_dii=Module[\"dynCall_dii\"]=Module[\"asm\"][\"dynCall_dii\"]).apply(null,arguments)};var dynCall_diii=Module[\"dynCall_diii\"]=function(){return(dynCall_diii=Module[\"dynCall_diii\"]=Module[\"asm\"][\"dynCall_diii\"]).apply(null,arguments)};var dynCall_diiii=Module[\"dynCall_diiii\"]=function(){return(dynCall_diiii=Module[\"dynCall_diiii\"]=Module[\"asm\"][\"dynCall_diiii\"]).apply(null,arguments)};var dynCall_diiiii=Module[\"dynCall_diiiii\"]=function(){return(dynCall_diiiii=Module[\"dynCall_diiiii\"]=Module[\"asm\"][\"dynCall_diiiii\"]).apply(null,arguments)};var dynCall_diid=Module[\"dynCall_diid\"]=function(){return(dynCall_diid=Module[\"dynCall_diid\"]=Module[\"asm\"][\"dynCall_diid\"]).apply(null,arguments)};var __growWasmMemory=Module[\"__growWasmMemory\"]=function(){return(__growWasmMemory=Module[\"__growWasmMemory\"]=Module[\"asm\"][\"__growWasmMemory\"]).apply(null,arguments)};var dynCall_iiidi=Module[\"dynCall_iiidi\"]=function(){return(dynCall_iiidi=Module[\"dynCall_iiidi\"]=Module[\"asm\"][\"dynCall_iiidi\"]).apply(null,arguments)};var dynCall_viijii=Module[\"dynCall_viijii\"]=function(){return(dynCall_viijii=Module[\"dynCall_viijii\"]=Module[\"asm\"][\"dynCall_viijii\"]).apply(null,arguments)};var dynCall_viiddd=Module[\"dynCall_viiddd\"]=function(){return(dynCall_viiddd=Module[\"dynCall_viiddd\"]=Module[\"asm\"][\"dynCall_viiddd\"]).apply(null,arguments)};var dynCall_viiiidi=Module[\"dynCall_viiiidi\"]=function(){return(dynCall_viiiidi=Module[\"dynCall_viiiidi\"]=Module[\"asm\"][\"dynCall_viiiidi\"]).apply(null,arguments)};var dynCall_iiiiiiiiiiiiiiiii=Module[\"dynCall_iiiiiiiiiiiiiiiii\"]=function(){return(dynCall_iiiiiiiiiiiiiiiii=Module[\"dynCall_iiiiiiiiiiiiiiiii\"]=Module[\"asm\"][\"dynCall_iiiiiiiiiiiiiiiii\"]).apply(null,arguments)};var dynCall_iiiiiiiiiiiiiiiiii=Module[\"dynCall_iiiiiiiiiiiiiiiiii\"]=function(){return(dynCall_iiiiiiiiiiiiiiiiii=Module[\"dynCall_iiiiiiiiiiiiiiiiii\"]=Module[\"asm\"][\"dynCall_iiiiiiiiiiiiiiiiii\"]).apply(null,arguments)};var dynCall_jiji=Module[\"dynCall_jiji\"]=function(){return(dynCall_jiji=Module[\"dynCall_jiji\"]=Module[\"asm\"][\"dynCall_jiji\"]).apply(null,arguments)};var dynCall_iidiiii=Module[\"dynCall_iidiiii\"]=function(){return(dynCall_iidiiii=Module[\"dynCall_iidiiii\"]=Module[\"asm\"][\"dynCall_iidiiii\"]).apply(null,arguments)};var dynCall_iiiiij=Module[\"dynCall_iiiiij\"]=function(){return(dynCall_iiiiij=Module[\"dynCall_iiiiij\"]=Module[\"asm\"][\"dynCall_iiiiij\"]).apply(null,arguments)};var dynCall_iiiiijj=Module[\"dynCall_iiiiijj\"]=function(){return(dynCall_iiiiijj=Module[\"dynCall_iiiiijj\"]=Module[\"asm\"][\"dynCall_iiiiijj\"]).apply(null,arguments)};var dynCall_iiiiiijj=Module[\"dynCall_iiiiiijj\"]=function(){return(dynCall_iiiiiijj=Module[\"dynCall_iiiiiijj\"]=Module[\"asm\"][\"dynCall_iiiiiijj\"]).apply(null,arguments)};function invoke_viiii(index,a1,a2,a3,a4){var sp=stackSave();try{dynCall_viiii(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_ii(index,a1){var sp=stackSave();try{return dynCall_ii(index,a1)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iii(index,a1,a2){var sp=stackSave();try{return dynCall_iii(index,a1,a2)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_vi(index,a1){var sp=stackSave();try{dynCall_vi(index,a1)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_diii(index,a1,a2,a3){var sp=stackSave();try{return dynCall_diii(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iiiiii(index,a1,a2,a3,a4,a5){var sp=stackSave();try{return dynCall_iiiiii(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_vii(index,a1,a2){var sp=stackSave();try{dynCall_vii(index,a1,a2)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9){var sp=stackSave();try{dynCall_viiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viiiiiii(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{dynCall_viiiiiii(index,a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viii(index,a1,a2,a3){var sp=stackSave();try{dynCall_viii(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viiiii(index,a1,a2,a3,a4,a5){var sp=stackSave();try{dynCall_viiiii(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iiiiiii(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{return dynCall_iiiiiii(index,a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iiiii(index,a1,a2,a3,a4){var sp=stackSave();try{return dynCall_iiiii(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iiii(index,a1,a2,a3){var sp=stackSave();try{return dynCall_iiii(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_dii(index,a1,a2){var sp=stackSave();try{return dynCall_dii(index,a1,a2)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viiiiii(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{dynCall_viiiiii(index,a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9){var sp=stackSave();try{return dynCall_iiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viidi(index,a1,a2,a3,a4){var sp=stackSave();try{dynCall_viidi(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_v(index){var sp=stackSave();try{dynCall_v(index)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iid(index,a1,a2){var sp=stackSave();try{return dynCall_iid(index,a1,a2)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iif(index,a1,a2){var sp=stackSave();try{return dynCall_iif(index,a1,a2)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_i(index){var sp=stackSave();try{return dynCall_i(index)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iiiiiiii(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{return dynCall_iiiiiiii(index,a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viidddd(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{dynCall_viidddd(index,a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viid(index,a1,a2,a3){var sp=stackSave();try{dynCall_viid(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_di(index,a1){var sp=stackSave();try{return dynCall_di(index,a1)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_vid(index,a1,a2){var sp=stackSave();try{dynCall_vid(index,a1,a2)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8){var sp=stackSave();try{dynCall_viiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viiidiiiid(index,a1,a2,a3,a4,a5,a6,a7,a8,a9){var sp=stackSave();try{dynCall_viiidiiiid(index,a1,a2,a3,a4,a5,a6,a7,a8,a9)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viiiiidi(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{dynCall_viiiiidi(index,a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viiiidd(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{dynCall_viiiidd(index,a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viiidi(index,a1,a2,a3,a4,a5){var sp=stackSave();try{dynCall_viiidi(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viidiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10){var sp=stackSave();try{dynCall_viidiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viiiiiid(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{dynCall_viiiiiid(index,a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_vidiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9){var sp=stackSave();try{dynCall_vidiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iiiiiid(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{return dynCall_iiiiiid(index,a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viiiff(index,a1,a2,a3,a4,a5){var sp=stackSave();try{dynCall_viiiff(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iiddii(index,a1,a2,a3,a4,a5){var sp=stackSave();try{return dynCall_iiddii(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iiddiii(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{return dynCall_iiddiii(index,a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10){var sp=stackSave();try{dynCall_viiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_fii(index,a1,a2){var sp=stackSave();try{return dynCall_fii(index,a1,a2)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iiddi(index,a1,a2,a3,a4){var sp=stackSave();try{return dynCall_iiddi(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viidii(index,a1,a2,a3,a4,a5){var sp=stackSave();try{dynCall_viidii(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viiid(index,a1,a2,a3,a4){var sp=stackSave();try{dynCall_viiid(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_diid(index,a1,a2,a3){var sp=stackSave();try{return dynCall_diid(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8){var sp=stackSave();try{return dynCall_iiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viiiiiiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15){var sp=stackSave();try{dynCall_viiiiiiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iiiiiiiiiddiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13){var sp=stackSave();try{return dynCall_iiiiiiiiiddiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_vidi(index,a1,a2,a3){var sp=stackSave();try{dynCall_vidi(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_diiii(index,a1,a2,a3,a4){var sp=stackSave();try{return dynCall_diiii(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_diiiii(index,a1,a2,a3,a4,a5){var sp=stackSave();try{return dynCall_diiiii(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viif(index,a1,a2,a3){var sp=stackSave();try{dynCall_viif(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_fiiii(index,a1,a2,a3,a4){var sp=stackSave();try{return dynCall_fiiii(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_fi(index,a1){var sp=stackSave();try{return dynCall_fi(index,a1)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_vif(index,a1,a2){var sp=stackSave();try{dynCall_vif(index,a1,a2)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viffi(index,a1,a2,a3,a4){var sp=stackSave();try{dynCall_viffi(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viiiiffffiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11){var sp=stackSave();try{dynCall_viiiiffffiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viffffff(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{dynCall_viffffff(index,a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_fif(index,a1,a2){var sp=stackSave();try{return dynCall_fif(index,a1,a2)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_vifii(index,a1,a2,a3,a4){var sp=stackSave();try{dynCall_vifii(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_fiiiiiff(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{return dynCall_fiiiiiff(index,a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viifii(index,a1,a2,a3,a4,a5){var sp=stackSave();try{dynCall_viifii(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11){var sp=stackSave();try{dynCall_viiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iiiiid(index,a1,a2,a3,a4,a5){var sp=stackSave();try{return dynCall_iiiiid(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10){var sp=stackSave();try{return dynCall_iiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iiiiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12){var sp=stackSave();try{return dynCall_iiiiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_fiii(index,a1,a2,a3){var sp=stackSave();try{return dynCall_fiii(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iiiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11){var sp=stackSave();try{return dynCall_iiiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iij(index,a1,a2,a3){var sp=stackSave();try{return dynCall_iij(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_jiiii(index,a1,a2,a3,a4){var sp=stackSave();try{return dynCall_jiiii(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}var calledRun;function ExitStatus(status){this.name=\"ExitStatus\";this.message=\"Program terminated with exit(\"+status+\")\";this.status=status}dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function run(args){args=args||arguments_;if(runDependencies>0){return}preRun();if(runDependencies>0)return;function doRun(){if(calledRun)return;calledRun=true;Module[\"calledRun\"]=true;if(ABORT)return;initRuntime();preMain();if(Module[\"onRuntimeInitialized\"])Module[\"onRuntimeInitialized\"]();postRun()}if(Module[\"setStatus\"]){Module[\"setStatus\"](\"Running...\");setTimeout(function(){setTimeout(function(){Module[\"setStatus\"](\"\")},1);doRun()},1)}else{doRun()}}Module[\"run\"]=run;if(Module[\"preInit\"]){if(typeof Module[\"preInit\"]==\"function\")Module[\"preInit\"]=[Module[\"preInit\"]];while(Module[\"preInit\"].length>0){Module[\"preInit\"].pop()()}}noExitRuntime=true;run();"],"names":["key","Module","moduleOverrides","hasOwnProperty","read_","readAsync","readBinary","setWindowTitle","nodeFS","nodePath","arguments_","thisProgram","quit_","status","toThrow","ENVIRONMENT_IS_WEB","ENVIRONMENT_IS_WORKER","ENVIRONMENT_IS_NODE","ENVIRONMENT_IS_SHELL","window","importScripts","process","versions","node","scriptDirectory","locateFile","path","require","dirname","__dirname","filename","binary","ret","assert","buffer","Uint8Array","length","replace","slice","module","ex","ExitStatus","abort","read","f","readbuffer","data","scriptArgs","arguments","quit","print","console","log","warn","error","printErr","self","location","href","document","currentScript","src","indexOf","substr","lastIndexOf","url","xhr","XMLHttpRequest","open","send","responseText","responseType","response","onload","onerror","title","out","bind","err","STACK_ALIGN","dynamicAlloc","size","HEAP32","DYNAMICTOP_PTR","getNativeTypeSize","type","bits","Number","warnOnce","text","shown","convertJsFunctionToWasm","func","sig","WebAssembly","Function","typeNames","i","j","d","parameters","results","push","typeSection","sigRet","sigParam","typeCodes","concat","bytes","Instance","e","exports","functionsInTableMap","freeTableIndexes","addFunctionWasm","table","wasmTable","WeakMap","item","get","set","has","pop","grow","RangeError","TypeError","wrapped","removeFunctionWasm","index","delete","funcWrappers","dynCall","ptr","args","apply","call","wasmBinary","noExitRuntime","wasmMemory","tempRet0","setTempRet0","value","getTempRet0","setValue","noSafe","charAt","HEAP8","HEAP16","tempI64","Math_abs","tempDouble","Math_min","Math_floor","Math_ceil","HEAPF32","HEAPF64","Table","initial","maximum","element","ABORT","EXITSTATUS","condition","getCFunc","ident","ccall","returnType","argTypes","opts","toC","string","str","len","stringToUTF8","stackAlloc","array","arr","writeArrayToMemory","cArgs","stack","converter","stackSave","UTF8ToString","Boolean","stackRestore","ALLOC_NONE","UTF8Decoder","TextDecoder","undefined","UTF8ArrayToString","heap","idx","maxBytesToRead","endIdx","endPtr","subarray","decode","u1","ch","u0","u2","String","fromCharCode","HEAPU8","stringToUTF8Array","outIdx","maxBytesToWrite","startIdx","u","charCodeAt","outPtr","lengthBytesUTF8","UTF16Decoder","UTF16ToString","maxIdx","HEAPU16","codeUnit","stringToUTF16","startPtr","numCharsToWrite","lengthBytesUTF16","UTF32ToString","utf32","stringToUTF32","lengthBytesUTF32","allocateUTF8","_malloc","writeAsciiToMemory","dontAddNull","HEAPU32","WASM_PAGE_SIZE","updateGlobalBufferAndViews","buf","Int8Array","Int16Array","Int32Array","Uint16Array","Uint32Array","Float32Array","Float64Array","STACK_BASE","DYNAMIC_BASE","INITIAL_INITIAL_MEMORY","callRuntimeCallbacks","callbacks","callback","shift","arg","Memory","byteLength","__ATPRERUN__","__ATINIT__","__ATMAIN__","__ATPOSTRUN__","runtimeInitialized","runtimeExited","preRun","addOnPreRun","initRuntime","FS","init","initialized","TTY","preMain","ignorePermissions","exitRuntime","postRun","addOnPostRun","cb","unshift","Math","abs","ceil","floor","min","runDependencies","runDependencyWatcher","dependenciesFulfilled","getUniqueRunDependency","id","addRunDependency","removeRunDependency","clearInterval","what","RuntimeError","hasPrefix","prefix","prototype","startsWith","dataURIPrefix","isDataURI","fileURIPrefix","isFileURI","wasmBinaryFile","getBinary","getBinaryPromise","fetch","Promise","resolve","reject","credentials","then","catch","createWasm","info","env","asmLibraryArg","wasi_snapshot_preview1","receiveInstance","instance","receiveInstantiatedSource","output","instantiateArrayBuffer","receiver","instantiate","reason","instantiateStreaming","instantiateAsync","demangle","demangleAll","x","y","jsStackTrace","Error","toString","stackTrace","js","___cxa_allocate_exception","_atexit","___cxa_atexit","a0","a1","___wasm_call_ctors","___exception_infos","___exception_caught","___exception_addRef","refcount","___exception_deAdjust","adjusted","adj","___cxa_begin_catch","caught","__ZSt18uncaught_exceptionv","uncaught_exceptions","rethrown","___exception_last","___cxa_free_exception","_free","___exception_decRef","destructor","___cxa_end_catch","_setThrew","___cxa_find_matching_catch_2","thrown","throwntype","typeArray","Array","___cxa_is_pointer_type","___cxa_can_catch","___cxa_find_matching_catch_3","___cxa_find_matching_catch_4","___cxa_rethrow","___cxa_throw","___cxa_uncaught_exceptions","setErrNo","___errno_location","___map_file","pathname","___resumeException","PATH","splitPath","exec","normalizeArray","parts","allowAboveRoot","up","last","splice","normalize","isAbsolute","trailingSlash","split","filter","p","join","result","root","dir","basename","lastSlash","extname","paths","join2","l","r","PATH_FS","resolvedPath","resolvedAbsolute","cwd","relative","from","to","trim","start","end","fromParts","toParts","samePartsLength","outputParts","ttys","shutdown","register","dev","ops","input","registerDevice","stream_ops","stream","tty","rdev","ErrnoError","seekable","close","flush","offset","pos","get_char","bytesRead","timestamp","Date","now","write","put_char","default_tty_ops","Buffer","alloc","readSync","stdin","fd","prompt","readline","intArrayFromString","val","default_tty1_ops","MEMFS","ops_table","mount","createNode","parent","name","mode","isBlkdev","isFIFO","getattr","node_ops","setattr","lookup","mknod","rename","unlink","rmdir","readdir","symlink","llseek","file","allocate","mmap","msync","link","readlink","chrdev","chrdev_stream_ops","isDir","contents","isFile","usedBytes","isLink","isChrdev","getFileDataAsRegularArray","getFileDataAsTypedArray","expandFileStorage","newCapacity","prevCapacity","max","oldContents","resizeFileStorage","newSize","attr","ino","nlink","uid","gid","atime","mtime","ctime","blksize","blocks","genericErrors","old_node","new_dir","new_name","new_node","lookupNode","entries","newname","oldpath","position","canOwn","whence","address","prot","flags","allocated","byteOffset","mmapFlags","mounts","devices","streams","nextInode","nameTable","currentPath","trackingDelegate","tracking","openFlags","READ","WRITE","filesystems","syncFSRequests","handleFSError","errno","lookupPath","defaults","follow_mount","recurse_count","current","current_path","islast","isMountpoint","mounted","follow","count","getPath","isRoot","mountpoint","hashName","parentid","hash","hashAddNode","name_next","hashRemoveNode","errCode","mayLookup","nodeName","FSNode","destroyNode","isSocket","flagModes","rs","r+","w","wx","xw","w+","wx+","xw+","a","ax","xa","a+","ax+","xa+","modeStringToFlags","flagsToPermissionString","flag","perms","nodePermissions","mayCreate","mayDelete","isdir","mayOpen","MAX_OPEN_FDS","nextfd","fd_start","fd_end","getStream","createStream","FSStream","object","this","isRead","isWrite","isAppend","newStream","closeStream","device","getDevice","major","minor","makedev","ma","mi","getMounts","check","m","syncfs","populate","completed","doCallback","done","errored","forEach","pseudo","mountRoot","unmount","Object","keys","next","create","mkdir","mkdirTree","dirs","mkdev","newpath","old_path","new_path","old_dir","old_dirname","new_dirname","old_name","message","stat","dontFollow","lstat","chmod","lchmod","fchmod","chown","lchown","fchown","truncate","ftruncate","utime","created","trackingFlags","ungotten","readFiles","isClosed","getdents","seeking","bytesWritten","munmap","ioctl","cmd","readFile","encoding","writeFile","actualNumBytes","ArrayBuffer","isView","chdir","createDefaultDirectories","createDefaultDevices","crypto","randomBuffer","random_device","getRandomValues","crypto_module","createDevice","createSpecialDirectories","createStandardStreams","ensureErrnoError","setErrno","constructor","code","staticInit","fflush","getMode","canRead","canWrite","joinPath","forceRelative","absolutePath","base","standardizePath","findObject","dontResolveLastLink","analyzePath","exists","parentExists","parentPath","parentObject","createFolder","createPath","reverse","part","createFile","properties","createDataFile","createLink","target","forceLoadFile","obj","isDevice","isFolder","success","createLazyFile","LazyUint8Array","lengthKnown","chunks","chunkOffset","chunkSize","chunkNum","getter","setDataGetter","cacheLength","datalength","getResponseHeader","hasByteServing","header","usesGzip","lazyArray","setRequestHeader","overrideMimeType","doXHR","_length","_chunkSize","defineProperties","fn","createPreloadedFile","dontCreateFile","preFinish","Browser","fullname","dep","processData","byteArray","finish","handled","plugin","asyncLoad","indexedDB","mozIndexedDB","webkitIndexedDB","msIndexedDB","DB_NAME","DB_VERSION","DB_STORE_NAME","saveFilesToDB","openRequest","onupgradeneeded","createObjectStore","onsuccess","transaction","files","objectStore","ok","fail","total","putRequest","put","loadFilesFromDB","db","getRequest","SYSCALLS","mappings","DEFAULT_POLLMASK","umask","calculateAt","dirfd","dirstream","doStat","getTime","doMsync","addr","doMkdir","doMknod","doReadlink","bufsize","endChar","doAccess","amode","doDup","suggestFD","suggest","doReadv","iov","iovcnt","curr","doWritev","varargs","getStr","getStreamFromFD","get64","low","high","___sys_fcntl64","___sys_ioctl","op","argp","syscallMunmap","malloc","___sys_munmap","___sys_open","getShiftFromSize","embind_init_charCodes","codes","embind_charCodes","readLatin1String","c","awaitingDependencies","registeredTypes","typeDependencies","char_0","char_9","makeLegalFunctionName","createNamedFunction","body","extendError","baseErrorType","errorName","errorClass","BindingError","throwBindingError","InternalError","throwInternalError","whenDependentTypesAreResolved","myTypes","dependentTypes","getTypeConverters","onComplete","typeConverters","myTypeConverters","registerType","unregisteredTypes","registered","dt","rawType","registeredInstance","options","ignoreDuplicateRegistrations","__embind_register_bool","trueValue","falseValue","fromWireType","wt","toWireType","destructors","o","argPackAdvance","readValueFromPointer","pointer","destructorFunction","ClassHandle_isAliasOf","other","ClassHandle","leftClass","$$","ptrType","registeredClass","left","rightClass","right","baseClass","upcast","shallowCopyInternalPointer","deleteScheduled","preservePointerOnDelete","smartPtr","smartPtrType","throwInstanceAlreadyDeleted","finalizationGroup","detachFinalizer","handle","runDestructor","rawDestructor","releaseClassHandle","attachFinalizer","FinalizationGroup","iter","unregister","ClassHandle_clone","clone","getPrototypeOf","ClassHandle_delete","ClassHandle_isDeleted","delayFunction","deletionQueue","flushPendingDeletes","ClassHandle_deleteLater","init_ClassHandle","registeredPointers","ensureOverloadTable","proto","methodName","humanName","prevFunc","overloadTable","argCount","exposePublicSymbol","numArguments","RegisteredClass","instancePrototype","getActualType","downcast","pureVirtualFunctions","upcastPointer","ptrClass","desiredClass","constNoSmartPtrRawPointerToWireType","isReference","_embind_repr","handleClass","genericPointerToWireType","isSmartPointer","rawConstructor","isConst","clonedHandle","sharingPolicy","rawShare","__emval_register","nonConstNoSmartPtrRawPointerToWireType","simpleReadValueFromPointer","RegisteredPointer_getPointee","rawGetPointee","RegisteredPointer_destructor","RegisteredPointer_deleteObject","downcastPointer","rv","getInheritedInstanceCount","registeredInstances","getLiveInheritedInstances","k","setDelayFunction","init_embind","getBasestPointer","class_","getInheritedInstance","makeClassHandle","record","RegisteredPointer_fromWireType","rawPointer","getPointee","makeDefaultHandle","pointeeType","actualType","registeredPointerRecord","toType","constPointerType","pointerType","dp","init_RegisteredPointer","RegisteredPointer","replacePublicSymbol","embind__requireFunction","signature","rawFunction","fp","makeDynCaller","UnboundTypeError","getTypeName","___getTypeName","throwUnboundTypeError","types","unboundTypes","seen","visit","map","__embind_register_class","rawPointerType","rawConstPointerType","baseClassRawType","getActualTypeSignature","upcastSignature","downcastSignature","destructorSignature","legalFunctionName","basePrototype","constructor_body","referenceConverter","pointerConverter","constPointerConverter","new_","argumentList","dummy","runDestructors","del","craftInvokerFunction","classType","cppInvokerFunc","cppTargetFunc","isClassMethodFunc","needsDestructorStack","returns","argsList","argsListWired","invokerFnBody","dtorStack","args1","args2","paramName","heap32VectorToArray","firstElement","__embind_register_class_function","rawClassType","rawArgTypesAddr","invokerSignature","rawInvoker","context","isPureVirtual","rawArgTypes","unboundTypesHandler","method","className","memberFunction","emval_free_list","emval_handle_array","__emval_decref","count_emval_handles","get_first_emval","init_emval","__embind_register_emval","v","t","floatReadValueFromPointer","__embind_register_float","__embind_register_function","invokerArgsArray","integerReadValueFromPointer","signed","__embind_register_integer","primitiveType","minRange","maxRange","bitshift","isUnsignedType","__embind_register_memory_view","dataTypeIndex","TA","decodeMemoryView","__embind_register_std_string","stdStringIsUTF8","decodeStartPtr","stringSegment","currentBytePtr","valueIsOfTypeString","Uint8ClampedArray","charCode","__embind_register_std_wstring","charSize","decodeString","encodeString","getHeap","lengthBytesUTF","HEAP","__embind_register_void","isVoid","requireHandle","requireRegisteredType","impl","__emval_as","destructorsRef","rd","__emval_allocateDestructors","emval_symbols","getStringOrSymbol","symbol","emval_methodCallers","__emval_call_method","caller","__emval_call_void_method","__emval_addMethodCaller","__emval_lookupTypes","__emval_get_method_caller","retType","signatureName","params","functionBody","__emval_get_property","__emval_incref","__emval_new_cstring","__emval_run_destructors","__emval_set_property","__emval_take_value","argv","_abort","_clock","_emscripten_get_sbrk_ptr","_longjmp","_emscripten_longjmp","_emscripten_memcpy_big","dest","num","copyWithin","abortOnCannotGrowMemory","requestedSize","_emscripten_resize_heap","ENV","__getExecutableName","getEnvStrings","strings","USER","LOGNAME","PWD","HOME","LANG","navigator","languages","_","_environ_get","__environ","environ_buf","bufSize","_environ_sizes_get","penviron_count","penviron_buf_size","_fd_close","_fd_fdstat_get","pbuf","_fd_read","pnum","_fd_seek","offset_low","offset_high","newOffset","DOUBLE_LIMIT","_fd_write","_getTempRet0","_llvm_eh_typeid_for","___tm_current","___tm_timezone","_tzset","winter","summer","winterNamePtr","summerNamePtr","extractZone","date","match","toTimeString","called","__get_timezone","getTimezoneOffset","currentYear","getFullYear","__get_daylight","winterName","summerName","__get_tzname","_localtime_r","time","tmPtr","getSeconds","getMinutes","getHours","getDate","getMonth","getDay","yday","summerOffset","winterOffset","dst","zonePtr","_localtime","_pthread_mutexattr_destroy","_pthread_mutexattr_init","_pthread_mutexattr_settype","_round","_setTempRet0","$i","__isLeapYear","year","__arraySum","sum","__MONTH_DAYS_LEAP","__MONTH_DAYS_REGULAR","__addDays","days","newDate","leap","currentMonth","daysInCurrentMonth","setDate","setMonth","setFullYear","_strftime","s","maxsize","format","tm","tm_zone","tm_sec","tm_min","tm_hour","tm_mday","tm_mon","tm_year","tm_wday","tm_yday","tm_isdst","tm_gmtoff","pattern","EXPANSION_RULES_1","%c","%D","%F","%h","%r","%R","%T","%x","%X","%Ec","%EC","%Ex","%EX","%Ey","%EY","%Od","%Oe","%OH","%OI","%Om","%OM","%OS","%Ou","%OU","%OV","%Ow","%OW","%Oy","rule","RegExp","WEEKDAYS","MONTHS","leadingSomething","digits","character","leadingNulls","compareByDay","date1","date2","sgn","compare","getFirstWeekStartDate","janFourth","getWeekBasedYear","thisDate","janFourthThisYear","janFourthNextYear","firstWeekStartThisYear","firstWeekStartNextYear","EXPANSION_RULES_2","%a","substring","%A","%b","%B","%C","%d","%e","%g","%G","%H","%I","twelveHour","%j","%m","%M","%n","%p","%S","%t","%u","%U","janFirst","firstSunday","endDate","februaryFirstUntilEndMonth","%V","daysDifference","%w","%W","firstMonday","%y","%Y","%z","off","ahead","%Z","%%","_strftime_l","_time","readMode","writeMode","ASSERTIONS","stringy","u8array","numBytesWritten","calledRun","__cxa_allocate_exception","__cxa_atexit","__cxa_begin_catch","__cxa_end_catch","__cxa_find_matching_catch_2","__cxa_find_matching_catch_3","__cxa_find_matching_catch_4","__cxa_free_exception","__cxa_rethrow","__cxa_throw","__cxa_uncaught_exceptions","__map_file","__resumeException","__sys_fcntl64","__sys_ioctl","__sys_munmap","__sys_open","_embind_register_bool","_embind_register_class","_embind_register_class_function","_embind_register_emval","_embind_register_float","_embind_register_function","_embind_register_integer","_embind_register_memory_view","_embind_register_std_string","_embind_register_std_wstring","_embind_register_void","_emval_as","_emval_call_method","_emval_call_void_method","_emval_decref","_emval_get_method_caller","_emval_get_property","_emval_incref","_emval_new_cstring","_emval_run_destructors","_emval_set_property","_emval_take_value","clock","emscripten_get_sbrk_ptr","emscripten_longjmp","emscripten_memcpy_big","emscripten_resize_heap","environ_get","environ_sizes_get","fd_close","fd_fdstat_get","fd_read","fd_seek","fd_write","invoke_di","invoke_dii","invoke_diid","invoke_diii","invoke_diiii","invoke_diiiii","invoke_fi","invoke_fif","invoke_fii","invoke_fiii","invoke_fiiii","invoke_fiiiiiff","invoke_i","invoke_ii","invoke_iid","invoke_iiddi","invoke_iiddii","invoke_iiddiii","invoke_iif","invoke_iii","invoke_iiii","invoke_iiiii","invoke_iiiiid","invoke_iiiiii","invoke_iiiiiid","invoke_iiiiiii","invoke_iiiiiiii","invoke_iiiiiiiii","invoke_iiiiiiiiiddiii","invoke_iiiiiiiiii","invoke_iiiiiiiiiii","invoke_iiiiiiiiiiii","invoke_iiiiiiiiiiiii","invoke_iij","invoke_jiiii","invoke_v","invoke_vi","invoke_vid","invoke_vidi","invoke_vidiiiiiii","invoke_vif","invoke_viffffff","invoke_viffi","invoke_vifii","invoke_vii","invoke_viid","invoke_viidddd","invoke_viidi","invoke_viidii","invoke_viidiiiiiii","invoke_viif","invoke_viifii","invoke_viii","invoke_viiid","invoke_viiidi","invoke_viiidiiiid","invoke_viiiff","invoke_viiii","invoke_viiiidd","invoke_viiiiffffiii","invoke_viiiii","invoke_viiiiidi","invoke_viiiiii","invoke_viiiiiid","invoke_viiiiiii","invoke_viiiiiiii","invoke_viiiiiiiii","invoke_viiiiiiiiii","invoke_viiiiiiiiiii","invoke_viiiiiiiiiiiiiii","llvm_eh_typeid_for","localtime","memory","pthread_mutexattr_destroy","pthread_mutexattr_init","pthread_mutexattr_settype","round","strftime_l","asm","_realloc","_testSetjmp","_saveSetjmp","___embind_register_native_and_builtin_types","dynCall_v","dynCall_vi","dynCall_vii","dynCall_viii","dynCall_viiii","dynCall_viiiii","dynCall_viiiiii","dynCall_viiiiiii","dynCall_viiiiiiii","dynCall_viiiiiiiii","dynCall_viiiiiiiiii","dynCall_viiiiiiiiiii","dynCall_viiiiiiiiiiiiiii","dynCall_viiiiiid","dynCall_viiiiidi","dynCall_viiiiffffiii","dynCall_viiiidd","dynCall_viiiff","dynCall_viiid","dynCall_viiidi","dynCall_viiidiiiid","dynCall_viif","dynCall_viifii","dynCall_viid","dynCall_viidi","dynCall_viidii","dynCall_viidiiiiiii","dynCall_viidddd","dynCall_vif","dynCall_vifii","dynCall_viffi","dynCall_viffffff","dynCall_vid","dynCall_vidi","dynCall_vidiiiiiii","dynCall_i","dynCall_ii","dynCall_iii","dynCall_iiii","dynCall_iiiii","dynCall_iiiiii","dynCall_iiiiiii","dynCall_iiiiiiii","dynCall_iiiiiiiii","dynCall_iiiiiiiiii","dynCall_iiiiiiiiiii","dynCall_iiiiiiiiiiii","dynCall_iiiiiiiiiiiii","dynCall_iiiiiiiiiddiii","dynCall_iiiiiid","dynCall_iiiiid","dynCall_iij","dynCall_iif","dynCall_iid","dynCall_iiddi","dynCall_iiddii","dynCall_iiddiii","dynCall_jiiii","dynCall_fi","dynCall_fii","dynCall_fiii","dynCall_fiiii","dynCall_fiiiiiff","dynCall_fif","dynCall_di","dynCall_dii","dynCall_diii","dynCall_diiii","dynCall_diiiii","dynCall_diid","__growWasmMemory","dynCall_iiidi","dynCall_viijii","dynCall_viiddd","dynCall_viiiidi","dynCall_iiiiiiiiiiiiiiiii","dynCall_iiiiiiiiiiiiiiiiii","dynCall_jiji","dynCall_iidiiii","dynCall_iiiiij","dynCall_iiiiijj","dynCall_iiiiiijj","a2","a3","a4","sp","a5","a6","a7","a8","a9","a10","a11","a12","a13","a14","a15","run","doRun","setTimeout","runCaller"],"mappings":"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"} \ No newline at end of file
diff --git a/docs/js/RDKit_minimal.wasm b/docs/js/RDKit_minimal.wasm
new file mode 100644
index 0000000..8a5a73b
--- /dev/null
+++ b/docs/js/RDKit_minimal.wasm
Binary files differ
diff --git a/docs/js/main.js b/docs/js/main.js
new file mode 100644
index 0000000..3ed03b5
--- /dev/null
+++ b/docs/js/main.js
@@ -0,0 +1,8910 @@
+// import Popper
+/**!
+ * @fileOverview Kickass library to create and place poppers near their reference elements.
+ * @version 1.16.1
+ * @license
+ * Copyright (c) 2016 Federico Zivolo and contributors
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in all
+ * copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ */
+(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
+ typeof define === 'function' && define.amd ? define(factory) :
+ (global.Popper = factory());
+}(this, (function () { 'use strict';
+
+var isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && typeof navigator !== 'undefined';
+
+var timeoutDuration = function () {
+ var longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];
+ for (var i = 0; i < longerTimeoutBrowsers.length; i += 1) {
+ if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {
+ return 1;
+ }
+ }
+ return 0;
+}();
+
+function microtaskDebounce(fn) {
+ var called = false;
+ return function () {
+ if (called) {
+ return;
+ }
+ called = true;
+ window.Promise.resolve().then(function () {
+ called = false;
+ fn();
+ });
+ };
+}
+
+function taskDebounce(fn) {
+ var scheduled = false;
+ return function () {
+ if (!scheduled) {
+ scheduled = true;
+ setTimeout(function () {
+ scheduled = false;
+ fn();
+ }, timeoutDuration);
+ }
+ };
+}
+
+var supportsMicroTasks = isBrowser && window.Promise;
+
+/**
+* Create a debounced version of a method, that's asynchronously deferred
+* but called in the minimum time possible.
+*
+* @method
+* @memberof Popper.Utils
+* @argument {Function} fn
+* @returns {Function}
+*/
+var debounce = supportsMicroTasks ? microtaskDebounce : taskDebounce;
+
+/**
+ * Check if the given variable is a function
+ * @method
+ * @memberof Popper.Utils
+ * @argument {Any} functionToCheck - variable to check
+ * @returns {Boolean} answer to: is a function?
+ */
+function isFunction(functionToCheck) {
+ var getType = {};
+ return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';
+}
+
+/**
+ * Get CSS computed property of the given element
+ * @method
+ * @memberof Popper.Utils
+ * @argument {Eement} element
+ * @argument {String} property
+ */
+function getStyleComputedProperty(element, property) {
+ if (element.nodeType !== 1) {
+ return [];
+ }
+ // NOTE: 1 DOM access here
+ var window = element.ownerDocument.defaultView;
+ var css = window.getComputedStyle(element, null);
+ return property ? css[property] : css;
+}
+
+/**
+ * Returns the parentNode or the host of the element
+ * @method
+ * @memberof Popper.Utils
+ * @argument {Element} element
+ * @returns {Element} parent
+ */
+function getParentNode(element) {
+ if (element.nodeName === 'HTML') {
+ return element;
+ }
+ return element.parentNode || element.host;
+}
+
+/**
+ * Returns the scrolling parent of the given element
+ * @method
+ * @memberof Popper.Utils
+ * @argument {Element} element
+ * @returns {Element} scroll parent
+ */
+function getScrollParent(element) {
+ // Return body, `getScroll` will take care to get the correct `scrollTop` from it
+ if (!element) {
+ return document.body;
+ }
+
+ switch (element.nodeName) {
+ case 'HTML':
+ case 'BODY':
+ return element.ownerDocument.body;
+ case '#document':
+ return element.body;
+ }
+
+ // Firefox want us to check `-x` and `-y` variations as well
+
+ var _getStyleComputedProp = getStyleComputedProperty(element),
+ overflow = _getStyleComputedProp.overflow,
+ overflowX = _getStyleComputedProp.overflowX,
+ overflowY = _getStyleComputedProp.overflowY;
+
+ if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {
+ return element;
+ }
+
+ return getScrollParent(getParentNode(element));
+}
+
+/**
+ * Returns the reference node of the reference object, or the reference object itself.
+ * @method
+ * @memberof Popper.Utils
+ * @param {Element|Object} reference - the reference element (the popper will be relative to this)
+ * @returns {Element} parent
+ */
+function getReferenceNode(reference) {
+ return reference && reference.referenceNode ? reference.referenceNode : reference;
+}
+
+var isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);
+var isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent);
+
+/**
+ * Determines if the browser is Internet Explorer
+ * @method
+ * @memberof Popper.Utils
+ * @param {Number} version to check
+ * @returns {Boolean} isIE
+ */
+function isIE(version) {
+ if (version === 11) {
+ return isIE11;
+ }
+ if (version === 10) {
+ return isIE10;
+ }
+ return isIE11 || isIE10;
+}
+
+/**
+ * Returns the offset parent of the given element
+ * @method
+ * @memberof Popper.Utils
+ * @argument {Element} element
+ * @returns {Element} offset parent
+ */
+function getOffsetParent(element) {
+ if (!element) {
+ return document.documentElement;
+ }
+
+ var noOffsetParent = isIE(10) ? document.body : null;
+
+ // NOTE: 1 DOM access here
+ var offsetParent = element.offsetParent || null;
+ // Skip hidden elements which don't have an offsetParent
+ while (offsetParent === noOffsetParent && element.nextElementSibling) {
+ offsetParent = (element = element.nextElementSibling).offsetParent;
+ }
+
+ var nodeName = offsetParent && offsetParent.nodeName;
+
+ if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {
+ return element ? element.ownerDocument.documentElement : document.documentElement;
+ }
+
+ // .offsetParent will return the closest TH, TD or TABLE in case
+ // no offsetParent is present, I hate this job...
+ if (['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') {
+ return getOffsetParent(offsetParent);
+ }
+
+ return offsetParent;
+}
+
+function isOffsetContainer(element) {
+ var nodeName = element.nodeName;
+
+ if (nodeName === 'BODY') {
+ return false;
+ }
+ return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element;
+}
+
+/**
+ * Finds the root node (document, shadowDOM root) of the given element
+ * @method
+ * @memberof Popper.Utils
+ * @argument {Element} node
+ * @returns {Element} root node
+ */
+function getRoot(node) {
+ if (node.parentNode !== null) {
+ return getRoot(node.parentNode);
+ }
+
+ return node;
+}
+
+/**
+ * Finds the offset parent common to the two provided nodes
+ * @method
+ * @memberof Popper.Utils
+ * @argument {Element} element1
+ * @argument {Element} element2
+ * @returns {Element} common offset parent
+ */
+function findCommonOffsetParent(element1, element2) {
+ // This check is needed to avoid errors in case one of the elements isn't defined for any reason
+ if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {
+ return document.documentElement;
+ }
+
+ // Here we make sure to give as "start" the element that comes first in the DOM
+ var order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;
+ var start = order ? element1 : element2;
+ var end = order ? element2 : element1;
+
+ // Get common ancestor container
+ var range = document.createRange();
+ range.setStart(start, 0);
+ range.setEnd(end, 0);
+ var commonAncestorContainer = range.commonAncestorContainer;
+
+ // Both nodes are inside #document
+
+ if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) {
+ if (isOffsetContainer(commonAncestorContainer)) {
+ return commonAncestorContainer;
+ }
+
+ return getOffsetParent(commonAncestorContainer);
+ }
+
+ // one of the nodes is inside shadowDOM, find which one
+ var element1root = getRoot(element1);
+ if (element1root.host) {
+ return findCommonOffsetParent(element1root.host, element2);
+ } else {
+ return findCommonOffsetParent(element1, getRoot(element2).host);
+ }
+}
+
+/**
+ * Gets the scroll value of the given element in the given side (top and left)
+ * @method
+ * @memberof Popper.Utils
+ * @argument {Element} element
+ * @argument {String} side `top` or `left`
+ * @returns {number} amount of scrolled pixels
+ */
+function getScroll(element) {
+ var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top';
+
+ var upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';
+ var nodeName = element.nodeName;
+
+ if (nodeName === 'BODY' || nodeName === 'HTML') {
+ var html = element.ownerDocument.documentElement;
+ var scrollingElement = element.ownerDocument.scrollingElement || html;
+ return scrollingElement[upperSide];
+ }
+
+ return element[upperSide];
+}
+
+/*
+ * Sum or subtract the element scroll values (left and top) from a given rect object
+ * @method
+ * @memberof Popper.Utils
+ * @param {Object} rect - Rect object you want to change
+ * @param {HTMLElement} element - The element from the function reads the scroll values
+ * @param {Boolean} subtract - set to true if you want to subtract the scroll values
+ * @return {Object} rect - The modifier rect object
+ */
+function includeScroll(rect, element) {
+ var subtract = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
+
+ var scrollTop = getScroll(element, 'top');
+ var scrollLeft = getScroll(element, 'left');
+ var modifier = subtract ? -1 : 1;
+ rect.top += scrollTop * modifier;
+ rect.bottom += scrollTop * modifier;
+ rect.left += scrollLeft * modifier;
+ rect.right += scrollLeft * modifier;
+ return rect;
+}
+
+/*
+ * Helper to detect borders of a given element
+ * @method
+ * @memberof Popper.Utils
+ * @param {CSSStyleDeclaration} styles
+ * Result of `getStyleComputedProperty` on the given element
+ * @param {String} axis - `x` or `y`
+ * @return {number} borders - The borders size of the given axis
+ */
+
+function getBordersSize(styles, axis) {
+ var sideA = axis === 'x' ? 'Left' : 'Top';
+ var sideB = sideA === 'Left' ? 'Right' : 'Bottom';
+
+ return parseFloat(styles['border' + sideA + 'Width']) + parseFloat(styles['border' + sideB + 'Width']);
+}
+
+function getSize(axis, body, html, computedStyle) {
+ return Math.max(body['offset' + axis], body['scroll' + axis], html['client' + axis], html['offset' + axis], html['scroll' + axis], isIE(10) ? parseInt(html['offset' + axis]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Top' : 'Left')]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Bottom' : 'Right')]) : 0);
+}
+
+function getWindowSizes(document) {
+ var body = document.body;
+ var html = document.documentElement;
+ var computedStyle = isIE(10) && getComputedStyle(html);
+
+ return {
+ height: getSize('Height', body, html, computedStyle),
+ width: getSize('Width', body, html, computedStyle)
+ };
+}
+
+var classCallCheck = function (instance, Constructor) {
+ if (!(instance instanceof Constructor)) {
+ throw new TypeError("Cannot call a class as a function");
+ }
+};
+
+var createClass = function () {
+ function defineProperties(target, props) {
+ for (var i = 0; i < props.length; i++) {
+ var descriptor = props[i];
+ descriptor.enumerable = descriptor.enumerable || false;
+ descriptor.configurable = true;
+ if ("value" in descriptor) descriptor.writable = true;
+ Object.defineProperty(target, descriptor.key, descriptor);
+ }
+ }
+
+ return function (Constructor, protoProps, staticProps) {
+ if (protoProps) defineProperties(Constructor.prototype, protoProps);
+ if (staticProps) defineProperties(Constructor, staticProps);
+ return Constructor;
+ };
+}();
+
+
+
+
+
+var defineProperty = function (obj, key, value) {
+ if (key in obj) {
+ Object.defineProperty(obj, key, {
+ value: value,
+ enumerable: true,
+ configurable: true,
+ writable: true
+ });
+ } else {
+ obj[key] = value;
+ }
+
+ return obj;
+};
+
+var _extends = Object.assign || function (target) {
+ for (var i = 1; i < arguments.length; i++) {
+ var source = arguments[i];
+
+ for (var key in source) {
+ if (Object.prototype.hasOwnProperty.call(source, key)) {
+ target[key] = source[key];
+ }
+ }
+ }
+
+ return target;
+};
+
+/**
+ * Given element offsets, generate an output similar to getBoundingClientRect
+ * @method
+ * @memberof Popper.Utils
+ * @argument {Object} offsets
+ * @returns {Object} ClientRect like output
+ */
+function getClientRect(offsets) {
+ return _extends({}, offsets, {
+ right: offsets.left + offsets.width,
+ bottom: offsets.top + offsets.height
+ });
+}
+
+/**
+ * Get bounding client rect of given element
+ * @method
+ * @memberof Popper.Utils
+ * @param {HTMLElement} element
+ * @return {Object} client rect
+ */
+function getBoundingClientRect(element) {
+ var rect = {};
+
+ // IE10 10 FIX: Please, don't ask, the element isn't
+ // considered in DOM in some circumstances...
+ // This isn't reproducible in IE10 compatibility mode of IE11
+ try {
+ if (isIE(10)) {
+ rect = element.getBoundingClientRect();
+ var scrollTop = getScroll(element, 'top');
+ var scrollLeft = getScroll(element, 'left');
+ rect.top += scrollTop;
+ rect.left += scrollLeft;
+ rect.bottom += scrollTop;
+ rect.right += scrollLeft;
+ } else {
+ rect = element.getBoundingClientRect();
+ }
+ } catch (e) {}
+
+ var result = {
+ left: rect.left,
+ top: rect.top,
+ width: rect.right - rect.left,
+ height: rect.bottom - rect.top
+ };
+
+ // subtract scrollbar size from sizes
+ var sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {};
+ var width = sizes.width || element.clientWidth || result.width;
+ var height = sizes.height || element.clientHeight || result.height;
+
+ var horizScrollbar = element.offsetWidth - width;
+ var vertScrollbar = element.offsetHeight - height;
+
+ // if an hypothetical scrollbar is detected, we must be sure it's not a `border`
+ // we make this check conditional for performance reasons
+ if (horizScrollbar || vertScrollbar) {
+ var styles = getStyleComputedProperty(element);
+ horizScrollbar -= getBordersSize(styles, 'x');
+ vertScrollbar -= getBordersSize(styles, 'y');
+
+ result.width -= horizScrollbar;
+ result.height -= vertScrollbar;
+ }
+
+ return getClientRect(result);
+}
+
+function getOffsetRectRelativeToArbitraryNode(children, parent) {
+ var fixedPosition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
+
+ var isIE10 = isIE(10);
+ var isHTML = parent.nodeName === 'HTML';
+ var childrenRect = getBoundingClientRect(children);
+ var parentRect = getBoundingClientRect(parent);
+ var scrollParent = getScrollParent(children);
+
+ var styles = getStyleComputedProperty(parent);
+ var borderTopWidth = parseFloat(styles.borderTopWidth);
+ var borderLeftWidth = parseFloat(styles.borderLeftWidth);
+
+ // In cases where the parent is fixed, we must ignore negative scroll in offset calc
+ if (fixedPosition && isHTML) {
+ parentRect.top = Math.max(parentRect.top, 0);
+ parentRect.left = Math.max(parentRect.left, 0);
+ }
+ var offsets = getClientRect({
+ top: childrenRect.top - parentRect.top - borderTopWidth,
+ left: childrenRect.left - parentRect.left - borderLeftWidth,
+ width: childrenRect.width,
+ height: childrenRect.height
+ });
+ offsets.marginTop = 0;
+ offsets.marginLeft = 0;
+
+ // Subtract margins of documentElement in case it's being used as parent
+ // we do this only on HTML because it's the only element that behaves
+ // differently when margins are applied to it. The margins are included in
+ // the box of the documentElement, in the other cases not.
+ if (!isIE10 && isHTML) {
+ var marginTop = parseFloat(styles.marginTop);
+ var marginLeft = parseFloat(styles.marginLeft);
+
+ offsets.top -= borderTopWidth - marginTop;
+ offsets.bottom -= borderTopWidth - marginTop;
+ offsets.left -= borderLeftWidth - marginLeft;
+ offsets.right -= borderLeftWidth - marginLeft;
+
+ // Attach marginTop and marginLeft because in some circumstances we may need them
+ offsets.marginTop = marginTop;
+ offsets.marginLeft = marginLeft;
+ }
+
+ if (isIE10 && !fixedPosition ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') {
+ offsets = includeScroll(offsets, parent);
+ }
+
+ return offsets;
+}
+
+function getViewportOffsetRectRelativeToArtbitraryNode(element) {
+ var excludeScroll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
+
+ var html = element.ownerDocument.documentElement;
+ var relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);
+ var width = Math.max(html.clientWidth, window.innerWidth || 0);
+ var height = Math.max(html.clientHeight, window.innerHeight || 0);
+
+ var scrollTop = !excludeScroll ? getScroll(html) : 0;
+ var scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;
+
+ var offset = {
+ top: scrollTop - relativeOffset.top + relativeOffset.marginTop,
+ left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,
+ width: width,
+ height: height
+ };
+
+ return getClientRect(offset);
+}
+
+/**
+ * Check if the given element is fixed or is inside a fixed parent
+ * @method
+ * @memberof Popper.Utils
+ * @argument {Element} element
+ * @argument {Element} customContainer
+ * @returns {Boolean} answer to "isFixed?"
+ */
+function isFixed(element) {
+ var nodeName = element.nodeName;
+ if (nodeName === 'BODY' || nodeName === 'HTML') {
+ return false;
+ }
+ if (getStyleComputedProperty(element, 'position') === 'fixed') {
+ return true;
+ }
+ var parentNode = getParentNode(element);
+ if (!parentNode) {
+ return false;
+ }
+ return isFixed(parentNode);
+}
+
+/**
+ * Finds the first parent of an element that has a transformed property defined
+ * @method
+ * @memberof Popper.Utils
+ * @argument {Element} element
+ * @returns {Element} first transformed parent or documentElement
+ */
+
+function getFixedPositionOffsetParent(element) {
+ // This check is needed to avoid errors in case one of the elements isn't defined for any reason
+ if (!element || !element.parentElement || isIE()) {
+ return document.documentElement;
+ }
+ var el = element.parentElement;
+ while (el && getStyleComputedProperty(el, 'transform') === 'none') {
+ el = el.parentElement;
+ }
+ return el || document.documentElement;
+}
+
+/**
+ * Computed the boundaries limits and return them
+ * @method
+ * @memberof Popper.Utils
+ * @param {HTMLElement} popper
+ * @param {HTMLElement} reference
+ * @param {number} padding
+ * @param {HTMLElement} boundariesElement - Element used to define the boundaries
+ * @param {Boolean} fixedPosition - Is in fixed position mode
+ * @returns {Object} Coordinates of the boundaries
+ */
+function getBoundaries(popper, reference, padding, boundariesElement) {
+ var fixedPosition = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;
+
+ // NOTE: 1 DOM access here
+
+ var boundaries = { top: 0, left: 0 };
+ var offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));
+
+ // Handle viewport case
+ if (boundariesElement === 'viewport') {
+ boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);
+ } else {
+ // Handle other cases based on DOM element used as boundaries
+ var boundariesNode = void 0;
+ if (boundariesElement === 'scrollParent') {
+ boundariesNode = getScrollParent(getParentNode(reference));
+ if (boundariesNode.nodeName === 'BODY') {
+ boundariesNode = popper.ownerDocument.documentElement;
+ }
+ } else if (boundariesElement === 'window') {
+ boundariesNode = popper.ownerDocument.documentElement;
+ } else {
+ boundariesNode = boundariesElement;
+ }
+
+ var offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent, fixedPosition);
+
+ // In case of HTML, we need a different computation
+ if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {
+ var _getWindowSizes = getWindowSizes(popper.ownerDocument),
+ height = _getWindowSizes.height,
+ width = _getWindowSizes.width;
+
+ boundaries.top += offsets.top - offsets.marginTop;
+ boundaries.bottom = height + offsets.top;
+ boundaries.left += offsets.left - offsets.marginLeft;
+ boundaries.right = width + offsets.left;
+ } else {
+ // for all the other DOM elements, this one is good
+ boundaries = offsets;
+ }
+ }
+
+ // Add paddings
+ padding = padding || 0;
+ var isPaddingNumber = typeof padding === 'number';
+ boundaries.left += isPaddingNumber ? padding : padding.left || 0;
+ boundaries.top += isPaddingNumber ? padding : padding.top || 0;
+ boundaries.right -= isPaddingNumber ? padding : padding.right || 0;
+ boundaries.bottom -= isPaddingNumber ? padding : padding.bottom || 0;
+
+ return boundaries;
+}
+
+function getArea(_ref) {
+ var width = _ref.width,
+ height = _ref.height;
+
+ return width * height;
+}
+
+/**
+ * Utility used to transform the `auto` placement to the placement with more
+ * available space.
+ * @method
+ * @memberof Popper.Utils
+ * @argument {Object} data - The data object generated by update method
+ * @argument {Object} options - Modifiers configuration and options
+ * @returns {Object} The data object, properly modified
+ */
+function computeAutoPlacement(placement, refRect, popper, reference, boundariesElement) {
+ var padding = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;
+
+ if (placement.indexOf('auto') === -1) {
+ return placement;
+ }
+
+ var boundaries = getBoundaries(popper, reference, padding, boundariesElement);
+
+ var rects = {
+ top: {
+ width: boundaries.width,
+ height: refRect.top - boundaries.top
+ },
+ right: {
+ width: boundaries.right - refRect.right,
+ height: boundaries.height
+ },
+ bottom: {
+ width: boundaries.width,
+ height: boundaries.bottom - refRect.bottom
+ },
+ left: {
+ width: refRect.left - boundaries.left,
+ height: boundaries.height
+ }
+ };
+
+ var sortedAreas = Object.keys(rects).map(function (key) {
+ return _extends({
+ key: key
+ }, rects[key], {
+ area: getArea(rects[key])
+ });
+ }).sort(function (a, b) {
+ return b.area - a.area;
+ });
+
+ var filteredAreas = sortedAreas.filter(function (_ref2) {
+ var width = _ref2.width,
+ height = _ref2.height;
+ return width >= popper.clientWidth && height >= popper.clientHeight;
+ });
+
+ var computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key;
+
+ var variation = placement.split('-')[1];
+
+ return computedPlacement + (variation ? '-' + variation : '');
+}
+
+/**
+ * Get offsets to the reference element
+ * @method
+ * @memberof Popper.Utils
+ * @param {Object} state
+ * @param {Element} popper - the popper element
+ * @param {Element} reference - the reference element (the popper will be relative to this)
+ * @param {Element} fixedPosition - is in fixed position mode
+ * @returns {Object} An object containing the offsets which will be applied to the popper
+ */
+function getReferenceOffsets(state, popper, reference) {
+ var fixedPosition = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;
+
+ var commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));
+ return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);
+}
+
+/**
+ * Get the outer sizes of the given element (offset size + margins)
+ * @method
+ * @memberof Popper.Utils
+ * @argument {Element} element
+ * @returns {Object} object containing width and height properties
+ */
+function getOuterSizes(element) {
+ var window = element.ownerDocument.defaultView;
+ var styles = window.getComputedStyle(element);
+ var x = parseFloat(styles.marginTop || 0) + parseFloat(styles.marginBottom || 0);
+ var y = parseFloat(styles.marginLeft || 0) + parseFloat(styles.marginRight || 0);
+ var result = {
+ width: element.offsetWidth + y,
+ height: element.offsetHeight + x
+ };
+ return result;
+}
+
+/**
+ * Get the opposite placement of the given one
+ * @method
+ * @memberof Popper.Utils
+ * @argument {String} placement
+ * @returns {String} flipped placement
+ */
+function getOppositePlacement(placement) {
+ var hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };
+ return placement.replace(/left|right|bottom|top/g, function (matched) {
+ return hash[matched];
+ });
+}
+
+/**
+ * Get offsets to the popper
+ * @method
+ * @memberof Popper.Utils
+ * @param {Object} position - CSS position the Popper will get applied
+ * @param {HTMLElement} popper - the popper element
+ * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)
+ * @param {String} placement - one of the valid placement options
+ * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper
+ */
+function getPopperOffsets(popper, referenceOffsets, placement) {
+ placement = placement.split('-')[0];
+
+ // Get popper node sizes
+ var popperRect = getOuterSizes(popper);
+
+ // Add position, width and height to our offsets object
+ var popperOffsets = {
+ width: popperRect.width,
+ height: popperRect.height
+ };
+
+ // depending by the popper placement we have to compute its offsets slightly differently
+ var isHoriz = ['right', 'left'].indexOf(placement) !== -1;
+ var mainSide = isHoriz ? 'top' : 'left';
+ var secondarySide = isHoriz ? 'left' : 'top';
+ var measurement = isHoriz ? 'height' : 'width';
+ var secondaryMeasurement = !isHoriz ? 'height' : 'width';
+
+ popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2;
+ if (placement === secondarySide) {
+ popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];
+ } else {
+ popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)];
+ }
+
+ return popperOffsets;
+}
+
+/**
+ * Mimics the `find` method of Array
+ * @method
+ * @memberof Popper.Utils
+ * @argument {Array} arr
+ * @argument prop
+ * @argument value
+ * @returns index or -1
+ */
+function find(arr, check) {
+ // use native find if supported
+ if (Array.prototype.find) {
+ return arr.find(check);
+ }
+
+ // use `filter` to obtain the same behavior of `find`
+ return arr.filter(check)[0];
+}
+
+/**
+ * Return the index of the matching object
+ * @method
+ * @memberof Popper.Utils
+ * @argument {Array} arr
+ * @argument prop
+ * @argument value
+ * @returns index or -1
+ */
+function findIndex(arr, prop, value) {
+ // use native findIndex if supported
+ if (Array.prototype.findIndex) {
+ return arr.findIndex(function (cur) {
+ return cur[prop] === value;
+ });
+ }
+
+ // use `find` + `indexOf` if `findIndex` isn't supported
+ var match = find(arr, function (obj) {
+ return obj[prop] === value;
+ });
+ return arr.indexOf(match);
+}
+
+/**
+ * Loop trough the list of modifiers and run them in order,
+ * each of them will then edit the data object.
+ * @method
+ * @memberof Popper.Utils
+ * @param {dataObject} data
+ * @param {Array} modifiers
+ * @param {String} ends - Optional modifier name used as stopper
+ * @returns {dataObject}
+ */
+function runModifiers(modifiers, data, ends) {
+ var modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends));
+
+ modifiersToRun.forEach(function (modifier) {
+ if (modifier['function']) {
+ // eslint-disable-line dot-notation
+ console.warn('`modifier.function` is deprecated, use `modifier.fn`!');
+ }
+ var fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation
+ if (modifier.enabled && isFunction(fn)) {
+ // Add properties to offsets to make them a complete clientRect object
+ // we do this before each modifier to make sure the previous one doesn't
+ // mess with these values
+ data.offsets.popper = getClientRect(data.offsets.popper);
+ data.offsets.reference = getClientRect(data.offsets.reference);
+
+ data = fn(data, modifier);
+ }
+ });
+
+ return data;
+}
+
+/**
+ * Updates the position of the popper, computing the new offsets and applying
+ * the new style.<br />
+ * Prefer `scheduleUpdate` over `update` because of performance reasons.
+ * @method
+ * @memberof Popper
+ */
+function update() {
+ // if popper is destroyed, don't perform any further update
+ if (this.state.isDestroyed) {
+ return;
+ }
+
+ var data = {
+ instance: this,
+ styles: {},
+ arrowStyles: {},
+ attributes: {},
+ flipped: false,
+ offsets: {}
+ };
+
+ // compute reference element offsets
+ data.offsets.reference = getReferenceOffsets(this.state, this.popper, this.reference, this.options.positionFixed);
+
+ // compute auto placement, store placement inside the data object,
+ // modifiers will be able to edit `placement` if needed
+ // and refer to originalPlacement to know the original value
+ data.placement = computeAutoPlacement(this.options.placement, data.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding);
+
+ // store the computed placement inside `originalPlacement`
+ data.originalPlacement = data.placement;
+
+ data.positionFixed = this.options.positionFixed;
+
+ // compute the popper offsets
+ data.offsets.popper = getPopperOffsets(this.popper, data.offsets.reference, data.placement);
+
+ data.offsets.popper.position = this.options.positionFixed ? 'fixed' : 'absolute';
+
+ // run the modifiers
+ data = runModifiers(this.modifiers, data);
+
+ // the first `update` will call `onCreate` callback
+ // the other ones will call `onUpdate` callback
+ if (!this.state.isCreated) {
+ this.state.isCreated = true;
+ this.options.onCreate(data);
+ } else {
+ this.options.onUpdate(data);
+ }
+}
+
+/**
+ * Helper used to know if the given modifier is enabled.
+ * @method
+ * @memberof Popper.Utils
+ * @returns {Boolean}
+ */
+function isModifierEnabled(modifiers, modifierName) {
+ return modifiers.some(function (_ref) {
+ var name = _ref.name,
+ enabled = _ref.enabled;
+ return enabled && name === modifierName;
+ });
+}
+
+/**
+ * Get the prefixed supported property name
+ * @method
+ * @memberof Popper.Utils
+ * @argument {String} property (camelCase)
+ * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)
+ */
+function getSupportedPropertyName(property) {
+ var prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];
+ var upperProp = property.charAt(0).toUpperCase() + property.slice(1);
+
+ for (var i = 0; i < prefixes.length; i++) {
+ var prefix = prefixes[i];
+ var toCheck = prefix ? '' + prefix + upperProp : property;
+ if (typeof document.body.style[toCheck] !== 'undefined') {
+ return toCheck;
+ }
+ }
+ return null;
+}
+
+/**
+ * Destroys the popper.
+ * @method
+ * @memberof Popper
+ */
+function destroy() {
+ this.state.isDestroyed = true;
+
+ // touch DOM only if `applyStyle` modifier is enabled
+ if (isModifierEnabled(this.modifiers, 'applyStyle')) {
+ this.popper.removeAttribute('x-placement');
+ this.popper.style.position = '';
+ this.popper.style.top = '';
+ this.popper.style.left = '';
+ this.popper.style.right = '';
+ this.popper.style.bottom = '';
+ this.popper.style.willChange = '';
+ this.popper.style[getSupportedPropertyName('transform')] = '';
+ }
+
+ this.disableEventListeners();
+
+ // remove the popper if user explicitly asked for the deletion on destroy
+ // do not use `remove` because IE11 doesn't support it
+ if (this.options.removeOnDestroy) {
+ this.popper.parentNode.removeChild(this.popper);
+ }
+ return this;
+}
+
+/**
+ * Get the window associated with the element
+ * @argument {Element} element
+ * @returns {Window}
+ */
+function getWindow(element) {
+ var ownerDocument = element.ownerDocument;
+ return ownerDocument ? ownerDocument.defaultView : window;
+}
+
+function attachToScrollParents(scrollParent, event, callback, scrollParents) {
+ var isBody = scrollParent.nodeName === 'BODY';
+ var target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;
+ target.addEventListener(event, callback, { passive: true });
+
+ if (!isBody) {
+ attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents);
+ }
+ scrollParents.push(target);
+}
+
+/**
+ * Setup needed event listeners used to update the popper position
+ * @method
+ * @memberof Popper.Utils
+ * @private
+ */
+function setupEventListeners(reference, options, state, updateBound) {
+ // Resize event listener on window
+ state.updateBound = updateBound;
+ getWindow(reference).addEventListener('resize', state.updateBound, { passive: true });
+
+ // Scroll event listener on scroll parents
+ var scrollElement = getScrollParent(reference);
+ attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents);
+ state.scrollElement = scrollElement;
+ state.eventsEnabled = true;
+
+ return state;
+}
+
+/**
+ * It will add resize/scroll events and start recalculating
+ * position of the popper element when they are triggered.
+ * @method
+ * @memberof Popper
+ */
+function enableEventListeners() {
+ if (!this.state.eventsEnabled) {
+ this.state = setupEventListeners(this.reference, this.options, this.state, this.scheduleUpdate);
+ }
+}
+
+/**
+ * Remove event listeners used to update the popper position
+ * @method
+ * @memberof Popper.Utils
+ * @private
+ */
+function removeEventListeners(reference, state) {
+ // Remove resize event listener on window
+ getWindow(reference).removeEventListener('resize', state.updateBound);
+
+ // Remove scroll event listener on scroll parents
+ state.scrollParents.forEach(function (target) {
+ target.removeEventListener('scroll', state.updateBound);
+ });
+
+ // Reset state
+ state.updateBound = null;
+ state.scrollParents = [];
+ state.scrollElement = null;
+ state.eventsEnabled = false;
+ return state;
+}
+
+/**
+ * It will remove resize/scroll events and won't recalculate popper position
+ * when they are triggered. It also won't trigger `onUpdate` callback anymore,
+ * unless you call `update` method manually.
+ * @method
+ * @memberof Popper
+ */
+function disableEventListeners() {
+ if (this.state.eventsEnabled) {
+ cancelAnimationFrame(this.scheduleUpdate);
+ this.state = removeEventListeners(this.reference, this.state);
+ }
+}
+
+/**
+ * Tells if a given input is a number
+ * @method
+ * @memberof Popper.Utils
+ * @param {*} input to check
+ * @return {Boolean}
+ */
+function isNumeric(n) {
+ return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);
+}
+
+/**
+ * Set the style to the given popper
+ * @method
+ * @memberof Popper.Utils
+ * @argument {Element} element - Element to apply the style to
+ * @argument {Object} styles
+ * Object with a list of properties and values which will be applied to the element
+ */
+function setStyles(element, styles) {
+ Object.keys(styles).forEach(function (prop) {
+ var unit = '';
+ // add unit if the value is numeric and is one of the following
+ if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) {
+ unit = 'px';
+ }
+ element.style[prop] = styles[prop] + unit;
+ });
+}
+
+/**
+ * Set the attributes to the given popper
+ * @method
+ * @memberof Popper.Utils
+ * @argument {Element} element - Element to apply the attributes to
+ * @argument {Object} styles
+ * Object with a list of properties and values which will be applied to the element
+ */
+function setAttributes(element, attributes) {
+ Object.keys(attributes).forEach(function (prop) {
+ var value = attributes[prop];
+ if (value !== false) {
+ element.setAttribute(prop, attributes[prop]);
+ } else {
+ element.removeAttribute(prop);
+ }
+ });
+}
+
+/**
+ * @function
+ * @memberof Modifiers
+ * @argument {Object} data - The data object generated by `update` method
+ * @argument {Object} data.styles - List of style properties - values to apply to popper element
+ * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element
+ * @argument {Object} options - Modifiers configuration and options
+ * @returns {Object} The same data object
+ */
+function applyStyle(data) {
+ // any property present in `data.styles` will be applied to the popper,
+ // in this way we can make the 3rd party modifiers add custom styles to it
+ // Be aware, modifiers could override the properties defined in the previous
+ // lines of this modifier!
+ setStyles(data.instance.popper, data.styles);
+
+ // any property present in `data.attributes` will be applied to the popper,
+ // they will be set as HTML attributes of the element
+ setAttributes(data.instance.popper, data.attributes);
+
+ // if arrowElement is defined and arrowStyles has some properties
+ if (data.arrowElement && Object.keys(data.arrowStyles).length) {
+ setStyles(data.arrowElement, data.arrowStyles);
+ }
+
+ return data;
+}
+
+/**
+ * Set the x-placement attribute before everything else because it could be used
+ * to add margins to the popper margins needs to be calculated to get the
+ * correct popper offsets.
+ * @method
+ * @memberof Popper.modifiers
+ * @param {HTMLElement} reference - The reference element used to position the popper
+ * @param {HTMLElement} popper - The HTML element used as popper
+ * @param {Object} options - Popper.js options
+ */
+function applyStyleOnLoad(reference, popper, options, modifierOptions, state) {
+ // compute reference element offsets
+ var referenceOffsets = getReferenceOffsets(state, popper, reference, options.positionFixed);
+
+ // compute auto placement, store placement inside the data object,
+ // modifiers will be able to edit `placement` if needed
+ // and refer to originalPlacement to know the original value
+ var placement = computeAutoPlacement(options.placement, referenceOffsets, popper, reference, options.modifiers.flip.boundariesElement, options.modifiers.flip.padding);
+
+ popper.setAttribute('x-placement', placement);
+
+ // Apply `position` to popper before anything else because
+ // without the position applied we can't guarantee correct computations
+ setStyles(popper, { position: options.positionFixed ? 'fixed' : 'absolute' });
+
+ return options;
+}
+
+/**
+ * @function
+ * @memberof Popper.Utils
+ * @argument {Object} data - The data object generated by `update` method
+ * @argument {Boolean} shouldRound - If the offsets should be rounded at all
+ * @returns {Object} The popper's position offsets rounded
+ *
+ * The tale of pixel-perfect positioning. It's still not 100% perfect, but as
+ * good as it can be within reason.
+ * Discussion here: https://github.com/FezVrasta/popper.js/pull/715
+ *
+ * Low DPI screens cause a popper to be blurry if not using full pixels (Safari
+ * as well on High DPI screens).
+ *
+ * Firefox prefers no rounding for positioning and does not have blurriness on
+ * high DPI screens.
+ *
+ * Only horizontal placement and left/right values need to be considered.
+ */
+function getRoundedOffsets(data, shouldRound) {
+ var _data$offsets = data.offsets,
+ popper = _data$offsets.popper,
+ reference = _data$offsets.reference;
+ var round = Math.round,
+ floor = Math.floor;
+
+ var noRound = function noRound(v) {
+ return v;
+ };
+
+ var referenceWidth = round(reference.width);
+ var popperWidth = round(popper.width);
+
+ var isVertical = ['left', 'right'].indexOf(data.placement) !== -1;
+ var isVariation = data.placement.indexOf('-') !== -1;
+ var sameWidthParity = referenceWidth % 2 === popperWidth % 2;
+ var bothOddWidth = referenceWidth % 2 === 1 && popperWidth % 2 === 1;
+
+ var horizontalToInteger = !shouldRound ? noRound : isVertical || isVariation || sameWidthParity ? round : floor;
+ var verticalToInteger = !shouldRound ? noRound : round;
+
+ return {
+ left: horizontalToInteger(bothOddWidth && !isVariation && shouldRound ? popper.left - 1 : popper.left),
+ top: verticalToInteger(popper.top),
+ bottom: verticalToInteger(popper.bottom),
+ right: horizontalToInteger(popper.right)
+ };
+}
+
+var isFirefox = isBrowser && /Firefox/i.test(navigator.userAgent);
+
+/**
+ * @function
+ * @memberof Modifiers
+ * @argument {Object} data - The data object generated by `update` method
+ * @argument {Object} options - Modifiers configuration and options
+ * @returns {Object} The data object, properly modified
+ */
+function computeStyle(data, options) {
+ var x = options.x,
+ y = options.y;
+ var popper = data.offsets.popper;
+
+ // Remove this legacy support in Popper.js v2
+
+ var legacyGpuAccelerationOption = find(data.instance.modifiers, function (modifier) {
+ return modifier.name === 'applyStyle';
+ }).gpuAcceleration;
+ if (legacyGpuAccelerationOption !== undefined) {
+ console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!');
+ }
+ var gpuAcceleration = legacyGpuAccelerationOption !== undefined ? legacyGpuAccelerationOption : options.gpuAcceleration;
+
+ var offsetParent = getOffsetParent(data.instance.popper);
+ var offsetParentRect = getBoundingClientRect(offsetParent);
+
+ // Styles
+ var styles = {
+ position: popper.position
+ };
+
+ var offsets = getRoundedOffsets(data, window.devicePixelRatio < 2 || !isFirefox);
+
+ var sideA = x === 'bottom' ? 'top' : 'bottom';
+ var sideB = y === 'right' ? 'left' : 'right';
+
+ // if gpuAcceleration is set to `true` and transform is supported,
+ // we use `translate3d` to apply the position to the popper we
+ // automatically use the supported prefixed version if needed
+ var prefixedProperty = getSupportedPropertyName('transform');
+
+ // now, let's make a step back and look at this code closely (wtf?)
+ // If the content of the popper grows once it's been positioned, it
+ // may happen that the popper gets misplaced because of the new content
+ // overflowing its reference element
+ // To avoid this problem, we provide two options (x and y), which allow
+ // the consumer to define the offset origin.
+ // If we position a popper on top of a reference element, we can set
+ // `x` to `top` to make the popper grow towards its top instead of
+ // its bottom.
+ var left = void 0,
+ top = void 0;
+ if (sideA === 'bottom') {
+ // when offsetParent is <html> the positioning is relative to the bottom of the screen (excluding the scrollbar)
+ // and not the bottom of the html element
+ if (offsetParent.nodeName === 'HTML') {
+ top = -offsetParent.clientHeight + offsets.bottom;
+ } else {
+ top = -offsetParentRect.height + offsets.bottom;
+ }
+ } else {
+ top = offsets.top;
+ }
+ if (sideB === 'right') {
+ if (offsetParent.nodeName === 'HTML') {
+ left = -offsetParent.clientWidth + offsets.right;
+ } else {
+ left = -offsetParentRect.width + offsets.right;
+ }
+ } else {
+ left = offsets.left;
+ }
+ if (gpuAcceleration && prefixedProperty) {
+ styles[prefixedProperty] = 'translate3d(' + left + 'px, ' + top + 'px, 0)';
+ styles[sideA] = 0;
+ styles[sideB] = 0;
+ styles.willChange = 'transform';
+ } else {
+ // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties
+ var invertTop = sideA === 'bottom' ? -1 : 1;
+ var invertLeft = sideB === 'right' ? -1 : 1;
+ styles[sideA] = top * invertTop;
+ styles[sideB] = left * invertLeft;
+ styles.willChange = sideA + ', ' + sideB;
+ }
+
+ // Attributes
+ var attributes = {
+ 'x-placement': data.placement
+ };
+
+ // Update `data` attributes, styles and arrowStyles
+ data.attributes = _extends({}, attributes, data.attributes);
+ data.styles = _extends({}, styles, data.styles);
+ data.arrowStyles = _extends({}, data.offsets.arrow, data.arrowStyles);
+
+ return data;
+}
+
+/**
+ * Helper used to know if the given modifier depends from another one.<br />
+ * It checks if the needed modifier is listed and enabled.
+ * @method
+ * @memberof Popper.Utils
+ * @param {Array} modifiers - list of modifiers
+ * @param {String} requestingName - name of requesting modifier
+ * @param {String} requestedName - name of requested modifier
+ * @returns {Boolean}
+ */
+function isModifierRequired(modifiers, requestingName, requestedName) {
+ var requesting = find(modifiers, function (_ref) {
+ var name = _ref.name;
+ return name === requestingName;
+ });
+
+ var isRequired = !!requesting && modifiers.some(function (modifier) {
+ return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order;
+ });
+
+ if (!isRequired) {
+ var _requesting = '`' + requestingName + '`';
+ var requested = '`' + requestedName + '`';
+ console.warn(requested + ' modifier is required by ' + _requesting + ' modifier in order to work, be sure to include it before ' + _requesting + '!');
+ }
+ return isRequired;
+}
+
+/**
+ * @function
+ * @memberof Modifiers
+ * @argument {Object} data - The data object generated by update method
+ * @argument {Object} options - Modifiers configuration and options
+ * @returns {Object} The data object, properly modified
+ */
+function arrow(data, options) {
+ var _data$offsets$arrow;
+
+ // arrow depends on keepTogether in order to work
+ if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {
+ return data;
+ }
+
+ var arrowElement = options.element;
+
+ // if arrowElement is a string, suppose it's a CSS selector
+ if (typeof arrowElement === 'string') {
+ arrowElement = data.instance.popper.querySelector(arrowElement);
+
+ // if arrowElement is not found, don't run the modifier
+ if (!arrowElement) {
+ return data;
+ }
+ } else {
+ // if the arrowElement isn't a query selector we must check that the
+ // provided DOM node is child of its popper node
+ if (!data.instance.popper.contains(arrowElement)) {
+ console.warn('WARNING: `arrow.element` must be child of its popper element!');
+ return data;
+ }
+ }
+
+ var placement = data.placement.split('-')[0];
+ var _data$offsets = data.offsets,
+ popper = _data$offsets.popper,
+ reference = _data$offsets.reference;
+
+ var isVertical = ['left', 'right'].indexOf(placement) !== -1;
+
+ var len = isVertical ? 'height' : 'width';
+ var sideCapitalized = isVertical ? 'Top' : 'Left';
+ var side = sideCapitalized.toLowerCase();
+ var altSide = isVertical ? 'left' : 'top';
+ var opSide = isVertical ? 'bottom' : 'right';
+ var arrowElementSize = getOuterSizes(arrowElement)[len];
+
+ //
+ // extends keepTogether behavior making sure the popper and its
+ // reference have enough pixels in conjunction
+ //
+
+ // top/left side
+ if (reference[opSide] - arrowElementSize < popper[side]) {
+ data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowElementSize);
+ }
+ // bottom/right side
+ if (reference[side] + arrowElementSize > popper[opSide]) {
+ data.offsets.popper[side] += reference[side] + arrowElementSize - popper[opSide];
+ }
+ data.offsets.popper = getClientRect(data.offsets.popper);
+
+ // compute center of the popper
+ var center = reference[side] + reference[len] / 2 - arrowElementSize / 2;
+
+ // Compute the sideValue using the updated popper offsets
+ // take popper margin in account because we don't have this info available
+ var css = getStyleComputedProperty(data.instance.popper);
+ var popperMarginSide = parseFloat(css['margin' + sideCapitalized]);
+ var popperBorderSide = parseFloat(css['border' + sideCapitalized + 'Width']);
+ var sideValue = center - data.offsets.popper[side] - popperMarginSide - popperBorderSide;
+
+ // prevent arrowElement from being placed not contiguously to its popper
+ sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0);
+
+ data.arrowElement = arrowElement;
+ data.offsets.arrow = (_data$offsets$arrow = {}, defineProperty(_data$offsets$arrow, side, Math.round(sideValue)), defineProperty(_data$offsets$arrow, altSide, ''), _data$offsets$arrow);
+
+ return data;
+}
+
+/**
+ * Get the opposite placement variation of the given one
+ * @method
+ * @memberof Popper.Utils
+ * @argument {String} placement variation
+ * @returns {String} flipped placement variation
+ */
+function getOppositeVariation(variation) {
+ if (variation === 'end') {
+ return 'start';
+ } else if (variation === 'start') {
+ return 'end';
+ }
+ return variation;
+}
+
+/**
+ * List of accepted placements to use as values of the `placement` option.<br />
+ * Valid placements are:
+ * - `auto`
+ * - `top`
+ * - `right`
+ * - `bottom`
+ * - `left`
+ *
+ * Each placement can have a variation from this list:
+ * - `-start`
+ * - `-end`
+ *
+ * Variations are interpreted easily if you think of them as the left to right
+ * written languages. Horizontally (`top` and `bottom`), `start` is left and `end`
+ * is right.<br />
+ * Vertically (`left` and `right`), `start` is top and `end` is bottom.
+ *
+ * Some valid examples are:
+ * - `top-end` (on top of reference, right aligned)
+ * - `right-start` (on right of reference, top aligned)
+ * - `bottom` (on bottom, centered)
+ * - `auto-end` (on the side with more space available, alignment depends by placement)
+ *
+ * @static
+ * @type {Array}
+ * @enum {String}
+ * @readonly
+ * @method placements
+ * @memberof Popper
+ */
+var placements = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start'];
+
+// Get rid of `auto` `auto-start` and `auto-end`
+var validPlacements = placements.slice(3);
+
+/**
+ * Given an initial placement, returns all the subsequent placements
+ * clockwise (or counter-clockwise).
+ *
+ * @method
+ * @memberof Popper.Utils
+ * @argument {String} placement - A valid placement (it accepts variations)
+ * @argument {Boolean} counter - Set to true to walk the placements counterclockwise
+ * @returns {Array} placements including their variations
+ */
+function clockwise(placement) {
+ var counter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
+
+ var index = validPlacements.indexOf(placement);
+ var arr = validPlacements.slice(index + 1).concat(validPlacements.slice(0, index));
+ return counter ? arr.reverse() : arr;
+}
+
+var BEHAVIORS = {
+ FLIP: 'flip',
+ CLOCKWISE: 'clockwise',
+ COUNTERCLOCKWISE: 'counterclockwise'
+};
+
+/**
+ * @function
+ * @memberof Modifiers
+ * @argument {Object} data - The data object generated by update method
+ * @argument {Object} options - Modifiers configuration and options
+ * @returns {Object} The data object, properly modified
+ */
+function flip(data, options) {
+ // if `inner` modifier is enabled, we can't use the `flip` modifier
+ if (isModifierEnabled(data.instance.modifiers, 'inner')) {
+ return data;
+ }
+
+ if (data.flipped && data.placement === data.originalPlacement) {
+ // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides
+ return data;
+ }
+
+ var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, options.boundariesElement, data.positionFixed);
+
+ var placement = data.placement.split('-')[0];
+ var placementOpposite = getOppositePlacement(placement);
+ var variation = data.placement.split('-')[1] || '';
+
+ var flipOrder = [];
+
+ switch (options.behavior) {
+ case BEHAVIORS.FLIP:
+ flipOrder = [placement, placementOpposite];
+ break;
+ case BEHAVIORS.CLOCKWISE:
+ flipOrder = clockwise(placement);
+ break;
+ case BEHAVIORS.COUNTERCLOCKWISE:
+ flipOrder = clockwise(placement, true);
+ break;
+ default:
+ flipOrder = options.behavior;
+ }
+
+ flipOrder.forEach(function (step, index) {
+ if (placement !== step || flipOrder.length === index + 1) {
+ return data;
+ }
+
+ placement = data.placement.split('-')[0];
+ placementOpposite = getOppositePlacement(placement);
+
+ var popperOffsets = data.offsets.popper;
+ var refOffsets = data.offsets.reference;
+
+ // using floor because the reference offsets may contain decimals we are not going to consider here
+ var floor = Math.floor;
+ var overlapsRef = placement === 'left' && floor(popperOffsets.right) > floor(refOffsets.left) || placement === 'right' && floor(popperOffsets.left) < floor(refOffsets.right) || placement === 'top' && floor(popperOffsets.bottom) > floor(refOffsets.top) || placement === 'bottom' && floor(popperOffsets.top) < floor(refOffsets.bottom);
+
+ var overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);
+ var overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);
+ var overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);
+ var overflowsBottom = floor(popperOffsets.bottom) > floor(boundaries.bottom);
+
+ var overflowsBoundaries = placement === 'left' && overflowsLeft || placement === 'right' && overflowsRight || placement === 'top' && overflowsTop || placement === 'bottom' && overflowsBottom;
+
+ // flip the variation if required
+ var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;
+
+ // flips variation if reference element overflows boundaries
+ var flippedVariationByRef = !!options.flipVariations && (isVertical && variation === 'start' && overflowsLeft || isVertical && variation === 'end' && overflowsRight || !isVertical && variation === 'start' && overflowsTop || !isVertical && variation === 'end' && overflowsBottom);
+
+ // flips variation if popper content overflows boundaries
+ var flippedVariationByContent = !!options.flipVariationsByContent && (isVertical && variation === 'start' && overflowsRight || isVertical && variation === 'end' && overflowsLeft || !isVertical && variation === 'start' && overflowsBottom || !isVertical && variation === 'end' && overflowsTop);
+
+ var flippedVariation = flippedVariationByRef || flippedVariationByContent;
+
+ if (overlapsRef || overflowsBoundaries || flippedVariation) {
+ // this boolean to detect any flip loop
+ data.flipped = true;
+
+ if (overlapsRef || overflowsBoundaries) {
+ placement = flipOrder[index + 1];
+ }
+
+ if (flippedVariation) {
+ variation = getOppositeVariation(variation);
+ }
+
+ data.placement = placement + (variation ? '-' + variation : '');
+
+ // this object contains `position`, we want to preserve it along with
+ // any additional property we may add in the future
+ data.offsets.popper = _extends({}, data.offsets.popper, getPopperOffsets(data.instance.popper, data.offsets.reference, data.placement));
+
+ data = runModifiers(data.instance.modifiers, data, 'flip');
+ }
+ });
+ return data;
+}
+
+/**
+ * @function
+ * @memberof Modifiers
+ * @argument {Object} data - The data object generated by update method
+ * @argument {Object} options - Modifiers configuration and options
+ * @returns {Object} The data object, properly modified
+ */
+function keepTogether(data) {
+ var _data$offsets = data.offsets,
+ popper = _data$offsets.popper,
+ reference = _data$offsets.reference;
+
+ var placement = data.placement.split('-')[0];
+ var floor = Math.floor;
+ var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;
+ var side = isVertical ? 'right' : 'bottom';
+ var opSide = isVertical ? 'left' : 'top';
+ var measurement = isVertical ? 'width' : 'height';
+
+ if (popper[side] < floor(reference[opSide])) {
+ data.offsets.popper[opSide] = floor(reference[opSide]) - popper[measurement];
+ }
+ if (popper[opSide] > floor(reference[side])) {
+ data.offsets.popper[opSide] = floor(reference[side]);
+ }
+
+ return data;
+}
+
+/**
+ * Converts a string containing value + unit into a px value number
+ * @function
+ * @memberof {modifiers~offset}
+ * @private
+ * @argument {String} str - Value + unit string
+ * @argument {String} measurement - `height` or `width`
+ * @argument {Object} popperOffsets
+ * @argument {Object} referenceOffsets
+ * @returns {Number|String}
+ * Value in pixels, or original string if no values were extracted
+ */
+function toValue(str, measurement, popperOffsets, referenceOffsets) {
+ // separate value from unit
+ var split = str.match(/((?:\-|\+)?\d*\.?\d*)(.*)/);
+ var value = +split[1];
+ var unit = split[2];
+
+ // If it's not a number it's an operator, I guess
+ if (!value) {
+ return str;
+ }
+
+ if (unit.indexOf('%') === 0) {
+ var element = void 0;
+ switch (unit) {
+ case '%p':
+ element = popperOffsets;
+ break;
+ case '%':
+ case '%r':
+ default:
+ element = referenceOffsets;
+ }
+
+ var rect = getClientRect(element);
+ return rect[measurement] / 100 * value;
+ } else if (unit === 'vh' || unit === 'vw') {
+ // if is a vh or vw, we calculate the size based on the viewport
+ var size = void 0;
+ if (unit === 'vh') {
+ size = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);
+ } else {
+ size = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);
+ }
+ return size / 100 * value;
+ } else {
+ // if is an explicit pixel unit, we get rid of the unit and keep the value
+ // if is an implicit unit, it's px, and we return just the value
+ return value;
+ }
+}
+
+/**
+ * Parse an `offset` string to extrapolate `x` and `y` numeric offsets.
+ * @function
+ * @memberof {modifiers~offset}
+ * @private
+ * @argument {String} offset
+ * @argument {Object} popperOffsets
+ * @argument {Object} referenceOffsets
+ * @argument {String} basePlacement
+ * @returns {Array} a two cells array with x and y offsets in numbers
+ */
+function parseOffset(offset, popperOffsets, referenceOffsets, basePlacement) {
+ var offsets = [0, 0];
+
+ // Use height if placement is left or right and index is 0 otherwise use width
+ // in this way the first offset will use an axis and the second one
+ // will use the other one
+ var useHeight = ['right', 'left'].indexOf(basePlacement) !== -1;
+
+ // Split the offset string to obtain a list of values and operands
+ // The regex addresses values with the plus or minus sign in front (+10, -20, etc)
+ var fragments = offset.split(/(\+|\-)/).map(function (frag) {
+ return frag.trim();
+ });
+
+ // Detect if the offset string contains a pair of values or a single one
+ // they could be separated by comma or space
+ var divider = fragments.indexOf(find(fragments, function (frag) {
+ return frag.search(/,|\s/) !== -1;
+ }));
+
+ if (fragments[divider] && fragments[divider].indexOf(',') === -1) {
+ console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.');
+ }
+
+ // If divider is found, we divide the list of values and operands to divide
+ // them by ofset X and Y.
+ var splitRegex = /\s*,\s*|\s+/;
+ var ops = divider !== -1 ? [fragments.slice(0, divider).concat([fragments[divider].split(splitRegex)[0]]), [fragments[divider].split(splitRegex)[1]].concat(fragments.slice(divider + 1))] : [fragments];
+
+ // Convert the values with units to absolute pixels to allow our computations
+ ops = ops.map(function (op, index) {
+ // Most of the units rely on the orientation of the popper
+ var measurement = (index === 1 ? !useHeight : useHeight) ? 'height' : 'width';
+ var mergeWithPrevious = false;
+ return op
+ // This aggregates any `+` or `-` sign that aren't considered operators
+ // e.g.: 10 + +5 => [10, +, +5]
+ .reduce(function (a, b) {
+ if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) {
+ a[a.length - 1] = b;
+ mergeWithPrevious = true;
+ return a;
+ } else if (mergeWithPrevious) {
+ a[a.length - 1] += b;
+ mergeWithPrevious = false;
+ return a;
+ } else {
+ return a.concat(b);
+ }
+ }, [])
+ // Here we convert the string values into number values (in px)
+ .map(function (str) {
+ return toValue(str, measurement, popperOffsets, referenceOffsets);
+ });
+ });
+
+ // Loop trough the offsets arrays and execute the operations
+ ops.forEach(function (op, index) {
+ op.forEach(function (frag, index2) {
+ if (isNumeric(frag)) {
+ offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1);
+ }
+ });
+ });
+ return offsets;
+}
+
+/**
+ * @function
+ * @memberof Modifiers
+ * @argument {Object} data - The data object generated by update method
+ * @argument {Object} options - Modifiers configuration and options
+ * @argument {Number|String} options.offset=0
+ * The offset value as described in the modifier description
+ * @returns {Object} The data object, properly modified
+ */
+function offset(data, _ref) {
+ var offset = _ref.offset;
+ var placement = data.placement,
+ _data$offsets = data.offsets,
+ popper = _data$offsets.popper,
+ reference = _data$offsets.reference;
+
+ var basePlacement = placement.split('-')[0];
+
+ var offsets = void 0;
+ if (isNumeric(+offset)) {
+ offsets = [+offset, 0];
+ } else {
+ offsets = parseOffset(offset, popper, reference, basePlacement);
+ }
+
+ if (basePlacement === 'left') {
+ popper.top += offsets[0];
+ popper.left -= offsets[1];
+ } else if (basePlacement === 'right') {
+ popper.top += offsets[0];
+ popper.left += offsets[1];
+ } else if (basePlacement === 'top') {
+ popper.left += offsets[0];
+ popper.top -= offsets[1];
+ } else if (basePlacement === 'bottom') {
+ popper.left += offsets[0];
+ popper.top += offsets[1];
+ }
+
+ data.popper = popper;
+ return data;
+}
+
+/**
+ * @function
+ * @memberof Modifiers
+ * @argument {Object} data - The data object generated by `update` method
+ * @argument {Object} options - Modifiers configuration and options
+ * @returns {Object} The data object, properly modified
+ */
+function preventOverflow(data, options) {
+ var boundariesElement = options.boundariesElement || getOffsetParent(data.instance.popper);
+
+ // If offsetParent is the reference element, we really want to
+ // go one step up and use the next offsetParent as reference to
+ // avoid to make this modifier completely useless and look like broken
+ if (data.instance.reference === boundariesElement) {
+ boundariesElement = getOffsetParent(boundariesElement);
+ }
+
+ // NOTE: DOM access here
+ // resets the popper's position so that the document size can be calculated excluding
+ // the size of the popper element itself
+ var transformProp = getSupportedPropertyName('transform');
+ var popperStyles = data.instance.popper.style; // assignment to help minification
+ var top = popperStyles.top,
+ left = popperStyles.left,
+ transform = popperStyles[transformProp];
+
+ popperStyles.top = '';
+ popperStyles.left = '';
+ popperStyles[transformProp] = '';
+
+ var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, boundariesElement, data.positionFixed);
+
+ // NOTE: DOM access here
+ // restores the original style properties after the offsets have been computed
+ popperStyles.top = top;
+ popperStyles.left = left;
+ popperStyles[transformProp] = transform;
+
+ options.boundaries = boundaries;
+
+ var order = options.priority;
+ var popper = data.offsets.popper;
+
+ var check = {
+ primary: function primary(placement) {
+ var value = popper[placement];
+ if (popper[placement] < boundaries[placement] && !options.escapeWithReference) {
+ value = Math.max(popper[placement], boundaries[placement]);
+ }
+ return defineProperty({}, placement, value);
+ },
+ secondary: function secondary(placement) {
+ var mainSide = placement === 'right' ? 'left' : 'top';
+ var value = popper[mainSide];
+ if (popper[placement] > boundaries[placement] && !options.escapeWithReference) {
+ value = Math.min(popper[mainSide], boundaries[placement] - (placement === 'right' ? popper.width : popper.height));
+ }
+ return defineProperty({}, mainSide, value);
+ }
+ };
+
+ order.forEach(function (placement) {
+ var side = ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary';
+ popper = _extends({}, popper, check[side](placement));
+ });
+
+ data.offsets.popper = popper;
+
+ return data;
+}
+
+/**
+ * @function
+ * @memberof Modifiers
+ * @argument {Object} data - The data object generated by `update` method
+ * @argument {Object} options - Modifiers configuration and options
+ * @returns {Object} The data object, properly modified
+ */
+function shift(data) {
+ var placement = data.placement;
+ var basePlacement = placement.split('-')[0];
+ var shiftvariation = placement.split('-')[1];
+
+ // if shift shiftvariation is specified, run the modifier
+ if (shiftvariation) {
+ var _data$offsets = data.offsets,
+ reference = _data$offsets.reference,
+ popper = _data$offsets.popper;
+
+ var isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;
+ var side = isVertical ? 'left' : 'top';
+ var measurement = isVertical ? 'width' : 'height';
+
+ var shiftOffsets = {
+ start: defineProperty({}, side, reference[side]),
+ end: defineProperty({}, side, reference[side] + reference[measurement] - popper[measurement])
+ };
+
+ data.offsets.popper = _extends({}, popper, shiftOffsets[shiftvariation]);
+ }
+
+ return data;
+}
+
+/**
+ * @function
+ * @memberof Modifiers
+ * @argument {Object} data - The data object generated by update method
+ * @argument {Object} options - Modifiers configuration and options
+ * @returns {Object} The data object, properly modified
+ */
+function hide(data) {
+ if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {
+ return data;
+ }
+
+ var refRect = data.offsets.reference;
+ var bound = find(data.instance.modifiers, function (modifier) {
+ return modifier.name === 'preventOverflow';
+ }).boundaries;
+
+ if (refRect.bottom < bound.top || refRect.left > bound.right || refRect.top > bound.bottom || refRect.right < bound.left) {
+ // Avoid unnecessary DOM access if visibility hasn't changed
+ if (data.hide === true) {
+ return data;
+ }
+
+ data.hide = true;
+ data.attributes['x-out-of-boundaries'] = '';
+ } else {
+ // Avoid unnecessary DOM access if visibility hasn't changed
+ if (data.hide === false) {
+ return data;
+ }
+
+ data.hide = false;
+ data.attributes['x-out-of-boundaries'] = false;
+ }
+
+ return data;
+}
+
+/**
+ * @function
+ * @memberof Modifiers
+ * @argument {Object} data - The data object generated by `update` method
+ * @argument {Object} options - Modifiers configuration and options
+ * @returns {Object} The data object, properly modified
+ */
+function inner(data) {
+ var placement = data.placement;
+ var basePlacement = placement.split('-')[0];
+ var _data$offsets = data.offsets,
+ popper = _data$offsets.popper,
+ reference = _data$offsets.reference;
+
+ var isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;
+
+ var subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;
+
+ popper[isHoriz ? 'left' : 'top'] = reference[basePlacement] - (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);
+
+ data.placement = getOppositePlacement(placement);
+ data.offsets.popper = getClientRect(popper);
+
+ return data;
+}
+
+/**
+ * Modifier function, each modifier can have a function of this type assigned
+ * to its `fn` property.<br />
+ * These functions will be called on each update, this means that you must
+ * make sure they are performant enough to avoid performance bottlenecks.
+ *
+ * @function ModifierFn
+ * @argument {dataObject} data - The data object generated by `update` method
+ * @argument {Object} options - Modifiers configuration and options
+ * @returns {dataObject} The data object, properly modified
+ */
+
+/**
+ * Modifiers are plugins used to alter the behavior of your poppers.<br />
+ * Popper.js uses a set of 9 modifiers to provide all the basic functionalities
+ * needed by the library.
+ *
+ * Usually you don't want to override the `order`, `fn` and `onLoad` props.
+ * All the other properties are configurations that could be tweaked.
+ * @namespace modifiers
+ */
+var modifiers = {
+ /**
+ * Modifier used to shift the popper on the start or end of its reference
+ * element.<br />
+ * It will read the variation of the `placement` property.<br />
+ * It can be one either `-end` or `-start`.
+ * @memberof modifiers
+ * @inner
+ */
+ shift: {
+ /** @prop {number} order=100 - Index used to define the order of execution */
+ order: 100,
+ /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
+ enabled: true,
+ /** @prop {ModifierFn} */
+ fn: shift
+ },
+
+ /**
+ * The `offset` modifier can shift your popper on both its axis.
+ *
+ * It accepts the following units:
+ * - `px` or unit-less, interpreted as pixels
+ * - `%` or `%r`, percentage relative to the length of the reference element
+ * - `%p`, percentage relative to the length of the popper element
+ * - `vw`, CSS viewport width unit
+ * - `vh`, CSS viewport height unit
+ *
+ * For length is intended the main axis relative to the placement of the popper.<br />
+ * This means that if the placement is `top` or `bottom`, the length will be the
+ * `width`. In case of `left` or `right`, it will be the `height`.
+ *
+ * You can provide a single value (as `Number` or `String`), or a pair of values
+ * as `String` divided by a comma or one (or more) white spaces.<br />
+ * The latter is a deprecated method because it leads to confusion and will be
+ * removed in v2.<br />
+ * Additionally, it accepts additions and subtractions between different units.
+ * Note that multiplications and divisions aren't supported.
+ *
+ * Valid examples are:
+ * ```
+ * 10
+ * '10%'
+ * '10, 10'
+ * '10%, 10'
+ * '10 + 10%'
+ * '10 - 5vh + 3%'
+ * '-10px + 5vh, 5px - 6%'
+ * ```
+ * > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap
+ * > with their reference element, unfortunately, you will have to disable the `flip` modifier.
+ * > You can read more on this at this [issue](https://github.com/FezVrasta/popper.js/issues/373).
+ *
+ * @memberof modifiers
+ * @inner
+ */
+ offset: {
+ /** @prop {number} order=200 - Index used to define the order of execution */
+ order: 200,
+ /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
+ enabled: true,
+ /** @prop {ModifierFn} */
+ fn: offset,
+ /** @prop {Number|String} offset=0
+ * The offset value as described in the modifier description
+ */
+ offset: 0
+ },
+
+ /**
+ * Modifier used to prevent the popper from being positioned outside the boundary.
+ *
+ * A scenario exists where the reference itself is not within the boundaries.<br />
+ * We can say it has "escaped the boundaries" — or just "escaped".<br />
+ * In this case we need to decide whether the popper should either:
+ *
+ * - detach from the reference and remain "trapped" in the boundaries, or
+ * - if it should ignore the boundary and "escape with its reference"
+ *
+ * When `escapeWithReference` is set to`true` and reference is completely
+ * outside its boundaries, the popper will overflow (or completely leave)
+ * the boundaries in order to remain attached to the edge of the reference.
+ *
+ * @memberof modifiers
+ * @inner
+ */
+ preventOverflow: {
+ /** @prop {number} order=300 - Index used to define the order of execution */
+ order: 300,
+ /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
+ enabled: true,
+ /** @prop {ModifierFn} */
+ fn: preventOverflow,
+ /**
+ * @prop {Array} [priority=['left','right','top','bottom']]
+ * Popper will try to prevent overflow following these priorities by default,
+ * then, it could overflow on the left and on top of the `boundariesElement`
+ */
+ priority: ['left', 'right', 'top', 'bottom'],
+ /**
+ * @prop {number} padding=5
+ * Amount of pixel used to define a minimum distance between the boundaries
+ * and the popper. This makes sure the popper always has a little padding
+ * between the edges of its container
+ */
+ padding: 5,
+ /**
+ * @prop {String|HTMLElement} boundariesElement='scrollParent'
+ * Boundaries used by the modifier. Can be `scrollParent`, `window`,
+ * `viewport` or any DOM element.
+ */
+ boundariesElement: 'scrollParent'
+ },
+
+ /**
+ * Modifier used to make sure the reference and its popper stay near each other
+ * without leaving any gap between the two. Especially useful when the arrow is
+ * enabled and you want to ensure that it points to its reference element.
+ * It cares only about the first axis. You can still have poppers with margin
+ * between the popper and its reference element.
+ * @memberof modifiers
+ * @inner
+ */
+ keepTogether: {
+ /** @prop {number} order=400 - Index used to define the order of execution */
+ order: 400,
+ /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
+ enabled: true,
+ /** @prop {ModifierFn} */
+ fn: keepTogether
+ },
+
+ /**
+ * This modifier is used to move the `arrowElement` of the popper to make
+ * sure it is positioned between the reference element and its popper element.
+ * It will read the outer size of the `arrowElement` node to detect how many
+ * pixels of conjunction are needed.
+ *
+ * It has no effect if no `arrowElement` is provided.
+ * @memberof modifiers
+ * @inner
+ */
+ arrow: {
+ /** @prop {number} order=500 - Index used to define the order of execution */
+ order: 500,
+ /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
+ enabled: true,
+ /** @prop {ModifierFn} */
+ fn: arrow,
+ /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */
+ element: '[x-arrow]'
+ },
+
+ /**
+ * Modifier used to flip the popper's placement when it starts to overlap its
+ * reference element.
+ *
+ * Requires the `preventOverflow` modifier before it in order to work.
+ *
+ * **NOTE:** this modifier will interrupt the current update cycle and will
+ * restart it if it detects the need to flip the placement.
+ * @memberof modifiers
+ * @inner
+ */
+ flip: {
+ /** @prop {number} order=600 - Index used to define the order of execution */
+ order: 600,
+ /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
+ enabled: true,
+ /** @prop {ModifierFn} */
+ fn: flip,
+ /**
+ * @prop {String|Array} behavior='flip'
+ * The behavior used to change the popper's placement. It can be one of
+ * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid
+ * placements (with optional variations)
+ */
+ behavior: 'flip',
+ /**
+ * @prop {number} padding=5
+ * The popper will flip if it hits the edges of the `boundariesElement`
+ */
+ padding: 5,
+ /**
+ * @prop {String|HTMLElement} boundariesElement='viewport'
+ * The element which will define the boundaries of the popper position.
+ * The popper will never be placed outside of the defined boundaries
+ * (except if `keepTogether` is enabled)
+ */
+ boundariesElement: 'viewport',
+ /**
+ * @prop {Boolean} flipVariations=false
+ * The popper will switch placement variation between `-start` and `-end` when
+ * the reference element overlaps its boundaries.
+ *
+ * The original placement should have a set variation.
+ */
+ flipVariations: false,
+ /**
+ * @prop {Boolean} flipVariationsByContent=false
+ * The popper will switch placement variation between `-start` and `-end` when
+ * the popper element overlaps its reference boundaries.
+ *
+ * The original placement should have a set variation.
+ */
+ flipVariationsByContent: false
+ },
+
+ /**
+ * Modifier used to make the popper flow toward the inner of the reference element.
+ * By default, when this modifier is disabled, the popper will be placed outside
+ * the reference element.
+ * @memberof modifiers
+ * @inner
+ */
+ inner: {
+ /** @prop {number} order=700 - Index used to define the order of execution */
+ order: 700,
+ /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */
+ enabled: false,
+ /** @prop {ModifierFn} */
+ fn: inner
+ },
+
+ /**
+ * Modifier used to hide the popper when its reference element is outside of the
+ * popper boundaries. It will set a `x-out-of-boundaries` attribute which can
+ * be used to hide with a CSS selector the popper when its reference is
+ * out of boundaries.
+ *
+ * Requires the `preventOverflow` modifier before it in order to work.
+ * @memberof modifiers
+ * @inner
+ */
+ hide: {
+ /** @prop {number} order=800 - Index used to define the order of execution */
+ order: 800,
+ /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
+ enabled: true,
+ /** @prop {ModifierFn} */
+ fn: hide
+ },
+
+ /**
+ * Computes the style that will be applied to the popper element to gets
+ * properly positioned.
+ *
+ * Note that this modifier will not touch the DOM, it just prepares the styles
+ * so that `applyStyle` modifier can apply it. This separation is useful
+ * in case you need to replace `applyStyle` with a custom implementation.
+ *
+ * This modifier has `850` as `order` value to maintain backward compatibility
+ * with previous versions of Popper.js. Expect the modifiers ordering method
+ * to change in future major versions of the library.
+ *
+ * @memberof modifiers
+ * @inner
+ */
+ computeStyle: {
+ /** @prop {number} order=850 - Index used to define the order of execution */
+ order: 850,
+ /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
+ enabled: true,
+ /** @prop {ModifierFn} */
+ fn: computeStyle,
+ /**
+ * @prop {Boolean} gpuAcceleration=true
+ * If true, it uses the CSS 3D transformation to position the popper.
+ * Otherwise, it will use the `top` and `left` properties
+ */
+ gpuAcceleration: true,
+ /**
+ * @prop {string} [x='bottom']
+ * Where to anchor the X axis (`bottom` or `top`). AKA X offset origin.
+ * Change this if your popper should grow in a direction different from `bottom`
+ */
+ x: 'bottom',
+ /**
+ * @prop {string} [x='left']
+ * Where to anchor the Y axis (`left` or `right`). AKA Y offset origin.
+ * Change this if your popper should grow in a direction different from `right`
+ */
+ y: 'right'
+ },
+
+ /**
+ * Applies the computed styles to the popper element.
+ *
+ * All the DOM manipulations are limited to this modifier. This is useful in case
+ * you want to integrate Popper.js inside a framework or view library and you
+ * want to delegate all the DOM manipulations to it.
+ *
+ * Note that if you disable this modifier, you must make sure the popper element
+ * has its position set to `absolute` before Popper.js can do its work!
+ *
+ * Just disable this modifier and define your own to achieve the desired effect.
+ *
+ * @memberof modifiers
+ * @inner
+ */
+ applyStyle: {
+ /** @prop {number} order=900 - Index used to define the order of execution */
+ order: 900,
+ /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
+ enabled: true,
+ /** @prop {ModifierFn} */
+ fn: applyStyle,
+ /** @prop {Function} */
+ onLoad: applyStyleOnLoad,
+ /**
+ * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier
+ * @prop {Boolean} gpuAcceleration=true
+ * If true, it uses the CSS 3D transformation to position the popper.
+ * Otherwise, it will use the `top` and `left` properties
+ */
+ gpuAcceleration: undefined
+ }
+};
+
+/**
+ * The `dataObject` is an object containing all the information used by Popper.js.
+ * This object is passed to modifiers and to the `onCreate` and `onUpdate` callbacks.
+ * @name dataObject
+ * @property {Object} data.instance The Popper.js instance
+ * @property {String} data.placement Placement applied to popper
+ * @property {String} data.originalPlacement Placement originally defined on init
+ * @property {Boolean} data.flipped True if popper has been flipped by flip modifier
+ * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper
+ * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier
+ * @property {Object} data.styles Any CSS property defined here will be applied to the popper. It expects the JavaScript nomenclature (eg. `marginBottom`)
+ * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow. It expects the JavaScript nomenclature (eg. `marginBottom`)
+ * @property {Object} data.boundaries Offsets of the popper boundaries
+ * @property {Object} data.offsets The measurements of popper, reference and arrow elements
+ * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values
+ * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values
+ * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0
+ */
+
+/**
+ * Default options provided to Popper.js constructor.<br />
+ * These can be overridden using the `options` argument of Popper.js.<br />
+ * To override an option, simply pass an object with the same
+ * structure of the `options` object, as the 3rd argument. For example:
+ * ```
+ * new Popper(ref, pop, {
+ * modifiers: {
+ * preventOverflow: { enabled: false }
+ * }
+ * })
+ * ```
+ * @type {Object}
+ * @static
+ * @memberof Popper
+ */
+var Defaults = {
+ /**
+ * Popper's placement.
+ * @prop {Popper.placements} placement='bottom'
+ */
+ placement: 'bottom',
+
+ /**
+ * Set this to true if you want popper to position it self in 'fixed' mode
+ * @prop {Boolean} positionFixed=false
+ */
+ positionFixed: false,
+
+ /**
+ * Whether events (resize, scroll) are initially enabled.
+ * @prop {Boolean} eventsEnabled=true
+ */
+ eventsEnabled: true,
+
+ /**
+ * Set to true if you want to automatically remove the popper when
+ * you call the `destroy` method.
+ * @prop {Boolean} removeOnDestroy=false
+ */
+ removeOnDestroy: false,
+
+ /**
+ * Callback called when the popper is created.<br />
+ * By default, it is set to no-op.<br />
+ * Access Popper.js instance with `data.instance`.
+ * @prop {onCreate}
+ */
+ onCreate: function onCreate() {},
+
+ /**
+ * Callback called when the popper is updated. This callback is not called
+ * on the initialization/creation of the popper, but only on subsequent
+ * updates.<br />
+ * By default, it is set to no-op.<br />
+ * Access Popper.js instance with `data.instance`.
+ * @prop {onUpdate}
+ */
+ onUpdate: function onUpdate() {},
+
+ /**
+ * List of modifiers used to modify the offsets before they are applied to the popper.
+ * They provide most of the functionalities of Popper.js.
+ * @prop {modifiers}
+ */
+ modifiers: modifiers
+};
+
+/**
+ * @callback onCreate
+ * @param {dataObject} data
+ */
+
+/**
+ * @callback onUpdate
+ * @param {dataObject} data
+ */
+
+// Utils
+// Methods
+var Popper = function () {
+ /**
+ * Creates a new Popper.js instance.
+ * @class Popper
+ * @param {Element|referenceObject} reference - The reference element used to position the popper
+ * @param {Element} popper - The HTML / XML element used as the popper
+ * @param {Object} options - Your custom options to override the ones defined in [Defaults](#defaults)
+ * @return {Object} instance - The generated Popper.js instance
+ */
+ function Popper(reference, popper) {
+ var _this = this;
+
+ var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
+ classCallCheck(this, Popper);
+
+ this.scheduleUpdate = function () {
+ return requestAnimationFrame(_this.update);
+ };
+
+ // make update() debounced, so that it only runs at most once-per-tick
+ this.update = debounce(this.update.bind(this));
+
+ // with {} we create a new object with the options inside it
+ this.options = _extends({}, Popper.Defaults, options);
+
+ // init state
+ this.state = {
+ isDestroyed: false,
+ isCreated: false,
+ scrollParents: []
+ };
+
+ // get reference and popper elements (allow jQuery wrappers)
+ this.reference = reference && reference.jquery ? reference[0] : reference;
+ this.popper = popper && popper.jquery ? popper[0] : popper;
+
+ // Deep merge modifiers options
+ this.options.modifiers = {};
+ Object.keys(_extends({}, Popper.Defaults.modifiers, options.modifiers)).forEach(function (name) {
+ _this.options.modifiers[name] = _extends({}, Popper.Defaults.modifiers[name] || {}, options.modifiers ? options.modifiers[name] : {});
+ });
+
+ // Refactoring modifiers' list (Object => Array)
+ this.modifiers = Object.keys(this.options.modifiers).map(function (name) {
+ return _extends({
+ name: name
+ }, _this.options.modifiers[name]);
+ })
+ // sort the modifiers by order
+ .sort(function (a, b) {
+ return a.order - b.order;
+ });
+
+ // modifiers have the ability to execute arbitrary code when Popper.js get inited
+ // such code is executed in the same order of its modifier
+ // they could add new properties to their options configuration
+ // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`!
+ this.modifiers.forEach(function (modifierOptions) {
+ if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {
+ modifierOptions.onLoad(_this.reference, _this.popper, _this.options, modifierOptions, _this.state);
+ }
+ });
+
+ // fire the first update to position the popper in the right place
+ this.update();
+
+ var eventsEnabled = this.options.eventsEnabled;
+ if (eventsEnabled) {
+ // setup event listeners, they will take care of update the position in specific situations
+ this.enableEventListeners();
+ }
+
+ this.state.eventsEnabled = eventsEnabled;
+ }
+
+ // We can't use class properties because they don't get listed in the
+ // class prototype and break stuff like Sinon stubs
+
+
+ createClass(Popper, [{
+ key: 'update',
+ value: function update$$1() {
+ return update.call(this);
+ }
+ }, {
+ key: 'destroy',
+ value: function destroy$$1() {
+ return destroy.call(this);
+ }
+ }, {
+ key: 'enableEventListeners',
+ value: function enableEventListeners$$1() {
+ return enableEventListeners.call(this);
+ }
+ }, {
+ key: 'disableEventListeners',
+ value: function disableEventListeners$$1() {
+ return disableEventListeners.call(this);
+ }
+
+ /**
+ * Schedules an update. It will run on the next UI update available.
+ * @method scheduleUpdate
+ * @memberof Popper
+ */
+
+
+ /**
+ * Collection of utilities useful when writing custom modifiers.
+ * Starting from version 1.7, this method is available only if you
+ * include `popper-utils.js` before `popper.js`.
+ *
+ * **DEPRECATION**: This way to access PopperUtils is deprecated
+ * and will be removed in v2! Use the PopperUtils module directly instead.
+ * Due to the high instability of the methods contained in Utils, we can't
+ * guarantee them to follow semver. Use them at your own risk!
+ * @static
+ * @private
+ * @type {Object}
+ * @deprecated since version 1.8
+ * @member Utils
+ * @memberof Popper
+ */
+
+ }]);
+ return Popper;
+}();
+
+/**
+ * The `referenceObject` is an object that provides an interface compatible with Popper.js
+ * and lets you use it as replacement of a real DOM node.<br />
+ * You can use this method to position a popper relatively to a set of coordinates
+ * in case you don't have a DOM node to use as reference.
+ *
+ * ```
+ * new Popper(referenceObject, popperNode);
+ * ```
+ *
+ * NB: This feature isn't supported in Internet Explorer 10.
+ * @name referenceObject
+ * @property {Function} data.getBoundingClientRect
+ * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method.
+ * @property {number} data.clientWidth
+ * An ES6 getter that will return the width of the virtual reference element.
+ * @property {number} data.clientHeight
+ * An ES6 getter that will return the height of the virtual reference element.
+ */
+
+
+Popper.Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;
+Popper.placements = placements;
+Popper.Defaults = Defaults;
+
+return Popper;
+
+})));
+//# sourceMappingURL=popper.js.map
+
+// import required js-files Bootstrap 5
+/*!
+ * Bootstrap alert.js v5.0.0-beta2 (https://getbootstrap.com/)
+ * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
+ */
+(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./dom/data.js'), require('./dom/event-handler.js'), require('./base-component.js')) :
+ typeof define === 'function' && define.amd ? define(['./dom/data', './dom/event-handler', './base-component'], factory) :
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Alert = factory(global.Data, global.EventHandler, global.Base));
+}(this, (function (Data, EventHandler, BaseComponent) { 'use strict';
+
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
+
+ var Data__default = /*#__PURE__*/_interopDefaultLegacy(Data);
+ var EventHandler__default = /*#__PURE__*/_interopDefaultLegacy(EventHandler);
+ var BaseComponent__default = /*#__PURE__*/_interopDefaultLegacy(BaseComponent);
+
+ function _defineProperties(target, props) {
+ for (var i = 0; i < props.length; i++) {
+ var descriptor = props[i];
+ descriptor.enumerable = descriptor.enumerable || false;
+ descriptor.configurable = true;
+ if ("value" in descriptor) descriptor.writable = true;
+ Object.defineProperty(target, descriptor.key, descriptor);
+ }
+ }
+
+ function _createClass(Constructor, protoProps, staticProps) {
+ if (protoProps) _defineProperties(Constructor.prototype, protoProps);
+ if (staticProps) _defineProperties(Constructor, staticProps);
+ return Constructor;
+ }
+
+ function _inheritsLoose(subClass, superClass) {
+ subClass.prototype = Object.create(superClass.prototype);
+ subClass.prototype.constructor = subClass;
+
+ _setPrototypeOf(subClass, superClass);
+ }
+
+ function _setPrototypeOf(o, p) {
+ _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {
+ o.__proto__ = p;
+ return o;
+ };
+
+ return _setPrototypeOf(o, p);
+ }
+
+ /**
+ * --------------------------------------------------------------------------
+ * Bootstrap (v5.0.0-beta2): util/index.js
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
+ * --------------------------------------------------------------------------
+ */
+ var MILLISECONDS_MULTIPLIER = 1000;
+ var TRANSITION_END = 'transitionend'; // Shoutout AngusCroll (https://goo.gl/pxwQGp)
+
+ var getSelector = function getSelector(element) {
+ var selector = element.getAttribute('data-bs-target');
+
+ if (!selector || selector === '#') {
+ var hrefAttr = element.getAttribute('href'); // The only valid content that could double as a selector are IDs or classes,
+ // so everything starting with `#` or `.`. If a "real" URL is used as the selector,
+ // `document.querySelector` will rightfully complain it is invalid.
+ // See https://github.com/twbs/bootstrap/issues/32273
+
+ if (!hrefAttr || !hrefAttr.includes('#') && !hrefAttr.startsWith('.')) {
+ return null;
+ } // Just in case some CMS puts out a full URL with the anchor appended
+
+
+ if (hrefAttr.includes('#') && !hrefAttr.startsWith('#')) {
+ hrefAttr = '#' + hrefAttr.split('#')[1];
+ }
+
+ selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : null;
+ }
+
+ return selector;
+ };
+
+ var getElementFromSelector = function getElementFromSelector(element) {
+ var selector = getSelector(element);
+ return selector ? document.querySelector(selector) : null;
+ };
+
+ var getTransitionDurationFromElement = function getTransitionDurationFromElement(element) {
+ if (!element) {
+ return 0;
+ } // Get transition-duration of the element
+
+
+ var _window$getComputedSt = window.getComputedStyle(element),
+ transitionDuration = _window$getComputedSt.transitionDuration,
+ transitionDelay = _window$getComputedSt.transitionDelay;
+
+ var floatTransitionDuration = Number.parseFloat(transitionDuration);
+ var floatTransitionDelay = Number.parseFloat(transitionDelay); // Return 0 if element or transition duration is not found
+
+ if (!floatTransitionDuration && !floatTransitionDelay) {
+ return 0;
+ } // If multiple durations are defined, take the first
+
+
+ transitionDuration = transitionDuration.split(',')[0];
+ transitionDelay = transitionDelay.split(',')[0];
+ return (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER;
+ };
+
+ var triggerTransitionEnd = function triggerTransitionEnd(element) {
+ element.dispatchEvent(new Event(TRANSITION_END));
+ };
+
+ var emulateTransitionEnd = function emulateTransitionEnd(element, duration) {
+ var called = false;
+ var durationPadding = 5;
+ var emulatedDuration = duration + durationPadding;
+
+ function listener() {
+ called = true;
+ element.removeEventListener(TRANSITION_END, listener);
+ }
+
+ element.addEventListener(TRANSITION_END, listener);
+ setTimeout(function () {
+ if (!called) {
+ triggerTransitionEnd(element);
+ }
+ }, emulatedDuration);
+ };
+
+ var getjQuery = function getjQuery() {
+ var _window = window,
+ jQuery = _window.jQuery;
+
+ if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {
+ return jQuery;
+ }
+
+ return null;
+ };
+
+ var onDOMContentLoaded = function onDOMContentLoaded(callback) {
+ if (document.readyState === 'loading') {
+ document.addEventListener('DOMContentLoaded', callback);
+ } else {
+ callback();
+ }
+ };
+
+ document.documentElement.dir === 'rtl';
+
+ var defineJQueryPlugin = function defineJQueryPlugin(name, plugin) {
+ onDOMContentLoaded(function () {
+ var $ = getjQuery();
+ /* istanbul ignore if */
+
+ if ($) {
+ var JQUERY_NO_CONFLICT = $.fn[name];
+ $.fn[name] = plugin.jQueryInterface;
+ $.fn[name].Constructor = plugin;
+
+ $.fn[name].noConflict = function () {
+ $.fn[name] = JQUERY_NO_CONFLICT;
+ return plugin.jQueryInterface;
+ };
+ }
+ });
+ };
+
+ /**
+ * ------------------------------------------------------------------------
+ * Constants
+ * ------------------------------------------------------------------------
+ */
+
+ var NAME = 'alert';
+ var DATA_KEY = 'bs.alert';
+ var EVENT_KEY = "." + DATA_KEY;
+ var DATA_API_KEY = '.data-api';
+ var SELECTOR_DISMISS = '[data-bs-dismiss="alert"]';
+ var EVENT_CLOSE = "close" + EVENT_KEY;
+ var EVENT_CLOSED = "closed" + EVENT_KEY;
+ var EVENT_CLICK_DATA_API = "click" + EVENT_KEY + DATA_API_KEY;
+ var CLASS_NAME_ALERT = 'alert';
+ var CLASS_NAME_FADE = 'fade';
+ var CLASS_NAME_SHOW = 'show';
+ /**
+ * ------------------------------------------------------------------------
+ * Class Definition
+ * ------------------------------------------------------------------------
+ */
+
+ var Alert = /*#__PURE__*/function (_BaseComponent) {
+ _inheritsLoose(Alert, _BaseComponent);
+
+ function Alert() {
+ return _BaseComponent.apply(this, arguments) || this;
+ }
+
+ var _proto = Alert.prototype;
+
+ // Public
+ _proto.close = function close(element) {
+ var rootElement = element ? this._getRootElement(element) : this._element;
+
+ var customEvent = this._triggerCloseEvent(rootElement);
+
+ if (customEvent === null || customEvent.defaultPrevented) {
+ return;
+ }
+
+ this._removeElement(rootElement);
+ } // Private
+ ;
+
+ _proto._getRootElement = function _getRootElement(element) {
+ return getElementFromSelector(element) || element.closest("." + CLASS_NAME_ALERT);
+ };
+
+ _proto._triggerCloseEvent = function _triggerCloseEvent(element) {
+ return EventHandler__default['default'].trigger(element, EVENT_CLOSE);
+ };
+
+ _proto._removeElement = function _removeElement(element) {
+ var _this = this;
+
+ element.classList.remove(CLASS_NAME_SHOW);
+
+ if (!element.classList.contains(CLASS_NAME_FADE)) {
+ this._destroyElement(element);
+
+ return;
+ }
+
+ var transitionDuration = getTransitionDurationFromElement(element);
+ EventHandler__default['default'].one(element, 'transitionend', function () {
+ return _this._destroyElement(element);
+ });
+ emulateTransitionEnd(element, transitionDuration);
+ };
+
+ _proto._destroyElement = function _destroyElement(element) {
+ if (element.parentNode) {
+ element.parentNode.removeChild(element);
+ }
+
+ EventHandler__default['default'].trigger(element, EVENT_CLOSED);
+ } // Static
+ ;
+
+ Alert.jQueryInterface = function jQueryInterface(config) {
+ return this.each(function () {
+ var data = Data__default['default'].getData(this, DATA_KEY);
+
+ if (!data) {
+ data = new Alert(this);
+ }
+
+ if (config === 'close') {
+ data[config](this);
+ }
+ });
+ };
+
+ Alert.handleDismiss = function handleDismiss(alertInstance) {
+ return function (event) {
+ if (event) {
+ event.preventDefault();
+ }
+
+ alertInstance.close(this);
+ };
+ };
+
+ _createClass(Alert, null, [{
+ key: "DATA_KEY",
+ get: // Getters
+ function get() {
+ return DATA_KEY;
+ }
+ }]);
+
+ return Alert;
+ }(BaseComponent__default['default']);
+ /**
+ * ------------------------------------------------------------------------
+ * Data Api implementation
+ * ------------------------------------------------------------------------
+ */
+
+
+ EventHandler__default['default'].on(document, EVENT_CLICK_DATA_API, SELECTOR_DISMISS, Alert.handleDismiss(new Alert()));
+ /**
+ * ------------------------------------------------------------------------
+ * jQuery
+ * ------------------------------------------------------------------------
+ * add .Alert to jQuery only if jQuery is present
+ */
+
+ defineJQueryPlugin(NAME, Alert);
+
+ return Alert;
+
+})));
+//# sourceMappingURL=alert.js.map
+/*!
+ * Bootstrap button.js v5.0.0-beta2 (https://getbootstrap.com/)
+ * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
+ */
+(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./dom/data.js'), require('./dom/event-handler.js'), require('./base-component.js')) :
+ typeof define === 'function' && define.amd ? define(['./dom/data', './dom/event-handler', './base-component'], factory) :
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Button = factory(global.Data, global.EventHandler, global.Base));
+}(this, (function (Data, EventHandler, BaseComponent) { 'use strict';
+
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
+
+ var Data__default = /*#__PURE__*/_interopDefaultLegacy(Data);
+ var EventHandler__default = /*#__PURE__*/_interopDefaultLegacy(EventHandler);
+ var BaseComponent__default = /*#__PURE__*/_interopDefaultLegacy(BaseComponent);
+
+ function _defineProperties(target, props) {
+ for (var i = 0; i < props.length; i++) {
+ var descriptor = props[i];
+ descriptor.enumerable = descriptor.enumerable || false;
+ descriptor.configurable = true;
+ if ("value" in descriptor) descriptor.writable = true;
+ Object.defineProperty(target, descriptor.key, descriptor);
+ }
+ }
+
+ function _createClass(Constructor, protoProps, staticProps) {
+ if (protoProps) _defineProperties(Constructor.prototype, protoProps);
+ if (staticProps) _defineProperties(Constructor, staticProps);
+ return Constructor;
+ }
+
+ function _inheritsLoose(subClass, superClass) {
+ subClass.prototype = Object.create(superClass.prototype);
+ subClass.prototype.constructor = subClass;
+
+ _setPrototypeOf(subClass, superClass);
+ }
+
+ function _setPrototypeOf(o, p) {
+ _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {
+ o.__proto__ = p;
+ return o;
+ };
+
+ return _setPrototypeOf(o, p);
+ }
+
+ /**
+ * --------------------------------------------------------------------------
+ * Bootstrap (v5.0.0-beta2): util/index.js
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
+ * --------------------------------------------------------------------------
+ */
+
+ var getjQuery = function getjQuery() {
+ var _window = window,
+ jQuery = _window.jQuery;
+
+ if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {
+ return jQuery;
+ }
+
+ return null;
+ };
+
+ var onDOMContentLoaded = function onDOMContentLoaded(callback) {
+ if (document.readyState === 'loading') {
+ document.addEventListener('DOMContentLoaded', callback);
+ } else {
+ callback();
+ }
+ };
+
+ document.documentElement.dir === 'rtl';
+
+ var defineJQueryPlugin = function defineJQueryPlugin(name, plugin) {
+ onDOMContentLoaded(function () {
+ var $ = getjQuery();
+ /* istanbul ignore if */
+
+ if ($) {
+ var JQUERY_NO_CONFLICT = $.fn[name];
+ $.fn[name] = plugin.jQueryInterface;
+ $.fn[name].Constructor = plugin;
+
+ $.fn[name].noConflict = function () {
+ $.fn[name] = JQUERY_NO_CONFLICT;
+ return plugin.jQueryInterface;
+ };
+ }
+ });
+ };
+
+ /**
+ * ------------------------------------------------------------------------
+ * Constants
+ * ------------------------------------------------------------------------
+ */
+
+ var NAME = 'button';
+ var DATA_KEY = 'bs.button';
+ var EVENT_KEY = "." + DATA_KEY;
+ var DATA_API_KEY = '.data-api';
+ var CLASS_NAME_ACTIVE = 'active';
+ var SELECTOR_DATA_TOGGLE = '[data-bs-toggle="button"]';
+ var EVENT_CLICK_DATA_API = "click" + EVENT_KEY + DATA_API_KEY;
+ /**
+ * ------------------------------------------------------------------------
+ * Class Definition
+ * ------------------------------------------------------------------------
+ */
+
+ var Button = /*#__PURE__*/function (_BaseComponent) {
+ _inheritsLoose(Button, _BaseComponent);
+
+ function Button() {
+ return _BaseComponent.apply(this, arguments) || this;
+ }
+
+ var _proto = Button.prototype;
+
+ // Public
+ _proto.toggle = function toggle() {
+ // Toggle class and sync the `aria-pressed` attribute with the return value of the `.toggle()` method
+ this._element.setAttribute('aria-pressed', this._element.classList.toggle(CLASS_NAME_ACTIVE));
+ } // Static
+ ;
+
+ Button.jQueryInterface = function jQueryInterface(config) {
+ return this.each(function () {
+ var data = Data__default['default'].getData(this, DATA_KEY);
+
+ if (!data) {
+ data = new Button(this);
+ }
+
+ if (config === 'toggle') {
+ data[config]();
+ }
+ });
+ };
+
+ _createClass(Button, null, [{
+ key: "DATA_KEY",
+ get: // Getters
+ function get() {
+ return DATA_KEY;
+ }
+ }]);
+
+ return Button;
+ }(BaseComponent__default['default']);
+ /**
+ * ------------------------------------------------------------------------
+ * Data Api implementation
+ * ------------------------------------------------------------------------
+ */
+
+
+ EventHandler__default['default'].on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {
+ event.preventDefault();
+ var button = event.target.closest(SELECTOR_DATA_TOGGLE);
+ var data = Data__default['default'].getData(button, DATA_KEY);
+
+ if (!data) {
+ data = new Button(button);
+ }
+
+ data.toggle();
+ });
+ /**
+ * ------------------------------------------------------------------------
+ * jQuery
+ * ------------------------------------------------------------------------
+ * add .Button to jQuery only if jQuery is present
+ */
+
+ defineJQueryPlugin(NAME, Button);
+
+ return Button;
+
+})));
+//# sourceMappingURL=button.js.map
+/*!
+ * Bootstrap carousel.js v5.0.0-beta2 (https://getbootstrap.com/)
+ * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
+ */
+(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./dom/data.js'), require('./dom/event-handler.js'), require('./dom/manipulator.js'), require('./dom/selector-engine.js'), require('./base-component.js')) :
+ typeof define === 'function' && define.amd ? define(['./dom/data', './dom/event-handler', './dom/manipulator', './dom/selector-engine', './base-component'], factory) :
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Carousel = factory(global.Data, global.EventHandler, global.Manipulator, global.SelectorEngine, global.Base));
+}(this, (function (Data, EventHandler, Manipulator, SelectorEngine, BaseComponent) { 'use strict';
+
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
+
+ var Data__default = /*#__PURE__*/_interopDefaultLegacy(Data);
+ var EventHandler__default = /*#__PURE__*/_interopDefaultLegacy(EventHandler);
+ var Manipulator__default = /*#__PURE__*/_interopDefaultLegacy(Manipulator);
+ var SelectorEngine__default = /*#__PURE__*/_interopDefaultLegacy(SelectorEngine);
+ var BaseComponent__default = /*#__PURE__*/_interopDefaultLegacy(BaseComponent);
+
+ function _defineProperties(target, props) {
+ for (var i = 0; i < props.length; i++) {
+ var descriptor = props[i];
+ descriptor.enumerable = descriptor.enumerable || false;
+ descriptor.configurable = true;
+ if ("value" in descriptor) descriptor.writable = true;
+ Object.defineProperty(target, descriptor.key, descriptor);
+ }
+ }
+
+ function _createClass(Constructor, protoProps, staticProps) {
+ if (protoProps) _defineProperties(Constructor.prototype, protoProps);
+ if (staticProps) _defineProperties(Constructor, staticProps);
+ return Constructor;
+ }
+
+ function _extends() {
+ _extends = Object.assign || function (target) {
+ for (var i = 1; i < arguments.length; i++) {
+ var source = arguments[i];
+
+ for (var key in source) {
+ if (Object.prototype.hasOwnProperty.call(source, key)) {
+ target[key] = source[key];
+ }
+ }
+ }
+
+ return target;
+ };
+
+ return _extends.apply(this, arguments);
+ }
+
+ function _inheritsLoose(subClass, superClass) {
+ subClass.prototype = Object.create(superClass.prototype);
+ subClass.prototype.constructor = subClass;
+
+ _setPrototypeOf(subClass, superClass);
+ }
+
+ function _setPrototypeOf(o, p) {
+ _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {
+ o.__proto__ = p;
+ return o;
+ };
+
+ return _setPrototypeOf(o, p);
+ }
+
+ /**
+ * --------------------------------------------------------------------------
+ * Bootstrap (v5.0.0-beta2): util/index.js
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
+ * --------------------------------------------------------------------------
+ */
+ var MILLISECONDS_MULTIPLIER = 1000;
+ var TRANSITION_END = 'transitionend'; // Shoutout AngusCroll (https://goo.gl/pxwQGp)
+
+ var toType = function toType(obj) {
+ if (obj === null || obj === undefined) {
+ return "" + obj;
+ }
+
+ return {}.toString.call(obj).match(/\s([a-z]+)/i)[1].toLowerCase();
+ };
+
+ var getSelector = function getSelector(element) {
+ var selector = element.getAttribute('data-bs-target');
+
+ if (!selector || selector === '#') {
+ var hrefAttr = element.getAttribute('href'); // The only valid content that could double as a selector are IDs or classes,
+ // so everything starting with `#` or `.`. If a "real" URL is used as the selector,
+ // `document.querySelector` will rightfully complain it is invalid.
+ // See https://github.com/twbs/bootstrap/issues/32273
+
+ if (!hrefAttr || !hrefAttr.includes('#') && !hrefAttr.startsWith('.')) {
+ return null;
+ } // Just in case some CMS puts out a full URL with the anchor appended
+
+
+ if (hrefAttr.includes('#') && !hrefAttr.startsWith('#')) {
+ hrefAttr = '#' + hrefAttr.split('#')[1];
+ }
+
+ selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : null;
+ }
+
+ return selector;
+ };
+
+ var getElementFromSelector = function getElementFromSelector(element) {
+ var selector = getSelector(element);
+ return selector ? document.querySelector(selector) : null;
+ };
+
+ var getTransitionDurationFromElement = function getTransitionDurationFromElement(element) {
+ if (!element) {
+ return 0;
+ } // Get transition-duration of the element
+
+
+ var _window$getComputedSt = window.getComputedStyle(element),
+ transitionDuration = _window$getComputedSt.transitionDuration,
+ transitionDelay = _window$getComputedSt.transitionDelay;
+
+ var floatTransitionDuration = Number.parseFloat(transitionDuration);
+ var floatTransitionDelay = Number.parseFloat(transitionDelay); // Return 0 if element or transition duration is not found
+
+ if (!floatTransitionDuration && !floatTransitionDelay) {
+ return 0;
+ } // If multiple durations are defined, take the first
+
+
+ transitionDuration = transitionDuration.split(',')[0];
+ transitionDelay = transitionDelay.split(',')[0];
+ return (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER;
+ };
+
+ var triggerTransitionEnd = function triggerTransitionEnd(element) {
+ element.dispatchEvent(new Event(TRANSITION_END));
+ };
+
+ var isElement = function isElement(obj) {
+ return (obj[0] || obj).nodeType;
+ };
+
+ var emulateTransitionEnd = function emulateTransitionEnd(element, duration) {
+ var called = false;
+ var durationPadding = 5;
+ var emulatedDuration = duration + durationPadding;
+
+ function listener() {
+ called = true;
+ element.removeEventListener(TRANSITION_END, listener);
+ }
+
+ element.addEventListener(TRANSITION_END, listener);
+ setTimeout(function () {
+ if (!called) {
+ triggerTransitionEnd(element);
+ }
+ }, emulatedDuration);
+ };
+
+ var typeCheckConfig = function typeCheckConfig(componentName, config, configTypes) {
+ Object.keys(configTypes).forEach(function (property) {
+ var expectedTypes = configTypes[property];
+ var value = config[property];
+ var valueType = value && isElement(value) ? 'element' : toType(value);
+
+ if (!new RegExp(expectedTypes).test(valueType)) {
+ throw new TypeError(componentName.toUpperCase() + ": " + ("Option \"" + property + "\" provided type \"" + valueType + "\" ") + ("but expected type \"" + expectedTypes + "\"."));
+ }
+ });
+ };
+
+ var isVisible = function isVisible(element) {
+ if (!element) {
+ return false;
+ }
+
+ if (element.style && element.parentNode && element.parentNode.style) {
+ var elementStyle = getComputedStyle(element);
+ var parentNodeStyle = getComputedStyle(element.parentNode);
+ return elementStyle.display !== 'none' && parentNodeStyle.display !== 'none' && elementStyle.visibility !== 'hidden';
+ }
+
+ return false;
+ };
+
+ var reflow = function reflow(element) {
+ return element.offsetHeight;
+ };
+
+ var getjQuery = function getjQuery() {
+ var _window = window,
+ jQuery = _window.jQuery;
+
+ if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {
+ return jQuery;
+ }
+
+ return null;
+ };
+
+ var onDOMContentLoaded = function onDOMContentLoaded(callback) {
+ if (document.readyState === 'loading') {
+ document.addEventListener('DOMContentLoaded', callback);
+ } else {
+ callback();
+ }
+ };
+
+ var isRTL = document.documentElement.dir === 'rtl';
+
+ var defineJQueryPlugin = function defineJQueryPlugin(name, plugin) {
+ onDOMContentLoaded(function () {
+ var $ = getjQuery();
+ /* istanbul ignore if */
+
+ if ($) {
+ var JQUERY_NO_CONFLICT = $.fn[name];
+ $.fn[name] = plugin.jQueryInterface;
+ $.fn[name].Constructor = plugin;
+
+ $.fn[name].noConflict = function () {
+ $.fn[name] = JQUERY_NO_CONFLICT;
+ return plugin.jQueryInterface;
+ };
+ }
+ });
+ };
+
+ /**
+ * ------------------------------------------------------------------------
+ * Constants
+ * ------------------------------------------------------------------------
+ */
+
+ var NAME = 'carousel';
+ var DATA_KEY = 'bs.carousel';
+ var EVENT_KEY = "." + DATA_KEY;
+ var DATA_API_KEY = '.data-api';
+ var ARROW_LEFT_KEY = 'ArrowLeft';
+ var ARROW_RIGHT_KEY = 'ArrowRight';
+ var TOUCHEVENT_COMPAT_WAIT = 500; // Time for mouse compat events to fire after touch
+
+ var SWIPE_THRESHOLD = 40;
+ var Default = {
+ interval: 5000,
+ keyboard: true,
+ slide: false,
+ pause: 'hover',
+ wrap: true,
+ touch: true
+ };
+ var DefaultType = {
+ interval: '(number|boolean)',
+ keyboard: 'boolean',
+ slide: '(boolean|string)',
+ pause: '(string|boolean)',
+ wrap: 'boolean',
+ touch: 'boolean'
+ };
+ var DIRECTION_NEXT = 'next';
+ var DIRECTION_PREV = 'prev';
+ var DIRECTION_LEFT = 'left';
+ var DIRECTION_RIGHT = 'right';
+ var EVENT_SLIDE = "slide" + EVENT_KEY;
+ var EVENT_SLID = "slid" + EVENT_KEY;
+ var EVENT_KEYDOWN = "keydown" + EVENT_KEY;
+ var EVENT_MOUSEENTER = "mouseenter" + EVENT_KEY;
+ var EVENT_MOUSELEAVE = "mouseleave" + EVENT_KEY;
+ var EVENT_TOUCHSTART = "touchstart" + EVENT_KEY;
+ var EVENT_TOUCHMOVE = "touchmove" + EVENT_KEY;
+ var EVENT_TOUCHEND = "touchend" + EVENT_KEY;
+ var EVENT_POINTERDOWN = "pointerdown" + EVENT_KEY;
+ var EVENT_POINTERUP = "pointerup" + EVENT_KEY;
+ var EVENT_DRAG_START = "dragstart" + EVENT_KEY;
+ var EVENT_LOAD_DATA_API = "load" + EVENT_KEY + DATA_API_KEY;
+ var EVENT_CLICK_DATA_API = "click" + EVENT_KEY + DATA_API_KEY;
+ var CLASS_NAME_CAROUSEL = 'carousel';
+ var CLASS_NAME_ACTIVE = 'active';
+ var CLASS_NAME_SLIDE = 'slide';
+ var CLASS_NAME_END = 'carousel-item-end';
+ var CLASS_NAME_START = 'carousel-item-start';
+ var CLASS_NAME_NEXT = 'carousel-item-next';
+ var CLASS_NAME_PREV = 'carousel-item-prev';
+ var CLASS_NAME_POINTER_EVENT = 'pointer-event';
+ var SELECTOR_ACTIVE = '.active';
+ var SELECTOR_ACTIVE_ITEM = '.active.carousel-item';
+ var SELECTOR_ITEM = '.carousel-item';
+ var SELECTOR_ITEM_IMG = '.carousel-item img';
+ var SELECTOR_NEXT_PREV = '.carousel-item-next, .carousel-item-prev';
+ var SELECTOR_INDICATORS = '.carousel-indicators';
+ var SELECTOR_INDICATOR = '[data-bs-target]';
+ var SELECTOR_DATA_SLIDE = '[data-bs-slide], [data-bs-slide-to]';
+ var SELECTOR_DATA_RIDE = '[data-bs-ride="carousel"]';
+ var POINTER_TYPE_TOUCH = 'touch';
+ var POINTER_TYPE_PEN = 'pen';
+ /**
+ * ------------------------------------------------------------------------
+ * Class Definition
+ * ------------------------------------------------------------------------
+ */
+
+ var Carousel = /*#__PURE__*/function (_BaseComponent) {
+ _inheritsLoose(Carousel, _BaseComponent);
+
+ function Carousel(element, config) {
+ var _this;
+
+ _this = _BaseComponent.call(this, element) || this;
+ _this._items = null;
+ _this._interval = null;
+ _this._activeElement = null;
+ _this._isPaused = false;
+ _this._isSliding = false;
+ _this.touchTimeout = null;
+ _this.touchStartX = 0;
+ _this.touchDeltaX = 0;
+ _this._config = _this._getConfig(config);
+ _this._indicatorsElement = SelectorEngine__default['default'].findOne(SELECTOR_INDICATORS, _this._element);
+ _this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0;
+ _this._pointerEvent = Boolean(window.PointerEvent);
+
+ _this._addEventListeners();
+
+ return _this;
+ } // Getters
+
+
+ var _proto = Carousel.prototype;
+
+ // Public
+ _proto.next = function next() {
+ if (!this._isSliding) {
+ this._slide(DIRECTION_NEXT);
+ }
+ };
+
+ _proto.nextWhenVisible = function nextWhenVisible() {
+ // Don't call next when the page isn't visible
+ // or the carousel or its parent isn't visible
+ if (!document.hidden && isVisible(this._element)) {
+ this.next();
+ }
+ };
+
+ _proto.prev = function prev() {
+ if (!this._isSliding) {
+ this._slide(DIRECTION_PREV);
+ }
+ };
+
+ _proto.pause = function pause(event) {
+ if (!event) {
+ this._isPaused = true;
+ }
+
+ if (SelectorEngine__default['default'].findOne(SELECTOR_NEXT_PREV, this._element)) {
+ triggerTransitionEnd(this._element);
+ this.cycle(true);
+ }
+
+ clearInterval(this._interval);
+ this._interval = null;
+ };
+
+ _proto.cycle = function cycle(event) {
+ if (!event) {
+ this._isPaused = false;
+ }
+
+ if (this._interval) {
+ clearInterval(this._interval);
+ this._interval = null;
+ }
+
+ if (this._config && this._config.interval && !this._isPaused) {
+ this._updateInterval();
+
+ this._interval = setInterval((document.visibilityState ? this.nextWhenVisible : this.next).bind(this), this._config.interval);
+ }
+ };
+
+ _proto.to = function to(index) {
+ var _this2 = this;
+
+ this._activeElement = SelectorEngine__default['default'].findOne(SELECTOR_ACTIVE_ITEM, this._element);
+
+ var activeIndex = this._getItemIndex(this._activeElement);
+
+ if (index > this._items.length - 1 || index < 0) {
+ return;
+ }
+
+ if (this._isSliding) {
+ EventHandler__default['default'].one(this._element, EVENT_SLID, function () {
+ return _this2.to(index);
+ });
+ return;
+ }
+
+ if (activeIndex === index) {
+ this.pause();
+ this.cycle();
+ return;
+ }
+
+ var direction = index > activeIndex ? DIRECTION_NEXT : DIRECTION_PREV;
+
+ this._slide(direction, this._items[index]);
+ };
+
+ _proto.dispose = function dispose() {
+ _BaseComponent.prototype.dispose.call(this);
+
+ EventHandler__default['default'].off(this._element, EVENT_KEY);
+ this._items = null;
+ this._config = null;
+ this._interval = null;
+ this._isPaused = null;
+ this._isSliding = null;
+ this._activeElement = null;
+ this._indicatorsElement = null;
+ } // Private
+ ;
+
+ _proto._getConfig = function _getConfig(config) {
+ config = _extends({}, Default, config);
+ typeCheckConfig(NAME, config, DefaultType);
+ return config;
+ };
+
+ _proto._handleSwipe = function _handleSwipe() {
+ var absDeltax = Math.abs(this.touchDeltaX);
+
+ if (absDeltax <= SWIPE_THRESHOLD) {
+ return;
+ }
+
+ var direction = absDeltax / this.touchDeltaX;
+ this.touchDeltaX = 0; // swipe left
+
+ if (direction > 0) {
+ if (isRTL) {
+ this.next();
+ } else {
+ this.prev();
+ }
+ } // swipe right
+
+
+ if (direction < 0) {
+ if (isRTL) {
+ this.prev();
+ } else {
+ this.next();
+ }
+ }
+ };
+
+ _proto._addEventListeners = function _addEventListeners() {
+ var _this3 = this;
+
+ if (this._config.keyboard) {
+ EventHandler__default['default'].on(this._element, EVENT_KEYDOWN, function (event) {
+ return _this3._keydown(event);
+ });
+ }
+
+ if (this._config.pause === 'hover') {
+ EventHandler__default['default'].on(this._element, EVENT_MOUSEENTER, function (event) {
+ return _this3.pause(event);
+ });
+ EventHandler__default['default'].on(this._element, EVENT_MOUSELEAVE, function (event) {
+ return _this3.cycle(event);
+ });
+ }
+
+ if (this._config.touch && this._touchSupported) {
+ this._addTouchEventListeners();
+ }
+ };
+
+ _proto._addTouchEventListeners = function _addTouchEventListeners() {
+ var _this4 = this;
+
+ var start = function start(event) {
+ if (_this4._pointerEvent && (event.pointerType === POINTER_TYPE_PEN || event.pointerType === POINTER_TYPE_TOUCH)) {
+ _this4.touchStartX = event.clientX;
+ } else if (!_this4._pointerEvent) {
+ _this4.touchStartX = event.touches[0].clientX;
+ }
+ };
+
+ var move = function move(event) {
+ // ensure swiping with one touch and not pinching
+ if (event.touches && event.touches.length > 1) {
+ _this4.touchDeltaX = 0;
+ } else {
+ _this4.touchDeltaX = event.touches[0].clientX - _this4.touchStartX;
+ }
+ };
+
+ var end = function end(event) {
+ if (_this4._pointerEvent && (event.pointerType === POINTER_TYPE_PEN || event.pointerType === POINTER_TYPE_TOUCH)) {
+ _this4.touchDeltaX = event.clientX - _this4.touchStartX;
+ }
+
+ _this4._handleSwipe();
+
+ if (_this4._config.pause === 'hover') {
+ // If it's a touch-enabled device, mouseenter/leave are fired as
+ // part of the mouse compatibility events on first tap - the carousel
+ // would stop cycling until user tapped out of it;
+ // here, we listen for touchend, explicitly pause the carousel
+ // (as if it's the second time we tap on it, mouseenter compat event
+ // is NOT fired) and after a timeout (to allow for mouse compatibility
+ // events to fire) we explicitly restart cycling
+ _this4.pause();
+
+ if (_this4.touchTimeout) {
+ clearTimeout(_this4.touchTimeout);
+ }
+
+ _this4.touchTimeout = setTimeout(function (event) {
+ return _this4.cycle(event);
+ }, TOUCHEVENT_COMPAT_WAIT + _this4._config.interval);
+ }
+ };
+
+ SelectorEngine__default['default'].find(SELECTOR_ITEM_IMG, this._element).forEach(function (itemImg) {
+ EventHandler__default['default'].on(itemImg, EVENT_DRAG_START, function (e) {
+ return e.preventDefault();
+ });
+ });
+
+ if (this._pointerEvent) {
+ EventHandler__default['default'].on(this._element, EVENT_POINTERDOWN, function (event) {
+ return start(event);
+ });
+ EventHandler__default['default'].on(this._element, EVENT_POINTERUP, function (event) {
+ return end(event);
+ });
+
+ this._element.classList.add(CLASS_NAME_POINTER_EVENT);
+ } else {
+ EventHandler__default['default'].on(this._element, EVENT_TOUCHSTART, function (event) {
+ return start(event);
+ });
+ EventHandler__default['default'].on(this._element, EVENT_TOUCHMOVE, function (event) {
+ return move(event);
+ });
+ EventHandler__default['default'].on(this._element, EVENT_TOUCHEND, function (event) {
+ return end(event);
+ });
+ }
+ };
+
+ _proto._keydown = function _keydown(event) {
+ if (/input|textarea/i.test(event.target.tagName)) {
+ return;
+ }
+
+ if (event.key === ARROW_LEFT_KEY) {
+ event.preventDefault();
+
+ if (isRTL) {
+ this.next();
+ } else {
+ this.prev();
+ }
+ } else if (event.key === ARROW_RIGHT_KEY) {
+ event.preventDefault();
+
+ if (isRTL) {
+ this.prev();
+ } else {
+ this.next();
+ }
+ }
+ };
+
+ _proto._getItemIndex = function _getItemIndex(element) {
+ this._items = element && element.parentNode ? SelectorEngine__default['default'].find(SELECTOR_ITEM, element.parentNode) : [];
+ return this._items.indexOf(element);
+ };
+
+ _proto._getItemByDirection = function _getItemByDirection(direction, activeElement) {
+ var isNextDirection = direction === DIRECTION_NEXT;
+ var isPrevDirection = direction === DIRECTION_PREV;
+
+ var activeIndex = this._getItemIndex(activeElement);
+
+ var lastItemIndex = this._items.length - 1;
+ var isGoingToWrap = isPrevDirection && activeIndex === 0 || isNextDirection && activeIndex === lastItemIndex;
+
+ if (isGoingToWrap && !this._config.wrap) {
+ return activeElement;
+ }
+
+ var delta = direction === DIRECTION_PREV ? -1 : 1;
+ var itemIndex = (activeIndex + delta) % this._items.length;
+ return itemIndex === -1 ? this._items[this._items.length - 1] : this._items[itemIndex];
+ };
+
+ _proto._triggerSlideEvent = function _triggerSlideEvent(relatedTarget, eventDirectionName) {
+ var targetIndex = this._getItemIndex(relatedTarget);
+
+ var fromIndex = this._getItemIndex(SelectorEngine__default['default'].findOne(SELECTOR_ACTIVE_ITEM, this._element));
+
+ return EventHandler__default['default'].trigger(this._element, EVENT_SLIDE, {
+ relatedTarget: relatedTarget,
+ direction: eventDirectionName,
+ from: fromIndex,
+ to: targetIndex
+ });
+ };
+
+ _proto._setActiveIndicatorElement = function _setActiveIndicatorElement(element) {
+ if (this._indicatorsElement) {
+ var activeIndicator = SelectorEngine__default['default'].findOne(SELECTOR_ACTIVE, this._indicatorsElement);
+ activeIndicator.classList.remove(CLASS_NAME_ACTIVE);
+ activeIndicator.removeAttribute('aria-current');
+ var indicators = SelectorEngine__default['default'].find(SELECTOR_INDICATOR, this._indicatorsElement);
+
+ for (var i = 0; i < indicators.length; i++) {
+ if (Number.parseInt(indicators[i].getAttribute('data-bs-slide-to'), 10) === this._getItemIndex(element)) {
+ indicators[i].classList.add(CLASS_NAME_ACTIVE);
+ indicators[i].setAttribute('aria-current', 'true');
+ break;
+ }
+ }
+ }
+ };
+
+ _proto._updateInterval = function _updateInterval() {
+ var element = this._activeElement || SelectorEngine__default['default'].findOne(SELECTOR_ACTIVE_ITEM, this._element);
+
+ if (!element) {
+ return;
+ }
+
+ var elementInterval = Number.parseInt(element.getAttribute('data-bs-interval'), 10);
+
+ if (elementInterval) {
+ this._config.defaultInterval = this._config.defaultInterval || this._config.interval;
+ this._config.interval = elementInterval;
+ } else {
+ this._config.interval = this._config.defaultInterval || this._config.interval;
+ }
+ };
+
+ _proto._slide = function _slide(direction, element) {
+ var _this5 = this;
+
+ var activeElement = SelectorEngine__default['default'].findOne(SELECTOR_ACTIVE_ITEM, this._element);
+
+ var activeElementIndex = this._getItemIndex(activeElement);
+
+ var nextElement = element || activeElement && this._getItemByDirection(direction, activeElement);
+
+ var nextElementIndex = this._getItemIndex(nextElement);
+
+ var isCycling = Boolean(this._interval);
+ var directionalClassName = direction === DIRECTION_NEXT ? CLASS_NAME_START : CLASS_NAME_END;
+ var orderClassName = direction === DIRECTION_NEXT ? CLASS_NAME_NEXT : CLASS_NAME_PREV;
+ var eventDirectionName = direction === DIRECTION_NEXT ? DIRECTION_LEFT : DIRECTION_RIGHT;
+
+ if (nextElement && nextElement.classList.contains(CLASS_NAME_ACTIVE)) {
+ this._isSliding = false;
+ return;
+ }
+
+ var slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName);
+
+ if (slideEvent.defaultPrevented) {
+ return;
+ }
+
+ if (!activeElement || !nextElement) {
+ // Some weirdness is happening, so we bail
+ return;
+ }
+
+ this._isSliding = true;
+
+ if (isCycling) {
+ this.pause();
+ }
+
+ this._setActiveIndicatorElement(nextElement);
+
+ this._activeElement = nextElement;
+
+ if (this._element.classList.contains(CLASS_NAME_SLIDE)) {
+ nextElement.classList.add(orderClassName);
+ reflow(nextElement);
+ activeElement.classList.add(directionalClassName);
+ nextElement.classList.add(directionalClassName);
+ var transitionDuration = getTransitionDurationFromElement(activeElement);
+ EventHandler__default['default'].one(activeElement, 'transitionend', function () {
+ nextElement.classList.remove(directionalClassName, orderClassName);
+ nextElement.classList.add(CLASS_NAME_ACTIVE);
+ activeElement.classList.remove(CLASS_NAME_ACTIVE, orderClassName, directionalClassName);
+ _this5._isSliding = false;
+ setTimeout(function () {
+ EventHandler__default['default'].trigger(_this5._element, EVENT_SLID, {
+ relatedTarget: nextElement,
+ direction: eventDirectionName,
+ from: activeElementIndex,
+ to: nextElementIndex
+ });
+ }, 0);
+ });
+ emulateTransitionEnd(activeElement, transitionDuration);
+ } else {
+ activeElement.classList.remove(CLASS_NAME_ACTIVE);
+ nextElement.classList.add(CLASS_NAME_ACTIVE);
+ this._isSliding = false;
+ EventHandler__default['default'].trigger(this._element, EVENT_SLID, {
+ relatedTarget: nextElement,
+ direction: eventDirectionName,
+ from: activeElementIndex,
+ to: nextElementIndex
+ });
+ }
+
+ if (isCycling) {
+ this.cycle();
+ }
+ } // Static
+ ;
+
+ Carousel.carouselInterface = function carouselInterface(element, config) {
+ var data = Data__default['default'].getData(element, DATA_KEY);
+
+ var _config = _extends({}, Default, Manipulator__default['default'].getDataAttributes(element));
+
+ if (typeof config === 'object') {
+ _config = _extends({}, _config, config);
+ }
+
+ var action = typeof config === 'string' ? config : _config.slide;
+
+ if (!data) {
+ data = new Carousel(element, _config);
+ }
+
+ if (typeof config === 'number') {
+ data.to(config);
+ } else if (typeof action === 'string') {
+ if (typeof data[action] === 'undefined') {
+ throw new TypeError("No method named \"" + action + "\"");
+ }
+
+ data[action]();
+ } else if (_config.interval && _config.ride) {
+ data.pause();
+ data.cycle();
+ }
+ };
+
+ Carousel.jQueryInterface = function jQueryInterface(config) {
+ return this.each(function () {
+ Carousel.carouselInterface(this, config);
+ });
+ };
+
+ Carousel.dataApiClickHandler = function dataApiClickHandler(event) {
+ var target = getElementFromSelector(this);
+
+ if (!target || !target.classList.contains(CLASS_NAME_CAROUSEL)) {
+ return;
+ }
+
+ var config = _extends({}, Manipulator__default['default'].getDataAttributes(target), Manipulator__default['default'].getDataAttributes(this));
+
+ var slideIndex = this.getAttribute('data-bs-slide-to');
+
+ if (slideIndex) {
+ config.interval = false;
+ }
+
+ Carousel.carouselInterface(target, config);
+
+ if (slideIndex) {
+ Data__default['default'].getData(target, DATA_KEY).to(slideIndex);
+ }
+
+ event.preventDefault();
+ };
+
+ _createClass(Carousel, null, [{
+ key: "Default",
+ get: function get() {
+ return Default;
+ }
+ }, {
+ key: "DATA_KEY",
+ get: function get() {
+ return DATA_KEY;
+ }
+ }]);
+
+ return Carousel;
+ }(BaseComponent__default['default']);
+ /**
+ * ------------------------------------------------------------------------
+ * Data Api implementation
+ * ------------------------------------------------------------------------
+ */
+
+
+ EventHandler__default['default'].on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_SLIDE, Carousel.dataApiClickHandler);
+ EventHandler__default['default'].on(window, EVENT_LOAD_DATA_API, function () {
+ var carousels = SelectorEngine__default['default'].find(SELECTOR_DATA_RIDE);
+
+ for (var i = 0, len = carousels.length; i < len; i++) {
+ Carousel.carouselInterface(carousels[i], Data__default['default'].getData(carousels[i], DATA_KEY));
+ }
+ });
+ /**
+ * ------------------------------------------------------------------------
+ * jQuery
+ * ------------------------------------------------------------------------
+ * add .Carousel to jQuery only if jQuery is present
+ */
+
+ defineJQueryPlugin(NAME, Carousel);
+
+ return Carousel;
+
+})));
+//# sourceMappingURL=carousel.js.map
+/*!
+ * Bootstrap collapse.js v5.0.0-beta2 (https://getbootstrap.com/)
+ * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
+ */
+(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./dom/data.js'), require('./dom/event-handler.js'), require('./dom/manipulator.js'), require('./dom/selector-engine.js'), require('./base-component.js')) :
+ typeof define === 'function' && define.amd ? define(['./dom/data', './dom/event-handler', './dom/manipulator', './dom/selector-engine', './base-component'], factory) :
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Collapse = factory(global.Data, global.EventHandler, global.Manipulator, global.SelectorEngine, global.Base));
+}(this, (function (Data, EventHandler, Manipulator, SelectorEngine, BaseComponent) { 'use strict';
+
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
+
+ var Data__default = /*#__PURE__*/_interopDefaultLegacy(Data);
+ var EventHandler__default = /*#__PURE__*/_interopDefaultLegacy(EventHandler);
+ var Manipulator__default = /*#__PURE__*/_interopDefaultLegacy(Manipulator);
+ var SelectorEngine__default = /*#__PURE__*/_interopDefaultLegacy(SelectorEngine);
+ var BaseComponent__default = /*#__PURE__*/_interopDefaultLegacy(BaseComponent);
+
+ function _defineProperties(target, props) {
+ for (var i = 0; i < props.length; i++) {
+ var descriptor = props[i];
+ descriptor.enumerable = descriptor.enumerable || false;
+ descriptor.configurable = true;
+ if ("value" in descriptor) descriptor.writable = true;
+ Object.defineProperty(target, descriptor.key, descriptor);
+ }
+ }
+
+ function _createClass(Constructor, protoProps, staticProps) {
+ if (protoProps) _defineProperties(Constructor.prototype, protoProps);
+ if (staticProps) _defineProperties(Constructor, staticProps);
+ return Constructor;
+ }
+
+ function _extends() {
+ _extends = Object.assign || function (target) {
+ for (var i = 1; i < arguments.length; i++) {
+ var source = arguments[i];
+
+ for (var key in source) {
+ if (Object.prototype.hasOwnProperty.call(source, key)) {
+ target[key] = source[key];
+ }
+ }
+ }
+
+ return target;
+ };
+
+ return _extends.apply(this, arguments);
+ }
+
+ function _inheritsLoose(subClass, superClass) {
+ subClass.prototype = Object.create(superClass.prototype);
+ subClass.prototype.constructor = subClass;
+
+ _setPrototypeOf(subClass, superClass);
+ }
+
+ function _setPrototypeOf(o, p) {
+ _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {
+ o.__proto__ = p;
+ return o;
+ };
+
+ return _setPrototypeOf(o, p);
+ }
+
+ /**
+ * --------------------------------------------------------------------------
+ * Bootstrap (v5.0.0-beta2): util/index.js
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
+ * --------------------------------------------------------------------------
+ */
+ var MILLISECONDS_MULTIPLIER = 1000;
+ var TRANSITION_END = 'transitionend'; // Shoutout AngusCroll (https://goo.gl/pxwQGp)
+
+ var toType = function toType(obj) {
+ if (obj === null || obj === undefined) {
+ return "" + obj;
+ }
+
+ return {}.toString.call(obj).match(/\s([a-z]+)/i)[1].toLowerCase();
+ };
+
+ var getSelector = function getSelector(element) {
+ var selector = element.getAttribute('data-bs-target');
+
+ if (!selector || selector === '#') {
+ var hrefAttr = element.getAttribute('href'); // The only valid content that could double as a selector are IDs or classes,
+ // so everything starting with `#` or `.`. If a "real" URL is used as the selector,
+ // `document.querySelector` will rightfully complain it is invalid.
+ // See https://github.com/twbs/bootstrap/issues/32273
+
+ if (!hrefAttr || !hrefAttr.includes('#') && !hrefAttr.startsWith('.')) {
+ return null;
+ } // Just in case some CMS puts out a full URL with the anchor appended
+
+
+ if (hrefAttr.includes('#') && !hrefAttr.startsWith('#')) {
+ hrefAttr = '#' + hrefAttr.split('#')[1];
+ }
+
+ selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : null;
+ }
+
+ return selector;
+ };
+
+ var getSelectorFromElement = function getSelectorFromElement(element) {
+ var selector = getSelector(element);
+
+ if (selector) {
+ return document.querySelector(selector) ? selector : null;
+ }
+
+ return null;
+ };
+
+ var getElementFromSelector = function getElementFromSelector(element) {
+ var selector = getSelector(element);
+ return selector ? document.querySelector(selector) : null;
+ };
+
+ var getTransitionDurationFromElement = function getTransitionDurationFromElement(element) {
+ if (!element) {
+ return 0;
+ } // Get transition-duration of the element
+
+
+ var _window$getComputedSt = window.getComputedStyle(element),
+ transitionDuration = _window$getComputedSt.transitionDuration,
+ transitionDelay = _window$getComputedSt.transitionDelay;
+
+ var floatTransitionDuration = Number.parseFloat(transitionDuration);
+ var floatTransitionDelay = Number.parseFloat(transitionDelay); // Return 0 if element or transition duration is not found
+
+ if (!floatTransitionDuration && !floatTransitionDelay) {
+ return 0;
+ } // If multiple durations are defined, take the first
+
+
+ transitionDuration = transitionDuration.split(',')[0];
+ transitionDelay = transitionDelay.split(',')[0];
+ return (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER;
+ };
+
+ var triggerTransitionEnd = function triggerTransitionEnd(element) {
+ element.dispatchEvent(new Event(TRANSITION_END));
+ };
+
+ var isElement = function isElement(obj) {
+ return (obj[0] || obj).nodeType;
+ };
+
+ var emulateTransitionEnd = function emulateTransitionEnd(element, duration) {
+ var called = false;
+ var durationPadding = 5;
+ var emulatedDuration = duration + durationPadding;
+
+ function listener() {
+ called = true;
+ element.removeEventListener(TRANSITION_END, listener);
+ }
+
+ element.addEventListener(TRANSITION_END, listener);
+ setTimeout(function () {
+ if (!called) {
+ triggerTransitionEnd(element);
+ }
+ }, emulatedDuration);
+ };
+
+ var typeCheckConfig = function typeCheckConfig(componentName, config, configTypes) {
+ Object.keys(configTypes).forEach(function (property) {
+ var expectedTypes = configTypes[property];
+ var value = config[property];
+ var valueType = value && isElement(value) ? 'element' : toType(value);
+
+ if (!new RegExp(expectedTypes).test(valueType)) {
+ throw new TypeError(componentName.toUpperCase() + ": " + ("Option \"" + property + "\" provided type \"" + valueType + "\" ") + ("but expected type \"" + expectedTypes + "\"."));
+ }
+ });
+ };
+
+ var reflow = function reflow(element) {
+ return element.offsetHeight;
+ };
+
+ var getjQuery = function getjQuery() {
+ var _window = window,
+ jQuery = _window.jQuery;
+
+ if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {
+ return jQuery;
+ }
+
+ return null;
+ };
+
+ var onDOMContentLoaded = function onDOMContentLoaded(callback) {
+ if (document.readyState === 'loading') {
+ document.addEventListener('DOMContentLoaded', callback);
+ } else {
+ callback();
+ }
+ };
+
+ document.documentElement.dir === 'rtl';
+
+ var defineJQueryPlugin = function defineJQueryPlugin(name, plugin) {
+ onDOMContentLoaded(function () {
+ var $ = getjQuery();
+ /* istanbul ignore if */
+
+ if ($) {
+ var JQUERY_NO_CONFLICT = $.fn[name];
+ $.fn[name] = plugin.jQueryInterface;
+ $.fn[name].Constructor = plugin;
+
+ $.fn[name].noConflict = function () {
+ $.fn[name] = JQUERY_NO_CONFLICT;
+ return plugin.jQueryInterface;
+ };
+ }
+ });
+ };
+
+ /**
+ * ------------------------------------------------------------------------
+ * Constants
+ * ------------------------------------------------------------------------
+ */
+
+ var NAME = 'collapse';
+ var DATA_KEY = 'bs.collapse';
+ var EVENT_KEY = "." + DATA_KEY;
+ var DATA_API_KEY = '.data-api';
+ var Default = {
+ toggle: true,
+ parent: ''
+ };
+ var DefaultType = {
+ toggle: 'boolean',
+ parent: '(string|element)'
+ };
+ var EVENT_SHOW = "show" + EVENT_KEY;
+ var EVENT_SHOWN = "shown" + EVENT_KEY;
+ var EVENT_HIDE = "hide" + EVENT_KEY;
+ var EVENT_HIDDEN = "hidden" + EVENT_KEY;
+ var EVENT_CLICK_DATA_API = "click" + EVENT_KEY + DATA_API_KEY;
+ var CLASS_NAME_SHOW = 'show';
+ var CLASS_NAME_COLLAPSE = 'collapse';
+ var CLASS_NAME_COLLAPSING = 'collapsing';
+ var CLASS_NAME_COLLAPSED = 'collapsed';
+ var WIDTH = 'width';
+ var HEIGHT = 'height';
+ var SELECTOR_ACTIVES = '.show, .collapsing';
+ var SELECTOR_DATA_TOGGLE = '[data-bs-toggle="collapse"]';
+ /**
+ * ------------------------------------------------------------------------
+ * Class Definition
+ * ------------------------------------------------------------------------
+ */
+
+ var Collapse = /*#__PURE__*/function (_BaseComponent) {
+ _inheritsLoose(Collapse, _BaseComponent);
+
+ function Collapse(element, config) {
+ var _this;
+
+ _this = _BaseComponent.call(this, element) || this;
+ _this._isTransitioning = false;
+ _this._config = _this._getConfig(config);
+ _this._triggerArray = SelectorEngine__default['default'].find(SELECTOR_DATA_TOGGLE + "[href=\"#" + element.id + "\"]," + (SELECTOR_DATA_TOGGLE + "[data-bs-target=\"#" + element.id + "\"]"));
+ var toggleList = SelectorEngine__default['default'].find(SELECTOR_DATA_TOGGLE);
+
+ for (var i = 0, len = toggleList.length; i < len; i++) {
+ var elem = toggleList[i];
+ var selector = getSelectorFromElement(elem);
+ var filterElement = SelectorEngine__default['default'].find(selector).filter(function (foundElem) {
+ return foundElem === element;
+ });
+
+ if (selector !== null && filterElement.length) {
+ _this._selector = selector;
+
+ _this._triggerArray.push(elem);
+ }
+ }
+
+ _this._parent = _this._config.parent ? _this._getParent() : null;
+
+ if (!_this._config.parent) {
+ _this._addAriaAndCollapsedClass(_this._element, _this._triggerArray);
+ }
+
+ if (_this._config.toggle) {
+ _this.toggle();
+ }
+
+ return _this;
+ } // Getters
+
+
+ var _proto = Collapse.prototype;
+
+ // Public
+ _proto.toggle = function toggle() {
+ if (this._element.classList.contains(CLASS_NAME_SHOW)) {
+ this.hide();
+ } else {
+ this.show();
+ }
+ };
+
+ _proto.show = function show() {
+ var _this2 = this;
+
+ if (this._isTransitioning || this._element.classList.contains(CLASS_NAME_SHOW)) {
+ return;
+ }
+
+ var actives;
+ var activesData;
+
+ if (this._parent) {
+ actives = SelectorEngine__default['default'].find(SELECTOR_ACTIVES, this._parent).filter(function (elem) {
+ if (typeof _this2._config.parent === 'string') {
+ return elem.getAttribute('data-bs-parent') === _this2._config.parent;
+ }
+
+ return elem.classList.contains(CLASS_NAME_COLLAPSE);
+ });
+
+ if (actives.length === 0) {
+ actives = null;
+ }
+ }
+
+ var container = SelectorEngine__default['default'].findOne(this._selector);
+
+ if (actives) {
+ var tempActiveData = actives.find(function (elem) {
+ return container !== elem;
+ });
+ activesData = tempActiveData ? Data__default['default'].getData(tempActiveData, DATA_KEY) : null;
+
+ if (activesData && activesData._isTransitioning) {
+ return;
+ }
+ }
+
+ var startEvent = EventHandler__default['default'].trigger(this._element, EVENT_SHOW);
+
+ if (startEvent.defaultPrevented) {
+ return;
+ }
+
+ if (actives) {
+ actives.forEach(function (elemActive) {
+ if (container !== elemActive) {
+ Collapse.collapseInterface(elemActive, 'hide');
+ }
+
+ if (!activesData) {
+ Data__default['default'].setData(elemActive, DATA_KEY, null);
+ }
+ });
+ }
+
+ var dimension = this._getDimension();
+
+ this._element.classList.remove(CLASS_NAME_COLLAPSE);
+
+ this._element.classList.add(CLASS_NAME_COLLAPSING);
+
+ this._element.style[dimension] = 0;
+
+ if (this._triggerArray.length) {
+ this._triggerArray.forEach(function (element) {
+ element.classList.remove(CLASS_NAME_COLLAPSED);
+ element.setAttribute('aria-expanded', true);
+ });
+ }
+
+ this.setTransitioning(true);
+
+ var complete = function complete() {
+ _this2._element.classList.remove(CLASS_NAME_COLLAPSING);
+
+ _this2._element.classList.add(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW);
+
+ _this2._element.style[dimension] = '';
+
+ _this2.setTransitioning(false);
+
+ EventHandler__default['default'].trigger(_this2._element, EVENT_SHOWN);
+ };
+
+ var capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1);
+ var scrollSize = "scroll" + capitalizedDimension;
+ var transitionDuration = getTransitionDurationFromElement(this._element);
+ EventHandler__default['default'].one(this._element, 'transitionend', complete);
+ emulateTransitionEnd(this._element, transitionDuration);
+ this._element.style[dimension] = this._element[scrollSize] + "px";
+ };
+
+ _proto.hide = function hide() {
+ var _this3 = this;
+
+ if (this._isTransitioning || !this._element.classList.contains(CLASS_NAME_SHOW)) {
+ return;
+ }
+
+ var startEvent = EventHandler__default['default'].trigger(this._element, EVENT_HIDE);
+
+ if (startEvent.defaultPrevented) {
+ return;
+ }
+
+ var dimension = this._getDimension();
+
+ this._element.style[dimension] = this._element.getBoundingClientRect()[dimension] + "px";
+ reflow(this._element);
+
+ this._element.classList.add(CLASS_NAME_COLLAPSING);
+
+ this._element.classList.remove(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW);
+
+ var triggerArrayLength = this._triggerArray.length;
+
+ if (triggerArrayLength > 0) {
+ for (var i = 0; i < triggerArrayLength; i++) {
+ var trigger = this._triggerArray[i];
+ var elem = getElementFromSelector(trigger);
+
+ if (elem && !elem.classList.contains(CLASS_NAME_SHOW)) {
+ trigger.classList.add(CLASS_NAME_COLLAPSED);
+ trigger.setAttribute('aria-expanded', false);
+ }
+ }
+ }
+
+ this.setTransitioning(true);
+
+ var complete = function complete() {
+ _this3.setTransitioning(false);
+
+ _this3._element.classList.remove(CLASS_NAME_COLLAPSING);
+
+ _this3._element.classList.add(CLASS_NAME_COLLAPSE);
+
+ EventHandler__default['default'].trigger(_this3._element, EVENT_HIDDEN);
+ };
+
+ this._element.style[dimension] = '';
+ var transitionDuration = getTransitionDurationFromElement(this._element);
+ EventHandler__default['default'].one(this._element, 'transitionend', complete);
+ emulateTransitionEnd(this._element, transitionDuration);
+ };
+
+ _proto.setTransitioning = function setTransitioning(isTransitioning) {
+ this._isTransitioning = isTransitioning;
+ };
+
+ _proto.dispose = function dispose() {
+ _BaseComponent.prototype.dispose.call(this);
+
+ this._config = null;
+ this._parent = null;
+ this._triggerArray = null;
+ this._isTransitioning = null;
+ } // Private
+ ;
+
+ _proto._getConfig = function _getConfig(config) {
+ config = _extends({}, Default, config);
+ config.toggle = Boolean(config.toggle); // Coerce string values
+
+ typeCheckConfig(NAME, config, DefaultType);
+ return config;
+ };
+
+ _proto._getDimension = function _getDimension() {
+ return this._element.classList.contains(WIDTH) ? WIDTH : HEIGHT;
+ };
+
+ _proto._getParent = function _getParent() {
+ var _this4 = this;
+
+ var parent = this._config.parent;
+
+ if (isElement(parent)) {
+ // it's a jQuery object
+ if (typeof parent.jquery !== 'undefined' || typeof parent[0] !== 'undefined') {
+ parent = parent[0];
+ }
+ } else {
+ parent = SelectorEngine__default['default'].findOne(parent);
+ }
+
+ var selector = SELECTOR_DATA_TOGGLE + "[data-bs-parent=\"" + parent + "\"]";
+ SelectorEngine__default['default'].find(selector, parent).forEach(function (element) {
+ var selected = getElementFromSelector(element);
+
+ _this4._addAriaAndCollapsedClass(selected, [element]);
+ });
+ return parent;
+ };
+
+ _proto._addAriaAndCollapsedClass = function _addAriaAndCollapsedClass(element, triggerArray) {
+ if (!element || !triggerArray.length) {
+ return;
+ }
+
+ var isOpen = element.classList.contains(CLASS_NAME_SHOW);
+ triggerArray.forEach(function (elem) {
+ if (isOpen) {
+ elem.classList.remove(CLASS_NAME_COLLAPSED);
+ } else {
+ elem.classList.add(CLASS_NAME_COLLAPSED);
+ }
+
+ elem.setAttribute('aria-expanded', isOpen);
+ });
+ } // Static
+ ;
+
+ Collapse.collapseInterface = function collapseInterface(element, config) {
+ var data = Data__default['default'].getData(element, DATA_KEY);
+
+ var _config = _extends({}, Default, Manipulator__default['default'].getDataAttributes(element), typeof config === 'object' && config ? config : {});
+
+ if (!data && _config.toggle && typeof config === 'string' && /show|hide/.test(config)) {
+ _config.toggle = false;
+ }
+
+ if (!data) {
+ data = new Collapse(element, _config);
+ }
+
+ if (typeof config === 'string') {
+ if (typeof data[config] === 'undefined') {
+ throw new TypeError("No method named \"" + config + "\"");
+ }
+
+ data[config]();
+ }
+ };
+
+ Collapse.jQueryInterface = function jQueryInterface(config) {
+ return this.each(function () {
+ Collapse.collapseInterface(this, config);
+ });
+ };
+
+ _createClass(Collapse, null, [{
+ key: "Default",
+ get: function get() {
+ return Default;
+ }
+ }, {
+ key: "DATA_KEY",
+ get: function get() {
+ return DATA_KEY;
+ }
+ }]);
+
+ return Collapse;
+ }(BaseComponent__default['default']);
+ /**
+ * ------------------------------------------------------------------------
+ * Data Api implementation
+ * ------------------------------------------------------------------------
+ */
+
+
+ EventHandler__default['default'].on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {
+ // preventDefault only for <a> elements (which change the URL) not inside the collapsible element
+ if (event.target.tagName === 'A' || event.delegateTarget && event.delegateTarget.tagName === 'A') {
+ event.preventDefault();
+ }
+
+ var triggerData = Manipulator__default['default'].getDataAttributes(this);
+ var selector = getSelectorFromElement(this);
+ var selectorElements = SelectorEngine__default['default'].find(selector);
+ selectorElements.forEach(function (element) {
+ var data = Data__default['default'].getData(element, DATA_KEY);
+ var config;
+
+ if (data) {
+ // update parent attribute
+ if (data._parent === null && typeof triggerData.parent === 'string') {
+ data._config.parent = triggerData.parent;
+ data._parent = data._getParent();
+ }
+
+ config = 'toggle';
+ } else {
+ config = triggerData;
+ }
+
+ Collapse.collapseInterface(element, config);
+ });
+ });
+ /**
+ * ------------------------------------------------------------------------
+ * jQuery
+ * ------------------------------------------------------------------------
+ * add .Collapse to jQuery only if jQuery is present
+ */
+
+ defineJQueryPlugin(NAME, Collapse);
+
+ return Collapse;
+
+})));
+//# sourceMappingURL=collapse.js.map
+/*!
+ * Bootstrap dropdown.js v5.0.0-beta2 (https://getbootstrap.com/)
+ * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
+ */
+(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('@popperjs/core'), require('./dom/data.js'), require('./dom/event-handler.js'), require('./dom/manipulator.js'), require('./dom/selector-engine.js'), require('./base-component.js')) :
+ typeof define === 'function' && define.amd ? define(['@popperjs/core', './dom/data', './dom/event-handler', './dom/manipulator', './dom/selector-engine', './base-component'], factory) :
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Dropdown = factory(global.Popper, global.Data, global.EventHandler, global.Manipulator, global.SelectorEngine, global.Base));
+}(this, (function (Popper, Data, EventHandler, Manipulator, SelectorEngine, BaseComponent) { 'use strict';
+
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
+
+ function _interopNamespace(e) {
+ if (e && e.__esModule) return e;
+ var n = Object.create(null);
+ if (e) {
+ Object.keys(e).forEach(function (k) {
+ if (k !== 'default') {
+ var d = Object.getOwnPropertyDescriptor(e, k);
+ Object.defineProperty(n, k, d.get ? d : {
+ enumerable: true,
+ get: function () {
+ return e[k];
+ }
+ });
+ }
+ });
+ }
+ n['default'] = e;
+ return Object.freeze(n);
+ }
+
+ var Popper__namespace = /*#__PURE__*/_interopNamespace(Popper);
+ var Data__default = /*#__PURE__*/_interopDefaultLegacy(Data);
+ var EventHandler__default = /*#__PURE__*/_interopDefaultLegacy(EventHandler);
+ var Manipulator__default = /*#__PURE__*/_interopDefaultLegacy(Manipulator);
+ var SelectorEngine__default = /*#__PURE__*/_interopDefaultLegacy(SelectorEngine);
+ var BaseComponent__default = /*#__PURE__*/_interopDefaultLegacy(BaseComponent);
+
+ function _defineProperties(target, props) {
+ for (var i = 0; i < props.length; i++) {
+ var descriptor = props[i];
+ descriptor.enumerable = descriptor.enumerable || false;
+ descriptor.configurable = true;
+ if ("value" in descriptor) descriptor.writable = true;
+ Object.defineProperty(target, descriptor.key, descriptor);
+ }
+ }
+
+ function _createClass(Constructor, protoProps, staticProps) {
+ if (protoProps) _defineProperties(Constructor.prototype, protoProps);
+ if (staticProps) _defineProperties(Constructor, staticProps);
+ return Constructor;
+ }
+
+ function _extends() {
+ _extends = Object.assign || function (target) {
+ for (var i = 1; i < arguments.length; i++) {
+ var source = arguments[i];
+
+ for (var key in source) {
+ if (Object.prototype.hasOwnProperty.call(source, key)) {
+ target[key] = source[key];
+ }
+ }
+ }
+
+ return target;
+ };
+
+ return _extends.apply(this, arguments);
+ }
+
+ function _inheritsLoose(subClass, superClass) {
+ subClass.prototype = Object.create(superClass.prototype);
+ subClass.prototype.constructor = subClass;
+
+ _setPrototypeOf(subClass, superClass);
+ }
+
+ function _setPrototypeOf(o, p) {
+ _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {
+ o.__proto__ = p;
+ return o;
+ };
+
+ return _setPrototypeOf(o, p);
+ }
+
+ /**
+ * --------------------------------------------------------------------------
+ * Bootstrap (v5.0.0-beta2): util/index.js
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
+ * --------------------------------------------------------------------------
+ */
+
+ var toType = function toType(obj) {
+ if (obj === null || obj === undefined) {
+ return "" + obj;
+ }
+
+ return {}.toString.call(obj).match(/\s([a-z]+)/i)[1].toLowerCase();
+ };
+
+ var getSelector = function getSelector(element) {
+ var selector = element.getAttribute('data-bs-target');
+
+ if (!selector || selector === '#') {
+ var hrefAttr = element.getAttribute('href'); // The only valid content that could double as a selector are IDs or classes,
+ // so everything starting with `#` or `.`. If a "real" URL is used as the selector,
+ // `document.querySelector` will rightfully complain it is invalid.
+ // See https://github.com/twbs/bootstrap/issues/32273
+
+ if (!hrefAttr || !hrefAttr.includes('#') && !hrefAttr.startsWith('.')) {
+ return null;
+ } // Just in case some CMS puts out a full URL with the anchor appended
+
+
+ if (hrefAttr.includes('#') && !hrefAttr.startsWith('#')) {
+ hrefAttr = '#' + hrefAttr.split('#')[1];
+ }
+
+ selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : null;
+ }
+
+ return selector;
+ };
+
+ var getElementFromSelector = function getElementFromSelector(element) {
+ var selector = getSelector(element);
+ return selector ? document.querySelector(selector) : null;
+ };
+
+ var isElement = function isElement(obj) {
+ return (obj[0] || obj).nodeType;
+ };
+
+ var typeCheckConfig = function typeCheckConfig(componentName, config, configTypes) {
+ Object.keys(configTypes).forEach(function (property) {
+ var expectedTypes = configTypes[property];
+ var value = config[property];
+ var valueType = value && isElement(value) ? 'element' : toType(value);
+
+ if (!new RegExp(expectedTypes).test(valueType)) {
+ throw new TypeError(componentName.toUpperCase() + ": " + ("Option \"" + property + "\" provided type \"" + valueType + "\" ") + ("but expected type \"" + expectedTypes + "\"."));
+ }
+ });
+ };
+
+ var isVisible = function isVisible(element) {
+ if (!element) {
+ return false;
+ }
+
+ if (element.style && element.parentNode && element.parentNode.style) {
+ var elementStyle = getComputedStyle(element);
+ var parentNodeStyle = getComputedStyle(element.parentNode);
+ return elementStyle.display !== 'none' && parentNodeStyle.display !== 'none' && elementStyle.visibility !== 'hidden';
+ }
+
+ return false;
+ };
+
+ var noop = function noop() {
+ return function () {};
+ };
+
+ var getjQuery = function getjQuery() {
+ var _window = window,
+ jQuery = _window.jQuery;
+
+ if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {
+ return jQuery;
+ }
+
+ return null;
+ };
+
+ var onDOMContentLoaded = function onDOMContentLoaded(callback) {
+ if (document.readyState === 'loading') {
+ document.addEventListener('DOMContentLoaded', callback);
+ } else {
+ callback();
+ }
+ };
+
+ var isRTL = document.documentElement.dir === 'rtl';
+
+ var defineJQueryPlugin = function defineJQueryPlugin(name, plugin) {
+ onDOMContentLoaded(function () {
+ var $ = getjQuery();
+ /* istanbul ignore if */
+
+ if ($) {
+ var JQUERY_NO_CONFLICT = $.fn[name];
+ $.fn[name] = plugin.jQueryInterface;
+ $.fn[name].Constructor = plugin;
+
+ $.fn[name].noConflict = function () {
+ $.fn[name] = JQUERY_NO_CONFLICT;
+ return plugin.jQueryInterface;
+ };
+ }
+ });
+ };
+
+ /**
+ * ------------------------------------------------------------------------
+ * Constants
+ * ------------------------------------------------------------------------
+ */
+
+ var NAME = 'dropdown';
+ var DATA_KEY = 'bs.dropdown';
+ var EVENT_KEY = "." + DATA_KEY;
+ var DATA_API_KEY = '.data-api';
+ var ESCAPE_KEY = 'Escape';
+ var SPACE_KEY = 'Space';
+ var TAB_KEY = 'Tab';
+ var ARROW_UP_KEY = 'ArrowUp';
+ var ARROW_DOWN_KEY = 'ArrowDown';
+ var RIGHT_MOUSE_BUTTON = 2; // MouseEvent.button value for the secondary button, usually the right button
+
+ var REGEXP_KEYDOWN = new RegExp(ARROW_UP_KEY + "|" + ARROW_DOWN_KEY + "|" + ESCAPE_KEY);
+ var EVENT_HIDE = "hide" + EVENT_KEY;
+ var EVENT_HIDDEN = "hidden" + EVENT_KEY;
+ var EVENT_SHOW = "show" + EVENT_KEY;
+ var EVENT_SHOWN = "shown" + EVENT_KEY;
+ var EVENT_CLICK = "click" + EVENT_KEY;
+ var EVENT_CLICK_DATA_API = "click" + EVENT_KEY + DATA_API_KEY;
+ var EVENT_KEYDOWN_DATA_API = "keydown" + EVENT_KEY + DATA_API_KEY;
+ var EVENT_KEYUP_DATA_API = "keyup" + EVENT_KEY + DATA_API_KEY;
+ var CLASS_NAME_DISABLED = 'disabled';
+ var CLASS_NAME_SHOW = 'show';
+ var CLASS_NAME_DROPUP = 'dropup';
+ var CLASS_NAME_DROPEND = 'dropend';
+ var CLASS_NAME_DROPSTART = 'dropstart';
+ var CLASS_NAME_NAVBAR = 'navbar';
+ var SELECTOR_DATA_TOGGLE = '[data-bs-toggle="dropdown"]';
+ var SELECTOR_FORM_CHILD = '.dropdown form';
+ var SELECTOR_MENU = '.dropdown-menu';
+ var SELECTOR_NAVBAR_NAV = '.navbar-nav';
+ var SELECTOR_VISIBLE_ITEMS = '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)';
+ var PLACEMENT_TOP = isRTL ? 'top-end' : 'top-start';
+ var PLACEMENT_TOPEND = isRTL ? 'top-start' : 'top-end';
+ var PLACEMENT_BOTTOM = isRTL ? 'bottom-end' : 'bottom-start';
+ var PLACEMENT_BOTTOMEND = isRTL ? 'bottom-start' : 'bottom-end';
+ var PLACEMENT_RIGHT = isRTL ? 'left-start' : 'right-start';
+ var PLACEMENT_LEFT = isRTL ? 'right-start' : 'left-start';
+ var Default = {
+ offset: [0, 2],
+ flip: true,
+ boundary: 'clippingParents',
+ reference: 'toggle',
+ display: 'dynamic',
+ popperConfig: null
+ };
+ var DefaultType = {
+ offset: '(array|string|function)',
+ flip: 'boolean',
+ boundary: '(string|element)',
+ reference: '(string|element|object)',
+ display: 'string',
+ popperConfig: '(null|object|function)'
+ };
+ /**
+ * ------------------------------------------------------------------------
+ * Class Definition
+ * ------------------------------------------------------------------------
+ */
+
+ var Dropdown = /*#__PURE__*/function (_BaseComponent) {
+ _inheritsLoose(Dropdown, _BaseComponent);
+
+ function Dropdown(element, config) {
+ var _this;
+
+ _this = _BaseComponent.call(this, element) || this;
+ _this._popper = null;
+ _this._config = _this._getConfig(config);
+ _this._menu = _this._getMenuElement();
+ _this._inNavbar = _this._detectNavbar();
+
+ _this._addEventListeners();
+
+ return _this;
+ } // Getters
+
+
+ var _proto = Dropdown.prototype;
+
+ // Public
+ _proto.toggle = function toggle() {
+ if (this._element.disabled || this._element.classList.contains(CLASS_NAME_DISABLED)) {
+ return;
+ }
+
+ var isActive = this._element.classList.contains(CLASS_NAME_SHOW);
+
+ Dropdown.clearMenus();
+
+ if (isActive) {
+ return;
+ }
+
+ this.show();
+ };
+
+ _proto.show = function show() {
+ if (this._element.disabled || this._element.classList.contains(CLASS_NAME_DISABLED) || this._menu.classList.contains(CLASS_NAME_SHOW)) {
+ return;
+ }
+
+ var parent = Dropdown.getParentFromElement(this._element);
+ var relatedTarget = {
+ relatedTarget: this._element
+ };
+ var showEvent = EventHandler__default['default'].trigger(this._element, EVENT_SHOW, relatedTarget);
+
+ if (showEvent.defaultPrevented) {
+ return;
+ } // Totally disable Popper for Dropdowns in Navbar
+
+
+ if (this._inNavbar) {
+ Manipulator__default['default'].setDataAttribute(this._menu, 'popper', 'none');
+ } else {
+ if (typeof Popper__namespace === 'undefined') {
+ throw new TypeError('Bootstrap\'s dropdowns require Popper (https://popper.js.org)');
+ }
+
+ var referenceElement = this._element;
+
+ if (this._config.reference === 'parent') {
+ referenceElement = parent;
+ } else if (isElement(this._config.reference)) {
+ referenceElement = this._config.reference; // Check if it's jQuery element
+
+ if (typeof this._config.reference.jquery !== 'undefined') {
+ referenceElement = this._config.reference[0];
+ }
+ } else if (typeof this._config.reference === 'object') {
+ referenceElement = this._config.reference;
+ }
+
+ var popperConfig = this._getPopperConfig();
+
+ var isDisplayStatic = popperConfig.modifiers.find(function (modifier) {
+ return modifier.name === 'applyStyles' && modifier.enabled === false;
+ });
+ this._popper = Popper.createPopper(referenceElement, this._menu, popperConfig);
+
+ if (isDisplayStatic) {
+ Manipulator__default['default'].setDataAttribute(this._menu, 'popper', 'static');
+ }
+ } // If this is a touch-enabled device we add extra
+ // empty mouseover listeners to the body's immediate children;
+ // only needed because of broken event delegation on iOS
+ // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html
+
+
+ if ('ontouchstart' in document.documentElement && !parent.closest(SELECTOR_NAVBAR_NAV)) {
+ var _ref;
+
+ (_ref = []).concat.apply(_ref, document.body.children).forEach(function (elem) {
+ return EventHandler__default['default'].on(elem, 'mouseover', null, noop());
+ });
+ }
+
+ this._element.focus();
+
+ this._element.setAttribute('aria-expanded', true);
+
+ this._menu.classList.toggle(CLASS_NAME_SHOW);
+
+ this._element.classList.toggle(CLASS_NAME_SHOW);
+
+ EventHandler__default['default'].trigger(this._element, EVENT_SHOWN, relatedTarget);
+ };
+
+ _proto.hide = function hide() {
+ if (this._element.disabled || this._element.classList.contains(CLASS_NAME_DISABLED) || !this._menu.classList.contains(CLASS_NAME_SHOW)) {
+ return;
+ }
+
+ var relatedTarget = {
+ relatedTarget: this._element
+ };
+ var hideEvent = EventHandler__default['default'].trigger(this._element, EVENT_HIDE, relatedTarget);
+
+ if (hideEvent.defaultPrevented) {
+ return;
+ }
+
+ if (this._popper) {
+ this._popper.destroy();
+ }
+
+ this._menu.classList.toggle(CLASS_NAME_SHOW);
+
+ this._element.classList.toggle(CLASS_NAME_SHOW);
+
+ Manipulator__default['default'].removeDataAttribute(this._menu, 'popper');
+ EventHandler__default['default'].trigger(this._element, EVENT_HIDDEN, relatedTarget);
+ };
+
+ _proto.dispose = function dispose() {
+ _BaseComponent.prototype.dispose.call(this);
+
+ EventHandler__default['default'].off(this._element, EVENT_KEY);
+ this._menu = null;
+
+ if (this._popper) {
+ this._popper.destroy();
+
+ this._popper = null;
+ }
+ };
+
+ _proto.update = function update() {
+ this._inNavbar = this._detectNavbar();
+
+ if (this._popper) {
+ this._popper.update();
+ }
+ } // Private
+ ;
+
+ _proto._addEventListeners = function _addEventListeners() {
+ var _this2 = this;
+
+ EventHandler__default['default'].on(this._element, EVENT_CLICK, function (event) {
+ event.preventDefault();
+ event.stopPropagation();
+
+ _this2.toggle();
+ });
+ };
+
+ _proto._getConfig = function _getConfig(config) {
+ config = _extends({}, this.constructor.Default, Manipulator__default['default'].getDataAttributes(this._element), config);
+ typeCheckConfig(NAME, config, this.constructor.DefaultType);
+
+ if (typeof config.reference === 'object' && !isElement(config.reference) && typeof config.reference.getBoundingClientRect !== 'function') {
+ // Popper virtual elements require a getBoundingClientRect method
+ throw new TypeError(NAME.toUpperCase() + ": Option \"reference\" provided type \"object\" without a required \"getBoundingClientRect\" method.");
+ }
+
+ return config;
+ };
+
+ _proto._getMenuElement = function _getMenuElement() {
+ return SelectorEngine__default['default'].next(this._element, SELECTOR_MENU)[0];
+ };
+
+ _proto._getPlacement = function _getPlacement() {
+ var parentDropdown = this._element.parentNode;
+
+ if (parentDropdown.classList.contains(CLASS_NAME_DROPEND)) {
+ return PLACEMENT_RIGHT;
+ }
+
+ if (parentDropdown.classList.contains(CLASS_NAME_DROPSTART)) {
+ return PLACEMENT_LEFT;
+ } // We need to trim the value because custom properties can also include spaces
+
+
+ var isEnd = getComputedStyle(this._menu).getPropertyValue('--bs-position').trim() === 'end';
+
+ if (parentDropdown.classList.contains(CLASS_NAME_DROPUP)) {
+ return isEnd ? PLACEMENT_TOPEND : PLACEMENT_TOP;
+ }
+
+ return isEnd ? PLACEMENT_BOTTOMEND : PLACEMENT_BOTTOM;
+ };
+
+ _proto._detectNavbar = function _detectNavbar() {
+ return this._element.closest("." + CLASS_NAME_NAVBAR) !== null;
+ };
+
+ _proto._getOffset = function _getOffset() {
+ var _this3 = this;
+
+ var offset = this._config.offset;
+
+ if (typeof offset === 'string') {
+ return offset.split(',').map(function (val) {
+ return Number.parseInt(val, 10);
+ });
+ }
+
+ if (typeof offset === 'function') {
+ return function (popperData) {
+ return offset(popperData, _this3._element);
+ };
+ }
+
+ return offset;
+ };
+
+ _proto._getPopperConfig = function _getPopperConfig() {
+ var defaultBsPopperConfig = {
+ placement: this._getPlacement(),
+ modifiers: [{
+ name: 'preventOverflow',
+ options: {
+ altBoundary: this._config.flip,
+ boundary: this._config.boundary
+ }
+ }, {
+ name: 'offset',
+ options: {
+ offset: this._getOffset()
+ }
+ }]
+ }; // Disable Popper if we have a static display
+
+ if (this._config.display === 'static') {
+ defaultBsPopperConfig.modifiers = [{
+ name: 'applyStyles',
+ enabled: false
+ }];
+ }
+
+ return _extends({}, defaultBsPopperConfig, typeof this._config.popperConfig === 'function' ? this._config.popperConfig(defaultBsPopperConfig) : this._config.popperConfig);
+ } // Static
+ ;
+
+ Dropdown.dropdownInterface = function dropdownInterface(element, config) {
+ var data = Data__default['default'].getData(element, DATA_KEY);
+
+ var _config = typeof config === 'object' ? config : null;
+
+ if (!data) {
+ data = new Dropdown(element, _config);
+ }
+
+ if (typeof config === 'string') {
+ if (typeof data[config] === 'undefined') {
+ throw new TypeError("No method named \"" + config + "\"");
+ }
+
+ data[config]();
+ }
+ };
+
+ Dropdown.jQueryInterface = function jQueryInterface(config) {
+ return this.each(function () {
+ Dropdown.dropdownInterface(this, config);
+ });
+ };
+
+ Dropdown.clearMenus = function clearMenus(event) {
+ if (event && (event.button === RIGHT_MOUSE_BUTTON || event.type === 'keyup' && event.key !== TAB_KEY)) {
+ return;
+ }
+
+ var toggles = SelectorEngine__default['default'].find(SELECTOR_DATA_TOGGLE);
+
+ for (var i = 0, len = toggles.length; i < len; i++) {
+ var context = Data__default['default'].getData(toggles[i], DATA_KEY);
+ var relatedTarget = {
+ relatedTarget: toggles[i]
+ };
+
+ if (event && event.type === 'click') {
+ relatedTarget.clickEvent = event;
+ }
+
+ if (!context) {
+ continue;
+ }
+
+ var dropdownMenu = context._menu;
+
+ if (!toggles[i].classList.contains(CLASS_NAME_SHOW)) {
+ continue;
+ }
+
+ if (event && (event.type === 'click' && /input|textarea/i.test(event.target.tagName) || event.type === 'keyup' && event.key === TAB_KEY) && dropdownMenu.contains(event.target)) {
+ continue;
+ }
+
+ var hideEvent = EventHandler__default['default'].trigger(toggles[i], EVENT_HIDE, relatedTarget);
+
+ if (hideEvent.defaultPrevented) {
+ continue;
+ } // If this is a touch-enabled device we remove the extra
+ // empty mouseover listeners we added for iOS support
+
+
+ if ('ontouchstart' in document.documentElement) {
+ var _ref2;
+
+ (_ref2 = []).concat.apply(_ref2, document.body.children).forEach(function (elem) {
+ return EventHandler__default['default'].off(elem, 'mouseover', null, noop());
+ });
+ }
+
+ toggles[i].setAttribute('aria-expanded', 'false');
+
+ if (context._popper) {
+ context._popper.destroy();
+ }
+
+ dropdownMenu.classList.remove(CLASS_NAME_SHOW);
+ toggles[i].classList.remove(CLASS_NAME_SHOW);
+ Manipulator__default['default'].removeDataAttribute(dropdownMenu, 'popper');
+ EventHandler__default['default'].trigger(toggles[i], EVENT_HIDDEN, relatedTarget);
+ }
+ };
+
+ Dropdown.getParentFromElement = function getParentFromElement(element) {
+ return getElementFromSelector(element) || element.parentNode;
+ };
+
+ Dropdown.dataApiKeydownHandler = function dataApiKeydownHandler(event) {
+ // If not input/textarea:
+ // - And not a key in REGEXP_KEYDOWN => not a dropdown command
+ // If input/textarea:
+ // - If space key => not a dropdown command
+ // - If key is other than escape
+ // - If key is not up or down => not a dropdown command
+ // - If trigger inside the menu => not a dropdown command
+ if (/input|textarea/i.test(event.target.tagName) ? event.key === SPACE_KEY || event.key !== ESCAPE_KEY && (event.key !== ARROW_DOWN_KEY && event.key !== ARROW_UP_KEY || event.target.closest(SELECTOR_MENU)) : !REGEXP_KEYDOWN.test(event.key)) {
+ return;
+ }
+
+ event.preventDefault();
+ event.stopPropagation();
+
+ if (this.disabled || this.classList.contains(CLASS_NAME_DISABLED)) {
+ return;
+ }
+
+ var parent = Dropdown.getParentFromElement(this);
+ var isActive = this.classList.contains(CLASS_NAME_SHOW);
+
+ if (event.key === ESCAPE_KEY) {
+ var button = this.matches(SELECTOR_DATA_TOGGLE) ? this : SelectorEngine__default['default'].prev(this, SELECTOR_DATA_TOGGLE)[0];
+ button.focus();
+ Dropdown.clearMenus();
+ return;
+ }
+
+ if (!isActive && (event.key === ARROW_UP_KEY || event.key === ARROW_DOWN_KEY)) {
+ var _button = this.matches(SELECTOR_DATA_TOGGLE) ? this : SelectorEngine__default['default'].prev(this, SELECTOR_DATA_TOGGLE)[0];
+
+ _button.click();
+
+ return;
+ }
+
+ if (!isActive || event.key === SPACE_KEY) {
+ Dropdown.clearMenus();
+ return;
+ }
+
+ var items = SelectorEngine__default['default'].find(SELECTOR_VISIBLE_ITEMS, parent).filter(isVisible);
+
+ if (!items.length) {
+ return;
+ }
+
+ var index = items.indexOf(event.target); // Up
+
+ if (event.key === ARROW_UP_KEY && index > 0) {
+ index--;
+ } // Down
+
+
+ if (event.key === ARROW_DOWN_KEY && index < items.length - 1) {
+ index++;
+ } // index is -1 if the first keydown is an ArrowUp
+
+
+ index = index === -1 ? 0 : index;
+ items[index].focus();
+ };
+
+ _createClass(Dropdown, null, [{
+ key: "Default",
+ get: function get() {
+ return Default;
+ }
+ }, {
+ key: "DefaultType",
+ get: function get() {
+ return DefaultType;
+ }
+ }, {
+ key: "DATA_KEY",
+ get: function get() {
+ return DATA_KEY;
+ }
+ }]);
+
+ return Dropdown;
+ }(BaseComponent__default['default']);
+ /**
+ * ------------------------------------------------------------------------
+ * Data Api implementation
+ * ------------------------------------------------------------------------
+ */
+
+
+ EventHandler__default['default'].on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_DATA_TOGGLE, Dropdown.dataApiKeydownHandler);
+ EventHandler__default['default'].on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_MENU, Dropdown.dataApiKeydownHandler);
+ EventHandler__default['default'].on(document, EVENT_CLICK_DATA_API, Dropdown.clearMenus);
+ EventHandler__default['default'].on(document, EVENT_KEYUP_DATA_API, Dropdown.clearMenus);
+ EventHandler__default['default'].on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {
+ event.preventDefault();
+ event.stopPropagation();
+ Dropdown.dropdownInterface(this, 'toggle');
+ });
+ EventHandler__default['default'].on(document, EVENT_CLICK_DATA_API, SELECTOR_FORM_CHILD, function (e) {
+ return e.stopPropagation();
+ });
+ /**
+ * ------------------------------------------------------------------------
+ * jQuery
+ * ------------------------------------------------------------------------
+ * add .Dropdown to jQuery only if jQuery is present
+ */
+
+ defineJQueryPlugin(NAME, Dropdown);
+
+ return Dropdown;
+
+})));
+//# sourceMappingURL=dropdown.js.map
+/*!
+ * Bootstrap modal.js v5.0.0-beta2 (https://getbootstrap.com/)
+ * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
+ */
+(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./dom/data.js'), require('./dom/event-handler.js'), require('./dom/manipulator.js'), require('./dom/selector-engine.js'), require('./base-component.js')) :
+ typeof define === 'function' && define.amd ? define(['./dom/data', './dom/event-handler', './dom/manipulator', './dom/selector-engine', './base-component'], factory) :
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Modal = factory(global.Data, global.EventHandler, global.Manipulator, global.SelectorEngine, global.Base));
+}(this, (function (Data, EventHandler, Manipulator, SelectorEngine, BaseComponent) { 'use strict';
+
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
+
+ var Data__default = /*#__PURE__*/_interopDefaultLegacy(Data);
+ var EventHandler__default = /*#__PURE__*/_interopDefaultLegacy(EventHandler);
+ var Manipulator__default = /*#__PURE__*/_interopDefaultLegacy(Manipulator);
+ var SelectorEngine__default = /*#__PURE__*/_interopDefaultLegacy(SelectorEngine);
+ var BaseComponent__default = /*#__PURE__*/_interopDefaultLegacy(BaseComponent);
+
+ function _defineProperties(target, props) {
+ for (var i = 0; i < props.length; i++) {
+ var descriptor = props[i];
+ descriptor.enumerable = descriptor.enumerable || false;
+ descriptor.configurable = true;
+ if ("value" in descriptor) descriptor.writable = true;
+ Object.defineProperty(target, descriptor.key, descriptor);
+ }
+ }
+
+ function _createClass(Constructor, protoProps, staticProps) {
+ if (protoProps) _defineProperties(Constructor.prototype, protoProps);
+ if (staticProps) _defineProperties(Constructor, staticProps);
+ return Constructor;
+ }
+
+ function _extends() {
+ _extends = Object.assign || function (target) {
+ for (var i = 1; i < arguments.length; i++) {
+ var source = arguments[i];
+
+ for (var key in source) {
+ if (Object.prototype.hasOwnProperty.call(source, key)) {
+ target[key] = source[key];
+ }
+ }
+ }
+
+ return target;
+ };
+
+ return _extends.apply(this, arguments);
+ }
+
+ function _inheritsLoose(subClass, superClass) {
+ subClass.prototype = Object.create(superClass.prototype);
+ subClass.prototype.constructor = subClass;
+
+ _setPrototypeOf(subClass, superClass);
+ }
+
+ function _setPrototypeOf(o, p) {
+ _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {
+ o.__proto__ = p;
+ return o;
+ };
+
+ return _setPrototypeOf(o, p);
+ }
+
+ /**
+ * --------------------------------------------------------------------------
+ * Bootstrap (v5.0.0-beta2): util/index.js
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
+ * --------------------------------------------------------------------------
+ */
+ var MILLISECONDS_MULTIPLIER = 1000;
+ var TRANSITION_END = 'transitionend'; // Shoutout AngusCroll (https://goo.gl/pxwQGp)
+
+ var toType = function toType(obj) {
+ if (obj === null || obj === undefined) {
+ return "" + obj;
+ }
+
+ return {}.toString.call(obj).match(/\s([a-z]+)/i)[1].toLowerCase();
+ };
+
+ var getSelector = function getSelector(element) {
+ var selector = element.getAttribute('data-bs-target');
+
+ if (!selector || selector === '#') {
+ var hrefAttr = element.getAttribute('href'); // The only valid content that could double as a selector are IDs or classes,
+ // so everything starting with `#` or `.`. If a "real" URL is used as the selector,
+ // `document.querySelector` will rightfully complain it is invalid.
+ // See https://github.com/twbs/bootstrap/issues/32273
+
+ if (!hrefAttr || !hrefAttr.includes('#') && !hrefAttr.startsWith('.')) {
+ return null;
+ } // Just in case some CMS puts out a full URL with the anchor appended
+
+
+ if (hrefAttr.includes('#') && !hrefAttr.startsWith('#')) {
+ hrefAttr = '#' + hrefAttr.split('#')[1];
+ }
+
+ selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : null;
+ }
+
+ return selector;
+ };
+
+ var getElementFromSelector = function getElementFromSelector(element) {
+ var selector = getSelector(element);
+ return selector ? document.querySelector(selector) : null;
+ };
+
+ var getTransitionDurationFromElement = function getTransitionDurationFromElement(element) {
+ if (!element) {
+ return 0;
+ } // Get transition-duration of the element
+
+
+ var _window$getComputedSt = window.getComputedStyle(element),
+ transitionDuration = _window$getComputedSt.transitionDuration,
+ transitionDelay = _window$getComputedSt.transitionDelay;
+
+ var floatTransitionDuration = Number.parseFloat(transitionDuration);
+ var floatTransitionDelay = Number.parseFloat(transitionDelay); // Return 0 if element or transition duration is not found
+
+ if (!floatTransitionDuration && !floatTransitionDelay) {
+ return 0;
+ } // If multiple durations are defined, take the first
+
+
+ transitionDuration = transitionDuration.split(',')[0];
+ transitionDelay = transitionDelay.split(',')[0];
+ return (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER;
+ };
+
+ var triggerTransitionEnd = function triggerTransitionEnd(element) {
+ element.dispatchEvent(new Event(TRANSITION_END));
+ };
+
+ var isElement = function isElement(obj) {
+ return (obj[0] || obj).nodeType;
+ };
+
+ var emulateTransitionEnd = function emulateTransitionEnd(element, duration) {
+ var called = false;
+ var durationPadding = 5;
+ var emulatedDuration = duration + durationPadding;
+
+ function listener() {
+ called = true;
+ element.removeEventListener(TRANSITION_END, listener);
+ }
+
+ element.addEventListener(TRANSITION_END, listener);
+ setTimeout(function () {
+ if (!called) {
+ triggerTransitionEnd(element);
+ }
+ }, emulatedDuration);
+ };
+
+ var typeCheckConfig = function typeCheckConfig(componentName, config, configTypes) {
+ Object.keys(configTypes).forEach(function (property) {
+ var expectedTypes = configTypes[property];
+ var value = config[property];
+ var valueType = value && isElement(value) ? 'element' : toType(value);
+
+ if (!new RegExp(expectedTypes).test(valueType)) {
+ throw new TypeError(componentName.toUpperCase() + ": " + ("Option \"" + property + "\" provided type \"" + valueType + "\" ") + ("but expected type \"" + expectedTypes + "\"."));
+ }
+ });
+ };
+
+ var isVisible = function isVisible(element) {
+ if (!element) {
+ return false;
+ }
+
+ if (element.style && element.parentNode && element.parentNode.style) {
+ var elementStyle = getComputedStyle(element);
+ var parentNodeStyle = getComputedStyle(element.parentNode);
+ return elementStyle.display !== 'none' && parentNodeStyle.display !== 'none' && elementStyle.visibility !== 'hidden';
+ }
+
+ return false;
+ };
+
+ var reflow = function reflow(element) {
+ return element.offsetHeight;
+ };
+
+ var getjQuery = function getjQuery() {
+ var _window = window,
+ jQuery = _window.jQuery;
+
+ if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {
+ return jQuery;
+ }
+
+ return null;
+ };
+
+ var onDOMContentLoaded = function onDOMContentLoaded(callback) {
+ if (document.readyState === 'loading') {
+ document.addEventListener('DOMContentLoaded', callback);
+ } else {
+ callback();
+ }
+ };
+
+ var isRTL = document.documentElement.dir === 'rtl';
+
+ var defineJQueryPlugin = function defineJQueryPlugin(name, plugin) {
+ onDOMContentLoaded(function () {
+ var $ = getjQuery();
+ /* istanbul ignore if */
+
+ if ($) {
+ var JQUERY_NO_CONFLICT = $.fn[name];
+ $.fn[name] = plugin.jQueryInterface;
+ $.fn[name].Constructor = plugin;
+
+ $.fn[name].noConflict = function () {
+ $.fn[name] = JQUERY_NO_CONFLICT;
+ return plugin.jQueryInterface;
+ };
+ }
+ });
+ };
+
+ /**
+ * ------------------------------------------------------------------------
+ * Constants
+ * ------------------------------------------------------------------------
+ */
+
+ var NAME = 'modal';
+ var DATA_KEY = 'bs.modal';
+ var EVENT_KEY = "." + DATA_KEY;
+ var DATA_API_KEY = '.data-api';
+ var ESCAPE_KEY = 'Escape';
+ var Default = {
+ backdrop: true,
+ keyboard: true,
+ focus: true
+ };
+ var DefaultType = {
+ backdrop: '(boolean|string)',
+ keyboard: 'boolean',
+ focus: 'boolean'
+ };
+ var EVENT_HIDE = "hide" + EVENT_KEY;
+ var EVENT_HIDE_PREVENTED = "hidePrevented" + EVENT_KEY;
+ var EVENT_HIDDEN = "hidden" + EVENT_KEY;
+ var EVENT_SHOW = "show" + EVENT_KEY;
+ var EVENT_SHOWN = "shown" + EVENT_KEY;
+ var EVENT_FOCUSIN = "focusin" + EVENT_KEY;
+ var EVENT_RESIZE = "resize" + EVENT_KEY;
+ var EVENT_CLICK_DISMISS = "click.dismiss" + EVENT_KEY;
+ var EVENT_KEYDOWN_DISMISS = "keydown.dismiss" + EVENT_KEY;
+ var EVENT_MOUSEUP_DISMISS = "mouseup.dismiss" + EVENT_KEY;
+ var EVENT_MOUSEDOWN_DISMISS = "mousedown.dismiss" + EVENT_KEY;
+ var EVENT_CLICK_DATA_API = "click" + EVENT_KEY + DATA_API_KEY;
+ var CLASS_NAME_SCROLLBAR_MEASURER = 'modal-scrollbar-measure';
+ var CLASS_NAME_BACKDROP = 'modal-backdrop';
+ var CLASS_NAME_OPEN = 'modal-open';
+ var CLASS_NAME_FADE = 'fade';
+ var CLASS_NAME_SHOW = 'show';
+ var CLASS_NAME_STATIC = 'modal-static';
+ var SELECTOR_DIALOG = '.modal-dialog';
+ var SELECTOR_MODAL_BODY = '.modal-body';
+ var SELECTOR_DATA_TOGGLE = '[data-bs-toggle="modal"]';
+ var SELECTOR_DATA_DISMISS = '[data-bs-dismiss="modal"]';
+ var SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top';
+ var SELECTOR_STICKY_CONTENT = '.sticky-top';
+ /**
+ * ------------------------------------------------------------------------
+ * Class Definition
+ * ------------------------------------------------------------------------
+ */
+
+ var Modal = /*#__PURE__*/function (_BaseComponent) {
+ _inheritsLoose(Modal, _BaseComponent);
+
+ function Modal(element, config) {
+ var _this;
+
+ _this = _BaseComponent.call(this, element) || this;
+ _this._config = _this._getConfig(config);
+ _this._dialog = SelectorEngine__default['default'].findOne(SELECTOR_DIALOG, element);
+ _this._backdrop = null;
+ _this._isShown = false;
+ _this._isBodyOverflowing = false;
+ _this._ignoreBackdropClick = false;
+ _this._isTransitioning = false;
+ _this._scrollbarWidth = 0;
+ return _this;
+ } // Getters
+
+
+ var _proto = Modal.prototype;
+
+ // Public
+ _proto.toggle = function toggle(relatedTarget) {
+ return this._isShown ? this.hide() : this.show(relatedTarget);
+ };
+
+ _proto.show = function show(relatedTarget) {
+ var _this2 = this;
+
+ if (this._isShown || this._isTransitioning) {
+ return;
+ }
+
+ if (this._element.classList.contains(CLASS_NAME_FADE)) {
+ this._isTransitioning = true;
+ }
+
+ var showEvent = EventHandler__default['default'].trigger(this._element, EVENT_SHOW, {
+ relatedTarget: relatedTarget
+ });
+
+ if (this._isShown || showEvent.defaultPrevented) {
+ return;
+ }
+
+ this._isShown = true;
+
+ this._checkScrollbar();
+
+ this._setScrollbar();
+
+ this._adjustDialog();
+
+ this._setEscapeEvent();
+
+ this._setResizeEvent();
+
+ EventHandler__default['default'].on(this._element, EVENT_CLICK_DISMISS, SELECTOR_DATA_DISMISS, function (event) {
+ return _this2.hide(event);
+ });
+ EventHandler__default['default'].on(this._dialog, EVENT_MOUSEDOWN_DISMISS, function () {
+ EventHandler__default['default'].one(_this2._element, EVENT_MOUSEUP_DISMISS, function (event) {
+ if (event.target === _this2._element) {
+ _this2._ignoreBackdropClick = true;
+ }
+ });
+ });
+
+ this._showBackdrop(function () {
+ return _this2._showElement(relatedTarget);
+ });
+ };
+
+ _proto.hide = function hide(event) {
+ var _this3 = this;
+
+ if (event) {
+ event.preventDefault();
+ }
+
+ if (!this._isShown || this._isTransitioning) {
+ return;
+ }
+
+ var hideEvent = EventHandler__default['default'].trigger(this._element, EVENT_HIDE);
+
+ if (hideEvent.defaultPrevented) {
+ return;
+ }
+
+ this._isShown = false;
+
+ var transition = this._element.classList.contains(CLASS_NAME_FADE);
+
+ if (transition) {
+ this._isTransitioning = true;
+ }
+
+ this._setEscapeEvent();
+
+ this._setResizeEvent();
+
+ EventHandler__default['default'].off(document, EVENT_FOCUSIN);
+
+ this._element.classList.remove(CLASS_NAME_SHOW);
+
+ EventHandler__default['default'].off(this._element, EVENT_CLICK_DISMISS);
+ EventHandler__default['default'].off(this._dialog, EVENT_MOUSEDOWN_DISMISS);
+
+ if (transition) {
+ var transitionDuration = getTransitionDurationFromElement(this._element);
+ EventHandler__default['default'].one(this._element, 'transitionend', function (event) {
+ return _this3._hideModal(event);
+ });
+ emulateTransitionEnd(this._element, transitionDuration);
+ } else {
+ this._hideModal();
+ }
+ };
+
+ _proto.dispose = function dispose() {
+ [window, this._element, this._dialog].forEach(function (htmlElement) {
+ return EventHandler__default['default'].off(htmlElement, EVENT_KEY);
+ });
+
+ _BaseComponent.prototype.dispose.call(this);
+ /**
+ * `document` has 2 events `EVENT_FOCUSIN` and `EVENT_CLICK_DATA_API`
+ * Do not move `document` in `htmlElements` array
+ * It will remove `EVENT_CLICK_DATA_API` event that should remain
+ */
+
+
+ EventHandler__default['default'].off(document, EVENT_FOCUSIN);
+ this._config = null;
+ this._dialog = null;
+ this._backdrop = null;
+ this._isShown = null;
+ this._isBodyOverflowing = null;
+ this._ignoreBackdropClick = null;
+ this._isTransitioning = null;
+ this._scrollbarWidth = null;
+ };
+
+ _proto.handleUpdate = function handleUpdate() {
+ this._adjustDialog();
+ } // Private
+ ;
+
+ _proto._getConfig = function _getConfig(config) {
+ config = _extends({}, Default, config);
+ typeCheckConfig(NAME, config, DefaultType);
+ return config;
+ };
+
+ _proto._showElement = function _showElement(relatedTarget) {
+ var _this4 = this;
+
+ var transition = this._element.classList.contains(CLASS_NAME_FADE);
+
+ var modalBody = SelectorEngine__default['default'].findOne(SELECTOR_MODAL_BODY, this._dialog);
+
+ if (!this._element.parentNode || this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {
+ // Don't move modal's DOM position
+ document.body.appendChild(this._element);
+ }
+
+ this._element.style.display = 'block';
+
+ this._element.removeAttribute('aria-hidden');
+
+ this._element.setAttribute('aria-modal', true);
+
+ this._element.setAttribute('role', 'dialog');
+
+ this._element.scrollTop = 0;
+
+ if (modalBody) {
+ modalBody.scrollTop = 0;
+ }
+
+ if (transition) {
+ reflow(this._element);
+ }
+
+ this._element.classList.add(CLASS_NAME_SHOW);
+
+ if (this._config.focus) {
+ this._enforceFocus();
+ }
+
+ var transitionComplete = function transitionComplete() {
+ if (_this4._config.focus) {
+ _this4._element.focus();
+ }
+
+ _this4._isTransitioning = false;
+ EventHandler__default['default'].trigger(_this4._element, EVENT_SHOWN, {
+ relatedTarget: relatedTarget
+ });
+ };
+
+ if (transition) {
+ var transitionDuration = getTransitionDurationFromElement(this._dialog);
+ EventHandler__default['default'].one(this._dialog, 'transitionend', transitionComplete);
+ emulateTransitionEnd(this._dialog, transitionDuration);
+ } else {
+ transitionComplete();
+ }
+ };
+
+ _proto._enforceFocus = function _enforceFocus() {
+ var _this5 = this;
+
+ EventHandler__default['default'].off(document, EVENT_FOCUSIN); // guard against infinite focus loop
+
+ EventHandler__default['default'].on(document, EVENT_FOCUSIN, function (event) {
+ if (document !== event.target && _this5._element !== event.target && !_this5._element.contains(event.target)) {
+ _this5._element.focus();
+ }
+ });
+ };
+
+ _proto._setEscapeEvent = function _setEscapeEvent() {
+ var _this6 = this;
+
+ if (this._isShown) {
+ EventHandler__default['default'].on(this._element, EVENT_KEYDOWN_DISMISS, function (event) {
+ if (_this6._config.keyboard && event.key === ESCAPE_KEY) {
+ event.preventDefault();
+
+ _this6.hide();
+ } else if (!_this6._config.keyboard && event.key === ESCAPE_KEY) {
+ _this6._triggerBackdropTransition();
+ }
+ });
+ } else {
+ EventHandler__default['default'].off(this._element, EVENT_KEYDOWN_DISMISS);
+ }
+ };
+
+ _proto._setResizeEvent = function _setResizeEvent() {
+ var _this7 = this;
+
+ if (this._isShown) {
+ EventHandler__default['default'].on(window, EVENT_RESIZE, function () {
+ return _this7._adjustDialog();
+ });
+ } else {
+ EventHandler__default['default'].off(window, EVENT_RESIZE);
+ }
+ };
+
+ _proto._hideModal = function _hideModal() {
+ var _this8 = this;
+
+ this._element.style.display = 'none';
+
+ this._element.setAttribute('aria-hidden', true);
+
+ this._element.removeAttribute('aria-modal');
+
+ this._element.removeAttribute('role');
+
+ this._isTransitioning = false;
+
+ this._showBackdrop(function () {
+ document.body.classList.remove(CLASS_NAME_OPEN);
+
+ _this8._resetAdjustments();
+
+ _this8._resetScrollbar();
+
+ EventHandler__default['default'].trigger(_this8._element, EVENT_HIDDEN);
+ });
+ };
+
+ _proto._removeBackdrop = function _removeBackdrop() {
+ this._backdrop.parentNode.removeChild(this._backdrop);
+
+ this._backdrop = null;
+ };
+
+ _proto._showBackdrop = function _showBackdrop(callback) {
+ var _this9 = this;
+
+ var animate = this._element.classList.contains(CLASS_NAME_FADE) ? CLASS_NAME_FADE : '';
+
+ if (this._isShown && this._config.backdrop) {
+ this._backdrop = document.createElement('div');
+ this._backdrop.className = CLASS_NAME_BACKDROP;
+
+ if (animate) {
+ this._backdrop.classList.add(animate);
+ }
+
+ document.body.appendChild(this._backdrop);
+ EventHandler__default['default'].on(this._element, EVENT_CLICK_DISMISS, function (event) {
+ if (_this9._ignoreBackdropClick) {
+ _this9._ignoreBackdropClick = false;
+ return;
+ }
+
+ if (event.target !== event.currentTarget) {
+ return;
+ }
+
+ if (_this9._config.backdrop === 'static') {
+ _this9._triggerBackdropTransition();
+ } else {
+ _this9.hide();
+ }
+ });
+
+ if (animate) {
+ reflow(this._backdrop);
+ }
+
+ this._backdrop.classList.add(CLASS_NAME_SHOW);
+
+ if (!animate) {
+ callback();
+ return;
+ }
+
+ var backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop);
+ EventHandler__default['default'].one(this._backdrop, 'transitionend', callback);
+ emulateTransitionEnd(this._backdrop, backdropTransitionDuration);
+ } else if (!this._isShown && this._backdrop) {
+ this._backdrop.classList.remove(CLASS_NAME_SHOW);
+
+ var callbackRemove = function callbackRemove() {
+ _this9._removeBackdrop();
+
+ callback();
+ };
+
+ if (this._element.classList.contains(CLASS_NAME_FADE)) {
+ var _backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop);
+
+ EventHandler__default['default'].one(this._backdrop, 'transitionend', callbackRemove);
+ emulateTransitionEnd(this._backdrop, _backdropTransitionDuration);
+ } else {
+ callbackRemove();
+ }
+ } else {
+ callback();
+ }
+ };
+
+ _proto._triggerBackdropTransition = function _triggerBackdropTransition() {
+ var _this10 = this;
+
+ var hideEvent = EventHandler__default['default'].trigger(this._element, EVENT_HIDE_PREVENTED);
+
+ if (hideEvent.defaultPrevented) {
+ return;
+ }
+
+ var isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;
+
+ if (!isModalOverflowing) {
+ this._element.style.overflowY = 'hidden';
+ }
+
+ this._element.classList.add(CLASS_NAME_STATIC);
+
+ var modalTransitionDuration = getTransitionDurationFromElement(this._dialog);
+ EventHandler__default['default'].off(this._element, 'transitionend');
+ EventHandler__default['default'].one(this._element, 'transitionend', function () {
+ _this10._element.classList.remove(CLASS_NAME_STATIC);
+
+ if (!isModalOverflowing) {
+ EventHandler__default['default'].one(_this10._element, 'transitionend', function () {
+ _this10._element.style.overflowY = '';
+ });
+ emulateTransitionEnd(_this10._element, modalTransitionDuration);
+ }
+ });
+ emulateTransitionEnd(this._element, modalTransitionDuration);
+
+ this._element.focus();
+ } // ----------------------------------------------------------------------
+ // the following methods are used to handle overflowing modals
+ // ----------------------------------------------------------------------
+ ;
+
+ _proto._adjustDialog = function _adjustDialog() {
+ var isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;
+
+ if (!this._isBodyOverflowing && isModalOverflowing && !isRTL || this._isBodyOverflowing && !isModalOverflowing && isRTL) {
+ this._element.style.paddingLeft = this._scrollbarWidth + "px";
+ }
+
+ if (this._isBodyOverflowing && !isModalOverflowing && !isRTL || !this._isBodyOverflowing && isModalOverflowing && isRTL) {
+ this._element.style.paddingRight = this._scrollbarWidth + "px";
+ }
+ };
+
+ _proto._resetAdjustments = function _resetAdjustments() {
+ this._element.style.paddingLeft = '';
+ this._element.style.paddingRight = '';
+ };
+
+ _proto._checkScrollbar = function _checkScrollbar() {
+ var rect = document.body.getBoundingClientRect();
+ this._isBodyOverflowing = Math.round(rect.left + rect.right) < window.innerWidth;
+ this._scrollbarWidth = this._getScrollbarWidth();
+ };
+
+ _proto._setScrollbar = function _setScrollbar() {
+ var _this11 = this;
+
+ if (this._isBodyOverflowing) {
+ this._setElementAttributes(SELECTOR_FIXED_CONTENT, 'paddingRight', function (calculatedValue) {
+ return calculatedValue + _this11._scrollbarWidth;
+ });
+
+ this._setElementAttributes(SELECTOR_STICKY_CONTENT, 'marginRight', function (calculatedValue) {
+ return calculatedValue - _this11._scrollbarWidth;
+ });
+
+ this._setElementAttributes('body', 'paddingRight', function (calculatedValue) {
+ return calculatedValue + _this11._scrollbarWidth;
+ });
+ }
+
+ document.body.classList.add(CLASS_NAME_OPEN);
+ };
+
+ _proto._setElementAttributes = function _setElementAttributes(selector, styleProp, callback) {
+ SelectorEngine__default['default'].find(selector).forEach(function (element) {
+ var actualValue = element.style[styleProp];
+ var calculatedValue = window.getComputedStyle(element)[styleProp];
+ Manipulator__default['default'].setDataAttribute(element, styleProp, actualValue);
+ element.style[styleProp] = callback(Number.parseFloat(calculatedValue)) + 'px';
+ });
+ };
+
+ _proto._resetScrollbar = function _resetScrollbar() {
+ this._resetElementAttributes(SELECTOR_FIXED_CONTENT, 'paddingRight');
+
+ this._resetElementAttributes(SELECTOR_STICKY_CONTENT, 'marginRight');
+
+ this._resetElementAttributes('body', 'paddingRight');
+ };
+
+ _proto._resetElementAttributes = function _resetElementAttributes(selector, styleProp) {
+ SelectorEngine__default['default'].find(selector).forEach(function (element) {
+ var value = Manipulator__default['default'].getDataAttribute(element, styleProp);
+
+ if (typeof value === 'undefined' && element === document.body) {
+ element.style[styleProp] = '';
+ } else {
+ Manipulator__default['default'].removeDataAttribute(element, styleProp);
+ element.style[styleProp] = value;
+ }
+ });
+ };
+
+ _proto._getScrollbarWidth = function _getScrollbarWidth() {
+ // thx d.walsh
+ var scrollDiv = document.createElement('div');
+ scrollDiv.className = CLASS_NAME_SCROLLBAR_MEASURER;
+ document.body.appendChild(scrollDiv);
+ var scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth;
+ document.body.removeChild(scrollDiv);
+ return scrollbarWidth;
+ } // Static
+ ;
+
+ Modal.jQueryInterface = function jQueryInterface(config, relatedTarget) {
+ return this.each(function () {
+ var data = Data__default['default'].getData(this, DATA_KEY);
+
+ var _config = _extends({}, Default, Manipulator__default['default'].getDataAttributes(this), typeof config === 'object' && config ? config : {});
+
+ if (!data) {
+ data = new Modal(this, _config);
+ }
+
+ if (typeof config === 'string') {
+ if (typeof data[config] === 'undefined') {
+ throw new TypeError("No method named \"" + config + "\"");
+ }
+
+ data[config](relatedTarget);
+ }
+ });
+ };
+
+ _createClass(Modal, null, [{
+ key: "Default",
+ get: function get() {
+ return Default;
+ }
+ }, {
+ key: "DATA_KEY",
+ get: function get() {
+ return DATA_KEY;
+ }
+ }]);
+
+ return Modal;
+ }(BaseComponent__default['default']);
+ /**
+ * ------------------------------------------------------------------------
+ * Data Api implementation
+ * ------------------------------------------------------------------------
+ */
+
+
+ EventHandler__default['default'].on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {
+ var _this12 = this;
+
+ var target = getElementFromSelector(this);
+
+ if (this.tagName === 'A' || this.tagName === 'AREA') {
+ event.preventDefault();
+ }
+
+ EventHandler__default['default'].one(target, EVENT_SHOW, function (showEvent) {
+ if (showEvent.defaultPrevented) {
+ // only register focus restorer if modal will actually get shown
+ return;
+ }
+
+ EventHandler__default['default'].one(target, EVENT_HIDDEN, function () {
+ if (isVisible(_this12)) {
+ _this12.focus();
+ }
+ });
+ });
+ var data = Data__default['default'].getData(target, DATA_KEY);
+
+ if (!data) {
+ var config = _extends({}, Manipulator__default['default'].getDataAttributes(target), Manipulator__default['default'].getDataAttributes(this));
+
+ data = new Modal(target, config);
+ }
+
+ data.toggle(this);
+ });
+ /**
+ * ------------------------------------------------------------------------
+ * jQuery
+ * ------------------------------------------------------------------------
+ * add .Modal to jQuery only if jQuery is present
+ */
+
+ defineJQueryPlugin(NAME, Modal);
+
+ return Modal;
+
+})));
+//# sourceMappingURL=modal.js.map
+/*!
+ * Bootstrap popover.js v5.0.0-beta2 (https://getbootstrap.com/)
+ * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
+ */
+(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./dom/data.js'), require('./dom/selector-engine.js'), require('./tooltip.js')) :
+ typeof define === 'function' && define.amd ? define(['./dom/data', './dom/selector-engine', './tooltip'], factory) :
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Popover = factory(global.Data, global.SelectorEngine, global.Tooltip));
+}(this, (function (Data, SelectorEngine, Tooltip) { 'use strict';
+
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
+
+ var Data__default = /*#__PURE__*/_interopDefaultLegacy(Data);
+ var SelectorEngine__default = /*#__PURE__*/_interopDefaultLegacy(SelectorEngine);
+ var Tooltip__default = /*#__PURE__*/_interopDefaultLegacy(Tooltip);
+
+ function _defineProperties(target, props) {
+ for (var i = 0; i < props.length; i++) {
+ var descriptor = props[i];
+ descriptor.enumerable = descriptor.enumerable || false;
+ descriptor.configurable = true;
+ if ("value" in descriptor) descriptor.writable = true;
+ Object.defineProperty(target, descriptor.key, descriptor);
+ }
+ }
+
+ function _createClass(Constructor, protoProps, staticProps) {
+ if (protoProps) _defineProperties(Constructor.prototype, protoProps);
+ if (staticProps) _defineProperties(Constructor, staticProps);
+ return Constructor;
+ }
+
+ function _extends() {
+ _extends = Object.assign || function (target) {
+ for (var i = 1; i < arguments.length; i++) {
+ var source = arguments[i];
+
+ for (var key in source) {
+ if (Object.prototype.hasOwnProperty.call(source, key)) {
+ target[key] = source[key];
+ }
+ }
+ }
+
+ return target;
+ };
+
+ return _extends.apply(this, arguments);
+ }
+
+ function _inheritsLoose(subClass, superClass) {
+ subClass.prototype = Object.create(superClass.prototype);
+ subClass.prototype.constructor = subClass;
+
+ _setPrototypeOf(subClass, superClass);
+ }
+
+ function _setPrototypeOf(o, p) {
+ _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {
+ o.__proto__ = p;
+ return o;
+ };
+
+ return _setPrototypeOf(o, p);
+ }
+
+ /**
+ * --------------------------------------------------------------------------
+ * Bootstrap (v5.0.0-beta2): util/index.js
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
+ * --------------------------------------------------------------------------
+ */
+
+ var getjQuery = function getjQuery() {
+ var _window = window,
+ jQuery = _window.jQuery;
+
+ if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {
+ return jQuery;
+ }
+
+ return null;
+ };
+
+ var onDOMContentLoaded = function onDOMContentLoaded(callback) {
+ if (document.readyState === 'loading') {
+ document.addEventListener('DOMContentLoaded', callback);
+ } else {
+ callback();
+ }
+ };
+
+ document.documentElement.dir === 'rtl';
+
+ var defineJQueryPlugin = function defineJQueryPlugin(name, plugin) {
+ onDOMContentLoaded(function () {
+ var $ = getjQuery();
+ /* istanbul ignore if */
+
+ if ($) {
+ var JQUERY_NO_CONFLICT = $.fn[name];
+ $.fn[name] = plugin.jQueryInterface;
+ $.fn[name].Constructor = plugin;
+
+ $.fn[name].noConflict = function () {
+ $.fn[name] = JQUERY_NO_CONFLICT;
+ return plugin.jQueryInterface;
+ };
+ }
+ });
+ };
+
+ /**
+ * ------------------------------------------------------------------------
+ * Constants
+ * ------------------------------------------------------------------------
+ */
+
+ var NAME = 'popover';
+ var DATA_KEY = 'bs.popover';
+ var EVENT_KEY = "." + DATA_KEY;
+ var CLASS_PREFIX = 'bs-popover';
+ var BSCLS_PREFIX_REGEX = new RegExp("(^|\\s)" + CLASS_PREFIX + "\\S+", 'g');
+
+ var Default = _extends({}, Tooltip__default['default'].Default, {
+ placement: 'right',
+ offset: [0, 8],
+ trigger: 'click',
+ content: '',
+ template: '<div class="popover" role="tooltip">' + '<div class="popover-arrow"></div>' + '<h3 class="popover-header"></h3>' + '<div class="popover-body"></div>' + '</div>'
+ });
+
+ var DefaultType = _extends({}, Tooltip__default['default'].DefaultType, {
+ content: '(string|element|function)'
+ });
+
+ var Event = {
+ HIDE: "hide" + EVENT_KEY,
+ HIDDEN: "hidden" + EVENT_KEY,
+ SHOW: "show" + EVENT_KEY,
+ SHOWN: "shown" + EVENT_KEY,
+ INSERTED: "inserted" + EVENT_KEY,
+ CLICK: "click" + EVENT_KEY,
+ FOCUSIN: "focusin" + EVENT_KEY,
+ FOCUSOUT: "focusout" + EVENT_KEY,
+ MOUSEENTER: "mouseenter" + EVENT_KEY,
+ MOUSELEAVE: "mouseleave" + EVENT_KEY
+ };
+ var CLASS_NAME_FADE = 'fade';
+ var CLASS_NAME_SHOW = 'show';
+ var SELECTOR_TITLE = '.popover-header';
+ var SELECTOR_CONTENT = '.popover-body';
+ /**
+ * ------------------------------------------------------------------------
+ * Class Definition
+ * ------------------------------------------------------------------------
+ */
+
+ var Popover = /*#__PURE__*/function (_Tooltip) {
+ _inheritsLoose(Popover, _Tooltip);
+
+ function Popover() {
+ return _Tooltip.apply(this, arguments) || this;
+ }
+
+ var _proto = Popover.prototype;
+
+ // Overrides
+ _proto.isWithContent = function isWithContent() {
+ return this.getTitle() || this._getContent();
+ };
+
+ _proto.setContent = function setContent() {
+ var tip = this.getTipElement(); // we use append for html objects to maintain js events
+
+ this.setElementContent(SelectorEngine__default['default'].findOne(SELECTOR_TITLE, tip), this.getTitle());
+
+ var content = this._getContent();
+
+ if (typeof content === 'function') {
+ content = content.call(this._element);
+ }
+
+ this.setElementContent(SelectorEngine__default['default'].findOne(SELECTOR_CONTENT, tip), content);
+ tip.classList.remove(CLASS_NAME_FADE, CLASS_NAME_SHOW);
+ } // Private
+ ;
+
+ _proto._addAttachmentClass = function _addAttachmentClass(attachment) {
+ this.getTipElement().classList.add(CLASS_PREFIX + "-" + this.updateAttachment(attachment));
+ };
+
+ _proto._getContent = function _getContent() {
+ return this._element.getAttribute('data-bs-content') || this.config.content;
+ };
+
+ _proto._cleanTipClass = function _cleanTipClass() {
+ var tip = this.getTipElement();
+ var tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX);
+
+ if (tabClass !== null && tabClass.length > 0) {
+ tabClass.map(function (token) {
+ return token.trim();
+ }).forEach(function (tClass) {
+ return tip.classList.remove(tClass);
+ });
+ }
+ } // Static
+ ;
+
+ Popover.jQueryInterface = function jQueryInterface(config) {
+ return this.each(function () {
+ var data = Data__default['default'].getData(this, DATA_KEY);
+
+ var _config = typeof config === 'object' ? config : null;
+
+ if (!data && /dispose|hide/.test(config)) {
+ return;
+ }
+
+ if (!data) {
+ data = new Popover(this, _config);
+ Data__default['default'].setData(this, DATA_KEY, data);
+ }
+
+ if (typeof config === 'string') {
+ if (typeof data[config] === 'undefined') {
+ throw new TypeError("No method named \"" + config + "\"");
+ }
+
+ data[config]();
+ }
+ });
+ };
+
+ _createClass(Popover, null, [{
+ key: "Default",
+ get: // Getters
+ function get() {
+ return Default;
+ }
+ }, {
+ key: "NAME",
+ get: function get() {
+ return NAME;
+ }
+ }, {
+ key: "DATA_KEY",
+ get: function get() {
+ return DATA_KEY;
+ }
+ }, {
+ key: "Event",
+ get: function get() {
+ return Event;
+ }
+ }, {
+ key: "EVENT_KEY",
+ get: function get() {
+ return EVENT_KEY;
+ }
+ }, {
+ key: "DefaultType",
+ get: function get() {
+ return DefaultType;
+ }
+ }]);
+
+ return Popover;
+ }(Tooltip__default['default']);
+ /**
+ * ------------------------------------------------------------------------
+ * jQuery
+ * ------------------------------------------------------------------------
+ * add .Popover to jQuery only if jQuery is present
+ */
+
+
+ defineJQueryPlugin(NAME, Popover);
+
+ return Popover;
+
+})));
+//# sourceMappingURL=popover.js.map
+/*!
+ * Bootstrap scrollspy.js v5.0.0-beta2 (https://getbootstrap.com/)
+ * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
+ */
+(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./dom/data.js'), require('./dom/event-handler.js'), require('./dom/manipulator.js'), require('./dom/selector-engine.js'), require('./base-component.js')) :
+ typeof define === 'function' && define.amd ? define(['./dom/data', './dom/event-handler', './dom/manipulator', './dom/selector-engine', './base-component'], factory) :
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.ScrollSpy = factory(global.Data, global.EventHandler, global.Manipulator, global.SelectorEngine, global.Base));
+}(this, (function (Data, EventHandler, Manipulator, SelectorEngine, BaseComponent) { 'use strict';
+
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
+
+ var Data__default = /*#__PURE__*/_interopDefaultLegacy(Data);
+ var EventHandler__default = /*#__PURE__*/_interopDefaultLegacy(EventHandler);
+ var Manipulator__default = /*#__PURE__*/_interopDefaultLegacy(Manipulator);
+ var SelectorEngine__default = /*#__PURE__*/_interopDefaultLegacy(SelectorEngine);
+ var BaseComponent__default = /*#__PURE__*/_interopDefaultLegacy(BaseComponent);
+
+ function _defineProperties(target, props) {
+ for (var i = 0; i < props.length; i++) {
+ var descriptor = props[i];
+ descriptor.enumerable = descriptor.enumerable || false;
+ descriptor.configurable = true;
+ if ("value" in descriptor) descriptor.writable = true;
+ Object.defineProperty(target, descriptor.key, descriptor);
+ }
+ }
+
+ function _createClass(Constructor, protoProps, staticProps) {
+ if (protoProps) _defineProperties(Constructor.prototype, protoProps);
+ if (staticProps) _defineProperties(Constructor, staticProps);
+ return Constructor;
+ }
+
+ function _extends() {
+ _extends = Object.assign || function (target) {
+ for (var i = 1; i < arguments.length; i++) {
+ var source = arguments[i];
+
+ for (var key in source) {
+ if (Object.prototype.hasOwnProperty.call(source, key)) {
+ target[key] = source[key];
+ }
+ }
+ }
+
+ return target;
+ };
+
+ return _extends.apply(this, arguments);
+ }
+
+ function _inheritsLoose(subClass, superClass) {
+ subClass.prototype = Object.create(superClass.prototype);
+ subClass.prototype.constructor = subClass;
+
+ _setPrototypeOf(subClass, superClass);
+ }
+
+ function _setPrototypeOf(o, p) {
+ _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {
+ o.__proto__ = p;
+ return o;
+ };
+
+ return _setPrototypeOf(o, p);
+ }
+
+ /**
+ * --------------------------------------------------------------------------
+ * Bootstrap (v5.0.0-beta2): util/index.js
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
+ * --------------------------------------------------------------------------
+ */
+ var MAX_UID = 1000000;
+
+ var toType = function toType(obj) {
+ if (obj === null || obj === undefined) {
+ return "" + obj;
+ }
+
+ return {}.toString.call(obj).match(/\s([a-z]+)/i)[1].toLowerCase();
+ };
+ /**
+ * --------------------------------------------------------------------------
+ * Public Util Api
+ * --------------------------------------------------------------------------
+ */
+
+
+ var getUID = function getUID(prefix) {
+ do {
+ prefix += Math.floor(Math.random() * MAX_UID);
+ } while (document.getElementById(prefix));
+
+ return prefix;
+ };
+
+ var getSelector = function getSelector(element) {
+ var selector = element.getAttribute('data-bs-target');
+
+ if (!selector || selector === '#') {
+ var hrefAttr = element.getAttribute('href'); // The only valid content that could double as a selector are IDs or classes,
+ // so everything starting with `#` or `.`. If a "real" URL is used as the selector,
+ // `document.querySelector` will rightfully complain it is invalid.
+ // See https://github.com/twbs/bootstrap/issues/32273
+
+ if (!hrefAttr || !hrefAttr.includes('#') && !hrefAttr.startsWith('.')) {
+ return null;
+ } // Just in case some CMS puts out a full URL with the anchor appended
+
+
+ if (hrefAttr.includes('#') && !hrefAttr.startsWith('#')) {
+ hrefAttr = '#' + hrefAttr.split('#')[1];
+ }
+
+ selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : null;
+ }
+
+ return selector;
+ };
+
+ var getSelectorFromElement = function getSelectorFromElement(element) {
+ var selector = getSelector(element);
+
+ if (selector) {
+ return document.querySelector(selector) ? selector : null;
+ }
+
+ return null;
+ };
+
+ var isElement = function isElement(obj) {
+ return (obj[0] || obj).nodeType;
+ };
+
+ var typeCheckConfig = function typeCheckConfig(componentName, config, configTypes) {
+ Object.keys(configTypes).forEach(function (property) {
+ var expectedTypes = configTypes[property];
+ var value = config[property];
+ var valueType = value && isElement(value) ? 'element' : toType(value);
+
+ if (!new RegExp(expectedTypes).test(valueType)) {
+ throw new TypeError(componentName.toUpperCase() + ": " + ("Option \"" + property + "\" provided type \"" + valueType + "\" ") + ("but expected type \"" + expectedTypes + "\"."));
+ }
+ });
+ };
+
+ var getjQuery = function getjQuery() {
+ var _window = window,
+ jQuery = _window.jQuery;
+
+ if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {
+ return jQuery;
+ }
+
+ return null;
+ };
+
+ var onDOMContentLoaded = function onDOMContentLoaded(callback) {
+ if (document.readyState === 'loading') {
+ document.addEventListener('DOMContentLoaded', callback);
+ } else {
+ callback();
+ }
+ };
+
+ document.documentElement.dir === 'rtl';
+
+ var defineJQueryPlugin = function defineJQueryPlugin(name, plugin) {
+ onDOMContentLoaded(function () {
+ var $ = getjQuery();
+ /* istanbul ignore if */
+
+ if ($) {
+ var JQUERY_NO_CONFLICT = $.fn[name];
+ $.fn[name] = plugin.jQueryInterface;
+ $.fn[name].Constructor = plugin;
+
+ $.fn[name].noConflict = function () {
+ $.fn[name] = JQUERY_NO_CONFLICT;
+ return plugin.jQueryInterface;
+ };
+ }
+ });
+ };
+
+ /**
+ * ------------------------------------------------------------------------
+ * Constants
+ * ------------------------------------------------------------------------
+ */
+
+ var NAME = 'scrollspy';
+ var DATA_KEY = 'bs.scrollspy';
+ var EVENT_KEY = "." + DATA_KEY;
+ var DATA_API_KEY = '.data-api';
+ var Default = {
+ offset: 10,
+ method: 'auto',
+ target: ''
+ };
+ var DefaultType = {
+ offset: 'number',
+ method: 'string',
+ target: '(string|element)'
+ };
+ var EVENT_ACTIVATE = "activate" + EVENT_KEY;
+ var EVENT_SCROLL = "scroll" + EVENT_KEY;
+ var EVENT_LOAD_DATA_API = "load" + EVENT_KEY + DATA_API_KEY;
+ var CLASS_NAME_DROPDOWN_ITEM = 'dropdown-item';
+ var CLASS_NAME_ACTIVE = 'active';
+ var SELECTOR_DATA_SPY = '[data-bs-spy="scroll"]';
+ var SELECTOR_NAV_LIST_GROUP = '.nav, .list-group';
+ var SELECTOR_NAV_LINKS = '.nav-link';
+ var SELECTOR_NAV_ITEMS = '.nav-item';
+ var SELECTOR_LIST_ITEMS = '.list-group-item';
+ var SELECTOR_DROPDOWN = '.dropdown';
+ var SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle';
+ var METHOD_OFFSET = 'offset';
+ var METHOD_POSITION = 'position';
+ /**
+ * ------------------------------------------------------------------------
+ * Class Definition
+ * ------------------------------------------------------------------------
+ */
+
+ var ScrollSpy = /*#__PURE__*/function (_BaseComponent) {
+ _inheritsLoose(ScrollSpy, _BaseComponent);
+
+ function ScrollSpy(element, config) {
+ var _this;
+
+ _this = _BaseComponent.call(this, element) || this;
+ _this._scrollElement = element.tagName === 'BODY' ? window : element;
+ _this._config = _this._getConfig(config);
+ _this._selector = _this._config.target + " " + SELECTOR_NAV_LINKS + ", " + _this._config.target + " " + SELECTOR_LIST_ITEMS + ", " + _this._config.target + " ." + CLASS_NAME_DROPDOWN_ITEM;
+ _this._offsets = [];
+ _this._targets = [];
+ _this._activeTarget = null;
+ _this._scrollHeight = 0;
+ EventHandler__default['default'].on(_this._scrollElement, EVENT_SCROLL, function () {
+ return _this._process();
+ });
+
+ _this.refresh();
+
+ _this._process();
+
+ return _this;
+ } // Getters
+
+
+ var _proto = ScrollSpy.prototype;
+
+ // Public
+ _proto.refresh = function refresh() {
+ var _this2 = this;
+
+ var autoMethod = this._scrollElement === this._scrollElement.window ? METHOD_OFFSET : METHOD_POSITION;
+ var offsetMethod = this._config.method === 'auto' ? autoMethod : this._config.method;
+ var offsetBase = offsetMethod === METHOD_POSITION ? this._getScrollTop() : 0;
+ this._offsets = [];
+ this._targets = [];
+ this._scrollHeight = this._getScrollHeight();
+ var targets = SelectorEngine__default['default'].find(this._selector);
+ targets.map(function (element) {
+ var targetSelector = getSelectorFromElement(element);
+ var target = targetSelector ? SelectorEngine__default['default'].findOne(targetSelector) : null;
+
+ if (target) {
+ var targetBCR = target.getBoundingClientRect();
+
+ if (targetBCR.width || targetBCR.height) {
+ return [Manipulator__default['default'][offsetMethod](target).top + offsetBase, targetSelector];
+ }
+ }
+
+ return null;
+ }).filter(function (item) {
+ return item;
+ }).sort(function (a, b) {
+ return a[0] - b[0];
+ }).forEach(function (item) {
+ _this2._offsets.push(item[0]);
+
+ _this2._targets.push(item[1]);
+ });
+ };
+
+ _proto.dispose = function dispose() {
+ _BaseComponent.prototype.dispose.call(this);
+
+ EventHandler__default['default'].off(this._scrollElement, EVENT_KEY);
+ this._scrollElement = null;
+ this._config = null;
+ this._selector = null;
+ this._offsets = null;
+ this._targets = null;
+ this._activeTarget = null;
+ this._scrollHeight = null;
+ } // Private
+ ;
+
+ _proto._getConfig = function _getConfig(config) {
+ config = _extends({}, Default, typeof config === 'object' && config ? config : {});
+
+ if (typeof config.target !== 'string' && isElement(config.target)) {
+ var id = config.target.id;
+
+ if (!id) {
+ id = getUID(NAME);
+ config.target.id = id;
+ }
+
+ config.target = "#" + id;
+ }
+
+ typeCheckConfig(NAME, config, DefaultType);
+ return config;
+ };
+
+ _proto._getScrollTop = function _getScrollTop() {
+ return this._scrollElement === window ? this._scrollElement.pageYOffset : this._scrollElement.scrollTop;
+ };
+
+ _proto._getScrollHeight = function _getScrollHeight() {
+ return this._scrollElement.scrollHeight || Math.max(document.body.scrollHeight, document.documentElement.scrollHeight);
+ };
+
+ _proto._getOffsetHeight = function _getOffsetHeight() {
+ return this._scrollElement === window ? window.innerHeight : this._scrollElement.getBoundingClientRect().height;
+ };
+
+ _proto._process = function _process() {
+ var scrollTop = this._getScrollTop() + this._config.offset;
+
+ var scrollHeight = this._getScrollHeight();
+
+ var maxScroll = this._config.offset + scrollHeight - this._getOffsetHeight();
+
+ if (this._scrollHeight !== scrollHeight) {
+ this.refresh();
+ }
+
+ if (scrollTop >= maxScroll) {
+ var target = this._targets[this._targets.length - 1];
+
+ if (this._activeTarget !== target) {
+ this._activate(target);
+ }
+
+ return;
+ }
+
+ if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {
+ this._activeTarget = null;
+
+ this._clear();
+
+ return;
+ }
+
+ for (var i = this._offsets.length; i--;) {
+ var isActiveTarget = this._activeTarget !== this._targets[i] && scrollTop >= this._offsets[i] && (typeof this._offsets[i + 1] === 'undefined' || scrollTop < this._offsets[i + 1]);
+
+ if (isActiveTarget) {
+ this._activate(this._targets[i]);
+ }
+ }
+ };
+
+ _proto._activate = function _activate(target) {
+ this._activeTarget = target;
+
+ this._clear();
+
+ var queries = this._selector.split(',').map(function (selector) {
+ return selector + "[data-bs-target=\"" + target + "\"]," + selector + "[href=\"" + target + "\"]";
+ });
+
+ var link = SelectorEngine__default['default'].findOne(queries.join(','));
+
+ if (link.classList.contains(CLASS_NAME_DROPDOWN_ITEM)) {
+ SelectorEngine__default['default'].findOne(SELECTOR_DROPDOWN_TOGGLE, link.closest(SELECTOR_DROPDOWN)).classList.add(CLASS_NAME_ACTIVE);
+ link.classList.add(CLASS_NAME_ACTIVE);
+ } else {
+ // Set triggered link as active
+ link.classList.add(CLASS_NAME_ACTIVE);
+ SelectorEngine__default['default'].parents(link, SELECTOR_NAV_LIST_GROUP).forEach(function (listGroup) {
+ // Set triggered links parents as active
+ // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor
+ SelectorEngine__default['default'].prev(listGroup, SELECTOR_NAV_LINKS + ", " + SELECTOR_LIST_ITEMS).forEach(function (item) {
+ return item.classList.add(CLASS_NAME_ACTIVE);
+ }); // Handle special case when .nav-link is inside .nav-item
+
+ SelectorEngine__default['default'].prev(listGroup, SELECTOR_NAV_ITEMS).forEach(function (navItem) {
+ SelectorEngine__default['default'].children(navItem, SELECTOR_NAV_LINKS).forEach(function (item) {
+ return item.classList.add(CLASS_NAME_ACTIVE);
+ });
+ });
+ });
+ }
+
+ EventHandler__default['default'].trigger(this._scrollElement, EVENT_ACTIVATE, {
+ relatedTarget: target
+ });
+ };
+
+ _proto._clear = function _clear() {
+ SelectorEngine__default['default'].find(this._selector).filter(function (node) {
+ return node.classList.contains(CLASS_NAME_ACTIVE);
+ }).forEach(function (node) {
+ return node.classList.remove(CLASS_NAME_ACTIVE);
+ });
+ } // Static
+ ;
+
+ ScrollSpy.jQueryInterface = function jQueryInterface(config) {
+ return this.each(function () {
+ var data = Data__default['default'].getData(this, DATA_KEY);
+
+ var _config = typeof config === 'object' && config;
+
+ if (!data) {
+ data = new ScrollSpy(this, _config);
+ }
+
+ if (typeof config === 'string') {
+ if (typeof data[config] === 'undefined') {
+ throw new TypeError("No method named \"" + config + "\"");
+ }
+
+ data[config]();
+ }
+ });
+ };
+
+ _createClass(ScrollSpy, null, [{
+ key: "Default",
+ get: function get() {
+ return Default;
+ }
+ }, {
+ key: "DATA_KEY",
+ get: function get() {
+ return DATA_KEY;
+ }
+ }]);
+
+ return ScrollSpy;
+ }(BaseComponent__default['default']);
+ /**
+ * ------------------------------------------------------------------------
+ * Data Api implementation
+ * ------------------------------------------------------------------------
+ */
+
+
+ EventHandler__default['default'].on(window, EVENT_LOAD_DATA_API, function () {
+ SelectorEngine__default['default'].find(SELECTOR_DATA_SPY).forEach(function (spy) {
+ return new ScrollSpy(spy, Manipulator__default['default'].getDataAttributes(spy));
+ });
+ });
+ /**
+ * ------------------------------------------------------------------------
+ * jQuery
+ * ------------------------------------------------------------------------
+ * add .ScrollSpy to jQuery only if jQuery is present
+ */
+
+ defineJQueryPlugin(NAME, ScrollSpy);
+
+ return ScrollSpy;
+
+})));
+//# sourceMappingURL=scrollspy.js.map
+/*!
+ * Bootstrap tab.js v5.0.0-beta2 (https://getbootstrap.com/)
+ * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
+ */
+(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./dom/data.js'), require('./dom/event-handler.js'), require('./dom/selector-engine.js'), require('./base-component.js')) :
+ typeof define === 'function' && define.amd ? define(['./dom/data', './dom/event-handler', './dom/selector-engine', './base-component'], factory) :
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Tab = factory(global.Data, global.EventHandler, global.SelectorEngine, global.Base));
+}(this, (function (Data, EventHandler, SelectorEngine, BaseComponent) { 'use strict';
+
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
+
+ var Data__default = /*#__PURE__*/_interopDefaultLegacy(Data);
+ var EventHandler__default = /*#__PURE__*/_interopDefaultLegacy(EventHandler);
+ var SelectorEngine__default = /*#__PURE__*/_interopDefaultLegacy(SelectorEngine);
+ var BaseComponent__default = /*#__PURE__*/_interopDefaultLegacy(BaseComponent);
+
+ function _defineProperties(target, props) {
+ for (var i = 0; i < props.length; i++) {
+ var descriptor = props[i];
+ descriptor.enumerable = descriptor.enumerable || false;
+ descriptor.configurable = true;
+ if ("value" in descriptor) descriptor.writable = true;
+ Object.defineProperty(target, descriptor.key, descriptor);
+ }
+ }
+
+ function _createClass(Constructor, protoProps, staticProps) {
+ if (protoProps) _defineProperties(Constructor.prototype, protoProps);
+ if (staticProps) _defineProperties(Constructor, staticProps);
+ return Constructor;
+ }
+
+ function _inheritsLoose(subClass, superClass) {
+ subClass.prototype = Object.create(superClass.prototype);
+ subClass.prototype.constructor = subClass;
+
+ _setPrototypeOf(subClass, superClass);
+ }
+
+ function _setPrototypeOf(o, p) {
+ _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {
+ o.__proto__ = p;
+ return o;
+ };
+
+ return _setPrototypeOf(o, p);
+ }
+
+ /**
+ * --------------------------------------------------------------------------
+ * Bootstrap (v5.0.0-beta2): util/index.js
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
+ * --------------------------------------------------------------------------
+ */
+ var MILLISECONDS_MULTIPLIER = 1000;
+ var TRANSITION_END = 'transitionend'; // Shoutout AngusCroll (https://goo.gl/pxwQGp)
+
+ var getSelector = function getSelector(element) {
+ var selector = element.getAttribute('data-bs-target');
+
+ if (!selector || selector === '#') {
+ var hrefAttr = element.getAttribute('href'); // The only valid content that could double as a selector are IDs or classes,
+ // so everything starting with `#` or `.`. If a "real" URL is used as the selector,
+ // `document.querySelector` will rightfully complain it is invalid.
+ // See https://github.com/twbs/bootstrap/issues/32273
+
+ if (!hrefAttr || !hrefAttr.includes('#') && !hrefAttr.startsWith('.')) {
+ return null;
+ } // Just in case some CMS puts out a full URL with the anchor appended
+
+
+ if (hrefAttr.includes('#') && !hrefAttr.startsWith('#')) {
+ hrefAttr = '#' + hrefAttr.split('#')[1];
+ }
+
+ selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : null;
+ }
+
+ return selector;
+ };
+
+ var getElementFromSelector = function getElementFromSelector(element) {
+ var selector = getSelector(element);
+ return selector ? document.querySelector(selector) : null;
+ };
+
+ var getTransitionDurationFromElement = function getTransitionDurationFromElement(element) {
+ if (!element) {
+ return 0;
+ } // Get transition-duration of the element
+
+
+ var _window$getComputedSt = window.getComputedStyle(element),
+ transitionDuration = _window$getComputedSt.transitionDuration,
+ transitionDelay = _window$getComputedSt.transitionDelay;
+
+ var floatTransitionDuration = Number.parseFloat(transitionDuration);
+ var floatTransitionDelay = Number.parseFloat(transitionDelay); // Return 0 if element or transition duration is not found
+
+ if (!floatTransitionDuration && !floatTransitionDelay) {
+ return 0;
+ } // If multiple durations are defined, take the first
+
+
+ transitionDuration = transitionDuration.split(',')[0];
+ transitionDelay = transitionDelay.split(',')[0];
+ return (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER;
+ };
+
+ var triggerTransitionEnd = function triggerTransitionEnd(element) {
+ element.dispatchEvent(new Event(TRANSITION_END));
+ };
+
+ var emulateTransitionEnd = function emulateTransitionEnd(element, duration) {
+ var called = false;
+ var durationPadding = 5;
+ var emulatedDuration = duration + durationPadding;
+
+ function listener() {
+ called = true;
+ element.removeEventListener(TRANSITION_END, listener);
+ }
+
+ element.addEventListener(TRANSITION_END, listener);
+ setTimeout(function () {
+ if (!called) {
+ triggerTransitionEnd(element);
+ }
+ }, emulatedDuration);
+ };
+
+ var reflow = function reflow(element) {
+ return element.offsetHeight;
+ };
+
+ var getjQuery = function getjQuery() {
+ var _window = window,
+ jQuery = _window.jQuery;
+
+ if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {
+ return jQuery;
+ }
+
+ return null;
+ };
+
+ var onDOMContentLoaded = function onDOMContentLoaded(callback) {
+ if (document.readyState === 'loading') {
+ document.addEventListener('DOMContentLoaded', callback);
+ } else {
+ callback();
+ }
+ };
+
+ document.documentElement.dir === 'rtl';
+
+ var defineJQueryPlugin = function defineJQueryPlugin(name, plugin) {
+ onDOMContentLoaded(function () {
+ var $ = getjQuery();
+ /* istanbul ignore if */
+
+ if ($) {
+ var JQUERY_NO_CONFLICT = $.fn[name];
+ $.fn[name] = plugin.jQueryInterface;
+ $.fn[name].Constructor = plugin;
+
+ $.fn[name].noConflict = function () {
+ $.fn[name] = JQUERY_NO_CONFLICT;
+ return plugin.jQueryInterface;
+ };
+ }
+ });
+ };
+
+ /**
+ * ------------------------------------------------------------------------
+ * Constants
+ * ------------------------------------------------------------------------
+ */
+
+ var NAME = 'tab';
+ var DATA_KEY = 'bs.tab';
+ var EVENT_KEY = "." + DATA_KEY;
+ var DATA_API_KEY = '.data-api';
+ var EVENT_HIDE = "hide" + EVENT_KEY;
+ var EVENT_HIDDEN = "hidden" + EVENT_KEY;
+ var EVENT_SHOW = "show" + EVENT_KEY;
+ var EVENT_SHOWN = "shown" + EVENT_KEY;
+ var EVENT_CLICK_DATA_API = "click" + EVENT_KEY + DATA_API_KEY;
+ var CLASS_NAME_DROPDOWN_MENU = 'dropdown-menu';
+ var CLASS_NAME_ACTIVE = 'active';
+ var CLASS_NAME_DISABLED = 'disabled';
+ var CLASS_NAME_FADE = 'fade';
+ var CLASS_NAME_SHOW = 'show';
+ var SELECTOR_DROPDOWN = '.dropdown';
+ var SELECTOR_NAV_LIST_GROUP = '.nav, .list-group';
+ var SELECTOR_ACTIVE = '.active';
+ var SELECTOR_ACTIVE_UL = ':scope > li > .active';
+ var SELECTOR_DATA_TOGGLE = '[data-bs-toggle="tab"], [data-bs-toggle="pill"], [data-bs-toggle="list"]';
+ var SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle';
+ var SELECTOR_DROPDOWN_ACTIVE_CHILD = ':scope > .dropdown-menu .active';
+ /**
+ * ------------------------------------------------------------------------
+ * Class Definition
+ * ------------------------------------------------------------------------
+ */
+
+ var Tab = /*#__PURE__*/function (_BaseComponent) {
+ _inheritsLoose(Tab, _BaseComponent);
+
+ function Tab() {
+ return _BaseComponent.apply(this, arguments) || this;
+ }
+
+ var _proto = Tab.prototype;
+
+ // Public
+ _proto.show = function show() {
+ var _this = this;
+
+ if (this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE && this._element.classList.contains(CLASS_NAME_ACTIVE) || this._element.classList.contains(CLASS_NAME_DISABLED)) {
+ return;
+ }
+
+ var previous;
+ var target = getElementFromSelector(this._element);
+
+ var listElement = this._element.closest(SELECTOR_NAV_LIST_GROUP);
+
+ if (listElement) {
+ var itemSelector = listElement.nodeName === 'UL' || listElement.nodeName === 'OL' ? SELECTOR_ACTIVE_UL : SELECTOR_ACTIVE;
+ previous = SelectorEngine__default['default'].find(itemSelector, listElement);
+ previous = previous[previous.length - 1];
+ }
+
+ var hideEvent = previous ? EventHandler__default['default'].trigger(previous, EVENT_HIDE, {
+ relatedTarget: this._element
+ }) : null;
+ var showEvent = EventHandler__default['default'].trigger(this._element, EVENT_SHOW, {
+ relatedTarget: previous
+ });
+
+ if (showEvent.defaultPrevented || hideEvent !== null && hideEvent.defaultPrevented) {
+ return;
+ }
+
+ this._activate(this._element, listElement);
+
+ var complete = function complete() {
+ EventHandler__default['default'].trigger(previous, EVENT_HIDDEN, {
+ relatedTarget: _this._element
+ });
+ EventHandler__default['default'].trigger(_this._element, EVENT_SHOWN, {
+ relatedTarget: previous
+ });
+ };
+
+ if (target) {
+ this._activate(target, target.parentNode, complete);
+ } else {
+ complete();
+ }
+ } // Private
+ ;
+
+ _proto._activate = function _activate(element, container, callback) {
+ var _this2 = this;
+
+ var activeElements = container && (container.nodeName === 'UL' || container.nodeName === 'OL') ? SelectorEngine__default['default'].find(SELECTOR_ACTIVE_UL, container) : SelectorEngine__default['default'].children(container, SELECTOR_ACTIVE);
+ var active = activeElements[0];
+ var isTransitioning = callback && active && active.classList.contains(CLASS_NAME_FADE);
+
+ var complete = function complete() {
+ return _this2._transitionComplete(element, active, callback);
+ };
+
+ if (active && isTransitioning) {
+ var transitionDuration = getTransitionDurationFromElement(active);
+ active.classList.remove(CLASS_NAME_SHOW);
+ EventHandler__default['default'].one(active, 'transitionend', complete);
+ emulateTransitionEnd(active, transitionDuration);
+ } else {
+ complete();
+ }
+ };
+
+ _proto._transitionComplete = function _transitionComplete(element, active, callback) {
+ if (active) {
+ active.classList.remove(CLASS_NAME_ACTIVE);
+ var dropdownChild = SelectorEngine__default['default'].findOne(SELECTOR_DROPDOWN_ACTIVE_CHILD, active.parentNode);
+
+ if (dropdownChild) {
+ dropdownChild.classList.remove(CLASS_NAME_ACTIVE);
+ }
+
+ if (active.getAttribute('role') === 'tab') {
+ active.setAttribute('aria-selected', false);
+ }
+ }
+
+ element.classList.add(CLASS_NAME_ACTIVE);
+
+ if (element.getAttribute('role') === 'tab') {
+ element.setAttribute('aria-selected', true);
+ }
+
+ reflow(element);
+
+ if (element.classList.contains(CLASS_NAME_FADE)) {
+ element.classList.add(CLASS_NAME_SHOW);
+ }
+
+ if (element.parentNode && element.parentNode.classList.contains(CLASS_NAME_DROPDOWN_MENU)) {
+ var dropdownElement = element.closest(SELECTOR_DROPDOWN);
+
+ if (dropdownElement) {
+ SelectorEngine__default['default'].find(SELECTOR_DROPDOWN_TOGGLE).forEach(function (dropdown) {
+ return dropdown.classList.add(CLASS_NAME_ACTIVE);
+ });
+ }
+
+ element.setAttribute('aria-expanded', true);
+ }
+
+ if (callback) {
+ callback();
+ }
+ } // Static
+ ;
+
+ Tab.jQueryInterface = function jQueryInterface(config) {
+ return this.each(function () {
+ var data = Data__default['default'].getData(this, DATA_KEY) || new Tab(this);
+
+ if (typeof config === 'string') {
+ if (typeof data[config] === 'undefined') {
+ throw new TypeError("No method named \"" + config + "\"");
+ }
+
+ data[config]();
+ }
+ });
+ };
+
+ _createClass(Tab, null, [{
+ key: "DATA_KEY",
+ get: // Getters
+ function get() {
+ return DATA_KEY;
+ }
+ }]);
+
+ return Tab;
+ }(BaseComponent__default['default']);
+ /**
+ * ------------------------------------------------------------------------
+ * Data Api implementation
+ * ------------------------------------------------------------------------
+ */
+
+
+ EventHandler__default['default'].on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {
+ event.preventDefault();
+ var data = Data__default['default'].getData(this, DATA_KEY) || new Tab(this);
+ data.show();
+ });
+ /**
+ * ------------------------------------------------------------------------
+ * jQuery
+ * ------------------------------------------------------------------------
+ * add .Tab to jQuery only if jQuery is present
+ */
+
+ defineJQueryPlugin(NAME, Tab);
+
+ return Tab;
+
+})));
+//# sourceMappingURL=tab.js.map
+/*!
+ * Bootstrap toast.js v5.0.0-beta2 (https://getbootstrap.com/)
+ * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
+ */
+(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./dom/data.js'), require('./dom/event-handler.js'), require('./dom/manipulator.js'), require('./base-component.js')) :
+ typeof define === 'function' && define.amd ? define(['./dom/data', './dom/event-handler', './dom/manipulator', './base-component'], factory) :
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Toast = factory(global.Data, global.EventHandler, global.Manipulator, global.Base));
+}(this, (function (Data, EventHandler, Manipulator, BaseComponent) { 'use strict';
+
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
+
+ var Data__default = /*#__PURE__*/_interopDefaultLegacy(Data);
+ var EventHandler__default = /*#__PURE__*/_interopDefaultLegacy(EventHandler);
+ var Manipulator__default = /*#__PURE__*/_interopDefaultLegacy(Manipulator);
+ var BaseComponent__default = /*#__PURE__*/_interopDefaultLegacy(BaseComponent);
+
+ function _defineProperties(target, props) {
+ for (var i = 0; i < props.length; i++) {
+ var descriptor = props[i];
+ descriptor.enumerable = descriptor.enumerable || false;
+ descriptor.configurable = true;
+ if ("value" in descriptor) descriptor.writable = true;
+ Object.defineProperty(target, descriptor.key, descriptor);
+ }
+ }
+
+ function _createClass(Constructor, protoProps, staticProps) {
+ if (protoProps) _defineProperties(Constructor.prototype, protoProps);
+ if (staticProps) _defineProperties(Constructor, staticProps);
+ return Constructor;
+ }
+
+ function _extends() {
+ _extends = Object.assign || function (target) {
+ for (var i = 1; i < arguments.length; i++) {
+ var source = arguments[i];
+
+ for (var key in source) {
+ if (Object.prototype.hasOwnProperty.call(source, key)) {
+ target[key] = source[key];
+ }
+ }
+ }
+
+ return target;
+ };
+
+ return _extends.apply(this, arguments);
+ }
+
+ function _inheritsLoose(subClass, superClass) {
+ subClass.prototype = Object.create(superClass.prototype);
+ subClass.prototype.constructor = subClass;
+
+ _setPrototypeOf(subClass, superClass);
+ }
+
+ function _setPrototypeOf(o, p) {
+ _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {
+ o.__proto__ = p;
+ return o;
+ };
+
+ return _setPrototypeOf(o, p);
+ }
+
+ /**
+ * --------------------------------------------------------------------------
+ * Bootstrap (v5.0.0-beta2): util/index.js
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
+ * --------------------------------------------------------------------------
+ */
+ var MILLISECONDS_MULTIPLIER = 1000;
+ var TRANSITION_END = 'transitionend'; // Shoutout AngusCroll (https://goo.gl/pxwQGp)
+
+ var toType = function toType(obj) {
+ if (obj === null || obj === undefined) {
+ return "" + obj;
+ }
+
+ return {}.toString.call(obj).match(/\s([a-z]+)/i)[1].toLowerCase();
+ };
+
+ var getTransitionDurationFromElement = function getTransitionDurationFromElement(element) {
+ if (!element) {
+ return 0;
+ } // Get transition-duration of the element
+
+
+ var _window$getComputedSt = window.getComputedStyle(element),
+ transitionDuration = _window$getComputedSt.transitionDuration,
+ transitionDelay = _window$getComputedSt.transitionDelay;
+
+ var floatTransitionDuration = Number.parseFloat(transitionDuration);
+ var floatTransitionDelay = Number.parseFloat(transitionDelay); // Return 0 if element or transition duration is not found
+
+ if (!floatTransitionDuration && !floatTransitionDelay) {
+ return 0;
+ } // If multiple durations are defined, take the first
+
+
+ transitionDuration = transitionDuration.split(',')[0];
+ transitionDelay = transitionDelay.split(',')[0];
+ return (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER;
+ };
+
+ var triggerTransitionEnd = function triggerTransitionEnd(element) {
+ element.dispatchEvent(new Event(TRANSITION_END));
+ };
+
+ var isElement = function isElement(obj) {
+ return (obj[0] || obj).nodeType;
+ };
+
+ var emulateTransitionEnd = function emulateTransitionEnd(element, duration) {
+ var called = false;
+ var durationPadding = 5;
+ var emulatedDuration = duration + durationPadding;
+
+ function listener() {
+ called = true;
+ element.removeEventListener(TRANSITION_END, listener);
+ }
+
+ element.addEventListener(TRANSITION_END, listener);
+ setTimeout(function () {
+ if (!called) {
+ triggerTransitionEnd(element);
+ }
+ }, emulatedDuration);
+ };
+
+ var typeCheckConfig = function typeCheckConfig(componentName, config, configTypes) {
+ Object.keys(configTypes).forEach(function (property) {
+ var expectedTypes = configTypes[property];
+ var value = config[property];
+ var valueType = value && isElement(value) ? 'element' : toType(value);
+
+ if (!new RegExp(expectedTypes).test(valueType)) {
+ throw new TypeError(componentName.toUpperCase() + ": " + ("Option \"" + property + "\" provided type \"" + valueType + "\" ") + ("but expected type \"" + expectedTypes + "\"."));
+ }
+ });
+ };
+
+ var reflow = function reflow(element) {
+ return element.offsetHeight;
+ };
+
+ var getjQuery = function getjQuery() {
+ var _window = window,
+ jQuery = _window.jQuery;
+
+ if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {
+ return jQuery;
+ }
+
+ return null;
+ };
+
+ var onDOMContentLoaded = function onDOMContentLoaded(callback) {
+ if (document.readyState === 'loading') {
+ document.addEventListener('DOMContentLoaded', callback);
+ } else {
+ callback();
+ }
+ };
+
+ document.documentElement.dir === 'rtl';
+
+ var defineJQueryPlugin = function defineJQueryPlugin(name, plugin) {
+ onDOMContentLoaded(function () {
+ var $ = getjQuery();
+ /* istanbul ignore if */
+
+ if ($) {
+ var JQUERY_NO_CONFLICT = $.fn[name];
+ $.fn[name] = plugin.jQueryInterface;
+ $.fn[name].Constructor = plugin;
+
+ $.fn[name].noConflict = function () {
+ $.fn[name] = JQUERY_NO_CONFLICT;
+ return plugin.jQueryInterface;
+ };
+ }
+ });
+ };
+
+ /**
+ * ------------------------------------------------------------------------
+ * Constants
+ * ------------------------------------------------------------------------
+ */
+
+ var NAME = 'toast';
+ var DATA_KEY = 'bs.toast';
+ var EVENT_KEY = "." + DATA_KEY;
+ var EVENT_CLICK_DISMISS = "click.dismiss" + EVENT_KEY;
+ var EVENT_HIDE = "hide" + EVENT_KEY;
+ var EVENT_HIDDEN = "hidden" + EVENT_KEY;
+ var EVENT_SHOW = "show" + EVENT_KEY;
+ var EVENT_SHOWN = "shown" + EVENT_KEY;
+ var CLASS_NAME_FADE = 'fade';
+ var CLASS_NAME_HIDE = 'hide';
+ var CLASS_NAME_SHOW = 'show';
+ var CLASS_NAME_SHOWING = 'showing';
+ var DefaultType = {
+ animation: 'boolean',
+ autohide: 'boolean',
+ delay: 'number'
+ };
+ var Default = {
+ animation: true,
+ autohide: true,
+ delay: 5000
+ };
+ var SELECTOR_DATA_DISMISS = '[data-bs-dismiss="toast"]';
+ /**
+ * ------------------------------------------------------------------------
+ * Class Definition
+ * ------------------------------------------------------------------------
+ */
+
+ var Toast = /*#__PURE__*/function (_BaseComponent) {
+ _inheritsLoose(Toast, _BaseComponent);
+
+ function Toast(element, config) {
+ var _this;
+
+ _this = _BaseComponent.call(this, element) || this;
+ _this._config = _this._getConfig(config);
+ _this._timeout = null;
+
+ _this._setListeners();
+
+ return _this;
+ } // Getters
+
+
+ var _proto = Toast.prototype;
+
+ // Public
+ _proto.show = function show() {
+ var _this2 = this;
+
+ var showEvent = EventHandler__default['default'].trigger(this._element, EVENT_SHOW);
+
+ if (showEvent.defaultPrevented) {
+ return;
+ }
+
+ this._clearTimeout();
+
+ if (this._config.animation) {
+ this._element.classList.add(CLASS_NAME_FADE);
+ }
+
+ var complete = function complete() {
+ _this2._element.classList.remove(CLASS_NAME_SHOWING);
+
+ _this2._element.classList.add(CLASS_NAME_SHOW);
+
+ EventHandler__default['default'].trigger(_this2._element, EVENT_SHOWN);
+
+ if (_this2._config.autohide) {
+ _this2._timeout = setTimeout(function () {
+ _this2.hide();
+ }, _this2._config.delay);
+ }
+ };
+
+ this._element.classList.remove(CLASS_NAME_HIDE);
+
+ reflow(this._element);
+
+ this._element.classList.add(CLASS_NAME_SHOWING);
+
+ if (this._config.animation) {
+ var transitionDuration = getTransitionDurationFromElement(this._element);
+ EventHandler__default['default'].one(this._element, 'transitionend', complete);
+ emulateTransitionEnd(this._element, transitionDuration);
+ } else {
+ complete();
+ }
+ };
+
+ _proto.hide = function hide() {
+ var _this3 = this;
+
+ if (!this._element.classList.contains(CLASS_NAME_SHOW)) {
+ return;
+ }
+
+ var hideEvent = EventHandler__default['default'].trigger(this._element, EVENT_HIDE);
+
+ if (hideEvent.defaultPrevented) {
+ return;
+ }
+
+ var complete = function complete() {
+ _this3._element.classList.add(CLASS_NAME_HIDE);
+
+ EventHandler__default['default'].trigger(_this3._element, EVENT_HIDDEN);
+ };
+
+ this._element.classList.remove(CLASS_NAME_SHOW);
+
+ if (this._config.animation) {
+ var transitionDuration = getTransitionDurationFromElement(this._element);
+ EventHandler__default['default'].one(this._element, 'transitionend', complete);
+ emulateTransitionEnd(this._element, transitionDuration);
+ } else {
+ complete();
+ }
+ };
+
+ _proto.dispose = function dispose() {
+ this._clearTimeout();
+
+ if (this._element.classList.contains(CLASS_NAME_SHOW)) {
+ this._element.classList.remove(CLASS_NAME_SHOW);
+ }
+
+ EventHandler__default['default'].off(this._element, EVENT_CLICK_DISMISS);
+
+ _BaseComponent.prototype.dispose.call(this);
+
+ this._config = null;
+ } // Private
+ ;
+
+ _proto._getConfig = function _getConfig(config) {
+ config = _extends({}, Default, Manipulator__default['default'].getDataAttributes(this._element), typeof config === 'object' && config ? config : {});
+ typeCheckConfig(NAME, config, this.constructor.DefaultType);
+ return config;
+ };
+
+ _proto._setListeners = function _setListeners() {
+ var _this4 = this;
+
+ EventHandler__default['default'].on(this._element, EVENT_CLICK_DISMISS, SELECTOR_DATA_DISMISS, function () {
+ return _this4.hide();
+ });
+ };
+
+ _proto._clearTimeout = function _clearTimeout() {
+ clearTimeout(this._timeout);
+ this._timeout = null;
+ } // Static
+ ;
+
+ Toast.jQueryInterface = function jQueryInterface(config) {
+ return this.each(function () {
+ var data = Data__default['default'].getData(this, DATA_KEY);
+
+ var _config = typeof config === 'object' && config;
+
+ if (!data) {
+ data = new Toast(this, _config);
+ }
+
+ if (typeof config === 'string') {
+ if (typeof data[config] === 'undefined') {
+ throw new TypeError("No method named \"" + config + "\"");
+ }
+
+ data[config](this);
+ }
+ });
+ };
+
+ _createClass(Toast, null, [{
+ key: "DefaultType",
+ get: function get() {
+ return DefaultType;
+ }
+ }, {
+ key: "Default",
+ get: function get() {
+ return Default;
+ }
+ }, {
+ key: "DATA_KEY",
+ get: function get() {
+ return DATA_KEY;
+ }
+ }]);
+
+ return Toast;
+ }(BaseComponent__default['default']);
+ /**
+ * ------------------------------------------------------------------------
+ * jQuery
+ * ------------------------------------------------------------------------
+ * add .Toast to jQuery only if jQuery is present
+ */
+
+
+ defineJQueryPlugin(NAME, Toast);
+
+ return Toast;
+
+})));
+//# sourceMappingURL=toast.js.map
+/*!
+ * Bootstrap tooltip.js v5.0.0-beta2 (https://getbootstrap.com/)
+ * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
+ */
+(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('@popperjs/core'), require('./dom/data.js'), require('./dom/event-handler.js'), require('./dom/manipulator.js'), require('./dom/selector-engine.js'), require('./base-component.js')) :
+ typeof define === 'function' && define.amd ? define(['@popperjs/core', './dom/data', './dom/event-handler', './dom/manipulator', './dom/selector-engine', './base-component'], factory) :
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Tooltip = factory(global.Popper, global.Data, global.EventHandler, global.Manipulator, global.SelectorEngine, global.Base));
+}(this, (function (Popper, Data, EventHandler, Manipulator, SelectorEngine, BaseComponent) { 'use strict';
+
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
+
+ function _interopNamespace(e) {
+ if (e && e.__esModule) return e;
+ var n = Object.create(null);
+ if (e) {
+ Object.keys(e).forEach(function (k) {
+ if (k !== 'default') {
+ var d = Object.getOwnPropertyDescriptor(e, k);
+ Object.defineProperty(n, k, d.get ? d : {
+ enumerable: true,
+ get: function () {
+ return e[k];
+ }
+ });
+ }
+ });
+ }
+ n['default'] = e;
+ return Object.freeze(n);
+ }
+
+ var Popper__namespace = /*#__PURE__*/_interopNamespace(Popper);
+ var Data__default = /*#__PURE__*/_interopDefaultLegacy(Data);
+ var EventHandler__default = /*#__PURE__*/_interopDefaultLegacy(EventHandler);
+ var Manipulator__default = /*#__PURE__*/_interopDefaultLegacy(Manipulator);
+ var SelectorEngine__default = /*#__PURE__*/_interopDefaultLegacy(SelectorEngine);
+ var BaseComponent__default = /*#__PURE__*/_interopDefaultLegacy(BaseComponent);
+
+ function _defineProperties(target, props) {
+ for (var i = 0; i < props.length; i++) {
+ var descriptor = props[i];
+ descriptor.enumerable = descriptor.enumerable || false;
+ descriptor.configurable = true;
+ if ("value" in descriptor) descriptor.writable = true;
+ Object.defineProperty(target, descriptor.key, descriptor);
+ }
+ }
+
+ function _createClass(Constructor, protoProps, staticProps) {
+ if (protoProps) _defineProperties(Constructor.prototype, protoProps);
+ if (staticProps) _defineProperties(Constructor, staticProps);
+ return Constructor;
+ }
+
+ function _extends() {
+ _extends = Object.assign || function (target) {
+ for (var i = 1; i < arguments.length; i++) {
+ var source = arguments[i];
+
+ for (var key in source) {
+ if (Object.prototype.hasOwnProperty.call(source, key)) {
+ target[key] = source[key];
+ }
+ }
+ }
+
+ return target;
+ };
+
+ return _extends.apply(this, arguments);
+ }
+
+ function _inheritsLoose(subClass, superClass) {
+ subClass.prototype = Object.create(superClass.prototype);
+ subClass.prototype.constructor = subClass;
+
+ _setPrototypeOf(subClass, superClass);
+ }
+
+ function _setPrototypeOf(o, p) {
+ _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {
+ o.__proto__ = p;
+ return o;
+ };
+
+ return _setPrototypeOf(o, p);
+ }
+
+ /**
+ * --------------------------------------------------------------------------
+ * Bootstrap (v5.0.0-beta2): util/index.js
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
+ * --------------------------------------------------------------------------
+ */
+ var MAX_UID = 1000000;
+ var MILLISECONDS_MULTIPLIER = 1000;
+ var TRANSITION_END = 'transitionend'; // Shoutout AngusCroll (https://goo.gl/pxwQGp)
+
+ var toType = function toType(obj) {
+ if (obj === null || obj === undefined) {
+ return "" + obj;
+ }
+
+ return {}.toString.call(obj).match(/\s([a-z]+)/i)[1].toLowerCase();
+ };
+ /**
+ * --------------------------------------------------------------------------
+ * Public Util Api
+ * --------------------------------------------------------------------------
+ */
+
+
+ var getUID = function getUID(prefix) {
+ do {
+ prefix += Math.floor(Math.random() * MAX_UID);
+ } while (document.getElementById(prefix));
+
+ return prefix;
+ };
+
+ var getTransitionDurationFromElement = function getTransitionDurationFromElement(element) {
+ if (!element) {
+ return 0;
+ } // Get transition-duration of the element
+
+
+ var _window$getComputedSt = window.getComputedStyle(element),
+ transitionDuration = _window$getComputedSt.transitionDuration,
+ transitionDelay = _window$getComputedSt.transitionDelay;
+
+ var floatTransitionDuration = Number.parseFloat(transitionDuration);
+ var floatTransitionDelay = Number.parseFloat(transitionDelay); // Return 0 if element or transition duration is not found
+
+ if (!floatTransitionDuration && !floatTransitionDelay) {
+ return 0;
+ } // If multiple durations are defined, take the first
+
+
+ transitionDuration = transitionDuration.split(',')[0];
+ transitionDelay = transitionDelay.split(',')[0];
+ return (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER;
+ };
+
+ var triggerTransitionEnd = function triggerTransitionEnd(element) {
+ element.dispatchEvent(new Event(TRANSITION_END));
+ };
+
+ var isElement = function isElement(obj) {
+ return (obj[0] || obj).nodeType;
+ };
+
+ var emulateTransitionEnd = function emulateTransitionEnd(element, duration) {
+ var called = false;
+ var durationPadding = 5;
+ var emulatedDuration = duration + durationPadding;
+
+ function listener() {
+ called = true;
+ element.removeEventListener(TRANSITION_END, listener);
+ }
+
+ element.addEventListener(TRANSITION_END, listener);
+ setTimeout(function () {
+ if (!called) {
+ triggerTransitionEnd(element);
+ }
+ }, emulatedDuration);
+ };
+
+ var typeCheckConfig = function typeCheckConfig(componentName, config, configTypes) {
+ Object.keys(configTypes).forEach(function (property) {
+ var expectedTypes = configTypes[property];
+ var value = config[property];
+ var valueType = value && isElement(value) ? 'element' : toType(value);
+
+ if (!new RegExp(expectedTypes).test(valueType)) {
+ throw new TypeError(componentName.toUpperCase() + ": " + ("Option \"" + property + "\" provided type \"" + valueType + "\" ") + ("but expected type \"" + expectedTypes + "\"."));
+ }
+ });
+ };
+
+ var findShadowRoot = function findShadowRoot(element) {
+ if (!document.documentElement.attachShadow) {
+ return null;
+ } // Can find the shadow root otherwise it'll return the document
+
+
+ if (typeof element.getRootNode === 'function') {
+ var root = element.getRootNode();
+ return root instanceof ShadowRoot ? root : null;
+ }
+
+ if (element instanceof ShadowRoot) {
+ return element;
+ } // when we don't find a shadow root
+
+
+ if (!element.parentNode) {
+ return null;
+ }
+
+ return findShadowRoot(element.parentNode);
+ };
+
+ var noop = function noop() {
+ return function () {};
+ };
+
+ var getjQuery = function getjQuery() {
+ var _window = window,
+ jQuery = _window.jQuery;
+
+ if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {
+ return jQuery;
+ }
+
+ return null;
+ };
+
+ var onDOMContentLoaded = function onDOMContentLoaded(callback) {
+ if (document.readyState === 'loading') {
+ document.addEventListener('DOMContentLoaded', callback);
+ } else {
+ callback();
+ }
+ };
+
+ var isRTL = document.documentElement.dir === 'rtl';
+
+ var defineJQueryPlugin = function defineJQueryPlugin(name, plugin) {
+ onDOMContentLoaded(function () {
+ var $ = getjQuery();
+ /* istanbul ignore if */
+
+ if ($) {
+ var JQUERY_NO_CONFLICT = $.fn[name];
+ $.fn[name] = plugin.jQueryInterface;
+ $.fn[name].Constructor = plugin;
+
+ $.fn[name].noConflict = function () {
+ $.fn[name] = JQUERY_NO_CONFLICT;
+ return plugin.jQueryInterface;
+ };
+ }
+ });
+ };
+
+ /**
+ * --------------------------------------------------------------------------
+ * Bootstrap (v5.0.0-beta2): util/sanitizer.js
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
+ * --------------------------------------------------------------------------
+ */
+ var uriAttrs = new Set(['background', 'cite', 'href', 'itemtype', 'longdesc', 'poster', 'src', 'xlink:href']);
+ var ARIA_ATTRIBUTE_PATTERN = /^aria-[\w-]*$/i;
+ /**
+ * A pattern that recognizes a commonly useful subset of URLs that are safe.
+ *
+ * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts
+ */
+
+ var SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file):|[^#&/:?]*(?:[#/?]|$))/gi;
+ /**
+ * A pattern that matches safe data URLs. Only matches image, video and audio types.
+ *
+ * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts
+ */
+
+ var DATA_URL_PATTERN = /^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[\d+/a-z]+=*$/i;
+
+ var allowedAttribute = function allowedAttribute(attr, allowedAttributeList) {
+ var attrName = attr.nodeName.toLowerCase();
+
+ if (allowedAttributeList.includes(attrName)) {
+ if (uriAttrs.has(attrName)) {
+ return Boolean(SAFE_URL_PATTERN.test(attr.nodeValue) || DATA_URL_PATTERN.test(attr.nodeValue));
+ }
+
+ return true;
+ }
+
+ var regExp = allowedAttributeList.filter(function (attrRegex) {
+ return attrRegex instanceof RegExp;
+ }); // Check if a regular expression validates the attribute.
+
+ for (var i = 0, len = regExp.length; i < len; i++) {
+ if (regExp[i].test(attrName)) {
+ return true;
+ }
+ }
+
+ return false;
+ };
+
+ var DefaultAllowlist = {
+ // Global attributes allowed on any supplied element below.
+ '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],
+ a: ['target', 'href', 'title', 'rel'],
+ area: [],
+ b: [],
+ br: [],
+ col: [],
+ code: [],
+ div: [],
+ em: [],
+ hr: [],
+ h1: [],
+ h2: [],
+ h3: [],
+ h4: [],
+ h5: [],
+ h6: [],
+ i: [],
+ img: ['src', 'srcset', 'alt', 'title', 'width', 'height'],
+ li: [],
+ ol: [],
+ p: [],
+ pre: [],
+ s: [],
+ small: [],
+ span: [],
+ sub: [],
+ sup: [],
+ strong: [],
+ u: [],
+ ul: []
+ };
+ function sanitizeHtml(unsafeHtml, allowList, sanitizeFn) {
+ var _ref;
+
+ if (!unsafeHtml.length) {
+ return unsafeHtml;
+ }
+
+ if (sanitizeFn && typeof sanitizeFn === 'function') {
+ return sanitizeFn(unsafeHtml);
+ }
+
+ var domParser = new window.DOMParser();
+ var createdDocument = domParser.parseFromString(unsafeHtml, 'text/html');
+ var allowlistKeys = Object.keys(allowList);
+
+ var elements = (_ref = []).concat.apply(_ref, createdDocument.body.querySelectorAll('*'));
+
+ var _loop = function _loop(i, len) {
+ var _ref2;
+
+ var el = elements[i];
+ var elName = el.nodeName.toLowerCase();
+
+ if (!allowlistKeys.includes(elName)) {
+ el.parentNode.removeChild(el);
+ return "continue";
+ }
+
+ var attributeList = (_ref2 = []).concat.apply(_ref2, el.attributes);
+
+ var allowedAttributes = [].concat(allowList['*'] || [], allowList[elName] || []);
+ attributeList.forEach(function (attr) {
+ if (!allowedAttribute(attr, allowedAttributes)) {
+ el.removeAttribute(attr.nodeName);
+ }
+ });
+ };
+
+ for (var i = 0, len = elements.length; i < len; i++) {
+ var _ret = _loop(i);
+
+ if (_ret === "continue") continue;
+ }
+
+ return createdDocument.body.innerHTML;
+ }
+
+ /**
+ * ------------------------------------------------------------------------
+ * Constants
+ * ------------------------------------------------------------------------
+ */
+
+ var NAME = 'tooltip';
+ var DATA_KEY = 'bs.tooltip';
+ var EVENT_KEY = "." + DATA_KEY;
+ var CLASS_PREFIX = 'bs-tooltip';
+ var BSCLS_PREFIX_REGEX = new RegExp("(^|\\s)" + CLASS_PREFIX + "\\S+", 'g');
+ var DISALLOWED_ATTRIBUTES = new Set(['sanitize', 'allowList', 'sanitizeFn']);
+ var DefaultType = {
+ animation: 'boolean',
+ template: 'string',
+ title: '(string|element|function)',
+ trigger: 'string',
+ delay: '(number|object)',
+ html: 'boolean',
+ selector: '(string|boolean)',
+ placement: '(string|function)',
+ offset: '(array|string|function)',
+ container: '(string|element|boolean)',
+ fallbackPlacements: 'array',
+ boundary: '(string|element)',
+ customClass: '(string|function)',
+ sanitize: 'boolean',
+ sanitizeFn: '(null|function)',
+ allowList: 'object',
+ popperConfig: '(null|object|function)'
+ };
+ var AttachmentMap = {
+ AUTO: 'auto',
+ TOP: 'top',
+ RIGHT: isRTL ? 'left' : 'right',
+ BOTTOM: 'bottom',
+ LEFT: isRTL ? 'right' : 'left'
+ };
+ var Default = {
+ animation: true,
+ template: '<div class="tooltip" role="tooltip">' + '<div class="tooltip-arrow"></div>' + '<div class="tooltip-inner"></div>' + '</div>',
+ trigger: 'hover focus',
+ title: '',
+ delay: 0,
+ html: false,
+ selector: false,
+ placement: 'top',
+ offset: [0, 0],
+ container: false,
+ fallbackPlacements: ['top', 'right', 'bottom', 'left'],
+ boundary: 'clippingParents',
+ customClass: '',
+ sanitize: true,
+ sanitizeFn: null,
+ allowList: DefaultAllowlist,
+ popperConfig: null
+ };
+ var Event$1 = {
+ HIDE: "hide" + EVENT_KEY,
+ HIDDEN: "hidden" + EVENT_KEY,
+ SHOW: "show" + EVENT_KEY,
+ SHOWN: "shown" + EVENT_KEY,
+ INSERTED: "inserted" + EVENT_KEY,
+ CLICK: "click" + EVENT_KEY,
+ FOCUSIN: "focusin" + EVENT_KEY,
+ FOCUSOUT: "focusout" + EVENT_KEY,
+ MOUSEENTER: "mouseenter" + EVENT_KEY,
+ MOUSELEAVE: "mouseleave" + EVENT_KEY
+ };
+ var CLASS_NAME_FADE = 'fade';
+ var CLASS_NAME_MODAL = 'modal';
+ var CLASS_NAME_SHOW = 'show';
+ var HOVER_STATE_SHOW = 'show';
+ var HOVER_STATE_OUT = 'out';
+ var SELECTOR_TOOLTIP_INNER = '.tooltip-inner';
+ var TRIGGER_HOVER = 'hover';
+ var TRIGGER_FOCUS = 'focus';
+ var TRIGGER_CLICK = 'click';
+ var TRIGGER_MANUAL = 'manual';
+ /**
+ * ------------------------------------------------------------------------
+ * Class Definition
+ * ------------------------------------------------------------------------
+ */
+
+ var Tooltip = /*#__PURE__*/function (_BaseComponent) {
+ _inheritsLoose(Tooltip, _BaseComponent);
+
+ function Tooltip(element, config) {
+ var _this;
+
+ if (typeof Popper__namespace === 'undefined') {
+ throw new TypeError('Bootstrap\'s tooltips require Popper (https://popper.js.org)');
+ }
+
+ _this = _BaseComponent.call(this, element) || this; // private
+
+ _this._isEnabled = true;
+ _this._timeout = 0;
+ _this._hoverState = '';
+ _this._activeTrigger = {};
+ _this._popper = null; // Protected
+
+ _this.config = _this._getConfig(config);
+ _this.tip = null;
+
+ _this._setListeners();
+
+ return _this;
+ } // Getters
+
+
+ var _proto = Tooltip.prototype;
+
+ // Public
+ _proto.enable = function enable() {
+ this._isEnabled = true;
+ };
+
+ _proto.disable = function disable() {
+ this._isEnabled = false;
+ };
+
+ _proto.toggleEnabled = function toggleEnabled() {
+ this._isEnabled = !this._isEnabled;
+ };
+
+ _proto.toggle = function toggle(event) {
+ if (!this._isEnabled) {
+ return;
+ }
+
+ if (event) {
+ var context = this._initializeOnDelegatedTarget(event);
+
+ context._activeTrigger.click = !context._activeTrigger.click;
+
+ if (context._isWithActiveTrigger()) {
+ context._enter(null, context);
+ } else {
+ context._leave(null, context);
+ }
+ } else {
+ if (this.getTipElement().classList.contains(CLASS_NAME_SHOW)) {
+ this._leave(null, this);
+
+ return;
+ }
+
+ this._enter(null, this);
+ }
+ };
+
+ _proto.dispose = function dispose() {
+ clearTimeout(this._timeout);
+ EventHandler__default['default'].off(this._element, this.constructor.EVENT_KEY);
+ EventHandler__default['default'].off(this._element.closest("." + CLASS_NAME_MODAL), 'hide.bs.modal', this._hideModalHandler);
+
+ if (this.tip && this.tip.parentNode) {
+ this.tip.parentNode.removeChild(this.tip);
+ }
+
+ this._isEnabled = null;
+ this._timeout = null;
+ this._hoverState = null;
+ this._activeTrigger = null;
+
+ if (this._popper) {
+ this._popper.destroy();
+ }
+
+ this._popper = null;
+ this.config = null;
+ this.tip = null;
+
+ _BaseComponent.prototype.dispose.call(this);
+ };
+
+ _proto.show = function show() {
+ var _this2 = this;
+
+ if (this._element.style.display === 'none') {
+ throw new Error('Please use show on visible elements');
+ }
+
+ if (!(this.isWithContent() && this._isEnabled)) {
+ return;
+ }
+
+ var showEvent = EventHandler__default['default'].trigger(this._element, this.constructor.Event.SHOW);
+ var shadowRoot = findShadowRoot(this._element);
+ var isInTheDom = shadowRoot === null ? this._element.ownerDocument.documentElement.contains(this._element) : shadowRoot.contains(this._element);
+
+ if (showEvent.defaultPrevented || !isInTheDom) {
+ return;
+ }
+
+ var tip = this.getTipElement();
+ var tipId = getUID(this.constructor.NAME);
+ tip.setAttribute('id', tipId);
+
+ this._element.setAttribute('aria-describedby', tipId);
+
+ this.setContent();
+
+ if (this.config.animation) {
+ tip.classList.add(CLASS_NAME_FADE);
+ }
+
+ var placement = typeof this.config.placement === 'function' ? this.config.placement.call(this, tip, this._element) : this.config.placement;
+
+ var attachment = this._getAttachment(placement);
+
+ this._addAttachmentClass(attachment);
+
+ var container = this._getContainer();
+
+ Data__default['default'].setData(tip, this.constructor.DATA_KEY, this);
+
+ if (!this._element.ownerDocument.documentElement.contains(this.tip)) {
+ container.appendChild(tip);
+ }
+
+ EventHandler__default['default'].trigger(this._element, this.constructor.Event.INSERTED);
+ this._popper = Popper.createPopper(this._element, tip, this._getPopperConfig(attachment));
+ tip.classList.add(CLASS_NAME_SHOW);
+ var customClass = typeof this.config.customClass === 'function' ? this.config.customClass() : this.config.customClass;
+
+ if (customClass) {
+ var _tip$classList;
+
+ (_tip$classList = tip.classList).add.apply(_tip$classList, customClass.split(' '));
+ } // If this is a touch-enabled device we add extra
+ // empty mouseover listeners to the body's immediate children;
+ // only needed because of broken event delegation on iOS
+ // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html
+
+
+ if ('ontouchstart' in document.documentElement) {
+ var _ref;
+
+ (_ref = []).concat.apply(_ref, document.body.children).forEach(function (element) {
+ EventHandler__default['default'].on(element, 'mouseover', noop());
+ });
+ }
+
+ var complete = function complete() {
+ var prevHoverState = _this2._hoverState;
+ _this2._hoverState = null;
+ EventHandler__default['default'].trigger(_this2._element, _this2.constructor.Event.SHOWN);
+
+ if (prevHoverState === HOVER_STATE_OUT) {
+ _this2._leave(null, _this2);
+ }
+ };
+
+ if (this.tip.classList.contains(CLASS_NAME_FADE)) {
+ var transitionDuration = getTransitionDurationFromElement(this.tip);
+ EventHandler__default['default'].one(this.tip, 'transitionend', complete);
+ emulateTransitionEnd(this.tip, transitionDuration);
+ } else {
+ complete();
+ }
+ };
+
+ _proto.hide = function hide() {
+ var _this3 = this;
+
+ if (!this._popper) {
+ return;
+ }
+
+ var tip = this.getTipElement();
+
+ var complete = function complete() {
+ if (_this3._hoverState !== HOVER_STATE_SHOW && tip.parentNode) {
+ tip.parentNode.removeChild(tip);
+ }
+
+ _this3._cleanTipClass();
+
+ _this3._element.removeAttribute('aria-describedby');
+
+ EventHandler__default['default'].trigger(_this3._element, _this3.constructor.Event.HIDDEN);
+
+ if (_this3._popper) {
+ _this3._popper.destroy();
+
+ _this3._popper = null;
+ }
+ };
+
+ var hideEvent = EventHandler__default['default'].trigger(this._element, this.constructor.Event.HIDE);
+
+ if (hideEvent.defaultPrevented) {
+ return;
+ }
+
+ tip.classList.remove(CLASS_NAME_SHOW); // If this is a touch-enabled device we remove the extra
+ // empty mouseover listeners we added for iOS support
+
+ if ('ontouchstart' in document.documentElement) {
+ var _ref2;
+
+ (_ref2 = []).concat.apply(_ref2, document.body.children).forEach(function (element) {
+ return EventHandler__default['default'].off(element, 'mouseover', noop);
+ });
+ }
+
+ this._activeTrigger[TRIGGER_CLICK] = false;
+ this._activeTrigger[TRIGGER_FOCUS] = false;
+ this._activeTrigger[TRIGGER_HOVER] = false;
+
+ if (this.tip.classList.contains(CLASS_NAME_FADE)) {
+ var transitionDuration = getTransitionDurationFromElement(tip);
+ EventHandler__default['default'].one(tip, 'transitionend', complete);
+ emulateTransitionEnd(tip, transitionDuration);
+ } else {
+ complete();
+ }
+
+ this._hoverState = '';
+ };
+
+ _proto.update = function update() {
+ if (this._popper !== null) {
+ this._popper.update();
+ }
+ } // Protected
+ ;
+
+ _proto.isWithContent = function isWithContent() {
+ return Boolean(this.getTitle());
+ };
+
+ _proto.getTipElement = function getTipElement() {
+ if (this.tip) {
+ return this.tip;
+ }
+
+ var element = document.createElement('div');
+ element.innerHTML = this.config.template;
+ this.tip = element.children[0];
+ return this.tip;
+ };
+
+ _proto.setContent = function setContent() {
+ var tip = this.getTipElement();
+ this.setElementContent(SelectorEngine__default['default'].findOne(SELECTOR_TOOLTIP_INNER, tip), this.getTitle());
+ tip.classList.remove(CLASS_NAME_FADE, CLASS_NAME_SHOW);
+ };
+
+ _proto.setElementContent = function setElementContent(element, content) {
+ if (element === null) {
+ return;
+ }
+
+ if (typeof content === 'object' && isElement(content)) {
+ if (content.jquery) {
+ content = content[0];
+ } // content is a DOM node or a jQuery
+
+
+ if (this.config.html) {
+ if (content.parentNode !== element) {
+ element.innerHTML = '';
+ element.appendChild(content);
+ }
+ } else {
+ element.textContent = content.textContent;
+ }
+
+ return;
+ }
+
+ if (this.config.html) {
+ if (this.config.sanitize) {
+ content = sanitizeHtml(content, this.config.allowList, this.config.sanitizeFn);
+ }
+
+ element.innerHTML = content;
+ } else {
+ element.textContent = content;
+ }
+ };
+
+ _proto.getTitle = function getTitle() {
+ var title = this._element.getAttribute('data-bs-original-title');
+
+ if (!title) {
+ title = typeof this.config.title === 'function' ? this.config.title.call(this._element) : this.config.title;
+ }
+
+ return title;
+ };
+
+ _proto.updateAttachment = function updateAttachment(attachment) {
+ if (attachment === 'right') {
+ return 'end';
+ }
+
+ if (attachment === 'left') {
+ return 'start';
+ }
+
+ return attachment;
+ } // Private
+ ;
+
+ _proto._initializeOnDelegatedTarget = function _initializeOnDelegatedTarget(event, context) {
+ var dataKey = this.constructor.DATA_KEY;
+ context = context || Data__default['default'].getData(event.delegateTarget, dataKey);
+
+ if (!context) {
+ context = new this.constructor(event.delegateTarget, this._getDelegateConfig());
+ Data__default['default'].setData(event.delegateTarget, dataKey, context);
+ }
+
+ return context;
+ };
+
+ _proto._getOffset = function _getOffset() {
+ var _this4 = this;
+
+ var offset = this.config.offset;
+
+ if (typeof offset === 'string') {
+ return offset.split(',').map(function (val) {
+ return Number.parseInt(val, 10);
+ });
+ }
+
+ if (typeof offset === 'function') {
+ return function (popperData) {
+ return offset(popperData, _this4._element);
+ };
+ }
+
+ return offset;
+ };
+
+ _proto._getPopperConfig = function _getPopperConfig(attachment) {
+ var _this5 = this;
+
+ var defaultBsPopperConfig = {
+ placement: attachment,
+ modifiers: [{
+ name: 'flip',
+ options: {
+ altBoundary: true,
+ fallbackPlacements: this.config.fallbackPlacements
+ }
+ }, {
+ name: 'offset',
+ options: {
+ offset: this._getOffset()
+ }
+ }, {
+ name: 'preventOverflow',
+ options: {
+ boundary: this.config.boundary
+ }
+ }, {
+ name: 'arrow',
+ options: {
+ element: "." + this.constructor.NAME + "-arrow"
+ }
+ }, {
+ name: 'onChange',
+ enabled: true,
+ phase: 'afterWrite',
+ fn: function fn(data) {
+ return _this5._handlePopperPlacementChange(data);
+ }
+ }],
+ onFirstUpdate: function onFirstUpdate(data) {
+ if (data.options.placement !== data.placement) {
+ _this5._handlePopperPlacementChange(data);
+ }
+ }
+ };
+ return _extends({}, defaultBsPopperConfig, typeof this.config.popperConfig === 'function' ? this.config.popperConfig(defaultBsPopperConfig) : this.config.popperConfig);
+ };
+
+ _proto._addAttachmentClass = function _addAttachmentClass(attachment) {
+ this.getTipElement().classList.add(CLASS_PREFIX + "-" + this.updateAttachment(attachment));
+ };
+
+ _proto._getContainer = function _getContainer() {
+ if (this.config.container === false) {
+ return document.body;
+ }
+
+ if (isElement(this.config.container)) {
+ return this.config.container;
+ }
+
+ return SelectorEngine__default['default'].findOne(this.config.container);
+ };
+
+ _proto._getAttachment = function _getAttachment(placement) {
+ return AttachmentMap[placement.toUpperCase()];
+ };
+
+ _proto._setListeners = function _setListeners() {
+ var _this6 = this;
+
+ var triggers = this.config.trigger.split(' ');
+ triggers.forEach(function (trigger) {
+ if (trigger === 'click') {
+ EventHandler__default['default'].on(_this6._element, _this6.constructor.Event.CLICK, _this6.config.selector, function (event) {
+ return _this6.toggle(event);
+ });
+ } else if (trigger !== TRIGGER_MANUAL) {
+ var eventIn = trigger === TRIGGER_HOVER ? _this6.constructor.Event.MOUSEENTER : _this6.constructor.Event.FOCUSIN;
+ var eventOut = trigger === TRIGGER_HOVER ? _this6.constructor.Event.MOUSELEAVE : _this6.constructor.Event.FOCUSOUT;
+ EventHandler__default['default'].on(_this6._element, eventIn, _this6.config.selector, function (event) {
+ return _this6._enter(event);
+ });
+ EventHandler__default['default'].on(_this6._element, eventOut, _this6.config.selector, function (event) {
+ return _this6._leave(event);
+ });
+ }
+ });
+
+ this._hideModalHandler = function () {
+ if (_this6._element) {
+ _this6.hide();
+ }
+ };
+
+ EventHandler__default['default'].on(this._element.closest("." + CLASS_NAME_MODAL), 'hide.bs.modal', this._hideModalHandler);
+
+ if (this.config.selector) {
+ this.config = _extends({}, this.config, {
+ trigger: 'manual',
+ selector: ''
+ });
+ } else {
+ this._fixTitle();
+ }
+ };
+
+ _proto._fixTitle = function _fixTitle() {
+ var title = this._element.getAttribute('title');
+
+ var originalTitleType = typeof this._element.getAttribute('data-bs-original-title');
+
+ if (title || originalTitleType !== 'string') {
+ this._element.setAttribute('data-bs-original-title', title || '');
+
+ if (title && !this._element.getAttribute('aria-label') && !this._element.textContent) {
+ this._element.setAttribute('aria-label', title);
+ }
+
+ this._element.setAttribute('title', '');
+ }
+ };
+
+ _proto._enter = function _enter(event, context) {
+ context = this._initializeOnDelegatedTarget(event, context);
+
+ if (event) {
+ context._activeTrigger[event.type === 'focusin' ? TRIGGER_FOCUS : TRIGGER_HOVER] = true;
+ }
+
+ if (context.getTipElement().classList.contains(CLASS_NAME_SHOW) || context._hoverState === HOVER_STATE_SHOW) {
+ context._hoverState = HOVER_STATE_SHOW;
+ return;
+ }
+
+ clearTimeout(context._timeout);
+ context._hoverState = HOVER_STATE_SHOW;
+
+ if (!context.config.delay || !context.config.delay.show) {
+ context.show();
+ return;
+ }
+
+ context._timeout = setTimeout(function () {
+ if (context._hoverState === HOVER_STATE_SHOW) {
+ context.show();
+ }
+ }, context.config.delay.show);
+ };
+
+ _proto._leave = function _leave(event, context) {
+ context = this._initializeOnDelegatedTarget(event, context);
+
+ if (event) {
+ context._activeTrigger[event.type === 'focusout' ? TRIGGER_FOCUS : TRIGGER_HOVER] = false;
+ }
+
+ if (context._isWithActiveTrigger()) {
+ return;
+ }
+
+ clearTimeout(context._timeout);
+ context._hoverState = HOVER_STATE_OUT;
+
+ if (!context.config.delay || !context.config.delay.hide) {
+ context.hide();
+ return;
+ }
+
+ context._timeout = setTimeout(function () {
+ if (context._hoverState === HOVER_STATE_OUT) {
+ context.hide();
+ }
+ }, context.config.delay.hide);
+ };
+
+ _proto._isWithActiveTrigger = function _isWithActiveTrigger() {
+ for (var trigger in this._activeTrigger) {
+ if (this._activeTrigger[trigger]) {
+ return true;
+ }
+ }
+
+ return false;
+ };
+
+ _proto._getConfig = function _getConfig(config) {
+ var dataAttributes = Manipulator__default['default'].getDataAttributes(this._element);
+ Object.keys(dataAttributes).forEach(function (dataAttr) {
+ if (DISALLOWED_ATTRIBUTES.has(dataAttr)) {
+ delete dataAttributes[dataAttr];
+ }
+ });
+
+ if (config && typeof config.container === 'object' && config.container.jquery) {
+ config.container = config.container[0];
+ }
+
+ config = _extends({}, this.constructor.Default, dataAttributes, typeof config === 'object' && config ? config : {});
+
+ if (typeof config.delay === 'number') {
+ config.delay = {
+ show: config.delay,
+ hide: config.delay
+ };
+ }
+
+ if (typeof config.title === 'number') {
+ config.title = config.title.toString();
+ }
+
+ if (typeof config.content === 'number') {
+ config.content = config.content.toString();
+ }
+
+ typeCheckConfig(NAME, config, this.constructor.DefaultType);
+
+ if (config.sanitize) {
+ config.template = sanitizeHtml(config.template, config.allowList, config.sanitizeFn);
+ }
+
+ return config;
+ };
+
+ _proto._getDelegateConfig = function _getDelegateConfig() {
+ var config = {};
+
+ if (this.config) {
+ for (var key in this.config) {
+ if (this.constructor.Default[key] !== this.config[key]) {
+ config[key] = this.config[key];
+ }
+ }
+ }
+
+ return config;
+ };
+
+ _proto._cleanTipClass = function _cleanTipClass() {
+ var tip = this.getTipElement();
+ var tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX);
+
+ if (tabClass !== null && tabClass.length > 0) {
+ tabClass.map(function (token) {
+ return token.trim();
+ }).forEach(function (tClass) {
+ return tip.classList.remove(tClass);
+ });
+ }
+ };
+
+ _proto._handlePopperPlacementChange = function _handlePopperPlacementChange(popperData) {
+ var state = popperData.state;
+
+ if (!state) {
+ return;
+ }
+
+ this.tip = state.elements.popper;
+
+ this._cleanTipClass();
+
+ this._addAttachmentClass(this._getAttachment(state.placement));
+ } // Static
+ ;
+
+ Tooltip.jQueryInterface = function jQueryInterface(config) {
+ return this.each(function () {
+ var data = Data__default['default'].getData(this, DATA_KEY);
+
+ var _config = typeof config === 'object' && config;
+
+ if (!data && /dispose|hide/.test(config)) {
+ return;
+ }
+
+ if (!data) {
+ data = new Tooltip(this, _config);
+ }
+
+ if (typeof config === 'string') {
+ if (typeof data[config] === 'undefined') {
+ throw new TypeError("No method named \"" + config + "\"");
+ }
+
+ data[config]();
+ }
+ });
+ };
+
+ _createClass(Tooltip, null, [{
+ key: "Default",
+ get: function get() {
+ return Default;
+ }
+ }, {
+ key: "NAME",
+ get: function get() {
+ return NAME;
+ }
+ }, {
+ key: "DATA_KEY",
+ get: function get() {
+ return DATA_KEY;
+ }
+ }, {
+ key: "Event",
+ get: function get() {
+ return Event$1;
+ }
+ }, {
+ key: "EVENT_KEY",
+ get: function get() {
+ return EVENT_KEY;
+ }
+ }, {
+ key: "DefaultType",
+ get: function get() {
+ return DefaultType;
+ }
+ }]);
+
+ return Tooltip;
+ }(BaseComponent__default['default']);
+ /**
+ * ------------------------------------------------------------------------
+ * jQuery
+ * ------------------------------------------------------------------------
+ * add .Tooltip to jQuery only if jQuery is present
+ */
+
+
+ defineJQueryPlugin(NAME, Tooltip);
+
+ return Tooltip;
+
+})));
+//# sourceMappingURL=tooltip.js.map
+
+function bruh_moment(){
+ alert('this is a bruh moment')
+}
+
+function get_smiles_from_element_text(el_id){
+ var inputVal = document.getElementById(el_id).value;
+ let url = `https://pubchem.ncbi.nlm.nih.gov/rest/pug/compound/name/${inputVal}/property/CanonicalSMILES/JSON`;
+ console.log(url)
+ fetch(url)
+ .then(res => res.json())
+ .then((out) => {
+ console.log('Aye, got that dub from PubChem');
+ //console.log(out["PropertyTable"]["Properties"][0]["CanonicalSMILES"])
+ document.getElementById("inputSMILES").value = out["PropertyTable"]["Properties"][0]["CanonicalSMILES"]
+ })
+ .catch(err => {
+ bruh_moment()
+ throw err });
+}
+
+
+function draw_me_like_one_of_your_french_girls(mol){
+
+ mol.condense_abbreviations();
+ var canvas = document.getElementById("draw-canvas-2");
+ mol.draw_to_canvas(canvas, -1, -1);
+}
+
+
+function calculate_and_disperse(mol){
+ try {
+ var descrs = JSON.parse(mol.get_descriptors());
+ } catch(err) {
+ alert("oo wee, failed to calculate descriptors senpai")
+ }
+ //document.getElementById('exactmw').textContent = descrs["exactmw"];
+ //document.getElementById('CrippenMR').textContent = descrs["CrippenMR"];
+ //document.getElementById('CrippenClogP').textContent = descrs["CrippenClogP"];
+ let tableRef = document.getElementById("analyse_table");
+ const keys = Object.keys(descrs);
+ for (let i = 0; i < keys.length; i++) {
+ const key = keys[i];
+ console.log(key, descrs[key]);
+ var newRow = tableRef.insertRow(-1);
+ var newCell_label = newRow.insertCell(0);
+ var newCell_value = newRow.insertCell(-1);
+ var newText_label = document.createTextNode(key);
+ var newText_value = document.createTextNode(descrs[key]);
+ newCell_label.appendChild(newText_label);
+ newCell_value.appendChild(newText_value);
+ }
+
+
+
+}
+
+function analyse_me_senpai(smile_pwiz) {
+ var smiles = document.getElementById(smile_pwiz).value;
+ var mol = Module.get_mol(smiles);
+ draw_me_like_one_of_your_french_girls(mol);
+ calculate_and_disperse(mol);
+} \ No newline at end of file
diff --git a/docs/js/main.min.js b/docs/js/main.min.js
new file mode 100644
index 0000000..5a96393
--- /dev/null
+++ b/docs/js/main.min.js
@@ -0,0 +1,2 @@
+function bruh_moment(){alert("this is a bruh moment")}function get_smiles_from_element_text(t){t=`https://pubchem.ncbi.nlm.nih.gov/rest/pug/compound/name/${document.getElementById(t).value}/property/CanonicalSMILES/JSON`;console.log(t),fetch(t).then(t=>t.json()).then(t=>{console.log("Aye, got that dub from PubChem"),document.getElementById("inputSMILES").value=t.PropertyTable.Properties[0].CanonicalSMILES}).catch(t=>{throw bruh_moment(),t})}function draw_me_like_one_of_your_french_girls(t){t.condense_abbreviations();var e=document.getElementById("draw-canvas-2");t.draw_to_canvas(e,-1,-1)}function calculate_and_disperse(t){try{var e=JSON.parse(t.get_descriptors())}catch(t){alert("oo wee, failed to calculate descriptors senpai")}let n=document.getElementById("analyse_table");var i=Object.keys(e);for(let t=0;t<i.length;t++){var o=i[t];console.log(o,e[o]);var r=n.insertRow(-1),a=r.insertCell(0),s=r.insertCell(-1),r=document.createTextNode(o),o=document.createTextNode(e[o]);a.appendChild(r),s.appendChild(o)}}function analyse_me_senpai(t){t=document.getElementById(t).value,t=Module.get_mol(t);draw_me_like_one_of_your_french_girls(t),calculate_and_disperse(t)}!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):t.Popper=e()}(this,function(){"use strict";var n="undefined"!=typeof window&&"undefined"!=typeof document&&"undefined"!=typeof navigator,i=function(){for(var t=["Edge","Trident","Firefox"],e=0;e<t.length;e+=1)if(n&&0<=navigator.userAgent.indexOf(t[e]))return 1;return 0}();var o=n&&window.Promise?function(t){var e=!1;return function(){e||(e=!0,window.Promise.resolve().then(function(){e=!1,t()}))}}:function(t){var e=!1;return function(){e||(e=!0,setTimeout(function(){e=!1,t()},i))}};function r(t){return t&&"[object Function]"==={}.toString.call(t)}function f(t,e){if(1!==t.nodeType)return[];t=t.ownerDocument.defaultView.getComputedStyle(t,null);return e?t[e]:t}function u(t){return"HTML"===t.nodeName?t:t.parentNode||t.host}function c(t){if(!t)return document.body;switch(t.nodeName){case"HTML":case"BODY":return t.ownerDocument.body;case"#document":return t.body}var e=f(t),n=e.overflow,i=e.overflowX,e=e.overflowY;return/(auto|scroll|overlay)/.test(n+e+i)?t:c(u(t))}function d(t){return t&&t.referenceNode?t.referenceNode:t}var e=n&&!(!window.MSInputMethodContext||!document.documentMode),a=n&&/MSIE 10/.test(navigator.userAgent);function p(t){return 11===t?e:10!==t&&e||a}function g(t){if(!t)return document.documentElement;for(var e=p(10)?document.body:null,n=t.offsetParent||null;n===e&&t.nextElementSibling;)n=(t=t.nextElementSibling).offsetParent;var i=n&&n.nodeName;return i&&"BODY"!==i&&"HTML"!==i?-1!==["TH","TD","TABLE"].indexOf(n.nodeName)&&"static"===f(n,"position")?g(n):n:(t?t.ownerDocument:document).documentElement}function s(t){return null!==t.parentNode?s(t.parentNode):t}function h(t,e){if(!(t&&t.nodeType&&e&&e.nodeType))return document.documentElement;var n=t.compareDocumentPosition(e)&Node.DOCUMENT_POSITION_FOLLOWING,i=n?t:e,o=n?e:t,n=document.createRange();n.setStart(i,0),n.setEnd(o,0);n=n.commonAncestorContainer;if(t!==n&&e!==n||i.contains(o))return"BODY"===(o=(i=n).nodeName)||"HTML"!==o&&g(i.firstElementChild)!==i?g(n):n;n=s(t);return n.host?h(n.host,e):h(t,s(e).host)}function m(t,e){var n="top"===(1<arguments.length&&void 0!==e?e:"top")?"scrollTop":"scrollLeft",e=t.nodeName;if("BODY"!==e&&"HTML"!==e)return t[n];e=t.ownerDocument.documentElement;return(t.ownerDocument.scrollingElement||e)[n]}function l(t,e){var n="x"===e?"Left":"Top",e="Left"==n?"Right":"Bottom";return parseFloat(t["border"+n+"Width"])+parseFloat(t["border"+e+"Width"])}function _(t,e,n,i){return Math.max(e["offset"+t],e["scroll"+t],n["client"+t],n["offset"+t],n["scroll"+t],p(10)?parseInt(n["offset"+t])+parseInt(i["margin"+("Height"===t?"Top":"Left")])+parseInt(i["margin"+("Height"===t?"Bottom":"Right")]):0)}function v(t){var e=t.body,n=t.documentElement,t=p(10)&&getComputedStyle(n);return{height:_("Height",e,n,t),width:_("Width",e,n,t)}}var b=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")},t=function(t,e,n){return e&&y(t.prototype,e),n&&y(t,n),t};function y(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}function w(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}var E=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n,i=arguments[e];for(n in i)Object.prototype.hasOwnProperty.call(i,n)&&(t[n]=i[n])}return t};function T(t){return E({},t,{right:t.left+t.width,bottom:t.top+t.height})}function j(t){var e={};try{p(10)?(e=t.getBoundingClientRect(),n=m(t,"top"),i=m(t,"left"),e.top+=n,e.left+=i,e.bottom+=n,e.right+=i):e=t.getBoundingClientRect()}catch(t){}var n={left:e.left,top:e.top,width:e.right-e.left,height:e.bottom-e.top},i="HTML"===t.nodeName?v(t.ownerDocument):{},e=i.width||t.clientWidth||n.width,i=i.height||t.clientHeight||n.height,e=t.offsetWidth-e,i=t.offsetHeight-i;return(e||i)&&(e-=l(t=f(t),"x"),i-=l(t,"y"),n.width-=e,n.height-=i),T(n)}function O(t,e,n){var i=2<arguments.length&&void 0!==n&&n,o=p(10),r="HTML"===e.nodeName,a=j(t),s=j(e),l=c(t),u=f(e),n=parseFloat(u.borderTopWidth),t=parseFloat(u.borderLeftWidth);i&&r&&(s.top=Math.max(s.top,0),s.left=Math.max(s.left,0));a=T({top:a.top-s.top-n,left:a.left-s.left-t,width:a.width,height:a.height});return a.marginTop=0,a.marginLeft=0,!o&&r&&(r=parseFloat(u.marginTop),u=parseFloat(u.marginLeft),a.top-=n-r,a.bottom-=n-r,a.left-=t-u,a.right-=t-u,a.marginTop=r,a.marginLeft=u),a=(o&&!i?e.contains(l):e===l&&"BODY"!==l.nodeName)?function(t,e,n){var i=2<arguments.length&&void 0!==n&&n,n=m(e,"top"),e=m(e,"left"),i=i?-1:1;return t.top+=n*i,t.bottom+=n*i,t.left+=e*i,t.right+=e*i,t}(a,e):a}function L(t){if(!t||!t.parentElement||p())return document.documentElement;for(var e=t.parentElement;e&&"none"===f(e,"transform");)e=e.parentElement;return e||document.documentElement}function C(t,e,n,i,o){var r=4<arguments.length&&void 0!==o&&o,a={top:0,left:0},s=r?L(t):h(t,d(e));"viewport"===i?a=function(t,e){var n=1<arguments.length&&void 0!==e&&e,i=t.ownerDocument.documentElement,o=O(t,i),r=Math.max(i.clientWidth,window.innerWidth||0),e=Math.max(i.clientHeight,window.innerHeight||0),t=n?0:m(i),i=n?0:m(i,"left");return T({top:t-o.top+o.marginTop,left:i-o.left+o.marginLeft,width:r,height:e})}(s,r):(o=void 0,"scrollParent"===i?"BODY"===(o=c(u(e))).nodeName&&(o=t.ownerDocument.documentElement):o="window"===i?t.ownerDocument.documentElement:i,l=O(o,s,r),"HTML"!==o.nodeName||function t(e){var n=e.nodeName;if("BODY"===n||"HTML"===n)return!1;if("fixed"===f(e,"position"))return!0;e=u(e);return!!e&&t(e)}(s)?a=l:(t=(s=v(t.ownerDocument)).height,s=s.width,a.top+=l.top-l.marginTop,a.bottom=t+l.top,a.left+=l.left-l.marginLeft,a.right=s+l.left));var l="number"==typeof(n=n||0);return a.left+=l?n:n.left||0,a.top+=l?n:n.top||0,a.right-=l?n:n.right||0,a.bottom-=l?n:n.bottom||0,a}function D(t,e,n,i,o,r){r=5<arguments.length&&void 0!==r?r:0;if(-1===t.indexOf("auto"))return t;var o=C(n,i,r,o),a={top:{width:o.width,height:e.top-o.top},right:{width:o.right-e.right,height:o.height},bottom:{width:o.width,height:o.bottom-e.bottom},left:{width:e.left-o.left,height:o.height}},e=Object.keys(a).map(function(t){return E({key:t},a[t],{area:(t=a[t]).width*t.height})}).sort(function(t,e){return e.area-t.area}),o=e.filter(function(t){var e=t.width,t=t.height;return e>=n.clientWidth&&t>=n.clientHeight}),e=(0<o.length?o:e)[0].key,t=t.split("-")[1];return e+(t?"-"+t:"")}function A(t,e,n,i){i=3<arguments.length&&void 0!==i?i:null;return O(n,i?L(e):h(e,d(n)),i)}function k(t){var e=t.ownerDocument.defaultView.getComputedStyle(t),n=parseFloat(e.marginTop||0)+parseFloat(e.marginBottom||0),e=parseFloat(e.marginLeft||0)+parseFloat(e.marginRight||0);return{width:t.offsetWidth+e,height:t.offsetHeight+n}}function S(t){var e={left:"right",right:"left",bottom:"top",top:"bottom"};return t.replace(/left|right|bottom|top/g,function(t){return e[t]})}function N(t,e,n){n=n.split("-")[0];var i=k(t),o={width:i.width,height:i.height},r=-1!==["right","left"].indexOf(n),a=r?"top":"left",s=r?"left":"top",t=r?"height":"width",r=r?"width":"height";return o[a]=e[a]+e[t]/2-i[t]/2,o[s]=n===s?e[s]-i[r]:e[S(s)],o}function x(t,e){return Array.prototype.find?t.find(e):t.filter(e)[0]}function P(t,n,e){return(void 0===e?t:t.slice(0,function(t,e,n){if(Array.prototype.findIndex)return t.findIndex(function(t){return t[e]===n});var i=x(t,function(t){return t[e]===n});return t.indexOf(i)}(t,"name",e))).forEach(function(t){t.function&&console.warn("`modifier.function` is deprecated, use `modifier.fn`!");var e=t.function||t.fn;t.enabled&&r(e)&&(n.offsets.popper=T(n.offsets.popper),n.offsets.reference=T(n.offsets.reference),n=e(n,t))}),n}function I(t,n){return t.some(function(t){var e=t.name;return t.enabled&&e===n})}function M(t){for(var e=[!1,"ms","Webkit","Moz","O"],n=t.charAt(0).toUpperCase()+t.slice(1),i=0;i<e.length;i++){var o=e[i],o=o?""+o+n:t;if(void 0!==document.body.style[o])return o}return null}function q(t){t=t.ownerDocument;return t?t.defaultView:window}function B(t,e,n,i){n.updateBound=i,q(t).addEventListener("resize",n.updateBound,{passive:!0});t=c(t);return function t(e,n,i,o){var r="BODY"===e.nodeName,e=r?e.ownerDocument.defaultView:e;e.addEventListener(n,i,{passive:!0}),r||t(c(e.parentNode),n,i,o),o.push(e)}(t,"scroll",n.updateBound,n.scrollParents),n.scrollElement=t,n.eventsEnabled=!0,n}function H(){var t,e;this.state.eventsEnabled&&(cancelAnimationFrame(this.scheduleUpdate),this.state=(t=this.reference,e=this.state,q(t).removeEventListener("resize",e.updateBound),e.scrollParents.forEach(function(t){t.removeEventListener("scroll",e.updateBound)}),e.updateBound=null,e.scrollParents=[],e.scrollElement=null,e.eventsEnabled=!1,e))}function F(t){return""!==t&&!isNaN(parseFloat(t))&&isFinite(t)}function W(n,i){Object.keys(i).forEach(function(t){var e="";-1!==["width","height","top","right","bottom","left"].indexOf(t)&&F(i[t])&&(e="px"),n.style[t]=i[t]+e})}var R=n&&/Firefox/i.test(navigator.userAgent);function Q(t,e,n){var i=x(t,function(t){return t.name===e}),o=!!i&&t.some(function(t){return t.name===n&&t.enabled&&t.order<i.order});return o||(t="`"+e+"`",console.warn("`"+n+"`"+" modifier is required by "+t+" modifier in order to work, be sure to include it before "+t+"!")),o}var U=["auto-start","auto","auto-end","top-start","top","top-end","right-start","right","right-end","bottom-end","bottom","bottom-start","left-end","left","left-start"],z=U.slice(3);function Y(t,e){e=1<arguments.length&&void 0!==e&&e,t=z.indexOf(t),t=z.slice(t+1).concat(z.slice(0,t));return e?t.reverse():t}var K="flip",V="clockwise",X="counterclockwise";function G(t,o,r,e){var a=[0,0],s=-1!==["right","left"].indexOf(e),n=t.split(/(\+|\-)/).map(function(t){return t.trim()}),e=n.indexOf(x(n,function(t){return-1!==t.search(/,|\s/)}));n[e]&&-1===n[e].indexOf(",")&&console.warn("Offsets separated by white space(s) are deprecated, use a comma (,) instead.");t=/\s*,\s*|\s+/;return(-1!==e?[n.slice(0,e).concat([n[e].split(t)[0]]),[n[e].split(t)[1]].concat(n.slice(e+1))]:[n]).map(function(t,e){var n=(1===e?!s:s)?"height":"width",i=!1;return t.reduce(function(t,e){return""===t[t.length-1]&&-1!==["+","-"].indexOf(e)?(t[t.length-1]=e,i=!0,t):i?(t[t.length-1]+=e,i=!1,t):t.concat(e)},[]).map(function(t){return function(t,e,n,i){var o=+(r=t.match(/((?:\-|\+)?\d*\.?\d*)(.*)/))[1],r=r[2];if(!o)return t;if(0!==r.indexOf("%"))return"vh"!==r&&"vw"!==r?o:("vh"===r?Math.max(document.documentElement.clientHeight,window.innerHeight||0):Math.max(document.documentElement.clientWidth,window.innerWidth||0))/100*o;var a=void 0;switch(r){case"%p":a=n;break;case"%":case"%r":default:a=i}return T(a)[e]/100*o}(t,n,o,r)})}).forEach(function(n,i){n.forEach(function(t,e){F(t)&&(a[i]+=t*("-"===n[e-1]?-1:1))})}),a}var $={placement:"bottom",positionFixed:!1,eventsEnabled:!0,removeOnDestroy:!1,onCreate:function(){},onUpdate:function(){},modifiers:{shift:{order:100,enabled:!0,fn:function(t){var e,n,i=t.placement,o=i.split("-")[0],r=i.split("-")[1];return r&&(e=(n=t.offsets).reference,i=n.popper,o=(n=-1!==["bottom","top"].indexOf(o))?"width":"height",o={start:w({},n=n?"left":"top",e[n]),end:w({},n,e[n]+e[o]-i[o])},t.offsets.popper=E({},i,o[r])),t}},offset:{order:200,enabled:!0,fn:function(t,e){var n=e.offset,i=t.placement,o=(r=t.offsets).popper,e=r.reference,r=i.split("-")[0],i=void 0,i=F(+n)?[+n,0]:G(n,o,e,r);return"left"===r?(o.top+=i[0],o.left-=i[1]):"right"===r?(o.top+=i[0],o.left+=i[1]):"top"===r?(o.left+=i[0],o.top-=i[1]):"bottom"===r&&(o.left+=i[0],o.top+=i[1]),t.popper=o,t},offset:0},preventOverflow:{order:300,enabled:!0,fn:function(t,i){var e=i.boundariesElement||g(t.instance.popper);t.instance.reference===e&&(e=g(e));var n=M("transform"),o=t.instance.popper.style,r=o.top,a=o.left,s=o[n];o.top="",o.left="",o[n]="";var l=C(t.instance.popper,t.instance.reference,i.padding,e,t.positionFixed);o.top=r,o.left=a,o[n]=s,i.boundaries=l;var s=i.priority,u=t.offsets.popper,c={primary:function(t){var e=u[t];return u[t]<l[t]&&!i.escapeWithReference&&(e=Math.max(u[t],l[t])),w({},t,e)},secondary:function(t){var e="right"===t?"left":"top",n=u[e];return u[t]>l[t]&&!i.escapeWithReference&&(n=Math.min(u[e],l[t]-("right"===t?u.width:u.height))),w({},e,n)}};return s.forEach(function(t){var e=-1!==["left","top"].indexOf(t)?"primary":"secondary";u=E({},u,c[e](t))}),t.offsets.popper=u,t},priority:["left","right","top","bottom"],padding:5,boundariesElement:"scrollParent"},keepTogether:{order:400,enabled:!0,fn:function(t){var e=(r=t.offsets).popper,n=r.reference,i=t.placement.split("-")[0],o=Math.floor,r=(a=-1!==["top","bottom"].indexOf(i))?"right":"bottom",i=a?"left":"top",a=a?"width":"height";return e[r]<o(n[i])&&(t.offsets.popper[i]=o(n[i])-e[a]),e[i]>o(n[r])&&(t.offsets.popper[i]=o(n[r])),t}},arrow:{order:500,enabled:!0,fn:function(t,e){if(!Q(t.instance.modifiers,"arrow","keepTogether"))return t;var n=e.element;if("string"==typeof n){if(!(n=t.instance.popper.querySelector(n)))return t}else if(!t.instance.popper.contains(n))return console.warn("WARNING: `arrow.element` must be child of its popper element!"),t;var i=t.placement.split("-")[0],o=(c=t.offsets).popper,r=c.reference,a=-1!==["left","right"].indexOf(i),s=a?"height":"width",l=a?"Top":"Left",u=l.toLowerCase(),e=a?"left":"top",c=a?"bottom":"right",i=k(n)[s];return r[c]-i<o[u]&&(t.offsets.popper[u]-=o[u]-(r[c]-i)),r[u]+i>o[c]&&(t.offsets.popper[u]+=r[u]+i-o[c]),t.offsets.popper=T(t.offsets.popper),a=r[u]+r[s]/2-i/2,c=f(t.instance.popper),r=parseFloat(c["margin"+l]),l=parseFloat(c["border"+l+"Width"]),l=a-t.offsets.popper[u]-r-l,l=Math.max(Math.min(o[s]-i,l),0),t.arrowElement=n,t.offsets.arrow=(w(n={},u,Math.round(l)),w(n,e,""),n),t},element:"[x-arrow]"},flip:{order:600,enabled:!0,fn:function(u,c){if(I(u.instance.modifiers,"inner"))return u;if(u.flipped&&u.placement===u.originalPlacement)return u;var f=C(u.instance.popper,u.instance.reference,c.padding,c.boundariesElement,u.positionFixed),d=u.placement.split("-")[0],p=S(d),h=u.placement.split("-")[1]||"",m=[];switch(c.behavior){case K:m=[d,p];break;case V:m=Y(d);break;case X:m=Y(d,!0);break;default:m=c.behavior}return m.forEach(function(t,e){if(d!==t||m.length===e+1)return u;d=u.placement.split("-")[0],p=S(d);var n=u.offsets.popper,i=u.offsets.reference,o=Math.floor,r="left"===d&&o(n.right)>o(i.left)||"right"===d&&o(n.left)<o(i.right)||"top"===d&&o(n.bottom)>o(i.top)||"bottom"===d&&o(n.top)<o(i.bottom),a=o(n.left)<o(f.left),s=o(n.right)>o(f.right),l=o(n.top)<o(f.top),t=o(n.bottom)>o(f.bottom),i="left"===d&&a||"right"===d&&s||"top"===d&&l||"bottom"===d&&t,n=-1!==["top","bottom"].indexOf(d),o=!!c.flipVariations&&(n&&"start"===h&&a||n&&"end"===h&&s||!n&&"start"===h&&l||!n&&"end"===h&&t),l=!!c.flipVariationsByContent&&(n&&"start"===h&&s||n&&"end"===h&&a||!n&&"start"===h&&t||!n&&"end"===h&&l),l=o||l;(r||i||l)&&(u.flipped=!0,(r||i)&&(d=m[e+1]),l&&(h="end"===(l=h)?"start":"start"===l?"end":l),u.placement=d+(h?"-"+h:""),u.offsets.popper=E({},u.offsets.popper,N(u.instance.popper,u.offsets.reference,u.placement)),u=P(u.instance.modifiers,u,"flip"))}),u},behavior:"flip",padding:5,boundariesElement:"viewport",flipVariations:!1,flipVariationsByContent:!1},inner:{order:700,enabled:!1,fn:function(t){var e=t.placement,n=e.split("-")[0],i=(a=t.offsets).popper,o=a.reference,r=-1!==["left","right"].indexOf(n),a=-1===["top","left"].indexOf(n);return i[r?"left":"top"]=o[n]-(a?i[r?"width":"height"]:0),t.placement=S(e),t.offsets.popper=T(i),t}},hide:{order:800,enabled:!0,fn:function(t){if(!Q(t.instance.modifiers,"hide","preventOverflow"))return t;var e=t.offsets.reference,n=x(t.instance.modifiers,function(t){return"preventOverflow"===t.name}).boundaries;if(e.bottom<n.top||e.left>n.right||e.top>n.bottom||e.right<n.left){if(!0===t.hide)return t;t.hide=!0,t.attributes["x-out-of-boundaries"]=""}else{if(!1===t.hide)return t;t.hide=!1,t.attributes["x-out-of-boundaries"]=!1}return t}},computeStyle:{order:850,enabled:!0,fn:function(t,e){var n=e.x,i=e.y,o=t.offsets.popper;void 0!==(h=x(t.instance.modifiers,function(t){return"applyStyle"===t.name}).gpuAcceleration)&&console.warn("WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!");var r,a,s,l,u=void 0!==h?h:e.gpuAcceleration,c=g(t.instance.popper),f=j(c),d={position:o.position},p=(r=t,p=window.devicePixelRatio<2||!R,m=(l=r.offsets).popper,a=l.reference,s=Math.round,h=Math.floor,e=function(t){return t},o=s(a.width),l=s(m.width),a=-1!==["left","right"].indexOf(r.placement),r=-1!==r.placement.indexOf("-"),h=p?a||r||o%2==l%2?s:h:e,e=p?s:e,{left:h(o%2==1&&l%2==1&&!r&&p?m.left-1:m.left),top:e(m.top),bottom:e(m.bottom),right:h(m.right)}),e="bottom"===n?"top":"bottom",h="right"===i?"left":"right",m=M("transform"),n=void 0,i=void 0,i="bottom"==e?"HTML"===c.nodeName?-c.clientHeight+p.bottom:-f.height+p.bottom:p.top,n="right"==h?"HTML"===c.nodeName?-c.clientWidth+p.right:-f.width+p.right:p.left;return u&&m?(d[m]="translate3d("+n+"px, "+i+"px, 0)",d[e]=0,d[h]=0,d.willChange="transform"):(m="right"==h?-1:1,d[e]=i*("bottom"==e?-1:1),d[h]=n*m,d.willChange=e+", "+h),h={"x-placement":t.placement},t.attributes=E({},h,t.attributes),t.styles=E({},d,t.styles),t.arrowStyles=E({},t.offsets.arrow,t.arrowStyles),t},gpuAcceleration:!0,x:"bottom",y:"right"},applyStyle:{order:900,enabled:!0,fn:function(t){var e,n;return W(t.instance.popper,t.styles),e=t.instance.popper,n=t.attributes,Object.keys(n).forEach(function(t){!1!==n[t]?e.setAttribute(t,n[t]):e.removeAttribute(t)}),t.arrowElement&&Object.keys(t.arrowStyles).length&&W(t.arrowElement,t.arrowStyles),t},onLoad:function(t,e,n,i,o){return o=A(o,e,t,n.positionFixed),t=D(n.placement,o,e,t,n.modifiers.flip.boundariesElement,n.modifiers.flip.padding),e.setAttribute("x-placement",t),W(e,{position:n.positionFixed?"fixed":"absolute"}),n},gpuAcceleration:void 0}}},t=(t(J,[{key:"update",value:function(){return function(){var t;this.state.isDestroyed||((t={instance:this,styles:{},arrowStyles:{},attributes:{},flipped:!1,offsets:{}}).offsets.reference=A(this.state,this.popper,this.reference,this.options.positionFixed),t.placement=D(this.options.placement,t.offsets.reference,this.popper,this.reference,this.options.modifiers.flip.boundariesElement,this.options.modifiers.flip.padding),t.originalPlacement=t.placement,t.positionFixed=this.options.positionFixed,t.offsets.popper=N(this.popper,t.offsets.reference,t.placement),t.offsets.popper.position=this.options.positionFixed?"fixed":"absolute",t=P(this.modifiers,t),this.state.isCreated?this.options.onUpdate(t):(this.state.isCreated=!0,this.options.onCreate(t)))}.call(this)}},{key:"destroy",value:function(){return function(){return this.state.isDestroyed=!0,I(this.modifiers,"applyStyle")&&(this.popper.removeAttribute("x-placement"),this.popper.style.position="",this.popper.style.top="",this.popper.style.left="",this.popper.style.right="",this.popper.style.bottom="",this.popper.style.willChange="",this.popper.style[M("transform")]=""),this.disableEventListeners(),this.options.removeOnDestroy&&this.popper.parentNode.removeChild(this.popper),this}.call(this)}},{key:"enableEventListeners",value:function(){return function(){this.state.eventsEnabled||(this.state=B(this.reference,this.options,this.state,this.scheduleUpdate))}.call(this)}},{key:"disableEventListeners",value:function(){return H.call(this)}}]),J);function J(t,e){var n=this,i=2<arguments.length&&void 0!==arguments[2]?arguments[2]:{};b(this,J),this.scheduleUpdate=function(){return requestAnimationFrame(n.update)},this.update=o(this.update.bind(this)),this.options=E({},J.Defaults,i),this.state={isDestroyed:!1,isCreated:!1,scrollParents:[]},this.reference=t&&t.jquery?t[0]:t,this.popper=e&&e.jquery?e[0]:e,this.options.modifiers={},Object.keys(E({},J.Defaults.modifiers,i.modifiers)).forEach(function(t){n.options.modifiers[t]=E({},J.Defaults.modifiers[t]||{},i.modifiers?i.modifiers[t]:{})}),this.modifiers=Object.keys(this.options.modifiers).map(function(t){return E({name:t},n.options.modifiers[t])}).sort(function(t,e){return t.order-e.order}),this.modifiers.forEach(function(t){t.enabled&&r(t.onLoad)&&t.onLoad(n.reference,n.popper,n.options,t,n.state)}),this.update();e=this.options.eventsEnabled;e&&this.enableEventListeners(),this.state.eventsEnabled=e}return t.Utils=("undefined"!=typeof window?window:global).PopperUtils,t.placements=U,t.Defaults=$,t}),function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e(require("./dom/data.js"),require("./dom/event-handler.js"),require("./base-component.js")):"function"==typeof define&&define.amd?define(["./dom/data","./dom/event-handler","./base-component"],e):(t="undefined"!=typeof globalThis?globalThis:t||self).Alert=e(t.Data,t.EventHandler,t.Base)}(this,function(t,e,n){"use strict";function i(t){return t&&"object"==typeof t&&"default"in t?t:{default:t}}var r=i(t),a=i(e);function s(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}function l(t,e){return(l=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function u(e,t){var n=!1,t=t+5;e.addEventListener(o,function t(){n=!0,e.removeEventListener(o,t)}),setTimeout(function(){n||e.dispatchEvent(new Event(o))},t)}var o="transitionend";document.documentElement.dir;var c,f,d,p="bs.alert",e="."+p,n=function(t){function n(){return t.apply(this,arguments)||this}i=t,(e=n).prototype=Object.create(i.prototype),l(e.prototype.constructor=e,i);var e,i,o=n.prototype;return o.close=function(t){var e=t?this._getRootElement(t):this._element,t=this._triggerCloseEvent(e);null===t||t.defaultPrevented||this._removeElement(e)},o._getRootElement=function(t){return function(t){t=function(t){var e=t.getAttribute("data-bs-target");if(!e||"#"===e){t=t.getAttribute("href");if(!t||!t.includes("#")&&!t.startsWith("."))return null;e=(t=t.includes("#")&&!t.startsWith("#")?"#"+t.split("#")[1]:t)&&"#"!==t?t.trim():null}return e}(t);return t?document.querySelector(t):null}(t)||t.closest(".alert")},o._triggerCloseEvent=function(t){return a.default.trigger(t,"close.bs.alert")},o._removeElement=function(t){var e,n=this;t.classList.remove("show"),t.classList.contains("fade")?(e=function(t){if(!t)return 0;var e=window.getComputedStyle(t),n=e.transitionDuration,i=e.transitionDelay,t=Number.parseFloat(n),e=Number.parseFloat(i);return t||e?(n=n.split(",")[0],i=i.split(",")[0],1e3*(Number.parseFloat(n)+Number.parseFloat(i))):0}(t),a.default.one(t,"transitionend",function(){return n._destroyElement(t)}),u(t,e)):this._destroyElement(t)},o._destroyElement=function(t){t.parentNode&&t.parentNode.removeChild(t),a.default.trigger(t,"closed.bs.alert")},n.jQueryInterface=function(e){return this.each(function(){var t=(t=r.default.getData(this,p))||new n(this);"close"===e&&t[e](this)})},n.handleDismiss=function(e){return function(t){t&&t.preventDefault(),e.close(this)}},e=n,i=[{key:"DATA_KEY",get:function(){return p}}],(o=null)&&s(e.prototype,o),i&&s(e,i),n}(i(n).default);return a.default.on(document,"click.bs.alert.data-api",'[data-bs-dismiss="alert"]',n.handleDismiss(new n)),c="alert",f=n,d=function(){var t,e,n=(t=window.jQuery)&&!document.body.hasAttribute("data-bs-no-jquery")?t:null;n&&(e=n.fn[c],n.fn[c]=f.jQueryInterface,n.fn[c].Constructor=f,n.fn[c].noConflict=function(){return n.fn[c]=e,f.jQueryInterface})},"loading"===document.readyState?document.addEventListener("DOMContentLoaded",d):d(),n}),function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e(require("./dom/data.js"),require("./dom/event-handler.js"),require("./base-component.js")):"function"==typeof define&&define.amd?define(["./dom/data","./dom/event-handler","./base-component"],e):(t="undefined"!=typeof globalThis?globalThis:t||self).Button=e(t.Data,t.EventHandler,t.Base)}(this,function(t,e,n){"use strict";function i(t){return t&&"object"==typeof t&&"default"in t?t:{default:t}}var r=i(t),e=i(e);function a(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}function s(t,e){return(s=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}document.documentElement.dir;var o,l,u,c="bs.button",f='[data-bs-toggle="button"]',d=function(t){var e,n,i;function o(){return t.apply(this,arguments)||this}return n=t,(i=o).prototype=Object.create(n.prototype),s(i.prototype.constructor=i,n),o.prototype.toggle=function(){this._element.setAttribute("aria-pressed",this._element.classList.toggle("active"))},o.jQueryInterface=function(e){return this.each(function(){var t=(t=r.default.getData(this,c))||new o(this);"toggle"===e&&t[e]()})},e=o,i=[{key:"DATA_KEY",get:function(){return c}}],(n=null)&&a(e.prototype,n),i&&a(e,i),o}(i(n).default);return e.default.on(document,"click.bs.button.data-api",f,function(t){t.preventDefault();t=t.target.closest(f);(r.default.getData(t,c)||new d(t)).toggle()}),o="button",l=d,u=function(){var t,e,n=(t=window.jQuery)&&!document.body.hasAttribute("data-bs-no-jquery")?t:null;n&&(e=n.fn[o],n.fn[o]=l.jQueryInterface,n.fn[o].Constructor=l,n.fn[o].noConflict=function(){return n.fn[o]=e,l.jQueryInterface})},"loading"===document.readyState?document.addEventListener("DOMContentLoaded",u):u(),d}),function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e(require("./dom/data.js"),require("./dom/event-handler.js"),require("./dom/manipulator.js"),require("./dom/selector-engine.js"),require("./base-component.js")):"function"==typeof define&&define.amd?define(["./dom/data","./dom/event-handler","./dom/manipulator","./dom/selector-engine","./base-component"],e):(t="undefined"!=typeof globalThis?globalThis:t||self).Carousel=e(t.Data,t.EventHandler,t.Manipulator,t.SelectorEngine,t.Base)}(this,function(t,e,n,i,o){"use strict";function r(t){return t&&"object"==typeof t&&"default"in t?t:{default:t}}var a=r(t),d=r(e),s=r(n),p=r(i);function l(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}function u(){return(u=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n,i=arguments[e];for(n in i)Object.prototype.hasOwnProperty.call(i,n)&&(t[n]=i[n])}return t}).apply(this,arguments)}function c(t,e){return(c=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function h(t){t.dispatchEvent(new Event(v))}function f(r,a,s){Object.keys(s).forEach(function(t){var e,n,i=s[t],o=a[t],e=o&&((n=o)[0]||n).nodeType?"element":null==(e=o)?""+e:{}.toString.call(e).match(/\s([a-z]+)/i)[1].toLowerCase();if(!new RegExp(i).test(e))throw new TypeError(r.toUpperCase()+': Option "'+t+'" provided type "'+e+'" but expected type "'+i+'".')})}var m,g,_,v="transitionend",b="rtl"===document.documentElement.dir,y="carousel",w="bs.carousel",E="."+w,i=".data-api",T={interval:5e3,keyboard:!0,slide:!1,pause:"hover",wrap:!0,touch:!0},j={interval:"(number|boolean)",keyboard:"boolean",slide:"(boolean|string)",pause:"(string|boolean)",wrap:"boolean",touch:"boolean"},O="next",L="prev",C="slid"+E,D="active",A=".active.carousel-item",k=function(n){function r(t,e){t=n.call(this,t)||this;return t._items=null,t._interval=null,t._activeElement=null,t._isPaused=!1,t._isSliding=!1,t.touchTimeout=null,t.touchStartX=0,t.touchDeltaX=0,t._config=t._getConfig(e),t._indicatorsElement=p.default.findOne(".carousel-indicators",t._element),t._touchSupported="ontouchstart"in document.documentElement||0<navigator.maxTouchPoints,t._pointerEvent=Boolean(window.PointerEvent),t._addEventListeners(),t}e=n,(t=r).prototype=Object.create(e.prototype),c(t.prototype.constructor=t,e);var t,e,i=r.prototype;return i.next=function(){this._isSliding||this._slide(O)},i.nextWhenVisible=function(){!document.hidden&&function(t){if(!t)return!1;if(t.style&&t.parentNode&&t.parentNode.style){var e=getComputedStyle(t),t=getComputedStyle(t.parentNode);return"none"!==e.display&&"none"!==t.display&&"hidden"!==e.visibility}return!1}(this._element)&&this.next()},i.prev=function(){this._isSliding||this._slide(L)},i.pause=function(t){t||(this._isPaused=!0),p.default.findOne(".carousel-item-next, .carousel-item-prev",this._element)&&(h(this._element),this.cycle(!0)),clearInterval(this._interval),this._interval=null},i.cycle=function(t){t||(this._isPaused=!1),this._interval&&(clearInterval(this._interval),this._interval=null),this._config&&this._config.interval&&!this._isPaused&&(this._updateInterval(),this._interval=setInterval((document.visibilityState?this.nextWhenVisible:this.next).bind(this),this._config.interval))},i.to=function(t){var e=this;this._activeElement=p.default.findOne(A,this._element);var n=this._getItemIndex(this._activeElement);if(!(t>this._items.length-1||t<0))if(this._isSliding)d.default.one(this._element,C,function(){return e.to(t)});else{if(n===t)return this.pause(),void this.cycle();this._slide(n<t?O:L,this._items[t])}},i.dispose=function(){n.prototype.dispose.call(this),d.default.off(this._element,E),this._items=null,this._config=null,this._interval=null,this._isPaused=null,this._isSliding=null,this._activeElement=null,this._indicatorsElement=null},i._getConfig=function(t){return t=u({},T,t),f(y,t,j),t},i._handleSwipe=function(){var t=Math.abs(this.touchDeltaX);t<=40||(t=t/this.touchDeltaX,(this.touchDeltaX=0)<t&&(b?this.next():this.prev()),t<0&&(b?this.prev():this.next()))},i._addEventListeners=function(){var e=this;this._config.keyboard&&d.default.on(this._element,"keydown.bs.carousel",function(t){return e._keydown(t)}),"hover"===this._config.pause&&(d.default.on(this._element,"mouseenter.bs.carousel",function(t){return e.pause(t)}),d.default.on(this._element,"mouseleave.bs.carousel",function(t){return e.cycle(t)})),this._config.touch&&this._touchSupported&&this._addTouchEventListeners()},i._addTouchEventListeners=function(){function t(t){!n._pointerEvent||"pen"!==t.pointerType&&"touch"!==t.pointerType?n._pointerEvent||(n.touchStartX=t.touches[0].clientX):n.touchStartX=t.clientX}function e(t){!n._pointerEvent||"pen"!==t.pointerType&&"touch"!==t.pointerType||(n.touchDeltaX=t.clientX-n.touchStartX),n._handleSwipe(),"hover"===n._config.pause&&(n.pause(),n.touchTimeout&&clearTimeout(n.touchTimeout),n.touchTimeout=setTimeout(function(t){return n.cycle(t)},500+n._config.interval))}var n=this;p.default.find(".carousel-item img",this._element).forEach(function(t){d.default.on(t,"dragstart.bs.carousel",function(t){return t.preventDefault()})}),this._pointerEvent?(d.default.on(this._element,"pointerdown.bs.carousel",t),d.default.on(this._element,"pointerup.bs.carousel",e),this._element.classList.add("pointer-event")):(d.default.on(this._element,"touchstart.bs.carousel",t),d.default.on(this._element,"touchmove.bs.carousel",function(t){(t=t).touches&&1<t.touches.length?n.touchDeltaX=0:n.touchDeltaX=t.touches[0].clientX-n.touchStartX}),d.default.on(this._element,"touchend.bs.carousel",e))},i._keydown=function(t){/input|textarea/i.test(t.target.tagName)||("ArrowLeft"===t.key?(t.preventDefault(),b?this.next():this.prev()):"ArrowRight"===t.key&&(t.preventDefault(),b?this.prev():this.next()))},i._getItemIndex=function(t){return this._items=t&&t.parentNode?p.default.find(".carousel-item",t.parentNode):[],this._items.indexOf(t)},i._getItemByDirection=function(t,e){var n=t===O,i=t===L,o=this._getItemIndex(e),r=this._items.length-1;if((i&&0===o||n&&o===r)&&!this._config.wrap)return e;t=(o+(t===L?-1:1))%this._items.length;return-1==t?this._items[this._items.length-1]:this._items[t]},i._triggerSlideEvent=function(t,e){var n=this._getItemIndex(t),i=this._getItemIndex(p.default.findOne(A,this._element));return d.default.trigger(this._element,"slide.bs.carousel",{relatedTarget:t,direction:e,from:i,to:n})},i._setActiveIndicatorElement=function(t){if(this._indicatorsElement){var e=p.default.findOne(".active",this._indicatorsElement);e.classList.remove(D),e.removeAttribute("aria-current");for(var n=p.default.find("[data-bs-target]",this._indicatorsElement),i=0;i<n.length;i++)if(Number.parseInt(n[i].getAttribute("data-bs-slide-to"),10)===this._getItemIndex(t)){n[i].classList.add(D),n[i].setAttribute("aria-current","true");break}}},i._updateInterval=function(){var t=this._activeElement||p.default.findOne(A,this._element);t&&((t=Number.parseInt(t.getAttribute("data-bs-interval"),10))?(this._config.defaultInterval=this._config.defaultInterval||this._config.interval,this._config.interval=t):this._config.interval=this._config.defaultInterval||this._config.interval)},i._slide=function(t,e){var n,i,o=this,r=p.default.findOne(A,this._element),a=this._getItemIndex(r),s=e||r&&this._getItemByDirection(t,r),l=this._getItemIndex(s),e=Boolean(this._interval),u=t===O?"carousel-item-start":"carousel-item-end",c=t===O?"carousel-item-next":"carousel-item-prev",f=t===O?"left":"right";s&&s.classList.contains(D)?this._isSliding=!1:this._triggerSlideEvent(s,f).defaultPrevented||r&&s&&(this._isSliding=!0,e&&this.pause(),this._setActiveIndicatorElement(s),this._activeElement=s,this._element.classList.contains("slide")?(s.classList.add(c),s.offsetHeight,r.classList.add(u),s.classList.add(u),t=function(t){if(!t)return 0;var e=window.getComputedStyle(t),n=e.transitionDuration,i=e.transitionDelay,t=Number.parseFloat(n),e=Number.parseFloat(i);return t||e?(n=n.split(",")[0],i=i.split(",")[0],1e3*(Number.parseFloat(n)+Number.parseFloat(i))):0}(r),d.default.one(r,"transitionend",function(){s.classList.remove(u,c),s.classList.add(D),r.classList.remove(D,c,u),o._isSliding=!1,setTimeout(function(){d.default.trigger(o._element,C,{relatedTarget:s,direction:f,from:a,to:l})},0)}),t=t,i=!1,t+=5,(n=r).addEventListener(v,function t(){i=!0,n.removeEventListener(v,t)}),setTimeout(function(){i||h(n)},t)):(r.classList.remove(D),s.classList.add(D),this._isSliding=!1,d.default.trigger(this._element,C,{relatedTarget:s,direction:f,from:a,to:l})),e&&this.cycle())},r.carouselInterface=function(t,e){var n=a.default.getData(t,w),i=u({},T,s.default.getDataAttributes(t));"object"==typeof e&&(i=u({},i,e));var o="string"==typeof e?e:i.slide,n=n||new r(t,i);if("number"==typeof e)n.to(e);else if("string"==typeof o){if(void 0===n[o])throw new TypeError('No method named "'+o+'"');n[o]()}else i.interval&&i.ride&&(n.pause(),n.cycle())},r.jQueryInterface=function(t){return this.each(function(){r.carouselInterface(this,t)})},r.dataApiClickHandler=function(t){var e,n,i=function(t){t=function(t){var e=t.getAttribute("data-bs-target");if(!e||"#"===e){t=t.getAttribute("href");if(!t||!t.includes("#")&&!t.startsWith("."))return null;e=(t=t.includes("#")&&!t.startsWith("#")?"#"+t.split("#")[1]:t)&&"#"!==t?t.trim():null}return e}(t);return t?document.querySelector(t):null}(this);i&&i.classList.contains("carousel")&&(e=u({},s.default.getDataAttributes(i),s.default.getDataAttributes(this)),(n=this.getAttribute("data-bs-slide-to"))&&(e.interval=!1),r.carouselInterface(i,e),n&&a.default.getData(i,w).to(n),t.preventDefault())},t=r,e=[{key:"Default",get:function(){return T}},{key:"DATA_KEY",get:function(){return w}}],(i=null)&&l(t.prototype,i),e&&l(t,e),r}(r(o).default);return d.default.on(document,"click.bs.carousel.data-api","[data-bs-slide], [data-bs-slide-to]",k.dataApiClickHandler),d.default.on(window,"load.bs.carousel.data-api",function(){for(var t=p.default.find('[data-bs-ride="carousel"]'),e=0,n=t.length;e<n;e++)k.carouselInterface(t[e],a.default.getData(t[e],w))}),m=y,g=k,_=function(){var t,e,n=(t=window.jQuery)&&!document.body.hasAttribute("data-bs-no-jquery")?t:null;n&&(e=n.fn[m],n.fn[m]=g.jQueryInterface,n.fn[m].Constructor=g,n.fn[m].noConflict=function(){return n.fn[m]=e,g.jQueryInterface})},"loading"===document.readyState?document.addEventListener("DOMContentLoaded",_):_(),k}),function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e(require("./dom/data.js"),require("./dom/event-handler.js"),require("./dom/manipulator.js"),require("./dom/selector-engine.js"),require("./base-component.js")):"function"==typeof define&&define.amd?define(["./dom/data","./dom/event-handler","./dom/manipulator","./dom/selector-engine","./base-component"],e):(t="undefined"!=typeof globalThis?globalThis:t||self).Collapse=e(t.Data,t.EventHandler,t.Manipulator,t.SelectorEngine,t.Base)}(this,function(t,e,n,i,o){"use strict";function r(t){return t&&"object"==typeof t&&"default"in t?t:{default:t}}var s=r(t),l=r(e),c=r(n),f=r(i);function d(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}function p(){return(p=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n,i=arguments[e];for(n in i)Object.prototype.hasOwnProperty.call(i,n)&&(t[n]=i[n])}return t}).apply(this,arguments)}function h(t,e){return(h=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function a(t){var e=t.getAttribute("data-bs-target");if(!e||"#"===e){t=t.getAttribute("href");if(!t||!t.includes("#")&&!t.startsWith("."))return null;e=(t=t.includes("#")&&!t.startsWith("#")?"#"+t.split("#")[1]:t)&&"#"!==t?t.trim():null}return e}function m(t){return(t=a(t))&&document.querySelector(t)?t:null}function g(t){return(t=a(t))?document.querySelector(t):null}function _(t){if(!t)return 0;var e=(i=window.getComputedStyle(t)).transitionDuration,n=i.transitionDelay,t=Number.parseFloat(e),i=Number.parseFloat(n);return t||i?(e=e.split(",")[0],n=n.split(",")[0],1e3*(Number.parseFloat(e)+Number.parseFloat(n))):0}function v(t){return(t[0]||t).nodeType}function b(e,t){var n=!1,t=t+5;e.addEventListener(u,function t(){n=!0,e.removeEventListener(u,t)}),setTimeout(function(){n||e.dispatchEvent(new Event(u))},t)}var u="transitionend";document.documentElement.dir;var y,w,E,T="collapse",j="bs.collapse",i="."+j,O={toggle:!0,parent:""},L={toggle:"boolean",parent:"(string|element)"},C="show",D="collapse",A="collapsing",k="collapsed",S='[data-bs-toggle="collapse"]',N=function(u){function a(e,t){var n=u.call(this,e)||this;n._isTransitioning=!1,n._config=n._getConfig(t),n._triggerArray=f.default.find(S+'[href="#'+e.id+'"],'+S+'[data-bs-target="#'+e.id+'"]');for(var i=f.default.find(S),o=0,r=i.length;o<r;o++){var a=i[o],s=m(a),l=f.default.find(s).filter(function(t){return t===e});null!==s&&l.length&&(n._selector=s,n._triggerArray.push(a))}return n._parent=n._config.parent?n._getParent():null,n._config.parent||n._addAriaAndCollapsedClass(n._element,n._triggerArray),n._config.toggle&&n.toggle(),n}e=u,(t=a).prototype=Object.create(e.prototype),h(t.prototype.constructor=t,e);var t,e,n=a.prototype;return n.toggle=function(){this._element.classList.contains(C)?this.hide():this.show()},n.show=function(){var e=this;if(!this._isTransitioning&&!this._element.classList.contains(C)){this._parent&&0===(n=f.default.find(".show, .collapsing",this._parent).filter(function(t){return"string"==typeof e._config.parent?t.getAttribute("data-bs-parent")===e._config.parent:t.classList.contains(D)})).length&&(n=null);var t,n,i=f.default.findOne(this._selector);if(n){var o,r=n.find(function(t){return i!==t});if((o=r?s.default.getData(r,j):null)&&o._isTransitioning)return}l.default.trigger(this._element,"show.bs.collapse").defaultPrevented||(n&&n.forEach(function(t){i!==t&&a.collapseInterface(t,"hide"),o||s.default.setData(t,j,null)}),t=this._getDimension(),this._element.classList.remove(D),this._element.classList.add(A),this._element.style[t]=0,this._triggerArray.length&&this._triggerArray.forEach(function(t){t.classList.remove(k),t.setAttribute("aria-expanded",!0)}),this.setTransitioning(!0),r="scroll"+(t[0].toUpperCase()+t.slice(1)),n=_(this._element),l.default.one(this._element,"transitionend",function(){e._element.classList.remove(A),e._element.classList.add(D,C),e._element.style[t]="",e.setTransitioning(!1),l.default.trigger(e._element,"shown.bs.collapse")}),b(this._element,n),this._element.style[t]=this._element[r]+"px")}},n.hide=function(){var t=this;if(!this._isTransitioning&&this._element.classList.contains(C)&&!l.default.trigger(this._element,"hide.bs.collapse").defaultPrevented){var e=this._getDimension();this._element.style[e]=this._element.getBoundingClientRect()[e]+"px",this._element.offsetHeight,this._element.classList.add(A),this._element.classList.remove(D,C);var n=this._triggerArray.length;if(0<n)for(var i=0;i<n;i++){var o=this._triggerArray[i],r=g(o);r&&!r.classList.contains(C)&&(o.classList.add(k),o.setAttribute("aria-expanded",!1))}this.setTransitioning(!0);this._element.style[e]="";e=_(this._element);l.default.one(this._element,"transitionend",function(){t.setTransitioning(!1),t._element.classList.remove(A),t._element.classList.add(D),l.default.trigger(t._element,"hidden.bs.collapse")}),b(this._element,e)}},n.setTransitioning=function(t){this._isTransitioning=t},n.dispose=function(){u.prototype.dispose.call(this),this._config=null,this._parent=null,this._triggerArray=null,this._isTransitioning=null},n._getConfig=function(t){var o,r,a;return(t=p({},O,t)).toggle=Boolean(t.toggle),o=T,r=t,a=L,Object.keys(a).forEach(function(t){var e,n=a[t],i=r[t],e=i&&v(i)?"element":null==(e=i)?""+e:{}.toString.call(e).match(/\s([a-z]+)/i)[1].toLowerCase();if(!new RegExp(n).test(e))throw new TypeError(o.toUpperCase()+': Option "'+t+'" provided type "'+e+'" but expected type "'+n+'".')}),t},n._getDimension=function(){return this._element.classList.contains("width")?"width":"height"},n._getParent=function(){var n=this,t=this._config.parent;return v(t)?void 0===t.jquery&&void 0===t[0]||(t=t[0]):t=f.default.findOne(t),f.default.find(S+'[data-bs-parent="'+t+'"]',t).forEach(function(t){var e=g(t);n._addAriaAndCollapsedClass(e,[t])}),t},n._addAriaAndCollapsedClass=function(t,e){var n;t&&e.length&&(n=t.classList.contains(C),e.forEach(function(t){n?t.classList.remove(k):t.classList.add(k),t.setAttribute("aria-expanded",n)}))},a.collapseInterface=function(t,e){var n=s.default.getData(t,j),i=p({},O,c.default.getDataAttributes(t),"object"==typeof e&&e?e:{});if(!n&&i.toggle&&"string"==typeof e&&/show|hide/.test(e)&&(i.toggle=!1),n=n||new a(t,i),"string"==typeof e){if(void 0===n[e])throw new TypeError('No method named "'+e+'"');n[e]()}},a.jQueryInterface=function(t){return this.each(function(){a.collapseInterface(this,t)})},t=a,e=[{key:"Default",get:function(){return O}},{key:"DATA_KEY",get:function(){return j}}],(n=null)&&d(t.prototype,n),e&&d(t,e),a}(r(o).default);return l.default.on(document,"click.bs.collapse.data-api",S,function(t){("A"===t.target.tagName||t.delegateTarget&&"A"===t.delegateTarget.tagName)&&t.preventDefault();var n=c.default.getDataAttributes(this),t=m(this);f.default.find(t).forEach(function(t){var e=s.default.getData(t,j),e=e?(null===e._parent&&"string"==typeof n.parent&&(e._config.parent=n.parent,e._parent=e._getParent()),"toggle"):n;N.collapseInterface(t,e)})}),y=T,w=N,E=function(){var t,e,n=(t=window.jQuery)&&!document.body.hasAttribute("data-bs-no-jquery")?t:null;n&&(e=n.fn[y],n.fn[y]=w.jQueryInterface,n.fn[y].Constructor=w,n.fn[y].noConflict=function(){return n.fn[y]=e,w.jQueryInterface})},"loading"===document.readyState?document.addEventListener("DOMContentLoaded",E):E(),N}),function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e(require("@popperjs/core"),require("./dom/data.js"),require("./dom/event-handler.js"),require("./dom/manipulator.js"),require("./dom/selector-engine.js"),require("./base-component.js")):"function"==typeof define&&define.amd?define(["@popperjs/core","./dom/data","./dom/event-handler","./dom/manipulator","./dom/selector-engine","./base-component"],e):(t="undefined"!=typeof globalThis?globalThis:t||self).Dropdown=e(t.Popper,t.Data,t.EventHandler,t.Manipulator,t.SelectorEngine,t.Base)}(this,function(a,t,e,n,i,o){"use strict";function r(t){return t&&"object"==typeof t&&"default"in t?t:{default:t}}function s(n){if(n&&n.__esModule)return n;var i=Object.create(null);return n&&Object.keys(n).forEach(function(t){var e;"default"!==t&&(e=Object.getOwnPropertyDescriptor(n,t),Object.defineProperty(i,t,e.get?e:{enumerable:!0,get:function(){return n[t]}}))}),i.default=n,Object.freeze(i)}var l=s(a),u=r(t),c=r(e),f=r(n),d=r(i),t=r(o);function p(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}function h(){return(h=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n,i=arguments[e];for(n in i)Object.prototype.hasOwnProperty.call(i,n)&&(t[n]=i[n])}return t}).apply(this,arguments)}function m(t,e){return(m=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function g(t){return(t[0]||t).nodeType}function _(t){if(!t)return!1;if(t.style&&t.parentNode&&t.parentNode.style){var e=getComputedStyle(t),t=getComputedStyle(t.parentNode);return"none"!==e.display&&"none"!==t.display&&"hidden"!==e.visibility}return!1}function v(){return function(){}}var b,y,w,e="rtl"===document.documentElement.dir,E="dropdown",T="bs.dropdown",j="."+T,n=".data-api",O="Escape",L="ArrowUp",C="ArrowDown",D=new RegExp(L+"|"+C+"|"+O),A="hide"+j,k="hidden"+j,i="click"+j+n,o="keydown"+j+n,S="disabled",N="show",x='[data-bs-toggle="dropdown"]',P=".dropdown-menu",I=e?"top-end":"top-start",M=e?"top-start":"top-end",q=e?"bottom-end":"bottom-start",B=e?"bottom-start":"bottom-end",H=e?"left-start":"right-start",F=e?"right-start":"left-start",W={offset:[0,2],flip:!0,boundary:"clippingParents",reference:"toggle",display:"dynamic",popperConfig:null},R={offset:"(array|string|function)",flip:"boolean",boundary:"(string|element)",reference:"(string|element|object)",display:"string",popperConfig:"(null|object|function)"},Q=function(n){function r(t,e){t=n.call(this,t)||this;return t._popper=null,t._config=t._getConfig(e),t._menu=t._getMenuElement(),t._inNavbar=t._detectNavbar(),t._addEventListeners(),t}e=n,(t=r).prototype=Object.create(e.prototype),m(t.prototype.constructor=t,e);var t,e,i=r.prototype;return i.toggle=function(){var t;this._element.disabled||this._element.classList.contains(S)||(t=this._element.classList.contains(N),r.clearMenus(),t||this.show())},i.show=function(){if(!(this._element.disabled||this._element.classList.contains(S)||this._menu.classList.contains(N))){var t=r.getParentFromElement(this._element),e={relatedTarget:this._element};if(!c.default.trigger(this._element,"show.bs.dropdown",e).defaultPrevented){if(this._inNavbar)f.default.setDataAttribute(this._menu,"popper","none");else{if(void 0===l)throw new TypeError("Bootstrap's dropdowns require Popper (https://popper.js.org)");var n=this._element;"parent"===this._config.reference?n=t:g(this._config.reference)?(n=this._config.reference,void 0!==this._config.reference.jquery&&(n=this._config.reference[0])):"object"==typeof this._config.reference&&(n=this._config.reference);var i=this._getPopperConfig(),o=i.modifiers.find(function(t){return"applyStyles"===t.name&&!1===t.enabled});this._popper=a.createPopper(n,this._menu,i),o&&f.default.setDataAttribute(this._menu,"popper","static")}"ontouchstart"in document.documentElement&&!t.closest(".navbar-nav")&&(t=[]).concat.apply(t,document.body.children).forEach(function(t){return c.default.on(t,"mouseover",null,v())}),this._element.focus(),this._element.setAttribute("aria-expanded",!0),this._menu.classList.toggle(N),this._element.classList.toggle(N),c.default.trigger(this._element,"shown.bs.dropdown",e)}}},i.hide=function(){var t;this._element.disabled||this._element.classList.contains(S)||!this._menu.classList.contains(N)||(t={relatedTarget:this._element},c.default.trigger(this._element,A,t).defaultPrevented||(this._popper&&this._popper.destroy(),this._menu.classList.toggle(N),this._element.classList.toggle(N),f.default.removeDataAttribute(this._menu,"popper"),c.default.trigger(this._element,k,t)))},i.dispose=function(){n.prototype.dispose.call(this),c.default.off(this._element,j),this._menu=null,this._popper&&(this._popper.destroy(),this._popper=null)},i.update=function(){this._inNavbar=this._detectNavbar(),this._popper&&this._popper.update()},i._addEventListeners=function(){var e=this;c.default.on(this._element,"click.bs.dropdown",function(t){t.preventDefault(),t.stopPropagation(),e.toggle()})},i._getConfig=function(t){var o,r,a;if(t=h({},this.constructor.Default,f.default.getDataAttributes(this._element),t),o=E,r=t,a=this.constructor.DefaultType,Object.keys(a).forEach(function(t){var e,n=a[t],i=r[t],e=i&&g(i)?"element":null==(e=i)?""+e:{}.toString.call(e).match(/\s([a-z]+)/i)[1].toLowerCase();if(!new RegExp(n).test(e))throw new TypeError(o.toUpperCase()+': Option "'+t+'" provided type "'+e+'" but expected type "'+n+'".')}),"object"==typeof t.reference&&!g(t.reference)&&"function"!=typeof t.reference.getBoundingClientRect)throw new TypeError(E.toUpperCase()+': Option "reference" provided type "object" without a required "getBoundingClientRect" method.');return t},i._getMenuElement=function(){return d.default.next(this._element,P)[0]},i._getPlacement=function(){var t=this._element.parentNode;if(t.classList.contains("dropend"))return H;if(t.classList.contains("dropstart"))return F;var e="end"===getComputedStyle(this._menu).getPropertyValue("--bs-position").trim();return t.classList.contains("dropup")?e?M:I:e?B:q},i._detectNavbar=function(){return null!==this._element.closest(".navbar")},i._getOffset=function(){var e=this,n=this._config.offset;return"string"==typeof n?n.split(",").map(function(t){return Number.parseInt(t,10)}):"function"==typeof n?function(t){return n(t,e._element)}:n},i._getPopperConfig=function(){var t={placement:this._getPlacement(),modifiers:[{name:"preventOverflow",options:{altBoundary:this._config.flip,boundary:this._config.boundary}},{name:"offset",options:{offset:this._getOffset()}}]};return"static"===this._config.display&&(t.modifiers=[{name:"applyStyles",enabled:!1}]),h({},t,"function"==typeof this._config.popperConfig?this._config.popperConfig(t):this._config.popperConfig)},r.dropdownInterface=function(t,e){var n=(n=u.default.getData(t,T))||new r(t,"object"==typeof e?e:null);if("string"==typeof e){if(void 0===n[e])throw new TypeError('No method named "'+e+'"');n[e]()}},r.jQueryInterface=function(t){return this.each(function(){r.dropdownInterface(this,t)})},r.clearMenus=function(t){if(!t||2!==t.button&&("keyup"!==t.type||"Tab"===t.key))for(var e=d.default.find(x),n=0,i=e.length;n<i;n++){var o,r,a=u.default.getData(e[n],T),s={relatedTarget:e[n]};t&&"click"===t.type&&(s.clickEvent=t),a&&(o=a._menu,e[n].classList.contains(N)&&(t&&("click"===t.type&&/input|textarea/i.test(t.target.tagName)||"keyup"===t.type&&"Tab"===t.key)&&o.contains(t.target)||c.default.trigger(e[n],A,s).defaultPrevented||("ontouchstart"in document.documentElement&&(r=[]).concat.apply(r,document.body.children).forEach(function(t){return c.default.off(t,"mouseover",null,v())}),e[n].setAttribute("aria-expanded","false"),a._popper&&a._popper.destroy(),o.classList.remove(N),e[n].classList.remove(N),f.default.removeDataAttribute(o,"popper"),c.default.trigger(e[n],k,s))))}},r.getParentFromElement=function(t){return function(t){t=function(t){var e=t.getAttribute("data-bs-target");if(!e||"#"===e){t=t.getAttribute("href");if(!t||!t.includes("#")&&!t.startsWith("."))return null;e=(t=t.includes("#")&&!t.startsWith("#")?"#"+t.split("#")[1]:t)&&"#"!==t?t.trim():null}return e}(t);return t?document.querySelector(t):null}(t)||t.parentNode},r.dataApiKeydownHandler=function(t){if((/input|textarea/i.test(t.target.tagName)?!("Space"===t.key||t.key!==O&&(t.key!==C&&t.key!==L||t.target.closest(P))):D.test(t.key))&&(t.preventDefault(),t.stopPropagation(),!this.disabled&&!this.classList.contains(S))){var e=r.getParentFromElement(this),n=this.classList.contains(N);if(t.key===O)return(this.matches(x)?this:d.default.prev(this,x)[0]).focus(),void r.clearMenus();n||t.key!==L&&t.key!==C?n&&"Space"!==t.key?(n=d.default.find(".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)",e).filter(_)).length&&(e=n.indexOf(t.target),t.key===L&&0<e&&e--,t.key===C&&e<n.length-1&&e++,n[e=-1===e?0:e].focus()):r.clearMenus():(this.matches(x)?this:d.default.prev(this,x)[0]).click()}},t=r,e=[{key:"Default",get:function(){return W}},{key:"DefaultType",get:function(){return R}},{key:"DATA_KEY",get:function(){return T}}],(i=null)&&p(t.prototype,i),e&&p(t,e),r}(t.default);return c.default.on(document,o,x,Q.dataApiKeydownHandler),c.default.on(document,o,P,Q.dataApiKeydownHandler),c.default.on(document,i,Q.clearMenus),c.default.on(document,"keyup.bs.dropdown.data-api",Q.clearMenus),c.default.on(document,i,x,function(t){t.preventDefault(),t.stopPropagation(),Q.dropdownInterface(this,"toggle")}),c.default.on(document,i,".dropdown form",function(t){return t.stopPropagation()}),b=E,y=Q,w=function(){var t,e,n=(t=window.jQuery)&&!document.body.hasAttribute("data-bs-no-jquery")?t:null;n&&(e=n.fn[b],n.fn[b]=y.jQueryInterface,n.fn[b].Constructor=y,n.fn[b].noConflict=function(){return n.fn[b]=e,y.jQueryInterface})},"loading"===document.readyState?document.addEventListener("DOMContentLoaded",w):w(),Q}),function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e(require("./dom/data.js"),require("./dom/event-handler.js"),require("./dom/manipulator.js"),require("./dom/selector-engine.js"),require("./base-component.js")):"function"==typeof define&&define.amd?define(["./dom/data","./dom/event-handler","./dom/manipulator","./dom/selector-engine","./base-component"],e):(t="undefined"!=typeof globalThis?globalThis:t||self).Modal=e(t.Data,t.EventHandler,t.Manipulator,t.SelectorEngine,t.Base)}(this,function(t,e,n,i,o){"use strict";function r(t){return t&&"object"==typeof t&&"default"in t?t:{default:t}}var a=r(t),s=r(e),l=r(n),u=r(i);function c(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}function f(){return(f=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n,i=arguments[e];for(n in i)Object.prototype.hasOwnProperty.call(i,n)&&(t[n]=i[n])}return t}).apply(this,arguments)}function d(t,e){return(d=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function p(t){if(!t)return 0;var e=(i=window.getComputedStyle(t)).transitionDuration,n=i.transitionDelay,t=Number.parseFloat(e),i=Number.parseFloat(n);return t||i?(e=e.split(",")[0],n=n.split(",")[0],1e3*(Number.parseFloat(e)+Number.parseFloat(n))):0}function h(e,t){var n=!1,t=t+5;e.addEventListener(y,function t(){n=!0,e.removeEventListener(y,t)}),setTimeout(function(){n||e.dispatchEvent(new Event(y))},t)}function m(r,a,s){Object.keys(s).forEach(function(t){var e,n,i=s[t],o=a[t],e=o&&((n=o)[0]||n).nodeType?"element":null==(e=o)?""+e:{}.toString.call(e).match(/\s([a-z]+)/i)[1].toLowerCase();if(!new RegExp(i).test(e))throw new TypeError(r.toUpperCase()+': Option "'+t+'" provided type "'+e+'" but expected type "'+i+'".')})}function g(t){return t.offsetHeight}var _,v,b,y="transitionend",w="rtl"===document.documentElement.dir,E="bs.modal",T="."+E,j={backdrop:!0,keyboard:!0,focus:!0},O={backdrop:"(boolean|string)",keyboard:"boolean",focus:"boolean"},L="hidden"+T,C="show"+T,D="focusin"+T,A="resize"+T,k="click.dismiss"+T,S="keydown.dismiss"+T,N="mousedown.dismiss"+T,x="modal-open",P="fade",I="show",M="modal-static",q=".fixed-top, .fixed-bottom, .is-fixed, .sticky-top",B=".sticky-top",H=function(i){function o(t,e){var n=i.call(this,t)||this;return n._config=n._getConfig(e),n._dialog=u.default.findOne(".modal-dialog",t),n._backdrop=null,n._isShown=!1,n._isBodyOverflowing=!1,n._ignoreBackdropClick=!1,n._isTransitioning=!1,n._scrollbarWidth=0,n}e=i,(t=o).prototype=Object.create(e.prototype),d(t.prototype.constructor=t,e);var t,e,n=o.prototype;return n.toggle=function(t){return this._isShown?this.hide():this.show(t)},n.show=function(t){var e,n=this;this._isShown||this._isTransitioning||(this._element.classList.contains(P)&&(this._isTransitioning=!0),e=s.default.trigger(this._element,C,{relatedTarget:t}),this._isShown||e.defaultPrevented||(this._isShown=!0,this._checkScrollbar(),this._setScrollbar(),this._adjustDialog(),this._setEscapeEvent(),this._setResizeEvent(),s.default.on(this._element,k,'[data-bs-dismiss="modal"]',function(t){return n.hide(t)}),s.default.on(this._dialog,N,function(){s.default.one(n._element,"mouseup.dismiss.bs.modal",function(t){t.target===n._element&&(n._ignoreBackdropClick=!0)})}),this._showBackdrop(function(){return n._showElement(t)})))},n.hide=function(t){var e=this;t&&t.preventDefault(),this._isShown&&!this._isTransitioning&&(s.default.trigger(this._element,"hide.bs.modal").defaultPrevented||(this._isShown=!1,(t=this._element.classList.contains(P))&&(this._isTransitioning=!0),this._setEscapeEvent(),this._setResizeEvent(),s.default.off(document,D),this._element.classList.remove(I),s.default.off(this._element,k),s.default.off(this._dialog,N),t?(t=p(this._element),s.default.one(this._element,"transitionend",function(t){return e._hideModal(t)}),h(this._element,t)):this._hideModal()))},n.dispose=function(){[window,this._element,this._dialog].forEach(function(t){return s.default.off(t,T)}),i.prototype.dispose.call(this),s.default.off(document,D),this._config=null,this._dialog=null,this._backdrop=null,this._isShown=null,this._isBodyOverflowing=null,this._ignoreBackdropClick=null,this._isTransitioning=null,this._scrollbarWidth=null},n.handleUpdate=function(){this._adjustDialog()},n._getConfig=function(t){return t=f({},j,t),m("modal",t,O),t},n._showElement=function(t){var e=this,n=this._element.classList.contains(P),i=u.default.findOne(".modal-body",this._dialog);this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE||document.body.appendChild(this._element),this._element.style.display="block",this._element.removeAttribute("aria-hidden"),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),this._element.scrollTop=0,i&&(i.scrollTop=0),n&&g(this._element),this._element.classList.add(I),this._config.focus&&this._enforceFocus();i=function(){e._config.focus&&e._element.focus(),e._isTransitioning=!1,s.default.trigger(e._element,"shown.bs.modal",{relatedTarget:t})};n?(n=p(this._dialog),s.default.one(this._dialog,"transitionend",i),h(this._dialog,n)):i()},n._enforceFocus=function(){var e=this;s.default.off(document,D),s.default.on(document,D,function(t){document===t.target||e._element===t.target||e._element.contains(t.target)||e._element.focus()})},n._setEscapeEvent=function(){var e=this;this._isShown?s.default.on(this._element,S,function(t){e._config.keyboard&&"Escape"===t.key?(t.preventDefault(),e.hide()):e._config.keyboard||"Escape"!==t.key||e._triggerBackdropTransition()}):s.default.off(this._element,S)},n._setResizeEvent=function(){var t=this;this._isShown?s.default.on(window,A,function(){return t._adjustDialog()}):s.default.off(window,A)},n._hideModal=function(){var t=this;this._element.style.display="none",this._element.setAttribute("aria-hidden",!0),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._isTransitioning=!1,this._showBackdrop(function(){document.body.classList.remove(x),t._resetAdjustments(),t._resetScrollbar(),s.default.trigger(t._element,L)})},n._removeBackdrop=function(){this._backdrop.parentNode.removeChild(this._backdrop),this._backdrop=null},n._showBackdrop=function(t){var e,n=this,i=this._element.classList.contains(P)?P:"";this._isShown&&this._config.backdrop?(this._backdrop=document.createElement("div"),this._backdrop.className="modal-backdrop",i&&this._backdrop.classList.add(i),document.body.appendChild(this._backdrop),s.default.on(this._element,k,function(t){n._ignoreBackdropClick?n._ignoreBackdropClick=!1:t.target===t.currentTarget&&("static"===n._config.backdrop?n._triggerBackdropTransition():n.hide())}),i&&g(this._backdrop),this._backdrop.classList.add(I),i?(e=p(this._backdrop),s.default.one(this._backdrop,"transitionend",t),h(this._backdrop,e)):t()):!this._isShown&&this._backdrop?(this._backdrop.classList.remove(I),i=function(){n._removeBackdrop(),t()},this._element.classList.contains(P)?(e=p(this._backdrop),s.default.one(this._backdrop,"transitionend",i),h(this._backdrop,e)):i()):t()},n._triggerBackdropTransition=function(){var t,e,n=this;s.default.trigger(this._element,"hidePrevented.bs.modal").defaultPrevented||((t=this._element.scrollHeight>document.documentElement.clientHeight)||(this._element.style.overflowY="hidden"),this._element.classList.add(M),e=p(this._dialog),s.default.off(this._element,"transitionend"),s.default.one(this._element,"transitionend",function(){n._element.classList.remove(M),t||(s.default.one(n._element,"transitionend",function(){n._element.style.overflowY=""}),h(n._element,e))}),h(this._element,e),this._element.focus())},n._adjustDialog=function(){var t=this._element.scrollHeight>document.documentElement.clientHeight;(!this._isBodyOverflowing&&t&&!w||this._isBodyOverflowing&&!t&&w)&&(this._element.style.paddingLeft=this._scrollbarWidth+"px"),(this._isBodyOverflowing&&!t&&!w||!this._isBodyOverflowing&&t&&w)&&(this._element.style.paddingRight=this._scrollbarWidth+"px")},n._resetAdjustments=function(){this._element.style.paddingLeft="",this._element.style.paddingRight=""},n._checkScrollbar=function(){var t=document.body.getBoundingClientRect();this._isBodyOverflowing=Math.round(t.left+t.right)<window.innerWidth,this._scrollbarWidth=this._getScrollbarWidth()},n._setScrollbar=function(){var e=this;this._isBodyOverflowing&&(this._setElementAttributes(q,"paddingRight",function(t){return t+e._scrollbarWidth}),this._setElementAttributes(B,"marginRight",function(t){return t-e._scrollbarWidth}),this._setElementAttributes("body","paddingRight",function(t){return t+e._scrollbarWidth})),document.body.classList.add(x)},n._setElementAttributes=function(t,i,o){u.default.find(t).forEach(function(t){var e=t.style[i],n=window.getComputedStyle(t)[i];l.default.setDataAttribute(t,i,e),t.style[i]=o(Number.parseFloat(n))+"px"})},n._resetScrollbar=function(){this._resetElementAttributes(q,"paddingRight"),this._resetElementAttributes(B,"marginRight"),this._resetElementAttributes("body","paddingRight")},n._resetElementAttributes=function(t,n){u.default.find(t).forEach(function(t){var e=l.default.getDataAttribute(t,n);void 0===e&&t===document.body?t.style[n]="":(l.default.removeDataAttribute(t,n),t.style[n]=e)})},n._getScrollbarWidth=function(){var t=document.createElement("div");t.className="modal-scrollbar-measure",document.body.appendChild(t);var e=t.getBoundingClientRect().width-t.clientWidth;return document.body.removeChild(t),e},o.jQueryInterface=function(n,i){return this.each(function(){var t=a.default.getData(this,E),e=f({},j,l.default.getDataAttributes(this),"object"==typeof n&&n?n:{}),t=t||new o(this,e);if("string"==typeof n){if(void 0===t[n])throw new TypeError('No method named "'+n+'"');t[n](i)}})},t=o,e=[{key:"Default",get:function(){return j}},{key:"DATA_KEY",get:function(){return E}}],(n=null)&&c(t.prototype,n),e&&c(t,e),o}(r(o).default);return s.default.on(document,"click.bs.modal.data-api",'[data-bs-toggle="modal"]',function(t){var e=this,n=function(t){t=function(t){var e=t.getAttribute("data-bs-target");if(!e||"#"===e){t=t.getAttribute("href");if(!t||!t.includes("#")&&!t.startsWith("."))return null;e=(t=t.includes("#")&&!t.startsWith("#")?"#"+t.split("#")[1]:t)&&"#"!==t?t.trim():null}return e}(t);return t?document.querySelector(t):null}(this);"A"!==this.tagName&&"AREA"!==this.tagName||t.preventDefault(),s.default.one(n,C,function(t){t.defaultPrevented||s.default.one(n,L,function(){!function(t){if(!t)return!1;if(t.style&&t.parentNode&&t.parentNode.style){var e=getComputedStyle(t),t=getComputedStyle(t.parentNode);return"none"!==e.display&&"none"!==t.display&&"hidden"!==e.visibility}return!1}(e)||e.focus()})});var i=a.default.getData(n,E);i||(t=f({},l.default.getDataAttributes(n),l.default.getDataAttributes(this)),i=new H(n,t)),i.toggle(this)}),_="modal",v=H,b=function(){var t,e,n=(t=window.jQuery)&&!document.body.hasAttribute("data-bs-no-jquery")?t:null;n&&(e=n.fn[_],n.fn[_]=v.jQueryInterface,n.fn[_].Constructor=v,n.fn[_].noConflict=function(){return n.fn[_]=e,v.jQueryInterface})},"loading"===document.readyState?document.addEventListener("DOMContentLoaded",b):b(),H}),function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e(require("./dom/data.js"),require("./dom/selector-engine.js"),require("./tooltip.js")):"function"==typeof define&&define.amd?define(["./dom/data","./dom/selector-engine","./tooltip"],e):(t="undefined"!=typeof globalThis?globalThis:t||self).Popover=e(t.Data,t.SelectorEngine,t.Tooltip)}(this,function(t,e,n){"use strict";function i(t){return t&&"object"==typeof t&&"default"in t?t:{default:t}}var r=i(t),a=i(e),n=i(n);function s(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}function o(){return(o=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n,i=arguments[e];for(n in i)Object.prototype.hasOwnProperty.call(i,n)&&(t[n]=i[n])}return t}).apply(this,arguments)}function l(t,e){return(l=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}document.documentElement.dir;var u,c,f,d="popover",p="bs.popover",h="."+p,m="bs-popover",g=new RegExp("(^|\\s)"+m+"\\S+","g"),_=o({},n.default.Default,{placement:"right",offset:[0,8],trigger:"click",content:"",template:'<div class="popover" role="tooltip"><div class="popover-arrow"></div><h3 class="popover-header"></h3><div class="popover-body"></div></div>'}),v=o({},n.default.DefaultType,{content:"(string|element|function)"}),b={HIDE:"hide"+h,HIDDEN:"hidden"+h,SHOW:"show"+h,SHOWN:"shown"+h,INSERTED:"inserted"+h,CLICK:"click"+h,FOCUSIN:"focusin"+h,FOCUSOUT:"focusout"+h,MOUSEENTER:"mouseenter"+h,MOUSELEAVE:"mouseleave"+h},n=function(t){function i(){return t.apply(this,arguments)||this}n=t,(e=i).prototype=Object.create(n.prototype),l(e.prototype.constructor=e,n);var e,n,o=i.prototype;return o.isWithContent=function(){return this.getTitle()||this._getContent()},o.setContent=function(){var t=this.getTipElement();this.setElementContent(a.default.findOne(".popover-header",t),this.getTitle());var e=this._getContent();"function"==typeof e&&(e=e.call(this._element)),this.setElementContent(a.default.findOne(".popover-body",t),e),t.classList.remove("fade","show")},o._addAttachmentClass=function(t){this.getTipElement().classList.add(m+"-"+this.updateAttachment(t))},o._getContent=function(){return this._element.getAttribute("data-bs-content")||this.config.content},o._cleanTipClass=function(){var e=this.getTipElement(),t=e.getAttribute("class").match(g);null!==t&&0<t.length&&t.map(function(t){return t.trim()}).forEach(function(t){return e.classList.remove(t)})},i.jQueryInterface=function(n){return this.each(function(){var t=r.default.getData(this,p),e="object"==typeof n?n:null;if((t||!/dispose|hide/.test(n))&&(t||(t=new i(this,e),r.default.setData(this,p,t)),"string"==typeof n)){if(void 0===t[n])throw new TypeError('No method named "'+n+'"');t[n]()}})},e=i,n=[{key:"Default",get:function(){return _}},{key:"NAME",get:function(){return d}},{key:"DATA_KEY",get:function(){return p}},{key:"Event",get:function(){return b}},{key:"EVENT_KEY",get:function(){return h}},{key:"DefaultType",get:function(){return v}}],(o=null)&&s(e.prototype,o),n&&s(e,n),i}(n.default);return u=d,c=n,f=function(){var t,e,n=(t=window.jQuery)&&!document.body.hasAttribute("data-bs-no-jquery")?t:null;n&&(e=n.fn[u],n.fn[u]=c.jQueryInterface,n.fn[u].Constructor=c,n.fn[u].noConflict=function(){return n.fn[u]=e,c.jQueryInterface})},"loading"===document.readyState?document.addEventListener("DOMContentLoaded",f):f(),n}),function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e(require("./dom/data.js"),require("./dom/event-handler.js"),require("./dom/manipulator.js"),require("./dom/selector-engine.js"),require("./base-component.js")):"function"==typeof define&&define.amd?define(["./dom/data","./dom/event-handler","./dom/manipulator","./dom/selector-engine","./base-component"],e):(t="undefined"!=typeof globalThis?globalThis:t||self).ScrollSpy=e(t.Data,t.EventHandler,t.Manipulator,t.SelectorEngine,t.Base)}(this,function(t,e,n,i,o){"use strict";function r(t){return t&&"object"==typeof t&&"default"in t?t:{default:t}}var a=r(t),s=r(e),l=r(n),u=r(i);function c(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}function f(){return(f=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n,i=arguments[e];for(n in i)Object.prototype.hasOwnProperty.call(i,n)&&(t[n]=i[n])}return t}).apply(this,arguments)}function d(t,e){return(d=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function p(t){return(t[0]||t).nodeType}document.documentElement.dir;var h,m,g,_="scrollspy",v="bs.scrollspy",b="."+v,y={offset:10,method:"auto",target:""},w={offset:"number",method:"string",target:"(string|element)"},E="dropdown-item",T="active",j=".nav-link",O=".list-group-item",L="position",C=function(i){function n(t,e){var n=i.call(this,t)||this;return n._scrollElement="BODY"===t.tagName?window:t,n._config=n._getConfig(e),n._selector=n._config.target+" "+j+", "+n._config.target+" "+O+", "+n._config.target+" ."+E,n._offsets=[],n._targets=[],n._activeTarget=null,n._scrollHeight=0,s.default.on(n._scrollElement,"scroll.bs.scrollspy",function(){return n._process()}),n.refresh(),n._process(),n}e=i,(t=n).prototype=Object.create(e.prototype),d(t.prototype.constructor=t,e);var t,e,o=n.prototype;return o.refresh=function(){var e=this,t=this._scrollElement===this._scrollElement.window?"offset":L,i="auto"===this._config.method?t:this._config.method,o=i===L?this._getScrollTop():0;this._offsets=[],this._targets=[],this._scrollHeight=this._getScrollHeight(),u.default.find(this._selector).map(function(t){var e=function(t){t=function(t){var e=t.getAttribute("data-bs-target");if(!e||"#"===e){t=t.getAttribute("href");if(!t||!t.includes("#")&&!t.startsWith("."))return null;e=(t=t.includes("#")&&!t.startsWith("#")?"#"+t.split("#")[1]:t)&&"#"!==t?t.trim():null}return e}(t);return t&&document.querySelector(t)?t:null}(t),n=e?u.default.findOne(e):null;if(n){t=n.getBoundingClientRect();if(t.width||t.height)return[l.default[i](n).top+o,e]}return null}).filter(function(t){return t}).sort(function(t,e){return t[0]-e[0]}).forEach(function(t){e._offsets.push(t[0]),e._targets.push(t[1])})},o.dispose=function(){i.prototype.dispose.call(this),s.default.off(this._scrollElement,b),this._scrollElement=null,this._config=null,this._selector=null,this._offsets=null,this._targets=null,this._activeTarget=null,this._scrollHeight=null},o._getConfig=function(t){var e,o,r,a;return"string"!=typeof(t=f({},y,"object"==typeof t&&t?t:{})).target&&p(t.target)&&((e=t.target.id)||(e=function(t){for(;t+=Math.floor(1e6*Math.random()),document.getElementById(t););return t}(_),t.target.id=e),t.target="#"+e),o=_,r=t,a=w,Object.keys(a).forEach(function(t){var e,n=a[t],i=r[t],e=i&&p(i)?"element":null==(e=i)?""+e:{}.toString.call(e).match(/\s([a-z]+)/i)[1].toLowerCase();if(!new RegExp(n).test(e))throw new TypeError(o.toUpperCase()+': Option "'+t+'" provided type "'+e+'" but expected type "'+n+'".')}),t},o._getScrollTop=function(){return this._scrollElement===window?this._scrollElement.pageYOffset:this._scrollElement.scrollTop},o._getScrollHeight=function(){return this._scrollElement.scrollHeight||Math.max(document.body.scrollHeight,document.documentElement.scrollHeight)},o._getOffsetHeight=function(){return this._scrollElement===window?window.innerHeight:this._scrollElement.getBoundingClientRect().height},o._process=function(){var t=this._getScrollTop()+this._config.offset,e=this._getScrollHeight(),n=this._config.offset+e-this._getOffsetHeight();if(this._scrollHeight!==e&&this.refresh(),n<=t){n=this._targets[this._targets.length-1];this._activeTarget!==n&&this._activate(n)}else{if(this._activeTarget&&t<this._offsets[0]&&0<this._offsets[0])return this._activeTarget=null,void this._clear();for(var i=this._offsets.length;i--;)this._activeTarget!==this._targets[i]&&t>=this._offsets[i]&&(void 0===this._offsets[i+1]||t<this._offsets[i+1])&&this._activate(this._targets[i])}},o._activate=function(e){this._activeTarget=e,this._clear();var t=this._selector.split(",").map(function(t){return t+'[data-bs-target="'+e+'"],'+t+'[href="'+e+'"]'}),t=u.default.findOne(t.join(","));t.classList.contains(E)?(u.default.findOne(".dropdown-toggle",t.closest(".dropdown")).classList.add(T),t.classList.add(T)):(t.classList.add(T),u.default.parents(t,".nav, .list-group").forEach(function(t){u.default.prev(t,j+", "+O).forEach(function(t){return t.classList.add(T)}),u.default.prev(t,".nav-item").forEach(function(t){u.default.children(t,j).forEach(function(t){return t.classList.add(T)})})})),s.default.trigger(this._scrollElement,"activate.bs.scrollspy",{relatedTarget:e})},o._clear=function(){u.default.find(this._selector).filter(function(t){return t.classList.contains(T)}).forEach(function(t){return t.classList.remove(T)})},n.jQueryInterface=function(e){return this.each(function(){var t=(t=a.default.getData(this,v))||new n(this,"object"==typeof e&&e);if("string"==typeof e){if(void 0===t[e])throw new TypeError('No method named "'+e+'"');t[e]()}})},t=n,e=[{key:"Default",get:function(){return y}},{key:"DATA_KEY",get:function(){return v}}],(o=null)&&c(t.prototype,o),e&&c(t,e),n}(r(o).default);return s.default.on(window,"load.bs.scrollspy.data-api",function(){u.default.find('[data-bs-spy="scroll"]').forEach(function(t){return new C(t,l.default.getDataAttributes(t))})}),h=_,m=C,g=function(){var t,e,n=(t=window.jQuery)&&!document.body.hasAttribute("data-bs-no-jquery")?t:null;n&&(e=n.fn[h],n.fn[h]=m.jQueryInterface,n.fn[h].Constructor=m,n.fn[h].noConflict=function(){return n.fn[h]=e,m.jQueryInterface})},"loading"===document.readyState?document.addEventListener("DOMContentLoaded",g):g(),C}),function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e(require("./dom/data.js"),require("./dom/event-handler.js"),require("./dom/selector-engine.js"),require("./base-component.js")):"function"==typeof define&&define.amd?define(["./dom/data","./dom/event-handler","./dom/selector-engine","./base-component"],e):(t="undefined"!=typeof globalThis?globalThis:t||self).Tab=e(t.Data,t.EventHandler,t.SelectorEngine,t.Base)}(this,function(t,e,n,i){"use strict";function o(t){return t&&"object"==typeof t&&"default"in t?t:{default:t}}var r=o(t),a=o(e),s=o(n);function l(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}function u(t,e){return(u=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function c(e,t){var n=!1,t=t+5;e.addEventListener(f,function t(){n=!0,e.removeEventListener(f,t)}),setTimeout(function(){n||e.dispatchEvent(new Event(f))},t)}var f="transitionend";document.documentElement.dir;var d,p,h,m="bs.tab",n="."+m,g="active",_=".active",v=":scope > li > .active",b=function(t){function n(){return t.apply(this,arguments)||this}i=t,(e=n).prototype=Object.create(i.prototype),u(e.prototype.constructor=e,i);var e,i,o=n.prototype;return o.show=function(){var t,e,n,i,o=this;this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE&&this._element.classList.contains(g)||this._element.classList.contains("disabled")||(t=function(t){t=function(t){var e=t.getAttribute("data-bs-target");if(!e||"#"===e){t=t.getAttribute("href");if(!t||!t.includes("#")&&!t.startsWith("."))return null;e=(t=t.includes("#")&&!t.startsWith("#")?"#"+t.split("#")[1]:t)&&"#"!==t?t.trim():null}return e}(t);return t?document.querySelector(t):null}(this._element),(i=this._element.closest(".nav, .list-group"))&&(n="UL"===i.nodeName||"OL"===i.nodeName?v:_,e=(e=s.default.find(n,i))[e.length-1]),n=e?a.default.trigger(e,"hide.bs.tab",{relatedTarget:this._element}):null,a.default.trigger(this._element,"show.bs.tab",{relatedTarget:e}).defaultPrevented||null!==n&&n.defaultPrevented||(this._activate(this._element,i),i=function(){a.default.trigger(e,"hidden.bs.tab",{relatedTarget:o._element}),a.default.trigger(o._element,"shown.bs.tab",{relatedTarget:e})},t?this._activate(t,t.parentNode,i):i()))},o._activate=function(t,e,n){var i=this,o=(!e||"UL"!==e.nodeName&&"OL"!==e.nodeName?s.default.children(e,_):s.default.find(v,e))[0],r=n&&o&&o.classList.contains("fade"),e=function(){return i._transitionComplete(t,o,n)};o&&r?(r=function(t){if(!t)return 0;var e=window.getComputedStyle(t),n=e.transitionDuration,i=e.transitionDelay,t=Number.parseFloat(n),e=Number.parseFloat(i);return t||e?(n=n.split(",")[0],i=i.split(",")[0],1e3*(Number.parseFloat(n)+Number.parseFloat(i))):0}(o),o.classList.remove("show"),a.default.one(o,"transitionend",e),c(o,r)):e()},o._transitionComplete=function(t,e,n){var i;e&&(e.classList.remove(g),(i=s.default.findOne(":scope > .dropdown-menu .active",e.parentNode))&&i.classList.remove(g),"tab"===e.getAttribute("role")&&e.setAttribute("aria-selected",!1)),t.classList.add(g),"tab"===t.getAttribute("role")&&t.setAttribute("aria-selected",!0),t.offsetHeight,t.classList.contains("fade")&&t.classList.add("show"),t.parentNode&&t.parentNode.classList.contains("dropdown-menu")&&(t.closest(".dropdown")&&s.default.find(".dropdown-toggle").forEach(function(t){return t.classList.add(g)}),t.setAttribute("aria-expanded",!0)),n&&n()},n.jQueryInterface=function(e){return this.each(function(){var t=r.default.getData(this,m)||new n(this);if("string"==typeof e){if(void 0===t[e])throw new TypeError('No method named "'+e+'"');t[e]()}})},e=n,i=[{key:"DATA_KEY",get:function(){return m}}],(o=null)&&l(e.prototype,o),i&&l(e,i),n}(o(i).default);return a.default.on(document,"click.bs.tab.data-api",'[data-bs-toggle="tab"], [data-bs-toggle="pill"], [data-bs-toggle="list"]',function(t){t.preventDefault(),(r.default.getData(this,m)||new b(this)).show()}),d="tab",p=b,h=function(){var t,e,n=(t=window.jQuery)&&!document.body.hasAttribute("data-bs-no-jquery")?t:null;n&&(e=n.fn[d],n.fn[d]=p.jQueryInterface,n.fn[d].Constructor=p,n.fn[d].noConflict=function(){return n.fn[d]=e,p.jQueryInterface})},"loading"===document.readyState?document.addEventListener("DOMContentLoaded",h):h(),b}),function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e(require("./dom/data.js"),require("./dom/event-handler.js"),require("./dom/manipulator.js"),require("./base-component.js")):"function"==typeof define&&define.amd?define(["./dom/data","./dom/event-handler","./dom/manipulator","./base-component"],e):(t="undefined"!=typeof globalThis?globalThis:t||self).Toast=e(t.Data,t.EventHandler,t.Manipulator,t.Base)}(this,function(t,e,n,i){"use strict";function o(t){return t&&"object"==typeof t&&"default"in t?t:{default:t}}var r=o(t),a=o(e),s=o(n);function l(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}function u(){return(u=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n,i=arguments[e];for(n in i)Object.prototype.hasOwnProperty.call(i,n)&&(t[n]=i[n])}return t}).apply(this,arguments)}function c(t,e){return(c=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function f(t){if(!t)return 0;var e=(i=window.getComputedStyle(t)).transitionDuration,n=i.transitionDelay,t=Number.parseFloat(e),i=Number.parseFloat(n);return t||i?(e=e.split(",")[0],n=n.split(",")[0],1e3*(Number.parseFloat(e)+Number.parseFloat(n))):0}function d(e,t){var n=!1,t=t+5;e.addEventListener(h,function t(){n=!0,e.removeEventListener(h,t)}),setTimeout(function(){n||e.dispatchEvent(new Event(h))},t)}function p(r,a,s){Object.keys(s).forEach(function(t){var e,n,i=s[t],o=a[t],e=o&&((n=o)[0]||n).nodeType?"element":null==(e=o)?""+e:{}.toString.call(e).match(/\s([a-z]+)/i)[1].toLowerCase();if(!new RegExp(i).test(e))throw new TypeError(r.toUpperCase()+': Option "'+t+'" provided type "'+e+'" but expected type "'+i+'".')})}var h="transitionend";document.documentElement.dir;var m,g,_,v="bs.toast",n="."+v,b="click.dismiss"+n,y="show",w="showing",E={animation:"boolean",autohide:"boolean",delay:"number"},T={animation:!0,autohide:!0,delay:5e3},i=function(n){function i(t,e){t=n.call(this,t)||this;return t._config=t._getConfig(e),t._timeout=null,t._setListeners(),t}e=n,(t=i).prototype=Object.create(e.prototype),c(t.prototype.constructor=t,e);var t,e,o=i.prototype;return o.show=function(){var t,e,n=this;a.default.trigger(this._element,"show.bs.toast").defaultPrevented||(this._clearTimeout(),this._config.animation&&this._element.classList.add("fade"),t=function(){n._element.classList.remove(w),n._element.classList.add(y),a.default.trigger(n._element,"shown.bs.toast"),n._config.autohide&&(n._timeout=setTimeout(function(){n.hide()},n._config.delay))},this._element.classList.remove("hide"),this._element.offsetHeight,this._element.classList.add(w),this._config.animation?(e=f(this._element),a.default.one(this._element,"transitionend",t),d(this._element,e)):t())},o.hide=function(){var t,e,n=this;this._element.classList.contains(y)&&(a.default.trigger(this._element,"hide.bs.toast").defaultPrevented||(t=function(){n._element.classList.add("hide"),a.default.trigger(n._element,"hidden.bs.toast")},this._element.classList.remove(y),this._config.animation?(e=f(this._element),a.default.one(this._element,"transitionend",t),d(this._element,e)):t()))},o.dispose=function(){this._clearTimeout(),this._element.classList.contains(y)&&this._element.classList.remove(y),a.default.off(this._element,b),n.prototype.dispose.call(this),this._config=null},o._getConfig=function(t){return t=u({},T,s.default.getDataAttributes(this._element),"object"==typeof t&&t?t:{}),p("toast",t,this.constructor.DefaultType),t},o._setListeners=function(){var t=this;a.default.on(this._element,b,'[data-bs-dismiss="toast"]',function(){return t.hide()})},o._clearTimeout=function(){clearTimeout(this._timeout),this._timeout=null},i.jQueryInterface=function(e){return this.each(function(){var t=(t=r.default.getData(this,v))||new i(this,"object"==typeof e&&e);if("string"==typeof e){if(void 0===t[e])throw new TypeError('No method named "'+e+'"');t[e](this)}})},t=i,e=[{key:"DefaultType",get:function(){return E}},{key:"Default",get:function(){return T}},{key:"DATA_KEY",get:function(){return v}}],(o=null)&&l(t.prototype,o),e&&l(t,e),i}(o(i).default);return m="toast",g=i,_=function(){var t,e,n=(t=window.jQuery)&&!document.body.hasAttribute("data-bs-no-jquery")?t:null;n&&(e=n.fn[m],n.fn[m]=g.jQueryInterface,n.fn[m].Constructor=g,n.fn[m].noConflict=function(){return n.fn[m]=e,g.jQueryInterface})},"loading"===document.readyState?document.addEventListener("DOMContentLoaded",_):_(),i}),function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e(require("@popperjs/core"),require("./dom/data.js"),require("./dom/event-handler.js"),require("./dom/manipulator.js"),require("./dom/selector-engine.js"),require("./base-component.js")):"function"==typeof define&&define.amd?define(["@popperjs/core","./dom/data","./dom/event-handler","./dom/manipulator","./dom/selector-engine","./base-component"],e):(t="undefined"!=typeof globalThis?globalThis:t||self).Tooltip=e(t.Popper,t.Data,t.EventHandler,t.Manipulator,t.SelectorEngine,t.Base)}(this,function(r,t,e,n,i,o){"use strict";function a(t){return t&&"object"==typeof t&&"default"in t?t:{default:t}}function s(n){if(n&&n.__esModule)return n;var i=Object.create(null);return n&&Object.keys(n).forEach(function(t){var e;"default"!==t&&(e=Object.getOwnPropertyDescriptor(n,t),Object.defineProperty(i,t,e.get?e:{enumerable:!0,get:function(){return n[t]}}))}),i.default=n,Object.freeze(i)}var l=s(r),u=a(t),c=a(e),f=a(n),d=a(i),n=a(o);function p(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}function h(){return(h=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n,i=arguments[e];for(n in i)Object.prototype.hasOwnProperty.call(i,n)&&(t[n]=i[n])}return t}).apply(this,arguments)}function m(t,e){return(m=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function g(t){if(!t)return 0;var e=(i=window.getComputedStyle(t)).transitionDuration,n=i.transitionDelay,t=Number.parseFloat(e),i=Number.parseFloat(n);return t||i?(e=e.split(",")[0],n=n.split(",")[0],1e3*(Number.parseFloat(e)+Number.parseFloat(n))):0}function _(t){return(t[0]||t).nodeType}function v(e,t){var n=!1,t=t+5;e.addEventListener(w,function t(){n=!0,e.removeEventListener(w,t)}),setTimeout(function(){n||e.dispatchEvent(new Event(w))},t)}function b(t){return document.documentElement.attachShadow?"function"!=typeof t.getRootNode?t instanceof ShadowRoot?t:t.parentNode?b(t.parentNode):null:(t=t.getRootNode())instanceof ShadowRoot?t:null:null}function y(){return function(){}}var w="transitionend",i="rtl"===document.documentElement.dir,E=new Set(["background","cite","href","itemtype","longdesc","poster","src","xlink:href"]),T=/^(?:(?:https?|mailto|ftp|tel|file):|[^#&/:?]*(?:[#/?]|$))/gi,j=/^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[\d+/a-z]+=*$/i,o={"*":["class","dir","id","lang","role",/^aria-[\w-]*$/i],a:["target","href","title","rel"],area:[],b:[],br:[],col:[],code:[],div:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:["src","srcset","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]};function O(t,r,e){if(!t.length)return t;if(e&&"function"==typeof e)return e(t);for(var e=(new window.DOMParser).parseFromString(t,"text/html"),a=Object.keys(r),s=(t=[]).concat.apply(t,e.body.querySelectorAll("*")),n=function(t,e){var n=s[t],i=n.nodeName.toLowerCase();if(!a.includes(i))return n.parentNode.removeChild(n),"continue";var t=(t=[]).concat.apply(t,n.attributes),o=[].concat(r["*"]||[],r[i]||[]);t.forEach(function(t){!function(t,e){var n=t.nodeName.toLowerCase();if(e.includes(n))return!E.has(n)||Boolean(T.test(t.nodeValue)||j.test(t.nodeValue));for(var i=e.filter(function(t){return t instanceof RegExp}),o=0,r=i.length;o<r;o++)if(i[o].test(n))return!0;return!1}(t,o)&&n.removeAttribute(t.nodeName)})},i=0,o=s.length;i<o;i++)n(i);return e.body.innerHTML}var L,C,D,A="tooltip",k="bs.tooltip",S="."+k,N="bs-tooltip",x=new RegExp("(^|\\s)"+N+"\\S+","g"),P=new Set(["sanitize","allowList","sanitizeFn"]),I={animation:"boolean",template:"string",title:"(string|element|function)",trigger:"string",delay:"(number|object)",html:"boolean",selector:"(string|boolean)",placement:"(string|function)",offset:"(array|string|function)",container:"(string|element|boolean)",fallbackPlacements:"array",boundary:"(string|element)",customClass:"(string|function)",sanitize:"boolean",sanitizeFn:"(null|function)",allowList:"object",popperConfig:"(null|object|function)"},M={AUTO:"auto",TOP:"top",RIGHT:i?"left":"right",BOTTOM:"bottom",LEFT:i?"right":"left"},q={animation:!0,template:'<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:0,html:!1,selector:!1,placement:"top",offset:[0,0],container:!1,fallbackPlacements:["top","right","bottom","left"],boundary:"clippingParents",customClass:"",sanitize:!0,sanitizeFn:null,allowList:o,popperConfig:null},B={HIDE:"hide"+S,HIDDEN:"hidden"+S,SHOW:"show"+S,SHOWN:"shown"+S,INSERTED:"inserted"+S,CLICK:"click"+S,FOCUSIN:"focusin"+S,FOCUSOUT:"focusout"+S,MOUSEENTER:"mouseenter"+S,MOUSELEAVE:"mouseleave"+S},H="fade",F="show",W="show",R="hover",Q="focus",n=function(n){function i(t,e){if(void 0===l)throw new TypeError("Bootstrap's tooltips require Popper (https://popper.js.org)");return(t=n.call(this,t)||this)._isEnabled=!0,t._timeout=0,t._hoverState="",t._activeTrigger={},t._popper=null,t.config=t._getConfig(e),t.tip=null,t._setListeners(),t}e=n,(t=i).prototype=Object.create(e.prototype),m(t.prototype.constructor=t,e);var t,e,o=i.prototype;return o.enable=function(){this._isEnabled=!0},o.disable=function(){this._isEnabled=!1},o.toggleEnabled=function(){this._isEnabled=!this._isEnabled},o.toggle=function(t){this._isEnabled&&(t?((t=this._initializeOnDelegatedTarget(t))._activeTrigger.click=!t._activeTrigger.click,t._isWithActiveTrigger()?t._enter(null,t):t._leave(null,t)):this.getTipElement().classList.contains(F)?this._leave(null,this):this._enter(null,this))},o.dispose=function(){clearTimeout(this._timeout),c.default.off(this._element,this.constructor.EVENT_KEY),c.default.off(this._element.closest(".modal"),"hide.bs.modal",this._hideModalHandler),this.tip&&this.tip.parentNode&&this.tip.parentNode.removeChild(this.tip),this._isEnabled=null,this._timeout=null,this._hoverState=null,this._activeTrigger=null,this._popper&&this._popper.destroy(),this._popper=null,this.config=null,this.tip=null,n.prototype.dispose.call(this)},o.show=function(){var t,e,n,i,o=this;if("none"===this._element.style.display)throw new Error("Please use show on visible elements");this.isWithContent()&&this._isEnabled&&(n=c.default.trigger(this._element,this.constructor.Event.SHOW),t=(null===(e=b(this._element))?this._element.ownerDocument.documentElement:e).contains(this._element),!n.defaultPrevented&&t&&(e=this.getTipElement(),n=function(t){for(;t+=Math.floor(1e6*Math.random()),document.getElementById(t););return t}(this.constructor.NAME),e.setAttribute("id",n),this._element.setAttribute("aria-describedby",n),this.setContent(),this.config.animation&&e.classList.add(H),t="function"==typeof this.config.placement?this.config.placement.call(this,e,this._element):this.config.placement,n=this._getAttachment(t),this._addAttachmentClass(n),t=this._getContainer(),u.default.setData(e,this.constructor.DATA_KEY,this),this._element.ownerDocument.documentElement.contains(this.tip)||t.appendChild(e),c.default.trigger(this._element,this.constructor.Event.INSERTED),this._popper=r.createPopper(this._element,e,this._getPopperConfig(n)),e.classList.add(F),(n="function"==typeof this.config.customClass?this.config.customClass():this.config.customClass)&&(e=e.classList).add.apply(e,n.split(" ")),"ontouchstart"in document.documentElement&&(i=[]).concat.apply(i,document.body.children).forEach(function(t){c.default.on(t,"mouseover",y())}),n=function(){var t=o._hoverState;o._hoverState=null,c.default.trigger(o._element,o.constructor.Event.SHOWN),"out"===t&&o._leave(null,o)},this.tip.classList.contains(H)?(i=g(this.tip),c.default.one(this.tip,"transitionend",n),v(this.tip,i)):n()))},o.hide=function(){var t,e,n,i=this;this._popper&&(t=this.getTipElement(),e=function(){i._hoverState!==W&&t.parentNode&&t.parentNode.removeChild(t),i._cleanTipClass(),i._element.removeAttribute("aria-describedby"),c.default.trigger(i._element,i.constructor.Event.HIDDEN),i._popper&&(i._popper.destroy(),i._popper=null)},c.default.trigger(this._element,this.constructor.Event.HIDE).defaultPrevented||(t.classList.remove(F),"ontouchstart"in document.documentElement&&(n=[]).concat.apply(n,document.body.children).forEach(function(t){return c.default.off(t,"mouseover",y)}),this._activeTrigger.click=!1,this._activeTrigger[Q]=!1,this._activeTrigger[R]=!1,this.tip.classList.contains(H)?(n=g(t),c.default.one(t,"transitionend",e),v(t,n)):e(),this._hoverState=""))},o.update=function(){null!==this._popper&&this._popper.update()},o.isWithContent=function(){return Boolean(this.getTitle())},o.getTipElement=function(){if(this.tip)return this.tip;var t=document.createElement("div");return t.innerHTML=this.config.template,this.tip=t.children[0],this.tip},o.setContent=function(){var t=this.getTipElement();this.setElementContent(d.default.findOne(".tooltip-inner",t),this.getTitle()),t.classList.remove(H,F)},o.setElementContent=function(t,e){if(null!==t)return"object"==typeof e&&_(e)?(e.jquery&&(e=e[0]),void(this.config.html?e.parentNode!==t&&(t.innerHTML="",t.appendChild(e)):t.textContent=e.textContent)):void(this.config.html?(this.config.sanitize&&(e=O(e,this.config.allowList,this.config.sanitizeFn)),t.innerHTML=e):t.textContent=e)},o.getTitle=function(){return this._element.getAttribute("data-bs-original-title")||("function"==typeof this.config.title?this.config.title.call(this._element):this.config.title)},o.updateAttachment=function(t){return"right"===t?"end":"left"===t?"start":t},o._initializeOnDelegatedTarget=function(t,e){var n=this.constructor.DATA_KEY;return(e=e||u.default.getData(t.delegateTarget,n))||(e=new this.constructor(t.delegateTarget,this._getDelegateConfig()),u.default.setData(t.delegateTarget,n,e)),e},o._getOffset=function(){var e=this,n=this.config.offset;return"string"==typeof n?n.split(",").map(function(t){return Number.parseInt(t,10)}):"function"==typeof n?function(t){return n(t,e._element)}:n},o._getPopperConfig=function(t){var e=this,t={placement:t,modifiers:[{name:"flip",options:{altBoundary:!0,fallbackPlacements:this.config.fallbackPlacements}},{name:"offset",options:{offset:this._getOffset()}},{name:"preventOverflow",options:{boundary:this.config.boundary}},{name:"arrow",options:{element:"."+this.constructor.NAME+"-arrow"}},{name:"onChange",enabled:!0,phase:"afterWrite",fn:function(t){return e._handlePopperPlacementChange(t)}}],onFirstUpdate:function(t){t.options.placement!==t.placement&&e._handlePopperPlacementChange(t)}};return h({},t,"function"==typeof this.config.popperConfig?this.config.popperConfig(t):this.config.popperConfig)},o._addAttachmentClass=function(t){this.getTipElement().classList.add(N+"-"+this.updateAttachment(t))},o._getContainer=function(){return!1===this.config.container?document.body:_(this.config.container)?this.config.container:d.default.findOne(this.config.container)},o._getAttachment=function(t){return M[t.toUpperCase()]},o._setListeners=function(){var n=this;this.config.trigger.split(" ").forEach(function(t){var e;"click"===t?c.default.on(n._element,n.constructor.Event.CLICK,n.config.selector,function(t){return n.toggle(t)}):"manual"!==t&&(e=t===R?n.constructor.Event.MOUSEENTER:n.constructor.Event.FOCUSIN,t=t===R?n.constructor.Event.MOUSELEAVE:n.constructor.Event.FOCUSOUT,c.default.on(n._element,e,n.config.selector,function(t){return n._enter(t)}),c.default.on(n._element,t,n.config.selector,function(t){return n._leave(t)}))}),this._hideModalHandler=function(){n._element&&n.hide()},c.default.on(this._element.closest(".modal"),"hide.bs.modal",this._hideModalHandler),this.config.selector?this.config=h({},this.config,{trigger:"manual",selector:""}):this._fixTitle()},o._fixTitle=function(){var t=this._element.getAttribute("title"),e=typeof this._element.getAttribute("data-bs-original-title");!t&&"string"==e||(this._element.setAttribute("data-bs-original-title",t||""),!t||this._element.getAttribute("aria-label")||this._element.textContent||this._element.setAttribute("aria-label",t),this._element.setAttribute("title",""))},o._enter=function(t,e){e=this._initializeOnDelegatedTarget(t,e),t&&(e._activeTrigger["focusin"===t.type?Q:R]=!0),e.getTipElement().classList.contains(F)||e._hoverState===W?e._hoverState=W:(clearTimeout(e._timeout),e._hoverState=W,e.config.delay&&e.config.delay.show?e._timeout=setTimeout(function(){e._hoverState===W&&e.show()},e.config.delay.show):e.show())},o._leave=function(t,e){e=this._initializeOnDelegatedTarget(t,e),t&&(e._activeTrigger["focusout"===t.type?Q:R]=!1),e._isWithActiveTrigger()||(clearTimeout(e._timeout),e._hoverState="out",e.config.delay&&e.config.delay.hide?e._timeout=setTimeout(function(){"out"===e._hoverState&&e.hide()},e.config.delay.hide):e.hide())},o._isWithActiveTrigger=function(){for(var t in this._activeTrigger)if(this._activeTrigger[t])return!0;return!1},o._getConfig=function(t){var o,r,a,e=f.default.getDataAttributes(this._element);return Object.keys(e).forEach(function(t){P.has(t)&&delete e[t]}),t&&"object"==typeof t.container&&t.container.jquery&&(t.container=t.container[0]),"number"==typeof(t=h({},this.constructor.Default,e,"object"==typeof t&&t?t:{})).delay&&(t.delay={show:t.delay,hide:t.delay}),"number"==typeof t.title&&(t.title=t.title.toString()),"number"==typeof t.content&&(t.content=t.content.toString()),o=A,r=t,a=this.constructor.DefaultType,Object.keys(a).forEach(function(t){var e,n=a[t],i=r[t],e=i&&_(i)?"element":null==(e=i)?""+e:{}.toString.call(e).match(/\s([a-z]+)/i)[1].toLowerCase();if(!new RegExp(n).test(e))throw new TypeError(o.toUpperCase()+': Option "'+t+'" provided type "'+e+'" but expected type "'+n+'".')}),t.sanitize&&(t.template=O(t.template,t.allowList,t.sanitizeFn)),t},o._getDelegateConfig=function(){var t={};if(this.config)for(var e in this.config)this.constructor.Default[e]!==this.config[e]&&(t[e]=this.config[e]);return t},o._cleanTipClass=function(){var e=this.getTipElement(),t=e.getAttribute("class").match(x);null!==t&&0<t.length&&t.map(function(t){return t.trim()}).forEach(function(t){return e.classList.remove(t)})},o._handlePopperPlacementChange=function(t){t=t.state;t&&(this.tip=t.elements.popper,this._cleanTipClass(),this._addAttachmentClass(this._getAttachment(t.placement)))},i.jQueryInterface=function(n){return this.each(function(){var t=u.default.getData(this,k),e="object"==typeof n&&n;if((t||!/dispose|hide/.test(n))&&(t=t||new i(this,e),"string"==typeof n)){if(void 0===t[n])throw new TypeError('No method named "'+n+'"');t[n]()}})},t=i,e=[{key:"Default",get:function(){return q}},{key:"NAME",get:function(){return A}},{key:"DATA_KEY",get:function(){return k}},{key:"Event",get:function(){return B}},{key:"EVENT_KEY",get:function(){return S}},{key:"DefaultType",get:function(){return I}}],(o=null)&&p(t.prototype,o),e&&p(t,e),i}(n.default);return L=A,C=n,D=function(){var t,e,n=(t=window.jQuery)&&!document.body.hasAttribute("data-bs-no-jquery")?t:null;n&&(e=n.fn[L],n.fn[L]=C.jQueryInterface,n.fn[L].Constructor=C,n.fn[L].noConflict=function(){return n.fn[L]=e,C.jQueryInterface})},"loading"===document.readyState?document.addEventListener("DOMContentLoaded",D):D(),n});
+//# sourceMappingURL=main.min.js.map
diff --git a/docs/js/main.min.js.map b/docs/js/main.min.js.map
new file mode 100644
index 0000000..a450126
--- /dev/null
+++ b/docs/js/main.min.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"main.min.js","sources":["main.min.js"],"sourcesContent":["// import Popper\n/**!\n * @fileOverview Kickass library to create and place poppers near their reference elements.\n * @version 1.16.1\n * @license\n * Copyright (c) 2016 Federico Zivolo and contributors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\n(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n\ttypeof define === 'function' && define.amd ? define(factory) :\n\t(global.Popper = factory());\n}(this, (function () { 'use strict';\n\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && typeof navigator !== 'undefined';\n\nvar timeoutDuration = function () {\n var longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\n for (var i = 0; i < longerTimeoutBrowsers.length; i += 1) {\n if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {\n return 1;\n }\n }\n return 0;\n}();\n\nfunction microtaskDebounce(fn) {\n var called = false;\n return function () {\n if (called) {\n return;\n }\n called = true;\n window.Promise.resolve().then(function () {\n called = false;\n fn();\n });\n };\n}\n\nfunction taskDebounce(fn) {\n var scheduled = false;\n return function () {\n if (!scheduled) {\n scheduled = true;\n setTimeout(function () {\n scheduled = false;\n fn();\n }, timeoutDuration);\n }\n };\n}\n\nvar supportsMicroTasks = isBrowser && window.Promise;\n\n/**\n* Create a debounced version of a method, that's asynchronously deferred\n* but called in the minimum time possible.\n*\n* @method\n* @memberof Popper.Utils\n* @argument {Function} fn\n* @returns {Function}\n*/\nvar debounce = supportsMicroTasks ? microtaskDebounce : taskDebounce;\n\n/**\n * Check if the given variable is a function\n * @method\n * @memberof Popper.Utils\n * @argument {Any} functionToCheck - variable to check\n * @returns {Boolean} answer to: is a function?\n */\nfunction isFunction(functionToCheck) {\n var getType = {};\n return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';\n}\n\n/**\n * Get CSS computed property of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Eement} element\n * @argument {String} property\n */\nfunction getStyleComputedProperty(element, property) {\n if (element.nodeType !== 1) {\n return [];\n }\n // NOTE: 1 DOM access here\n var window = element.ownerDocument.defaultView;\n var css = window.getComputedStyle(element, null);\n return property ? css[property] : css;\n}\n\n/**\n * Returns the parentNode or the host of the element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} parent\n */\nfunction getParentNode(element) {\n if (element.nodeName === 'HTML') {\n return element;\n }\n return element.parentNode || element.host;\n}\n\n/**\n * Returns the scrolling parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} scroll parent\n */\nfunction getScrollParent(element) {\n // Return body, `getScroll` will take care to get the correct `scrollTop` from it\n if (!element) {\n return document.body;\n }\n\n switch (element.nodeName) {\n case 'HTML':\n case 'BODY':\n return element.ownerDocument.body;\n case '#document':\n return element.body;\n }\n\n // Firefox want us to check `-x` and `-y` variations as well\n\n var _getStyleComputedProp = getStyleComputedProperty(element),\n overflow = _getStyleComputedProp.overflow,\n overflowX = _getStyleComputedProp.overflowX,\n overflowY = _getStyleComputedProp.overflowY;\n\n if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {\n return element;\n }\n\n return getScrollParent(getParentNode(element));\n}\n\n/**\n * Returns the reference node of the reference object, or the reference object itself.\n * @method\n * @memberof Popper.Utils\n * @param {Element|Object} reference - the reference element (the popper will be relative to this)\n * @returns {Element} parent\n */\nfunction getReferenceNode(reference) {\n return reference && reference.referenceNode ? reference.referenceNode : reference;\n}\n\nvar isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);\nvar isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent);\n\n/**\n * Determines if the browser is Internet Explorer\n * @method\n * @memberof Popper.Utils\n * @param {Number} version to check\n * @returns {Boolean} isIE\n */\nfunction isIE(version) {\n if (version === 11) {\n return isIE11;\n }\n if (version === 10) {\n return isIE10;\n }\n return isIE11 || isIE10;\n}\n\n/**\n * Returns the offset parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} offset parent\n */\nfunction getOffsetParent(element) {\n if (!element) {\n return document.documentElement;\n }\n\n var noOffsetParent = isIE(10) ? document.body : null;\n\n // NOTE: 1 DOM access here\n var offsetParent = element.offsetParent || null;\n // Skip hidden elements which don't have an offsetParent\n while (offsetParent === noOffsetParent && element.nextElementSibling) {\n offsetParent = (element = element.nextElementSibling).offsetParent;\n }\n\n var nodeName = offsetParent && offsetParent.nodeName;\n\n if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {\n return element ? element.ownerDocument.documentElement : document.documentElement;\n }\n\n // .offsetParent will return the closest TH, TD or TABLE in case\n // no offsetParent is present, I hate this job...\n if (['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') {\n return getOffsetParent(offsetParent);\n }\n\n return offsetParent;\n}\n\nfunction isOffsetContainer(element) {\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY') {\n return false;\n }\n return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element;\n}\n\n/**\n * Finds the root node (document, shadowDOM root) of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} node\n * @returns {Element} root node\n */\nfunction getRoot(node) {\n if (node.parentNode !== null) {\n return getRoot(node.parentNode);\n }\n\n return node;\n}\n\n/**\n * Finds the offset parent common to the two provided nodes\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element1\n * @argument {Element} element2\n * @returns {Element} common offset parent\n */\nfunction findCommonOffsetParent(element1, element2) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {\n return document.documentElement;\n }\n\n // Here we make sure to give as \"start\" the element that comes first in the DOM\n var order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;\n var start = order ? element1 : element2;\n var end = order ? element2 : element1;\n\n // Get common ancestor container\n var range = document.createRange();\n range.setStart(start, 0);\n range.setEnd(end, 0);\n var commonAncestorContainer = range.commonAncestorContainer;\n\n // Both nodes are inside #document\n\n if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) {\n if (isOffsetContainer(commonAncestorContainer)) {\n return commonAncestorContainer;\n }\n\n return getOffsetParent(commonAncestorContainer);\n }\n\n // one of the nodes is inside shadowDOM, find which one\n var element1root = getRoot(element1);\n if (element1root.host) {\n return findCommonOffsetParent(element1root.host, element2);\n } else {\n return findCommonOffsetParent(element1, getRoot(element2).host);\n }\n}\n\n/**\n * Gets the scroll value of the given element in the given side (top and left)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {String} side `top` or `left`\n * @returns {number} amount of scrolled pixels\n */\nfunction getScroll(element) {\n var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top';\n\n var upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n var html = element.ownerDocument.documentElement;\n var scrollingElement = element.ownerDocument.scrollingElement || html;\n return scrollingElement[upperSide];\n }\n\n return element[upperSide];\n}\n\n/*\n * Sum or subtract the element scroll values (left and top) from a given rect object\n * @method\n * @memberof Popper.Utils\n * @param {Object} rect - Rect object you want to change\n * @param {HTMLElement} element - The element from the function reads the scroll values\n * @param {Boolean} subtract - set to true if you want to subtract the scroll values\n * @return {Object} rect - The modifier rect object\n */\nfunction includeScroll(rect, element) {\n var subtract = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n var modifier = subtract ? -1 : 1;\n rect.top += scrollTop * modifier;\n rect.bottom += scrollTop * modifier;\n rect.left += scrollLeft * modifier;\n rect.right += scrollLeft * modifier;\n return rect;\n}\n\n/*\n * Helper to detect borders of a given element\n * @method\n * @memberof Popper.Utils\n * @param {CSSStyleDeclaration} styles\n * Result of `getStyleComputedProperty` on the given element\n * @param {String} axis - `x` or `y`\n * @return {number} borders - The borders size of the given axis\n */\n\nfunction getBordersSize(styles, axis) {\n var sideA = axis === 'x' ? 'Left' : 'Top';\n var sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n\n return parseFloat(styles['border' + sideA + 'Width']) + parseFloat(styles['border' + sideB + 'Width']);\n}\n\nfunction getSize(axis, body, html, computedStyle) {\n return Math.max(body['offset' + axis], body['scroll' + axis], html['client' + axis], html['offset' + axis], html['scroll' + axis], isIE(10) ? parseInt(html['offset' + axis]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Top' : 'Left')]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Bottom' : 'Right')]) : 0);\n}\n\nfunction getWindowSizes(document) {\n var body = document.body;\n var html = document.documentElement;\n var computedStyle = isIE(10) && getComputedStyle(html);\n\n return {\n height: getSize('Height', body, html, computedStyle),\n width: getSize('Width', body, html, computedStyle)\n };\n}\n\nvar classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\n\n\n\n\nvar defineProperty = function (obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n};\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\n/**\n * Given element offsets, generate an output similar to getBoundingClientRect\n * @method\n * @memberof Popper.Utils\n * @argument {Object} offsets\n * @returns {Object} ClientRect like output\n */\nfunction getClientRect(offsets) {\n return _extends({}, offsets, {\n right: offsets.left + offsets.width,\n bottom: offsets.top + offsets.height\n });\n}\n\n/**\n * Get bounding client rect of given element\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} element\n * @return {Object} client rect\n */\nfunction getBoundingClientRect(element) {\n var rect = {};\n\n // IE10 10 FIX: Please, don't ask, the element isn't\n // considered in DOM in some circumstances...\n // This isn't reproducible in IE10 compatibility mode of IE11\n try {\n if (isIE(10)) {\n rect = element.getBoundingClientRect();\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n rect.top += scrollTop;\n rect.left += scrollLeft;\n rect.bottom += scrollTop;\n rect.right += scrollLeft;\n } else {\n rect = element.getBoundingClientRect();\n }\n } catch (e) {}\n\n var result = {\n left: rect.left,\n top: rect.top,\n width: rect.right - rect.left,\n height: rect.bottom - rect.top\n };\n\n // subtract scrollbar size from sizes\n var sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {};\n var width = sizes.width || element.clientWidth || result.width;\n var height = sizes.height || element.clientHeight || result.height;\n\n var horizScrollbar = element.offsetWidth - width;\n var vertScrollbar = element.offsetHeight - height;\n\n // if an hypothetical scrollbar is detected, we must be sure it's not a `border`\n // we make this check conditional for performance reasons\n if (horizScrollbar || vertScrollbar) {\n var styles = getStyleComputedProperty(element);\n horizScrollbar -= getBordersSize(styles, 'x');\n vertScrollbar -= getBordersSize(styles, 'y');\n\n result.width -= horizScrollbar;\n result.height -= vertScrollbar;\n }\n\n return getClientRect(result);\n}\n\nfunction getOffsetRectRelativeToArbitraryNode(children, parent) {\n var fixedPosition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var isIE10 = isIE(10);\n var isHTML = parent.nodeName === 'HTML';\n var childrenRect = getBoundingClientRect(children);\n var parentRect = getBoundingClientRect(parent);\n var scrollParent = getScrollParent(children);\n\n var styles = getStyleComputedProperty(parent);\n var borderTopWidth = parseFloat(styles.borderTopWidth);\n var borderLeftWidth = parseFloat(styles.borderLeftWidth);\n\n // In cases where the parent is fixed, we must ignore negative scroll in offset calc\n if (fixedPosition && isHTML) {\n parentRect.top = Math.max(parentRect.top, 0);\n parentRect.left = Math.max(parentRect.left, 0);\n }\n var offsets = getClientRect({\n top: childrenRect.top - parentRect.top - borderTopWidth,\n left: childrenRect.left - parentRect.left - borderLeftWidth,\n width: childrenRect.width,\n height: childrenRect.height\n });\n offsets.marginTop = 0;\n offsets.marginLeft = 0;\n\n // Subtract margins of documentElement in case it's being used as parent\n // we do this only on HTML because it's the only element that behaves\n // differently when margins are applied to it. The margins are included in\n // the box of the documentElement, in the other cases not.\n if (!isIE10 && isHTML) {\n var marginTop = parseFloat(styles.marginTop);\n var marginLeft = parseFloat(styles.marginLeft);\n\n offsets.top -= borderTopWidth - marginTop;\n offsets.bottom -= borderTopWidth - marginTop;\n offsets.left -= borderLeftWidth - marginLeft;\n offsets.right -= borderLeftWidth - marginLeft;\n\n // Attach marginTop and marginLeft because in some circumstances we may need them\n offsets.marginTop = marginTop;\n offsets.marginLeft = marginLeft;\n }\n\n if (isIE10 && !fixedPosition ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') {\n offsets = includeScroll(offsets, parent);\n }\n\n return offsets;\n}\n\nfunction getViewportOffsetRectRelativeToArtbitraryNode(element) {\n var excludeScroll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var html = element.ownerDocument.documentElement;\n var relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\n var width = Math.max(html.clientWidth, window.innerWidth || 0);\n var height = Math.max(html.clientHeight, window.innerHeight || 0);\n\n var scrollTop = !excludeScroll ? getScroll(html) : 0;\n var scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;\n\n var offset = {\n top: scrollTop - relativeOffset.top + relativeOffset.marginTop,\n left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,\n width: width,\n height: height\n };\n\n return getClientRect(offset);\n}\n\n/**\n * Check if the given element is fixed or is inside a fixed parent\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {Element} customContainer\n * @returns {Boolean} answer to \"isFixed?\"\n */\nfunction isFixed(element) {\n var nodeName = element.nodeName;\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n return false;\n }\n if (getStyleComputedProperty(element, 'position') === 'fixed') {\n return true;\n }\n var parentNode = getParentNode(element);\n if (!parentNode) {\n return false;\n }\n return isFixed(parentNode);\n}\n\n/**\n * Finds the first parent of an element that has a transformed property defined\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} first transformed parent or documentElement\n */\n\nfunction getFixedPositionOffsetParent(element) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element || !element.parentElement || isIE()) {\n return document.documentElement;\n }\n var el = element.parentElement;\n while (el && getStyleComputedProperty(el, 'transform') === 'none') {\n el = el.parentElement;\n }\n return el || document.documentElement;\n}\n\n/**\n * Computed the boundaries limits and return them\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} popper\n * @param {HTMLElement} reference\n * @param {number} padding\n * @param {HTMLElement} boundariesElement - Element used to define the boundaries\n * @param {Boolean} fixedPosition - Is in fixed position mode\n * @returns {Object} Coordinates of the boundaries\n */\nfunction getBoundaries(popper, reference, padding, boundariesElement) {\n var fixedPosition = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n\n // NOTE: 1 DOM access here\n\n var boundaries = { top: 0, left: 0 };\n var offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n\n // Handle viewport case\n if (boundariesElement === 'viewport') {\n boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);\n } else {\n // Handle other cases based on DOM element used as boundaries\n var boundariesNode = void 0;\n if (boundariesElement === 'scrollParent') {\n boundariesNode = getScrollParent(getParentNode(reference));\n if (boundariesNode.nodeName === 'BODY') {\n boundariesNode = popper.ownerDocument.documentElement;\n }\n } else if (boundariesElement === 'window') {\n boundariesNode = popper.ownerDocument.documentElement;\n } else {\n boundariesNode = boundariesElement;\n }\n\n var offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent, fixedPosition);\n\n // In case of HTML, we need a different computation\n if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\n var _getWindowSizes = getWindowSizes(popper.ownerDocument),\n height = _getWindowSizes.height,\n width = _getWindowSizes.width;\n\n boundaries.top += offsets.top - offsets.marginTop;\n boundaries.bottom = height + offsets.top;\n boundaries.left += offsets.left - offsets.marginLeft;\n boundaries.right = width + offsets.left;\n } else {\n // for all the other DOM elements, this one is good\n boundaries = offsets;\n }\n }\n\n // Add paddings\n padding = padding || 0;\n var isPaddingNumber = typeof padding === 'number';\n boundaries.left += isPaddingNumber ? padding : padding.left || 0;\n boundaries.top += isPaddingNumber ? padding : padding.top || 0;\n boundaries.right -= isPaddingNumber ? padding : padding.right || 0;\n boundaries.bottom -= isPaddingNumber ? padding : padding.bottom || 0;\n\n return boundaries;\n}\n\nfunction getArea(_ref) {\n var width = _ref.width,\n height = _ref.height;\n\n return width * height;\n}\n\n/**\n * Utility used to transform the `auto` placement to the placement with more\n * available space.\n * @method\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeAutoPlacement(placement, refRect, popper, reference, boundariesElement) {\n var padding = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;\n\n if (placement.indexOf('auto') === -1) {\n return placement;\n }\n\n var boundaries = getBoundaries(popper, reference, padding, boundariesElement);\n\n var rects = {\n top: {\n width: boundaries.width,\n height: refRect.top - boundaries.top\n },\n right: {\n width: boundaries.right - refRect.right,\n height: boundaries.height\n },\n bottom: {\n width: boundaries.width,\n height: boundaries.bottom - refRect.bottom\n },\n left: {\n width: refRect.left - boundaries.left,\n height: boundaries.height\n }\n };\n\n var sortedAreas = Object.keys(rects).map(function (key) {\n return _extends({\n key: key\n }, rects[key], {\n area: getArea(rects[key])\n });\n }).sort(function (a, b) {\n return b.area - a.area;\n });\n\n var filteredAreas = sortedAreas.filter(function (_ref2) {\n var width = _ref2.width,\n height = _ref2.height;\n return width >= popper.clientWidth && height >= popper.clientHeight;\n });\n\n var computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key;\n\n var variation = placement.split('-')[1];\n\n return computedPlacement + (variation ? '-' + variation : '');\n}\n\n/**\n * Get offsets to the reference element\n * @method\n * @memberof Popper.Utils\n * @param {Object} state\n * @param {Element} popper - the popper element\n * @param {Element} reference - the reference element (the popper will be relative to this)\n * @param {Element} fixedPosition - is in fixed position mode\n * @returns {Object} An object containing the offsets which will be applied to the popper\n */\nfunction getReferenceOffsets(state, popper, reference) {\n var fixedPosition = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n\n var commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);\n}\n\n/**\n * Get the outer sizes of the given element (offset size + margins)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Object} object containing width and height properties\n */\nfunction getOuterSizes(element) {\n var window = element.ownerDocument.defaultView;\n var styles = window.getComputedStyle(element);\n var x = parseFloat(styles.marginTop || 0) + parseFloat(styles.marginBottom || 0);\n var y = parseFloat(styles.marginLeft || 0) + parseFloat(styles.marginRight || 0);\n var result = {\n width: element.offsetWidth + y,\n height: element.offsetHeight + x\n };\n return result;\n}\n\n/**\n * Get the opposite placement of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement\n * @returns {String} flipped placement\n */\nfunction getOppositePlacement(placement) {\n var hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}\n\n/**\n * Get offsets to the popper\n * @method\n * @memberof Popper.Utils\n * @param {Object} position - CSS position the Popper will get applied\n * @param {HTMLElement} popper - the popper element\n * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)\n * @param {String} placement - one of the valid placement options\n * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper\n */\nfunction getPopperOffsets(popper, referenceOffsets, placement) {\n placement = placement.split('-')[0];\n\n // Get popper node sizes\n var popperRect = getOuterSizes(popper);\n\n // Add position, width and height to our offsets object\n var popperOffsets = {\n width: popperRect.width,\n height: popperRect.height\n };\n\n // depending by the popper placement we have to compute its offsets slightly differently\n var isHoriz = ['right', 'left'].indexOf(placement) !== -1;\n var mainSide = isHoriz ? 'top' : 'left';\n var secondarySide = isHoriz ? 'left' : 'top';\n var measurement = isHoriz ? 'height' : 'width';\n var secondaryMeasurement = !isHoriz ? 'height' : 'width';\n\n popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2;\n if (placement === secondarySide) {\n popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];\n } else {\n popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)];\n }\n\n return popperOffsets;\n}\n\n/**\n * Mimics the `find` method of Array\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction find(arr, check) {\n // use native find if supported\n if (Array.prototype.find) {\n return arr.find(check);\n }\n\n // use `filter` to obtain the same behavior of `find`\n return arr.filter(check)[0];\n}\n\n/**\n * Return the index of the matching object\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction findIndex(arr, prop, value) {\n // use native findIndex if supported\n if (Array.prototype.findIndex) {\n return arr.findIndex(function (cur) {\n return cur[prop] === value;\n });\n }\n\n // use `find` + `indexOf` if `findIndex` isn't supported\n var match = find(arr, function (obj) {\n return obj[prop] === value;\n });\n return arr.indexOf(match);\n}\n\n/**\n * Loop trough the list of modifiers and run them in order,\n * each of them will then edit the data object.\n * @method\n * @memberof Popper.Utils\n * @param {dataObject} data\n * @param {Array} modifiers\n * @param {String} ends - Optional modifier name used as stopper\n * @returns {dataObject}\n */\nfunction runModifiers(modifiers, data, ends) {\n var modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends));\n\n modifiersToRun.forEach(function (modifier) {\n if (modifier['function']) {\n // eslint-disable-line dot-notation\n console.warn('`modifier.function` is deprecated, use `modifier.fn`!');\n }\n var fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation\n if (modifier.enabled && isFunction(fn)) {\n // Add properties to offsets to make them a complete clientRect object\n // we do this before each modifier to make sure the previous one doesn't\n // mess with these values\n data.offsets.popper = getClientRect(data.offsets.popper);\n data.offsets.reference = getClientRect(data.offsets.reference);\n\n data = fn(data, modifier);\n }\n });\n\n return data;\n}\n\n/**\n * Updates the position of the popper, computing the new offsets and applying\n * the new style.<br />\n * Prefer `scheduleUpdate` over `update` because of performance reasons.\n * @method\n * @memberof Popper\n */\nfunction update() {\n // if popper is destroyed, don't perform any further update\n if (this.state.isDestroyed) {\n return;\n }\n\n var data = {\n instance: this,\n styles: {},\n arrowStyles: {},\n attributes: {},\n flipped: false,\n offsets: {}\n };\n\n // compute reference element offsets\n data.offsets.reference = getReferenceOffsets(this.state, this.popper, this.reference, this.options.positionFixed);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n data.placement = computeAutoPlacement(this.options.placement, data.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding);\n\n // store the computed placement inside `originalPlacement`\n data.originalPlacement = data.placement;\n\n data.positionFixed = this.options.positionFixed;\n\n // compute the popper offsets\n data.offsets.popper = getPopperOffsets(this.popper, data.offsets.reference, data.placement);\n\n data.offsets.popper.position = this.options.positionFixed ? 'fixed' : 'absolute';\n\n // run the modifiers\n data = runModifiers(this.modifiers, data);\n\n // the first `update` will call `onCreate` callback\n // the other ones will call `onUpdate` callback\n if (!this.state.isCreated) {\n this.state.isCreated = true;\n this.options.onCreate(data);\n } else {\n this.options.onUpdate(data);\n }\n}\n\n/**\n * Helper used to know if the given modifier is enabled.\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean}\n */\nfunction isModifierEnabled(modifiers, modifierName) {\n return modifiers.some(function (_ref) {\n var name = _ref.name,\n enabled = _ref.enabled;\n return enabled && name === modifierName;\n });\n}\n\n/**\n * Get the prefixed supported property name\n * @method\n * @memberof Popper.Utils\n * @argument {String} property (camelCase)\n * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)\n */\nfunction getSupportedPropertyName(property) {\n var prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];\n var upperProp = property.charAt(0).toUpperCase() + property.slice(1);\n\n for (var i = 0; i < prefixes.length; i++) {\n var prefix = prefixes[i];\n var toCheck = prefix ? '' + prefix + upperProp : property;\n if (typeof document.body.style[toCheck] !== 'undefined') {\n return toCheck;\n }\n }\n return null;\n}\n\n/**\n * Destroys the popper.\n * @method\n * @memberof Popper\n */\nfunction destroy() {\n this.state.isDestroyed = true;\n\n // touch DOM only if `applyStyle` modifier is enabled\n if (isModifierEnabled(this.modifiers, 'applyStyle')) {\n this.popper.removeAttribute('x-placement');\n this.popper.style.position = '';\n this.popper.style.top = '';\n this.popper.style.left = '';\n this.popper.style.right = '';\n this.popper.style.bottom = '';\n this.popper.style.willChange = '';\n this.popper.style[getSupportedPropertyName('transform')] = '';\n }\n\n this.disableEventListeners();\n\n // remove the popper if user explicitly asked for the deletion on destroy\n // do not use `remove` because IE11 doesn't support it\n if (this.options.removeOnDestroy) {\n this.popper.parentNode.removeChild(this.popper);\n }\n return this;\n}\n\n/**\n * Get the window associated with the element\n * @argument {Element} element\n * @returns {Window}\n */\nfunction getWindow(element) {\n var ownerDocument = element.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView : window;\n}\n\nfunction attachToScrollParents(scrollParent, event, callback, scrollParents) {\n var isBody = scrollParent.nodeName === 'BODY';\n var target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;\n target.addEventListener(event, callback, { passive: true });\n\n if (!isBody) {\n attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents);\n }\n scrollParents.push(target);\n}\n\n/**\n * Setup needed event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction setupEventListeners(reference, options, state, updateBound) {\n // Resize event listener on window\n state.updateBound = updateBound;\n getWindow(reference).addEventListener('resize', state.updateBound, { passive: true });\n\n // Scroll event listener on scroll parents\n var scrollElement = getScrollParent(reference);\n attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents);\n state.scrollElement = scrollElement;\n state.eventsEnabled = true;\n\n return state;\n}\n\n/**\n * It will add resize/scroll events and start recalculating\n * position of the popper element when they are triggered.\n * @method\n * @memberof Popper\n */\nfunction enableEventListeners() {\n if (!this.state.eventsEnabled) {\n this.state = setupEventListeners(this.reference, this.options, this.state, this.scheduleUpdate);\n }\n}\n\n/**\n * Remove event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction removeEventListeners(reference, state) {\n // Remove resize event listener on window\n getWindow(reference).removeEventListener('resize', state.updateBound);\n\n // Remove scroll event listener on scroll parents\n state.scrollParents.forEach(function (target) {\n target.removeEventListener('scroll', state.updateBound);\n });\n\n // Reset state\n state.updateBound = null;\n state.scrollParents = [];\n state.scrollElement = null;\n state.eventsEnabled = false;\n return state;\n}\n\n/**\n * It will remove resize/scroll events and won't recalculate popper position\n * when they are triggered. It also won't trigger `onUpdate` callback anymore,\n * unless you call `update` method manually.\n * @method\n * @memberof Popper\n */\nfunction disableEventListeners() {\n if (this.state.eventsEnabled) {\n cancelAnimationFrame(this.scheduleUpdate);\n this.state = removeEventListeners(this.reference, this.state);\n }\n}\n\n/**\n * Tells if a given input is a number\n * @method\n * @memberof Popper.Utils\n * @param {*} input to check\n * @return {Boolean}\n */\nfunction isNumeric(n) {\n return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\n}\n\n/**\n * Set the style to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the style to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setStyles(element, styles) {\n Object.keys(styles).forEach(function (prop) {\n var unit = '';\n // add unit if the value is numeric and is one of the following\n if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) {\n unit = 'px';\n }\n element.style[prop] = styles[prop] + unit;\n });\n}\n\n/**\n * Set the attributes to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the attributes to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setAttributes(element, attributes) {\n Object.keys(attributes).forEach(function (prop) {\n var value = attributes[prop];\n if (value !== false) {\n element.setAttribute(prop, attributes[prop]);\n } else {\n element.removeAttribute(prop);\n }\n });\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} data.styles - List of style properties - values to apply to popper element\n * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The same data object\n */\nfunction applyStyle(data) {\n // any property present in `data.styles` will be applied to the popper,\n // in this way we can make the 3rd party modifiers add custom styles to it\n // Be aware, modifiers could override the properties defined in the previous\n // lines of this modifier!\n setStyles(data.instance.popper, data.styles);\n\n // any property present in `data.attributes` will be applied to the popper,\n // they will be set as HTML attributes of the element\n setAttributes(data.instance.popper, data.attributes);\n\n // if arrowElement is defined and arrowStyles has some properties\n if (data.arrowElement && Object.keys(data.arrowStyles).length) {\n setStyles(data.arrowElement, data.arrowStyles);\n }\n\n return data;\n}\n\n/**\n * Set the x-placement attribute before everything else because it could be used\n * to add margins to the popper margins needs to be calculated to get the\n * correct popper offsets.\n * @method\n * @memberof Popper.modifiers\n * @param {HTMLElement} reference - The reference element used to position the popper\n * @param {HTMLElement} popper - The HTML element used as popper\n * @param {Object} options - Popper.js options\n */\nfunction applyStyleOnLoad(reference, popper, options, modifierOptions, state) {\n // compute reference element offsets\n var referenceOffsets = getReferenceOffsets(state, popper, reference, options.positionFixed);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n var placement = computeAutoPlacement(options.placement, referenceOffsets, popper, reference, options.modifiers.flip.boundariesElement, options.modifiers.flip.padding);\n\n popper.setAttribute('x-placement', placement);\n\n // Apply `position` to popper before anything else because\n // without the position applied we can't guarantee correct computations\n setStyles(popper, { position: options.positionFixed ? 'fixed' : 'absolute' });\n\n return options;\n}\n\n/**\n * @function\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Boolean} shouldRound - If the offsets should be rounded at all\n * @returns {Object} The popper's position offsets rounded\n *\n * The tale of pixel-perfect positioning. It's still not 100% perfect, but as\n * good as it can be within reason.\n * Discussion here: https://github.com/FezVrasta/popper.js/pull/715\n *\n * Low DPI screens cause a popper to be blurry if not using full pixels (Safari\n * as well on High DPI screens).\n *\n * Firefox prefers no rounding for positioning and does not have blurriness on\n * high DPI screens.\n *\n * Only horizontal placement and left/right values need to be considered.\n */\nfunction getRoundedOffsets(data, shouldRound) {\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n var round = Math.round,\n floor = Math.floor;\n\n var noRound = function noRound(v) {\n return v;\n };\n\n var referenceWidth = round(reference.width);\n var popperWidth = round(popper.width);\n\n var isVertical = ['left', 'right'].indexOf(data.placement) !== -1;\n var isVariation = data.placement.indexOf('-') !== -1;\n var sameWidthParity = referenceWidth % 2 === popperWidth % 2;\n var bothOddWidth = referenceWidth % 2 === 1 && popperWidth % 2 === 1;\n\n var horizontalToInteger = !shouldRound ? noRound : isVertical || isVariation || sameWidthParity ? round : floor;\n var verticalToInteger = !shouldRound ? noRound : round;\n\n return {\n left: horizontalToInteger(bothOddWidth && !isVariation && shouldRound ? popper.left - 1 : popper.left),\n top: verticalToInteger(popper.top),\n bottom: verticalToInteger(popper.bottom),\n right: horizontalToInteger(popper.right)\n };\n}\n\nvar isFirefox = isBrowser && /Firefox/i.test(navigator.userAgent);\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeStyle(data, options) {\n var x = options.x,\n y = options.y;\n var popper = data.offsets.popper;\n\n // Remove this legacy support in Popper.js v2\n\n var legacyGpuAccelerationOption = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'applyStyle';\n }).gpuAcceleration;\n if (legacyGpuAccelerationOption !== undefined) {\n console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!');\n }\n var gpuAcceleration = legacyGpuAccelerationOption !== undefined ? legacyGpuAccelerationOption : options.gpuAcceleration;\n\n var offsetParent = getOffsetParent(data.instance.popper);\n var offsetParentRect = getBoundingClientRect(offsetParent);\n\n // Styles\n var styles = {\n position: popper.position\n };\n\n var offsets = getRoundedOffsets(data, window.devicePixelRatio < 2 || !isFirefox);\n\n var sideA = x === 'bottom' ? 'top' : 'bottom';\n var sideB = y === 'right' ? 'left' : 'right';\n\n // if gpuAcceleration is set to `true` and transform is supported,\n // we use `translate3d` to apply the position to the popper we\n // automatically use the supported prefixed version if needed\n var prefixedProperty = getSupportedPropertyName('transform');\n\n // now, let's make a step back and look at this code closely (wtf?)\n // If the content of the popper grows once it's been positioned, it\n // may happen that the popper gets misplaced because of the new content\n // overflowing its reference element\n // To avoid this problem, we provide two options (x and y), which allow\n // the consumer to define the offset origin.\n // If we position a popper on top of a reference element, we can set\n // `x` to `top` to make the popper grow towards its top instead of\n // its bottom.\n var left = void 0,\n top = void 0;\n if (sideA === 'bottom') {\n // when offsetParent is <html> the positioning is relative to the bottom of the screen (excluding the scrollbar)\n // and not the bottom of the html element\n if (offsetParent.nodeName === 'HTML') {\n top = -offsetParent.clientHeight + offsets.bottom;\n } else {\n top = -offsetParentRect.height + offsets.bottom;\n }\n } else {\n top = offsets.top;\n }\n if (sideB === 'right') {\n if (offsetParent.nodeName === 'HTML') {\n left = -offsetParent.clientWidth + offsets.right;\n } else {\n left = -offsetParentRect.width + offsets.right;\n }\n } else {\n left = offsets.left;\n }\n if (gpuAcceleration && prefixedProperty) {\n styles[prefixedProperty] = 'translate3d(' + left + 'px, ' + top + 'px, 0)';\n styles[sideA] = 0;\n styles[sideB] = 0;\n styles.willChange = 'transform';\n } else {\n // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties\n var invertTop = sideA === 'bottom' ? -1 : 1;\n var invertLeft = sideB === 'right' ? -1 : 1;\n styles[sideA] = top * invertTop;\n styles[sideB] = left * invertLeft;\n styles.willChange = sideA + ', ' + sideB;\n }\n\n // Attributes\n var attributes = {\n 'x-placement': data.placement\n };\n\n // Update `data` attributes, styles and arrowStyles\n data.attributes = _extends({}, attributes, data.attributes);\n data.styles = _extends({}, styles, data.styles);\n data.arrowStyles = _extends({}, data.offsets.arrow, data.arrowStyles);\n\n return data;\n}\n\n/**\n * Helper used to know if the given modifier depends from another one.<br />\n * It checks if the needed modifier is listed and enabled.\n * @method\n * @memberof Popper.Utils\n * @param {Array} modifiers - list of modifiers\n * @param {String} requestingName - name of requesting modifier\n * @param {String} requestedName - name of requested modifier\n * @returns {Boolean}\n */\nfunction isModifierRequired(modifiers, requestingName, requestedName) {\n var requesting = find(modifiers, function (_ref) {\n var name = _ref.name;\n return name === requestingName;\n });\n\n var isRequired = !!requesting && modifiers.some(function (modifier) {\n return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order;\n });\n\n if (!isRequired) {\n var _requesting = '`' + requestingName + '`';\n var requested = '`' + requestedName + '`';\n console.warn(requested + ' modifier is required by ' + _requesting + ' modifier in order to work, be sure to include it before ' + _requesting + '!');\n }\n return isRequired;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction arrow(data, options) {\n var _data$offsets$arrow;\n\n // arrow depends on keepTogether in order to work\n if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {\n return data;\n }\n\n var arrowElement = options.element;\n\n // if arrowElement is a string, suppose it's a CSS selector\n if (typeof arrowElement === 'string') {\n arrowElement = data.instance.popper.querySelector(arrowElement);\n\n // if arrowElement is not found, don't run the modifier\n if (!arrowElement) {\n return data;\n }\n } else {\n // if the arrowElement isn't a query selector we must check that the\n // provided DOM node is child of its popper node\n if (!data.instance.popper.contains(arrowElement)) {\n console.warn('WARNING: `arrow.element` must be child of its popper element!');\n return data;\n }\n }\n\n var placement = data.placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var isVertical = ['left', 'right'].indexOf(placement) !== -1;\n\n var len = isVertical ? 'height' : 'width';\n var sideCapitalized = isVertical ? 'Top' : 'Left';\n var side = sideCapitalized.toLowerCase();\n var altSide = isVertical ? 'left' : 'top';\n var opSide = isVertical ? 'bottom' : 'right';\n var arrowElementSize = getOuterSizes(arrowElement)[len];\n\n //\n // extends keepTogether behavior making sure the popper and its\n // reference have enough pixels in conjunction\n //\n\n // top/left side\n if (reference[opSide] - arrowElementSize < popper[side]) {\n data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowElementSize);\n }\n // bottom/right side\n if (reference[side] + arrowElementSize > popper[opSide]) {\n data.offsets.popper[side] += reference[side] + arrowElementSize - popper[opSide];\n }\n data.offsets.popper = getClientRect(data.offsets.popper);\n\n // compute center of the popper\n var center = reference[side] + reference[len] / 2 - arrowElementSize / 2;\n\n // Compute the sideValue using the updated popper offsets\n // take popper margin in account because we don't have this info available\n var css = getStyleComputedProperty(data.instance.popper);\n var popperMarginSide = parseFloat(css['margin' + sideCapitalized]);\n var popperBorderSide = parseFloat(css['border' + sideCapitalized + 'Width']);\n var sideValue = center - data.offsets.popper[side] - popperMarginSide - popperBorderSide;\n\n // prevent arrowElement from being placed not contiguously to its popper\n sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0);\n\n data.arrowElement = arrowElement;\n data.offsets.arrow = (_data$offsets$arrow = {}, defineProperty(_data$offsets$arrow, side, Math.round(sideValue)), defineProperty(_data$offsets$arrow, altSide, ''), _data$offsets$arrow);\n\n return data;\n}\n\n/**\n * Get the opposite placement variation of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement variation\n * @returns {String} flipped placement variation\n */\nfunction getOppositeVariation(variation) {\n if (variation === 'end') {\n return 'start';\n } else if (variation === 'start') {\n return 'end';\n }\n return variation;\n}\n\n/**\n * List of accepted placements to use as values of the `placement` option.<br />\n * Valid placements are:\n * - `auto`\n * - `top`\n * - `right`\n * - `bottom`\n * - `left`\n *\n * Each placement can have a variation from this list:\n * - `-start`\n * - `-end`\n *\n * Variations are interpreted easily if you think of them as the left to right\n * written languages. Horizontally (`top` and `bottom`), `start` is left and `end`\n * is right.<br />\n * Vertically (`left` and `right`), `start` is top and `end` is bottom.\n *\n * Some valid examples are:\n * - `top-end` (on top of reference, right aligned)\n * - `right-start` (on right of reference, top aligned)\n * - `bottom` (on bottom, centered)\n * - `auto-end` (on the side with more space available, alignment depends by placement)\n *\n * @static\n * @type {Array}\n * @enum {String}\n * @readonly\n * @method placements\n * @memberof Popper\n */\nvar placements = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start'];\n\n// Get rid of `auto` `auto-start` and `auto-end`\nvar validPlacements = placements.slice(3);\n\n/**\n * Given an initial placement, returns all the subsequent placements\n * clockwise (or counter-clockwise).\n *\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement - A valid placement (it accepts variations)\n * @argument {Boolean} counter - Set to true to walk the placements counterclockwise\n * @returns {Array} placements including their variations\n */\nfunction clockwise(placement) {\n var counter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var index = validPlacements.indexOf(placement);\n var arr = validPlacements.slice(index + 1).concat(validPlacements.slice(0, index));\n return counter ? arr.reverse() : arr;\n}\n\nvar BEHAVIORS = {\n FLIP: 'flip',\n CLOCKWISE: 'clockwise',\n COUNTERCLOCKWISE: 'counterclockwise'\n};\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction flip(data, options) {\n // if `inner` modifier is enabled, we can't use the `flip` modifier\n if (isModifierEnabled(data.instance.modifiers, 'inner')) {\n return data;\n }\n\n if (data.flipped && data.placement === data.originalPlacement) {\n // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides\n return data;\n }\n\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, options.boundariesElement, data.positionFixed);\n\n var placement = data.placement.split('-')[0];\n var placementOpposite = getOppositePlacement(placement);\n var variation = data.placement.split('-')[1] || '';\n\n var flipOrder = [];\n\n switch (options.behavior) {\n case BEHAVIORS.FLIP:\n flipOrder = [placement, placementOpposite];\n break;\n case BEHAVIORS.CLOCKWISE:\n flipOrder = clockwise(placement);\n break;\n case BEHAVIORS.COUNTERCLOCKWISE:\n flipOrder = clockwise(placement, true);\n break;\n default:\n flipOrder = options.behavior;\n }\n\n flipOrder.forEach(function (step, index) {\n if (placement !== step || flipOrder.length === index + 1) {\n return data;\n }\n\n placement = data.placement.split('-')[0];\n placementOpposite = getOppositePlacement(placement);\n\n var popperOffsets = data.offsets.popper;\n var refOffsets = data.offsets.reference;\n\n // using floor because the reference offsets may contain decimals we are not going to consider here\n var floor = Math.floor;\n var overlapsRef = placement === 'left' && floor(popperOffsets.right) > floor(refOffsets.left) || placement === 'right' && floor(popperOffsets.left) < floor(refOffsets.right) || placement === 'top' && floor(popperOffsets.bottom) > floor(refOffsets.top) || placement === 'bottom' && floor(popperOffsets.top) < floor(refOffsets.bottom);\n\n var overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);\n var overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);\n var overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);\n var overflowsBottom = floor(popperOffsets.bottom) > floor(boundaries.bottom);\n\n var overflowsBoundaries = placement === 'left' && overflowsLeft || placement === 'right' && overflowsRight || placement === 'top' && overflowsTop || placement === 'bottom' && overflowsBottom;\n\n // flip the variation if required\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n\n // flips variation if reference element overflows boundaries\n var flippedVariationByRef = !!options.flipVariations && (isVertical && variation === 'start' && overflowsLeft || isVertical && variation === 'end' && overflowsRight || !isVertical && variation === 'start' && overflowsTop || !isVertical && variation === 'end' && overflowsBottom);\n\n // flips variation if popper content overflows boundaries\n var flippedVariationByContent = !!options.flipVariationsByContent && (isVertical && variation === 'start' && overflowsRight || isVertical && variation === 'end' && overflowsLeft || !isVertical && variation === 'start' && overflowsBottom || !isVertical && variation === 'end' && overflowsTop);\n\n var flippedVariation = flippedVariationByRef || flippedVariationByContent;\n\n if (overlapsRef || overflowsBoundaries || flippedVariation) {\n // this boolean to detect any flip loop\n data.flipped = true;\n\n if (overlapsRef || overflowsBoundaries) {\n placement = flipOrder[index + 1];\n }\n\n if (flippedVariation) {\n variation = getOppositeVariation(variation);\n }\n\n data.placement = placement + (variation ? '-' + variation : '');\n\n // this object contains `position`, we want to preserve it along with\n // any additional property we may add in the future\n data.offsets.popper = _extends({}, data.offsets.popper, getPopperOffsets(data.instance.popper, data.offsets.reference, data.placement));\n\n data = runModifiers(data.instance.modifiers, data, 'flip');\n }\n });\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction keepTogether(data) {\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var placement = data.placement.split('-')[0];\n var floor = Math.floor;\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n var side = isVertical ? 'right' : 'bottom';\n var opSide = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n\n if (popper[side] < floor(reference[opSide])) {\n data.offsets.popper[opSide] = floor(reference[opSide]) - popper[measurement];\n }\n if (popper[opSide] > floor(reference[side])) {\n data.offsets.popper[opSide] = floor(reference[side]);\n }\n\n return data;\n}\n\n/**\n * Converts a string containing value + unit into a px value number\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} str - Value + unit string\n * @argument {String} measurement - `height` or `width`\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @returns {Number|String}\n * Value in pixels, or original string if no values were extracted\n */\nfunction toValue(str, measurement, popperOffsets, referenceOffsets) {\n // separate value from unit\n var split = str.match(/((?:\\-|\\+)?\\d*\\.?\\d*)(.*)/);\n var value = +split[1];\n var unit = split[2];\n\n // If it's not a number it's an operator, I guess\n if (!value) {\n return str;\n }\n\n if (unit.indexOf('%') === 0) {\n var element = void 0;\n switch (unit) {\n case '%p':\n element = popperOffsets;\n break;\n case '%':\n case '%r':\n default:\n element = referenceOffsets;\n }\n\n var rect = getClientRect(element);\n return rect[measurement] / 100 * value;\n } else if (unit === 'vh' || unit === 'vw') {\n // if is a vh or vw, we calculate the size based on the viewport\n var size = void 0;\n if (unit === 'vh') {\n size = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);\n } else {\n size = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);\n }\n return size / 100 * value;\n } else {\n // if is an explicit pixel unit, we get rid of the unit and keep the value\n // if is an implicit unit, it's px, and we return just the value\n return value;\n }\n}\n\n/**\n * Parse an `offset` string to extrapolate `x` and `y` numeric offsets.\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} offset\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @argument {String} basePlacement\n * @returns {Array} a two cells array with x and y offsets in numbers\n */\nfunction parseOffset(offset, popperOffsets, referenceOffsets, basePlacement) {\n var offsets = [0, 0];\n\n // Use height if placement is left or right and index is 0 otherwise use width\n // in this way the first offset will use an axis and the second one\n // will use the other one\n var useHeight = ['right', 'left'].indexOf(basePlacement) !== -1;\n\n // Split the offset string to obtain a list of values and operands\n // The regex addresses values with the plus or minus sign in front (+10, -20, etc)\n var fragments = offset.split(/(\\+|\\-)/).map(function (frag) {\n return frag.trim();\n });\n\n // Detect if the offset string contains a pair of values or a single one\n // they could be separated by comma or space\n var divider = fragments.indexOf(find(fragments, function (frag) {\n return frag.search(/,|\\s/) !== -1;\n }));\n\n if (fragments[divider] && fragments[divider].indexOf(',') === -1) {\n console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.');\n }\n\n // If divider is found, we divide the list of values and operands to divide\n // them by ofset X and Y.\n var splitRegex = /\\s*,\\s*|\\s+/;\n var ops = divider !== -1 ? [fragments.slice(0, divider).concat([fragments[divider].split(splitRegex)[0]]), [fragments[divider].split(splitRegex)[1]].concat(fragments.slice(divider + 1))] : [fragments];\n\n // Convert the values with units to absolute pixels to allow our computations\n ops = ops.map(function (op, index) {\n // Most of the units rely on the orientation of the popper\n var measurement = (index === 1 ? !useHeight : useHeight) ? 'height' : 'width';\n var mergeWithPrevious = false;\n return op\n // This aggregates any `+` or `-` sign that aren't considered operators\n // e.g.: 10 + +5 => [10, +, +5]\n .reduce(function (a, b) {\n if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) {\n a[a.length - 1] = b;\n mergeWithPrevious = true;\n return a;\n } else if (mergeWithPrevious) {\n a[a.length - 1] += b;\n mergeWithPrevious = false;\n return a;\n } else {\n return a.concat(b);\n }\n }, [])\n // Here we convert the string values into number values (in px)\n .map(function (str) {\n return toValue(str, measurement, popperOffsets, referenceOffsets);\n });\n });\n\n // Loop trough the offsets arrays and execute the operations\n ops.forEach(function (op, index) {\n op.forEach(function (frag, index2) {\n if (isNumeric(frag)) {\n offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1);\n }\n });\n });\n return offsets;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @argument {Number|String} options.offset=0\n * The offset value as described in the modifier description\n * @returns {Object} The data object, properly modified\n */\nfunction offset(data, _ref) {\n var offset = _ref.offset;\n var placement = data.placement,\n _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var basePlacement = placement.split('-')[0];\n\n var offsets = void 0;\n if (isNumeric(+offset)) {\n offsets = [+offset, 0];\n } else {\n offsets = parseOffset(offset, popper, reference, basePlacement);\n }\n\n if (basePlacement === 'left') {\n popper.top += offsets[0];\n popper.left -= offsets[1];\n } else if (basePlacement === 'right') {\n popper.top += offsets[0];\n popper.left += offsets[1];\n } else if (basePlacement === 'top') {\n popper.left += offsets[0];\n popper.top -= offsets[1];\n } else if (basePlacement === 'bottom') {\n popper.left += offsets[0];\n popper.top += offsets[1];\n }\n\n data.popper = popper;\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction preventOverflow(data, options) {\n var boundariesElement = options.boundariesElement || getOffsetParent(data.instance.popper);\n\n // If offsetParent is the reference element, we really want to\n // go one step up and use the next offsetParent as reference to\n // avoid to make this modifier completely useless and look like broken\n if (data.instance.reference === boundariesElement) {\n boundariesElement = getOffsetParent(boundariesElement);\n }\n\n // NOTE: DOM access here\n // resets the popper's position so that the document size can be calculated excluding\n // the size of the popper element itself\n var transformProp = getSupportedPropertyName('transform');\n var popperStyles = data.instance.popper.style; // assignment to help minification\n var top = popperStyles.top,\n left = popperStyles.left,\n transform = popperStyles[transformProp];\n\n popperStyles.top = '';\n popperStyles.left = '';\n popperStyles[transformProp] = '';\n\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, boundariesElement, data.positionFixed);\n\n // NOTE: DOM access here\n // restores the original style properties after the offsets have been computed\n popperStyles.top = top;\n popperStyles.left = left;\n popperStyles[transformProp] = transform;\n\n options.boundaries = boundaries;\n\n var order = options.priority;\n var popper = data.offsets.popper;\n\n var check = {\n primary: function primary(placement) {\n var value = popper[placement];\n if (popper[placement] < boundaries[placement] && !options.escapeWithReference) {\n value = Math.max(popper[placement], boundaries[placement]);\n }\n return defineProperty({}, placement, value);\n },\n secondary: function secondary(placement) {\n var mainSide = placement === 'right' ? 'left' : 'top';\n var value = popper[mainSide];\n if (popper[placement] > boundaries[placement] && !options.escapeWithReference) {\n value = Math.min(popper[mainSide], boundaries[placement] - (placement === 'right' ? popper.width : popper.height));\n }\n return defineProperty({}, mainSide, value);\n }\n };\n\n order.forEach(function (placement) {\n var side = ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary';\n popper = _extends({}, popper, check[side](placement));\n });\n\n data.offsets.popper = popper;\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction shift(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var shiftvariation = placement.split('-')[1];\n\n // if shift shiftvariation is specified, run the modifier\n if (shiftvariation) {\n var _data$offsets = data.offsets,\n reference = _data$offsets.reference,\n popper = _data$offsets.popper;\n\n var isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;\n var side = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n\n var shiftOffsets = {\n start: defineProperty({}, side, reference[side]),\n end: defineProperty({}, side, reference[side] + reference[measurement] - popper[measurement])\n };\n\n data.offsets.popper = _extends({}, popper, shiftOffsets[shiftvariation]);\n }\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction hide(data) {\n if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {\n return data;\n }\n\n var refRect = data.offsets.reference;\n var bound = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'preventOverflow';\n }).boundaries;\n\n if (refRect.bottom < bound.top || refRect.left > bound.right || refRect.top > bound.bottom || refRect.right < bound.left) {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === true) {\n return data;\n }\n\n data.hide = true;\n data.attributes['x-out-of-boundaries'] = '';\n } else {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === false) {\n return data;\n }\n\n data.hide = false;\n data.attributes['x-out-of-boundaries'] = false;\n }\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction inner(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;\n\n var subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;\n\n popper[isHoriz ? 'left' : 'top'] = reference[basePlacement] - (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);\n\n data.placement = getOppositePlacement(placement);\n data.offsets.popper = getClientRect(popper);\n\n return data;\n}\n\n/**\n * Modifier function, each modifier can have a function of this type assigned\n * to its `fn` property.<br />\n * These functions will be called on each update, this means that you must\n * make sure they are performant enough to avoid performance bottlenecks.\n *\n * @function ModifierFn\n * @argument {dataObject} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {dataObject} The data object, properly modified\n */\n\n/**\n * Modifiers are plugins used to alter the behavior of your poppers.<br />\n * Popper.js uses a set of 9 modifiers to provide all the basic functionalities\n * needed by the library.\n *\n * Usually you don't want to override the `order`, `fn` and `onLoad` props.\n * All the other properties are configurations that could be tweaked.\n * @namespace modifiers\n */\nvar modifiers = {\n /**\n * Modifier used to shift the popper on the start or end of its reference\n * element.<br />\n * It will read the variation of the `placement` property.<br />\n * It can be one either `-end` or `-start`.\n * @memberof modifiers\n * @inner\n */\n shift: {\n /** @prop {number} order=100 - Index used to define the order of execution */\n order: 100,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: shift\n },\n\n /**\n * The `offset` modifier can shift your popper on both its axis.\n *\n * It accepts the following units:\n * - `px` or unit-less, interpreted as pixels\n * - `%` or `%r`, percentage relative to the length of the reference element\n * - `%p`, percentage relative to the length of the popper element\n * - `vw`, CSS viewport width unit\n * - `vh`, CSS viewport height unit\n *\n * For length is intended the main axis relative to the placement of the popper.<br />\n * This means that if the placement is `top` or `bottom`, the length will be the\n * `width`. In case of `left` or `right`, it will be the `height`.\n *\n * You can provide a single value (as `Number` or `String`), or a pair of values\n * as `String` divided by a comma or one (or more) white spaces.<br />\n * The latter is a deprecated method because it leads to confusion and will be\n * removed in v2.<br />\n * Additionally, it accepts additions and subtractions between different units.\n * Note that multiplications and divisions aren't supported.\n *\n * Valid examples are:\n * ```\n * 10\n * '10%'\n * '10, 10'\n * '10%, 10'\n * '10 + 10%'\n * '10 - 5vh + 3%'\n * '-10px + 5vh, 5px - 6%'\n * ```\n * > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap\n * > with their reference element, unfortunately, you will have to disable the `flip` modifier.\n * > You can read more on this at this [issue](https://github.com/FezVrasta/popper.js/issues/373).\n *\n * @memberof modifiers\n * @inner\n */\n offset: {\n /** @prop {number} order=200 - Index used to define the order of execution */\n order: 200,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: offset,\n /** @prop {Number|String} offset=0\n * The offset value as described in the modifier description\n */\n offset: 0\n },\n\n /**\n * Modifier used to prevent the popper from being positioned outside the boundary.\n *\n * A scenario exists where the reference itself is not within the boundaries.<br />\n * We can say it has \"escaped the boundaries\" — or just \"escaped\".<br />\n * In this case we need to decide whether the popper should either:\n *\n * - detach from the reference and remain \"trapped\" in the boundaries, or\n * - if it should ignore the boundary and \"escape with its reference\"\n *\n * When `escapeWithReference` is set to`true` and reference is completely\n * outside its boundaries, the popper will overflow (or completely leave)\n * the boundaries in order to remain attached to the edge of the reference.\n *\n * @memberof modifiers\n * @inner\n */\n preventOverflow: {\n /** @prop {number} order=300 - Index used to define the order of execution */\n order: 300,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: preventOverflow,\n /**\n * @prop {Array} [priority=['left','right','top','bottom']]\n * Popper will try to prevent overflow following these priorities by default,\n * then, it could overflow on the left and on top of the `boundariesElement`\n */\n priority: ['left', 'right', 'top', 'bottom'],\n /**\n * @prop {number} padding=5\n * Amount of pixel used to define a minimum distance between the boundaries\n * and the popper. This makes sure the popper always has a little padding\n * between the edges of its container\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='scrollParent'\n * Boundaries used by the modifier. Can be `scrollParent`, `window`,\n * `viewport` or any DOM element.\n */\n boundariesElement: 'scrollParent'\n },\n\n /**\n * Modifier used to make sure the reference and its popper stay near each other\n * without leaving any gap between the two. Especially useful when the arrow is\n * enabled and you want to ensure that it points to its reference element.\n * It cares only about the first axis. You can still have poppers with margin\n * between the popper and its reference element.\n * @memberof modifiers\n * @inner\n */\n keepTogether: {\n /** @prop {number} order=400 - Index used to define the order of execution */\n order: 400,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: keepTogether\n },\n\n /**\n * This modifier is used to move the `arrowElement` of the popper to make\n * sure it is positioned between the reference element and its popper element.\n * It will read the outer size of the `arrowElement` node to detect how many\n * pixels of conjunction are needed.\n *\n * It has no effect if no `arrowElement` is provided.\n * @memberof modifiers\n * @inner\n */\n arrow: {\n /** @prop {number} order=500 - Index used to define the order of execution */\n order: 500,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: arrow,\n /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */\n element: '[x-arrow]'\n },\n\n /**\n * Modifier used to flip the popper's placement when it starts to overlap its\n * reference element.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n *\n * **NOTE:** this modifier will interrupt the current update cycle and will\n * restart it if it detects the need to flip the placement.\n * @memberof modifiers\n * @inner\n */\n flip: {\n /** @prop {number} order=600 - Index used to define the order of execution */\n order: 600,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: flip,\n /**\n * @prop {String|Array} behavior='flip'\n * The behavior used to change the popper's placement. It can be one of\n * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid\n * placements (with optional variations)\n */\n behavior: 'flip',\n /**\n * @prop {number} padding=5\n * The popper will flip if it hits the edges of the `boundariesElement`\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='viewport'\n * The element which will define the boundaries of the popper position.\n * The popper will never be placed outside of the defined boundaries\n * (except if `keepTogether` is enabled)\n */\n boundariesElement: 'viewport',\n /**\n * @prop {Boolean} flipVariations=false\n * The popper will switch placement variation between `-start` and `-end` when\n * the reference element overlaps its boundaries.\n *\n * The original placement should have a set variation.\n */\n flipVariations: false,\n /**\n * @prop {Boolean} flipVariationsByContent=false\n * The popper will switch placement variation between `-start` and `-end` when\n * the popper element overlaps its reference boundaries.\n *\n * The original placement should have a set variation.\n */\n flipVariationsByContent: false\n },\n\n /**\n * Modifier used to make the popper flow toward the inner of the reference element.\n * By default, when this modifier is disabled, the popper will be placed outside\n * the reference element.\n * @memberof modifiers\n * @inner\n */\n inner: {\n /** @prop {number} order=700 - Index used to define the order of execution */\n order: 700,\n /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */\n enabled: false,\n /** @prop {ModifierFn} */\n fn: inner\n },\n\n /**\n * Modifier used to hide the popper when its reference element is outside of the\n * popper boundaries. It will set a `x-out-of-boundaries` attribute which can\n * be used to hide with a CSS selector the popper when its reference is\n * out of boundaries.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n * @memberof modifiers\n * @inner\n */\n hide: {\n /** @prop {number} order=800 - Index used to define the order of execution */\n order: 800,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: hide\n },\n\n /**\n * Computes the style that will be applied to the popper element to gets\n * properly positioned.\n *\n * Note that this modifier will not touch the DOM, it just prepares the styles\n * so that `applyStyle` modifier can apply it. This separation is useful\n * in case you need to replace `applyStyle` with a custom implementation.\n *\n * This modifier has `850` as `order` value to maintain backward compatibility\n * with previous versions of Popper.js. Expect the modifiers ordering method\n * to change in future major versions of the library.\n *\n * @memberof modifiers\n * @inner\n */\n computeStyle: {\n /** @prop {number} order=850 - Index used to define the order of execution */\n order: 850,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: computeStyle,\n /**\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: true,\n /**\n * @prop {string} [x='bottom']\n * Where to anchor the X axis (`bottom` or `top`). AKA X offset origin.\n * Change this if your popper should grow in a direction different from `bottom`\n */\n x: 'bottom',\n /**\n * @prop {string} [x='left']\n * Where to anchor the Y axis (`left` or `right`). AKA Y offset origin.\n * Change this if your popper should grow in a direction different from `right`\n */\n y: 'right'\n },\n\n /**\n * Applies the computed styles to the popper element.\n *\n * All the DOM manipulations are limited to this modifier. This is useful in case\n * you want to integrate Popper.js inside a framework or view library and you\n * want to delegate all the DOM manipulations to it.\n *\n * Note that if you disable this modifier, you must make sure the popper element\n * has its position set to `absolute` before Popper.js can do its work!\n *\n * Just disable this modifier and define your own to achieve the desired effect.\n *\n * @memberof modifiers\n * @inner\n */\n applyStyle: {\n /** @prop {number} order=900 - Index used to define the order of execution */\n order: 900,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: applyStyle,\n /** @prop {Function} */\n onLoad: applyStyleOnLoad,\n /**\n * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: undefined\n }\n};\n\n/**\n * The `dataObject` is an object containing all the information used by Popper.js.\n * This object is passed to modifiers and to the `onCreate` and `onUpdate` callbacks.\n * @name dataObject\n * @property {Object} data.instance The Popper.js instance\n * @property {String} data.placement Placement applied to popper\n * @property {String} data.originalPlacement Placement originally defined on init\n * @property {Boolean} data.flipped True if popper has been flipped by flip modifier\n * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper\n * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier\n * @property {Object} data.styles Any CSS property defined here will be applied to the popper. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.boundaries Offsets of the popper boundaries\n * @property {Object} data.offsets The measurements of popper, reference and arrow elements\n * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0\n */\n\n/**\n * Default options provided to Popper.js constructor.<br />\n * These can be overridden using the `options` argument of Popper.js.<br />\n * To override an option, simply pass an object with the same\n * structure of the `options` object, as the 3rd argument. For example:\n * ```\n * new Popper(ref, pop, {\n * modifiers: {\n * preventOverflow: { enabled: false }\n * }\n * })\n * ```\n * @type {Object}\n * @static\n * @memberof Popper\n */\nvar Defaults = {\n /**\n * Popper's placement.\n * @prop {Popper.placements} placement='bottom'\n */\n placement: 'bottom',\n\n /**\n * Set this to true if you want popper to position it self in 'fixed' mode\n * @prop {Boolean} positionFixed=false\n */\n positionFixed: false,\n\n /**\n * Whether events (resize, scroll) are initially enabled.\n * @prop {Boolean} eventsEnabled=true\n */\n eventsEnabled: true,\n\n /**\n * Set to true if you want to automatically remove the popper when\n * you call the `destroy` method.\n * @prop {Boolean} removeOnDestroy=false\n */\n removeOnDestroy: false,\n\n /**\n * Callback called when the popper is created.<br />\n * By default, it is set to no-op.<br />\n * Access Popper.js instance with `data.instance`.\n * @prop {onCreate}\n */\n onCreate: function onCreate() {},\n\n /**\n * Callback called when the popper is updated. This callback is not called\n * on the initialization/creation of the popper, but only on subsequent\n * updates.<br />\n * By default, it is set to no-op.<br />\n * Access Popper.js instance with `data.instance`.\n * @prop {onUpdate}\n */\n onUpdate: function onUpdate() {},\n\n /**\n * List of modifiers used to modify the offsets before they are applied to the popper.\n * They provide most of the functionalities of Popper.js.\n * @prop {modifiers}\n */\n modifiers: modifiers\n};\n\n/**\n * @callback onCreate\n * @param {dataObject} data\n */\n\n/**\n * @callback onUpdate\n * @param {dataObject} data\n */\n\n// Utils\n// Methods\nvar Popper = function () {\n /**\n * Creates a new Popper.js instance.\n * @class Popper\n * @param {Element|referenceObject} reference - The reference element used to position the popper\n * @param {Element} popper - The HTML / XML element used as the popper\n * @param {Object} options - Your custom options to override the ones defined in [Defaults](#defaults)\n * @return {Object} instance - The generated Popper.js instance\n */\n function Popper(reference, popper) {\n var _this = this;\n\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n classCallCheck(this, Popper);\n\n this.scheduleUpdate = function () {\n return requestAnimationFrame(_this.update);\n };\n\n // make update() debounced, so that it only runs at most once-per-tick\n this.update = debounce(this.update.bind(this));\n\n // with {} we create a new object with the options inside it\n this.options = _extends({}, Popper.Defaults, options);\n\n // init state\n this.state = {\n isDestroyed: false,\n isCreated: false,\n scrollParents: []\n };\n\n // get reference and popper elements (allow jQuery wrappers)\n this.reference = reference && reference.jquery ? reference[0] : reference;\n this.popper = popper && popper.jquery ? popper[0] : popper;\n\n // Deep merge modifiers options\n this.options.modifiers = {};\n Object.keys(_extends({}, Popper.Defaults.modifiers, options.modifiers)).forEach(function (name) {\n _this.options.modifiers[name] = _extends({}, Popper.Defaults.modifiers[name] || {}, options.modifiers ? options.modifiers[name] : {});\n });\n\n // Refactoring modifiers' list (Object => Array)\n this.modifiers = Object.keys(this.options.modifiers).map(function (name) {\n return _extends({\n name: name\n }, _this.options.modifiers[name]);\n })\n // sort the modifiers by order\n .sort(function (a, b) {\n return a.order - b.order;\n });\n\n // modifiers have the ability to execute arbitrary code when Popper.js get inited\n // such code is executed in the same order of its modifier\n // they could add new properties to their options configuration\n // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`!\n this.modifiers.forEach(function (modifierOptions) {\n if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {\n modifierOptions.onLoad(_this.reference, _this.popper, _this.options, modifierOptions, _this.state);\n }\n });\n\n // fire the first update to position the popper in the right place\n this.update();\n\n var eventsEnabled = this.options.eventsEnabled;\n if (eventsEnabled) {\n // setup event listeners, they will take care of update the position in specific situations\n this.enableEventListeners();\n }\n\n this.state.eventsEnabled = eventsEnabled;\n }\n\n // We can't use class properties because they don't get listed in the\n // class prototype and break stuff like Sinon stubs\n\n\n createClass(Popper, [{\n key: 'update',\n value: function update$$1() {\n return update.call(this);\n }\n }, {\n key: 'destroy',\n value: function destroy$$1() {\n return destroy.call(this);\n }\n }, {\n key: 'enableEventListeners',\n value: function enableEventListeners$$1() {\n return enableEventListeners.call(this);\n }\n }, {\n key: 'disableEventListeners',\n value: function disableEventListeners$$1() {\n return disableEventListeners.call(this);\n }\n\n /**\n * Schedules an update. It will run on the next UI update available.\n * @method scheduleUpdate\n * @memberof Popper\n */\n\n\n /**\n * Collection of utilities useful when writing custom modifiers.\n * Starting from version 1.7, this method is available only if you\n * include `popper-utils.js` before `popper.js`.\n *\n * **DEPRECATION**: This way to access PopperUtils is deprecated\n * and will be removed in v2! Use the PopperUtils module directly instead.\n * Due to the high instability of the methods contained in Utils, we can't\n * guarantee them to follow semver. Use them at your own risk!\n * @static\n * @private\n * @type {Object}\n * @deprecated since version 1.8\n * @member Utils\n * @memberof Popper\n */\n\n }]);\n return Popper;\n}();\n\n/**\n * The `referenceObject` is an object that provides an interface compatible with Popper.js\n * and lets you use it as replacement of a real DOM node.<br />\n * You can use this method to position a popper relatively to a set of coordinates\n * in case you don't have a DOM node to use as reference.\n *\n * ```\n * new Popper(referenceObject, popperNode);\n * ```\n *\n * NB: This feature isn't supported in Internet Explorer 10.\n * @name referenceObject\n * @property {Function} data.getBoundingClientRect\n * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method.\n * @property {number} data.clientWidth\n * An ES6 getter that will return the width of the virtual reference element.\n * @property {number} data.clientHeight\n * An ES6 getter that will return the height of the virtual reference element.\n */\n\n\nPopper.Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;\nPopper.placements = placements;\nPopper.Defaults = Defaults;\n\nreturn Popper;\n\n})));\n//# sourceMappingURL=popper.js.map\n\n// import required js-files Bootstrap 5\n/*!\n * Bootstrap alert.js v5.0.0-beta2 (https://getbootstrap.com/)\n * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./dom/data.js'), require('./dom/event-handler.js'), require('./base-component.js')) :\n typeof define === 'function' && define.amd ? define(['./dom/data', './dom/event-handler', './base-component'], factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Alert = factory(global.Data, global.EventHandler, global.Base));\n}(this, (function (Data, EventHandler, BaseComponent) { 'use strict';\n\n function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }\n\n var Data__default = /*#__PURE__*/_interopDefaultLegacy(Data);\n var EventHandler__default = /*#__PURE__*/_interopDefaultLegacy(EventHandler);\n var BaseComponent__default = /*#__PURE__*/_interopDefaultLegacy(BaseComponent);\n\n function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n }\n\n function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n\n _setPrototypeOf(subClass, superClass);\n }\n\n function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n }\n\n /**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-beta2): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n var MILLISECONDS_MULTIPLIER = 1000;\n var TRANSITION_END = 'transitionend'; // Shoutout AngusCroll (https://goo.gl/pxwQGp)\n\n var getSelector = function getSelector(element) {\n var selector = element.getAttribute('data-bs-target');\n\n if (!selector || selector === '#') {\n var hrefAttr = element.getAttribute('href'); // The only valid content that could double as a selector are IDs or classes,\n // so everything starting with `#` or `.`. If a \"real\" URL is used as the selector,\n // `document.querySelector` will rightfully complain it is invalid.\n // See https://github.com/twbs/bootstrap/issues/32273\n\n if (!hrefAttr || !hrefAttr.includes('#') && !hrefAttr.startsWith('.')) {\n return null;\n } // Just in case some CMS puts out a full URL with the anchor appended\n\n\n if (hrefAttr.includes('#') && !hrefAttr.startsWith('#')) {\n hrefAttr = '#' + hrefAttr.split('#')[1];\n }\n\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : null;\n }\n\n return selector;\n };\n\n var getElementFromSelector = function getElementFromSelector(element) {\n var selector = getSelector(element);\n return selector ? document.querySelector(selector) : null;\n };\n\n var getTransitionDurationFromElement = function getTransitionDurationFromElement(element) {\n if (!element) {\n return 0;\n } // Get transition-duration of the element\n\n\n var _window$getComputedSt = window.getComputedStyle(element),\n transitionDuration = _window$getComputedSt.transitionDuration,\n transitionDelay = _window$getComputedSt.transitionDelay;\n\n var floatTransitionDuration = Number.parseFloat(transitionDuration);\n var floatTransitionDelay = Number.parseFloat(transitionDelay); // Return 0 if element or transition duration is not found\n\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0;\n } // If multiple durations are defined, take the first\n\n\n transitionDuration = transitionDuration.split(',')[0];\n transitionDelay = transitionDelay.split(',')[0];\n return (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER;\n };\n\n var triggerTransitionEnd = function triggerTransitionEnd(element) {\n element.dispatchEvent(new Event(TRANSITION_END));\n };\n\n var emulateTransitionEnd = function emulateTransitionEnd(element, duration) {\n var called = false;\n var durationPadding = 5;\n var emulatedDuration = duration + durationPadding;\n\n function listener() {\n called = true;\n element.removeEventListener(TRANSITION_END, listener);\n }\n\n element.addEventListener(TRANSITION_END, listener);\n setTimeout(function () {\n if (!called) {\n triggerTransitionEnd(element);\n }\n }, emulatedDuration);\n };\n\n var getjQuery = function getjQuery() {\n var _window = window,\n jQuery = _window.jQuery;\n\n if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {\n return jQuery;\n }\n\n return null;\n };\n\n var onDOMContentLoaded = function onDOMContentLoaded(callback) {\n if (document.readyState === 'loading') {\n document.addEventListener('DOMContentLoaded', callback);\n } else {\n callback();\n }\n };\n\n document.documentElement.dir === 'rtl';\n\n var defineJQueryPlugin = function defineJQueryPlugin(name, plugin) {\n onDOMContentLoaded(function () {\n var $ = getjQuery();\n /* istanbul ignore if */\n\n if ($) {\n var JQUERY_NO_CONFLICT = $.fn[name];\n $.fn[name] = plugin.jQueryInterface;\n $.fn[name].Constructor = plugin;\n\n $.fn[name].noConflict = function () {\n $.fn[name] = JQUERY_NO_CONFLICT;\n return plugin.jQueryInterface;\n };\n }\n });\n };\n\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n var NAME = 'alert';\n var DATA_KEY = 'bs.alert';\n var EVENT_KEY = \".\" + DATA_KEY;\n var DATA_API_KEY = '.data-api';\n var SELECTOR_DISMISS = '[data-bs-dismiss=\"alert\"]';\n var EVENT_CLOSE = \"close\" + EVENT_KEY;\n var EVENT_CLOSED = \"closed\" + EVENT_KEY;\n var EVENT_CLICK_DATA_API = \"click\" + EVENT_KEY + DATA_API_KEY;\n var CLASS_NAME_ALERT = 'alert';\n var CLASS_NAME_FADE = 'fade';\n var CLASS_NAME_SHOW = 'show';\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n var Alert = /*#__PURE__*/function (_BaseComponent) {\n _inheritsLoose(Alert, _BaseComponent);\n\n function Alert() {\n return _BaseComponent.apply(this, arguments) || this;\n }\n\n var _proto = Alert.prototype;\n\n // Public\n _proto.close = function close(element) {\n var rootElement = element ? this._getRootElement(element) : this._element;\n\n var customEvent = this._triggerCloseEvent(rootElement);\n\n if (customEvent === null || customEvent.defaultPrevented) {\n return;\n }\n\n this._removeElement(rootElement);\n } // Private\n ;\n\n _proto._getRootElement = function _getRootElement(element) {\n return getElementFromSelector(element) || element.closest(\".\" + CLASS_NAME_ALERT);\n };\n\n _proto._triggerCloseEvent = function _triggerCloseEvent(element) {\n return EventHandler__default['default'].trigger(element, EVENT_CLOSE);\n };\n\n _proto._removeElement = function _removeElement(element) {\n var _this = this;\n\n element.classList.remove(CLASS_NAME_SHOW);\n\n if (!element.classList.contains(CLASS_NAME_FADE)) {\n this._destroyElement(element);\n\n return;\n }\n\n var transitionDuration = getTransitionDurationFromElement(element);\n EventHandler__default['default'].one(element, 'transitionend', function () {\n return _this._destroyElement(element);\n });\n emulateTransitionEnd(element, transitionDuration);\n };\n\n _proto._destroyElement = function _destroyElement(element) {\n if (element.parentNode) {\n element.parentNode.removeChild(element);\n }\n\n EventHandler__default['default'].trigger(element, EVENT_CLOSED);\n } // Static\n ;\n\n Alert.jQueryInterface = function jQueryInterface(config) {\n return this.each(function () {\n var data = Data__default['default'].getData(this, DATA_KEY);\n\n if (!data) {\n data = new Alert(this);\n }\n\n if (config === 'close') {\n data[config](this);\n }\n });\n };\n\n Alert.handleDismiss = function handleDismiss(alertInstance) {\n return function (event) {\n if (event) {\n event.preventDefault();\n }\n\n alertInstance.close(this);\n };\n };\n\n _createClass(Alert, null, [{\n key: \"DATA_KEY\",\n get: // Getters\n function get() {\n return DATA_KEY;\n }\n }]);\n\n return Alert;\n }(BaseComponent__default['default']);\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n\n EventHandler__default['default'].on(document, EVENT_CLICK_DATA_API, SELECTOR_DISMISS, Alert.handleDismiss(new Alert()));\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Alert to jQuery only if jQuery is present\n */\n\n defineJQueryPlugin(NAME, Alert);\n\n return Alert;\n\n})));\n//# sourceMappingURL=alert.js.map\n/*!\n * Bootstrap button.js v5.0.0-beta2 (https://getbootstrap.com/)\n * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./dom/data.js'), require('./dom/event-handler.js'), require('./base-component.js')) :\n typeof define === 'function' && define.amd ? define(['./dom/data', './dom/event-handler', './base-component'], factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Button = factory(global.Data, global.EventHandler, global.Base));\n}(this, (function (Data, EventHandler, BaseComponent) { 'use strict';\n\n function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }\n\n var Data__default = /*#__PURE__*/_interopDefaultLegacy(Data);\n var EventHandler__default = /*#__PURE__*/_interopDefaultLegacy(EventHandler);\n var BaseComponent__default = /*#__PURE__*/_interopDefaultLegacy(BaseComponent);\n\n function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n }\n\n function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n\n _setPrototypeOf(subClass, superClass);\n }\n\n function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n }\n\n /**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-beta2): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n var getjQuery = function getjQuery() {\n var _window = window,\n jQuery = _window.jQuery;\n\n if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {\n return jQuery;\n }\n\n return null;\n };\n\n var onDOMContentLoaded = function onDOMContentLoaded(callback) {\n if (document.readyState === 'loading') {\n document.addEventListener('DOMContentLoaded', callback);\n } else {\n callback();\n }\n };\n\n document.documentElement.dir === 'rtl';\n\n var defineJQueryPlugin = function defineJQueryPlugin(name, plugin) {\n onDOMContentLoaded(function () {\n var $ = getjQuery();\n /* istanbul ignore if */\n\n if ($) {\n var JQUERY_NO_CONFLICT = $.fn[name];\n $.fn[name] = plugin.jQueryInterface;\n $.fn[name].Constructor = plugin;\n\n $.fn[name].noConflict = function () {\n $.fn[name] = JQUERY_NO_CONFLICT;\n return plugin.jQueryInterface;\n };\n }\n });\n };\n\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n var NAME = 'button';\n var DATA_KEY = 'bs.button';\n var EVENT_KEY = \".\" + DATA_KEY;\n var DATA_API_KEY = '.data-api';\n var CLASS_NAME_ACTIVE = 'active';\n var SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"button\"]';\n var EVENT_CLICK_DATA_API = \"click\" + EVENT_KEY + DATA_API_KEY;\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n var Button = /*#__PURE__*/function (_BaseComponent) {\n _inheritsLoose(Button, _BaseComponent);\n\n function Button() {\n return _BaseComponent.apply(this, arguments) || this;\n }\n\n var _proto = Button.prototype;\n\n // Public\n _proto.toggle = function toggle() {\n // Toggle class and sync the `aria-pressed` attribute with the return value of the `.toggle()` method\n this._element.setAttribute('aria-pressed', this._element.classList.toggle(CLASS_NAME_ACTIVE));\n } // Static\n ;\n\n Button.jQueryInterface = function jQueryInterface(config) {\n return this.each(function () {\n var data = Data__default['default'].getData(this, DATA_KEY);\n\n if (!data) {\n data = new Button(this);\n }\n\n if (config === 'toggle') {\n data[config]();\n }\n });\n };\n\n _createClass(Button, null, [{\n key: \"DATA_KEY\",\n get: // Getters\n function get() {\n return DATA_KEY;\n }\n }]);\n\n return Button;\n }(BaseComponent__default['default']);\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n\n EventHandler__default['default'].on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n event.preventDefault();\n var button = event.target.closest(SELECTOR_DATA_TOGGLE);\n var data = Data__default['default'].getData(button, DATA_KEY);\n\n if (!data) {\n data = new Button(button);\n }\n\n data.toggle();\n });\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Button to jQuery only if jQuery is present\n */\n\n defineJQueryPlugin(NAME, Button);\n\n return Button;\n\n})));\n//# sourceMappingURL=button.js.map\n/*!\n * Bootstrap carousel.js v5.0.0-beta2 (https://getbootstrap.com/)\n * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./dom/data.js'), require('./dom/event-handler.js'), require('./dom/manipulator.js'), require('./dom/selector-engine.js'), require('./base-component.js')) :\n typeof define === 'function' && define.amd ? define(['./dom/data', './dom/event-handler', './dom/manipulator', './dom/selector-engine', './base-component'], factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Carousel = factory(global.Data, global.EventHandler, global.Manipulator, global.SelectorEngine, global.Base));\n}(this, (function (Data, EventHandler, Manipulator, SelectorEngine, BaseComponent) { 'use strict';\n\n function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }\n\n var Data__default = /*#__PURE__*/_interopDefaultLegacy(Data);\n var EventHandler__default = /*#__PURE__*/_interopDefaultLegacy(EventHandler);\n var Manipulator__default = /*#__PURE__*/_interopDefaultLegacy(Manipulator);\n var SelectorEngine__default = /*#__PURE__*/_interopDefaultLegacy(SelectorEngine);\n var BaseComponent__default = /*#__PURE__*/_interopDefaultLegacy(BaseComponent);\n\n function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n }\n\n function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n }\n\n function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n\n _setPrototypeOf(subClass, superClass);\n }\n\n function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n }\n\n /**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-beta2): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n var MILLISECONDS_MULTIPLIER = 1000;\n var TRANSITION_END = 'transitionend'; // Shoutout AngusCroll (https://goo.gl/pxwQGp)\n\n var toType = function toType(obj) {\n if (obj === null || obj === undefined) {\n return \"\" + obj;\n }\n\n return {}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase();\n };\n\n var getSelector = function getSelector(element) {\n var selector = element.getAttribute('data-bs-target');\n\n if (!selector || selector === '#') {\n var hrefAttr = element.getAttribute('href'); // The only valid content that could double as a selector are IDs or classes,\n // so everything starting with `#` or `.`. If a \"real\" URL is used as the selector,\n // `document.querySelector` will rightfully complain it is invalid.\n // See https://github.com/twbs/bootstrap/issues/32273\n\n if (!hrefAttr || !hrefAttr.includes('#') && !hrefAttr.startsWith('.')) {\n return null;\n } // Just in case some CMS puts out a full URL with the anchor appended\n\n\n if (hrefAttr.includes('#') && !hrefAttr.startsWith('#')) {\n hrefAttr = '#' + hrefAttr.split('#')[1];\n }\n\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : null;\n }\n\n return selector;\n };\n\n var getElementFromSelector = function getElementFromSelector(element) {\n var selector = getSelector(element);\n return selector ? document.querySelector(selector) : null;\n };\n\n var getTransitionDurationFromElement = function getTransitionDurationFromElement(element) {\n if (!element) {\n return 0;\n } // Get transition-duration of the element\n\n\n var _window$getComputedSt = window.getComputedStyle(element),\n transitionDuration = _window$getComputedSt.transitionDuration,\n transitionDelay = _window$getComputedSt.transitionDelay;\n\n var floatTransitionDuration = Number.parseFloat(transitionDuration);\n var floatTransitionDelay = Number.parseFloat(transitionDelay); // Return 0 if element or transition duration is not found\n\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0;\n } // If multiple durations are defined, take the first\n\n\n transitionDuration = transitionDuration.split(',')[0];\n transitionDelay = transitionDelay.split(',')[0];\n return (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER;\n };\n\n var triggerTransitionEnd = function triggerTransitionEnd(element) {\n element.dispatchEvent(new Event(TRANSITION_END));\n };\n\n var isElement = function isElement(obj) {\n return (obj[0] || obj).nodeType;\n };\n\n var emulateTransitionEnd = function emulateTransitionEnd(element, duration) {\n var called = false;\n var durationPadding = 5;\n var emulatedDuration = duration + durationPadding;\n\n function listener() {\n called = true;\n element.removeEventListener(TRANSITION_END, listener);\n }\n\n element.addEventListener(TRANSITION_END, listener);\n setTimeout(function () {\n if (!called) {\n triggerTransitionEnd(element);\n }\n }, emulatedDuration);\n };\n\n var typeCheckConfig = function typeCheckConfig(componentName, config, configTypes) {\n Object.keys(configTypes).forEach(function (property) {\n var expectedTypes = configTypes[property];\n var value = config[property];\n var valueType = value && isElement(value) ? 'element' : toType(value);\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new TypeError(componentName.toUpperCase() + \": \" + (\"Option \\\"\" + property + \"\\\" provided type \\\"\" + valueType + \"\\\" \") + (\"but expected type \\\"\" + expectedTypes + \"\\\".\"));\n }\n });\n };\n\n var isVisible = function isVisible(element) {\n if (!element) {\n return false;\n }\n\n if (element.style && element.parentNode && element.parentNode.style) {\n var elementStyle = getComputedStyle(element);\n var parentNodeStyle = getComputedStyle(element.parentNode);\n return elementStyle.display !== 'none' && parentNodeStyle.display !== 'none' && elementStyle.visibility !== 'hidden';\n }\n\n return false;\n };\n\n var reflow = function reflow(element) {\n return element.offsetHeight;\n };\n\n var getjQuery = function getjQuery() {\n var _window = window,\n jQuery = _window.jQuery;\n\n if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {\n return jQuery;\n }\n\n return null;\n };\n\n var onDOMContentLoaded = function onDOMContentLoaded(callback) {\n if (document.readyState === 'loading') {\n document.addEventListener('DOMContentLoaded', callback);\n } else {\n callback();\n }\n };\n\n var isRTL = document.documentElement.dir === 'rtl';\n\n var defineJQueryPlugin = function defineJQueryPlugin(name, plugin) {\n onDOMContentLoaded(function () {\n var $ = getjQuery();\n /* istanbul ignore if */\n\n if ($) {\n var JQUERY_NO_CONFLICT = $.fn[name];\n $.fn[name] = plugin.jQueryInterface;\n $.fn[name].Constructor = plugin;\n\n $.fn[name].noConflict = function () {\n $.fn[name] = JQUERY_NO_CONFLICT;\n return plugin.jQueryInterface;\n };\n }\n });\n };\n\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n var NAME = 'carousel';\n var DATA_KEY = 'bs.carousel';\n var EVENT_KEY = \".\" + DATA_KEY;\n var DATA_API_KEY = '.data-api';\n var ARROW_LEFT_KEY = 'ArrowLeft';\n var ARROW_RIGHT_KEY = 'ArrowRight';\n var TOUCHEVENT_COMPAT_WAIT = 500; // Time for mouse compat events to fire after touch\n\n var SWIPE_THRESHOLD = 40;\n var Default = {\n interval: 5000,\n keyboard: true,\n slide: false,\n pause: 'hover',\n wrap: true,\n touch: true\n };\n var DefaultType = {\n interval: '(number|boolean)',\n keyboard: 'boolean',\n slide: '(boolean|string)',\n pause: '(string|boolean)',\n wrap: 'boolean',\n touch: 'boolean'\n };\n var DIRECTION_NEXT = 'next';\n var DIRECTION_PREV = 'prev';\n var DIRECTION_LEFT = 'left';\n var DIRECTION_RIGHT = 'right';\n var EVENT_SLIDE = \"slide\" + EVENT_KEY;\n var EVENT_SLID = \"slid\" + EVENT_KEY;\n var EVENT_KEYDOWN = \"keydown\" + EVENT_KEY;\n var EVENT_MOUSEENTER = \"mouseenter\" + EVENT_KEY;\n var EVENT_MOUSELEAVE = \"mouseleave\" + EVENT_KEY;\n var EVENT_TOUCHSTART = \"touchstart\" + EVENT_KEY;\n var EVENT_TOUCHMOVE = \"touchmove\" + EVENT_KEY;\n var EVENT_TOUCHEND = \"touchend\" + EVENT_KEY;\n var EVENT_POINTERDOWN = \"pointerdown\" + EVENT_KEY;\n var EVENT_POINTERUP = \"pointerup\" + EVENT_KEY;\n var EVENT_DRAG_START = \"dragstart\" + EVENT_KEY;\n var EVENT_LOAD_DATA_API = \"load\" + EVENT_KEY + DATA_API_KEY;\n var EVENT_CLICK_DATA_API = \"click\" + EVENT_KEY + DATA_API_KEY;\n var CLASS_NAME_CAROUSEL = 'carousel';\n var CLASS_NAME_ACTIVE = 'active';\n var CLASS_NAME_SLIDE = 'slide';\n var CLASS_NAME_END = 'carousel-item-end';\n var CLASS_NAME_START = 'carousel-item-start';\n var CLASS_NAME_NEXT = 'carousel-item-next';\n var CLASS_NAME_PREV = 'carousel-item-prev';\n var CLASS_NAME_POINTER_EVENT = 'pointer-event';\n var SELECTOR_ACTIVE = '.active';\n var SELECTOR_ACTIVE_ITEM = '.active.carousel-item';\n var SELECTOR_ITEM = '.carousel-item';\n var SELECTOR_ITEM_IMG = '.carousel-item img';\n var SELECTOR_NEXT_PREV = '.carousel-item-next, .carousel-item-prev';\n var SELECTOR_INDICATORS = '.carousel-indicators';\n var SELECTOR_INDICATOR = '[data-bs-target]';\n var SELECTOR_DATA_SLIDE = '[data-bs-slide], [data-bs-slide-to]';\n var SELECTOR_DATA_RIDE = '[data-bs-ride=\"carousel\"]';\n var POINTER_TYPE_TOUCH = 'touch';\n var POINTER_TYPE_PEN = 'pen';\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n var Carousel = /*#__PURE__*/function (_BaseComponent) {\n _inheritsLoose(Carousel, _BaseComponent);\n\n function Carousel(element, config) {\n var _this;\n\n _this = _BaseComponent.call(this, element) || this;\n _this._items = null;\n _this._interval = null;\n _this._activeElement = null;\n _this._isPaused = false;\n _this._isSliding = false;\n _this.touchTimeout = null;\n _this.touchStartX = 0;\n _this.touchDeltaX = 0;\n _this._config = _this._getConfig(config);\n _this._indicatorsElement = SelectorEngine__default['default'].findOne(SELECTOR_INDICATORS, _this._element);\n _this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0;\n _this._pointerEvent = Boolean(window.PointerEvent);\n\n _this._addEventListeners();\n\n return _this;\n } // Getters\n\n\n var _proto = Carousel.prototype;\n\n // Public\n _proto.next = function next() {\n if (!this._isSliding) {\n this._slide(DIRECTION_NEXT);\n }\n };\n\n _proto.nextWhenVisible = function nextWhenVisible() {\n // Don't call next when the page isn't visible\n // or the carousel or its parent isn't visible\n if (!document.hidden && isVisible(this._element)) {\n this.next();\n }\n };\n\n _proto.prev = function prev() {\n if (!this._isSliding) {\n this._slide(DIRECTION_PREV);\n }\n };\n\n _proto.pause = function pause(event) {\n if (!event) {\n this._isPaused = true;\n }\n\n if (SelectorEngine__default['default'].findOne(SELECTOR_NEXT_PREV, this._element)) {\n triggerTransitionEnd(this._element);\n this.cycle(true);\n }\n\n clearInterval(this._interval);\n this._interval = null;\n };\n\n _proto.cycle = function cycle(event) {\n if (!event) {\n this._isPaused = false;\n }\n\n if (this._interval) {\n clearInterval(this._interval);\n this._interval = null;\n }\n\n if (this._config && this._config.interval && !this._isPaused) {\n this._updateInterval();\n\n this._interval = setInterval((document.visibilityState ? this.nextWhenVisible : this.next).bind(this), this._config.interval);\n }\n };\n\n _proto.to = function to(index) {\n var _this2 = this;\n\n this._activeElement = SelectorEngine__default['default'].findOne(SELECTOR_ACTIVE_ITEM, this._element);\n\n var activeIndex = this._getItemIndex(this._activeElement);\n\n if (index > this._items.length - 1 || index < 0) {\n return;\n }\n\n if (this._isSliding) {\n EventHandler__default['default'].one(this._element, EVENT_SLID, function () {\n return _this2.to(index);\n });\n return;\n }\n\n if (activeIndex === index) {\n this.pause();\n this.cycle();\n return;\n }\n\n var direction = index > activeIndex ? DIRECTION_NEXT : DIRECTION_PREV;\n\n this._slide(direction, this._items[index]);\n };\n\n _proto.dispose = function dispose() {\n _BaseComponent.prototype.dispose.call(this);\n\n EventHandler__default['default'].off(this._element, EVENT_KEY);\n this._items = null;\n this._config = null;\n this._interval = null;\n this._isPaused = null;\n this._isSliding = null;\n this._activeElement = null;\n this._indicatorsElement = null;\n } // Private\n ;\n\n _proto._getConfig = function _getConfig(config) {\n config = _extends({}, Default, config);\n typeCheckConfig(NAME, config, DefaultType);\n return config;\n };\n\n _proto._handleSwipe = function _handleSwipe() {\n var absDeltax = Math.abs(this.touchDeltaX);\n\n if (absDeltax <= SWIPE_THRESHOLD) {\n return;\n }\n\n var direction = absDeltax / this.touchDeltaX;\n this.touchDeltaX = 0; // swipe left\n\n if (direction > 0) {\n if (isRTL) {\n this.next();\n } else {\n this.prev();\n }\n } // swipe right\n\n\n if (direction < 0) {\n if (isRTL) {\n this.prev();\n } else {\n this.next();\n }\n }\n };\n\n _proto._addEventListeners = function _addEventListeners() {\n var _this3 = this;\n\n if (this._config.keyboard) {\n EventHandler__default['default'].on(this._element, EVENT_KEYDOWN, function (event) {\n return _this3._keydown(event);\n });\n }\n\n if (this._config.pause === 'hover') {\n EventHandler__default['default'].on(this._element, EVENT_MOUSEENTER, function (event) {\n return _this3.pause(event);\n });\n EventHandler__default['default'].on(this._element, EVENT_MOUSELEAVE, function (event) {\n return _this3.cycle(event);\n });\n }\n\n if (this._config.touch && this._touchSupported) {\n this._addTouchEventListeners();\n }\n };\n\n _proto._addTouchEventListeners = function _addTouchEventListeners() {\n var _this4 = this;\n\n var start = function start(event) {\n if (_this4._pointerEvent && (event.pointerType === POINTER_TYPE_PEN || event.pointerType === POINTER_TYPE_TOUCH)) {\n _this4.touchStartX = event.clientX;\n } else if (!_this4._pointerEvent) {\n _this4.touchStartX = event.touches[0].clientX;\n }\n };\n\n var move = function move(event) {\n // ensure swiping with one touch and not pinching\n if (event.touches && event.touches.length > 1) {\n _this4.touchDeltaX = 0;\n } else {\n _this4.touchDeltaX = event.touches[0].clientX - _this4.touchStartX;\n }\n };\n\n var end = function end(event) {\n if (_this4._pointerEvent && (event.pointerType === POINTER_TYPE_PEN || event.pointerType === POINTER_TYPE_TOUCH)) {\n _this4.touchDeltaX = event.clientX - _this4.touchStartX;\n }\n\n _this4._handleSwipe();\n\n if (_this4._config.pause === 'hover') {\n // If it's a touch-enabled device, mouseenter/leave are fired as\n // part of the mouse compatibility events on first tap - the carousel\n // would stop cycling until user tapped out of it;\n // here, we listen for touchend, explicitly pause the carousel\n // (as if it's the second time we tap on it, mouseenter compat event\n // is NOT fired) and after a timeout (to allow for mouse compatibility\n // events to fire) we explicitly restart cycling\n _this4.pause();\n\n if (_this4.touchTimeout) {\n clearTimeout(_this4.touchTimeout);\n }\n\n _this4.touchTimeout = setTimeout(function (event) {\n return _this4.cycle(event);\n }, TOUCHEVENT_COMPAT_WAIT + _this4._config.interval);\n }\n };\n\n SelectorEngine__default['default'].find(SELECTOR_ITEM_IMG, this._element).forEach(function (itemImg) {\n EventHandler__default['default'].on(itemImg, EVENT_DRAG_START, function (e) {\n return e.preventDefault();\n });\n });\n\n if (this._pointerEvent) {\n EventHandler__default['default'].on(this._element, EVENT_POINTERDOWN, function (event) {\n return start(event);\n });\n EventHandler__default['default'].on(this._element, EVENT_POINTERUP, function (event) {\n return end(event);\n });\n\n this._element.classList.add(CLASS_NAME_POINTER_EVENT);\n } else {\n EventHandler__default['default'].on(this._element, EVENT_TOUCHSTART, function (event) {\n return start(event);\n });\n EventHandler__default['default'].on(this._element, EVENT_TOUCHMOVE, function (event) {\n return move(event);\n });\n EventHandler__default['default'].on(this._element, EVENT_TOUCHEND, function (event) {\n return end(event);\n });\n }\n };\n\n _proto._keydown = function _keydown(event) {\n if (/input|textarea/i.test(event.target.tagName)) {\n return;\n }\n\n if (event.key === ARROW_LEFT_KEY) {\n event.preventDefault();\n\n if (isRTL) {\n this.next();\n } else {\n this.prev();\n }\n } else if (event.key === ARROW_RIGHT_KEY) {\n event.preventDefault();\n\n if (isRTL) {\n this.prev();\n } else {\n this.next();\n }\n }\n };\n\n _proto._getItemIndex = function _getItemIndex(element) {\n this._items = element && element.parentNode ? SelectorEngine__default['default'].find(SELECTOR_ITEM, element.parentNode) : [];\n return this._items.indexOf(element);\n };\n\n _proto._getItemByDirection = function _getItemByDirection(direction, activeElement) {\n var isNextDirection = direction === DIRECTION_NEXT;\n var isPrevDirection = direction === DIRECTION_PREV;\n\n var activeIndex = this._getItemIndex(activeElement);\n\n var lastItemIndex = this._items.length - 1;\n var isGoingToWrap = isPrevDirection && activeIndex === 0 || isNextDirection && activeIndex === lastItemIndex;\n\n if (isGoingToWrap && !this._config.wrap) {\n return activeElement;\n }\n\n var delta = direction === DIRECTION_PREV ? -1 : 1;\n var itemIndex = (activeIndex + delta) % this._items.length;\n return itemIndex === -1 ? this._items[this._items.length - 1] : this._items[itemIndex];\n };\n\n _proto._triggerSlideEvent = function _triggerSlideEvent(relatedTarget, eventDirectionName) {\n var targetIndex = this._getItemIndex(relatedTarget);\n\n var fromIndex = this._getItemIndex(SelectorEngine__default['default'].findOne(SELECTOR_ACTIVE_ITEM, this._element));\n\n return EventHandler__default['default'].trigger(this._element, EVENT_SLIDE, {\n relatedTarget: relatedTarget,\n direction: eventDirectionName,\n from: fromIndex,\n to: targetIndex\n });\n };\n\n _proto._setActiveIndicatorElement = function _setActiveIndicatorElement(element) {\n if (this._indicatorsElement) {\n var activeIndicator = SelectorEngine__default['default'].findOne(SELECTOR_ACTIVE, this._indicatorsElement);\n activeIndicator.classList.remove(CLASS_NAME_ACTIVE);\n activeIndicator.removeAttribute('aria-current');\n var indicators = SelectorEngine__default['default'].find(SELECTOR_INDICATOR, this._indicatorsElement);\n\n for (var i = 0; i < indicators.length; i++) {\n if (Number.parseInt(indicators[i].getAttribute('data-bs-slide-to'), 10) === this._getItemIndex(element)) {\n indicators[i].classList.add(CLASS_NAME_ACTIVE);\n indicators[i].setAttribute('aria-current', 'true');\n break;\n }\n }\n }\n };\n\n _proto._updateInterval = function _updateInterval() {\n var element = this._activeElement || SelectorEngine__default['default'].findOne(SELECTOR_ACTIVE_ITEM, this._element);\n\n if (!element) {\n return;\n }\n\n var elementInterval = Number.parseInt(element.getAttribute('data-bs-interval'), 10);\n\n if (elementInterval) {\n this._config.defaultInterval = this._config.defaultInterval || this._config.interval;\n this._config.interval = elementInterval;\n } else {\n this._config.interval = this._config.defaultInterval || this._config.interval;\n }\n };\n\n _proto._slide = function _slide(direction, element) {\n var _this5 = this;\n\n var activeElement = SelectorEngine__default['default'].findOne(SELECTOR_ACTIVE_ITEM, this._element);\n\n var activeElementIndex = this._getItemIndex(activeElement);\n\n var nextElement = element || activeElement && this._getItemByDirection(direction, activeElement);\n\n var nextElementIndex = this._getItemIndex(nextElement);\n\n var isCycling = Boolean(this._interval);\n var directionalClassName = direction === DIRECTION_NEXT ? CLASS_NAME_START : CLASS_NAME_END;\n var orderClassName = direction === DIRECTION_NEXT ? CLASS_NAME_NEXT : CLASS_NAME_PREV;\n var eventDirectionName = direction === DIRECTION_NEXT ? DIRECTION_LEFT : DIRECTION_RIGHT;\n\n if (nextElement && nextElement.classList.contains(CLASS_NAME_ACTIVE)) {\n this._isSliding = false;\n return;\n }\n\n var slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName);\n\n if (slideEvent.defaultPrevented) {\n return;\n }\n\n if (!activeElement || !nextElement) {\n // Some weirdness is happening, so we bail\n return;\n }\n\n this._isSliding = true;\n\n if (isCycling) {\n this.pause();\n }\n\n this._setActiveIndicatorElement(nextElement);\n\n this._activeElement = nextElement;\n\n if (this._element.classList.contains(CLASS_NAME_SLIDE)) {\n nextElement.classList.add(orderClassName);\n reflow(nextElement);\n activeElement.classList.add(directionalClassName);\n nextElement.classList.add(directionalClassName);\n var transitionDuration = getTransitionDurationFromElement(activeElement);\n EventHandler__default['default'].one(activeElement, 'transitionend', function () {\n nextElement.classList.remove(directionalClassName, orderClassName);\n nextElement.classList.add(CLASS_NAME_ACTIVE);\n activeElement.classList.remove(CLASS_NAME_ACTIVE, orderClassName, directionalClassName);\n _this5._isSliding = false;\n setTimeout(function () {\n EventHandler__default['default'].trigger(_this5._element, EVENT_SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n });\n }, 0);\n });\n emulateTransitionEnd(activeElement, transitionDuration);\n } else {\n activeElement.classList.remove(CLASS_NAME_ACTIVE);\n nextElement.classList.add(CLASS_NAME_ACTIVE);\n this._isSliding = false;\n EventHandler__default['default'].trigger(this._element, EVENT_SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n });\n }\n\n if (isCycling) {\n this.cycle();\n }\n } // Static\n ;\n\n Carousel.carouselInterface = function carouselInterface(element, config) {\n var data = Data__default['default'].getData(element, DATA_KEY);\n\n var _config = _extends({}, Default, Manipulator__default['default'].getDataAttributes(element));\n\n if (typeof config === 'object') {\n _config = _extends({}, _config, config);\n }\n\n var action = typeof config === 'string' ? config : _config.slide;\n\n if (!data) {\n data = new Carousel(element, _config);\n }\n\n if (typeof config === 'number') {\n data.to(config);\n } else if (typeof action === 'string') {\n if (typeof data[action] === 'undefined') {\n throw new TypeError(\"No method named \\\"\" + action + \"\\\"\");\n }\n\n data[action]();\n } else if (_config.interval && _config.ride) {\n data.pause();\n data.cycle();\n }\n };\n\n Carousel.jQueryInterface = function jQueryInterface(config) {\n return this.each(function () {\n Carousel.carouselInterface(this, config);\n });\n };\n\n Carousel.dataApiClickHandler = function dataApiClickHandler(event) {\n var target = getElementFromSelector(this);\n\n if (!target || !target.classList.contains(CLASS_NAME_CAROUSEL)) {\n return;\n }\n\n var config = _extends({}, Manipulator__default['default'].getDataAttributes(target), Manipulator__default['default'].getDataAttributes(this));\n\n var slideIndex = this.getAttribute('data-bs-slide-to');\n\n if (slideIndex) {\n config.interval = false;\n }\n\n Carousel.carouselInterface(target, config);\n\n if (slideIndex) {\n Data__default['default'].getData(target, DATA_KEY).to(slideIndex);\n }\n\n event.preventDefault();\n };\n\n _createClass(Carousel, null, [{\n key: \"Default\",\n get: function get() {\n return Default;\n }\n }, {\n key: \"DATA_KEY\",\n get: function get() {\n return DATA_KEY;\n }\n }]);\n\n return Carousel;\n }(BaseComponent__default['default']);\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n\n EventHandler__default['default'].on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_SLIDE, Carousel.dataApiClickHandler);\n EventHandler__default['default'].on(window, EVENT_LOAD_DATA_API, function () {\n var carousels = SelectorEngine__default['default'].find(SELECTOR_DATA_RIDE);\n\n for (var i = 0, len = carousels.length; i < len; i++) {\n Carousel.carouselInterface(carousels[i], Data__default['default'].getData(carousels[i], DATA_KEY));\n }\n });\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Carousel to jQuery only if jQuery is present\n */\n\n defineJQueryPlugin(NAME, Carousel);\n\n return Carousel;\n\n})));\n//# sourceMappingURL=carousel.js.map\n/*!\n * Bootstrap collapse.js v5.0.0-beta2 (https://getbootstrap.com/)\n * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./dom/data.js'), require('./dom/event-handler.js'), require('./dom/manipulator.js'), require('./dom/selector-engine.js'), require('./base-component.js')) :\n typeof define === 'function' && define.amd ? define(['./dom/data', './dom/event-handler', './dom/manipulator', './dom/selector-engine', './base-component'], factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Collapse = factory(global.Data, global.EventHandler, global.Manipulator, global.SelectorEngine, global.Base));\n}(this, (function (Data, EventHandler, Manipulator, SelectorEngine, BaseComponent) { 'use strict';\n\n function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }\n\n var Data__default = /*#__PURE__*/_interopDefaultLegacy(Data);\n var EventHandler__default = /*#__PURE__*/_interopDefaultLegacy(EventHandler);\n var Manipulator__default = /*#__PURE__*/_interopDefaultLegacy(Manipulator);\n var SelectorEngine__default = /*#__PURE__*/_interopDefaultLegacy(SelectorEngine);\n var BaseComponent__default = /*#__PURE__*/_interopDefaultLegacy(BaseComponent);\n\n function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n }\n\n function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n }\n\n function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n\n _setPrototypeOf(subClass, superClass);\n }\n\n function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n }\n\n /**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-beta2): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n var MILLISECONDS_MULTIPLIER = 1000;\n var TRANSITION_END = 'transitionend'; // Shoutout AngusCroll (https://goo.gl/pxwQGp)\n\n var toType = function toType(obj) {\n if (obj === null || obj === undefined) {\n return \"\" + obj;\n }\n\n return {}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase();\n };\n\n var getSelector = function getSelector(element) {\n var selector = element.getAttribute('data-bs-target');\n\n if (!selector || selector === '#') {\n var hrefAttr = element.getAttribute('href'); // The only valid content that could double as a selector are IDs or classes,\n // so everything starting with `#` or `.`. If a \"real\" URL is used as the selector,\n // `document.querySelector` will rightfully complain it is invalid.\n // See https://github.com/twbs/bootstrap/issues/32273\n\n if (!hrefAttr || !hrefAttr.includes('#') && !hrefAttr.startsWith('.')) {\n return null;\n } // Just in case some CMS puts out a full URL with the anchor appended\n\n\n if (hrefAttr.includes('#') && !hrefAttr.startsWith('#')) {\n hrefAttr = '#' + hrefAttr.split('#')[1];\n }\n\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : null;\n }\n\n return selector;\n };\n\n var getSelectorFromElement = function getSelectorFromElement(element) {\n var selector = getSelector(element);\n\n if (selector) {\n return document.querySelector(selector) ? selector : null;\n }\n\n return null;\n };\n\n var getElementFromSelector = function getElementFromSelector(element) {\n var selector = getSelector(element);\n return selector ? document.querySelector(selector) : null;\n };\n\n var getTransitionDurationFromElement = function getTransitionDurationFromElement(element) {\n if (!element) {\n return 0;\n } // Get transition-duration of the element\n\n\n var _window$getComputedSt = window.getComputedStyle(element),\n transitionDuration = _window$getComputedSt.transitionDuration,\n transitionDelay = _window$getComputedSt.transitionDelay;\n\n var floatTransitionDuration = Number.parseFloat(transitionDuration);\n var floatTransitionDelay = Number.parseFloat(transitionDelay); // Return 0 if element or transition duration is not found\n\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0;\n } // If multiple durations are defined, take the first\n\n\n transitionDuration = transitionDuration.split(',')[0];\n transitionDelay = transitionDelay.split(',')[0];\n return (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER;\n };\n\n var triggerTransitionEnd = function triggerTransitionEnd(element) {\n element.dispatchEvent(new Event(TRANSITION_END));\n };\n\n var isElement = function isElement(obj) {\n return (obj[0] || obj).nodeType;\n };\n\n var emulateTransitionEnd = function emulateTransitionEnd(element, duration) {\n var called = false;\n var durationPadding = 5;\n var emulatedDuration = duration + durationPadding;\n\n function listener() {\n called = true;\n element.removeEventListener(TRANSITION_END, listener);\n }\n\n element.addEventListener(TRANSITION_END, listener);\n setTimeout(function () {\n if (!called) {\n triggerTransitionEnd(element);\n }\n }, emulatedDuration);\n };\n\n var typeCheckConfig = function typeCheckConfig(componentName, config, configTypes) {\n Object.keys(configTypes).forEach(function (property) {\n var expectedTypes = configTypes[property];\n var value = config[property];\n var valueType = value && isElement(value) ? 'element' : toType(value);\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new TypeError(componentName.toUpperCase() + \": \" + (\"Option \\\"\" + property + \"\\\" provided type \\\"\" + valueType + \"\\\" \") + (\"but expected type \\\"\" + expectedTypes + \"\\\".\"));\n }\n });\n };\n\n var reflow = function reflow(element) {\n return element.offsetHeight;\n };\n\n var getjQuery = function getjQuery() {\n var _window = window,\n jQuery = _window.jQuery;\n\n if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {\n return jQuery;\n }\n\n return null;\n };\n\n var onDOMContentLoaded = function onDOMContentLoaded(callback) {\n if (document.readyState === 'loading') {\n document.addEventListener('DOMContentLoaded', callback);\n } else {\n callback();\n }\n };\n\n document.documentElement.dir === 'rtl';\n\n var defineJQueryPlugin = function defineJQueryPlugin(name, plugin) {\n onDOMContentLoaded(function () {\n var $ = getjQuery();\n /* istanbul ignore if */\n\n if ($) {\n var JQUERY_NO_CONFLICT = $.fn[name];\n $.fn[name] = plugin.jQueryInterface;\n $.fn[name].Constructor = plugin;\n\n $.fn[name].noConflict = function () {\n $.fn[name] = JQUERY_NO_CONFLICT;\n return plugin.jQueryInterface;\n };\n }\n });\n };\n\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n var NAME = 'collapse';\n var DATA_KEY = 'bs.collapse';\n var EVENT_KEY = \".\" + DATA_KEY;\n var DATA_API_KEY = '.data-api';\n var Default = {\n toggle: true,\n parent: ''\n };\n var DefaultType = {\n toggle: 'boolean',\n parent: '(string|element)'\n };\n var EVENT_SHOW = \"show\" + EVENT_KEY;\n var EVENT_SHOWN = \"shown\" + EVENT_KEY;\n var EVENT_HIDE = \"hide\" + EVENT_KEY;\n var EVENT_HIDDEN = \"hidden\" + EVENT_KEY;\n var EVENT_CLICK_DATA_API = \"click\" + EVENT_KEY + DATA_API_KEY;\n var CLASS_NAME_SHOW = 'show';\n var CLASS_NAME_COLLAPSE = 'collapse';\n var CLASS_NAME_COLLAPSING = 'collapsing';\n var CLASS_NAME_COLLAPSED = 'collapsed';\n var WIDTH = 'width';\n var HEIGHT = 'height';\n var SELECTOR_ACTIVES = '.show, .collapsing';\n var SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"collapse\"]';\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n var Collapse = /*#__PURE__*/function (_BaseComponent) {\n _inheritsLoose(Collapse, _BaseComponent);\n\n function Collapse(element, config) {\n var _this;\n\n _this = _BaseComponent.call(this, element) || this;\n _this._isTransitioning = false;\n _this._config = _this._getConfig(config);\n _this._triggerArray = SelectorEngine__default['default'].find(SELECTOR_DATA_TOGGLE + \"[href=\\\"#\" + element.id + \"\\\"],\" + (SELECTOR_DATA_TOGGLE + \"[data-bs-target=\\\"#\" + element.id + \"\\\"]\"));\n var toggleList = SelectorEngine__default['default'].find(SELECTOR_DATA_TOGGLE);\n\n for (var i = 0, len = toggleList.length; i < len; i++) {\n var elem = toggleList[i];\n var selector = getSelectorFromElement(elem);\n var filterElement = SelectorEngine__default['default'].find(selector).filter(function (foundElem) {\n return foundElem === element;\n });\n\n if (selector !== null && filterElement.length) {\n _this._selector = selector;\n\n _this._triggerArray.push(elem);\n }\n }\n\n _this._parent = _this._config.parent ? _this._getParent() : null;\n\n if (!_this._config.parent) {\n _this._addAriaAndCollapsedClass(_this._element, _this._triggerArray);\n }\n\n if (_this._config.toggle) {\n _this.toggle();\n }\n\n return _this;\n } // Getters\n\n\n var _proto = Collapse.prototype;\n\n // Public\n _proto.toggle = function toggle() {\n if (this._element.classList.contains(CLASS_NAME_SHOW)) {\n this.hide();\n } else {\n this.show();\n }\n };\n\n _proto.show = function show() {\n var _this2 = this;\n\n if (this._isTransitioning || this._element.classList.contains(CLASS_NAME_SHOW)) {\n return;\n }\n\n var actives;\n var activesData;\n\n if (this._parent) {\n actives = SelectorEngine__default['default'].find(SELECTOR_ACTIVES, this._parent).filter(function (elem) {\n if (typeof _this2._config.parent === 'string') {\n return elem.getAttribute('data-bs-parent') === _this2._config.parent;\n }\n\n return elem.classList.contains(CLASS_NAME_COLLAPSE);\n });\n\n if (actives.length === 0) {\n actives = null;\n }\n }\n\n var container = SelectorEngine__default['default'].findOne(this._selector);\n\n if (actives) {\n var tempActiveData = actives.find(function (elem) {\n return container !== elem;\n });\n activesData = tempActiveData ? Data__default['default'].getData(tempActiveData, DATA_KEY) : null;\n\n if (activesData && activesData._isTransitioning) {\n return;\n }\n }\n\n var startEvent = EventHandler__default['default'].trigger(this._element, EVENT_SHOW);\n\n if (startEvent.defaultPrevented) {\n return;\n }\n\n if (actives) {\n actives.forEach(function (elemActive) {\n if (container !== elemActive) {\n Collapse.collapseInterface(elemActive, 'hide');\n }\n\n if (!activesData) {\n Data__default['default'].setData(elemActive, DATA_KEY, null);\n }\n });\n }\n\n var dimension = this._getDimension();\n\n this._element.classList.remove(CLASS_NAME_COLLAPSE);\n\n this._element.classList.add(CLASS_NAME_COLLAPSING);\n\n this._element.style[dimension] = 0;\n\n if (this._triggerArray.length) {\n this._triggerArray.forEach(function (element) {\n element.classList.remove(CLASS_NAME_COLLAPSED);\n element.setAttribute('aria-expanded', true);\n });\n }\n\n this.setTransitioning(true);\n\n var complete = function complete() {\n _this2._element.classList.remove(CLASS_NAME_COLLAPSING);\n\n _this2._element.classList.add(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW);\n\n _this2._element.style[dimension] = '';\n\n _this2.setTransitioning(false);\n\n EventHandler__default['default'].trigger(_this2._element, EVENT_SHOWN);\n };\n\n var capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1);\n var scrollSize = \"scroll\" + capitalizedDimension;\n var transitionDuration = getTransitionDurationFromElement(this._element);\n EventHandler__default['default'].one(this._element, 'transitionend', complete);\n emulateTransitionEnd(this._element, transitionDuration);\n this._element.style[dimension] = this._element[scrollSize] + \"px\";\n };\n\n _proto.hide = function hide() {\n var _this3 = this;\n\n if (this._isTransitioning || !this._element.classList.contains(CLASS_NAME_SHOW)) {\n return;\n }\n\n var startEvent = EventHandler__default['default'].trigger(this._element, EVENT_HIDE);\n\n if (startEvent.defaultPrevented) {\n return;\n }\n\n var dimension = this._getDimension();\n\n this._element.style[dimension] = this._element.getBoundingClientRect()[dimension] + \"px\";\n reflow(this._element);\n\n this._element.classList.add(CLASS_NAME_COLLAPSING);\n\n this._element.classList.remove(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW);\n\n var triggerArrayLength = this._triggerArray.length;\n\n if (triggerArrayLength > 0) {\n for (var i = 0; i < triggerArrayLength; i++) {\n var trigger = this._triggerArray[i];\n var elem = getElementFromSelector(trigger);\n\n if (elem && !elem.classList.contains(CLASS_NAME_SHOW)) {\n trigger.classList.add(CLASS_NAME_COLLAPSED);\n trigger.setAttribute('aria-expanded', false);\n }\n }\n }\n\n this.setTransitioning(true);\n\n var complete = function complete() {\n _this3.setTransitioning(false);\n\n _this3._element.classList.remove(CLASS_NAME_COLLAPSING);\n\n _this3._element.classList.add(CLASS_NAME_COLLAPSE);\n\n EventHandler__default['default'].trigger(_this3._element, EVENT_HIDDEN);\n };\n\n this._element.style[dimension] = '';\n var transitionDuration = getTransitionDurationFromElement(this._element);\n EventHandler__default['default'].one(this._element, 'transitionend', complete);\n emulateTransitionEnd(this._element, transitionDuration);\n };\n\n _proto.setTransitioning = function setTransitioning(isTransitioning) {\n this._isTransitioning = isTransitioning;\n };\n\n _proto.dispose = function dispose() {\n _BaseComponent.prototype.dispose.call(this);\n\n this._config = null;\n this._parent = null;\n this._triggerArray = null;\n this._isTransitioning = null;\n } // Private\n ;\n\n _proto._getConfig = function _getConfig(config) {\n config = _extends({}, Default, config);\n config.toggle = Boolean(config.toggle); // Coerce string values\n\n typeCheckConfig(NAME, config, DefaultType);\n return config;\n };\n\n _proto._getDimension = function _getDimension() {\n return this._element.classList.contains(WIDTH) ? WIDTH : HEIGHT;\n };\n\n _proto._getParent = function _getParent() {\n var _this4 = this;\n\n var parent = this._config.parent;\n\n if (isElement(parent)) {\n // it's a jQuery object\n if (typeof parent.jquery !== 'undefined' || typeof parent[0] !== 'undefined') {\n parent = parent[0];\n }\n } else {\n parent = SelectorEngine__default['default'].findOne(parent);\n }\n\n var selector = SELECTOR_DATA_TOGGLE + \"[data-bs-parent=\\\"\" + parent + \"\\\"]\";\n SelectorEngine__default['default'].find(selector, parent).forEach(function (element) {\n var selected = getElementFromSelector(element);\n\n _this4._addAriaAndCollapsedClass(selected, [element]);\n });\n return parent;\n };\n\n _proto._addAriaAndCollapsedClass = function _addAriaAndCollapsedClass(element, triggerArray) {\n if (!element || !triggerArray.length) {\n return;\n }\n\n var isOpen = element.classList.contains(CLASS_NAME_SHOW);\n triggerArray.forEach(function (elem) {\n if (isOpen) {\n elem.classList.remove(CLASS_NAME_COLLAPSED);\n } else {\n elem.classList.add(CLASS_NAME_COLLAPSED);\n }\n\n elem.setAttribute('aria-expanded', isOpen);\n });\n } // Static\n ;\n\n Collapse.collapseInterface = function collapseInterface(element, config) {\n var data = Data__default['default'].getData(element, DATA_KEY);\n\n var _config = _extends({}, Default, Manipulator__default['default'].getDataAttributes(element), typeof config === 'object' && config ? config : {});\n\n if (!data && _config.toggle && typeof config === 'string' && /show|hide/.test(config)) {\n _config.toggle = false;\n }\n\n if (!data) {\n data = new Collapse(element, _config);\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(\"No method named \\\"\" + config + \"\\\"\");\n }\n\n data[config]();\n }\n };\n\n Collapse.jQueryInterface = function jQueryInterface(config) {\n return this.each(function () {\n Collapse.collapseInterface(this, config);\n });\n };\n\n _createClass(Collapse, null, [{\n key: \"Default\",\n get: function get() {\n return Default;\n }\n }, {\n key: \"DATA_KEY\",\n get: function get() {\n return DATA_KEY;\n }\n }]);\n\n return Collapse;\n }(BaseComponent__default['default']);\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n\n EventHandler__default['default'].on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n // preventDefault only for <a> elements (which change the URL) not inside the collapsible element\n if (event.target.tagName === 'A' || event.delegateTarget && event.delegateTarget.tagName === 'A') {\n event.preventDefault();\n }\n\n var triggerData = Manipulator__default['default'].getDataAttributes(this);\n var selector = getSelectorFromElement(this);\n var selectorElements = SelectorEngine__default['default'].find(selector);\n selectorElements.forEach(function (element) {\n var data = Data__default['default'].getData(element, DATA_KEY);\n var config;\n\n if (data) {\n // update parent attribute\n if (data._parent === null && typeof triggerData.parent === 'string') {\n data._config.parent = triggerData.parent;\n data._parent = data._getParent();\n }\n\n config = 'toggle';\n } else {\n config = triggerData;\n }\n\n Collapse.collapseInterface(element, config);\n });\n });\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Collapse to jQuery only if jQuery is present\n */\n\n defineJQueryPlugin(NAME, Collapse);\n\n return Collapse;\n\n})));\n//# sourceMappingURL=collapse.js.map\n/*!\n * Bootstrap dropdown.js v5.0.0-beta2 (https://getbootstrap.com/)\n * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('@popperjs/core'), require('./dom/data.js'), require('./dom/event-handler.js'), require('./dom/manipulator.js'), require('./dom/selector-engine.js'), require('./base-component.js')) :\n typeof define === 'function' && define.amd ? define(['@popperjs/core', './dom/data', './dom/event-handler', './dom/manipulator', './dom/selector-engine', './base-component'], factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Dropdown = factory(global.Popper, global.Data, global.EventHandler, global.Manipulator, global.SelectorEngine, global.Base));\n}(this, (function (Popper, Data, EventHandler, Manipulator, SelectorEngine, BaseComponent) { 'use strict';\n\n function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }\n\n function _interopNamespace(e) {\n if (e && e.__esModule) return e;\n var n = Object.create(null);\n if (e) {\n Object.keys(e).forEach(function (k) {\n if (k !== 'default') {\n var d = Object.getOwnPropertyDescriptor(e, k);\n Object.defineProperty(n, k, d.get ? d : {\n enumerable: true,\n get: function () {\n return e[k];\n }\n });\n }\n });\n }\n n['default'] = e;\n return Object.freeze(n);\n }\n\n var Popper__namespace = /*#__PURE__*/_interopNamespace(Popper);\n var Data__default = /*#__PURE__*/_interopDefaultLegacy(Data);\n var EventHandler__default = /*#__PURE__*/_interopDefaultLegacy(EventHandler);\n var Manipulator__default = /*#__PURE__*/_interopDefaultLegacy(Manipulator);\n var SelectorEngine__default = /*#__PURE__*/_interopDefaultLegacy(SelectorEngine);\n var BaseComponent__default = /*#__PURE__*/_interopDefaultLegacy(BaseComponent);\n\n function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n }\n\n function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n }\n\n function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n\n _setPrototypeOf(subClass, superClass);\n }\n\n function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n }\n\n /**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-beta2): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n var toType = function toType(obj) {\n if (obj === null || obj === undefined) {\n return \"\" + obj;\n }\n\n return {}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase();\n };\n\n var getSelector = function getSelector(element) {\n var selector = element.getAttribute('data-bs-target');\n\n if (!selector || selector === '#') {\n var hrefAttr = element.getAttribute('href'); // The only valid content that could double as a selector are IDs or classes,\n // so everything starting with `#` or `.`. If a \"real\" URL is used as the selector,\n // `document.querySelector` will rightfully complain it is invalid.\n // See https://github.com/twbs/bootstrap/issues/32273\n\n if (!hrefAttr || !hrefAttr.includes('#') && !hrefAttr.startsWith('.')) {\n return null;\n } // Just in case some CMS puts out a full URL with the anchor appended\n\n\n if (hrefAttr.includes('#') && !hrefAttr.startsWith('#')) {\n hrefAttr = '#' + hrefAttr.split('#')[1];\n }\n\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : null;\n }\n\n return selector;\n };\n\n var getElementFromSelector = function getElementFromSelector(element) {\n var selector = getSelector(element);\n return selector ? document.querySelector(selector) : null;\n };\n\n var isElement = function isElement(obj) {\n return (obj[0] || obj).nodeType;\n };\n\n var typeCheckConfig = function typeCheckConfig(componentName, config, configTypes) {\n Object.keys(configTypes).forEach(function (property) {\n var expectedTypes = configTypes[property];\n var value = config[property];\n var valueType = value && isElement(value) ? 'element' : toType(value);\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new TypeError(componentName.toUpperCase() + \": \" + (\"Option \\\"\" + property + \"\\\" provided type \\\"\" + valueType + \"\\\" \") + (\"but expected type \\\"\" + expectedTypes + \"\\\".\"));\n }\n });\n };\n\n var isVisible = function isVisible(element) {\n if (!element) {\n return false;\n }\n\n if (element.style && element.parentNode && element.parentNode.style) {\n var elementStyle = getComputedStyle(element);\n var parentNodeStyle = getComputedStyle(element.parentNode);\n return elementStyle.display !== 'none' && parentNodeStyle.display !== 'none' && elementStyle.visibility !== 'hidden';\n }\n\n return false;\n };\n\n var noop = function noop() {\n return function () {};\n };\n\n var getjQuery = function getjQuery() {\n var _window = window,\n jQuery = _window.jQuery;\n\n if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {\n return jQuery;\n }\n\n return null;\n };\n\n var onDOMContentLoaded = function onDOMContentLoaded(callback) {\n if (document.readyState === 'loading') {\n document.addEventListener('DOMContentLoaded', callback);\n } else {\n callback();\n }\n };\n\n var isRTL = document.documentElement.dir === 'rtl';\n\n var defineJQueryPlugin = function defineJQueryPlugin(name, plugin) {\n onDOMContentLoaded(function () {\n var $ = getjQuery();\n /* istanbul ignore if */\n\n if ($) {\n var JQUERY_NO_CONFLICT = $.fn[name];\n $.fn[name] = plugin.jQueryInterface;\n $.fn[name].Constructor = plugin;\n\n $.fn[name].noConflict = function () {\n $.fn[name] = JQUERY_NO_CONFLICT;\n return plugin.jQueryInterface;\n };\n }\n });\n };\n\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n var NAME = 'dropdown';\n var DATA_KEY = 'bs.dropdown';\n var EVENT_KEY = \".\" + DATA_KEY;\n var DATA_API_KEY = '.data-api';\n var ESCAPE_KEY = 'Escape';\n var SPACE_KEY = 'Space';\n var TAB_KEY = 'Tab';\n var ARROW_UP_KEY = 'ArrowUp';\n var ARROW_DOWN_KEY = 'ArrowDown';\n var RIGHT_MOUSE_BUTTON = 2; // MouseEvent.button value for the secondary button, usually the right button\n\n var REGEXP_KEYDOWN = new RegExp(ARROW_UP_KEY + \"|\" + ARROW_DOWN_KEY + \"|\" + ESCAPE_KEY);\n var EVENT_HIDE = \"hide\" + EVENT_KEY;\n var EVENT_HIDDEN = \"hidden\" + EVENT_KEY;\n var EVENT_SHOW = \"show\" + EVENT_KEY;\n var EVENT_SHOWN = \"shown\" + EVENT_KEY;\n var EVENT_CLICK = \"click\" + EVENT_KEY;\n var EVENT_CLICK_DATA_API = \"click\" + EVENT_KEY + DATA_API_KEY;\n var EVENT_KEYDOWN_DATA_API = \"keydown\" + EVENT_KEY + DATA_API_KEY;\n var EVENT_KEYUP_DATA_API = \"keyup\" + EVENT_KEY + DATA_API_KEY;\n var CLASS_NAME_DISABLED = 'disabled';\n var CLASS_NAME_SHOW = 'show';\n var CLASS_NAME_DROPUP = 'dropup';\n var CLASS_NAME_DROPEND = 'dropend';\n var CLASS_NAME_DROPSTART = 'dropstart';\n var CLASS_NAME_NAVBAR = 'navbar';\n var SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"dropdown\"]';\n var SELECTOR_FORM_CHILD = '.dropdown form';\n var SELECTOR_MENU = '.dropdown-menu';\n var SELECTOR_NAVBAR_NAV = '.navbar-nav';\n var SELECTOR_VISIBLE_ITEMS = '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)';\n var PLACEMENT_TOP = isRTL ? 'top-end' : 'top-start';\n var PLACEMENT_TOPEND = isRTL ? 'top-start' : 'top-end';\n var PLACEMENT_BOTTOM = isRTL ? 'bottom-end' : 'bottom-start';\n var PLACEMENT_BOTTOMEND = isRTL ? 'bottom-start' : 'bottom-end';\n var PLACEMENT_RIGHT = isRTL ? 'left-start' : 'right-start';\n var PLACEMENT_LEFT = isRTL ? 'right-start' : 'left-start';\n var Default = {\n offset: [0, 2],\n flip: true,\n boundary: 'clippingParents',\n reference: 'toggle',\n display: 'dynamic',\n popperConfig: null\n };\n var DefaultType = {\n offset: '(array|string|function)',\n flip: 'boolean',\n boundary: '(string|element)',\n reference: '(string|element|object)',\n display: 'string',\n popperConfig: '(null|object|function)'\n };\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n var Dropdown = /*#__PURE__*/function (_BaseComponent) {\n _inheritsLoose(Dropdown, _BaseComponent);\n\n function Dropdown(element, config) {\n var _this;\n\n _this = _BaseComponent.call(this, element) || this;\n _this._popper = null;\n _this._config = _this._getConfig(config);\n _this._menu = _this._getMenuElement();\n _this._inNavbar = _this._detectNavbar();\n\n _this._addEventListeners();\n\n return _this;\n } // Getters\n\n\n var _proto = Dropdown.prototype;\n\n // Public\n _proto.toggle = function toggle() {\n if (this._element.disabled || this._element.classList.contains(CLASS_NAME_DISABLED)) {\n return;\n }\n\n var isActive = this._element.classList.contains(CLASS_NAME_SHOW);\n\n Dropdown.clearMenus();\n\n if (isActive) {\n return;\n }\n\n this.show();\n };\n\n _proto.show = function show() {\n if (this._element.disabled || this._element.classList.contains(CLASS_NAME_DISABLED) || this._menu.classList.contains(CLASS_NAME_SHOW)) {\n return;\n }\n\n var parent = Dropdown.getParentFromElement(this._element);\n var relatedTarget = {\n relatedTarget: this._element\n };\n var showEvent = EventHandler__default['default'].trigger(this._element, EVENT_SHOW, relatedTarget);\n\n if (showEvent.defaultPrevented) {\n return;\n } // Totally disable Popper for Dropdowns in Navbar\n\n\n if (this._inNavbar) {\n Manipulator__default['default'].setDataAttribute(this._menu, 'popper', 'none');\n } else {\n if (typeof Popper__namespace === 'undefined') {\n throw new TypeError('Bootstrap\\'s dropdowns require Popper (https://popper.js.org)');\n }\n\n var referenceElement = this._element;\n\n if (this._config.reference === 'parent') {\n referenceElement = parent;\n } else if (isElement(this._config.reference)) {\n referenceElement = this._config.reference; // Check if it's jQuery element\n\n if (typeof this._config.reference.jquery !== 'undefined') {\n referenceElement = this._config.reference[0];\n }\n } else if (typeof this._config.reference === 'object') {\n referenceElement = this._config.reference;\n }\n\n var popperConfig = this._getPopperConfig();\n\n var isDisplayStatic = popperConfig.modifiers.find(function (modifier) {\n return modifier.name === 'applyStyles' && modifier.enabled === false;\n });\n this._popper = Popper.createPopper(referenceElement, this._menu, popperConfig);\n\n if (isDisplayStatic) {\n Manipulator__default['default'].setDataAttribute(this._menu, 'popper', 'static');\n }\n } // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n\n\n if ('ontouchstart' in document.documentElement && !parent.closest(SELECTOR_NAVBAR_NAV)) {\n var _ref;\n\n (_ref = []).concat.apply(_ref, document.body.children).forEach(function (elem) {\n return EventHandler__default['default'].on(elem, 'mouseover', null, noop());\n });\n }\n\n this._element.focus();\n\n this._element.setAttribute('aria-expanded', true);\n\n this._menu.classList.toggle(CLASS_NAME_SHOW);\n\n this._element.classList.toggle(CLASS_NAME_SHOW);\n\n EventHandler__default['default'].trigger(this._element, EVENT_SHOWN, relatedTarget);\n };\n\n _proto.hide = function hide() {\n if (this._element.disabled || this._element.classList.contains(CLASS_NAME_DISABLED) || !this._menu.classList.contains(CLASS_NAME_SHOW)) {\n return;\n }\n\n var relatedTarget = {\n relatedTarget: this._element\n };\n var hideEvent = EventHandler__default['default'].trigger(this._element, EVENT_HIDE, relatedTarget);\n\n if (hideEvent.defaultPrevented) {\n return;\n }\n\n if (this._popper) {\n this._popper.destroy();\n }\n\n this._menu.classList.toggle(CLASS_NAME_SHOW);\n\n this._element.classList.toggle(CLASS_NAME_SHOW);\n\n Manipulator__default['default'].removeDataAttribute(this._menu, 'popper');\n EventHandler__default['default'].trigger(this._element, EVENT_HIDDEN, relatedTarget);\n };\n\n _proto.dispose = function dispose() {\n _BaseComponent.prototype.dispose.call(this);\n\n EventHandler__default['default'].off(this._element, EVENT_KEY);\n this._menu = null;\n\n if (this._popper) {\n this._popper.destroy();\n\n this._popper = null;\n }\n };\n\n _proto.update = function update() {\n this._inNavbar = this._detectNavbar();\n\n if (this._popper) {\n this._popper.update();\n }\n } // Private\n ;\n\n _proto._addEventListeners = function _addEventListeners() {\n var _this2 = this;\n\n EventHandler__default['default'].on(this._element, EVENT_CLICK, function (event) {\n event.preventDefault();\n event.stopPropagation();\n\n _this2.toggle();\n });\n };\n\n _proto._getConfig = function _getConfig(config) {\n config = _extends({}, this.constructor.Default, Manipulator__default['default'].getDataAttributes(this._element), config);\n typeCheckConfig(NAME, config, this.constructor.DefaultType);\n\n if (typeof config.reference === 'object' && !isElement(config.reference) && typeof config.reference.getBoundingClientRect !== 'function') {\n // Popper virtual elements require a getBoundingClientRect method\n throw new TypeError(NAME.toUpperCase() + \": Option \\\"reference\\\" provided type \\\"object\\\" without a required \\\"getBoundingClientRect\\\" method.\");\n }\n\n return config;\n };\n\n _proto._getMenuElement = function _getMenuElement() {\n return SelectorEngine__default['default'].next(this._element, SELECTOR_MENU)[0];\n };\n\n _proto._getPlacement = function _getPlacement() {\n var parentDropdown = this._element.parentNode;\n\n if (parentDropdown.classList.contains(CLASS_NAME_DROPEND)) {\n return PLACEMENT_RIGHT;\n }\n\n if (parentDropdown.classList.contains(CLASS_NAME_DROPSTART)) {\n return PLACEMENT_LEFT;\n } // We need to trim the value because custom properties can also include spaces\n\n\n var isEnd = getComputedStyle(this._menu).getPropertyValue('--bs-position').trim() === 'end';\n\n if (parentDropdown.classList.contains(CLASS_NAME_DROPUP)) {\n return isEnd ? PLACEMENT_TOPEND : PLACEMENT_TOP;\n }\n\n return isEnd ? PLACEMENT_BOTTOMEND : PLACEMENT_BOTTOM;\n };\n\n _proto._detectNavbar = function _detectNavbar() {\n return this._element.closest(\".\" + CLASS_NAME_NAVBAR) !== null;\n };\n\n _proto._getOffset = function _getOffset() {\n var _this3 = this;\n\n var offset = this._config.offset;\n\n if (typeof offset === 'string') {\n return offset.split(',').map(function (val) {\n return Number.parseInt(val, 10);\n });\n }\n\n if (typeof offset === 'function') {\n return function (popperData) {\n return offset(popperData, _this3._element);\n };\n }\n\n return offset;\n };\n\n _proto._getPopperConfig = function _getPopperConfig() {\n var defaultBsPopperConfig = {\n placement: this._getPlacement(),\n modifiers: [{\n name: 'preventOverflow',\n options: {\n altBoundary: this._config.flip,\n boundary: this._config.boundary\n }\n }, {\n name: 'offset',\n options: {\n offset: this._getOffset()\n }\n }]\n }; // Disable Popper if we have a static display\n\n if (this._config.display === 'static') {\n defaultBsPopperConfig.modifiers = [{\n name: 'applyStyles',\n enabled: false\n }];\n }\n\n return _extends({}, defaultBsPopperConfig, typeof this._config.popperConfig === 'function' ? this._config.popperConfig(defaultBsPopperConfig) : this._config.popperConfig);\n } // Static\n ;\n\n Dropdown.dropdownInterface = function dropdownInterface(element, config) {\n var data = Data__default['default'].getData(element, DATA_KEY);\n\n var _config = typeof config === 'object' ? config : null;\n\n if (!data) {\n data = new Dropdown(element, _config);\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(\"No method named \\\"\" + config + \"\\\"\");\n }\n\n data[config]();\n }\n };\n\n Dropdown.jQueryInterface = function jQueryInterface(config) {\n return this.each(function () {\n Dropdown.dropdownInterface(this, config);\n });\n };\n\n Dropdown.clearMenus = function clearMenus(event) {\n if (event && (event.button === RIGHT_MOUSE_BUTTON || event.type === 'keyup' && event.key !== TAB_KEY)) {\n return;\n }\n\n var toggles = SelectorEngine__default['default'].find(SELECTOR_DATA_TOGGLE);\n\n for (var i = 0, len = toggles.length; i < len; i++) {\n var context = Data__default['default'].getData(toggles[i], DATA_KEY);\n var relatedTarget = {\n relatedTarget: toggles[i]\n };\n\n if (event && event.type === 'click') {\n relatedTarget.clickEvent = event;\n }\n\n if (!context) {\n continue;\n }\n\n var dropdownMenu = context._menu;\n\n if (!toggles[i].classList.contains(CLASS_NAME_SHOW)) {\n continue;\n }\n\n if (event && (event.type === 'click' && /input|textarea/i.test(event.target.tagName) || event.type === 'keyup' && event.key === TAB_KEY) && dropdownMenu.contains(event.target)) {\n continue;\n }\n\n var hideEvent = EventHandler__default['default'].trigger(toggles[i], EVENT_HIDE, relatedTarget);\n\n if (hideEvent.defaultPrevented) {\n continue;\n } // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n\n\n if ('ontouchstart' in document.documentElement) {\n var _ref2;\n\n (_ref2 = []).concat.apply(_ref2, document.body.children).forEach(function (elem) {\n return EventHandler__default['default'].off(elem, 'mouseover', null, noop());\n });\n }\n\n toggles[i].setAttribute('aria-expanded', 'false');\n\n if (context._popper) {\n context._popper.destroy();\n }\n\n dropdownMenu.classList.remove(CLASS_NAME_SHOW);\n toggles[i].classList.remove(CLASS_NAME_SHOW);\n Manipulator__default['default'].removeDataAttribute(dropdownMenu, 'popper');\n EventHandler__default['default'].trigger(toggles[i], EVENT_HIDDEN, relatedTarget);\n }\n };\n\n Dropdown.getParentFromElement = function getParentFromElement(element) {\n return getElementFromSelector(element) || element.parentNode;\n };\n\n Dropdown.dataApiKeydownHandler = function dataApiKeydownHandler(event) {\n // If not input/textarea:\n // - And not a key in REGEXP_KEYDOWN => not a dropdown command\n // If input/textarea:\n // - If space key => not a dropdown command\n // - If key is other than escape\n // - If key is not up or down => not a dropdown command\n // - If trigger inside the menu => not a dropdown command\n if (/input|textarea/i.test(event.target.tagName) ? event.key === SPACE_KEY || event.key !== ESCAPE_KEY && (event.key !== ARROW_DOWN_KEY && event.key !== ARROW_UP_KEY || event.target.closest(SELECTOR_MENU)) : !REGEXP_KEYDOWN.test(event.key)) {\n return;\n }\n\n event.preventDefault();\n event.stopPropagation();\n\n if (this.disabled || this.classList.contains(CLASS_NAME_DISABLED)) {\n return;\n }\n\n var parent = Dropdown.getParentFromElement(this);\n var isActive = this.classList.contains(CLASS_NAME_SHOW);\n\n if (event.key === ESCAPE_KEY) {\n var button = this.matches(SELECTOR_DATA_TOGGLE) ? this : SelectorEngine__default['default'].prev(this, SELECTOR_DATA_TOGGLE)[0];\n button.focus();\n Dropdown.clearMenus();\n return;\n }\n\n if (!isActive && (event.key === ARROW_UP_KEY || event.key === ARROW_DOWN_KEY)) {\n var _button = this.matches(SELECTOR_DATA_TOGGLE) ? this : SelectorEngine__default['default'].prev(this, SELECTOR_DATA_TOGGLE)[0];\n\n _button.click();\n\n return;\n }\n\n if (!isActive || event.key === SPACE_KEY) {\n Dropdown.clearMenus();\n return;\n }\n\n var items = SelectorEngine__default['default'].find(SELECTOR_VISIBLE_ITEMS, parent).filter(isVisible);\n\n if (!items.length) {\n return;\n }\n\n var index = items.indexOf(event.target); // Up\n\n if (event.key === ARROW_UP_KEY && index > 0) {\n index--;\n } // Down\n\n\n if (event.key === ARROW_DOWN_KEY && index < items.length - 1) {\n index++;\n } // index is -1 if the first keydown is an ArrowUp\n\n\n index = index === -1 ? 0 : index;\n items[index].focus();\n };\n\n _createClass(Dropdown, null, [{\n key: \"Default\",\n get: function get() {\n return Default;\n }\n }, {\n key: \"DefaultType\",\n get: function get() {\n return DefaultType;\n }\n }, {\n key: \"DATA_KEY\",\n get: function get() {\n return DATA_KEY;\n }\n }]);\n\n return Dropdown;\n }(BaseComponent__default['default']);\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n\n EventHandler__default['default'].on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_DATA_TOGGLE, Dropdown.dataApiKeydownHandler);\n EventHandler__default['default'].on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_MENU, Dropdown.dataApiKeydownHandler);\n EventHandler__default['default'].on(document, EVENT_CLICK_DATA_API, Dropdown.clearMenus);\n EventHandler__default['default'].on(document, EVENT_KEYUP_DATA_API, Dropdown.clearMenus);\n EventHandler__default['default'].on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n event.preventDefault();\n event.stopPropagation();\n Dropdown.dropdownInterface(this, 'toggle');\n });\n EventHandler__default['default'].on(document, EVENT_CLICK_DATA_API, SELECTOR_FORM_CHILD, function (e) {\n return e.stopPropagation();\n });\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Dropdown to jQuery only if jQuery is present\n */\n\n defineJQueryPlugin(NAME, Dropdown);\n\n return Dropdown;\n\n})));\n//# sourceMappingURL=dropdown.js.map\n/*!\n * Bootstrap modal.js v5.0.0-beta2 (https://getbootstrap.com/)\n * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./dom/data.js'), require('./dom/event-handler.js'), require('./dom/manipulator.js'), require('./dom/selector-engine.js'), require('./base-component.js')) :\n typeof define === 'function' && define.amd ? define(['./dom/data', './dom/event-handler', './dom/manipulator', './dom/selector-engine', './base-component'], factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Modal = factory(global.Data, global.EventHandler, global.Manipulator, global.SelectorEngine, global.Base));\n}(this, (function (Data, EventHandler, Manipulator, SelectorEngine, BaseComponent) { 'use strict';\n\n function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }\n\n var Data__default = /*#__PURE__*/_interopDefaultLegacy(Data);\n var EventHandler__default = /*#__PURE__*/_interopDefaultLegacy(EventHandler);\n var Manipulator__default = /*#__PURE__*/_interopDefaultLegacy(Manipulator);\n var SelectorEngine__default = /*#__PURE__*/_interopDefaultLegacy(SelectorEngine);\n var BaseComponent__default = /*#__PURE__*/_interopDefaultLegacy(BaseComponent);\n\n function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n }\n\n function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n }\n\n function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n\n _setPrototypeOf(subClass, superClass);\n }\n\n function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n }\n\n /**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-beta2): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n var MILLISECONDS_MULTIPLIER = 1000;\n var TRANSITION_END = 'transitionend'; // Shoutout AngusCroll (https://goo.gl/pxwQGp)\n\n var toType = function toType(obj) {\n if (obj === null || obj === undefined) {\n return \"\" + obj;\n }\n\n return {}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase();\n };\n\n var getSelector = function getSelector(element) {\n var selector = element.getAttribute('data-bs-target');\n\n if (!selector || selector === '#') {\n var hrefAttr = element.getAttribute('href'); // The only valid content that could double as a selector are IDs or classes,\n // so everything starting with `#` or `.`. If a \"real\" URL is used as the selector,\n // `document.querySelector` will rightfully complain it is invalid.\n // See https://github.com/twbs/bootstrap/issues/32273\n\n if (!hrefAttr || !hrefAttr.includes('#') && !hrefAttr.startsWith('.')) {\n return null;\n } // Just in case some CMS puts out a full URL with the anchor appended\n\n\n if (hrefAttr.includes('#') && !hrefAttr.startsWith('#')) {\n hrefAttr = '#' + hrefAttr.split('#')[1];\n }\n\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : null;\n }\n\n return selector;\n };\n\n var getElementFromSelector = function getElementFromSelector(element) {\n var selector = getSelector(element);\n return selector ? document.querySelector(selector) : null;\n };\n\n var getTransitionDurationFromElement = function getTransitionDurationFromElement(element) {\n if (!element) {\n return 0;\n } // Get transition-duration of the element\n\n\n var _window$getComputedSt = window.getComputedStyle(element),\n transitionDuration = _window$getComputedSt.transitionDuration,\n transitionDelay = _window$getComputedSt.transitionDelay;\n\n var floatTransitionDuration = Number.parseFloat(transitionDuration);\n var floatTransitionDelay = Number.parseFloat(transitionDelay); // Return 0 if element or transition duration is not found\n\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0;\n } // If multiple durations are defined, take the first\n\n\n transitionDuration = transitionDuration.split(',')[0];\n transitionDelay = transitionDelay.split(',')[0];\n return (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER;\n };\n\n var triggerTransitionEnd = function triggerTransitionEnd(element) {\n element.dispatchEvent(new Event(TRANSITION_END));\n };\n\n var isElement = function isElement(obj) {\n return (obj[0] || obj).nodeType;\n };\n\n var emulateTransitionEnd = function emulateTransitionEnd(element, duration) {\n var called = false;\n var durationPadding = 5;\n var emulatedDuration = duration + durationPadding;\n\n function listener() {\n called = true;\n element.removeEventListener(TRANSITION_END, listener);\n }\n\n element.addEventListener(TRANSITION_END, listener);\n setTimeout(function () {\n if (!called) {\n triggerTransitionEnd(element);\n }\n }, emulatedDuration);\n };\n\n var typeCheckConfig = function typeCheckConfig(componentName, config, configTypes) {\n Object.keys(configTypes).forEach(function (property) {\n var expectedTypes = configTypes[property];\n var value = config[property];\n var valueType = value && isElement(value) ? 'element' : toType(value);\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new TypeError(componentName.toUpperCase() + \": \" + (\"Option \\\"\" + property + \"\\\" provided type \\\"\" + valueType + \"\\\" \") + (\"but expected type \\\"\" + expectedTypes + \"\\\".\"));\n }\n });\n };\n\n var isVisible = function isVisible(element) {\n if (!element) {\n return false;\n }\n\n if (element.style && element.parentNode && element.parentNode.style) {\n var elementStyle = getComputedStyle(element);\n var parentNodeStyle = getComputedStyle(element.parentNode);\n return elementStyle.display !== 'none' && parentNodeStyle.display !== 'none' && elementStyle.visibility !== 'hidden';\n }\n\n return false;\n };\n\n var reflow = function reflow(element) {\n return element.offsetHeight;\n };\n\n var getjQuery = function getjQuery() {\n var _window = window,\n jQuery = _window.jQuery;\n\n if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {\n return jQuery;\n }\n\n return null;\n };\n\n var onDOMContentLoaded = function onDOMContentLoaded(callback) {\n if (document.readyState === 'loading') {\n document.addEventListener('DOMContentLoaded', callback);\n } else {\n callback();\n }\n };\n\n var isRTL = document.documentElement.dir === 'rtl';\n\n var defineJQueryPlugin = function defineJQueryPlugin(name, plugin) {\n onDOMContentLoaded(function () {\n var $ = getjQuery();\n /* istanbul ignore if */\n\n if ($) {\n var JQUERY_NO_CONFLICT = $.fn[name];\n $.fn[name] = plugin.jQueryInterface;\n $.fn[name].Constructor = plugin;\n\n $.fn[name].noConflict = function () {\n $.fn[name] = JQUERY_NO_CONFLICT;\n return plugin.jQueryInterface;\n };\n }\n });\n };\n\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n var NAME = 'modal';\n var DATA_KEY = 'bs.modal';\n var EVENT_KEY = \".\" + DATA_KEY;\n var DATA_API_KEY = '.data-api';\n var ESCAPE_KEY = 'Escape';\n var Default = {\n backdrop: true,\n keyboard: true,\n focus: true\n };\n var DefaultType = {\n backdrop: '(boolean|string)',\n keyboard: 'boolean',\n focus: 'boolean'\n };\n var EVENT_HIDE = \"hide\" + EVENT_KEY;\n var EVENT_HIDE_PREVENTED = \"hidePrevented\" + EVENT_KEY;\n var EVENT_HIDDEN = \"hidden\" + EVENT_KEY;\n var EVENT_SHOW = \"show\" + EVENT_KEY;\n var EVENT_SHOWN = \"shown\" + EVENT_KEY;\n var EVENT_FOCUSIN = \"focusin\" + EVENT_KEY;\n var EVENT_RESIZE = \"resize\" + EVENT_KEY;\n var EVENT_CLICK_DISMISS = \"click.dismiss\" + EVENT_KEY;\n var EVENT_KEYDOWN_DISMISS = \"keydown.dismiss\" + EVENT_KEY;\n var EVENT_MOUSEUP_DISMISS = \"mouseup.dismiss\" + EVENT_KEY;\n var EVENT_MOUSEDOWN_DISMISS = \"mousedown.dismiss\" + EVENT_KEY;\n var EVENT_CLICK_DATA_API = \"click\" + EVENT_KEY + DATA_API_KEY;\n var CLASS_NAME_SCROLLBAR_MEASURER = 'modal-scrollbar-measure';\n var CLASS_NAME_BACKDROP = 'modal-backdrop';\n var CLASS_NAME_OPEN = 'modal-open';\n var CLASS_NAME_FADE = 'fade';\n var CLASS_NAME_SHOW = 'show';\n var CLASS_NAME_STATIC = 'modal-static';\n var SELECTOR_DIALOG = '.modal-dialog';\n var SELECTOR_MODAL_BODY = '.modal-body';\n var SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"modal\"]';\n var SELECTOR_DATA_DISMISS = '[data-bs-dismiss=\"modal\"]';\n var SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top';\n var SELECTOR_STICKY_CONTENT = '.sticky-top';\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n var Modal = /*#__PURE__*/function (_BaseComponent) {\n _inheritsLoose(Modal, _BaseComponent);\n\n function Modal(element, config) {\n var _this;\n\n _this = _BaseComponent.call(this, element) || this;\n _this._config = _this._getConfig(config);\n _this._dialog = SelectorEngine__default['default'].findOne(SELECTOR_DIALOG, element);\n _this._backdrop = null;\n _this._isShown = false;\n _this._isBodyOverflowing = false;\n _this._ignoreBackdropClick = false;\n _this._isTransitioning = false;\n _this._scrollbarWidth = 0;\n return _this;\n } // Getters\n\n\n var _proto = Modal.prototype;\n\n // Public\n _proto.toggle = function toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget);\n };\n\n _proto.show = function show(relatedTarget) {\n var _this2 = this;\n\n if (this._isShown || this._isTransitioning) {\n return;\n }\n\n if (this._element.classList.contains(CLASS_NAME_FADE)) {\n this._isTransitioning = true;\n }\n\n var showEvent = EventHandler__default['default'].trigger(this._element, EVENT_SHOW, {\n relatedTarget: relatedTarget\n });\n\n if (this._isShown || showEvent.defaultPrevented) {\n return;\n }\n\n this._isShown = true;\n\n this._checkScrollbar();\n\n this._setScrollbar();\n\n this._adjustDialog();\n\n this._setEscapeEvent();\n\n this._setResizeEvent();\n\n EventHandler__default['default'].on(this._element, EVENT_CLICK_DISMISS, SELECTOR_DATA_DISMISS, function (event) {\n return _this2.hide(event);\n });\n EventHandler__default['default'].on(this._dialog, EVENT_MOUSEDOWN_DISMISS, function () {\n EventHandler__default['default'].one(_this2._element, EVENT_MOUSEUP_DISMISS, function (event) {\n if (event.target === _this2._element) {\n _this2._ignoreBackdropClick = true;\n }\n });\n });\n\n this._showBackdrop(function () {\n return _this2._showElement(relatedTarget);\n });\n };\n\n _proto.hide = function hide(event) {\n var _this3 = this;\n\n if (event) {\n event.preventDefault();\n }\n\n if (!this._isShown || this._isTransitioning) {\n return;\n }\n\n var hideEvent = EventHandler__default['default'].trigger(this._element, EVENT_HIDE);\n\n if (hideEvent.defaultPrevented) {\n return;\n }\n\n this._isShown = false;\n\n var transition = this._element.classList.contains(CLASS_NAME_FADE);\n\n if (transition) {\n this._isTransitioning = true;\n }\n\n this._setEscapeEvent();\n\n this._setResizeEvent();\n\n EventHandler__default['default'].off(document, EVENT_FOCUSIN);\n\n this._element.classList.remove(CLASS_NAME_SHOW);\n\n EventHandler__default['default'].off(this._element, EVENT_CLICK_DISMISS);\n EventHandler__default['default'].off(this._dialog, EVENT_MOUSEDOWN_DISMISS);\n\n if (transition) {\n var transitionDuration = getTransitionDurationFromElement(this._element);\n EventHandler__default['default'].one(this._element, 'transitionend', function (event) {\n return _this3._hideModal(event);\n });\n emulateTransitionEnd(this._element, transitionDuration);\n } else {\n this._hideModal();\n }\n };\n\n _proto.dispose = function dispose() {\n [window, this._element, this._dialog].forEach(function (htmlElement) {\n return EventHandler__default['default'].off(htmlElement, EVENT_KEY);\n });\n\n _BaseComponent.prototype.dispose.call(this);\n /**\n * `document` has 2 events `EVENT_FOCUSIN` and `EVENT_CLICK_DATA_API`\n * Do not move `document` in `htmlElements` array\n * It will remove `EVENT_CLICK_DATA_API` event that should remain\n */\n\n\n EventHandler__default['default'].off(document, EVENT_FOCUSIN);\n this._config = null;\n this._dialog = null;\n this._backdrop = null;\n this._isShown = null;\n this._isBodyOverflowing = null;\n this._ignoreBackdropClick = null;\n this._isTransitioning = null;\n this._scrollbarWidth = null;\n };\n\n _proto.handleUpdate = function handleUpdate() {\n this._adjustDialog();\n } // Private\n ;\n\n _proto._getConfig = function _getConfig(config) {\n config = _extends({}, Default, config);\n typeCheckConfig(NAME, config, DefaultType);\n return config;\n };\n\n _proto._showElement = function _showElement(relatedTarget) {\n var _this4 = this;\n\n var transition = this._element.classList.contains(CLASS_NAME_FADE);\n\n var modalBody = SelectorEngine__default['default'].findOne(SELECTOR_MODAL_BODY, this._dialog);\n\n if (!this._element.parentNode || this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {\n // Don't move modal's DOM position\n document.body.appendChild(this._element);\n }\n\n this._element.style.display = 'block';\n\n this._element.removeAttribute('aria-hidden');\n\n this._element.setAttribute('aria-modal', true);\n\n this._element.setAttribute('role', 'dialog');\n\n this._element.scrollTop = 0;\n\n if (modalBody) {\n modalBody.scrollTop = 0;\n }\n\n if (transition) {\n reflow(this._element);\n }\n\n this._element.classList.add(CLASS_NAME_SHOW);\n\n if (this._config.focus) {\n this._enforceFocus();\n }\n\n var transitionComplete = function transitionComplete() {\n if (_this4._config.focus) {\n _this4._element.focus();\n }\n\n _this4._isTransitioning = false;\n EventHandler__default['default'].trigger(_this4._element, EVENT_SHOWN, {\n relatedTarget: relatedTarget\n });\n };\n\n if (transition) {\n var transitionDuration = getTransitionDurationFromElement(this._dialog);\n EventHandler__default['default'].one(this._dialog, 'transitionend', transitionComplete);\n emulateTransitionEnd(this._dialog, transitionDuration);\n } else {\n transitionComplete();\n }\n };\n\n _proto._enforceFocus = function _enforceFocus() {\n var _this5 = this;\n\n EventHandler__default['default'].off(document, EVENT_FOCUSIN); // guard against infinite focus loop\n\n EventHandler__default['default'].on(document, EVENT_FOCUSIN, function (event) {\n if (document !== event.target && _this5._element !== event.target && !_this5._element.contains(event.target)) {\n _this5._element.focus();\n }\n });\n };\n\n _proto._setEscapeEvent = function _setEscapeEvent() {\n var _this6 = this;\n\n if (this._isShown) {\n EventHandler__default['default'].on(this._element, EVENT_KEYDOWN_DISMISS, function (event) {\n if (_this6._config.keyboard && event.key === ESCAPE_KEY) {\n event.preventDefault();\n\n _this6.hide();\n } else if (!_this6._config.keyboard && event.key === ESCAPE_KEY) {\n _this6._triggerBackdropTransition();\n }\n });\n } else {\n EventHandler__default['default'].off(this._element, EVENT_KEYDOWN_DISMISS);\n }\n };\n\n _proto._setResizeEvent = function _setResizeEvent() {\n var _this7 = this;\n\n if (this._isShown) {\n EventHandler__default['default'].on(window, EVENT_RESIZE, function () {\n return _this7._adjustDialog();\n });\n } else {\n EventHandler__default['default'].off(window, EVENT_RESIZE);\n }\n };\n\n _proto._hideModal = function _hideModal() {\n var _this8 = this;\n\n this._element.style.display = 'none';\n\n this._element.setAttribute('aria-hidden', true);\n\n this._element.removeAttribute('aria-modal');\n\n this._element.removeAttribute('role');\n\n this._isTransitioning = false;\n\n this._showBackdrop(function () {\n document.body.classList.remove(CLASS_NAME_OPEN);\n\n _this8._resetAdjustments();\n\n _this8._resetScrollbar();\n\n EventHandler__default['default'].trigger(_this8._element, EVENT_HIDDEN);\n });\n };\n\n _proto._removeBackdrop = function _removeBackdrop() {\n this._backdrop.parentNode.removeChild(this._backdrop);\n\n this._backdrop = null;\n };\n\n _proto._showBackdrop = function _showBackdrop(callback) {\n var _this9 = this;\n\n var animate = this._element.classList.contains(CLASS_NAME_FADE) ? CLASS_NAME_FADE : '';\n\n if (this._isShown && this._config.backdrop) {\n this._backdrop = document.createElement('div');\n this._backdrop.className = CLASS_NAME_BACKDROP;\n\n if (animate) {\n this._backdrop.classList.add(animate);\n }\n\n document.body.appendChild(this._backdrop);\n EventHandler__default['default'].on(this._element, EVENT_CLICK_DISMISS, function (event) {\n if (_this9._ignoreBackdropClick) {\n _this9._ignoreBackdropClick = false;\n return;\n }\n\n if (event.target !== event.currentTarget) {\n return;\n }\n\n if (_this9._config.backdrop === 'static') {\n _this9._triggerBackdropTransition();\n } else {\n _this9.hide();\n }\n });\n\n if (animate) {\n reflow(this._backdrop);\n }\n\n this._backdrop.classList.add(CLASS_NAME_SHOW);\n\n if (!animate) {\n callback();\n return;\n }\n\n var backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop);\n EventHandler__default['default'].one(this._backdrop, 'transitionend', callback);\n emulateTransitionEnd(this._backdrop, backdropTransitionDuration);\n } else if (!this._isShown && this._backdrop) {\n this._backdrop.classList.remove(CLASS_NAME_SHOW);\n\n var callbackRemove = function callbackRemove() {\n _this9._removeBackdrop();\n\n callback();\n };\n\n if (this._element.classList.contains(CLASS_NAME_FADE)) {\n var _backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop);\n\n EventHandler__default['default'].one(this._backdrop, 'transitionend', callbackRemove);\n emulateTransitionEnd(this._backdrop, _backdropTransitionDuration);\n } else {\n callbackRemove();\n }\n } else {\n callback();\n }\n };\n\n _proto._triggerBackdropTransition = function _triggerBackdropTransition() {\n var _this10 = this;\n\n var hideEvent = EventHandler__default['default'].trigger(this._element, EVENT_HIDE_PREVENTED);\n\n if (hideEvent.defaultPrevented) {\n return;\n }\n\n var isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;\n\n if (!isModalOverflowing) {\n this._element.style.overflowY = 'hidden';\n }\n\n this._element.classList.add(CLASS_NAME_STATIC);\n\n var modalTransitionDuration = getTransitionDurationFromElement(this._dialog);\n EventHandler__default['default'].off(this._element, 'transitionend');\n EventHandler__default['default'].one(this._element, 'transitionend', function () {\n _this10._element.classList.remove(CLASS_NAME_STATIC);\n\n if (!isModalOverflowing) {\n EventHandler__default['default'].one(_this10._element, 'transitionend', function () {\n _this10._element.style.overflowY = '';\n });\n emulateTransitionEnd(_this10._element, modalTransitionDuration);\n }\n });\n emulateTransitionEnd(this._element, modalTransitionDuration);\n\n this._element.focus();\n } // ----------------------------------------------------------------------\n // the following methods are used to handle overflowing modals\n // ----------------------------------------------------------------------\n ;\n\n _proto._adjustDialog = function _adjustDialog() {\n var isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;\n\n if (!this._isBodyOverflowing && isModalOverflowing && !isRTL || this._isBodyOverflowing && !isModalOverflowing && isRTL) {\n this._element.style.paddingLeft = this._scrollbarWidth + \"px\";\n }\n\n if (this._isBodyOverflowing && !isModalOverflowing && !isRTL || !this._isBodyOverflowing && isModalOverflowing && isRTL) {\n this._element.style.paddingRight = this._scrollbarWidth + \"px\";\n }\n };\n\n _proto._resetAdjustments = function _resetAdjustments() {\n this._element.style.paddingLeft = '';\n this._element.style.paddingRight = '';\n };\n\n _proto._checkScrollbar = function _checkScrollbar() {\n var rect = document.body.getBoundingClientRect();\n this._isBodyOverflowing = Math.round(rect.left + rect.right) < window.innerWidth;\n this._scrollbarWidth = this._getScrollbarWidth();\n };\n\n _proto._setScrollbar = function _setScrollbar() {\n var _this11 = this;\n\n if (this._isBodyOverflowing) {\n this._setElementAttributes(SELECTOR_FIXED_CONTENT, 'paddingRight', function (calculatedValue) {\n return calculatedValue + _this11._scrollbarWidth;\n });\n\n this._setElementAttributes(SELECTOR_STICKY_CONTENT, 'marginRight', function (calculatedValue) {\n return calculatedValue - _this11._scrollbarWidth;\n });\n\n this._setElementAttributes('body', 'paddingRight', function (calculatedValue) {\n return calculatedValue + _this11._scrollbarWidth;\n });\n }\n\n document.body.classList.add(CLASS_NAME_OPEN);\n };\n\n _proto._setElementAttributes = function _setElementAttributes(selector, styleProp, callback) {\n SelectorEngine__default['default'].find(selector).forEach(function (element) {\n var actualValue = element.style[styleProp];\n var calculatedValue = window.getComputedStyle(element)[styleProp];\n Manipulator__default['default'].setDataAttribute(element, styleProp, actualValue);\n element.style[styleProp] = callback(Number.parseFloat(calculatedValue)) + 'px';\n });\n };\n\n _proto._resetScrollbar = function _resetScrollbar() {\n this._resetElementAttributes(SELECTOR_FIXED_CONTENT, 'paddingRight');\n\n this._resetElementAttributes(SELECTOR_STICKY_CONTENT, 'marginRight');\n\n this._resetElementAttributes('body', 'paddingRight');\n };\n\n _proto._resetElementAttributes = function _resetElementAttributes(selector, styleProp) {\n SelectorEngine__default['default'].find(selector).forEach(function (element) {\n var value = Manipulator__default['default'].getDataAttribute(element, styleProp);\n\n if (typeof value === 'undefined' && element === document.body) {\n element.style[styleProp] = '';\n } else {\n Manipulator__default['default'].removeDataAttribute(element, styleProp);\n element.style[styleProp] = value;\n }\n });\n };\n\n _proto._getScrollbarWidth = function _getScrollbarWidth() {\n // thx d.walsh\n var scrollDiv = document.createElement('div');\n scrollDiv.className = CLASS_NAME_SCROLLBAR_MEASURER;\n document.body.appendChild(scrollDiv);\n var scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth;\n document.body.removeChild(scrollDiv);\n return scrollbarWidth;\n } // Static\n ;\n\n Modal.jQueryInterface = function jQueryInterface(config, relatedTarget) {\n return this.each(function () {\n var data = Data__default['default'].getData(this, DATA_KEY);\n\n var _config = _extends({}, Default, Manipulator__default['default'].getDataAttributes(this), typeof config === 'object' && config ? config : {});\n\n if (!data) {\n data = new Modal(this, _config);\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(\"No method named \\\"\" + config + \"\\\"\");\n }\n\n data[config](relatedTarget);\n }\n });\n };\n\n _createClass(Modal, null, [{\n key: \"Default\",\n get: function get() {\n return Default;\n }\n }, {\n key: \"DATA_KEY\",\n get: function get() {\n return DATA_KEY;\n }\n }]);\n\n return Modal;\n }(BaseComponent__default['default']);\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n\n EventHandler__default['default'].on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n var _this12 = this;\n\n var target = getElementFromSelector(this);\n\n if (this.tagName === 'A' || this.tagName === 'AREA') {\n event.preventDefault();\n }\n\n EventHandler__default['default'].one(target, EVENT_SHOW, function (showEvent) {\n if (showEvent.defaultPrevented) {\n // only register focus restorer if modal will actually get shown\n return;\n }\n\n EventHandler__default['default'].one(target, EVENT_HIDDEN, function () {\n if (isVisible(_this12)) {\n _this12.focus();\n }\n });\n });\n var data = Data__default['default'].getData(target, DATA_KEY);\n\n if (!data) {\n var config = _extends({}, Manipulator__default['default'].getDataAttributes(target), Manipulator__default['default'].getDataAttributes(this));\n\n data = new Modal(target, config);\n }\n\n data.toggle(this);\n });\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Modal to jQuery only if jQuery is present\n */\n\n defineJQueryPlugin(NAME, Modal);\n\n return Modal;\n\n})));\n//# sourceMappingURL=modal.js.map\n/*!\n * Bootstrap popover.js v5.0.0-beta2 (https://getbootstrap.com/)\n * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./dom/data.js'), require('./dom/selector-engine.js'), require('./tooltip.js')) :\n typeof define === 'function' && define.amd ? define(['./dom/data', './dom/selector-engine', './tooltip'], factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Popover = factory(global.Data, global.SelectorEngine, global.Tooltip));\n}(this, (function (Data, SelectorEngine, Tooltip) { 'use strict';\n\n function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }\n\n var Data__default = /*#__PURE__*/_interopDefaultLegacy(Data);\n var SelectorEngine__default = /*#__PURE__*/_interopDefaultLegacy(SelectorEngine);\n var Tooltip__default = /*#__PURE__*/_interopDefaultLegacy(Tooltip);\n\n function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n }\n\n function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n }\n\n function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n\n _setPrototypeOf(subClass, superClass);\n }\n\n function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n }\n\n /**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-beta2): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n var getjQuery = function getjQuery() {\n var _window = window,\n jQuery = _window.jQuery;\n\n if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {\n return jQuery;\n }\n\n return null;\n };\n\n var onDOMContentLoaded = function onDOMContentLoaded(callback) {\n if (document.readyState === 'loading') {\n document.addEventListener('DOMContentLoaded', callback);\n } else {\n callback();\n }\n };\n\n document.documentElement.dir === 'rtl';\n\n var defineJQueryPlugin = function defineJQueryPlugin(name, plugin) {\n onDOMContentLoaded(function () {\n var $ = getjQuery();\n /* istanbul ignore if */\n\n if ($) {\n var JQUERY_NO_CONFLICT = $.fn[name];\n $.fn[name] = plugin.jQueryInterface;\n $.fn[name].Constructor = plugin;\n\n $.fn[name].noConflict = function () {\n $.fn[name] = JQUERY_NO_CONFLICT;\n return plugin.jQueryInterface;\n };\n }\n });\n };\n\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n var NAME = 'popover';\n var DATA_KEY = 'bs.popover';\n var EVENT_KEY = \".\" + DATA_KEY;\n var CLASS_PREFIX = 'bs-popover';\n var BSCLS_PREFIX_REGEX = new RegExp(\"(^|\\\\s)\" + CLASS_PREFIX + \"\\\\S+\", 'g');\n\n var Default = _extends({}, Tooltip__default['default'].Default, {\n placement: 'right',\n offset: [0, 8],\n trigger: 'click',\n content: '',\n template: '<div class=\"popover\" role=\"tooltip\">' + '<div class=\"popover-arrow\"></div>' + '<h3 class=\"popover-header\"></h3>' + '<div class=\"popover-body\"></div>' + '</div>'\n });\n\n var DefaultType = _extends({}, Tooltip__default['default'].DefaultType, {\n content: '(string|element|function)'\n });\n\n var Event = {\n HIDE: \"hide\" + EVENT_KEY,\n HIDDEN: \"hidden\" + EVENT_KEY,\n SHOW: \"show\" + EVENT_KEY,\n SHOWN: \"shown\" + EVENT_KEY,\n INSERTED: \"inserted\" + EVENT_KEY,\n CLICK: \"click\" + EVENT_KEY,\n FOCUSIN: \"focusin\" + EVENT_KEY,\n FOCUSOUT: \"focusout\" + EVENT_KEY,\n MOUSEENTER: \"mouseenter\" + EVENT_KEY,\n MOUSELEAVE: \"mouseleave\" + EVENT_KEY\n };\n var CLASS_NAME_FADE = 'fade';\n var CLASS_NAME_SHOW = 'show';\n var SELECTOR_TITLE = '.popover-header';\n var SELECTOR_CONTENT = '.popover-body';\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n var Popover = /*#__PURE__*/function (_Tooltip) {\n _inheritsLoose(Popover, _Tooltip);\n\n function Popover() {\n return _Tooltip.apply(this, arguments) || this;\n }\n\n var _proto = Popover.prototype;\n\n // Overrides\n _proto.isWithContent = function isWithContent() {\n return this.getTitle() || this._getContent();\n };\n\n _proto.setContent = function setContent() {\n var tip = this.getTipElement(); // we use append for html objects to maintain js events\n\n this.setElementContent(SelectorEngine__default['default'].findOne(SELECTOR_TITLE, tip), this.getTitle());\n\n var content = this._getContent();\n\n if (typeof content === 'function') {\n content = content.call(this._element);\n }\n\n this.setElementContent(SelectorEngine__default['default'].findOne(SELECTOR_CONTENT, tip), content);\n tip.classList.remove(CLASS_NAME_FADE, CLASS_NAME_SHOW);\n } // Private\n ;\n\n _proto._addAttachmentClass = function _addAttachmentClass(attachment) {\n this.getTipElement().classList.add(CLASS_PREFIX + \"-\" + this.updateAttachment(attachment));\n };\n\n _proto._getContent = function _getContent() {\n return this._element.getAttribute('data-bs-content') || this.config.content;\n };\n\n _proto._cleanTipClass = function _cleanTipClass() {\n var tip = this.getTipElement();\n var tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX);\n\n if (tabClass !== null && tabClass.length > 0) {\n tabClass.map(function (token) {\n return token.trim();\n }).forEach(function (tClass) {\n return tip.classList.remove(tClass);\n });\n }\n } // Static\n ;\n\n Popover.jQueryInterface = function jQueryInterface(config) {\n return this.each(function () {\n var data = Data__default['default'].getData(this, DATA_KEY);\n\n var _config = typeof config === 'object' ? config : null;\n\n if (!data && /dispose|hide/.test(config)) {\n return;\n }\n\n if (!data) {\n data = new Popover(this, _config);\n Data__default['default'].setData(this, DATA_KEY, data);\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(\"No method named \\\"\" + config + \"\\\"\");\n }\n\n data[config]();\n }\n });\n };\n\n _createClass(Popover, null, [{\n key: \"Default\",\n get: // Getters\n function get() {\n return Default;\n }\n }, {\n key: \"NAME\",\n get: function get() {\n return NAME;\n }\n }, {\n key: \"DATA_KEY\",\n get: function get() {\n return DATA_KEY;\n }\n }, {\n key: \"Event\",\n get: function get() {\n return Event;\n }\n }, {\n key: \"EVENT_KEY\",\n get: function get() {\n return EVENT_KEY;\n }\n }, {\n key: \"DefaultType\",\n get: function get() {\n return DefaultType;\n }\n }]);\n\n return Popover;\n }(Tooltip__default['default']);\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Popover to jQuery only if jQuery is present\n */\n\n\n defineJQueryPlugin(NAME, Popover);\n\n return Popover;\n\n})));\n//# sourceMappingURL=popover.js.map\n/*!\n * Bootstrap scrollspy.js v5.0.0-beta2 (https://getbootstrap.com/)\n * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./dom/data.js'), require('./dom/event-handler.js'), require('./dom/manipulator.js'), require('./dom/selector-engine.js'), require('./base-component.js')) :\n typeof define === 'function' && define.amd ? define(['./dom/data', './dom/event-handler', './dom/manipulator', './dom/selector-engine', './base-component'], factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.ScrollSpy = factory(global.Data, global.EventHandler, global.Manipulator, global.SelectorEngine, global.Base));\n}(this, (function (Data, EventHandler, Manipulator, SelectorEngine, BaseComponent) { 'use strict';\n\n function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }\n\n var Data__default = /*#__PURE__*/_interopDefaultLegacy(Data);\n var EventHandler__default = /*#__PURE__*/_interopDefaultLegacy(EventHandler);\n var Manipulator__default = /*#__PURE__*/_interopDefaultLegacy(Manipulator);\n var SelectorEngine__default = /*#__PURE__*/_interopDefaultLegacy(SelectorEngine);\n var BaseComponent__default = /*#__PURE__*/_interopDefaultLegacy(BaseComponent);\n\n function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n }\n\n function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n }\n\n function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n\n _setPrototypeOf(subClass, superClass);\n }\n\n function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n }\n\n /**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-beta2): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n var MAX_UID = 1000000;\n\n var toType = function toType(obj) {\n if (obj === null || obj === undefined) {\n return \"\" + obj;\n }\n\n return {}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase();\n };\n /**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\n\n var getUID = function getUID(prefix) {\n do {\n prefix += Math.floor(Math.random() * MAX_UID);\n } while (document.getElementById(prefix));\n\n return prefix;\n };\n\n var getSelector = function getSelector(element) {\n var selector = element.getAttribute('data-bs-target');\n\n if (!selector || selector === '#') {\n var hrefAttr = element.getAttribute('href'); // The only valid content that could double as a selector are IDs or classes,\n // so everything starting with `#` or `.`. If a \"real\" URL is used as the selector,\n // `document.querySelector` will rightfully complain it is invalid.\n // See https://github.com/twbs/bootstrap/issues/32273\n\n if (!hrefAttr || !hrefAttr.includes('#') && !hrefAttr.startsWith('.')) {\n return null;\n } // Just in case some CMS puts out a full URL with the anchor appended\n\n\n if (hrefAttr.includes('#') && !hrefAttr.startsWith('#')) {\n hrefAttr = '#' + hrefAttr.split('#')[1];\n }\n\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : null;\n }\n\n return selector;\n };\n\n var getSelectorFromElement = function getSelectorFromElement(element) {\n var selector = getSelector(element);\n\n if (selector) {\n return document.querySelector(selector) ? selector : null;\n }\n\n return null;\n };\n\n var isElement = function isElement(obj) {\n return (obj[0] || obj).nodeType;\n };\n\n var typeCheckConfig = function typeCheckConfig(componentName, config, configTypes) {\n Object.keys(configTypes).forEach(function (property) {\n var expectedTypes = configTypes[property];\n var value = config[property];\n var valueType = value && isElement(value) ? 'element' : toType(value);\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new TypeError(componentName.toUpperCase() + \": \" + (\"Option \\\"\" + property + \"\\\" provided type \\\"\" + valueType + \"\\\" \") + (\"but expected type \\\"\" + expectedTypes + \"\\\".\"));\n }\n });\n };\n\n var getjQuery = function getjQuery() {\n var _window = window,\n jQuery = _window.jQuery;\n\n if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {\n return jQuery;\n }\n\n return null;\n };\n\n var onDOMContentLoaded = function onDOMContentLoaded(callback) {\n if (document.readyState === 'loading') {\n document.addEventListener('DOMContentLoaded', callback);\n } else {\n callback();\n }\n };\n\n document.documentElement.dir === 'rtl';\n\n var defineJQueryPlugin = function defineJQueryPlugin(name, plugin) {\n onDOMContentLoaded(function () {\n var $ = getjQuery();\n /* istanbul ignore if */\n\n if ($) {\n var JQUERY_NO_CONFLICT = $.fn[name];\n $.fn[name] = plugin.jQueryInterface;\n $.fn[name].Constructor = plugin;\n\n $.fn[name].noConflict = function () {\n $.fn[name] = JQUERY_NO_CONFLICT;\n return plugin.jQueryInterface;\n };\n }\n });\n };\n\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n var NAME = 'scrollspy';\n var DATA_KEY = 'bs.scrollspy';\n var EVENT_KEY = \".\" + DATA_KEY;\n var DATA_API_KEY = '.data-api';\n var Default = {\n offset: 10,\n method: 'auto',\n target: ''\n };\n var DefaultType = {\n offset: 'number',\n method: 'string',\n target: '(string|element)'\n };\n var EVENT_ACTIVATE = \"activate\" + EVENT_KEY;\n var EVENT_SCROLL = \"scroll\" + EVENT_KEY;\n var EVENT_LOAD_DATA_API = \"load\" + EVENT_KEY + DATA_API_KEY;\n var CLASS_NAME_DROPDOWN_ITEM = 'dropdown-item';\n var CLASS_NAME_ACTIVE = 'active';\n var SELECTOR_DATA_SPY = '[data-bs-spy=\"scroll\"]';\n var SELECTOR_NAV_LIST_GROUP = '.nav, .list-group';\n var SELECTOR_NAV_LINKS = '.nav-link';\n var SELECTOR_NAV_ITEMS = '.nav-item';\n var SELECTOR_LIST_ITEMS = '.list-group-item';\n var SELECTOR_DROPDOWN = '.dropdown';\n var SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle';\n var METHOD_OFFSET = 'offset';\n var METHOD_POSITION = 'position';\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n var ScrollSpy = /*#__PURE__*/function (_BaseComponent) {\n _inheritsLoose(ScrollSpy, _BaseComponent);\n\n function ScrollSpy(element, config) {\n var _this;\n\n _this = _BaseComponent.call(this, element) || this;\n _this._scrollElement = element.tagName === 'BODY' ? window : element;\n _this._config = _this._getConfig(config);\n _this._selector = _this._config.target + \" \" + SELECTOR_NAV_LINKS + \", \" + _this._config.target + \" \" + SELECTOR_LIST_ITEMS + \", \" + _this._config.target + \" .\" + CLASS_NAME_DROPDOWN_ITEM;\n _this._offsets = [];\n _this._targets = [];\n _this._activeTarget = null;\n _this._scrollHeight = 0;\n EventHandler__default['default'].on(_this._scrollElement, EVENT_SCROLL, function () {\n return _this._process();\n });\n\n _this.refresh();\n\n _this._process();\n\n return _this;\n } // Getters\n\n\n var _proto = ScrollSpy.prototype;\n\n // Public\n _proto.refresh = function refresh() {\n var _this2 = this;\n\n var autoMethod = this._scrollElement === this._scrollElement.window ? METHOD_OFFSET : METHOD_POSITION;\n var offsetMethod = this._config.method === 'auto' ? autoMethod : this._config.method;\n var offsetBase = offsetMethod === METHOD_POSITION ? this._getScrollTop() : 0;\n this._offsets = [];\n this._targets = [];\n this._scrollHeight = this._getScrollHeight();\n var targets = SelectorEngine__default['default'].find(this._selector);\n targets.map(function (element) {\n var targetSelector = getSelectorFromElement(element);\n var target = targetSelector ? SelectorEngine__default['default'].findOne(targetSelector) : null;\n\n if (target) {\n var targetBCR = target.getBoundingClientRect();\n\n if (targetBCR.width || targetBCR.height) {\n return [Manipulator__default['default'][offsetMethod](target).top + offsetBase, targetSelector];\n }\n }\n\n return null;\n }).filter(function (item) {\n return item;\n }).sort(function (a, b) {\n return a[0] - b[0];\n }).forEach(function (item) {\n _this2._offsets.push(item[0]);\n\n _this2._targets.push(item[1]);\n });\n };\n\n _proto.dispose = function dispose() {\n _BaseComponent.prototype.dispose.call(this);\n\n EventHandler__default['default'].off(this._scrollElement, EVENT_KEY);\n this._scrollElement = null;\n this._config = null;\n this._selector = null;\n this._offsets = null;\n this._targets = null;\n this._activeTarget = null;\n this._scrollHeight = null;\n } // Private\n ;\n\n _proto._getConfig = function _getConfig(config) {\n config = _extends({}, Default, typeof config === 'object' && config ? config : {});\n\n if (typeof config.target !== 'string' && isElement(config.target)) {\n var id = config.target.id;\n\n if (!id) {\n id = getUID(NAME);\n config.target.id = id;\n }\n\n config.target = \"#\" + id;\n }\n\n typeCheckConfig(NAME, config, DefaultType);\n return config;\n };\n\n _proto._getScrollTop = function _getScrollTop() {\n return this._scrollElement === window ? this._scrollElement.pageYOffset : this._scrollElement.scrollTop;\n };\n\n _proto._getScrollHeight = function _getScrollHeight() {\n return this._scrollElement.scrollHeight || Math.max(document.body.scrollHeight, document.documentElement.scrollHeight);\n };\n\n _proto._getOffsetHeight = function _getOffsetHeight() {\n return this._scrollElement === window ? window.innerHeight : this._scrollElement.getBoundingClientRect().height;\n };\n\n _proto._process = function _process() {\n var scrollTop = this._getScrollTop() + this._config.offset;\n\n var scrollHeight = this._getScrollHeight();\n\n var maxScroll = this._config.offset + scrollHeight - this._getOffsetHeight();\n\n if (this._scrollHeight !== scrollHeight) {\n this.refresh();\n }\n\n if (scrollTop >= maxScroll) {\n var target = this._targets[this._targets.length - 1];\n\n if (this._activeTarget !== target) {\n this._activate(target);\n }\n\n return;\n }\n\n if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {\n this._activeTarget = null;\n\n this._clear();\n\n return;\n }\n\n for (var i = this._offsets.length; i--;) {\n var isActiveTarget = this._activeTarget !== this._targets[i] && scrollTop >= this._offsets[i] && (typeof this._offsets[i + 1] === 'undefined' || scrollTop < this._offsets[i + 1]);\n\n if (isActiveTarget) {\n this._activate(this._targets[i]);\n }\n }\n };\n\n _proto._activate = function _activate(target) {\n this._activeTarget = target;\n\n this._clear();\n\n var queries = this._selector.split(',').map(function (selector) {\n return selector + \"[data-bs-target=\\\"\" + target + \"\\\"],\" + selector + \"[href=\\\"\" + target + \"\\\"]\";\n });\n\n var link = SelectorEngine__default['default'].findOne(queries.join(','));\n\n if (link.classList.contains(CLASS_NAME_DROPDOWN_ITEM)) {\n SelectorEngine__default['default'].findOne(SELECTOR_DROPDOWN_TOGGLE, link.closest(SELECTOR_DROPDOWN)).classList.add(CLASS_NAME_ACTIVE);\n link.classList.add(CLASS_NAME_ACTIVE);\n } else {\n // Set triggered link as active\n link.classList.add(CLASS_NAME_ACTIVE);\n SelectorEngine__default['default'].parents(link, SELECTOR_NAV_LIST_GROUP).forEach(function (listGroup) {\n // Set triggered links parents as active\n // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor\n SelectorEngine__default['default'].prev(listGroup, SELECTOR_NAV_LINKS + \", \" + SELECTOR_LIST_ITEMS).forEach(function (item) {\n return item.classList.add(CLASS_NAME_ACTIVE);\n }); // Handle special case when .nav-link is inside .nav-item\n\n SelectorEngine__default['default'].prev(listGroup, SELECTOR_NAV_ITEMS).forEach(function (navItem) {\n SelectorEngine__default['default'].children(navItem, SELECTOR_NAV_LINKS).forEach(function (item) {\n return item.classList.add(CLASS_NAME_ACTIVE);\n });\n });\n });\n }\n\n EventHandler__default['default'].trigger(this._scrollElement, EVENT_ACTIVATE, {\n relatedTarget: target\n });\n };\n\n _proto._clear = function _clear() {\n SelectorEngine__default['default'].find(this._selector).filter(function (node) {\n return node.classList.contains(CLASS_NAME_ACTIVE);\n }).forEach(function (node) {\n return node.classList.remove(CLASS_NAME_ACTIVE);\n });\n } // Static\n ;\n\n ScrollSpy.jQueryInterface = function jQueryInterface(config) {\n return this.each(function () {\n var data = Data__default['default'].getData(this, DATA_KEY);\n\n var _config = typeof config === 'object' && config;\n\n if (!data) {\n data = new ScrollSpy(this, _config);\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(\"No method named \\\"\" + config + \"\\\"\");\n }\n\n data[config]();\n }\n });\n };\n\n _createClass(ScrollSpy, null, [{\n key: \"Default\",\n get: function get() {\n return Default;\n }\n }, {\n key: \"DATA_KEY\",\n get: function get() {\n return DATA_KEY;\n }\n }]);\n\n return ScrollSpy;\n }(BaseComponent__default['default']);\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n\n EventHandler__default['default'].on(window, EVENT_LOAD_DATA_API, function () {\n SelectorEngine__default['default'].find(SELECTOR_DATA_SPY).forEach(function (spy) {\n return new ScrollSpy(spy, Manipulator__default['default'].getDataAttributes(spy));\n });\n });\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .ScrollSpy to jQuery only if jQuery is present\n */\n\n defineJQueryPlugin(NAME, ScrollSpy);\n\n return ScrollSpy;\n\n})));\n//# sourceMappingURL=scrollspy.js.map\n/*!\n * Bootstrap tab.js v5.0.0-beta2 (https://getbootstrap.com/)\n * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./dom/data.js'), require('./dom/event-handler.js'), require('./dom/selector-engine.js'), require('./base-component.js')) :\n typeof define === 'function' && define.amd ? define(['./dom/data', './dom/event-handler', './dom/selector-engine', './base-component'], factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Tab = factory(global.Data, global.EventHandler, global.SelectorEngine, global.Base));\n}(this, (function (Data, EventHandler, SelectorEngine, BaseComponent) { 'use strict';\n\n function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }\n\n var Data__default = /*#__PURE__*/_interopDefaultLegacy(Data);\n var EventHandler__default = /*#__PURE__*/_interopDefaultLegacy(EventHandler);\n var SelectorEngine__default = /*#__PURE__*/_interopDefaultLegacy(SelectorEngine);\n var BaseComponent__default = /*#__PURE__*/_interopDefaultLegacy(BaseComponent);\n\n function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n }\n\n function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n\n _setPrototypeOf(subClass, superClass);\n }\n\n function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n }\n\n /**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-beta2): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n var MILLISECONDS_MULTIPLIER = 1000;\n var TRANSITION_END = 'transitionend'; // Shoutout AngusCroll (https://goo.gl/pxwQGp)\n\n var getSelector = function getSelector(element) {\n var selector = element.getAttribute('data-bs-target');\n\n if (!selector || selector === '#') {\n var hrefAttr = element.getAttribute('href'); // The only valid content that could double as a selector are IDs or classes,\n // so everything starting with `#` or `.`. If a \"real\" URL is used as the selector,\n // `document.querySelector` will rightfully complain it is invalid.\n // See https://github.com/twbs/bootstrap/issues/32273\n\n if (!hrefAttr || !hrefAttr.includes('#') && !hrefAttr.startsWith('.')) {\n return null;\n } // Just in case some CMS puts out a full URL with the anchor appended\n\n\n if (hrefAttr.includes('#') && !hrefAttr.startsWith('#')) {\n hrefAttr = '#' + hrefAttr.split('#')[1];\n }\n\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : null;\n }\n\n return selector;\n };\n\n var getElementFromSelector = function getElementFromSelector(element) {\n var selector = getSelector(element);\n return selector ? document.querySelector(selector) : null;\n };\n\n var getTransitionDurationFromElement = function getTransitionDurationFromElement(element) {\n if (!element) {\n return 0;\n } // Get transition-duration of the element\n\n\n var _window$getComputedSt = window.getComputedStyle(element),\n transitionDuration = _window$getComputedSt.transitionDuration,\n transitionDelay = _window$getComputedSt.transitionDelay;\n\n var floatTransitionDuration = Number.parseFloat(transitionDuration);\n var floatTransitionDelay = Number.parseFloat(transitionDelay); // Return 0 if element or transition duration is not found\n\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0;\n } // If multiple durations are defined, take the first\n\n\n transitionDuration = transitionDuration.split(',')[0];\n transitionDelay = transitionDelay.split(',')[0];\n return (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER;\n };\n\n var triggerTransitionEnd = function triggerTransitionEnd(element) {\n element.dispatchEvent(new Event(TRANSITION_END));\n };\n\n var emulateTransitionEnd = function emulateTransitionEnd(element, duration) {\n var called = false;\n var durationPadding = 5;\n var emulatedDuration = duration + durationPadding;\n\n function listener() {\n called = true;\n element.removeEventListener(TRANSITION_END, listener);\n }\n\n element.addEventListener(TRANSITION_END, listener);\n setTimeout(function () {\n if (!called) {\n triggerTransitionEnd(element);\n }\n }, emulatedDuration);\n };\n\n var reflow = function reflow(element) {\n return element.offsetHeight;\n };\n\n var getjQuery = function getjQuery() {\n var _window = window,\n jQuery = _window.jQuery;\n\n if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {\n return jQuery;\n }\n\n return null;\n };\n\n var onDOMContentLoaded = function onDOMContentLoaded(callback) {\n if (document.readyState === 'loading') {\n document.addEventListener('DOMContentLoaded', callback);\n } else {\n callback();\n }\n };\n\n document.documentElement.dir === 'rtl';\n\n var defineJQueryPlugin = function defineJQueryPlugin(name, plugin) {\n onDOMContentLoaded(function () {\n var $ = getjQuery();\n /* istanbul ignore if */\n\n if ($) {\n var JQUERY_NO_CONFLICT = $.fn[name];\n $.fn[name] = plugin.jQueryInterface;\n $.fn[name].Constructor = plugin;\n\n $.fn[name].noConflict = function () {\n $.fn[name] = JQUERY_NO_CONFLICT;\n return plugin.jQueryInterface;\n };\n }\n });\n };\n\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n var NAME = 'tab';\n var DATA_KEY = 'bs.tab';\n var EVENT_KEY = \".\" + DATA_KEY;\n var DATA_API_KEY = '.data-api';\n var EVENT_HIDE = \"hide\" + EVENT_KEY;\n var EVENT_HIDDEN = \"hidden\" + EVENT_KEY;\n var EVENT_SHOW = \"show\" + EVENT_KEY;\n var EVENT_SHOWN = \"shown\" + EVENT_KEY;\n var EVENT_CLICK_DATA_API = \"click\" + EVENT_KEY + DATA_API_KEY;\n var CLASS_NAME_DROPDOWN_MENU = 'dropdown-menu';\n var CLASS_NAME_ACTIVE = 'active';\n var CLASS_NAME_DISABLED = 'disabled';\n var CLASS_NAME_FADE = 'fade';\n var CLASS_NAME_SHOW = 'show';\n var SELECTOR_DROPDOWN = '.dropdown';\n var SELECTOR_NAV_LIST_GROUP = '.nav, .list-group';\n var SELECTOR_ACTIVE = '.active';\n var SELECTOR_ACTIVE_UL = ':scope > li > .active';\n var SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"tab\"], [data-bs-toggle=\"pill\"], [data-bs-toggle=\"list\"]';\n var SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle';\n var SELECTOR_DROPDOWN_ACTIVE_CHILD = ':scope > .dropdown-menu .active';\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n var Tab = /*#__PURE__*/function (_BaseComponent) {\n _inheritsLoose(Tab, _BaseComponent);\n\n function Tab() {\n return _BaseComponent.apply(this, arguments) || this;\n }\n\n var _proto = Tab.prototype;\n\n // Public\n _proto.show = function show() {\n var _this = this;\n\n if (this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE && this._element.classList.contains(CLASS_NAME_ACTIVE) || this._element.classList.contains(CLASS_NAME_DISABLED)) {\n return;\n }\n\n var previous;\n var target = getElementFromSelector(this._element);\n\n var listElement = this._element.closest(SELECTOR_NAV_LIST_GROUP);\n\n if (listElement) {\n var itemSelector = listElement.nodeName === 'UL' || listElement.nodeName === 'OL' ? SELECTOR_ACTIVE_UL : SELECTOR_ACTIVE;\n previous = SelectorEngine__default['default'].find(itemSelector, listElement);\n previous = previous[previous.length - 1];\n }\n\n var hideEvent = previous ? EventHandler__default['default'].trigger(previous, EVENT_HIDE, {\n relatedTarget: this._element\n }) : null;\n var showEvent = EventHandler__default['default'].trigger(this._element, EVENT_SHOW, {\n relatedTarget: previous\n });\n\n if (showEvent.defaultPrevented || hideEvent !== null && hideEvent.defaultPrevented) {\n return;\n }\n\n this._activate(this._element, listElement);\n\n var complete = function complete() {\n EventHandler__default['default'].trigger(previous, EVENT_HIDDEN, {\n relatedTarget: _this._element\n });\n EventHandler__default['default'].trigger(_this._element, EVENT_SHOWN, {\n relatedTarget: previous\n });\n };\n\n if (target) {\n this._activate(target, target.parentNode, complete);\n } else {\n complete();\n }\n } // Private\n ;\n\n _proto._activate = function _activate(element, container, callback) {\n var _this2 = this;\n\n var activeElements = container && (container.nodeName === 'UL' || container.nodeName === 'OL') ? SelectorEngine__default['default'].find(SELECTOR_ACTIVE_UL, container) : SelectorEngine__default['default'].children(container, SELECTOR_ACTIVE);\n var active = activeElements[0];\n var isTransitioning = callback && active && active.classList.contains(CLASS_NAME_FADE);\n\n var complete = function complete() {\n return _this2._transitionComplete(element, active, callback);\n };\n\n if (active && isTransitioning) {\n var transitionDuration = getTransitionDurationFromElement(active);\n active.classList.remove(CLASS_NAME_SHOW);\n EventHandler__default['default'].one(active, 'transitionend', complete);\n emulateTransitionEnd(active, transitionDuration);\n } else {\n complete();\n }\n };\n\n _proto._transitionComplete = function _transitionComplete(element, active, callback) {\n if (active) {\n active.classList.remove(CLASS_NAME_ACTIVE);\n var dropdownChild = SelectorEngine__default['default'].findOne(SELECTOR_DROPDOWN_ACTIVE_CHILD, active.parentNode);\n\n if (dropdownChild) {\n dropdownChild.classList.remove(CLASS_NAME_ACTIVE);\n }\n\n if (active.getAttribute('role') === 'tab') {\n active.setAttribute('aria-selected', false);\n }\n }\n\n element.classList.add(CLASS_NAME_ACTIVE);\n\n if (element.getAttribute('role') === 'tab') {\n element.setAttribute('aria-selected', true);\n }\n\n reflow(element);\n\n if (element.classList.contains(CLASS_NAME_FADE)) {\n element.classList.add(CLASS_NAME_SHOW);\n }\n\n if (element.parentNode && element.parentNode.classList.contains(CLASS_NAME_DROPDOWN_MENU)) {\n var dropdownElement = element.closest(SELECTOR_DROPDOWN);\n\n if (dropdownElement) {\n SelectorEngine__default['default'].find(SELECTOR_DROPDOWN_TOGGLE).forEach(function (dropdown) {\n return dropdown.classList.add(CLASS_NAME_ACTIVE);\n });\n }\n\n element.setAttribute('aria-expanded', true);\n }\n\n if (callback) {\n callback();\n }\n } // Static\n ;\n\n Tab.jQueryInterface = function jQueryInterface(config) {\n return this.each(function () {\n var data = Data__default['default'].getData(this, DATA_KEY) || new Tab(this);\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(\"No method named \\\"\" + config + \"\\\"\");\n }\n\n data[config]();\n }\n });\n };\n\n _createClass(Tab, null, [{\n key: \"DATA_KEY\",\n get: // Getters\n function get() {\n return DATA_KEY;\n }\n }]);\n\n return Tab;\n }(BaseComponent__default['default']);\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n\n EventHandler__default['default'].on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n event.preventDefault();\n var data = Data__default['default'].getData(this, DATA_KEY) || new Tab(this);\n data.show();\n });\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Tab to jQuery only if jQuery is present\n */\n\n defineJQueryPlugin(NAME, Tab);\n\n return Tab;\n\n})));\n//# sourceMappingURL=tab.js.map\n/*!\n * Bootstrap toast.js v5.0.0-beta2 (https://getbootstrap.com/)\n * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./dom/data.js'), require('./dom/event-handler.js'), require('./dom/manipulator.js'), require('./base-component.js')) :\n typeof define === 'function' && define.amd ? define(['./dom/data', './dom/event-handler', './dom/manipulator', './base-component'], factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Toast = factory(global.Data, global.EventHandler, global.Manipulator, global.Base));\n}(this, (function (Data, EventHandler, Manipulator, BaseComponent) { 'use strict';\n\n function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }\n\n var Data__default = /*#__PURE__*/_interopDefaultLegacy(Data);\n var EventHandler__default = /*#__PURE__*/_interopDefaultLegacy(EventHandler);\n var Manipulator__default = /*#__PURE__*/_interopDefaultLegacy(Manipulator);\n var BaseComponent__default = /*#__PURE__*/_interopDefaultLegacy(BaseComponent);\n\n function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n }\n\n function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n }\n\n function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n\n _setPrototypeOf(subClass, superClass);\n }\n\n function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n }\n\n /**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-beta2): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n var MILLISECONDS_MULTIPLIER = 1000;\n var TRANSITION_END = 'transitionend'; // Shoutout AngusCroll (https://goo.gl/pxwQGp)\n\n var toType = function toType(obj) {\n if (obj === null || obj === undefined) {\n return \"\" + obj;\n }\n\n return {}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase();\n };\n\n var getTransitionDurationFromElement = function getTransitionDurationFromElement(element) {\n if (!element) {\n return 0;\n } // Get transition-duration of the element\n\n\n var _window$getComputedSt = window.getComputedStyle(element),\n transitionDuration = _window$getComputedSt.transitionDuration,\n transitionDelay = _window$getComputedSt.transitionDelay;\n\n var floatTransitionDuration = Number.parseFloat(transitionDuration);\n var floatTransitionDelay = Number.parseFloat(transitionDelay); // Return 0 if element or transition duration is not found\n\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0;\n } // If multiple durations are defined, take the first\n\n\n transitionDuration = transitionDuration.split(',')[0];\n transitionDelay = transitionDelay.split(',')[0];\n return (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER;\n };\n\n var triggerTransitionEnd = function triggerTransitionEnd(element) {\n element.dispatchEvent(new Event(TRANSITION_END));\n };\n\n var isElement = function isElement(obj) {\n return (obj[0] || obj).nodeType;\n };\n\n var emulateTransitionEnd = function emulateTransitionEnd(element, duration) {\n var called = false;\n var durationPadding = 5;\n var emulatedDuration = duration + durationPadding;\n\n function listener() {\n called = true;\n element.removeEventListener(TRANSITION_END, listener);\n }\n\n element.addEventListener(TRANSITION_END, listener);\n setTimeout(function () {\n if (!called) {\n triggerTransitionEnd(element);\n }\n }, emulatedDuration);\n };\n\n var typeCheckConfig = function typeCheckConfig(componentName, config, configTypes) {\n Object.keys(configTypes).forEach(function (property) {\n var expectedTypes = configTypes[property];\n var value = config[property];\n var valueType = value && isElement(value) ? 'element' : toType(value);\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new TypeError(componentName.toUpperCase() + \": \" + (\"Option \\\"\" + property + \"\\\" provided type \\\"\" + valueType + \"\\\" \") + (\"but expected type \\\"\" + expectedTypes + \"\\\".\"));\n }\n });\n };\n\n var reflow = function reflow(element) {\n return element.offsetHeight;\n };\n\n var getjQuery = function getjQuery() {\n var _window = window,\n jQuery = _window.jQuery;\n\n if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {\n return jQuery;\n }\n\n return null;\n };\n\n var onDOMContentLoaded = function onDOMContentLoaded(callback) {\n if (document.readyState === 'loading') {\n document.addEventListener('DOMContentLoaded', callback);\n } else {\n callback();\n }\n };\n\n document.documentElement.dir === 'rtl';\n\n var defineJQueryPlugin = function defineJQueryPlugin(name, plugin) {\n onDOMContentLoaded(function () {\n var $ = getjQuery();\n /* istanbul ignore if */\n\n if ($) {\n var JQUERY_NO_CONFLICT = $.fn[name];\n $.fn[name] = plugin.jQueryInterface;\n $.fn[name].Constructor = plugin;\n\n $.fn[name].noConflict = function () {\n $.fn[name] = JQUERY_NO_CONFLICT;\n return plugin.jQueryInterface;\n };\n }\n });\n };\n\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n var NAME = 'toast';\n var DATA_KEY = 'bs.toast';\n var EVENT_KEY = \".\" + DATA_KEY;\n var EVENT_CLICK_DISMISS = \"click.dismiss\" + EVENT_KEY;\n var EVENT_HIDE = \"hide\" + EVENT_KEY;\n var EVENT_HIDDEN = \"hidden\" + EVENT_KEY;\n var EVENT_SHOW = \"show\" + EVENT_KEY;\n var EVENT_SHOWN = \"shown\" + EVENT_KEY;\n var CLASS_NAME_FADE = 'fade';\n var CLASS_NAME_HIDE = 'hide';\n var CLASS_NAME_SHOW = 'show';\n var CLASS_NAME_SHOWING = 'showing';\n var DefaultType = {\n animation: 'boolean',\n autohide: 'boolean',\n delay: 'number'\n };\n var Default = {\n animation: true,\n autohide: true,\n delay: 5000\n };\n var SELECTOR_DATA_DISMISS = '[data-bs-dismiss=\"toast\"]';\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n var Toast = /*#__PURE__*/function (_BaseComponent) {\n _inheritsLoose(Toast, _BaseComponent);\n\n function Toast(element, config) {\n var _this;\n\n _this = _BaseComponent.call(this, element) || this;\n _this._config = _this._getConfig(config);\n _this._timeout = null;\n\n _this._setListeners();\n\n return _this;\n } // Getters\n\n\n var _proto = Toast.prototype;\n\n // Public\n _proto.show = function show() {\n var _this2 = this;\n\n var showEvent = EventHandler__default['default'].trigger(this._element, EVENT_SHOW);\n\n if (showEvent.defaultPrevented) {\n return;\n }\n\n this._clearTimeout();\n\n if (this._config.animation) {\n this._element.classList.add(CLASS_NAME_FADE);\n }\n\n var complete = function complete() {\n _this2._element.classList.remove(CLASS_NAME_SHOWING);\n\n _this2._element.classList.add(CLASS_NAME_SHOW);\n\n EventHandler__default['default'].trigger(_this2._element, EVENT_SHOWN);\n\n if (_this2._config.autohide) {\n _this2._timeout = setTimeout(function () {\n _this2.hide();\n }, _this2._config.delay);\n }\n };\n\n this._element.classList.remove(CLASS_NAME_HIDE);\n\n reflow(this._element);\n\n this._element.classList.add(CLASS_NAME_SHOWING);\n\n if (this._config.animation) {\n var transitionDuration = getTransitionDurationFromElement(this._element);\n EventHandler__default['default'].one(this._element, 'transitionend', complete);\n emulateTransitionEnd(this._element, transitionDuration);\n } else {\n complete();\n }\n };\n\n _proto.hide = function hide() {\n var _this3 = this;\n\n if (!this._element.classList.contains(CLASS_NAME_SHOW)) {\n return;\n }\n\n var hideEvent = EventHandler__default['default'].trigger(this._element, EVENT_HIDE);\n\n if (hideEvent.defaultPrevented) {\n return;\n }\n\n var complete = function complete() {\n _this3._element.classList.add(CLASS_NAME_HIDE);\n\n EventHandler__default['default'].trigger(_this3._element, EVENT_HIDDEN);\n };\n\n this._element.classList.remove(CLASS_NAME_SHOW);\n\n if (this._config.animation) {\n var transitionDuration = getTransitionDurationFromElement(this._element);\n EventHandler__default['default'].one(this._element, 'transitionend', complete);\n emulateTransitionEnd(this._element, transitionDuration);\n } else {\n complete();\n }\n };\n\n _proto.dispose = function dispose() {\n this._clearTimeout();\n\n if (this._element.classList.contains(CLASS_NAME_SHOW)) {\n this._element.classList.remove(CLASS_NAME_SHOW);\n }\n\n EventHandler__default['default'].off(this._element, EVENT_CLICK_DISMISS);\n\n _BaseComponent.prototype.dispose.call(this);\n\n this._config = null;\n } // Private\n ;\n\n _proto._getConfig = function _getConfig(config) {\n config = _extends({}, Default, Manipulator__default['default'].getDataAttributes(this._element), typeof config === 'object' && config ? config : {});\n typeCheckConfig(NAME, config, this.constructor.DefaultType);\n return config;\n };\n\n _proto._setListeners = function _setListeners() {\n var _this4 = this;\n\n EventHandler__default['default'].on(this._element, EVENT_CLICK_DISMISS, SELECTOR_DATA_DISMISS, function () {\n return _this4.hide();\n });\n };\n\n _proto._clearTimeout = function _clearTimeout() {\n clearTimeout(this._timeout);\n this._timeout = null;\n } // Static\n ;\n\n Toast.jQueryInterface = function jQueryInterface(config) {\n return this.each(function () {\n var data = Data__default['default'].getData(this, DATA_KEY);\n\n var _config = typeof config === 'object' && config;\n\n if (!data) {\n data = new Toast(this, _config);\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(\"No method named \\\"\" + config + \"\\\"\");\n }\n\n data[config](this);\n }\n });\n };\n\n _createClass(Toast, null, [{\n key: \"DefaultType\",\n get: function get() {\n return DefaultType;\n }\n }, {\n key: \"Default\",\n get: function get() {\n return Default;\n }\n }, {\n key: \"DATA_KEY\",\n get: function get() {\n return DATA_KEY;\n }\n }]);\n\n return Toast;\n }(BaseComponent__default['default']);\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Toast to jQuery only if jQuery is present\n */\n\n\n defineJQueryPlugin(NAME, Toast);\n\n return Toast;\n\n})));\n//# sourceMappingURL=toast.js.map\n/*!\n * Bootstrap tooltip.js v5.0.0-beta2 (https://getbootstrap.com/)\n * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('@popperjs/core'), require('./dom/data.js'), require('./dom/event-handler.js'), require('./dom/manipulator.js'), require('./dom/selector-engine.js'), require('./base-component.js')) :\n typeof define === 'function' && define.amd ? define(['@popperjs/core', './dom/data', './dom/event-handler', './dom/manipulator', './dom/selector-engine', './base-component'], factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Tooltip = factory(global.Popper, global.Data, global.EventHandler, global.Manipulator, global.SelectorEngine, global.Base));\n}(this, (function (Popper, Data, EventHandler, Manipulator, SelectorEngine, BaseComponent) { 'use strict';\n\n function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }\n\n function _interopNamespace(e) {\n if (e && e.__esModule) return e;\n var n = Object.create(null);\n if (e) {\n Object.keys(e).forEach(function (k) {\n if (k !== 'default') {\n var d = Object.getOwnPropertyDescriptor(e, k);\n Object.defineProperty(n, k, d.get ? d : {\n enumerable: true,\n get: function () {\n return e[k];\n }\n });\n }\n });\n }\n n['default'] = e;\n return Object.freeze(n);\n }\n\n var Popper__namespace = /*#__PURE__*/_interopNamespace(Popper);\n var Data__default = /*#__PURE__*/_interopDefaultLegacy(Data);\n var EventHandler__default = /*#__PURE__*/_interopDefaultLegacy(EventHandler);\n var Manipulator__default = /*#__PURE__*/_interopDefaultLegacy(Manipulator);\n var SelectorEngine__default = /*#__PURE__*/_interopDefaultLegacy(SelectorEngine);\n var BaseComponent__default = /*#__PURE__*/_interopDefaultLegacy(BaseComponent);\n\n function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n }\n\n function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n }\n\n function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n\n _setPrototypeOf(subClass, superClass);\n }\n\n function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n }\n\n /**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-beta2): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n var MAX_UID = 1000000;\n var MILLISECONDS_MULTIPLIER = 1000;\n var TRANSITION_END = 'transitionend'; // Shoutout AngusCroll (https://goo.gl/pxwQGp)\n\n var toType = function toType(obj) {\n if (obj === null || obj === undefined) {\n return \"\" + obj;\n }\n\n return {}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase();\n };\n /**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\n\n var getUID = function getUID(prefix) {\n do {\n prefix += Math.floor(Math.random() * MAX_UID);\n } while (document.getElementById(prefix));\n\n return prefix;\n };\n\n var getTransitionDurationFromElement = function getTransitionDurationFromElement(element) {\n if (!element) {\n return 0;\n } // Get transition-duration of the element\n\n\n var _window$getComputedSt = window.getComputedStyle(element),\n transitionDuration = _window$getComputedSt.transitionDuration,\n transitionDelay = _window$getComputedSt.transitionDelay;\n\n var floatTransitionDuration = Number.parseFloat(transitionDuration);\n var floatTransitionDelay = Number.parseFloat(transitionDelay); // Return 0 if element or transition duration is not found\n\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0;\n } // If multiple durations are defined, take the first\n\n\n transitionDuration = transitionDuration.split(',')[0];\n transitionDelay = transitionDelay.split(',')[0];\n return (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER;\n };\n\n var triggerTransitionEnd = function triggerTransitionEnd(element) {\n element.dispatchEvent(new Event(TRANSITION_END));\n };\n\n var isElement = function isElement(obj) {\n return (obj[0] || obj).nodeType;\n };\n\n var emulateTransitionEnd = function emulateTransitionEnd(element, duration) {\n var called = false;\n var durationPadding = 5;\n var emulatedDuration = duration + durationPadding;\n\n function listener() {\n called = true;\n element.removeEventListener(TRANSITION_END, listener);\n }\n\n element.addEventListener(TRANSITION_END, listener);\n setTimeout(function () {\n if (!called) {\n triggerTransitionEnd(element);\n }\n }, emulatedDuration);\n };\n\n var typeCheckConfig = function typeCheckConfig(componentName, config, configTypes) {\n Object.keys(configTypes).forEach(function (property) {\n var expectedTypes = configTypes[property];\n var value = config[property];\n var valueType = value && isElement(value) ? 'element' : toType(value);\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new TypeError(componentName.toUpperCase() + \": \" + (\"Option \\\"\" + property + \"\\\" provided type \\\"\" + valueType + \"\\\" \") + (\"but expected type \\\"\" + expectedTypes + \"\\\".\"));\n }\n });\n };\n\n var findShadowRoot = function findShadowRoot(element) {\n if (!document.documentElement.attachShadow) {\n return null;\n } // Can find the shadow root otherwise it'll return the document\n\n\n if (typeof element.getRootNode === 'function') {\n var root = element.getRootNode();\n return root instanceof ShadowRoot ? root : null;\n }\n\n if (element instanceof ShadowRoot) {\n return element;\n } // when we don't find a shadow root\n\n\n if (!element.parentNode) {\n return null;\n }\n\n return findShadowRoot(element.parentNode);\n };\n\n var noop = function noop() {\n return function () {};\n };\n\n var getjQuery = function getjQuery() {\n var _window = window,\n jQuery = _window.jQuery;\n\n if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {\n return jQuery;\n }\n\n return null;\n };\n\n var onDOMContentLoaded = function onDOMContentLoaded(callback) {\n if (document.readyState === 'loading') {\n document.addEventListener('DOMContentLoaded', callback);\n } else {\n callback();\n }\n };\n\n var isRTL = document.documentElement.dir === 'rtl';\n\n var defineJQueryPlugin = function defineJQueryPlugin(name, plugin) {\n onDOMContentLoaded(function () {\n var $ = getjQuery();\n /* istanbul ignore if */\n\n if ($) {\n var JQUERY_NO_CONFLICT = $.fn[name];\n $.fn[name] = plugin.jQueryInterface;\n $.fn[name].Constructor = plugin;\n\n $.fn[name].noConflict = function () {\n $.fn[name] = JQUERY_NO_CONFLICT;\n return plugin.jQueryInterface;\n };\n }\n });\n };\n\n /**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-beta2): util/sanitizer.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n var uriAttrs = new Set(['background', 'cite', 'href', 'itemtype', 'longdesc', 'poster', 'src', 'xlink:href']);\n var ARIA_ATTRIBUTE_PATTERN = /^aria-[\\w-]*$/i;\n /**\n * A pattern that recognizes a commonly useful subset of URLs that are safe.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\n\n var SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file):|[^#&/:?]*(?:[#/?]|$))/gi;\n /**\n * A pattern that matches safe data URLs. Only matches image, video and audio types.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\n\n var DATA_URL_PATTERN = /^data:(?:image\\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\\/(?:mpeg|mp4|ogg|webm)|audio\\/(?:mp3|oga|ogg|opus));base64,[\\d+/a-z]+=*$/i;\n\n var allowedAttribute = function allowedAttribute(attr, allowedAttributeList) {\n var attrName = attr.nodeName.toLowerCase();\n\n if (allowedAttributeList.includes(attrName)) {\n if (uriAttrs.has(attrName)) {\n return Boolean(SAFE_URL_PATTERN.test(attr.nodeValue) || DATA_URL_PATTERN.test(attr.nodeValue));\n }\n\n return true;\n }\n\n var regExp = allowedAttributeList.filter(function (attrRegex) {\n return attrRegex instanceof RegExp;\n }); // Check if a regular expression validates the attribute.\n\n for (var i = 0, len = regExp.length; i < len; i++) {\n if (regExp[i].test(attrName)) {\n return true;\n }\n }\n\n return false;\n };\n\n var DefaultAllowlist = {\n // Global attributes allowed on any supplied element below.\n '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],\n a: ['target', 'href', 'title', 'rel'],\n area: [],\n b: [],\n br: [],\n col: [],\n code: [],\n div: [],\n em: [],\n hr: [],\n h1: [],\n h2: [],\n h3: [],\n h4: [],\n h5: [],\n h6: [],\n i: [],\n img: ['src', 'srcset', 'alt', 'title', 'width', 'height'],\n li: [],\n ol: [],\n p: [],\n pre: [],\n s: [],\n small: [],\n span: [],\n sub: [],\n sup: [],\n strong: [],\n u: [],\n ul: []\n };\n function sanitizeHtml(unsafeHtml, allowList, sanitizeFn) {\n var _ref;\n\n if (!unsafeHtml.length) {\n return unsafeHtml;\n }\n\n if (sanitizeFn && typeof sanitizeFn === 'function') {\n return sanitizeFn(unsafeHtml);\n }\n\n var domParser = new window.DOMParser();\n var createdDocument = domParser.parseFromString(unsafeHtml, 'text/html');\n var allowlistKeys = Object.keys(allowList);\n\n var elements = (_ref = []).concat.apply(_ref, createdDocument.body.querySelectorAll('*'));\n\n var _loop = function _loop(i, len) {\n var _ref2;\n\n var el = elements[i];\n var elName = el.nodeName.toLowerCase();\n\n if (!allowlistKeys.includes(elName)) {\n el.parentNode.removeChild(el);\n return \"continue\";\n }\n\n var attributeList = (_ref2 = []).concat.apply(_ref2, el.attributes);\n\n var allowedAttributes = [].concat(allowList['*'] || [], allowList[elName] || []);\n attributeList.forEach(function (attr) {\n if (!allowedAttribute(attr, allowedAttributes)) {\n el.removeAttribute(attr.nodeName);\n }\n });\n };\n\n for (var i = 0, len = elements.length; i < len; i++) {\n var _ret = _loop(i);\n\n if (_ret === \"continue\") continue;\n }\n\n return createdDocument.body.innerHTML;\n }\n\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n var NAME = 'tooltip';\n var DATA_KEY = 'bs.tooltip';\n var EVENT_KEY = \".\" + DATA_KEY;\n var CLASS_PREFIX = 'bs-tooltip';\n var BSCLS_PREFIX_REGEX = new RegExp(\"(^|\\\\s)\" + CLASS_PREFIX + \"\\\\S+\", 'g');\n var DISALLOWED_ATTRIBUTES = new Set(['sanitize', 'allowList', 'sanitizeFn']);\n var DefaultType = {\n animation: 'boolean',\n template: 'string',\n title: '(string|element|function)',\n trigger: 'string',\n delay: '(number|object)',\n html: 'boolean',\n selector: '(string|boolean)',\n placement: '(string|function)',\n offset: '(array|string|function)',\n container: '(string|element|boolean)',\n fallbackPlacements: 'array',\n boundary: '(string|element)',\n customClass: '(string|function)',\n sanitize: 'boolean',\n sanitizeFn: '(null|function)',\n allowList: 'object',\n popperConfig: '(null|object|function)'\n };\n var AttachmentMap = {\n AUTO: 'auto',\n TOP: 'top',\n RIGHT: isRTL ? 'left' : 'right',\n BOTTOM: 'bottom',\n LEFT: isRTL ? 'right' : 'left'\n };\n var Default = {\n animation: true,\n template: '<div class=\"tooltip\" role=\"tooltip\">' + '<div class=\"tooltip-arrow\"></div>' + '<div class=\"tooltip-inner\"></div>' + '</div>',\n trigger: 'hover focus',\n title: '',\n delay: 0,\n html: false,\n selector: false,\n placement: 'top',\n offset: [0, 0],\n container: false,\n fallbackPlacements: ['top', 'right', 'bottom', 'left'],\n boundary: 'clippingParents',\n customClass: '',\n sanitize: true,\n sanitizeFn: null,\n allowList: DefaultAllowlist,\n popperConfig: null\n };\n var Event$1 = {\n HIDE: \"hide\" + EVENT_KEY,\n HIDDEN: \"hidden\" + EVENT_KEY,\n SHOW: \"show\" + EVENT_KEY,\n SHOWN: \"shown\" + EVENT_KEY,\n INSERTED: \"inserted\" + EVENT_KEY,\n CLICK: \"click\" + EVENT_KEY,\n FOCUSIN: \"focusin\" + EVENT_KEY,\n FOCUSOUT: \"focusout\" + EVENT_KEY,\n MOUSEENTER: \"mouseenter\" + EVENT_KEY,\n MOUSELEAVE: \"mouseleave\" + EVENT_KEY\n };\n var CLASS_NAME_FADE = 'fade';\n var CLASS_NAME_MODAL = 'modal';\n var CLASS_NAME_SHOW = 'show';\n var HOVER_STATE_SHOW = 'show';\n var HOVER_STATE_OUT = 'out';\n var SELECTOR_TOOLTIP_INNER = '.tooltip-inner';\n var TRIGGER_HOVER = 'hover';\n var TRIGGER_FOCUS = 'focus';\n var TRIGGER_CLICK = 'click';\n var TRIGGER_MANUAL = 'manual';\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n var Tooltip = /*#__PURE__*/function (_BaseComponent) {\n _inheritsLoose(Tooltip, _BaseComponent);\n\n function Tooltip(element, config) {\n var _this;\n\n if (typeof Popper__namespace === 'undefined') {\n throw new TypeError('Bootstrap\\'s tooltips require Popper (https://popper.js.org)');\n }\n\n _this = _BaseComponent.call(this, element) || this; // private\n\n _this._isEnabled = true;\n _this._timeout = 0;\n _this._hoverState = '';\n _this._activeTrigger = {};\n _this._popper = null; // Protected\n\n _this.config = _this._getConfig(config);\n _this.tip = null;\n\n _this._setListeners();\n\n return _this;\n } // Getters\n\n\n var _proto = Tooltip.prototype;\n\n // Public\n _proto.enable = function enable() {\n this._isEnabled = true;\n };\n\n _proto.disable = function disable() {\n this._isEnabled = false;\n };\n\n _proto.toggleEnabled = function toggleEnabled() {\n this._isEnabled = !this._isEnabled;\n };\n\n _proto.toggle = function toggle(event) {\n if (!this._isEnabled) {\n return;\n }\n\n if (event) {\n var context = this._initializeOnDelegatedTarget(event);\n\n context._activeTrigger.click = !context._activeTrigger.click;\n\n if (context._isWithActiveTrigger()) {\n context._enter(null, context);\n } else {\n context._leave(null, context);\n }\n } else {\n if (this.getTipElement().classList.contains(CLASS_NAME_SHOW)) {\n this._leave(null, this);\n\n return;\n }\n\n this._enter(null, this);\n }\n };\n\n _proto.dispose = function dispose() {\n clearTimeout(this._timeout);\n EventHandler__default['default'].off(this._element, this.constructor.EVENT_KEY);\n EventHandler__default['default'].off(this._element.closest(\".\" + CLASS_NAME_MODAL), 'hide.bs.modal', this._hideModalHandler);\n\n if (this.tip && this.tip.parentNode) {\n this.tip.parentNode.removeChild(this.tip);\n }\n\n this._isEnabled = null;\n this._timeout = null;\n this._hoverState = null;\n this._activeTrigger = null;\n\n if (this._popper) {\n this._popper.destroy();\n }\n\n this._popper = null;\n this.config = null;\n this.tip = null;\n\n _BaseComponent.prototype.dispose.call(this);\n };\n\n _proto.show = function show() {\n var _this2 = this;\n\n if (this._element.style.display === 'none') {\n throw new Error('Please use show on visible elements');\n }\n\n if (!(this.isWithContent() && this._isEnabled)) {\n return;\n }\n\n var showEvent = EventHandler__default['default'].trigger(this._element, this.constructor.Event.SHOW);\n var shadowRoot = findShadowRoot(this._element);\n var isInTheDom = shadowRoot === null ? this._element.ownerDocument.documentElement.contains(this._element) : shadowRoot.contains(this._element);\n\n if (showEvent.defaultPrevented || !isInTheDom) {\n return;\n }\n\n var tip = this.getTipElement();\n var tipId = getUID(this.constructor.NAME);\n tip.setAttribute('id', tipId);\n\n this._element.setAttribute('aria-describedby', tipId);\n\n this.setContent();\n\n if (this.config.animation) {\n tip.classList.add(CLASS_NAME_FADE);\n }\n\n var placement = typeof this.config.placement === 'function' ? this.config.placement.call(this, tip, this._element) : this.config.placement;\n\n var attachment = this._getAttachment(placement);\n\n this._addAttachmentClass(attachment);\n\n var container = this._getContainer();\n\n Data__default['default'].setData(tip, this.constructor.DATA_KEY, this);\n\n if (!this._element.ownerDocument.documentElement.contains(this.tip)) {\n container.appendChild(tip);\n }\n\n EventHandler__default['default'].trigger(this._element, this.constructor.Event.INSERTED);\n this._popper = Popper.createPopper(this._element, tip, this._getPopperConfig(attachment));\n tip.classList.add(CLASS_NAME_SHOW);\n var customClass = typeof this.config.customClass === 'function' ? this.config.customClass() : this.config.customClass;\n\n if (customClass) {\n var _tip$classList;\n\n (_tip$classList = tip.classList).add.apply(_tip$classList, customClass.split(' '));\n } // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n\n\n if ('ontouchstart' in document.documentElement) {\n var _ref;\n\n (_ref = []).concat.apply(_ref, document.body.children).forEach(function (element) {\n EventHandler__default['default'].on(element, 'mouseover', noop());\n });\n }\n\n var complete = function complete() {\n var prevHoverState = _this2._hoverState;\n _this2._hoverState = null;\n EventHandler__default['default'].trigger(_this2._element, _this2.constructor.Event.SHOWN);\n\n if (prevHoverState === HOVER_STATE_OUT) {\n _this2._leave(null, _this2);\n }\n };\n\n if (this.tip.classList.contains(CLASS_NAME_FADE)) {\n var transitionDuration = getTransitionDurationFromElement(this.tip);\n EventHandler__default['default'].one(this.tip, 'transitionend', complete);\n emulateTransitionEnd(this.tip, transitionDuration);\n } else {\n complete();\n }\n };\n\n _proto.hide = function hide() {\n var _this3 = this;\n\n if (!this._popper) {\n return;\n }\n\n var tip = this.getTipElement();\n\n var complete = function complete() {\n if (_this3._hoverState !== HOVER_STATE_SHOW && tip.parentNode) {\n tip.parentNode.removeChild(tip);\n }\n\n _this3._cleanTipClass();\n\n _this3._element.removeAttribute('aria-describedby');\n\n EventHandler__default['default'].trigger(_this3._element, _this3.constructor.Event.HIDDEN);\n\n if (_this3._popper) {\n _this3._popper.destroy();\n\n _this3._popper = null;\n }\n };\n\n var hideEvent = EventHandler__default['default'].trigger(this._element, this.constructor.Event.HIDE);\n\n if (hideEvent.defaultPrevented) {\n return;\n }\n\n tip.classList.remove(CLASS_NAME_SHOW); // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n\n if ('ontouchstart' in document.documentElement) {\n var _ref2;\n\n (_ref2 = []).concat.apply(_ref2, document.body.children).forEach(function (element) {\n return EventHandler__default['default'].off(element, 'mouseover', noop);\n });\n }\n\n this._activeTrigger[TRIGGER_CLICK] = false;\n this._activeTrigger[TRIGGER_FOCUS] = false;\n this._activeTrigger[TRIGGER_HOVER] = false;\n\n if (this.tip.classList.contains(CLASS_NAME_FADE)) {\n var transitionDuration = getTransitionDurationFromElement(tip);\n EventHandler__default['default'].one(tip, 'transitionend', complete);\n emulateTransitionEnd(tip, transitionDuration);\n } else {\n complete();\n }\n\n this._hoverState = '';\n };\n\n _proto.update = function update() {\n if (this._popper !== null) {\n this._popper.update();\n }\n } // Protected\n ;\n\n _proto.isWithContent = function isWithContent() {\n return Boolean(this.getTitle());\n };\n\n _proto.getTipElement = function getTipElement() {\n if (this.tip) {\n return this.tip;\n }\n\n var element = document.createElement('div');\n element.innerHTML = this.config.template;\n this.tip = element.children[0];\n return this.tip;\n };\n\n _proto.setContent = function setContent() {\n var tip = this.getTipElement();\n this.setElementContent(SelectorEngine__default['default'].findOne(SELECTOR_TOOLTIP_INNER, tip), this.getTitle());\n tip.classList.remove(CLASS_NAME_FADE, CLASS_NAME_SHOW);\n };\n\n _proto.setElementContent = function setElementContent(element, content) {\n if (element === null) {\n return;\n }\n\n if (typeof content === 'object' && isElement(content)) {\n if (content.jquery) {\n content = content[0];\n } // content is a DOM node or a jQuery\n\n\n if (this.config.html) {\n if (content.parentNode !== element) {\n element.innerHTML = '';\n element.appendChild(content);\n }\n } else {\n element.textContent = content.textContent;\n }\n\n return;\n }\n\n if (this.config.html) {\n if (this.config.sanitize) {\n content = sanitizeHtml(content, this.config.allowList, this.config.sanitizeFn);\n }\n\n element.innerHTML = content;\n } else {\n element.textContent = content;\n }\n };\n\n _proto.getTitle = function getTitle() {\n var title = this._element.getAttribute('data-bs-original-title');\n\n if (!title) {\n title = typeof this.config.title === 'function' ? this.config.title.call(this._element) : this.config.title;\n }\n\n return title;\n };\n\n _proto.updateAttachment = function updateAttachment(attachment) {\n if (attachment === 'right') {\n return 'end';\n }\n\n if (attachment === 'left') {\n return 'start';\n }\n\n return attachment;\n } // Private\n ;\n\n _proto._initializeOnDelegatedTarget = function _initializeOnDelegatedTarget(event, context) {\n var dataKey = this.constructor.DATA_KEY;\n context = context || Data__default['default'].getData(event.delegateTarget, dataKey);\n\n if (!context) {\n context = new this.constructor(event.delegateTarget, this._getDelegateConfig());\n Data__default['default'].setData(event.delegateTarget, dataKey, context);\n }\n\n return context;\n };\n\n _proto._getOffset = function _getOffset() {\n var _this4 = this;\n\n var offset = this.config.offset;\n\n if (typeof offset === 'string') {\n return offset.split(',').map(function (val) {\n return Number.parseInt(val, 10);\n });\n }\n\n if (typeof offset === 'function') {\n return function (popperData) {\n return offset(popperData, _this4._element);\n };\n }\n\n return offset;\n };\n\n _proto._getPopperConfig = function _getPopperConfig(attachment) {\n var _this5 = this;\n\n var defaultBsPopperConfig = {\n placement: attachment,\n modifiers: [{\n name: 'flip',\n options: {\n altBoundary: true,\n fallbackPlacements: this.config.fallbackPlacements\n }\n }, {\n name: 'offset',\n options: {\n offset: this._getOffset()\n }\n }, {\n name: 'preventOverflow',\n options: {\n boundary: this.config.boundary\n }\n }, {\n name: 'arrow',\n options: {\n element: \".\" + this.constructor.NAME + \"-arrow\"\n }\n }, {\n name: 'onChange',\n enabled: true,\n phase: 'afterWrite',\n fn: function fn(data) {\n return _this5._handlePopperPlacementChange(data);\n }\n }],\n onFirstUpdate: function onFirstUpdate(data) {\n if (data.options.placement !== data.placement) {\n _this5._handlePopperPlacementChange(data);\n }\n }\n };\n return _extends({}, defaultBsPopperConfig, typeof this.config.popperConfig === 'function' ? this.config.popperConfig(defaultBsPopperConfig) : this.config.popperConfig);\n };\n\n _proto._addAttachmentClass = function _addAttachmentClass(attachment) {\n this.getTipElement().classList.add(CLASS_PREFIX + \"-\" + this.updateAttachment(attachment));\n };\n\n _proto._getContainer = function _getContainer() {\n if (this.config.container === false) {\n return document.body;\n }\n\n if (isElement(this.config.container)) {\n return this.config.container;\n }\n\n return SelectorEngine__default['default'].findOne(this.config.container);\n };\n\n _proto._getAttachment = function _getAttachment(placement) {\n return AttachmentMap[placement.toUpperCase()];\n };\n\n _proto._setListeners = function _setListeners() {\n var _this6 = this;\n\n var triggers = this.config.trigger.split(' ');\n triggers.forEach(function (trigger) {\n if (trigger === 'click') {\n EventHandler__default['default'].on(_this6._element, _this6.constructor.Event.CLICK, _this6.config.selector, function (event) {\n return _this6.toggle(event);\n });\n } else if (trigger !== TRIGGER_MANUAL) {\n var eventIn = trigger === TRIGGER_HOVER ? _this6.constructor.Event.MOUSEENTER : _this6.constructor.Event.FOCUSIN;\n var eventOut = trigger === TRIGGER_HOVER ? _this6.constructor.Event.MOUSELEAVE : _this6.constructor.Event.FOCUSOUT;\n EventHandler__default['default'].on(_this6._element, eventIn, _this6.config.selector, function (event) {\n return _this6._enter(event);\n });\n EventHandler__default['default'].on(_this6._element, eventOut, _this6.config.selector, function (event) {\n return _this6._leave(event);\n });\n }\n });\n\n this._hideModalHandler = function () {\n if (_this6._element) {\n _this6.hide();\n }\n };\n\n EventHandler__default['default'].on(this._element.closest(\".\" + CLASS_NAME_MODAL), 'hide.bs.modal', this._hideModalHandler);\n\n if (this.config.selector) {\n this.config = _extends({}, this.config, {\n trigger: 'manual',\n selector: ''\n });\n } else {\n this._fixTitle();\n }\n };\n\n _proto._fixTitle = function _fixTitle() {\n var title = this._element.getAttribute('title');\n\n var originalTitleType = typeof this._element.getAttribute('data-bs-original-title');\n\n if (title || originalTitleType !== 'string') {\n this._element.setAttribute('data-bs-original-title', title || '');\n\n if (title && !this._element.getAttribute('aria-label') && !this._element.textContent) {\n this._element.setAttribute('aria-label', title);\n }\n\n this._element.setAttribute('title', '');\n }\n };\n\n _proto._enter = function _enter(event, context) {\n context = this._initializeOnDelegatedTarget(event, context);\n\n if (event) {\n context._activeTrigger[event.type === 'focusin' ? TRIGGER_FOCUS : TRIGGER_HOVER] = true;\n }\n\n if (context.getTipElement().classList.contains(CLASS_NAME_SHOW) || context._hoverState === HOVER_STATE_SHOW) {\n context._hoverState = HOVER_STATE_SHOW;\n return;\n }\n\n clearTimeout(context._timeout);\n context._hoverState = HOVER_STATE_SHOW;\n\n if (!context.config.delay || !context.config.delay.show) {\n context.show();\n return;\n }\n\n context._timeout = setTimeout(function () {\n if (context._hoverState === HOVER_STATE_SHOW) {\n context.show();\n }\n }, context.config.delay.show);\n };\n\n _proto._leave = function _leave(event, context) {\n context = this._initializeOnDelegatedTarget(event, context);\n\n if (event) {\n context._activeTrigger[event.type === 'focusout' ? TRIGGER_FOCUS : TRIGGER_HOVER] = false;\n }\n\n if (context._isWithActiveTrigger()) {\n return;\n }\n\n clearTimeout(context._timeout);\n context._hoverState = HOVER_STATE_OUT;\n\n if (!context.config.delay || !context.config.delay.hide) {\n context.hide();\n return;\n }\n\n context._timeout = setTimeout(function () {\n if (context._hoverState === HOVER_STATE_OUT) {\n context.hide();\n }\n }, context.config.delay.hide);\n };\n\n _proto._isWithActiveTrigger = function _isWithActiveTrigger() {\n for (var trigger in this._activeTrigger) {\n if (this._activeTrigger[trigger]) {\n return true;\n }\n }\n\n return false;\n };\n\n _proto._getConfig = function _getConfig(config) {\n var dataAttributes = Manipulator__default['default'].getDataAttributes(this._element);\n Object.keys(dataAttributes).forEach(function (dataAttr) {\n if (DISALLOWED_ATTRIBUTES.has(dataAttr)) {\n delete dataAttributes[dataAttr];\n }\n });\n\n if (config && typeof config.container === 'object' && config.container.jquery) {\n config.container = config.container[0];\n }\n\n config = _extends({}, this.constructor.Default, dataAttributes, typeof config === 'object' && config ? config : {});\n\n if (typeof config.delay === 'number') {\n config.delay = {\n show: config.delay,\n hide: config.delay\n };\n }\n\n if (typeof config.title === 'number') {\n config.title = config.title.toString();\n }\n\n if (typeof config.content === 'number') {\n config.content = config.content.toString();\n }\n\n typeCheckConfig(NAME, config, this.constructor.DefaultType);\n\n if (config.sanitize) {\n config.template = sanitizeHtml(config.template, config.allowList, config.sanitizeFn);\n }\n\n return config;\n };\n\n _proto._getDelegateConfig = function _getDelegateConfig() {\n var config = {};\n\n if (this.config) {\n for (var key in this.config) {\n if (this.constructor.Default[key] !== this.config[key]) {\n config[key] = this.config[key];\n }\n }\n }\n\n return config;\n };\n\n _proto._cleanTipClass = function _cleanTipClass() {\n var tip = this.getTipElement();\n var tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX);\n\n if (tabClass !== null && tabClass.length > 0) {\n tabClass.map(function (token) {\n return token.trim();\n }).forEach(function (tClass) {\n return tip.classList.remove(tClass);\n });\n }\n };\n\n _proto._handlePopperPlacementChange = function _handlePopperPlacementChange(popperData) {\n var state = popperData.state;\n\n if (!state) {\n return;\n }\n\n this.tip = state.elements.popper;\n\n this._cleanTipClass();\n\n this._addAttachmentClass(this._getAttachment(state.placement));\n } // Static\n ;\n\n Tooltip.jQueryInterface = function jQueryInterface(config) {\n return this.each(function () {\n var data = Data__default['default'].getData(this, DATA_KEY);\n\n var _config = typeof config === 'object' && config;\n\n if (!data && /dispose|hide/.test(config)) {\n return;\n }\n\n if (!data) {\n data = new Tooltip(this, _config);\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(\"No method named \\\"\" + config + \"\\\"\");\n }\n\n data[config]();\n }\n });\n };\n\n _createClass(Tooltip, null, [{\n key: \"Default\",\n get: function get() {\n return Default;\n }\n }, {\n key: \"NAME\",\n get: function get() {\n return NAME;\n }\n }, {\n key: \"DATA_KEY\",\n get: function get() {\n return DATA_KEY;\n }\n }, {\n key: \"Event\",\n get: function get() {\n return Event$1;\n }\n }, {\n key: \"EVENT_KEY\",\n get: function get() {\n return EVENT_KEY;\n }\n }, {\n key: \"DefaultType\",\n get: function get() {\n return DefaultType;\n }\n }]);\n\n return Tooltip;\n }(BaseComponent__default['default']);\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Tooltip to jQuery only if jQuery is present\n */\n\n\n defineJQueryPlugin(NAME, Tooltip);\n\n return Tooltip;\n\n})));\n//# sourceMappingURL=tooltip.js.map\n\nfunction bruh_moment(){\n\talert('this is a bruh moment')\n}\n\nfunction get_smiles_from_element_text(el_id){\n\tvar inputVal = document.getElementById(el_id).value;\n\tlet url = `https://pubchem.ncbi.nlm.nih.gov/rest/pug/compound/name/${inputVal}/property/CanonicalSMILES/JSON`;\n\tconsole.log(url)\n\tfetch(url)\n\t.then(res => res.json())\n\t.then((out) => {\n\t console.log('Aye, got that dub from PubChem');\n\t //console.log(out[\"PropertyTable\"][\"Properties\"][0][\"CanonicalSMILES\"])\n\t document.getElementById(\"inputSMILES\").value = out[\"PropertyTable\"][\"Properties\"][0][\"CanonicalSMILES\"]\n\t})\n\t.catch(err => { \n\t\tbruh_moment()\n\t\tthrow err });\n}\n\n\nfunction draw_me_like_one_of_your_french_girls(mol){\n\t\n\tmol.condense_abbreviations();\n\tvar canvas = document.getElementById(\"draw-canvas-2\");\n\tmol.draw_to_canvas(canvas, -1, -1);\n}\n\n\nfunction calculate_and_disperse(mol){\n\ttry {\n\t\tvar descrs = JSON.parse(mol.get_descriptors());\n\t} catch(err) {\n\t\talert(\"oo wee, failed to calculate descriptors senpai\")\n\t}\n\t//document.getElementById('exactmw').textContent = descrs[\"exactmw\"];\n\t//document.getElementById('CrippenMR').textContent = descrs[\"CrippenMR\"];\n\t//document.getElementById('CrippenClogP').textContent = descrs[\"CrippenClogP\"];\n\tlet tableRef = document.getElementById(\"analyse_table\");\n\tconst keys = Object.keys(descrs);\n\t\tfor (let i = 0; i < keys.length; i++) {\n\t\t const key = keys[i];\n\t\t console.log(key, descrs[key]);\n\t\t var newRow = tableRef.insertRow(-1);\n\t \tvar newCell_label = newRow.insertCell(0);\n\t \tvar newCell_value = newRow.insertCell(-1);\n\t \tvar newText_label = document.createTextNode(key);\n\t \tvar newText_value = document.createTextNode(descrs[key]);\n\t \tnewCell_label.appendChild(newText_label);\n\t \tnewCell_value.appendChild(newText_value);\n\t\t}\n\t\n\n\n}\n\nfunction analyse_me_senpai(smile_pwiz) {\n\tvar smiles = document.getElementById(smile_pwiz).value;\n\tvar mol = Module.get_mol(smiles);\n\tdraw_me_like_one_of_your_french_girls(mol);\n\tcalculate_and_disperse(mol);\n}"],"names":["bruh_moment","alert","get_smiles_from_element_text","el_id","url","document","getElementById","value","console","log","fetch","then","res","json","out","catch","err","draw_me_like_one_of_your_french_girls","mol","condense_abbreviations","canvas","draw_to_canvas","calculate_and_disperse","descrs","JSON","parse","get_descriptors","tableRef","keys","Object","i","length","key","newRow","insertRow","newCell_label","insertCell","newCell_value","newText_label","createTextNode","newText_value","appendChild","analyse_me_senpai","smile_pwiz","smiles","Module","get_mol","global","factory","exports","module","define","amd","Popper","this","isBrowser","window","navigator","timeoutDuration","longerTimeoutBrowsers","userAgent","indexOf","debounce","Promise","fn","called","resolve","scheduled","setTimeout","isFunction","functionToCheck","toString","call","getStyleComputedProperty","element","property","nodeType","css","ownerDocument","defaultView","getComputedStyle","getParentNode","nodeName","parentNode","host","getScrollParent","body","_getStyleComputedProp","overflow","overflowX","overflowY","test","getReferenceNode","reference","referenceNode","isIE11","MSInputMethodContext","documentMode","isIE10","isIE","version","getOffsetParent","documentElement","noOffsetParent","offsetParent","nextElementSibling","getRoot","node","findCommonOffsetParent","element1","element2","order","compareDocumentPosition","Node","DOCUMENT_POSITION_FOLLOWING","start","end","range","createRange","setStart","setEnd","commonAncestorContainer","contains","firstElementChild","element1root","getScroll","upperSide","arguments","undefined","html","scrollingElement","getBordersSize","styles","axis","sideA","sideB","parseFloat","getSize","computedStyle","Math","max","parseInt","getWindowSizes","height","width","classCallCheck","instance","Constructor","TypeError","createClass","protoProps","staticProps","defineProperties","prototype","target","props","descriptor","enumerable","configurable","writable","defineProperty","obj","_extends","assign","source","hasOwnProperty","getClientRect","offsets","right","left","bottom","top","getBoundingClientRect","rect","scrollTop","scrollLeft","e","result","sizes","clientWidth","clientHeight","horizScrollbar","offsetWidth","vertScrollbar","offsetHeight","getOffsetRectRelativeToArbitraryNode","children","parent","fixedPosition","isHTML","childrenRect","parentRect","scrollParent","borderTopWidth","borderLeftWidth","marginTop","marginLeft","subtract","modifier","includeScroll","getFixedPositionOffsetParent","parentElement","el","getBoundaries","popper","padding","boundariesElement","boundaries","excludeScroll","relativeOffset","innerWidth","innerHeight","getViewportOffsetRectRelativeToArtbitraryNode","boundariesNode","isFixed","_getWindowSizes","isPaddingNumber","computeAutoPlacement","placement","refRect","rects","sortedAreas","map","area","_ref","sort","a","b","filteredAreas","filter","_ref2","computedPlacement","variation","split","getReferenceOffsets","state","getOuterSizes","x","marginBottom","y","marginRight","getOppositePlacement","hash","replace","matched","getPopperOffsets","referenceOffsets","popperRect","popperOffsets","isHoriz","mainSide","secondarySide","measurement","secondaryMeasurement","find","arr","check","Array","runModifiers","modifiers","data","ends","slice","prop","findIndex","cur","match","forEach","warn","enabled","isModifierEnabled","modifierName","some","name","getSupportedPropertyName","prefixes","upperProp","charAt","toUpperCase","prefix","toCheck","style","getWindow","setupEventListeners","options","updateBound","addEventListener","passive","scrollElement","attachToScrollParents","event","callback","scrollParents","isBody","push","eventsEnabled","disableEventListeners","cancelAnimationFrame","scheduleUpdate","removeEventListener","isNumeric","n","isNaN","isFinite","setStyles","unit","isFirefox","isModifierRequired","requestingName","requestedName","requesting","isRequired","_requesting","placements","validPlacements","clockwise","counter","index","concat","reverse","BEHAVIORS","parseOffset","offset","basePlacement","useHeight","fragments","frag","trim","divider","search","splitRegex","op","mergeWithPrevious","reduce","str","toValue","index2","Defaults","positionFixed","removeOnDestroy","onCreate","onUpdate","shift","side","shiftvariation","_data$offsets","isVertical","shiftOffsets","preventOverflow","transformProp","popperStyles","transform","priority","primary","escapeWithReference","secondary","min","keepTogether","floor","opSide","arrow","arrowElement","querySelector","len","sideCapitalized","toLowerCase","altSide","arrowElementSize","center","popperMarginSide","popperBorderSide","sideValue","_data$offsets$arrow","round","flip","flipped","originalPlacement","placementOpposite","flipOrder","behavior","step","refOffsets","overlapsRef","overflowsLeft","overflowsRight","overflowsTop","overflowsBottom","overflowsBoundaries","flippedVariationByRef","flipVariations","flippedVariationByContent","flipVariationsByContent","flippedVariation","inner","subtractLength","hide","bound","attributes","computeStyle","legacyGpuAccelerationOption","gpuAcceleration","popperWidth","offsetParentRect","position","shouldRound","devicePixelRatio","noRound","v","referenceWidth","isVariation","horizontalToInteger","verticalToInteger","prefixedProperty","willChange","invertLeft","x-placement","arrowStyles","applyStyle","setAttribute","removeAttribute","onLoad","modifierOptions","isDestroyed","isCreated","removeChild","_this","requestAnimationFrame","update","bind","jquery","enableEventListeners","Utils","PopperUtils","require","globalThis","self","Alert","Data","EventHandler","Base","BaseComponent","_interopDefaultLegacy","default","Data__default","EventHandler__default","_defineProperties","_setPrototypeOf","o","p","setPrototypeOf","__proto__","emulateTransitionEnd","duration","emulatedDuration","TRANSITION_END","listener","dispatchEvent","Event","dir","plugin","DATA_KEY","EVENT_KEY","_BaseComponent","apply","superClass","subClass","create","constructor","_proto","close","rootElement","_getRootElement","_element","customEvent","_triggerCloseEvent","defaultPrevented","_removeElement","selector","getAttribute","hrefAttr","includes","startsWith","getSelector","getElementFromSelector","closest","trigger","transitionDuration","classList","remove","_window$getComputedSt","transitionDelay","floatTransitionDuration","Number","floatTransitionDelay","getTransitionDurationFromElement","one","_destroyElement","jQueryInterface","config","each","getData","handleDismiss","alertInstance","preventDefault","get","on","jQuery","JQUERY_NO_CONFLICT","$","hasAttribute","noConflict","readyState","Button","SELECTOR_DATA_TOGGLE","toggle","button","Carousel","Manipulator","SelectorEngine","Manipulator__default","SelectorEngine__default","triggerTransitionEnd","typeCheckConfig","componentName","configTypes","expectedTypes","valueType","RegExp","isRTL","NAME","DATA_API_KEY","Default","interval","keyboard","slide","pause","wrap","touch","DefaultType","DIRECTION_NEXT","DIRECTION_PREV","EVENT_SLID","CLASS_NAME_ACTIVE","SELECTOR_ACTIVE_ITEM","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","touchStartX","touchDeltaX","_config","_getConfig","_indicatorsElement","findOne","_touchSupported","maxTouchPoints","_pointerEvent","Boolean","PointerEvent","_addEventListeners","next","_slide","nextWhenVisible","hidden","elementStyle","parentNodeStyle","display","visibility","isVisible","prev","cycle","clearInterval","_updateInterval","setInterval","visibilityState","to","_this2","activeIndex","_getItemIndex","dispose","off","_handleSwipe","absDeltax","abs","direction","_this3","_keydown","_addTouchEventListeners","_this4","pointerType","touches","clientX","clearTimeout","itemImg","add","tagName","_getItemByDirection","activeElement","isNextDirection","isPrevDirection","lastItemIndex","itemIndex","_triggerSlideEvent","relatedTarget","eventDirectionName","targetIndex","fromIndex","from","_setActiveIndicatorElement","activeIndicator","indicators","elementInterval","defaultInterval","_this5","activeElementIndex","nextElement","nextElementIndex","isCycling","directionalClassName","orderClassName","carouselInterface","getDataAttributes","action","ride","dataApiClickHandler","slideIndex","carousels","Collapse","getSelectorFromElement","isElement","CLASS_NAME_SHOW","CLASS_NAME_COLLAPSE","CLASS_NAME_COLLAPSING","CLASS_NAME_COLLAPSED","_isTransitioning","_triggerArray","id","toggleList","elem","filterElement","foundElem","_selector","_parent","_getParent","_addAriaAndCollapsedClass","show","actives","dimension","container","activesData","tempActiveData","elemActive","collapseInterface","setData","_getDimension","setTransitioning","scrollSize","triggerArrayLength","isTransitioning","selected","triggerArray","isOpen","delegateTarget","triggerData","Dropdown","_interopNamespace","__esModule","k","d","getOwnPropertyDescriptor","freeze","Popper__namespace","BaseComponent__default","noop","ESCAPE_KEY","ARROW_UP_KEY","ARROW_DOWN_KEY","REGEXP_KEYDOWN","EVENT_HIDE","EVENT_HIDDEN","EVENT_CLICK_DATA_API","EVENT_KEYDOWN_DATA_API","CLASS_NAME_DISABLED","SELECTOR_MENU","PLACEMENT_TOP","PLACEMENT_TOPEND","PLACEMENT_BOTTOM","PLACEMENT_BOTTOMEND","PLACEMENT_RIGHT","PLACEMENT_LEFT","boundary","popperConfig","_popper","_menu","_getMenuElement","_inNavbar","_detectNavbar","isActive","disabled","clearMenus","getParentFromElement","setDataAttribute","referenceElement","_getPopperConfig","isDisplayStatic","createPopper","focus","destroy","removeDataAttribute","stopPropagation","_getPlacement","parentDropdown","isEnd","getPropertyValue","_getOffset","val","popperData","defaultBsPopperConfig","altBoundary","dropdownInterface","type","toggles","dropdownMenu","context","clickEvent","dataApiKeydownHandler","matches","items","click","Modal","reflow","backdrop","EVENT_SHOW","EVENT_FOCUSIN","EVENT_RESIZE","EVENT_CLICK_DISMISS","EVENT_KEYDOWN_DISMISS","EVENT_MOUSEDOWN_DISMISS","CLASS_NAME_OPEN","CLASS_NAME_FADE","CLASS_NAME_STATIC","SELECTOR_FIXED_CONTENT","SELECTOR_STICKY_CONTENT","_dialog","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_scrollbarWidth","showEvent","_checkScrollbar","_setScrollbar","_adjustDialog","_setEscapeEvent","_setResizeEvent","_showBackdrop","_showElement","transition","_hideModal","htmlElement","handleUpdate","modalBody","ELEMENT_NODE","_enforceFocus","transitionComplete","_this6","_triggerBackdropTransition","_this7","_this8","_resetAdjustments","_resetScrollbar","_removeBackdrop","_backdropTransitionDuration","_this9","animate","createElement","className","currentTarget","backdropTransitionDuration","callbackRemove","isModalOverflowing","modalTransitionDuration","_this10","scrollHeight","paddingLeft","paddingRight","_getScrollbarWidth","_this11","_setElementAttributes","calculatedValue","styleProp","actualValue","_resetElementAttributes","getDataAttribute","scrollDiv","scrollbarWidth","_this12","Popover","Tooltip","Tooltip__default","CLASS_PREFIX","BSCLS_PREFIX_REGEX","content","template","HIDE","HIDDEN","SHOW","SHOWN","INSERTED","CLICK","FOCUSIN","FOCUSOUT","MOUSEENTER","MOUSELEAVE","_Tooltip","isWithContent","getTitle","_getContent","setContent","tip","getTipElement","setElementContent","_addAttachmentClass","attachment","updateAttachment","_cleanTipClass","tabClass","token","tClass","ScrollSpy","method","CLASS_NAME_DROPDOWN_ITEM","SELECTOR_NAV_LINKS","SELECTOR_LIST_ITEMS","METHOD_POSITION","_scrollElement","_offsets","_targets","_activeTarget","_scrollHeight","_process","refresh","autoMethod","offsetMethod","offsetBase","_getScrollTop","_getScrollHeight","targetSelector","targetBCR","item","random","getUID","pageYOffset","_getOffsetHeight","maxScroll","_activate","_clear","queries","link","join","parents","listGroup","navItem","spy","Tab","SELECTOR_ACTIVE","SELECTOR_ACTIVE_UL","previous","hideEvent","complete","listElement","itemSelector","active","_transitionComplete","dropdownChild","dropdown","Toast","CLASS_NAME_SHOWING","animation","autohide","delay","_timeout","_setListeners","_clearTimeout","findShadowRoot","attachShadow","getRootNode","ShadowRoot","root","uriAttrs","Set","SAFE_URL_PATTERN","DATA_URL_PATTERN","DefaultAllowlist","*","br","col","code","div","em","hr","h1","h2","h3","h4","h5","h6","img","li","ol","pre","s","small","span","sub","sup","strong","u","ul","sanitizeHtml","unsafeHtml","allowList","sanitizeFn","createdDocument","DOMParser","parseFromString","allowlistKeys","elements","querySelectorAll","_loop","elName","attributeList","allowedAttributes","attr","allowedAttributeList","attrName","has","nodeValue","regExp","attrRegex","allowedAttribute","innerHTML","DISALLOWED_ATTRIBUTES","title","fallbackPlacements","customClass","sanitize","AttachmentMap","AUTO","TOP","RIGHT","BOTTOM","LEFT","Event$1","HOVER_STATE_SHOW","TRIGGER_HOVER","TRIGGER_FOCUS","_isEnabled","_hoverState","_activeTrigger","enable","disable","toggleEnabled","_initializeOnDelegatedTarget","_isWithActiveTrigger","_enter","_leave","_hideModalHandler","_tip$classList","Error","isInTheDom","shadowRoot","tipId","_getAttachment","_getContainer","prevHoverState","textContent","dataKey","_getDelegateConfig","phase","_handlePopperPlacementChange","onFirstUpdate","eventIn","eventOut","_fixTitle","originalTitleType","dataAttributes","dataAttr"],"mappings":"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"} \ No newline at end of file
diff --git a/docs/js/my.js b/docs/js/my.js
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/docs/js/my.js
diff --git a/docs/js/my.min.js b/docs/js/my.min.js
new file mode 100644
index 0000000..d307c69
--- /dev/null
+++ b/docs/js/my.min.js
@@ -0,0 +1,2 @@
+
+//# sourceMappingURL=my.min.js.map
diff --git a/docs/js/my.min.js.map b/docs/js/my.min.js.map
new file mode 100644
index 0000000..b810185
--- /dev/null
+++ b/docs/js/my.min.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"my.min.js","sources":[],"sourcesContent":[],"names":[],"mappings":""} \ No newline at end of file