@aibee/crc-bmap 0.2.17 → 0.2.18
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/bmap.cjs.min.js +1 -1
- package/lib/bmap.cjs.min.js.map +2 -2
- package/lib/bmap.esm.js +0 -3
- package/lib/bmap.esm.js.map +2 -2
- package/lib/bmap.esm.min.js +1 -1
- package/lib/bmap.esm.min.js.map +2 -2
- package/lib/bmap.min.js +1 -1
- package/lib/bmap.min.js.map +2 -2
- package/package.json +1 -1
package/lib/bmap.esm.min.js
CHANGED
|
@@ -7513,7 +7513,7 @@ Example:
|
|
|
7513
7513
|
mathjs.config({ number: 'BigNumber' });
|
|
7514
7514
|
`);return Object.freeze(Ui)};bn(he,Ui,{MATRIX_OPTIONS:vu,NUMBER_OPTIONS:_u});var Xi=pn(Vi(),1);function N(r,e,t,n){function i(o){var a=yu(o,e.map(Td));return Md(r,e,o),t(a)}return i.isFactory=!0,i.fn=r,i.dependencies=e.slice().sort(),n&&(i.meta=n),i}function Md(r,e,t){var n=e.filter(o=>!wd(o)).every(o=>t[o]!==void 0);if(!n){var i=e.filter(o=>t[o]===void 0);throw new Error('Cannot create function "'.concat(r,'", ')+"some dependencies are missing: ".concat(i.map(o=>'"'.concat(o,'"')).join(", "),"."))}}function wd(r){return r&&r[0]==="?"}function Td(r){return r&&r[0]==="?"?r.slice(1):r}function tt(r){return typeof r=="boolean"?!0:isFinite(r)?r===Math.round(r):!1}var bu=Math.sign||function(r){return r>0?1:r<0?-1:0},Su=Math.log2||function(e){return Math.log(e)/Math.LN2},Mu=Math.log10||function(e){return Math.log(e)/Math.LN10},wu=Math.log1p||function(r){return Math.log(r+1)},Tu=Math.cbrt||function(e){if(e===0)return e;var t=e<0,n;return t&&(e=-e),isFinite(e)?(n=Math.exp(Math.log(e)/3),n=(e/(n*n)+2*n)/3):n=e,t?-n:n},Cu=Math.expm1||function(e){return e>=2e-4||e<=-2e-4?Math.exp(e)-1:e+e*e/2+e*e*e/6};function Hi(r,e,t){var n={2:"0b",8:"0o",16:"0x"},i=n[e],o="";if(t){if(t<1)throw new Error("size must be in greater than 0");if(!tt(t))throw new Error("size must be an integer");if(r>2**(t-1)-1||r<-(2**(t-1)))throw new Error("Value must be in range [-2^".concat(t-1,", 2^").concat(t-1,"-1]"));if(!tt(r))throw new Error("Value must be an integer");r<0&&(r=r+2**t),o="i".concat(t)}var a="";return r<0&&(r=-r,a="-"),"".concat(a).concat(i).concat(r.toString(e)).concat(o)}function $n(r,e){if(typeof e=="function")return e(r);if(r===1/0)return"Infinity";if(r===-1/0)return"-Infinity";if(isNaN(r))return"NaN";var{notation:t,precision:n,wordSize:i}=Wi(e);switch(t){case"fixed":return qi(r,n);case"exponential":return Au(r,n);case"engineering":return Cd(r,n);case"bin":return Hi(r,2,i);case"oct":return Hi(r,8,i);case"hex":return Hi(r,16,i);case"auto":return Ad(r,n,e).replace(/((\.\d*?)(0+))($|e)/,function(){var o=arguments[2],a=arguments[4];return o!=="."?o+a:a});default:throw new Error('Unknown notation "'+t+'". Choose "auto", "exponential", "fixed", "bin", "oct", or "hex.')}}function Wi(r){var e="auto",t,n;if(r!==void 0)if(nt(r))t=r;else if(it(r))t=r.toNumber();else if(wn(r))r.precision!==void 0&&(t=xu(r.precision,()=>{throw new Error('Option "precision" must be a number or BigNumber')})),r.wordSize!==void 0&&(n=xu(r.wordSize,()=>{throw new Error('Option "wordSize" must be a number or BigNumber')})),r.notation&&(e=r.notation);else throw new Error("Unsupported type of options, number, BigNumber, or object expected");return{notation:e,precision:t,wordSize:n}}function Cn(r){var e=String(r).toLowerCase().match(/^(-?)(\d+\.?\d*)(e([+-]?\d+))?$/);if(!e)throw new SyntaxError("Invalid number "+r);var t=e[1],n=e[2],i=parseFloat(e[4]||"0"),o=n.indexOf(".");i+=o!==-1?o-1:n.length-1;var a=n.replace(".","").replace(/^0*/,function(c){return i-=c.length,""}).replace(/0*$/,"").split("").map(function(c){return parseInt(c)});return a.length===0&&(a.push(0),i++),{sign:t,coefficients:a,exponent:i}}function Cd(r,e){if(isNaN(r)||!isFinite(r))return String(r);var t=Cn(r),n=Jr(t,e),i=n.exponent,o=n.coefficients,a=i%3===0?i:i<0?i-3-i%3:i-i%3;if(nt(e))for(;e>o.length||i-a+1>o.length;)o.push(0);else for(var c=Math.abs(i-a)-(o.length-1),l=0;l<c;l++)o.push(0);for(var s=Math.abs(i-a),u=1;s>0;)u++,s--;var h=o.slice(u).join(""),f=nt(e)&&h.length||h.match(/[1-9]/)?"."+h:"",d=o.slice(0,u).join("")+f+"e"+(i>=0?"+":"")+a.toString();return n.sign+d}function qi(r,e){if(isNaN(r)||!isFinite(r))return String(r);var t=Cn(r),n=typeof e=="number"?Jr(t,t.exponent+1+e):t,i=n.coefficients,o=n.exponent+1,a=o+(e||0);return i.length<a&&(i=i.concat(Tn(a-i.length))),o<0&&(i=Tn(-o+1).concat(i),o=1),o<i.length&&i.splice(o,0,o===0?"0.":"."),n.sign+i.join("")}function Au(r,e){if(isNaN(r)||!isFinite(r))return String(r);var t=Cn(r),n=e?Jr(t,e):t,i=n.coefficients,o=n.exponent;i.length<e&&(i=i.concat(Tn(e-i.length)));var a=i.shift();return n.sign+a+(i.length>0?"."+i.join(""):"")+"e"+(o>=0?"+":"")+o}function Ad(r,e,t){if(isNaN(r)||!isFinite(r))return String(r);var n=Eu(t?.lowerExp,-3),i=Eu(t?.upperExp,5),o=Cn(r),a=e?Jr(o,e):o;if(a.exponent<n||a.exponent>=i)return Au(r,e);var c=a.coefficients,l=a.exponent;c.length<e&&(c=c.concat(Tn(e-c.length))),c=c.concat(Tn(l-c.length+1+(c.length<e?e-c.length:0))),c=Tn(-l).concat(c);var s=l>0?l:0;return s<c.length-1&&c.splice(s+1,0,"."),a.sign+c.join("")}function Jr(r,e){for(var t={sign:r.sign,coefficients:r.coefficients,exponent:r.exponent},n=t.coefficients;e<=0;)n.unshift(0),t.exponent++,e++;if(n.length>e){var i=n.splice(e,n.length-e);if(i[0]>=5){var o=e-1;for(n[o]++;n[o]===10;)n.pop(),o===0&&(n.unshift(0),t.exponent++,o++),o--,n[o]++}}return t}function Tn(r){for(var e=[],t=0;t<r;t++)e.push(0);return e}function Pu(r){return r.toExponential().replace(/e.*$/,"").replace(/^0\.?0*|\./,"").length}var wM=Number.EPSILON||2220446049250313e-31;function pe(r,e){var t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1e-8,n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:0;if(t<=0)throw new Error("Relative tolerance must be greater than 0");if(n<0)throw new Error("Absolute tolerance must be at least 0");return isNaN(r)||isNaN(e)?!1:!isFinite(r)||!isFinite(e)?r===e:r===e?!0:Math.abs(r-e)<=Math.max(t*Math.max(Math.abs(r),Math.abs(e)),n)}function xu(r,e){if(nt(r))return r;if(it(r))return r.toNumber();e()}function Eu(r,e){return nt(r)?r:it(r)?r.toNumber():e}var Du=function(){return Du=Xi.default.create,Xi.default},Pd=["?BigNumber","?Complex","?DenseMatrix","?Fraction"],ji=N("typed",Pd,function(e){var{BigNumber:t,Complex:n,DenseMatrix:i,Fraction:o}=e,a=Du();return a.clear(),a.addTypes([{name:"number",test:nt},{name:"Complex",test:Bi},{name:"BigNumber",test:it},{name:"bigint",test:ka},{name:"Fraction",test:zi},{name:"Unit",test:Zr},{name:"identifier",test:c=>jt&&/^(?:[A-Za-z\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u0870-\u0887\u0889-\u088E\u08A0-\u08C9\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C5D\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D04-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16F1-\u16F8\u1700-\u1711\u171F-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1878\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4C\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184\u2C00-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BF\u31F0-\u31FF\u3400-\u4DBF\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788\uA78B-\uA7CA\uA7D0\uA7D1\uA7D3\uA7D5-\uA7D9\uA7F2-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB69\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF40\uDF42-\uDF49\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDD70-\uDD7A\uDD7C-\uDD8A\uDD8C-\uDD92\uDD94\uDD95\uDD97-\uDDA1\uDDA3-\uDDB1\uDDB3-\uDDB9\uDDBB\uDDBC\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67\uDF80-\uDF85\uDF87-\uDFB0\uDFB2-\uDFBA]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDD00-\uDD23\uDE80-\uDEA9\uDEB0\uDEB1\uDF00-\uDF1C\uDF27\uDF30-\uDF45\uDF70-\uDF81\uDFB0-\uDFC4\uDFE0-\uDFF6]|\uD804[\uDC03-\uDC37\uDC71\uDC72\uDC75\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD44\uDD47\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE3F\uDE40\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC5F-\uDC61\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDEB8\uDF00-\uDF1A\uDF40-\uDF46]|\uD806[\uDC00-\uDC2B\uDCA0-\uDCDF\uDCFF-\uDD06\uDD09\uDD0C-\uDD13\uDD15\uDD16\uDD18-\uDD2F\uDD3F\uDD41\uDDA0-\uDDA7\uDDAA-\uDDD0\uDDE1\uDDE3\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE89\uDE9D\uDEB0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD89\uDD98\uDEE0-\uDEF2\uDF02\uDF04-\uDF10\uDF12-\uDF33\uDFB0]|\uD808[\uDC00-\uDF99]|\uD809[\uDC80-\uDD43]|\uD80B[\uDF90-\uDFF0]|[\uD80C\uD81C-\uD820\uD822\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879\uD880-\uD883\uD885-\uD887][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2F\uDC41-\uDC46]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE70-\uDEBE\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDE40-\uDE7F\uDF00-\uDF4A\uDF50\uDF93-\uDF9F\uDFE0\uDFE1\uDFE3]|\uD821[\uDC00-\uDFF7]|\uD823[\uDC00-\uDCD5\uDD00-\uDD08]|\uD82B[\uDFF0-\uDFF3\uDFF5-\uDFFB\uDFFD\uDFFE]|\uD82C[\uDC00-\uDD22\uDD32\uDD50-\uDD52\uDD55\uDD64-\uDD67\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD837[\uDF00-\uDF1E\uDF25-\uDF2A]|\uD838[\uDC30-\uDC6D\uDD00-\uDD2C\uDD37-\uDD3D\uDD4E\uDE90-\uDEAD\uDEC0-\uDEEB]|\uD839[\uDCD0-\uDCEB\uDFE0-\uDFE6\uDFE8-\uDFEB\uDFED\uDFEE\uDFF0-\uDFFE]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43\uDD4B]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDEDF\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF39\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0\uDFF0-\uDFFF]|\uD87B[\uDC00-\uDE5D]|\uD87E[\uDC00-\uDE1D]|\uD884[\uDC00-\uDF4A\uDF50-\uDFFF]|\uD888[\uDC00-\uDFAF])(?:[0-9A-Za-z\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u0870-\u0887\u0889-\u088E\u08A0-\u08C9\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C5D\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D04-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16F1-\u16F8\u1700-\u1711\u171F-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1878\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4C\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184\u2C00-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BF\u31F0-\u31FF\u3400-\u4DBF\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788\uA78B-\uA7CA\uA7D0\uA7D1\uA7D3\uA7D5-\uA7D9\uA7F2-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB69\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF40\uDF42-\uDF49\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDD70-\uDD7A\uDD7C-\uDD8A\uDD8C-\uDD92\uDD94\uDD95\uDD97-\uDDA1\uDDA3-\uDDB1\uDDB3-\uDDB9\uDDBB\uDDBC\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67\uDF80-\uDF85\uDF87-\uDFB0\uDFB2-\uDFBA]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDD00-\uDD23\uDE80-\uDEA9\uDEB0\uDEB1\uDF00-\uDF1C\uDF27\uDF30-\uDF45\uDF70-\uDF81\uDFB0-\uDFC4\uDFE0-\uDFF6]|\uD804[\uDC03-\uDC37\uDC71\uDC72\uDC75\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD44\uDD47\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE3F\uDE40\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC5F-\uDC61\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDEB8\uDF00-\uDF1A\uDF40-\uDF46]|\uD806[\uDC00-\uDC2B\uDCA0-\uDCDF\uDCFF-\uDD06\uDD09\uDD0C-\uDD13\uDD15\uDD16\uDD18-\uDD2F\uDD3F\uDD41\uDDA0-\uDDA7\uDDAA-\uDDD0\uDDE1\uDDE3\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE89\uDE9D\uDEB0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD89\uDD98\uDEE0-\uDEF2\uDF02\uDF04-\uDF10\uDF12-\uDF33\uDFB0]|\uD808[\uDC00-\uDF99]|\uD809[\uDC80-\uDD43]|\uD80B[\uDF90-\uDFF0]|[\uD80C\uD81C-\uD820\uD822\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879\uD880-\uD883\uD885-\uD887][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2F\uDC41-\uDC46]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE70-\uDEBE\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDE40-\uDE7F\uDF00-\uDF4A\uDF50\uDF93-\uDF9F\uDFE0\uDFE1\uDFE3]|\uD821[\uDC00-\uDFF7]|\uD823[\uDC00-\uDCD5\uDD00-\uDD08]|\uD82B[\uDFF0-\uDFF3\uDFF5-\uDFFB\uDFFD\uDFFE]|\uD82C[\uDC00-\uDD22\uDD32\uDD50-\uDD52\uDD55\uDD64-\uDD67\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD837[\uDF00-\uDF1E\uDF25-\uDF2A]|\uD838[\uDC30-\uDC6D\uDD00-\uDD2C\uDD37-\uDD3D\uDD4E\uDE90-\uDEAD\uDEC0-\uDEEB]|\uD839[\uDCD0-\uDCEB\uDFE0-\uDFE6\uDFE8-\uDFEB\uDFED\uDFEE\uDFF0-\uDFFE]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43\uDD4B]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDEDF\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF39\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0\uDFF0-\uDFFF]|\uD87B[\uDC00-\uDE5D]|\uD87E[\uDC00-\uDE1D]|\uD884[\uDC00-\uDF4A\uDF50-\uDFFF]|\uD888[\uDC00-\uDFAF])*$/.test(c)},{name:"string",test:jt},{name:"Chain",test:mu},{name:"Array",test:yt},{name:"Matrix",test:ot},{name:"DenseMatrix",test:Va},{name:"SparseMatrix",test:Ha},{name:"Range",test:Wa},{name:"Index",test:Mn},{name:"boolean",test:qa},{name:"ResultSet",test:Xa},{name:"Help",test:ja},{name:"function",test:Ya},{name:"Date",test:$a},{name:"RegExp",test:Za},{name:"null",test:Ja},{name:"undefined",test:Qa},{name:"AccessorNode",test:tu},{name:"ArrayNode",test:eu},{name:"AssignmentNode",test:nu},{name:"BlockNode",test:ru},{name:"ConditionalNode",test:iu},{name:"ConstantNode",test:ou},{name:"FunctionNode",test:au},{name:"FunctionAssignmentNode",test:su},{name:"IndexNode",test:uu},{name:"Node",test:lu},{name:"ObjectNode",test:cu},{name:"OperatorNode",test:hu},{name:"ParenthesisNode",test:pu},{name:"RangeNode",test:fu},{name:"RelationalNode",test:du},{name:"SymbolNode",test:gu},{name:"Map",test:Ka},{name:"Object",test:wn}]),a.addConversions([{from:"number",to:"BigNumber",convert:function(l){if(t||Qr(l),Pu(l)>15)throw new TypeError("Cannot implicitly convert a number with >15 significant digits to BigNumber (value: "+l+"). Use function bignumber(x) to convert to BigNumber.");return new t(l)}},{from:"number",to:"Complex",convert:function(l){return n||ti(l),new n(l,0)}},{from:"BigNumber",to:"Complex",convert:function(l){return n||ti(l),new n(l.toNumber(),0)}},{from:"bigint",to:"number",convert:function(l){if(l>Number.MAX_SAFE_INTEGER)throw new TypeError("Cannot implicitly convert bigint to number: value exceeds the max safe integer value (value: "+l+")");return Number(l)}},{from:"bigint",to:"BigNumber",convert:function(l){return t||Qr(l),new t(l.toString())}},{from:"bigint",to:"Fraction",convert:function(l){return o||ei(l),new o(l.toString())}},{from:"Fraction",to:"BigNumber",convert:function(l){throw new TypeError("Cannot implicitly convert a Fraction to BigNumber or vice versa. Use function bignumber(x) to convert to BigNumber or fraction(x) to convert to Fraction.")}},{from:"Fraction",to:"Complex",convert:function(l){return n||ti(l),new n(l.valueOf(),0)}},{from:"number",to:"Fraction",convert:function(l){o||ei(l);var s=new o(l);if(s.valueOf()!==l)throw new TypeError("Cannot implicitly convert a number to a Fraction when there will be a loss of precision (value: "+l+"). Use function fraction(x) to convert to Fraction.");return s}},{from:"string",to:"number",convert:function(l){var s=Number(l);if(isNaN(s))throw new Error('Cannot convert "'+l+'" to a number');return s}},{from:"string",to:"BigNumber",convert:function(l){t||Qr(l);try{return new t(l)}catch{throw new Error('Cannot convert "'+l+'" to BigNumber')}}},{from:"string",to:"bigint",convert:function(l){try{return BigInt(l)}catch{throw new Error('Cannot convert "'+l+'" to BigInt')}}},{from:"string",to:"Fraction",convert:function(l){o||ei(l);try{return new o(l)}catch{throw new Error('Cannot convert "'+l+'" to Fraction')}}},{from:"string",to:"Complex",convert:function(l){n||ti(l);try{return new n(l)}catch{throw new Error('Cannot convert "'+l+'" to Complex')}}},{from:"boolean",to:"number",convert:function(l){return+l}},{from:"boolean",to:"BigNumber",convert:function(l){return t||Qr(l),new t(+l)}},{from:"boolean",to:"bigint",convert:function(l){return BigInt(+l)}},{from:"boolean",to:"Fraction",convert:function(l){return o||ei(l),new o(+l)}},{from:"boolean",to:"string",convert:function(l){return String(l)}},{from:"Array",to:"Matrix",convert:function(l){return i||Dd(),new i(l)}},{from:"Matrix",to:"Array",convert:function(l){return l.valueOf()}}]),a.onMismatch=(c,l,s)=>{var u=a.createError(c,l,s);if(["wrongType","mismatch"].includes(u.data.category)&&l.length===1&&Fe(l[0])&&s.some(f=>!f.params.includes(","))){var h=new TypeError("Function '".concat(c,"' doesn't apply to matrices. To call it ")+"elementwise on a matrix 'M', try 'map(M, ".concat(c,")'."));throw h.data=u.data,h}throw u},a.onMismatch=(c,l,s)=>{var u=a.createError(c,l,s);if(["wrongType","mismatch"].includes(u.data.category)&&l.length===1&&Fe(l[0])&&s.some(f=>!f.params.includes(","))){var h=new TypeError("Function '".concat(c,"' doesn't apply to matrices. To call it ")+"elementwise on a matrix 'M', try 'map(M, ".concat(c,")'."));throw h.data=u.data,h}throw u},a});function Qr(r){throw new Error("Cannot convert value ".concat(r," into a BigNumber: no class 'BigNumber' provided"))}function ti(r){throw new Error("Cannot convert value ".concat(r," into a Complex number: no class 'Complex' provided"))}function Dd(){throw new Error("Cannot convert array into a Matrix: no class 'DenseMatrix' provided")}function ei(r){throw new Error("Cannot convert value ".concat(r," into a Fraction, no class 'Fraction' provided."))}var An=9e15,Ke=1e9,Yi="0123456789abcdef",ri="2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058",ii="3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789",$i={precision:20,rounding:4,modulo:1,toExpNeg:-7,toExpPos:21,minE:-An,maxE:An,crypto:!1},Lu,Ue,K=!0,si="[DecimalError] ",Ze=si+"Invalid argument: ",Ou=si+"Precision limit exceeded",Fu=si+"crypto unavailable",Uu="[object Decimal]",Wt=Math.floor,Pt=Math.pow,Id=/^0b([01]+(\.[01]*)?|\.[01]+)(p[+-]?\d+)?$/i,Rd=/^0x([0-9a-f]+(\.[0-9a-f]*)?|\.[0-9a-f]+)(p[+-]?\d+)?$/i,Nd=/^0o([0-7]+(\.[0-7]*)?|\.[0-7]+)(p[+-]?\d+)?$/i,Bu=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,ve=1e7,Z=7,Ld=9007199254740991,Od=ri.length-1,Zi=ii.length-1,F={toStringTag:Uu};F.absoluteValue=F.abs=function(){var r=new this.constructor(this);return r.s<0&&(r.s=1),$(r)};F.ceil=function(){return $(new this.constructor(this),this.e+1,2)};F.clampedTo=F.clamp=function(r,e){var t,n=this,i=n.constructor;if(r=new i(r),e=new i(e),!r.s||!e.s)return new i(NaN);if(r.gt(e))throw Error(Ze+e);return t=n.cmp(r),t<0?r:n.cmp(e)>0?e:new i(n)};F.comparedTo=F.cmp=function(r){var e,t,n,i,o=this,a=o.d,c=(r=new o.constructor(r)).d,l=o.s,s=r.s;if(!a||!c)return!l||!s?NaN:l!==s?l:a===c?0:!a^l<0?1:-1;if(!a[0]||!c[0])return a[0]?l:c[0]?-s:0;if(l!==s)return l;if(o.e!==r.e)return o.e>r.e^l<0?1:-1;for(n=a.length,i=c.length,e=0,t=n<i?n:i;e<t;++e)if(a[e]!==c[e])return a[e]>c[e]^l<0?1:-1;return n===i?0:n>i^l<0?1:-1};F.cosine=F.cos=function(){var r,e,t=this,n=t.constructor;return t.d?t.d[0]?(r=n.precision,e=n.rounding,n.precision=r+Math.max(t.e,t.sd())+Z,n.rounding=1,t=Fd(n,Hu(n,t)),n.precision=r,n.rounding=e,$(Ue==2||Ue==3?t.neg():t,r,e,!0)):new n(1):new n(NaN)};F.cubeRoot=F.cbrt=function(){var r,e,t,n,i,o,a,c,l,s,u=this,h=u.constructor;if(!u.isFinite()||u.isZero())return new h(u);for(K=!1,o=u.s*Pt(u.s*u,1/3),!o||Math.abs(o)==1/0?(t=Bt(u.d),r=u.e,(o=(r-t.length+1)%3)&&(t+=o==1||o==-2?"0":"00"),o=Pt(t,1/3),r=Wt((r+1)/3)-(r%3==(r<0?-1:2)),o==1/0?t="5e"+r:(t=o.toExponential(),t=t.slice(0,t.indexOf("e")+1)+r),n=new h(t),n.s=u.s):n=new h(o.toString()),a=(r=h.precision)+3;;)if(c=n,l=c.times(c).times(c),s=l.plus(u),n=dt(s.plus(u).times(c),s.plus(l),a+2,1),Bt(c.d).slice(0,a)===(t=Bt(n.d)).slice(0,a))if(t=t.slice(a-3,a+1),t=="9999"||!i&&t=="4999"){if(!i&&($(c,r+1,0),c.times(c).times(c).eq(u))){n=c;break}a+=4,i=1}else{(!+t||!+t.slice(1)&&t.charAt(0)=="5")&&($(n,r+1,1),e=!n.times(n).times(n).eq(u));break}return K=!0,$(n,r,h.rounding,e)};F.decimalPlaces=F.dp=function(){var r,e=this.d,t=NaN;if(e){if(r=e.length-1,t=(r-Wt(this.e/Z))*Z,r=e[r],r)for(;r%10==0;r/=10)t--;t<0&&(t=0)}return t};F.dividedBy=F.div=function(r){return dt(this,new this.constructor(r))};F.dividedToIntegerBy=F.divToInt=function(r){var e=this,t=e.constructor;return $(dt(e,new t(r),0,1,1),t.precision,t.rounding)};F.equals=F.eq=function(r){return this.cmp(r)===0};F.floor=function(){return $(new this.constructor(this),this.e+1,3)};F.greaterThan=F.gt=function(r){return this.cmp(r)>0};F.greaterThanOrEqualTo=F.gte=function(r){var e=this.cmp(r);return e==1||e===0};F.hyperbolicCosine=F.cosh=function(){var r,e,t,n,i,o=this,a=o.constructor,c=new a(1);if(!o.isFinite())return new a(o.s?1/0:NaN);if(o.isZero())return c;t=a.precision,n=a.rounding,a.precision=t+Math.max(o.e,o.sd())+4,a.rounding=1,i=o.d.length,i<32?(r=Math.ceil(i/3),e=(1/ui(4,r)).toString()):(r=16,e="2.3283064365386962890625e-10"),o=Pn(a,1,o.times(e),new a(1),!0);for(var l,s=r,u=new a(8);s--;)l=o.times(o),o=c.minus(l.times(u.minus(l.times(u))));return $(o,a.precision=t,a.rounding=n,!0)};F.hyperbolicSine=F.sinh=function(){var r,e,t,n,i=this,o=i.constructor;if(!i.isFinite()||i.isZero())return new o(i);if(e=o.precision,t=o.rounding,o.precision=e+Math.max(i.e,i.sd())+4,o.rounding=1,n=i.d.length,n<3)i=Pn(o,2,i,i,!0);else{r=1.4*Math.sqrt(n),r=r>16?16:r|0,i=i.times(1/ui(5,r)),i=Pn(o,2,i,i,!0);for(var a,c=new o(5),l=new o(16),s=new o(20);r--;)a=i.times(i),i=i.times(c.plus(a.times(l.times(a).plus(s))))}return o.precision=e,o.rounding=t,$(i,e,t,!0)};F.hyperbolicTangent=F.tanh=function(){var r,e,t=this,n=t.constructor;return t.isFinite()?t.isZero()?new n(t):(r=n.precision,e=n.rounding,n.precision=r+7,n.rounding=1,dt(t.sinh(),t.cosh(),n.precision=r,n.rounding=e)):new n(t.s)};F.inverseCosine=F.acos=function(){var r,e=this,t=e.constructor,n=e.abs().cmp(1),i=t.precision,o=t.rounding;return n!==-1?n===0?e.isNeg()?ye(t,i,o):new t(0):new t(NaN):e.isZero()?ye(t,i+4,o).times(.5):(t.precision=i+6,t.rounding=1,e=e.asin(),r=ye(t,i+4,o).times(.5),t.precision=i,t.rounding=o,r.minus(e))};F.inverseHyperbolicCosine=F.acosh=function(){var r,e,t=this,n=t.constructor;return t.lte(1)?new n(t.eq(1)?0:NaN):t.isFinite()?(r=n.precision,e=n.rounding,n.precision=r+Math.max(Math.abs(t.e),t.sd())+4,n.rounding=1,K=!1,t=t.times(t).minus(1).sqrt().plus(t),K=!0,n.precision=r,n.rounding=e,t.ln()):new n(t)};F.inverseHyperbolicSine=F.asinh=function(){var r,e,t=this,n=t.constructor;return!t.isFinite()||t.isZero()?new n(t):(r=n.precision,e=n.rounding,n.precision=r+2*Math.max(Math.abs(t.e),t.sd())+6,n.rounding=1,K=!1,t=t.times(t).plus(1).sqrt().plus(t),K=!0,n.precision=r,n.rounding=e,t.ln())};F.inverseHyperbolicTangent=F.atanh=function(){var r,e,t,n,i=this,o=i.constructor;return i.isFinite()?i.e>=0?new o(i.abs().eq(1)?i.s/0:i.isZero()?i:NaN):(r=o.precision,e=o.rounding,n=i.sd(),Math.max(n,r)<2*-i.e-1?$(new o(i),r,e,!0):(o.precision=t=n-i.e,i=dt(i.plus(1),new o(1).minus(i),t+r,1),o.precision=r+4,o.rounding=1,i=i.ln(),o.precision=r,o.rounding=e,i.times(.5))):new o(NaN)};F.inverseSine=F.asin=function(){var r,e,t,n,i=this,o=i.constructor;return i.isZero()?new o(i):(e=i.abs().cmp(1),t=o.precision,n=o.rounding,e!==-1?e===0?(r=ye(o,t+4,n).times(.5),r.s=i.s,r):new o(NaN):(o.precision=t+6,o.rounding=1,i=i.div(new o(1).minus(i.times(i)).sqrt().plus(1)).atan(),o.precision=t,o.rounding=n,i.times(2)))};F.inverseTangent=F.atan=function(){var r,e,t,n,i,o,a,c,l,s=this,u=s.constructor,h=u.precision,f=u.rounding;if(s.isFinite()){if(s.isZero())return new u(s);if(s.abs().eq(1)&&h+4<=Zi)return a=ye(u,h+4,f).times(.25),a.s=s.s,a}else{if(!s.s)return new u(NaN);if(h+4<=Zi)return a=ye(u,h+4,f).times(.5),a.s=s.s,a}for(u.precision=c=h+10,u.rounding=1,t=Math.min(28,c/Z+2|0),r=t;r;--r)s=s.div(s.times(s).plus(1).sqrt().plus(1));for(K=!1,e=Math.ceil(c/Z),n=1,l=s.times(s),a=new u(s),i=s;r!==-1;)if(i=i.times(l),o=a.minus(i.div(n+=2)),i=i.times(l),a=o.plus(i.div(n+=2)),a.d[e]!==void 0)for(r=e;a.d[r]===o.d[r]&&r--;);return t&&(a=a.times(2<<t-1)),K=!0,$(a,u.precision=h,u.rounding=f,!0)};F.isFinite=function(){return!!this.d};F.isInteger=F.isInt=function(){return!!this.d&&Wt(this.e/Z)>this.d.length-2};F.isNaN=function(){return!this.s};F.isNegative=F.isNeg=function(){return this.s<0};F.isPositive=F.isPos=function(){return this.s>0};F.isZero=function(){return!!this.d&&this.d[0]===0};F.lessThan=F.lt=function(r){return this.cmp(r)<0};F.lessThanOrEqualTo=F.lte=function(r){return this.cmp(r)<1};F.logarithm=F.log=function(r){var e,t,n,i,o,a,c,l,s=this,u=s.constructor,h=u.precision,f=u.rounding,d=5;if(r==null)r=new u(10),e=!0;else{if(r=new u(r),t=r.d,r.s<0||!t||!t[0]||r.eq(1))return new u(NaN);e=r.eq(10)}if(t=s.d,s.s<0||!t||!t[0]||s.eq(1))return new u(t&&!t[0]?-1/0:s.s!=1?NaN:t?0:1/0);if(e)if(t.length>1)o=!0;else{for(i=t[0];i%10===0;)i/=10;o=i!==1}if(K=!1,c=h+d,a=$e(s,c),n=e?oi(u,c+10):$e(r,c),l=dt(a,n,c,1),Zn(l.d,i=h,f))do if(c+=10,a=$e(s,c),n=e?oi(u,c+10):$e(r,c),l=dt(a,n,c,1),!o){+Bt(l.d).slice(i+1,i+15)+1==1e14&&(l=$(l,h+1,0));break}while(Zn(l.d,i+=10,f));return K=!0,$(l,h,f)};F.minus=F.sub=function(r){var e,t,n,i,o,a,c,l,s,u,h,f,d=this,g=d.constructor;if(r=new g(r),!d.d||!r.d)return!d.s||!r.s?r=new g(NaN):d.d?r.s=-r.s:r=new g(r.d||d.s!==r.s?d:NaN),r;if(d.s!=r.s)return r.s=-r.s,d.plus(r);if(s=d.d,f=r.d,c=g.precision,l=g.rounding,!s[0]||!f[0]){if(f[0])r.s=-r.s;else if(s[0])r=new g(d);else return new g(l===3?-0:0);return K?$(r,c,l):r}if(t=Wt(r.e/Z),u=Wt(d.e/Z),s=s.slice(),o=u-t,o){for(h=o<0,h?(e=s,o=-o,a=f.length):(e=f,t=u,a=s.length),n=Math.max(Math.ceil(c/Z),a)+2,o>n&&(o=n,e.length=1),e.reverse(),n=o;n--;)e.push(0);e.reverse()}else{for(n=s.length,a=f.length,h=n<a,h&&(a=n),n=0;n<a;n++)if(s[n]!=f[n]){h=s[n]<f[n];break}o=0}for(h&&(e=s,s=f,f=e,r.s=-r.s),a=s.length,n=f.length-a;n>0;--n)s[a++]=0;for(n=f.length;n>o;){if(s[--n]<f[n]){for(i=n;i&&s[--i]===0;)s[i]=ve-1;--s[i],s[n]+=ve}s[n]-=f[n]}for(;s[--a]===0;)s.pop();for(;s[0]===0;s.shift())--t;return s[0]?(r.d=s,r.e=ai(s,t),K?$(r,c,l):r):new g(l===3?-0:0)};F.modulo=F.mod=function(r){var e,t=this,n=t.constructor;return r=new n(r),!t.d||!r.s||r.d&&!r.d[0]?new n(NaN):!r.d||t.d&&!t.d[0]?$(new n(t),n.precision,n.rounding):(K=!1,n.modulo==9?(e=dt(t,r.abs(),0,3,1),e.s*=r.s):e=dt(t,r,0,n.modulo,1),e=e.times(r),K=!0,t.minus(e))};F.naturalExponential=F.exp=function(){return Ki(this)};F.naturalLogarithm=F.ln=function(){return $e(this)};F.negated=F.neg=function(){var r=new this.constructor(this);return r.s=-r.s,$(r)};F.plus=F.add=function(r){var e,t,n,i,o,a,c,l,s,u,h=this,f=h.constructor;if(r=new f(r),!h.d||!r.d)return!h.s||!r.s?r=new f(NaN):h.d||(r=new f(r.d||h.s===r.s?h:NaN)),r;if(h.s!=r.s)return r.s=-r.s,h.minus(r);if(s=h.d,u=r.d,c=f.precision,l=f.rounding,!s[0]||!u[0])return u[0]||(r=new f(h)),K?$(r,c,l):r;if(o=Wt(h.e/Z),n=Wt(r.e/Z),s=s.slice(),i=o-n,i){for(i<0?(t=s,i=-i,a=u.length):(t=u,n=o,a=s.length),o=Math.ceil(c/Z),a=o>a?o+1:a+1,i>a&&(i=a,t.length=1),t.reverse();i--;)t.push(0);t.reverse()}for(a=s.length,i=u.length,a-i<0&&(i=a,t=u,u=s,s=t),e=0;i;)e=(s[--i]=s[i]+u[i]+e)/ve|0,s[i]%=ve;for(e&&(s.unshift(e),++n),a=s.length;s[--a]==0;)s.pop();return r.d=s,r.e=ai(s,n),K?$(r,c,l):r};F.precision=F.sd=function(r){var e,t=this;if(r!==void 0&&r!==!!r&&r!==1&&r!==0)throw Error(Ze+r);return t.d?(e=zu(t.d),r&&t.e+1>e&&(e=t.e+1)):e=NaN,e};F.round=function(){var r=this,e=r.constructor;return $(new e(r),r.e+1,e.rounding)};F.sine=F.sin=function(){var r,e,t=this,n=t.constructor;return t.isFinite()?t.isZero()?new n(t):(r=n.precision,e=n.rounding,n.precision=r+Math.max(t.e,t.sd())+Z,n.rounding=1,t=Bd(n,Hu(n,t)),n.precision=r,n.rounding=e,$(Ue>2?t.neg():t,r,e,!0)):new n(NaN)};F.squareRoot=F.sqrt=function(){var r,e,t,n,i,o,a=this,c=a.d,l=a.e,s=a.s,u=a.constructor;if(s!==1||!c||!c[0])return new u(!s||s<0&&(!c||c[0])?NaN:c?a:1/0);for(K=!1,s=Math.sqrt(+a),s==0||s==1/0?(e=Bt(c),(e.length+l)%2==0&&(e+="0"),s=Math.sqrt(e),l=Wt((l+1)/2)-(l<0||l%2),s==1/0?e="5e"+l:(e=s.toExponential(),e=e.slice(0,e.indexOf("e")+1)+l),n=new u(e)):n=new u(s.toString()),t=(l=u.precision)+3;;)if(o=n,n=o.plus(dt(a,o,t+2,1)).times(.5),Bt(o.d).slice(0,t)===(e=Bt(n.d)).slice(0,t))if(e=e.slice(t-3,t+1),e=="9999"||!i&&e=="4999"){if(!i&&($(o,l+1,0),o.times(o).eq(a))){n=o;break}t+=4,i=1}else{(!+e||!+e.slice(1)&&e.charAt(0)=="5")&&($(n,l+1,1),r=!n.times(n).eq(a));break}return K=!0,$(n,l,u.rounding,r)};F.tangent=F.tan=function(){var r,e,t=this,n=t.constructor;return t.isFinite()?t.isZero()?new n(t):(r=n.precision,e=n.rounding,n.precision=r+10,n.rounding=1,t=t.sin(),t.s=1,t=dt(t,new n(1).minus(t.times(t)).sqrt(),r+10,0),n.precision=r,n.rounding=e,$(Ue==2||Ue==4?t.neg():t,r,e,!0)):new n(NaN)};F.times=F.mul=function(r){var e,t,n,i,o,a,c,l,s,u=this,h=u.constructor,f=u.d,d=(r=new h(r)).d;if(r.s*=u.s,!f||!f[0]||!d||!d[0])return new h(!r.s||f&&!f[0]&&!d||d&&!d[0]&&!f?NaN:!f||!d?r.s/0:r.s*0);for(t=Wt(u.e/Z)+Wt(r.e/Z),l=f.length,s=d.length,l<s&&(o=f,f=d,d=o,a=l,l=s,s=a),o=[],a=l+s,n=a;n--;)o.push(0);for(n=s;--n>=0;){for(e=0,i=l+n;i>n;)c=o[i]+d[n]*f[i-n-1]+e,o[i--]=c%ve|0,e=c/ve|0;o[i]=(o[i]+e)%ve|0}for(;!o[--a];)o.pop();return e?++t:o.shift(),r.d=o,r.e=ai(o,t),K?$(r,h.precision,h.rounding):r};F.toBinary=function(r,e){return Qi(this,2,r,e)};F.toDecimalPlaces=F.toDP=function(r,e){var t=this,n=t.constructor;return t=new n(t),r===void 0?t:(Qt(r,0,Ke),e===void 0?e=n.rounding:Qt(e,0,8),$(t,r+t.e+1,e))};F.toExponential=function(r,e){var t,n=this,i=n.constructor;return r===void 0?t=Pe(n,!0):(Qt(r,0,Ke),e===void 0?e=i.rounding:Qt(e,0,8),n=$(new i(n),r+1,e),t=Pe(n,!0,r+1)),n.isNeg()&&!n.isZero()?"-"+t:t};F.toFixed=function(r,e){var t,n,i=this,o=i.constructor;return r===void 0?t=Pe(i):(Qt(r,0,Ke),e===void 0?e=o.rounding:Qt(e,0,8),n=$(new o(i),r+i.e+1,e),t=Pe(n,!1,r+n.e+1)),i.isNeg()&&!i.isZero()?"-"+t:t};F.toFraction=function(r){var e,t,n,i,o,a,c,l,s,u,h,f,d=this,g=d.d,p=d.constructor;if(!g)return new p(d);if(s=t=new p(1),n=l=new p(0),e=new p(n),o=e.e=zu(g)-d.e-1,a=o%Z,e.d[0]=Pt(10,a<0?Z+a:a),r==null)r=o>0?e:s;else{if(c=new p(r),!c.isInt()||c.lt(s))throw Error(Ze+c);r=c.gt(e)?o>0?e:s:c}for(K=!1,c=new p(Bt(g)),u=p.precision,p.precision=o=g.length*Z*2;h=dt(c,e,0,1,1),i=t.plus(h.times(n)),i.cmp(r)!=1;)t=n,n=i,i=s,s=l.plus(h.times(i)),l=i,i=e,e=c.minus(h.times(i)),c=i;return i=dt(r.minus(t),n,0,1,1),l=l.plus(i.times(s)),t=t.plus(i.times(n)),l.s=s.s=d.s,f=dt(s,n,o,1).minus(d).abs().cmp(dt(l,t,o,1).minus(d).abs())<1?[s,n]:[l,t],p.precision=u,K=!0,f};F.toHexadecimal=F.toHex=function(r,e){return Qi(this,16,r,e)};F.toNearest=function(r,e){var t=this,n=t.constructor;if(t=new n(t),r==null){if(!t.d)return t;r=new n(1),e=n.rounding}else{if(r=new n(r),e===void 0?e=n.rounding:Qt(e,0,8),!t.d)return r.s?t:r;if(!r.d)return r.s&&(r.s=t.s),r}return r.d[0]?(K=!1,t=dt(t,r,0,e,1).times(r),K=!0,$(t)):(r.s=t.s,t=r),t};F.toNumber=function(){return+this};F.toOctal=function(r,e){return Qi(this,8,r,e)};F.toPower=F.pow=function(r){var e,t,n,i,o,a,c=this,l=c.constructor,s=+(r=new l(r));if(!c.d||!r.d||!c.d[0]||!r.d[0])return new l(Pt(+c,s));if(c=new l(c),c.eq(1))return c;if(n=l.precision,o=l.rounding,r.eq(1))return $(c,n,o);if(e=Wt(r.e/Z),e>=r.d.length-1&&(t=s<0?-s:s)<=Ld)return i=Gu(l,c,t,n),r.s<0?new l(1).div(i):$(i,n,o);if(a=c.s,a<0){if(e<r.d.length-1)return new l(NaN);if(r.d[e]&1||(a=1),c.e==0&&c.d[0]==1&&c.d.length==1)return c.s=a,c}return t=Pt(+c,s),e=t==0||!isFinite(t)?Wt(s*(Math.log("0."+Bt(c.d))/Math.LN10+c.e+1)):new l(t+"").e,e>l.maxE+1||e<l.minE-1?new l(e>0?a/0:0):(K=!1,l.rounding=c.s=1,t=Math.min(12,(e+"").length),i=Ki(r.times($e(c,n+t)),n),i.d&&(i=$(i,n+5,1),Zn(i.d,n,o)&&(e=n+10,i=$(Ki(r.times($e(c,e+t)),e),e+5,1),+Bt(i.d).slice(n+1,n+15)+1==1e14&&(i=$(i,n+1,0)))),i.s=a,K=!0,l.rounding=o,$(i,n,o))};F.toPrecision=function(r,e){var t,n=this,i=n.constructor;return r===void 0?t=Pe(n,n.e<=i.toExpNeg||n.e>=i.toExpPos):(Qt(r,1,Ke),e===void 0?e=i.rounding:Qt(e,0,8),n=$(new i(n),r,e),t=Pe(n,r<=n.e||n.e<=i.toExpNeg,r)),n.isNeg()&&!n.isZero()?"-"+t:t};F.toSignificantDigits=F.toSD=function(r,e){var t=this,n=t.constructor;return r===void 0?(r=n.precision,e=n.rounding):(Qt(r,1,Ke),e===void 0?e=n.rounding:Qt(e,0,8)),$(new n(t),r,e)};F.toString=function(){var r=this,e=r.constructor,t=Pe(r,r.e<=e.toExpNeg||r.e>=e.toExpPos);return r.isNeg()&&!r.isZero()?"-"+t:t};F.truncated=F.trunc=function(){return $(new this.constructor(this),this.e+1,1)};F.valueOf=F.toJSON=function(){var r=this,e=r.constructor,t=Pe(r,r.e<=e.toExpNeg||r.e>=e.toExpPos);return r.isNeg()?"-"+t:t};function Bt(r){var e,t,n,i=r.length-1,o="",a=r[0];if(i>0){for(o+=a,e=1;e<i;e++)n=r[e]+"",t=Z-n.length,t&&(o+=Ye(t)),o+=n;a=r[e],n=a+"",t=Z-n.length,t&&(o+=Ye(t))}else if(a===0)return"0";for(;a%10===0;)a/=10;return o+a}function Qt(r,e,t){if(r!==~~r||r<e||r>t)throw Error(Ze+r)}function Zn(r,e,t,n){var i,o,a,c;for(o=r[0];o>=10;o/=10)--e;return--e<0?(e+=Z,i=0):(i=Math.ceil((e+1)/Z),e%=Z),o=Pt(10,Z-e),c=r[i]%o|0,n==null?e<3?(e==0?c=c/100|0:e==1&&(c=c/10|0),a=t<4&&c==99999||t>3&&c==49999||c==5e4||c==0):a=(t<4&&c+1==o||t>3&&c+1==o/2)&&(r[i+1]/o/100|0)==Pt(10,e-2)-1||(c==o/2||c==0)&&(r[i+1]/o/100|0)==0:e<4?(e==0?c=c/1e3|0:e==1?c=c/100|0:e==2&&(c=c/10|0),a=(n||t<4)&&c==9999||!n&&t>3&&c==4999):a=((n||t<4)&&c+1==o||!n&&t>3&&c+1==o/2)&&(r[i+1]/o/1e3|0)==Pt(10,e-3)-1,a}function ni(r,e,t){for(var n,i=[0],o,a=0,c=r.length;a<c;){for(o=i.length;o--;)i[o]*=e;for(i[0]+=Yi.indexOf(r.charAt(a++)),n=0;n<i.length;n++)i[n]>t-1&&(i[n+1]===void 0&&(i[n+1]=0),i[n+1]+=i[n]/t|0,i[n]%=t)}return i.reverse()}function Fd(r,e){var t,n,i;if(e.isZero())return e;n=e.d.length,n<32?(t=Math.ceil(n/3),i=(1/ui(4,t)).toString()):(t=16,i="2.3283064365386962890625e-10"),r.precision+=t,e=Pn(r,1,e.times(i),new r(1));for(var o=t;o--;){var a=e.times(e);e=a.times(a).minus(a).times(8).plus(1)}return r.precision-=t,e}var dt=function(){function r(n,i,o){var a,c=0,l=n.length;for(n=n.slice();l--;)a=n[l]*i+c,n[l]=a%o|0,c=a/o|0;return c&&n.unshift(c),n}function e(n,i,o,a){var c,l;if(o!=a)l=o>a?1:-1;else for(c=l=0;c<o;c++)if(n[c]!=i[c]){l=n[c]>i[c]?1:-1;break}return l}function t(n,i,o,a){for(var c=0;o--;)n[o]-=c,c=n[o]<i[o]?1:0,n[o]=c*a+n[o]-i[o];for(;!n[0]&&n.length>1;)n.shift()}return function(n,i,o,a,c,l){var s,u,h,f,d,g,p,m,v,b,y,S,x,_,M,w,C,P,D,R,W=n.constructor,G=n.s==i.s?1:-1,k=n.d,L=i.d;if(!k||!k[0]||!L||!L[0])return new W(!n.s||!i.s||(k?L&&k[0]==L[0]:!L)?NaN:k&&k[0]==0||!L?G*0:G/0);for(l?(d=1,u=n.e-i.e):(l=ve,d=Z,u=Wt(n.e/d)-Wt(i.e/d)),D=L.length,C=k.length,v=new W(G),b=v.d=[],h=0;L[h]==(k[h]||0);h++);if(L[h]>(k[h]||0)&&u--,o==null?(_=o=W.precision,a=W.rounding):c?_=o+(n.e-i.e)+1:_=o,_<0)b.push(1),g=!0;else{if(_=_/d+2|0,h=0,D==1){for(f=0,L=L[0],_++;(h<C||f)&&_--;h++)M=f*l+(k[h]||0),b[h]=M/L|0,f=M%L|0;g=f||h<C}else{for(f=l/(L[0]+1)|0,f>1&&(L=r(L,f,l),k=r(k,f,l),D=L.length,C=k.length),w=D,y=k.slice(0,D),S=y.length;S<D;)y[S++]=0;R=L.slice(),R.unshift(0),P=L[0],L[1]>=l/2&&++P;do f=0,s=e(L,y,D,S),s<0?(x=y[0],D!=S&&(x=x*l+(y[1]||0)),f=x/P|0,f>1?(f>=l&&(f=l-1),p=r(L,f,l),m=p.length,S=y.length,s=e(p,y,m,S),s==1&&(f--,t(p,D<m?R:L,m,l))):(f==0&&(s=f=1),p=L.slice()),m=p.length,m<S&&p.unshift(0),t(y,p,S,l),s==-1&&(S=y.length,s=e(L,y,D,S),s<1&&(f++,t(y,D<S?R:L,S,l))),S=y.length):s===0&&(f++,y=[0]),b[h++]=f,s&&y[0]?y[S++]=k[w]||0:(y=[k[w]],S=1);while((w++<C||y[0]!==void 0)&&_--);g=y[0]!==void 0}b[0]||b.shift()}if(d==1)v.e=u,Lu=g;else{for(h=1,f=b[0];f>=10;f/=10)h++;v.e=h+u*d-1,$(v,c?o+v.e+1:o,a,g)}return v}}();function $(r,e,t,n){var i,o,a,c,l,s,u,h,f,d=r.constructor;t:if(e!=null){if(h=r.d,!h)return r;for(i=1,c=h[0];c>=10;c/=10)i++;if(o=e-i,o<0)o+=Z,a=e,u=h[f=0],l=u/Pt(10,i-a-1)%10|0;else if(f=Math.ceil((o+1)/Z),c=h.length,f>=c)if(n){for(;c++<=f;)h.push(0);u=l=0,i=1,o%=Z,a=o-Z+1}else break t;else{for(u=c=h[f],i=1;c>=10;c/=10)i++;o%=Z,a=o-Z+i,l=a<0?0:u/Pt(10,i-a-1)%10|0}if(n=n||e<0||h[f+1]!==void 0||(a<0?u:u%Pt(10,i-a-1)),s=t<4?(l||n)&&(t==0||t==(r.s<0?3:2)):l>5||l==5&&(t==4||n||t==6&&(o>0?a>0?u/Pt(10,i-a):0:h[f-1])%10&1||t==(r.s<0?8:7)),e<1||!h[0])return h.length=0,s?(e-=r.e+1,h[0]=Pt(10,(Z-e%Z)%Z),r.e=-e||0):h[0]=r.e=0,r;if(o==0?(h.length=f,c=1,f--):(h.length=f+1,c=Pt(10,Z-o),h[f]=a>0?(u/Pt(10,i-a)%Pt(10,a)|0)*c:0),s)for(;;)if(f==0){for(o=1,a=h[0];a>=10;a/=10)o++;for(a=h[0]+=c,c=1;a>=10;a/=10)c++;o!=c&&(r.e++,h[0]==ve&&(h[0]=1));break}else{if(h[f]+=c,h[f]!=ve)break;h[f--]=0,c=1}for(o=h.length;h[--o]===0;)h.pop()}return K&&(r.e>d.maxE?(r.d=null,r.e=NaN):r.e<d.minE&&(r.e=0,r.d=[0])),r}function Pe(r,e,t){if(!r.isFinite())return Vu(r);var n,i=r.e,o=Bt(r.d),a=o.length;return e?(t&&(n=t-a)>0?o=o.charAt(0)+"."+o.slice(1)+Ye(n):a>1&&(o=o.charAt(0)+"."+o.slice(1)),o=o+(r.e<0?"e":"e+")+r.e):i<0?(o="0."+Ye(-i-1)+o,t&&(n=t-a)>0&&(o+=Ye(n))):i>=a?(o+=Ye(i+1-a),t&&(n=t-i-1)>0&&(o=o+"."+Ye(n))):((n=i+1)<a&&(o=o.slice(0,n)+"."+o.slice(n)),t&&(n=t-a)>0&&(i+1===a&&(o+="."),o+=Ye(n))),o}function ai(r,e){var t=r[0];for(e*=Z;t>=10;t/=10)e++;return e}function oi(r,e,t){if(e>Od)throw K=!0,t&&(r.precision=t),Error(Ou);return $(new r(ri),e,1,!0)}function ye(r,e,t){if(e>Zi)throw Error(Ou);return $(new r(ii),e,t,!0)}function zu(r){var e=r.length-1,t=e*Z+1;if(e=r[e],e){for(;e%10==0;e/=10)t--;for(e=r[0];e>=10;e/=10)t++}return t}function Ye(r){for(var e="";r--;)e+="0";return e}function Gu(r,e,t,n){var i,o=new r(1),a=Math.ceil(n/Z+4);for(K=!1;;){if(t%2&&(o=o.times(e),Ru(o.d,a)&&(i=!0)),t=Wt(t/2),t===0){t=o.d.length-1,i&&o.d[t]===0&&++o.d[t];break}e=e.times(e),Ru(e.d,a)}return K=!0,o}function Iu(r){return r.d[r.d.length-1]&1}function ku(r,e,t){for(var n,i=new r(e[0]),o=0;++o<e.length;)if(n=new r(e[o]),n.s)i[t](n)&&(i=n);else{i=n;break}return i}function Ki(r,e){var t,n,i,o,a,c,l,s=0,u=0,h=0,f=r.constructor,d=f.rounding,g=f.precision;if(!r.d||!r.d[0]||r.e>17)return new f(r.d?r.d[0]?r.s<0?0:1/0:1:r.s?r.s<0?0:r:NaN);for(e==null?(K=!1,l=g):l=e,c=new f(.03125);r.e>-2;)r=r.times(c),h+=5;for(n=Math.log(Pt(2,h))/Math.LN10*2+5|0,l+=n,t=o=a=new f(1),f.precision=l;;){if(o=$(o.times(r),l,1),t=t.times(++u),c=a.plus(dt(o,t,l,1)),Bt(c.d).slice(0,l)===Bt(a.d).slice(0,l)){for(i=h;i--;)a=$(a.times(a),l,1);if(e==null)if(s<3&&Zn(a.d,l-n,d,s))f.precision=l+=10,t=o=c=new f(1),u=0,s++;else return $(a,f.precision=g,d,K=!0);else return f.precision=g,a}a=c}}function $e(r,e){var t,n,i,o,a,c,l,s,u,h,f,d=1,g=10,p=r,m=p.d,v=p.constructor,b=v.rounding,y=v.precision;if(p.s<0||!m||!m[0]||!p.e&&m[0]==1&&m.length==1)return new v(m&&!m[0]?-1/0:p.s!=1?NaN:m?0:p);if(e==null?(K=!1,u=y):u=e,v.precision=u+=g,t=Bt(m),n=t.charAt(0),Math.abs(o=p.e)<15e14){for(;n<7&&n!=1||n==1&&t.charAt(1)>3;)p=p.times(r),t=Bt(p.d),n=t.charAt(0),d++;o=p.e,n>1?(p=new v("0."+t),o++):p=new v(n+"."+t.slice(1))}else return s=oi(v,u+2,y).times(o+""),p=$e(new v(n+"."+t.slice(1)),u-g).plus(s),v.precision=y,e==null?$(p,y,b,K=!0):p;for(h=p,l=a=p=dt(p.minus(1),p.plus(1),u,1),f=$(p.times(p),u,1),i=3;;){if(a=$(a.times(f),u,1),s=l.plus(dt(a,new v(i),u,1)),Bt(s.d).slice(0,u)===Bt(l.d).slice(0,u))if(l=l.times(2),o!==0&&(l=l.plus(oi(v,u+2,y).times(o+""))),l=dt(l,new v(d),u,1),e==null)if(Zn(l.d,u-g,b,c))v.precision=u+=g,s=a=p=dt(h.minus(1),h.plus(1),u,1),f=$(p.times(p),u,1),i=c=1;else return $(l,v.precision=y,b,K=!0);else return v.precision=y,l;l=s,i+=2}}function Vu(r){return String(r.s*r.s/0)}function Ji(r,e){var t,n,i;for((t=e.indexOf("."))>-1&&(e=e.replace(".","")),(n=e.search(/e/i))>0?(t<0&&(t=n),t+=+e.slice(n+1),e=e.substring(0,n)):t<0&&(t=e.length),n=0;e.charCodeAt(n)===48;n++);for(i=e.length;e.charCodeAt(i-1)===48;--i);if(e=e.slice(n,i),e){if(i-=n,r.e=t=t-n-1,r.d=[],n=(t+1)%Z,t<0&&(n+=Z),n<i){for(n&&r.d.push(+e.slice(0,n)),i-=Z;n<i;)r.d.push(+e.slice(n,n+=Z));e=e.slice(n),n=Z-e.length}else n-=i;for(;n--;)e+="0";r.d.push(+e),K&&(r.e>r.constructor.maxE?(r.d=null,r.e=NaN):r.e<r.constructor.minE&&(r.e=0,r.d=[0]))}else r.e=0,r.d=[0];return r}function Ud(r,e){var t,n,i,o,a,c,l,s,u;if(e.indexOf("_")>-1){if(e=e.replace(/(\d)_(?=\d)/g,"$1"),Bu.test(e))return Ji(r,e)}else if(e==="Infinity"||e==="NaN")return+e||(r.s=NaN),r.e=NaN,r.d=null,r;if(Rd.test(e))t=16,e=e.toLowerCase();else if(Id.test(e))t=2;else if(Nd.test(e))t=8;else throw Error(Ze+e);for(o=e.search(/p/i),o>0?(l=+e.slice(o+1),e=e.substring(2,o)):e=e.slice(2),o=e.indexOf("."),a=o>=0,n=r.constructor,a&&(e=e.replace(".",""),c=e.length,o=c-o,i=Gu(n,new n(t),o,o*2)),s=ni(e,t,ve),u=s.length-1,o=u;s[o]===0;--o)s.pop();return o<0?new n(r.s*0):(r.e=ai(s,u),r.d=s,K=!1,a&&(r=dt(r,i,c*4)),l&&(r=r.times(Math.abs(l)<54?Pt(2,l):Kn.pow(2,l))),K=!0,r)}function Bd(r,e){var t,n=e.d.length;if(n<3)return e.isZero()?e:Pn(r,2,e,e);t=1.4*Math.sqrt(n),t=t>16?16:t|0,e=e.times(1/ui(5,t)),e=Pn(r,2,e,e);for(var i,o=new r(5),a=new r(16),c=new r(20);t--;)i=e.times(e),e=e.times(o.plus(i.times(a.times(i).minus(c))));return e}function Pn(r,e,t,n,i){var o,a,c,l,s=1,u=r.precision,h=Math.ceil(u/Z);for(K=!1,l=t.times(t),c=new r(n);;){if(a=dt(c.times(l),new r(e++*e++),u,1),c=i?n.plus(a):n.minus(a),n=dt(a.times(l),new r(e++*e++),u,1),a=c.plus(n),a.d[h]!==void 0){for(o=h;a.d[o]===c.d[o]&&o--;);if(o==-1)break}o=c,c=n,n=a,a=o,s++}return K=!0,a.d.length=h+1,a}function ui(r,e){for(var t=r;--e;)t*=r;return t}function Hu(r,e){var t,n=e.s<0,i=ye(r,r.precision,1),o=i.times(.5);if(e=e.abs(),e.lte(o))return Ue=n?4:1,e;if(t=e.divToInt(i),t.isZero())Ue=n?3:2;else{if(e=e.minus(t.times(i)),e.lte(o))return Ue=Iu(t)?n?2:3:n?4:1,e;Ue=Iu(t)?n?1:4:n?3:2}return e.minus(i).abs()}function Qi(r,e,t,n){var i,o,a,c,l,s,u,h,f,d=r.constructor,g=t!==void 0;if(g?(Qt(t,1,Ke),n===void 0?n=d.rounding:Qt(n,0,8)):(t=d.precision,n=d.rounding),!r.isFinite())u=Vu(r);else{for(u=Pe(r),a=u.indexOf("."),g?(i=2,e==16?t=t*4-3:e==8&&(t=t*3-2)):i=e,a>=0&&(u=u.replace(".",""),f=new d(1),f.e=u.length-a,f.d=ni(Pe(f),10,i),f.e=f.d.length),h=ni(u,10,i),o=l=h.length;h[--l]==0;)h.pop();if(!h[0])u=g?"0p+0":"0";else{if(a<0?o--:(r=new d(r),r.d=h,r.e=o,r=dt(r,f,t,n,0,i),h=r.d,o=r.e,s=Lu),a=h[t],c=i/2,s=s||h[t+1]!==void 0,s=n<4?(a!==void 0||s)&&(n===0||n===(r.s<0?3:2)):a>c||a===c&&(n===4||s||n===6&&h[t-1]&1||n===(r.s<0?8:7)),h.length=t,s)for(;++h[--t]>i-1;)h[t]=0,t||(++o,h.unshift(1));for(l=h.length;!h[l-1];--l);for(a=0,u="";a<l;a++)u+=Yi.charAt(h[a]);if(g){if(l>1)if(e==16||e==8){for(a=e==16?4:3,--l;l%a;l++)u+="0";for(h=ni(u,i,e),l=h.length;!h[l-1];--l);for(a=1,u="1.";a<l;a++)u+=Yi.charAt(h[a])}else u=u.charAt(0)+"."+u.slice(1);u=u+(o<0?"p":"p+")+o}else if(o<0){for(;++o;)u="0"+u;u="0."+u}else if(++o>l)for(o-=l;o--;)u+="0";else o<l&&(u=u.slice(0,o)+"."+u.slice(o))}u=(e==16?"0x":e==2?"0b":e==8?"0o":"")+u}return r.s<0?"-"+u:u}function Ru(r,e){if(r.length>e)return r.length=e,!0}function zd(r){return new this(r).abs()}function Gd(r){return new this(r).acos()}function kd(r){return new this(r).acosh()}function Vd(r,e){return new this(r).plus(e)}function Hd(r){return new this(r).asin()}function Wd(r){return new this(r).asinh()}function qd(r){return new this(r).atan()}function Xd(r){return new this(r).atanh()}function jd(r,e){r=new this(r),e=new this(e);var t,n=this.precision,i=this.rounding,o=n+4;return!r.s||!e.s?t=new this(NaN):!r.d&&!e.d?(t=ye(this,o,1).times(e.s>0?.25:.75),t.s=r.s):!e.d||r.isZero()?(t=e.s<0?ye(this,n,i):new this(0),t.s=r.s):!r.d||e.isZero()?(t=ye(this,o,1).times(.5),t.s=r.s):e.s<0?(this.precision=o,this.rounding=1,t=this.atan(dt(r,e,o,1)),e=ye(this,o,1),this.precision=n,this.rounding=i,t=r.s<0?t.minus(e):t.plus(e)):t=this.atan(dt(r,e,o,1)),t}function Yd(r){return new this(r).cbrt()}function $d(r){return $(r=new this(r),r.e+1,2)}function Zd(r,e,t){return new this(r).clamp(e,t)}function Kd(r){if(!r||typeof r!="object")throw Error(si+"Object expected");var e,t,n,i=r.defaults===!0,o=["precision",1,Ke,"rounding",0,8,"toExpNeg",-An,0,"toExpPos",0,An,"maxE",0,An,"minE",-An,0,"modulo",0,9];for(e=0;e<o.length;e+=3)if(t=o[e],i&&(this[t]=$i[t]),(n=r[t])!==void 0)if(Wt(n)===n&&n>=o[e+1]&&n<=o[e+2])this[t]=n;else throw Error(Ze+t+": "+n);if(t="crypto",i&&(this[t]=$i[t]),(n=r[t])!==void 0)if(n===!0||n===!1||n===0||n===1)if(n)if(typeof crypto<"u"&&crypto&&(crypto.getRandomValues||crypto.randomBytes))this[t]=!0;else throw Error(Fu);else this[t]=!1;else throw Error(Ze+t+": "+n);return this}function Jd(r){return new this(r).cos()}function Qd(r){return new this(r).cosh()}function Wu(r){var e,t,n;function i(o){var a,c,l,s=this;if(!(s instanceof i))return new i(o);if(s.constructor=i,Nu(o)){s.s=o.s,K?!o.d||o.e>i.maxE?(s.e=NaN,s.d=null):o.e<i.minE?(s.e=0,s.d=[0]):(s.e=o.e,s.d=o.d.slice()):(s.e=o.e,s.d=o.d?o.d.slice():o.d);return}if(l=typeof o,l==="number"){if(o===0){s.s=1/o<0?-1:1,s.e=0,s.d=[0];return}if(o<0?(o=-o,s.s=-1):s.s=1,o===~~o&&o<1e7){for(a=0,c=o;c>=10;c/=10)a++;K?a>i.maxE?(s.e=NaN,s.d=null):a<i.minE?(s.e=0,s.d=[0]):(s.e=a,s.d=[o]):(s.e=a,s.d=[o]);return}else if(o*0!==0){o||(s.s=NaN),s.e=NaN,s.d=null;return}return Ji(s,o.toString())}else if(l!=="string")throw Error(Ze+o);return(c=o.charCodeAt(0))===45?(o=o.slice(1),s.s=-1):(c===43&&(o=o.slice(1)),s.s=1),Bu.test(o)?Ji(s,o):Ud(s,o)}if(i.prototype=F,i.ROUND_UP=0,i.ROUND_DOWN=1,i.ROUND_CEIL=2,i.ROUND_FLOOR=3,i.ROUND_HALF_UP=4,i.ROUND_HALF_DOWN=5,i.ROUND_HALF_EVEN=6,i.ROUND_HALF_CEIL=7,i.ROUND_HALF_FLOOR=8,i.EUCLID=9,i.config=i.set=Kd,i.clone=Wu,i.isDecimal=Nu,i.abs=zd,i.acos=Gd,i.acosh=kd,i.add=Vd,i.asin=Hd,i.asinh=Wd,i.atan=qd,i.atanh=Xd,i.atan2=jd,i.cbrt=Yd,i.ceil=$d,i.clamp=Zd,i.cos=Jd,i.cosh=Qd,i.div=tg,i.exp=eg,i.floor=ng,i.hypot=rg,i.ln=ig,i.log=og,i.log10=ag,i.log2=sg,i.max=ug,i.min=lg,i.mod=cg,i.mul=hg,i.pow=pg,i.random=fg,i.round=dg,i.sign=gg,i.sin=mg,i.sinh=yg,i.sqrt=vg,i.sub=_g,i.sum=xg,i.tan=Eg,i.tanh=bg,i.trunc=Sg,r===void 0&&(r={}),r&&r.defaults!==!0)for(n=["precision","rounding","toExpNeg","toExpPos","maxE","minE","modulo","crypto"],e=0;e<n.length;)r.hasOwnProperty(t=n[e++])||(r[t]=this[t]);return i.config(r),i}function tg(r,e){return new this(r).div(e)}function eg(r){return new this(r).exp()}function ng(r){return $(r=new this(r),r.e+1,3)}function rg(){var r,e,t=new this(0);for(K=!1,r=0;r<arguments.length;)if(e=new this(arguments[r++]),e.d)t.d&&(t=t.plus(e.times(e)));else{if(e.s)return K=!0,new this(1/0);t=e}return K=!0,t.sqrt()}function Nu(r){return r instanceof Kn||r&&r.toStringTag===Uu||!1}function ig(r){return new this(r).ln()}function og(r,e){return new this(r).log(e)}function sg(r){return new this(r).log(2)}function ag(r){return new this(r).log(10)}function ug(){return ku(this,arguments,"lt")}function lg(){return ku(this,arguments,"gt")}function cg(r,e){return new this(r).mod(e)}function hg(r,e){return new this(r).mul(e)}function pg(r,e){return new this(r).pow(e)}function fg(r){var e,t,n,i,o=0,a=new this(1),c=[];if(r===void 0?r=this.precision:Qt(r,1,Ke),n=Math.ceil(r/Z),this.crypto)if(crypto.getRandomValues)for(e=crypto.getRandomValues(new Uint32Array(n));o<n;)i=e[o],i>=429e7?e[o]=crypto.getRandomValues(new Uint32Array(1))[0]:c[o++]=i%1e7;else if(crypto.randomBytes){for(e=crypto.randomBytes(n*=4);o<n;)i=e[o]+(e[o+1]<<8)+(e[o+2]<<16)+((e[o+3]&127)<<24),i>=214e7?crypto.randomBytes(4).copy(e,o):(c.push(i%1e7),o+=4);o=n/4}else throw Error(Fu);else for(;o<n;)c[o++]=Math.random()*1e7|0;for(n=c[--o],r%=Z,n&&r&&(i=Pt(10,Z-r),c[o]=(n/i|0)*i);c[o]===0;o--)c.pop();if(o<0)t=0,c=[0];else{for(t=-1;c[0]===0;t-=Z)c.shift();for(n=1,i=c[0];i>=10;i/=10)n++;n<Z&&(t-=Z-n)}return a.e=t,a.d=c,a}function dg(r){return $(r=new this(r),r.e+1,this.rounding)}function gg(r){return r=new this(r),r.d?r.d[0]?r.s:0*r.s:r.s||NaN}function mg(r){return new this(r).sin()}function yg(r){return new this(r).sinh()}function vg(r){return new this(r).sqrt()}function _g(r,e){return new this(r).sub(e)}function xg(){var r=0,e=arguments,t=new this(e[r]);for(K=!1;t.s&&++r<e.length;)t=t.plus(e[r]);return K=!0,$(t,this.precision,this.rounding)}function Eg(r){return new this(r).tan()}function bg(r){return new this(r).tanh()}function Sg(r){return $(r=new this(r),r.e+1,1)}F[Symbol.for("nodejs.util.inspect.custom")]=F.toString;F[Symbol.toStringTag]="Decimal";var Kn=F.constructor=Wu($i);ri=new Kn(ri);ii=new Kn(ii);var Jn=Kn;var Mg="BigNumber",wg=["?on","config"],to=N(Mg,wg,r=>{var{on:e,config:t}=r,n=Jn.clone({precision:t.precision,modulo:Jn.EUCLID});return n.prototype=Object.create(n.prototype),n.prototype.type="BigNumber",n.prototype.isBigNumber=!0,n.prototype.toJSON=function(){return{mathjs:"BigNumber",value:this.toString()}},n.fromJSON=function(i){return new n(i.value)},e&&e("config",function(i,o){i.precision!==o.precision&&n.config({precision:i.precision})}),n},{isClass:!0});var Nt=pn(Xu(),1);var Tg="Complex",Cg=[],no=N(Tg,Cg,()=>(Object.defineProperty(Nt.default,"name",{value:"Complex"}),Nt.default.prototype.constructor=Nt.default,Nt.default.prototype.type="Complex",Nt.default.prototype.isComplex=!0,Nt.default.prototype.toJSON=function(){return{mathjs:"Complex",re:this.re,im:this.im}},Nt.default.prototype.toPolar=function(){return{r:this.abs(),phi:this.arg()}},Nt.default.prototype.format=function(r){var e="",t=this.im,n=this.re,i=$n(this.re,r),o=$n(this.im,r),a=nt(r)?r:r?r.precision:null;if(a!==null){var c=Math.pow(10,-a);Math.abs(n/t)<c&&(n=0),Math.abs(t/n)<c&&(t=0)}return t===0?e=i:n===0?t===1?e="i":t===-1?e="-i":e=o+"i":t<0?t===-1?e=i+" - i":e=i+" - "+o.substring(1)+"i":t===1?e=i+" + i":e=i+" + "+o+"i",e},Nt.default.fromPolar=function(r){switch(arguments.length){case 1:{var e=arguments[0];if(typeof e=="object")return(0,Nt.default)(e);throw new TypeError("Input has to be an object with r and phi keys.")}case 2:{var t=arguments[0],n=arguments[1];if(nt(t)){if(Zr(n)&&n.hasBase("ANGLE")&&(n=n.toNumber("rad")),nt(n))return new Nt.default({r:t,phi:n});throw new TypeError("Phi is not a number nor an angle unit.")}else throw new TypeError("Radius r is not a number.")}default:throw new SyntaxError("Wrong number of arguments in function fromPolar")}},Nt.default.prototype.valueOf=Nt.default.prototype.toString,Nt.default.fromJSON=function(r){return new Nt.default(r)},Nt.default.compare=function(r,e){return r.re>e.re?1:r.re<e.re?-1:r.im>e.im?1:r.im<e.im?-1:0},Nt.default),{isClass:!0});var Ag=2e3,X={s:1,n:0,d:1};function Be(r,e){if(isNaN(r=parseInt(r,10)))throw li();return r*e}function bt(r,e){if(e===0)throw ro();var t=Object.create(Lt.prototype);t.s=r<0?-1:1,r=r<0?-r:r;var n=Dn(r,e);return t.n=r/n,t.d=e/n,t}function ju(r){for(var e={},t=r,n=2,i=4;i<=t;){for(;t%n===0;)t/=n,e[n]=(e[n]||0)+1;i+=1+2*n++}return t!==r?t>1&&(e[t]=(e[t]||0)+1):e[r]=(e[r]||0)+1,e}var oe=function(r,e){var t=0,n=1,i=1,o=0,a=0,c=0,l=1,s=1,u=0,h=1,f=1,d=1,g=1e7,p;if(r!=null)if(e!==void 0){if(t=r,n=e,i=t*n,t%1!==0||n%1!==0)throw Rg()}else switch(typeof r){case"object":{if("d"in r&&"n"in r)t=r.n,n=r.d,"s"in r&&(t*=r.s);else if(0 in r)t=r[0],1 in r&&(n=r[1]);else throw li();i=t*n;break}case"number":{if(r<0&&(i=r,r=-r),r%1===0)t=r;else if(r>0){for(r>=1&&(s=Math.pow(10,Math.floor(1+Math.log(r)/Math.LN10)),r/=s);h<=g&&d<=g;)if(p=(u+f)/(h+d),r===p){h+d<=g?(t=u+f,n=h+d):d>h?(t=f,n=d):(t=u,n=h);break}else r>p?(u+=f,h+=d):(f+=u,d+=h),h>g?(t=f,n=d):(t=u,n=h);t*=s}else(isNaN(r)||isNaN(e))&&(n=t=NaN);break}case"string":{if(h=r.match(/\d+|./g),h===null)throw li();if(h[u]==="-"?(i=-1,u++):h[u]==="+"&&u++,h.length===u+1?a=Be(h[u++],i):h[u+1]==="."||h[u]==="."?(h[u]!=="."&&(o=Be(h[u++],i)),u++,(u+1===h.length||h[u+1]==="("&&h[u+3]===")"||h[u+1]==="'"&&h[u+3]==="'")&&(a=Be(h[u],i),l=Math.pow(10,h[u].length),u++),(h[u]==="("&&h[u+2]===")"||h[u]==="'"&&h[u+2]==="'")&&(c=Be(h[u+1],i),s=Math.pow(10,h[u+1].length)-1,u+=3)):h[u+1]==="/"||h[u+1]===":"?(a=Be(h[u],i),l=Be(h[u+2],1),u+=3):h[u+3]==="/"&&h[u+1]===" "&&(o=Be(h[u],i),a=Be(h[u+2],i),l=Be(h[u+4],1),u+=5),h.length<=u){n=l*s,i=t=c+n*o+s*a;break}}default:throw li()}if(n===0)throw ro();X.s=i<0?-1:1,X.n=Math.abs(t),X.d=Math.abs(n)};function Pg(r,e,t){for(var n=1;e>0;r=r*r%t,e>>=1)e&1&&(n=n*r%t);return n}function Dg(r,e){for(;e%2===0;e/=2);for(;e%5===0;e/=5);if(e===1)return 0;for(var t=10%e,n=1;t!==1;n++)if(t=t*10%e,n>Ag)return 0;return n}function Ig(r,e,t){for(var n=1,i=Pg(10,t,e),o=0;o<300;o++){if(n===i)return o;n=n*10%e,i=i*10%e}return 0}function Dn(r,e){if(!r)return e;if(!e)return r;for(;;){if(r%=e,!r)return e;if(e%=r,!e)return r}}function Lt(r,e){if(oe(r,e),this instanceof Lt)r=Dn(X.d,X.n),this.s=X.s,this.n=X.n/r,this.d=X.d/r;else return bt(X.s*X.n,X.d)}var ro=function(){return new Error("Division by Zero")},li=function(){return new Error("Invalid argument")},Rg=function(){return new Error("Parameters must be integer")};Lt.prototype={s:1,n:0,d:1,abs:function(){return bt(this.n,this.d)},neg:function(){return bt(-this.s*this.n,this.d)},add:function(r,e){return oe(r,e),bt(this.s*this.n*X.d+X.s*this.d*X.n,this.d*X.d)},sub:function(r,e){return oe(r,e),bt(this.s*this.n*X.d-X.s*this.d*X.n,this.d*X.d)},mul:function(r,e){return oe(r,e),bt(this.s*X.s*this.n*X.n,this.d*X.d)},div:function(r,e){return oe(r,e),bt(this.s*X.s*this.n*X.d,this.d*X.n)},clone:function(){return bt(this.s*this.n,this.d)},mod:function(r,e){if(isNaN(this.n)||isNaN(this.d))return new Lt(NaN);if(r===void 0)return bt(this.s*this.n%this.d,1);if(oe(r,e),X.n===0&&this.d===0)throw ro();return bt(this.s*(X.d*this.n)%(X.n*this.d),X.d*this.d)},gcd:function(r,e){return oe(r,e),bt(Dn(X.n,this.n)*Dn(X.d,this.d),X.d*this.d)},lcm:function(r,e){return oe(r,e),X.n===0&&this.n===0?bt(0,1):bt(X.n*this.n,Dn(X.n,this.n)*Dn(X.d,this.d))},ceil:function(r){return r=Math.pow(10,r||0),isNaN(this.n)||isNaN(this.d)?new Lt(NaN):bt(Math.ceil(r*this.s*this.n/this.d),r)},floor:function(r){return r=Math.pow(10,r||0),isNaN(this.n)||isNaN(this.d)?new Lt(NaN):bt(Math.floor(r*this.s*this.n/this.d),r)},round:function(r){return r=Math.pow(10,r||0),isNaN(this.n)||isNaN(this.d)?new Lt(NaN):bt(Math.round(r*this.s*this.n/this.d),r)},roundTo:function(r,e){return oe(r,e),bt(this.s*Math.round(this.n*X.d/(this.d*X.n))*X.n,X.d)},inverse:function(){return bt(this.s*this.d,this.n)},pow:function(r,e){if(oe(r,e),X.d===1)return X.s<0?bt(Math.pow(this.s*this.d,X.n),Math.pow(this.n,X.n)):bt(Math.pow(this.s*this.n,X.n),Math.pow(this.d,X.n));if(this.s<0)return null;var t=ju(this.n),n=ju(this.d),i=1,o=1;for(var a in t)if(a!=="1"){if(a==="0"){i=0;break}if(t[a]*=X.n,t[a]%X.d===0)t[a]/=X.d;else return null;i*=Math.pow(a,t[a])}for(var a in n)if(a!=="1"){if(n[a]*=X.n,n[a]%X.d===0)n[a]/=X.d;else return null;o*=Math.pow(a,n[a])}return X.s<0?bt(o,i):bt(i,o)},equals:function(r,e){return oe(r,e),this.s*this.n*X.d===X.s*X.n*this.d},compare:function(r,e){oe(r,e);var t=this.s*this.n*X.d-X.s*X.n*this.d;return(0<t)-(t<0)},simplify:function(r){if(isNaN(this.n)||isNaN(this.d))return this;r=r||.001;for(var e=this.abs(),t=e.toContinued(),n=1;n<t.length;n++){for(var i=bt(t[n-1],1),o=n-2;o>=0;o--)i=i.inverse().add(t[o]);if(Math.abs(i.sub(e).valueOf())<r)return i.mul(this.s)}return this},divisible:function(r,e){return oe(r,e),!(!(X.n*this.d)||this.n*X.d%(X.n*this.d))},valueOf:function(){return this.s*this.n/this.d},toFraction:function(r){var e,t="",n=this.n,i=this.d;return this.s<0&&(t+="-"),i===1?t+=n:(r&&(e=Math.floor(n/i))>0&&(t+=e,t+=" ",n%=i),t+=n,t+="/",t+=i),t},toLatex:function(r){var e,t="",n=this.n,i=this.d;return this.s<0&&(t+="-"),i===1?t+=n:(r&&(e=Math.floor(n/i))>0&&(t+=e,n%=i),t+="\\frac{",t+=n,t+="}{",t+=i,t+="}"),t},toContinued:function(){var r,e=this.n,t=this.d,n=[];if(isNaN(e)||isNaN(t))return n;do n.push(Math.floor(e/t)),r=e%t,e=t,t=r;while(e!==1);return n},toString:function(r){var e=this.n,t=this.d;if(isNaN(e)||isNaN(t))return"NaN";r=r||15;var n=Dg(e,t),i=Ig(e,t,n),o=this.s<0?"-":"";if(o+=e/t|0,e%=t,e*=10,e&&(o+="."),n){for(var a=i;a--;)o+=e/t|0,e%=t,e*=10;o+="(";for(var a=n;a--;)o+=e/t|0,e%=t,e*=10;o+=")"}else for(var a=r;e&&a--;)o+=e/t|0,e%=t,e*=10;return o}};var Ng="Fraction",Lg=[],io=N(Ng,Lg,()=>(Object.defineProperty(Lt,"name",{value:"Fraction"}),Lt.prototype.constructor=Lt,Lt.prototype.type="Fraction",Lt.prototype.isFraction=!0,Lt.prototype.toJSON=function(){return{mathjs:"Fraction",n:this.s*this.n,d:this.d}},Lt.fromJSON=function(r){return new Lt(r)},Lt),{isClass:!0});var Og="Matrix",Fg=[],oo=N(Og,Fg,()=>{function r(){if(!(this instanceof r))throw new SyntaxError("Constructor must be called with the new operator")}return r.prototype.type="Matrix",r.prototype.isMatrix=!0,r.prototype.storage=function(){throw new Error("Cannot invoke storage on a Matrix interface")},r.prototype.datatype=function(){throw new Error("Cannot invoke datatype on a Matrix interface")},r.prototype.create=function(e,t){throw new Error("Cannot invoke create on a Matrix interface")},r.prototype.subset=function(e,t,n){throw new Error("Cannot invoke subset on a Matrix interface")},r.prototype.get=function(e){throw new Error("Cannot invoke get on a Matrix interface")},r.prototype.set=function(e,t,n){throw new Error("Cannot invoke set on a Matrix interface")},r.prototype.resize=function(e,t){throw new Error("Cannot invoke resize on a Matrix interface")},r.prototype.reshape=function(e,t){throw new Error("Cannot invoke reshape on a Matrix interface")},r.prototype.clone=function(){throw new Error("Cannot invoke clone on a Matrix interface")},r.prototype.size=function(){throw new Error("Cannot invoke size on a Matrix interface")},r.prototype.map=function(e,t){throw new Error("Cannot invoke map on a Matrix interface")},r.prototype.forEach=function(e){throw new Error("Cannot invoke forEach on a Matrix interface")},r.prototype[Symbol.iterator]=function(){throw new Error("Cannot iterate a Matrix interface")},r.prototype.toArray=function(){throw new Error("Cannot invoke toArray on a Matrix interface")},r.prototype.valueOf=function(){throw new Error("Cannot invoke valueOf on a Matrix interface")},r.prototype.format=function(e){throw new Error("Cannot invoke format on a Matrix interface")},r.prototype.toString=function(){throw new Error("Cannot invoke toString on a Matrix interface")},r},{isClass:!0});function so(r,e,t){var n=r.constructor,i=new n(2),o="";if(t){if(t<1)throw new Error("size must be in greater than 0");if(!tt(t))throw new Error("size must be an integer");if(r.greaterThan(i.pow(t-1).sub(1))||r.lessThan(i.pow(t-1).mul(-1)))throw new Error("Value must be in range [-2^".concat(t-1,", 2^").concat(t-1,"-1]"));if(!r.isInteger())throw new Error("Value must be an integer");r.lessThan(0)&&(r=r.add(i.pow(t))),o="i".concat(t)}switch(e){case 2:return"".concat(r.toBinary()).concat(o);case 8:return"".concat(r.toOctal()).concat(o);case 16:return"".concat(r.toHexadecimal()).concat(o);default:throw new Error("Base ".concat(e," not supported "))}}function Zu(r,e){if(typeof e=="function")return e(r);if(!r.isFinite())return r.isNaN()?"NaN":r.gt(0)?"Infinity":"-Infinity";var{notation:t,precision:n,wordSize:i}=Wi(e);switch(t){case"fixed":return Bg(r,n);case"exponential":return Yu(r,n);case"engineering":return Ug(r,n);case"bin":return so(r,2,i);case"oct":return so(r,8,i);case"hex":return so(r,16,i);case"auto":{var o=$u(e?.lowerExp,-3),a=$u(e?.upperExp,5);if(r.isZero())return"0";var c,l=r.toSignificantDigits(n),s=l.e;return s>=o&&s<a?c=l.toFixed():c=Yu(r,n),c.replace(/((\.\d*?)(0+))($|e)/,function(){var u=arguments[2],h=arguments[4];return u!=="."?u+h:h})}default:throw new Error('Unknown notation "'+t+'". Choose "auto", "exponential", "fixed", "bin", "oct", or "hex.')}}function Ug(r,e){var t=r.e,n=t%3===0?t:t<0?t-3-t%3:t-t%3,i=r.mul(Math.pow(10,-n)),o=i.toPrecision(e);if(o.includes("e")){var a=r.constructor;o=new a(o).toFixed()}return o+"e"+(t>=0?"+":"")+n.toString()}function Yu(r,e){return e!==void 0?r.toExponential(e-1):r.toExponential()}function Bg(r,e){return r.toFixed(e)}function $u(r,e){return nt(r)?r:it(r)?r.toNumber():e}function vt(r,e){var t=zg(r,e);return e&&typeof e=="object"&&"truncate"in e&&t.length>e.truncate?t.substring(0,e.truncate-3)+"...":t}function zg(r,e){if(typeof r=="number")return $n(r,e);if(it(r))return Zu(r,e);if(Gg(r))return!e||e.fraction!=="decimal"?r.s*r.n+"/"+r.d:r.toString();if(Array.isArray(r))return Qu(r,e);if(jt(r))return Ku(r);if(typeof r=="function")return r.syntax?String(r.syntax):"function";if(r&&typeof r=="object"){if(typeof r.format=="function")return r.format(e);if(r&&r.toString(e)!=={}.toString())return r.toString(e);var t=Object.keys(r).map(n=>Ku(n)+": "+vt(r[n],e));return"{"+t.join(", ")+"}"}return String(r)}function Ku(r){for(var e=String(r),t="",n=0;n<e.length;){var i=e.charAt(n);t+=i in Ju?Ju[i]:i,n++}return'"'+t+'"'}var Ju={'"':'\\"',"\\":"\\\\","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r"," ":"\\t"};function Qu(r,e){if(Array.isArray(r)){for(var t="[",n=r.length,i=0;i<n;i++)i!==0&&(t+=", "),t+=Qu(r[i],e);return t+="]",t}else return vt(r,e)}function Gg(r){return r&&typeof r=="object"&&typeof r.s=="number"&&typeof r.n=="number"&&typeof r.d=="number"||!1}function Q(r,e,t){if(!(this instanceof Q))throw new SyntaxError("Constructor must be called with the new operator");this.actual=r,this.expected=e,this.relation=t,this.message="Dimension mismatch ("+(Array.isArray(r)?"["+r.join(", ")+"]":r)+" "+(this.relation||"!=")+" "+(Array.isArray(e)?"["+e.join(", ")+"]":e)+")",this.stack=new Error().stack}Q.prototype=new RangeError;Q.prototype.constructor=RangeError;Q.prototype.name="DimensionError";Q.prototype.isDimensionError=!0;function _e(r,e,t){if(!(this instanceof _e))throw new SyntaxError("Constructor must be called with the new operator");this.index=r,arguments.length<3?(this.min=0,this.max=e):(this.min=e,this.max=t),this.min!==void 0&&this.index<this.min?this.message="Index out of range ("+this.index+" < "+this.min+")":this.max!==void 0&&this.index>=this.max?this.message="Index out of range ("+this.index+" > "+(this.max-1)+")":this.message="Index out of range ("+this.index+")",this.stack=new Error().stack}_e.prototype=new RangeError;_e.prototype.constructor=RangeError;_e.prototype.name="IndexError";_e.prototype.isIndexError=!0;function st(r){for(var e=[];Array.isArray(r);)e.push(r.length),r=r[0];return e}function tl(r,e,t){var n,i=r.length;if(i!==e[t])throw new Q(i,e[t]);if(t<e.length-1){var o=t+1;for(n=0;n<i;n++){var a=r[n];if(!Array.isArray(a))throw new Q(e.length-1,e.length,"<");tl(r[n],e,o)}}else for(n=0;n<i;n++)if(Array.isArray(r[n]))throw new Q(e.length+1,e.length,">")}function uo(r,e){var t=e.length===0;if(t){if(Array.isArray(r))throw new Q(r.length,0)}else tl(r,e,0)}function Et(r,e){if(r!==void 0){if(!nt(r)||!tt(r))throw new TypeError("Index must be an integer (value: "+r+")");if(r<0||typeof e=="number"&&r>=e)throw new _e(r,e)}}function un(r,e,t){if(!Array.isArray(e))throw new TypeError("Array expected");if(e.length===0)throw new Error("Resizing to scalar is not supported");e.forEach(function(i){if(!nt(i)||!tt(i)||i<0)throw new TypeError("Invalid size, must contain positive integers (size: "+vt(e)+")")}),(nt(r)||it(r))&&(r=[r]);var n=t!==void 0?t:0;return ao(r,e,0,n),r}function ao(r,e,t,n){var i,o,a=r.length,c=e[t],l=Math.min(a,c);if(r.length=c,t<e.length-1){var s=t+1;for(i=0;i<l;i++)o=r[i],Array.isArray(o)||(o=[o],r[i]=o),ao(o,e,s,n);for(i=l;i<c;i++)o=[],r[i]=o,ao(o,e,s,n)}else{for(i=0;i<l;i++)for(;Array.isArray(r[i]);)r[i]=r[i][0];for(i=l;i<c;i++)r[i]=n}}function Qn(r,e){var t=Vg(r),n=t.length;if(!Array.isArray(r)||!Array.isArray(e))throw new TypeError("Array expected");if(e.length===0)throw new Q(0,n,"!=");e=tr(e,n);var i=el(e);if(n!==i)throw new Q(i,n,"!=");try{return kg(t,e)}catch(o){throw o instanceof Q?new Q(i,n,"!="):o}}function tr(r,e){var t=el(r),n=r.slice(),i=-1,o=r.indexOf(i),a=r.indexOf(i,o+1)>=0;if(a)throw new Error("More than one wildcard in sizes");var c=o>=0,l=e%t===0;if(c)if(l)n[o]=-e/t;else throw new Error("Could not replace wildcard, since "+e+" is no multiple of "+-t);return n}function el(r){return r.reduce((e,t)=>e*t,1)}function kg(r,e){for(var t=r,n,i=e.length-1;i>0;i--){var o=e[i];n=[];for(var a=t.length/o,c=0;c<a;c++)n.push(t.slice(c*o,(c+1)*o));t=n}return t}function ci(r,e,t,n){var i=n||st(r);if(t)for(var o=0;o<t;o++)r=[r],i.unshift(1);for(r=nl(r,e,0);i.length<e;)i.push(1);return r}function nl(r,e,t){var n,i;if(Array.isArray(r)){var o=t+1;for(n=0,i=r.length;n<i;n++)r[n]=nl(r[n],e,o)}else for(var a=t;a<e;a++)r=[r];return r}function Vg(r){if(!Array.isArray(r))return r;var e=[];return r.forEach(function t(n){Array.isArray(n)?n.forEach(t):e.push(n)}),e}function In(r,e){for(var t,n=0,i=0;i<r.length;i++){var o=r[i],a=Array.isArray(o);if(i===0&&a&&(n=o.length),a&&o.length!==n)return;var c=a?In(o,e):e(o);if(t===void 0)t=c;else if(t!==c)return"mixed"}return t}function rl(r,e,t,n){if(n<t){if(r.length!==e.length)throw new Q(r.length,e.length);for(var i=[],o=0;o<r.length;o++)i[o]=rl(r[o],e[o],t,n+1);return i}else return r.concat(e)}function lo(){var r=Array.prototype.slice.call(arguments,0,-1),e=Array.prototype.slice.call(arguments,-1);if(r.length===1)return r[0];if(r.length>1)return r.slice(1).reduce(function(t,n){return rl(t,n,e,0)},r[0]);throw new Error("Wrong number of arguments in function concat")}function co(){for(var r=arguments.length,e=new Array(r),t=0;t<r;t++)e[t]=arguments[t];for(var n=e.map(f=>f.length),i=Math.max(...n),o=new Array(i).fill(null),a=0;a<e.length;a++)for(var c=e[a],l=n[a],s=0;s<l;s++){var u=i-l+s;c[s]>o[u]&&(o[u]=c[s])}for(var h=0;h<e.length;h++)il(e[h],o);return o}function il(r,e){for(var t=e.length,n=r.length,i=0;i<n;i++){var o=t-n+i;if(r[i]<e[o]&&r[i]>1||r[i]>e[o])throw new Error("shape missmatch: missmatch is found in arg with shape (".concat(r,") not possible to broadcast dimension ").concat(n," with size ").concat(r[i]," to size ").concat(e[o]))}}function er(r,e){var t=st(r);if(ce(t,e))return r;il(t,e);var n=co(t,e),i=n.length,o=[...Array(i-t.length).fill(1),...t],a=Wg(r);t.length<i&&(a=Qn(a,o),t=st(a));for(var c=0;c<i;c++)t[c]<n[c]&&(a=Hg(a,n[c],c),t=st(a));return a}function Hg(r,e,t){return lo(...Array(e).fill(r),t)}function ol(r,e){if(!Array.isArray(r))throw new Error("Array expected");var t=st(r);if(e.length!==t.length)throw new Q(e.length,t.length);for(var n=0;n<e.length;n++)Et(e[n],t[n]);return e.reduce((i,o)=>i[o],r)}function Wg(r){return bn([],r)}var nr=pn(Vi(),1);function hi(r,e,t,n,i){if(nr.default.isTypedFunction(r)){var o=[e,t,n],a=nr.default.resolve(r,o);if(a)return h(a.implementation,o);var c=[e,t],l=nr.default.resolve(r,c);if(l)return h(l.implementation,c);var s=[e],u=nr.default.resolve(r,s);return u?h(u.implementation,s):h(r,o)}else return r(e,t,n);function h(f,d){try{return f.apply(f,d)}catch(m){var g;if(m instanceof TypeError&&((g=m.data)===null||g===void 0?void 0:g.category)==="wrongType"){var p=[];throw p.push("value: ".concat(Ut(e))),d.length>=2&&p.push("index: ".concat(Ut(t))),d.length>=3&&p.push("array: ".concat(Ut(n))),new TypeError("Function ".concat(i," cannot apply callback arguments ")+"".concat(r.name,"(").concat(p.join(", "),") at index ").concat(JSON.stringify(t)))}else throw new TypeError("Function ".concat(i," cannot apply callback arguments ")+"to function ".concat(r.name,": ").concat(m.message))}}}var qg="DenseMatrix",Xg=["Matrix"],ho=N(qg,Xg,r=>{var{Matrix:e}=r;function t(u,h){if(!(this instanceof t))throw new SyntaxError("Constructor must be called with the new operator");if(h&&!jt(h))throw new Error("Invalid datatype: "+h);if(ot(u))u.type==="DenseMatrix"?(this._data=ft(u._data),this._size=ft(u._size),this._datatype=h||u._datatype):(this._data=u.toArray(),this._size=u.size(),this._datatype=h||u._datatype);else if(u&&yt(u.data)&&yt(u.size))this._data=u.data,this._size=u.size,uo(this._data,this._size),this._datatype=h||u.datatype;else if(yt(u))this._data=s(u),this._size=st(this._data),uo(this._data,this._size),this._datatype=h;else{if(u)throw new TypeError("Unsupported type of data ("+Ut(u)+")");this._data=[],this._size=[0],this._datatype=h}}t.prototype=new e,t.prototype.createDenseMatrix=function(u,h){return new t(u,h)},Object.defineProperty(t,"name",{value:"DenseMatrix"}),t.prototype.constructor=t,t.prototype.type="DenseMatrix",t.prototype.isDenseMatrix=!0,t.prototype.getDataType=function(){return In(this._data,Ut)},t.prototype.storage=function(){return"dense"},t.prototype.datatype=function(){return this._datatype},t.prototype.create=function(u,h){return new t(u,h)},t.prototype.subset=function(u,h,f){switch(arguments.length){case 1:return n(this,u);case 2:case 3:return o(this,u,h,f);default:throw new SyntaxError("Wrong number of arguments")}},t.prototype.get=function(u){return ol(this._data,u)},t.prototype.set=function(u,h,f){if(!yt(u))throw new TypeError("Array expected");if(u.length<this._size.length)throw new Q(u.length,this._size.length,"<");var d,g,p,m=u.map(function(b){return b+1});l(this,m,f);var v=this._data;for(d=0,g=u.length-1;d<g;d++)p=u[d],Et(p,v.length),v=v[p];return p=u[u.length-1],Et(p,v.length),v[p]=h,this};function n(u,h){if(!Mn(h))throw new TypeError("Invalid index");var f=h.isScalar();if(f)return u.get(h.min());var d=h.size();if(d.length!==u._size.length)throw new Q(d.length,u._size.length);for(var g=h.min(),p=h.max(),m=0,v=u._size.length;m<v;m++)Et(g[m],u._size[m]),Et(p[m],u._size[m]);return new t(i(u._data,h,d.length,0),u._datatype)}function i(u,h,f,d){var g=d===f-1,p=h.dimension(d);return g?p.map(function(m){return Et(m,u.length),u[m]}).valueOf():p.map(function(m){Et(m,u.length);var v=u[m];return i(v,h,f,d+1)}).valueOf()}function o(u,h,f,d){if(!h||h.isIndex!==!0)throw new TypeError("Invalid index");var g=h.size(),p=h.isScalar(),m;if(ot(f)?(m=f.size(),f=f.valueOf()):m=st(f),p){if(m.length!==0)throw new TypeError("Scalar expected");u.set(h.min(),f,d)}else{if(!ce(m,g))try{m.length===0?f=er([f],g):f=er(f,g),m=st(f)}catch{}if(g.length<u._size.length)throw new Q(g.length,u._size.length,"<");if(m.length<g.length){for(var v=0,b=0;g[v]===1&&m[v]===1;)v++;for(;g[v]===1;)b++,v++;f=ci(f,g.length,b,m)}if(!ce(g,m))throw new Q(g,m,">");var y=h.max().map(function(_){return _+1});l(u,y,d);var S=g.length,x=0;a(u._data,h,f,S,x)}return u}function a(u,h,f,d,g){var p=g===d-1,m=h.dimension(g);p?m.forEach(function(v,b){Et(v),u[v]=f[b[0]]}):m.forEach(function(v,b){Et(v),a(u[v],h,f[b[0]],d,g+1)})}t.prototype.resize=function(u,h,f){if(!Fe(u))throw new TypeError("Array or Matrix expected");var d=u.valueOf().map(p=>Array.isArray(p)&&p.length===1?p[0]:p),g=f?this.clone():this;return c(g,d,h)};function c(u,h,f){if(h.length===0){for(var d=u._data;yt(d);)d=d[0];return d}return u._size=h.slice(0),u._data=un(u._data,u._size,f),u}t.prototype.reshape=function(u,h){var f=h?this.clone():this;f._data=Qn(f._data,u);var d=f._size.reduce((g,p)=>g*p);return f._size=tr(u,d),f};function l(u,h,f){for(var d=u._size.slice(0),g=!1;d.length<h.length;)d.push(0),g=!0;for(var p=0,m=h.length;p<m;p++)h[p]>d[p]&&(d[p]=h[p],g=!0);g&&c(u,d,f)}t.prototype.clone=function(){var u=new t({data:ft(this._data),size:ft(this._size),datatype:this._datatype});return u},t.prototype.size=function(){return this._size.slice(0)},t.prototype.map=function(u){var h=this,f=function(m,v){return yt(m)?m.map(function(b,y){return f(b,v.concat(y))}):hi(u,m,v,h,"map")},d=f(this._data,[]),g=this._datatype!==void 0?In(d,Ut):void 0;return new t(d,g)},t.prototype.forEach=function(u){var h=this,f=function(g,p){yt(g)?g.forEach(function(m,v){f(m,p.concat(v))}):u(g,p,h)};f(this._data,[])},t.prototype[Symbol.iterator]=function*(){var u=function*(f,d){if(yt(f))for(var g=0;g<f.length;g++)yield*u(f[g],d.concat(g));else yield{value:f,index:d}};yield*u(this._data,[])},t.prototype.rows=function(){var u=[],h=this.size();if(h.length!==2)throw new TypeError("Rows can only be returned for a 2D matrix.");var f=this._data;for(var d of f)u.push(new t([d],this._datatype));return u},t.prototype.columns=function(){var u=this,h=[],f=this.size();if(f.length!==2)throw new TypeError("Rows can only be returned for a 2D matrix.");for(var d=this._data,g=function(v){var b=d.map(y=>[y[v]]);h.push(new t(b,u._datatype))},p=0;p<f[1];p++)g(p);return h},t.prototype.toArray=function(){return ft(this._data)},t.prototype.valueOf=function(){return this._data},t.prototype.format=function(u){return vt(this._data,u)},t.prototype.toString=function(){return vt(this._data)},t.prototype.toJSON=function(){return{mathjs:"DenseMatrix",data:this._data,size:this._size,datatype:this._datatype}},t.prototype.diagonal=function(u){if(u){if(it(u)&&(u=u.toNumber()),!nt(u)||!tt(u))throw new TypeError("The parameter k must be an integer number")}else u=0;for(var h=u>0?u:0,f=u<0?-u:0,d=this._size[0],g=this._size[1],p=Math.min(d-f,g-h),m=[],v=0;v<p;v++)m[v]=this._data[v+f][v+h];return new t({data:m,size:[p],datatype:this._datatype})},t.diagonal=function(u,h,f,d){if(!yt(u))throw new TypeError("Array expected, size parameter");if(u.length!==2)throw new Error("Only two dimensions matrix are supported");if(u=u.map(function(M){if(it(M)&&(M=M.toNumber()),!nt(M)||!tt(M)||M<1)throw new Error("Size values must be positive integers");return M}),f){if(it(f)&&(f=f.toNumber()),!nt(f)||!tt(f))throw new TypeError("The parameter k must be an integer number")}else f=0;var g=f>0?f:0,p=f<0?-f:0,m=u[0],v=u[1],b=Math.min(m-p,v-g),y;if(yt(h)){if(h.length!==b)throw new Error("Invalid value array length");y=function(w){return h[w]}}else if(ot(h)){var S=h.size();if(S.length!==1||S[0]!==b)throw new Error("Invalid matrix length");y=function(w){return h.get([w])}}else y=function(){return h};d||(d=it(y(0))?y(0).mul(0):0);var x=[];if(u.length>0){x=un(x,u,d);for(var _=0;_<b;_++)x[_+p][_+g]=y(_)}return new t({data:x,size:[m,v]})},t.fromJSON=function(u){return new t(u)},t.prototype.swapRows=function(u,h){if(!nt(u)||!tt(u)||!nt(h)||!tt(h))throw new Error("Row index must be positive integers");if(this._size.length!==2)throw new Error("Only two dimensional matrix is supported");return Et(u,this._size[0]),Et(h,this._size[0]),t._swapRows(u,h,this._data),this},t._swapRows=function(u,h,f){var d=f[u];f[u]=f[h],f[h]=d};function s(u){return ot(u)?s(u.valueOf()):yt(u)?u.map(s):u}return t},{isClass:!0});function sl(r){var e=r.length,t=r[0].length,n,i,o=[];for(i=0;i<t;i++){var a=[];for(n=0;n<e;n++)a.push(r[n][i]);o.push(a)}return o}function al(r){for(var e=0;e<r.length;e++)if(Fe(r[e]))return!0;return!1}function po(r,e){ot(r)&&(r=r.valueOf());for(var t=0,n=r.length;t<n;t++){var i=r[t];Array.isArray(i)?po(i,e):e(i)}}function _t(r,e,t){return r&&typeof r.map=="function"?r.map(function(n){return _t(n,e,t)}):e(r)}function ul(r,e,t){var n=Array.isArray(r)?st(r):r.size();if(e<0||e>=n.length)throw new _e(e,n.length);return ot(r)?r.create(pi(r.valueOf(),e,t),r.datatype()):pi(r,e,t)}function pi(r,e,t){var n,i,o,a;if(e<=0)if(Array.isArray(r[0])){for(a=sl(r),i=[],n=0;n<a.length;n++)i[n]=pi(a[n],e-1,t);return i}else{for(o=r[0],n=1;n<r.length;n++)o=t(o,r[n]);return o}else{for(i=[],n=0;n<r.length;n++)i[n]=pi(r[n],e-1,t);return i}}var ll="isInteger",jg=["typed"],fo=N(ll,jg,r=>{var{typed:e}=r;return e(ll,{number:tt,BigNumber:function(n){return n.isInt()},bigint:function(n){return!0},Fraction:function(n){return n.d===1&&isFinite(n.n)},"Array | Matrix":e.referToSelf(t=>n=>_t(n,t))})});var te="number",ze="number, number";function go(r){return Math.abs(r)}go.signature=te;function mo(r,e){return r+e}mo.signature=ze;function yo(r,e){return r-e}yo.signature=ze;function vo(r,e){return r*e}vo.signature=ze;function Yg(r,e){return r/e}Yg.signature=ze;function _o(r){return-r}_o.signature=te;function $g(r){return r}$g.signature=te;function Zg(r){return Tu(r)}Zg.signature=te;function Kg(r){return r*r*r}Kg.signature=te;function xo(r){return Math.exp(r)}xo.signature=te;function Jg(r){return Cu(r)}Jg.signature=te;function Qg(r,e){if(!tt(r)||!tt(e))throw new Error("Parameters in function gcd must be integer numbers");for(var t;e!==0;)t=r%e,r=e,e=t;return r<0?-r:r}Qg.signature=ze;function tm(r,e){if(!tt(r)||!tt(e))throw new Error("Parameters in function lcm must be integer numbers");if(r===0||e===0)return 0;for(var t,n=r*e;e!==0;)t=e,e=r%t,r=t;return Math.abs(n/r)}tm.signature=ze;function em(r){return Mu(r)}em.signature=te;function Eo(r){return Su(r)}Eo.signature=te;function nm(r){return wu(r)}nm.signature=te;function rm(r,e){return e===0?r:r-e*Math.floor(r/e)}rm.signature=ze;function im(r){return bu(r)}im.signature=te;function om(r){return Math.sqrt(r)}om.signature=te;function sm(r){return r*r}sm.signature=te;function am(r,e){var t,n,i,o=0,a=1,c=1,l=0;if(!tt(r)||!tt(e))throw new Error("Parameters in function xgcd must be integer numbers");for(;e;)n=Math.floor(r/e),i=r-n*e,t=o,o=a-n*o,a=t,t=c,c=l-n*c,l=t,r=e,e=i;var s;return r<0?s=[-r,-a,-l]:s=[r,r?a:0,l],s}am.signature=ze;function bo(r,e){return r*r<1&&e===1/0||r*r>1&&e===-1/0?0:Math.pow(r,e)}bo.signature=ze;function Rn(r){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;if(!tt(e)||e<0||e>15)throw new Error("Number of decimals in function round must be an integer from 0 to 15 inclusive");return parseFloat(qi(r,e))}function um(r){return Math.abs(r)}um.signature=te;var cl=2*Math.PI;function Je(r,e){var t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1e-9,n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:0;if(t<=0)throw new Error("Relative tolerance must be greater than 0");if(n<0)throw new Error("Absolute tolerance must be at least 0");return r.isNaN()||e.isNaN()?!1:!r.isFinite()||!e.isFinite()?r.eq(e):r.eq(e)?!0:r.minus(e).abs().lte(r.constructor.max(r.constructor.max(r.abs(),e.abs()).mul(t),n))}var hl="isZero",lm=["typed","equalScalar"],So=N(hl,lm,r=>{var{typed:e,equalScalar:t}=r;return e(hl,{"number | BigNumber | Complex | Fraction":n=>t(n,0),bigint:n=>n===0n,Unit:e.referToSelf(n=>i=>e.find(n,i.valueType())(i.value)),"Array | Matrix":e.referToSelf(n=>i=>_t(i,n))})});function pl(r,e,t,n){return pe(r.re,e.re,t,n)&&pe(r.im,e.im,t,n)}var fl=N("compareUnits",["typed"],r=>{var{typed:e}=r;return{"Unit, Unit":e.referToSelf(t=>(n,i)=>{if(!n.equalBase(i))throw new Error("Cannot compare units with different base");return e.find(t,[n.valueType(),i.valueType()])(n.value,i.value)})}});var fi="equalScalar",cm=["typed","config"],Mo=N(fi,cm,r=>{var{typed:e,config:t}=r,n=fl({typed:e});return e(fi,{"boolean, boolean":function(o,a){return o===a},"number, number":function(o,a){return pe(o,a,t.relTol,t.absTol)},"BigNumber, BigNumber":function(o,a){return o.eq(a)||Je(o,a,t.relTol,t.absTol)},"bigint, bigint":function(o,a){return o===a},"Fraction, Fraction":function(o,a){return o.equals(a)},"Complex, Complex":function(o,a){return pl(o,a,t.relTol,t.absTol)}},n)}),qw=N(fi,["typed","config"],r=>{var{typed:e,config:t}=r;return e(fi,{"number, number":function(i,o){return pe(i,o,t.relTol,t.absTol)}})});var hm="SparseMatrix",pm=["typed","equalScalar","Matrix"],wo=N(hm,pm,r=>{var{typed:e,equalScalar:t,Matrix:n}=r;function i(p,m){if(!(this instanceof i))throw new SyntaxError("Constructor must be called with the new operator");if(m&&!jt(m))throw new Error("Invalid datatype: "+m);if(ot(p))o(this,p,m);else if(p&&yt(p.index)&&yt(p.ptr)&&yt(p.size))this._values=p.values,this._index=p.index,this._ptr=p.ptr,this._size=p.size,this._datatype=m||p.datatype;else if(yt(p))a(this,p,m);else{if(p)throw new TypeError("Unsupported type of data ("+Ut(p)+")");this._values=[],this._index=[],this._ptr=[0],this._size=[0,0],this._datatype=m}}function o(p,m,v){m.type==="SparseMatrix"?(p._values=m._values?ft(m._values):void 0,p._index=ft(m._index),p._ptr=ft(m._ptr),p._size=ft(m._size),p._datatype=v||m._datatype):a(p,m.valueOf(),v||m._datatype)}function a(p,m,v){p._values=[],p._index=[],p._ptr=[],p._datatype=v;var b=m.length,y=0,S=t,x=0;if(jt(v)&&(S=e.find(t,[v,v])||t,x=e.convert(0,v)),b>0){var _=0;do{p._ptr.push(p._index.length);for(var M=0;M<b;M++){var w=m[M];if(yt(w)){if(_===0&&y<w.length&&(y=w.length),_<w.length){var C=w[_];S(C,x)||(p._values.push(C),p._index.push(M))}}else _===0&&y<1&&(y=1),S(w,x)||(p._values.push(w),p._index.push(M))}_++}while(_<y)}p._ptr.push(p._index.length),p._size=[b,y]}i.prototype=new n,i.prototype.createSparseMatrix=function(p,m){return new i(p,m)},Object.defineProperty(i,"name",{value:"SparseMatrix"}),i.prototype.constructor=i,i.prototype.type="SparseMatrix",i.prototype.isSparseMatrix=!0,i.prototype.getDataType=function(){return In(this._values,Ut)},i.prototype.storage=function(){return"sparse"},i.prototype.datatype=function(){return this._datatype},i.prototype.create=function(p,m){return new i(p,m)},i.prototype.density=function(){var p=this._size[0],m=this._size[1];return p!==0&&m!==0?this._index.length/(p*m):0},i.prototype.subset=function(p,m,v){if(!this._values)throw new Error("Cannot invoke subset on a Pattern only matrix");switch(arguments.length){case 1:return c(this,p);case 2:case 3:return l(this,p,m,v);default:throw new SyntaxError("Wrong number of arguments")}};function c(p,m){if(!Mn(m))throw new TypeError("Invalid index");var v=m.isScalar();if(v)return p.get(m.min());var b=m.size();if(b.length!==p._size.length)throw new Q(b.length,p._size.length);var y,S,x,_,M=m.min(),w=m.max();for(y=0,S=p._size.length;y<S;y++)Et(M[y],p._size[y]),Et(w[y],p._size[y]);var C=p._values,P=p._index,D=p._ptr,R=m.dimension(0),W=m.dimension(1),G=[],k=[];R.forEach(function(j,J){k[j]=J[0],G[j]=!0});var L=C?[]:void 0,q=[],Y=[];return W.forEach(function(j){for(Y.push(q.length),x=D[j],_=D[j+1];x<_;x++)y=P[x],G[y]===!0&&(q.push(k[y]),L&&L.push(C[x]))}),Y.push(q.length),new i({values:L,index:q,ptr:Y,size:b,datatype:p._datatype})}function l(p,m,v,b){if(!m||m.isIndex!==!0)throw new TypeError("Invalid index");var y=m.size(),S=m.isScalar(),x;if(ot(v)?(x=v.size(),v=v.toArray()):x=st(v),S){if(x.length!==0)throw new TypeError("Scalar expected");p.set(m.min(),v,b)}else{if(y.length!==1&&y.length!==2)throw new Q(y.length,p._size.length,"<");if(x.length<y.length){for(var _=0,M=0;y[_]===1&&x[_]===1;)_++;for(;y[_]===1;)M++,_++;v=ci(v,y.length,M,x)}if(!ce(y,x))throw new Q(y,x,">");if(y.length===1){var w=m.dimension(0);w.forEach(function(D,R){Et(D),p.set([D,0],v[R[0]],b)})}else{var C=m.dimension(0),P=m.dimension(1);C.forEach(function(D,R){Et(D),P.forEach(function(W,G){Et(W),p.set([D,W],v[R[0]][G[0]],b)})})}}return p}i.prototype.get=function(p){if(!yt(p))throw new TypeError("Array expected");if(p.length!==this._size.length)throw new Q(p.length,this._size.length);if(!this._values)throw new Error("Cannot invoke get on a Pattern only matrix");var m=p[0],v=p[1];Et(m,this._size[0]),Et(v,this._size[1]);var b=s(m,this._ptr[v],this._ptr[v+1],this._index);return b<this._ptr[v+1]&&this._index[b]===m?this._values[b]:0},i.prototype.set=function(p,m,v){if(!yt(p))throw new TypeError("Array expected");if(p.length!==this._size.length)throw new Q(p.length,this._size.length);if(!this._values)throw new Error("Cannot invoke set on a Pattern only matrix");var b=p[0],y=p[1],S=this._size[0],x=this._size[1],_=t,M=0;jt(this._datatype)&&(_=e.find(t,[this._datatype,this._datatype])||t,M=e.convert(0,this._datatype)),(b>S-1||y>x-1)&&(f(this,Math.max(b+1,S),Math.max(y+1,x),v),S=this._size[0],x=this._size[1]),Et(b,S),Et(y,x);var w=s(b,this._ptr[y],this._ptr[y+1],this._index);return w<this._ptr[y+1]&&this._index[w]===b?_(m,M)?u(w,y,this._values,this._index,this._ptr):this._values[w]=m:_(m,M)||h(w,b,y,m,this._values,this._index,this._ptr),this};function s(p,m,v,b){if(v-m===0)return v;for(var y=m;y<v;y++)if(b[y]===p)return y;return m}function u(p,m,v,b,y){v.splice(p,1),b.splice(p,1);for(var S=m+1;S<y.length;S++)y[S]--}function h(p,m,v,b,y,S,x){y.splice(p,0,b),S.splice(p,0,m);for(var _=v+1;_<x.length;_++)x[_]++}i.prototype.resize=function(p,m,v){if(!Fe(p))throw new TypeError("Array or Matrix expected");var b=p.valueOf().map(S=>Array.isArray(S)&&S.length===1?S[0]:S);if(b.length!==2)throw new Error("Only two dimensions matrix are supported");b.forEach(function(S){if(!nt(S)||!tt(S)||S<0)throw new TypeError("Invalid size, must contain positive integers (size: "+vt(b)+")")});var y=v?this.clone():this;return f(y,b[0],b[1],m)};function f(p,m,v,b){var y=b||0,S=t,x=0;jt(p._datatype)&&(S=e.find(t,[p._datatype,p._datatype])||t,x=e.convert(0,p._datatype),y=e.convert(y,p._datatype));var _=!S(y,x),M=p._size[0],w=p._size[1],C,P,D;if(v>w){for(P=w;P<v;P++)if(p._ptr[P]=p._values.length,_)for(C=0;C<M;C++)p._values.push(y),p._index.push(C);p._ptr[v]=p._values.length}else v<w&&(p._ptr.splice(v+1,w-v),p._values.splice(p._ptr[v],p._values.length),p._index.splice(p._ptr[v],p._index.length));if(w=v,m>M){if(_){var R=0;for(P=0;P<w;P++){p._ptr[P]=p._ptr[P]+R,D=p._ptr[P+1]+R;var W=0;for(C=M;C<m;C++,W++)p._values.splice(D+W,0,y),p._index.splice(D+W,0,C),R++}p._ptr[w]=p._values.length}}else if(m<M){var G=0;for(P=0;P<w;P++){p._ptr[P]=p._ptr[P]-G;var k=p._ptr[P],L=p._ptr[P+1]-G;for(D=k;D<L;D++)C=p._index[D],C>m-1&&(p._values.splice(D,1),p._index.splice(D,1),G++)}p._ptr[P]=p._values.length}return p._size[0]=m,p._size[1]=v,p}i.prototype.reshape=function(p,m){if(!yt(p))throw new TypeError("Array expected");if(p.length!==2)throw new Error("Sparse matrices can only be reshaped in two dimensions");p.forEach(function(j){if(!nt(j)||!tt(j)||j<=-2||j===0)throw new TypeError("Invalid size, must contain positive integers or -1 (size: "+vt(p)+")")});var v=this._size[0]*this._size[1];p=tr(p,v);var b=p[0]*p[1];if(v!==b)throw new Error("Reshaping sparse matrix will result in the wrong number of elements");var y=m?this.clone():this;if(this._size[0]===p[0]&&this._size[1]===p[1])return y;for(var S=[],x=0;x<y._ptr.length;x++)for(var _=0;_<y._ptr[x+1]-y._ptr[x];_++)S.push(x);for(var M=y._values.slice(),w=y._index.slice(),C=0;C<y._index.length;C++){var P=w[C],D=S[C],R=P*y._size[1]+D;S[C]=R%p[1],w[C]=Math.floor(R/p[1])}y._values.length=0,y._index.length=0,y._ptr.length=p[1]+1,y._size=p.slice();for(var W=0;W<y._ptr.length;W++)y._ptr[W]=0;for(var G=0;G<M.length;G++){var k=w[G],L=S[G],q=M[G],Y=s(k,y._ptr[L],y._ptr[L+1],y._index);h(Y,k,L,q,y._values,y._index,y._ptr)}return y},i.prototype.clone=function(){var p=new i({values:this._values?ft(this._values):void 0,index:ft(this._index),ptr:ft(this._ptr),size:ft(this._size),datatype:this._datatype});return p},i.prototype.size=function(){return this._size.slice(0)},i.prototype.map=function(p,m){if(!this._values)throw new Error("Cannot invoke map on a Pattern only matrix");var v=this,b=this._size[0],y=this._size[1],S=function(_,M,w){return hi(p,_,[M,w],v,"map")};return d(this,0,b-1,0,y-1,S,m)};function d(p,m,v,b,y,S,x){var _=[],M=[],w=[],C=t,P=0;jt(p._datatype)&&(C=e.find(t,[p._datatype,p._datatype])||t,P=e.convert(0,p._datatype));for(var D=function(pt,Tt,wt){var St=S(pt,Tt,wt);C(St,P)||(_.push(St),M.push(Tt))},R=b;R<=y;R++){w.push(_.length);var W=p._ptr[R],G=p._ptr[R+1];if(x)for(var k=W;k<G;k++){var L=p._index[k];L>=m&&L<=v&&D(p._values[k],L-m,R-b)}else{for(var q={},Y=W;Y<G;Y++){var j=p._index[Y];q[j]=p._values[Y]}for(var J=m;J<=v;J++){var lt=J in q?q[J]:0;D(lt,J-m,R-b)}}}return w.push(_.length),new i({values:_,index:M,ptr:w,size:[v-m+1,y-b+1]})}i.prototype.forEach=function(p,m){if(!this._values)throw new Error("Cannot invoke forEach on a Pattern only matrix");for(var v=this,b=this._size[0],y=this._size[1],S=0;S<y;S++){var x=this._ptr[S],_=this._ptr[S+1];if(m)for(var M=x;M<_;M++){var w=this._index[M];p(this._values[M],[w,S],v)}else{for(var C={},P=x;P<_;P++){var D=this._index[P];C[D]=this._values[P]}for(var R=0;R<b;R++){var W=R in C?C[R]:0;p(W,[R,S],v)}}}},i.prototype[Symbol.iterator]=function*(){if(!this._values)throw new Error("Cannot iterate a Pattern only matrix");for(var p=this._size[1],m=0;m<p;m++)for(var v=this._ptr[m],b=this._ptr[m+1],y=v;y<b;y++){var S=this._index[y];yield{value:this._values[y],index:[S,m]}}},i.prototype.toArray=function(){return g(this._values,this._index,this._ptr,this._size,!0)},i.prototype.valueOf=function(){return g(this._values,this._index,this._ptr,this._size,!1)};function g(p,m,v,b,y){var S=b[0],x=b[1],_=[],M,w;for(M=0;M<S;M++)for(_[M]=[],w=0;w<x;w++)_[M][w]=0;for(w=0;w<x;w++)for(var C=v[w],P=v[w+1],D=C;D<P;D++)M=m[D],_[M][w]=p?y?ft(p[D]):p[D]:1;return _}return i.prototype.format=function(p){for(var m=this._size[0],v=this._size[1],b=this.density(),y="Sparse Matrix ["+vt(m,p)+" x "+vt(v,p)+"] density: "+vt(b,p)+`
|
|
7515
7515
|
`,S=0;S<v;S++)for(var x=this._ptr[S],_=this._ptr[S+1],M=x;M<_;M++){var w=this._index[M];y+=`
|
|
7516
|
-
(`+vt(w,p)+", "+vt(S,p)+") ==> "+(this._values?vt(this._values[M],p):"X")}return y},i.prototype.toString=function(){return vt(this.toArray())},i.prototype.toJSON=function(){return{mathjs:"SparseMatrix",values:this._values,index:this._index,ptr:this._ptr,size:this._size,datatype:this._datatype}},i.prototype.diagonal=function(p){if(p){if(it(p)&&(p=p.toNumber()),!nt(p)||!tt(p))throw new TypeError("The parameter k must be an integer number")}else p=0;var m=p>0?p:0,v=p<0?-p:0,b=this._size[0],y=this._size[1],S=Math.min(b-v,y-m),x=[],_=[],M=[];M[0]=0;for(var w=m;w<y&&x.length<S;w++)for(var C=this._ptr[w],P=this._ptr[w+1],D=C;D<P;D++){var R=this._index[D];if(R===w-m+v){x.push(this._values[D]),_[x.length-1]=R-v;break}}return M.push(x.length),new i({values:x,index:_,ptr:M,size:[S,1]})},i.fromJSON=function(p){return new i(p)},i.diagonal=function(p,m,v,b,y){if(!yt(p))throw new TypeError("Array expected, size parameter");if(p.length!==2)throw new Error("Only two dimensions matrix are supported");if(p=p.map(function(j){if(it(j)&&(j=j.toNumber()),!nt(j)||!tt(j)||j<1)throw new Error("Size values must be positive integers");return j}),v){if(it(v)&&(v=v.toNumber()),!nt(v)||!tt(v))throw new TypeError("The parameter k must be an integer number")}else v=0;var S=t,x=0;jt(y)&&(S=e.find(t,[y,y])||t,x=e.convert(0,y));var _=v>0?v:0,M=v<0?-v:0,w=p[0],C=p[1],P=Math.min(w-M,C-_),D;if(yt(m)){if(m.length!==P)throw new Error("Invalid value array length");D=function(J){return m[J]}}else if(ot(m)){var R=m.size();if(R.length!==1||R[0]!==P)throw new Error("Invalid matrix length");D=function(J){return m.get([J])}}else D=function(){return m};for(var W=[],G=[],k=[],L=0;L<C;L++){k.push(W.length);var q=L-_;if(q>=0&&q<P){var Y=D(q);S(Y,x)||(G.push(q+M),W.push(Y))}}return k.push(W.length),new i({values:W,index:G,ptr:k,size:[w,C]})},i.prototype.swapRows=function(p,m){if(!nt(p)||!tt(p)||!nt(m)||!tt(m))throw new Error("Row index must be positive integers");if(this._size.length!==2)throw new Error("Only two dimensional matrix is supported");return Et(p,this._size[0]),Et(m,this._size[0]),i._swapRows(p,m,this._size[1],this._values,this._index,this._ptr),this},i._forEachRow=function(p,m,v,b,y){for(var S=b[p],x=b[p+1],_=S;_<x;_++)y(v[_],m[_])},i._swapRows=function(p,m,v,b,y,S){for(var x=0;x<v;x++){var _=S[x],M=S[x+1],w=s(p,_,M,y),C=s(m,_,M,y);if(w<M&&C<M&&y[w]===p&&y[C]===m){if(b){var P=b[w];b[w]=b[C],b[C]=P}continue}if(w<M&&y[w]===p&&(C>=M||y[C]!==m)){var D=b?b[w]:void 0;y.splice(C,0,m),b&&b.splice(C,0,D),y.splice(C<=w?w+1:w,1),b&&b.splice(C<=w?w+1:w,1);continue}if(C<M&&y[C]===m&&(w>=M||y[w]!==p)){var R=b?b[C]:void 0;y.splice(w,0,p),b&&b.splice(w,0,R),y.splice(w<=C?C+1:C,1),b&&b.splice(w<=C?C+1:C,1)}}},i},{isClass:!0});var fm="number",dm=["typed"];function gm(r){var e=r.match(/(0[box])([0-9a-fA-F]*)\.([0-9a-fA-F]*)/);if(e){var t={"0b":2,"0o":8,"0x":16}[e[1]],n=e[2],i=e[3];return{input:r,radix:t,integerPart:n,fractionalPart:i}}else return null}function mm(r){for(var e=parseInt(r.integerPart,r.radix),t=0,n=0;n<r.fractionalPart.length;n++){var i=parseInt(r.fractionalPart[n],r.radix);t+=i/Math.pow(r.radix,n+1)}var o=e+t;if(isNaN(o))throw new SyntaxError('String "'+r.input+'" is not a valid number');return o}var To=N(fm,dm,r=>{var{typed:e}=r,t=e("number",{"":function(){return 0},number:function(i){return i},string:function(i){if(i==="NaN")return NaN;var o=gm(i);if(o)return mm(o);var a=0,c=i.match(/(0[box][0-9a-fA-F]*)i([0-9]*)/);c&&(a=Number(c[2]),i=c[1]);var l=Number(i);if(isNaN(l))throw new SyntaxError('String "'+i+'" is not a valid number');if(c){if(l>2**a-1)throw new SyntaxError('String "'.concat(i,'" is out of range'));l>=2**(a-1)&&(l=l-2**a)}return l},BigNumber:function(i){return i.toNumber()},bigint:function(i){return Number(i)},Fraction:function(i){return i.valueOf()},Unit:e.referToSelf(n=>i=>{var o=i.clone();return o.value=n(i.value),o}),null:function(i){return 0},"Unit, string | Unit":function(i,o){return i.toNumber(o)},"Array | Matrix":e.referToSelf(n=>i=>_t(i,n))});return t.fromJSON=function(n){return parseFloat(n.value)},t});var ym="bignumber",vm=["typed","BigNumber"],Co=N(ym,vm,r=>{var{typed:e,BigNumber:t}=r;return e("bignumber",{"":function(){return new t(0)},number:function(i){return new t(i+"")},string:function(i){var o=i.match(/(0[box][0-9a-fA-F]*)i([0-9]*)/);if(o){var a=o[2],c=t(o[1]),l=new t(2).pow(Number(a));if(c.gt(l.sub(1)))throw new SyntaxError('String "'.concat(i,'" is out of range'));var s=new t(2).pow(Number(a)-1);return c.gte(s)?c.sub(l):c}return new t(i)},BigNumber:function(i){return i},bigint:function(i){return new t(i.toString())},Unit:e.referToSelf(n=>i=>{var o=i.clone();return o.value=n(i.value),o}),Fraction:function(i){return new t(i.n).div(i.d).times(i.s)},null:function(i){return new t(0)},"Array | Matrix":e.referToSelf(n=>i=>_t(i,n))})});var _m="fraction",xm=["typed","Fraction"],Ao=N(_m,xm,r=>{var{typed:e,Fraction:t}=r;return e("fraction",{number:function(i){if(!isFinite(i)||isNaN(i))throw new Error(i+" cannot be represented as a fraction");return new t(i)},string:function(i){return new t(i)},"number, number":function(i,o){return new t(i,o)},null:function(i){return new t(0)},BigNumber:function(i){return new t(i.toString())},bigint:function(i){return new t(i.toString())},Fraction:function(i){return i},Unit:e.referToSelf(n=>i=>{var o=i.clone();return o.value=n(i.value),o}),Object:function(i){return new t(i)},"Array | Matrix":e.referToSelf(n=>i=>_t(i,n))})});var dl="matrix",Em=["typed","Matrix","DenseMatrix","SparseMatrix"],Po=N(dl,Em,r=>{var{typed:e,Matrix:t,DenseMatrix:n,SparseMatrix:i}=r;return e(dl,{"":function(){return o([])},string:function(c){return o([],c)},"string, string":function(c,l){return o([],c,l)},Array:function(c){return o(c)},Matrix:function(c){return o(c,c.storage())},"Array | Matrix, string":o,"Array | Matrix, string, string":o});function o(a,c,l){if(c==="dense"||c==="default"||c===void 0)return new n(a,l);if(c==="sparse")return new i(a,l);throw new TypeError("Unknown matrix type "+JSON.stringify(c)+".")}});var gl="unaryMinus",bm=["typed"],Do=N(gl,bm,r=>{var{typed:e}=r;return e(gl,{number:_o,"Complex | BigNumber | Fraction":t=>t.neg(),bigint:t=>-t,Unit:e.referToSelf(t=>n=>{var i=n.clone();return i.value=e.find(t,i.valueType())(n.value),i}),"Array | Matrix":e.referToSelf(t=>n=>_t(n,t,!0))})});var ml="abs",Sm=["typed"],Io=N(ml,Sm,r=>{var{typed:e}=r;return e(ml,{number:go,"Complex | BigNumber | Fraction | Unit":t=>t.abs(),bigint:t=>t<0n?-t:t,"Array | Matrix":e.referToSelf(t=>n=>_t(n,t,!0))})});var yl="addScalar",Mm=["typed"],Ro=N(yl,Mm,r=>{var{typed:e}=r;return e(yl,{"number, number":mo,"Complex, Complex":function(n,i){return n.add(i)},"BigNumber, BigNumber":function(n,i){return n.plus(i)},"bigint, bigint":function(n,i){return n+i},"Fraction, Fraction":function(n,i){return n.add(i)},"Unit, Unit":e.referToSelf(t=>(n,i)=>{if(n.value===null||n.value===void 0)throw new Error("Parameter x contains a unit with undefined value");if(i.value===null||i.value===void 0)throw new Error("Parameter y contains a unit with undefined value");if(!n.equalBase(i))throw new Error("Units do not match");var o=n.clone();return o.value=e.find(t,[o.valueType(),i.valueType()])(o.value,i.value),o.fixPrefix=!1,o})})});var vl="subtractScalar",wm=["typed"],No=N(vl,wm,r=>{var{typed:e}=r;return e(vl,{"number, number":yo,"Complex, Complex":function(n,i){return n.sub(i)},"BigNumber, BigNumber":function(n,i){return n.minus(i)},"bigint, bigint":function(n,i){return n-i},"Fraction, Fraction":function(n,i){return n.sub(i)},"Unit, Unit":e.referToSelf(t=>(n,i)=>{if(n.value===null||n.value===void 0)throw new Error("Parameter x contains a unit with undefined value");if(i.value===null||i.value===void 0)throw new Error("Parameter y contains a unit with undefined value");if(!n.equalBase(i))throw new Error("Units do not match");var o=n.clone();return o.value=e.find(t,[o.valueType(),i.valueType()])(o.value,i.value),o.fixPrefix=!1,o})})});var Tm="matAlgo11xS0s",Cm=["typed","equalScalar"],De=N(Tm,Cm,r=>{var{typed:e,equalScalar:t}=r;return function(i,o,a,c){var l=i._values,s=i._index,u=i._ptr,h=i._size,f=i._datatype;if(!l)throw new Error("Cannot perform operation on Pattern Sparse Matrix and Scalar value");var d=h[0],g=h[1],p,m=t,v=0,b=a;typeof f=="string"&&(p=f,m=e.find(t,[p,p]),v=e.convert(0,p),o=e.convert(o,p),b=e.find(a,[p,p]));for(var y=[],S=[],x=[],_=0;_<g;_++){x[_]=S.length;for(var M=u[_],w=u[_+1],C=M;C<w;C++){var P=s[C],D=c?b(o,l[C]):b(l[C],o);m(D,v)||(S.push(P),y.push(D))}}return x[g]=S.length,i.createSparseMatrix({values:y,index:S,ptr:x,size:[d,g],datatype:p})}});var Am="matAlgo12xSfs",Pm=["typed","DenseMatrix"],Nn=N(Am,Pm,r=>{var{typed:e,DenseMatrix:t}=r;return function(i,o,a,c){var l=i._values,s=i._index,u=i._ptr,h=i._size,f=i._datatype;if(!l)throw new Error("Cannot perform operation on Pattern Sparse Matrix and Scalar value");var d=h[0],g=h[1],p,m=a;typeof f=="string"&&(p=f,o=e.convert(o,p),m=e.find(a,[p,p]));for(var v=[],b=[],y=[],S=0;S<g;S++){for(var x=S+1,_=u[S],M=u[S+1],w=_;w<M;w++){var C=s[w];b[C]=l[w],y[C]=x}for(var P=0;P<d;P++)S===0&&(v[P]=[]),y[P]===x?v[P][S]=c?m(o,b[P]):m(b[P],o):v[P][S]=c?m(o,0):m(0,o)}return new t({data:v,size:[d,g],datatype:p})}});var Dm="matAlgo14xDs",Im=["typed"],Ie=N(Dm,Im,r=>{var{typed:e}=r;return function(i,o,a,c){var l=i._data,s=i._size,u=i._datatype,h,f=a;typeof u=="string"&&(h=u,o=e.convert(o,h),f=e.find(a,[h,h]));var d=s.length>0?t(f,0,s,s[0],l,o,c):[];return i.createDenseMatrix({data:d,size:ft(s),datatype:h})};function t(n,i,o,a,c,l,s){var u=[];if(i===o.length-1)for(var h=0;h<a;h++)u[h]=s?n(l,c[h]):n(c[h],l);else for(var f=0;f<a;f++)u[f]=t(n,i+1,o,o[i+1],c[f],l,s);return u}});var Lo="ceil",Rm=["typed","config","round","matrix","equalScalar","zeros","DenseMatrix"],Nm=N(Lo,["typed","config","round"],r=>{var{typed:e,config:t,round:n}=r;return e(Lo,{number:function(o){return pe(o,n(o),t.relTol,t.absTol)?n(o):Math.ceil(o)},"number, number":function(o,a){if(pe(o,n(o,a),t.relTol,t.absTol))return n(o,a);var[c,l]="".concat(o,"e").split("e"),s=Math.ceil(Number("".concat(c,"e").concat(Number(l)+a)));return[c,l]="".concat(s,"e").split("e"),Number("".concat(c,"e").concat(Number(l)-a))}})}),Oo=N(Lo,Rm,r=>{var{typed:e,config:t,round:n,matrix:i,equalScalar:o,zeros:a,DenseMatrix:c}=r,l=De({typed:e,equalScalar:o}),s=Nn({typed:e,DenseMatrix:c}),u=Ie({typed:e}),h=Nm({typed:e,config:t,round:n});return e("ceil",{number:h.signatures.number,"number,number":h.signatures["number,number"],Complex:function(d){return d.ceil()},"Complex, number":function(d,g){return d.ceil(g)},"Complex, BigNumber":function(d,g){return d.ceil(g.toNumber())},BigNumber:function(d){return Je(d,n(d),t.relTol,t.absTol)?n(d):d.ceil()},"BigNumber, BigNumber":function(d,g){return Je(d,n(d,g),t.relTol,t.absTol)?n(d,g):d.toDecimalPlaces(g.toNumber(),Jn.ROUND_CEIL)},Fraction:function(d){return d.ceil()},"Fraction, number":function(d,g){return d.ceil(g)},"Fraction, BigNumber":function(d,g){return d.ceil(g.toNumber())},"Array | Matrix":e.referToSelf(f=>d=>_t(d,f,!0)),"Array, number | BigNumber":e.referToSelf(f=>(d,g)=>_t(d,p=>f(p,g),!0)),"SparseMatrix, number | BigNumber":e.referToSelf(f=>(d,g)=>l(d,g,f,!1)),"DenseMatrix, number | BigNumber":e.referToSelf(f=>(d,g)=>u(d,g,f,!1)),"number | Complex | Fraction | BigNumber, Array":e.referToSelf(f=>(d,g)=>u(i(g),d,f,!0).valueOf()),"number | Complex | Fraction | BigNumber, Matrix":e.referToSelf(f=>(d,g)=>o(d,0)?a(g.size(),g.storage()):g.storage()==="dense"?u(g,d,f,!0):s(g,d,f,!0))})});var _l="exp",Lm=["typed"],Fo=N(_l,Lm,r=>{var{typed:e}=r;return e(_l,{number:xo,Complex:function(n){return n.exp()},BigNumber:function(n){return n.exp()}})});var Om="matAlgo02xDS0",Fm=["typed","equalScalar"],xl=N(Om,Fm,r=>{var{typed:e,equalScalar:t}=r;return function(i,o,a,c){var l=i._data,s=i._size,u=i._datatype||i.getDataType(),h=o._values,f=o._index,d=o._ptr,g=o._size,p=o._datatype||o._data===void 0?o._datatype:o.getDataType();if(s.length!==g.length)throw new Q(s.length,g.length);if(s[0]!==g[0]||s[1]!==g[1])throw new RangeError("Dimension mismatch. Matrix A ("+s+") must match Matrix B ("+g+")");if(!h)throw new Error("Cannot perform operation on Dense Matrix and Pattern Sparse Matrix");var m=s[0],v=s[1],b,y=t,S=0,x=a;typeof u=="string"&&u===p&&u!=="mixed"&&(b=u,y=e.find(t,[b,b]),S=e.convert(0,b),x=e.find(a,[b,b]));for(var _=[],M=[],w=[],C=0;C<v;C++){w[C]=M.length;for(var P=d[C],D=d[C+1],R=P;R<D;R++){var W=f[R],G=c?x(h[R],l[W][C]):x(l[W][C],h[R]);y(G,S)||(M.push(W),_.push(G))}}return w[v]=M.length,o.createSparseMatrix({values:_,index:M,ptr:w,size:[m,v],datatype:u===i._datatype&&p===o._datatype?b:void 0})}});var Um="matAlgo03xDSf",Bm=["typed"],El=N(Um,Bm,r=>{var{typed:e}=r;return function(n,i,o,a){var c=n._data,l=n._size,s=n._datatype||n.getDataType(),u=i._values,h=i._index,f=i._ptr,d=i._size,g=i._datatype||i._data===void 0?i._datatype:i.getDataType();if(l.length!==d.length)throw new Q(l.length,d.length);if(l[0]!==d[0]||l[1]!==d[1])throw new RangeError("Dimension mismatch. Matrix A ("+l+") must match Matrix B ("+d+")");if(!u)throw new Error("Cannot perform operation on Dense Matrix and Pattern Sparse Matrix");var p=l[0],m=l[1],v,b=0,y=o;typeof s=="string"&&s===g&&s!=="mixed"&&(v=s,b=e.convert(0,v),y=e.find(o,[v,v]));for(var S=[],x=0;x<p;x++)S[x]=[];for(var _=[],M=[],w=0;w<m;w++){for(var C=w+1,P=f[w],D=f[w+1],R=P;R<D;R++){var W=h[R];_[W]=a?y(u[R],c[W][w]):y(c[W][w],u[R]),M[W]=C}for(var G=0;G<p;G++)M[G]===C?S[G][w]=_[G]:S[G][w]=a?y(b,c[G][w]):y(c[G][w],b)}return n.createDenseMatrix({data:S,size:[p,m],datatype:s===n._datatype&&g===i._datatype?v:void 0})}});var zm="matAlgo13xDD",Gm=["typed"],bl=N(zm,Gm,r=>{var{typed:e}=r;return function(i,o,a){var c=i._data,l=i._size,s=i._datatype,u=o._data,h=o._size,f=o._datatype,d=[];if(l.length!==h.length)throw new Q(l.length,h.length);for(var g=0;g<l.length;g++){if(l[g]!==h[g])throw new RangeError("Dimension mismatch. Matrix A ("+l+") must match Matrix B ("+h+")");d[g]=l[g]}var p,m=a;typeof s=="string"&&s===f&&(p=s,m=e.find(a,[p,p]));var v=d.length>0?t(m,0,d,d[0],c,u):[];return i.createDenseMatrix({data:v,size:d,datatype:p})};function t(n,i,o,a,c,l){var s=[];if(i===o.length-1)for(var u=0;u<a;u++)s[u]=n(c[u],l[u]);else for(var h=0;h<a;h++)s[h]=t(n,i+1,o,o[i+1],c[h],l[h]);return s}});function Dt(r,e){if(ce(r.size(),e.size()))return[r,e];var t=co(r.size(),e.size());return[r,e].map(n=>km(n,t))}function km(r,e){return ce(r.size(),e)?r:r.create(er(r.valueOf(),e),r.datatype())}var Vm="matrixAlgorithmSuite",Hm=["typed","matrix"],di=N(Vm,Hm,r=>{var{typed:e,matrix:t}=r,n=bl({typed:e}),i=Ie({typed:e});return function(a){var c=a.elop,l=a.SD||a.DS,s;c?(s={"DenseMatrix, DenseMatrix":(d,g)=>n(...Dt(d,g),c),"Array, Array":(d,g)=>n(...Dt(t(d),t(g)),c).valueOf(),"Array, DenseMatrix":(d,g)=>n(...Dt(t(d),g),c),"DenseMatrix, Array":(d,g)=>n(...Dt(d,t(g)),c)},a.SS&&(s["SparseMatrix, SparseMatrix"]=(d,g)=>a.SS(...Dt(d,g),c,!1)),a.DS&&(s["DenseMatrix, SparseMatrix"]=(d,g)=>a.DS(...Dt(d,g),c,!1),s["Array, SparseMatrix"]=(d,g)=>a.DS(...Dt(t(d),g),c,!1)),l&&(s["SparseMatrix, DenseMatrix"]=(d,g)=>l(...Dt(g,d),c,!0),s["SparseMatrix, Array"]=(d,g)=>l(...Dt(t(g),d),c,!0))):(s={"DenseMatrix, DenseMatrix":e.referToSelf(d=>(g,p)=>n(...Dt(g,p),d)),"Array, Array":e.referToSelf(d=>(g,p)=>n(...Dt(t(g),t(p)),d).valueOf()),"Array, DenseMatrix":e.referToSelf(d=>(g,p)=>n(...Dt(t(g),p),d)),"DenseMatrix, Array":e.referToSelf(d=>(g,p)=>n(...Dt(g,t(p)),d))},a.SS&&(s["SparseMatrix, SparseMatrix"]=e.referToSelf(d=>(g,p)=>a.SS(...Dt(g,p),d,!1))),a.DS&&(s["DenseMatrix, SparseMatrix"]=e.referToSelf(d=>(g,p)=>a.DS(...Dt(g,p),d,!1)),s["Array, SparseMatrix"]=e.referToSelf(d=>(g,p)=>a.DS(...Dt(t(g),p),d,!1))),l&&(s["SparseMatrix, DenseMatrix"]=e.referToSelf(d=>(g,p)=>l(...Dt(p,g),d,!0)),s["SparseMatrix, Array"]=e.referToSelf(d=>(g,p)=>l(...Dt(t(p),g),d,!0))));var u=a.scalar||"any",h=a.Ds||a.Ss;h&&(c?(s["DenseMatrix,"+u]=(d,g)=>i(d,g,c,!1),s[u+", DenseMatrix"]=(d,g)=>i(g,d,c,!0),s["Array,"+u]=(d,g)=>i(t(d),g,c,!1).valueOf(),s[u+", Array"]=(d,g)=>i(t(g),d,c,!0).valueOf()):(s["DenseMatrix,"+u]=e.referToSelf(d=>(g,p)=>i(g,p,d,!1)),s[u+", DenseMatrix"]=e.referToSelf(d=>(g,p)=>i(p,g,d,!0)),s["Array,"+u]=e.referToSelf(d=>(g,p)=>i(t(g),p,d,!1).valueOf()),s[u+", Array"]=e.referToSelf(d=>(g,p)=>i(t(p),g,d,!0).valueOf())));var f=a.sS!==void 0?a.sS:a.Ss;return c?(a.Ss&&(s["SparseMatrix,"+u]=(d,g)=>a.Ss(d,g,c,!1)),f&&(s[u+", SparseMatrix"]=(d,g)=>f(g,d,c,!0))):(a.Ss&&(s["SparseMatrix,"+u]=e.referToSelf(d=>(g,p)=>a.Ss(g,p,d,!1))),f&&(s[u+", SparseMatrix"]=e.referToSelf(d=>(g,p)=>f(p,g,d,!0)))),c&&c.signatures&&Kr(s,c.signatures),s}});var Wm="matAlgo01xDSid",qm=["typed"],Sl=N(Wm,qm,r=>{var{typed:e}=r;return function(n,i,o,a){var c=n._data,l=n._size,s=n._datatype||n.getDataType(),u=i._values,h=i._index,f=i._ptr,d=i._size,g=i._datatype||i._data===void 0?i._datatype:i.getDataType();if(l.length!==d.length)throw new Q(l.length,d.length);if(l[0]!==d[0]||l[1]!==d[1])throw new RangeError("Dimension mismatch. Matrix A ("+l+") must match Matrix B ("+d+")");if(!u)throw new Error("Cannot perform operation on Dense Matrix and Pattern Sparse Matrix");var p=l[0],m=l[1],v=typeof s=="string"&&s!=="mixed"&&s===g?s:void 0,b=v?e.find(o,[v,v]):o,y,S,x=[];for(y=0;y<p;y++)x[y]=[];var _=[],M=[];for(S=0;S<m;S++){for(var w=S+1,C=f[S],P=f[S+1],D=C;D<P;D++)y=h[D],_[y]=a?b(u[D],c[y][S]):b(c[y][S],u[D]),M[y]=w;for(y=0;y<p;y++)M[y]===w?x[y][S]=_[y]:x[y][S]=c[y][S]}return n.createDenseMatrix({data:x,size:[p,m],datatype:s===n._datatype&&g===i._datatype?v:void 0})}});var Xm="matAlgo04xSidSid",jm=["typed","equalScalar"],Ml=N(Xm,jm,r=>{var{typed:e,equalScalar:t}=r;return function(i,o,a){var c=i._values,l=i._index,s=i._ptr,u=i._size,h=i._datatype||i._data===void 0?i._datatype:i.getDataType(),f=o._values,d=o._index,g=o._ptr,p=o._size,m=o._datatype||o._data===void 0?o._datatype:o.getDataType();if(u.length!==p.length)throw new Q(u.length,p.length);if(u[0]!==p[0]||u[1]!==p[1])throw new RangeError("Dimension mismatch. Matrix A ("+u+") must match Matrix B ("+p+")");var v=u[0],b=u[1],y,S=t,x=0,_=a;typeof h=="string"&&h===m&&h!=="mixed"&&(y=h,S=e.find(t,[y,y]),x=e.convert(0,y),_=e.find(a,[y,y]));var M=c&&f?[]:void 0,w=[],C=[],P=c&&f?[]:void 0,D=c&&f?[]:void 0,R=[],W=[],G,k,L,q,Y;for(k=0;k<b;k++){C[k]=w.length;var j=k+1;for(q=s[k],Y=s[k+1],L=q;L<Y;L++)G=l[L],w.push(G),R[G]=j,P&&(P[G]=c[L]);for(q=g[k],Y=g[k+1],L=q;L<Y;L++)if(G=d[L],R[G]===j){if(P){var J=_(P[G],f[L]);S(J,x)?R[G]=null:P[G]=J}}else w.push(G),W[G]=j,D&&(D[G]=f[L]);if(P&&D)for(L=C[k];L<w.length;)G=w[L],R[G]===j?(M[L]=P[G],L++):W[G]===j?(M[L]=D[G],L++):w.splice(L,1)}return C[b]=w.length,i.createSparseMatrix({values:M,index:w,ptr:C,size:[v,b],datatype:h===i._datatype&&m===o._datatype?y:void 0})}});var Ym="matAlgo10xSids",$m=["typed","DenseMatrix"],wl=N(Ym,$m,r=>{var{typed:e,DenseMatrix:t}=r;return function(i,o,a,c){var l=i._values,s=i._index,u=i._ptr,h=i._size,f=i._datatype;if(!l)throw new Error("Cannot perform operation on Pattern Sparse Matrix and Scalar value");var d=h[0],g=h[1],p,m=a;typeof f=="string"&&(p=f,o=e.convert(o,p),m=e.find(a,[p,p]));for(var v=[],b=[],y=[],S=0;S<g;S++){for(var x=S+1,_=u[S],M=u[S+1],w=_;w<M;w++){var C=s[w];b[C]=l[w],y[C]=x}for(var P=0;P<d;P++)S===0&&(v[P]=[]),y[P]===x?v[P][S]=c?m(o,b[P]):m(b[P],o):v[P][S]=o}return new t({data:v,size:[d,g],datatype:p})}});var Tl="log2",Zm=["typed","config","Complex"],Uo=N(Tl,Zm,r=>{var{typed:e,config:t,Complex:n}=r;return e(Tl,{number:function(a){return a>=0||t.predictable?Eo(a):i(new n(a,0))},Complex:i,BigNumber:function(a){return!a.isNegative()||t.predictable?a.log(2):i(new n(a.toNumber(),0))},"Array | Matrix":e.referToSelf(o=>a=>_t(a,o))});function i(o){var a=Math.sqrt(o.re*o.re+o.im*o.im);return new n(Math.log2?Math.log2(a):Math.log(a)/Math.LN2,Math.atan2(o.im,o.re)/Math.LN2)}});var Km="multiplyScalar",Jm=["typed"],Bo=N(Km,Jm,r=>{var{typed:e}=r;return e("multiplyScalar",{"number, number":vo,"Complex, Complex":function(n,i){return n.mul(i)},"BigNumber, BigNumber":function(n,i){return n.times(i)},"bigint, bigint":function(n,i){return n*i},"Fraction, Fraction":function(n,i){return n.mul(i)},"number | Fraction | BigNumber | Complex, Unit":(t,n)=>n.multiply(t),"Unit, number | Fraction | BigNumber | Complex | Unit":(t,n)=>t.multiply(n)})});var Cl="multiply",Qm=["typed","matrix","addScalar","multiplyScalar","equalScalar","dot"],zo=N(Cl,Qm,r=>{var{typed:e,matrix:t,addScalar:n,multiplyScalar:i,equalScalar:o,dot:a}=r,c=De({typed:e,equalScalar:o}),l=Ie({typed:e});function s(x,_){switch(x.length){case 1:switch(_.length){case 1:if(x[0]!==_[0])throw new RangeError("Dimension mismatch in multiplication. Vectors must have the same length");break;case 2:if(x[0]!==_[0])throw new RangeError("Dimension mismatch in multiplication. Vector length ("+x[0]+") must match Matrix rows ("+_[0]+")");break;default:throw new Error("Can only multiply a 1 or 2 dimensional matrix (Matrix B has "+_.length+" dimensions)")}break;case 2:switch(_.length){case 1:if(x[1]!==_[0])throw new RangeError("Dimension mismatch in multiplication. Matrix columns ("+x[1]+") must match Vector length ("+_[0]+")");break;case 2:if(x[1]!==_[0])throw new RangeError("Dimension mismatch in multiplication. Matrix A columns ("+x[1]+") must match Matrix B rows ("+_[0]+")");break;default:throw new Error("Can only multiply a 1 or 2 dimensional matrix (Matrix B has "+_.length+" dimensions)")}break;default:throw new Error("Can only multiply a 1 or 2 dimensional matrix (Matrix A has "+x.length+" dimensions)")}}function u(x,_,M){if(M===0)throw new Error("Cannot multiply two empty vectors");return a(x,_)}function h(x,_){if(_.storage()!=="dense")throw new Error("Support for SparseMatrix not implemented");return f(x,_)}function f(x,_){var M=x._data,w=x._size,C=x._datatype||x.getDataType(),P=_._data,D=_._size,R=_._datatype||_.getDataType(),W=w[0],G=D[1],k,L=n,q=i;C&&R&&C===R&&typeof C=="string"&&C!=="mixed"&&(k=C,L=e.find(n,[k,k]),q=e.find(i,[k,k]));for(var Y=[],j=0;j<G;j++){for(var J=q(M[0],P[0][j]),lt=1;lt<W;lt++)J=L(J,q(M[lt],P[lt][j]));Y[j]=J}return x.createDenseMatrix({data:Y,size:[G],datatype:C===x._datatype&&R===_._datatype?k:void 0})}var d=e("_multiplyMatrixVector",{"DenseMatrix, any":p,"SparseMatrix, any":b}),g=e("_multiplyMatrixMatrix",{"DenseMatrix, DenseMatrix":m,"DenseMatrix, SparseMatrix":v,"SparseMatrix, DenseMatrix":y,"SparseMatrix, SparseMatrix":S});function p(x,_){var M=x._data,w=x._size,C=x._datatype||x.getDataType(),P=_._data,D=_._datatype||_.getDataType(),R=w[0],W=w[1],G,k=n,L=i;C&&D&&C===D&&typeof C=="string"&&C!=="mixed"&&(G=C,k=e.find(n,[G,G]),L=e.find(i,[G,G]));for(var q=[],Y=0;Y<R;Y++){for(var j=M[Y],J=L(j[0],P[0]),lt=1;lt<W;lt++)J=k(J,L(j[lt],P[lt]));q[Y]=J}return x.createDenseMatrix({data:q,size:[R],datatype:C===x._datatype&&D===_._datatype?G:void 0})}function m(x,_){var M=x._data,w=x._size,C=x._datatype||x.getDataType(),P=_._data,D=_._size,R=_._datatype||_.getDataType(),W=w[0],G=w[1],k=D[1],L,q=n,Y=i;C&&R&&C===R&&typeof C=="string"&&C!=="mixed"&&C!=="mixed"&&(L=C,q=e.find(n,[L,L]),Y=e.find(i,[L,L]));for(var j=[],J=0;J<W;J++){var lt=M[J];j[J]=[];for(var at=0;at<k;at++){for(var pt=Y(lt[0],P[0][at]),Tt=1;Tt<G;Tt++)pt=q(pt,Y(lt[Tt],P[Tt][at]));j[J][at]=pt}}return x.createDenseMatrix({data:j,size:[W,k],datatype:C===x._datatype&&R===_._datatype?L:void 0})}function v(x,_){var M=x._data,w=x._size,C=x._datatype||x.getDataType(),P=_._values,D=_._index,R=_._ptr,W=_._size,G=_._datatype||_._data===void 0?_._datatype:_.getDataType();if(!P)throw new Error("Cannot multiply Dense Matrix times Pattern only Matrix");var k=w[0],L=W[1],q,Y=n,j=i,J=o,lt=0;C&&G&&C===G&&typeof C=="string"&&C!=="mixed"&&(q=C,Y=e.find(n,[q,q]),j=e.find(i,[q,q]),J=e.find(o,[q,q]),lt=e.convert(0,q));for(var at=[],pt=[],Tt=[],wt=_.createSparseMatrix({values:at,index:pt,ptr:Tt,size:[k,L],datatype:C===x._datatype&&G===_._datatype?q:void 0}),St=0;St<L;St++){Tt[St]=pt.length;var xt=R[St],$t=R[St+1];if($t>xt)for(var Mt=0,gt=0;gt<k;gt++){for(var se=gt+1,Ot=void 0,ct=xt;ct<$t;ct++){var It=D[ct];Mt!==se?(Ot=j(M[gt][It],P[ct]),Mt=se):Ot=Y(Ot,j(M[gt][It],P[ct]))}Mt===se&&!J(Ot,lt)&&(pt.push(gt),at.push(Ot))}}return Tt[L]=pt.length,wt}function b(x,_){var M=x._values,w=x._index,C=x._ptr,P=x._datatype||x._data===void 0?x._datatype:x.getDataType();if(!M)throw new Error("Cannot multiply Pattern only Matrix times Dense Matrix");var D=_._data,R=_._datatype||_.getDataType(),W=x._size[0],G=_._size[0],k=[],L=[],q=[],Y,j=n,J=i,lt=o,at=0;P&&R&&P===R&&typeof P=="string"&&P!=="mixed"&&(Y=P,j=e.find(n,[Y,Y]),J=e.find(i,[Y,Y]),lt=e.find(o,[Y,Y]),at=e.convert(0,Y));var pt=[],Tt=[];q[0]=0;for(var wt=0;wt<G;wt++){var St=D[wt];if(!lt(St,at))for(var xt=C[wt],$t=C[wt+1],Mt=xt;Mt<$t;Mt++){var gt=w[Mt];Tt[gt]?pt[gt]=j(pt[gt],J(St,M[Mt])):(Tt[gt]=!0,L.push(gt),pt[gt]=J(St,M[Mt]))}}for(var se=L.length,Ot=0;Ot<se;Ot++){var ct=L[Ot];k[Ot]=pt[ct]}return q[1]=L.length,x.createSparseMatrix({values:k,index:L,ptr:q,size:[W,1],datatype:P===x._datatype&&R===_._datatype?Y:void 0})}function y(x,_){var M=x._values,w=x._index,C=x._ptr,P=x._datatype||x._data===void 0?x._datatype:x.getDataType();if(!M)throw new Error("Cannot multiply Pattern only Matrix times Dense Matrix");var D=_._data,R=_._datatype||_.getDataType(),W=x._size[0],G=_._size[0],k=_._size[1],L,q=n,Y=i,j=o,J=0;P&&R&&P===R&&typeof P=="string"&&P!=="mixed"&&(L=P,q=e.find(n,[L,L]),Y=e.find(i,[L,L]),j=e.find(o,[L,L]),J=e.convert(0,L));for(var lt=[],at=[],pt=[],Tt=x.createSparseMatrix({values:lt,index:at,ptr:pt,size:[W,k],datatype:P===x._datatype&&R===_._datatype?L:void 0}),wt=[],St=[],xt=0;xt<k;xt++){pt[xt]=at.length;for(var $t=xt+1,Mt=0;Mt<G;Mt++){var gt=D[Mt][xt];if(!j(gt,J))for(var se=C[Mt],Ot=C[Mt+1],ct=se;ct<Ot;ct++){var It=w[ct];St[It]!==$t?(St[It]=$t,at.push(It),wt[It]=Y(gt,M[ct])):wt[It]=q(wt[It],Y(gt,M[ct]))}}for(var zt=pt[xt],Ee=at.length,Ge=zt;Ge<Ee;Ge++){var Un=at[Ge];lt[Ge]=wt[Un]}}return pt[k]=at.length,Tt}function S(x,_){var M=x._values,w=x._index,C=x._ptr,P=x._datatype||x._data===void 0?x._datatype:x.getDataType(),D=_._values,R=_._index,W=_._ptr,G=_._datatype||_._data===void 0?_._datatype:_.getDataType(),k=x._size[0],L=_._size[1],q=M&&D,Y,j=n,J=i;P&&G&&P===G&&typeof P=="string"&&P!=="mixed"&&(Y=P,j=e.find(n,[Y,Y]),J=e.find(i,[Y,Y]));for(var lt=q?[]:void 0,at=[],pt=[],Tt=x.createSparseMatrix({values:lt,index:at,ptr:pt,size:[k,L],datatype:P===x._datatype&&G===_._datatype?Y:void 0}),wt=q?[]:void 0,St=[],xt,$t,Mt,gt,se,Ot,ct,It,zt=0;zt<L;zt++){pt[zt]=at.length;var Ee=zt+1;for(se=W[zt],Ot=W[zt+1],gt=se;gt<Ot;gt++)if(It=R[gt],q)for($t=C[It],Mt=C[It+1],xt=$t;xt<Mt;xt++)ct=w[xt],St[ct]!==Ee?(St[ct]=Ee,at.push(ct),wt[ct]=J(D[gt],M[xt])):wt[ct]=j(wt[ct],J(D[gt],M[xt]));else for($t=C[It],Mt=C[It+1],xt=$t;xt<Mt;xt++)ct=w[xt],St[ct]!==Ee&&(St[ct]=Ee,at.push(ct));if(q)for(var Ge=pt[zt],Un=at.length,cn=Ge;cn<Un;cn++){var ar=at[cn];lt[cn]=wt[ar]}}return pt[L]=at.length,Tt}return e(Cl,i,{"Array, Array":e.referTo("Matrix, Matrix",x=>(_,M)=>{s(st(_),st(M));var w=x(t(_),t(M));return ot(w)?w.valueOf():w}),"Matrix, Matrix":function(_,M){var w=_.size(),C=M.size();return s(w,C),w.length===1?C.length===1?u(_,M,w[0]):h(_,M):C.length===1?d(_,M):g(_,M)},"Matrix, Array":e.referTo("Matrix,Matrix",x=>(_,M)=>x(_,t(M))),"Array, Matrix":e.referToSelf(x=>(_,M)=>x(t(_,M.storage()),M)),"SparseMatrix, any":function(_,M){return c(_,M,i,!1)},"DenseMatrix, any":function(_,M){return l(_,M,i,!1)},"any, SparseMatrix":function(_,M){return c(M,_,i,!0)},"any, DenseMatrix":function(_,M){return l(M,_,i,!0)},"Array, any":function(_,M){return l(t(_),M,i,!1).valueOf()},"any, Array":function(_,M){return l(t(M),_,i,!0).valueOf()},"any, any":i,"any, any, ...any":e.referToSelf(x=>(_,M,w)=>{for(var C=x(_,M),P=0;P<w.length;P++)C=x(C,w[P]);return C})})});var ty="matAlgo07xSSf",ey=["typed","DenseMatrix"],Al=N(ty,ey,r=>{var{typed:e,DenseMatrix:t}=r;return function(o,a,c){var l=o._size,s=o._datatype||o._data===void 0?o._datatype:o.getDataType(),u=a._size,h=a._datatype||a._data===void 0?a._datatype:a.getDataType();if(l.length!==u.length)throw new Q(l.length,u.length);if(l[0]!==u[0]||l[1]!==u[1])throw new RangeError("Dimension mismatch. Matrix A ("+l+") must match Matrix B ("+u+")");var f=l[0],d=l[1],g,p=0,m=c;typeof s=="string"&&s===h&&s!=="mixed"&&(g=s,p=e.convert(0,g),m=e.find(c,[g,g]));var v,b,y=[];for(v=0;v<f;v++)y[v]=[];var S=[],x=[],_=[],M=[];for(b=0;b<d;b++){var w=b+1;for(n(o,b,_,S,w),n(a,b,M,x,w),v=0;v<f;v++){var C=_[v]===w?S[v]:p,P=M[v]===w?x[v]:p;y[v][b]=m(C,P)}}return new t({data:y,size:[f,d],datatype:s===o._datatype&&h===a._datatype?g:void 0})};function n(i,o,a,c,l){for(var s=i._values,u=i._index,h=i._ptr,f=h[o],d=h[o+1];f<d;f++){var g=u[f];a[g]=l,c[g]=s[f]}}});var Pl="conj",ny=["typed"],Go=N(Pl,ny,r=>{var{typed:e}=r;return e(Pl,{"number | BigNumber | Fraction":t=>t,Complex:t=>t.conjugate(),"Array | Matrix":e.referToSelf(t=>n=>_t(n,t))})});var Dl="concat",ry=["typed","matrix","isInteger"],ko=N(Dl,ry,r=>{var{typed:e,matrix:t,isInteger:n}=r;return e(Dl,{"...Array | Matrix | number | BigNumber":function(o){var a,c=o.length,l=-1,s,u=!1,h=[];for(a=0;a<c;a++){var f=o[a];if(ot(f)&&(u=!0),nt(f)||it(f)){if(a!==c-1)throw new Error("Dimension must be specified as last argument");if(s=l,l=f.valueOf(),!n(l))throw new TypeError("Integer number expected for dimension");if(l<0||a>0&&l>s)throw new _e(l,s+1)}else{var d=ft(f).valueOf(),g=st(d);if(h[a]=d,s=l,l=g.length-1,a>0&&l!==s)throw new Q(s+1,l+1)}}if(h.length===0)throw new SyntaxError("At least one matrix expected");for(var p=h.shift();h.length;)p=lo(p,h.shift(),l);return u?t(p):p},"...string":function(o){return o.join("")}})});var Il="identity",iy=["typed","config","matrix","BigNumber","DenseMatrix","SparseMatrix"],Vo=N(Il,iy,r=>{var{typed:e,config:t,matrix:n,BigNumber:i,DenseMatrix:o,SparseMatrix:a}=r;return e(Il,{"":function(){return t.matrix==="Matrix"?n([]):[]},string:function(u){return n(u)},"number | BigNumber":function(u){return l(u,u,t.matrix==="Matrix"?"dense":void 0)},"number | BigNumber, string":function(u,h){return l(u,u,h)},"number | BigNumber, number | BigNumber":function(u,h){return l(u,h,t.matrix==="Matrix"?"dense":void 0)},"number | BigNumber, number | BigNumber, string":function(u,h,f){return l(u,h,f)},Array:function(u){return c(u)},"Array, string":function(u,h){return c(u,h)},Matrix:function(u){return c(u.valueOf(),u.storage())},"Matrix, string":function(u,h){return c(u.valueOf(),h)}});function c(s,u){switch(s.length){case 0:return u?n(u):[];case 1:return l(s[0],s[0],u);case 2:return l(s[0],s[1],u);default:throw new Error("Vector containing two values expected")}}function l(s,u,h){var f=it(s)||it(u)?i:null;if(it(s)&&(s=s.toNumber()),it(u)&&(u=u.toNumber()),!tt(s)||s<1)throw new Error("Parameters in function identity must be positive integers");if(!tt(u)||u<1)throw new Error("Parameters in function identity must be positive integers");var d=f?new i(1):1,g=f?new f(0):0,p=[s,u];if(h){if(h==="sparse")return a.diagonal(p,d,0,g);if(h==="dense")return o.diagonal(p,d,0,g);throw new TypeError('Unknown matrix type "'.concat(h,'"'))}for(var m=un([],p,g),v=s<u?s:u,b=0;b<v;b++)m[b][b]=d;return m}});function Rl(){throw new Error('No "bignumber" implementation available')}function Nl(){throw new Error('No "fraction" implementation available')}function Ll(){throw new Error('No "matrix" implementation available')}var Ol="reshape",oy=["typed","isInteger","matrix"],Ho=N(Ol,oy,r=>{var{typed:e,isInteger:t}=r;return e(Ol,{"Matrix, Array":function(i,o){return i.reshape(o,!0)},"Array, Array":function(i,o){return o.forEach(function(a){if(!t(a))throw new TypeError("Invalid size for dimension: "+a)}),Qn(i,o)}})});var Fl="size",sy=["typed","config","?matrix"],Wo=N(Fl,sy,r=>{var{typed:e,config:t,matrix:n}=r;return e(Fl,{Matrix:function(o){return o.create(o.size(),"number")},Array:st,string:function(o){return t.matrix==="Array"?[o.length]:n([o.length],"dense","number")},"number | Complex | BigNumber | Unit | boolean | null":function(o){return t.matrix==="Array"?[]:n?n([],"dense","number"):Ll()}})});var Ul="zeros",ay=["typed","config","matrix","BigNumber"],qo=N(Ul,ay,r=>{var{typed:e,config:t,matrix:n,BigNumber:i}=r;return e(Ul,{"":function(){return t.matrix==="Array"?o([]):o([],"default")},"...number | BigNumber | string":function(s){var u=s[s.length-1];if(typeof u=="string"){var h=s.pop();return o(s,h)}else return t.matrix==="Array"?o(s):o(s,"default")},Array:o,Matrix:function(s){var u=s.storage();return o(s.valueOf(),u)},"Array | Matrix, string":function(s,u){return o(s.valueOf(),u)}});function o(l,s){var u=a(l),h=u?new i(0):0;if(c(l),s){var f=n(s);return l.length>0?f.resize(l,h):f}else{var d=[];return l.length>0?un(d,l,h):d}}function a(l){var s=!1;return l.forEach(function(u,h,f){it(u)&&(s=!0,f[h]=u.toNumber())}),s}function c(l){l.forEach(function(s){if(typeof s!="number"||!tt(s)||s<0)throw new Error("Parameters in function zeros must be positive integers")})}});var Bl="fft",uy=["typed","matrix","addScalar","multiplyScalar","divideScalar","exp","tau","i","dotDivide","conj","pow","ceil","log2"],Xo=N(Bl,uy,r=>{var{typed:e,matrix:t,addScalar:n,multiplyScalar:i,divideScalar:o,exp:a,tau:c,i:l,dotDivide:s,conj:u,pow:h,ceil:f,log2:d}=r;return e(Bl,{Array:g,Matrix:function(y){return y.create(g(y.valueOf()),y.datatype())}});function g(b){var y=st(b);return y.length===1?v(b,y[0]):p(b.map(S=>g(S,y.slice(1))),0)}function p(b,y){var S=st(b);if(y!==0)return new Array(S[0]).fill(0).map((_,M)=>p(b[M],y-1));if(S.length===1)return v(b);function x(_){var M=st(_);return new Array(M[1]).fill(0).map((w,C)=>new Array(M[0]).fill(0).map((P,D)=>_[D][C]))}return x(p(x(b),1))}function m(b){for(var y=b.length,S=a(o(i(-1,i(l,c)),y)),x=[],_=1-y;_<y;_++)x.push(h(S,o(h(_,2),2)));for(var M=h(2,f(d(y+y-1))),w=[...new Array(y).fill(0).map((L,q)=>i(b[q],x[y-1+q])),...new Array(M-y).fill(0)],C=[...new Array(y+y-1).fill(0).map((L,q)=>o(1,x[q])),...new Array(M-(y+y-1)).fill(0)],P=v(w),D=v(C),R=new Array(M).fill(0).map((L,q)=>i(P[q],D[q])),W=s(u(g(u(R))),M),G=[],k=y-1;k<y+y-1;k++)G.push(i(W[k],x[k]));return G}function v(b){var y=b.length;if(y===1)return[b[0]];if(y%2===0){for(var S=[...v(b.filter((w,C)=>C%2===0),y/2),...v(b.filter((w,C)=>C%2===1),y/2)],x=0;x<y/2;x++){var _=S[x],M=i(S[x+y/2],a(i(i(c,l),o(-x,y))));S[x]=n(_,M),S[x+y/2]=n(_,i(-1,M))}return S}else return m(b)}});function jo(r,e,t){var n;return String(r).includes("Unexpected type")?(n=arguments.length>2?" (type: "+Ut(t)+", value: "+JSON.stringify(t)+")":" (type: "+r.data.actual+")",new TypeError("Cannot calculate "+e+", unexpected type of argument"+n)):String(r).includes("complex numbers")?(n=arguments.length>2?" (type: "+Ut(t)+", value: "+JSON.stringify(t)+")":"",new TypeError("Cannot calculate "+e+", no ordering relation is defined for complex numbers"+n)):r}var ly="numeric",cy=["number","?bignumber","?fraction"],Yo=N(ly,cy,r=>{var{number:e,bignumber:t,fraction:n}=r,i={string:!0,number:!0,BigNumber:!0,Fraction:!0},o={number:a=>e(a),BigNumber:t?a=>t(a):Rl,bigint:a=>BigInt(a),Fraction:n?a=>n(a):Nl};return function(c){var l=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"number",s=arguments.length>2?arguments[2]:void 0;if(s!==void 0)throw new SyntaxError("numeric() takes one or two arguments");var u=Ut(c);if(!(u in i))throw new TypeError("Cannot convert "+c+' of type "'+u+'"; valid input types are '+Object.keys(i).join(", "));if(!(l in o))throw new TypeError("Cannot convert "+c+' to type "'+l+'"; valid output types are '+Object.keys(o).join(", "));return l===u?c:o[l](c)}});var zl="divideScalar",hy=["typed","numeric"],$o=N(zl,hy,r=>{var{typed:e,numeric:t}=r;return e(zl,{"number, number":function(i,o){return i/o},"Complex, Complex":function(i,o){return i.div(o)},"BigNumber, BigNumber":function(i,o){return i.div(o)},"bigint, bigint":function(i,o){return i/o},"Fraction, Fraction":function(i,o){return i.div(o)},"Unit, number | Complex | Fraction | BigNumber | Unit":(n,i)=>n.divide(i),"number | Fraction | Complex | BigNumber, Unit":(n,i)=>i.divideInto(n)})});var Gl="pow",py=["typed","config","identity","multiply","matrix","inv","fraction","number","Complex"],Zo=N(Gl,py,r=>{var{typed:e,config:t,identity:n,multiply:i,matrix:o,inv:a,number:c,fraction:l,Complex:s}=r;return e(Gl,{"number, number":u,"Complex, Complex":function(g,p){return g.pow(p)},"BigNumber, BigNumber":function(g,p){return p.isInteger()||g>=0||t.predictable?g.pow(p):new s(g.toNumber(),0).pow(p.toNumber(),0)},"bigint, bigint":(d,g)=>d**g,"Fraction, Fraction":function(g,p){var m=g.pow(p);if(m!=null)return m;if(t.predictable)throw new Error("Result of pow is non-rational and cannot be expressed as a fraction");return u(g.valueOf(),p.valueOf())},"Array, number":h,"Array, BigNumber":function(g,p){return h(g,p.toNumber())},"Matrix, number":f,"Matrix, BigNumber":function(g,p){return f(g,p.toNumber())},"Unit, number | BigNumber":function(g,p){return g.pow(p)}});function u(d,g){if(t.predictable&&!tt(g)&&d<0)try{var p=l(g),m=c(p);if((g===m||Math.abs((g-m)/g)<1e-14)&&p.d%2===1)return(p.n%2===0?1:-1)*Math.pow(-d,g)}catch{}return t.predictable&&(d<-1&&g===1/0||d>-1&&d<0&&g===-1/0)?NaN:tt(g)||d>=0||t.predictable?bo(d,g):d*d<1&&g===1/0||d*d>1&&g===-1/0?0:new s(d,0).pow(g,0)}function h(d,g){if(!tt(g))throw new TypeError("For A^b, b must be an integer (value is "+g+")");var p=st(d);if(p.length!==2)throw new Error("For A^b, A must be 2 dimensional (A has "+p.length+" dimensions)");if(p[0]!==p[1])throw new Error("For A^b, A must be square (size is "+p[0]+"x"+p[1]+")");if(g<0)try{return h(a(d),-g)}catch(b){throw b.message==="Cannot calculate inverse, determinant is zero"?new TypeError("For A^b, when A is not invertible, b must be a positive integer (value is "+g+")"):b}for(var m=n(p[0]).valueOf(),v=d;g>=1;)(g&1)===1&&(m=i(v,m)),g>>=1,v=i(v,v);return m}function f(d,g){return o(h(d.valueOf(),g))}});var Ln="Number of decimals in function round must be an integer",kl="round",fy=["typed","config","matrix","equalScalar","zeros","BigNumber","DenseMatrix"],Ko=N(kl,fy,r=>{var{typed:e,config:t,matrix:n,equalScalar:i,zeros:o,BigNumber:a,DenseMatrix:c}=r,l=De({typed:e,equalScalar:i}),s=Nn({typed:e,DenseMatrix:c}),u=Ie({typed:e});function h(f){return Math.abs(Cn(f).exponent)}return e(kl,{number:function(d){var g=Rn(d,h(t.relTol)),p=pe(d,g,t.relTol,t.absTol)?g:d;return Rn(p)},"number, number":function(d,g){var p=h(t.relTol);if(g>=p)return Rn(d,g);var m=Rn(d,p),v=pe(d,m,t.relTol,t.absTol)?m:d;return Rn(v,g)},"number, BigNumber":function(d,g){if(!g.isInteger())throw new TypeError(Ln);return new a(d).toDecimalPlaces(g.toNumber())},Complex:function(d){return d.round()},"Complex, number":function(d,g){if(g%1)throw new TypeError(Ln);return d.round(g)},"Complex, BigNumber":function(d,g){if(!g.isInteger())throw new TypeError(Ln);var p=g.toNumber();return d.round(p)},BigNumber:function(d){var g=new a(d).toDecimalPlaces(h(t.relTol)),p=Je(d,g,t.relTol,t.absTol)?g:d;return p.toDecimalPlaces(0)},"BigNumber, BigNumber":function(d,g){if(!g.isInteger())throw new TypeError(Ln);var p=h(t.relTol);if(g>=p)return d.toDecimalPlaces(g.toNumber());var m=d.toDecimalPlaces(p),v=Je(d,m,t.relTol,t.absTol)?m:d;return v.toDecimalPlaces(g.toNumber())},Fraction:function(d){return d.round()},"Fraction, number":function(d,g){if(g%1)throw new TypeError(Ln);return d.round(g)},"Fraction, BigNumber":function(d,g){if(!g.isInteger())throw new TypeError(Ln);return d.round(g.toNumber())},"Unit, number, Unit":e.referToSelf(f=>function(d,g,p){var m=d.toNumeric(p);return p.multiply(f(m,g))}),"Unit, BigNumber, Unit":e.referToSelf(f=>(d,g,p)=>f(d,g.toNumber(),p)),"Unit, Unit":e.referToSelf(f=>(d,g)=>f(d,0,g)),"Array | Matrix, number, Unit":e.referToSelf(f=>(d,g,p)=>_t(d,m=>f(m,g,p),!0)),"Array | Matrix, BigNumber, Unit":e.referToSelf(f=>(d,g,p)=>f(d,g.toNumber(),p)),"Array | Matrix, Unit":e.referToSelf(f=>(d,g)=>f(d,0,g)),"Array | Matrix":e.referToSelf(f=>d=>_t(d,f,!0)),"SparseMatrix, number | BigNumber":e.referToSelf(f=>(d,g)=>l(d,g,f,!1)),"DenseMatrix, number | BigNumber":e.referToSelf(f=>(d,g)=>u(d,g,f,!1)),"Array, number | BigNumber":e.referToSelf(f=>(d,g)=>u(n(d),g,f,!1).valueOf()),"number | Complex | BigNumber | Fraction, SparseMatrix":e.referToSelf(f=>(d,g)=>i(d,0)?o(g.size(),g.storage()):s(g,d,f,!0)),"number | Complex | BigNumber | Fraction, DenseMatrix":e.referToSelf(f=>(d,g)=>i(d,0)?o(g.size(),g.storage()):u(g,d,f,!0)),"number | Complex | BigNumber | Fraction, Array":e.referToSelf(f=>(d,g)=>u(n(g),d,f,!0).valueOf())})});var Vl="dotDivide",dy=["typed","matrix","equalScalar","divideScalar","DenseMatrix","concat"],Jo=N(Vl,dy,r=>{var{typed:e,matrix:t,equalScalar:n,divideScalar:i,DenseMatrix:o,concat:a}=r,c=xl({typed:e,equalScalar:n}),l=El({typed:e}),s=Al({typed:e,DenseMatrix:o}),u=De({typed:e,equalScalar:n}),h=Nn({typed:e,DenseMatrix:o}),f=di({typed:e,matrix:t,concat:a});return e(Vl,f({elop:i,SS:s,DS:l,SD:c,Ss:u,sS:h}))});function Hl(r){var e=0,t=1,n=Object.create(null),i=Object.create(null),o=0,a=function(l){var s=i[l];if(s&&(delete n[s],delete i[l],--e,t===s)){if(!e){o=0,t=1;return}for(;!Object.prototype.hasOwnProperty.call(n,++t););}};return r=Math.abs(r),{hit:function(l){var s=i[l],u=++o;if(n[u]=l,i[l]=u,!s)return++e,e<=r?void 0:(l=n[t],a(l),l);if(delete n[s],t===s)for(;!Object.prototype.hasOwnProperty.call(n,++t););},delete:a,clear:function(){e=o=0,t=1,n=Object.create(null),i=Object.create(null)}}}function rr(r){var{hasher:e,limit:t}=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return t=t??Number.POSITIVE_INFINITY,e=e??JSON.stringify,function n(){typeof n.cache!="object"&&(n.cache={values:new Map,lru:Hl(t||Number.POSITIVE_INFINITY)});for(var i=[],o=0;o<arguments.length;o++)i[o]=arguments[o];var a=e(i);if(n.cache.values.has(a))return n.cache.lru.hit(a),n.cache.values.get(a);var c=r.apply(r,i);return n.cache.values.set(a,c),n.cache.values.delete(n.cache.lru.hit(a)),c}}var gy=rr(function(r){return new r(1).exp()},{hasher:gi}),my=rr(function(r){return new r(1).plus(new r(5).sqrt()).div(2)},{hasher:gi}),Wl=rr(function(r){return r.acos(-1)},{hasher:gi}),ql=rr(function(r){return Wl(r).times(2)},{hasher:gi});function gi(r){return r[0].precision}var Xl="add",yy=["typed","matrix","addScalar","equalScalar","DenseMatrix","SparseMatrix","concat"],Qo=N(Xl,yy,r=>{var{typed:e,matrix:t,addScalar:n,equalScalar:i,DenseMatrix:o,SparseMatrix:a,concat:c}=r,l=Sl({typed:e}),s=Ml({typed:e,equalScalar:i}),u=wl({typed:e,DenseMatrix:o}),h=di({typed:e,matrix:t,concat:c});return e(Xl,{"any, any":n,"any, any, ...any":e.referToSelf(f=>(d,g,p)=>{for(var m=f(d,g),v=0;v<p.length;v++)m=f(m,p[v]);return m})},h({elop:n,DS:l,SS:s,Ss:u}))});var jl="dot",vy=["typed","addScalar","multiplyScalar","conj","size"],ts=N(jl,vy,r=>{var{typed:e,addScalar:t,multiplyScalar:n,conj:i,size:o}=r;return e(jl,{"Array | DenseMatrix, Array | DenseMatrix":c,"SparseMatrix, SparseMatrix":l});function a(u,h){var f=s(u),d=s(h),g,p;if(f.length===1)g=f[0];else if(f.length===2&&f[1]===1)g=f[0];else throw new RangeError("Expected a column vector, instead got a matrix of size ("+f.join(", ")+")");if(d.length===1)p=d[0];else if(d.length===2&&d[1]===1)p=d[0];else throw new RangeError("Expected a column vector, instead got a matrix of size ("+d.join(", ")+")");if(g!==p)throw new RangeError("Vectors must have equal length ("+g+" != "+p+")");if(g===0)throw new RangeError("Cannot calculate the dot product of empty vectors");return g}function c(u,h){var f=a(u,h),d=ot(u)?u._data:u,g=ot(u)?u._datatype||u.getDataType():void 0,p=ot(h)?h._data:h,m=ot(h)?h._datatype||h.getDataType():void 0,v=s(u).length===2,b=s(h).length===2,y=t,S=n;if(g&&m&&g===m&&typeof g=="string"&&g!=="mixed"){var x=g;y=e.find(t,[x,x]),S=e.find(n,[x,x])}if(!v&&!b){for(var _=S(i(d[0]),p[0]),M=1;M<f;M++)_=y(_,S(i(d[M]),p[M]));return _}if(!v&&b){for(var w=S(i(d[0]),p[0][0]),C=1;C<f;C++)w=y(w,S(i(d[C]),p[C][0]));return w}if(v&&!b){for(var P=S(i(d[0][0]),p[0]),D=1;D<f;D++)P=y(P,S(i(d[D][0]),p[D]));return P}if(v&&b){for(var R=S(i(d[0][0]),p[0][0]),W=1;W<f;W++)R=y(R,S(i(d[W][0]),p[W][0]));return R}}function l(u,h){a(u,h);for(var f=u._index,d=u._values,g=h._index,p=h._values,m=0,v=t,b=n,y=0,S=0;y<f.length&&S<g.length;){var x=f[y],_=g[S];if(x<_){y++;continue}if(x>_){S++;continue}x===_&&(m=v(m,b(d[y],p[S])),y++,S++)}return m}function s(u){return ot(u)?u.size():o(u)}});var Yl="det",_y=["typed","matrix","subtractScalar","multiply","divideScalar","isZero","unaryMinus"],es=N(Yl,_y,r=>{var{typed:e,matrix:t,subtractScalar:n,multiply:i,divideScalar:o,isZero:a,unaryMinus:c}=r;return e(Yl,{any:function(u){return ft(u)},"Array | Matrix":function(u){var h;switch(ot(u)?h=u.size():Array.isArray(u)?(u=t(u),h=u.size()):h=[],h.length){case 0:return ft(u);case 1:if(h[0]===1)return ft(u.valueOf()[0]);if(h[0]===0)return 1;throw new RangeError("Matrix must be square (size: "+vt(h)+")");case 2:{var f=h[0],d=h[1];if(f===d)return l(u.clone().valueOf(),f,d);if(d===0)return 1;throw new RangeError("Matrix must be square (size: "+vt(h)+")")}default:throw new RangeError("Matrix must be two dimensional (size: "+vt(h)+")")}}});function l(s,u,h){if(u===1)return ft(s[0][0]);if(u===2)return n(i(s[0][0],s[1][1]),i(s[1][0],s[0][1]));for(var f=!1,d=new Array(u).fill(0).map((M,w)=>w),g=0;g<u;g++){var p=d[g];if(a(s[p][g])){var m=void 0;for(m=g+1;m<u;m++)if(!a(s[d[m]][g])){p=d[m],d[m]=d[g],d[g]=p,f=!f;break}if(m===u)return s[p][g]}for(var v=s[p][g],b=g===0?1:s[d[g-1]][g-1],y=g+1;y<u;y++)for(var S=d[y],x=g+1;x<u;x++)s[S][x]=o(n(i(s[S][x],v),i(s[S][g],s[p][x])),b)}var _=s[d[u-1]][u-1];return f?c(_):_}});var $l="inv",xy=["typed","matrix","divideScalar","addScalar","multiply","unaryMinus","det","identity","abs"],ns=N($l,xy,r=>{var{typed:e,matrix:t,divideScalar:n,addScalar:i,multiply:o,unaryMinus:a,det:c,identity:l,abs:s}=r;return e($l,{"Array | Matrix":function(f){var d=ot(f)?f.size():st(f);switch(d.length){case 1:if(d[0]===1)return ot(f)?t([n(1,f.valueOf()[0])]):[n(1,f[0])];throw new RangeError("Matrix must be square (size: "+vt(d)+")");case 2:{var g=d[0],p=d[1];if(g===p)return ot(f)?t(u(f.valueOf(),g,p),f.storage()):u(f,g,p);throw new RangeError("Matrix must be square (size: "+vt(d)+")")}default:throw new RangeError("Matrix must be two dimensional (size: "+vt(d)+")")}},any:function(f){return n(1,f)}});function u(h,f,d){var g,p,m,v,b;if(f===1){if(v=h[0][0],v===0)throw Error("Cannot calculate inverse, determinant is zero");return[[n(1,v)]]}else if(f===2){var y=c(h);if(y===0)throw Error("Cannot calculate inverse, determinant is zero");return[[n(h[1][1],y),n(a(h[0][1]),y)],[n(a(h[1][0]),y),n(h[0][0],y)]]}else{var S=h.concat();for(g=0;g<f;g++)S[g]=S[g].concat();for(var x=l(f).valueOf(),_=0;_<d;_++){var M=s(S[_][_]),w=_;for(g=_+1;g<f;)s(S[g][_])>M&&(M=s(S[g][_]),w=g),g++;if(M===0)throw Error("Cannot calculate inverse, determinant is zero");g=w,g!==_&&(b=S[_],S[_]=S[g],S[g]=b,b=x[_],x[_]=x[g],x[g]=b);var C=S[_],P=x[_];for(g=0;g<f;g++){var D=S[g],R=x[g];if(g!==_){if(D[_]!==0){for(m=n(a(D[_]),C[_]),p=_;p<d;p++)D[p]=i(D[p],o(m,C[p]));for(p=0;p<d;p++)R[p]=i(R[p],o(m,P[p]))}}else{for(m=C[_],p=_;p<d;p++)D[p]=n(D[p],m);for(p=0;p<d;p++)R[p]=n(R[p],m)}}}return x}}});var Ey="divide",by=["typed","matrix","multiply","equalScalar","divideScalar","inv"],rs=N(Ey,by,r=>{var{typed:e,matrix:t,multiply:n,equalScalar:i,divideScalar:o,inv:a}=r,c=De({typed:e,equalScalar:i}),l=Ie({typed:e});return e("divide",Kr({"Array | Matrix, Array | Matrix":function(u,h){return n(u,a(h))},"DenseMatrix, any":function(u,h){return l(u,h,o,!1)},"SparseMatrix, any":function(u,h){return c(u,h,o,!1)},"Array, any":function(u,h){return l(t(u),h,o,!1).valueOf()},"any, Array | Matrix":function(u,h){return n(u,a(h))}},o.signatures))});var Zl="mean",Sy=["typed","add","divide"],is=N(Zl,Sy,r=>{var{typed:e,add:t,divide:n}=r;return e(Zl,{"Array | Matrix":o,"Array | Matrix, number | BigNumber":i,"...":function(c){if(al(c))throw new TypeError("Scalar values expected in function mean");return o(c)}});function i(a,c){try{var l=ul(a,c,t),s=Array.isArray(a)?st(a):a.size();return n(l,s[c])}catch(u){throw jo(u,"mean")}}function o(a){var c,l=0;if(po(a,function(s){try{c=c===void 0?s:t(c,s),l++}catch(u){throw jo(u,"mean",s)}}),l===0)throw new Error("Cannot calculate the mean of an empty array");return n(c,l)}});var os=Kl("tau",["config","?BigNumber"],r=>{var{config:e,BigNumber:t}=r;return e.number==="BigNumber"?ql(t):cl});var ss=Kl("i",["Complex"],r=>{var{Complex:e}=r;return e.I});function Kl(r,e,t){return N(r,e,t,{recreateOnConfigChange:!0})}var On=to({config:he}),mi=no({});var Jl=io({}),zy=ss({Complex:mi});var as=oo({});var Gy=os({BigNumber:On,config:he});var ln=ho({Matrix:as});var rt=ji({BigNumber:On,Complex:mi,DenseMatrix:ln,Fraction:Jl});var ky=Io({typed:rt});var ir=Ro({typed:rt});var Ql=Go({typed:rt});var Qe=Mo({config:he,typed:rt});var Vy=Fo({typed:rt});var tc=fo({typed:rt});var Hy=So({equalScalar:Qe,typed:rt});var Wy=Uo({Complex:mi,config:he,typed:rt});var us=Bo({typed:rt});var ec=To({typed:rt});var ls=wo({Matrix:as,equalScalar:Qe,typed:rt});var qy=No({typed:rt});var Xy=Co({BigNumber:On,typed:rt});var nc=Do({typed:rt});var rc=Ao({Fraction:Jl,typed:rt});var Yt=Po({DenseMatrix:ln,Matrix:as,SparseMatrix:ls,typed:rt});var jy=Yo({bignumber:Xy,fraction:rc,number:ec});var ic=Ho({isInteger:tc,matrix:Yt,typed:rt}),Yy=Wo({matrix:Yt,config:he,typed:rt});var oc=qo({BigNumber:On,config:he,matrix:Yt,typed:rt});var sc=ko({isInteger:tc,matrix:Yt,typed:rt});var or=$o({numeric:jy,typed:rt}),$y=Jo({DenseMatrix:ln,concat:sc,divideScalar:or,equalScalar:Qe,matrix:Yt,typed:rt});var ac=Vo({BigNumber:On,DenseMatrix:ln,SparseMatrix:ls,config:he,matrix:Yt,typed:rt});var Zy=Ko({BigNumber:On,DenseMatrix:ln,config:he,equalScalar:Qe,matrix:Yt,typed:rt,zeros:oc});var Ky=Qo({DenseMatrix:ln,SparseMatrix:ls,addScalar:ir,concat:sc,equalScalar:Qe,matrix:Yt,typed:rt});var Jy=ts({addScalar:ir,conj:Ql,multiplyScalar:us,size:Yy,typed:rt});var Fn=zo({addScalar:ir,dot:Jy,equalScalar:Qe,matrix:Yt,multiplyScalar:us,typed:rt});var Qy=Oo({DenseMatrix:ln,config:he,equalScalar:Qe,matrix:Yt,round:Zy,typed:rt,zeros:oc});var tv=es({divideScalar:or,isZero:Hy,matrix:Yt,multiply:Fn,subtractScalar:qy,typed:rt,unaryMinus:nc});var uc=ns({abs:ky,addScalar:ir,det:tv,divideScalar:or,identity:ac,matrix:Yt,multiply:Fn,typed:rt,unaryMinus:nc});var ev=Zo({Complex:mi,config:he,fraction:rc,identity:ac,inv:uc,matrix:Yt,multiply:Fn,number:ec,typed:rt});var lc=Xo({addScalar:ir,ceil:Qy,conj:Ql,divideScalar:or,dotDivide:$y,exp:Vy,i:zy,log2:Wy,matrix:Yt,multiplyScalar:us,pow:ev,tau:Gy,typed:rt});var nv=rs({divideScalar:or,equalScalar:Qe,inv:uc,matrix:Yt,multiply:Fn,typed:rt});var cc=is({add:Ky,divide:nv,typed:rt});var yi=class{NumParticle;reSampNumParticle;initial_xy_uncertainty;initial_yaw_uncertainty;step_noise_sigma;yaw_noise_sigma;compass_update_interval;sigmaCompass;delta_yaw;sigmaBeacon;unaccess_weight;particle_PosInitFlag;particle_yawInitFlag;xEst;particleX;particleWeight;last_compass_time;last_yaw_compass=0;compass_consecutive_offset_count=0;constructor(e){this.NumParticle=e.NumParticle,this.reSampNumParticle=e.reSampNumParticle,this.initial_xy_uncertainty=e.initial_xy_uncertainty,this.initial_yaw_uncertainty=e.initial_yaw_uncertainty,this.step_noise_sigma=e.step_noise_sigma,this.yaw_noise_sigma=e.yaw_noise_sigma,this.compass_update_interval=e.compass_update_interval,this.sigmaCompass=e.sigmaCompass,this.delta_yaw=e.delta_yaw,this.sigmaBeacon=e.sigmaBeacon,this.unaccess_weight=e.unaccess_weight,this.particle_PosInitFlag=!1,this.particle_yawInitFlag=!1,this.xEst=[[0],[0],[0]],this.particleX=Array.from({length:3},()=>Array(this.NumParticle).fill(0)),this.particleWeight=Array.from({length:1},()=>Array(this.NumParticle).fill(1/this.NumParticle)),this.last_compass_time=0}motionModelRotYaw(e){if(!(Math.abs(e)<.001)){this.last_yaw_compass=jn(this.last_yaw_compass+e);for(let t=0;t<this.NumParticle;t++){let n=Math.random()*this.yaw_noise_sigma;this.particleX[2][t]=this.particleX[2][t]+e+n,this.particleX[2][t]=jn(this.particleX[2][t])}}}motionModelStepLength(e,t){if(e===0)return;for(let i=0;i<this.NumParticle;i++){let o=Math.random()*this.step_noise_sigma;this.particleX[0][i]+=(.65+o)*Math.sin(-this.particleX[2][i]/180*Math.PI),this.particleX[1][i]+=(.65+o)*Math.cos(this.particleX[2][i]/180*Math.PI),t(this.particleX[0][i],this.particleX[1][i])||(this.particleWeight[0][i]*=this.unaccess_weight)}let n=this.particleWeight[0].reduce((i,o)=>i+o,0);this.particleWeight[0]=this.particleWeight[0].map(i=>i/n)}motionModelCompassYaw(e,t){if(t-this.last_compass_time>this.compass_update_interval){let n=360-e;n+=this.delta_yaw,n=jn(n),Math.abs(n-this.last_yaw_compass)>60?this.compass_consecutive_offset_count++:this.compass_consecutive_offset_count=0,this.compass_consecutive_offset_count>=5&&this.initParticlesByCompass(e);for(let o=0;o<this.NumParticle;o++){let a=Math.abs(this.particleX[2][o]-n);a>180&&(a=360-a),this.particleWeight[0][o]*=Yr(a,this.sigmaCompass)}let i=this.particleWeight[0].reduce((o,a)=>o+a,0);this.particleWeight[0]=this.particleWeight[0].map(o=>o/i),this.setLastCompassTime(t)}}resampling(){if(1/this.particleWeight[0].reduce((t,n)=>t+n*n,0)<this.reSampNumParticle){let t=this.particleWeight[0].reduce((c,l,s)=>c.concat(c[s]+l),[0]),i=this.particleWeight[0].map(()=>1/this.NumParticle).map((c,l)=>c+Math.random()/this.NumParticle),o=[],a=0;for(let c=0;c<this.NumParticle;c++){for(;i[c]>t[a];)a++;o.push(a)}this.particleX=this.particleX.map((c,l)=>o.map(s=>c[s])),this.particleWeight[0]=Array(this.NumParticle).fill(1/this.NumParticle)}}update(e,t){for(let i=0;i<this.NumParticle;i++){let o=En(this.particleX[0][i],this.particleX[1][i],e.x,e.y);this.particleWeight[0][i]=Math.max(1e-7,this.particleWeight[0][i]*Yr(o,t))}let n=this.particleWeight[0].reduce((i,o)=>i+o,0);this.particleWeight[0]=this.particleWeight[0].map(i=>i/n)}updateCar(e,t){let n=e.x-this.xEst[0][0],i=e.y-this.xEst[1][0];for(let a=0;a<this.NumParticle;a++){let c=En(this.particleX[0][a],this.particleX[1][a],e.x,e.y);this.particleWeight[0][a]=Math.max(1e-7,this.particleWeight[0][a]*Yr(c,t)),this.particleX[0][a]+=n,this.particleX[1][a]+=i}let o=this.particleWeight[0].reduce((a,c)=>a+c,0);this.particleWeight[0]=this.particleWeight[0].map(a=>a/o)}getPosInitFlag(){return this.particle_PosInitFlag}getYawInitFlag(){return this.particle_yawInitFlag}setPosInitFlag(e){this.particle_PosInitFlag=e}setYawInitFlag(e){this.particle_yawInitFlag=e}getResultX(){let e=ic(this.particleWeight,[this.NumParticle,1]),t=Fn(this.particleX,e);return this.xEst=t,this.xEst[0][0]}getResultY(){return this.xEst[1][0]}getResultYaw(){let e=this.particleWeight[0].indexOf(Math.max(...this.particleWeight[0]));return this.particleX[2][e]}getEstConfidence(){let e=this.particleWeight[0].indexOf(Math.max(...this.particleWeight[0])),t=this.particleWeight[0].indexOf(Math.min(...this.particleWeight[0])),n=[this.particleX[0][e],this.particleX[1][e]],i=[this.particleX[0][t],this.particleX[1][t]],o=En(n[0],n[1],i[0],i[1]),a=o*.67;return console.log(o,a),a}getParticleNum(){return this.NumParticle}getParticleX(){return this.particleX}setLastCompassTime(e){this.last_compass_time=e}getLastCompassTime(){return this.last_compass_time}initParticlesByPos(e,t,n){if(!this.particle_PosInitFlag){this.particleWeight[0]=Array(this.NumParticle).fill(1/this.NumParticle);let i=0;for(;i<this.NumParticle;){let a=(2*Math.random()-1)*this.initial_xy_uncertainty,c=(2*Math.random()-1)*this.initial_xy_uncertainty;n(e+a,t+c)||(this.particleWeight[0][i]*=this.unaccess_weight),this.particleX[0][i]=e+a,this.particleX[1][i]=t+c,i++}let o=this.particleWeight[0].reduce((a,c)=>a+c,0);this.particleWeight[0]=this.particleWeight[0].map(a=>a/o),this.particle_PosInitFlag=!0,this.xEst[0][0]=e,this.xEst[1][0]=t,this.xEst[2][0]=0}}initParticlesByCompass(e){console.log(`Init compass: ${e}`);let t=360-e;t+=this.delta_yaw,t=jn(t),console.log(`Init Yaw: ${t}`);for(let n=0;n<this.NumParticle;n++){let i=(2*Math.random()-1)*this.initial_yaw_uncertainty;this.particleX[2][n]=t+i}this.particle_yawInitFlag=!0,this.xEst[2][0]=t,this.last_yaw_compass=t,this.compass_consecutive_offset_count=0}};var vi=class{fre=100;accH_fifo=[];accH_time_fifo=[];accH_fifo_len=Math.floor(1*this.fre)+1;step_count=0;state_count=0;last_valley_time=0;last_peak_time=0;last_step_time=0;min_step_time=.3;max_step_time=1;min_peak=10.5;max_valley=9.5;peak_num=0;valley_num=0;fft_min_amp=.3;fft_min_fre=0;fft_max_fre=4;last_fft_amp=0;abnor_start_time=0;abnor_fft_detected=!1;abnor_time_threshold=4;abnor_peak_time=0;abnor_peak_accH=0;const_step_length=.65;last_rot=[];delta_rot=[];last_yaw=0;delta_yaw=null;delta_rot_sum_fifo=[];delta_rot_sum_time_fifo=[];delta_yaw_accum=0;delta_yaw_accum_timestamp=0;delta_yaw_time_threshold=.5;last_px=0;last_py=0;delta_px=0;delta_py=0;init(){this.fre=100,this.accH_fifo=[],this.accH_time_fifo=[],this.accH_fifo_len=Math.floor(1*this.fre)+1,this.step_count=0,this.state_count=0,this.last_valley_time=0,this.last_peak_time=0,this.last_step_time=0,this.min_step_time=.3,this.max_step_time=1,this.min_peak=10+.5,this.max_valley=10-.5,this.peak_num=0,this.valley_num=0,this.fft_min_amp=.3,this.fft_min_fre=0,this.fft_max_fre=4,this.last_fft_amp=0,this.abnor_start_time=0,this.abnor_fft_detected=!1,this.abnor_peak_time=0,this.abnor_peak_accH=0,this.const_step_length=.65,this.last_rot=[0,0,0],this.delta_rot=[0,0,0],this.last_yaw=0,this.delta_yaw=null,this.delta_rot_sum_fifo=[],this.delta_rot_sum_time_fifo=[],this.delta_yaw_accum=0,this.delta_yaw_accum_timestamp=0,this.delta_yaw_time_threshold=.5,this.last_px=0,this.last_py=0,this.delta_px=0,this.delta_py=0}reset(){this.init()}setInitPose(e=[0,0]){this.last_px=e[0],this.last_py=e[1],console.info(`pdr init pos: ${this.last_px}, ${this.last_py}`)}setInitYaw(e=0){this.last_yaw=e}getPos(e,t,n){let i=0;return n.length===3&&(this.delta_yaw=this.getDeltaYawFromRot(e,n)),t.length===3&&(i=this.getStepLength(e,t)),i!==0&&(this.last_px+=this.delta_px,this.last_py+=this.delta_py),[this.last_px,this.last_py]}getDeltaPose(){return[this.delta_px,this.delta_py]}getStepLength(e,t){if(t.length<3)return console.warn("acc data less than 3"),0;let n=!1,i=Math.sqrt(Math.pow(t[0],2)+Math.pow(t[1],2)+Math.pow(t[2],2));if(this.accH_fifo.push(i),this.accH_time_fifo.push(e),this.imuFreUpdate(),this.accH_fifo.length<this.accH_fifo_len+1)n=!1;else{for(;this.accH_fifo.length>=this.accH_fifo_len+1;)this.accH_fifo.shift(),this.accH_time_fifo.shift();let o=this.PVStepDetec(),a=this.FFTStepDetec(),c=this.recheckState(),l=this.accH_time_fifo[Math.floor(this.accH_time_fifo.length*3/4)];Math.abs(this.abnor_start_time)<.001&&this.abnor_fft_detected?this.abnor_start_time=l:this.abnor_fft_detected||(this.abnor_start_time=0),o&&a&&c?(this.step_count+=1,this.last_step_time=l,n=!0):Math.abs(this.abnor_start_time)>.001&&this.abnor_peak_time-this.abnor_start_time>this.abnor_time_threshold&&this.step_count>1&&this.abnor_peak_time-this.last_step_time>1?(this.step_count+=1,this.last_step_time=l,n=!0):(l-this.last_step_time>2&&(this.state_count=0),n=!1)}if(n){let o=this.last_yaw/180*Math.PI;return this.delta_px=this.const_step_length*Math.cos(o),this.delta_py=this.const_step_length*Math.sin(o),this.const_step_length}else return 0}imuFreUpdate(){if(this.accH_time_fifo.length>2&&(this.accH_time_fifo[this.accH_time_fifo.length-1]-this.accH_time_fifo[this.accH_time_fifo.length-2]<0||this.accH_time_fifo[this.accH_time_fifo.length-1]-this.accH_time_fifo[this.accH_time_fifo.length-2]>10||this.accH_time_fifo[this.accH_time_fifo.length-1]===this.accH_time_fifo[0])&&(console.warn(`pdr reset last one time ${this.accH_time_fifo[this.accH_time_fifo.length-1]} last two time ${this.accH_time_fifo[this.accH_time_fifo.length-2]}`),this.reset()),this.accH_fifo.length>9||this.fre<15){let e=(this.accH_fifo.length-1)/(this.accH_time_fifo[this.accH_time_fifo.length-1]-this.accH_time_fifo[0]);Math.abs(this.fre-e)>8&&(this.fre=Math.round((e-3)/10)*10,(this.fre<=10||this.fre>=100)&&(console.warn(`Frequency Error ${this.fre}`),this.fre=100),console.debug(`Frequency change to ${this.fre}`),this.accH_fifo_len=Math.floor(1*this.fre)+1)}}recheckState(){return!0}PVStepDetec(){let e=!1,t=this.accH_fifo.slice(Math.floor(this.accH_fifo_len/2)),n=this.accH_time_fifo.slice(Math.floor(this.accH_fifo_len/2)),i=t[Math.floor(t.length/2)],o=n[Math.floor(n.length/2)],a=Math.max(...t),c=Math.min(...t),l=!1,s=!1;return Math.abs(i-c)<.01&&i<this.max_valley&&this.valley_num<=this.peak_num&&(this.last_valley_time===0?s=!0:s=o-this.last_valley_time>this.min_step_time,s&&(this.last_valley_time=o,this.valley_num+=1)),Math.abs(i-a)<.01&&i>this.min_peak&&this.peak_num<=this.valley_num&&(this.last_peak_time===0?l=!0:l=o-this.last_peak_time>this.min_step_time,l&&(this.last_peak_time=o,this.peak_num+=1)),i===a&&i>this.min_peak&&(this.abnor_peak_time=o,this.abnor_peak_accH=i),this.peak_num===this.valley_num&&(l||s)&&(e=!0),e}FFTStepDetec(){return!0}getDeltaYawFromRot(e,t){if(t.length<3)return console.warn("rot data less than 3"),0;let n=[0,0,0];this.last_rot.length===3&&(n=t.map((c,l)=>c-this.last_rot[l]));for(let c=0;c<t.length;c++)n[c]<-180?n[c]+=360:n[c]>180&&(n[c]-=360);let i=.2;this.delta_rot.length===3?this.delta_rot=this.delta_rot.map((c,l)=>i*c+(1-i)*n[l]):this.delta_rot=n,this.last_rot=t,this.delta_yaw=this.delta_rot[0],this.last_yaw+=this.delta_yaw,this.last_yaw=this.limitYaw(this.last_yaw);let o=this.delta_rot.reduce((c,l)=>c+Math.abs(l),0);this.delta_rot_sum_fifo.push(o),this.delta_rot_sum_time_fifo.push(e),Math.abs(this.delta_rot_sum_time_fifo[this.delta_rot_sum_time_fifo.length-1]-this.delta_rot_sum_time_fifo[0])>1&&(this.delta_rot_sum_fifo.shift(),this.delta_rot_sum_time_fifo.shift()),this.delta_yaw_accum+=this.delta_yaw;let a=0;return Math.abs(this.delta_yaw_accum_timestamp-e)>this.delta_yaw_time_threshold?(a=this.delta_yaw_accum,this.delta_yaw_accum=0,this.delta_yaw_accum_timestamp=e,a):null}limitYaw(e){for(;e<-180;)e+=360;for(;e>180;)e-=360;return e}};var _i=class{particleFilter;pdr;sigmaBeacon=5;gps_horizontalAccuracy=10;using_gps=!0;last_beacon_time=null;last_pos_time;position_count=0;gps_max_horizontalAccuracy=20;MaxEstimateErr=5;outTrustRegionNum=0;TrustNum=4;cacheSensorData=[];constructor(){this.particleFilter=new yi({NumParticle:200,reSampNumParticle:.65,initial_xy_uncertainty:12,initial_yaw_uncertainty:100,step_noise_sigma:.5,yaw_noise_sigma:2,compass_update_interval:3e3,sigmaCompass:80,delta_yaw:2,sigmaBeacon:5,unaccess_weight:.7}),this.pdr=new vi}pfFusionPDRiBeacon(e){let{type:t,timestamp:n,res:i}=e,o=!1;if(this.particleFilter.getPosInitFlag()&&this.particleFilter.getYawInitFlag()){if(t==="acceleration"){let a=i,c=this.pdr.getStepLength(n/1e3,a);c!==0&&(this.particleFilter.motionModelStepLength(c,()=>!0),this.particleFilter.resampling(),this.position_count+=1,o=!0)}if(this.using_gps&&t==="gps"&&(this.last_beacon_time===null||n-this.last_beacon_time>5e3)){let a=this.getGpsPosition(i);o=a!==null,a&&(this.particleFilter.update(a,this.gps_horizontalAccuracy),this.resetParticleFilterDist(a),this.particleFilter.resampling(),this.position_count+=1)}if(t==="deviceMotion"){let a=this.pdr.getDeltaYawFromRot(n/1e3,i);a!==null&&this.particleFilter.motionModelRotYaw(a)}t==="compass"&&this.particleFilter.motionModelCompassYaw(i,n),this.last_pos_time&&n-this.last_pos_time>500&&(this.position_count+=1,o=!0)}else if(!this.particleFilter.getPosInitFlag()&&this.using_gps&&t==="gps"){let a=this.getGpsPosition(i);o=a!==null,a?(this.particleFilter.initParticlesByPos(a.x,a.y,()=>!0),this.last_pos_time=n,console.log(`init Pos by gps success time ${n}`),this.cacheSensorData.length=0):console.log(`init Pos by gps fail time ${n}`)}else if(!this.particleFilter.getYawInitFlag()&&t==="compass"){let a=i;this.particleFilter.initParticlesByCompass(a),this.particleFilter.setLastCompassTime(n),console.log(`init yaw by compass success time ${n}`)}else this.cacheSensorData.push(e);return o&&(this.last_pos_time=n),[o,this.particleFilter.getResultX(),this.particleFilter.getResultY()]}setBeaconPosition(e,t){return this.last_beacon_time=t,this.particleFilter.getPosInitFlag()?this.particleFilter.update(e,this.sigmaBeacon):this.particleFilter.initParticlesByPos(e.x,e.y,()=>!0),this.resetParticleFilterDist(e),this.particleFilter.resampling(),this.position_count+=1,this.cacheSensorData.filter(i=>i.timestamp>t).map(i=>this.pfFusionPDRiBeacon(i)),this.cacheSensorData.length=0,[this.particleFilter.getResultX(),this.particleFilter.getResultY()]}getGpsPosition(e){return e[2]>this.gps_max_horizontalAccuracy?null:Ba(e[0],e[1])}resetParticleFilterDist(e){let t=this.particleFilter.getResultX(),n=this.particleFilter.getResultY();En(t,n,e.x,e.y)>this.MaxEstimateErr?(this.outTrustRegionNum+=1,this.outTrustRegionNum>=this.TrustNum&&(console.info(`\u8D85\u51FA\u53EF\u4FE1\u533A\u57DF\uFF0C\u91CD\u7F6E\u7C92\u5B50\u8FC7\u6EE4\u5668\u5230: ${e.x}, ${e.y}`),this.particleFilter.setPosInitFlag(!1),this.particleFilter.setYawInitFlag(!1),this.outTrustRegionNum=0)):this.outTrustRegionNum=0}};var hc=class extends iv{sensor;pdr;constructor(e={}){super(),this.sensor=new jr(e.sensor),this.pdr=new _i}checkSensor(){return this.sensor.checkSensor()}start(){this.sensor.start(),this.sensor.addEventListener("add-data-item",({item:e})=>{this.getPositionBySensorItem(e)})}getPositionBySensorItem(e){let[t,n,i]=this.pdr.pfFusionPDRiBeacon(e);return t&&this.dispatchEvent({type:"position",x:n,y:i,_type:e.type==="gps"?"gps":"pdr"}),[t,n,i]}setBeaconPosition(e,t){let[n,i]=this.pdr.setBeaconPosition(e,t);this.dispatchEvent({type:"position",x:n,y:i,_type:"beacon"})}dispose(){this.sensor.stop()}};async function pc({brand:r,project:e},t){let{apiDomain:n,apiPath:{floorRange:i},apiInfo:o}=t,a=`${n}${i}?brand=${r}&project=${e}&phase=${e}&building=${e}`;return await fetch(a,o).then(l=>l.json()).then(l=>l.data).then(l=>{let s=(l||[])[0];return s&&(s.info=JSON.parse(s.info)),s})}async function fc({brand:r,project:e,floor:t,ts:n,resource_type_list:i},o){let{apiDomain:a,apiPath:{floorGraphic:c},apiInfo:l}=o,s=`${a}${c}?brand=${r}&project=${e}&phase=${e}&building=${e}&floor=${t}&ts=${n}&resource_type_list=${i}`;return await fetch(s,l).then(h=>h.json()).then(h=>h.data).then(h=>((h||[]).map(f=>f.info=JSON.parse(f.info)),h||[]))}async function b2({project:r,floor:e},t){let{apiDomain:n,apiInfo:i}=t,o=`${n}/api/inception-map/external_street/get?projectCode=${r}&floorCode=${e}`;return await fetch(o,i).then(c=>c.json()).then(c=>c.data).then(c=>JSON.parse(c[0].streetInfo||"{}")).then(c=>c.fileId?ov(c.fileId,t):null)}async function ov(r,e){let{apiDomain:t,apiInfo:n}=e;return fetch(`${t}/api/inception-map/file/getFileStream?fileId=${r}`,n).then(i=>i.arrayBuffer()).then(i=>{let a=new TextDecoder("utf-8").decode(i);return a?JSON.parse(a):null})}var xe;function dc(r="aibee_map"){return new Promise((e,t)=>{if(xe)return e({db:xe,type:"success"});let n=indexedDB.open(r);n.onupgradeneeded=function(i){xe=i.target.result,console.log("onupgradeneeded"),e({db:xe,type:"onupgradeneeded"})},n.onsuccess=i=>{xe=i.target.result,e({db:xe,type:"success"})},n.onerror=i=>{t(i)}})}function gc(r,e,t=xe){return new Promise((n,i)=>{t||i("\u6CA1\u6709db");let a=t.transaction([r],"readonly").objectStore(r).get(e);a.onsuccess=()=>{a.result?n(a.result.value):n(null)},a.onerror=c=>{console.log("[getVersionByKey]",c),n(null)}})}function mc(r,e,t,n=xe){return new Promise((i,o)=>(n||o("\u6CA1\u6709db"),new Promise((a,c)=>{let s=n.transaction([r],"readwrite").objectStore(r).add({key:e,value:t});s.onsuccess=function(u){a(u)},s.onerror=function(u){c(u)}})))}function sr(r,e=xe){e&&(e.objectStoreNames.contains(r)||e.createObjectStore(r,{keyPath:"key"}))}function yc(){xe?.close(),xe=null}var vc="data:image/png;base64,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";var _c="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKgAAAEUCAYAAAC/NH0OAAAABGdBTUEAALGPC/xhBQAAADhlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAAqACAAQAAAABAAAAqKADAAQAAAABAAABFAAAAABMLwlcAAAR8ElEQVR4Ae2dCawkRRnH93EKKrey3Kdccu3BiqisgoKiQUJcDCGBhGOfrLyFXRaBECGrHAK6cqwsoKBowAQSiIEI4hpIWMV4QCAiGBCygitiPAiRU3j+/7szb2fmTc9UVVd31/GvpPJmuqu++ur3/fP1m+npqilTVIIgMD4+fgjqj1AfR12BegXqtkE4JyfyJgAhXozar7yCg7PzpqPZN0oAAjy1nzI7jlGk72/USQ2eJwEIb3vUlzvEWPTysjwJTZmyTq4TD2TeS+HHJga+zDJooyYi4I8AUuWconTZ5/iT/kaWJREYQgAC3Ax1VR8hFh16aojJZE/rEt9MaK/EsNs0M7RGFYEBBJAiZ6O+U5QqC44rgw5gqlOeCEB8G8LUjagjnkwmb0aX+HpDfCGG26PeITWaCBgQQPbcD/XNgkv4sMO6xBswVhNHAlAfr1TfRV3f0US23XSJryf0YxjmQ/UMpVFEwIIAsueOqLyfXqboEm/BXE3tCCxD8/fYdVHrNgFd4tskKviLlHk8zB5VgelsTEqgFYUa4twCpq+qyHw2ZiXQ6kK9BKb1O86SfCXQkgD7dUf2PBzHT+p3TsfsCEigdryGtoY4N0KjG4Y2VAMjAhKoESarRovRejerHmpcSEACLURjfwLZ80D0WmDfUz2KCEigRWQsj0Oc66LL91DXs+yq5gMISKAD4FieYuacYdlHzYcQkECHADI5jey5C9rxf08VzwQkUD9Ar4eZjf2YkpVOAhJoJw2H18ieJ6LbEQ5d1cWAgARqAKmoCcS5Fc59q+i8jpcnIIGWY8h77RSpSkUEJFBHsMieR6LrCY7d1c2QgARqCKqzGcTJD0T8YKRSMQEJ1A3wxei2s1tX9bIhIIHa0EJbZM+Z+DPfspuaOxKQQC3AQZy8jcmnM3lbU6UGAhKoHeRFaM4fhKjUREACNQSN7Lk7mnJlEJUaCUig5rD5I2T+GFmlRgISqAFsZM+T0ewwg6Zq4pmABDoEKMTJB9+4nqdKAwQk0OHQr0UTPkKs0gABCXQAdGTPz+L0cQOa6FTFBCTQAsAQJ5er4bI1Kg0SkECL4XNvoh2KT+tMHQQk0D6UkT25VOK8Pqd0qGYCEmgPcIiTi8zy6Uyx6WHTxFsFYTL183Bo38mHdaQJAhJoB3Vkzz3x9oKOQ3rZMAEJtBUAiHMEL7lFDLeKUQmEgAS6NhCn4eWha9/qVQgEJFBEAdmT2xJeEUJA5EM3AQl0DY+l+LNpNxq9C4FA9gJF9jwGgTg2hGDIh8kEshYoxLkJkDB7qgRKIGuBIiaXo24XaGzkFghkK1Bkz49g/qNSQdgEshQoxLkBwsKnM/ndp0rABLIUKOLBu0V7BxwXudYikJ1AkT33wdx5v10lAgJZCRTi5CWdl3Ze4lUiIJCVQBEP/sbzkAjiIhdbBLIRKLLndpjzpYp8XASyESjCch0qv5hXiYhAFgJF9pyDmBwdUVzkaotA8gKFODfDXK9RxOMkkLxAERauCjI1zvDI66QFiuw5GyE+RWGOl0CyAoU434Ww8BEO3c6MV59J/1jkq4jLHhHHRq6DQJIZFNlzP8ztHEU4fgLJCRTi5Jy48AIXYFCJnEByAkU8xlBnRR4Xud8ikJRAkT13xLy4h5FKIgSSEihiwuUSuWyiSiIEkhEosufxiMlRicRF02gRSEKgECeX6ObOwyqJEUhCoIjJElRudqCSGIHoBYrseThiclJicdF0WgSiFijEyY21uMGWSqIEohYoYrIYdbdEY6NpgUC0AkX2nAb/FyiKaROIUqAQJ7fD5tOZ3B5bJWECUQoU8WDmnJFwXDS1FoHoBIrsuQt85/+eKhkQiE6giMn1qBtnEBtNEQSiEiiy54nw+QhFLh8C0QgU4twKYeEdI5WMCEQjUMSE99q3zCg2mioIRCFQZM8j4esJilh+BIIXKMT5boSFH4xUMiQQvEARk6+j7pxhbDRlEAhaoMieM+HjfEUqXwLBChTi5G1MPp3J25oqmRIIVqCIxyLUAzKNi6bdIhCkQJE9d4d/FylKIhCkQBEWrqnEtZVUMicQnECRPU9GTD6ReVw0/RaBoAQKcW4Nv76p6IhAm0BQAoVTXAl587Zz+isCwQgU2fNzCMdxCokIdBIIQqAQJ5er4S4cKiLQRSAIgcKjy1B36PJMb0QABBoXKLLnwfCDO8CpiMAkAo0KFOLkIrN8OrNRPyZR0YFgCDQtjPNAYt9gaMiR4Ag0JlBkzz1B44LgiMihoAg0IlCIcwQUeGnfMCgaciY4Ao0IFBTmon4sOBpyKDgCtQsU2XMbULg8OBJyKEgCtQsUFJaibhokDTkVHIFaBYrseQwIHBscBTkULIHaBApxbgIK3wmWhBwLkkBtAsXs+X/ntkFSkFPBEqhFoMieHwWB0WApyLFgCVQuUIhzA8ye33nyu08VEbAiULlA4Q3vFu1l5ZUai0CLQKVZDdlzH4zzKCqzqIo7gZfQlSuspFzewOSeRn1oZGTk7fZEKxMoxEnbv0T9cHsw/RUBAwIr0eYUiPQXbFvlJZ6/8ZQ4SVnFhsBOaPwzJLhD2amSDArj28P2H1Hfy0FURMCBwJ+QRfeqSqA/gUNHOzilLiLQSWC690s8succjCBxdmLWa1cCO3rNoBDnZvDkSdSprh6pnwh0EDjYdwblqiASZwdhvXQm8Ff0fMSbQJE9Pw6DJzu7o44i0E3ga/iQ9JaXSzzEyZXoHkf9QPcYeicCTgRWoNehEOi4rwx6IQxKnE6xUKceAm/i/WkUJ4+XFiiy5/6ww9WQVUTAB4GLIc6n2oZKXeIhTgr8YdRZbYP6KwIlCPDmzjQIlFl0dSmbQcdgReJswdSfUgTeQW9e2ifESWvOGRTZk/dMn0DlRlsqIlCWwFKIkwmvq5QR6E9h6TNd1vRGBNwIvIBu+0Cgr/R2d7rEI3seD0MSZy9NvXcl8OV+4qQx6wwKcW6BfvyU9T4aUBGBkgRuhzi/WGTDJYMugTGJs4iojtsQ+A8anzmog5VAkT0/CWMnDTKocyJgQeBsZM8XB7U3vsRDnBvB0B9Qdx1kUOdEwJDAg2h3GAS6+o5RUR+bDLoYRiTOIpI6bkPgdTSeO0ycNGgkUGTPaWi7kB1URMADgcUQJ5/gHFqGXuIhTm6H/RvU6UOtqYEIDCfAX73NhEDfGt7ULIMugCGJ04Sm2gwj0L6daSROGhuYQZE9d0EbfjDamI1VRKAkgauQOZnwjMswgd4PS58ytqaGIlBMYCVOfRAC/W9xk8lnCj8kIXueiOYS52RmOuJG4HRbcXKYvhkU4uSdIj6duSUbqYhASQK3QZwnuNgoyqDfhjGJ04Wo+vQS+BcOnNV70PT9JIEie34anZ3Ubjqo2mVFYAGy5z9cZ9x1iYc4+ePjJ1D5Y2QVEShLYDnEWepzTG8G5RqUEmfZsKg/CbyGWnrZ9wmBInseBIPzaVlFBDwQuBDZ89mydlZf4iHO9WDod6gHlDWo/iIAAlxV+yAIdGKlZFcq7Qx6NgxInK4U1a+TAEXJFZJLi5NGR1ofjJ7H6815QEUEShK4EuL8SkkbE90p0CPx7r6JI3ohAu4EnkPXfSHQV91NdPfkJX5q9yG9EwFnAqM+xUkvKNC/OLujjiKwlsAtEOfP177184qXeH6C5y9NtvVjUlYyJMA7RXtDoP/0Pfd1YPR/MMovVAc+vOR7YNlLisBZVYiThFZ/zQTj9+D151H/xoMqImBB4D7o5zaL9lZNe+/Fr4/es1F3RU19+8JLMUft4wQIJQp/fMwfIfNfxEpKl0ArGSFQo/jfmwsGbB2oe7G4xV8qXVWls6sv8VUOINvJEvgtZnZt1bOTQKsmnKZ9frDmYrNebmcOQiSBDqKjc0UEeDvzsaKTPo/rf1CfNPOw9QymuR8EyuVrKi/KoJUjTm4ArqlUizhJTgJNTj+VTugmiPOBSkfoMa5LfA8QvS0k8Hec4e3Mfxe2qOCEMmgFUBM1OVa3OMlRAk1UTZ6ndQ/EeYdnm0bmJFAjTFk3egWzn9cUAQm0KfLxjHs+sicfCWqkSKCNYI9m0F/D02VNeiuBNkk/7LG5yOypyJ5cdLaxIoE2hj74gS+DOLkMUqNF34M2ij/YwZ+CZwdCoG807aEyaNMRCG98PvrD25mNi5NoJNDwBNK0RzdAnA817UR7fF3i2yT0lwRWoXJb7JdDwaEMGkokwvDjjJDESSQSaBjCCMGLOyHOu0JwpNMHCbSTRr6veUkfC3H6EmiIUanfp3ORPfn/Z3BFAg0uJLU7tAIj3lj7qIYDSqCGoBJtxu86+XRmsMseSaCJKs9wWpdAnLxrFGzR96DBhqZyx3iffToE+mblI5UYQBm0BLyIu7a3xQ5anOQrgUasshKuX4fM+XCJ/rV11SW+NtTBDPQCPOHtTD7KEXxRBg0+RN4dnBeLODlzCdR7/IM2eDvEeXfQHvY4J4H2AEn4LRdciG6rSwk0YUX2TG0RsidXB4mqSKBRhcvZ2QchzpudezfYUQJtEH5NQ3Mlurk1jeV9GAnUO9LgDC5G9nw6OK8MHdL3oIagIm32OPyeAYFyye4oizJolGEzcpq3M7nwQrTi5CwlUKNYR9noaoiTO3FEXXSJjzp8hc6vxBlusMWNtqIuyqBRh6/Q+dNTECdnJ4EWxjjaE7dCnPdG632P4xJoD5DI33I77AWRz6HLfQm0C0f0bxYie3Lv9mSKBJpMKKcshzh/mM501sxEAk0joq9iGqNpTKV7FhJoN49Y312E7PlsrM4P8lvfgw6iE8e5R+DmLAi08p2Hm8ChDNoEdX9jUpS1bIvtz2U7SxKoHa/QWi9B5mQGTbboEh9vaPk/J7fF5gekZIsyaLyhHU1dnAyNBBqnQG+BOJfH6bqd17rE2/EKoTXvFHFbbN7WTL4og8YX4jNzESdDI4HGJdB7Ic4fx+VyOW8l0HL86uzNHx+fXueAIYwlgYYQBTMfLkD25C/lsyoSaBzh5rNF18bhql8vJVC/PKuwxqcyG98Wu4qJmdiUQE0oNdvmSlza+Xx7lkXfg4Yddq4Isj8EyuVrsizKoGGHndtiZytOhkYCDVegN0GcD4brXj2e6RJfD2fbUbiOJ29nctHZrIsyaJjhH5M41wRGAg1PoHdDnHeE51YzHkmgzXAvGpVbw8wrOpnjcQk0rKifj+zJfYxUWgQk0HCkwJ3floXjThieSKBhxIF7ZvLpTC46q9JBQALtgNHgy29AnNx9WKWHgL4H7QHSwFvu134gBPpGA2MHP6QyaLMhGsfwvLRLnAVxkEALwNR0+AaIc0VNY0U5jC7xzYVtFYbmttgvN+dC+CMrgzYXozMkzuHwJdDhjKpocSfEeVcVhlOzKYHWH1Fe0sfqHzbOESXQ+uN2LrIn//9UMSAggRpA8tjkIdi60aO95E1JoPWFmN918hEOfvepYkhAAjUE5aHZJRAn7xqpWBDQ96AWsEo05X32aRDoWyVsZNlVGbT6sPMXSrydKXE6sJZAHaBZdrkO4uRvPVUcCOgS7wDNosvzaMttsfkoh4oDAWVQB2gWXeZJnBa0+jSVQPtA8XTodojzHk+2sjUjgVYTei64ML8a03lZlUCrifciZE+uDqJSkoAEWhJgn+4PQJw39zmuQw4EJFAHaAO6cCW6uQPO65QlAQnUEtiQ5ouRPZ8Z0kanLQjoe1ALWEOaPobzMyFQLtmt4omAMqgfkO1tsSVOPzwnrEigEyhKvbgGmZM7cah4JqBLfHmgK2GCtzO50ZaKZwLKoOWBfkniLA+xyIIEWkTG7PitEOd9Zk3VyoWABOpCbU0fboe9wL27epoQkEBNKPVvsxDZk3u3q4iAfwLj4+MvorqW+/17JIv9CCiD9qMy+NirOD06uInO+iIggdqTvAiX9ufsu6mHCFgQwLXd5RL/e/Rb12IYNS1JQBnUHCBvZ3JbbP5VqYmABGoOegnE+ah5c7UUgRIELC/xf0b7jUoMp66OBHLOoDZrJI0ie77myFjdRMCeADIiP/CYlB/YW1cPEShJAMpcZqDOl9Bmi5JDqbsI2BOA8HZGfX2ISL9gb1k9RMATAYjzKNTX+oj0bRw7x9MwMiMC7gQgxJ1Qr0b9FepjqN9Hne5uUT19Evg/ywrR3QO2mUkAAAAASUVORK5CYII=";var xc="data:image/png;base64,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";var F2={loadRoadNetwork:!1},cs="map_version",hs="route_version",ps="map_data",xi="road_network_data",Ec={half:vc,power:_c,mechanical:xc},bc=class{constructor(e){this.bmap=e;this.initDb()}floors=[];async initDb(){try{let{db:e,type:t}=await dc();t==="onupgradeneeded"&&(sr(cs),sr(hs),sr(ps),sr(xi))}catch(e){console.log("[\u6253\u5F00indexDb\u9519\u8BEF]",e)}}async load(e){if(this.clear(),Array.isArray(e))this.floors=e;else{let t=await fetch(e).then(n=>n.json());t.code==="0"&&(this.floors=t.data.list)}}setCacheData(e,t,n){return mc(e,`${t}`,n)}getCacheData(e,t){return gc(e,`${t}`)}getFloorCacheKey(e){return`${e.floor_id}`}async getFloorData(e){let t=this.floors.find(i=>i.floor===e);if(!t)return null;let n=this.getFloorCacheKey(t);try{if(await this.getCacheData(cs,n)===t.version_id){let o=await this.getCacheData(ps,n);if(o)return this.getDataByJson(o)}return this.getFloorDataByFloorInfo(t)}catch{return this.getFloorDataByFloorInfo(t)}}async getFloorDataByFloorInfo(e){let t=this.getFloorCacheKey(e);console.time("zstd_json");let n=await fetch(e.map_url).then(i=>i.json());return n.floor=e.floor,console.timeEnd("zstd_json"),this.setCacheData(ps,t,n),this.setCacheData(cs,t,e.version_id),this.getDataByJson(n)}async getRoadNetworkData(){return(await Promise.all(this.floors.map(async t=>{let n=this.getFloorCacheKey(t);try{if(await this.getCacheData(hs,n)===t.version_id){let a=await this.getCacheData(xi,n);if(a)return a}let o=await fetch(t.route_url).then(a=>a.json());return this.setCacheData(xi,n,o),this.setCacheData(hs,n,t.version_id),o}catch{let i=await fetch(t.route_url).then(o=>o.json());return this.setCacheData(xi,n,i),i}}))).filter(t=>t.points)}async getFacilitiesData(){if(this.floors[0]?.entry_infra_url)return fetch(this.floors[0].entry_infra_url).then(e=>e.json())}async getOtherDataByFreeTime(){}async getMulFloorsData(e){return Promise.all(e.map(t=>this.getFloorData(t))).then(t=>t.filter(n=>n))}async getDataByUrl(e){let t=await fetch(e).then(n=>n.json());return this.getDataByJson(t)}getDataByJson(e){let t=new Ce(this.bmap.context);t.userData.graphics=[],t.userData.graphicMap=new Map;let n=[0,0];return e.layers.forEach(i=>{switch(i.l_type){case"range":let o=i.elements[0];n=[o.center_x,o.center_y];break;case"graph":ee(i.elements,n);let a=[];i.elements.forEach(p=>{p.group==="ground"?t.createGround(p):a.push(p)});let c=a.reduce((p,m)=>{let{fillColor:v,fillOpacity:b,strokeColor:y,strokeOpacity:S,height:x}=m,_=`${v.toLowerCase()}-${b}-${y.toLowerCase()}-${S}-${x}`;return S===0&&(_=`${v.toLowerCase()}-${b}-${x}`),p[_]?p[_].push(m):p[_]=[m],p},{});Object.values(c).forEach(p=>{let m=new Dr(this.bmap.context,p);t.mergeGraphicLayer.add(m)});break;case"ground":ee(i.elements,n);let l=i.elements.map(p=>new Ft(this.bmap.context,p));t.addGrounds(l);break;case"wall":ee(i.elements,n);let s=i.elements.reduce((p,m)=>{let{fillColor:v,fillOpacity:b,strokeColor:y,strokeOpacity:S,height:x}=m,_=`${v.toLowerCase()}-${b}-${y.toLowerCase()}-${S}-${x}`;return S===0&&(_=`${v.toLowerCase()}-${b}-${x}`),p[_]?p[_].push(m):p[_]=[m],p},{});Object.values(s).forEach(p=>{let m=new Cr(this.bmap.context,p);t.wallLayer.add(m)});break;case"lane":ee(i.elements,n);let u=i.elements.reduce((p,m)=>{let{fillColor:v,fillOpacity:b,strokeColor:y,strokeOpacity:S}=m,x=`${v.toLowerCase()}-${b}-${y.toLowerCase()}-${S}`;return S===0&&(x=`${v.toLowerCase()}-${b}`),p[x]?p[x].push(m):p[x]=[m],p},{});Object.values(u).forEach(p=>{let m=new Pr(this.bmap.context,p);t.laneLayer.add(m)});break;case"texture2d":case"texture3d":if(ee(i.elements,n),i.elements.length){let p=new Wn(this.bmap.context,i.elements);t.textureLayer.add(p)}break;case"glb":ee(i.elements,n),i.elements.forEach(p=>{let m=Te([p.center_x,p.center_y],n),v=new Ar(this.bmap.context,{...p,url:p.secondUrl,rotate:p.secondRotate,width:p.secondWidth,center_x:m[0],center_y:m[1]});t.glbModelLayer.add(v)});break;case"store":ee(i.elements,n),i.elements.map(p=>{let m=Te([p.center_x,p.center_y],n),v=t.addGraphic(p);t.userData.graphics.push(v),t.userData.graphicMap.set(p.id,v);try{let b=new ne(this.bmap.context,{id:p.id,icon:p.poi_info.icon,text:p.poi_info.showName||p.store_name||p.poi_info.text,position:{x:m[0],y:m[1],z:p.airHeight+p.height},icon_size:[18,18]});t.poiLayer2.pushPoi(b),b&&(b.userData.type="store",b.userData.data=p)}catch(b){console.log("\u521B\u5EFA\u5E97\u94FApoi\u5931\u8D25",b,p)}});break;case"facility":ee(i.elements,n),i.elements.map(p=>{let m=Te([p.center_x,p.center_y],n),v=t.addGraphic(p);if(t.userData.graphics.push(v),t.userData.graphicMap.set(p.id,v),p.poi_info){let b=new ne(this.bmap.context,{id:p.id,icon:p.poi_info.icon,text:p.poi_info.showName||p.store_name||p.poi_info.text,position:{x:m[0],y:m[1],z:p.airHeight+p.height},icon_size:[18,18]});t.poiLayer2.pushPoi(b),b.userData.type="facility",b.userData.data=p}else console.log("\u6DFB\u52A0facility\u5931\u8D25\u6CA1\u6709poi_info",p)});break;case"parkingSpace":ee(i.elements,n);let h=[],f=new Map;i.elements.forEach(p=>{let m=t.addGraphic(p);h.push(m),f.set(p.id,m);let v=Te([p.center_x,p.center_y],n);if(p.texts[0]){let b=new ne(this.bmap.context,{id:p.id,text:p.texts[0],position:{x:v[0],y:v[1],z:p.airHeight+p.height}});b&&(b.userData.type="parkingSpace",b.userData.data=p),t.poiLayer2.pushPoi(b)}});let d=i.elements.filter(p=>Ec[p.parkingType]).map(p=>{let m=Te([p.center_x,p.center_y],n),v=Ms(p.geometry.coords,m);return{uuid:p.id,iconUrl:Ec[p.parkingType],name:p.texts[0],deltaHeight:p.deltaHeight,airHeight:p.airHeight,height:p.height,geometry:{...p.geometry,coords:v},opacity:p.fillOpacity,visible:!0}});if(d.length){let p=new Wn(this.bmap.context,d);t.textureLayer.add(p)}t.userData.parkingSpaces=h,t.userData.parkingSpacesGraphicMap=f;break;case"text":ee(i.elements,n);let g=new Rr(this.bmap.context,i.elements.map(p=>{let m=Te([p.center_x,p.center_y],n);return{...p,center_x:m[0],center_y:m[1]}}));t.textTextureLayer.add(g);break}}),t.userData.center=n,t.userData.height=e.floorHeight*10,t.name=e.floor,t.userData.data=e,t.updateBox(),t}clear(){}dispose(){this.clear(),yc()}};var Sc=class{constructor(e){this.bmap=e}cacheData=new Map;floorDataLengthMap=new Map;buildingGroundMap=new Map;externalStreetMap=new Map;async load(e){let t=yn(e);if(this.cacheData.has(t))return this.cacheData.get(t);let[,n]=await Promise.all([this.loadBuildGround(e),fc(e,this.bmap.config)]),i=yn({floor:e.floor,ts:e.ts});ee(n.map(a=>a.info),this.bmap.buildingCenter,this.floorDataLengthMap.get(i)||0),n.forEach(a=>a.info.transformToBuildingGround=!1),this.cacheData.set(t,n);let o=this.floorDataLengthMap.get(i)||0;return this.floorDataLengthMap.set(i,o+n.length),this.loadExternalStreet(e),n}async loadExternalStreet(e){}switchFloorByData(e,t){if(!e.length)return;let n=t.userData.legacyToGraphicMap||new Map,i=t.userData.graphicMap||new Map,{ground:o,markGraphic:a,graphic:c}=this.bmap.config;for(let l=0;l<e.length;l++){let s=e[l];s.info.group==="ground"?(s.info.fillColor=o.color,s.info.fillOpacity=o.opacity,s.info.height=o.height,s.info.stroke=o.stroke,s.info.strokeColor=o.strokeColor,s.info.strokeOpacity=o.strokeOpacity):s.info.userData.mark?(s.info.height=a.height,s.info.fillColor=a.color,s.info.fillOpacity=a.opacity,s.info.stroke=a.stroke,s.info.strokeColor=a.strokeColor,s.info.strokeOpacity=a.strokeOpacity):(s.info.fillOpacity=c.fillOpacity,this.bmap.config.initTransToMark&&(s.info.height=a.height,s.info.fillColor=a.color,s.info.stroke=a.stroke,s.info.strokeColor=a.strokeColor,s.info.strokeOpacity=a.strokeOpacity))}for(let l of e){if(l.info.group==="ground")t.createGround(l.info);else{let s=t.addGraphic(l.info);s.userData.data=l,n.set(l.legacy_id,s)}i.set(l.element_uuid,l)}t.userData.legacyToGraphicMap=n,t.userData.graphicMap=i,t.updateBox(),t===this.bmap.context.currentFloor?(this.bmap.triggerHooks("switch_floor_before",{curFloor:t,graphics:t.graphicLayer.children}),this.bmap.initialFloorCamera(),this.bmap.triggerHooks("switch_floor_after",{curFloor:t,graphics:t.graphicLayer.children})):this.bmap.switchFloorByFloor(t)}filterData(e,t){let n=t.userData.graphicMap||new Map;return e.filter(i=>!n.has(i.element_uuid))}async switchFloorByStoreData(e,t){let n=await this.load({...e,resource_type_list:"6"}),i=this.filterData(n,t);this.switchFloorByData(i,t)}async switchFloorByOtherData(e,t){let n=await this.load({...e,resource_type_list:"1,2,3,4"}),i=this.filterData(n,t);this.switchFloorByData(i,t)}async loadBuildGround({brand:e,project:t}){let n=await this.loadBuildingGround({brand:e,project:t});return this.bmap.currentBuildGround=n,this.bmap.changeBuildingCenter(n,{brand:e,project:t}),this.bmap.currentBuildGround}async loadBuildingGround({brand:e,project:t}){let n=yn({brand:e,project:t});if(this.buildingGroundMap.has(n))return this.buildingGroundMap.get(n);let i=pc({brand:e,project:t},this.bmap.config).then(o=>(this.buildingGroundMap.set(n,o),o));return this.buildingGroundMap.set(n,i),i}async switchFloor(e){let t=new Ce(this.bmap.context);t.name=e.floor;try{await Promise.all([this.switchFloorByStoreData(e,t),this.switchFloorByOtherData(e,t)])}catch(n){console.log(n)}return t}dispose(){this.cacheData.clear(),this.floorDataLengthMap.clear(),this.buildingGroundMap.clear()}};export{bc as AibeeLoader,Sa as BMap,Oa as BMapSelect,le as BaseSvg,Hr as Context,Sc as CrLoader,La as CrNavPath,Ma as Equipment,Ps as Events,Ce as Floor,Ar as GlbModel,Ft as Graphic,Er as GraphicLayer,Wn as GroundTexture,_r as HeatmapElement,Vn as HooksName,Or as HoverHelper,Pr as Lane,Ht as Layer,Vf as MapTypePolar,Dr as MergeGraphic,xr as Model,Ra as MulFloors,Na as NavPath,Ia as Navigation,vr as Overlay,zs as PathDirection,hc as PdrPosition,rn as Poi,ne as Poi2,_n as PoiLayer,br as PoiLayer2,ea as RoadNetwork,na as RoadNetwork2,ha as SelectBox,Lr as Selection,jr as Sensor,yr as Shadow,wr as SvgLine,Tr as SvgPolygon,Rr as TextTexture,Gt as Timer,vn as TweenUtil,As as UA,Cr as Wall,Tv as addAlphaToHexColor,Ss as calc_angle,Mi as calc_direction,ra as convertToSnakeCase,Gn as createCircle,fr as createLine,Ve as createRect,Ts as createSvg,pr as createSvgElement,l_ as createThreeBox,u_ as createThreeLine,Le as darkenColor,F2 as defaultAibeeLoaderOption,Bf as defaultConfig,Pi as defaultGraphicOptions,kp as defaultOptions,vf as defaultTextTextureOptions,Jt as dispose,Bs as distancePointToSegment,yn as generatorKeyByObj,vh as getAngle,hr as getCenter,ba as getConfig,Vv as getDirectPath,Gs as getDistanceByPathPos,kt as getLength,vv as getLongestSideDir,Ms as getMinEdgeSquare,Se as getPathLength,fn as getPointEdgeIndex,dr as getPosByPathDistance,bs as hasChinese,bi as hexToRgb,Es as initDirectionalLight,xs as initLight,be as initShape,Av as isAndroid,ke as isContain,mn as isControl,kn as isIphone,gn as isMac,ws as isPointInPolygon,pc as loadBuildingGround,b2 as loadExternalStreet,fc as loadGraphics,kv as moveOnRoute,dn as proxyOptions,xh as removeWeightPath,en as setCirclePosition,ge as setLineStartEnd,Xt as setRectPosition,Us as simplifyPath,Cs as sleepOnePromise,Sv as sleepOneRf,Fs as smoothPath,wv as strToNumber,tn as timeoutPromise,i_ as toWebWorker,ee as transformGraphicData,Te as translatePosToCenter,we as triggerWorker,et as vector3ToDevice,Ov as xhrGet};
|
|
7516
|
+
(`+vt(w,p)+", "+vt(S,p)+") ==> "+(this._values?vt(this._values[M],p):"X")}return y},i.prototype.toString=function(){return vt(this.toArray())},i.prototype.toJSON=function(){return{mathjs:"SparseMatrix",values:this._values,index:this._index,ptr:this._ptr,size:this._size,datatype:this._datatype}},i.prototype.diagonal=function(p){if(p){if(it(p)&&(p=p.toNumber()),!nt(p)||!tt(p))throw new TypeError("The parameter k must be an integer number")}else p=0;var m=p>0?p:0,v=p<0?-p:0,b=this._size[0],y=this._size[1],S=Math.min(b-v,y-m),x=[],_=[],M=[];M[0]=0;for(var w=m;w<y&&x.length<S;w++)for(var C=this._ptr[w],P=this._ptr[w+1],D=C;D<P;D++){var R=this._index[D];if(R===w-m+v){x.push(this._values[D]),_[x.length-1]=R-v;break}}return M.push(x.length),new i({values:x,index:_,ptr:M,size:[S,1]})},i.fromJSON=function(p){return new i(p)},i.diagonal=function(p,m,v,b,y){if(!yt(p))throw new TypeError("Array expected, size parameter");if(p.length!==2)throw new Error("Only two dimensions matrix are supported");if(p=p.map(function(j){if(it(j)&&(j=j.toNumber()),!nt(j)||!tt(j)||j<1)throw new Error("Size values must be positive integers");return j}),v){if(it(v)&&(v=v.toNumber()),!nt(v)||!tt(v))throw new TypeError("The parameter k must be an integer number")}else v=0;var S=t,x=0;jt(y)&&(S=e.find(t,[y,y])||t,x=e.convert(0,y));var _=v>0?v:0,M=v<0?-v:0,w=p[0],C=p[1],P=Math.min(w-M,C-_),D;if(yt(m)){if(m.length!==P)throw new Error("Invalid value array length");D=function(J){return m[J]}}else if(ot(m)){var R=m.size();if(R.length!==1||R[0]!==P)throw new Error("Invalid matrix length");D=function(J){return m.get([J])}}else D=function(){return m};for(var W=[],G=[],k=[],L=0;L<C;L++){k.push(W.length);var q=L-_;if(q>=0&&q<P){var Y=D(q);S(Y,x)||(G.push(q+M),W.push(Y))}}return k.push(W.length),new i({values:W,index:G,ptr:k,size:[w,C]})},i.prototype.swapRows=function(p,m){if(!nt(p)||!tt(p)||!nt(m)||!tt(m))throw new Error("Row index must be positive integers");if(this._size.length!==2)throw new Error("Only two dimensional matrix is supported");return Et(p,this._size[0]),Et(m,this._size[0]),i._swapRows(p,m,this._size[1],this._values,this._index,this._ptr),this},i._forEachRow=function(p,m,v,b,y){for(var S=b[p],x=b[p+1],_=S;_<x;_++)y(v[_],m[_])},i._swapRows=function(p,m,v,b,y,S){for(var x=0;x<v;x++){var _=S[x],M=S[x+1],w=s(p,_,M,y),C=s(m,_,M,y);if(w<M&&C<M&&y[w]===p&&y[C]===m){if(b){var P=b[w];b[w]=b[C],b[C]=P}continue}if(w<M&&y[w]===p&&(C>=M||y[C]!==m)){var D=b?b[w]:void 0;y.splice(C,0,m),b&&b.splice(C,0,D),y.splice(C<=w?w+1:w,1),b&&b.splice(C<=w?w+1:w,1);continue}if(C<M&&y[C]===m&&(w>=M||y[w]!==p)){var R=b?b[C]:void 0;y.splice(w,0,p),b&&b.splice(w,0,R),y.splice(w<=C?C+1:C,1),b&&b.splice(w<=C?C+1:C,1)}}},i},{isClass:!0});var fm="number",dm=["typed"];function gm(r){var e=r.match(/(0[box])([0-9a-fA-F]*)\.([0-9a-fA-F]*)/);if(e){var t={"0b":2,"0o":8,"0x":16}[e[1]],n=e[2],i=e[3];return{input:r,radix:t,integerPart:n,fractionalPart:i}}else return null}function mm(r){for(var e=parseInt(r.integerPart,r.radix),t=0,n=0;n<r.fractionalPart.length;n++){var i=parseInt(r.fractionalPart[n],r.radix);t+=i/Math.pow(r.radix,n+1)}var o=e+t;if(isNaN(o))throw new SyntaxError('String "'+r.input+'" is not a valid number');return o}var To=N(fm,dm,r=>{var{typed:e}=r,t=e("number",{"":function(){return 0},number:function(i){return i},string:function(i){if(i==="NaN")return NaN;var o=gm(i);if(o)return mm(o);var a=0,c=i.match(/(0[box][0-9a-fA-F]*)i([0-9]*)/);c&&(a=Number(c[2]),i=c[1]);var l=Number(i);if(isNaN(l))throw new SyntaxError('String "'+i+'" is not a valid number');if(c){if(l>2**a-1)throw new SyntaxError('String "'.concat(i,'" is out of range'));l>=2**(a-1)&&(l=l-2**a)}return l},BigNumber:function(i){return i.toNumber()},bigint:function(i){return Number(i)},Fraction:function(i){return i.valueOf()},Unit:e.referToSelf(n=>i=>{var o=i.clone();return o.value=n(i.value),o}),null:function(i){return 0},"Unit, string | Unit":function(i,o){return i.toNumber(o)},"Array | Matrix":e.referToSelf(n=>i=>_t(i,n))});return t.fromJSON=function(n){return parseFloat(n.value)},t});var ym="bignumber",vm=["typed","BigNumber"],Co=N(ym,vm,r=>{var{typed:e,BigNumber:t}=r;return e("bignumber",{"":function(){return new t(0)},number:function(i){return new t(i+"")},string:function(i){var o=i.match(/(0[box][0-9a-fA-F]*)i([0-9]*)/);if(o){var a=o[2],c=t(o[1]),l=new t(2).pow(Number(a));if(c.gt(l.sub(1)))throw new SyntaxError('String "'.concat(i,'" is out of range'));var s=new t(2).pow(Number(a)-1);return c.gte(s)?c.sub(l):c}return new t(i)},BigNumber:function(i){return i},bigint:function(i){return new t(i.toString())},Unit:e.referToSelf(n=>i=>{var o=i.clone();return o.value=n(i.value),o}),Fraction:function(i){return new t(i.n).div(i.d).times(i.s)},null:function(i){return new t(0)},"Array | Matrix":e.referToSelf(n=>i=>_t(i,n))})});var _m="fraction",xm=["typed","Fraction"],Ao=N(_m,xm,r=>{var{typed:e,Fraction:t}=r;return e("fraction",{number:function(i){if(!isFinite(i)||isNaN(i))throw new Error(i+" cannot be represented as a fraction");return new t(i)},string:function(i){return new t(i)},"number, number":function(i,o){return new t(i,o)},null:function(i){return new t(0)},BigNumber:function(i){return new t(i.toString())},bigint:function(i){return new t(i.toString())},Fraction:function(i){return i},Unit:e.referToSelf(n=>i=>{var o=i.clone();return o.value=n(i.value),o}),Object:function(i){return new t(i)},"Array | Matrix":e.referToSelf(n=>i=>_t(i,n))})});var dl="matrix",Em=["typed","Matrix","DenseMatrix","SparseMatrix"],Po=N(dl,Em,r=>{var{typed:e,Matrix:t,DenseMatrix:n,SparseMatrix:i}=r;return e(dl,{"":function(){return o([])},string:function(c){return o([],c)},"string, string":function(c,l){return o([],c,l)},Array:function(c){return o(c)},Matrix:function(c){return o(c,c.storage())},"Array | Matrix, string":o,"Array | Matrix, string, string":o});function o(a,c,l){if(c==="dense"||c==="default"||c===void 0)return new n(a,l);if(c==="sparse")return new i(a,l);throw new TypeError("Unknown matrix type "+JSON.stringify(c)+".")}});var gl="unaryMinus",bm=["typed"],Do=N(gl,bm,r=>{var{typed:e}=r;return e(gl,{number:_o,"Complex | BigNumber | Fraction":t=>t.neg(),bigint:t=>-t,Unit:e.referToSelf(t=>n=>{var i=n.clone();return i.value=e.find(t,i.valueType())(n.value),i}),"Array | Matrix":e.referToSelf(t=>n=>_t(n,t,!0))})});var ml="abs",Sm=["typed"],Io=N(ml,Sm,r=>{var{typed:e}=r;return e(ml,{number:go,"Complex | BigNumber | Fraction | Unit":t=>t.abs(),bigint:t=>t<0n?-t:t,"Array | Matrix":e.referToSelf(t=>n=>_t(n,t,!0))})});var yl="addScalar",Mm=["typed"],Ro=N(yl,Mm,r=>{var{typed:e}=r;return e(yl,{"number, number":mo,"Complex, Complex":function(n,i){return n.add(i)},"BigNumber, BigNumber":function(n,i){return n.plus(i)},"bigint, bigint":function(n,i){return n+i},"Fraction, Fraction":function(n,i){return n.add(i)},"Unit, Unit":e.referToSelf(t=>(n,i)=>{if(n.value===null||n.value===void 0)throw new Error("Parameter x contains a unit with undefined value");if(i.value===null||i.value===void 0)throw new Error("Parameter y contains a unit with undefined value");if(!n.equalBase(i))throw new Error("Units do not match");var o=n.clone();return o.value=e.find(t,[o.valueType(),i.valueType()])(o.value,i.value),o.fixPrefix=!1,o})})});var vl="subtractScalar",wm=["typed"],No=N(vl,wm,r=>{var{typed:e}=r;return e(vl,{"number, number":yo,"Complex, Complex":function(n,i){return n.sub(i)},"BigNumber, BigNumber":function(n,i){return n.minus(i)},"bigint, bigint":function(n,i){return n-i},"Fraction, Fraction":function(n,i){return n.sub(i)},"Unit, Unit":e.referToSelf(t=>(n,i)=>{if(n.value===null||n.value===void 0)throw new Error("Parameter x contains a unit with undefined value");if(i.value===null||i.value===void 0)throw new Error("Parameter y contains a unit with undefined value");if(!n.equalBase(i))throw new Error("Units do not match");var o=n.clone();return o.value=e.find(t,[o.valueType(),i.valueType()])(o.value,i.value),o.fixPrefix=!1,o})})});var Tm="matAlgo11xS0s",Cm=["typed","equalScalar"],De=N(Tm,Cm,r=>{var{typed:e,equalScalar:t}=r;return function(i,o,a,c){var l=i._values,s=i._index,u=i._ptr,h=i._size,f=i._datatype;if(!l)throw new Error("Cannot perform operation on Pattern Sparse Matrix and Scalar value");var d=h[0],g=h[1],p,m=t,v=0,b=a;typeof f=="string"&&(p=f,m=e.find(t,[p,p]),v=e.convert(0,p),o=e.convert(o,p),b=e.find(a,[p,p]));for(var y=[],S=[],x=[],_=0;_<g;_++){x[_]=S.length;for(var M=u[_],w=u[_+1],C=M;C<w;C++){var P=s[C],D=c?b(o,l[C]):b(l[C],o);m(D,v)||(S.push(P),y.push(D))}}return x[g]=S.length,i.createSparseMatrix({values:y,index:S,ptr:x,size:[d,g],datatype:p})}});var Am="matAlgo12xSfs",Pm=["typed","DenseMatrix"],Nn=N(Am,Pm,r=>{var{typed:e,DenseMatrix:t}=r;return function(i,o,a,c){var l=i._values,s=i._index,u=i._ptr,h=i._size,f=i._datatype;if(!l)throw new Error("Cannot perform operation on Pattern Sparse Matrix and Scalar value");var d=h[0],g=h[1],p,m=a;typeof f=="string"&&(p=f,o=e.convert(o,p),m=e.find(a,[p,p]));for(var v=[],b=[],y=[],S=0;S<g;S++){for(var x=S+1,_=u[S],M=u[S+1],w=_;w<M;w++){var C=s[w];b[C]=l[w],y[C]=x}for(var P=0;P<d;P++)S===0&&(v[P]=[]),y[P]===x?v[P][S]=c?m(o,b[P]):m(b[P],o):v[P][S]=c?m(o,0):m(0,o)}return new t({data:v,size:[d,g],datatype:p})}});var Dm="matAlgo14xDs",Im=["typed"],Ie=N(Dm,Im,r=>{var{typed:e}=r;return function(i,o,a,c){var l=i._data,s=i._size,u=i._datatype,h,f=a;typeof u=="string"&&(h=u,o=e.convert(o,h),f=e.find(a,[h,h]));var d=s.length>0?t(f,0,s,s[0],l,o,c):[];return i.createDenseMatrix({data:d,size:ft(s),datatype:h})};function t(n,i,o,a,c,l,s){var u=[];if(i===o.length-1)for(var h=0;h<a;h++)u[h]=s?n(l,c[h]):n(c[h],l);else for(var f=0;f<a;f++)u[f]=t(n,i+1,o,o[i+1],c[f],l,s);return u}});var Lo="ceil",Rm=["typed","config","round","matrix","equalScalar","zeros","DenseMatrix"],Nm=N(Lo,["typed","config","round"],r=>{var{typed:e,config:t,round:n}=r;return e(Lo,{number:function(o){return pe(o,n(o),t.relTol,t.absTol)?n(o):Math.ceil(o)},"number, number":function(o,a){if(pe(o,n(o,a),t.relTol,t.absTol))return n(o,a);var[c,l]="".concat(o,"e").split("e"),s=Math.ceil(Number("".concat(c,"e").concat(Number(l)+a)));return[c,l]="".concat(s,"e").split("e"),Number("".concat(c,"e").concat(Number(l)-a))}})}),Oo=N(Lo,Rm,r=>{var{typed:e,config:t,round:n,matrix:i,equalScalar:o,zeros:a,DenseMatrix:c}=r,l=De({typed:e,equalScalar:o}),s=Nn({typed:e,DenseMatrix:c}),u=Ie({typed:e}),h=Nm({typed:e,config:t,round:n});return e("ceil",{number:h.signatures.number,"number,number":h.signatures["number,number"],Complex:function(d){return d.ceil()},"Complex, number":function(d,g){return d.ceil(g)},"Complex, BigNumber":function(d,g){return d.ceil(g.toNumber())},BigNumber:function(d){return Je(d,n(d),t.relTol,t.absTol)?n(d):d.ceil()},"BigNumber, BigNumber":function(d,g){return Je(d,n(d,g),t.relTol,t.absTol)?n(d,g):d.toDecimalPlaces(g.toNumber(),Jn.ROUND_CEIL)},Fraction:function(d){return d.ceil()},"Fraction, number":function(d,g){return d.ceil(g)},"Fraction, BigNumber":function(d,g){return d.ceil(g.toNumber())},"Array | Matrix":e.referToSelf(f=>d=>_t(d,f,!0)),"Array, number | BigNumber":e.referToSelf(f=>(d,g)=>_t(d,p=>f(p,g),!0)),"SparseMatrix, number | BigNumber":e.referToSelf(f=>(d,g)=>l(d,g,f,!1)),"DenseMatrix, number | BigNumber":e.referToSelf(f=>(d,g)=>u(d,g,f,!1)),"number | Complex | Fraction | BigNumber, Array":e.referToSelf(f=>(d,g)=>u(i(g),d,f,!0).valueOf()),"number | Complex | Fraction | BigNumber, Matrix":e.referToSelf(f=>(d,g)=>o(d,0)?a(g.size(),g.storage()):g.storage()==="dense"?u(g,d,f,!0):s(g,d,f,!0))})});var _l="exp",Lm=["typed"],Fo=N(_l,Lm,r=>{var{typed:e}=r;return e(_l,{number:xo,Complex:function(n){return n.exp()},BigNumber:function(n){return n.exp()}})});var Om="matAlgo02xDS0",Fm=["typed","equalScalar"],xl=N(Om,Fm,r=>{var{typed:e,equalScalar:t}=r;return function(i,o,a,c){var l=i._data,s=i._size,u=i._datatype||i.getDataType(),h=o._values,f=o._index,d=o._ptr,g=o._size,p=o._datatype||o._data===void 0?o._datatype:o.getDataType();if(s.length!==g.length)throw new Q(s.length,g.length);if(s[0]!==g[0]||s[1]!==g[1])throw new RangeError("Dimension mismatch. Matrix A ("+s+") must match Matrix B ("+g+")");if(!h)throw new Error("Cannot perform operation on Dense Matrix and Pattern Sparse Matrix");var m=s[0],v=s[1],b,y=t,S=0,x=a;typeof u=="string"&&u===p&&u!=="mixed"&&(b=u,y=e.find(t,[b,b]),S=e.convert(0,b),x=e.find(a,[b,b]));for(var _=[],M=[],w=[],C=0;C<v;C++){w[C]=M.length;for(var P=d[C],D=d[C+1],R=P;R<D;R++){var W=f[R],G=c?x(h[R],l[W][C]):x(l[W][C],h[R]);y(G,S)||(M.push(W),_.push(G))}}return w[v]=M.length,o.createSparseMatrix({values:_,index:M,ptr:w,size:[m,v],datatype:u===i._datatype&&p===o._datatype?b:void 0})}});var Um="matAlgo03xDSf",Bm=["typed"],El=N(Um,Bm,r=>{var{typed:e}=r;return function(n,i,o,a){var c=n._data,l=n._size,s=n._datatype||n.getDataType(),u=i._values,h=i._index,f=i._ptr,d=i._size,g=i._datatype||i._data===void 0?i._datatype:i.getDataType();if(l.length!==d.length)throw new Q(l.length,d.length);if(l[0]!==d[0]||l[1]!==d[1])throw new RangeError("Dimension mismatch. Matrix A ("+l+") must match Matrix B ("+d+")");if(!u)throw new Error("Cannot perform operation on Dense Matrix and Pattern Sparse Matrix");var p=l[0],m=l[1],v,b=0,y=o;typeof s=="string"&&s===g&&s!=="mixed"&&(v=s,b=e.convert(0,v),y=e.find(o,[v,v]));for(var S=[],x=0;x<p;x++)S[x]=[];for(var _=[],M=[],w=0;w<m;w++){for(var C=w+1,P=f[w],D=f[w+1],R=P;R<D;R++){var W=h[R];_[W]=a?y(u[R],c[W][w]):y(c[W][w],u[R]),M[W]=C}for(var G=0;G<p;G++)M[G]===C?S[G][w]=_[G]:S[G][w]=a?y(b,c[G][w]):y(c[G][w],b)}return n.createDenseMatrix({data:S,size:[p,m],datatype:s===n._datatype&&g===i._datatype?v:void 0})}});var zm="matAlgo13xDD",Gm=["typed"],bl=N(zm,Gm,r=>{var{typed:e}=r;return function(i,o,a){var c=i._data,l=i._size,s=i._datatype,u=o._data,h=o._size,f=o._datatype,d=[];if(l.length!==h.length)throw new Q(l.length,h.length);for(var g=0;g<l.length;g++){if(l[g]!==h[g])throw new RangeError("Dimension mismatch. Matrix A ("+l+") must match Matrix B ("+h+")");d[g]=l[g]}var p,m=a;typeof s=="string"&&s===f&&(p=s,m=e.find(a,[p,p]));var v=d.length>0?t(m,0,d,d[0],c,u):[];return i.createDenseMatrix({data:v,size:d,datatype:p})};function t(n,i,o,a,c,l){var s=[];if(i===o.length-1)for(var u=0;u<a;u++)s[u]=n(c[u],l[u]);else for(var h=0;h<a;h++)s[h]=t(n,i+1,o,o[i+1],c[h],l[h]);return s}});function Dt(r,e){if(ce(r.size(),e.size()))return[r,e];var t=co(r.size(),e.size());return[r,e].map(n=>km(n,t))}function km(r,e){return ce(r.size(),e)?r:r.create(er(r.valueOf(),e),r.datatype())}var Vm="matrixAlgorithmSuite",Hm=["typed","matrix"],di=N(Vm,Hm,r=>{var{typed:e,matrix:t}=r,n=bl({typed:e}),i=Ie({typed:e});return function(a){var c=a.elop,l=a.SD||a.DS,s;c?(s={"DenseMatrix, DenseMatrix":(d,g)=>n(...Dt(d,g),c),"Array, Array":(d,g)=>n(...Dt(t(d),t(g)),c).valueOf(),"Array, DenseMatrix":(d,g)=>n(...Dt(t(d),g),c),"DenseMatrix, Array":(d,g)=>n(...Dt(d,t(g)),c)},a.SS&&(s["SparseMatrix, SparseMatrix"]=(d,g)=>a.SS(...Dt(d,g),c,!1)),a.DS&&(s["DenseMatrix, SparseMatrix"]=(d,g)=>a.DS(...Dt(d,g),c,!1),s["Array, SparseMatrix"]=(d,g)=>a.DS(...Dt(t(d),g),c,!1)),l&&(s["SparseMatrix, DenseMatrix"]=(d,g)=>l(...Dt(g,d),c,!0),s["SparseMatrix, Array"]=(d,g)=>l(...Dt(t(g),d),c,!0))):(s={"DenseMatrix, DenseMatrix":e.referToSelf(d=>(g,p)=>n(...Dt(g,p),d)),"Array, Array":e.referToSelf(d=>(g,p)=>n(...Dt(t(g),t(p)),d).valueOf()),"Array, DenseMatrix":e.referToSelf(d=>(g,p)=>n(...Dt(t(g),p),d)),"DenseMatrix, Array":e.referToSelf(d=>(g,p)=>n(...Dt(g,t(p)),d))},a.SS&&(s["SparseMatrix, SparseMatrix"]=e.referToSelf(d=>(g,p)=>a.SS(...Dt(g,p),d,!1))),a.DS&&(s["DenseMatrix, SparseMatrix"]=e.referToSelf(d=>(g,p)=>a.DS(...Dt(g,p),d,!1)),s["Array, SparseMatrix"]=e.referToSelf(d=>(g,p)=>a.DS(...Dt(t(g),p),d,!1))),l&&(s["SparseMatrix, DenseMatrix"]=e.referToSelf(d=>(g,p)=>l(...Dt(p,g),d,!0)),s["SparseMatrix, Array"]=e.referToSelf(d=>(g,p)=>l(...Dt(t(p),g),d,!0))));var u=a.scalar||"any",h=a.Ds||a.Ss;h&&(c?(s["DenseMatrix,"+u]=(d,g)=>i(d,g,c,!1),s[u+", DenseMatrix"]=(d,g)=>i(g,d,c,!0),s["Array,"+u]=(d,g)=>i(t(d),g,c,!1).valueOf(),s[u+", Array"]=(d,g)=>i(t(g),d,c,!0).valueOf()):(s["DenseMatrix,"+u]=e.referToSelf(d=>(g,p)=>i(g,p,d,!1)),s[u+", DenseMatrix"]=e.referToSelf(d=>(g,p)=>i(p,g,d,!0)),s["Array,"+u]=e.referToSelf(d=>(g,p)=>i(t(g),p,d,!1).valueOf()),s[u+", Array"]=e.referToSelf(d=>(g,p)=>i(t(p),g,d,!0).valueOf())));var f=a.sS!==void 0?a.sS:a.Ss;return c?(a.Ss&&(s["SparseMatrix,"+u]=(d,g)=>a.Ss(d,g,c,!1)),f&&(s[u+", SparseMatrix"]=(d,g)=>f(g,d,c,!0))):(a.Ss&&(s["SparseMatrix,"+u]=e.referToSelf(d=>(g,p)=>a.Ss(g,p,d,!1))),f&&(s[u+", SparseMatrix"]=e.referToSelf(d=>(g,p)=>f(p,g,d,!0)))),c&&c.signatures&&Kr(s,c.signatures),s}});var Wm="matAlgo01xDSid",qm=["typed"],Sl=N(Wm,qm,r=>{var{typed:e}=r;return function(n,i,o,a){var c=n._data,l=n._size,s=n._datatype||n.getDataType(),u=i._values,h=i._index,f=i._ptr,d=i._size,g=i._datatype||i._data===void 0?i._datatype:i.getDataType();if(l.length!==d.length)throw new Q(l.length,d.length);if(l[0]!==d[0]||l[1]!==d[1])throw new RangeError("Dimension mismatch. Matrix A ("+l+") must match Matrix B ("+d+")");if(!u)throw new Error("Cannot perform operation on Dense Matrix and Pattern Sparse Matrix");var p=l[0],m=l[1],v=typeof s=="string"&&s!=="mixed"&&s===g?s:void 0,b=v?e.find(o,[v,v]):o,y,S,x=[];for(y=0;y<p;y++)x[y]=[];var _=[],M=[];for(S=0;S<m;S++){for(var w=S+1,C=f[S],P=f[S+1],D=C;D<P;D++)y=h[D],_[y]=a?b(u[D],c[y][S]):b(c[y][S],u[D]),M[y]=w;for(y=0;y<p;y++)M[y]===w?x[y][S]=_[y]:x[y][S]=c[y][S]}return n.createDenseMatrix({data:x,size:[p,m],datatype:s===n._datatype&&g===i._datatype?v:void 0})}});var Xm="matAlgo04xSidSid",jm=["typed","equalScalar"],Ml=N(Xm,jm,r=>{var{typed:e,equalScalar:t}=r;return function(i,o,a){var c=i._values,l=i._index,s=i._ptr,u=i._size,h=i._datatype||i._data===void 0?i._datatype:i.getDataType(),f=o._values,d=o._index,g=o._ptr,p=o._size,m=o._datatype||o._data===void 0?o._datatype:o.getDataType();if(u.length!==p.length)throw new Q(u.length,p.length);if(u[0]!==p[0]||u[1]!==p[1])throw new RangeError("Dimension mismatch. Matrix A ("+u+") must match Matrix B ("+p+")");var v=u[0],b=u[1],y,S=t,x=0,_=a;typeof h=="string"&&h===m&&h!=="mixed"&&(y=h,S=e.find(t,[y,y]),x=e.convert(0,y),_=e.find(a,[y,y]));var M=c&&f?[]:void 0,w=[],C=[],P=c&&f?[]:void 0,D=c&&f?[]:void 0,R=[],W=[],G,k,L,q,Y;for(k=0;k<b;k++){C[k]=w.length;var j=k+1;for(q=s[k],Y=s[k+1],L=q;L<Y;L++)G=l[L],w.push(G),R[G]=j,P&&(P[G]=c[L]);for(q=g[k],Y=g[k+1],L=q;L<Y;L++)if(G=d[L],R[G]===j){if(P){var J=_(P[G],f[L]);S(J,x)?R[G]=null:P[G]=J}}else w.push(G),W[G]=j,D&&(D[G]=f[L]);if(P&&D)for(L=C[k];L<w.length;)G=w[L],R[G]===j?(M[L]=P[G],L++):W[G]===j?(M[L]=D[G],L++):w.splice(L,1)}return C[b]=w.length,i.createSparseMatrix({values:M,index:w,ptr:C,size:[v,b],datatype:h===i._datatype&&m===o._datatype?y:void 0})}});var Ym="matAlgo10xSids",$m=["typed","DenseMatrix"],wl=N(Ym,$m,r=>{var{typed:e,DenseMatrix:t}=r;return function(i,o,a,c){var l=i._values,s=i._index,u=i._ptr,h=i._size,f=i._datatype;if(!l)throw new Error("Cannot perform operation on Pattern Sparse Matrix and Scalar value");var d=h[0],g=h[1],p,m=a;typeof f=="string"&&(p=f,o=e.convert(o,p),m=e.find(a,[p,p]));for(var v=[],b=[],y=[],S=0;S<g;S++){for(var x=S+1,_=u[S],M=u[S+1],w=_;w<M;w++){var C=s[w];b[C]=l[w],y[C]=x}for(var P=0;P<d;P++)S===0&&(v[P]=[]),y[P]===x?v[P][S]=c?m(o,b[P]):m(b[P],o):v[P][S]=o}return new t({data:v,size:[d,g],datatype:p})}});var Tl="log2",Zm=["typed","config","Complex"],Uo=N(Tl,Zm,r=>{var{typed:e,config:t,Complex:n}=r;return e(Tl,{number:function(a){return a>=0||t.predictable?Eo(a):i(new n(a,0))},Complex:i,BigNumber:function(a){return!a.isNegative()||t.predictable?a.log(2):i(new n(a.toNumber(),0))},"Array | Matrix":e.referToSelf(o=>a=>_t(a,o))});function i(o){var a=Math.sqrt(o.re*o.re+o.im*o.im);return new n(Math.log2?Math.log2(a):Math.log(a)/Math.LN2,Math.atan2(o.im,o.re)/Math.LN2)}});var Km="multiplyScalar",Jm=["typed"],Bo=N(Km,Jm,r=>{var{typed:e}=r;return e("multiplyScalar",{"number, number":vo,"Complex, Complex":function(n,i){return n.mul(i)},"BigNumber, BigNumber":function(n,i){return n.times(i)},"bigint, bigint":function(n,i){return n*i},"Fraction, Fraction":function(n,i){return n.mul(i)},"number | Fraction | BigNumber | Complex, Unit":(t,n)=>n.multiply(t),"Unit, number | Fraction | BigNumber | Complex | Unit":(t,n)=>t.multiply(n)})});var Cl="multiply",Qm=["typed","matrix","addScalar","multiplyScalar","equalScalar","dot"],zo=N(Cl,Qm,r=>{var{typed:e,matrix:t,addScalar:n,multiplyScalar:i,equalScalar:o,dot:a}=r,c=De({typed:e,equalScalar:o}),l=Ie({typed:e});function s(x,_){switch(x.length){case 1:switch(_.length){case 1:if(x[0]!==_[0])throw new RangeError("Dimension mismatch in multiplication. Vectors must have the same length");break;case 2:if(x[0]!==_[0])throw new RangeError("Dimension mismatch in multiplication. Vector length ("+x[0]+") must match Matrix rows ("+_[0]+")");break;default:throw new Error("Can only multiply a 1 or 2 dimensional matrix (Matrix B has "+_.length+" dimensions)")}break;case 2:switch(_.length){case 1:if(x[1]!==_[0])throw new RangeError("Dimension mismatch in multiplication. Matrix columns ("+x[1]+") must match Vector length ("+_[0]+")");break;case 2:if(x[1]!==_[0])throw new RangeError("Dimension mismatch in multiplication. Matrix A columns ("+x[1]+") must match Matrix B rows ("+_[0]+")");break;default:throw new Error("Can only multiply a 1 or 2 dimensional matrix (Matrix B has "+_.length+" dimensions)")}break;default:throw new Error("Can only multiply a 1 or 2 dimensional matrix (Matrix A has "+x.length+" dimensions)")}}function u(x,_,M){if(M===0)throw new Error("Cannot multiply two empty vectors");return a(x,_)}function h(x,_){if(_.storage()!=="dense")throw new Error("Support for SparseMatrix not implemented");return f(x,_)}function f(x,_){var M=x._data,w=x._size,C=x._datatype||x.getDataType(),P=_._data,D=_._size,R=_._datatype||_.getDataType(),W=w[0],G=D[1],k,L=n,q=i;C&&R&&C===R&&typeof C=="string"&&C!=="mixed"&&(k=C,L=e.find(n,[k,k]),q=e.find(i,[k,k]));for(var Y=[],j=0;j<G;j++){for(var J=q(M[0],P[0][j]),lt=1;lt<W;lt++)J=L(J,q(M[lt],P[lt][j]));Y[j]=J}return x.createDenseMatrix({data:Y,size:[G],datatype:C===x._datatype&&R===_._datatype?k:void 0})}var d=e("_multiplyMatrixVector",{"DenseMatrix, any":p,"SparseMatrix, any":b}),g=e("_multiplyMatrixMatrix",{"DenseMatrix, DenseMatrix":m,"DenseMatrix, SparseMatrix":v,"SparseMatrix, DenseMatrix":y,"SparseMatrix, SparseMatrix":S});function p(x,_){var M=x._data,w=x._size,C=x._datatype||x.getDataType(),P=_._data,D=_._datatype||_.getDataType(),R=w[0],W=w[1],G,k=n,L=i;C&&D&&C===D&&typeof C=="string"&&C!=="mixed"&&(G=C,k=e.find(n,[G,G]),L=e.find(i,[G,G]));for(var q=[],Y=0;Y<R;Y++){for(var j=M[Y],J=L(j[0],P[0]),lt=1;lt<W;lt++)J=k(J,L(j[lt],P[lt]));q[Y]=J}return x.createDenseMatrix({data:q,size:[R],datatype:C===x._datatype&&D===_._datatype?G:void 0})}function m(x,_){var M=x._data,w=x._size,C=x._datatype||x.getDataType(),P=_._data,D=_._size,R=_._datatype||_.getDataType(),W=w[0],G=w[1],k=D[1],L,q=n,Y=i;C&&R&&C===R&&typeof C=="string"&&C!=="mixed"&&C!=="mixed"&&(L=C,q=e.find(n,[L,L]),Y=e.find(i,[L,L]));for(var j=[],J=0;J<W;J++){var lt=M[J];j[J]=[];for(var at=0;at<k;at++){for(var pt=Y(lt[0],P[0][at]),Tt=1;Tt<G;Tt++)pt=q(pt,Y(lt[Tt],P[Tt][at]));j[J][at]=pt}}return x.createDenseMatrix({data:j,size:[W,k],datatype:C===x._datatype&&R===_._datatype?L:void 0})}function v(x,_){var M=x._data,w=x._size,C=x._datatype||x.getDataType(),P=_._values,D=_._index,R=_._ptr,W=_._size,G=_._datatype||_._data===void 0?_._datatype:_.getDataType();if(!P)throw new Error("Cannot multiply Dense Matrix times Pattern only Matrix");var k=w[0],L=W[1],q,Y=n,j=i,J=o,lt=0;C&&G&&C===G&&typeof C=="string"&&C!=="mixed"&&(q=C,Y=e.find(n,[q,q]),j=e.find(i,[q,q]),J=e.find(o,[q,q]),lt=e.convert(0,q));for(var at=[],pt=[],Tt=[],wt=_.createSparseMatrix({values:at,index:pt,ptr:Tt,size:[k,L],datatype:C===x._datatype&&G===_._datatype?q:void 0}),St=0;St<L;St++){Tt[St]=pt.length;var xt=R[St],$t=R[St+1];if($t>xt)for(var Mt=0,gt=0;gt<k;gt++){for(var se=gt+1,Ot=void 0,ct=xt;ct<$t;ct++){var It=D[ct];Mt!==se?(Ot=j(M[gt][It],P[ct]),Mt=se):Ot=Y(Ot,j(M[gt][It],P[ct]))}Mt===se&&!J(Ot,lt)&&(pt.push(gt),at.push(Ot))}}return Tt[L]=pt.length,wt}function b(x,_){var M=x._values,w=x._index,C=x._ptr,P=x._datatype||x._data===void 0?x._datatype:x.getDataType();if(!M)throw new Error("Cannot multiply Pattern only Matrix times Dense Matrix");var D=_._data,R=_._datatype||_.getDataType(),W=x._size[0],G=_._size[0],k=[],L=[],q=[],Y,j=n,J=i,lt=o,at=0;P&&R&&P===R&&typeof P=="string"&&P!=="mixed"&&(Y=P,j=e.find(n,[Y,Y]),J=e.find(i,[Y,Y]),lt=e.find(o,[Y,Y]),at=e.convert(0,Y));var pt=[],Tt=[];q[0]=0;for(var wt=0;wt<G;wt++){var St=D[wt];if(!lt(St,at))for(var xt=C[wt],$t=C[wt+1],Mt=xt;Mt<$t;Mt++){var gt=w[Mt];Tt[gt]?pt[gt]=j(pt[gt],J(St,M[Mt])):(Tt[gt]=!0,L.push(gt),pt[gt]=J(St,M[Mt]))}}for(var se=L.length,Ot=0;Ot<se;Ot++){var ct=L[Ot];k[Ot]=pt[ct]}return q[1]=L.length,x.createSparseMatrix({values:k,index:L,ptr:q,size:[W,1],datatype:P===x._datatype&&R===_._datatype?Y:void 0})}function y(x,_){var M=x._values,w=x._index,C=x._ptr,P=x._datatype||x._data===void 0?x._datatype:x.getDataType();if(!M)throw new Error("Cannot multiply Pattern only Matrix times Dense Matrix");var D=_._data,R=_._datatype||_.getDataType(),W=x._size[0],G=_._size[0],k=_._size[1],L,q=n,Y=i,j=o,J=0;P&&R&&P===R&&typeof P=="string"&&P!=="mixed"&&(L=P,q=e.find(n,[L,L]),Y=e.find(i,[L,L]),j=e.find(o,[L,L]),J=e.convert(0,L));for(var lt=[],at=[],pt=[],Tt=x.createSparseMatrix({values:lt,index:at,ptr:pt,size:[W,k],datatype:P===x._datatype&&R===_._datatype?L:void 0}),wt=[],St=[],xt=0;xt<k;xt++){pt[xt]=at.length;for(var $t=xt+1,Mt=0;Mt<G;Mt++){var gt=D[Mt][xt];if(!j(gt,J))for(var se=C[Mt],Ot=C[Mt+1],ct=se;ct<Ot;ct++){var It=w[ct];St[It]!==$t?(St[It]=$t,at.push(It),wt[It]=Y(gt,M[ct])):wt[It]=q(wt[It],Y(gt,M[ct]))}}for(var zt=pt[xt],Ee=at.length,Ge=zt;Ge<Ee;Ge++){var Un=at[Ge];lt[Ge]=wt[Un]}}return pt[k]=at.length,Tt}function S(x,_){var M=x._values,w=x._index,C=x._ptr,P=x._datatype||x._data===void 0?x._datatype:x.getDataType(),D=_._values,R=_._index,W=_._ptr,G=_._datatype||_._data===void 0?_._datatype:_.getDataType(),k=x._size[0],L=_._size[1],q=M&&D,Y,j=n,J=i;P&&G&&P===G&&typeof P=="string"&&P!=="mixed"&&(Y=P,j=e.find(n,[Y,Y]),J=e.find(i,[Y,Y]));for(var lt=q?[]:void 0,at=[],pt=[],Tt=x.createSparseMatrix({values:lt,index:at,ptr:pt,size:[k,L],datatype:P===x._datatype&&G===_._datatype?Y:void 0}),wt=q?[]:void 0,St=[],xt,$t,Mt,gt,se,Ot,ct,It,zt=0;zt<L;zt++){pt[zt]=at.length;var Ee=zt+1;for(se=W[zt],Ot=W[zt+1],gt=se;gt<Ot;gt++)if(It=R[gt],q)for($t=C[It],Mt=C[It+1],xt=$t;xt<Mt;xt++)ct=w[xt],St[ct]!==Ee?(St[ct]=Ee,at.push(ct),wt[ct]=J(D[gt],M[xt])):wt[ct]=j(wt[ct],J(D[gt],M[xt]));else for($t=C[It],Mt=C[It+1],xt=$t;xt<Mt;xt++)ct=w[xt],St[ct]!==Ee&&(St[ct]=Ee,at.push(ct));if(q)for(var Ge=pt[zt],Un=at.length,cn=Ge;cn<Un;cn++){var ar=at[cn];lt[cn]=wt[ar]}}return pt[L]=at.length,Tt}return e(Cl,i,{"Array, Array":e.referTo("Matrix, Matrix",x=>(_,M)=>{s(st(_),st(M));var w=x(t(_),t(M));return ot(w)?w.valueOf():w}),"Matrix, Matrix":function(_,M){var w=_.size(),C=M.size();return s(w,C),w.length===1?C.length===1?u(_,M,w[0]):h(_,M):C.length===1?d(_,M):g(_,M)},"Matrix, Array":e.referTo("Matrix,Matrix",x=>(_,M)=>x(_,t(M))),"Array, Matrix":e.referToSelf(x=>(_,M)=>x(t(_,M.storage()),M)),"SparseMatrix, any":function(_,M){return c(_,M,i,!1)},"DenseMatrix, any":function(_,M){return l(_,M,i,!1)},"any, SparseMatrix":function(_,M){return c(M,_,i,!0)},"any, DenseMatrix":function(_,M){return l(M,_,i,!0)},"Array, any":function(_,M){return l(t(_),M,i,!1).valueOf()},"any, Array":function(_,M){return l(t(M),_,i,!0).valueOf()},"any, any":i,"any, any, ...any":e.referToSelf(x=>(_,M,w)=>{for(var C=x(_,M),P=0;P<w.length;P++)C=x(C,w[P]);return C})})});var ty="matAlgo07xSSf",ey=["typed","DenseMatrix"],Al=N(ty,ey,r=>{var{typed:e,DenseMatrix:t}=r;return function(o,a,c){var l=o._size,s=o._datatype||o._data===void 0?o._datatype:o.getDataType(),u=a._size,h=a._datatype||a._data===void 0?a._datatype:a.getDataType();if(l.length!==u.length)throw new Q(l.length,u.length);if(l[0]!==u[0]||l[1]!==u[1])throw new RangeError("Dimension mismatch. Matrix A ("+l+") must match Matrix B ("+u+")");var f=l[0],d=l[1],g,p=0,m=c;typeof s=="string"&&s===h&&s!=="mixed"&&(g=s,p=e.convert(0,g),m=e.find(c,[g,g]));var v,b,y=[];for(v=0;v<f;v++)y[v]=[];var S=[],x=[],_=[],M=[];for(b=0;b<d;b++){var w=b+1;for(n(o,b,_,S,w),n(a,b,M,x,w),v=0;v<f;v++){var C=_[v]===w?S[v]:p,P=M[v]===w?x[v]:p;y[v][b]=m(C,P)}}return new t({data:y,size:[f,d],datatype:s===o._datatype&&h===a._datatype?g:void 0})};function n(i,o,a,c,l){for(var s=i._values,u=i._index,h=i._ptr,f=h[o],d=h[o+1];f<d;f++){var g=u[f];a[g]=l,c[g]=s[f]}}});var Pl="conj",ny=["typed"],Go=N(Pl,ny,r=>{var{typed:e}=r;return e(Pl,{"number | BigNumber | Fraction":t=>t,Complex:t=>t.conjugate(),"Array | Matrix":e.referToSelf(t=>n=>_t(n,t))})});var Dl="concat",ry=["typed","matrix","isInteger"],ko=N(Dl,ry,r=>{var{typed:e,matrix:t,isInteger:n}=r;return e(Dl,{"...Array | Matrix | number | BigNumber":function(o){var a,c=o.length,l=-1,s,u=!1,h=[];for(a=0;a<c;a++){var f=o[a];if(ot(f)&&(u=!0),nt(f)||it(f)){if(a!==c-1)throw new Error("Dimension must be specified as last argument");if(s=l,l=f.valueOf(),!n(l))throw new TypeError("Integer number expected for dimension");if(l<0||a>0&&l>s)throw new _e(l,s+1)}else{var d=ft(f).valueOf(),g=st(d);if(h[a]=d,s=l,l=g.length-1,a>0&&l!==s)throw new Q(s+1,l+1)}}if(h.length===0)throw new SyntaxError("At least one matrix expected");for(var p=h.shift();h.length;)p=lo(p,h.shift(),l);return u?t(p):p},"...string":function(o){return o.join("")}})});var Il="identity",iy=["typed","config","matrix","BigNumber","DenseMatrix","SparseMatrix"],Vo=N(Il,iy,r=>{var{typed:e,config:t,matrix:n,BigNumber:i,DenseMatrix:o,SparseMatrix:a}=r;return e(Il,{"":function(){return t.matrix==="Matrix"?n([]):[]},string:function(u){return n(u)},"number | BigNumber":function(u){return l(u,u,t.matrix==="Matrix"?"dense":void 0)},"number | BigNumber, string":function(u,h){return l(u,u,h)},"number | BigNumber, number | BigNumber":function(u,h){return l(u,h,t.matrix==="Matrix"?"dense":void 0)},"number | BigNumber, number | BigNumber, string":function(u,h,f){return l(u,h,f)},Array:function(u){return c(u)},"Array, string":function(u,h){return c(u,h)},Matrix:function(u){return c(u.valueOf(),u.storage())},"Matrix, string":function(u,h){return c(u.valueOf(),h)}});function c(s,u){switch(s.length){case 0:return u?n(u):[];case 1:return l(s[0],s[0],u);case 2:return l(s[0],s[1],u);default:throw new Error("Vector containing two values expected")}}function l(s,u,h){var f=it(s)||it(u)?i:null;if(it(s)&&(s=s.toNumber()),it(u)&&(u=u.toNumber()),!tt(s)||s<1)throw new Error("Parameters in function identity must be positive integers");if(!tt(u)||u<1)throw new Error("Parameters in function identity must be positive integers");var d=f?new i(1):1,g=f?new f(0):0,p=[s,u];if(h){if(h==="sparse")return a.diagonal(p,d,0,g);if(h==="dense")return o.diagonal(p,d,0,g);throw new TypeError('Unknown matrix type "'.concat(h,'"'))}for(var m=un([],p,g),v=s<u?s:u,b=0;b<v;b++)m[b][b]=d;return m}});function Rl(){throw new Error('No "bignumber" implementation available')}function Nl(){throw new Error('No "fraction" implementation available')}function Ll(){throw new Error('No "matrix" implementation available')}var Ol="reshape",oy=["typed","isInteger","matrix"],Ho=N(Ol,oy,r=>{var{typed:e,isInteger:t}=r;return e(Ol,{"Matrix, Array":function(i,o){return i.reshape(o,!0)},"Array, Array":function(i,o){return o.forEach(function(a){if(!t(a))throw new TypeError("Invalid size for dimension: "+a)}),Qn(i,o)}})});var Fl="size",sy=["typed","config","?matrix"],Wo=N(Fl,sy,r=>{var{typed:e,config:t,matrix:n}=r;return e(Fl,{Matrix:function(o){return o.create(o.size(),"number")},Array:st,string:function(o){return t.matrix==="Array"?[o.length]:n([o.length],"dense","number")},"number | Complex | BigNumber | Unit | boolean | null":function(o){return t.matrix==="Array"?[]:n?n([],"dense","number"):Ll()}})});var Ul="zeros",ay=["typed","config","matrix","BigNumber"],qo=N(Ul,ay,r=>{var{typed:e,config:t,matrix:n,BigNumber:i}=r;return e(Ul,{"":function(){return t.matrix==="Array"?o([]):o([],"default")},"...number | BigNumber | string":function(s){var u=s[s.length-1];if(typeof u=="string"){var h=s.pop();return o(s,h)}else return t.matrix==="Array"?o(s):o(s,"default")},Array:o,Matrix:function(s){var u=s.storage();return o(s.valueOf(),u)},"Array | Matrix, string":function(s,u){return o(s.valueOf(),u)}});function o(l,s){var u=a(l),h=u?new i(0):0;if(c(l),s){var f=n(s);return l.length>0?f.resize(l,h):f}else{var d=[];return l.length>0?un(d,l,h):d}}function a(l){var s=!1;return l.forEach(function(u,h,f){it(u)&&(s=!0,f[h]=u.toNumber())}),s}function c(l){l.forEach(function(s){if(typeof s!="number"||!tt(s)||s<0)throw new Error("Parameters in function zeros must be positive integers")})}});var Bl="fft",uy=["typed","matrix","addScalar","multiplyScalar","divideScalar","exp","tau","i","dotDivide","conj","pow","ceil","log2"],Xo=N(Bl,uy,r=>{var{typed:e,matrix:t,addScalar:n,multiplyScalar:i,divideScalar:o,exp:a,tau:c,i:l,dotDivide:s,conj:u,pow:h,ceil:f,log2:d}=r;return e(Bl,{Array:g,Matrix:function(y){return y.create(g(y.valueOf()),y.datatype())}});function g(b){var y=st(b);return y.length===1?v(b,y[0]):p(b.map(S=>g(S,y.slice(1))),0)}function p(b,y){var S=st(b);if(y!==0)return new Array(S[0]).fill(0).map((_,M)=>p(b[M],y-1));if(S.length===1)return v(b);function x(_){var M=st(_);return new Array(M[1]).fill(0).map((w,C)=>new Array(M[0]).fill(0).map((P,D)=>_[D][C]))}return x(p(x(b),1))}function m(b){for(var y=b.length,S=a(o(i(-1,i(l,c)),y)),x=[],_=1-y;_<y;_++)x.push(h(S,o(h(_,2),2)));for(var M=h(2,f(d(y+y-1))),w=[...new Array(y).fill(0).map((L,q)=>i(b[q],x[y-1+q])),...new Array(M-y).fill(0)],C=[...new Array(y+y-1).fill(0).map((L,q)=>o(1,x[q])),...new Array(M-(y+y-1)).fill(0)],P=v(w),D=v(C),R=new Array(M).fill(0).map((L,q)=>i(P[q],D[q])),W=s(u(g(u(R))),M),G=[],k=y-1;k<y+y-1;k++)G.push(i(W[k],x[k]));return G}function v(b){var y=b.length;if(y===1)return[b[0]];if(y%2===0){for(var S=[...v(b.filter((w,C)=>C%2===0),y/2),...v(b.filter((w,C)=>C%2===1),y/2)],x=0;x<y/2;x++){var _=S[x],M=i(S[x+y/2],a(i(i(c,l),o(-x,y))));S[x]=n(_,M),S[x+y/2]=n(_,i(-1,M))}return S}else return m(b)}});function jo(r,e,t){var n;return String(r).includes("Unexpected type")?(n=arguments.length>2?" (type: "+Ut(t)+", value: "+JSON.stringify(t)+")":" (type: "+r.data.actual+")",new TypeError("Cannot calculate "+e+", unexpected type of argument"+n)):String(r).includes("complex numbers")?(n=arguments.length>2?" (type: "+Ut(t)+", value: "+JSON.stringify(t)+")":"",new TypeError("Cannot calculate "+e+", no ordering relation is defined for complex numbers"+n)):r}var ly="numeric",cy=["number","?bignumber","?fraction"],Yo=N(ly,cy,r=>{var{number:e,bignumber:t,fraction:n}=r,i={string:!0,number:!0,BigNumber:!0,Fraction:!0},o={number:a=>e(a),BigNumber:t?a=>t(a):Rl,bigint:a=>BigInt(a),Fraction:n?a=>n(a):Nl};return function(c){var l=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"number",s=arguments.length>2?arguments[2]:void 0;if(s!==void 0)throw new SyntaxError("numeric() takes one or two arguments");var u=Ut(c);if(!(u in i))throw new TypeError("Cannot convert "+c+' of type "'+u+'"; valid input types are '+Object.keys(i).join(", "));if(!(l in o))throw new TypeError("Cannot convert "+c+' to type "'+l+'"; valid output types are '+Object.keys(o).join(", "));return l===u?c:o[l](c)}});var zl="divideScalar",hy=["typed","numeric"],$o=N(zl,hy,r=>{var{typed:e,numeric:t}=r;return e(zl,{"number, number":function(i,o){return i/o},"Complex, Complex":function(i,o){return i.div(o)},"BigNumber, BigNumber":function(i,o){return i.div(o)},"bigint, bigint":function(i,o){return i/o},"Fraction, Fraction":function(i,o){return i.div(o)},"Unit, number | Complex | Fraction | BigNumber | Unit":(n,i)=>n.divide(i),"number | Fraction | Complex | BigNumber, Unit":(n,i)=>i.divideInto(n)})});var Gl="pow",py=["typed","config","identity","multiply","matrix","inv","fraction","number","Complex"],Zo=N(Gl,py,r=>{var{typed:e,config:t,identity:n,multiply:i,matrix:o,inv:a,number:c,fraction:l,Complex:s}=r;return e(Gl,{"number, number":u,"Complex, Complex":function(g,p){return g.pow(p)},"BigNumber, BigNumber":function(g,p){return p.isInteger()||g>=0||t.predictable?g.pow(p):new s(g.toNumber(),0).pow(p.toNumber(),0)},"bigint, bigint":(d,g)=>d**g,"Fraction, Fraction":function(g,p){var m=g.pow(p);if(m!=null)return m;if(t.predictable)throw new Error("Result of pow is non-rational and cannot be expressed as a fraction");return u(g.valueOf(),p.valueOf())},"Array, number":h,"Array, BigNumber":function(g,p){return h(g,p.toNumber())},"Matrix, number":f,"Matrix, BigNumber":function(g,p){return f(g,p.toNumber())},"Unit, number | BigNumber":function(g,p){return g.pow(p)}});function u(d,g){if(t.predictable&&!tt(g)&&d<0)try{var p=l(g),m=c(p);if((g===m||Math.abs((g-m)/g)<1e-14)&&p.d%2===1)return(p.n%2===0?1:-1)*Math.pow(-d,g)}catch{}return t.predictable&&(d<-1&&g===1/0||d>-1&&d<0&&g===-1/0)?NaN:tt(g)||d>=0||t.predictable?bo(d,g):d*d<1&&g===1/0||d*d>1&&g===-1/0?0:new s(d,0).pow(g,0)}function h(d,g){if(!tt(g))throw new TypeError("For A^b, b must be an integer (value is "+g+")");var p=st(d);if(p.length!==2)throw new Error("For A^b, A must be 2 dimensional (A has "+p.length+" dimensions)");if(p[0]!==p[1])throw new Error("For A^b, A must be square (size is "+p[0]+"x"+p[1]+")");if(g<0)try{return h(a(d),-g)}catch(b){throw b.message==="Cannot calculate inverse, determinant is zero"?new TypeError("For A^b, when A is not invertible, b must be a positive integer (value is "+g+")"):b}for(var m=n(p[0]).valueOf(),v=d;g>=1;)(g&1)===1&&(m=i(v,m)),g>>=1,v=i(v,v);return m}function f(d,g){return o(h(d.valueOf(),g))}});var Ln="Number of decimals in function round must be an integer",kl="round",fy=["typed","config","matrix","equalScalar","zeros","BigNumber","DenseMatrix"],Ko=N(kl,fy,r=>{var{typed:e,config:t,matrix:n,equalScalar:i,zeros:o,BigNumber:a,DenseMatrix:c}=r,l=De({typed:e,equalScalar:i}),s=Nn({typed:e,DenseMatrix:c}),u=Ie({typed:e});function h(f){return Math.abs(Cn(f).exponent)}return e(kl,{number:function(d){var g=Rn(d,h(t.relTol)),p=pe(d,g,t.relTol,t.absTol)?g:d;return Rn(p)},"number, number":function(d,g){var p=h(t.relTol);if(g>=p)return Rn(d,g);var m=Rn(d,p),v=pe(d,m,t.relTol,t.absTol)?m:d;return Rn(v,g)},"number, BigNumber":function(d,g){if(!g.isInteger())throw new TypeError(Ln);return new a(d).toDecimalPlaces(g.toNumber())},Complex:function(d){return d.round()},"Complex, number":function(d,g){if(g%1)throw new TypeError(Ln);return d.round(g)},"Complex, BigNumber":function(d,g){if(!g.isInteger())throw new TypeError(Ln);var p=g.toNumber();return d.round(p)},BigNumber:function(d){var g=new a(d).toDecimalPlaces(h(t.relTol)),p=Je(d,g,t.relTol,t.absTol)?g:d;return p.toDecimalPlaces(0)},"BigNumber, BigNumber":function(d,g){if(!g.isInteger())throw new TypeError(Ln);var p=h(t.relTol);if(g>=p)return d.toDecimalPlaces(g.toNumber());var m=d.toDecimalPlaces(p),v=Je(d,m,t.relTol,t.absTol)?m:d;return v.toDecimalPlaces(g.toNumber())},Fraction:function(d){return d.round()},"Fraction, number":function(d,g){if(g%1)throw new TypeError(Ln);return d.round(g)},"Fraction, BigNumber":function(d,g){if(!g.isInteger())throw new TypeError(Ln);return d.round(g.toNumber())},"Unit, number, Unit":e.referToSelf(f=>function(d,g,p){var m=d.toNumeric(p);return p.multiply(f(m,g))}),"Unit, BigNumber, Unit":e.referToSelf(f=>(d,g,p)=>f(d,g.toNumber(),p)),"Unit, Unit":e.referToSelf(f=>(d,g)=>f(d,0,g)),"Array | Matrix, number, Unit":e.referToSelf(f=>(d,g,p)=>_t(d,m=>f(m,g,p),!0)),"Array | Matrix, BigNumber, Unit":e.referToSelf(f=>(d,g,p)=>f(d,g.toNumber(),p)),"Array | Matrix, Unit":e.referToSelf(f=>(d,g)=>f(d,0,g)),"Array | Matrix":e.referToSelf(f=>d=>_t(d,f,!0)),"SparseMatrix, number | BigNumber":e.referToSelf(f=>(d,g)=>l(d,g,f,!1)),"DenseMatrix, number | BigNumber":e.referToSelf(f=>(d,g)=>u(d,g,f,!1)),"Array, number | BigNumber":e.referToSelf(f=>(d,g)=>u(n(d),g,f,!1).valueOf()),"number | Complex | BigNumber | Fraction, SparseMatrix":e.referToSelf(f=>(d,g)=>i(d,0)?o(g.size(),g.storage()):s(g,d,f,!0)),"number | Complex | BigNumber | Fraction, DenseMatrix":e.referToSelf(f=>(d,g)=>i(d,0)?o(g.size(),g.storage()):u(g,d,f,!0)),"number | Complex | BigNumber | Fraction, Array":e.referToSelf(f=>(d,g)=>u(n(g),d,f,!0).valueOf())})});var Vl="dotDivide",dy=["typed","matrix","equalScalar","divideScalar","DenseMatrix","concat"],Jo=N(Vl,dy,r=>{var{typed:e,matrix:t,equalScalar:n,divideScalar:i,DenseMatrix:o,concat:a}=r,c=xl({typed:e,equalScalar:n}),l=El({typed:e}),s=Al({typed:e,DenseMatrix:o}),u=De({typed:e,equalScalar:n}),h=Nn({typed:e,DenseMatrix:o}),f=di({typed:e,matrix:t,concat:a});return e(Vl,f({elop:i,SS:s,DS:l,SD:c,Ss:u,sS:h}))});function Hl(r){var e=0,t=1,n=Object.create(null),i=Object.create(null),o=0,a=function(l){var s=i[l];if(s&&(delete n[s],delete i[l],--e,t===s)){if(!e){o=0,t=1;return}for(;!Object.prototype.hasOwnProperty.call(n,++t););}};return r=Math.abs(r),{hit:function(l){var s=i[l],u=++o;if(n[u]=l,i[l]=u,!s)return++e,e<=r?void 0:(l=n[t],a(l),l);if(delete n[s],t===s)for(;!Object.prototype.hasOwnProperty.call(n,++t););},delete:a,clear:function(){e=o=0,t=1,n=Object.create(null),i=Object.create(null)}}}function rr(r){var{hasher:e,limit:t}=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return t=t??Number.POSITIVE_INFINITY,e=e??JSON.stringify,function n(){typeof n.cache!="object"&&(n.cache={values:new Map,lru:Hl(t||Number.POSITIVE_INFINITY)});for(var i=[],o=0;o<arguments.length;o++)i[o]=arguments[o];var a=e(i);if(n.cache.values.has(a))return n.cache.lru.hit(a),n.cache.values.get(a);var c=r.apply(r,i);return n.cache.values.set(a,c),n.cache.values.delete(n.cache.lru.hit(a)),c}}var gy=rr(function(r){return new r(1).exp()},{hasher:gi}),my=rr(function(r){return new r(1).plus(new r(5).sqrt()).div(2)},{hasher:gi}),Wl=rr(function(r){return r.acos(-1)},{hasher:gi}),ql=rr(function(r){return Wl(r).times(2)},{hasher:gi});function gi(r){return r[0].precision}var Xl="add",yy=["typed","matrix","addScalar","equalScalar","DenseMatrix","SparseMatrix","concat"],Qo=N(Xl,yy,r=>{var{typed:e,matrix:t,addScalar:n,equalScalar:i,DenseMatrix:o,SparseMatrix:a,concat:c}=r,l=Sl({typed:e}),s=Ml({typed:e,equalScalar:i}),u=wl({typed:e,DenseMatrix:o}),h=di({typed:e,matrix:t,concat:c});return e(Xl,{"any, any":n,"any, any, ...any":e.referToSelf(f=>(d,g,p)=>{for(var m=f(d,g),v=0;v<p.length;v++)m=f(m,p[v]);return m})},h({elop:n,DS:l,SS:s,Ss:u}))});var jl="dot",vy=["typed","addScalar","multiplyScalar","conj","size"],ts=N(jl,vy,r=>{var{typed:e,addScalar:t,multiplyScalar:n,conj:i,size:o}=r;return e(jl,{"Array | DenseMatrix, Array | DenseMatrix":c,"SparseMatrix, SparseMatrix":l});function a(u,h){var f=s(u),d=s(h),g,p;if(f.length===1)g=f[0];else if(f.length===2&&f[1]===1)g=f[0];else throw new RangeError("Expected a column vector, instead got a matrix of size ("+f.join(", ")+")");if(d.length===1)p=d[0];else if(d.length===2&&d[1]===1)p=d[0];else throw new RangeError("Expected a column vector, instead got a matrix of size ("+d.join(", ")+")");if(g!==p)throw new RangeError("Vectors must have equal length ("+g+" != "+p+")");if(g===0)throw new RangeError("Cannot calculate the dot product of empty vectors");return g}function c(u,h){var f=a(u,h),d=ot(u)?u._data:u,g=ot(u)?u._datatype||u.getDataType():void 0,p=ot(h)?h._data:h,m=ot(h)?h._datatype||h.getDataType():void 0,v=s(u).length===2,b=s(h).length===2,y=t,S=n;if(g&&m&&g===m&&typeof g=="string"&&g!=="mixed"){var x=g;y=e.find(t,[x,x]),S=e.find(n,[x,x])}if(!v&&!b){for(var _=S(i(d[0]),p[0]),M=1;M<f;M++)_=y(_,S(i(d[M]),p[M]));return _}if(!v&&b){for(var w=S(i(d[0]),p[0][0]),C=1;C<f;C++)w=y(w,S(i(d[C]),p[C][0]));return w}if(v&&!b){for(var P=S(i(d[0][0]),p[0]),D=1;D<f;D++)P=y(P,S(i(d[D][0]),p[D]));return P}if(v&&b){for(var R=S(i(d[0][0]),p[0][0]),W=1;W<f;W++)R=y(R,S(i(d[W][0]),p[W][0]));return R}}function l(u,h){a(u,h);for(var f=u._index,d=u._values,g=h._index,p=h._values,m=0,v=t,b=n,y=0,S=0;y<f.length&&S<g.length;){var x=f[y],_=g[S];if(x<_){y++;continue}if(x>_){S++;continue}x===_&&(m=v(m,b(d[y],p[S])),y++,S++)}return m}function s(u){return ot(u)?u.size():o(u)}});var Yl="det",_y=["typed","matrix","subtractScalar","multiply","divideScalar","isZero","unaryMinus"],es=N(Yl,_y,r=>{var{typed:e,matrix:t,subtractScalar:n,multiply:i,divideScalar:o,isZero:a,unaryMinus:c}=r;return e(Yl,{any:function(u){return ft(u)},"Array | Matrix":function(u){var h;switch(ot(u)?h=u.size():Array.isArray(u)?(u=t(u),h=u.size()):h=[],h.length){case 0:return ft(u);case 1:if(h[0]===1)return ft(u.valueOf()[0]);if(h[0]===0)return 1;throw new RangeError("Matrix must be square (size: "+vt(h)+")");case 2:{var f=h[0],d=h[1];if(f===d)return l(u.clone().valueOf(),f,d);if(d===0)return 1;throw new RangeError("Matrix must be square (size: "+vt(h)+")")}default:throw new RangeError("Matrix must be two dimensional (size: "+vt(h)+")")}}});function l(s,u,h){if(u===1)return ft(s[0][0]);if(u===2)return n(i(s[0][0],s[1][1]),i(s[1][0],s[0][1]));for(var f=!1,d=new Array(u).fill(0).map((M,w)=>w),g=0;g<u;g++){var p=d[g];if(a(s[p][g])){var m=void 0;for(m=g+1;m<u;m++)if(!a(s[d[m]][g])){p=d[m],d[m]=d[g],d[g]=p,f=!f;break}if(m===u)return s[p][g]}for(var v=s[p][g],b=g===0?1:s[d[g-1]][g-1],y=g+1;y<u;y++)for(var S=d[y],x=g+1;x<u;x++)s[S][x]=o(n(i(s[S][x],v),i(s[S][g],s[p][x])),b)}var _=s[d[u-1]][u-1];return f?c(_):_}});var $l="inv",xy=["typed","matrix","divideScalar","addScalar","multiply","unaryMinus","det","identity","abs"],ns=N($l,xy,r=>{var{typed:e,matrix:t,divideScalar:n,addScalar:i,multiply:o,unaryMinus:a,det:c,identity:l,abs:s}=r;return e($l,{"Array | Matrix":function(f){var d=ot(f)?f.size():st(f);switch(d.length){case 1:if(d[0]===1)return ot(f)?t([n(1,f.valueOf()[0])]):[n(1,f[0])];throw new RangeError("Matrix must be square (size: "+vt(d)+")");case 2:{var g=d[0],p=d[1];if(g===p)return ot(f)?t(u(f.valueOf(),g,p),f.storage()):u(f,g,p);throw new RangeError("Matrix must be square (size: "+vt(d)+")")}default:throw new RangeError("Matrix must be two dimensional (size: "+vt(d)+")")}},any:function(f){return n(1,f)}});function u(h,f,d){var g,p,m,v,b;if(f===1){if(v=h[0][0],v===0)throw Error("Cannot calculate inverse, determinant is zero");return[[n(1,v)]]}else if(f===2){var y=c(h);if(y===0)throw Error("Cannot calculate inverse, determinant is zero");return[[n(h[1][1],y),n(a(h[0][1]),y)],[n(a(h[1][0]),y),n(h[0][0],y)]]}else{var S=h.concat();for(g=0;g<f;g++)S[g]=S[g].concat();for(var x=l(f).valueOf(),_=0;_<d;_++){var M=s(S[_][_]),w=_;for(g=_+1;g<f;)s(S[g][_])>M&&(M=s(S[g][_]),w=g),g++;if(M===0)throw Error("Cannot calculate inverse, determinant is zero");g=w,g!==_&&(b=S[_],S[_]=S[g],S[g]=b,b=x[_],x[_]=x[g],x[g]=b);var C=S[_],P=x[_];for(g=0;g<f;g++){var D=S[g],R=x[g];if(g!==_){if(D[_]!==0){for(m=n(a(D[_]),C[_]),p=_;p<d;p++)D[p]=i(D[p],o(m,C[p]));for(p=0;p<d;p++)R[p]=i(R[p],o(m,P[p]))}}else{for(m=C[_],p=_;p<d;p++)D[p]=n(D[p],m);for(p=0;p<d;p++)R[p]=n(R[p],m)}}}return x}}});var Ey="divide",by=["typed","matrix","multiply","equalScalar","divideScalar","inv"],rs=N(Ey,by,r=>{var{typed:e,matrix:t,multiply:n,equalScalar:i,divideScalar:o,inv:a}=r,c=De({typed:e,equalScalar:i}),l=Ie({typed:e});return e("divide",Kr({"Array | Matrix, Array | Matrix":function(u,h){return n(u,a(h))},"DenseMatrix, any":function(u,h){return l(u,h,o,!1)},"SparseMatrix, any":function(u,h){return c(u,h,o,!1)},"Array, any":function(u,h){return l(t(u),h,o,!1).valueOf()},"any, Array | Matrix":function(u,h){return n(u,a(h))}},o.signatures))});var Zl="mean",Sy=["typed","add","divide"],is=N(Zl,Sy,r=>{var{typed:e,add:t,divide:n}=r;return e(Zl,{"Array | Matrix":o,"Array | Matrix, number | BigNumber":i,"...":function(c){if(al(c))throw new TypeError("Scalar values expected in function mean");return o(c)}});function i(a,c){try{var l=ul(a,c,t),s=Array.isArray(a)?st(a):a.size();return n(l,s[c])}catch(u){throw jo(u,"mean")}}function o(a){var c,l=0;if(po(a,function(s){try{c=c===void 0?s:t(c,s),l++}catch(u){throw jo(u,"mean",s)}}),l===0)throw new Error("Cannot calculate the mean of an empty array");return n(c,l)}});var os=Kl("tau",["config","?BigNumber"],r=>{var{config:e,BigNumber:t}=r;return e.number==="BigNumber"?ql(t):cl});var ss=Kl("i",["Complex"],r=>{var{Complex:e}=r;return e.I});function Kl(r,e,t){return N(r,e,t,{recreateOnConfigChange:!0})}var On=to({config:he}),mi=no({});var Jl=io({}),zy=ss({Complex:mi});var as=oo({});var Gy=os({BigNumber:On,config:he});var ln=ho({Matrix:as});var rt=ji({BigNumber:On,Complex:mi,DenseMatrix:ln,Fraction:Jl});var ky=Io({typed:rt});var ir=Ro({typed:rt});var Ql=Go({typed:rt});var Qe=Mo({config:he,typed:rt});var Vy=Fo({typed:rt});var tc=fo({typed:rt});var Hy=So({equalScalar:Qe,typed:rt});var Wy=Uo({Complex:mi,config:he,typed:rt});var us=Bo({typed:rt});var ec=To({typed:rt});var ls=wo({Matrix:as,equalScalar:Qe,typed:rt});var qy=No({typed:rt});var Xy=Co({BigNumber:On,typed:rt});var nc=Do({typed:rt});var rc=Ao({Fraction:Jl,typed:rt});var Yt=Po({DenseMatrix:ln,Matrix:as,SparseMatrix:ls,typed:rt});var jy=Yo({bignumber:Xy,fraction:rc,number:ec});var ic=Ho({isInteger:tc,matrix:Yt,typed:rt}),Yy=Wo({matrix:Yt,config:he,typed:rt});var oc=qo({BigNumber:On,config:he,matrix:Yt,typed:rt});var sc=ko({isInteger:tc,matrix:Yt,typed:rt});var or=$o({numeric:jy,typed:rt}),$y=Jo({DenseMatrix:ln,concat:sc,divideScalar:or,equalScalar:Qe,matrix:Yt,typed:rt});var ac=Vo({BigNumber:On,DenseMatrix:ln,SparseMatrix:ls,config:he,matrix:Yt,typed:rt});var Zy=Ko({BigNumber:On,DenseMatrix:ln,config:he,equalScalar:Qe,matrix:Yt,typed:rt,zeros:oc});var Ky=Qo({DenseMatrix:ln,SparseMatrix:ls,addScalar:ir,concat:sc,equalScalar:Qe,matrix:Yt,typed:rt});var Jy=ts({addScalar:ir,conj:Ql,multiplyScalar:us,size:Yy,typed:rt});var Fn=zo({addScalar:ir,dot:Jy,equalScalar:Qe,matrix:Yt,multiplyScalar:us,typed:rt});var Qy=Oo({DenseMatrix:ln,config:he,equalScalar:Qe,matrix:Yt,round:Zy,typed:rt,zeros:oc});var tv=es({divideScalar:or,isZero:Hy,matrix:Yt,multiply:Fn,subtractScalar:qy,typed:rt,unaryMinus:nc});var uc=ns({abs:ky,addScalar:ir,det:tv,divideScalar:or,identity:ac,matrix:Yt,multiply:Fn,typed:rt,unaryMinus:nc});var ev=Zo({Complex:mi,config:he,fraction:rc,identity:ac,inv:uc,matrix:Yt,multiply:Fn,number:ec,typed:rt});var lc=Xo({addScalar:ir,ceil:Qy,conj:Ql,divideScalar:or,dotDivide:$y,exp:Vy,i:zy,log2:Wy,matrix:Yt,multiplyScalar:us,pow:ev,tau:Gy,typed:rt});var nv=rs({divideScalar:or,equalScalar:Qe,inv:uc,matrix:Yt,multiply:Fn,typed:rt});var cc=is({add:Ky,divide:nv,typed:rt});var yi=class{NumParticle;reSampNumParticle;initial_xy_uncertainty;initial_yaw_uncertainty;step_noise_sigma;yaw_noise_sigma;compass_update_interval;sigmaCompass;delta_yaw;sigmaBeacon;unaccess_weight;particle_PosInitFlag;particle_yawInitFlag;xEst;particleX;particleWeight;last_compass_time;last_yaw_compass=0;compass_consecutive_offset_count=0;constructor(e){this.NumParticle=e.NumParticle,this.reSampNumParticle=e.reSampNumParticle,this.initial_xy_uncertainty=e.initial_xy_uncertainty,this.initial_yaw_uncertainty=e.initial_yaw_uncertainty,this.step_noise_sigma=e.step_noise_sigma,this.yaw_noise_sigma=e.yaw_noise_sigma,this.compass_update_interval=e.compass_update_interval,this.sigmaCompass=e.sigmaCompass,this.delta_yaw=e.delta_yaw,this.sigmaBeacon=e.sigmaBeacon,this.unaccess_weight=e.unaccess_weight,this.particle_PosInitFlag=!1,this.particle_yawInitFlag=!1,this.xEst=[[0],[0],[0]],this.particleX=Array.from({length:3},()=>Array(this.NumParticle).fill(0)),this.particleWeight=Array.from({length:1},()=>Array(this.NumParticle).fill(1/this.NumParticle)),this.last_compass_time=0}motionModelRotYaw(e){if(!(Math.abs(e)<.001)){this.last_yaw_compass=jn(this.last_yaw_compass+e);for(let t=0;t<this.NumParticle;t++){let n=Math.random()*this.yaw_noise_sigma;this.particleX[2][t]=this.particleX[2][t]+e+n,this.particleX[2][t]=jn(this.particleX[2][t])}}}motionModelStepLength(e,t){if(e===0)return;for(let i=0;i<this.NumParticle;i++){let o=Math.random()*this.step_noise_sigma;this.particleX[0][i]+=(.65+o)*Math.sin(-this.particleX[2][i]/180*Math.PI),this.particleX[1][i]+=(.65+o)*Math.cos(this.particleX[2][i]/180*Math.PI),t(this.particleX[0][i],this.particleX[1][i])||(this.particleWeight[0][i]*=this.unaccess_weight)}let n=this.particleWeight[0].reduce((i,o)=>i+o,0);this.particleWeight[0]=this.particleWeight[0].map(i=>i/n)}motionModelCompassYaw(e,t){if(t-this.last_compass_time>this.compass_update_interval){let n=360-e;n+=this.delta_yaw,n=jn(n),Math.abs(n-this.last_yaw_compass)>60?this.compass_consecutive_offset_count++:this.compass_consecutive_offset_count=0;for(let o=0;o<this.NumParticle;o++){let a=Math.abs(this.particleX[2][o]-n);a>180&&(a=360-a),this.particleWeight[0][o]*=Yr(a,this.sigmaCompass)}let i=this.particleWeight[0].reduce((o,a)=>o+a,0);this.particleWeight[0]=this.particleWeight[0].map(o=>o/i),this.setLastCompassTime(t)}}resampling(){if(1/this.particleWeight[0].reduce((t,n)=>t+n*n,0)<this.reSampNumParticle){let t=this.particleWeight[0].reduce((c,l,s)=>c.concat(c[s]+l),[0]),i=this.particleWeight[0].map(()=>1/this.NumParticle).map((c,l)=>c+Math.random()/this.NumParticle),o=[],a=0;for(let c=0;c<this.NumParticle;c++){for(;i[c]>t[a];)a++;o.push(a)}this.particleX=this.particleX.map((c,l)=>o.map(s=>c[s])),this.particleWeight[0]=Array(this.NumParticle).fill(1/this.NumParticle)}}update(e,t){for(let i=0;i<this.NumParticle;i++){let o=En(this.particleX[0][i],this.particleX[1][i],e.x,e.y);this.particleWeight[0][i]=Math.max(1e-7,this.particleWeight[0][i]*Yr(o,t))}let n=this.particleWeight[0].reduce((i,o)=>i+o,0);this.particleWeight[0]=this.particleWeight[0].map(i=>i/n)}updateCar(e,t){let n=e.x-this.xEst[0][0],i=e.y-this.xEst[1][0];for(let a=0;a<this.NumParticle;a++){let c=En(this.particleX[0][a],this.particleX[1][a],e.x,e.y);this.particleWeight[0][a]=Math.max(1e-7,this.particleWeight[0][a]*Yr(c,t)),this.particleX[0][a]+=n,this.particleX[1][a]+=i}let o=this.particleWeight[0].reduce((a,c)=>a+c,0);this.particleWeight[0]=this.particleWeight[0].map(a=>a/o)}getPosInitFlag(){return this.particle_PosInitFlag}getYawInitFlag(){return this.particle_yawInitFlag}setPosInitFlag(e){this.particle_PosInitFlag=e}setYawInitFlag(e){this.particle_yawInitFlag=e}getResultX(){let e=ic(this.particleWeight,[this.NumParticle,1]),t=Fn(this.particleX,e);return this.xEst=t,this.xEst[0][0]}getResultY(){return this.xEst[1][0]}getResultYaw(){let e=this.particleWeight[0].indexOf(Math.max(...this.particleWeight[0]));return this.particleX[2][e]}getEstConfidence(){let e=this.particleWeight[0].indexOf(Math.max(...this.particleWeight[0])),t=this.particleWeight[0].indexOf(Math.min(...this.particleWeight[0])),n=[this.particleX[0][e],this.particleX[1][e]],i=[this.particleX[0][t],this.particleX[1][t]],o=En(n[0],n[1],i[0],i[1]),a=o*.67;return console.log(o,a),a}getParticleNum(){return this.NumParticle}getParticleX(){return this.particleX}setLastCompassTime(e){this.last_compass_time=e}getLastCompassTime(){return this.last_compass_time}initParticlesByPos(e,t,n){if(!this.particle_PosInitFlag){this.particleWeight[0]=Array(this.NumParticle).fill(1/this.NumParticle);let i=0;for(;i<this.NumParticle;){let a=(2*Math.random()-1)*this.initial_xy_uncertainty,c=(2*Math.random()-1)*this.initial_xy_uncertainty;n(e+a,t+c)||(this.particleWeight[0][i]*=this.unaccess_weight),this.particleX[0][i]=e+a,this.particleX[1][i]=t+c,i++}let o=this.particleWeight[0].reduce((a,c)=>a+c,0);this.particleWeight[0]=this.particleWeight[0].map(a=>a/o),this.particle_PosInitFlag=!0,this.xEst[0][0]=e,this.xEst[1][0]=t,this.xEst[2][0]=0}}initParticlesByCompass(e){console.log(`Init compass: ${e}`);let t=360-e;t+=this.delta_yaw,t=jn(t),console.log(`Init Yaw: ${t}`);for(let n=0;n<this.NumParticle;n++){let i=(2*Math.random()-1)*this.initial_yaw_uncertainty;this.particleX[2][n]=t+i}this.particle_yawInitFlag=!0,this.xEst[2][0]=t,this.last_yaw_compass=t,this.compass_consecutive_offset_count=0}};var vi=class{fre=100;accH_fifo=[];accH_time_fifo=[];accH_fifo_len=Math.floor(1*this.fre)+1;step_count=0;state_count=0;last_valley_time=0;last_peak_time=0;last_step_time=0;min_step_time=.3;max_step_time=1;min_peak=10.5;max_valley=9.5;peak_num=0;valley_num=0;fft_min_amp=.3;fft_min_fre=0;fft_max_fre=4;last_fft_amp=0;abnor_start_time=0;abnor_fft_detected=!1;abnor_time_threshold=4;abnor_peak_time=0;abnor_peak_accH=0;const_step_length=.65;last_rot=[];delta_rot=[];last_yaw=0;delta_yaw=null;delta_rot_sum_fifo=[];delta_rot_sum_time_fifo=[];delta_yaw_accum=0;delta_yaw_accum_timestamp=0;delta_yaw_time_threshold=.5;last_px=0;last_py=0;delta_px=0;delta_py=0;init(){this.fre=100,this.accH_fifo=[],this.accH_time_fifo=[],this.accH_fifo_len=Math.floor(1*this.fre)+1,this.step_count=0,this.state_count=0,this.last_valley_time=0,this.last_peak_time=0,this.last_step_time=0,this.min_step_time=.3,this.max_step_time=1,this.min_peak=10+.5,this.max_valley=10-.5,this.peak_num=0,this.valley_num=0,this.fft_min_amp=.3,this.fft_min_fre=0,this.fft_max_fre=4,this.last_fft_amp=0,this.abnor_start_time=0,this.abnor_fft_detected=!1,this.abnor_peak_time=0,this.abnor_peak_accH=0,this.const_step_length=.65,this.last_rot=[0,0,0],this.delta_rot=[0,0,0],this.last_yaw=0,this.delta_yaw=null,this.delta_rot_sum_fifo=[],this.delta_rot_sum_time_fifo=[],this.delta_yaw_accum=0,this.delta_yaw_accum_timestamp=0,this.delta_yaw_time_threshold=.5,this.last_px=0,this.last_py=0,this.delta_px=0,this.delta_py=0}reset(){this.init()}setInitPose(e=[0,0]){this.last_px=e[0],this.last_py=e[1],console.info(`pdr init pos: ${this.last_px}, ${this.last_py}`)}setInitYaw(e=0){this.last_yaw=e}getPos(e,t,n){let i=0;return n.length===3&&(this.delta_yaw=this.getDeltaYawFromRot(e,n)),t.length===3&&(i=this.getStepLength(e,t)),i!==0&&(this.last_px+=this.delta_px,this.last_py+=this.delta_py),[this.last_px,this.last_py]}getDeltaPose(){return[this.delta_px,this.delta_py]}getStepLength(e,t){if(t.length<3)return console.warn("acc data less than 3"),0;let n=!1,i=Math.sqrt(Math.pow(t[0],2)+Math.pow(t[1],2)+Math.pow(t[2],2));if(this.accH_fifo.push(i),this.accH_time_fifo.push(e),this.imuFreUpdate(),this.accH_fifo.length<this.accH_fifo_len+1)n=!1;else{for(;this.accH_fifo.length>=this.accH_fifo_len+1;)this.accH_fifo.shift(),this.accH_time_fifo.shift();let o=this.PVStepDetec(),a=this.FFTStepDetec(),c=this.recheckState(),l=this.accH_time_fifo[Math.floor(this.accH_time_fifo.length*3/4)];Math.abs(this.abnor_start_time)<.001&&this.abnor_fft_detected?this.abnor_start_time=l:this.abnor_fft_detected||(this.abnor_start_time=0),o&&a&&c?(this.step_count+=1,this.last_step_time=l,n=!0):Math.abs(this.abnor_start_time)>.001&&this.abnor_peak_time-this.abnor_start_time>this.abnor_time_threshold&&this.step_count>1&&this.abnor_peak_time-this.last_step_time>1?(this.step_count+=1,this.last_step_time=l,n=!0):(l-this.last_step_time>2&&(this.state_count=0),n=!1)}if(n){let o=this.last_yaw/180*Math.PI;return this.delta_px=this.const_step_length*Math.cos(o),this.delta_py=this.const_step_length*Math.sin(o),this.const_step_length}else return 0}imuFreUpdate(){if(this.accH_time_fifo.length>2&&(this.accH_time_fifo[this.accH_time_fifo.length-1]-this.accH_time_fifo[this.accH_time_fifo.length-2]<0||this.accH_time_fifo[this.accH_time_fifo.length-1]-this.accH_time_fifo[this.accH_time_fifo.length-2]>10||this.accH_time_fifo[this.accH_time_fifo.length-1]===this.accH_time_fifo[0])&&(console.warn(`pdr reset last one time ${this.accH_time_fifo[this.accH_time_fifo.length-1]} last two time ${this.accH_time_fifo[this.accH_time_fifo.length-2]}`),this.reset()),this.accH_fifo.length>9||this.fre<15){let e=(this.accH_fifo.length-1)/(this.accH_time_fifo[this.accH_time_fifo.length-1]-this.accH_time_fifo[0]);Math.abs(this.fre-e)>8&&(this.fre=Math.round((e-3)/10)*10,(this.fre<=10||this.fre>=100)&&(console.warn(`Frequency Error ${this.fre}`),this.fre=100),console.debug(`Frequency change to ${this.fre}`),this.accH_fifo_len=Math.floor(1*this.fre)+1)}}recheckState(){return!0}PVStepDetec(){let e=!1,t=this.accH_fifo.slice(Math.floor(this.accH_fifo_len/2)),n=this.accH_time_fifo.slice(Math.floor(this.accH_fifo_len/2)),i=t[Math.floor(t.length/2)],o=n[Math.floor(n.length/2)],a=Math.max(...t),c=Math.min(...t),l=!1,s=!1;return Math.abs(i-c)<.01&&i<this.max_valley&&this.valley_num<=this.peak_num&&(this.last_valley_time===0?s=!0:s=o-this.last_valley_time>this.min_step_time,s&&(this.last_valley_time=o,this.valley_num+=1)),Math.abs(i-a)<.01&&i>this.min_peak&&this.peak_num<=this.valley_num&&(this.last_peak_time===0?l=!0:l=o-this.last_peak_time>this.min_step_time,l&&(this.last_peak_time=o,this.peak_num+=1)),i===a&&i>this.min_peak&&(this.abnor_peak_time=o,this.abnor_peak_accH=i),this.peak_num===this.valley_num&&(l||s)&&(e=!0),e}FFTStepDetec(){return!0}getDeltaYawFromRot(e,t){if(t.length<3)return console.warn("rot data less than 3"),0;let n=[0,0,0];this.last_rot.length===3&&(n=t.map((c,l)=>c-this.last_rot[l]));for(let c=0;c<t.length;c++)n[c]<-180?n[c]+=360:n[c]>180&&(n[c]-=360);let i=.2;this.delta_rot.length===3?this.delta_rot=this.delta_rot.map((c,l)=>i*c+(1-i)*n[l]):this.delta_rot=n,this.last_rot=t,this.delta_yaw=this.delta_rot[0],this.last_yaw+=this.delta_yaw,this.last_yaw=this.limitYaw(this.last_yaw);let o=this.delta_rot.reduce((c,l)=>c+Math.abs(l),0);this.delta_rot_sum_fifo.push(o),this.delta_rot_sum_time_fifo.push(e),Math.abs(this.delta_rot_sum_time_fifo[this.delta_rot_sum_time_fifo.length-1]-this.delta_rot_sum_time_fifo[0])>1&&(this.delta_rot_sum_fifo.shift(),this.delta_rot_sum_time_fifo.shift()),this.delta_yaw_accum+=this.delta_yaw;let a=0;return Math.abs(this.delta_yaw_accum_timestamp-e)>this.delta_yaw_time_threshold?(a=this.delta_yaw_accum,this.delta_yaw_accum=0,this.delta_yaw_accum_timestamp=e,a):null}limitYaw(e){for(;e<-180;)e+=360;for(;e>180;)e-=360;return e}};var _i=class{particleFilter;pdr;sigmaBeacon=5;gps_horizontalAccuracy=10;using_gps=!0;last_beacon_time=null;last_pos_time;position_count=0;gps_max_horizontalAccuracy=20;MaxEstimateErr=5;outTrustRegionNum=0;TrustNum=4;cacheSensorData=[];constructor(){this.particleFilter=new yi({NumParticle:200,reSampNumParticle:.65,initial_xy_uncertainty:12,initial_yaw_uncertainty:100,step_noise_sigma:.5,yaw_noise_sigma:2,compass_update_interval:3e3,sigmaCompass:80,delta_yaw:2,sigmaBeacon:5,unaccess_weight:.7}),this.pdr=new vi}pfFusionPDRiBeacon(e){let{type:t,timestamp:n,res:i}=e,o=!1;if(this.particleFilter.getPosInitFlag()&&this.particleFilter.getYawInitFlag()){if(t==="acceleration"){let a=i,c=this.pdr.getStepLength(n/1e3,a);c!==0&&(this.particleFilter.motionModelStepLength(c,()=>!0),this.particleFilter.resampling(),this.position_count+=1,o=!0)}if(this.using_gps&&t==="gps"&&(this.last_beacon_time===null||n-this.last_beacon_time>5e3)){let a=this.getGpsPosition(i);o=a!==null,a&&(this.particleFilter.update(a,this.gps_horizontalAccuracy),this.resetParticleFilterDist(a),this.particleFilter.resampling(),this.position_count+=1)}if(t==="deviceMotion"){let a=this.pdr.getDeltaYawFromRot(n/1e3,i);a!==null&&this.particleFilter.motionModelRotYaw(a)}t==="compass"&&this.particleFilter.motionModelCompassYaw(i,n),this.last_pos_time&&n-this.last_pos_time>500&&(this.position_count+=1,o=!0)}else if(!this.particleFilter.getPosInitFlag()&&this.using_gps&&t==="gps"){let a=this.getGpsPosition(i);o=a!==null,a?(this.particleFilter.initParticlesByPos(a.x,a.y,()=>!0),this.last_pos_time=n,console.log(`init Pos by gps success time ${n}`),this.cacheSensorData.length=0):console.log(`init Pos by gps fail time ${n}`)}else if(!this.particleFilter.getYawInitFlag()&&t==="compass"){let a=i;this.particleFilter.initParticlesByCompass(a),this.particleFilter.setLastCompassTime(n),console.log(`init yaw by compass success time ${n}`)}else this.cacheSensorData.push(e);return o&&(this.last_pos_time=n),[o,this.particleFilter.getResultX(),this.particleFilter.getResultY()]}setBeaconPosition(e,t){return this.last_beacon_time=t,this.particleFilter.getPosInitFlag()?this.particleFilter.update(e,this.sigmaBeacon):this.particleFilter.initParticlesByPos(e.x,e.y,()=>!0),this.resetParticleFilterDist(e),this.particleFilter.resampling(),this.position_count+=1,this.cacheSensorData.filter(i=>i.timestamp>t).map(i=>this.pfFusionPDRiBeacon(i)),this.cacheSensorData.length=0,[this.particleFilter.getResultX(),this.particleFilter.getResultY()]}getGpsPosition(e){return e[2]>this.gps_max_horizontalAccuracy?null:Ba(e[0],e[1])}resetParticleFilterDist(e){let t=this.particleFilter.getResultX(),n=this.particleFilter.getResultY();En(t,n,e.x,e.y)>this.MaxEstimateErr?(this.outTrustRegionNum+=1,this.outTrustRegionNum>=this.TrustNum&&(console.info(`\u8D85\u51FA\u53EF\u4FE1\u533A\u57DF\uFF0C\u91CD\u7F6E\u7C92\u5B50\u8FC7\u6EE4\u5668\u5230: ${e.x}, ${e.y}`),this.particleFilter.setPosInitFlag(!1),this.particleFilter.setYawInitFlag(!1),this.outTrustRegionNum=0)):this.outTrustRegionNum=0}};var hc=class extends iv{sensor;pdr;constructor(e={}){super(),this.sensor=new jr(e.sensor),this.pdr=new _i}checkSensor(){return this.sensor.checkSensor()}start(){this.sensor.start(),this.sensor.addEventListener("add-data-item",({item:e})=>{this.getPositionBySensorItem(e)})}getPositionBySensorItem(e){let[t,n,i]=this.pdr.pfFusionPDRiBeacon(e);return t&&this.dispatchEvent({type:"position",x:n,y:i,_type:e.type==="gps"?"gps":"pdr"}),[t,n,i]}setBeaconPosition(e,t){let[n,i]=this.pdr.setBeaconPosition(e,t);this.dispatchEvent({type:"position",x:n,y:i,_type:"beacon"})}dispose(){this.sensor.stop()}};async function pc({brand:r,project:e},t){let{apiDomain:n,apiPath:{floorRange:i},apiInfo:o}=t,a=`${n}${i}?brand=${r}&project=${e}&phase=${e}&building=${e}`;return await fetch(a,o).then(l=>l.json()).then(l=>l.data).then(l=>{let s=(l||[])[0];return s&&(s.info=JSON.parse(s.info)),s})}async function fc({brand:r,project:e,floor:t,ts:n,resource_type_list:i},o){let{apiDomain:a,apiPath:{floorGraphic:c},apiInfo:l}=o,s=`${a}${c}?brand=${r}&project=${e}&phase=${e}&building=${e}&floor=${t}&ts=${n}&resource_type_list=${i}`;return await fetch(s,l).then(h=>h.json()).then(h=>h.data).then(h=>((h||[]).map(f=>f.info=JSON.parse(f.info)),h||[]))}async function b2({project:r,floor:e},t){let{apiDomain:n,apiInfo:i}=t,o=`${n}/api/inception-map/external_street/get?projectCode=${r}&floorCode=${e}`;return await fetch(o,i).then(c=>c.json()).then(c=>c.data).then(c=>JSON.parse(c[0].streetInfo||"{}")).then(c=>c.fileId?ov(c.fileId,t):null)}async function ov(r,e){let{apiDomain:t,apiInfo:n}=e;return fetch(`${t}/api/inception-map/file/getFileStream?fileId=${r}`,n).then(i=>i.arrayBuffer()).then(i=>{let a=new TextDecoder("utf-8").decode(i);return a?JSON.parse(a):null})}var xe;function dc(r="aibee_map"){return new Promise((e,t)=>{if(xe)return e({db:xe,type:"success"});let n=indexedDB.open(r);n.onupgradeneeded=function(i){xe=i.target.result,console.log("onupgradeneeded"),e({db:xe,type:"onupgradeneeded"})},n.onsuccess=i=>{xe=i.target.result,e({db:xe,type:"success"})},n.onerror=i=>{t(i)}})}function gc(r,e,t=xe){return new Promise((n,i)=>{t||i("\u6CA1\u6709db");let a=t.transaction([r],"readonly").objectStore(r).get(e);a.onsuccess=()=>{a.result?n(a.result.value):n(null)},a.onerror=c=>{console.log("[getVersionByKey]",c),n(null)}})}function mc(r,e,t,n=xe){return new Promise((i,o)=>(n||o("\u6CA1\u6709db"),new Promise((a,c)=>{let s=n.transaction([r],"readwrite").objectStore(r).add({key:e,value:t});s.onsuccess=function(u){a(u)},s.onerror=function(u){c(u)}})))}function sr(r,e=xe){e&&(e.objectStoreNames.contains(r)||e.createObjectStore(r,{keyPath:"key"}))}function yc(){xe?.close(),xe=null}var vc="data:image/png;base64,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";var _c="data:image/png;base64,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";var xc="data:image/png;base64,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";var F2={loadRoadNetwork:!1},cs="map_version",hs="route_version",ps="map_data",xi="road_network_data",Ec={half:vc,power:_c,mechanical:xc},bc=class{constructor(e){this.bmap=e;this.initDb()}floors=[];async initDb(){try{let{db:e,type:t}=await dc();t==="onupgradeneeded"&&(sr(cs),sr(hs),sr(ps),sr(xi))}catch(e){console.log("[\u6253\u5F00indexDb\u9519\u8BEF]",e)}}async load(e){if(this.clear(),Array.isArray(e))this.floors=e;else{let t=await fetch(e).then(n=>n.json());t.code==="0"&&(this.floors=t.data.list)}}setCacheData(e,t,n){return mc(e,`${t}`,n)}getCacheData(e,t){return gc(e,`${t}`)}getFloorCacheKey(e){return`${e.floor_id}`}async getFloorData(e){let t=this.floors.find(i=>i.floor===e);if(!t)return null;let n=this.getFloorCacheKey(t);try{if(await this.getCacheData(cs,n)===t.version_id){let o=await this.getCacheData(ps,n);if(o)return this.getDataByJson(o)}return this.getFloorDataByFloorInfo(t)}catch{return this.getFloorDataByFloorInfo(t)}}async getFloorDataByFloorInfo(e){let t=this.getFloorCacheKey(e);console.time("zstd_json");let n=await fetch(e.map_url).then(i=>i.json());return n.floor=e.floor,console.timeEnd("zstd_json"),this.setCacheData(ps,t,n),this.setCacheData(cs,t,e.version_id),this.getDataByJson(n)}async getRoadNetworkData(){return(await Promise.all(this.floors.map(async t=>{let n=this.getFloorCacheKey(t);try{if(await this.getCacheData(hs,n)===t.version_id){let a=await this.getCacheData(xi,n);if(a)return a}let o=await fetch(t.route_url).then(a=>a.json());return this.setCacheData(xi,n,o),this.setCacheData(hs,n,t.version_id),o}catch{let i=await fetch(t.route_url).then(o=>o.json());return this.setCacheData(xi,n,i),i}}))).filter(t=>t.points)}async getFacilitiesData(){if(this.floors[0]?.entry_infra_url)return fetch(this.floors[0].entry_infra_url).then(e=>e.json())}async getOtherDataByFreeTime(){}async getMulFloorsData(e){return Promise.all(e.map(t=>this.getFloorData(t))).then(t=>t.filter(n=>n))}async getDataByUrl(e){let t=await fetch(e).then(n=>n.json());return this.getDataByJson(t)}getDataByJson(e){let t=new Ce(this.bmap.context);t.userData.graphics=[],t.userData.graphicMap=new Map;let n=[0,0];return e.layers.forEach(i=>{switch(i.l_type){case"range":let o=i.elements[0];n=[o.center_x,o.center_y];break;case"graph":ee(i.elements,n);let a=[];i.elements.forEach(p=>{p.group==="ground"?t.createGround(p):a.push(p)});let c=a.reduce((p,m)=>{let{fillColor:v,fillOpacity:b,strokeColor:y,strokeOpacity:S,height:x}=m,_=`${v.toLowerCase()}-${b}-${y.toLowerCase()}-${S}-${x}`;return S===0&&(_=`${v.toLowerCase()}-${b}-${x}`),p[_]?p[_].push(m):p[_]=[m],p},{});Object.values(c).forEach(p=>{let m=new Dr(this.bmap.context,p);t.mergeGraphicLayer.add(m)});break;case"ground":ee(i.elements,n);let l=i.elements.map(p=>new Ft(this.bmap.context,p));t.addGrounds(l);break;case"wall":ee(i.elements,n);let s=i.elements.reduce((p,m)=>{let{fillColor:v,fillOpacity:b,strokeColor:y,strokeOpacity:S,height:x}=m,_=`${v.toLowerCase()}-${b}-${y.toLowerCase()}-${S}-${x}`;return S===0&&(_=`${v.toLowerCase()}-${b}-${x}`),p[_]?p[_].push(m):p[_]=[m],p},{});Object.values(s).forEach(p=>{let m=new Cr(this.bmap.context,p);t.wallLayer.add(m)});break;case"lane":ee(i.elements,n);let u=i.elements.reduce((p,m)=>{let{fillColor:v,fillOpacity:b,strokeColor:y,strokeOpacity:S}=m,x=`${v.toLowerCase()}-${b}-${y.toLowerCase()}-${S}`;return S===0&&(x=`${v.toLowerCase()}-${b}`),p[x]?p[x].push(m):p[x]=[m],p},{});Object.values(u).forEach(p=>{let m=new Pr(this.bmap.context,p);t.laneLayer.add(m)});break;case"texture2d":case"texture3d":if(ee(i.elements,n),i.elements.length){let p=new Wn(this.bmap.context,i.elements);t.textureLayer.add(p)}break;case"glb":ee(i.elements,n),i.elements.forEach(p=>{let m=Te([p.center_x,p.center_y],n),v=new Ar(this.bmap.context,{...p,url:p.secondUrl,rotate:p.secondRotate,width:p.secondWidth,center_x:m[0],center_y:m[1]});t.glbModelLayer.add(v)});break;case"store":ee(i.elements,n),i.elements.map(p=>{let m=Te([p.center_x,p.center_y],n),v=t.addGraphic(p);t.userData.graphics.push(v),t.userData.graphicMap.set(p.id,v);try{let b=new ne(this.bmap.context,{id:p.id,icon:p.poi_info.icon,text:p.poi_info.showName||p.store_name||p.poi_info.text,position:{x:m[0],y:m[1],z:p.airHeight+p.height},icon_size:[18,18]});t.poiLayer2.pushPoi(b),b&&(b.userData.type="store",b.userData.data=p)}catch(b){console.log("\u521B\u5EFA\u5E97\u94FApoi\u5931\u8D25",b,p)}});break;case"facility":ee(i.elements,n),i.elements.map(p=>{let m=Te([p.center_x,p.center_y],n),v=t.addGraphic(p);if(t.userData.graphics.push(v),t.userData.graphicMap.set(p.id,v),p.poi_info){let b=new ne(this.bmap.context,{id:p.id,icon:p.poi_info.icon,text:p.poi_info.showName||p.store_name||p.poi_info.text,position:{x:m[0],y:m[1],z:p.airHeight+p.height},icon_size:[18,18]});t.poiLayer2.pushPoi(b),b.userData.type="facility",b.userData.data=p}else console.log("\u6DFB\u52A0facility\u5931\u8D25\u6CA1\u6709poi_info",p)});break;case"parkingSpace":ee(i.elements,n);let h=[],f=new Map;i.elements.forEach(p=>{let m=t.addGraphic(p);h.push(m),f.set(p.id,m);let v=Te([p.center_x,p.center_y],n);if(p.texts[0]){let b=new ne(this.bmap.context,{id:p.id,text:p.texts[0],position:{x:v[0],y:v[1],z:p.airHeight+p.height}});b&&(b.userData.type="parkingSpace",b.userData.data=p),t.poiLayer2.pushPoi(b)}});let d=i.elements.filter(p=>Ec[p.parkingType]).map(p=>{let m=Te([p.center_x,p.center_y],n),v=Ms(p.geometry.coords,m);return{uuid:p.id,iconUrl:Ec[p.parkingType],name:p.texts[0],deltaHeight:p.deltaHeight,airHeight:p.airHeight,height:p.height,geometry:{...p.geometry,coords:v},opacity:p.fillOpacity,visible:!0}});if(d.length){let p=new Wn(this.bmap.context,d);t.textureLayer.add(p)}t.userData.parkingSpaces=h,t.userData.parkingSpacesGraphicMap=f;break;case"text":ee(i.elements,n);let g=new Rr(this.bmap.context,i.elements.map(p=>{let m=Te([p.center_x,p.center_y],n);return{...p,center_x:m[0],center_y:m[1]}}));t.textTextureLayer.add(g);break}}),t.userData.center=n,t.userData.height=e.floorHeight*10,t.name=e.floor,t.userData.data=e,t.updateBox(),t}clear(){}dispose(){this.clear(),yc()}};var Sc=class{constructor(e){this.bmap=e}cacheData=new Map;floorDataLengthMap=new Map;buildingGroundMap=new Map;externalStreetMap=new Map;async load(e){let t=yn(e);if(this.cacheData.has(t))return this.cacheData.get(t);let[,n]=await Promise.all([this.loadBuildGround(e),fc(e,this.bmap.config)]),i=yn({floor:e.floor,ts:e.ts});ee(n.map(a=>a.info),this.bmap.buildingCenter,this.floorDataLengthMap.get(i)||0),n.forEach(a=>a.info.transformToBuildingGround=!1),this.cacheData.set(t,n);let o=this.floorDataLengthMap.get(i)||0;return this.floorDataLengthMap.set(i,o+n.length),this.loadExternalStreet(e),n}async loadExternalStreet(e){}switchFloorByData(e,t){if(!e.length)return;let n=t.userData.legacyToGraphicMap||new Map,i=t.userData.graphicMap||new Map,{ground:o,markGraphic:a,graphic:c}=this.bmap.config;for(let l=0;l<e.length;l++){let s=e[l];s.info.group==="ground"?(s.info.fillColor=o.color,s.info.fillOpacity=o.opacity,s.info.height=o.height,s.info.stroke=o.stroke,s.info.strokeColor=o.strokeColor,s.info.strokeOpacity=o.strokeOpacity):s.info.userData.mark?(s.info.height=a.height,s.info.fillColor=a.color,s.info.fillOpacity=a.opacity,s.info.stroke=a.stroke,s.info.strokeColor=a.strokeColor,s.info.strokeOpacity=a.strokeOpacity):(s.info.fillOpacity=c.fillOpacity,this.bmap.config.initTransToMark&&(s.info.height=a.height,s.info.fillColor=a.color,s.info.stroke=a.stroke,s.info.strokeColor=a.strokeColor,s.info.strokeOpacity=a.strokeOpacity))}for(let l of e){if(l.info.group==="ground")t.createGround(l.info);else{let s=t.addGraphic(l.info);s.userData.data=l,n.set(l.legacy_id,s)}i.set(l.element_uuid,l)}t.userData.legacyToGraphicMap=n,t.userData.graphicMap=i,t.updateBox(),t===this.bmap.context.currentFloor?(this.bmap.triggerHooks("switch_floor_before",{curFloor:t,graphics:t.graphicLayer.children}),this.bmap.initialFloorCamera(),this.bmap.triggerHooks("switch_floor_after",{curFloor:t,graphics:t.graphicLayer.children})):this.bmap.switchFloorByFloor(t)}filterData(e,t){let n=t.userData.graphicMap||new Map;return e.filter(i=>!n.has(i.element_uuid))}async switchFloorByStoreData(e,t){let n=await this.load({...e,resource_type_list:"6"}),i=this.filterData(n,t);this.switchFloorByData(i,t)}async switchFloorByOtherData(e,t){let n=await this.load({...e,resource_type_list:"1,2,3,4"}),i=this.filterData(n,t);this.switchFloorByData(i,t)}async loadBuildGround({brand:e,project:t}){let n=await this.loadBuildingGround({brand:e,project:t});return this.bmap.currentBuildGround=n,this.bmap.changeBuildingCenter(n,{brand:e,project:t}),this.bmap.currentBuildGround}async loadBuildingGround({brand:e,project:t}){let n=yn({brand:e,project:t});if(this.buildingGroundMap.has(n))return this.buildingGroundMap.get(n);let i=pc({brand:e,project:t},this.bmap.config).then(o=>(this.buildingGroundMap.set(n,o),o));return this.buildingGroundMap.set(n,i),i}async switchFloor(e){let t=new Ce(this.bmap.context);t.name=e.floor;try{await Promise.all([this.switchFloorByStoreData(e,t),this.switchFloorByOtherData(e,t)])}catch(n){console.log(n)}return t}dispose(){this.cacheData.clear(),this.floorDataLengthMap.clear(),this.buildingGroundMap.clear()}};export{bc as AibeeLoader,Sa as BMap,Oa as BMapSelect,le as BaseSvg,Hr as Context,Sc as CrLoader,La as CrNavPath,Ma as Equipment,Ps as Events,Ce as Floor,Ar as GlbModel,Ft as Graphic,Er as GraphicLayer,Wn as GroundTexture,_r as HeatmapElement,Vn as HooksName,Or as HoverHelper,Pr as Lane,Ht as Layer,Vf as MapTypePolar,Dr as MergeGraphic,xr as Model,Ra as MulFloors,Na as NavPath,Ia as Navigation,vr as Overlay,zs as PathDirection,hc as PdrPosition,rn as Poi,ne as Poi2,_n as PoiLayer,br as PoiLayer2,ea as RoadNetwork,na as RoadNetwork2,ha as SelectBox,Lr as Selection,jr as Sensor,yr as Shadow,wr as SvgLine,Tr as SvgPolygon,Rr as TextTexture,Gt as Timer,vn as TweenUtil,As as UA,Cr as Wall,Tv as addAlphaToHexColor,Ss as calc_angle,Mi as calc_direction,ra as convertToSnakeCase,Gn as createCircle,fr as createLine,Ve as createRect,Ts as createSvg,pr as createSvgElement,l_ as createThreeBox,u_ as createThreeLine,Le as darkenColor,F2 as defaultAibeeLoaderOption,Bf as defaultConfig,Pi as defaultGraphicOptions,kp as defaultOptions,vf as defaultTextTextureOptions,Jt as dispose,Bs as distancePointToSegment,yn as generatorKeyByObj,vh as getAngle,hr as getCenter,ba as getConfig,Vv as getDirectPath,Gs as getDistanceByPathPos,kt as getLength,vv as getLongestSideDir,Ms as getMinEdgeSquare,Se as getPathLength,fn as getPointEdgeIndex,dr as getPosByPathDistance,bs as hasChinese,bi as hexToRgb,Es as initDirectionalLight,xs as initLight,be as initShape,Av as isAndroid,ke as isContain,mn as isControl,kn as isIphone,gn as isMac,ws as isPointInPolygon,pc as loadBuildingGround,b2 as loadExternalStreet,fc as loadGraphics,kv as moveOnRoute,dn as proxyOptions,xh as removeWeightPath,en as setCirclePosition,ge as setLineStartEnd,Xt as setRectPosition,Us as simplifyPath,Cs as sleepOnePromise,Sv as sleepOneRf,Fs as smoothPath,wv as strToNumber,tn as timeoutPromise,i_ as toWebWorker,ee as transformGraphicData,Te as translatePosToCenter,we as triggerWorker,et as vector3ToDevice,Ov as xhrGet};
|
|
7517
7517
|
/*! Bundled license information:
|
|
7518
7518
|
|
|
7519
7519
|
complex.js/complex.js:
|