@rnacanvas/draw 15.0.2 → 15.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- !function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.draw=e():t.draw=e()}(this,()=>(()=>{var t={127(t){var e;e=()=>(()=>{var t={986(t){t.exports=(()=>{"use strict";const t={d:(e,r)=>{if(Array.isArray(r))for(var n=0;n<r.length;){var i=r[n++],s=r[n++];t.o(e,i)?0===s&&n++:0===s?Object.defineProperty(e,i,{enumerable:!0,value:r[n++]}):Object.defineProperty(e,i,{enumerable:!0,get:s})}else for(var i in r)t.o(r,i)&&!t.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:r[i]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}};let e={};function r(t,e){return Math.abs(t-e)}function n(t){let e=0;return t.forEach(t=>e+=t),e}function i(t){return n(t)/t.length}function s(t){t.sort((t,e)=>t-e)}function o(t){let e=[...t];return s(e),e}function a(t){if(0==t.length)return NaN;let e=o(t);if(e.length%2!=0)return e[Math.floor(e.length/2)];let r=e.length/2,n=r-1;return i([e[r],e[n]])}function u(t){if(0==t.length)return 1/0;let e=t[0];return t.slice(1).forEach(t=>{e=Math.min(e,t)}),e}function h(t){if(0==t.length)return-1/0;let e=t[0];return t.slice(1).forEach(t=>{e=Math.max(e,t)}),e}function c(t,e,r){return t>=e&&t<=r}function l(t,e,r){return t>e&&t<r}function f(t,e,r){return t<e?e:t>r?r:t}function d(t,e,r){return Math.abs(t-e)<=r}function m(t){s(t),t.reverse()}function p(t){let e=o(t);return e.reverse(),e}function y(t,e){return Number.parseFloat(t.toFixed(null!=e?e:0))}function g(t){return t*(180/Math.PI)}function b(t){return t*(Math.PI/180)}function v(t,e=-Math.PI){let r=t-e;return r%=2*Math.PI,r=r>=0?r:r+2*Math.PI,e+r}function w(t,e){let r=(e=v(e,t))-t;return(r<Math.PI/2||r>3*Math.PI/2)&&(t+=Math.PI),t}return t.r(e),t.d(e,{areWithin:()=>d,average:()=>i,clamp:()=>f,degrees:()=>g,distance:()=>r,flipAway:()=>w,isBetween:()=>c,isBetweenExclusive:()=>l,isBetweenInclusive:()=>c,max:()=>h,mean:()=>i,median:()=>a,min:()=>u,normalizeAngle:()=>v,radians:()=>b,round:()=>y,sortNumbers:()=>s,sortNumbersAscending:()=>s,sortNumbersDescending:()=>m,sortedNumbers:()=>o,sortedNumbersAscending:()=>o,sortedNumbersDescending:()=>p,sum:()=>n}),e})()},369(t){var e;e=()=>(()=>{var t={986(t){t.exports=(()=>{"use strict";const t={d:(e,r)=>{if(Array.isArray(r))for(var n=0;n<r.length;){var i=r[n++],s=r[n++];t.o(e,i)?0===s&&n++:0===s?Object.defineProperty(e,i,{enumerable:!0,value:r[n++]}):Object.defineProperty(e,i,{enumerable:!0,get:s})}else for(var i in r)t.o(r,i)&&!t.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:r[i]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}};let e={};function r(t,e){return Math.abs(t-e)}function n(t){let e=0;return t.forEach(t=>e+=t),e}function i(t){return n(t)/t.length}function s(t){t.sort((t,e)=>t-e)}function o(t){let e=[...t];return s(e),e}function a(t){if(0==t.length)return NaN;let e=o(t);if(e.length%2!=0)return e[Math.floor(e.length/2)];let r=e.length/2,n=r-1;return i([e[r],e[n]])}function u(t){if(0==t.length)return 1/0;let e=t[0];return t.slice(1).forEach(t=>{e=Math.min(e,t)}),e}function h(t){if(0==t.length)return-1/0;let e=t[0];return t.slice(1).forEach(t=>{e=Math.max(e,t)}),e}function c(t,e,r){return t>=e&&t<=r}function l(t,e,r){return t>e&&t<r}function f(t,e,r){return t<e?e:t>r?r:t}function d(t,e,r){return Math.abs(t-e)<=r}function m(t){s(t),t.reverse()}function p(t){let e=o(t);return e.reverse(),e}function y(t,e){return Number.parseFloat(t.toFixed(null!=e?e:0))}function g(t){return t*(180/Math.PI)}function b(t){return t*(Math.PI/180)}function v(t,e=-Math.PI){let r=t-e;return r%=2*Math.PI,r=r>=0?r:r+2*Math.PI,e+r}function w(t,e){let r=(e=v(e,t))-t;return(r<Math.PI/2||r>3*Math.PI/2)&&(t+=Math.PI),t}return t.r(e),t.d(e,{areWithin:()=>d,average:()=>i,clamp:()=>f,degrees:()=>g,distance:()=>r,flipAway:()=>w,isBetween:()=>c,isBetweenExclusive:()=>l,isBetweenInclusive:()=>c,max:()=>h,mean:()=>i,median:()=>a,min:()=>u,normalizeAngle:()=>v,radians:()=>b,round:()=>y,sortNumbers:()=>s,sortNumbersAscending:()=>s,sortNumbersDescending:()=>m,sortedNumbers:()=>o,sortedNumbersAscending:()=>o,sortedNumbersDescending:()=>p,sum:()=>n}),e})()},106(t){var e;e=()=>(()=>{var t={992(t){var e;e=()=>(()=>{"use strict";const t={d:(e,r)=>{if(Array.isArray(r))for(var n=0;n<r.length;){var i=r[n++],s=r[n++];t.o(e,i)?0===s&&n++:0===s?Object.defineProperty(e,i,{enumerable:!0,value:r[n++]}):Object.defineProperty(e,i,{enumerable:!0,get:s})}else for(var i in r)t.o(r,i)&&!t.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:r[i]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}};let e={};t.r(e),t.d(e,{KeyBinding:()=>p});var r,n,i,s,o,a,u,h,c,l,f,d=function(t,e,r,n,i){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!i:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===n?i.call(t,r):i?i.value=r:e.set(t,r),r},m=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class p{constructor(t,e,a){r.add(this),this.key=t,n.set(this,void 0),i.set(this,void 0),s.set(this,void 0),o.set(this,void 0),d(this,n,e,"f"),d(this,i,t=>m(this,r,"m",l).call(this,t),"f"),d(this,s,a,"f")}get owner(){return m(this,o,"f")}set owner(t){var e;null===(e=m(this,o,"f"))||void 0===e||e.removeEventListener("keydown",m(this,i,"f")),null==t||t.addEventListener("keydown",m(this,i,"f"),{passive:!1}),d(this,o,t,"f")}}return n=new WeakMap,i=new WeakMap,s=new WeakMap,o=new WeakMap,r=new WeakSet,a=function(){var t,e;return null!==(e=null===(t=m(this,s,"f"))||void 0===t?void 0:t.altKey)&&void 0!==e&&e},u=function(){var t,e;return null!==(e=null===(t=m(this,s,"f"))||void 0===t?void 0:t.ctrlKey)&&void 0!==e&&e},h=function(){var t,e;return null!==(e=null===(t=m(this,s,"f"))||void 0===t?void 0:t.metaKey)&&void 0!==e&&e},c=function(){var t,e;return null!==(e=null===(t=m(this,s,"f"))||void 0===t?void 0:t.shiftKey)&&void 0!==e&&e},l=function(t){this.owner&&this.owner===document.activeElement&&`Key${this.key}`.toUpperCase()===t.code.toUpperCase()&&t.altKey===m(this,r,"a",a)&&t.ctrlKey===m(this,r,"a",u)&&t.metaKey===m(this,r,"a",h)&&t.shiftKey===m(this,r,"a",c)&&m(this,r,"m",f).call(this,t)},f=function(t){t.preventDefault(),m(this,n,"f").call(this)},e})(),t.exports=e()},854(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){return"number"==typeof t}function n(t){return r(t)&&Number.isFinite(t)}function i(t){return r(t)&&!Number.isFinite(t)}function s(t){return n(t)&&t>0}function o(t){return n(t)&&t>=0}function a(t){return"string"==typeof t}function u(t){return""===t}function h(t){return a(t)&&!u(t)}function c(t){return!!a(t)&&0==t.trim().length}function l(t){if(!a(t))return!1;try{return JSON.parse(t),!0}catch{return!1}}function f(t){try{return JSON.stringify(t),!0}catch{return!1}}function d(t){return!!t}function m(t){return!t}function p(t){return null==t}function y(t){return"object"==typeof t&&null!==t}function g(t){return Array.isArray(t)}function b(t){return g(t)&&0==t.length}function v(t){return g(t)&&t.length>0}function w(t){return g(t)&&t.every(r)}function x(t){return w(t)&&t.length>0}function S(t){return g(t)&&t.every(n)}function N(t){return g(t)&&t.every(i)}function _(t){return g(t)&&t.every(a)}function O(t){return _(t)&&t.length>0}function P(t){return t instanceof SVGGraphicsElement}return t.r(e),t.d(e,{isArray:()=>g,isEmptyArray:()=>b,isEmptyString:()=>u,isFalsy:()=>m,isFiniteNumber:()=>n,isFiniteNumbersArray:()=>S,isJSON:()=>l,isJSONSerializable:()=>f,isNonEmptyArray:()=>v,isNonEmptyNumbersArray:()=>x,isNonEmptyString:()=>h,isNonEmptyStringsArray:()=>O,isNonFiniteNumber:()=>i,isNonFiniteNumbersArray:()=>N,isNonNegativeFiniteNumber:()=>o,isNonNullObject:()=>y,isNullish:()=>p,isNumber:()=>r,isNumbersArray:()=>w,isPositiveFiniteNumber:()=>s,isSVGGraphicsElement:()=>P,isString:()=>a,isStringsArray:()=>_,isTruthy:()=>d,isWhitespace:()=>c}),e})()}};const e={};function r(n){const i=e[n];if(void 0!==i)return i.exports;const s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,r),s.exports}r.d=(t,e)=>{if(Array.isArray(e))for(var n=0;n<e.length;){var i=e[n++],s=e[n++];r.o(t,i)?0===s&&n++:0===s?Object.defineProperty(t,i,{enumerable:!0,value:e[n++]}):Object.defineProperty(t,i,{enumerable:!0,get:s})}else for(var i in e)r.o(e,i)&&!r.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};let n={};return(()=>{"use strict";function t(t){if(t.length>0)return t[0];throw new Error("Array is empty.")}function e(t){if(t.length>0)return t[t.length-1];throw new Error("Array is empty.")}function i(t){if(t.length<3)throw new Error("Array has less than 3 items.");if(t.length%2==0)throw new Error("Array has an even number of items.");let e=Math.floor(t.length/2);return[t[e-1],t[e],t[e+1]]}function s(t){if(t.length<4)throw new Error("Array has less than 4 items.");if(t.length%2!=0)throw new Error("Array has an odd number of items.");let e=Math.floor(t.length/2);return[t[e-2],t[e-1],t[e],t[e+1]]}function o(t){return t.length<2?[]:t.slice(0,-1).map((e,r)=>[t[r],t[r+1]])}r.r(n),r.d(n,{DownloadableFile:()=>v,EventfulSet:()=>w,FiniteStack:()=>P,KeyBinding:()=>d.KeyBinding,consecutivePairs:()=>o,containsFocus:()=>f,detectMac:()=>p,detectWindows:()=>m,first:()=>t,hasFocus:()=>l,isJSON:()=>a.isJSON,isJSONSerializable:()=>a.isJSONSerializable,isURL:()=>E,last:()=>e,middleFour:()=>s,middleThree:()=>i,removeWhitespace:()=>u,shuffled:()=>c,splitLines:()=>h});var a=r(854);function u(t){return[...t].filter(t=>!(0,a.isWhitespace)(t)).join("")}function h(t){return t.split(/\r\n|\r|\n/)}function c(t){return t.map(t=>({v:t,priority:Math.random()})).sort((t,e)=>t.priority-e.priority).map(({v:t})=>t)}function l(t){return t===document.activeElement}function f(t){return!!document.activeElement&&t.contains(document.activeElement)}var d=r(992);function m(){return-1!==navigator.userAgent.indexOf("Windows")}function p(){try{return window.navigator.platform.toLowerCase().includes("mac")}catch(t){return!1}}var y,g=function(t,e,r,n,i){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!i:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===n?i.call(t,r):i?i.value=r:e.set(t,r),r},b=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class v{constructor(t,e,r){y.set(this,void 0),this.name=null!=t?t:"Unnamed.txt",this.content=null!=e?e:"",g(this,y,null==r?void 0:r.type,"f")}get type(){return null!=b(this,y,"f")?b(this,y,"f"):this.content instanceof Blob?this.content.type:"text/plain"}set type(t){g(this,y,t,"f")}download(){let t=new File([this.content],this.name,{type:this.type}),e=URL.createObjectURL(t),r=document.createElement("a");r.href=e,r.download=t.name,document.body.appendChild(r),r.click(),r.remove(),URL.revokeObjectURL(e)}}y=new WeakMap;class w{constructor(){this.eventListeners={change:[]},this.underlyingSet=new Set}[Symbol.iterator](){return this.underlyingSet.values()}includes(t){return this.underlyingSet.has(t)}include(t){return this.includes(t)}addAll(t){let e=[...t];0!=e.length&&(e.every(t=>this.includes(t))||(e.forEach(t=>this.underlyingSet.add(t)),this.callEventListeners("change")))}removeAll(t){let e=[...t];0!=e.length&&(e.every(t=>!this.includes(t))||(e.forEach(t=>this.underlyingSet.delete(t)),this.callEventListeners("change")))}clear(){0!=this.underlyingSet.size&&(this.underlyingSet.clear(),this.callEventListeners("change"))}addEventListener(t,e){this.eventListeners[t].push(e)}callEventListeners(t){this.eventListeners[t].forEach(t=>t())}removeEventListener(t,e){this.eventListeners[t]=this.eventListeners[t].filter(t=>t!==e)}}var x,S,N,_,O=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class P{constructor(t){x.add(this),this.maxSize=t,S.set(this,[]),N.set(this,{change:[]})}get size(){return O(this,S,"f").length}isEmpty(){return 0==this.size}empty(){0!=this.size&&(function(t,e){if("function"==typeof e||!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");e.set(t,[])}(this,S),O(this,x,"m",_).call(this,"change"))}peek(){if(0==this.size)throw new Error("The stack is empty.");return O(this,S,"f")[O(this,S,"f").length-1]}push(t){O(this,S,"f").push(t),this.size>this.maxSize&&O(this,S,"f").shift(),O(this,x,"m",_).call(this,"change")}pop(){if(0==this.size)throw new Error("The stack is empty.");let t=O(this,S,"f").pop();return O(this,x,"m",_).call(this,"change"),t}addEventListener(t,e){O(this,N,"f")[t].push(e)}removeEventListener(t,e){O(this,N,"f")[t]=O(this,N,"f")[t].filter(t=>t!==e)}}function E(t){try{return new URL(t),!0}catch(t){return!1}}S=new WeakMap,N=new WeakMap,x=new WeakSet,_=function(t){O(this,N,"f")[t].forEach(t=>t())}})(),n})(),t.exports=e()},854(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){return"number"==typeof t}function n(t){return r(t)&&Number.isFinite(t)}function i(t){return r(t)&&!Number.isFinite(t)}function s(t){return n(t)&&t>0}function o(t){return n(t)&&t>=0}function a(t){return"string"==typeof t}function u(t){return""===t}function h(t){return a(t)&&!u(t)}function c(t){return!!a(t)&&0==t.trim().length}function l(t){if(!a(t))return!1;try{return JSON.parse(t),!0}catch{return!1}}function f(t){try{return JSON.stringify(t),!0}catch{return!1}}function d(t){return!!t}function m(t){return!t}function p(t){return null==t}function y(t){return"object"==typeof t&&null!==t}function g(t){return Array.isArray(t)}function b(t){return g(t)&&0==t.length}function v(t){return g(t)&&t.length>0}function w(t){return g(t)&&t.every(r)}function x(t){return w(t)&&t.length>0}function S(t){return g(t)&&t.every(n)}function N(t){return g(t)&&t.every(i)}function _(t){return g(t)&&t.every(a)}function O(t){return _(t)&&t.length>0}function P(t){return t instanceof SVGGraphicsElement}return t.r(e),t.d(e,{isArray:()=>g,isEmptyArray:()=>b,isEmptyString:()=>u,isFalsy:()=>m,isFiniteNumber:()=>n,isFiniteNumbersArray:()=>S,isJSON:()=>l,isJSONSerializable:()=>f,isNonEmptyArray:()=>v,isNonEmptyNumbersArray:()=>x,isNonEmptyString:()=>h,isNonEmptyStringsArray:()=>O,isNonFiniteNumber:()=>i,isNonFiniteNumbersArray:()=>N,isNonNegativeFiniteNumber:()=>o,isNonNullObject:()=>y,isNullish:()=>p,isNumber:()=>r,isNumbersArray:()=>w,isPositiveFiniteNumber:()=>s,isSVGGraphicsElement:()=>P,isString:()=>a,isStringsArray:()=>_,isTruthy:()=>d,isWhitespace:()=>c}),e})()}};const e={};function r(n){const i=e[n];if(void 0!==i)return i.exports;const s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,r),s.exports}r.d=(t,e)=>{if(Array.isArray(e))for(var n=0;n<e.length;){var i=e[n++],s=e[n++];r.o(t,i)?0===s&&n++:0===s?Object.defineProperty(t,i,{enumerable:!0,value:e[n++]}):Object.defineProperty(t,i,{enumerable:!0,get:s})}else for(var i in e)r.o(e,i)&&!r.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};let n={};return(()=>{"use strict";r.r(n),r.d(n,{Linkers:()=>p,Stems:()=>m,areConflicting:()=>u,areCrossing:()=>l,areEqual:()=>o,areKnotless:()=>c,areStacked:()=>a,basePairs:()=>w,deepCopy:()=>e,knotless:()=>f,mountainPlotTraversal:()=>y,parseDotBracket:()=>b,radializable:()=>d,sorted:()=>s});var t=r(854);function e(e){return(0,t.isNumbersArray)(e)?[...e]:e.map(t=>[...t])}var i=r(986);function s(t){let r=e(t);return r.forEach(i.sortNumbers),r.sort((t,e)=>t[0]-e[0]),r}function o(t,r){let n=e(t),s=e(r);return(0,i.sortNumbers)(n),(0,i.sortNumbers)(s),[0,1].every(t=>n[t]==s[t])}function a(t,e){let r=s([t,e]);return r[0][0]==r[1][0]-1&&r[0][1]==r[1][1]+1}function u(t,e){return(0,i.min)(t)==(0,i.min)(e)&&(0,i.max)(t)!=(0,i.max)(e)||(0,i.min)(t)!=(0,i.min)(e)&&(0,i.max)(t)==(0,i.max)(e)}function h(t){if(0==t.length)return[];let e=[];for(let r=0;r<(0,i.max)(t.flat());r++)e.push(void 0);return t.forEach(t=>{e[t[0]-1]=t[1],e[t[1]-1]=t[0]}),e}function c(t){let e=h(t),r=[],n=!1;return e.forEach((t,e)=>{let i=e+1;null==t||(i<t?r.push(i):i==t||r.pop()!=t&&(n=!0))}),!n}function l(t,e){return!c([t,e])}function f(t){let r=[],n=e(t);n.sort((t,e)=>Math.abs(t[0]-t[1])-Math.abs(e[0]-e[1]));let s=[];return n.forEach(t=>{let e=[t[0]-1,t[1]-1],n=(0,i.min)(e),o=(0,i.max)(e);if(!s[n]&&!s[o]){r.push(t);for(let t=n;t<=o;t++)s[t]=!0}}),r}function d(t){let r=e(t);r.sort(([t,e],[r,n])=>Math.abs(t-e)-Math.abs(r-n));let n=[],i=[];return r.forEach(([t,e])=>{t==e||null!=i[t-1]||null!=i[e-1]||(n.push([t,e]),i[t-1]=e,i[e-1]=t)}),f(n)}class m{constructor(...t){this.targetStructure=t}get(){let t=this.targetStructure[1];if(0==t.length)return[];let e=s(t),r=[],n=[];return e.forEach(t=>{let e=0==n.length?null:n[n.length-1];!e||a(e,t)?n.push(t):(r.push(n),n=[t])}),r.push(n),r}}class p{constructor(...t){this.targetStructure=t}get(){let t=new m(...this.targetStructure).get().flatMap(t=>[t.map(i.min),t.map(i.max)]);t.forEach(i.sortNumbers),t.sort((t,e)=>(0,i.min)(t)-(0,i.min)(e));let e=[],r=t.shift(),n=t.shift();for(;r&&n;){let s=[],o=(0,i.max)(r),a=(0,i.min)(n);for(let t=o;t<=a;t++)s.push(t);e.push(s),r=n,n=t.shift()}return e}}function y(...t){let e=t[0],r=t[1],n=h(r);if(!c(r))throw new Error("Pseudoknot(s) encountered.");let i=[],s=0;return e.forEach((t,e)=>{let r=e+1,o=n[e];null==o?i.push(s):r<o?(i.push(s),s++):(r==o||s--,i.push(s))}),i}var g=r(106);function b(t){t=(0,g.removeWhitespace)(t);let e={"()":[],"[]":[],"{}":[],"<>":[]};v.forEach(r=>{let[n,i]=r.split(""),o=[...t].map(t=>t===n?"(":t===i?")":".").join("");e[r]=function(t){let e=[],r=[];if([...t].forEach((t,n)=>{let i=n+1;if("."==t);else if("("==t)r.push(i);else if(")"==t){let t=r.pop();if("number"!=typeof t)throw new Error(`Unmatched downstream partner in dot-bracket notation at position: ${i}.`);e.push([t,i])}}),r.length>0)throw new Error(`Unmatched upstream partner in dot-bracket notation at position: ${r.pop()}.`);return s(e)}(o)});let r=()=>s(v.flatMap(t=>e[t]));return{[Symbol.iterator]:()=>r()[Symbol.iterator](),toArray:r,...e}}const v=["()","[]","{}","<>"];function w(t,e){return e.forEach(e=>{e.forEach(e=>{if(e<1)throw new Error("Sequence positions must be positive.");if(e>t.length)throw new Error("Position out of sequence range.")})}),e.map(e=>[t[e[0]-1],t[e[1]-1]])}})(),n})(),t.exports=e()},106(t){var e;e=()=>(()=>{var t={992(t){var e;e=()=>(()=>{"use strict";const t={d:(e,r)=>{if(Array.isArray(r))for(var n=0;n<r.length;){var i=r[n++],s=r[n++];t.o(e,i)?0===s&&n++:0===s?Object.defineProperty(e,i,{enumerable:!0,value:r[n++]}):Object.defineProperty(e,i,{enumerable:!0,get:s})}else for(var i in r)t.o(r,i)&&!t.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:r[i]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}};let e={};t.r(e),t.d(e,{KeyBinding:()=>p});var r,n,i,s,o,a,u,h,c,l,f,d=function(t,e,r,n,i){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!i:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===n?i.call(t,r):i?i.value=r:e.set(t,r),r},m=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class p{constructor(t,e,a){r.add(this),this.key=t,n.set(this,void 0),i.set(this,void 0),s.set(this,void 0),o.set(this,void 0),d(this,n,e,"f"),d(this,i,t=>m(this,r,"m",l).call(this,t),"f"),d(this,s,a,"f")}get owner(){return m(this,o,"f")}set owner(t){var e;null===(e=m(this,o,"f"))||void 0===e||e.removeEventListener("keydown",m(this,i,"f")),null==t||t.addEventListener("keydown",m(this,i,"f"),{passive:!1}),d(this,o,t,"f")}}return n=new WeakMap,i=new WeakMap,s=new WeakMap,o=new WeakMap,r=new WeakSet,a=function(){var t,e;return null!==(e=null===(t=m(this,s,"f"))||void 0===t?void 0:t.altKey)&&void 0!==e&&e},u=function(){var t,e;return null!==(e=null===(t=m(this,s,"f"))||void 0===t?void 0:t.ctrlKey)&&void 0!==e&&e},h=function(){var t,e;return null!==(e=null===(t=m(this,s,"f"))||void 0===t?void 0:t.metaKey)&&void 0!==e&&e},c=function(){var t,e;return null!==(e=null===(t=m(this,s,"f"))||void 0===t?void 0:t.shiftKey)&&void 0!==e&&e},l=function(t){this.owner&&this.owner===document.activeElement&&`Key${this.key}`.toUpperCase()===t.code.toUpperCase()&&t.altKey===m(this,r,"a",a)&&t.ctrlKey===m(this,r,"a",u)&&t.metaKey===m(this,r,"a",h)&&t.shiftKey===m(this,r,"a",c)&&m(this,r,"m",f).call(this,t)},f=function(t){t.preventDefault(),m(this,n,"f").call(this)},e})(),t.exports=e()},854(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){return"number"==typeof t}function n(t){return r(t)&&Number.isFinite(t)}function i(t){return r(t)&&!Number.isFinite(t)}function s(t){return n(t)&&t>0}function o(t){return n(t)&&t>=0}function a(t){return"string"==typeof t}function u(t){return""===t}function h(t){return a(t)&&!u(t)}function c(t){return!!a(t)&&0==t.trim().length}function l(t){if(!a(t))return!1;try{return JSON.parse(t),!0}catch{return!1}}function f(t){try{return JSON.stringify(t),!0}catch{return!1}}function d(t){return!!t}function m(t){return!t}function p(t){return null==t}function y(t){return"object"==typeof t&&null!==t}function g(t){return Array.isArray(t)}function b(t){return g(t)&&0==t.length}function v(t){return g(t)&&t.length>0}function w(t){return g(t)&&t.every(r)}function x(t){return w(t)&&t.length>0}function S(t){return g(t)&&t.every(n)}function N(t){return g(t)&&t.every(i)}function _(t){return g(t)&&t.every(a)}function O(t){return _(t)&&t.length>0}function P(t){return t instanceof SVGGraphicsElement}return t.r(e),t.d(e,{isArray:()=>g,isEmptyArray:()=>b,isEmptyString:()=>u,isFalsy:()=>m,isFiniteNumber:()=>n,isFiniteNumbersArray:()=>S,isJSON:()=>l,isJSONSerializable:()=>f,isNonEmptyArray:()=>v,isNonEmptyNumbersArray:()=>x,isNonEmptyString:()=>h,isNonEmptyStringsArray:()=>O,isNonFiniteNumber:()=>i,isNonFiniteNumbersArray:()=>N,isNonNegativeFiniteNumber:()=>o,isNonNullObject:()=>y,isNullish:()=>p,isNumber:()=>r,isNumbersArray:()=>w,isPositiveFiniteNumber:()=>s,isSVGGraphicsElement:()=>P,isString:()=>a,isStringsArray:()=>_,isTruthy:()=>d,isWhitespace:()=>c}),e})()}};const e={};function r(n){const i=e[n];if(void 0!==i)return i.exports;const s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,r),s.exports}r.d=(t,e)=>{if(Array.isArray(e))for(var n=0;n<e.length;){var i=e[n++],s=e[n++];r.o(t,i)?0===s&&n++:0===s?Object.defineProperty(t,i,{enumerable:!0,value:e[n++]}):Object.defineProperty(t,i,{enumerable:!0,get:s})}else for(var i in e)r.o(e,i)&&!r.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};let n={};return(()=>{"use strict";function t(t){if(t.length>0)return t[0];throw new Error("Array is empty.")}function e(t){if(t.length>0)return t[t.length-1];throw new Error("Array is empty.")}function i(t){if(t.length<3)throw new Error("Array has less than 3 items.");if(t.length%2==0)throw new Error("Array has an even number of items.");let e=Math.floor(t.length/2);return[t[e-1],t[e],t[e+1]]}function s(t){if(t.length<4)throw new Error("Array has less than 4 items.");if(t.length%2!=0)throw new Error("Array has an odd number of items.");let e=Math.floor(t.length/2);return[t[e-2],t[e-1],t[e],t[e+1]]}function o(t){return t.length<2?[]:t.slice(0,-1).map((e,r)=>[t[r],t[r+1]])}r.r(n),r.d(n,{DownloadableFile:()=>v,EventfulSet:()=>w,FiniteStack:()=>P,KeyBinding:()=>d.KeyBinding,consecutivePairs:()=>o,containsFocus:()=>f,detectMac:()=>p,detectWindows:()=>m,first:()=>t,hasFocus:()=>l,isJSON:()=>a.isJSON,isJSONSerializable:()=>a.isJSONSerializable,isURL:()=>E,last:()=>e,middleFour:()=>s,middleThree:()=>i,removeWhitespace:()=>u,shuffled:()=>c,splitLines:()=>h});var a=r(854);function u(t){return[...t].filter(t=>!(0,a.isWhitespace)(t)).join("")}function h(t){return t.split(/\r\n|\r|\n/)}function c(t){return t.map(t=>({v:t,priority:Math.random()})).sort((t,e)=>t.priority-e.priority).map(({v:t})=>t)}function l(t){return t===document.activeElement}function f(t){return!!document.activeElement&&t.contains(document.activeElement)}var d=r(992);function m(){return-1!==navigator.userAgent.indexOf("Windows")}function p(){try{return window.navigator.platform.toLowerCase().includes("mac")}catch(t){return!1}}var y,g=function(t,e,r,n,i){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!i:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===n?i.call(t,r):i?i.value=r:e.set(t,r),r},b=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class v{constructor(t,e,r){y.set(this,void 0),this.name=null!=t?t:"Unnamed.txt",this.content=null!=e?e:"",g(this,y,null==r?void 0:r.type,"f")}get type(){return null!=b(this,y,"f")?b(this,y,"f"):this.content instanceof Blob?this.content.type:"text/plain"}set type(t){g(this,y,t,"f")}download(){let t=new File([this.content],this.name,{type:this.type}),e=URL.createObjectURL(t),r=document.createElement("a");r.href=e,r.download=t.name,document.body.appendChild(r),r.click(),r.remove(),URL.revokeObjectURL(e)}}y=new WeakMap;class w{constructor(){this.eventListeners={change:[]},this.underlyingSet=new Set}[Symbol.iterator](){return this.underlyingSet.values()}includes(t){return this.underlyingSet.has(t)}include(t){return this.includes(t)}addAll(t){let e=[...t];0!=e.length&&(e.every(t=>this.includes(t))||(e.forEach(t=>this.underlyingSet.add(t)),this.callEventListeners("change")))}removeAll(t){let e=[...t];0!=e.length&&(e.every(t=>!this.includes(t))||(e.forEach(t=>this.underlyingSet.delete(t)),this.callEventListeners("change")))}clear(){0!=this.underlyingSet.size&&(this.underlyingSet.clear(),this.callEventListeners("change"))}addEventListener(t,e){this.eventListeners[t].push(e)}callEventListeners(t){this.eventListeners[t].forEach(t=>t())}removeEventListener(t,e){this.eventListeners[t]=this.eventListeners[t].filter(t=>t!==e)}}var x,S,N,_,O=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class P{constructor(t){x.add(this),this.maxSize=t,S.set(this,[]),N.set(this,{change:[]})}get size(){return O(this,S,"f").length}isEmpty(){return 0==this.size}empty(){0!=this.size&&(function(t,e){if("function"==typeof e||!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");e.set(t,[])}(this,S),O(this,x,"m",_).call(this,"change"))}peek(){if(0==this.size)throw new Error("The stack is empty.");return O(this,S,"f")[O(this,S,"f").length-1]}push(t){O(this,S,"f").push(t),this.size>this.maxSize&&O(this,S,"f").shift(),O(this,x,"m",_).call(this,"change")}pop(){if(0==this.size)throw new Error("The stack is empty.");let t=O(this,S,"f").pop();return O(this,x,"m",_).call(this,"change"),t}addEventListener(t,e){O(this,N,"f")[t].push(e)}removeEventListener(t,e){O(this,N,"f")[t]=O(this,N,"f")[t].filter(t=>t!==e)}}function E(t){try{return new URL(t),!0}catch(t){return!1}}S=new WeakMap,N=new WeakMap,x=new WeakSet,_=function(t){O(this,N,"f")[t].forEach(t=>t())}})(),n})(),t.exports=e()}};const e={};function r(n){const i=e[n];if(void 0!==i)return i.exports;const s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,r),s.exports}r.d=(t,e)=>{if(Array.isArray(e))for(var n=0;n<e.length;){var i=e[n++],s=e[n++];r.o(t,i)?0===s&&n++:0===s?Object.defineProperty(t,i,{enumerable:!0,value:e[n++]}):Object.defineProperty(t,i,{enumerable:!0,get:s})}else for(var i in e)r.o(e,i)&&!r.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};let n={};return(()=>{"use strict";function t(t,e){return t[0]===e[0]&&t[1]===e[1]||t[0]===e[1]&&t[1]===e[0]}function e(t,e){if(!e.includes(t))throw new Error("The given base is not present in the provided base-pair.");return t===e[0]?e[1]:e[0]}r.r(n),r.d(n,{FirstPairedBase:()=>s,LastPairedBase:()=>a,LeadingDanglingBases:()=>u,Linkers:()=>f,PositionPairs:()=>i,Stems:()=>l,TrailingDanglingBases:()=>h,antiParallelPairs:()=>w,areEqual:()=>t,consecutivePairs:()=>b,knotless:()=>d,missing:()=>x,mountainPlotTraversal:()=>p,other:()=>e,parallelPairs:()=>v,parseDotBracket:()=>y,radializable:()=>m});class i{constructor(...t){this.targetStructure=t}get(){let t=this.targetStructure[0];return this.targetStructure[1].map(e=>[t.indexOf(e[0])+1,t.indexOf(e[1])+1])}}class s{constructor(...t){this.targetStructure=t}get(){let t=this.targetStructure[0],e=this.targetStructure[1];if(0==e.length)throw new Error("There are no paired bases.");let r=e.flat(),n=t.findIndex(t=>r.includes(t));if(n<0)throw new Error("No paired bases present in sequence.");return t[n]}}var o=r(986);class a{constructor(...t){this.targetStructure=t}get(){let t=this.targetStructure[0],e=this.targetStructure[1];if(0==e.length)throw new Error("There are no paired bases.");let r=e.flat().map(e=>t.indexOf(e));if((0,o.max)(r)<0)throw new Error("No paired bases present in sequence.");return t[(0,o.max)(r)]}}class u{constructor(...t){this.targetStructure=t}get(){let t=this.targetStructure[0];if(0==this.targetStructure[1].length)throw new Error("There are no paired bases.");let e=new s(...this.targetStructure).get(),r=t.indexOf(e);if(r<0)throw new Error("No paired bases present in sequence.");return t.slice(0,r)}}class h{constructor(...t){this.targetStructure=t}get(){let t=this.targetStructure[0];if(0==this.targetStructure[1].length)throw new Error("There are no paired bases.");let e=new a(...this.targetStructure).get(),r=t.indexOf(e);if(r<0)throw new Error("No paired bases present in sequence.");return t.slice(r+1)}}var c=r(369);class l{constructor(...t){this.targetStructure=t}get(){let t=this.targetStructure[0],e=new i(...this.targetStructure).get();return new c.Stems(t,e).get().map(e=>e.map(e=>[t[e[0]-1],t[e[1]-1]]))}}class f{constructor(...t){this.targetStructure=t}get(){let t=this.targetStructure[0],e=new i(...this.targetStructure).get();return new c.Linkers(t,e).get().map(e=>e.map(e=>t[e-1]))}}function d(...t){let[e,r]=t,n=new i(...t).get();(0,c.areKnotless)(n)||(n=(0,c.knotless)(n));let s=n.map(t=>[e[t[0]-1],e[t[1]-1]]);return[[...e],s]}function m(...t){let[e,r]=t,n=new i(...t).get();return[[...e],(0,c.radializable)(n).map(([t,r])=>[e[t-1],e[r-1]])]}function p(...t){let[e,r]=t,n=new i(...t).get();return(0,c.mountainPlotTraversal)(e,n)}function y(t,e){let r=(0,c.parseDotBracket)(e),n=()=>(0,c.basePairs)(t,r.toArray());return{[Symbol.iterator]:()=>n()[Symbol.iterator](),toArray:n,"()":(0,c.basePairs)(t,r["()"]),"[]":(0,c.basePairs)(t,r["[]"]),"{}":(0,c.basePairs)(t,r["{}"]),"<>":(0,c.basePairs)(t,r["<>"])}}var g=r(106);function b(t){return(0,g.consecutivePairs)(t)}function v(t){let e=[],r=Math.floor(t.length/2)-1,n=Math.ceil(t.length/2);for(let i=0;i<=r;i++){let r=t[i],s=t[n+i];e.push([r,s])}return e}function w(t){let e=[];for(let r=0;r<Math.floor(t.length/2);r++){let n=t[r],i=t[t.length-r-1];e.push([n,i])}return e}function x(e,r){return r.filter(r=>!e.find(e=>t(r,e))).map(t=>[...t])}})(),n})(),t.exports=e()},645(t){var e;e=()=>(()=>{var t={986(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){var e=0;return t.forEach(function(t){return e+=t}),e}function n(t){return r(t)/t.length}function i(t){t.sort(function(t,e){return t-e})}t.r(e),t.d(e,{areWithin:()=>d,average:()=>n,clamp:()=>f,degrees:()=>g,flipAway:()=>w,isBetween:()=>c,isBetweenExclusive:()=>l,isBetweenInclusive:()=>c,max:()=>h,mean:()=>n,median:()=>a,min:()=>u,normalizeAngle:()=>v,radians:()=>b,round:()=>y,sortNumbers:()=>i,sortNumbersAscending:()=>i,sortNumbersDescending:()=>m,sortedNumbers:()=>o,sortedNumbersAscending:()=>o,sortedNumbersDescending:()=>p,sum:()=>r});var s=function(t,e,r){if(r||2===arguments.length)for(var n,i=0,s=e.length;i<s;i++)!n&&i in e||(n||(n=Array.prototype.slice.call(e,0,i)),n[i]=e[i]);return t.concat(n||Array.prototype.slice.call(e))};function o(t){var e=s([],t,!0);return i(e),e}function a(t){if(0==t.length)return NaN;var e=o(t);if(e.length%2!=0)return e[Math.floor(e.length/2)];var r=e.length/2,i=r-1;return n([e[r],e[i]])}function u(t){if(0==t.length)return 1/0;var e=t[0];return t.slice(1).forEach(function(t){e=Math.min(e,t)}),e}function h(t){if(0==t.length)return-1/0;var e=t[0];return t.slice(1).forEach(function(t){e=Math.max(e,t)}),e}function c(t,e,r){return t>=e&&t<=r}function l(t,e,r){return t>e&&t<r}function f(t,e,r){return t<e?e:t>r?r:t}function d(t,e,r){return Math.abs(t-e)<=r}function m(t){i(t),t.reverse()}function p(t){var e=o(t);return e.reverse(),e}function y(t,e){return Number.parseFloat(t.toFixed(null!=e?e:0))}function g(t){return t*(180/Math.PI)}function b(t){return t*(Math.PI/180)}function v(t,e){void 0===e&&(e=-Math.PI);var r=t-e;return e+((r%=2*Math.PI)>=0?r:r+2*Math.PI)}function w(t,e){var r=(e=v(e,t))-t;return(r<Math.PI/2||r>3*Math.PI/2)&&(t+=Math.PI),t}return e})()}},e={};function r(n){var i=e[n];if(void 0!==i)return i.exports;var s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,r),s.exports}r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var n={};return(()=>{"use strict";r.r(n),r.d(n,{Box:()=>e});var t=r(986);class e{static matching(t){let{x:r,y:n,width:i,height:s}=t;return new e(r,n,i,s)}static bounding(r){let n=[...r];if(0==n.length)throw new Error("An empty collection of boxes doesn't have a bounding box.");let i=n.map(t=>e.matching(t)),s=(0,t.min)(i.map(t=>t.left)),o=(0,t.min)(i.map(t=>t.top)),a=(0,t.max)(i.map(t=>t.right))-s,u=(0,t.max)(i.map(t=>t.bottom))-o;return new e(s,o,a,u)}constructor(t,e,r,n){this.x=t,this.y=e,this.width=r,this.height=n}get centerX(){return this.minX+this.width/2}get centerY(){return this.minY+this.height/2}get minX(){return this.x}get minY(){return this.y}get maxX(){return this.minX+this.width}get maxY(){return this.minY+this.height}get top(){return this.minY}get right(){return this.maxX}get bottom(){return this.maxY}get left(){return this.minX}bounds(t){let r=e.matching(t);return this.minX<=r.minX&&this.minY<=r.minY&&this.maxX>=r.maxX&&this.maxY>=r.maxY}padded(...t){let r="number"==typeof t[0]?t[0]:"factor"in t[0]?t[0].factor*this.width:t[0].percentage/100*this.width,n="number"==typeof t[0]&&"number"==typeof t[1]?t[1]:"number"==typeof t[0]?t[0]:"factor"in t[0]?t[0].factor*this.height:t[0].percentage/100*this.height;return new e(this.x-r,this.y-n,this.width+2*r,this.height+2*n)}get periphery(){return{atAngle:t=>{let e=this.width/2,r=this.height/2,n=Math.pow(Math.pow(e,2)+Math.pow(r,2),.5),i=this.centerX+n*Math.cos(t),s=this.centerY+n*Math.sin(t),o=n;return Math.abs(this.centerX-i)>e&&(o=Math.abs(e/Math.cos(t)),o=Number.isFinite(o)?o:r),Math.abs(this.centerY-s)>r&&(o=Math.abs(r/Math.sin(t)),o=Number.isFinite(o)?o:e),{x:this.centerX+o*Math.cos(t),y:this.centerY+o*Math.sin(t)}}}}}})(),n})(),t.exports=e()},297(t){var e;e=()=>(()=>{var t={106(t){var e;e=()=>(()=>{var t={992:function(t){var e;e=()=>(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};t.r(e),t.d(e,{KeyBinding:()=>m});var r,n,i,s,o,a,u,h,c,l,f=function(t,e,r,n,i){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!i:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===n?i.call(t,r):i?i.value=r:e.set(t,r),r},d=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class m{constructor(t,e,a){r.add(this),this.key=t,n.set(this,void 0),i.set(this,void 0),s.set(this,void 0),o.set(this,void 0),f(this,n,e,"f"),f(this,i,t=>d(this,r,"m",l).call(this,t),"f"),f(this,s,a,"f")}get owner(){return d(this,o,"f")}set owner(t){var e;null===(e=d(this,o,"f"))||void 0===e||e.removeEventListener("keydown",d(this,i,"f")),null==t||t.addEventListener("keydown",d(this,i,"f"),{passive:!1}),f(this,o,t,"f")}}return n=new WeakMap,i=new WeakMap,s=new WeakMap,o=new WeakMap,r=new WeakSet,a=function(){var t,e;return null!==(e=null===(t=d(this,s,"f"))||void 0===t?void 0:t.altKey)&&void 0!==e&&e},u=function(){var t,e;return null!==(e=null===(t=d(this,s,"f"))||void 0===t?void 0:t.ctrlKey)&&void 0!==e&&e},h=function(){var t,e;return null!==(e=null===(t=d(this,s,"f"))||void 0===t?void 0:t.metaKey)&&void 0!==e&&e},c=function(){var t,e;return null!==(e=null===(t=d(this,s,"f"))||void 0===t?void 0:t.shiftKey)&&void 0!==e&&e},l=function(t){this.owner&&this.owner===document.activeElement&&t.key.toUpperCase()===this.key.toUpperCase()&&t.altKey===d(this,r,"a",a)&&t.ctrlKey===d(this,r,"a",u)&&t.metaKey===d(this,r,"a",h)&&t.shiftKey===d(this,r,"a",c)&&(t.preventDefault(),d(this,n,"f").call(this))},e})(),t.exports=e()}},e={};function r(n){var i=e[n];if(void 0!==i)return i.exports;var s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,r),s.exports}r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var n={};return(()=>{"use strict";function t(t){if(t.length>0)return t[0];throw new Error("Array is empty.")}function e(t){if(t.length>0)return t[t.length-1];throw new Error("Array is empty.")}function i(t){if(t.length<3)throw new Error("Array has less than 3 items.");if(t.length%2==0)throw new Error("Array has an even number of items.");let e=Math.floor(t.length/2);return[t[e-1],t[e],t[e+1]]}function s(t){if(t.length<4)throw new Error("Array has less than 4 items.");if(t.length%2!=0)throw new Error("Array has an odd number of items.");let e=Math.floor(t.length/2);return[t[e-2],t[e-1],t[e],t[e+1]]}function o(t){return t.split(/\r\n|\r|\n/)}function a(t){try{return JSON.stringify(t),!0}catch(t){return!1}}function u(t){return t.map(t=>({v:t,priority:Math.random()})).sort((t,e)=>t.priority-e.priority).map(({v:t})=>t)}function h(t){return t===document.activeElement}function c(t){return!!document.activeElement&&t.contains(document.activeElement)}r.r(n),r.d(n,{DownloadableFile:()=>g,EventfulSet:()=>b,FiniteStack:()=>_,KeyBinding:()=>l.KeyBinding,containsFocus:()=>c,detectMacOS:()=>d,detectWindows:()=>f,first:()=>t,hasFocus:()=>h,isJSONSerializable:()=>a,isURL:()=>O,last:()=>e,middleFour:()=>s,middleThree:()=>i,shuffled:()=>u,splitLines:()=>o});var l=r(992);function f(){return-1!==navigator.userAgent.indexOf("Windows")}function d(){try{return window.navigator.platform.toLowerCase().includes("mac")}catch(t){return!1}}var m,p=function(t,e,r,n,i){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!i:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===n?i.call(t,r):i?i.value=r:e.set(t,r),r},y=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class g{constructor(t,e,r){m.set(this,void 0),this.name=null!=t?t:"Unnamed.txt",this.content=null!=e?e:"",p(this,m,null==r?void 0:r.type,"f")}get type(){return null!=y(this,m,"f")?y(this,m,"f"):this.content instanceof Blob?this.content.type:"text/plain"}set type(t){p(this,m,t,"f")}download(){let t=new File([this.content],this.name,{type:this.type}),e=URL.createObjectURL(t),r=document.createElement("a");r.href=e,r.download=t.name,document.body.appendChild(r),r.click(),r.remove(),URL.revokeObjectURL(e)}}m=new WeakMap;class b{constructor(){this.eventListeners={change:[]},this.underlyingSet=new Set}[Symbol.iterator](){return this.underlyingSet.values()}includes(t){return this.underlyingSet.has(t)}include(t){return this.includes(t)}addAll(t){let e=[...t];0!=e.length&&(e.every(t=>this.includes(t))||(e.forEach(t=>this.underlyingSet.add(t)),this.callEventListeners("change")))}removeAll(t){let e=[...t];0!=e.length&&(e.every(t=>!this.includes(t))||(e.forEach(t=>this.underlyingSet.delete(t)),this.callEventListeners("change")))}clear(){0!=this.underlyingSet.size&&(this.underlyingSet.clear(),this.callEventListeners("change"))}addEventListener(t,e){this.eventListeners[t].push(e)}callEventListeners(t){this.eventListeners[t].forEach(t=>t())}removeEventListener(t,e){this.eventListeners[t]=this.eventListeners[t].filter(t=>t!==e)}}var v,w,x,S,N=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class _{constructor(t){v.add(this),this.maxSize=t,w.set(this,[]),x.set(this,{change:[]})}get size(){return N(this,w,"f").length}isEmpty(){return 0==this.size}empty(){0!=this.size&&(function(t,e){if("function"==typeof e||!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");e.set(t,[])}(this,w),N(this,v,"m",S).call(this,"change"))}peek(){if(0==this.size)throw new Error("The stack is empty.");return N(this,w,"f")[N(this,w,"f").length-1]}push(t){N(this,w,"f").push(t),this.size>this.maxSize&&N(this,w,"f").shift(),N(this,v,"m",S).call(this,"change")}pop(){if(0==this.size)throw new Error("The stack is empty.");let t=N(this,w,"f").pop();return N(this,v,"m",S).call(this,"change"),t}addEventListener(t,e){N(this,x,"f")[t].push(e)}removeEventListener(t,e){N(this,x,"f")[t]=N(this,x,"f")[t].filter(t=>t!==e)}}function O(t){try{return new URL(t),!0}catch(t){return!1}}w=new WeakMap,x=new WeakMap,v=new WeakSet,S=function(t){N(this,x,"f")[t].forEach(t=>t())}})(),n})(),t.exports=e()}},e={};function r(n){var i=e[n];if(void 0!==i)return i.exports;var s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,r),s.exports}r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var n={};return(()=>{"use strict";r.r(n),r.d(n,{isCT:()=>f,parseCT:()=>e});var t=r(106);function e(e){let r=function(t){let e=t.findIndex(t=>!i(t)&&!s(t));if(e<0)throw new Error("Unable to find the start of the structure.");let r=[...t].reverse().findIndex(t=>!i(t)&&!s(t));if(r<0)throw new Error("Unable to find the end of the structure.");return r=t.length-r-1,t.slice(e,r+1)}((0,t.splitLines)(e));return{description:o(r),sequence:a(r),positionPairs:u(r),numberingOffset:h(r)}}function i(t){return 0==t.trim().length}function s(t){return"#"==t.trim().charAt(0)}function o(t){if(0==t.length)return;let e=t[0],r=c(e);if(r.length<2)return;let n=r[0];return e.slice(e.indexOf(n)+n.length).trim()}function a(t){return t.slice(1).map(t=>{let e=c(t);if(e.length<2)throw new Error("Line is missing a character.");return e[1]}).join("")}function u(t){let e=t.slice(1),r=[];return e.forEach((t,e)=>{let n=e+1,i=c(t);if(i.length>=5){let t=Number.parseFloat(i[4]);if(Number.isNaN(t))throw new Error("Partner positions must be numbers.");if(!Number.isInteger(t))throw new Error("Partner positions must be integers.");0!=t&&n<=t&&r.push([n,t])}}),r}function h(t){if(t.length<2)return 0;let e=c(t[1]);if(e.length<6)return 0;let r=Number.parseFloat(e[5]);return Number.isNaN(r)?0:Number.isInteger(r)?r-1:0}function c(t){return function(t){return t.split(/\s/)}(t).filter(l)}function l(t){return t.length>0}function f(r){let n;try{n=e(r)}catch(t){return!1}if(0==n.sequence.length)return!1;let i=(0,t.splitLines)(r);if(i=i.filter(e=>!function(t){return 0==t.length}(e)&&!function(t){return 0==t.trim().length}(e)&&!function(e){return!((0,t.splitLines)(e).length>1)&&"#"==e.trim().charAt(0)}(e)),0==i.length)return!1;let s=(0,t.first)(i),o=Number.parseFloat(s.trim().split(/\s+/)[0]);if(!Number.isInteger(o))return!1;let a=i.slice(1);return 0!=a.length&&a.every(t=>{let e=t.trim().split(/\s+/);if(e.length<5)return!1;let r=Number.parseFloat(e[4]);return Number.isInteger(r)})}})(),n})(),t.exports=e()},282(t){var e;e=()=>(()=>{var t={127(t){var e;e=()=>(()=>{var t={986(t){t.exports=(()=>{"use strict";const t={d:(e,r)=>{if(Array.isArray(r))for(var n=0;n<r.length;){var i=r[n++],s=r[n++];t.o(e,i)?0===s&&n++:0===s?Object.defineProperty(e,i,{enumerable:!0,value:r[n++]}):Object.defineProperty(e,i,{enumerable:!0,get:s})}else for(var i in r)t.o(r,i)&&!t.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:r[i]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}};let e={};function r(t,e){return Math.abs(t-e)}function n(t){let e=0;return t.forEach(t=>e+=t),e}function i(t){return n(t)/t.length}function s(t){t.sort((t,e)=>t-e)}function o(t){let e=[...t];return s(e),e}function a(t){if(0==t.length)return NaN;let e=o(t);if(e.length%2!=0)return e[Math.floor(e.length/2)];let r=e.length/2,n=r-1;return i([e[r],e[n]])}function u(t){if(0==t.length)return 1/0;let e=t[0];return t.slice(1).forEach(t=>{e=Math.min(e,t)}),e}function h(t){if(0==t.length)return-1/0;let e=t[0];return t.slice(1).forEach(t=>{e=Math.max(e,t)}),e}function c(t,e,r){return t>=e&&t<=r}function l(t,e,r){return t>e&&t<r}function f(t,e,r){return t<e?e:t>r?r:t}function d(t,e,r){return Math.abs(t-e)<=r}function m(t){s(t),t.reverse()}function p(t){let e=o(t);return e.reverse(),e}function y(t,e){return Number.parseFloat(t.toFixed(null!=e?e:0))}function g(t){return t*(180/Math.PI)}function b(t){return t*(Math.PI/180)}function v(t,e=-Math.PI){let r=t-e;return r%=2*Math.PI,r=r>=0?r:r+2*Math.PI,e+r}function w(t,e){let r=(e=v(e,t))-t;return(r<Math.PI/2||r>3*Math.PI/2)&&(t+=Math.PI),t}return t.r(e),t.d(e,{areWithin:()=>d,average:()=>i,clamp:()=>f,degrees:()=>g,distance:()=>r,flipAway:()=>w,isBetween:()=>c,isBetweenExclusive:()=>l,isBetweenInclusive:()=>c,max:()=>h,mean:()=>i,median:()=>a,min:()=>u,normalizeAngle:()=>v,radians:()=>b,round:()=>y,sortNumbers:()=>s,sortNumbersAscending:()=>s,sortNumbersDescending:()=>m,sortedNumbers:()=>o,sortedNumbersAscending:()=>o,sortedNumbersDescending:()=>p,sum:()=>n}),e})()},369(t){var e;e=()=>(()=>{var t={986(t){t.exports=(()=>{"use strict";const t={d:(e,r)=>{if(Array.isArray(r))for(var n=0;n<r.length;){var i=r[n++],s=r[n++];t.o(e,i)?0===s&&n++:0===s?Object.defineProperty(e,i,{enumerable:!0,value:r[n++]}):Object.defineProperty(e,i,{enumerable:!0,get:s})}else for(var i in r)t.o(r,i)&&!t.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:r[i]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}};let e={};function r(t,e){return Math.abs(t-e)}function n(t){let e=0;return t.forEach(t=>e+=t),e}function i(t){return n(t)/t.length}function s(t){t.sort((t,e)=>t-e)}function o(t){let e=[...t];return s(e),e}function a(t){if(0==t.length)return NaN;let e=o(t);if(e.length%2!=0)return e[Math.floor(e.length/2)];let r=e.length/2,n=r-1;return i([e[r],e[n]])}function u(t){if(0==t.length)return 1/0;let e=t[0];return t.slice(1).forEach(t=>{e=Math.min(e,t)}),e}function h(t){if(0==t.length)return-1/0;let e=t[0];return t.slice(1).forEach(t=>{e=Math.max(e,t)}),e}function c(t,e,r){return t>=e&&t<=r}function l(t,e,r){return t>e&&t<r}function f(t,e,r){return t<e?e:t>r?r:t}function d(t,e,r){return Math.abs(t-e)<=r}function m(t){s(t),t.reverse()}function p(t){let e=o(t);return e.reverse(),e}function y(t,e){return Number.parseFloat(t.toFixed(null!=e?e:0))}function g(t){return t*(180/Math.PI)}function b(t){return t*(Math.PI/180)}function v(t,e=-Math.PI){let r=t-e;return r%=2*Math.PI,r=r>=0?r:r+2*Math.PI,e+r}function w(t,e){let r=(e=v(e,t))-t;return(r<Math.PI/2||r>3*Math.PI/2)&&(t+=Math.PI),t}return t.r(e),t.d(e,{areWithin:()=>d,average:()=>i,clamp:()=>f,degrees:()=>g,distance:()=>r,flipAway:()=>w,isBetween:()=>c,isBetweenExclusive:()=>l,isBetweenInclusive:()=>c,max:()=>h,mean:()=>i,median:()=>a,min:()=>u,normalizeAngle:()=>v,radians:()=>b,round:()=>y,sortNumbers:()=>s,sortNumbersAscending:()=>s,sortNumbersDescending:()=>m,sortedNumbers:()=>o,sortedNumbersAscending:()=>o,sortedNumbersDescending:()=>p,sum:()=>n}),e})()},106(t){var e;e=()=>(()=>{var t={992(t){var e;e=()=>(()=>{"use strict";const t={d:(e,r)=>{if(Array.isArray(r))for(var n=0;n<r.length;){var i=r[n++],s=r[n++];t.o(e,i)?0===s&&n++:0===s?Object.defineProperty(e,i,{enumerable:!0,value:r[n++]}):Object.defineProperty(e,i,{enumerable:!0,get:s})}else for(var i in r)t.o(r,i)&&!t.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:r[i]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}};let e={};t.r(e),t.d(e,{KeyBinding:()=>p});var r,n,i,s,o,a,u,h,c,l,f,d=function(t,e,r,n,i){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!i:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===n?i.call(t,r):i?i.value=r:e.set(t,r),r},m=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class p{constructor(t,e,a){r.add(this),this.key=t,n.set(this,void 0),i.set(this,void 0),s.set(this,void 0),o.set(this,void 0),d(this,n,e,"f"),d(this,i,t=>m(this,r,"m",l).call(this,t),"f"),d(this,s,a,"f")}get owner(){return m(this,o,"f")}set owner(t){var e;null===(e=m(this,o,"f"))||void 0===e||e.removeEventListener("keydown",m(this,i,"f")),null==t||t.addEventListener("keydown",m(this,i,"f"),{passive:!1}),d(this,o,t,"f")}}return n=new WeakMap,i=new WeakMap,s=new WeakMap,o=new WeakMap,r=new WeakSet,a=function(){var t,e;return null!==(e=null===(t=m(this,s,"f"))||void 0===t?void 0:t.altKey)&&void 0!==e&&e},u=function(){var t,e;return null!==(e=null===(t=m(this,s,"f"))||void 0===t?void 0:t.ctrlKey)&&void 0!==e&&e},h=function(){var t,e;return null!==(e=null===(t=m(this,s,"f"))||void 0===t?void 0:t.metaKey)&&void 0!==e&&e},c=function(){var t,e;return null!==(e=null===(t=m(this,s,"f"))||void 0===t?void 0:t.shiftKey)&&void 0!==e&&e},l=function(t){this.owner&&this.owner===document.activeElement&&`Key${this.key}`.toUpperCase()===t.code.toUpperCase()&&t.altKey===m(this,r,"a",a)&&t.ctrlKey===m(this,r,"a",u)&&t.metaKey===m(this,r,"a",h)&&t.shiftKey===m(this,r,"a",c)&&m(this,r,"m",f).call(this,t)},f=function(t){t.preventDefault(),m(this,n,"f").call(this)},e})(),t.exports=e()},854(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){return"number"==typeof t}function n(t){return r(t)&&Number.isFinite(t)}function i(t){return r(t)&&!Number.isFinite(t)}function s(t){return n(t)&&t>0}function o(t){return n(t)&&t>=0}function a(t){return"string"==typeof t}function u(t){return""===t}function h(t){return a(t)&&!u(t)}function c(t){return!!a(t)&&0==t.trim().length}function l(t){if(!a(t))return!1;try{return JSON.parse(t),!0}catch{return!1}}function f(t){try{return JSON.stringify(t),!0}catch{return!1}}function d(t){return!!t}function m(t){return!t}function p(t){return null==t}function y(t){return"object"==typeof t&&null!==t}function g(t){return Array.isArray(t)}function b(t){return g(t)&&0==t.length}function v(t){return g(t)&&t.length>0}function w(t){return g(t)&&t.every(r)}function x(t){return w(t)&&t.length>0}function S(t){return g(t)&&t.every(n)}function N(t){return g(t)&&t.every(i)}function _(t){return g(t)&&t.every(a)}function O(t){return _(t)&&t.length>0}function P(t){return t instanceof SVGGraphicsElement}return t.r(e),t.d(e,{isArray:()=>g,isEmptyArray:()=>b,isEmptyString:()=>u,isFalsy:()=>m,isFiniteNumber:()=>n,isFiniteNumbersArray:()=>S,isJSON:()=>l,isJSONSerializable:()=>f,isNonEmptyArray:()=>v,isNonEmptyNumbersArray:()=>x,isNonEmptyString:()=>h,isNonEmptyStringsArray:()=>O,isNonFiniteNumber:()=>i,isNonFiniteNumbersArray:()=>N,isNonNegativeFiniteNumber:()=>o,isNonNullObject:()=>y,isNullish:()=>p,isNumber:()=>r,isNumbersArray:()=>w,isPositiveFiniteNumber:()=>s,isSVGGraphicsElement:()=>P,isString:()=>a,isStringsArray:()=>_,isTruthy:()=>d,isWhitespace:()=>c}),e})()}};const e={};function r(n){const i=e[n];if(void 0!==i)return i.exports;const s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,r),s.exports}r.d=(t,e)=>{if(Array.isArray(e))for(var n=0;n<e.length;){var i=e[n++],s=e[n++];r.o(t,i)?0===s&&n++:0===s?Object.defineProperty(t,i,{enumerable:!0,value:e[n++]}):Object.defineProperty(t,i,{enumerable:!0,get:s})}else for(var i in e)r.o(e,i)&&!r.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};let n={};return(()=>{"use strict";function t(t){if(t.length>0)return t[0];throw new Error("Array is empty.")}function e(t){if(t.length>0)return t[t.length-1];throw new Error("Array is empty.")}function i(t){if(t.length<3)throw new Error("Array has less than 3 items.");if(t.length%2==0)throw new Error("Array has an even number of items.");let e=Math.floor(t.length/2);return[t[e-1],t[e],t[e+1]]}function s(t){if(t.length<4)throw new Error("Array has less than 4 items.");if(t.length%2!=0)throw new Error("Array has an odd number of items.");let e=Math.floor(t.length/2);return[t[e-2],t[e-1],t[e],t[e+1]]}function o(t){return t.length<2?[]:t.slice(0,-1).map((e,r)=>[t[r],t[r+1]])}r.r(n),r.d(n,{DownloadableFile:()=>v,EventfulSet:()=>w,FiniteStack:()=>P,KeyBinding:()=>d.KeyBinding,consecutivePairs:()=>o,containsFocus:()=>f,detectMac:()=>p,detectWindows:()=>m,first:()=>t,hasFocus:()=>l,isJSON:()=>a.isJSON,isJSONSerializable:()=>a.isJSONSerializable,isURL:()=>E,last:()=>e,middleFour:()=>s,middleThree:()=>i,removeWhitespace:()=>u,shuffled:()=>c,splitLines:()=>h});var a=r(854);function u(t){return[...t].filter(t=>!(0,a.isWhitespace)(t)).join("")}function h(t){return t.split(/\r\n|\r|\n/)}function c(t){return t.map(t=>({v:t,priority:Math.random()})).sort((t,e)=>t.priority-e.priority).map(({v:t})=>t)}function l(t){return t===document.activeElement}function f(t){return!!document.activeElement&&t.contains(document.activeElement)}var d=r(992);function m(){return-1!==navigator.userAgent.indexOf("Windows")}function p(){try{return window.navigator.platform.toLowerCase().includes("mac")}catch(t){return!1}}var y,g=function(t,e,r,n,i){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!i:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===n?i.call(t,r):i?i.value=r:e.set(t,r),r},b=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class v{constructor(t,e,r){y.set(this,void 0),this.name=null!=t?t:"Unnamed.txt",this.content=null!=e?e:"",g(this,y,null==r?void 0:r.type,"f")}get type(){return null!=b(this,y,"f")?b(this,y,"f"):this.content instanceof Blob?this.content.type:"text/plain"}set type(t){g(this,y,t,"f")}download(){let t=new File([this.content],this.name,{type:this.type}),e=URL.createObjectURL(t),r=document.createElement("a");r.href=e,r.download=t.name,document.body.appendChild(r),r.click(),r.remove(),URL.revokeObjectURL(e)}}y=new WeakMap;class w{constructor(){this.eventListeners={change:[]},this.underlyingSet=new Set}[Symbol.iterator](){return this.underlyingSet.values()}includes(t){return this.underlyingSet.has(t)}include(t){return this.includes(t)}addAll(t){let e=[...t];0!=e.length&&(e.every(t=>this.includes(t))||(e.forEach(t=>this.underlyingSet.add(t)),this.callEventListeners("change")))}removeAll(t){let e=[...t];0!=e.length&&(e.every(t=>!this.includes(t))||(e.forEach(t=>this.underlyingSet.delete(t)),this.callEventListeners("change")))}clear(){0!=this.underlyingSet.size&&(this.underlyingSet.clear(),this.callEventListeners("change"))}addEventListener(t,e){this.eventListeners[t].push(e)}callEventListeners(t){this.eventListeners[t].forEach(t=>t())}removeEventListener(t,e){this.eventListeners[t]=this.eventListeners[t].filter(t=>t!==e)}}var x,S,N,_,O=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class P{constructor(t){x.add(this),this.maxSize=t,S.set(this,[]),N.set(this,{change:[]})}get size(){return O(this,S,"f").length}isEmpty(){return 0==this.size}empty(){0!=this.size&&(function(t,e){if("function"==typeof e||!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");e.set(t,[])}(this,S),O(this,x,"m",_).call(this,"change"))}peek(){if(0==this.size)throw new Error("The stack is empty.");return O(this,S,"f")[O(this,S,"f").length-1]}push(t){O(this,S,"f").push(t),this.size>this.maxSize&&O(this,S,"f").shift(),O(this,x,"m",_).call(this,"change")}pop(){if(0==this.size)throw new Error("The stack is empty.");let t=O(this,S,"f").pop();return O(this,x,"m",_).call(this,"change"),t}addEventListener(t,e){O(this,N,"f")[t].push(e)}removeEventListener(t,e){O(this,N,"f")[t]=O(this,N,"f")[t].filter(t=>t!==e)}}function E(t){try{return new URL(t),!0}catch(t){return!1}}S=new WeakMap,N=new WeakMap,x=new WeakSet,_=function(t){O(this,N,"f")[t].forEach(t=>t())}})(),n})(),t.exports=e()},854(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){return"number"==typeof t}function n(t){return r(t)&&Number.isFinite(t)}function i(t){return r(t)&&!Number.isFinite(t)}function s(t){return n(t)&&t>0}function o(t){return n(t)&&t>=0}function a(t){return"string"==typeof t}function u(t){return""===t}function h(t){return a(t)&&!u(t)}function c(t){return!!a(t)&&0==t.trim().length}function l(t){if(!a(t))return!1;try{return JSON.parse(t),!0}catch{return!1}}function f(t){try{return JSON.stringify(t),!0}catch{return!1}}function d(t){return!!t}function m(t){return!t}function p(t){return null==t}function y(t){return"object"==typeof t&&null!==t}function g(t){return Array.isArray(t)}function b(t){return g(t)&&0==t.length}function v(t){return g(t)&&t.length>0}function w(t){return g(t)&&t.every(r)}function x(t){return w(t)&&t.length>0}function S(t){return g(t)&&t.every(n)}function N(t){return g(t)&&t.every(i)}function _(t){return g(t)&&t.every(a)}function O(t){return _(t)&&t.length>0}function P(t){return t instanceof SVGGraphicsElement}return t.r(e),t.d(e,{isArray:()=>g,isEmptyArray:()=>b,isEmptyString:()=>u,isFalsy:()=>m,isFiniteNumber:()=>n,isFiniteNumbersArray:()=>S,isJSON:()=>l,isJSONSerializable:()=>f,isNonEmptyArray:()=>v,isNonEmptyNumbersArray:()=>x,isNonEmptyString:()=>h,isNonEmptyStringsArray:()=>O,isNonFiniteNumber:()=>i,isNonFiniteNumbersArray:()=>N,isNonNegativeFiniteNumber:()=>o,isNonNullObject:()=>y,isNullish:()=>p,isNumber:()=>r,isNumbersArray:()=>w,isPositiveFiniteNumber:()=>s,isSVGGraphicsElement:()=>P,isString:()=>a,isStringsArray:()=>_,isTruthy:()=>d,isWhitespace:()=>c}),e})()}};const e={};function r(n){const i=e[n];if(void 0!==i)return i.exports;const s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,r),s.exports}r.d=(t,e)=>{if(Array.isArray(e))for(var n=0;n<e.length;){var i=e[n++],s=e[n++];r.o(t,i)?0===s&&n++:0===s?Object.defineProperty(t,i,{enumerable:!0,value:e[n++]}):Object.defineProperty(t,i,{enumerable:!0,get:s})}else for(var i in e)r.o(e,i)&&!r.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};let n={};return(()=>{"use strict";r.r(n),r.d(n,{Linkers:()=>p,Stems:()=>m,areConflicting:()=>u,areCrossing:()=>l,areEqual:()=>o,areKnotless:()=>c,areStacked:()=>a,basePairs:()=>w,deepCopy:()=>e,knotless:()=>f,mountainPlotTraversal:()=>y,parseDotBracket:()=>b,radializable:()=>d,sorted:()=>s});var t=r(854);function e(e){return(0,t.isNumbersArray)(e)?[...e]:e.map(t=>[...t])}var i=r(986);function s(t){let r=e(t);return r.forEach(i.sortNumbers),r.sort((t,e)=>t[0]-e[0]),r}function o(t,r){let n=e(t),s=e(r);return(0,i.sortNumbers)(n),(0,i.sortNumbers)(s),[0,1].every(t=>n[t]==s[t])}function a(t,e){let r=s([t,e]);return r[0][0]==r[1][0]-1&&r[0][1]==r[1][1]+1}function u(t,e){return(0,i.min)(t)==(0,i.min)(e)&&(0,i.max)(t)!=(0,i.max)(e)||(0,i.min)(t)!=(0,i.min)(e)&&(0,i.max)(t)==(0,i.max)(e)}function h(t){if(0==t.length)return[];let e=[];for(let r=0;r<(0,i.max)(t.flat());r++)e.push(void 0);return t.forEach(t=>{e[t[0]-1]=t[1],e[t[1]-1]=t[0]}),e}function c(t){let e=h(t),r=[],n=!1;return e.forEach((t,e)=>{let i=e+1;null==t||(i<t?r.push(i):i==t||r.pop()!=t&&(n=!0))}),!n}function l(t,e){return!c([t,e])}function f(t){let r=[],n=e(t);n.sort((t,e)=>Math.abs(t[0]-t[1])-Math.abs(e[0]-e[1]));let s=[];return n.forEach(t=>{let e=[t[0]-1,t[1]-1],n=(0,i.min)(e),o=(0,i.max)(e);if(!s[n]&&!s[o]){r.push(t);for(let t=n;t<=o;t++)s[t]=!0}}),r}function d(t){let r=e(t);r.sort(([t,e],[r,n])=>Math.abs(t-e)-Math.abs(r-n));let n=[],i=[];return r.forEach(([t,e])=>{t==e||null!=i[t-1]||null!=i[e-1]||(n.push([t,e]),i[t-1]=e,i[e-1]=t)}),f(n)}class m{constructor(...t){this.targetStructure=t}get(){let t=this.targetStructure[1];if(0==t.length)return[];let e=s(t),r=[],n=[];return e.forEach(t=>{let e=0==n.length?null:n[n.length-1];!e||a(e,t)?n.push(t):(r.push(n),n=[t])}),r.push(n),r}}class p{constructor(...t){this.targetStructure=t}get(){let t=new m(...this.targetStructure).get().flatMap(t=>[t.map(i.min),t.map(i.max)]);t.forEach(i.sortNumbers),t.sort((t,e)=>(0,i.min)(t)-(0,i.min)(e));let e=[],r=t.shift(),n=t.shift();for(;r&&n;){let s=[],o=(0,i.max)(r),a=(0,i.min)(n);for(let t=o;t<=a;t++)s.push(t);e.push(s),r=n,n=t.shift()}return e}}function y(...t){let e=t[0],r=t[1],n=h(r);if(!c(r))throw new Error("Pseudoknot(s) encountered.");let i=[],s=0;return e.forEach((t,e)=>{let r=e+1,o=n[e];null==o?i.push(s):r<o?(i.push(s),s++):(r==o||s--,i.push(s))}),i}var g=r(106);function b(t){t=(0,g.removeWhitespace)(t);let e={"()":[],"[]":[],"{}":[],"<>":[]};v.forEach(r=>{let[n,i]=r.split(""),o=[...t].map(t=>t===n?"(":t===i?")":".").join("");e[r]=function(t){let e=[],r=[];if([...t].forEach((t,n)=>{let i=n+1;if("."==t);else if("("==t)r.push(i);else if(")"==t){let t=r.pop();if("number"!=typeof t)throw new Error(`Unmatched downstream partner in dot-bracket notation at position: ${i}.`);e.push([t,i])}}),r.length>0)throw new Error(`Unmatched upstream partner in dot-bracket notation at position: ${r.pop()}.`);return s(e)}(o)});let r=()=>s(v.flatMap(t=>e[t]));return{[Symbol.iterator]:()=>r()[Symbol.iterator](),toArray:r,...e}}const v=["()","[]","{}","<>"];function w(t,e){return e.forEach(e=>{e.forEach(e=>{if(e<1)throw new Error("Sequence positions must be positive.");if(e>t.length)throw new Error("Position out of sequence range.")})}),e.map(e=>[t[e[0]-1],t[e[1]-1]])}})(),n})(),t.exports=e()},106(t){var e;e=()=>(()=>{var t={992(t){var e;e=()=>(()=>{"use strict";const t={d:(e,r)=>{if(Array.isArray(r))for(var n=0;n<r.length;){var i=r[n++],s=r[n++];t.o(e,i)?0===s&&n++:0===s?Object.defineProperty(e,i,{enumerable:!0,value:r[n++]}):Object.defineProperty(e,i,{enumerable:!0,get:s})}else for(var i in r)t.o(r,i)&&!t.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:r[i]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}};let e={};t.r(e),t.d(e,{KeyBinding:()=>p});var r,n,i,s,o,a,u,h,c,l,f,d=function(t,e,r,n,i){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!i:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===n?i.call(t,r):i?i.value=r:e.set(t,r),r},m=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class p{constructor(t,e,a){r.add(this),this.key=t,n.set(this,void 0),i.set(this,void 0),s.set(this,void 0),o.set(this,void 0),d(this,n,e,"f"),d(this,i,t=>m(this,r,"m",l).call(this,t),"f"),d(this,s,a,"f")}get owner(){return m(this,o,"f")}set owner(t){var e;null===(e=m(this,o,"f"))||void 0===e||e.removeEventListener("keydown",m(this,i,"f")),null==t||t.addEventListener("keydown",m(this,i,"f"),{passive:!1}),d(this,o,t,"f")}}return n=new WeakMap,i=new WeakMap,s=new WeakMap,o=new WeakMap,r=new WeakSet,a=function(){var t,e;return null!==(e=null===(t=m(this,s,"f"))||void 0===t?void 0:t.altKey)&&void 0!==e&&e},u=function(){var t,e;return null!==(e=null===(t=m(this,s,"f"))||void 0===t?void 0:t.ctrlKey)&&void 0!==e&&e},h=function(){var t,e;return null!==(e=null===(t=m(this,s,"f"))||void 0===t?void 0:t.metaKey)&&void 0!==e&&e},c=function(){var t,e;return null!==(e=null===(t=m(this,s,"f"))||void 0===t?void 0:t.shiftKey)&&void 0!==e&&e},l=function(t){this.owner&&this.owner===document.activeElement&&`Key${this.key}`.toUpperCase()===t.code.toUpperCase()&&t.altKey===m(this,r,"a",a)&&t.ctrlKey===m(this,r,"a",u)&&t.metaKey===m(this,r,"a",h)&&t.shiftKey===m(this,r,"a",c)&&m(this,r,"m",f).call(this,t)},f=function(t){t.preventDefault(),m(this,n,"f").call(this)},e})(),t.exports=e()},854(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){return"number"==typeof t}function n(t){return r(t)&&Number.isFinite(t)}function i(t){return r(t)&&!Number.isFinite(t)}function s(t){return n(t)&&t>0}function o(t){return n(t)&&t>=0}function a(t){return"string"==typeof t}function u(t){return""===t}function h(t){return a(t)&&!u(t)}function c(t){return!!a(t)&&0==t.trim().length}function l(t){if(!a(t))return!1;try{return JSON.parse(t),!0}catch{return!1}}function f(t){try{return JSON.stringify(t),!0}catch{return!1}}function d(t){return!!t}function m(t){return!t}function p(t){return null==t}function y(t){return"object"==typeof t&&null!==t}function g(t){return Array.isArray(t)}function b(t){return g(t)&&0==t.length}function v(t){return g(t)&&t.length>0}function w(t){return g(t)&&t.every(r)}function x(t){return w(t)&&t.length>0}function S(t){return g(t)&&t.every(n)}function N(t){return g(t)&&t.every(i)}function _(t){return g(t)&&t.every(a)}function O(t){return _(t)&&t.length>0}function P(t){return t instanceof SVGGraphicsElement}return t.r(e),t.d(e,{isArray:()=>g,isEmptyArray:()=>b,isEmptyString:()=>u,isFalsy:()=>m,isFiniteNumber:()=>n,isFiniteNumbersArray:()=>S,isJSON:()=>l,isJSONSerializable:()=>f,isNonEmptyArray:()=>v,isNonEmptyNumbersArray:()=>x,isNonEmptyString:()=>h,isNonEmptyStringsArray:()=>O,isNonFiniteNumber:()=>i,isNonFiniteNumbersArray:()=>N,isNonNegativeFiniteNumber:()=>o,isNonNullObject:()=>y,isNullish:()=>p,isNumber:()=>r,isNumbersArray:()=>w,isPositiveFiniteNumber:()=>s,isSVGGraphicsElement:()=>P,isString:()=>a,isStringsArray:()=>_,isTruthy:()=>d,isWhitespace:()=>c}),e})()}};const e={};function r(n){const i=e[n];if(void 0!==i)return i.exports;const s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,r),s.exports}r.d=(t,e)=>{if(Array.isArray(e))for(var n=0;n<e.length;){var i=e[n++],s=e[n++];r.o(t,i)?0===s&&n++:0===s?Object.defineProperty(t,i,{enumerable:!0,value:e[n++]}):Object.defineProperty(t,i,{enumerable:!0,get:s})}else for(var i in e)r.o(e,i)&&!r.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};let n={};return(()=>{"use strict";function t(t){if(t.length>0)return t[0];throw new Error("Array is empty.")}function e(t){if(t.length>0)return t[t.length-1];throw new Error("Array is empty.")}function i(t){if(t.length<3)throw new Error("Array has less than 3 items.");if(t.length%2==0)throw new Error("Array has an even number of items.");let e=Math.floor(t.length/2);return[t[e-1],t[e],t[e+1]]}function s(t){if(t.length<4)throw new Error("Array has less than 4 items.");if(t.length%2!=0)throw new Error("Array has an odd number of items.");let e=Math.floor(t.length/2);return[t[e-2],t[e-1],t[e],t[e+1]]}function o(t){return t.length<2?[]:t.slice(0,-1).map((e,r)=>[t[r],t[r+1]])}r.r(n),r.d(n,{DownloadableFile:()=>v,EventfulSet:()=>w,FiniteStack:()=>P,KeyBinding:()=>d.KeyBinding,consecutivePairs:()=>o,containsFocus:()=>f,detectMac:()=>p,detectWindows:()=>m,first:()=>t,hasFocus:()=>l,isJSON:()=>a.isJSON,isJSONSerializable:()=>a.isJSONSerializable,isURL:()=>E,last:()=>e,middleFour:()=>s,middleThree:()=>i,removeWhitespace:()=>u,shuffled:()=>c,splitLines:()=>h});var a=r(854);function u(t){return[...t].filter(t=>!(0,a.isWhitespace)(t)).join("")}function h(t){return t.split(/\r\n|\r|\n/)}function c(t){return t.map(t=>({v:t,priority:Math.random()})).sort((t,e)=>t.priority-e.priority).map(({v:t})=>t)}function l(t){return t===document.activeElement}function f(t){return!!document.activeElement&&t.contains(document.activeElement)}var d=r(992);function m(){return-1!==navigator.userAgent.indexOf("Windows")}function p(){try{return window.navigator.platform.toLowerCase().includes("mac")}catch(t){return!1}}var y,g=function(t,e,r,n,i){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!i:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===n?i.call(t,r):i?i.value=r:e.set(t,r),r},b=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class v{constructor(t,e,r){y.set(this,void 0),this.name=null!=t?t:"Unnamed.txt",this.content=null!=e?e:"",g(this,y,null==r?void 0:r.type,"f")}get type(){return null!=b(this,y,"f")?b(this,y,"f"):this.content instanceof Blob?this.content.type:"text/plain"}set type(t){g(this,y,t,"f")}download(){let t=new File([this.content],this.name,{type:this.type}),e=URL.createObjectURL(t),r=document.createElement("a");r.href=e,r.download=t.name,document.body.appendChild(r),r.click(),r.remove(),URL.revokeObjectURL(e)}}y=new WeakMap;class w{constructor(){this.eventListeners={change:[]},this.underlyingSet=new Set}[Symbol.iterator](){return this.underlyingSet.values()}includes(t){return this.underlyingSet.has(t)}include(t){return this.includes(t)}addAll(t){let e=[...t];0!=e.length&&(e.every(t=>this.includes(t))||(e.forEach(t=>this.underlyingSet.add(t)),this.callEventListeners("change")))}removeAll(t){let e=[...t];0!=e.length&&(e.every(t=>!this.includes(t))||(e.forEach(t=>this.underlyingSet.delete(t)),this.callEventListeners("change")))}clear(){0!=this.underlyingSet.size&&(this.underlyingSet.clear(),this.callEventListeners("change"))}addEventListener(t,e){this.eventListeners[t].push(e)}callEventListeners(t){this.eventListeners[t].forEach(t=>t())}removeEventListener(t,e){this.eventListeners[t]=this.eventListeners[t].filter(t=>t!==e)}}var x,S,N,_,O=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class P{constructor(t){x.add(this),this.maxSize=t,S.set(this,[]),N.set(this,{change:[]})}get size(){return O(this,S,"f").length}isEmpty(){return 0==this.size}empty(){0!=this.size&&(function(t,e){if("function"==typeof e||!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");e.set(t,[])}(this,S),O(this,x,"m",_).call(this,"change"))}peek(){if(0==this.size)throw new Error("The stack is empty.");return O(this,S,"f")[O(this,S,"f").length-1]}push(t){O(this,S,"f").push(t),this.size>this.maxSize&&O(this,S,"f").shift(),O(this,x,"m",_).call(this,"change")}pop(){if(0==this.size)throw new Error("The stack is empty.");let t=O(this,S,"f").pop();return O(this,x,"m",_).call(this,"change"),t}addEventListener(t,e){O(this,N,"f")[t].push(e)}removeEventListener(t,e){O(this,N,"f")[t]=O(this,N,"f")[t].filter(t=>t!==e)}}function E(t){try{return new URL(t),!0}catch(t){return!1}}S=new WeakMap,N=new WeakMap,x=new WeakSet,_=function(t){O(this,N,"f")[t].forEach(t=>t())}})(),n})(),t.exports=e()}};const e={};function r(n){const i=e[n];if(void 0!==i)return i.exports;const s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,r),s.exports}r.d=(t,e)=>{if(Array.isArray(e))for(var n=0;n<e.length;){var i=e[n++],s=e[n++];r.o(t,i)?0===s&&n++:0===s?Object.defineProperty(t,i,{enumerable:!0,value:e[n++]}):Object.defineProperty(t,i,{enumerable:!0,get:s})}else for(var i in e)r.o(e,i)&&!r.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};let n={};return(()=>{"use strict";function t(t,e){return t[0]===e[0]&&t[1]===e[1]||t[0]===e[1]&&t[1]===e[0]}function e(t,e){if(!e.includes(t))throw new Error("The given base is not present in the provided base-pair.");return t===e[0]?e[1]:e[0]}r.r(n),r.d(n,{FirstPairedBase:()=>s,LastPairedBase:()=>a,LeadingDanglingBases:()=>u,Linkers:()=>f,PositionPairs:()=>i,Stems:()=>l,TrailingDanglingBases:()=>h,antiParallelPairs:()=>w,areEqual:()=>t,consecutivePairs:()=>b,knotless:()=>d,missing:()=>x,mountainPlotTraversal:()=>p,other:()=>e,parallelPairs:()=>v,parseDotBracket:()=>y,radializable:()=>m});class i{constructor(...t){this.targetStructure=t}get(){let t=this.targetStructure[0];return this.targetStructure[1].map(e=>[t.indexOf(e[0])+1,t.indexOf(e[1])+1])}}class s{constructor(...t){this.targetStructure=t}get(){let t=this.targetStructure[0],e=this.targetStructure[1];if(0==e.length)throw new Error("There are no paired bases.");let r=e.flat(),n=t.findIndex(t=>r.includes(t));if(n<0)throw new Error("No paired bases present in sequence.");return t[n]}}var o=r(986);class a{constructor(...t){this.targetStructure=t}get(){let t=this.targetStructure[0],e=this.targetStructure[1];if(0==e.length)throw new Error("There are no paired bases.");let r=e.flat().map(e=>t.indexOf(e));if((0,o.max)(r)<0)throw new Error("No paired bases present in sequence.");return t[(0,o.max)(r)]}}class u{constructor(...t){this.targetStructure=t}get(){let t=this.targetStructure[0];if(0==this.targetStructure[1].length)throw new Error("There are no paired bases.");let e=new s(...this.targetStructure).get(),r=t.indexOf(e);if(r<0)throw new Error("No paired bases present in sequence.");return t.slice(0,r)}}class h{constructor(...t){this.targetStructure=t}get(){let t=this.targetStructure[0];if(0==this.targetStructure[1].length)throw new Error("There are no paired bases.");let e=new a(...this.targetStructure).get(),r=t.indexOf(e);if(r<0)throw new Error("No paired bases present in sequence.");return t.slice(r+1)}}var c=r(369);class l{constructor(...t){this.targetStructure=t}get(){let t=this.targetStructure[0],e=new i(...this.targetStructure).get();return new c.Stems(t,e).get().map(e=>e.map(e=>[t[e[0]-1],t[e[1]-1]]))}}class f{constructor(...t){this.targetStructure=t}get(){let t=this.targetStructure[0],e=new i(...this.targetStructure).get();return new c.Linkers(t,e).get().map(e=>e.map(e=>t[e-1]))}}function d(...t){let[e,r]=t,n=new i(...t).get();(0,c.areKnotless)(n)||(n=(0,c.knotless)(n));let s=n.map(t=>[e[t[0]-1],e[t[1]-1]]);return[[...e],s]}function m(...t){let[e,r]=t,n=new i(...t).get();return[[...e],(0,c.radializable)(n).map(([t,r])=>[e[t-1],e[r-1]])]}function p(...t){let[e,r]=t,n=new i(...t).get();return(0,c.mountainPlotTraversal)(e,n)}function y(t,e){let r=(0,c.parseDotBracket)(e),n=()=>(0,c.basePairs)(t,r.toArray());return{[Symbol.iterator]:()=>n()[Symbol.iterator](),toArray:n,"()":(0,c.basePairs)(t,r["()"]),"[]":(0,c.basePairs)(t,r["[]"]),"{}":(0,c.basePairs)(t,r["{}"]),"<>":(0,c.basePairs)(t,r["<>"])}}var g=r(106);function b(t){return(0,g.consecutivePairs)(t)}function v(t){let e=[],r=Math.floor(t.length/2)-1,n=Math.ceil(t.length/2);for(let i=0;i<=r;i++){let r=t[i],s=t[n+i];e.push([r,s])}return e}function w(t){let e=[];for(let r=0;r<Math.floor(t.length/2);r++){let n=t[r],i=t[t.length-r-1];e.push([n,i])}return e}function x(e,r){return r.filter(r=>!e.find(e=>t(r,e))).map(t=>[...t])}})(),n})(),t.exports=e()},801(t){var e;e=()=>(()=>{var t={726(t){var e;e=()=>(()=>{var t={725(t){t.exports=(()=>{var t={986:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){var e=0;return t.forEach(function(t){return e+=t}),e}function n(t){return r(t)/t.length}function i(t){t.sort(function(t,e){return t-e})}t.r(e),t.d(e,{areWithin:()=>f,average:()=>n,degrees:()=>p,isBetweenExclusive:()=>l,isBetweenInclusive:()=>c,max:()=>h,mean:()=>n,median:()=>a,min:()=>u,radians:()=>y,sortNumbers:()=>i,sortNumbersAscending:()=>i,sortNumbersDescending:()=>d,sortedNumbers:()=>o,sortedNumbersAscending:()=>o,sortedNumbersDescending:()=>m,sum:()=>r});var s=function(t,e,r){if(r||2===arguments.length)for(var n,i=0,s=e.length;i<s;i++)!n&&i in e||(n||(n=Array.prototype.slice.call(e,0,i)),n[i]=e[i]);return t.concat(n||Array.prototype.slice.call(e))};function o(t){var e=s([],t,!0);return i(e),e}function a(t){if(0==t.length)return NaN;var e=o(t);if(e.length%2!=0)return e[Math.floor(e.length/2)];var r=e.length/2,i=r-1;return n([e[r],e[i]])}function u(t){if(0==t.length)return 1/0;var e=t[0];return t.slice(1).forEach(function(t){e=Math.min(e,t)}),e}function h(t){if(0==t.length)return-1/0;var e=t[0];return t.slice(1).forEach(function(t){e=Math.max(e,t)}),e}function c(t,e,r){return t>=e&&t<=r}function l(t,e,r){return t>e&&t<r}function f(t,e,r){return Math.abs(t-e)<=r}function d(t){i(t),t.reverse()}function m(t){var e=o(t);return e.reverse(),e}function p(t){return t*(180/Math.PI)}function y(t){return t*(Math.PI/180)}return e})()},854:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){return"number"==typeof t}function n(t){return r(t)&&Number.isFinite(t)}function i(t){return r(t)&&!Number.isFinite(t)}function s(t){return n(t)&&t>0}function o(t){return n(t)&&t>=0}function a(t){return"string"==typeof t}function u(t){return null==t}function h(t){return"object"==typeof t&&null!==t}function c(t){return Array.isArray(t)}return t.r(e),t.d(e,{isArray:()=>c,isFiniteNumber:()=>n,isNonFiniteNumber:()=>i,isNonNegativeFiniteNumber:()=>o,isNonNullObject:()=>h,isNullish:()=>u,isNumber:()=>r,isPositiveFiniteNumber:()=>s,isString:()=>a}),e})()},30:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){return Math.pow(Math.pow(t.x,2)+Math.pow(t.y,2),.5)}function n(t){return Math.atan2(t.y,t.x)}return t.r(e),t.d(e,{direction:()=>n,magnitude:()=>r}),e})()}},e={};function r(n){var i=e[n];if(void 0!==i)return i.exports;var s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,r),s.exports}r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var n={};return(()=>{"use strict";r.r(n),r.d(n,{areWithin:()=>a,centroid:()=>d,deepCopy:()=>s,direction:()=>l,displaced:()=>h,displacement:()=>u,distance:()=>o,isFinitePoint:()=>i,isPoint:()=>e,midpoint:()=>m});var t=r(854);function e(e){return(0,t.isNonNullObject)(e)&&(0,t.isNumber)(e.x)&&(0,t.isNumber)(e.y)}function i(r){return e(r)&&(0,t.isFiniteNumber)(r.x)&&(0,t.isFiniteNumber)(r.y)}function s(t){return{x:t.x,y:t.y}}function o(t,e){var r=e.x-t.x,n=e.y-t.y;return Math.pow(Math.pow(r,2)+Math.pow(n,2),.5)}function a(t,e,r){return o(t,e)<=r}function u(t,e){return{x:e.x-t.x,y:e.y-t.y}}function h(t,e){return{x:t.x+e.x,y:t.y+e.y}}var c=r(30);function l(t,e){return(0,c.direction)(u(t,e))}var f=r(986);function d(t){return{x:(0,f.mean)(t.map(function(t){return t.x})),y:(0,f.mean)(t.map(function(t){return t.y}))}}function m(t,e){return d([t,e])}})(),n})()},854(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){return"number"==typeof t}function n(t){return r(t)&&Number.isFinite(t)}function i(t){return r(t)&&!Number.isFinite(t)}function s(t){return n(t)&&t>0}function o(t){return n(t)&&t>=0}function a(t){return"string"==typeof t}function u(t){return""===t}function h(t){return a(t)&&!u(t)}function c(t){return!!a(t)&&0==t.trim().length}function l(t){if(!a(t))return!1;try{return JSON.parse(t),!0}catch{return!1}}function f(t){try{return JSON.stringify(t),!0}catch{return!1}}function d(t){return!!t}function m(t){return!t}function p(t){return null==t}function y(t){return"object"==typeof t&&null!==t}function g(t){return Array.isArray(t)}function b(t){return g(t)&&0==t.length}function v(t){return g(t)&&t.length>0}function w(t){return g(t)&&t.every(r)}function x(t){return w(t)&&t.length>0}function S(t){return g(t)&&t.every(n)}function N(t){return g(t)&&t.every(i)}function _(t){return g(t)&&t.every(a)}function O(t){return _(t)&&t.length>0}function P(t){return t instanceof SVGGraphicsElement}return t.r(e),t.d(e,{isArray:()=>g,isEmptyArray:()=>b,isEmptyString:()=>u,isFalsy:()=>m,isFiniteNumber:()=>n,isFiniteNumbersArray:()=>S,isJSON:()=>l,isJSONSerializable:()=>f,isNonEmptyArray:()=>v,isNonEmptyNumbersArray:()=>x,isNonEmptyString:()=>h,isNonEmptyStringsArray:()=>O,isNonFiniteNumber:()=>i,isNonFiniteNumbersArray:()=>N,isNonNegativeFiniteNumber:()=>o,isNonNullObject:()=>y,isNullish:()=>p,isNumber:()=>r,isNumbersArray:()=>w,isPositiveFiniteNumber:()=>s,isSVGGraphicsElement:()=>P,isString:()=>a,isStringsArray:()=>_,isTruthy:()=>d,isWhitespace:()=>c}),e})()}};const e={};function r(n){const i=e[n];if(void 0!==i)return i.exports;const s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,r),s.exports}r.d=(t,e)=>{if(Array.isArray(e))for(var n=0;n<e.length;){var i=e[n++],s=e[n++];r.o(t,i)?0===s&&n++:0===s?Object.defineProperty(t,i,{enumerable:!0,value:e[n++]}):Object.defineProperty(t,i,{enumerable:!0,get:s})}else for(var i in e)r.o(e,i)&&!r.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};let n={};return(()=>{"use strict";r.r(n),r.d(n,{AbstractPath:()=>s,CoordinateSystem:()=>y,HorizontalClientScaling:()=>b,InnerXML:()=>_,OuterXML:()=>E,Path:()=>i,Scaling:()=>g,VerticalClientScaling:()=>v,assignUUID:()=>p,bringToFront:()=>w,drawOnCanvas:()=>j,isSVGGraphicsElement:()=>M,isSVGGraphicsElementsArray:()=>T,sendToBack:()=>x,setAttributes:()=>h});var t,e=r(725);class i{constructor(t){this.domNode=t}closestPoint(t){let r=this.domNode.getTotalLength(),n=[];for(let i=0;i<=16;i++){let s=i/16*r;n.push([s,(0,e.distance)(t,this.domNode.getPointAtLength(s))])}n.sort((t,e)=>t[1]-e[1]);let i=n[0],s=i[0]-r/16,o=i[0]+r/16;s=Math.max(0,s),o=Math.min(r,o);for(let r=0;r<20;r++){let r=(o-s)/3;(0,e.distance)(t,this.domNode.getPointAtLength(s))<(0,e.distance)(t,this.domNode.getPointAtLength(o))?o-=r:s+=r}let a=(s+o)/2,u=this.domNode.getPointAtLength(a);return{x:u.x,y:u.y,length:a}}}class s{constructor(e){t.set(this,void 0),function(t,e,r){if("function"==typeof e||!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");e.set(t,r)}(this,t,e)}closestPoint(e){return document.body.contains(a)||document.body.append(a),u.setAttribute("d",function(t,e){if("function"==typeof e||!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return e.get(t)}(this,t)),new i(u).closestPoint(e)}}t=new WeakMap;const o=document.createElementNS("http://www.w3.org/2000/svg","svg");o.setAttribute("viewBox","0 0 100 100"),o.setAttribute("width","100"),o.setAttribute("height","100");const a=document.createElement("div");a.append(o),a.style.height="0px",a.style.position="fixed",document.body.append(a);const u=document.createElementNS("http://www.w3.org/2000/svg","path");function h(t,e){for(let[r,n]of Object.entries(e))t.setAttribute(r,n)}u.setAttribute("stroke","black"),u.setAttribute("stroke-width","1"),o.append(u);const c={randomUUID:"undefined"!=typeof crypto&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};let l;const f=new Uint8Array(16),d=[];for(let t=0;t<256;++t)d.push((t+256).toString(16).slice(1));const m=function(t,e,r){return!c.randomUUID||e||t?function(t,e,r){const n=(t=t||{}).random??t.rng?.()??function(){if(!l){if("undefined"==typeof crypto||!crypto.getRandomValues)throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");l=crypto.getRandomValues.bind(crypto)}return l(f)}();if(n.length<16)throw new Error("Random bytes length must be >= 16");if(n[6]=15&n[6]|64,n[8]=63&n[8]|128,e){if((r=r||0)<0||r+16>e.length)throw new RangeError(`UUID byte range ${r}:${r+15} is out of buffer bounds`);for(let t=0;t<16;++t)e[r+t]=n[t];return e}return function(t,e=0){return(d[t[e+0]]+d[t[e+1]]+d[t[e+2]]+d[t[e+3]]+"-"+d[t[e+4]]+d[t[e+5]]+"-"+d[t[e+6]]+d[t[e+7]]+"-"+d[t[e+8]]+d[t[e+9]]+"-"+d[t[e+10]]+d[t[e+11]]+d[t[e+12]]+d[t[e+13]]+d[t[e+14]]+d[t[e+15]]).toLowerCase()}(n)}(t,e,r):c.randomUUID()};function p(t){t.id="uuid-"+m()}class y{constructor(t){this.targetSVGDoc=t}get width(){return this.targetSVGDoc.viewBox.baseVal.width}get height(){return this.targetSVGDoc.viewBox.baseVal.height}get minX(){return this.targetSVGDoc.viewBox.baseVal.x}get maxX(){return this.minX+this.width}get minY(){return this.targetSVGDoc.viewBox.baseVal.y}get maxY(){return this.minY+this.height}get horizontalScaling(){return this.targetSVGDoc.width.baseVal.value/this.width}get verticalScaling(){return this.targetSVGDoc.height.baseVal.value/this.height}setScaling(t){this.targetSVGDoc.setAttribute("width",""+t*this.width),this.targetSVGDoc.setAttribute("height",""+t*this.height)}get clientWidth(){return this.targetSVGDoc.getBoundingClientRect().width}get clientHeight(){return this.targetSVGDoc.getBoundingClientRect().height}get horizontalClientScaling(){return this.clientWidth/this.width}get verticalClientScaling(){return this.clientHeight/this.height}get minClientX(){return this.targetSVGDoc.getBoundingClientRect().x}get minClientY(){return this.targetSVGDoc.getBoundingClientRect().y}fromClientX(t){return this.minX+(t-this.minClientX)/this.horizontalClientScaling}fromClientY(t){return this.minY+(t-this.minClientY)/this.verticalClientScaling}fromClientCoordinates(t,e){return[this.fromClientX(t),this.fromClientY(e)]}fromClientPoint(t){return{x:this.fromClientX(t.x),y:this.fromClientY(t.y)}}toClientX(t){return this.minClientX+this.horizontalClientScaling*(t-this.minX)}toClientY(t){return this.minClientY+this.verticalClientScaling*(t-this.minY)}toClientCoordinates(t,e){return[this.toClientX(t),this.toClientY(e)]}toClientPoint(t){return{x:this.toClientX(t.x),y:this.toClientY(t.y)}}}class g{constructor(t){this.targetSVGDoc=t}set(t){let e=this.targetSVGDoc.viewBox.baseVal;this.targetSVGDoc.setAttribute("width",t*e.width+"px"),this.targetSVGDoc.setAttribute("height",t*e.height+"px")}}class b{constructor(t){this.targetSVGDoc=t}get(){let t=this.targetSVGDoc.getBoundingClientRect(),e=this.targetSVGDoc.viewBox.baseVal;return t.width/e.width}}class v{constructor(t){this.targetSVGDoc=t}get(){let t=this.targetSVGDoc.getBoundingClientRect(),e=this.targetSVGDoc.viewBox.baseVal;return t.height/e.height}}function w(t){let e=t.parentNode;e&&e.appendChild(t)}function x(t){let e=t.parentNode;e&&e.prepend(t)}var S,N=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class _{constructor(t){S.set(this,void 0),function(t,e,r){if("function"==typeof e||!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");e.set(t,r)}(this,S,t)}toString(){return N(this,S,"f").innerHTML}set(t){N(this,S,"f").innerHTML=t}}S=new WeakMap;var O,P=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class E{constructor(t){O.set(this,void 0),function(t,e,r){if("function"==typeof e||!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");e.set(t,r)}(this,O,t)}toString(){return P(this,O,"f").outerHTML}set(t){let e=document.createElementNS("http://www.w3.org/2000/svg","svg");if(e.style.height="0px",document.body.append(e),e.innerHTML=t,!e.firstElementChild)throw new Error("Outer XML must encode an SVG element.");if(e.childNodes.length>1)throw new Error("Outer XML cannot encode multiple DOM nodes.");if(e.firstElementChild.tagName.toLowerCase()!=P(this,O,"f").tagName.toLowerCase())throw new Error("Outer XML must specify an SVG element with the same tag name as the target SVG element.");[...P(this,O,"f").attributes].forEach(t=>P(this,O,"f").removeAttribute(t.name)),[...e.firstElementChild.attributes].forEach(t=>P(this,O,"f").setAttribute(t.name,t.value)),P(this,O,"f").innerHTML=e.firstElementChild.innerHTML,e.remove()}}function M(t){return t instanceof SVGGraphicsElement}O=new WeakMap;var A=r(854);function T(t){return(0,A.isArray)(t)&&t.every(M)}async function j(t){let e=document.createElement("canvas");e.style.position="fixed",e.style.display="none",e.style.pointerEvents="none",document.body.append(e),e.width=t.width.baseVal.value,e.height=t.height.baseVal.value;let r=e.getContext("2d");if(!r)throw new Error("Unable to get canvas context.");let n=(new XMLSerializer).serializeToString(t),i=new Image;return i.src="data:image/svg+xml;charset=utf-8,"+encodeURIComponent(n),await i.decode(),r.drawImage(i,0,0,t.width.baseVal.value,t.height.baseVal.value),e.remove(),e.style.position="",e.style.display="",e.style.pointerEvents="",e}})(),n})(),t.exports=e()},986(t){t.exports=(()=>{"use strict";const t={d:(e,r)=>{if(Array.isArray(r))for(var n=0;n<r.length;){var i=r[n++],s=r[n++];t.o(e,i)?0===s&&n++:0===s?Object.defineProperty(e,i,{enumerable:!0,value:r[n++]}):Object.defineProperty(e,i,{enumerable:!0,get:s})}else for(var i in r)t.o(r,i)&&!t.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:r[i]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}};let e={};function r(t,e){return Math.abs(t-e)}function n(t){var e=0;return t.forEach(function(t){return e+=t}),e}function i(t){return n(t)/t.length}function s(t){t.sort(function(t,e){return t-e})}t.r(e),t.d(e,{areWithin:()=>m,average:()=>i,clamp:()=>d,degrees:()=>b,distance:()=>r,flipAway:()=>x,isBetween:()=>l,isBetweenExclusive:()=>f,isBetweenInclusive:()=>l,max:()=>c,mean:()=>i,median:()=>u,min:()=>h,normalizeAngle:()=>w,radians:()=>v,round:()=>g,sortNumbers:()=>s,sortNumbersAscending:()=>s,sortNumbersDescending:()=>p,sortedNumbers:()=>a,sortedNumbersAscending:()=>a,sortedNumbersDescending:()=>y,sum:()=>n});var o=function(t,e,r){if(r||2===arguments.length)for(var n,i=0,s=e.length;i<s;i++)!n&&i in e||(n||(n=Array.prototype.slice.call(e,0,i)),n[i]=e[i]);return t.concat(n||Array.prototype.slice.call(e))};function a(t){var e=o([],t,!0);return s(e),e}function u(t){if(0==t.length)return NaN;var e=a(t);if(e.length%2!=0)return e[Math.floor(e.length/2)];var r=e.length/2,n=r-1;return i([e[r],e[n]])}function h(t){if(0==t.length)return 1/0;var e=t[0];return t.slice(1).forEach(function(t){e=Math.min(e,t)}),e}function c(t){if(0==t.length)return-1/0;var e=t[0];return t.slice(1).forEach(function(t){e=Math.max(e,t)}),e}function l(t,e,r){return t>=e&&t<=r}function f(t,e,r){return t>e&&t<r}function d(t,e,r){return t<e?e:t>r?r:t}function m(t,e,r){return Math.abs(t-e)<=r}function p(t){s(t),t.reverse()}function y(t){var e=a(t);return e.reverse(),e}function g(t,e){return Number.parseFloat(t.toFixed(null!=e?e:0))}function b(t){return t*(180/Math.PI)}function v(t){return t*(Math.PI/180)}function w(t,e){void 0===e&&(e=-Math.PI);var r=t-e;return e+((r%=2*Math.PI)>=0?r:r+2*Math.PI)}function x(t,e){var r=(e=w(e,t))-t;return(r<Math.PI/2||r>3*Math.PI/2)&&(t+=Math.PI),t}return e})()},456(t){var e;e=()=>(()=>{var t={986(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){var e=0;return t.forEach(function(t){return e+=t}),e}function n(t){return r(t)/t.length}function i(t){t.sort(function(t,e){return t-e})}t.r(e),t.d(e,{areWithin:()=>d,average:()=>n,clamp:()=>f,degrees:()=>g,flipAway:()=>w,isBetween:()=>c,isBetweenExclusive:()=>l,isBetweenInclusive:()=>c,max:()=>h,mean:()=>n,median:()=>a,min:()=>u,normalizeAngle:()=>v,radians:()=>b,round:()=>y,sortNumbers:()=>i,sortNumbersAscending:()=>i,sortNumbersDescending:()=>m,sortedNumbers:()=>o,sortedNumbersAscending:()=>o,sortedNumbersDescending:()=>p,sum:()=>r});var s=function(t,e,r){if(r||2===arguments.length)for(var n,i=0,s=e.length;i<s;i++)!n&&i in e||(n||(n=Array.prototype.slice.call(e,0,i)),n[i]=e[i]);return t.concat(n||Array.prototype.slice.call(e))};function o(t){var e=s([],t,!0);return i(e),e}function a(t){if(0==t.length)return NaN;var e=o(t);if(e.length%2!=0)return e[Math.floor(e.length/2)];var r=e.length/2,i=r-1;return n([e[r],e[i]])}function u(t){if(0==t.length)return 1/0;var e=t[0];return t.slice(1).forEach(function(t){e=Math.min(e,t)}),e}function h(t){if(0==t.length)return-1/0;var e=t[0];return t.slice(1).forEach(function(t){e=Math.max(e,t)}),e}function c(t,e,r){return t>=e&&t<=r}function l(t,e,r){return t>e&&t<r}function f(t,e,r){return t<e?e:t>r?r:t}function d(t,e,r){return Math.abs(t-e)<=r}function m(t){i(t),t.reverse()}function p(t){var e=o(t);return e.reverse(),e}function y(t,e){return Number.parseFloat(t.toFixed(null!=e?e:0))}function g(t){return t*(180/Math.PI)}function b(t){return t*(Math.PI/180)}function v(t,e){void 0===e&&(e=-Math.PI);var r=t-e;return e+((r%=2*Math.PI)>=0?r:r+2*Math.PI)}function w(t,e){var r=(e=v(e,t))-t;return(r<Math.PI/2||r>3*Math.PI/2)&&(t+=Math.PI),t}return e})()},854(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){return"number"==typeof t}function n(t){return r(t)&&Number.isFinite(t)}function i(t){return r(t)&&!Number.isFinite(t)}function s(t){return n(t)&&t>0}function o(t){return n(t)&&t>=0}function a(t){return"string"==typeof t}function u(t){return""===t}function h(t){return a(t)&&!u(t)}function c(t){return!!a(t)&&0==t.trim().length}function l(t){if(!a(t))return!1;try{return JSON.parse(t),!0}catch{return!1}}function f(t){try{return JSON.stringify(t),!0}catch{return!1}}function d(t){return!!t}function m(t){return!t}function p(t){return null==t}function y(t){return"object"==typeof t&&null!==t}function g(t){return Array.isArray(t)}function b(t){return g(t)&&0==t.length}function v(t){return g(t)&&t.length>0}function w(t){return g(t)&&t.every(r)}function x(t){return w(t)&&t.length>0}function S(t){return g(t)&&t.every(n)}function N(t){return g(t)&&t.every(i)}function _(t){return g(t)&&t.every(a)}function O(t){return _(t)&&t.length>0}function P(t){return t instanceof SVGGraphicsElement}return t.r(e),t.d(e,{isArray:()=>g,isEmptyArray:()=>b,isEmptyString:()=>u,isFalsy:()=>m,isFiniteNumber:()=>n,isFiniteNumbersArray:()=>S,isJSON:()=>l,isJSONSerializable:()=>f,isNonEmptyArray:()=>v,isNonEmptyNumbersArray:()=>x,isNonEmptyString:()=>h,isNonEmptyStringsArray:()=>O,isNonFiniteNumber:()=>i,isNonFiniteNumbersArray:()=>N,isNonNegativeFiniteNumber:()=>o,isNonNullObject:()=>y,isNullish:()=>p,isNumber:()=>r,isNumbersArray:()=>w,isPositiveFiniteNumber:()=>s,isSVGGraphicsElement:()=>P,isString:()=>a,isStringsArray:()=>_,isTruthy:()=>d,isWhitespace:()=>c}),e})()},277(t){var e;e=()=>(()=>{var t={854(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){return"number"==typeof t}function n(t){return r(t)&&Number.isFinite(t)}function i(t){return r(t)&&!Number.isFinite(t)}function s(t){return n(t)&&t>0}function o(t){return n(t)&&t>=0}function a(t){return"string"==typeof t}function u(t){return""===t}function h(t){return a(t)&&!u(t)}function c(t){return!!a(t)&&0==t.trim().length}function l(t){if(!a(t))return!1;try{return JSON.parse(t),!0}catch{return!1}}function f(t){try{return JSON.stringify(t),!0}catch{return!1}}function d(t){return!!t}function m(t){return!t}function p(t){return null==t}function y(t){return"object"==typeof t&&null!==t}function g(t){return Array.isArray(t)}function b(t){return g(t)&&0==t.length}function v(t){return g(t)&&t.length>0}function w(t){return g(t)&&t.every(r)}function x(t){return w(t)&&t.length>0}function S(t){return g(t)&&t.every(n)}function N(t){return g(t)&&t.every(i)}function _(t){return g(t)&&t.every(a)}function O(t){return _(t)&&t.length>0}function P(t){return t instanceof SVGGraphicsElement}return t.r(e),t.d(e,{isArray:()=>g,isEmptyArray:()=>b,isEmptyString:()=>u,isFalsy:()=>m,isFiniteNumber:()=>n,isFiniteNumbersArray:()=>S,isJSON:()=>l,isJSONSerializable:()=>f,isNonEmptyArray:()=>v,isNonEmptyNumbersArray:()=>x,isNonEmptyString:()=>h,isNonEmptyStringsArray:()=>O,isNonFiniteNumber:()=>i,isNonFiniteNumbersArray:()=>N,isNonNegativeFiniteNumber:()=>o,isNonNullObject:()=>y,isNullish:()=>p,isNumber:()=>r,isNumbersArray:()=>w,isPositiveFiniteNumber:()=>s,isSVGGraphicsElement:()=>P,isString:()=>a,isStringsArray:()=>_,isTruthy:()=>d,isWhitespace:()=>c}),e})()}},e={};function r(n){var i=e[n];if(void 0!==i)return i.exports;var s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,r),s.exports}r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var n={};return(()=>{"use strict";r.r(n),r.d(n,{Vector:()=>e,isFiniteVectorLike:()=>s,isVectorLike:()=>i});var t=r(854);class e{static matching(t){let r="x"in t?t.x:t.magnitude*Math.cos(t.direction),n="y"in t?t.y:t.magnitude*Math.sin(t.direction);return new e(r,n)}constructor(t,e){this.x=t,this.y=e}[Symbol.iterator](){return[this.x,this.y].values()}get magnitude(){return Math.sqrt(Math.pow(this.x,2)+Math.pow(this.y,2))}set magnitude(t){let e=this.direction;this.x=t*Math.cos(e),this.y=t*Math.sin(e)}get direction(){return Math.atan2(this.y,this.x)}set direction(t){let e=this.magnitude;this.x=e*Math.cos(t),this.y=e*Math.sin(t)}isFinite(){return(0,t.isFiniteNumber)(this.x)&&(0,t.isFiniteNumber)(this.y)}}function i(e){return!(!(0,t.isNonNullObject)(e)||!((0,t.isNumber)(e.x)&&(0,t.isNumber)(e.y)||(0,t.isNumber)(e.magnitude)&&(0,t.isNumber)(e.direction)))}function s(t){return!!i(t)&&e.matching(t).isFinite()}})(),n})(),t.exports=e()}};const e={};function r(n){const i=e[n];if(void 0!==i)return i.exports;const s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,r),s.exports}r.d=(t,e)=>{if(Array.isArray(e))for(var n=0;n<e.length;){var i=e[n++],s=e[n++];r.o(t,i)?0===s&&n++:0===s?Object.defineProperty(t,i,{enumerable:!0,value:e[n++]}):Object.defineProperty(t,i,{enumerable:!0,get:s})}else for(var i in e)r.o(e,i)&&!r.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};let n={};return(()=>{"use strict";r.r(n),r.d(n,{FinitePoint:()=>s,Point:()=>i,RelativePoint:()=>f,midpoint:()=>m});var t=r(277),e=r(854);class i{static matching(t){return new i(t.x,t.y)}constructor(t,e){this.x=t,this.y=e}[Symbol.iterator](){return[this.x,this.y].values()}set(t){(0,e.isNumber)(null==t?void 0:t.x)&&(this.x=t.x),(0,e.isNumber)(null==t?void 0:t.y)&&(this.y=t.y)}drag(t,e){this.displace({x:t,y:e})}displace(e){let r=t.Vector.matching(e);this.x+=r.x,this.y+=r.y}displaced(t){let e=i.matching(this);return e.displace(t),e}displacementTo(e){return new t.Vector(e.x-this.x,e.y-this.y)}displacementFrom(e){return new t.Vector(this.x-e.x,this.y-e.y)}distanceTo(t){return this.displacementTo(t).magnitude}distanceFrom(t){return this.distanceTo(t)}directionTo(t){return this.displacementTo(t).direction}directionFrom(t){return this.displacementFrom(t).direction}deepCopy(){return new i(this.x,this.y)}}class s extends i{static matching(t){let e=i.matching(t);return new s(e.x,e.y)}constructor(t,r){if(super(t,r),!(0,e.isFiniteNumber)(t)||!(0,e.isFiniteNumber)(r))throw new Error(`Finite points must have finite number coordinates: (${t}, ${r}).`)}set(...t){let e=new i(0,0);e.set(...t),s.matching(e),super.set(...t)}}var o,a,u,h,c,l=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class f{constructor(e){o.add(this),a.set(this,void 0),u.set(this,new t.Vector(0,0)),h.set(this,{move:[]}),function(t,e,r){if("function"==typeof e||!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");e.set(t,r)}(this,a,e),e.addEventListener("move",()=>l(this,o,"m",c).call(this,"move"))}get x(){return l(this,a,"f").x+l(this,u,"f").x}set x(t){l(this,u,"f").x=t-l(this,a,"f").x,l(this,o,"m",c).call(this,"move")}get y(){return l(this,a,"f").y+l(this,u,"f").y}set y(t){l(this,u,"f").y=t-l(this,a,"f").y,l(this,o,"m",c).call(this,"move")}addEventListener(t,e){l(this,h,"f")[t].push(e)}removeEventListener(t,e){l(this,h,"f")[t]=l(this,h,"f")[t].filter(t=>t!==e)}}a=new WeakMap,u=new WeakMap,h=new WeakMap,o=new WeakSet,c=function(t){l(this,h,"f")[t].forEach(t=>t())};var d=r(986);function m(t,e){return new i((0,d.average)([t.x,e.x]),(0,d.average)([t.y,e.y]))}})(),n})(),t.exports=e()},725(t){t.exports=(()=>{var t={986:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){var e=0;return t.forEach(function(t){return e+=t}),e}function n(t){return r(t)/t.length}function i(t){t.sort(function(t,e){return t-e})}t.r(e),t.d(e,{areWithin:()=>f,average:()=>n,degrees:()=>p,isBetweenExclusive:()=>l,isBetweenInclusive:()=>c,max:()=>h,mean:()=>n,median:()=>a,min:()=>u,radians:()=>y,sortNumbers:()=>i,sortNumbersAscending:()=>i,sortNumbersDescending:()=>d,sortedNumbers:()=>o,sortedNumbersAscending:()=>o,sortedNumbersDescending:()=>m,sum:()=>r});var s=function(t,e,r){if(r||2===arguments.length)for(var n,i=0,s=e.length;i<s;i++)!n&&i in e||(n||(n=Array.prototype.slice.call(e,0,i)),n[i]=e[i]);return t.concat(n||Array.prototype.slice.call(e))};function o(t){var e=s([],t,!0);return i(e),e}function a(t){if(0==t.length)return NaN;var e=o(t);if(e.length%2!=0)return e[Math.floor(e.length/2)];var r=e.length/2,i=r-1;return n([e[r],e[i]])}function u(t){if(0==t.length)return 1/0;var e=t[0];return t.slice(1).forEach(function(t){e=Math.min(e,t)}),e}function h(t){if(0==t.length)return-1/0;var e=t[0];return t.slice(1).forEach(function(t){e=Math.max(e,t)}),e}function c(t,e,r){return t>=e&&t<=r}function l(t,e,r){return t>e&&t<r}function f(t,e,r){return Math.abs(t-e)<=r}function d(t){i(t),t.reverse()}function m(t){var e=o(t);return e.reverse(),e}function p(t){return t*(180/Math.PI)}function y(t){return t*(Math.PI/180)}return e})()},854:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){return"number"==typeof t}function n(t){return r(t)&&Number.isFinite(t)}function i(t){return r(t)&&!Number.isFinite(t)}function s(t){return n(t)&&t>0}function o(t){return n(t)&&t>=0}function a(t){return"string"==typeof t}function u(t){return null==t}function h(t){return"object"==typeof t&&null!==t}function c(t){return Array.isArray(t)}return t.r(e),t.d(e,{isArray:()=>c,isFiniteNumber:()=>n,isNonFiniteNumber:()=>i,isNonNegativeFiniteNumber:()=>o,isNonNullObject:()=>h,isNullish:()=>u,isNumber:()=>r,isPositiveFiniteNumber:()=>s,isString:()=>a}),e})()},30:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){return Math.pow(Math.pow(t.x,2)+Math.pow(t.y,2),.5)}function n(t){return Math.atan2(t.y,t.x)}return t.r(e),t.d(e,{direction:()=>n,magnitude:()=>r}),e})()}},e={};function r(n){var i=e[n];if(void 0!==i)return i.exports;var s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,r),s.exports}r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var n={};return(()=>{"use strict";r.r(n),r.d(n,{areWithin:()=>a,centroid:()=>d,deepCopy:()=>s,direction:()=>l,displaced:()=>h,displacement:()=>u,distance:()=>o,isFinitePoint:()=>i,isPoint:()=>e,midpoint:()=>m});var t=r(854);function e(e){return(0,t.isNonNullObject)(e)&&(0,t.isNumber)(e.x)&&(0,t.isNumber)(e.y)}function i(r){return e(r)&&(0,t.isFiniteNumber)(r.x)&&(0,t.isFiniteNumber)(r.y)}function s(t){return{x:t.x,y:t.y}}function o(t,e){var r=e.x-t.x,n=e.y-t.y;return Math.pow(Math.pow(r,2)+Math.pow(n,2),.5)}function a(t,e,r){return o(t,e)<=r}function u(t,e){return{x:e.x-t.x,y:e.y-t.y}}function h(t,e){return{x:t.x+e.x,y:t.y+e.y}}var c=r(30);function l(t,e){return(0,c.direction)(u(t,e))}var f=r(986);function d(t){return{x:(0,f.mean)(t.map(function(t){return t.x})),y:(0,f.mean)(t.map(function(t){return t.y}))}}function m(t,e){return d([t,e])}})(),n})()},106(t){var e;e=()=>(()=>{var t={992(t){var e;e=()=>(()=>{"use strict";const t={d:(e,r)=>{if(Array.isArray(r))for(var n=0;n<r.length;){var i=r[n++],s=r[n++];t.o(e,i)?0===s&&n++:0===s?Object.defineProperty(e,i,{enumerable:!0,value:r[n++]}):Object.defineProperty(e,i,{enumerable:!0,get:s})}else for(var i in r)t.o(r,i)&&!t.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:r[i]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}};let e={};t.r(e),t.d(e,{KeyBinding:()=>p});var r,n,i,s,o,a,u,h,c,l,f,d=function(t,e,r,n,i){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!i:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===n?i.call(t,r):i?i.value=r:e.set(t,r),r},m=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class p{constructor(t,e,a){r.add(this),this.key=t,n.set(this,void 0),i.set(this,void 0),s.set(this,void 0),o.set(this,void 0),d(this,n,e,"f"),d(this,i,t=>m(this,r,"m",l).call(this,t),"f"),d(this,s,a,"f")}get owner(){return m(this,o,"f")}set owner(t){var e;null===(e=m(this,o,"f"))||void 0===e||e.removeEventListener("keydown",m(this,i,"f")),null==t||t.addEventListener("keydown",m(this,i,"f"),{passive:!1}),d(this,o,t,"f")}}return n=new WeakMap,i=new WeakMap,s=new WeakMap,o=new WeakMap,r=new WeakSet,a=function(){var t,e;return null!==(e=null===(t=m(this,s,"f"))||void 0===t?void 0:t.altKey)&&void 0!==e&&e},u=function(){var t,e;return null!==(e=null===(t=m(this,s,"f"))||void 0===t?void 0:t.ctrlKey)&&void 0!==e&&e},h=function(){var t,e;return null!==(e=null===(t=m(this,s,"f"))||void 0===t?void 0:t.metaKey)&&void 0!==e&&e},c=function(){var t,e;return null!==(e=null===(t=m(this,s,"f"))||void 0===t?void 0:t.shiftKey)&&void 0!==e&&e},l=function(t){this.owner&&this.owner===document.activeElement&&`Key${this.key}`.toUpperCase()===t.code.toUpperCase()&&t.altKey===m(this,r,"a",a)&&t.ctrlKey===m(this,r,"a",u)&&t.metaKey===m(this,r,"a",h)&&t.shiftKey===m(this,r,"a",c)&&m(this,r,"m",f).call(this,t)},f=function(t){t.preventDefault(),m(this,n,"f").call(this)},e})(),t.exports=e()},854(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){return"number"==typeof t}function n(t){return r(t)&&Number.isFinite(t)}function i(t){return r(t)&&!Number.isFinite(t)}function s(t){return n(t)&&t>0}function o(t){return n(t)&&t>=0}function a(t){return"string"==typeof t}function u(t){return""===t}function h(t){return a(t)&&!u(t)}function c(t){return!!a(t)&&0==t.trim().length}function l(t){if(!a(t))return!1;try{return JSON.parse(t),!0}catch{return!1}}function f(t){try{return JSON.stringify(t),!0}catch{return!1}}function d(t){return!!t}function m(t){return!t}function p(t){return null==t}function y(t){return"object"==typeof t&&null!==t}function g(t){return Array.isArray(t)}function b(t){return g(t)&&0==t.length}function v(t){return g(t)&&t.length>0}function w(t){return g(t)&&t.every(r)}function x(t){return w(t)&&t.length>0}function S(t){return g(t)&&t.every(n)}function N(t){return g(t)&&t.every(i)}function _(t){return g(t)&&t.every(a)}function O(t){return _(t)&&t.length>0}function P(t){return t instanceof SVGGraphicsElement}return t.r(e),t.d(e,{isArray:()=>g,isEmptyArray:()=>b,isEmptyString:()=>u,isFalsy:()=>m,isFiniteNumber:()=>n,isFiniteNumbersArray:()=>S,isJSON:()=>l,isJSONSerializable:()=>f,isNonEmptyArray:()=>v,isNonEmptyNumbersArray:()=>x,isNonEmptyString:()=>h,isNonEmptyStringsArray:()=>O,isNonFiniteNumber:()=>i,isNonFiniteNumbersArray:()=>N,isNonNegativeFiniteNumber:()=>o,isNonNullObject:()=>y,isNullish:()=>p,isNumber:()=>r,isNumbersArray:()=>w,isPositiveFiniteNumber:()=>s,isSVGGraphicsElement:()=>P,isString:()=>a,isStringsArray:()=>_,isTruthy:()=>d,isWhitespace:()=>c}),e})()}};const e={};function r(n){const i=e[n];if(void 0!==i)return i.exports;const s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,r),s.exports}r.d=(t,e)=>{if(Array.isArray(e))for(var n=0;n<e.length;){var i=e[n++],s=e[n++];r.o(t,i)?0===s&&n++:0===s?Object.defineProperty(t,i,{enumerable:!0,value:e[n++]}):Object.defineProperty(t,i,{enumerable:!0,get:s})}else for(var i in e)r.o(e,i)&&!r.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};let n={};return(()=>{"use strict";function t(t){if(t.length>0)return t[0];throw new Error("Array is empty.")}function e(t){if(t.length>0)return t[t.length-1];throw new Error("Array is empty.")}function i(t){if(t.length<3)throw new Error("Array has less than 3 items.");if(t.length%2==0)throw new Error("Array has an even number of items.");let e=Math.floor(t.length/2);return[t[e-1],t[e],t[e+1]]}function s(t){if(t.length<4)throw new Error("Array has less than 4 items.");if(t.length%2!=0)throw new Error("Array has an odd number of items.");let e=Math.floor(t.length/2);return[t[e-2],t[e-1],t[e],t[e+1]]}function o(t){return t.length<2?[]:t.slice(0,-1).map((e,r)=>[t[r],t[r+1]])}r.r(n),r.d(n,{DownloadableFile:()=>v,EventfulSet:()=>w,FiniteStack:()=>P,KeyBinding:()=>d.KeyBinding,consecutivePairs:()=>o,containsFocus:()=>f,detectMac:()=>p,detectWindows:()=>m,first:()=>t,hasFocus:()=>l,isJSON:()=>a.isJSON,isJSONSerializable:()=>a.isJSONSerializable,isURL:()=>E,last:()=>e,middleFour:()=>s,middleThree:()=>i,removeWhitespace:()=>u,shuffled:()=>c,splitLines:()=>h});var a=r(854);function u(t){return[...t].filter(t=>!(0,a.isWhitespace)(t)).join("")}function h(t){return t.split(/\r\n|\r|\n/)}function c(t){return t.map(t=>({v:t,priority:Math.random()})).sort((t,e)=>t.priority-e.priority).map(({v:t})=>t)}function l(t){return t===document.activeElement}function f(t){return!!document.activeElement&&t.contains(document.activeElement)}var d=r(992);function m(){return-1!==navigator.userAgent.indexOf("Windows")}function p(){try{return window.navigator.platform.toLowerCase().includes("mac")}catch(t){return!1}}var y,g=function(t,e,r,n,i){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!i:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===n?i.call(t,r):i?i.value=r:e.set(t,r),r},b=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class v{constructor(t,e,r){y.set(this,void 0),this.name=null!=t?t:"Unnamed.txt",this.content=null!=e?e:"",g(this,y,null==r?void 0:r.type,"f")}get type(){return null!=b(this,y,"f")?b(this,y,"f"):this.content instanceof Blob?this.content.type:"text/plain"}set type(t){g(this,y,t,"f")}download(){let t=new File([this.content],this.name,{type:this.type}),e=URL.createObjectURL(t),r=document.createElement("a");r.href=e,r.download=t.name,document.body.appendChild(r),r.click(),r.remove(),URL.revokeObjectURL(e)}}y=new WeakMap;class w{constructor(){this.eventListeners={change:[]},this.underlyingSet=new Set}[Symbol.iterator](){return this.underlyingSet.values()}includes(t){return this.underlyingSet.has(t)}include(t){return this.includes(t)}addAll(t){let e=[...t];0!=e.length&&(e.every(t=>this.includes(t))||(e.forEach(t=>this.underlyingSet.add(t)),this.callEventListeners("change")))}removeAll(t){let e=[...t];0!=e.length&&(e.every(t=>!this.includes(t))||(e.forEach(t=>this.underlyingSet.delete(t)),this.callEventListeners("change")))}clear(){0!=this.underlyingSet.size&&(this.underlyingSet.clear(),this.callEventListeners("change"))}addEventListener(t,e){this.eventListeners[t].push(e)}callEventListeners(t){this.eventListeners[t].forEach(t=>t())}removeEventListener(t,e){this.eventListeners[t]=this.eventListeners[t].filter(t=>t!==e)}}var x,S,N,_,O=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class P{constructor(t){x.add(this),this.maxSize=t,S.set(this,[]),N.set(this,{change:[]})}get size(){return O(this,S,"f").length}isEmpty(){return 0==this.size}empty(){0!=this.size&&(function(t,e){if("function"==typeof e||!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");e.set(t,[])}(this,S),O(this,x,"m",_).call(this,"change"))}peek(){if(0==this.size)throw new Error("The stack is empty.");return O(this,S,"f")[O(this,S,"f").length-1]}push(t){O(this,S,"f").push(t),this.size>this.maxSize&&O(this,S,"f").shift(),O(this,x,"m",_).call(this,"change")}pop(){if(0==this.size)throw new Error("The stack is empty.");let t=O(this,S,"f").pop();return O(this,x,"m",_).call(this,"change"),t}addEventListener(t,e){O(this,N,"f")[t].push(e)}removeEventListener(t,e){O(this,N,"f")[t]=O(this,N,"f")[t].filter(t=>t!==e)}}function E(t){try{return new URL(t),!0}catch(t){return!1}}S=new WeakMap,N=new WeakMap,x=new WeakSet,_=function(t){O(this,N,"f")[t].forEach(t=>t())}})(),n})(),t.exports=e()},854(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){return"number"==typeof t}function n(t){return r(t)&&Number.isFinite(t)}function i(t){return r(t)&&!Number.isFinite(t)}function s(t){return n(t)&&t>0}function o(t){return n(t)&&t>=0}function a(t){return"string"==typeof t}function u(t){return""===t}function h(t){return a(t)&&!u(t)}function c(t){return!!a(t)&&0==t.trim().length}function l(t){if(!a(t))return!1;try{return JSON.parse(t),!0}catch{return!1}}function f(t){try{return JSON.stringify(t),!0}catch{return!1}}function d(t){return!!t}function m(t){return!t}function p(t){return null==t}function y(t){return"object"==typeof t&&null!==t}function g(t){return Array.isArray(t)}function b(t){return g(t)&&0==t.length}function v(t){return g(t)&&t.length>0}function w(t){return g(t)&&t.every(r)}function x(t){return w(t)&&t.length>0}function S(t){return g(t)&&t.every(n)}function N(t){return g(t)&&t.every(i)}function _(t){return g(t)&&t.every(a)}function O(t){return _(t)&&t.length>0}function P(t){return t instanceof SVGGraphicsElement}return t.r(e),t.d(e,{isArray:()=>g,isEmptyArray:()=>b,isEmptyString:()=>u,isFalsy:()=>m,isFiniteNumber:()=>n,isFiniteNumbersArray:()=>S,isJSON:()=>l,isJSONSerializable:()=>f,isNonEmptyArray:()=>v,isNonEmptyNumbersArray:()=>x,isNonEmptyString:()=>h,isNonEmptyStringsArray:()=>O,isNonFiniteNumber:()=>i,isNonFiniteNumbersArray:()=>N,isNonNegativeFiniteNumber:()=>o,isNonNullObject:()=>y,isNullish:()=>p,isNumber:()=>r,isNumbersArray:()=>w,isPositiveFiniteNumber:()=>s,isSVGGraphicsElement:()=>P,isString:()=>a,isStringsArray:()=>_,isTruthy:()=>d,isWhitespace:()=>c}),e})()},277(t){var e;e=()=>(()=>{var t={854(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){return"number"==typeof t}function n(t){return r(t)&&Number.isFinite(t)}function i(t){return r(t)&&!Number.isFinite(t)}function s(t){return n(t)&&t>0}function o(t){return n(t)&&t>=0}function a(t){return"string"==typeof t}function u(t){return""===t}function h(t){return a(t)&&!u(t)}function c(t){return!!a(t)&&0==t.trim().length}function l(t){if(!a(t))return!1;try{return JSON.parse(t),!0}catch{return!1}}function f(t){try{return JSON.stringify(t),!0}catch{return!1}}function d(t){return!!t}function m(t){return!t}function p(t){return null==t}function y(t){return"object"==typeof t&&null!==t}function g(t){return Array.isArray(t)}function b(t){return g(t)&&0==t.length}function v(t){return g(t)&&t.length>0}function w(t){return g(t)&&t.every(r)}function x(t){return w(t)&&t.length>0}function S(t){return g(t)&&t.every(n)}function N(t){return g(t)&&t.every(i)}function _(t){return g(t)&&t.every(a)}function O(t){return _(t)&&t.length>0}function P(t){return t instanceof SVGGraphicsElement}return t.r(e),t.d(e,{isArray:()=>g,isEmptyArray:()=>b,isEmptyString:()=>u,isFalsy:()=>m,isFiniteNumber:()=>n,isFiniteNumbersArray:()=>S,isJSON:()=>l,isJSONSerializable:()=>f,isNonEmptyArray:()=>v,isNonEmptyNumbersArray:()=>x,isNonEmptyString:()=>h,isNonEmptyStringsArray:()=>O,isNonFiniteNumber:()=>i,isNonFiniteNumbersArray:()=>N,isNonNegativeFiniteNumber:()=>o,isNonNullObject:()=>y,isNullish:()=>p,isNumber:()=>r,isNumbersArray:()=>w,isPositiveFiniteNumber:()=>s,isSVGGraphicsElement:()=>P,isString:()=>a,isStringsArray:()=>_,isTruthy:()=>d,isWhitespace:()=>c}),e})()}},e={};function r(n){var i=e[n];if(void 0!==i)return i.exports;var s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,r),s.exports}r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var n={};return(()=>{"use strict";r.r(n),r.d(n,{Vector:()=>e,isFiniteVectorLike:()=>s,isVectorLike:()=>i});var t=r(854);class e{static matching(t){let r="x"in t?t.x:t.magnitude*Math.cos(t.direction),n="y"in t?t.y:t.magnitude*Math.sin(t.direction);return new e(r,n)}constructor(t,e){this.x=t,this.y=e}[Symbol.iterator](){return[this.x,this.y].values()}get magnitude(){return Math.sqrt(Math.pow(this.x,2)+Math.pow(this.y,2))}set magnitude(t){let e=this.direction;this.x=t*Math.cos(e),this.y=t*Math.sin(e)}get direction(){return Math.atan2(this.y,this.x)}set direction(t){let e=this.magnitude;this.x=e*Math.cos(t),this.y=e*Math.sin(t)}isFinite(){return(0,t.isFiniteNumber)(this.x)&&(0,t.isFiniteNumber)(this.y)}}function i(e){return!(!(0,t.isNonNullObject)(e)||!((0,t.isNumber)(e.x)&&(0,t.isNumber)(e.y)||(0,t.isNumber)(e.magnitude)&&(0,t.isNumber)(e.direction)))}function s(t){return!!i(t)&&e.matching(t).isFinite()}})(),n})(),t.exports=e()}};const e={};function r(n){const i=e[n];if(void 0!==i)return i.exports;const s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,r),s.exports}r.d=(t,e)=>{if(Array.isArray(e))for(var n=0;n<e.length;){var i=e[n++],s=e[n++];r.o(t,i)?0===s&&n++:0===s?Object.defineProperty(t,i,{enumerable:!0,value:e[n++]}):Object.defineProperty(t,i,{enumerable:!0,get:s})}else for(var i in e)r.o(e,i)&&!r.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};let n={};return(()=>{"use strict";r.r(n),r.d(n,{CurvedBond:()=>ut});var t=r(726);const e={randomUUID:"undefined"!=typeof crypto&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};let i;const s=new Uint8Array(16),o=[];for(let t=0;t<256;++t)o.push((t+256).toString(16).slice(1));function a(t,e,r){const n=(t=t||{}).random??t.rng?.()??function(){if(!i){if("undefined"==typeof crypto||!crypto.getRandomValues)throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");i=crypto.getRandomValues.bind(crypto)}return i(s)}();if(n.length<16)throw new Error("Random bytes length must be >= 16");if(n[6]=15&n[6]|64,n[8]=63&n[8]|128,e){if((r=r||0)<0||r+16>e.length)throw new RangeError(`UUID byte range ${r}:${r+15} is out of buffer bounds`);for(let t=0;t<16;++t)e[r+t]=n[t];return e}return function(t,e=0){return(o[t[e+0]]+o[t[e+1]]+o[t[e+2]]+o[t[e+3]]+"-"+o[t[e+4]]+o[t[e+5]]+"-"+o[t[e+6]]+o[t[e+7]]+"-"+o[t[e+8]]+o[t[e+9]]+"-"+o[t[e+10]]+o[t[e+11]]+o[t[e+12]]+o[t[e+13]]+o[t[e+14]]+o[t[e+15]]).toLowerCase()}(n)}const u=" ";function h([t,e],r){return[t*Math.cos(r)-e*Math.sin(r),t*Math.sin(r)+e*Math.cos(r)]}function c(...t){for(let e=0;e<t.length;e++)if("number"!=typeof t[e])throw new Error(`assertNumbers arguments[${e}] is not a number. ${typeof t[e]} == typeof ${t[e]}`);return!0}const l=Math.PI;function f(t,e,r){t.lArcFlag=0===t.lArcFlag?0:1,t.sweepFlag=0===t.sweepFlag?0:1;let{rX:n,rY:i}=t;const{x:s,y:o}=t;if(Math.abs(n)<1e-10||Math.abs(i)<1e-10)return t.rX=0,t.rY=0,t.cX=(e+s)/2,t.cY=(r+o)/2,t.phi1=0,void(t.phi2=0);n=Math.abs(t.rX),i=Math.abs(t.rY);const a=t.xRot/180*l,[u,c]=h([(e-s)/2,(r-o)/2],-a),f=Math.pow(u,2)/Math.pow(n,2)+Math.pow(c,2)/Math.pow(i,2);1<f&&(n*=Math.sqrt(f),i*=Math.sqrt(f)),t.rX=n,t.rY=i;const d=Math.pow(n,2)*Math.pow(c,2)+Math.pow(i,2)*Math.pow(u,2),m=(t.lArcFlag!==t.sweepFlag?1:-1)*Math.sqrt(Math.max(0,(Math.pow(n,2)*Math.pow(i,2)-d)/d)),p=n*c/i*m,y=-i*u/n*m,g=h([p,y],a);t.cX=g[0]+(e+s)/2,t.cY=g[1]+(r+o)/2,t.phi1=Math.atan2((c-y)/i,(u-p)/n),t.phi2=Math.atan2((-c-y)/i,(-u-p)/n),0===t.sweepFlag&&t.phi2>t.phi1&&(t.phi2-=2*l),1===t.sweepFlag&&t.phi2<t.phi1&&(t.phi2+=2*l),t.phi1*=180/l,t.phi2*=180/l}function d(t,e,r){c(t,e,r);const n=t*t+e*e-r*r;if(0>n)return[];if(0===n)return[[t*r/(t*t+e*e),e*r/(t*t+e*e)]];const i=Math.sqrt(n);return[[(t*r+e*i)/(t*t+e*e),(e*r-t*i)/(t*t+e*e)],[(t*r-e*i)/(t*t+e*e),(e*r+t*i)/(t*t+e*e)]]}const m=Math.PI/180;function p(t,e,r){return(1-r)*t+r*e}function y(t,e,r,n){return t+Math.cos(n/180*l)*e+Math.sin(n/180*l)*r}function g(t,e,r,n){const i=1e-6,s=e-t,o=r-e,a=3*s+3*(n-r)-6*o,u=6*(o-s),h=3*s;return Math.abs(a)<i?Math.abs(u)<i?[]:[-h/u]:function(t,e,r=1e-6){const n=t*t/4-e;if(n<-r)return[];if(n<=r)return[-t/2];const i=Math.sqrt(n);return[-t/2-i,-t/2+i]}(u/a,h/a,i)}function b(t,e,r,n,i){const s=1-i;return t*(s*s*s)+e*(3*s*s*i)+r*(3*s*i*i)+n*(i*i*i)}function v(t,e,r){const n=e[0]-t[0],i=e[1]-t[1],s=r[0]-t[0],o=r[1]-t[1],a=n*o-i*s;if(!(Math.abs(a)<1e-10))return!1;const u=n*s+i*o,h=s*s+o*o;return 0<=u&&u<=h&&n*n+i*i<=h}function w(t){const e=t[t.length-1]?.type===j.CLOSE_PATH,r=e?t.length-2:t.length-1,n=[{type:j.MOVE_TO,relative:!1,x:t[r].x,y:t[r].y}];for(let e=r;e>0;e--){const r=t[e],i=t[e-1];if(r.relative)throw new Error("Relative command are not supported convert first with `toAbs()`");switch(r.type){case j.HORIZ_LINE_TO:n.push({type:j.HORIZ_LINE_TO,relative:!1,x:i.x});break;case j.VERT_LINE_TO:n.push({type:j.VERT_LINE_TO,relative:!1,y:i.y});break;case j.LINE_TO:case j.MOVE_TO:n.push({type:j.LINE_TO,relative:!1,x:i.x,y:i.y});break;case j.CURVE_TO:n.push({type:j.CURVE_TO,relative:!1,x:i.x,y:i.y,x1:r.x2,y1:r.y2,x2:r.x1,y2:r.y1});break;case j.SMOOTH_CURVE_TO:throw new Error("Unsupported command: S (smooth cubic bezier)");case j.SMOOTH_QUAD_TO:throw new Error("Unsupported command: T (smooth quadratic bezier)");case j.ARC:throw new Error("Unsupported command: A (arc)");case j.QUAD_TO:throw new Error("Unsupported command: Q (quadratic bezier)")}}return e&&n.push({type:j.CLOSE_PATH}),n}function x(){return _((t,e,r)=>(t.relative&&(void 0!==t.x1&&(t.x1+=e),void 0!==t.y1&&(t.y1+=r),void 0!==t.x2&&(t.x2+=e),void 0!==t.y2&&(t.y2+=r),void 0!==t.x&&(t.x+=e),void 0!==t.y&&(t.y+=r),t.relative=!1),t))}function S(){let t=NaN,e=NaN,r=NaN,n=NaN;return _((i,s,o)=>(i.type&j.SMOOTH_CURVE_TO&&(i.type=j.CURVE_TO,t=isNaN(t)?s:t,e=isNaN(e)?o:e,i.x1=i.relative?s-t:2*s-t,i.y1=i.relative?o-e:2*o-e),i.type&j.CURVE_TO?(t=i.relative?s+i.x2:i.x2,e=i.relative?o+i.y2:i.y2):(t=NaN,e=NaN),i.type&j.SMOOTH_QUAD_TO&&(i.type=j.QUAD_TO,r=isNaN(r)?s:r,n=isNaN(n)?o:n,i.x1=i.relative?s-r:2*s-r,i.y1=i.relative?o-n:2*o-n),i.type&j.QUAD_TO?(r=i.relative?s+i.x1:i.x1,n=i.relative?o+i.y1:i.y1):(r=NaN,n=NaN),i))}function N(){let t=NaN,e=NaN;return _((r,n,i)=>{if(r.type&j.SMOOTH_QUAD_TO&&(r.type=j.QUAD_TO,t=isNaN(t)?n:t,e=isNaN(e)?i:e,r.x1=r.relative?n-t:2*n-t,r.y1=r.relative?i-e:2*i-e),r.type&j.QUAD_TO){t=r.relative?n+r.x1:r.x1,e=r.relative?i+r.y1:r.y1;const s=r.x1,o=r.y1;r.type=j.CURVE_TO,r.x1=((r.relative?0:n)+2*s)/3,r.y1=((r.relative?0:i)+2*o)/3,r.x2=(r.x+2*s)/3,r.y2=(r.y+2*o)/3}else t=NaN,e=NaN;return r})}function _(t){let e=0,r=0,n=NaN,i=NaN;return function(s){if(isNaN(n)&&!(s.type&j.MOVE_TO))throw new Error("path must start with moveto");const o=t(s,e,r,n,i);return s.type&j.CLOSE_PATH&&(e=n,r=i),"x"in s&&void 0!==s.x&&(e=s.relative?e+s.x:s.x),"y"in s&&void 0!==s.y&&(r=s.relative?r+s.y:s.y),s.type&j.MOVE_TO&&(n=e,i=r),o}}function O(t,e,r,n,i,s){return c(t,e,r,n,i,s),_((o,a,u,h)=>{const c=o.x1,l=o.x2,f=o.relative&&!isNaN(h),d=void 0!==o.x?o.x:f?0:a,m=void 0!==o.y?o.y:f?0:u;function p(t){return t*t}o.type&j.HORIZ_LINE_TO&&0!==e&&(o.type=j.LINE_TO,o.y=o.relative?0:u),o.type&j.VERT_LINE_TO&&0!==r&&(o.type=j.LINE_TO,o.x=o.relative?0:a),void 0!==o.x&&(o.x=o.x*t+m*r+(f?0:i)),void 0!==o.y&&(o.y=d*e+o.y*n+(f?0:s)),void 0!==o.x1&&(o.x1=o.x1*t+o.y1*r+(f?0:i)),void 0!==o.y1&&(o.y1=c*e+o.y1*n+(f?0:s)),void 0!==o.x2&&(o.x2=o.x2*t+o.y2*r+(f?0:i)),void 0!==o.y2&&(o.y2=l*e+o.y2*n+(f?0:s));const y=t*n-e*r;if(void 0!==o.xRot&&(1!==t||0!==e||0!==r||1!==n))if(0===y)delete o.rX,delete o.rY,delete o.xRot,delete o.lArcFlag,delete o.sweepFlag,o.type=j.LINE_TO;else{const i=o.xRot*Math.PI/180,s=Math.sin(i),a=Math.cos(i),u=1/p(o.rX),h=1/p(o.rY),c=p(a)*u+p(s)*h,l=2*s*a*(u-h),f=p(s)*u+p(a)*h,d=c*n*n-l*e*n+f*e*e,m=l*(t*n+e*r)-2*(c*r*n+f*t*e),g=c*r*r-l*t*r+f*t*t,b=(Math.atan2(m,d-g)+Math.PI)%Math.PI/2,v=Math.sin(b),w=Math.cos(b);o.rX=Math.abs(y)/Math.sqrt(d*p(w)+m*v*w+g*p(v)),o.rY=Math.abs(y)/Math.sqrt(d*p(v)-m*v*w+g*p(w)),o.xRot=180*b/Math.PI}return void 0!==o.sweepFlag&&0>y&&(o.sweepFlag=+!o.sweepFlag),o})}const P={ROUND:function(t=1e13){function e(e){return Math.round(e*t)/t}return c(t),function(t){return"x1"in t&&void 0!==t.x1&&(t.x1=e(t.x1)),"y1"in t&&void 0!==t.y1&&(t.y1=e(t.y1)),"x2"in t&&void 0!==t.x2&&(t.x2=e(t.x2)),"y2"in t&&void 0!==t.y2&&(t.y2=e(t.y2)),"x"in t&&void 0!==t.x&&(t.x=e(t.x)),"y"in t&&void 0!==t.y&&(t.y=e(t.y)),"rX"in t&&void 0!==t.rX&&(t.rX=e(t.rX)),"rY"in t&&void 0!==t.rY&&(t.rY=e(t.rY)),t}},TO_ABS:x,TO_REL:function(){return _((t,e,r)=>(t.relative||(void 0!==t.x1&&(t.x1-=e),void 0!==t.y1&&(t.y1-=r),void 0!==t.x2&&(t.x2-=e),void 0!==t.y2&&(t.y2-=r),void 0!==t.x&&(t.x-=e),void 0!==t.y&&(t.y-=r),t.relative=!0),t))},NORMALIZE_HVZ:function(t=!0,e=!0,r=!0,n=!0){return _((i,s,o,a,u)=>{if(isNaN(a)&&!(i.type&j.MOVE_TO))throw new Error("path must start with moveto");if(e&&i.type&j.HORIZ_LINE_TO&&(i.type=j.LINE_TO,i.y=i.relative?0:o),r&&i.type&j.VERT_LINE_TO&&(i.type=j.LINE_TO,i.x=i.relative?0:s),t&&i.type&j.CLOSE_PATH&&(i.type=j.LINE_TO,i.x=i.relative?a-s:a,i.y=i.relative?u-o:u),i.type&j.ARC&&(0===i.rX||0===i.rY)&&(i.type=j.LINE_TO,delete i.rX,delete i.rY,delete i.xRot,delete i.lArcFlag,delete i.sweepFlag),n&&i.type&j.QUAD_TO&&v([s,o],i.relative?[s+i.x1,o+i.y1]:[i.x1,i.y1],i.relative?[s+i.x,o+i.y]:[i.x,i.y])&&(i.type=j.LINE_TO,delete i.x1,delete i.y1),n&&i.type&j.CURVE_TO){const t=[s,o],e=i.relative?[s+i.x1,o+i.y1]:[i.x1,i.y1],r=i.relative?[s+i.x2,o+i.y2]:[i.x2,i.y2],n=i.relative?[s+i.x,o+i.y]:[i.x,i.y];v(t,e,n)&&v(t,r,n)&&(i.type=j.LINE_TO,delete i.x1,delete i.y1,delete i.x2,delete i.y2)}return i})},NORMALIZE_ST:S,QT_TO_C:N,INFO:_,SANITIZE:function(t=0){c(t);let e=NaN,r=NaN,n=NaN,i=NaN;return _((s,o,a,u,h)=>{const c=Math.abs;let l=!1,f=0,d=0;if(s.type&j.SMOOTH_CURVE_TO&&(f=isNaN(e)?0:o-e,d=isNaN(r)?0:a-r),s.type&(j.CURVE_TO|j.SMOOTH_CURVE_TO)?(e=s.relative?o+s.x2:s.x2,r=s.relative?a+s.y2:s.y2):(e=NaN,r=NaN),s.type&j.SMOOTH_QUAD_TO?(n=isNaN(n)?o:2*o-n,i=isNaN(i)?a:2*a-i):s.type&j.QUAD_TO?(n=s.relative?o+s.x1:s.x1,i=s.relative?a+s.y1:s.y2):(n=NaN,i=NaN),s.type&j.LINE_COMMANDS||s.type&j.ARC&&(0===s.rX||0===s.rY||!s.lArcFlag)||s.type&j.CURVE_TO||s.type&j.SMOOTH_CURVE_TO||s.type&j.QUAD_TO||s.type&j.SMOOTH_QUAD_TO){const e=void 0===s.x?0:s.relative?s.x:s.x-o,r=void 0===s.y?0:s.relative?s.y:s.y-a;f=isNaN(n)?void 0===s.x1?f:s.relative?s.x:s.x1-o:n-o,d=isNaN(i)?void 0===s.y1?d:s.relative?s.y:s.y1-a:i-a;const u=void 0===s.x2?0:s.relative?s.x:s.x2-o,h=void 0===s.y2?0:s.relative?s.y:s.y2-a;c(e)<=t&&c(r)<=t&&c(f)<=t&&c(d)<=t&&c(u)<=t&&c(h)<=t&&(l=!0)}return s.type&j.CLOSE_PATH&&c(o-u)<=t&&c(a-h)<=t&&(l=!0),l?[]:s})},MATRIX:O,ROTATE:function(t,e=0,r=0){c(t,e,r);const n=Math.sin(t),i=Math.cos(t);return O(i,n,-n,i,e-e*i+r*n,r-e*n-r*i)},TRANSLATE:function(t,e=0){return c(t,e),O(1,0,0,1,t,e)},SCALE:function(t,e=t){return c(t,e),O(t,0,0,e,0,0)},SKEW_X:function(t){return c(t),O(1,0,Math.tan(t),1,0,0)},SKEW_Y:function(t){return c(t),O(1,Math.tan(t),0,1,0,0)},X_AXIS_SYMMETRY:function(t=0){return c(t),O(-1,0,0,1,t,0)},Y_AXIS_SYMMETRY:function(t=0){return c(t),O(1,0,0,-1,0,t)},A_TO_C:function(){return _((t,e,r)=>j.ARC===t.type?function(t,e,r){t.cX||f(t,e,r);const n=t.xRot/180*l;if(Math.abs(t.rX)<1e-10||Math.abs(t.rY)<1e-10)return[{relative:t.relative,type:j.CURVE_TO,x1:e+(t.x-e)/3,y1:r+(t.y-r)/3,x2:e+2*(t.x-e)/3,y2:r+2*(t.y-r)/3,x:t.x,y:t.y}];const i=Math.min(t.phi1,t.phi2),s=Math.max(t.phi1,t.phi2)-i,o=Math.ceil(s/90),a=new Array(o);let u=e,c=r;const d=(e,r)=>{const[i,s]=h([e*t.rX,r*t.rY],n);return[t.cX+i,t.cY+s]};for(let e=0;e<o;e++){const r=p(t.phi1,t.phi2,e/o),n=p(t.phi1,t.phi2,(e+1)/o),i=n-r,s=4/3*Math.tan(i*m/4),h=Math.cos(r*m)-s*Math.sin(r*m),l=Math.sin(r*m)+s*Math.cos(r*m),f=Math.cos(n*m),y=Math.sin(n*m),g=f+s*y,b=y-s*f,v=d(h,l),w=d(g,b),x=d(f,y),S={relative:t.relative,type:j.CURVE_TO,x:x[0],y:x[1],x1:v[0],y1:v[1],x2:w[0],y2:w[1]};t.relative&&(S.x1-=u,S.y1-=c,S.x2-=u,S.y2-=c,S.x-=u,S.y-=c),u=x[0],c=x[1],a[e]=S}return a}(t,t.relative?0:e,t.relative?0:r):t)},ANNOTATE_ARCS:function(){return _((t,e,r)=>(t.relative&&(e=0,r=0),j.ARC===t.type&&f(t,e,r),t))},CLONE:function(){return t=>({...t})},CALCULATE_BOUNDS:function(){const t=x(),e=N(),r=S(),n=_((i,s,o)=>{const a=r(e(t((t=>({...t}))(i))));function u(t){t>n.maxX&&(n.maxX=t),t<n.minX&&(n.minX=t)}function h(t){t>n.maxY&&(n.maxY=t),t<n.minY&&(n.minY=t)}if(a.type&j.DRAWING_COMMANDS&&(u(s),h(o)),a.type&j.HORIZ_LINE_TO&&u(a.x),a.type&j.VERT_LINE_TO&&h(a.y),a.type&j.LINE_TO&&(u(a.x),h(a.y)),a.type&j.CURVE_TO){u(a.x),h(a.y);const t=g(s,a.x1,a.x2,a.x);for(const e of t)0<e&&1>e&&u(b(s,a.x1,a.x2,a.x,e));const e=g(o,a.y1,a.y2,a.y);for(const t of e)0<t&&1>t&&h(b(o,a.y1,a.y2,a.y,t))}if(a.type&j.ARC){u(a.x),h(a.y),f(a,s,o);const t=a.xRot/180*Math.PI,e=Math.cos(t)*a.rX,r=Math.sin(t)*a.rX,n=-Math.sin(t)*a.rY,i=Math.cos(t)*a.rY,[c,l]=a.phi1<a.phi2?[a.phi1,a.phi2]:-180>a.phi2?[a.phi2+360,a.phi1+360]:[a.phi2,a.phi1],m=([t,e])=>{const r=180*Math.atan2(e,t)/Math.PI;return r<c?r+360:r},p=d(n,-e,0).map(m);for(const t of p)t>c&&t<l&&u(y(a.cX,e,n,t));const g=d(i,-r,0).map(m);for(const t of g)t>c&&t<l&&h(y(a.cY,r,i,t))}return i});return n.minX=1/0,n.maxX=-1/0,n.minY=1/0,n.maxY=-1/0,n},REVERSE_PATH:function(t,e=!0){if(t.length<2)return t;const r=P.INFO((t,e,r)=>({...t,x:t.x??e,y:t.y??r,relative:t.relative??!1})),n=[];let i=[];for(const s of t){const t=r(s);t.type===j.MOVE_TO&&i.length>0&&(e?n.push(...w(i)):n.unshift(...w(i)),i=[]),i.push(t)}return i.length>0&&(e?n.push(...w(i)):n.unshift(...w(i))),n},REMOVE_COLLINEAR:function(t){if(t.length<=2)return t;const e=[],r=t.map(P.INFO((t,e,r)=>{const n="relative"in t&&t.relative;return["x"in t?t.x+(n?e:0):e,"y"in t?t.y+(n?r:0):r]}));let n=r[0];e.push(t[0]);for(let i=1;i<t.length;i++){const s=t[i],o=t[i+1];if(i<t.length-1&&o&&s.type&j.LINE_COMMANDS&&o.type&j.LINE_COMMANDS){const t=r[i+1];if(v(n,r[i],t)){"relative"in o&&o.relative&&("x"in o&&(o.x=t[0]-n[0]),"y"in o&&(o.y=t[1]-n[1]));continue}}e.push(s),n=r[i]}return e}};class E{round(t){return this.transform(P.ROUND(t))}toAbs(){return this.transform(P.TO_ABS())}toRel(){return this.transform(P.TO_REL())}normalizeHVZ(t,e,r){return this.transform(P.NORMALIZE_HVZ(t,e,r))}normalizeST(){return this.transform(P.NORMALIZE_ST())}qtToC(){return this.transform(P.QT_TO_C())}aToC(){return this.transform(P.A_TO_C())}sanitize(t){return this.transform(P.SANITIZE(t))}translate(t,e){return this.transform(P.TRANSLATE(t,e))}scale(t,e){return this.transform(P.SCALE(t,e))}rotate(t,e,r){return this.transform(P.ROTATE(t,e,r))}matrix(t,e,r,n,i,s){return this.transform(P.MATRIX(t,e,r,n,i,s))}skewX(t){return this.transform(P.SKEW_X(t))}skewY(t){return this.transform(P.SKEW_Y(t))}xSymmetry(t){return this.transform(P.X_AXIS_SYMMETRY(t))}ySymmetry(t){return this.transform(P.Y_AXIS_SYMMETRY(t))}annotateArcs(){return this.transform(P.ANNOTATE_ARCS())}}const M=t=>" "===t||"\t"===t||"\r"===t||"\n"===t,A=t=>"0".charCodeAt(0)<=t.charCodeAt(0)&&t.charCodeAt(0)<="9".charCodeAt(0);class T extends E{curNumber="";curCommandType=-1;curCommandRelative=!1;canParseCommandOrComma=!0;curNumberHasExp=!1;curNumberHasExpDigits=!1;curNumberHasDecimal=!1;curArgs=[];finish(t=[]){if(this.parse(" ",t),0!==this.curArgs.length||!this.canParseCommandOrComma)throw new SyntaxError("Unterminated command at the path end.");return t}parse(t,e=[]){const r=t=>{e.push(t),this.curArgs.length=0,this.canParseCommandOrComma=!0};for(let n=0;n<t.length;n++){const i=t[n],s=!(this.curCommandType!==j.ARC||3!==this.curArgs.length&&4!==this.curArgs.length||1!==this.curNumber.length||"0"!==this.curNumber&&"1"!==this.curNumber),o=A(i)&&("0"===this.curNumber&&"0"===i||s);if(!A(i)||o)if("e"!==i&&"E"!==i)if("-"!==i&&"+"!==i||!this.curNumberHasExp||this.curNumberHasExpDigits)if("."!==i||this.curNumberHasExp||this.curNumberHasDecimal||s){if(this.curNumber&&-1!==this.curCommandType){const t=Number(this.curNumber);if(isNaN(t))throw new SyntaxError(`Invalid number ending at ${n}`);if(this.curCommandType===j.ARC)if(0===this.curArgs.length||1===this.curArgs.length){if(0>t)throw new SyntaxError(`Expected positive number, got "${t}" at index "${n}"`)}else if((3===this.curArgs.length||4===this.curArgs.length)&&"0"!==this.curNumber&&"1"!==this.curNumber)throw new SyntaxError(`Expected a flag, got "${this.curNumber}" at index "${n}"`);this.curArgs.push(t),this.curArgs.length===C[this.curCommandType]&&(j.HORIZ_LINE_TO===this.curCommandType?r({type:j.HORIZ_LINE_TO,relative:this.curCommandRelative,x:t}):j.VERT_LINE_TO===this.curCommandType?r({type:j.VERT_LINE_TO,relative:this.curCommandRelative,y:t}):this.curCommandType===j.MOVE_TO||this.curCommandType===j.LINE_TO||this.curCommandType===j.SMOOTH_QUAD_TO?(r({type:this.curCommandType,relative:this.curCommandRelative,x:this.curArgs[0],y:this.curArgs[1]}),j.MOVE_TO===this.curCommandType&&(this.curCommandType=j.LINE_TO)):this.curCommandType===j.CURVE_TO?r({type:j.CURVE_TO,relative:this.curCommandRelative,x1:this.curArgs[0],y1:this.curArgs[1],x2:this.curArgs[2],y2:this.curArgs[3],x:this.curArgs[4],y:this.curArgs[5]}):this.curCommandType===j.SMOOTH_CURVE_TO?r({type:j.SMOOTH_CURVE_TO,relative:this.curCommandRelative,x2:this.curArgs[0],y2:this.curArgs[1],x:this.curArgs[2],y:this.curArgs[3]}):this.curCommandType===j.QUAD_TO?r({type:j.QUAD_TO,relative:this.curCommandRelative,x1:this.curArgs[0],y1:this.curArgs[1],x:this.curArgs[2],y:this.curArgs[3]}):this.curCommandType===j.ARC&&r({type:j.ARC,relative:this.curCommandRelative,rX:this.curArgs[0],rY:this.curArgs[1],xRot:this.curArgs[2],lArcFlag:this.curArgs[3],sweepFlag:this.curArgs[4],x:this.curArgs[5],y:this.curArgs[6]})),this.curNumber="",this.curNumberHasExpDigits=!1,this.curNumberHasExp=!1,this.curNumberHasDecimal=!1,this.canParseCommandOrComma=!0}if(!M(i))if(","===i&&this.canParseCommandOrComma)this.canParseCommandOrComma=!1;else if("+"!==i&&"-"!==i&&"."!==i)if(o)this.curNumber=i,this.curNumberHasDecimal=!1;else{if(0!==this.curArgs.length)throw new SyntaxError(`Unterminated command at index ${n}.`);if(!this.canParseCommandOrComma)throw new SyntaxError(`Unexpected character "${i}" at index ${n}. Command cannot follow comma`);if(this.canParseCommandOrComma=!1,"z"!==i&&"Z"!==i)if("h"===i||"H"===i)this.curCommandType=j.HORIZ_LINE_TO,this.curCommandRelative="h"===i;else if("v"===i||"V"===i)this.curCommandType=j.VERT_LINE_TO,this.curCommandRelative="v"===i;else if("m"===i||"M"===i)this.curCommandType=j.MOVE_TO,this.curCommandRelative="m"===i;else if("l"===i||"L"===i)this.curCommandType=j.LINE_TO,this.curCommandRelative="l"===i;else if("c"===i||"C"===i)this.curCommandType=j.CURVE_TO,this.curCommandRelative="c"===i;else if("s"===i||"S"===i)this.curCommandType=j.SMOOTH_CURVE_TO,this.curCommandRelative="s"===i;else if("q"===i||"Q"===i)this.curCommandType=j.QUAD_TO,this.curCommandRelative="q"===i;else if("t"===i||"T"===i)this.curCommandType=j.SMOOTH_QUAD_TO,this.curCommandRelative="t"===i;else{if("a"!==i&&"A"!==i)throw new SyntaxError(`Unexpected character "${i}" at index ${n}.`);this.curCommandType=j.ARC,this.curCommandRelative="a"===i}else e.push({type:j.CLOSE_PATH}),this.canParseCommandOrComma=!0,this.curCommandType=-1}else this.curNumber=i,this.curNumberHasDecimal="."===i}else this.curNumber+=i,this.curNumberHasDecimal=!0;else this.curNumber+=i;else this.curNumber+=i,this.curNumberHasExp=!0;else this.curNumber+=i,this.curNumberHasExpDigits=this.curNumberHasExp}return e}transform(t){return Object.create(this,{parse:{value(e,r=[]){const n=Object.getPrototypeOf(this).parse.call(this,e);for(const e of n){const n=t(e);Array.isArray(n)?r.push(...n):r.push(n)}return r}}})}}class j extends E{commands;constructor(t){super(),this.commands="string"==typeof t?j.parse(t):t}encode(){return j.encode(this.commands)}getBounds(){const t=P.CALCULATE_BOUNDS();return this.transform(t),t}transform(t){const e=[];for(const r of this.commands){const n=t(r);Array.isArray(n)?e.push(...n):e.push(n)}return this.commands=e,this}reverse(t=!0){return this.commands=P.REVERSE_PATH(this.commands,t),this}removeCollinear(){return this.commands=P.REMOVE_COLLINEAR(this.commands),this}static encode(t){return function(t){let e="";Array.isArray(t)||(t=[t]);for(let r=0;r<t.length;r++){const n=t[r];if(n.type===j.CLOSE_PATH)e+="z";else if(n.type===j.HORIZ_LINE_TO)e+=(n.relative?"h":"H")+n.x;else if(n.type===j.VERT_LINE_TO)e+=(n.relative?"v":"V")+n.y;else if(n.type===j.MOVE_TO)e+=(n.relative?"m":"M")+n.x+u+n.y;else if(n.type===j.LINE_TO)e+=(n.relative?"l":"L")+n.x+u+n.y;else if(n.type===j.CURVE_TO)e+=(n.relative?"c":"C")+n.x1+u+n.y1+u+n.x2+u+n.y2+u+n.x+u+n.y;else if(n.type===j.SMOOTH_CURVE_TO)e+=(n.relative?"s":"S")+n.x2+u+n.y2+u+n.x+u+n.y;else if(n.type===j.QUAD_TO)e+=(n.relative?"q":"Q")+n.x1+u+n.y1+u+n.x+u+n.y;else if(n.type===j.SMOOTH_QUAD_TO)e+=(n.relative?"t":"T")+n.x+u+n.y;else{if(n.type!==j.ARC)throw new Error(`Unexpected command type "${n?.type}" at index ${r}.`);e+=(n.relative?"a":"A")+n.rX+u+n.rY+u+n.xRot+u+ +n.lArcFlag+u+ +n.sweepFlag+u+n.x+u+n.y}}return e}(t)}static parse(t){const e=new T,r=[];return e.parse(t,r),e.finish(r),r}static CLOSE_PATH=1;static MOVE_TO=2;static HORIZ_LINE_TO=4;static VERT_LINE_TO=8;static LINE_TO=16;static CURVE_TO=32;static SMOOTH_CURVE_TO=64;static QUAD_TO=128;static SMOOTH_QUAD_TO=256;static ARC=512;static LINE_COMMANDS=j.LINE_TO|j.HORIZ_LINE_TO|j.VERT_LINE_TO;static DRAWING_COMMANDS=j.HORIZ_LINE_TO|j.VERT_LINE_TO|j.LINE_TO|j.CURVE_TO|j.SMOOTH_CURVE_TO|j.QUAD_TO|j.SMOOTH_QUAD_TO|j.ARC}const C={[j.MOVE_TO]:2,[j.LINE_TO]:2,[j.HORIZ_LINE_TO]:1,[j.VERT_LINE_TO]:1,[j.CLOSE_PATH]:0,[j.QUAD_TO]:4,[j.SMOOTH_QUAD_TO]:2,[j.CURVE_TO]:6,[j.SMOOTH_CURVE_TO]:4,[j.ARC]:7};var L=r(456);class k{static matching(t){if(t.type!==j.MOVE_TO)throw new Error('SVG path definition command is not of type "M".');if(t.relative)throw new Error("The input SVG path definition command is a relative command.");let e=new L.FinitePoint(t.x,t.y);return new k(e)}constructor(t){this.startPoint=t}get endPoint(){return this.startPoint}toString(){return`M ${this.startPoint.x} ${this.startPoint.y}`}}class D extends L.FinitePoint{drag(t,e){t*=2,e*=2,super.drag(t,e)}}class I{static matching(t){if(t.type!==j.LINE_TO&&t.type!==j.QUAD_TO&&t.type!==j.CURVE_TO)throw new Error('Trailing segments can only be created for "L", "Q" and "C" SVG path definition commands.');if(t.relative)throw new Error("The input SVG path definition command is a relative command.");var e=[];t.type!==j.QUAD_TO&&t.type!==j.CURVE_TO||e.push(new D(t.x1,t.y1)),t.type===j.CURVE_TO&&e.push(new D(t.x2,t.y2));var r=new L.FinitePoint(t.x,t.y);return new I(e,r)}constructor(t,e){this.controlPoints=t,this.endPoint=e}toString(){if(this.controlPoints.length>2)throw new Error(`There can only be at most 2 control points: ${this.controlPoints.length} control points.`);return(0==this.controlPoints.length?"L":1==this.controlPoints.length?"Q":"C")+" "+this.controlPoints.map(t=>`${t.x} ${t.y}`).join(" ")+" "+`${this.endPoint.x} ${this.endPoint.y}`}}var F,B=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class V{constructor(t,e){this.startPoint=t,F.set(this,void 0),function(t,e,r){if("function"==typeof e||!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");e.set(t,r)}(this,F,e)}get controlPoints(){return B(this,F,"f").controlPoints}get endPoint(){return B(this,F,"f").endPoint}closestPoint(e){return new t.AbstractPath(`M ${this.startPoint.x} ${this.startPoint.y} ${B(this,F,"f").toString()}`).closestPoint(e)}}F=new WeakMap;var R,z=r(725),G=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class U{constructor(t){R.set(this,void 0),function(t,e,r){if("function"==typeof e||!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");e.set(t,r)}(this,R,t)}closest(t){if(0==G(this,R,"f").length)throw new Error("This points collection is empty.");let e=[...G(this,R,"f")];return e.sort((e,r)=>(0,z.distance)(e,t)-(0,z.distance)(r,t)),e[0]}}R=new WeakMap;var X,Y,W=r(106),q=r(854),H=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class ${static matching(t){let e=J.create();if(!(0,q.isString)(t))return e;try{let e=new j(t);e=e.toAbs();let r=k.matching(e.commands[0]),n=[I.matching(e.commands[1]),...e.commands.slice(2).map(t=>I.matching(t))];return new $(r,n)}catch{return e}}constructor(t,e){X.add(this),this.moveToSegment=t,this.trailingSegments=e}get segments(){return[this.moveToSegment,this.trailingSegments[0],...this.trailingSegments.slice(1)]}get definingPoints(){return{toArray:()=>[this.startPoint,...this.trailingSegments.flatMap(t=>[...t.controlPoints,t.endPoint])],anchored:()=>[this.startPoint.deepCopy(),...H(this,X,"a",Y).flatMap(t=>[...t.controlPoints.map(e=>t.closestPoint(e)),t.endPoint.deepCopy()])]}}get startPoint(){return this.moveToSegment.startPoint}get interveningPoints(){return[...this.trailingSegments.slice(0,-1).flatMap(t=>[...t.controlPoints,t.endPoint]),...(0,W.last)(this.trailingSegments).controlPoints]}get controlPoints(){return this.trailingSegments.flatMap(t=>t.controlPoints)}get endPoint(){if(0==this.trailingSegments.length)throw new Error("This SVG path definition has no trailing segments.");return(0,W.last)(this.trailingSegments).endPoint}toString(){return this.segments.map(t=>t.toString()).join(" ")}drag(t,e,r){let n=new U(this.definingPoints.toArray()).closest(r.dragPoint);this.controlPoints.includes(n)&&(t*=2,e*=2),n.displace({x:t,y:e})}}X=new WeakSet,Y=function(){return[new V(this.startPoint,this.trailingSegments[0]),...(0,W.consecutivePairs)(this.trailingSegments).map(([t,e])=>new V(t.endPoint,e))]};const J={create:()=>{let t=new j("M 0 0 Q 0 0 0 0");if(t.commands.length<2)throw new Error("Unable to create default SVG path definition.");let e=k.matching(t.commands[0]),r=[I.matching(t.commands[1])];return new $(e,r)}};var K=r(277);class Q{static from(t){let e,r=new Q(0,0);if(!(0,q.isString)(t))return r;try{e=JSON.parse(t)}catch{return r}return(0,K.isVectorLike)(e)?Q.matching(e):r}static matching(t){let e=K.Vector.matching(t);return new Q(e.magnitude,e.direction)}constructor(t,e){this.magnitude=t,this.direction=e}toJSON(){return JSON.stringify({magnitude:this.magnitude,direction:this.direction})}}var Z,tt,et,rt,nt,it,st,ot=r(986),at=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class ut{static between(t,r){let n=t.domNode.getBBox().height,i=r.domNode.getBBox().height,s=document.createElementNS("http://www.w3.org/2000/svg","path");s.id="id-"+(e.randomUUID?e.randomUUID():a(void 0,void 0,void 0)),s.setAttribute("stroke","red"),s.setAttribute("stroke-width",""+.146*(0,ot.mean)([n,i])),s.setAttribute("stroke-opacity","1"),s.setAttribute("stroke-dasharray","3 1.5"),s.setAttribute("stroke-linecap",""),s.setAttribute("stroke-linejoin",""),s.setAttribute("fill","none");let o=(0,L.midpoint)(t.centerPoint,r.centerPoint);s.setAttribute("d",`M ${t.centerPoint.x} ${t.centerPoint.y} Q ${o.x} ${o.y} ${r.centerPoint.x} ${r.centerPoint.y}`);let u=new ut(s,t,r);u.basePadding1.magnitude=.591*n,u.basePadding2.magnitude=.591*i,u.basePadding1.direction=-Math.PI/8,u.basePadding2.direction=Math.PI/8;let h=$.matching(u.domNode.getAttribute("d"));return o=(0,L.midpoint)(h.startPoint,h.endPoint),h.trailingSegments[0].controlPoints[0]=L.FinitePoint.matching(o.displaced({magnitude:.2*(0,z.distance)(h.startPoint,h.endPoint),direction:(0,z.direction)(h.startPoint,h.endPoint)-Math.PI/2})),u.domNode.setAttribute("d",h.toString()),u}constructor(t,e,r){Z.add(this),this.domNode=t,this.base1=e,this.base2=r,t.dataset.basePadding1||t.dataset.basePadding2||at(this,Z,"m",et).call(this),e.addEventListener("change",()=>at(this,Z,"m",tt).call(this)),r.addEventListener("change",()=>at(this,Z,"m",tt).call(this))}get id(){return this.domNode.id}binds(t){return t===this.base1||t===this.base2}get basePadding1(){let t=()=>Q.from(this.domNode.dataset.basePadding1),e=(t,e)=>{let r=new Q(t,e);this.domNode.dataset.basePadding1=r.toJSON(),at(this,Z,"m",tt).call(this)},r=()=>t().magnitude,n=()=>t().direction;return{get magnitude(){return r()},set magnitude(t){(t=>{e(t,n())})(t)},get direction(){return n()},set direction(t){(t=>{e(r(),t)})(t)}}}get basePadding2(){let t=()=>Q.from(this.domNode.dataset.basePadding2),e=(t,e)=>{let r=new Q(t,e);this.domNode.dataset.basePadding2=r.toJSON(),at(this,Z,"m",tt).call(this)},r=()=>t().magnitude,n=()=>t().direction;return{get magnitude(){return r()},set magnitude(t){(t=>{e(t,n())})(t)},get direction(){return n()},set direction(t){(t=>{e(r(),t)})(t)}}}get length(){return this.domNode.getTotalLength()}atLength(t){let e=(t=(t=t<0?0:t)>this.length?this.length:t)-.005,r=t+.005;e=(0,ot.max)([e,0]),r=(0,ot.min)([r,this.length]);let n=L.Point.matching(this.domNode.getPointAtLength(e)),i=L.Point.matching(this.domNode.getPointAtLength(r)),s=(0,L.midpoint)(n,i),o=n.directionTo(i);return o=Number.isFinite(o)?o:0,{x:s.x,y:s.y,direction:o}}closestPoint(e){return new t.Path(this.domNode).closestPoint(e)}get definingPoints(){let t=$.matching(this.domNode.getAttribute("d"));return{toArray:()=>t.definingPoints.toArray(),closest:e=>new U(t.definingPoints.toArray()).closest(e),anchored:()=>({closest:t=>{let e=$.matching(this.domNode.getAttribute("d")).definingPoints.anchored(),r=[...e].sort((e,r)=>(0,z.distance)(e,t)-(0,z.distance)(r,t)),n=e.indexOf(r[0]);return{drag:(t,e)=>{let r=$.matching(this.domNode.getAttribute("d")),i=r.definingPoints.toArray()[n];if(!i)throw new Error("The reference to the closest defining point was lost.");i.drag(t,e),this.domNode.setAttribute("d",r.toString()),at(this,Z,"m",et).call(this)}}}})}}drag(t,e,r){var n;let i=null==r?void 0:r.dragGroup;if((null==i?void 0:i.has(this.base1.domNode))||(null==i?void 0:i.has(this.base2.domNode)))return;let s=null!==(n=null==r?void 0:r.dragPoint)&&void 0!==n?n:this.domNode.getPointAtLength(this.domNode.getTotalLength()/2),o=$.matching(this.domNode.getAttribute("d"));o.drag(t,e,{dragPoint:s}),this.domNode.setAttribute("d",o.toString()),at(this,Z,"m",et).call(this)}remove(){this.domNode.remove()}save(){return{id:this.id,baseID1:this.base1.id,baseID2:this.base2.id}}static recreate(t,e){var r,n,i;if(!(0,q.isNonNullObject)(t))throw new Error(`Saved curved bond isn't an object: ${t}.`);let s=null!==(r=t.id)&&void 0!==r?r:t.pathId;if(!(0,q.isString)(s))throw new Error(`Saved curved bond ID isn't a string: ${s}.`);let o=null!==(n=t.baseID1)&&void 0!==n?n:t.baseId1,a=null!==(i=t.baseID2)&&void 0!==i?i:t.baseId2;if(!(0,q.isString)(o))throw new Error(`Saved curved bond base 1 ID isn't a string: ${o}.`);if(!(0,q.isString)(a))throw new Error(`Saved curved bond base 2 ID isn't a string: ${a}.`);let u=e.domNode.querySelector("#"+s);if(!u)throw new Error("Unable to find saved curved bond DOM node in parent drawing by ID.");if(!(u instanceof SVGPathElement))throw new Error(`Saved curved bond DOM node isn't an SVG path element: ${u}.`);let h=[...e.bases],c=h.find(t=>t.id===o),l=h.find(t=>t.id===a);if(!c)throw new Error("Unable to find base 1 in parent drawing.");if(!l)throw new Error("Unable to find base 2 in parent drawing.");return new ut(u,c,l)}}Z=new WeakSet,tt=function(){let t=Q.from(this.domNode.dataset.basePadding1),e=Q.from(this.domNode.dataset.basePadding2);t=at(this,Z,"m",rt).call(this,t),e=at(this,Z,"m",nt).call(this,e);let r=$.matching(this.domNode.getAttribute("d")),n=(0,L.midpoint)(r.startPoint,r.endPoint),i=r.interveningPoints.map(t=>[t,n.displacementTo(t)]);i.forEach(([t,e])=>e.direction-=(0,z.direction)(r.startPoint,r.endPoint)),r.startPoint.set(L.Point.matching(this.base1.centerPoint).displaced(t)),r.endPoint.set(L.Point.matching(this.base2.centerPoint).displaced(e)),n=(0,L.midpoint)(r.startPoint,r.endPoint),i.forEach(([t,e])=>e.direction+=(0,z.direction)(r.startPoint,r.endPoint)),i.forEach(([t,e])=>t.set(n.displaced(e))),this.domNode.setAttribute("d",r.toString())},et=function(){let t=$.matching(this.domNode.getAttribute("d")),e=Q.matching(L.Point.matching(this.base1.centerPoint).displacementTo(t.startPoint)),r=Q.matching(L.Point.matching(this.base2.centerPoint).displacementTo(t.endPoint));e=at(this,Z,"m",it).call(this,e),r=at(this,Z,"m",st).call(this,r),this.domNode.dataset.basePadding1=e.toJSON(),this.domNode.dataset.basePadding2=r.toJSON()},rt=function(t){let e=Q.matching(t);return e.direction+=(0,z.direction)(this.base1.centerPoint,this.base2.centerPoint),e},nt=function(t){let e=Q.matching(t);return e.direction+=(0,z.direction)(this.base2.centerPoint,this.base1.centerPoint),e},it=function(t){let e=Q.matching(t);return e.direction-=(0,z.direction)(this.base1.centerPoint,this.base2.centerPoint),e},st=function(t){let e=Q.matching(t);return e.direction-=(0,z.direction)(this.base2.centerPoint,this.base1.centerPoint),e}})(),n})(),t.exports=e()},726(t){var e;e=()=>(()=>{var t={725(t){t.exports=(()=>{var t={986:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){var e=0;return t.forEach(function(t){return e+=t}),e}function n(t){return r(t)/t.length}function i(t){t.sort(function(t,e){return t-e})}t.r(e),t.d(e,{areWithin:()=>f,average:()=>n,degrees:()=>p,isBetweenExclusive:()=>l,isBetweenInclusive:()=>c,max:()=>h,mean:()=>n,median:()=>a,min:()=>u,radians:()=>y,sortNumbers:()=>i,sortNumbersAscending:()=>i,sortNumbersDescending:()=>d,sortedNumbers:()=>o,sortedNumbersAscending:()=>o,sortedNumbersDescending:()=>m,sum:()=>r});var s=function(t,e,r){if(r||2===arguments.length)for(var n,i=0,s=e.length;i<s;i++)!n&&i in e||(n||(n=Array.prototype.slice.call(e,0,i)),n[i]=e[i]);return t.concat(n||Array.prototype.slice.call(e))};function o(t){var e=s([],t,!0);return i(e),e}function a(t){if(0==t.length)return NaN;var e=o(t);if(e.length%2!=0)return e[Math.floor(e.length/2)];var r=e.length/2,i=r-1;return n([e[r],e[i]])}function u(t){if(0==t.length)return 1/0;var e=t[0];return t.slice(1).forEach(function(t){e=Math.min(e,t)}),e}function h(t){if(0==t.length)return-1/0;var e=t[0];return t.slice(1).forEach(function(t){e=Math.max(e,t)}),e}function c(t,e,r){return t>=e&&t<=r}function l(t,e,r){return t>e&&t<r}function f(t,e,r){return Math.abs(t-e)<=r}function d(t){i(t),t.reverse()}function m(t){var e=o(t);return e.reverse(),e}function p(t){return t*(180/Math.PI)}function y(t){return t*(Math.PI/180)}return e})()},854:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){return"number"==typeof t}function n(t){return r(t)&&Number.isFinite(t)}function i(t){return r(t)&&!Number.isFinite(t)}function s(t){return n(t)&&t>0}function o(t){return n(t)&&t>=0}function a(t){return"string"==typeof t}function u(t){return null==t}function h(t){return"object"==typeof t&&null!==t}function c(t){return Array.isArray(t)}return t.r(e),t.d(e,{isArray:()=>c,isFiniteNumber:()=>n,isNonFiniteNumber:()=>i,isNonNegativeFiniteNumber:()=>o,isNonNullObject:()=>h,isNullish:()=>u,isNumber:()=>r,isPositiveFiniteNumber:()=>s,isString:()=>a}),e})()},30:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){return Math.pow(Math.pow(t.x,2)+Math.pow(t.y,2),.5)}function n(t){return Math.atan2(t.y,t.x)}return t.r(e),t.d(e,{direction:()=>n,magnitude:()=>r}),e})()}},e={};function r(n){var i=e[n];if(void 0!==i)return i.exports;var s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,r),s.exports}r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var n={};return(()=>{"use strict";r.r(n),r.d(n,{areWithin:()=>a,centroid:()=>d,deepCopy:()=>s,direction:()=>l,displaced:()=>h,displacement:()=>u,distance:()=>o,isFinitePoint:()=>i,isPoint:()=>e,midpoint:()=>m});var t=r(854);function e(e){return(0,t.isNonNullObject)(e)&&(0,t.isNumber)(e.x)&&(0,t.isNumber)(e.y)}function i(r){return e(r)&&(0,t.isFiniteNumber)(r.x)&&(0,t.isFiniteNumber)(r.y)}function s(t){return{x:t.x,y:t.y}}function o(t,e){var r=e.x-t.x,n=e.y-t.y;return Math.pow(Math.pow(r,2)+Math.pow(n,2),.5)}function a(t,e,r){return o(t,e)<=r}function u(t,e){return{x:e.x-t.x,y:e.y-t.y}}function h(t,e){return{x:t.x+e.x,y:t.y+e.y}}var c=r(30);function l(t,e){return(0,c.direction)(u(t,e))}var f=r(986);function d(t){return{x:(0,f.mean)(t.map(function(t){return t.x})),y:(0,f.mean)(t.map(function(t){return t.y}))}}function m(t,e){return d([t,e])}})(),n})()},854(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){return"number"==typeof t}function n(t){return r(t)&&Number.isFinite(t)}function i(t){return r(t)&&!Number.isFinite(t)}function s(t){return n(t)&&t>0}function o(t){return n(t)&&t>=0}function a(t){return"string"==typeof t}function u(t){return""===t}function h(t){return a(t)&&!u(t)}function c(t){return!!a(t)&&0==t.trim().length}function l(t){if(!a(t))return!1;try{return JSON.parse(t),!0}catch{return!1}}function f(t){try{return JSON.stringify(t),!0}catch{return!1}}function d(t){return!!t}function m(t){return!t}function p(t){return null==t}function y(t){return"object"==typeof t&&null!==t}function g(t){return Array.isArray(t)}function b(t){return g(t)&&0==t.length}function v(t){return g(t)&&t.length>0}function w(t){return g(t)&&t.every(r)}function x(t){return w(t)&&t.length>0}function S(t){return g(t)&&t.every(n)}function N(t){return g(t)&&t.every(i)}function _(t){return g(t)&&t.every(a)}function O(t){return _(t)&&t.length>0}function P(t){return t instanceof SVGGraphicsElement}return t.r(e),t.d(e,{isArray:()=>g,isEmptyArray:()=>b,isEmptyString:()=>u,isFalsy:()=>m,isFiniteNumber:()=>n,isFiniteNumbersArray:()=>S,isJSON:()=>l,isJSONSerializable:()=>f,isNonEmptyArray:()=>v,isNonEmptyNumbersArray:()=>x,isNonEmptyString:()=>h,isNonEmptyStringsArray:()=>O,isNonFiniteNumber:()=>i,isNonFiniteNumbersArray:()=>N,isNonNegativeFiniteNumber:()=>o,isNonNullObject:()=>y,isNullish:()=>p,isNumber:()=>r,isNumbersArray:()=>w,isPositiveFiniteNumber:()=>s,isSVGGraphicsElement:()=>P,isString:()=>a,isStringsArray:()=>_,isTruthy:()=>d,isWhitespace:()=>c}),e})()}};const e={};function r(n){const i=e[n];if(void 0!==i)return i.exports;const s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,r),s.exports}r.d=(t,e)=>{if(Array.isArray(e))for(var n=0;n<e.length;){var i=e[n++],s=e[n++];r.o(t,i)?0===s&&n++:0===s?Object.defineProperty(t,i,{enumerable:!0,value:e[n++]}):Object.defineProperty(t,i,{enumerable:!0,get:s})}else for(var i in e)r.o(e,i)&&!r.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};let n={};return(()=>{"use strict";r.r(n),r.d(n,{AbstractPath:()=>s,CoordinateSystem:()=>y,HorizontalClientScaling:()=>b,InnerXML:()=>_,OuterXML:()=>E,Path:()=>i,Scaling:()=>g,VerticalClientScaling:()=>v,assignUUID:()=>p,bringToFront:()=>w,drawOnCanvas:()=>j,isSVGGraphicsElement:()=>M,isSVGGraphicsElementsArray:()=>T,sendToBack:()=>x,setAttributes:()=>h});var t,e=r(725);class i{constructor(t){this.domNode=t}closestPoint(t){let r=this.domNode.getTotalLength(),n=[];for(let i=0;i<=16;i++){let s=i/16*r;n.push([s,(0,e.distance)(t,this.domNode.getPointAtLength(s))])}n.sort((t,e)=>t[1]-e[1]);let i=n[0],s=i[0]-r/16,o=i[0]+r/16;s=Math.max(0,s),o=Math.min(r,o);for(let r=0;r<20;r++){let r=(o-s)/3;(0,e.distance)(t,this.domNode.getPointAtLength(s))<(0,e.distance)(t,this.domNode.getPointAtLength(o))?o-=r:s+=r}let a=(s+o)/2,u=this.domNode.getPointAtLength(a);return{x:u.x,y:u.y,length:a}}}class s{constructor(e){t.set(this,void 0),function(t,e,r){if("function"==typeof e||!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");e.set(t,r)}(this,t,e)}closestPoint(e){return document.body.contains(a)||document.body.append(a),u.setAttribute("d",function(t,e){if("function"==typeof e||!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return e.get(t)}(this,t)),new i(u).closestPoint(e)}}t=new WeakMap;const o=document.createElementNS("http://www.w3.org/2000/svg","svg");o.setAttribute("viewBox","0 0 100 100"),o.setAttribute("width","100"),o.setAttribute("height","100");const a=document.createElement("div");a.append(o),a.style.height="0px",a.style.position="fixed",document.body.append(a);const u=document.createElementNS("http://www.w3.org/2000/svg","path");function h(t,e){for(let[r,n]of Object.entries(e))t.setAttribute(r,n)}u.setAttribute("stroke","black"),u.setAttribute("stroke-width","1"),o.append(u);const c={randomUUID:"undefined"!=typeof crypto&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};let l;const f=new Uint8Array(16),d=[];for(let t=0;t<256;++t)d.push((t+256).toString(16).slice(1));const m=function(t,e,r){return!c.randomUUID||e||t?function(t,e,r){const n=(t=t||{}).random??t.rng?.()??function(){if(!l){if("undefined"==typeof crypto||!crypto.getRandomValues)throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");l=crypto.getRandomValues.bind(crypto)}return l(f)}();if(n.length<16)throw new Error("Random bytes length must be >= 16");if(n[6]=15&n[6]|64,n[8]=63&n[8]|128,e){if((r=r||0)<0||r+16>e.length)throw new RangeError(`UUID byte range ${r}:${r+15} is out of buffer bounds`);for(let t=0;t<16;++t)e[r+t]=n[t];return e}return function(t,e=0){return(d[t[e+0]]+d[t[e+1]]+d[t[e+2]]+d[t[e+3]]+"-"+d[t[e+4]]+d[t[e+5]]+"-"+d[t[e+6]]+d[t[e+7]]+"-"+d[t[e+8]]+d[t[e+9]]+"-"+d[t[e+10]]+d[t[e+11]]+d[t[e+12]]+d[t[e+13]]+d[t[e+14]]+d[t[e+15]]).toLowerCase()}(n)}(t,e,r):c.randomUUID()};function p(t){t.id="uuid-"+m()}class y{constructor(t){this.targetSVGDoc=t}get width(){return this.targetSVGDoc.viewBox.baseVal.width}get height(){return this.targetSVGDoc.viewBox.baseVal.height}get minX(){return this.targetSVGDoc.viewBox.baseVal.x}get maxX(){return this.minX+this.width}get minY(){return this.targetSVGDoc.viewBox.baseVal.y}get maxY(){return this.minY+this.height}get horizontalScaling(){return this.targetSVGDoc.width.baseVal.value/this.width}get verticalScaling(){return this.targetSVGDoc.height.baseVal.value/this.height}setScaling(t){this.targetSVGDoc.setAttribute("width",""+t*this.width),this.targetSVGDoc.setAttribute("height",""+t*this.height)}get clientWidth(){return this.targetSVGDoc.getBoundingClientRect().width}get clientHeight(){return this.targetSVGDoc.getBoundingClientRect().height}get horizontalClientScaling(){return this.clientWidth/this.width}get verticalClientScaling(){return this.clientHeight/this.height}get minClientX(){return this.targetSVGDoc.getBoundingClientRect().x}get minClientY(){return this.targetSVGDoc.getBoundingClientRect().y}fromClientX(t){return this.minX+(t-this.minClientX)/this.horizontalClientScaling}fromClientY(t){return this.minY+(t-this.minClientY)/this.verticalClientScaling}fromClientCoordinates(t,e){return[this.fromClientX(t),this.fromClientY(e)]}fromClientPoint(t){return{x:this.fromClientX(t.x),y:this.fromClientY(t.y)}}toClientX(t){return this.minClientX+this.horizontalClientScaling*(t-this.minX)}toClientY(t){return this.minClientY+this.verticalClientScaling*(t-this.minY)}toClientCoordinates(t,e){return[this.toClientX(t),this.toClientY(e)]}toClientPoint(t){return{x:this.toClientX(t.x),y:this.toClientY(t.y)}}}class g{constructor(t){this.targetSVGDoc=t}set(t){let e=this.targetSVGDoc.viewBox.baseVal;this.targetSVGDoc.setAttribute("width",t*e.width+"px"),this.targetSVGDoc.setAttribute("height",t*e.height+"px")}}class b{constructor(t){this.targetSVGDoc=t}get(){let t=this.targetSVGDoc.getBoundingClientRect(),e=this.targetSVGDoc.viewBox.baseVal;return t.width/e.width}}class v{constructor(t){this.targetSVGDoc=t}get(){let t=this.targetSVGDoc.getBoundingClientRect(),e=this.targetSVGDoc.viewBox.baseVal;return t.height/e.height}}function w(t){let e=t.parentNode;e&&e.appendChild(t)}function x(t){let e=t.parentNode;e&&e.prepend(t)}var S,N=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class _{constructor(t){S.set(this,void 0),function(t,e,r){if("function"==typeof e||!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");e.set(t,r)}(this,S,t)}toString(){return N(this,S,"f").innerHTML}set(t){N(this,S,"f").innerHTML=t}}S=new WeakMap;var O,P=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class E{constructor(t){O.set(this,void 0),function(t,e,r){if("function"==typeof e||!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");e.set(t,r)}(this,O,t)}toString(){return P(this,O,"f").outerHTML}set(t){let e=document.createElementNS("http://www.w3.org/2000/svg","svg");if(e.style.height="0px",document.body.append(e),e.innerHTML=t,!e.firstElementChild)throw new Error("Outer XML must encode an SVG element.");if(e.childNodes.length>1)throw new Error("Outer XML cannot encode multiple DOM nodes.");if(e.firstElementChild.tagName.toLowerCase()!=P(this,O,"f").tagName.toLowerCase())throw new Error("Outer XML must specify an SVG element with the same tag name as the target SVG element.");[...P(this,O,"f").attributes].forEach(t=>P(this,O,"f").removeAttribute(t.name)),[...e.firstElementChild.attributes].forEach(t=>P(this,O,"f").setAttribute(t.name,t.value)),P(this,O,"f").innerHTML=e.firstElementChild.innerHTML,e.remove()}}function M(t){return t instanceof SVGGraphicsElement}O=new WeakMap;var A=r(854);function T(t){return(0,A.isArray)(t)&&t.every(M)}async function j(t){let e=document.createElement("canvas");e.style.position="fixed",e.style.display="none",e.style.pointerEvents="none",document.body.append(e),e.width=t.width.baseVal.value,e.height=t.height.baseVal.value;let r=e.getContext("2d");if(!r)throw new Error("Unable to get canvas context.");let n=(new XMLSerializer).serializeToString(t),i=new Image;return i.src="data:image/svg+xml;charset=utf-8,"+encodeURIComponent(n),await i.decode(),r.drawImage(i,0,0,t.width.baseVal.value,t.height.baseVal.value),e.remove(),e.style.position="",e.style.display="",e.style.pointerEvents="",e}})(),n})(),t.exports=e()},725(t){t.exports=(()=>{var t={986:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){var e=0;return t.forEach(function(t){return e+=t}),e}function n(t){return r(t)/t.length}function i(t){t.sort(function(t,e){return t-e})}t.r(e),t.d(e,{areWithin:()=>f,average:()=>n,degrees:()=>p,isBetweenExclusive:()=>l,isBetweenInclusive:()=>c,max:()=>h,mean:()=>n,median:()=>a,min:()=>u,radians:()=>y,sortNumbers:()=>i,sortNumbersAscending:()=>i,sortNumbersDescending:()=>d,sortedNumbers:()=>o,sortedNumbersAscending:()=>o,sortedNumbersDescending:()=>m,sum:()=>r});var s=function(t,e,r){if(r||2===arguments.length)for(var n,i=0,s=e.length;i<s;i++)!n&&i in e||(n||(n=Array.prototype.slice.call(e,0,i)),n[i]=e[i]);return t.concat(n||Array.prototype.slice.call(e))};function o(t){var e=s([],t,!0);return i(e),e}function a(t){if(0==t.length)return NaN;var e=o(t);if(e.length%2!=0)return e[Math.floor(e.length/2)];var r=e.length/2,i=r-1;return n([e[r],e[i]])}function u(t){if(0==t.length)return 1/0;var e=t[0];return t.slice(1).forEach(function(t){e=Math.min(e,t)}),e}function h(t){if(0==t.length)return-1/0;var e=t[0];return t.slice(1).forEach(function(t){e=Math.max(e,t)}),e}function c(t,e,r){return t>=e&&t<=r}function l(t,e,r){return t>e&&t<r}function f(t,e,r){return Math.abs(t-e)<=r}function d(t){i(t),t.reverse()}function m(t){var e=o(t);return e.reverse(),e}function p(t){return t*(180/Math.PI)}function y(t){return t*(Math.PI/180)}return e})()},854:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){return"number"==typeof t}function n(t){return r(t)&&Number.isFinite(t)}function i(t){return r(t)&&!Number.isFinite(t)}function s(t){return n(t)&&t>0}function o(t){return n(t)&&t>=0}function a(t){return"string"==typeof t}function u(t){return null==t}function h(t){return"object"==typeof t&&null!==t}function c(t){return Array.isArray(t)}return t.r(e),t.d(e,{isArray:()=>c,isFiniteNumber:()=>n,isNonFiniteNumber:()=>i,isNonNegativeFiniteNumber:()=>o,isNonNullObject:()=>h,isNullish:()=>u,isNumber:()=>r,isPositiveFiniteNumber:()=>s,isString:()=>a}),e})()},30:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){return Math.pow(Math.pow(t.x,2)+Math.pow(t.y,2),.5)}function n(t){return Math.atan2(t.y,t.x)}return t.r(e),t.d(e,{direction:()=>n,magnitude:()=>r}),e})()}},e={};function r(n){var i=e[n];if(void 0!==i)return i.exports;var s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,r),s.exports}r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var n={};return(()=>{"use strict";r.r(n),r.d(n,{areWithin:()=>a,centroid:()=>d,deepCopy:()=>s,direction:()=>l,displaced:()=>h,displacement:()=>u,distance:()=>o,isFinitePoint:()=>i,isPoint:()=>e,midpoint:()=>m});var t=r(854);function e(e){return(0,t.isNonNullObject)(e)&&(0,t.isNumber)(e.x)&&(0,t.isNumber)(e.y)}function i(r){return e(r)&&(0,t.isFiniteNumber)(r.x)&&(0,t.isFiniteNumber)(r.y)}function s(t){return{x:t.x,y:t.y}}function o(t,e){var r=e.x-t.x,n=e.y-t.y;return Math.pow(Math.pow(r,2)+Math.pow(n,2),.5)}function a(t,e,r){return o(t,e)<=r}function u(t,e){return{x:e.x-t.x,y:e.y-t.y}}function h(t,e){return{x:t.x+e.x,y:t.y+e.y}}var c=r(30);function l(t,e){return(0,c.direction)(u(t,e))}var f=r(986);function d(t){return{x:(0,f.mean)(t.map(function(t){return t.x})),y:(0,f.mean)(t.map(function(t){return t.y}))}}function m(t,e){return d([t,e])}})(),n})()},854(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){return"number"==typeof t}function n(t){return r(t)&&Number.isFinite(t)}function i(t){return r(t)&&!Number.isFinite(t)}function s(t){return n(t)&&t>0}function o(t){return n(t)&&t>=0}function a(t){return"string"==typeof t}function u(t){return""===t}function h(t){return a(t)&&!u(t)}function c(t){return!!a(t)&&0==t.trim().length}function l(t){if(!a(t))return!1;try{return JSON.parse(t),!0}catch{return!1}}function f(t){try{return JSON.stringify(t),!0}catch{return!1}}function d(t){return!!t}function m(t){return!t}function p(t){return null==t}function y(t){return"object"==typeof t&&null!==t}function g(t){return Array.isArray(t)}function b(t){return g(t)&&0==t.length}function v(t){return g(t)&&t.length>0}function w(t){return g(t)&&t.every(r)}function x(t){return w(t)&&t.length>0}function S(t){return g(t)&&t.every(n)}function N(t){return g(t)&&t.every(i)}function _(t){return g(t)&&t.every(a)}function O(t){return _(t)&&t.length>0}function P(t){return t instanceof SVGGraphicsElement}return t.r(e),t.d(e,{isArray:()=>g,isEmptyArray:()=>b,isEmptyString:()=>u,isFalsy:()=>m,isFiniteNumber:()=>n,isFiniteNumbersArray:()=>S,isJSON:()=>l,isJSONSerializable:()=>f,isNonEmptyArray:()=>v,isNonEmptyNumbersArray:()=>x,isNonEmptyString:()=>h,isNonEmptyStringsArray:()=>O,isNonFiniteNumber:()=>i,isNonFiniteNumbersArray:()=>N,isNonNegativeFiniteNumber:()=>o,isNonNullObject:()=>y,isNullish:()=>p,isNumber:()=>r,isNumbersArray:()=>w,isPositiveFiniteNumber:()=>s,isSVGGraphicsElement:()=>P,isString:()=>a,isStringsArray:()=>_,isTruthy:()=>d,isWhitespace:()=>c}),e})()}};const e={};function r(n){const i=e[n];if(void 0!==i)return i.exports;const s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,r),s.exports}r.d=(t,e)=>{if(Array.isArray(e))for(var n=0;n<e.length;){var i=e[n++],s=e[n++];r.o(t,i)?0===s&&n++:0===s?Object.defineProperty(t,i,{enumerable:!0,value:e[n++]}):Object.defineProperty(t,i,{enumerable:!0,get:s})}else for(var i in e)r.o(e,i)&&!r.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};let n={};return(()=>{"use strict";r.r(n),r.d(n,{CurvedBond:()=>bi.CurvedBond,InvertedStraightBondsHider:()=>Si,MissingPrimaryBondsAdder:()=>xi,StraightBond:()=>di});var t=Object.create,e=Object.defineProperty,i=Object.getOwnPropertyDescriptor,s=Object.getOwnPropertyNames,o=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,u=(t,e)=>()=>(e||(t((e={exports:{}}).exports,e),t=null),e.exports),h=(t,r)=>{let n={};for(var i in t)e(n,i,{get:t[i],enumerable:!0});return r||e(n,Symbol.toStringTag,{value:"Module"}),n};const c={},l=[];function f(t,e){if(Array.isArray(t))for(const r of t)f(r,e);else if("object"!=typeof t)m(Object.getOwnPropertyNames(e)),c[t]=Object.assign(c[t]||{},e);else for(const e in t)f(e,t[e])}function d(t){return c[t]||{}}function m(t){l.push(...t)}var p=u((t,e)=>{e.exports=function(t){try{return!!t()}catch(t){return!0}}}),y=u((t,e)=>{var r=p();e.exports=!r(function(){var t=function(){}.bind();return"function"!=typeof t||t.hasOwnProperty("prototype")})}),g=u((t,e)=>{var r=y(),n=Function.prototype,i=n.call,s=r&&n.bind.bind(i,i);e.exports=r?s:function(t){return function(){return i.apply(t,arguments)}}}),b=u((t,e)=>{var r=g();e.exports=r({}.isPrototypeOf)}),v=u((t,e)=>{var n=function(t){return t&&t.Math===Math&&t};e.exports=n("object"==typeof globalThis&&globalThis)||n("object"==typeof window&&window)||n("object"==typeof self&&self)||n("object"==typeof r.g&&r.g)||n("object"==typeof t&&t)||function(){return this}()||Function("return this")()}),w=u((t,e)=>{var r=y(),n=Function.prototype,i=n.apply,s=n.call;e.exports="object"==typeof Reflect&&Reflect.apply||(r?s.bind(i):function(){return s.apply(i,arguments)})}),x=u((t,e)=>{var r=g(),n=r({}.toString),i=r("".slice);e.exports=function(t){return i(n(t),8,-1)}}),S=u((t,e)=>{var r=x(),n=g();e.exports=function(t){if("Function"===r(t))return n(t)}}),N=u((t,e)=>{var r="object"==typeof document&&document.all;e.exports=void 0===r&&void 0!==r?function(t){return"function"==typeof t||t===r}:function(t){return"function"==typeof t}}),_=u((t,e)=>{var r=p();e.exports=!r(function(){return 7!==Object.defineProperty({},1,{get:function(){return 7}})[1]})}),O=u((t,e)=>{var r=y(),n=Function.prototype.call;e.exports=r?n.bind(n):function(){return n.apply(n,arguments)}}),P=u(t=>{var e={}.propertyIsEnumerable,r=Object.getOwnPropertyDescriptor,n=r&&!e.call({1:2},1);t.f=n?function(t){var e=r(this,t);return!!e&&e.enumerable}:e}),E=u((t,e)=>{e.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}}),M=u((t,e)=>{var r=g(),n=p(),i=x(),s=Object,o=r("".split);e.exports=n(function(){return!s("z").propertyIsEnumerable(0)})?function(t){return"String"===i(t)?o(t,""):s(t)}:s}),A=u((t,e)=>{e.exports=function(t){return null==t}}),T=u((t,e)=>{var r=A(),n=TypeError;e.exports=function(t){if(r(t))throw new n("Can't call method on "+t);return t}}),j=u((t,e)=>{var r=M(),n=T();e.exports=function(t){return r(n(t))}}),C=u((t,e)=>{var r=N();e.exports=function(t){return"object"==typeof t?null!==t:r(t)}}),L=u((t,e)=>{e.exports={}}),k=u((t,e)=>{var r=L(),n=v(),i=N(),s=function(t){return i(t)?t:void 0};e.exports=function(t,e){return arguments.length<2?s(r[t])||s(n[t]):r[t]&&r[t][e]||n[t]&&n[t][e]}}),D=u((t,e)=>{var r=v().navigator,n=r&&r.userAgent;e.exports=n?String(n):""}),I=u((t,e)=>{var r,n,i=v(),s=D(),o=i.process,a=i.Deno,u=o&&o.versions||a&&a.version,h=u&&u.v8;h&&(n=(r=h.split("."))[0]>0&&r[0]<4?1:+(r[0]+r[1])),!n&&s&&(!(r=s.match(/Edge\/(\d+)/))||r[1]>=74)&&(r=s.match(/Chrome\/(\d+)/))&&(n=+r[1]),e.exports=n}),F=u((t,e)=>{var r=I(),n=p(),i=v().String;e.exports=!!Object.getOwnPropertySymbols&&!n(function(){var t=Symbol("symbol detection");return!i(t)||!(Object(t)instanceof Symbol)||!Symbol.sham&&r&&r<41})}),B=u((t,e)=>{var r=F();e.exports=r&&!Symbol.sham&&"symbol"==typeof Symbol.iterator}),V=u((t,e)=>{var r=k(),n=N(),i=b(),s=B(),o=Object;e.exports=s?function(t){return"symbol"==typeof t}:function(t){var e=r("Symbol");return n(e)&&i(e.prototype,o(t))}}),R=u((t,e)=>{var r=String;e.exports=function(t){try{return r(t)}catch(t){return"Object"}}}),z=u((t,e)=>{var r=N(),n=R(),i=TypeError;e.exports=function(t){if(r(t))return t;throw new i(n(t)+" is not a function")}}),G=u((t,e)=>{var r=z(),n=A();e.exports=function(t,e){var i=t[e];return n(i)?void 0:r(i)}}),U=u((t,e)=>{var r=O(),n=N(),i=C(),s=TypeError;e.exports=function(t,e){var o,a;if("string"===e&&n(o=t.toString)&&!i(a=r(o,t)))return a;if(n(o=t.valueOf)&&!i(a=r(o,t)))return a;if("string"!==e&&n(o=t.toString)&&!i(a=r(o,t)))return a;throw new s("Can't convert object to primitive value")}}),X=u((t,e)=>{e.exports=!0}),Y=u((t,e)=>{var r=v(),n=Object.defineProperty;e.exports=function(t,e){try{n(r,t,{value:e,configurable:!0,writable:!0})}catch(n){r[t]=e}return e}}),W=u((t,e)=>{var r=X(),n=v(),i=Y(),s="__core-js_shared__",o=e.exports=n[s]||i(s,{});(o.versions||(o.versions=[])).push({version:"3.49.0",mode:r?"pure":"global",copyright:"© 2013–2025 Denis Pushkarev (zloirock.ru), 2025–2026 CoreJS Company (core-js.io). All rights reserved.",license:"https://github.com/zloirock/core-js/blob/v3.49.0/LICENSE",source:"https://github.com/zloirock/core-js"})}),q=u((t,e)=>{var r=W();e.exports=function(t,e){return r[t]||(r[t]=e||{})}}),H=u((t,e)=>{var r=T(),n=Object;e.exports=function(t){return n(r(t))}}),$=u((t,e)=>{var r=g(),n=H(),i=r({}.hasOwnProperty);e.exports=Object.hasOwn||function(t,e){return i(n(t),e)}}),J=u((t,e)=>{var r=g(),n=0,i=Math.random(),s=r(1.1.toString);e.exports=function(t){return"Symbol("+(void 0===t?"":t)+")_"+s(++n+i,36)}}),K=u((t,e)=>{var r=v(),n=q(),i=$(),s=J(),o=F(),a=B(),u=r.Symbol,h=n("wks"),c=a?u.for||u:u&&u.withoutSetter||s;e.exports=function(t){return i(h,t)||(h[t]=o&&i(u,t)?u[t]:c("Symbol."+t)),h[t]}}),Q=u((t,e)=>{var r=O(),n=C(),i=V(),s=G(),o=U(),a=K(),u=TypeError,h=a("toPrimitive");e.exports=function(t,e){if(!n(t)||i(t))return t;var a,c=s(t,h);if(c){if(void 0===e&&(e="default"),a=r(c,t,e),!n(a)||i(a))return a;throw new u("Can't convert object to primitive value")}return void 0===e&&(e="number"),o(t,e)}}),Z=u((t,e)=>{var r=Q(),n=V();e.exports=function(t){var e=r(t,"string");return n(e)?e:e+""}}),tt=u((t,e)=>{var r=v(),n=C(),i=r.document,s=n(i)&&n(i.createElement);e.exports=function(t){return s?i.createElement(t):{}}}),et=u((t,e)=>{var r=_(),n=p(),i=tt();e.exports=!r&&!n(function(){return 7!==Object.defineProperty(i("div"),"a",{get:function(){return 7}}).a})}),rt=u(t=>{var e=_(),r=O(),n=P(),i=E(),s=j(),o=Z(),a=$(),u=et(),h=Object.getOwnPropertyDescriptor;t.f=e?h:function(t,e){if(t=s(t),e=o(e),u)try{return h(t,e)}catch(t){}if(a(t,e))return i(!r(n.f,t,e),t[e])}}),nt=u((t,e)=>{var r=p(),n=N(),i=/#|\.prototype\./,s=function(t,e){var i=a[o(t)];return i===h||i!==u&&(n(e)?r(e):!!e)},o=s.normalize=function(t){return String(t).replace(i,".").toLowerCase()},a=s.data={},u=s.NATIVE="N",h=s.POLYFILL="P";e.exports=s}),it=u((t,e)=>{var r=S(),n=z(),i=y(),s=r(r.bind);e.exports=function(t,e){return n(t),void 0===e?t:i?s(t,e):function(){return t.apply(e,arguments)}}}),st=u((t,e)=>{var r=_(),n=p();e.exports=r&&n(function(){return 42!==Object.defineProperty(function(){},"prototype",{value:42,writable:!1}).prototype})}),ot=u((t,e)=>{var r=C(),n=String,i=TypeError;e.exports=function(t){if(r(t))return t;throw new i(n(t)+" is not an object")}}),at=u(t=>{var e=_(),r=et(),n=st(),i=ot(),s=Z(),o=TypeError,a=Object.defineProperty,u=Object.getOwnPropertyDescriptor,h="enumerable",c="configurable",l="writable";t.f=e?n?function(t,e,r){if(i(t),e=s(e),i(r),"function"==typeof t&&"prototype"===e&&"value"in r&&l in r&&!r[l]){var n=u(t,e);n&&n[l]&&(t[e]=r.value,r={configurable:c in r?r[c]:n[c],enumerable:h in r?r[h]:n[h],writable:!1})}return a(t,e,r)}:a:function(t,e,n){if(i(t),e=s(e),i(n),r)try{return a(t,e,n)}catch(t){}if("get"in n||"set"in n)throw new o("Accessors not supported");return"value"in n&&(t[e]=n.value),t}}),ut=u((t,e)=>{var r=_(),n=at(),i=E();e.exports=r?function(t,e,r){return n.f(t,e,i(1,r))}:function(t,e,r){return t[e]=r,t}}),ht=u((t,e)=>{var r=v(),n=w(),i=S(),s=N(),o=rt().f,a=nt(),u=L(),h=it(),c=ut(),l=$();W();var f=function(t){var e=function(r,i,s){if(this instanceof e){switch(arguments.length){case 0:return new t;case 1:return new t(r);case 2:return new t(r,i)}return new t(r,i,s)}return n(t,this,arguments)};return e.prototype=t.prototype,e};e.exports=function(t,e){var n,d,m,p,y,g,b,v,w,x=t.target,S=t.global,N=t.stat,_=t.proto,O=S?r:N?r[x]:r[x]&&r[x].prototype,P=S?u:u[x]||c(u,x,{})[x],E=P.prototype;for(p in e)d=!(n=a(S?p:x+(N?".":"#")+p,t.forced))&&O&&l(O,p),g=P[p],d&&(b=t.dontCallGetSet?(w=o(O,p))&&w.value:O[p]),y=d&&b?b:e[p],(n||_||typeof g!=typeof y)&&(v=t.bind&&d?h(y,r):t.wrap&&d?f(y):_&&s(y)?i(y):y,(t.sham||y&&y.sham||g&&g.sham)&&c(v,"sham",!0),c(P,p,v),_&&(l(u,m=x+"Prototype")||c(u,m,{}),c(u[m],p,y),t.real&&E&&(n||!E[p])&&c(E,p,y)))}}),ct=u((t,e)=>{var r=Math.ceil,n=Math.floor;e.exports=Math.trunc||function(t){var e=+t;return(e>0?n:r)(e)}}),lt=u((t,e)=>{var r=ct();e.exports=function(t){var e=+t;return e!=e||0===e?0:r(e)}}),ft=u((t,e)=>{var r=lt(),n=Math.max,i=Math.min;e.exports=function(t,e){var s=r(t);return s<0?n(s+e,0):i(s,e)}}),dt=u((t,e)=>{var r=lt(),n=Math.min;e.exports=function(t){var e=r(t);return e>0?n(e,9007199254740991):0}}),mt=u((t,e)=>{var r=dt();e.exports=function(t){return r(t.length)}}),pt=u((t,e)=>{var r=j(),n=ft(),i=mt(),s=function(t){return function(e,s,o){var a=r(e),u=i(a);if(0===u)return!t&&-1;var h,c=n(o,u);if(t&&s!=s){for(;u>c;)if((h=a[c++])!=h)return!0}else for(;u>c;c++)if((t||c in a)&&a[c]===s)return t||c||0;return!t&&-1}};e.exports={includes:s(!0),indexOf:s(!1)}}),yt=u((t,e)=>{e.exports=function(){}}),gt=u(()=>{var t=ht(),e=pt().includes,r=p(),n=yt(),i=r(function(){return!Array(1).includes()}),s=r(function(){return[,1].includes(void 0,1)});t({target:"Array",proto:!0,forced:i||s},{includes:function(t){return e(this,t,arguments.length>1?arguments[1]:void 0)}}),n("includes")}),bt=u((t,e)=>{var r=v(),n=L();e.exports=function(t,e){var i=n[t+"Prototype"],s=i&&i[e];if(s)return s;var o=r[t],a=o&&o.prototype;return a&&a[e]}}),vt=u((t,e)=>{gt();var r=bt();e.exports=r("Array","includes")}),wt=u((t,e)=>{var r=C(),n=x(),i=K()("match");e.exports=function(t){var e;return r(t)&&(void 0!==(e=t[i])?!!e:"RegExp"===n(t))}}),xt=u((t,e)=>{var r=wt(),n=TypeError;e.exports=function(t){if(r(t))throw new n("The method doesn't accept regular expressions");return t}}),St=u((t,e)=>{var r={};r[K()("toStringTag")]="z",e.exports="[object z]"===String(r)}),Nt=u((t,e)=>{var r=St(),n=N(),i=x(),s=K()("toStringTag"),o=Object,a="Arguments"===i(function(){return arguments}());e.exports=r?i:function(t){var e,r,u;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(r=function(t,e){try{return t[e]}catch(t){}}(e=o(t),s))?r:a?i(e):"Object"===(u=i(e))&&n(e.callee)?"Arguments":u}}),_t=u((t,e)=>{var r=Nt(),n=String;e.exports=function(t){if("Symbol"===r(t))throw new TypeError("Cannot convert a Symbol value to a string");return n(t)}}),Ot=u((t,e)=>{var r=K()("match");e.exports=function(t){var e=/./;try{"/./"[t](e)}catch(n){try{return e[r]=!1,"/./"[t](e)}catch(t){}}return!1}}),Pt=u(()=>{var t=ht(),e=g(),r=xt(),n=T(),i=_t(),s=Ot(),o=e("".indexOf);t({target:"String",proto:!0,forced:!s("includes")},{includes:function(t){return!!~o(i(n(this)),i(r(t)),arguments.length>1?arguments[1]:void 0)}})}),Et=u((t,e)=>{Pt();var r=bt();e.exports=r("String","includes")}),Mt=u((t,e)=>{var r=b(),n=vt(),i=Et(),s=Array.prototype,o=String.prototype;e.exports=function(t){var e=t.includes;return t===s||r(s,t)&&e===s.includes?n:"string"==typeof t||t===o||r(o,t)&&e===o.includes?i:e}}),At=((r,n,u)=>(u=null!=r?t(o(r)):{},((t,r,n,o)=>{if(r&&"object"==typeof r||"function"==typeof r)for(var u,h=s(r),c=0,l=h.length;c<l;c++)u=h[c],a.call(t,u)||void 0===u||e(t,u,{get:(t=>r[t]).bind(null,u),enumerable:!(o=i(r,u))||o.enumerable});return t})(e(u,"default",{value:r,enumerable:!0}),r)))(u((t,e)=>{var r=Mt();e.exports=r})());function Tt(t,e){let r;const n=t.length,i=[];for(r=0;r<n;r++)i.push(e(t[r]));return i}function jt(t){return t%360*Math.PI/180}function Ct(t){return t.replace(/([A-Z])/g,function(t,e){return"-"+e.toLowerCase()})}function Lt(t){return t.charAt(0).toUpperCase()+t.slice(1)}function kt(t,e,r,n){return null!=e&&null!=r||(n=n||t.bbox(),null==e?e=n.width/n.height*r:null==r&&(r=n.height/n.width*e)),{width:e,height:r}}function Dt(t,e){const r=t.origin;let n=null!=t.ox?t.ox:null!=t.originX?t.originX:"center",i=null!=t.oy?t.oy:null!=t.originY?t.originY:"center";null!=r&&([n,i]=Array.isArray(r)?r:"object"==typeof r?[r.x,r.y]:[r,r]);const s="string"==typeof n,o="string"==typeof i;if(s||o){const{height:t,width:r,x:a,y:u}=e.bbox();s&&(n=(0,At.default)(n).call(n,"left")?a:(0,At.default)(n).call(n,"right")?a+r:a+r/2),o&&(i=(0,At.default)(i).call(i,"top")?u:(0,At.default)(i).call(i,"bottom")?u+t:u+t/2)}return[n,i]}const It=new Set(["desc","metadata","title"]),Ft=t=>It.has(t.nodeName),Bt="http://www.w3.org/2000/svg",Vt="http://www.w3.org/2000/xmlns/",Rt="http://www.w3.org/1999/xlink",zt={window:"undefined"==typeof window?null:window,document:"undefined"==typeof document?null:document};var Gt=class{};const Ut={},Xt="___SYMBOL___ROOT___";function Yt(t,e=Bt){return zt.document.createElementNS(e,t)}function Wt(t,e=!1){if(t instanceof Gt)return t;if("object"==typeof t)return $t(t);if(null==t)return new Ut[Xt];if("string"==typeof t&&"<"!==t.trim().charAt(0))return $t(zt.document.querySelector(t));const r=e?zt.document.createElement("div"):Yt("svg");return r.innerHTML=t.trim(),t=$t(r.firstElementChild),r.removeChild(r.firstElementChild),t}function qt(t,e){return e&&(e instanceof zt.window.Node||e.ownerDocument&&e instanceof e.ownerDocument.defaultView.Node)?e:Yt(t)}function Ht(t){if(!t)return null;if(t.instance instanceof Gt)return t.instance;if("#document-fragment"===t.nodeName)return new Ut.Fragment(t);let e=Lt(t.nodeName||"Dom");return"LinearGradient"===e||"RadialGradient"===e?e="Gradient":Ut[e]||(e="Dom"),new Ut[e](t)}let $t=Ht;function Jt(t,e=t.name,r=!1){return Ut[e]=t,r&&(Ut[Xt]=t),m(Object.getOwnPropertyNames(t.prototype)),t}let Kt=1e3;function Qt(t){return"Svgjs"+Lt(t)+Kt++}function Zt(t){for(let e=t.children.length-1;e>=0;e--)Zt(t.children[e]);return t.id?(t.id=Qt(t.nodeName),t):t}function te(t,e){let r,n;for(n=(t=Array.isArray(t)?t:[t]).length-1;n>=0;n--)for(r in e)t[n].prototype[r]=e[r]}function ee(t){return function(...e){const r=e[e.length-1];return!r||r.constructor!==Object||r instanceof Array?t.apply(this,e):t.apply(this,e.slice(0,-1)).attr(r)}}f("Dom",{siblings:function(){return this.parent().children()},position:function(){return this.parent().index(this)},next:function(){return this.siblings()[this.position()+1]},prev:function(){return this.siblings()[this.position()-1]},forward:function(){const t=this.position();return this.parent().add(this.remove(),t+1),this},backward:function(){const t=this.position();return this.parent().add(this.remove(),t?t-1:0),this},front:function(){return this.parent().add(this.remove()),this},back:function(){return this.parent().add(this.remove(),0),this},before:function(t){(t=Wt(t)).remove();const e=this.position();return this.parent().add(t,e),this},after:function(t){(t=Wt(t)).remove();const e=this.position();return this.parent().add(t,e+1),this},insertBefore:function(t){return(t=Wt(t)).before(this),this},insertAfter:function(t){return(t=Wt(t)).after(this),this}});const re=/^([+-]?(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?)([a-z%]*)$/i,ne=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i,ie=/rgb\((\d+),(\d+),(\d+)\)/,se=/^(#[^\s]+)$/,oe=/\)\s*,?\s*/,ae=/\s/g,ue=/^#[a-f0-9]{3}$|^#[a-f0-9]{6}$/i,he=/^rgb\(/,ce=/^(\s+)?$/,le=/^[+-]?(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,fe=/\.(jpg|jpeg|png|gif|svg)(\?[^=]+.*)?/i,de=/[\s,]+/,me=/[MLHVCSQTAZ]/i;f("Dom",{classes:function(){const t=this.attr("class");return null==t?[]:t.trim().split(de)},hasClass:function(t){return-1!==this.classes().indexOf(t)},addClass:function(t){if(!this.hasClass(t)){const e=this.classes();e.push(t),this.attr("class",e.join(" "))}return this},removeClass:function(t){return this.hasClass(t)&&this.attr("class",this.classes().filter(function(e){return e!==t}).join(" ")),this},toggleClass:function(t){return this.hasClass(t)?this.removeClass(t):this.addClass(t)}});const pe=t=>t.startsWith("--")?t:Ct(t);function ye(t){const e=Math.max(0,Math.min(255,Math.round(t))).toString(16);return 1===e.length?"0"+e:e}function ge(t,e){for(let r=e.length;r--;)if(null==t[e[r]])return!1;return!0}function be(t,e,r){return r<0&&(r+=1),r>1&&(r-=1),r<1/6?t+6*(e-t)*r:r<.5?e:r<2/3?t+(e-t)*(2/3-r)*6:t}f("Dom",{css:function(t,e){const r={};if(0===arguments.length){const t=this.node.style;for(let e=0;e<t.length;e++){const n=t.item(e),i=t.getPropertyValue(n),s=t.getPropertyPriority(n);r[n]=s?`${i} !${s}`:i}return r}if(arguments.length<2){if(Array.isArray(t)){for(const e of t){const t=pe(e);r[e]=this.node.style.getPropertyValue(t)}return r}if("string"==typeof t)return this.node.style.getPropertyValue(pe(t));if("object"==typeof t)for(const e in t)this.node.style.setProperty(pe(e),null==t[e]||ce.test(t[e])?"":t[e])}return 2===arguments.length&&this.node.style.setProperty(pe(t),null==e||ce.test(e)?"":e),this},show:function(){return this.css("display","")},hide:function(){return this.css("display","none")},visible:function(){return"none"!==this.css("display")}}),f("Dom",{data:function(t,e,r){if(null==t)return this.data(Tt(function(t,e){let r;const n=t.length,i=[];for(r=0;r<n;r++)e(t[r])&&i.push(t[r]);return i}(this.node.attributes,t=>0===t.nodeName.indexOf("data-")),t=>t.nodeName.slice(5)));if(t instanceof Array){const e={};for(const r of t)e[r]=this.data(r);return e}if("object"==typeof t)for(e in t)this.data(e,t[e]);else if(arguments.length<2)try{return JSON.parse(this.attr("data-"+t))}catch(e){return this.attr("data-"+t)}else this.attr("data-"+t,null===e?null:!0===r||"string"==typeof e||"number"==typeof e?e:JSON.stringify(e));return this}}),f("Dom",{remember:function(t,e){if("object"==typeof arguments[0])for(const e in t)this.remember(e,t[e]);else{if(1===arguments.length)return this.memory()[t];this.memory()[t]=e}return this},forget:function(){if(0===arguments.length)this._memory={};else for(let t=arguments.length-1;t>=0;t--)delete this.memory()[arguments[t]];return this},memory:function(){return this._memory=this._memory||{}}});var ve=class t{constructor(...t){this.init(...t)}static isColor(e){return e&&(e instanceof t||this.isRgb(e)||this.test(e))}static isRgb(t){return t&&"number"==typeof t.r&&"number"==typeof t.g&&"number"==typeof t.b}static random(e="vibrant",r){const{random:n,round:i,sin:s,PI:o}=Math;if("vibrant"===e){const e=24*n()+57,r=38*n()+45,i=360*n();return new t(e,r,i,"lch")}if("sine"===e){const e=i(80*s(2*o*(r=r??n())/.5+.01)+150),a=i(50*s(2*o*r/.5+4.6)+200),u=i(100*s(2*o*r/.5+2.3)+150);return new t(e,a,u)}if("pastel"===e){const e=8*n()+86,r=17*n()+9,i=360*n();return new t(e,r,i,"lch")}if("dark"===e){const e=10+10*n(),r=50*n()+86,i=360*n();return new t(e,r,i,"lch")}if("rgb"===e){const e=255*n(),r=255*n(),i=255*n();return new t(e,r,i)}if("lab"===e){const e=100*n(),r=256*n()-128,i=256*n()-128;return new t(e,r,i,"lab")}if("grey"===e){const e=255*n();return new t(e,e,e)}throw new Error("Unsupported random color mode")}static test(t){return"string"==typeof t&&(ue.test(t)||he.test(t))}cmyk(){const{_a:e,_b:r,_c:n}=this.rgb(),[i,s,o]=[e,r,n].map(t=>t/255),a=Math.min(1-i,1-s,1-o);return 1===a?new t(0,0,0,1,"cmyk"):new t((1-i-a)/(1-a),(1-s-a)/(1-a),(1-o-a)/(1-a),a,"cmyk")}hsl(){const{_a:e,_b:r,_c:n}=this.rgb(),[i,s,o]=[e,r,n].map(t=>t/255),a=Math.max(i,s,o),u=Math.min(i,s,o),h=(a+u)/2,c=a===u,l=a-u;return new t(360*(c?0:a===i?((s-o)/l+(s<o?6:0))/6:a===s?((o-i)/l+2)/6:a===o?((i-s)/l+4)/6:0),100*(c?0:h>.5?l/(2-a-u):l/(a+u)),100*h,"hsl")}init(t=0,e=0,r=0,n=0,i="rgb"){if(t=t||0,this.space)for(const t in this.space)delete this[this.space[t]];if("number"==typeof t)i="string"==typeof n?n:i,n="string"==typeof n?0:n,Object.assign(this,{_a:t,_b:e,_c:r,_d:n,space:i});else if(t instanceof Array)this.space=e||("string"==typeof t[3]?t[3]:t[4])||"rgb",Object.assign(this,{_a:t[0],_b:t[1],_c:t[2],_d:t[3]||0});else if(t instanceof Object){const r=function(t,e){const r=ge(t,"rgb")?{_a:t.r,_b:t.g,_c:t.b,_d:0,space:"rgb"}:ge(t,"xyz")?{_a:t.x,_b:t.y,_c:t.z,_d:0,space:"xyz"}:ge(t,"hsl")?{_a:t.h,_b:t.s,_c:t.l,_d:0,space:"hsl"}:ge(t,"lab")?{_a:t.l,_b:t.a,_c:t.b,_d:0,space:"lab"}:ge(t,"lch")?{_a:t.l,_b:t.c,_c:t.h,_d:0,space:"lch"}:ge(t,"cmyk")?{_a:t.c,_b:t.m,_c:t.y,_d:t.k,space:"cmyk"}:{_a:0,_b:0,_c:0,space:"rgb"};return r.space=e||r.space,r}(t,e);Object.assign(this,r)}else if("string"==typeof t)if(he.test(t)){const e=t.replace(ae,""),[r,n,i]=ie.exec(e).slice(1,4).map(t=>parseInt(t));Object.assign(this,{_a:r,_b:n,_c:i,_d:0,space:"rgb"})}else{if(!ue.test(t))throw Error("Unsupported string format, can't construct Color");{const e=t=>parseInt(t,16),[,r,n,i]=ne.exec(function(t){return 4===t.length?["#",t.substring(1,2),t.substring(1,2),t.substring(2,3),t.substring(2,3),t.substring(3,4),t.substring(3,4)].join(""):t}(t)).map(e);Object.assign(this,{_a:r,_b:n,_c:i,_d:0,space:"rgb"})}}const{_a:s,_b:o,_c:a,_d:u}=this,h="rgb"===this.space?{r:s,g:o,b:a}:"xyz"===this.space?{x:s,y:o,z:a}:"hsl"===this.space?{h:s,s:o,l:a}:"lab"===this.space?{l:s,a:o,b:a}:"lch"===this.space?{l:s,c:o,h:a}:"cmyk"===this.space?{c:s,m:o,y:a,k:u}:{};Object.assign(this,h)}lab(){const{x:e,y:r,z:n}=this.xyz();return new t(116*r-16,500*(e-r),200*(r-n),"lab")}lch(){const{l:e,a:r,b:n}=this.lab(),i=Math.sqrt(r**2+n**2);let s=180*Math.atan2(n,r)/Math.PI;return s<0&&(s*=-1,s=360-s),new t(e,i,s,"lch")}rgb(){if("rgb"===this.space)return this;if("lab"===(e=this.space)||"xyz"===e||"lch"===e){let{x:e,y:r,z:n}=this;if("lab"===this.space||"lch"===this.space){let{l:t,a:i,b:s}=this;if("lch"===this.space){const{c:t,h:e}=this,r=Math.PI/180;i=t*Math.cos(r*e),s=t*Math.sin(r*e)}const o=(t+16)/116,a=i/500+o,u=o-s/200,h=16/116,c=.008856,l=7.787;e=.95047*(a**3>c?a**3:(a-h)/l),r=1*(o**3>c?o**3:(o-h)/l),n=1.08883*(u**3>c?u**3:(u-h)/l)}const i=3.2406*e+-1.5372*r+-.4986*n,s=-.9689*e+1.8758*r+.0415*n,o=.0557*e+-.204*r+1.057*n,a=Math.pow,u=.0031308,h=i>u?1.055*a(i,1/2.4)-.055:12.92*i,c=s>u?1.055*a(s,1/2.4)-.055:12.92*s,l=o>u?1.055*a(o,1/2.4)-.055:12.92*o;return new t(255*h,255*c,255*l)}if("hsl"===this.space){let{h:e,s:r,l:n}=this;if(e/=360,r/=100,n/=100,0===r)return n*=255,new t(n,n,n);const i=n<.5?n*(1+r):n+r-n*r,s=2*n-i,o=255*be(s,i,e+1/3),a=255*be(s,i,e),u=255*be(s,i,e-1/3);return new t(o,a,u)}if("cmyk"===this.space){const{c:e,m:r,y:n,k:i}=this,s=255*(1-Math.min(1,e*(1-i)+i)),o=255*(1-Math.min(1,r*(1-i)+i)),a=255*(1-Math.min(1,n*(1-i)+i));return new t(s,o,a)}return this;var e}toArray(){const{_a:t,_b:e,_c:r,_d:n,space:i}=this;return[t,e,r,n,i]}toHex(){const[t,e,r]=this._clamped().map(ye);return`#${t}${e}${r}`}toRgb(){const[t,e,r]=this._clamped();return`rgb(${t},${e},${r})`}toString(){return this.toHex()}xyz(){const{_a:e,_b:r,_c:n}=this.rgb(),[i,s,o]=[e,r,n].map(t=>t/255),a=i>.04045?Math.pow((i+.055)/1.055,2.4):i/12.92,u=s>.04045?Math.pow((s+.055)/1.055,2.4):s/12.92,h=o>.04045?Math.pow((o+.055)/1.055,2.4):o/12.92,c=(.4124*a+.3576*u+.1805*h)/.95047,l=(.2126*a+.7152*u+.0722*h)/1,f=(.0193*a+.1192*u+.9505*h)/1.08883,d=c>.008856?Math.pow(c,1/3):7.787*c+16/116,m=l>.008856?Math.pow(l,1/3):7.787*l+16/116,p=f>.008856?Math.pow(f,1/3):7.787*f+16/116;return new t(d,m,p,"xyz")}_clamped(){const{_a:t,_b:e,_c:r}=this.rgb(),{max:n,min:i,round:s}=Math;return[t,e,r].map(t=>n(0,i(s(t),255)))}},we=class t{constructor(...t){this.init(...t)}clone(){return new t(this)}init(t,e){const r=Array.isArray(t)?{x:t[0],y:t[1]}:"object"==typeof t?{x:t.x,y:t.y}:{x:t,y:e};return this.x=r.x??0,this.y=r.y??0,this}toArray(){return[this.x,this.y]}transform(t){return this.clone().transformO(t)}transformO(t){Se.isMatrixLike(t)||(t=new Se(t));const{x:e,y:r}=this;return this.x=t.a*e+t.c*r+t.e,this.y=t.b*e+t.d*r+t.f,this}};function xe(t,e,r){return Math.abs(e-t)<(r||1e-6)}var Se=class t{constructor(...t){this.init(...t)}static formatTransforms(t){const e="both"===t.flip||!0===t.flip,r=t.flip&&(e||"x"===t.flip)?-1:1,n=t.flip&&(e||"y"===t.flip)?-1:1,i=t.skew&&t.skew.length?t.skew[0]:isFinite(t.skew)?t.skew:isFinite(t.skewX)?t.skewX:0,s=t.skew&&t.skew.length?t.skew[1]:isFinite(t.skew)?t.skew:isFinite(t.skewY)?t.skewY:0,o=t.scale&&t.scale.length?t.scale[0]*r:isFinite(t.scale)?t.scale*r:isFinite(t.scaleX)?t.scaleX*r:r,a=t.scale&&t.scale.length?t.scale[1]*n:isFinite(t.scale)?t.scale*n:isFinite(t.scaleY)?t.scaleY*n:n,u=t.shear||0,h=t.rotate||t.theta||0,c=new we(t.origin||t.around||t.ox||t.originX,t.oy||t.originY),l=c.x,f=c.y,d=new we(t.position??t.px??t.positionX??NaN,t.py??t.positionY??NaN),m=d.x,p=d.y,y=new we(t.translate||t.tx||t.translateX,t.ty||t.translateY),g=y.x,b=y.y,v=new we(t.relative||t.rx||t.relativeX,t.ry||t.relativeY);return{scaleX:o,scaleY:a,skewX:i,skewY:s,shear:u,theta:h,rx:v.x,ry:v.y,tx:g,ty:b,ox:l,oy:f,px:m,py:p}}static fromArray(t){return{a:t[0],b:t[1],c:t[2],d:t[3],e:t[4],f:t[5]}}static isMatrixLike(t){return null!=t.a||null!=t.b||null!=t.c||null!=t.d||null!=t.e||null!=t.f}static matrixMultiply(t,e,r){const n=t.a*e.a+t.c*e.b,i=t.b*e.a+t.d*e.b,s=t.a*e.c+t.c*e.d,o=t.b*e.c+t.d*e.d,a=t.e+t.a*e.e+t.c*e.f,u=t.f+t.b*e.e+t.d*e.f;return r.a=n,r.b=i,r.c=s,r.d=o,r.e=a,r.f=u,r}around(t,e,r){return this.clone().aroundO(t,e,r)}aroundO(t,e,r){const n=t||0,i=e||0;return this.translateO(-n,-i).lmultiplyO(r).translateO(n,i)}clone(){return new t(this)}decompose(t=0,e=0){const r=this.a,n=this.b,i=this.c,s=this.d,o=this.e,a=this.f,u=r*s-n*i,h=u>0?1:-1,c=h*Math.sqrt(r*r+n*n),l=Math.atan2(h*n,h*r),f=(r*i+n*s)/u;return{scaleX:c,scaleY:i*c/(f*r-n)||s*c/(f*n+r),shear:f,rotate:180/Math.PI*l,translateX:o-t+t*r+e*i,translateY:a-e+t*n+e*s,originX:t,originY:e,a:this.a,b:this.b,c:this.c,d:this.d,e:this.e,f:this.f}}equals(e){if(e===this)return!0;const r=new t(e);return xe(this.a,r.a)&&xe(this.b,r.b)&&xe(this.c,r.c)&&xe(this.d,r.d)&&xe(this.e,r.e)&&xe(this.f,r.f)}flip(t,e){return this.clone().flipO(t,e)}flipO(t,e){return"x"===t?this.scaleO(-1,1,e,0):"y"===t?this.scaleO(1,-1,0,e):this.scaleO(-1,-1,t,e||t)}init(e){const r=t.fromArray([1,0,0,1,0,0]);return e=e instanceof He?e.matrixify():"string"==typeof e?t.fromArray(e.split(de).map(parseFloat)):Array.isArray(e)?t.fromArray(e):"object"==typeof e&&t.isMatrixLike(e)?e:"object"==typeof e?(new t).transform(e):6===arguments.length?t.fromArray([].slice.call(arguments)):r,this.a=null!=e.a?e.a:r.a,this.b=null!=e.b?e.b:r.b,this.c=null!=e.c?e.c:r.c,this.d=null!=e.d?e.d:r.d,this.e=null!=e.e?e.e:r.e,this.f=null!=e.f?e.f:r.f,this}inverse(){return this.clone().inverseO()}inverseO(){const t=this.a,e=this.b,r=this.c,n=this.d,i=this.e,s=this.f,o=t*n-e*r;if(!o)throw new Error("Cannot invert "+this);const a=n/o,u=-e/o,h=-r/o,c=t/o,l=-(a*i+h*s),f=-(u*i+c*s);return this.a=a,this.b=u,this.c=h,this.d=c,this.e=l,this.f=f,this}lmultiply(t){return this.clone().lmultiplyO(t)}lmultiplyO(e){const r=e instanceof t?e:new t(e);return t.matrixMultiply(r,this,this)}multiply(t){return this.clone().multiplyO(t)}multiplyO(e){const r=e instanceof t?e:new t(e);return t.matrixMultiply(this,r,this)}rotate(t,e,r){return this.clone().rotateO(t,e,r)}rotateO(t,e=0,r=0){t=jt(t);const n=Math.cos(t),i=Math.sin(t),{a:s,b:o,c:a,d:u,e:h,f:c}=this;return this.a=s*n-o*i,this.b=o*n+s*i,this.c=a*n-u*i,this.d=u*n+a*i,this.e=h*n-c*i+r*i-e*n+e,this.f=c*n+h*i-e*i-r*n+r,this}scale(){return this.clone().scaleO(...arguments)}scaleO(t,e=t,r=0,n=0){3===arguments.length&&(n=r,r=e,e=t);const{a:i,b:s,c:o,d:a,e:u,f:h}=this;return this.a=i*t,this.b=s*e,this.c=o*t,this.d=a*e,this.e=u*t-r*t+r,this.f=h*e-n*e+n,this}shear(t,e,r){return this.clone().shearO(t,e,r)}shearO(t,e=0,r=0){const{a:n,b:i,c:s,d:o,e:a,f:u}=this;return this.a=n+i*t,this.c=s+o*t,this.e=a+u*t-r*t,this}skew(){return this.clone().skewO(...arguments)}skewO(t,e=t,r=0,n=0){3===arguments.length&&(n=r,r=e,e=t),t=jt(t),e=jt(e);const i=Math.tan(t),s=Math.tan(e),{a:o,b:a,c:u,d:h,e:c,f:l}=this;return this.a=o+a*i,this.b=a+o*s,this.c=u+h*i,this.d=h+u*s,this.e=c+l*i-n*i,this.f=l+c*s-r*s,this}skewX(t,e,r){return this.skew(t,0,e,r)}skewY(t,e,r){return this.skew(0,t,e,r)}toArray(){return[this.a,this.b,this.c,this.d,this.e,this.f]}toString(){return"matrix("+this.a+","+this.b+","+this.c+","+this.d+","+this.e+","+this.f+")"}transform(e){if(t.isMatrixLike(e))return new t(e).multiplyO(this);const r=t.formatTransforms(e),{x:n,y:i}=new we(r.ox,r.oy).transform(this),s=(new t).translateO(r.rx,r.ry).lmultiplyO(this).translateO(-n,-i).scaleO(r.scaleX,r.scaleY).skewO(r.skewX,r.skewY).shearO(r.shear).rotateO(r.theta).translateO(n,i);if(isFinite(r.px)||isFinite(r.py)){const t=new we(n,i).transform(s),e=isFinite(r.px)?r.px-t.x:0,o=isFinite(r.py)?r.py-t.y:0;s.translateO(e,o)}return s.translateO(r.tx,r.ty),s}translate(t,e){return this.clone().translateO(t,e)}translateO(t,e){return this.e+=t||0,this.f+=e||0,this}valueOf(){return{a:this.a,b:this.b,c:this.c,d:this.d,e:this.e,f:this.f}}};function Ne(){if(!Ne.nodes||Ne.nodes.svg.node.ownerDocument!==zt.document){const t=Wt().size(2,0);t.node.style.cssText=["opacity: 0","position: absolute","left: -100%","top: -100%","overflow: hidden"].join(";"),t.attr("focusable","false"),t.attr("aria-hidden","true"),Ne.nodes={svg:t,path:t.path().node}}return Ne.nodes.svg.node.parentNode||Ne.nodes.svg.addTo(zt.document.body||zt.document.documentElement),Ne.nodes}function _e(t){return!(t.width||t.height||t.x||t.y)}Jt(Se,"Matrix");var Oe=class t{constructor(...t){this.init(...t)}addOffset(){return this.x+=zt.window.pageXOffset,this.y+=zt.window.pageYOffset,new t(this)}init(t){return t="string"==typeof t?t.split(de).map(parseFloat):Array.isArray(t)?t:"object"==typeof t?[null!=t.left?t.left:t.x,null!=t.top?t.top:t.y,t.width,t.height]:4===arguments.length?[].slice.call(arguments):[0,0,0,0],this.x=t[0]||0,this.y=t[1]||0,this.width=this.w=t[2]||0,this.height=this.h=t[3]||0,this.x2=this.x+this.w,this.y2=this.y+this.h,this.cx=this.x+this.w/2,this.cy=this.y+this.h/2,this}isNulled(){return _e(this)}merge(e){const r=Math.min(this.x,e.x),n=Math.min(this.y,e.y),i=Math.max(this.x+this.width,e.x+e.width)-r,s=Math.max(this.y+this.height,e.y+e.height)-n;return new t(r,n,i,s)}toArray(){return[this.x,this.y,this.width,this.height]}toString(){return this.x+" "+this.y+" "+this.width+" "+this.height}transform(e){e instanceof Se||(e=new Se(e));let r=1/0,n=-1/0,i=1/0,s=-1/0;return[new we(this.x,this.y),new we(this.x2,this.y),new we(this.x,this.y2),new we(this.x2,this.y2)].forEach(function(t){t=t.transform(e),r=Math.min(r,t.x),n=Math.max(n,t.x),i=Math.min(i,t.y),s=Math.max(s,t.y)}),new t(r,i,n-r,s-i)}};function Pe(t,e,r){let n;try{if(n=e(t.node),_e(n)&&(i=t.node)!==zt.document&&!(zt.document.documentElement.contains||function(t){for(;t.parentNode;)t=t.parentNode;return t===zt.document}).call(zt.document.documentElement,i))throw new Error("Element not in the dom")}catch(e){n=r(t)}var i;return n}f({viewbox:{viewbox(t,e,r,n){return null==t?new Oe(this.attr("viewBox")):this.attr("viewBox",new Oe(t,e,r,n))},zoom(t,e){let{width:r,height:n}=this.attr(["width","height"]);if((r||n)&&"string"!=typeof r&&"string"!=typeof n||(r=this.node.clientWidth,n=this.node.clientHeight),!r||!n)throw new Error("Impossible to get absolute width and height. Please provide an absolute width and height attribute on the zooming element");const i=this.viewbox(),s=r/i.width,o=n/i.height,a=Math.min(s,o);if(null==t)return a;let u=a/t;u===1/0&&(u=Number.MAX_SAFE_INTEGER/100),e=e||new we(r/2/s+i.x,n/2/o+i.y);const h=new Oe(i).transform(new Se({scale:u,origin:e}));return this.viewbox(h)}}}),Jt(Oe,"Box");var Ee=class extends Array{constructor(t=[],...e){if(super(t,...e),"number"==typeof t)return this;this.length=0,this.push(...t)}};te([Ee],{each(t,...e){return"function"==typeof t?this.map((e,r,n)=>t.call(e,e,r,n)):this.map(r=>r[t](...e))},toArray(){return Array.prototype.concat.apply([],this)}});const Me=["toArray","constructor","each"];function Ae(t){let e=(t+"").trim();const r=e.match(/^url\((.*)\)$/i);if(r){e=r[1].trim();const t=e[0];if('"'===t||"'"===t){if(e[e.length-1]!==t)return null;e=e.slice(1,-1)}}const n=e.match(se);return n?n[1].slice(1):null}function Te(t,e){const r=`#${zt.window.CSS.escape(e)}`;return 1===t.nodeType&&t.matches(r)?t:t.querySelector(r)}function je(t,e,r=`[${e}]`){const n=t.getAttribute("id"),i=t.getRootNode();if(!n||Te(i,n)!==t)return new Ee;const s=[];1===i.nodeType&&i.matches(r)&&Ae(i.getAttribute(e))===n&&s.push(Ht(i));for(const t of i.querySelectorAll(r))Ae(t.getAttribute(e))===n&&s.push(Ht(t));return new Ee(s)}Ee.extend=function(t){t=t.reduce((t,e)=>((0,At.default)(Me).call(Me,e)||"_"===e[0]||(e in Array.prototype&&(t["$"+e]=Array.prototype[e]),t[e]=function(...t){return this.each(e,...t)}),t),{}),te([Ee],t)};let Ce=0;const Le=new WeakMap,ke=new WeakMap,De=()=>Object.create(null);function Ie(t){const e=t.getEventHolder();let r=Le.get(e);return r||(r=De(),Le.set(e,r)),r}function Fe(t){return t.getEventTarget()}function Be(t,e,r,n,i){const s=r.bind(n||t),o=i||!1,a=Wt(t),u=Ie(a),h=Fe(a);e=Array.isArray(e)?e:e.split(de);let c=ke.get(r);c||(c=++Ce,ke.set(r,c)),e.forEach(function(t){const e=t.split(".")[0],r=t.split(".")[1]||"*";u[e]=u[e]||De(),u[e][r]=u[e][r]||De(),u[e][r][c]=u[e][r][c]||[],u[e][r][c].push({listener:s,options:o}),h.addEventListener(e,s,o)})}function Ve(t,e,r,n){const i=Wt(t),s=Ie(i),o=Fe(i);("function"!=typeof r||(r=ke.get(r)))&&(e=Array.isArray(e)?e:(e||"").split(de)).forEach(function(t){const e=t&&t.split(".")[0],a=t&&t.split(".")[1];let u,h;if(r){if(s[e]&&s[e][a||"*"]){const t=s[e][a||"*"][r];if(!t)return;t.forEach(function(t){o.removeEventListener(e,t.listener,t.options??n??!1)}),delete s[e][a||"*"][r]}}else if(e&&a){if(s[e]&&s[e][a]){for(h in s[e][a])Ve(o,[e,a].join("."),h);delete s[e][a]}}else if(a)for(t in s)for(u in s[t])a===u&&Ve(o,[t,a].join("."));else if(e){if(s[e]){for(u in s[e])Ve(o,[e,u].join("."));delete s[e]}}else{for(t in s)Ve(o,t);!function(t){Le.delete(t.getEventHolder())}(i)}})}var Re=class extends Gt{addEventListener(){}dispatch(t,e,r){return function(t,e,r,n){const i=Fe(t);return e instanceof zt.window.Event||(e=new zt.window.CustomEvent(e,{detail:r,cancelable:!0,...n})),i.dispatchEvent(e),e}(this,t,e,r)}dispatchEvent(t){const e=Ie(this)[t.type];if(!e)return!0;for(const r in e)for(const n in e[r])e[r][n].forEach(function(e){e.listener(t)});return!t.defaultPrevented}fire(t,e,r){return this.dispatch(t,e,r),this}getEventHolder(){return this}getEventTarget(){return this}off(t,e,r){return Ve(this,t,e,r),this}on(t,e,r,n){return Be(this,t,e,r,n),this}removeEventListener(){}};function ze(){}Jt(Re,"EventTarget");const Ge={"fill-opacity":1,"stroke-opacity":1,"stroke-width":0,"stroke-linejoin":"miter","stroke-linecap":"butt",fill:"#000000",stroke:"#000000",opacity:1,x:0,y:0,cx:0,cy:0,width:0,height:0,r:0,rx:0,ry:0,offset:0,"stop-opacity":1,"stop-color":"#000000","text-anchor":"start"};var Ue=class extends Array{constructor(...t){super(...t),this.init(...t)}clone(){return new this.constructor(this)}init(t){return"number"==typeof t||(this.length=0,this.push(...this.parse(t))),this}parse(t=[]){return t instanceof Array?t:t.trim().split(de).map(parseFloat)}toArray(){return Array.prototype.concat.apply([],this)}toSet(){return new Set(this)}toString(){return this.join(" ")}valueOf(){const t=[];return t.push(...this),t}},Xe=class t{constructor(...t){this.init(...t)}convert(e){return new t(this.value,e)}divide(e){return e=new t(e),new t(this/e,this.unit||e.unit)}init(e,r){return r=Array.isArray(e)?e[1]:r,e=Array.isArray(e)?e[0]:e,this.value=0,this.unit=r||"","number"==typeof e?this.value=isNaN(e)?0:isFinite(e)?e:e<0?-34e37:34e37:"string"==typeof e?(r=e.match(re))&&(this.value=parseFloat(r[1]),"%"===r[5]?this.value/=100:"s"===r[5]&&(this.value*=1e3),this.unit=r[5]):e instanceof t&&(this.value=e.valueOf(),this.unit=e.unit),this}minus(e){return e=new t(e),new t(this-e,this.unit||e.unit)}plus(e){return e=new t(e),new t(this+e,this.unit||e.unit)}times(e){return e=new t(e),new t(this*e,this.unit||e.unit)}toArray(){return[this.value,this.unit]}toJSON(){return this.toString()}toString(){return("%"===this.unit?~~(1e8*this.value)/1e6:"s"===this.unit?this.value/1e3:this.value)+this.unit}valueOf(){return this.value}};const Ye=new Set(["fill","stroke","color","bgcolor","stop-color","flood-color","lighting-color"]),We=[];var qe=class t extends Re{constructor(t,e){super(),this.node=t,this.type=t.nodeName,e&&t!==e&&this.attr(e)}add(t,e){return(t=Wt(t)).removeNamespace&&this.node instanceof zt.window.SVGElement&&t.removeNamespace(),null==e?this.node.appendChild(t.node):t.node!==this.node.childNodes[e]&&this.node.insertBefore(t.node,this.node.childNodes[e]),this}addTo(t,e){return Wt(t).put(this,e)}children(){return new Ee(Tt(this.node.children,function(t){return Ht(t)}))}clear(){for(;this.node.hasChildNodes();)this.node.removeChild(this.node.lastChild);return this}clone(t=!0,e=!0){this.writeDataToDom();let r=this.node.cloneNode(t);return e&&(r=Zt(r)),new this.constructor(r)}each(t,e){const r=this.children();let n,i;for(n=0,i=r.length;n<i;n++)t.apply(r[n],[n,r]),e&&r[n].each(t,e);return this}element(e,r){return this.put(new t(Yt(e),r))}first(){return Ht(this.node.firstChild)}get(t){return Ht(this.node.childNodes[t])}getEventHolder(){return this.node}getEventTarget(){return this.node}has(t){return this.index(t)>=0}html(t,e){return this.xml(t,e,"http://www.w3.org/1999/xhtml")}id(t){return void 0!==t||this.node.id||(this.node.id=Qt(this.type)),this.attr("id",t)}index(t){return[].slice.call(this.node.childNodes).indexOf(t.node)}last(){return Ht(this.node.lastChild)}matches(t){const e=this.node,r=e.matches||e.matchesSelector||e.msMatchesSelector||e.mozMatchesSelector||e.webkitMatchesSelector||e.oMatchesSelector||null;return r&&r.call(e,t)}parent(t){let e=this;if(!e.node.parentNode)return null;if(e=Ht(e.node.parentNode),!t)return e;do{if("string"==typeof t?e.matches(t):e instanceof t)return e}while(e=Ht(e.node.parentNode));return e}put(t,e){return t=Wt(t),this.add(t,e),t}putIn(t,e){return Wt(t).add(this,e)}remove(){return this.parent()&&this.parent().removeElement(this),this}removeElement(t){return this.node.removeChild(t.node),this}replace(t){return t=Wt(t),this.node.parentNode&&this.node.parentNode.replaceChild(t.node,this.node),t}round(t=2,e=null){const r=10**t,n=this.attr(e);for(const t in n)"number"==typeof n[t]&&(n[t]=Math.round(n[t]*r)/r);return this.attr(n),this}svg(t,e){return this.xml(t,e,Bt)}toString(){return this.id()}words(t){return this.node.textContent=t,this}wrap(t){const e=this.parent();if(!e)return this.addTo(t);const r=e.index(this);return e.put(t,r).put(this)}writeDataToDom(){return this.each(function(){this.writeDataToDom()}),this}xml(t,e,r){if("boolean"==typeof t&&(r=e,e=t,t=null),null==t||"function"==typeof t){e=e??!0,this.writeDataToDom();let r=this;if(null!=t){if(r=Ht(r.node.cloneNode(!0)),e){const e=t(r);if(r=e||r,!1===e)return""}r.each(function(){const e=t(this),r=e||this;!1===e?this.remove():e&&this!==r&&this.replace(r)},!0)}return e?r.node.outerHTML:r.node.innerHTML}e=e??!1;const n=Yt("wrapper",r),i=zt.document.createDocumentFragment();n.innerHTML=t;for(let t=n.children.length;t--;)i.appendChild(n.firstElementChild);const s=this.parent();return e?this.replace(i)&&s:this.add(i)}};te(qe,{attr:function(t,e,r){if(null==t){t={},e=this.node.attributes;for(const r of e)t[r.nodeName]=le.test(r.nodeValue)?parseFloat(r.nodeValue):r.nodeValue;return t}if(t instanceof Array)return t.reduce((t,e)=>(t[e]=this.attr(e),t),{});if("object"==typeof t&&t.constructor===Object)for(e in t)this.attr(e,t[e]);else if(null===e)this.node.removeAttribute(t);else{if(null==e)return null==(e=this.node.getAttribute(t))?Ge[t]:le.test(e)?parseFloat(e):e;"number"==typeof(e=We.reduce((e,r)=>r(t,e,this),e))?e=new Xe(e):Ye.has(t)&&ve.isColor(e)?e=new ve(e):e.constructor===Array&&(e=new Ue(e)),"leading"===t?this.leading&&this.leading(e):"string"==typeof r?this.node.setAttributeNS(r,t,e.toString()):this.node.setAttribute(t,e.toString()),!this.rebuild||"font-size"!==t&&"x"!==t||this.rebuild()}return this},find:function(t){return function(t,e){return new Ee(Tt((e||zt.document).querySelectorAll(t),function(t){return Ht(t)}))}(t,this.node)},findOne:function(t){return Ht(this.node.querySelector(t))}}),Jt(qe,"Dom");var He=class extends qe{constructor(t,e){super(t,e),this.dom={},this.node.instance=this,(t.hasAttribute("data-svgjs")||t.hasAttribute("svgjs:data"))&&this.setData(JSON.parse(t.getAttribute("data-svgjs"))??JSON.parse(t.getAttribute("svgjs:data"))??{})}center(t,e){return this.cx(t).cy(e)}cx(t){return null==t?this.x()+this.width()/2:this.x(t-this.width()/2)}cy(t){return null==t?this.y()+this.height()/2:this.y(t-this.height()/2)}defs(){const t=this.root();return t&&t.defs()}dmove(t,e){return this.dx(t).dy(e)}dx(t=0){return this.x(new Xe(t).plus(this.x()))}dy(t=0){return this.y(new Xe(t).plus(this.y()))}getEventHolder(){return this}height(t){return this.attr("height",t)}move(t,e){return this.x(t).y(e)}parents(t=this.root()){const e="string"==typeof t,r=this.root(),n=r&&r.node;e||(t=t&&Wt(t).node);const i=new Ee;let s=this;for(;(s=s.parent())&&s.node!==zt.document&&"#document-fragment"!==s.node.nodeName&&(i.push(s),e||s.node!==t)&&(!e||!s.matches(t));)if(n&&s.node===n)return null;return i}reference(t){if(!(t=this.attr(t)))return null;const e=function(t,e){const r=Ae(e);return r?Te(t.getRootNode(),r):null}(this.node,t);return e?Wt(e):null}root(){const t=this.parent(Ut[Xt]);return t&&t.root()}setData(t){return this.dom=t,this}size(t,e){const r=kt(this,t,e);return this.width(new Xe(r.width)).height(new Xe(r.height))}width(t){return this.attr("width",t)}writeDataToDom(t){return((t,e,r={})=>{const n={...e};for(const t in n)n[t].valueOf()===r[t]&&delete n[t];Object.keys(n).length?t.node.setAttribute("data-svgjs",JSON.stringify(n)):(t.node.removeAttribute("data-svgjs"),t.node.removeAttribute("svgjs:data"))})(this,this.dom,t),super.writeDataToDom()}x(t){return this.attr("x",t)}y(t){return this.attr("y",t)}};te(He,{bbox:function(){const t=Pe(this,t=>t.getBBox(),t=>{try{const e=t.clone().addTo(Ne().svg).show(),r=e.node.getBBox();return e.remove(),r}catch(e){throw new Error(`Getting bbox of element "${t.node.nodeName}" is not possible: ${e.toString()}`)}});return new Oe(t)},rbox:function(t){const e=Pe(this,t=>t.getBoundingClientRect(),t=>{throw new Error(`Getting rbox of element "${t.node.nodeName}" is not possible`)}),r=new Oe(e);return t?r.transform(t.screenCTM().inverseO()):r.addOffset()},inside:function(t,e){const r=this.bbox();return t>r.x&&e>r.y&&t<r.x+r.width&&e<r.y+r.height},point:function(t,e){return new we(t,e).transformO(this.screenCTM().inverseO())},ctm:function(){return new Se(this.node.getCTM())},screenCTM:function(){try{if("function"==typeof this.isRoot&&!this.isRoot()){const t=this.rect(1,1),e=t.node.getScreenCTM();return t.remove(),new Se(e)}return new Se(this.node.getScreenCTM())}catch(t){return console.warn(`Cannot get CTM from SVG node ${this.node.nodeName}. Is the element rendered?`),new Se}}}),Jt(He,"Element");const $e={stroke:["color","width","opacity","linecap","linejoin","miterlimit","dasharray","dashoffset"],fill:["color","opacity","rule"],prefix:function(t,e){return"color"===e?t:t+"-"+e}};["fill","stroke"].forEach(function(t){const e={};let r;e[t]=function(e){if(void 0===e)return this.attr(t);if("string"==typeof e||e instanceof ve||ve.isRgb(e)||e instanceof He)this.attr(t,e);else for(r=$e[t].length-1;r>=0;r--)null!=e[$e[t][r]]&&this.attr($e.prefix(t,$e[t][r]),e[$e[t][r]]);return this},f(["Element","Runner"],e)}),f(["Element","Runner"],{matrix:function(t,e,r,n,i,s){return null==t?new Se(this):this.attr("transform",new Se(t,e,r,n,i,s))},rotate:function(t,e,r){return this.transform({rotate:t,ox:e,oy:r},!0)},skew:function(t,e,r,n){return 1===arguments.length||3===arguments.length?this.transform({skew:t,ox:e,oy:r},!0):this.transform({skew:[t,e],ox:r,oy:n},!0)},shear:function(t,e,r){return this.transform({shear:t,ox:e,oy:r},!0)},scale:function(t,e,r,n){return 1===arguments.length||3===arguments.length?this.transform({scale:t,ox:e,oy:r},!0):this.transform({scale:[t,e],ox:r,oy:n},!0)},translate:function(t,e){return this.transform({translate:[t,e]},!0)},relative:function(t,e){return this.transform({relative:[t,e]},!0)},flip:function(t="both",e="center"){return-1==="xybothtrue".indexOf(t)&&(e=t,t="both"),this.transform({flip:t,origin:e},!0)},opacity:function(t){return this.attr("opacity",t)}}),f("radius",{radius:function(t,e=t){return"radialGradient"===(this._element||this).type?this.attr("r",new Xe(t)):this.rx(t).ry(e)}}),f("Path",{length:function(){return this.node.getTotalLength()},pointAt:function(t){return new we(this.node.getPointAtLength(t))}}),f(["Element","Runner"],{font:function(t,e){if("object"==typeof t){for(e in t)this.font(e,t[e]);return this}return"leading"===t?this.leading(e):"anchor"===t?this.attr("text-anchor",e):"size"===t||"family"===t||"weight"===t||"stretch"===t||"variant"===t||"style"===t?this.attr("font-"+t,e):this.attr(t,e)}}),f("Element",["click","dblclick","mousedown","mouseup","mouseover","mouseout","mousemove","mouseenter","mouseleave","touchstart","touchmove","touchleave","touchend","touchcancel","contextmenu","wheel","pointerdown","pointermove","pointerup","pointerleave","pointercancel"].reduce(function(t,e){return t[e]=function(t){return null===t?this.off(e):this.on(e,t),this},t},{})),f("Element",{untransform:function(){return this.attr("transform",null)},matrixify:function(){return(this.attr("transform")||"").split(oe).slice(0,-1).map(function(t){const e=t.trim().split("(");return[e[0].trim(),e[1].split(de).map(function(t){return parseFloat(t)})]}).reverse().reduce(function(t,e){return"matrix"===e[0]?t.lmultiply(Se.fromArray(e[1])):t[e[0]].apply(t,e[1])},new Se)},toParent:function(t,e){if(this===t)return this;if(Ft(this.node))return this.addTo(t,e);const r=this.screenCTM(),n=t.screenCTM().inverse();return this.addTo(t,e).untransform().transform(n.multiply(r)),this},toRoot:function(t){return this.toParent(this.root(),t)},transform:function(t,e){if(null==t||"string"==typeof t){const e=new Se(this).decompose();return null==t?e:e[t]}Se.isMatrixLike(t)||(t={...t,origin:Dt(t,this)});const r=new Se(!0===e?this:e||!1).transform(t);return this.attr("transform",r)}});var Je=class t extends He{flatten(){return this.each(function(){if(this instanceof t)return this.flatten().ungroup()}),this}ungroup(t=this.parent(),e=t.index(this)){return e=-1===e?t.children().length:e,this.each(function(r,n){return n[n.length-r-1].toParent(t,e)}),this.remove()}};Jt(Je,"Container");var Ke=class extends Je{constructor(t,e=t){super(qt("defs",t),e)}flatten(){return this}ungroup(){return this}};Jt(Ke,"Defs");var Qe=class extends He{};Jt(Qe,"Shape");var Ze=h({cx:()=>ir,cy:()=>sr,height:()=>ar,rx:()=>tr,ry:()=>er,width:()=>or,x:()=>rr,y:()=>nr});function tr(t){return this.attr("rx",t)}function er(t){return this.attr("ry",t)}function rr(t){return null==t?this.cx()-this.rx():this.cx(t+this.rx())}function nr(t){return null==t?this.cy()-this.ry():this.cy(t+this.ry())}function ir(t){return this.attr("cx",t)}function sr(t){return this.attr("cy",t)}function or(t){return null==t?2*this.rx():this.rx(new Xe(t).divide(2))}function ar(t){return null==t?2*this.ry():this.ry(new Xe(t).divide(2))}var ur=class extends Qe{constructor(t,e=t){super(qt("ellipse",t),e)}size(t,e){const r=kt(this,t,e);return this.rx(new Xe(r.width).divide(2)).ry(new Xe(r.height).divide(2))}};te(ur,Ze),f("Container",{ellipse:ee(function(t=0,e=t){return this.put(new ur).size(t,e).move(0,0)})}),Jt(ur,"Ellipse");var hr=class extends qe{constructor(t=zt.document.createDocumentFragment()){super(t)}xml(t,e,r){if("boolean"==typeof t&&(r=e,e=t,t=null),null==t||"function"==typeof t){const t=new qe(Yt("wrapper",r));return t.add(this.node.cloneNode(!0)),t.xml(!1,r)}return super.xml(t,!1,r)}};Jt(hr,"Fragment");var cr=h({from:()=>lr,to:()=>fr});function lr(t,e){return"radialGradient"===(this._element||this).type?this.attr({fx:new Xe(t),fy:new Xe(e)}):this.attr({x1:new Xe(t),y1:new Xe(e)})}function fr(t,e){return"radialGradient"===(this._element||this).type?this.attr({cx:new Xe(t),cy:new Xe(e)}):this.attr({x2:new Xe(t),y2:new Xe(e)})}var dr=class extends Je{constructor(t,e){super(qt(t+"Gradient","string"==typeof t?null:t),e)}attr(t,e,r){return"transform"===t&&(t="gradientTransform"),super.attr(t,e,r)}bbox(){return new Oe}targets(){return je(this.node,"fill")}toString(){return this.url()}update(t){return this.clear(),"function"==typeof t&&t.call(this,this),this}url(){return"url(#"+this.id()+")"}};te(dr,cr),f({Container:{gradient(...t){return this.defs().gradient(...t)}},Defs:{gradient:ee(function(t,e){return this.put(new dr(t)).update(e)})}}),Jt(dr,"Gradient");var mr=class extends Je{constructor(t,e=t){super(qt("pattern",t),e)}attr(t,e,r){return"transform"===t&&(t="patternTransform"),super.attr(t,e,r)}bbox(){return new Oe}targets(){return je(this.node,"fill")}toString(){return this.url()}update(t){return this.clear(),"function"==typeof t&&t.call(this,this),this}url(){return"url(#"+this.id()+")"}};f({Container:{pattern(...t){return this.defs().pattern(...t)}},Defs:{pattern:ee(function(t,e,r){return this.put(new mr).update(r).attr({x:0,y:0,width:t,height:e,patternUnits:"userSpaceOnUse"})})}}),Jt(mr,"Pattern");var pr,yr=class extends Qe{constructor(t,e=t){super(qt("image",t),e)}load(t,e){if(!t)return this;const r=new zt.window.Image;return Be(r,"load",function(t){const n=this.parent(mr);0===this.width()&&0===this.height()&&this.size(r.width,r.height),n instanceof mr&&0===n.width()&&0===n.height()&&n.size(this.width(),this.height()),"function"==typeof e&&e.call(this,t)},this),Be(r,"load error",function(){Ve(r)}),this.attr("href",r.src=t,Rt)}};pr=function(t,e,r){return"fill"!==t&&"stroke"!==t||fe.test(e)&&(e=r.root().defs().image(e)),e instanceof yr&&(e=r.root().defs().pattern(0,0,t=>{t.add(e)})),e},We.push(pr),f({Container:{image:ee(function(t,e){return this.put(new yr).size(0,0).load(t,e)})}}),Jt(yr,"Image");var gr=class extends Ue{bbox(){let t=-1/0,e=-1/0,r=1/0,n=1/0;return this.forEach(function(i){t=Math.max(i[0],t),e=Math.max(i[1],e),r=Math.min(i[0],r),n=Math.min(i[1],n)}),new Oe(r,n,t-r,e-n)}move(t,e){const r=this.bbox();if(t-=r.x,e-=r.y,!isNaN(t)&&!isNaN(e))for(let r=this.length-1;r>=0;r--)this[r]=[this[r][0]+t,this[r][1]+e];return this}parse(t=[0,0]){const e=[];(t=t instanceof Array?Array.prototype.concat.apply([],t):t.trim().split(de).map(parseFloat)).length%2!=0&&t.pop();for(let r=0,n=t.length;r<n;r+=2)e.push([t[r],t[r+1]]);return e}size(t,e){let r;const n=this.bbox();for(r=this.length-1;r>=0;r--)n.width&&(this[r][0]=(this[r][0]-n.x)*t/n.width+n.x),n.height&&(this[r][1]=(this[r][1]-n.y)*e/n.height+n.y);return this}toLine(){return{x1:this[0][0],y1:this[0][1],x2:this[1][0],y2:this[1][1]}}toString(){const t=[];for(let e=0,r=this.length;e<r;e++)t.push(this[e].join(","));return t.join(" ")}transform(t){return this.clone().transformO(t)}transformO(t){Se.isMatrixLike(t)||(t=new Se(t));for(let e=this.length;e--;){const[r,n]=this[e];this[e][0]=t.a*r+t.c*n+t.e,this[e][1]=t.b*r+t.d*n+t.f}return this}},br=h({MorphArray:()=>vr,height:()=>Nr,width:()=>Sr,x:()=>wr,y:()=>xr});const vr=gr;function wr(t){return null==t?this.bbox().x:this.move(t,this.bbox().y)}function xr(t){return null==t?this.bbox().y:this.move(this.bbox().x,t)}function Sr(t){const e=this.bbox();return null==t?e.width:this.size(t,e.height)}function Nr(t){const e=this.bbox();return null==t?e.height:this.size(e.width,t)}var _r=class extends Qe{constructor(t,e=t){super(qt("line",t),e)}array(){return new gr([[this.attr("x1"),this.attr("y1")],[this.attr("x2"),this.attr("y2")]])}move(t,e){return this.attr(this.array().move(t,e).toLine())}plot(t,e,r,n){return null==t?this.array():(t=void 0!==e?{x1:t,y1:e,x2:r,y2:n}:new gr(t).toLine(),this.attr(t))}size(t,e){const r=kt(this,t,e);return this.attr(this.array().size(r.width,r.height).toLine())}};te(_r,br),f({Container:{line:ee(function(...t){return _r.prototype.plot.apply(this.put(new _r),null!=t[0]?t:[0,0,0,0])})}}),Jt(_r,"Line");var Or=class extends Je{constructor(t,e=t){super(qt("marker",t),e)}height(t){return this.attr("markerHeight",t)}orient(t){return this.attr("orient",t)}ref(t,e){return this.attr("refX",t).attr("refY",e)}toString(){return"url(#"+this.id()+")"}update(t){return this.clear(),"function"==typeof t&&t.call(this,this),this}width(t){return this.attr("markerWidth",t)}};function Pr(t,e){return function(r){return null==r?this[t]:(this[t]=r,e&&e.call(this),this)}}f({Container:{marker(...t){return this.defs().marker(...t)}},Defs:{marker:ee(function(t,e,r){return this.put(new Or).size(t,e).ref(t/2,e/2).viewbox(0,0,t,e).attr("orient","auto").update(r)})},marker:{marker(t,e,r,n){let i=["marker"];return"all"!==t&&i.push(t),i=i.join("-"),t=arguments[1]instanceof Or?arguments[1]:this.defs().marker(e,r,n),this.attr(i,t)}}}),Jt(Or,"Marker");const Er={"-":function(t){return t},"<>":function(t){return-Math.cos(t*Math.PI)/2+.5},">":function(t){return Math.sin(t*Math.PI/2)},"<":function(t){return 1-Math.cos(t*Math.PI/2)},bezier:function(t,e,r,n){return function(i){return i<0?t>0?e/t*i:r>0?n/r*i:0:i>1?r<1?(1-n)/(1-r)*i+(n-r)/(1-r):t<1?(1-e)/(1-t)*i+(e-t)/(1-t):1:3*i*(1-i)**2*e+3*i**2*(1-i)*n+i**3}},steps:function(t,e="end"){e=e.split("-").reverse()[0];let r=t;return"none"===e?--r:"both"===e&&++r,(n,i=!1)=>{let s=Math.floor(n*t);const o=n*s%1==0;return"start"!==e&&"both"!==e||++s,i&&o&&--s,n>=0&&s<0&&(s=0),n<=1&&s>r&&(s=r),s/r}}};var Mr=class{done(){return!1}},Ar=class extends Mr{constructor(t=">"){super(),this.ease=Er[t]||t}step(t,e,r){return"number"!=typeof t?r<1?t:e:t+(e-t)*this.ease(r)}},Tr=class extends Mr{constructor(t){super(),this.stepper=t}done(t){return t.done}step(t,e,r,n){return this.stepper(t,e,r,n)}};function jr(){const t=(this._duration||500)/1e3,e=this._overshoot||0,r=Math.PI,n=Math.log(e/100+1e-10),i=-n/Math.sqrt(r*r+n*n),s=3.9/(i*t);this.d=2*i*s,this.k=s*s}te(class extends Tr{constructor(t=500,e=0){super(),this.duration(t).overshoot(e)}step(t,e,r,n){if("string"==typeof t)return t;if(n.done=r===1/0,r===1/0)return e;if(0===r)return t;r>100&&(r=16),r/=1e3;const i=n.velocity||0,s=-this.d*i-this.k*(t-e),o=t+i*r+s*r*r/2;return n.velocity=i+s*r,n.done=Math.abs(e-o)+Math.abs(i)<.002,n.done?e:o}},{duration:Pr("_duration",jr),overshoot:Pr("_overshoot",jr)}),te(class extends Tr{constructor(t=.1,e=.01,r=0,n=1e3){super(),this.p(t).i(e).d(r).windup(n)}step(t,e,r,n){if("string"==typeof t)return t;if(n.done=r===1/0,r===1/0)return e;if(0===r)return t;const i=e-t;let s=(n.integral||0)+i*r;const o=(i-(n.error||0))/r,a=this._windup;return!1!==a&&(s=Math.max(-a,Math.min(s,a))),n.error=i,n.integral=s,n.done=Math.abs(i)<.001,n.done?e:t+(this.P*i+this.I*s+this.D*o)}},{windup:Pr("_windup"),p:Pr("P"),i:Pr("I"),d:Pr("D")});const Cr={M:2,L:2,H:1,V:1,C:6,S:4,Q:4,T:2,A:7,Z:0},Lr={M:function(t,e,r){return e.x=r.x=t[0],e.y=r.y=t[1],["M",e.x,e.y]},L:function(t,e){return e.x=t[0],e.y=t[1],["L",t[0],t[1]]},H:function(t,e){return e.x=t[0],["H",t[0]]},V:function(t,e){return e.y=t[0],["V",t[0]]},C:function(t,e){return e.x=t[4],e.y=t[5],["C",t[0],t[1],t[2],t[3],t[4],t[5]]},S:function(t,e){return e.x=t[2],e.y=t[3],["S",t[0],t[1],t[2],t[3]]},Q:function(t,e){return e.x=t[2],e.y=t[3],["Q",t[0],t[1],t[2],t[3]]},T:function(t,e){return e.x=t[0],e.y=t[1],["T",t[0],t[1]]},Z:function(t,e,r){return e.x=r.x,e.y=r.y,["Z"]},A:function(t,e){return e.x=t[5],e.y=t[6],["A",t[0],t[1],t[2],t[3],t[4],t[5],t[6]]}},kr="mlhvqtcsaz".split("");for(let t=0,e=kr.length;t<e;++t)Lr[kr[t]]=function(t){return function(e,r,n){if("H"===t)e[0]=e[0]+r.x;else if("V"===t)e[0]=e[0]+r.y;else if("A"===t)e[5]=e[5]+r.x,e[6]=e[6]+r.y;else for(let t=0,n=e.length;t<n;++t)e[t]=e[t]+(t%2?r.y:r.x);return Lr[t](e,r,n)}}(kr[t].toUpperCase());function Dr(t){return t.segment.length&&t.segment.length-1===Cr[t.segment[0].toUpperCase()]}function Ir(t,e){t.inNumber&&Fr(t,!1);const r=me.test(e);if(r)t.segment=[e];else{const e=t.lastCommand,r=e.toLowerCase();t.segment=["m"===r?e===r?"l":"L":e]}return t.inSegment=!0,t.lastCommand=t.segment[0],r}function Fr(t,e){if(!t.inNumber)throw new Error("Parser Error");t.number&&t.segment.push(parseFloat(t.number)),t.inNumber=e,t.number="",t.pointSeen=!1,t.hasExponent=!1,Dr(t)&&Br(t)}function Br(t){t.inSegment=!1,t.absolute&&(t.segment=function(t){return Lr[t.segment[0]](t.segment.slice(1),t.p,t.p0)}(t)),t.segments.push(t.segment)}function Vr(t){if(!t.segment.length)return!1;const e="A"===t.segment[0].toUpperCase(),r=t.segment.length;return e&&(4===r||5===r)}function Rr(t){return"E"===t.lastToken.toUpperCase()}const zr=new Set([" ",",","\t","\n","\r","\f"]);var Gr=class extends Ue{bbox(){return Ne().path.setAttribute("d",this.toString()),new Oe(Ne.nodes.path.getBBox())}move(t,e){const r=this.bbox();if(t-=r.x,e-=r.y,!isNaN(t)&&!isNaN(e))for(let r,n=this.length-1;n>=0;n--)r=this[n][0],"M"===r||"L"===r||"T"===r?(this[n][1]+=t,this[n][2]+=e):"H"===r?this[n][1]+=t:"V"===r?this[n][1]+=e:"C"===r||"S"===r||"Q"===r?(this[n][1]+=t,this[n][2]+=e,this[n][3]+=t,this[n][4]+=e,"C"===r&&(this[n][5]+=t,this[n][6]+=e)):"A"===r&&(this[n][6]+=t,this[n][7]+=e);return this}parse(t="M0 0"){return Array.isArray(t)&&(t=Array.prototype.concat.apply([],t).toString()),function(t,e=!0){let r=0,n="";const i={segment:[],inNumber:!1,number:"",lastToken:"",inSegment:!1,segments:[],pointSeen:!1,hasExponent:!1,absolute:e,p0:new we,p:new we};for(;i.lastToken=n,n=t.charAt(r++);)if(i.inSegment||!Ir(i,n))if("."!==n)if(isNaN(parseInt(n)))if(zr.has(n))i.inNumber&&Fr(i,!1);else if("-"!==n&&"+"!==n)if("E"!==n.toUpperCase()){if(me.test(n)){if(i.inNumber)Fr(i,!1);else{if(!Dr(i))throw new Error("parser Error");Br(i)}--r}}else i.number+=n,i.hasExponent=!0;else{if(i.inNumber&&!Rr(i)){Fr(i,!1),--r;continue}i.number+=n,i.inNumber=!0}else{if("0"===i.number||Vr(i)){i.inNumber=!0,i.number=n,Fr(i,!0);continue}i.inNumber=!0,i.number+=n}else{if(i.pointSeen||i.hasExponent){Fr(i,!1),--r;continue}i.inNumber=!0,i.pointSeen=!0,i.number+=n}return i.inNumber&&Fr(i,!1),i.inSegment&&Dr(i)&&Br(i),i.segments}(t)}size(t,e){const r=this.bbox();let n,i;for(r.width=0===r.width?1:r.width,r.height=0===r.height?1:r.height,n=this.length-1;n>=0;n--)i=this[n][0],"M"===i||"L"===i||"T"===i?(this[n][1]=(this[n][1]-r.x)*t/r.width+r.x,this[n][2]=(this[n][2]-r.y)*e/r.height+r.y):"H"===i?this[n][1]=(this[n][1]-r.x)*t/r.width+r.x:"V"===i?this[n][1]=(this[n][1]-r.y)*e/r.height+r.y:"C"===i||"S"===i||"Q"===i?(this[n][1]=(this[n][1]-r.x)*t/r.width+r.x,this[n][2]=(this[n][2]-r.y)*e/r.height+r.y,this[n][3]=(this[n][3]-r.x)*t/r.width+r.x,this[n][4]=(this[n][4]-r.y)*e/r.height+r.y,"C"===i&&(this[n][5]=(this[n][5]-r.x)*t/r.width+r.x,this[n][6]=(this[n][6]-r.y)*e/r.height+r.y)):"A"===i&&(this[n][1]=this[n][1]*t/r.width,this[n][2]=this[n][2]*e/r.height,this[n][6]=(this[n][6]-r.x)*t/r.width+r.x,this[n][7]=(this[n][7]-r.y)*e/r.height+r.y);return this}toString(){return function(t){let e="";for(let r=0,n=t.length;r<n;r++)e+=t[r][0],null!=t[r][1]&&(e+=t[r][1],null!=t[r][2]&&(e+=" ",e+=t[r][2],null!=t[r][3]&&(e+=" ",e+=t[r][3],e+=" ",e+=t[r][4],null!=t[r][5]&&(e+=" ",e+=t[r][5],e+=" ",e+=t[r][6],null!=t[r][7]&&(e+=" ",e+=t[r][7])))));return e+" "}(this)}};const Ur=t=>{const e=typeof t;return"number"===e?Xe:"string"===e?ve.isColor(t)?ve:de.test(t)?me.test(t)?Gr:Ue:re.test(t)?Xe:Yr:$r.indexOf(t.constructor)>-1?t.constructor:Array.isArray(t)?Ue:"object"===e?Hr:Yr};var Xr=class{constructor(t){this._stepper=t||new Ar("-"),this._from=null,this._to=null,this._type=null,this._context=null,this._morphObj=null}at(t){return this._morphObj.morph(this._from,this._to,t,this._stepper,this._context)}done(){return this._context.map(this._stepper.done).reduce(function(t,e){return t&&e},!0)}from(t){return null==t?this._from:(this._from=this._set(t),this)}stepper(t){return null==t?this._stepper:(this._stepper=t,this)}to(t){return null==t?this._to:(this._to=this._set(t),this)}type(t){return null==t?this._type:(this._type=t,this)}_set(t){this._type||this.type(Ur(t));let e=new this._type(t);return this._type===ve&&(e=this._to?e[this._to[4]]():this._from?e[this._from[4]]():e),this._type===Hr&&(e=this._to?e.align(this._to):this._from?e.align(this._from):e),e=e.toConsumable(),this._morphObj=this._morphObj||new this._type,this._context=this._context||Array.apply(null,Array(e.length)).map(Object).map(function(t){return t.done=!0,t}),e}},Yr=class{constructor(...t){this.init(...t)}init(t){return t=Array.isArray(t)?t[0]:t,this.value=t,this}toArray(){return[this.value]}valueOf(){return this.value}},Wr=class t{constructor(...t){this.init(...t)}init(e){return Array.isArray(e)&&(e={scaleX:e[0],scaleY:e[1],shear:e[2],rotate:e[3],translateX:e[4],translateY:e[5],originX:e[6],originY:e[7]}),Object.assign(this,t.defaults,e),this}toArray(){const t=this;return[t.scaleX,t.scaleY,t.shear,t.rotate,t.translateX,t.translateY,t.originX,t.originY]}};Wr.defaults={scaleX:1,scaleY:1,shear:0,rotate:0,translateX:0,translateY:0,originX:0,originY:0};const qr=(t,e)=>t[0]<e[0]?-1:t[0]>e[0]?1:0;var Hr=class{constructor(...t){this.init(...t)}align(t){const e=this.values;for(let r=0,n=e.length;r<n;++r){if(e[r+1]===t[r+1]){if(e[r+1]===ve&&t[r+7]!==e[r+7]){const e=t[r+7],n=new ve(this.values.splice(r+3,5))[e]().toArray();this.values.splice(r+3,0,...n)}r+=e[r+2]+2;continue}if(!t[r+1])return this;const n=(new t[r+1]).toArray(),i=e[r+2]+3;e.splice(r,i,t[r],t[r+1],t[r+2],...n),r+=e[r+2]+2}return this}init(t){if(this.values=[],Array.isArray(t))return void(this.values=t.slice());t=t||{};const e=[];for(const r in t){const n=Ur(t[r]),i=new n(t[r]).toArray();e.push([r,n,i.length,...i])}return e.sort(qr),this.values=e.reduce((t,e)=>t.concat(e),[]),this}toArray(){return this.values}valueOf(){const t={},e=this.values;for(;e.length;){const r=e.shift(),n=e.shift(),i=e.shift();t[r]=new n(e.splice(0,i))}return t}};const $r=[Yr,Wr,Hr];var Jr=class extends Qe{constructor(t,e=t){super(qt("path",t),e)}array(){return this._array||(this._array=new Gr(this.attr("d")))}clear(){return delete this._array,this}height(t){return null==t?this.bbox().height:this.size(this.bbox().width,t)}move(t,e){return this.attr("d",this.array().move(t,e))}plot(t){return null==t?this.array():this.clear().attr("d","string"==typeof t?t:this._array=new Gr(t))}size(t,e){const r=kt(this,t,e);return this.attr("d",this.array().size(r.width,r.height))}width(t){return null==t?this.bbox().width:this.size(t,this.bbox().height)}x(t){return null==t?this.bbox().x:this.move(t,this.bbox().y)}y(t){return null==t?this.bbox().y:this.move(this.bbox().x,t)}};Jr.prototype.MorphArray=Gr,f({Container:{path:ee(function(t){return this.put(new Jr).plot(t||new Gr)})}}),Jt(Jr,"Path");var Kr=h({array:()=>Qr,clear:()=>Zr,move:()=>tn,plot:()=>en,size:()=>rn});function Qr(){return this._array||(this._array=new gr(this.attr("points")))}function Zr(){return delete this._array,this}function tn(t,e){return this.attr("points",this.array().move(t,e))}function en(t){return null==t?this.array():this.clear().attr("points","string"==typeof t?t:this._array=new gr(t))}function rn(t,e){const r=kt(this,t,e);return this.attr("points",this.array().size(r.width,r.height))}var nn=class extends Qe{constructor(t,e=t){super(qt("polygon",t),e)}};f({Container:{polygon:ee(function(t){return this.put(new nn).plot(t||new gr)})}}),te(nn,br),te(nn,Kr),Jt(nn,"Polygon");var sn=class extends Qe{constructor(t,e=t){super(qt("polyline",t),e)}};f({Container:{polyline:ee(function(t){return this.put(new sn).plot(t||new gr)})}}),te(sn,br),te(sn,Kr),Jt(sn,"Polyline");var on=class extends Qe{constructor(t,e=t){super(qt("rect",t),e)}};te(on,{rx:tr,ry:er}),f({Container:{rect:ee(function(t,e){return this.put(new on).size(t,e)})}}),Jt(on,"Rect");var an=class{constructor(){this._first=null,this._last=null}first(){return this._first&&this._first.value}last(){return this._last&&this._last.value}push(t){const e=void 0!==t.next?t:{value:t,next:null,prev:null};return this._last?(e.prev=this._last,this._last.next=e,this._last=e):(this._last=e,this._first=e),e}remove(t){t.prev&&(t.prev.next=t.next),t.next&&(t.next.prev=t.prev),t===this._last&&(this._last=t.prev),t===this._first&&(this._first=t.next),t.prev=null,t.next=null}shift(){const t=this._first;return t?(this._first=t.next,this._first&&(this._first.prev=null),this._last=this._first?this._last:null,t.value):null}};const un={nextDraw:null,frames:new an,timeouts:new an,immediates:new an,timer:()=>zt.window.performance||zt.window.Date,frame(t){const e=un.frames.push({run:t});return null===un.nextDraw&&(un.nextDraw=zt.window.requestAnimationFrame(un._draw)),e},timeout(t,e){e=e||0;const r=un.timer().now()+e,n=un.timeouts.push({run:t,time:r});return null===un.nextDraw&&(un.nextDraw=zt.window.requestAnimationFrame(un._draw)),n},immediate(t){const e=un.immediates.push(t);return null===un.nextDraw&&(un.nextDraw=zt.window.requestAnimationFrame(un._draw)),e},cancelFrame(t){null!=t&&un.frames.remove(t)},clearTimeout(t){null!=t&&un.timeouts.remove(t)},cancelImmediate(t){null!=t&&un.immediates.remove(t)},_draw(t){try{let e=null;const r=un.timeouts.last();for(;(e=un.timeouts.shift())&&(t>=e.time?e.run():un.timeouts.push(e),e!==r););let n=null;const i=un.frames.last();for(;n!==i&&(n=un.frames.shift());)n.run(t);let s=null;for(;s=un.immediates.shift();)s()}finally{const t=un.timeouts.first()||un.frames.first()||un.immediates.first();un.nextDraw=t?zt.window.requestAnimationFrame(un._draw):null}}},hn=function(t){const e=t.start,r=t.runner.duration();return{start:e,duration:r,end:e+r,runner:t.runner}},cn=function(){const t=zt.window;return(t.performance||t.Date).now()};var ln=class extends Re{constructor(t=cn){super(),this._timeSource=t,this.terminate()}active(){return!!this._nextFrame}finish(){this._finishing=!0;try{this.time(this.getEndTimeOfTimeline()+1)}finally{this._finishing=!1}return this.pause()}getEndTime(){const t=this.getLastRunnerInfo(),e=t?t.runner.duration():0;return(t?t.start:this._time)+e}getEndTimeOfTimeline(){const t=this._runners.map(t=>t.start+t.runner.duration());return Math.max(0,...t)}getLastRunnerInfo(){return this.getRunnerInfoById(this._lastRunnerId)}getRunnerInfoById(t){return this._runners[this._runnerIds.indexOf(t)]||null}pause(){return this._paused=!0,this._continue()}persist(t){return null==t?this._persist:(this._persist=t,this)}play(){return this._paused=!1,this.updateTime()._continue()}reverse(t){const e=this.speed();if(null==t)return this.speed(-e);const r=Math.abs(e);return this.speed(t?-r:r)}schedule(t,e,r){if(null==t)return this._runners.map(hn);let n=0;const i=this.getEndTime();if(e=e||0,null==r||"last"===r||"after"===r)n=i;else if("absolute"===r||"start"===r)n=e,e=0;else if("now"===r)n=this._time;else if("relative"===r){const r=this.getRunnerInfoById(t.id);r&&(n=r.start+e,e=0)}else{if("with-last"!==r)throw new Error('Invalid value for the "when" parameter');{const t=this.getLastRunnerInfo();n=t?t.start:this._time}}t.unschedule(),t.timeline(this),t._retired=!1;const s=t.persist(),o={persist:null===s?this._persist:s,start:n+e,runner:t};return this._lastRunnerId=t.id,t._runnerInfo=o,this._runners.push(o),this._runners.sort((t,e)=>t.start-e.start),this._runnerIds=this._runners.map(t=>t.runner.id),this.updateTime()._continue(),this}seek(t){return this.time(this._time+t)}source(t){return null==t?this._timeSource:(this._timeSource=t,this)}speed(t){return null==t?this._speed:(this._speed=t,this)}stop(){return this.time(0),this.pause()}time(t){return null==t?this._time:(this._time=t,this._continue(!0))}unschedule(t){const e=this._runnerIds.indexOf(t.id);return e<0||(this._runners.splice(e,1),this._runnerIds.splice(e,1),t.timeline(null),t._runnerInfo=null,t._retired=!0),this}updateTime(){return this.active()||(this._lastSourceTime=this._timeSource()),this}_continue(t=!1){return un.cancelFrame(this._nextFrame),this._nextFrame=null,t?this._stepImmediate():(this._paused||(this._nextFrame=un.frame(this._step)),this)}_stepFn(t=!1){const e=this._generation,r=this._timeSource();let n=r-this._lastSourceTime;t&&(n=0);const i=this._speed*n+(this._time-this._lastStepTime);this._lastSourceTime=r,t||(this._time+=i,this._time=this._time<0?0:this._time),this._lastStepTime=this._time,this.fire("time",this._time);const s=this._runners.slice();for(let t=s.length;t--;){const e=s[t];if(e.runner._runnerInfo!==e)continue;const r=e.runner;this._time-e.start<0&&r.reset(!0)}let o=!1;for(const t of this._runners.slice()){if(t.runner._runnerInfo!==t)continue;const e=t.runner;let r=i;const n=this._time-t.start;if(n<0){o=!0;continue}if(0===n){e.reset(),o=!0;continue}if(n<r&&(r=n),!e.active())continue;const s=(this._finishing&&e._isDeclarative?e.finish():e.step(r)).done;e._runnerInfo===t&&(s?!0!==t.persist&&e.duration()-e.time()+this._time+t.persist<=this._time&&e.unschedule():o=!0)}return e!==this._generation||(o||(o=this._runners.some(({start:t,runner:e})=>t>=this._time||e.active()&&!e.done)),o&&!(this._speed<0&&0===this._time)||this._runnerIds.length&&this._speed<0&&this._time>0?this._continue():(this.pause(),this.fire("finished"))),this}terminate(){un.cancelFrame(this._nextFrame),this._generation=(this._generation||0)+1,this._startTime=0,this._speed=1,this._persist=0;for(const{runner:t}of this._runners||[])t._retired=!0,t._runnerInfo=null;this._nextFrame=null,this._paused=!0,this._finishing=!1,this._runners=[],this._runnerIds=[],this._lastRunnerId=-1,this._time=0,this._lastSourceTime=0,this._lastStepTime=0,this._step=this._stepFn.bind(this,!1),this._stepImmediate=this._stepFn.bind(this,!0)}};f({Element:{timeline:function(t){return null==t?(this._timeline=this._timeline||new ln,this._timeline):(this._timeline=t,this)}}});var fn=class t extends Re{constructor(e){super(),this.id=t.id++,e="function"==typeof(e=e??400)?new Tr(e):e,this._element=null,this._timeline=null,this._runnerInfo=null,this.done=!1,this._queue=[],this._duration="number"==typeof e&&e,this._isDeclarative=e instanceof Tr,this._stepper=this._isDeclarative?e:new Ar,this._history={},this.enabled=!0,this._time=0,this._lastTime=0,this._reseted=!0,this.transforms=new Se,this._isAbsoluteTransform=!1,this._hasTransform=!1,this._transformInitialised=!1,this._transformActive=!1,this._retired=!1,this._reverse=!1,this._swing=!1,this._wait=0,this._times=1,this._persist=!!this._isDeclarative||null}static sanitise(t,e,r){let n=1,i=!1,s=0;return e=e??0,r=r||"last","object"!=typeof(t=t??400)||t instanceof Mr||(e=t.delay??e,r=t.when??r,i=t.swing||i,n=t.times??n,s=t.wait??s,t=t.duration??400),{duration:t,delay:e,swing:i,times:n,wait:s,when:r}}active(t){return null==t?this.enabled:(this.enabled=t,this)}addTransform(t){return this.transforms.lmultiplyO(t),this._transformInitialised=!0,this._transformActive=!0,this}after(t){return this.on("finished",t)}animate(e,r,n){const i=t.sanitise(e,r,n),s=new t(i.duration);return this._timeline&&s.timeline(this._timeline),this._element&&s.element(this._element),s.loop(i).schedule(i.delay,i.when)}clearTransform(){return this.transforms=new Se,this}delay(t){return this.animate(0,t)}duration(){return this._times*(this._wait+this._duration)-this._wait}during(t){return this.queue(null,t)}ease(t){return this._stepper=new Ar(t),this}element(t){return null==t?this._element:(this._element=t,t._prepareRunner(),this)}finish(){if(!this._isDeclarative)return this.time(this.duration());const t=this._time;return this.step(1/0),this._time=t,this}loop(t,e,r){return"object"==typeof t&&(e=t.swing,r=t.wait,t=t.times),this._times=t||1/0,this._swing=e||!1,this._wait=r||0,!0===this._times&&(this._times=1/0),this}loops(t){const e=this._duration+this._wait;if(null==t){const t=Math.floor(this._time/e),r=(this._time-t*e)/this._duration;return Math.min(t+r,this._times)}const r=t%1,n=e*Math.floor(t)+this._duration*r;return this.time(n)}persist(t){return null==t?this._persist:(this._persist=t,this)}position(t){const e=this._time,r=this._duration,n=this._wait,i=this._times,s=this._swing,o=this._reverse;let a;if(null==t){const t=function(t){const e=s*Math.floor(t%(2*(n+r))/(n+r)),i=e&&!o||!e&&o,a=Math.pow(-1,i)*(t%(n+r))/r+i;return Math.max(Math.min(a,1),0)},u=i*(n+r)-n;return a=e<=0?Math.round(t(1e-5)):e<u?t(e):Math.round(t(u-1e-5)),a}const u=Math.floor(this.loops()),h=s&&u%2==0;return a=u+(h&&!o||o&&h?t:1-t),this.loops(a)}progress(t){return null==t?Math.min(1,this._time/this.duration()):this.time(t*this.duration())}queue(t,e,r,n){return this._isDeclarative&&(this.done=!1),this._queue.push({initialiser:t||ze,runner:e||ze,retarget:r,isTransform:n,initialised:!1,finished:!1}),this.timeline()&&this.timeline()._continue(),this}reset(t=!1){if(this._reseted){const e=!t&&this._hasTransform&&0!==this.position();return e&&!this._transformInitialised?(this.step(0),this._reseted=!0,this):(e!==this._transformActive&&(this._transformActive=e,this._element&&this._element._addRunner(this)),this)}return this._reseted||(this.time(0),this._reseted=!0),t&&this._transformActive&&(this._transformActive=!1,this._element&&this._element._addRunner(this)),this}reverse(t){return this._reverse=t??!this._reverse,this}schedule(t,e,r){if(t instanceof ln||(r=e,e=t,t=this.timeline()),!t)throw Error("Runner cannot be scheduled without timeline");return t.schedule(this,e,r),this}step(t){if(!this.enabled)return this;const e=this.done;t=t??16,this._time+=t;const r=this.position(),n=this._lastPosition!==r&&this._time>=0;this._lastPosition=r;const i=this.duration(),s=this._lastTime<=0&&this._time>0;this._lastTime=this._time,s&&this.fire("start",this);const o=this._isDeclarative;this.done=!o&&this._time>=i,this._reseted=!1;const a=this._hasTransform&&(this._time>0||0!==r);this._transformActive=a;let u=!1;return(n||o)&&(this._initialise(n),this.transforms=new Se,u=this._run(o?t:r),this._transformActive=a,this.fire("step",this)),this.done=this.done||u&&o,this.done&&!e&&this.fire("finished",this),this}time(t){if(null==t)return this._time;const e=t-this._time;return this.step(e),this}timeline(t){return void 0===t?this._timeline:(this._timeline=t,this)}unschedule(){const t=this.timeline();return t&&t.unschedule(this),this}_initialise(t){if(t||this._isDeclarative)for(let e=0,r=this._queue.length;e<r;++e){const r=this._queue[e],n=this._isDeclarative||!r.initialised&&t;t=!r.finished,n&&t&&(r.initialiser.call(this),r.initialised=!0)}}_rememberMorpher(t,e){if(this._history[t]={morpher:e,caller:this._queue[this._queue.length-1]},this._isDeclarative){const t=this.timeline();t&&t.play()}}_run(t){let e=!0;for(let r=0,n=this._queue.length;r<n;++r){const n=this._queue[r];if(this._isDeclarative&&n.finished&&!n.isTransform)continue;const i=n.runner.call(this,t);n.finished=n.finished||!0===i,e=e&&n.finished}return e}_tryRetarget(t,e,r){if(this._history[t]){if(!this._history[t].caller.initialised){const e=this._queue.indexOf(this._history[t].caller);return this._queue.splice(e,1),!1}this._history[t].caller.retarget?this._history[t].caller.retarget.call(this,e,r):this._history[t].morpher.to(e),this._history[t].caller.finished=!1,this._isDeclarative&&(this.done=!1);const n=this.timeline();return n&&n.play(),!0}return!1}};fn.id=0;var dn=class{constructor(t=new Se,e=-1,r=!0,n=!1){this.transforms=t,this.id=e,this.done=r,this._isAbsoluteTransform=n,this._transformActive=!0,this._retired=!0}};te([fn,dn],{mergeWith(t){return new dn(this._isAbsoluteTransform?this.transforms:t.transforms.lmultiply(this.transforms),t.id,!0,t._isAbsoluteTransform||this._isAbsoluteTransform)}});const mn=(t,e)=>t.lmultiplyO(e),pn=t=>t.transforms,yn=t=>t._transformActive;function gn(t){const e=t.filter(yn);let r=0;for(let t=0;t<e.length;++t)e[t]._isAbsoluteTransform&&(r=t);return e.slice(r)}function bn(){const t=gn(this._transformationRunners.runners).map(pn).reduce(mn,new Se);this.transform(t),this._transformationRunners.merge(),1===this._transformationRunners.length()&&(this._frameId=null)}var vn=class{constructor(){this.runners=[]}add(t){var e;if(!(0,At.default)(e=this.runners).call(e,t))return this.runners.push(t),this}edit(t,e){const r=this.runners.findIndex(e=>e.id===t);return r>=0&&this.runners.splice(r,1,e),this}getByID(t){return this.runners.find(e=>e.id===t)}length(){return this.runners.length}merge(){let t=null;for(let e=0;e<this.runners.length;++e){const r=this.runners[e];if(t&&r.done&&t.done&&r._retired&&t._retired){this.remove(r.id);const n=r.mergeWith(t);this.edit(t.id,n),t=n,--e}else t=r}return this}remove(t){const e=this.runners.findIndex(e=>e.id===t);return e>=0&&this.runners.splice(e,1),this}};f({Element:{animate(t,e,r){const n=fn.sanitise(t,e,r),i=this.timeline();return new fn(n.duration).loop(n).element(this).timeline(i.play()).schedule(n.delay,n.when)},delay(t,e){return this.animate(0,t,e)},_currentTransform(t){const e=this._transformationRunners.runners,r=e.indexOf(t);return gn(e.slice(0,r+1)).map(pn).reduce(mn,new Se)},_addRunner(t){1===this._transformationRunners.length()&&-1===this._transformationRunners.runners[0].id&&(this._transformationRunners.runners[0].transforms=new Se(this)),this._transformationRunners.add(t),un.cancelImmediate(this._frameId),this._frameId=un.immediate(bn.bind(this))},_prepareRunner(){null==this._frameId&&(this._transformationRunners=(new vn).add(new dn(new Se(this))))}}}),te(fn,{attr(t,e){return this.styleAttr("attr",t,e)},css(t,e){return this.styleAttr("css",t,e)},styleAttr(t,e,r){if("string"==typeof e)return this.styleAttr(t,{[e]:r});const n=e,i=this._history[t];if(i&&!i.caller.initialised&&i.caller.retarget)return i.caller.retarget.call(this,n),this;if(this._tryRetarget(t,n))return this;let s=new Xr(this._stepper).to(n),o=Object.keys(n);return this.queue(function(){s=s.from(this.element()[t](o))},function(e){return this.element()[t](s.at(e).valueOf()),s.done()},function(e){const r=(n=Object.keys(e),i=o,n.filter(t=>!(0,At.default)(i).call(i,t)));var n,i;if(r.length&&null!=s.from()){const e=this.element()[t](r),n=new Hr(s.from()).valueOf();Object.assign(n,e),s.from(n)}const a=new Hr(s.to()).valueOf();Object.assign(a,e),s.to(a),o=Object.keys(a)}),this._rememberMorpher(t,s),this},zoom(t,e){if(this._tryRetarget("zoom",t,e))return this;let r=new Xr(this._stepper).to(new Xe(t));return this.queue(function(){r=r.from(this.element().zoom())},function(t){return this.element().zoom(r.at(t),e),r.done()},function(t,n){e=n,r.to(t)}),this._rememberMorpher("zoom",r),this},transform(t,e,r){if(e=t.relative||e,this._hasTransform=!0,this._isAbsoluteTransform=this._isAbsoluteTransform||!e,this._isDeclarative&&!e&&this._tryRetarget("transform",t))return this;const n=Se.isMatrixLike(t);r=null!=t.affine?t.affine:null!=r?r:!n;const i=new Xr(this._stepper).type(r?Wr:Se),s=r?new Xr(this._stepper).type(Se):i;let o,a,u,h,c;return this.queue(function(){a=a||this.element(),o=o||Dt(t,a),c=new Se(e?void 0:a),a._addRunner(this)},function(l){e||this.clearTransform();const{x:f,y:d}=new we(o).transform(a._currentTransform(this)),m={...t,origin:[f,d]};!0===m.relative&&delete m.relative;let p=new Se(m),y=this._isDeclarative&&u?u:c,g=i;if(r){const t=p.decompose(f,d),e=y.decompose(f,d);if(new Wr(t).toArray().concat(new Wr(e).toArray()).every(Number.isFinite)){p=t,y=e;const r=p.rotate,n=y.rotate,i=[r-360,r,r+360],s=i.map(t=>Math.abs(t-n)),o=Math.min(...s),a=s.indexOf(o);p.rotate=i[a]}else g=s}e&&g===i&&(n||(p.rotate=t.rotate||0),this._isDeclarative&&h&&(y.rotate=h)),g.from(y),g.to(p);const b=g.at(l);return h=b.rotate,u=new Se(b),this.addTransform(u),a._addRunner(this),g.done()},function(e){o=Dt(e,a),t={...e}},!0),this._isDeclarative&&this._rememberMorpher("transform",i),this},x(t){return this._queueNumber("x",t)},y(t){return this._queueNumber("y",t)},ax(t){return this._queueNumber("ax",t)},ay(t){return this._queueNumber("ay",t)},dx(t=0){return this._queueNumberDelta("x",t)},dy(t=0){return this._queueNumberDelta("y",t)},dmove(t,e){return this.dx(t).dy(e)},_queueNumberDelta(t,e){if(e=new Xe(e),this._tryRetarget(t,e))return this;const r=new Xr(this._stepper).to(e);let n=null;return this.queue(function(){n=this.element()[t](),r.from(n),r.to(n+e)},function(e){return this.element()[t](r.at(e)),r.done()},function(t){r.to(n+new Xe(t))}),this._rememberMorpher(t,r),this},_queueObject(t,e){if(this._tryRetarget(t,e))return this;const r=new Xr(this._stepper).to(e);return this.queue(function(){r.from(this.element()[t]())},function(e){return this.element()[t](r.at(e)),r.done()}),this._rememberMorpher(t,r),this},_queueNumber(t,e){return this._queueObject(t,new Xe(e))},cx(t){return this._queueNumber("cx",t)},cy(t){return this._queueNumber("cy",t)},move(t,e){return this.x(t).y(e)},amove(t,e){return this.ax(t).ay(e)},center(t,e){return this.cx(t).cy(e)},size(t,e){const r=kt(this._element,t,e);return this.width(r.width).height(r.height)},width(t){return this._queueNumber("width",t)},height(t){return this._queueNumber("height",t)},plot(t,e,r,n){if(4===arguments.length)return this.plot([t,e,r,n]);if(this._tryRetarget("plot",t))return this;const i=new Xr(this._stepper).type(this._element.MorphArray).to(t);return this.queue(function(){i.from(this._element.array())},function(t){return this._element.plot(i.at(t)),i.done()}),this._rememberMorpher("plot",i),this},leading(t){return this._queueNumber("leading",t)},viewbox(t,e,r,n){return this._queueObject("viewbox",new Oe(t,e,r,n))},update(t){return"object"!=typeof t?this.update({offset:arguments[0],color:arguments[1],opacity:arguments[2]}):(null!=t.opacity&&this.attr("stop-opacity",t.opacity),null!=t.color&&this.attr("stop-color",t.color),null!=t.offset&&this.attr("offset",t.offset),this)}}),te(fn,{rx:tr,ry:er,from:lr,to:fr}),Jt(fn,"Runner");var wn=class extends Je{constructor(t,e=t){super(qt("svg",t),e),this.namespace()}defs(){return this.isRoot()?Ht(this.node.querySelector("defs"))||this.put(new Ke):this.root().defs()}isRoot(){return!this.node.parentNode||!(this.node.parentNode instanceof zt.window.SVGElement)&&"#document-fragment"!==this.node.parentNode.nodeName}namespace(){return this.isRoot()?this.attr({xmlns:Bt,version:"1.1"}).attr("xmlns:xlink",Rt,Vt):this.root().namespace()}removeNamespace(){return this.attr({xmlns:null,version:null}).attr("xmlns:xlink",null,Vt).attr("xmlns:svgjs",null,Vt)}root(){return this.isRoot()?this:super.root()}};f({Container:{nested:ee(function(){return this.put(new wn)})}}),Jt(wn,"Svg",!0);var xn=class extends Je{constructor(t,e=t){super(qt("symbol",t),e)}};f({Container:{symbol:ee(function(){return this.put(new xn)})}}),Jt(xn,"Symbol");var Sn=h({amove:()=>Ln,ax:()=>jn,ay:()=>Cn,build:()=>kn,center:()=>Tn,cx:()=>Mn,cy:()=>An,length:()=>_n,move:()=>En,plain:()=>Nn,x:()=>On,y:()=>Pn});function Nn(t){return!1===this._build&&this.clear(),this.node.appendChild(zt.document.createTextNode(t)),this}function _n(){return this.node.getComputedTextLength()}function On(t,e=this.bbox()){return null==t?e.x:this.attr("x",this.attr("x")+t-e.x)}function Pn(t,e=this.bbox()){return null==t?e.y:this.attr("y",this.attr("y")+t-e.y)}function En(t,e,r=this.bbox()){return this.x(t,r).y(e,r)}function Mn(t,e=this.bbox()){return null==t?e.cx:this.attr("x",this.attr("x")+t-e.cx)}function An(t,e=this.bbox()){return null==t?e.cy:this.attr("y",this.attr("y")+t-e.cy)}function Tn(t,e,r=this.bbox()){return this.cx(t,r).cy(e,r)}function jn(t){return this.attr("x",t)}function Cn(t){return this.attr("y",t)}function Ln(t,e){return this.ax(t).ay(e)}function kn(t){return this._build=!!t,this}var Dn=class extends Qe{constructor(t,e=t){super(qt("text",t),e),this.dom.leading=this.dom.leading??new Xe(1.3),this._rebuild=!0,this._build=!1}leading(t){return null==t?this.dom.leading:(this.dom.leading=new Xe(t),this.rebuild())}rebuild(t){if("boolean"==typeof t&&(this._rebuild=t),this._rebuild){const t=this;let e=0;const r=this.dom.leading;this.each(function(n){if(Ft(this.node))return;const i=zt.window.getComputedStyle(this.node).getPropertyValue("font-size"),s=r*new Xe(i);this.dom.newLined&&(this.attr("x",t.attr("x")),"\n"===this.text()?e+=s:(this.attr("dy",n?s+e:0),e=0))}),this.fire("rebuild")}return this}setData(t){return this.dom=t,this.dom.leading=new Xe(t.leading||1.3),this}writeDataToDom(){return super.writeDataToDom({leading:1.3})}text(t){if(void 0===t){const e=this.node.childNodes;let r=0;t="";for(let n=0,i=e.length;n<i;++n)"textPath"===e[n].nodeName||Ft(e[n])?0===n&&(r=n+1):(n!==r&&3!==e[n].nodeType&&!0===Ht(e[n]).dom.newLined&&(t+="\n"),t+=e[n].textContent);return t}if(this.clear().build(!0),"function"==typeof t)t.call(this,this);else for(let e=0,r=(t=(t+"").split("\n")).length;e<r;e++)this.newLine(t[e]);return this.build(!1).rebuild()}};te(Dn,Sn),f({Container:{text:ee(function(t=""){return this.put(new Dn).text(t)}),plain:ee(function(t=""){return this.put(new Dn).plain(t)})}}),Jt(Dn,"Text");var In=class extends Qe{constructor(t,e=t){super(qt("tspan",t),e),this._build=!1}dx(t){return this.attr("dx",t)}dy(t){return this.attr("dy",t)}newLine(){this.dom.newLined=!0;const t=this.parent();if(!(t instanceof Dn))return this;const e=t.index(this),r=zt.window.getComputedStyle(this.node).getPropertyValue("font-size"),n=t.dom.leading*new Xe(r);return this.dy(e?n:0).attr("x",t.x())}text(t){return null==t?this.node.textContent+(this.dom.newLined?"\n":""):("function"==typeof t?(this.clear().build(!0),t.call(this,this),this.build(!1)):this.plain(t),this)}};te(In,Sn),f({Tspan:{tspan:ee(function(t=""){const e=new In;return this._build||this.clear(),this.put(e).text(t)})},Text:{newLine:function(t=""){return this.tspan(t).newLine()}}}),Jt(In,"Tspan");var Fn=class extends Qe{constructor(t,e=t){super(qt("circle",t),e)}radius(t){return this.attr("r",t)}rx(t){return this.attr("r",t)}ry(t){return this.rx(t)}size(t){return this.radius(new Xe(t).divide(2))}};te(Fn,{x:rr,y:nr,cx:ir,cy:sr,width:or,height:ar}),f({Container:{circle:ee(function(t=0){return this.put(new Fn).size(t).move(0,0)})}}),Jt(Fn,"Circle");var Bn=class extends Je{constructor(t,e=t){super(qt("clipPath",t),e)}remove(){return this.targets().forEach(function(t){t.unclip()}),super.remove()}targets(){return je(this.node,"clip-path")}};f({Container:{clip:ee(function(){return this.defs().put(new Bn)})},Element:{clipper(){return this.reference("clip-path")},clipWith(t){const e=t instanceof Bn?t:this.parent().clip().add(t);return this.attr("clip-path","url(#"+e.id()+")")},unclip(){return this.attr("clip-path",null)}}}),Jt(Bn,"ClipPath");var Vn=class extends He{constructor(t,e=t){super(qt("foreignObject",t),e)}};f({Container:{foreignObject:ee(function(t,e){return this.put(new Vn).size(t,e)})}}),Jt(Vn,"ForeignObject");var Rn=h({dmove:()=>zn,dx:()=>Gn,dy:()=>Un,height:()=>Xn,move:()=>Yn,size:()=>Wn,width:()=>qn,x:()=>Hn,y:()=>$n});function zn(t,e){return this.children().forEach(r=>{let n;try{n=r.node instanceof zt.window.SVGSVGElement?new Oe(r.attr(["x","y","width","height"])):r.bbox()}catch(t){return}const i=new Se(r),s=i.translate(t,e).transform(i.inverse()),o=new we(n.x,n.y).transform(s);r.dmove(o.x-n.x,o.y-n.y)}),this}function Gn(t){return this.dmove(t,0)}function Un(t){return this.dmove(0,t)}function Xn(t,e=this.bbox()){return null==t?e.height:this.size(e.width,t,e)}function Yn(t=0,e=0,r=this.bbox()){const n=t-r.x,i=e-r.y;return this.dmove(n,i)}function Wn(t,e,r=this.bbox()){const n=kt(this,t,e,r),i=n.width/r.width,s=n.height/r.height;return this.children().forEach(t=>{const e=new we(r).transform(new Se(t).inverse());t.scale(i,s,e.x,e.y)}),this}function qn(t,e=this.bbox()){return null==t?e.width:this.size(t,e.height,e)}function Hn(t,e=this.bbox()){return null==t?e.x:this.move(t,e.y,e)}function $n(t,e=this.bbox()){return null==t?e.y:this.move(e.x,t,e)}var Jn=class extends Je{constructor(t,e=t){super(qt("g",t),e)}};te(Jn,Rn),f({Container:{group:ee(function(){return this.put(new Jn)})}}),Jt(Jn,"G");var Kn=class extends Je{constructor(t,e=t){super(qt("a",t),e)}target(t){return this.attr("target",t)}to(t){return this.attr("href",t,Rt)}};te(Kn,Rn),f({Container:{link:ee(function(t){return this.put(new Kn).to(t)})},Element:{unlink(){const t=this.linker();if(!t)return this;const e=t.parent();if(!e)return this.remove();const r=e.index(t);return e.add(this,r),t.remove(),this},linkTo(t){let e=this.linker();return e||(e=new Kn,this.wrap(e)),"function"==typeof t?t.call(e,e):e.to(t),this},linker(){const t=this.parent();return t&&"a"===t.node.nodeName.toLowerCase()?t:null}}}),Jt(Kn,"A");var Qn=class extends Je{constructor(t,e=t){super(qt("mask",t),e)}remove(){return this.targets().forEach(function(t){t.unmask()}),super.remove()}targets(){return je(this.node,"mask")}};f({Container:{mask:ee(function(){return this.defs().put(new Qn)})},Element:{masker(){return this.reference("mask")},maskWith(t){const e=t instanceof Qn?t:this.parent().mask().add(t);return this.attr("mask","url(#"+e.id()+")")},unmask(){return this.attr("mask",null)}}}),Jt(Qn,"Mask");var Zn=class extends He{constructor(t,e=t){super(qt("stop",t),e)}update(t){return("number"==typeof t||t instanceof Xe)&&(t={offset:arguments[0],color:arguments[1],opacity:arguments[2]}),null!=t.opacity&&this.attr("stop-opacity",t.opacity),null!=t.color&&this.attr("stop-color",t.color),null!=t.offset&&this.attr("offset",new Xe(t.offset)),this}};f({Gradient:{stop:function(t,e,r){return this.put(new Zn).update(t,e,r)}}}),Jt(Zn,"Stop");var ti=class extends He{constructor(t,e=t){super(qt("style",t),e)}addText(t=""){return this.node.textContent+=t,this}font(t,e,r={}){return this.rule("@font-face",{fontFamily:t,src:e,...r})}rule(t,e){return this.addText(function(t,e){if(!t)return"";if(!e)return t;let r=t+"{";for(const t in e)r+=Ct(t)+":"+e[t]+";";return r+="}",r}(t,e))}};f("Dom",{style(t,e){return this.put(new ti).rule(t,e)},fontface(t,e,r){return this.put(new ti).font(t,e,r)}}),Jt(ti,"Style");var ei=class extends Dn{constructor(t,e=t){super(qt("textPath",t),e)}array(){const t=this.track();return t?t.array():null}plot(t){const e=this.track();let r=null;return e&&(r=e.plot(t)),null==t?r:this}track(){return this.reference("href")}};f({Container:{textPath:ee(function(t,e){return t instanceof Dn||(t=this.text(t)),t.path(e)})},Text:{path:ee(function(t,e=!0){const r=new ei;let n;if(t instanceof Jr||(t=this.defs().path(t)),r.attr("href","#"+t,Rt),e)for(;n=this.node.firstChild;)r.node.appendChild(n);return this.put(r)}),textPath(){return this.findOne("textPath")}},Path:{text:ee(function(t){return t instanceof Dn||(t=(new Dn).addTo(this.parent()).text(t)),t.path(this)}),targets(){return je(this.node,"href","textPath")}}}),ei.prototype.MorphArray=Gr,Jt(ei,"TextPath");var ri=class extends Qe{constructor(t,e=t){super(qt("use",t),e)}use(t,e){return this.attr("href",(e||"")+"#"+t,Rt)}};f({Container:{use:ee(function(t,e){return this.put(new ri).use(t,e)})}}),Jt(ri,"Use"),te([wn,xn,yr,mr,Or],d("viewbox")),te([_r,sn,nn,Jr],d("marker")),te(Dn,d("Text")),te(Jr,d("Path")),te(Ke,d("Defs")),te([Dn,In],d("Tspan")),te([on,ur,dr,fn],d("radius")),te(Re,d("EventTarget")),te(qe,d("Dom")),te(He,d("Element")),te(Qe,d("Shape")),te([Je,hr],d("Container")),te(dr,d("Gradient")),te(fn,d("Runner")),Ee.extend([...new Set(l)]),function(t=[]){$r.push(...[].concat(t))}([Xe,ve,Oe,Se,Ue,gr,Gr,we]),te($r,{to(t){return(new Xr).type(this.constructor).from(this.toArray()).to(t)},fromArray(t){return this.init(t),this},toConsumable(){return this.toArray()},morph(t,e,r,n,i){return this.fromArray(t.map(function(t,s){return n.step(t,e[s],r,i[s],i)}))}});var ni,ii,si,oi,ai=r(726),ui=r(725),hi=r(854),ci=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};const li=["basePadding1","basePadding2"],fi={basePadding1:"setBasePadding1",basePadding2:"setBasePadding2"};class di{static between(t,e){let r=(new _r).node,n=new di(r,t,e);return n.assignUUID(),n.set(di.defaultValues),n.reposition(),n}constructor(t,e,r){ni.add(this),this.line=t,this.base1=e,this.base2=r,ii.set(this,{change:[]}),si.set(this,new MutationObserver(()=>ci(this,ni,"m",oi).call(this,"change"))),this.domNode.dataset.basePadding1||(this.domNode.dataset.basePadding1=`${(0,ui.distance)(this.point1,this.base1.centerPoint)}`),this.domNode.dataset.basePadding2||(this.domNode.dataset.basePadding2=`${(0,ui.distance)(this.point2,this.base2.centerPoint)}`),e.centerPoint.addEventListener("move",()=>this.reposition()),r.centerPoint.addEventListener("move",()=>this.reposition()),ci(this,si,"f").observe(t,{attributes:!0,childList:!0,characterData:!0,subtree:!0})}get basePair(){return[this.base1,this.base2]}get domNode(){return this.line}getAttribute(t){return this.domNode.getAttribute(t)}setAttribute(t,e){this.domNode.setAttribute(t,e)}setAttributes(t){if((0,hi.isNonNullObject)(t))try{new _r(this.domNode).attr(t)}catch{}}get id(){return this.domNode.id}assignUUID(){(0,ai.assignUUID)(this.domNode)}appendTo(t){t.appendChild(this.domNode)}remove(){this.domNode.remove()}isIn(t){return t.contains(this.domNode)&&t!==this.domNode}hasParent(){return!!this.domNode.parentNode}getTotalLength(){return this.domNode.getTotalLength()}get length(){return this.getTotalLength()}getPointAtLength(t){t<0?t=0:t>this.length&&(t=this.length);let e=this.domNode.getPointAtLength(t);return{x:e.x,y:e.y,direction:this.direction}}atLength(t){return this.getPointAtLength(t)}get point1(){return{x:this.domNode.x1.baseVal.value,y:this.domNode.y1.baseVal.value}}get point2(){return{x:this.domNode.x2.baseVal.value,y:this.domNode.y2.baseVal.value}}get direction(){return(0,ui.direction)(this.point1,this.point2)}get basePadding1(){var t;let e=Number.parseFloat(null!==(t=this.domNode.dataset.basePadding1)&&void 0!==t?t:"");return Number.isFinite(e)?e:0}set basePadding1(t){this.domNode.dataset.basePadding1=`${t}`,this.reposition()}setBasePadding1(t){(0,hi.isFiniteNumber)(t)&&(this.basePadding1=Math.max(0,t))}get basePadding2(){var t;let e=Number.parseFloat(null!==(t=this.domNode.dataset.basePadding2)&&void 0!==t?t:"");return Number.isFinite(e)?e:0}set basePadding2(t){this.domNode.dataset.basePadding2=`${t}`,this.reposition()}setBasePadding2(t){(0,hi.isFiniteNumber)(t)&&(this.basePadding2=Math.max(0,t))}isInverted(){return this.basePadding1+this.basePadding2>(0,ui.distance)(this.base1.centerPoint,this.base2.centerPoint)}set(t){try{this.setAttributes(t.attributes)}catch{}li.forEach(e=>{try{this[fi[e]](t[e])}catch{}})}reposition(){let t=this.base1.centerPoint,e=this.base2.centerPoint,r=(0,ui.direction)(t,e);this.setAttribute("x1",`${t.x+this.basePadding1*Math.cos(r)}`),this.setAttribute("y1",`${t.y+this.basePadding1*Math.sin(r)}`),this.setAttribute("x2",""+(e.x-this.basePadding2*Math.cos(r))),this.setAttribute("y2",""+(e.y-this.basePadding2*Math.sin(r)))}addEventListener(t,e){ci(this,ii,"f")[t].push(e)}removeEventListener(t,e){ci(this,ii,"f")[t]=ci(this,ii,"f")[t].filter(t=>t!==e)}serialized(){let t=this.id;if(!t)throw new Error("Straight bond ID is falsy.");let e=this.base1.id;if(!e)throw new Error("Base 1 ID is falsy.");let r=this.base2.id;if(!r)throw new Error("Base 2 ID is falsy.");return{id:t,baseID1:e,baseID2:r}}static deserialized(t,e){var r,n,i;if(!(0,hi.isNonNullObject)(t))throw new Error("Saved straight bond must be an object.");let s=null!==(r=t.id)&&void 0!==r?r:t.lineId;if(!s)throw new Error("Straight bond ID is missing.");let o=e.domNode.querySelector("#"+s);if(!o)throw new Error("Unable to find straight bond DOM node.");if(!(o instanceof SVGLineElement))throw new Error("Straight bond DOM node must be an SVG line element.");let a=null!==(n=t.baseID1)&&void 0!==n?n:t.baseId1,u=null!==(i=t.baseID2)&&void 0!==i?i:t.baseId2;if(!a)throw new Error("Missing base 1 ID.");if(!u)throw new Error("Missing base 2 ID.");let h=[...e.bases].find(t=>t.id===a),c=[...e.bases].find(t=>t.id===u);if(!h)throw new Error("Unable to find base 1.");if(!c)throw new Error("Unable to find base 2.");let l=new di(o,h,c);return(0,hi.isNumber)(t.basePadding1)&&(l.basePadding1=t.basePadding1),(0,hi.isNumber)(t.basePadding2)&&(l.basePadding2=t.basePadding2),l}}ii=new WeakMap,si=new WeakMap,ni=new WeakSet,oi=function(t){ci(this,ii,"f")[t].forEach(t=>t())},di.defaultValues={attributes:{stroke:"#000000","stroke-width":"2"},basePadding1:6,basePadding2:6};var mi,pi,yi,gi,bi=r(801),vi=r(127),wi=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class xi{constructor(t){mi.add(this),pi.set(this,void 0),yi.set(this,new MutationObserver(()=>wi(this,mi,"m",gi).call(this))),function(t,e,r){if("function"==typeof e||!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");e.set(t,r)}(this,pi,t),wi(this,yi,"f").observe(t.domNode,{childList:!0,subtree:!0})}}pi=new WeakMap,yi=new WeakMap,mi=new WeakSet,gi=function(){let t=[...wi(this,pi,"f").bases],e=new Map;t.forEach(t=>e.set(t,new Set)),[...wi(this,pi,"f").primaryBonds].forEach(t=>{var r,n;null===(r=e.get(t.base1))||void 0===r||r.add(t.base2),null===(n=e.get(t.base2))||void 0===n||n.add(t.base1)}),(0,vi.consecutivePairs)(t).forEach(([t,r])=>{var n;(null===(n=e.get(t))||void 0===n?void 0:n.has(r))||wi(this,pi,"f").addPrimaryBond(t,r)})};class Si{constructor(t,e){this.targetStraightBonds=t,new MutationObserver(t=>{let e=new Set([...this.targetStraightBonds].map(t=>t.domNode));!t.some(t=>e.has(t.target))||this.updateOpacities()}).observe(e,{attributes:!0,attributeFilter:["x1","y1","x2","y2"],subtree:!0})}updateOpacities(){[...this.targetStraightBonds].forEach(t=>{let e=t.isInverted()?"0":"1";t.setAttribute("opacity",e)})}}})(),n})(),t.exports=e()},742(t){var e;e=()=>(()=>{var t={277(t){var e;e=()=>(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};t.r(e),t.d(e,{Vector:()=>r});class r{static matching(t){return new r(t.x,t.y)}constructor(t,e){this.x=t,this.y=e}[Symbol.iterator](){return[this.x,this.y].values()}get magnitude(){return Math.sqrt(Math.pow(this.x,2)+Math.pow(this.y,2))}set magnitude(t){let e=this.direction;this.x=t*Math.cos(e),this.y=t*Math.sin(e)}get direction(){return Math.atan2(this.y,this.x)}set direction(t){let e=this.magnitude;this.x=e*Math.cos(t),this.y=e*Math.sin(t)}}return e})(),t.exports=e()},645(t){var e;e=()=>(()=>{var t={986:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){var e=0;return t.forEach(function(t){return e+=t}),e}function n(t){return r(t)/t.length}function i(t){t.sort(function(t,e){return t-e})}t.r(e),t.d(e,{areWithin:()=>d,average:()=>n,clamp:()=>f,degrees:()=>y,flipAway:()=>v,isBetween:()=>c,isBetweenExclusive:()=>l,isBetweenInclusive:()=>c,max:()=>h,mean:()=>n,median:()=>a,min:()=>u,normalizeAngle:()=>b,radians:()=>g,sortNumbers:()=>i,sortNumbersAscending:()=>i,sortNumbersDescending:()=>m,sortedNumbers:()=>o,sortedNumbersAscending:()=>o,sortedNumbersDescending:()=>p,sum:()=>r});var s=function(t,e,r){if(r||2===arguments.length)for(var n,i=0,s=e.length;i<s;i++)!n&&i in e||(n||(n=Array.prototype.slice.call(e,0,i)),n[i]=e[i]);return t.concat(n||Array.prototype.slice.call(e))};function o(t){var e=s([],t,!0);return i(e),e}function a(t){if(0==t.length)return NaN;var e=o(t);if(e.length%2!=0)return e[Math.floor(e.length/2)];var r=e.length/2,i=r-1;return n([e[r],e[i]])}function u(t){if(0==t.length)return 1/0;var e=t[0];return t.slice(1).forEach(function(t){e=Math.min(e,t)}),e}function h(t){if(0==t.length)return-1/0;var e=t[0];return t.slice(1).forEach(function(t){e=Math.max(e,t)}),e}function c(t,e,r){return t>=e&&t<=r}function l(t,e,r){return t>e&&t<r}function f(t,e,r){return t<e?e:t>r?r:t}function d(t,e,r){return Math.abs(t-e)<=r}function m(t){i(t),t.reverse()}function p(t){var e=o(t);return e.reverse(),e}function y(t){return t*(180/Math.PI)}function g(t){return t*(Math.PI/180)}function b(t,e){void 0===e&&(e=-Math.PI);var r=t-e;return e+((r%=2*Math.PI)>=0?r:r+2*Math.PI)}function v(t,e){var r=(e=b(e,t))-t;return(r<Math.PI/2||r>3*Math.PI/2)&&(t+=Math.PI),t}return e})()}},e={};function r(n){var i=e[n];if(void 0!==i)return i.exports;var s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,r),s.exports}r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var n={};return(()=>{"use strict";r.r(n),r.d(n,{Box:()=>e});var t=r(986);class e{static bounding(r){let n=r.map(t=>e.matching(t)),i=(0,t.min)(n.map(t=>t.left)),s=(0,t.min)(n.map(t=>t.top)),o=(0,t.max)(n.map(t=>t.right))-i,a=(0,t.max)(n.map(t=>t.bottom))-s;return new e(i,s,o,a)}static matching(t){let{x:r,y:n,width:i,height:s}=t;return new e(r,n,i,s)}constructor(t,e,r,n){this.x=t,this.y=e,this.width=r,this.height=n}get centerX(){return this.minX+this.width/2}get centerY(){return this.minY+this.height/2}get minX(){return this.x}get minY(){return this.y}get maxX(){return this.minX+this.width}get maxY(){return this.minY+this.height}get top(){return this.minY}get right(){return this.maxX}get bottom(){return this.maxY}get left(){return this.minX}isBoundedBy(t){let r=e.matching(t);return this.minX>=r.minX&&this.minY>=r.minY&&this.maxX<=r.maxX&&this.maxY<=r.maxY}padded(t,r){return"number"!=typeof r&&(r=t),new e(this.x-t,this.y-r,this.width+2*t,this.height+2*r)}peripheralPoint(t){let e=this.width/2,r=this.height/2,n=Math.pow(Math.pow(e,2)+Math.pow(r,2),.5),i=this.centerX+n*Math.cos(t),s=this.centerY+n*Math.sin(t),o=n;return Math.abs(this.centerX-i)>e&&(o=Math.abs(e/Math.cos(t)),o=Number.isFinite(o)?o:r),Math.abs(this.centerY-s)>r&&(o=Math.abs(r/Math.sin(t)),o=Number.isFinite(o)?o:e),{x:this.centerX+o*Math.cos(t),y:this.centerY+o*Math.sin(t)}}}})(),n})(),t.exports=e()},725(t){t.exports=(()=>{var t={986:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){var e=0;return t.forEach(function(t){return e+=t}),e}function n(t){return r(t)/t.length}function i(t){t.sort(function(t,e){return t-e})}t.r(e),t.d(e,{areWithin:()=>f,average:()=>n,degrees:()=>p,isBetweenExclusive:()=>l,isBetweenInclusive:()=>c,max:()=>h,mean:()=>n,median:()=>a,min:()=>u,radians:()=>y,sortNumbers:()=>i,sortNumbersAscending:()=>i,sortNumbersDescending:()=>d,sortedNumbers:()=>o,sortedNumbersAscending:()=>o,sortedNumbersDescending:()=>m,sum:()=>r});var s=function(t,e,r){if(r||2===arguments.length)for(var n,i=0,s=e.length;i<s;i++)!n&&i in e||(n||(n=Array.prototype.slice.call(e,0,i)),n[i]=e[i]);return t.concat(n||Array.prototype.slice.call(e))};function o(t){var e=s([],t,!0);return i(e),e}function a(t){if(0==t.length)return NaN;var e=o(t);if(e.length%2!=0)return e[Math.floor(e.length/2)];var r=e.length/2,i=r-1;return n([e[r],e[i]])}function u(t){if(0==t.length)return 1/0;var e=t[0];return t.slice(1).forEach(function(t){e=Math.min(e,t)}),e}function h(t){if(0==t.length)return-1/0;var e=t[0];return t.slice(1).forEach(function(t){e=Math.max(e,t)}),e}function c(t,e,r){return t>=e&&t<=r}function l(t,e,r){return t>e&&t<r}function f(t,e,r){return Math.abs(t-e)<=r}function d(t){i(t),t.reverse()}function m(t){var e=o(t);return e.reverse(),e}function p(t){return t*(180/Math.PI)}function y(t){return t*(Math.PI/180)}return e})()},854:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){return"number"==typeof t}function n(t){return r(t)&&Number.isFinite(t)}function i(t){return r(t)&&!Number.isFinite(t)}function s(t){return n(t)&&t>0}function o(t){return n(t)&&t>=0}function a(t){return"string"==typeof t}function u(t){return null==t}function h(t){return"object"==typeof t&&null!==t}function c(t){return Array.isArray(t)}return t.r(e),t.d(e,{isArray:()=>c,isFiniteNumber:()=>n,isNonFiniteNumber:()=>i,isNonNegativeFiniteNumber:()=>o,isNonNullObject:()=>h,isNullish:()=>u,isNumber:()=>r,isPositiveFiniteNumber:()=>s,isString:()=>a}),e})()},30:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){return Math.pow(Math.pow(t.x,2)+Math.pow(t.y,2),.5)}function n(t){return Math.atan2(t.y,t.x)}return t.r(e),t.d(e,{direction:()=>n,magnitude:()=>r}),e})()}},e={};function r(n){var i=e[n];if(void 0!==i)return i.exports;var s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,r),s.exports}r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var n={};return(()=>{"use strict";r.r(n),r.d(n,{areWithin:()=>a,centroid:()=>d,deepCopy:()=>s,direction:()=>l,displaced:()=>h,displacement:()=>u,distance:()=>o,isFinitePoint:()=>i,isPoint:()=>e,midpoint:()=>m});var t=r(854);function e(e){return(0,t.isNonNullObject)(e)&&(0,t.isNumber)(e.x)&&(0,t.isNumber)(e.y)}function i(r){return e(r)&&(0,t.isFiniteNumber)(r.x)&&(0,t.isFiniteNumber)(r.y)}function s(t){return{x:t.x,y:t.y}}function o(t,e){var r=e.x-t.x,n=e.y-t.y;return Math.pow(Math.pow(r,2)+Math.pow(n,2),.5)}function a(t,e,r){return o(t,e)<=r}function u(t,e){return{x:e.x-t.x,y:e.y-t.y}}function h(t,e){return{x:t.x+e.x,y:t.y+e.y}}var c=r(30);function l(t,e){return(0,c.direction)(u(t,e))}var f=r(986);function d(t){return{x:(0,f.mean)(t.map(function(t){return t.x})),y:(0,f.mean)(t.map(function(t){return t.y}))}}function m(t,e){return d([t,e])}})(),n})()},726(t){var e;e=()=>(()=>{var t={854:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){return"number"==typeof t}function n(t){return r(t)&&Number.isFinite(t)}function i(t){return r(t)&&!Number.isFinite(t)}function s(t){return n(t)&&t>0}function o(t){return n(t)&&t>=0}function a(t){return"string"==typeof t}function u(t){return null==t}function h(t){return"object"==typeof t&&null!==t}function c(t){return Array.isArray(t)}function l(t){return c(t)&&0==t.length}function f(t){return c(t)&&t.length>0}function d(t){return c(t)&&t.every(r)}function m(t){return d(t)&&t.length>0}function p(t){return c(t)&&t.every(n)}function y(t){return c(t)&&t.every(i)}function g(t){return c(t)&&t.every(a)}function b(t){return g(t)&&t.length>0}return t.r(e),t.d(e,{isArray:()=>c,isEmptyArray:()=>l,isFiniteNumber:()=>n,isFiniteNumbersArray:()=>p,isNonEmptyArray:()=>f,isNonEmptyNumbersArray:()=>m,isNonEmptyStringsArray:()=>b,isNonFiniteNumber:()=>i,isNonFiniteNumbersArray:()=>y,isNonNegativeFiniteNumber:()=>o,isNonNullObject:()=>h,isNullish:()=>u,isNumber:()=>r,isNumbersArray:()=>d,isPositiveFiniteNumber:()=>s,isString:()=>a,isStringsArray:()=>g}),e})()}},e={};function r(n){var i=e[n];if(void 0!==i)return i.exports;var s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,r),s.exports}r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var n={};return(()=>{"use strict";function t(t,e){for(let[r,n]of Object.entries(e))t.setAttribute(r,n)}r.r(n),r.d(n,{CoordinateSystem:()=>l,HorizontalClientScaling:()=>d,InnerXML:()=>v,OuterXML:()=>S,Scaling:()=>f,VerticalClientScaling:()=>m,assignUUID:()=>c,bringToFront:()=>p,drawOnCanvas:()=>E,isSVGGraphicsElement:()=>N,isSVGGraphicsElementsArray:()=>O,sendToBack:()=>y,setAttributes:()=>t});const e={randomUUID:"undefined"!=typeof crypto&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};var i,s=new Uint8Array(16);function o(){if(!i&&!(i="undefined"!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return i(s)}for(var a=[],u=0;u<256;++u)a.push((u+256).toString(16).slice(1));const h=function(t,r,n){if(e.randomUUID&&!r&&!t)return e.randomUUID();var i=(t=t||{}).random||(t.rng||o)();if(i[6]=15&i[6]|64,i[8]=63&i[8]|128,r){n=n||0;for(var s=0;s<16;++s)r[n+s]=i[s];return r}return function(t,e=0){return(a[t[e+0]]+a[t[e+1]]+a[t[e+2]]+a[t[e+3]]+"-"+a[t[e+4]]+a[t[e+5]]+"-"+a[t[e+6]]+a[t[e+7]]+"-"+a[t[e+8]]+a[t[e+9]]+"-"+a[t[e+10]]+a[t[e+11]]+a[t[e+12]]+a[t[e+13]]+a[t[e+14]]+a[t[e+15]]).toLowerCase()}(i)};function c(t){t.id="uuid-"+h()}class l{constructor(t){this.targetSVGDoc=t}get width(){return this.targetSVGDoc.viewBox.baseVal.width}get height(){return this.targetSVGDoc.viewBox.baseVal.height}get minX(){return this.targetSVGDoc.viewBox.baseVal.x}get maxX(){return this.minX+this.width}get minY(){return this.targetSVGDoc.viewBox.baseVal.y}get maxY(){return this.minY+this.height}get horizontalScaling(){return this.targetSVGDoc.width.baseVal.value/this.width}get verticalScaling(){return this.targetSVGDoc.height.baseVal.value/this.height}setScaling(t){this.targetSVGDoc.setAttribute("width",""+t*this.width),this.targetSVGDoc.setAttribute("height",""+t*this.height)}get clientWidth(){return this.targetSVGDoc.getBoundingClientRect().width}get clientHeight(){return this.targetSVGDoc.getBoundingClientRect().height}get horizontalClientScaling(){return this.clientWidth/this.width}get verticalClientScaling(){return this.clientHeight/this.height}get minClientX(){return this.targetSVGDoc.getBoundingClientRect().x}get minClientY(){return this.targetSVGDoc.getBoundingClientRect().y}fromClientX(t){return this.minX+(t-this.minClientX)/this.horizontalClientScaling}fromClientY(t){return this.minY+(t-this.minClientY)/this.verticalClientScaling}fromClientCoordinates(t,e){return[this.fromClientX(t),this.fromClientY(e)]}fromClientPoint(t){return{x:this.fromClientX(t.x),y:this.fromClientY(t.y)}}toClientX(t){return this.minClientX+this.horizontalClientScaling*(t-this.minX)}toClientY(t){return this.minClientY+this.verticalClientScaling*(t-this.minY)}toClientCoordinates(t,e){return[this.toClientX(t),this.toClientY(e)]}toClientPoint(t){return{x:this.toClientX(t.x),y:this.toClientY(t.y)}}}class f{constructor(t){this.targetSVGDoc=t}set(t){let e=this.targetSVGDoc.viewBox.baseVal;this.targetSVGDoc.setAttribute("width",t*e.width+"px"),this.targetSVGDoc.setAttribute("height",t*e.height+"px")}}class d{constructor(t){this.targetSVGDoc=t}get(){let t=this.targetSVGDoc.getBoundingClientRect(),e=this.targetSVGDoc.viewBox.baseVal;return t.width/e.width}}class m{constructor(t){this.targetSVGDoc=t}get(){let t=this.targetSVGDoc.getBoundingClientRect(),e=this.targetSVGDoc.viewBox.baseVal;return t.height/e.height}}function p(t){let e=t.parentNode;e&&e.appendChild(t)}function y(t){let e=t.parentNode;e&&e.prepend(t)}var g,b=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class v{constructor(t){g.set(this,void 0),function(t,e,r){if("function"==typeof e||!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");e.set(t,r)}(this,g,t)}toString(){return b(this,g,"f").innerHTML}set(t){b(this,g,"f").innerHTML=t}}g=new WeakMap;var w,x=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class S{constructor(t){w.set(this,void 0),function(t,e,r){if("function"==typeof e||!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");e.set(t,r)}(this,w,t)}toString(){return x(this,w,"f").outerHTML}set(t){let e=document.createElementNS("http://www.w3.org/2000/svg","svg");if(e.style.height="0px",document.body.append(e),e.innerHTML=t,!e.firstElementChild)throw new Error("Outer XML must encode an SVG element.");if(e.childNodes.length>1)throw new Error("Outer XML cannot encode multiple DOM nodes.");if(e.firstElementChild.tagName.toLowerCase()!=x(this,w,"f").tagName.toLowerCase())throw new Error("Outer XML must specify an SVG element with the same tag name as the target SVG element.");[...x(this,w,"f").attributes].forEach(t=>x(this,w,"f").removeAttribute(t.name)),[...e.firstElementChild.attributes].forEach(t=>x(this,w,"f").setAttribute(t.name,t.value)),x(this,w,"f").innerHTML=e.firstElementChild.innerHTML,e.remove()}}function N(t){return t instanceof SVGGraphicsElement}w=new WeakMap;var _=r(854);function O(t){return(0,_.isArray)(t)&&t.every(N)}var P=function(t,e,r,n){return new(r||(r=Promise))(function(i,s){function o(t){try{u(n.next(t))}catch(t){s(t)}}function a(t){try{u(n.throw(t))}catch(t){s(t)}}function u(t){var e;t.done?i(t.value):(e=t.value,e instanceof r?e:new r(function(t){t(e)})).then(o,a)}u((n=n.apply(t,e||[])).next())})};function E(t){return P(this,void 0,void 0,function*(){let e=document.createElement("canvas");e.style.position="fixed",e.style.display="none",e.style.pointerEvents="none",document.body.append(e),e.width=t.width.baseVal.value,e.height=t.height.baseVal.value;let r=e.getContext("2d");if(!r)throw new Error("Unable to get canvas context.");let n=(new XMLSerializer).serializeToString(t),i=new Image;return i.src="data:image/svg+xml;charset=utf-8,"+encodeURIComponent(n),yield i.decode(),r.drawImage(i,0,0,t.width.baseVal.value,t.height.baseVal.value),e.remove(),e.style.position="",e.style.display="",e.style.pointerEvents="",e})}})(),n})(),t.exports=e()},731(t){var e;e=()=>(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};t.r(e),t.d(e,{CenterPoint:()=>h});var r,n,i,s,o,a=function(t,e,r,n,i){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!i:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===n?i.call(t,r):i?i.value=r:e.set(t,r),r},u=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class h{constructor(t){r.add(this),n.set(this,void 0),i.set(this,{move:[]}),s.set(this,void 0),a(this,n,t,"f"),a(this,s,new MutationObserver(()=>u(this,r,"m",o).call(this,"move")),"f"),u(this,s,"f").observe(t,{attributes:!0,childList:!0,characterData:!0,subtree:!0})}get x(){let t=u(this,n,"f").getBBox();return t.x+t.width/2}set x(t){let e=this.x,r=[...u(this,n,"f").x.baseVal].map(t=>t.value);0!=r.length||r.push(0),r=r.map(r=>r+(t-e)),u(this,n,"f").setAttribute("x",r.join(", "))}get y(){let t=u(this,n,"f").getBBox();return t.y+t.height/2}set y(t){let e=this.y,r=[...u(this,n,"f").y.baseVal].map(t=>t.value);0!=r.length||r.push(0),r=r.map(r=>r+(t-e)),u(this,n,"f").setAttribute("y",r.join(", "))}addEventListener(t,e){u(this,i,"f")[t].push(e)}removeEventListener(t,e){u(this,i,"f")[t]=u(this,i,"f")[t].filter(t=>t!==e)}}return n=new WeakMap,i=new WeakMap,s=new WeakMap,r=new WeakSet,o=function(t){u(this,i,"f")[t].forEach(t=>t())},e})(),t.exports=e()},854(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){return"number"==typeof t}function n(t){return r(t)&&Number.isFinite(t)}function i(t){return r(t)&&!Number.isFinite(t)}function s(t){return n(t)&&t>0}function o(t){return n(t)&&t>=0}function a(t){return"string"==typeof t}function u(t){return null==t}function h(t){return"object"==typeof t&&null!==t}function c(t){return Array.isArray(t)}function l(t){return c(t)&&0==t.length}function f(t){return c(t)&&t.length>0}function d(t){return c(t)&&t.every(r)}function m(t){return d(t)&&t.length>0}function p(t){return c(t)&&t.every(n)}function y(t){return c(t)&&t.every(i)}function g(t){return c(t)&&t.every(a)}function b(t){return g(t)&&t.length>0}return t.r(e),t.d(e,{isArray:()=>c,isEmptyArray:()=>l,isFiniteNumber:()=>n,isFiniteNumbersArray:()=>p,isNonEmptyArray:()=>f,isNonEmptyNumbersArray:()=>m,isNonEmptyStringsArray:()=>b,isNonFiniteNumber:()=>i,isNonFiniteNumbersArray:()=>y,isNonNegativeFiniteNumber:()=>o,isNonNullObject:()=>h,isNullish:()=>u,isNumber:()=>r,isNumbersArray:()=>d,isPositiveFiniteNumber:()=>s,isString:()=>a,isStringsArray:()=>g}),e})()}},e={};function r(n){var i=e[n];if(void 0!==i)return i.exports;var s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,r),s.exports}r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var n={};return(()=>{"use strict";r.r(n),r.d(n,{Numbering:()=>O,NumberingLine:()=>B});var t,e=r(726),i=r(731),s=r(277),o=r(725),a=r(854),u=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class h{constructor(e){if(t.set(this,void 0),!(0,a.isNonNullObject)(e))throw new Error("Saved numberings must be non-null objects.");!function(t,e,r){if("function"==typeof e||!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");e.set(t,r)}(this,t,e)}get id(){if((0,a.isString)(u(this,t,"f").id))return u(this,t,"f").id;if((0,a.isString)(u(this,t,"f").textId))return u(this,t,"f").textId;throw new Error("Unable to find the ID of the saved numbering.")}get ownerID(){if((0,a.isString)(u(this,t,"f").ownerID))return u(this,t,"f").ownerID;throw new Error("Unable to find the owner ID of the saved numbering.")}get displacement(){return u(this,t,"f").displacement}}t=new WeakMap;var c,l,f,d,m,p,y,g,b,v,w,x,S,N=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)},_=function(t,e,r,n,i){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!i:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===n?i.call(t,r):i?i.value=r:e.set(t,r),r};class O{static numbering(t,r){let n=document.createElementNS("http://www.w3.org/2000/svg","text");(0,e.assignUUID)(n),n.textContent=`${r}`;let i=new O(n,t);return i.setAttributes(O.defaultValues.attributes),i.displacement.magnitude=0,i}constructor(t,e){c.add(this),this.domNode=t,this.owner=e,l.set(this,{change:[]}),f.set(this,void 0),this.centerPoint=new i.CenterPoint(t),t.dataset.displacement||(t.dataset.displacement=JSON.stringify((0,o.displacement)(e.centerPoint,this.centerPoint))),e.centerPoint.addEventListener("move",()=>N(this,c,"m",d).call(this)),_(this,f,new MutationObserver(()=>N(this,c,"m",S).call(this,"change")),"f"),N(this,f,"f").observe(t,{attributes:!0,characterData:!0,childList:!0,subtree:!0})}get id(){return this.domNode.id}hasAttribute(t){return this.domNode.hasAttribute(t)}getAttribute(t){return this.domNode.getAttribute(t)}setAttribute(t,e){this.domNode.setAttribute(t,e)}setAttributes(t){Object.entries(t).forEach(([t,e])=>this.setAttribute(t,e))}removeAttribute(t){this.domNode.removeAttribute(t)}get textContent(){return this.domNode.textContent}set textContent(t){this.domNode.textContent=t}get number(){return Number.parseFloat(this.textContent)}set number(t){this.textContent=`${t}`}get displacement(){const t=()=>N(this,c,"a",m),e=t=>{_(this,c,t,"a",p)},r=()=>N(this,c,"a",y),n=t=>{_(this,c,t,"a",g)},i=()=>N(this,c,"a",b),s=t=>{_(this,c,t,"a",v)},o=()=>N(this,c,"a",w),a=t=>{_(this,c,t,"a",x)};return{get x(){return t()},set x(t){e(t)},get y(){return r()},set y(t){n(t)},get magnitude(){return i()},set magnitude(t){s(t)},get direction(){return o()},set direction(t){a(t)}}}addEventListener(t,e){N(this,l,"f")[t].push(e)}removeEventListener(t,e){N(this,l,"f")[t]=N(this,l,"f")[t].filter(t=>t!==e)}serialized(){return{id:this.id,ownerID:this.owner.id}}static deserialized(t,e){let r=new h(t),n=e.domNode.querySelector("#"+r.id);if(!n)throw new Error("Numbering DOM node not found.");if(!(n instanceof SVGTextElement))throw new Error("Numbering DOM node must be an SVG text element.");let i=e.bases.find(t=>t.id===r.ownerID);if(!i)throw new Error("Unable to find numbering owner.");let s=new O(n,i);return(0,o.isPoint)(r.displacement)&&(s.displacement.x=r.displacement.x,s.displacement.y=r.displacement.y),s}}l=new WeakMap,f=new WeakMap,c=new WeakSet,d=function(){this.centerPoint.x=this.owner.centerPoint.x+N(this,c,"a",m),this.centerPoint.y=this.owner.centerPoint.y+N(this,c,"a",y)},m=function(){if(!this.domNode.dataset.displacement)return 0;let t;try{t=JSON.parse(this.domNode.dataset.displacement)}catch(t){return 0}return(0,o.isFinitePoint)(t)?t.x:0},p=function(t){this.domNode.dataset.displacement=JSON.stringify({x:t,y:N(this,c,"a",y)}),N(this,c,"m",d).call(this)},y=function(){if(!this.domNode.dataset.displacement)return 0;let t;try{t=JSON.parse(this.domNode.dataset.displacement)}catch(t){return 0}return(0,o.isFinitePoint)(t)?t.y:0},g=function(t){this.domNode.dataset.displacement=JSON.stringify({x:N(this,c,"a",m),y:t}),N(this,c,"m",d).call(this)},b=function(){return s.Vector.matching({x:N(this,c,"a",m),y:N(this,c,"a",y)}).magnitude},v=function(t){let e=s.Vector.matching({x:N(this,c,"a",m),y:N(this,c,"a",y)});e.magnitude=t,this.domNode.dataset.displacement=JSON.stringify({x:e.x,y:e.y}),N(this,c,"m",d).call(this)},w=function(){return s.Vector.matching({x:N(this,c,"a",m),y:N(this,c,"a",y)}).direction},x=function(t){let e=s.Vector.matching({x:N(this,c,"a",m),y:N(this,c,"a",y)});e.direction=t,this.domNode.dataset.displacement=JSON.stringify({x:e.x,y:e.y}),N(this,c,"m",d).call(this)},S=function(t){N(this,l,"f")[t].forEach(t=>t())},O.defaultValues={attributes:{"font-family":"Arial","font-size":"8","font-weight":"400",fill:"#808080"}};var P,E=r(645),M=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class A{constructor(t){if(P.set(this,void 0),!(0,a.isNonNullObject)(t))throw new Error("Saved numbering lines must be non-null objects.");!function(t,e,r){if("function"==typeof e||!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");e.set(t,r)}(this,P,t)}get id(){if((0,a.isString)(M(this,P,"f").id))return M(this,P,"f").id;if((0,a.isString)(M(this,P,"f").lineId))return M(this,P,"f").lineId;throw new Error("Unable to find saved numbering line ID.")}get ownerID(){if((0,a.isString)(M(this,P,"f").ownerID))return M(this,P,"f").ownerID;if((0,a.isString)(M(this,P,"f").textId))return M(this,P,"f").textId;throw new Error("Unable to find saved numbering line owner ID.")}get basePadding(){return M(this,P,"f").basePadding}get textPadding(){return void 0!==M(this,P,"f").numberingPadding?M(this,P,"f").numberingPadding:M(this,P,"f").textPadding}}P=new WeakMap;var T,j,C,L,k,D,I=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)},F=function(t,e,r,n,i){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!i:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===n?i.call(t,r):i?i.value=r:e.set(t,r),r};class B{static connecting(t){let r=document.createElementNS("http://www.w3.org/2000/svg","line");(0,e.assignUUID)(r),r.setAttribute("x1",`${t.owner.centerPoint.x}`),r.setAttribute("y1",`${t.owner.centerPoint.y}`),r.setAttribute("x2",`${t.centerPoint.x}`),r.setAttribute("y2",`${t.centerPoint.y}`);let n=new B(r,t);return n.set(B.defaultValues),n}static unpadded(t){let e=B.connecting(t);return e.basePadding=0,e.textPadding=0,e}constructor(t,e){T.add(this),this.domNode=t,this.owner=e,t.dataset.basePadding||(t.dataset.basePadding=`${(0,o.distance)(e.owner.centerPoint,this.point1)}`);let r=E.Box.matching(e.domNode.getBBox());t.dataset.textPadding||(t.dataset.textPadding=`${(0,o.distance)(this.point2,r.peripheralPoint(e.displacement.direction+Math.PI))}`),e.centerPoint.addEventListener("move",()=>I(this,T,"m",D).call(this)),e.owner.centerPoint.addEventListener("move",()=>I(this,T,"m",D).call(this))}get id(){return this.domNode.id}hasAttribute(t){return this.domNode.hasAttribute(t)}getAttribute(t){return this.domNode.getAttribute(t)}setAttribute(t,e){this.domNode.setAttribute(t,e)}setAttributes(t){Object.entries(t).forEach(([t,e])=>this.setAttribute(t,e))}removeAttribute(t){this.domNode.removeAttribute(t)}get x1(){return this.domNode.x1.baseVal.value}get y1(){return this.domNode.y1.baseVal.value}get point1(){return{x:this.x1,y:this.y1}}get x2(){return this.domNode.x2.baseVal.value}get y2(){return this.domNode.y2.baseVal.value}get point2(){return{x:this.x2,y:this.y2}}get length(){return(0,o.distance)(this.point1,this.point2)}set length(t){let e=E.Box.matching(this.owner.domNode.getBBox());this.owner.displacement.magnitude=this.basePadding+t+this.textPadding+(0,o.distance)(this.owner.centerPoint,e.peripheralPoint(this.owner.displacement.direction+Math.PI))}get direction(){return(0,o.direction)(this.point1,this.point2)}set direction(t){let e=this.length;this.owner.displacement.direction=t,this.length=e}get basePadding(){return I(this,T,"a",j)}set basePadding(t){F(this,T,t,"a",C)}get textPadding(){return I(this,T,"a",L)}set textPadding(t){F(this,T,t,"a",k)}set(t){!t.attributes||this.setAttributes(t.attributes),!(0,a.isNumber)(t.basePadding)||(this.basePadding=t.basePadding),!(0,a.isNumber)(t.textPadding)||(this.textPadding=t.textPadding)}serialized(){return{id:this.id,ownerID:this.owner.id}}static deserialized(t,e){let r=new A(t),n=e.domNode.querySelector("#"+r.id);if(!n)throw new Error("Numbering line DOM node not found.");if(!(n instanceof SVGLineElement))throw new Error("Numbering line DOM node must be an SVG line element.");let i=e.numberings.find(t=>t.id===r.ownerID);if(!i)throw new Error("Numbering line owner not found.");let s=new B(n,i);return(0,a.isNumber)(r.basePadding)&&(s.basePadding=r.basePadding),(0,a.isNumber)(r.textPadding)&&(s.textPadding=r.textPadding),s}}T=new WeakSet,j=function(){if(!this.domNode.dataset.basePadding)return 0;let t=Number.parseFloat(this.domNode.dataset.basePadding);return Number.isFinite(t)?t:0},C=function(t){this.domNode.dataset.basePadding=`${t}`,I(this,T,"m",D).call(this)},L=function(){if(!this.domNode.dataset.textPadding)return 0;let t=Number.parseFloat(this.domNode.dataset.textPadding);return Number.isFinite(t)?t:0},k=function(t){this.domNode.dataset.textPadding=`${t}`,I(this,T,"m",D).call(this)},D=function(){let t=this.owner.displacement.direction;this.domNode.setAttribute("x1",`${this.owner.owner.centerPoint.x+I(this,T,"a",j)*Math.cos(t)}`),this.domNode.setAttribute("y1",`${this.owner.owner.centerPoint.y+I(this,T,"a",j)*Math.sin(t)}`);let e=E.Box.matching(this.owner.domNode.getBBox()).peripheralPoint(t+Math.PI);this.domNode.setAttribute("x2",`${e.x+I(this,T,"a",L)*Math.cos(t+Math.PI)}`),this.domNode.setAttribute("y2",`${e.y+I(this,T,"a",L)*Math.sin(t+Math.PI)}`)},B.defaultValues={attributes:{stroke:"#808080","stroke-width":"1","stroke-opacity":"1"},basePadding:5,textPadding:1}})(),n})(),t.exports=e()},775(t){var e;e=()=>(()=>{var t={726:function(t){var e;e=()=>(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t,e){for(let[r,n]of Object.entries(e))t.setAttribute(r,n)}t.r(e),t.d(e,{CoordinateSystem:()=>l,HorizontalClientScaling:()=>d,InnerXML:()=>v,OuterXML:()=>S,Scaling:()=>f,VerticalClientScaling:()=>m,assignUUID:()=>c,bringToFront:()=>p,sendToBack:()=>y,setAttributes:()=>r});const n={randomUUID:"undefined"!=typeof crypto&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};var i,s=new Uint8Array(16);function o(){if(!i&&!(i="undefined"!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return i(s)}for(var a=[],u=0;u<256;++u)a.push((u+256).toString(16).slice(1));const h=function(t,e,r){if(n.randomUUID&&!e&&!t)return n.randomUUID();var i=(t=t||{}).random||(t.rng||o)();if(i[6]=15&i[6]|64,i[8]=63&i[8]|128,e){r=r||0;for(var s=0;s<16;++s)e[r+s]=i[s];return e}return function(t,e=0){return(a[t[e+0]]+a[t[e+1]]+a[t[e+2]]+a[t[e+3]]+"-"+a[t[e+4]]+a[t[e+5]]+"-"+a[t[e+6]]+a[t[e+7]]+"-"+a[t[e+8]]+a[t[e+9]]+"-"+a[t[e+10]]+a[t[e+11]]+a[t[e+12]]+a[t[e+13]]+a[t[e+14]]+a[t[e+15]]).toLowerCase()}(i)};function c(t){t.id="uuid-"+h()}class l{constructor(t){this.targetSVGDoc=t}get width(){return this.targetSVGDoc.viewBox.baseVal.width}get height(){return this.targetSVGDoc.viewBox.baseVal.height}get minX(){return this.targetSVGDoc.viewBox.baseVal.x}get maxX(){return this.minX+this.width}get minY(){return this.targetSVGDoc.viewBox.baseVal.y}get maxY(){return this.minY+this.height}get horizontalScaling(){return this.targetSVGDoc.width.baseVal.value/this.width}get verticalScaling(){return this.targetSVGDoc.height.baseVal.value/this.height}setScaling(t){this.targetSVGDoc.setAttribute("width",""+t*this.width),this.targetSVGDoc.setAttribute("height",""+t*this.height)}get clientWidth(){return this.targetSVGDoc.getBoundingClientRect().width}get clientHeight(){return this.targetSVGDoc.getBoundingClientRect().height}get horizontalClientScaling(){return this.clientWidth/this.width}get verticalClientScaling(){return this.clientHeight/this.height}get minClientX(){return this.targetSVGDoc.getBoundingClientRect().x}get minClientY(){return this.targetSVGDoc.getBoundingClientRect().y}fromClientX(t){return this.minX+(t-this.minClientX)/this.horizontalClientScaling}fromClientY(t){return this.minY+(t-this.minClientY)/this.verticalClientScaling}fromClientCoordinates(t,e){return[this.fromClientX(t),this.fromClientY(e)]}fromClientPoint(t){return{x:this.fromClientX(t.x),y:this.fromClientY(t.y)}}toClientX(t){return this.minClientX+this.horizontalClientScaling*(t-this.minX)}toClientY(t){return this.minClientY+this.verticalClientScaling*(t-this.minY)}toClientCoordinates(t,e){return[this.toClientX(t),this.toClientY(e)]}toClientPoint(t){return{x:this.toClientX(t.x),y:this.toClientY(t.y)}}}class f{constructor(t){this.targetSVGDoc=t}set(t){let e=this.targetSVGDoc.viewBox.baseVal;this.targetSVGDoc.setAttribute("width",t*e.width+"px"),this.targetSVGDoc.setAttribute("height",t*e.height+"px")}}class d{constructor(t){this.targetSVGDoc=t}get(){let t=this.targetSVGDoc.getBoundingClientRect(),e=this.targetSVGDoc.viewBox.baseVal;return t.width/e.width}}class m{constructor(t){this.targetSVGDoc=t}get(){let t=this.targetSVGDoc.getBoundingClientRect(),e=this.targetSVGDoc.viewBox.baseVal;return t.height/e.height}}function p(t){let e=t.parentNode;e&&e.appendChild(t)}function y(t){let e=t.parentNode;e&&e.prepend(t)}var g,b=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class v{constructor(t){g.set(this,void 0),function(t,e,r){if("function"==typeof e||!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");e.set(t,r)}(this,g,t)}toString(){return b(this,g,"f").innerHTML}set(t){b(this,g,"f").innerHTML=t}}g=new WeakMap;var w,x=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class S{constructor(t){w.set(this,void 0),function(t,e,r){if("function"==typeof e||!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");e.set(t,r)}(this,w,t)}toString(){return x(this,w,"f").outerHTML}set(t){let e=document.createElementNS("http://www.w3.org/2000/svg","svg");if(e.style.height="0px",document.body.append(e),e.innerHTML=t,!e.firstElementChild)throw new Error("Outer XML must encode an SVG element.");if(e.childNodes.length>1)throw new Error("Outer XML cannot encode multiple DOM nodes.");if(e.firstElementChild.tagName.toLowerCase()!=x(this,w,"f").tagName.toLowerCase())throw new Error("Outer XML must specify an SVG element with the same tag name as the target SVG element.");[...x(this,w,"f").attributes].forEach(t=>x(this,w,"f").removeAttribute(t.name)),[...e.firstElementChild.attributes].forEach(t=>x(this,w,"f").setAttribute(t.name,t.value)),x(this,w,"f").innerHTML=e.firstElementChild.innerHTML,e.remove()}}return w=new WeakMap,e})(),t.exports=e()},854:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){return"number"==typeof t}function n(t){return r(t)&&Number.isFinite(t)}function i(t){return r(t)&&!Number.isFinite(t)}function s(t){return n(t)&&t>0}function o(t){return n(t)&&t>=0}function a(t){return"string"==typeof t}function u(t){return null==t}function h(t){return"object"==typeof t&&null!==t}function c(t){return Array.isArray(t)}function l(t){return c(t)&&0==t.length}function f(t){return c(t)&&t.length>0}function d(t){return c(t)&&t.every(r)}function m(t){return d(t)&&t.length>0}function p(t){return c(t)&&t.every(n)}function y(t){return c(t)&&t.every(i)}function g(t){return c(t)&&t.every(a)}function b(t){return g(t)&&t.length>0}return t.r(e),t.d(e,{isArray:()=>c,isEmptyArray:()=>l,isFiniteNumber:()=>n,isFiniteNumbersArray:()=>p,isNonEmptyArray:()=>f,isNonEmptyNumbersArray:()=>m,isNonEmptyStringsArray:()=>b,isNonFiniteNumber:()=>i,isNonFiniteNumbersArray:()=>y,isNonNegativeFiniteNumber:()=>o,isNonNullObject:()=>h,isNullish:()=>u,isNumber:()=>r,isNumbersArray:()=>d,isPositiveFiniteNumber:()=>s,isString:()=>a,isStringsArray:()=>g}),e})()}},e={};function r(n){var i=e[n];if(void 0!==i)return i.exports;var s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,r),s.exports}r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var n={};return(()=>{"use strict";r.r(n),r.d(n,{BaseOutline:()=>i});var t=r(726),e=r(854);class i{static outlining(e){let r=document.createElementNS("http://www.w3.org/2000/svg","circle");(0,t.assignUUID)(r),r.setAttribute("cx",`${e.centerPoint.x}`),r.setAttribute("cy",`${e.centerPoint.y}`);let n=new i(r,e);return n.set(i.defaultValues.circle),n}static deserialized(t,r){var n;if(!(0,e.isNonNullObject)(t))throw new Error("Saved base outline must be an object.");let s=null!==(n=t.id)&&void 0!==n?n:t.circleId;if(!s)throw new Error("Base outline ID is missing.");if(!(0,e.isString)(s))throw new Error("Base outline ID must be a string.");let o=r.domNode.querySelector("#"+s);if(!o)throw new Error("Unable to find base outline DOM node.");if(!(o instanceof SVGCircleElement))throw new Error("Base outline DOM node must be an SVG circle element.");let a=t.ownerID;if(!a)throw new Error("Missing base outline owner ID.");if(!(0,e.isString)(a))throw new Error("Base outline owner ID must be a string.");let u=[...r.bases].find(t=>t.id===a);if(!u)throw new Error("Unable to find base outline owner.");return new i(o,u)}constructor(t,e){this.domNode=t,this.owner=e,e.centerPoint.addEventListener("move",()=>{t.setAttribute("cx",`${e.centerPoint.x}`),t.setAttribute("cy",`${e.centerPoint.y}`)})}serialized(){let t=this.id;if(!t)throw new Error("Base outline ID is falsy.");let e=this.owner.id;if(!e)throw new Error("Base outline owner ID is falsy.");return{id:t,ownerID:e}}get id(){return this.domNode.id}getAttribute(t){return this.domNode.getAttribute(t)}setAttribute(t,e){this.domNode.setAttribute(t,e)}setAttributes(e){(0,t.setAttributes)(this.domNode,e)}set(t){t.attributes&&this.setAttributes(t.attributes)}}i.defaultValues={circle:{attributes:{r:"5.5",stroke:"#000000","stroke-width":"0","stroke-opacity":"1",fill:"#00ffff","fill-opacity":"1"}}}})(),n})(),t.exports=e()},358(t){var e;e=()=>(()=>{var t={731(t){var e;e=()=>(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};t.r(e),t.d(e,{CenterPoint:()=>h});var r,n,i,s,o,a=function(t,e,r,n,i){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!i:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===n?i.call(t,r):i?i.value=r:e.set(t,r),r},u=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class h{constructor(t){r.add(this),n.set(this,void 0),i.set(this,{move:[]}),s.set(this,void 0),a(this,n,t,"f"),a(this,s,new MutationObserver(()=>u(this,r,"m",o).call(this,"move")),"f"),u(this,s,"f").observe(t,{attributes:!0,childList:!0,characterData:!0,subtree:!0})}get x(){let t=u(this,n,"f").getBBox();return t.x+t.width/2}set x(t){let e=this.x,r=[...u(this,n,"f").x.baseVal].map(t=>t.value);0!=r.length||r.push(0),r=r.map(r=>r+(t-e)),u(this,n,"f").setAttribute("x",r.join(", "))}get y(){let t=u(this,n,"f").getBBox();return t.y+t.height/2}set y(t){let e=this.y,r=[...u(this,n,"f").y.baseVal].map(t=>t.value);0!=r.length||r.push(0),r=r.map(r=>r+(t-e)),u(this,n,"f").setAttribute("y",r.join(", "))}addEventListener(t,e){u(this,i,"f")[t].push(e)}removeEventListener(t,e){u(this,i,"f")[t]=u(this,i,"f")[t].filter(t=>t!==e)}}return n=new WeakMap,i=new WeakMap,s=new WeakMap,r=new WeakSet,o=function(t){u(this,i,"f")[t].forEach(t=>t())},e})(),t.exports=e()},726(t){var e;e=()=>(()=>{var t={854:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){return"number"==typeof t}function n(t){return r(t)&&Number.isFinite(t)}function i(t){return r(t)&&!Number.isFinite(t)}function s(t){return n(t)&&t>0}function o(t){return n(t)&&t>=0}function a(t){return"string"==typeof t}function u(t){return null==t}function h(t){return"object"==typeof t&&null!==t}function c(t){return Array.isArray(t)}function l(t){return c(t)&&0==t.length}function f(t){return c(t)&&t.length>0}function d(t){return c(t)&&t.every(r)}function m(t){return d(t)&&t.length>0}function p(t){return c(t)&&t.every(n)}function y(t){return c(t)&&t.every(i)}function g(t){return c(t)&&t.every(a)}function b(t){return g(t)&&t.length>0}return t.r(e),t.d(e,{isArray:()=>c,isEmptyArray:()=>l,isFiniteNumber:()=>n,isFiniteNumbersArray:()=>p,isNonEmptyArray:()=>f,isNonEmptyNumbersArray:()=>m,isNonEmptyStringsArray:()=>b,isNonFiniteNumber:()=>i,isNonFiniteNumbersArray:()=>y,isNonNegativeFiniteNumber:()=>o,isNonNullObject:()=>h,isNullish:()=>u,isNumber:()=>r,isNumbersArray:()=>d,isPositiveFiniteNumber:()=>s,isString:()=>a,isStringsArray:()=>g}),e})()}},e={};function r(n){var i=e[n];if(void 0!==i)return i.exports;var s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,r),s.exports}r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var n={};return(()=>{"use strict";function t(t,e){for(let[r,n]of Object.entries(e))t.setAttribute(r,n)}r.r(n),r.d(n,{CoordinateSystem:()=>l,HorizontalClientScaling:()=>d,InnerXML:()=>v,OuterXML:()=>S,Scaling:()=>f,VerticalClientScaling:()=>m,assignUUID:()=>c,bringToFront:()=>p,drawOnCanvas:()=>E,isSVGGraphicsElement:()=>N,isSVGGraphicsElementsArray:()=>O,sendToBack:()=>y,setAttributes:()=>t});const e={randomUUID:"undefined"!=typeof crypto&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};var i,s=new Uint8Array(16);function o(){if(!i&&!(i="undefined"!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return i(s)}for(var a=[],u=0;u<256;++u)a.push((u+256).toString(16).slice(1));const h=function(t,r,n){if(e.randomUUID&&!r&&!t)return e.randomUUID();var i=(t=t||{}).random||(t.rng||o)();if(i[6]=15&i[6]|64,i[8]=63&i[8]|128,r){n=n||0;for(var s=0;s<16;++s)r[n+s]=i[s];return r}return function(t,e=0){return(a[t[e+0]]+a[t[e+1]]+a[t[e+2]]+a[t[e+3]]+"-"+a[t[e+4]]+a[t[e+5]]+"-"+a[t[e+6]]+a[t[e+7]]+"-"+a[t[e+8]]+a[t[e+9]]+"-"+a[t[e+10]]+a[t[e+11]]+a[t[e+12]]+a[t[e+13]]+a[t[e+14]]+a[t[e+15]]).toLowerCase()}(i)};function c(t){t.id="uuid-"+h()}class l{constructor(t){this.targetSVGDoc=t}get width(){return this.targetSVGDoc.viewBox.baseVal.width}get height(){return this.targetSVGDoc.viewBox.baseVal.height}get minX(){return this.targetSVGDoc.viewBox.baseVal.x}get maxX(){return this.minX+this.width}get minY(){return this.targetSVGDoc.viewBox.baseVal.y}get maxY(){return this.minY+this.height}get horizontalScaling(){return this.targetSVGDoc.width.baseVal.value/this.width}get verticalScaling(){return this.targetSVGDoc.height.baseVal.value/this.height}setScaling(t){this.targetSVGDoc.setAttribute("width",""+t*this.width),this.targetSVGDoc.setAttribute("height",""+t*this.height)}get clientWidth(){return this.targetSVGDoc.getBoundingClientRect().width}get clientHeight(){return this.targetSVGDoc.getBoundingClientRect().height}get horizontalClientScaling(){return this.clientWidth/this.width}get verticalClientScaling(){return this.clientHeight/this.height}get minClientX(){return this.targetSVGDoc.getBoundingClientRect().x}get minClientY(){return this.targetSVGDoc.getBoundingClientRect().y}fromClientX(t){return this.minX+(t-this.minClientX)/this.horizontalClientScaling}fromClientY(t){return this.minY+(t-this.minClientY)/this.verticalClientScaling}fromClientCoordinates(t,e){return[this.fromClientX(t),this.fromClientY(e)]}fromClientPoint(t){return{x:this.fromClientX(t.x),y:this.fromClientY(t.y)}}toClientX(t){return this.minClientX+this.horizontalClientScaling*(t-this.minX)}toClientY(t){return this.minClientY+this.verticalClientScaling*(t-this.minY)}toClientCoordinates(t,e){return[this.toClientX(t),this.toClientY(e)]}toClientPoint(t){return{x:this.toClientX(t.x),y:this.toClientY(t.y)}}}class f{constructor(t){this.targetSVGDoc=t}set(t){let e=this.targetSVGDoc.viewBox.baseVal;this.targetSVGDoc.setAttribute("width",t*e.width+"px"),this.targetSVGDoc.setAttribute("height",t*e.height+"px")}}class d{constructor(t){this.targetSVGDoc=t}get(){let t=this.targetSVGDoc.getBoundingClientRect(),e=this.targetSVGDoc.viewBox.baseVal;return t.width/e.width}}class m{constructor(t){this.targetSVGDoc=t}get(){let t=this.targetSVGDoc.getBoundingClientRect(),e=this.targetSVGDoc.viewBox.baseVal;return t.height/e.height}}function p(t){let e=t.parentNode;e&&e.appendChild(t)}function y(t){let e=t.parentNode;e&&e.prepend(t)}var g,b=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class v{constructor(t){g.set(this,void 0),function(t,e,r){if("function"==typeof e||!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");e.set(t,r)}(this,g,t)}toString(){return b(this,g,"f").innerHTML}set(t){b(this,g,"f").innerHTML=t}}g=new WeakMap;var w,x=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class S{constructor(t){w.set(this,void 0),function(t,e,r){if("function"==typeof e||!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");e.set(t,r)}(this,w,t)}toString(){return x(this,w,"f").outerHTML}set(t){let e=document.createElementNS("http://www.w3.org/2000/svg","svg");if(e.style.height="0px",document.body.append(e),e.innerHTML=t,!e.firstElementChild)throw new Error("Outer XML must encode an SVG element.");if(e.childNodes.length>1)throw new Error("Outer XML cannot encode multiple DOM nodes.");if(e.firstElementChild.tagName.toLowerCase()!=x(this,w,"f").tagName.toLowerCase())throw new Error("Outer XML must specify an SVG element with the same tag name as the target SVG element.");[...x(this,w,"f").attributes].forEach(t=>x(this,w,"f").removeAttribute(t.name)),[...e.firstElementChild.attributes].forEach(t=>x(this,w,"f").setAttribute(t.name,t.value)),x(this,w,"f").innerHTML=e.firstElementChild.innerHTML,e.remove()}}function N(t){return t instanceof SVGGraphicsElement}w=new WeakMap;var _=r(854);function O(t){return(0,_.isArray)(t)&&t.every(N)}var P=function(t,e,r,n){return new(r||(r=Promise))(function(i,s){function o(t){try{u(n.next(t))}catch(t){s(t)}}function a(t){try{u(n.throw(t))}catch(t){s(t)}}function u(t){var e;t.done?i(t.value):(e=t.value,e instanceof r?e:new r(function(t){t(e)})).then(o,a)}u((n=n.apply(t,e||[])).next())})};function E(t){return P(this,void 0,void 0,function*(){let e=document.createElement("canvas");e.style.position="fixed",e.style.display="none",e.style.pointerEvents="none",document.body.append(e),e.width=t.width.baseVal.value,e.height=t.height.baseVal.value;let r=e.getContext("2d");if(!r)throw new Error("Unable to get canvas context.");let n=(new XMLSerializer).serializeToString(t),i=new Image;return i.src="data:image/svg+xml;charset=utf-8,"+encodeURIComponent(n),yield i.decode(),r.drawImage(i,0,0,t.width.baseVal.value,t.height.baseVal.value),e.remove(),e.style.position="",e.style.display="",e.style.pointerEvents="",e})}})(),n})(),t.exports=e()},986(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){var e=0;return t.forEach(function(t){return e+=t}),e}function n(t){return r(t)/t.length}function i(t){t.sort(function(t,e){return t-e})}t.r(e),t.d(e,{areWithin:()=>d,average:()=>n,clamp:()=>f,degrees:()=>g,flipAway:()=>w,isBetween:()=>c,isBetweenExclusive:()=>l,isBetweenInclusive:()=>c,max:()=>h,mean:()=>n,median:()=>a,min:()=>u,normalizeAngle:()=>v,radians:()=>b,round:()=>y,sortNumbers:()=>i,sortNumbersAscending:()=>i,sortNumbersDescending:()=>m,sortedNumbers:()=>o,sortedNumbersAscending:()=>o,sortedNumbersDescending:()=>p,sum:()=>r});var s=function(t,e,r){if(r||2===arguments.length)for(var n,i=0,s=e.length;i<s;i++)!n&&i in e||(n||(n=Array.prototype.slice.call(e,0,i)),n[i]=e[i]);return t.concat(n||Array.prototype.slice.call(e))};function o(t){var e=s([],t,!0);return i(e),e}function a(t){if(0==t.length)return NaN;var e=o(t);if(e.length%2!=0)return e[Math.floor(e.length/2)];var r=e.length/2,i=r-1;return n([e[r],e[i]])}function u(t){if(0==t.length)return 1/0;var e=t[0];return t.slice(1).forEach(function(t){e=Math.min(e,t)}),e}function h(t){if(0==t.length)return-1/0;var e=t[0];return t.slice(1).forEach(function(t){e=Math.max(e,t)}),e}function c(t,e,r){return t>=e&&t<=r}function l(t,e,r){return t>e&&t<r}function f(t,e,r){return t<e?e:t>r?r:t}function d(t,e,r){return Math.abs(t-e)<=r}function m(t){i(t),t.reverse()}function p(t){var e=o(t);return e.reverse(),e}function y(t,e){return Number.parseFloat(t.toFixed(null!=e?e:0))}function g(t){return t*(180/Math.PI)}function b(t){return t*(Math.PI/180)}function v(t,e){void 0===e&&(e=-Math.PI);var r=t-e;return e+((r%=2*Math.PI)>=0?r:r+2*Math.PI)}function w(t,e){var r=(e=v(e,t))-t;return(r<Math.PI/2||r>3*Math.PI/2)&&(t+=Math.PI),t}return e})()},854(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){return"number"==typeof t}function n(t){return r(t)&&Number.isFinite(t)}function i(t){return r(t)&&!Number.isFinite(t)}function s(t){return n(t)&&t>0}function o(t){return n(t)&&t>=0}function a(t){return"string"==typeof t}function u(t){return null==t}function h(t){return"object"==typeof t&&null!==t}function c(t){return Array.isArray(t)}function l(t){return c(t)&&0==t.length}function f(t){return c(t)&&t.length>0}function d(t){return c(t)&&t.every(r)}function m(t){return d(t)&&t.length>0}function p(t){return c(t)&&t.every(n)}function y(t){return c(t)&&t.every(i)}function g(t){return c(t)&&t.every(a)}function b(t){return g(t)&&t.length>0}return t.r(e),t.d(e,{isArray:()=>c,isEmptyArray:()=>l,isFiniteNumber:()=>n,isFiniteNumbersArray:()=>p,isNonEmptyArray:()=>f,isNonEmptyNumbersArray:()=>m,isNonEmptyStringsArray:()=>b,isNonFiniteNumber:()=>i,isNonFiniteNumbersArray:()=>y,isNonNegativeFiniteNumber:()=>o,isNonNullObject:()=>h,isNullish:()=>u,isNumber:()=>r,isNumbersArray:()=>d,isPositiveFiniteNumber:()=>s,isString:()=>a,isStringsArray:()=>g}),e})()}};const e={};function r(n){const i=e[n];if(void 0!==i)return i.exports;const s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,r),s.exports}r.d=(t,e)=>{if(Array.isArray(e))for(var n=0;n<e.length;){var i=e[n++],s=e[n++];r.o(t,i)?0===s&&n++:0===s?Object.defineProperty(t,i,{enumerable:!0,value:e[n++]}):Object.defineProperty(t,i,{enumerable:!0,get:s})}else for(var i in e)r.o(e,i)&&!r.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};let n={};return(()=>{"use strict";r.r(n),r.d(n,{BasePair:()=>Rr,Nucleobase:()=>Vr,seqSorted:()=>zr});var t={};r.r(t),r.d(t,{cx:()=>Ft,cy:()=>Bt,height:()=>Rt,rx:()=>Lt,ry:()=>kt,width:()=>Vt,x:()=>Dt,y:()=>It});var e={};r.r(e),r.d(e,{from:()=>Xt,to:()=>Yt});var i={};r.r(i),r.d(i,{MorphArray:()=>Kt,height:()=>ee,width:()=>te,x:()=>Qt,y:()=>Zt});var s={};r.r(s),r.d(s,{array:()=>Ae,clear:()=>Te,move:()=>je,plot:()=>Ce,size:()=>Le});var o={};r.r(o),r.d(o,{amove:()=>ar,ax:()=>sr,ay:()=>or,build:()=>ur,center:()=>ir,cx:()=>rr,cy:()=>nr,length:()=>Qe,move:()=>er,plain:()=>Ke,x:()=>Ze,y:()=>tr});var a={};r.r(a),r.d(a,{dmove:()=>mr,dx:()=>pr,dy:()=>yr,height:()=>gr,move:()=>br,size:()=>vr,width:()=>wr,x:()=>xr,y:()=>Sr});const u={},h=[];function c(t,e){if(Array.isArray(t))for(const r of t)c(r,e);else if("object"!=typeof t)f(Object.getOwnPropertyNames(e)),u[t]=Object.assign(u[t]||{},e);else for(const e in t)c(e,t[e])}function l(t){return u[t]||{}}function f(t){h.push(...t)}function d(t,e){let r;const n=t.length,i=[];for(r=0;r<n;r++)i.push(e(t[r]));return i}function m(t){return t%360*Math.PI/180}function p(t){return t.replace(/([A-Z])/g,function(t,e){return"-"+e.toLowerCase()})}function y(t){return t.charAt(0).toUpperCase()+t.slice(1)}function g(t,e,r,n){return null!=e&&null!=r||(n=n||t.bbox(),null==e?e=n.width/n.height*r:null==r&&(r=n.height/n.width*e)),{width:e,height:r}}function b(t,e){const r=t.origin;let n=null!=t.ox?t.ox:null!=t.originX?t.originX:"center",i=null!=t.oy?t.oy:null!=t.originY?t.originY:"center";null!=r&&([n,i]=Array.isArray(r)?r:"object"==typeof r?[r.x,r.y]:[r,r]);const s="string"==typeof n,o="string"==typeof i;if(s||o){const{height:t,width:r,x:a,y:u}=e.bbox();s&&(n=n.includes("left")?a:n.includes("right")?a+r:a+r/2),o&&(i=i.includes("top")?u:i.includes("bottom")?u+t:u+t/2)}return[n,i]}const v=new Set(["desc","metadata","title"]),w=t=>v.has(t.nodeName),x=(t,e,r={})=>{const n={...e};for(const t in n)n[t].valueOf()===r[t]&&delete n[t];Object.keys(n).length?t.node.setAttribute("data-svgjs",JSON.stringify(n)):(t.node.removeAttribute("data-svgjs"),t.node.removeAttribute("svgjs:data"))},S="http://www.w3.org/2000/svg",N="http://www.w3.org/2000/xmlns/",_="http://www.w3.org/1999/xlink",O={window:"undefined"==typeof window?null:window,document:"undefined"==typeof document?null:document};class P{}const E={},M="___SYMBOL___ROOT___";function A(t,e=S){return O.document.createElementNS(e,t)}function T(t,e=!1){if(t instanceof P)return t;if("object"==typeof t)return L(t);if(null==t)return new E[M];if("string"==typeof t&&"<"!==t.trim().charAt(0))return L(O.document.querySelector(t));const r=e?O.document.createElement("div"):A("svg");return r.innerHTML=t.trim(),t=L(r.firstElementChild),r.removeChild(r.firstElementChild),t}function j(t,e){return e&&(e instanceof O.window.Node||e.ownerDocument&&e instanceof e.ownerDocument.defaultView.Node)?e:A(t)}function C(t){if(!t)return null;if(t.instance instanceof P)return t.instance;if("#document-fragment"===t.nodeName)return new E.Fragment(t);let e=y(t.nodeName||"Dom");return"LinearGradient"===e||"RadialGradient"===e?e="Gradient":E[e]||(e="Dom"),new E[e](t)}let L=C;function k(t,e=t.name,r=!1){return E[e]=t,r&&(E[M]=t),f(Object.getOwnPropertyNames(t.prototype)),t}let D=1e3;function I(t){return"Svgjs"+y(t)+D++}function F(t){for(let e=t.children.length-1;e>=0;e--)F(t.children[e]);return t.id?(t.id=I(t.nodeName),t):t}function B(t,e){let r,n;for(n=(t=Array.isArray(t)?t:[t]).length-1;n>=0;n--)for(r in e)t[n].prototype[r]=e[r]}function V(t){return function(...e){const r=e[e.length-1];return!r||r.constructor!==Object||r instanceof Array?t.apply(this,e):t.apply(this,e.slice(0,-1)).attr(r)}}c("Dom",{siblings:function(){return this.parent().children()},position:function(){return this.parent().index(this)},next:function(){return this.siblings()[this.position()+1]},prev:function(){return this.siblings()[this.position()-1]},forward:function(){const t=this.position();return this.parent().add(this.remove(),t+1),this},backward:function(){const t=this.position();return this.parent().add(this.remove(),t?t-1:0),this},front:function(){return this.parent().add(this.remove()),this},back:function(){return this.parent().add(this.remove(),0),this},before:function(t){(t=T(t)).remove();const e=this.position();return this.parent().add(t,e),this},after:function(t){(t=T(t)).remove();const e=this.position();return this.parent().add(t,e+1),this},insertBefore:function(t){return(t=T(t)).before(this),this},insertAfter:function(t){return(t=T(t)).after(this),this}});const R=/^([+-]?(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?)([a-z%]*)$/i,z=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i,G=/rgb\((\d+),(\d+),(\d+)\)/,U=/(#[a-z_][a-z0-9\-_]*)/i,X=/\)\s*,?\s*/,Y=/\s/g,W=/^#[a-f0-9]{3}$|^#[a-f0-9]{6}$/i,q=/^rgb\(/,H=/^(\s+)?$/,$=/^[+-]?(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,J=/\.(jpg|jpeg|png|gif|svg)(\?[^=]+.*)?/i,K=/[\s,]+/,Q=/[MLHVCSQTAZ]/i;function Z(t){const e=Math.round(t),r=Math.max(0,Math.min(255,e)).toString(16);return 1===r.length?"0"+r:r}function tt(t,e){for(let r=e.length;r--;)if(null==t[e[r]])return!1;return!0}function et(t,e,r){return r<0&&(r+=1),r>1&&(r-=1),r<1/6?t+6*(e-t)*r:r<.5?e:r<2/3?t+(e-t)*(2/3-r)*6:t}c("Dom",{classes:function(){const t=this.attr("class");return null==t?[]:t.trim().split(K)},hasClass:function(t){return-1!==this.classes().indexOf(t)},addClass:function(t){if(!this.hasClass(t)){const e=this.classes();e.push(t),this.attr("class",e.join(" "))}return this},removeClass:function(t){return this.hasClass(t)&&this.attr("class",this.classes().filter(function(e){return e!==t}).join(" ")),this},toggleClass:function(t){return this.hasClass(t)?this.removeClass(t):this.addClass(t)}}),c("Dom",{css:function(t,e){const r={};if(0===arguments.length)return this.node.style.cssText.split(/\s*;\s*/).filter(function(t){return!!t.length}).forEach(function(t){const e=t.split(/\s*:\s*/);r[e[0]]=e[1]}),r;if(arguments.length<2){if(Array.isArray(t)){for(const e of t){const t=e;r[e]=this.node.style.getPropertyValue(t)}return r}if("string"==typeof t)return this.node.style.getPropertyValue(t);if("object"==typeof t)for(const e in t)this.node.style.setProperty(e,null==t[e]||H.test(t[e])?"":t[e])}return 2===arguments.length&&this.node.style.setProperty(t,null==e||H.test(e)?"":e),this},show:function(){return this.css("display","")},hide:function(){return this.css("display","none")},visible:function(){return"none"!==this.css("display")}}),c("Dom",{data:function(t,e,r){if(null==t)return this.data(d(function(t,e){let r;const n=t.length,i=[];for(r=0;r<n;r++)e(t[r])&&i.push(t[r]);return i}(this.node.attributes,t=>0===t.nodeName.indexOf("data-")),t=>t.nodeName.slice(5)));if(t instanceof Array){const e={};for(const r of t)e[r]=this.data(r);return e}if("object"==typeof t)for(e in t)this.data(e,t[e]);else if(arguments.length<2)try{return JSON.parse(this.attr("data-"+t))}catch(e){return this.attr("data-"+t)}else this.attr("data-"+t,null===e?null:!0===r||"string"==typeof e||"number"==typeof e?e:JSON.stringify(e));return this}}),c("Dom",{remember:function(t,e){if("object"==typeof arguments[0])for(const e in t)this.remember(e,t[e]);else{if(1===arguments.length)return this.memory()[t];this.memory()[t]=e}return this},forget:function(){if(0===arguments.length)this._memory={};else for(let t=arguments.length-1;t>=0;t--)delete this.memory()[arguments[t]];return this},memory:function(){return this._memory=this._memory||{}}});class rt{constructor(...t){this.init(...t)}static isColor(t){return t&&(t instanceof rt||this.isRgb(t)||this.test(t))}static isRgb(t){return t&&"number"==typeof t.r&&"number"==typeof t.g&&"number"==typeof t.b}static random(t="vibrant",e){const{random:r,round:n,sin:i,PI:s}=Math;if("vibrant"===t){const t=24*r()+57,e=38*r()+45,n=360*r();return new rt(t,e,n,"lch")}if("sine"===t){const t=n(80*i(2*s*(e=e??r())/.5+.01)+150),o=n(50*i(2*s*e/.5+4.6)+200),a=n(100*i(2*s*e/.5+2.3)+150);return new rt(t,o,a)}if("pastel"===t){const t=8*r()+86,e=17*r()+9,n=360*r();return new rt(t,e,n,"lch")}if("dark"===t){const t=10+10*r(),e=50*r()+86,n=360*r();return new rt(t,e,n,"lch")}if("rgb"===t){const t=255*r(),e=255*r(),n=255*r();return new rt(t,e,n)}if("lab"===t){const t=100*r(),e=256*r()-128,n=256*r()-128;return new rt(t,e,n,"lab")}if("grey"===t){const t=255*r();return new rt(t,t,t)}throw new Error("Unsupported random color mode")}static test(t){return"string"==typeof t&&(W.test(t)||q.test(t))}cmyk(){const{_a:t,_b:e,_c:r}=this.rgb(),[n,i,s]=[t,e,r].map(t=>t/255),o=Math.min(1-n,1-i,1-s);return 1===o?new rt(0,0,0,1,"cmyk"):new rt((1-n-o)/(1-o),(1-i-o)/(1-o),(1-s-o)/(1-o),o,"cmyk")}hsl(){const{_a:t,_b:e,_c:r}=this.rgb(),[n,i,s]=[t,e,r].map(t=>t/255),o=Math.max(n,i,s),a=Math.min(n,i,s),u=(o+a)/2,h=o===a,c=o-a;return new rt(360*(h?0:o===n?((i-s)/c+(i<s?6:0))/6:o===i?((s-n)/c+2)/6:o===s?((n-i)/c+4)/6:0),100*(h?0:u>.5?c/(2-o-a):c/(o+a)),100*u,"hsl")}init(t=0,e=0,r=0,n=0,i="rgb"){if(t=t||0,this.space)for(const t in this.space)delete this[this.space[t]];if("number"==typeof t)i="string"==typeof n?n:i,n="string"==typeof n?0:n,Object.assign(this,{_a:t,_b:e,_c:r,_d:n,space:i});else if(t instanceof Array)this.space=e||("string"==typeof t[3]?t[3]:t[4])||"rgb",Object.assign(this,{_a:t[0],_b:t[1],_c:t[2],_d:t[3]||0});else if(t instanceof Object){const r=function(t,e){const r=tt(t,"rgb")?{_a:t.r,_b:t.g,_c:t.b,_d:0,space:"rgb"}:tt(t,"xyz")?{_a:t.x,_b:t.y,_c:t.z,_d:0,space:"xyz"}:tt(t,"hsl")?{_a:t.h,_b:t.s,_c:t.l,_d:0,space:"hsl"}:tt(t,"lab")?{_a:t.l,_b:t.a,_c:t.b,_d:0,space:"lab"}:tt(t,"lch")?{_a:t.l,_b:t.c,_c:t.h,_d:0,space:"lch"}:tt(t,"cmyk")?{_a:t.c,_b:t.m,_c:t.y,_d:t.k,space:"cmyk"}:{_a:0,_b:0,_c:0,space:"rgb"};return r.space=e||r.space,r}(t,e);Object.assign(this,r)}else if("string"==typeof t)if(q.test(t)){const e=t.replace(Y,""),[r,n,i]=G.exec(e).slice(1,4).map(t=>parseInt(t));Object.assign(this,{_a:r,_b:n,_c:i,_d:0,space:"rgb"})}else{if(!W.test(t))throw Error("Unsupported string format, can't construct Color");{const e=t=>parseInt(t,16),[,r,n,i]=z.exec(function(t){return 4===t.length?["#",t.substring(1,2),t.substring(1,2),t.substring(2,3),t.substring(2,3),t.substring(3,4),t.substring(3,4)].join(""):t}(t)).map(e);Object.assign(this,{_a:r,_b:n,_c:i,_d:0,space:"rgb"})}}const{_a:s,_b:o,_c:a,_d:u}=this,h="rgb"===this.space?{r:s,g:o,b:a}:"xyz"===this.space?{x:s,y:o,z:a}:"hsl"===this.space?{h:s,s:o,l:a}:"lab"===this.space?{l:s,a:o,b:a}:"lch"===this.space?{l:s,c:o,h:a}:"cmyk"===this.space?{c:s,m:o,y:a,k:u}:{};Object.assign(this,h)}lab(){const{x:t,y:e,z:r}=this.xyz();return new rt(116*e-16,500*(t-e),200*(e-r),"lab")}lch(){const{l:t,a:e,b:r}=this.lab(),n=Math.sqrt(e**2+r**2);let i=180*Math.atan2(r,e)/Math.PI;return i<0&&(i*=-1,i=360-i),new rt(t,n,i,"lch")}rgb(){if("rgb"===this.space)return this;if("lab"===(t=this.space)||"xyz"===t||"lch"===t){let{x:t,y:e,z:r}=this;if("lab"===this.space||"lch"===this.space){let{l:n,a:i,b:s}=this;if("lch"===this.space){const{c:t,h:e}=this,r=Math.PI/180;i=t*Math.cos(r*e),s=t*Math.sin(r*e)}const o=(n+16)/116,a=i/500+o,u=o-s/200,h=16/116,c=.008856,l=7.787;t=.95047*(a**3>c?a**3:(a-h)/l),e=1*(o**3>c?o**3:(o-h)/l),r=1.08883*(u**3>c?u**3:(u-h)/l)}const n=3.2406*t+-1.5372*e+-.4986*r,i=-.9689*t+1.8758*e+.0415*r,s=.0557*t+-.204*e+1.057*r,o=Math.pow,a=.0031308,u=n>a?1.055*o(n,1/2.4)-.055:12.92*n,h=i>a?1.055*o(i,1/2.4)-.055:12.92*i,c=s>a?1.055*o(s,1/2.4)-.055:12.92*s;return new rt(255*u,255*h,255*c)}if("hsl"===this.space){let{h:t,s:e,l:r}=this;if(t/=360,e/=100,r/=100,0===e)return r*=255,new rt(r,r,r);const n=r<.5?r*(1+e):r+e-r*e,i=2*r-n,s=255*et(i,n,t+1/3),o=255*et(i,n,t),a=255*et(i,n,t-1/3);return new rt(s,o,a)}if("cmyk"===this.space){const{c:t,m:e,y:r,k:n}=this,i=255*(1-Math.min(1,t*(1-n)+n)),s=255*(1-Math.min(1,e*(1-n)+n)),o=255*(1-Math.min(1,r*(1-n)+n));return new rt(i,s,o)}return this;var t}toArray(){const{_a:t,_b:e,_c:r,_d:n,space:i}=this;return[t,e,r,n,i]}toHex(){const[t,e,r]=this._clamped().map(Z);return`#${t}${e}${r}`}toRgb(){const[t,e,r]=this._clamped();return`rgb(${t},${e},${r})`}toString(){return this.toHex()}xyz(){const{_a:t,_b:e,_c:r}=this.rgb(),[n,i,s]=[t,e,r].map(t=>t/255),o=n>.04045?Math.pow((n+.055)/1.055,2.4):n/12.92,a=i>.04045?Math.pow((i+.055)/1.055,2.4):i/12.92,u=s>.04045?Math.pow((s+.055)/1.055,2.4):s/12.92,h=(.4124*o+.3576*a+.1805*u)/.95047,c=(.2126*o+.7152*a+.0722*u)/1,l=(.0193*o+.1192*a+.9505*u)/1.08883,f=h>.008856?Math.pow(h,1/3):7.787*h+16/116,d=c>.008856?Math.pow(c,1/3):7.787*c+16/116,m=l>.008856?Math.pow(l,1/3):7.787*l+16/116;return new rt(f,d,m,"xyz")}_clamped(){const{_a:t,_b:e,_c:r}=this.rgb(),{max:n,min:i,round:s}=Math;return[t,e,r].map(t=>n(0,i(s(t),255)))}}class nt{constructor(...t){this.init(...t)}clone(){return new nt(this)}init(t,e){const r=Array.isArray(t)?{x:t[0],y:t[1]}:"object"==typeof t?{x:t.x,y:t.y}:{x:t,y:e};return this.x=r.x??0,this.y=r.y??0,this}toArray(){return[this.x,this.y]}transform(t){return this.clone().transformO(t)}transformO(t){st.isMatrixLike(t)||(t=new st(t));const{x:e,y:r}=this;return this.x=t.a*e+t.c*r+t.e,this.y=t.b*e+t.d*r+t.f,this}}function it(t,e,r){return Math.abs(e-t)<(r||1e-6)}class st{constructor(...t){this.init(...t)}static formatTransforms(t){const e="both"===t.flip||!0===t.flip,r=t.flip&&(e||"x"===t.flip)?-1:1,n=t.flip&&(e||"y"===t.flip)?-1:1,i=t.skew&&t.skew.length?t.skew[0]:isFinite(t.skew)?t.skew:isFinite(t.skewX)?t.skewX:0,s=t.skew&&t.skew.length?t.skew[1]:isFinite(t.skew)?t.skew:isFinite(t.skewY)?t.skewY:0,o=t.scale&&t.scale.length?t.scale[0]*r:isFinite(t.scale)?t.scale*r:isFinite(t.scaleX)?t.scaleX*r:r,a=t.scale&&t.scale.length?t.scale[1]*n:isFinite(t.scale)?t.scale*n:isFinite(t.scaleY)?t.scaleY*n:n,u=t.shear||0,h=t.rotate||t.theta||0,c=new nt(t.origin||t.around||t.ox||t.originX,t.oy||t.originY),l=c.x,f=c.y,d=new nt(t.position||t.px||t.positionX||NaN,t.py||t.positionY||NaN),m=d.x,p=d.y,y=new nt(t.translate||t.tx||t.translateX,t.ty||t.translateY),g=y.x,b=y.y,v=new nt(t.relative||t.rx||t.relativeX,t.ry||t.relativeY);return{scaleX:o,scaleY:a,skewX:i,skewY:s,shear:u,theta:h,rx:v.x,ry:v.y,tx:g,ty:b,ox:l,oy:f,px:m,py:p}}static fromArray(t){return{a:t[0],b:t[1],c:t[2],d:t[3],e:t[4],f:t[5]}}static isMatrixLike(t){return null!=t.a||null!=t.b||null!=t.c||null!=t.d||null!=t.e||null!=t.f}static matrixMultiply(t,e,r){const n=t.a*e.a+t.c*e.b,i=t.b*e.a+t.d*e.b,s=t.a*e.c+t.c*e.d,o=t.b*e.c+t.d*e.d,a=t.e+t.a*e.e+t.c*e.f,u=t.f+t.b*e.e+t.d*e.f;return r.a=n,r.b=i,r.c=s,r.d=o,r.e=a,r.f=u,r}around(t,e,r){return this.clone().aroundO(t,e,r)}aroundO(t,e,r){const n=t||0,i=e||0;return this.translateO(-n,-i).lmultiplyO(r).translateO(n,i)}clone(){return new st(this)}decompose(t=0,e=0){const r=this.a,n=this.b,i=this.c,s=this.d,o=this.e,a=this.f,u=r*s-n*i,h=u>0?1:-1,c=h*Math.sqrt(r*r+n*n),l=Math.atan2(h*n,h*r),f=180/Math.PI*l,d=Math.cos(l),m=Math.sin(l),p=(r*i+n*s)/u,y=i*c/(p*r-n)||s*c/(p*n+r);return{scaleX:c,scaleY:y,shear:p,rotate:f,translateX:o-t+t*d*c+e*(p*d*c-m*y),translateY:a-e+t*m*c+e*(p*m*c+d*y),originX:t,originY:e,a:this.a,b:this.b,c:this.c,d:this.d,e:this.e,f:this.f}}equals(t){if(t===this)return!0;const e=new st(t);return it(this.a,e.a)&&it(this.b,e.b)&&it(this.c,e.c)&&it(this.d,e.d)&&it(this.e,e.e)&&it(this.f,e.f)}flip(t,e){return this.clone().flipO(t,e)}flipO(t,e){return"x"===t?this.scaleO(-1,1,e,0):"y"===t?this.scaleO(1,-1,0,e):this.scaleO(-1,-1,t,e||t)}init(t){const e=st.fromArray([1,0,0,1,0,0]);return t=t instanceof Mt?t.matrixify():"string"==typeof t?st.fromArray(t.split(K).map(parseFloat)):Array.isArray(t)?st.fromArray(t):"object"==typeof t&&st.isMatrixLike(t)?t:"object"==typeof t?(new st).transform(t):6===arguments.length?st.fromArray([].slice.call(arguments)):e,this.a=null!=t.a?t.a:e.a,this.b=null!=t.b?t.b:e.b,this.c=null!=t.c?t.c:e.c,this.d=null!=t.d?t.d:e.d,this.e=null!=t.e?t.e:e.e,this.f=null!=t.f?t.f:e.f,this}inverse(){return this.clone().inverseO()}inverseO(){const t=this.a,e=this.b,r=this.c,n=this.d,i=this.e,s=this.f,o=t*n-e*r;if(!o)throw new Error("Cannot invert "+this);const a=n/o,u=-e/o,h=-r/o,c=t/o,l=-(a*i+h*s),f=-(u*i+c*s);return this.a=a,this.b=u,this.c=h,this.d=c,this.e=l,this.f=f,this}lmultiply(t){return this.clone().lmultiplyO(t)}lmultiplyO(t){const e=t instanceof st?t:new st(t);return st.matrixMultiply(e,this,this)}multiply(t){return this.clone().multiplyO(t)}multiplyO(t){const e=t instanceof st?t:new st(t);return st.matrixMultiply(this,e,this)}rotate(t,e,r){return this.clone().rotateO(t,e,r)}rotateO(t,e=0,r=0){t=m(t);const n=Math.cos(t),i=Math.sin(t),{a:s,b:o,c:a,d:u,e:h,f:c}=this;return this.a=s*n-o*i,this.b=o*n+s*i,this.c=a*n-u*i,this.d=u*n+a*i,this.e=h*n-c*i+r*i-e*n+e,this.f=c*n+h*i-e*i-r*n+r,this}scale(){return this.clone().scaleO(...arguments)}scaleO(t,e=t,r=0,n=0){3===arguments.length&&(n=r,r=e,e=t);const{a:i,b:s,c:o,d:a,e:u,f:h}=this;return this.a=i*t,this.b=s*e,this.c=o*t,this.d=a*e,this.e=u*t-r*t+r,this.f=h*e-n*e+n,this}shear(t,e,r){return this.clone().shearO(t,e,r)}shearO(t,e=0,r=0){const{a:n,b:i,c:s,d:o,e:a,f:u}=this;return this.a=n+i*t,this.c=s+o*t,this.e=a+u*t-r*t,this}skew(){return this.clone().skewO(...arguments)}skewO(t,e=t,r=0,n=0){3===arguments.length&&(n=r,r=e,e=t),t=m(t),e=m(e);const i=Math.tan(t),s=Math.tan(e),{a:o,b:a,c:u,d:h,e:c,f:l}=this;return this.a=o+a*i,this.b=a+o*s,this.c=u+h*i,this.d=h+u*s,this.e=c+l*i-n*i,this.f=l+c*s-r*s,this}skewX(t,e,r){return this.skew(t,0,e,r)}skewY(t,e,r){return this.skew(0,t,e,r)}toArray(){return[this.a,this.b,this.c,this.d,this.e,this.f]}toString(){return"matrix("+this.a+","+this.b+","+this.c+","+this.d+","+this.e+","+this.f+")"}transform(t){if(st.isMatrixLike(t))return new st(t).multiplyO(this);const e=st.formatTransforms(t),{x:r,y:n}=new nt(e.ox,e.oy).transform(this),i=(new st).translateO(e.rx,e.ry).lmultiplyO(this).translateO(-r,-n).scaleO(e.scaleX,e.scaleY).skewO(e.skewX,e.skewY).shearO(e.shear).rotateO(e.theta).translateO(r,n);if(isFinite(e.px)||isFinite(e.py)){const t=new nt(r,n).transform(i),s=isFinite(e.px)?e.px-t.x:0,o=isFinite(e.py)?e.py-t.y:0;i.translateO(s,o)}return i.translateO(e.tx,e.ty),i}translate(t,e){return this.clone().translateO(t,e)}translateO(t,e){return this.e+=t||0,this.f+=e||0,this}valueOf(){return{a:this.a,b:this.b,c:this.c,d:this.d,e:this.e,f:this.f}}}function ot(){if(!ot.nodes){const t=T().size(2,0);t.node.style.cssText=["opacity: 0","position: absolute","left: -100%","top: -100%","overflow: hidden"].join(";"),t.attr("focusable","false"),t.attr("aria-hidden","true");const e=t.path().node;ot.nodes={svg:t,path:e}}if(!ot.nodes.svg.node.parentNode){const t=O.document.body||O.document.documentElement;ot.nodes.svg.addTo(t)}return ot.nodes}function at(t){return!(t.width||t.height||t.x||t.y)}k(st,"Matrix");class ut{constructor(...t){this.init(...t)}addOffset(){return this.x+=O.window.pageXOffset,this.y+=O.window.pageYOffset,new ut(this)}init(t){return t="string"==typeof t?t.split(K).map(parseFloat):Array.isArray(t)?t:"object"==typeof t?[null!=t.left?t.left:t.x,null!=t.top?t.top:t.y,t.width,t.height]:4===arguments.length?[].slice.call(arguments):[0,0,0,0],this.x=t[0]||0,this.y=t[1]||0,this.width=this.w=t[2]||0,this.height=this.h=t[3]||0,this.x2=this.x+this.w,this.y2=this.y+this.h,this.cx=this.x+this.w/2,this.cy=this.y+this.h/2,this}isNulled(){return at(this)}merge(t){const e=Math.min(this.x,t.x),r=Math.min(this.y,t.y),n=Math.max(this.x+this.width,t.x+t.width)-e,i=Math.max(this.y+this.height,t.y+t.height)-r;return new ut(e,r,n,i)}toArray(){return[this.x,this.y,this.width,this.height]}toString(){return this.x+" "+this.y+" "+this.width+" "+this.height}transform(t){t instanceof st||(t=new st(t));let e=1/0,r=-1/0,n=1/0,i=-1/0;return[new nt(this.x,this.y),new nt(this.x2,this.y),new nt(this.x,this.y2),new nt(this.x2,this.y2)].forEach(function(s){s=s.transform(t),e=Math.min(e,s.x),r=Math.max(r,s.x),n=Math.min(n,s.y),i=Math.max(i,s.y)}),new ut(e,n,r-e,i-n)}}function ht(t,e,r){let n;try{if(n=e(t.node),at(n)&&(i=t.node)!==O.document&&!(O.document.documentElement.contains||function(t){for(;t.parentNode;)t=t.parentNode;return t===O.document}).call(O.document.documentElement,i))throw new Error("Element not in the dom")}catch(e){n=r(t)}var i;return n}c({viewbox:{viewbox(t,e,r,n){return null==t?new ut(this.attr("viewBox")):this.attr("viewBox",new ut(t,e,r,n))},zoom(t,e){let{width:r,height:n}=this.attr(["width","height"]);if((r||n)&&"string"!=typeof r&&"string"!=typeof n||(r=this.node.clientWidth,n=this.node.clientHeight),!r||!n)throw new Error("Impossible to get absolute width and height. Please provide an absolute width and height attribute on the zooming element");const i=this.viewbox(),s=r/i.width,o=n/i.height,a=Math.min(s,o);if(null==t)return a;let u=a/t;u===1/0&&(u=Number.MAX_SAFE_INTEGER/100),e=e||new nt(r/2/s+i.x,n/2/o+i.y);const h=new ut(i).transform(new st({scale:u,origin:e}));return this.viewbox(h)}}}),k(ut,"Box");class ct extends Array{constructor(t=[],...e){if(super(t,...e),"number"==typeof t)return this;this.length=0,this.push(...t)}}const lt=ct;B([ct],{each(t,...e){return"function"==typeof t?this.map((e,r,n)=>t.call(e,e,r,n)):this.map(r=>r[t](...e))},toArray(){return Array.prototype.concat.apply([],this)}});const ft=["toArray","constructor","each"];function dt(t,e){return new lt(d((e||O.document).querySelectorAll(t),function(t){return C(t)}))}ct.extend=function(t){t=t.reduce((t,e)=>(ft.includes(e)||"_"===e[0]||(e in Array.prototype&&(t["$"+e]=Array.prototype[e]),t[e]=function(...t){return this.each(e,...t)}),t),{}),B([ct],t)};let mt=0;const pt={};function yt(t){let e=t.getEventHolder();return e===O.window&&(e=pt),e.events||(e.events={}),e.events}function gt(t){return t.getEventTarget()}function bt(t,e,r,n,i){const s=r.bind(n||t),o=T(t),a=yt(o),u=gt(o);e=Array.isArray(e)?e:e.split(K),r._svgjsListenerId||(r._svgjsListenerId=++mt),e.forEach(function(t){const e=t.split(".")[0],n=t.split(".")[1]||"*";a[e]=a[e]||{},a[e][n]=a[e][n]||{},a[e][n][r._svgjsListenerId]=s,u.addEventListener(e,s,i||!1)})}function vt(t,e,r,n){const i=T(t),s=yt(i),o=gt(i);("function"!=typeof r||(r=r._svgjsListenerId))&&(e=Array.isArray(e)?e:(e||"").split(K)).forEach(function(t){const e=t&&t.split(".")[0],a=t&&t.split(".")[1];let u,h;if(r)s[e]&&s[e][a||"*"]&&(o.removeEventListener(e,s[e][a||"*"][r],n||!1),delete s[e][a||"*"][r]);else if(e&&a){if(s[e]&&s[e][a]){for(h in s[e][a])vt(o,[e,a].join("."),h);delete s[e][a]}}else if(a)for(t in s)for(u in s[t])a===u&&vt(o,[t,a].join("."));else if(e){if(s[e]){for(u in s[e])vt(o,[e,u].join("."));delete s[e]}}else{for(t in s)vt(o,t);!function(t){let e=t.getEventHolder();e===O.window&&(e=pt),e.events&&(e.events={})}(i)}})}class wt extends P{addEventListener(){}dispatch(t,e,r){return function(t,e,r,n){const i=gt(t);return e instanceof O.window.Event||(e=new O.window.CustomEvent(e,{detail:r,cancelable:!0,...n})),i.dispatchEvent(e),e}(this,t,e,r)}dispatchEvent(t){const e=this.getEventHolder().events;if(!e)return!0;const r=e[t.type];for(const e in r)for(const n in r[e])r[e][n](t);return!t.defaultPrevented}fire(t,e,r){return this.dispatch(t,e,r),this}getEventHolder(){return this}getEventTarget(){return this}off(t,e,r){return vt(this,t,e,r),this}on(t,e,r,n){return bt(this,t,e,r,n),this}removeEventListener(){}}function xt(){}k(wt,"EventTarget");const St={"fill-opacity":1,"stroke-opacity":1,"stroke-width":0,"stroke-linejoin":"miter","stroke-linecap":"butt",fill:"#000000",stroke:"#000000",opacity:1,x:0,y:0,cx:0,cy:0,width:0,height:0,r:0,rx:0,ry:0,offset:0,"stop-opacity":1,"stop-color":"#000000","text-anchor":"start"};class Nt extends Array{constructor(...t){super(...t),this.init(...t)}clone(){return new this.constructor(this)}init(t){return"number"==typeof t||(this.length=0,this.push(...this.parse(t))),this}parse(t=[]){return t instanceof Array?t:t.trim().split(K).map(parseFloat)}toArray(){return Array.prototype.concat.apply([],this)}toSet(){return new Set(this)}toString(){return this.join(" ")}valueOf(){const t=[];return t.push(...this),t}}class _t{constructor(...t){this.init(...t)}convert(t){return new _t(this.value,t)}divide(t){return t=new _t(t),new _t(this/t,this.unit||t.unit)}init(t,e){return e=Array.isArray(t)?t[1]:e,t=Array.isArray(t)?t[0]:t,this.value=0,this.unit=e||"","number"==typeof t?this.value=isNaN(t)?0:isFinite(t)?t:t<0?-34e37:34e37:"string"==typeof t?(e=t.match(R))&&(this.value=parseFloat(e[1]),"%"===e[5]?this.value/=100:"s"===e[5]&&(this.value*=1e3),this.unit=e[5]):t instanceof _t&&(this.value=t.valueOf(),this.unit=t.unit),this}minus(t){return t=new _t(t),new _t(this-t,this.unit||t.unit)}plus(t){return t=new _t(t),new _t(this+t,this.unit||t.unit)}times(t){return t=new _t(t),new _t(this*t,this.unit||t.unit)}toArray(){return[this.value,this.unit]}toJSON(){return this.toString()}toString(){return("%"===this.unit?~~(1e8*this.value)/1e6:"s"===this.unit?this.value/1e3:this.value)+this.unit}valueOf(){return this.value}}const Ot=new Set(["fill","stroke","color","bgcolor","stop-color","flood-color","lighting-color"]),Pt=[];class Et extends wt{constructor(t,e){super(),this.node=t,this.type=t.nodeName,e&&t!==e&&this.attr(e)}add(t,e){return(t=T(t)).removeNamespace&&this.node instanceof O.window.SVGElement&&t.removeNamespace(),null==e?this.node.appendChild(t.node):t.node!==this.node.childNodes[e]&&this.node.insertBefore(t.node,this.node.childNodes[e]),this}addTo(t,e){return T(t).put(this,e)}children(){return new lt(d(this.node.children,function(t){return C(t)}))}clear(){for(;this.node.hasChildNodes();)this.node.removeChild(this.node.lastChild);return this}clone(t=!0,e=!0){this.writeDataToDom();let r=this.node.cloneNode(t);return e&&(r=F(r)),new this.constructor(r)}each(t,e){const r=this.children();let n,i;for(n=0,i=r.length;n<i;n++)t.apply(r[n],[n,r]),e&&r[n].each(t,e);return this}element(t,e){return this.put(new Et(A(t),e))}first(){return C(this.node.firstChild)}get(t){return C(this.node.childNodes[t])}getEventHolder(){return this.node}getEventTarget(){return this.node}has(t){return this.index(t)>=0}html(t,e){return this.xml(t,e,"http://www.w3.org/1999/xhtml")}id(t){return void 0!==t||this.node.id||(this.node.id=I(this.type)),this.attr("id",t)}index(t){return[].slice.call(this.node.childNodes).indexOf(t.node)}last(){return C(this.node.lastChild)}matches(t){const e=this.node,r=e.matches||e.matchesSelector||e.msMatchesSelector||e.mozMatchesSelector||e.webkitMatchesSelector||e.oMatchesSelector||null;return r&&r.call(e,t)}parent(t){let e=this;if(!e.node.parentNode)return null;if(e=C(e.node.parentNode),!t)return e;do{if("string"==typeof t?e.matches(t):e instanceof t)return e}while(e=C(e.node.parentNode));return e}put(t,e){return t=T(t),this.add(t,e),t}putIn(t,e){return T(t).add(this,e)}remove(){return this.parent()&&this.parent().removeElement(this),this}removeElement(t){return this.node.removeChild(t.node),this}replace(t){return t=T(t),this.node.parentNode&&this.node.parentNode.replaceChild(t.node,this.node),t}round(t=2,e=null){const r=10**t,n=this.attr(e);for(const t in n)"number"==typeof n[t]&&(n[t]=Math.round(n[t]*r)/r);return this.attr(n),this}svg(t,e){return this.xml(t,e,S)}toString(){return this.id()}words(t){return this.node.textContent=t,this}wrap(t){const e=this.parent();if(!e)return this.addTo(t);const r=e.index(this);return e.put(t,r).put(this)}writeDataToDom(){return this.each(function(){this.writeDataToDom()}),this}xml(t,e,r){if("boolean"==typeof t&&(r=e,e=t,t=null),null==t||"function"==typeof t){e=e??!0,this.writeDataToDom();let r=this;if(null!=t){if(r=C(r.node.cloneNode(!0)),e){const e=t(r);if(r=e||r,!1===e)return""}r.each(function(){const e=t(this),r=e||this;!1===e?this.remove():e&&this!==r&&this.replace(r)},!0)}return e?r.node.outerHTML:r.node.innerHTML}e=e??!1;const n=A("wrapper",r),i=O.document.createDocumentFragment();n.innerHTML=t;for(let t=n.children.length;t--;)i.appendChild(n.firstElementChild);const s=this.parent();return e?this.replace(i)&&s:this.add(i)}}B(Et,{attr:function(t,e,r){if(null==t){t={},e=this.node.attributes;for(const r of e)t[r.nodeName]=$.test(r.nodeValue)?parseFloat(r.nodeValue):r.nodeValue;return t}if(t instanceof Array)return t.reduce((t,e)=>(t[e]=this.attr(e),t),{});if("object"==typeof t&&t.constructor===Object)for(e in t)this.attr(e,t[e]);else if(null===e)this.node.removeAttribute(t);else{if(null==e)return null==(e=this.node.getAttribute(t))?St[t]:$.test(e)?parseFloat(e):e;"number"==typeof(e=Pt.reduce((e,r)=>r(t,e,this),e))?e=new _t(e):Ot.has(t)&&rt.isColor(e)?e=new rt(e):e.constructor===Array&&(e=new Nt(e)),"leading"===t?this.leading&&this.leading(e):"string"==typeof r?this.node.setAttributeNS(r,t,e.toString()):this.node.setAttribute(t,e.toString()),!this.rebuild||"font-size"!==t&&"x"!==t||this.rebuild()}return this},find:function(t){return dt(t,this.node)},findOne:function(t){return C(this.node.querySelector(t))}}),k(Et,"Dom");class Mt extends Et{constructor(t,e){super(t,e),this.dom={},this.node.instance=this,(t.hasAttribute("data-svgjs")||t.hasAttribute("svgjs:data"))&&this.setData(JSON.parse(t.getAttribute("data-svgjs"))??JSON.parse(t.getAttribute("svgjs:data"))??{})}center(t,e){return this.cx(t).cy(e)}cx(t){return null==t?this.x()+this.width()/2:this.x(t-this.width()/2)}cy(t){return null==t?this.y()+this.height()/2:this.y(t-this.height()/2)}defs(){const t=this.root();return t&&t.defs()}dmove(t,e){return this.dx(t).dy(e)}dx(t=0){return this.x(new _t(t).plus(this.x()))}dy(t=0){return this.y(new _t(t).plus(this.y()))}getEventHolder(){return this}height(t){return this.attr("height",t)}move(t,e){return this.x(t).y(e)}parents(t=this.root()){const e="string"==typeof t;e||(t=T(t));const r=new lt;let n=this;for(;(n=n.parent())&&n.node!==O.document&&"#document-fragment"!==n.nodeName&&(r.push(n),e||n.node!==t.node)&&(!e||!n.matches(t));)if(n.node===this.root().node)return null;return r}reference(t){if(!(t=this.attr(t)))return null;const e=(t+"").match(U);return e?T(e[1]):null}root(){const t=this.parent(E[M]);return t&&t.root()}setData(t){return this.dom=t,this}size(t,e){const r=g(this,t,e);return this.width(new _t(r.width)).height(new _t(r.height))}width(t){return this.attr("width",t)}writeDataToDom(){return x(this,this.dom),super.writeDataToDom()}x(t){return this.attr("x",t)}y(t){return this.attr("y",t)}}B(Mt,{bbox:function(){const t=ht(this,t=>t.getBBox(),t=>{try{const e=t.clone().addTo(ot().svg).show(),r=e.node.getBBox();return e.remove(),r}catch(e){throw new Error(`Getting bbox of element "${t.node.nodeName}" is not possible: ${e.toString()}`)}});return new ut(t)},rbox:function(t){const e=ht(this,t=>t.getBoundingClientRect(),t=>{throw new Error(`Getting rbox of element "${t.node.nodeName}" is not possible`)}),r=new ut(e);return t?r.transform(t.screenCTM().inverseO()):r.addOffset()},inside:function(t,e){const r=this.bbox();return t>r.x&&e>r.y&&t<r.x+r.width&&e<r.y+r.height},point:function(t,e){return new nt(t,e).transformO(this.screenCTM().inverseO())},ctm:function(){return new st(this.node.getCTM())},screenCTM:function(){try{if("function"==typeof this.isRoot&&!this.isRoot()){const t=this.rect(1,1),e=t.node.getScreenCTM();return t.remove(),new st(e)}return new st(this.node.getScreenCTM())}catch(t){return console.warn(`Cannot get CTM from SVG node ${this.node.nodeName}. Is the element rendered?`),new st}}}),k(Mt,"Element");const At={stroke:["color","width","opacity","linecap","linejoin","miterlimit","dasharray","dashoffset"],fill:["color","opacity","rule"],prefix:function(t,e){return"color"===e?t:t+"-"+e}};["fill","stroke"].forEach(function(t){const e={};let r;e[t]=function(e){if(void 0===e)return this.attr(t);if("string"==typeof e||e instanceof rt||rt.isRgb(e)||e instanceof Mt)this.attr(t,e);else for(r=At[t].length-1;r>=0;r--)null!=e[At[t][r]]&&this.attr(At.prefix(t,At[t][r]),e[At[t][r]]);return this},c(["Element","Runner"],e)}),c(["Element","Runner"],{matrix:function(t,e,r,n,i,s){return null==t?new st(this):this.attr("transform",new st(t,e,r,n,i,s))},rotate:function(t,e,r){return this.transform({rotate:t,ox:e,oy:r},!0)},skew:function(t,e,r,n){return 1===arguments.length||3===arguments.length?this.transform({skew:t,ox:e,oy:r},!0):this.transform({skew:[t,e],ox:r,oy:n},!0)},shear:function(t,e,r){return this.transform({shear:t,ox:e,oy:r},!0)},scale:function(t,e,r,n){return 1===arguments.length||3===arguments.length?this.transform({scale:t,ox:e,oy:r},!0):this.transform({scale:[t,e],ox:r,oy:n},!0)},translate:function(t,e){return this.transform({translate:[t,e]},!0)},relative:function(t,e){return this.transform({relative:[t,e]},!0)},flip:function(t="both",e="center"){return-1==="xybothtrue".indexOf(t)&&(e=t,t="both"),this.transform({flip:t,origin:e},!0)},opacity:function(t){return this.attr("opacity",t)}}),c("radius",{radius:function(t,e=t){return"radialGradient"===(this._element||this).type?this.attr("r",new _t(t)):this.rx(t).ry(e)}}),c("Path",{length:function(){return this.node.getTotalLength()},pointAt:function(t){return new nt(this.node.getPointAtLength(t))}}),c(["Element","Runner"],{font:function(t,e){if("object"==typeof t){for(e in t)this.font(e,t[e]);return this}return"leading"===t?this.leading(e):"anchor"===t?this.attr("text-anchor",e):"size"===t||"family"===t||"weight"===t||"stretch"===t||"variant"===t||"style"===t?this.attr("font-"+t,e):this.attr(t,e)}}),c("Element",["click","dblclick","mousedown","mouseup","mouseover","mouseout","mousemove","mouseenter","mouseleave","touchstart","touchmove","touchleave","touchend","touchcancel","contextmenu","wheel","pointerdown","pointermove","pointerup","pointerleave","pointercancel"].reduce(function(t,e){return t[e]=function(t){return null===t?this.off(e):this.on(e,t),this},t},{})),c("Element",{untransform:function(){return this.attr("transform",null)},matrixify:function(){return(this.attr("transform")||"").split(X).slice(0,-1).map(function(t){const e=t.trim().split("(");return[e[0],e[1].split(K).map(function(t){return parseFloat(t)})]}).reverse().reduce(function(t,e){return"matrix"===e[0]?t.lmultiply(st.fromArray(e[1])):t[e[0]].apply(t,e[1])},new st)},toParent:function(t,e){if(this===t)return this;if(w(this.node))return this.addTo(t,e);const r=this.screenCTM(),n=t.screenCTM().inverse();return this.addTo(t,e).untransform().transform(n.multiply(r)),this},toRoot:function(t){return this.toParent(this.root(),t)},transform:function(t,e){if(null==t||"string"==typeof t){const e=new st(this).decompose();return null==t?e:e[t]}st.isMatrixLike(t)||(t={...t,origin:b(t,this)});const r=new st(!0===e?this:e||!1).transform(t);return this.attr("transform",r)}});class Tt extends Mt{flatten(){return this.each(function(){if(this instanceof Tt)return this.flatten().ungroup()}),this}ungroup(t=this.parent(),e=t.index(this)){return e=-1===e?t.children().length:e,this.each(function(r,n){return n[n.length-r-1].toParent(t,e)}),this.remove()}}k(Tt,"Container");class jt extends Tt{constructor(t,e=t){super(j("defs",t),e)}flatten(){return this}ungroup(){return this}}k(jt,"Defs");class Ct extends Mt{}function Lt(t){return this.attr("rx",t)}function kt(t){return this.attr("ry",t)}function Dt(t){return null==t?this.cx()-this.rx():this.cx(t+this.rx())}function It(t){return null==t?this.cy()-this.ry():this.cy(t+this.ry())}function Ft(t){return this.attr("cx",t)}function Bt(t){return this.attr("cy",t)}function Vt(t){return null==t?2*this.rx():this.rx(new _t(t).divide(2))}function Rt(t){return null==t?2*this.ry():this.ry(new _t(t).divide(2))}k(Ct,"Shape");class zt extends Ct{constructor(t,e=t){super(j("ellipse",t),e)}size(t,e){const r=g(this,t,e);return this.rx(new _t(r.width).divide(2)).ry(new _t(r.height).divide(2))}}B(zt,t),c("Container",{ellipse:V(function(t=0,e=t){return this.put(new zt).size(t,e).move(0,0)})}),k(zt,"Ellipse");class Gt extends Et{constructor(t=O.document.createDocumentFragment()){super(t)}xml(t,e,r){if("boolean"==typeof t&&(r=e,e=t,t=null),null==t||"function"==typeof t){const t=new Et(A("wrapper",r));return t.add(this.node.cloneNode(!0)),t.xml(!1,r)}return super.xml(t,!1,r)}}k(Gt,"Fragment");const Ut=Gt;function Xt(t,e){return"radialGradient"===(this._element||this).type?this.attr({fx:new _t(t),fy:new _t(e)}):this.attr({x1:new _t(t),y1:new _t(e)})}function Yt(t,e){return"radialGradient"===(this._element||this).type?this.attr({cx:new _t(t),cy:new _t(e)}):this.attr({x2:new _t(t),y2:new _t(e)})}class Wt extends Tt{constructor(t,e){super(j(t+"Gradient","string"==typeof t?null:t),e)}attr(t,e,r){return"transform"===t&&(t="gradientTransform"),super.attr(t,e,r)}bbox(){return new ut}targets(){return dt("svg [fill*="+this.id()+"]")}toString(){return this.url()}update(t){return this.clear(),"function"==typeof t&&t.call(this,this),this}url(){return"url(#"+this.id()+")"}}B(Wt,e),c({Container:{gradient(...t){return this.defs().gradient(...t)}},Defs:{gradient:V(function(t,e){return this.put(new Wt(t)).update(e)})}}),k(Wt,"Gradient");class qt extends Tt{constructor(t,e=t){super(j("pattern",t),e)}attr(t,e,r){return"transform"===t&&(t="patternTransform"),super.attr(t,e,r)}bbox(){return new ut}targets(){return dt("svg [fill*="+this.id()+"]")}toString(){return this.url()}update(t){return this.clear(),"function"==typeof t&&t.call(this,this),this}url(){return"url(#"+this.id()+")"}}c({Container:{pattern(...t){return this.defs().pattern(...t)}},Defs:{pattern:V(function(t,e,r){return this.put(new qt).update(r).attr({x:0,y:0,width:t,height:e,patternUnits:"userSpaceOnUse"})})}}),k(qt,"Pattern");class Ht extends Ct{constructor(t,e=t){super(j("image",t),e)}load(t,e){if(!t)return this;const r=new O.window.Image;return bt(r,"load",function(t){const n=this.parent(qt);0===this.width()&&0===this.height()&&this.size(r.width,r.height),n instanceof qt&&0===n.width()&&0===n.height()&&n.size(this.width(),this.height()),"function"==typeof e&&e.call(this,t)},this),bt(r,"load error",function(){vt(r)}),this.attr("href",r.src=t,_)}}var $t;$t=function(t,e,r){return"fill"!==t&&"stroke"!==t||J.test(e)&&(e=r.root().defs().image(e)),e instanceof Ht&&(e=r.root().defs().pattern(0,0,t=>{t.add(e)})),e},Pt.push($t),c({Container:{image:V(function(t,e){return this.put(new Ht).size(0,0).load(t,e)})}}),k(Ht,"Image");class Jt extends Nt{bbox(){let t=-1/0,e=-1/0,r=1/0,n=1/0;return this.forEach(function(i){t=Math.max(i[0],t),e=Math.max(i[1],e),r=Math.min(i[0],r),n=Math.min(i[1],n)}),new ut(r,n,t-r,e-n)}move(t,e){const r=this.bbox();if(t-=r.x,e-=r.y,!isNaN(t)&&!isNaN(e))for(let r=this.length-1;r>=0;r--)this[r]=[this[r][0]+t,this[r][1]+e];return this}parse(t=[0,0]){const e=[];(t=t instanceof Array?Array.prototype.concat.apply([],t):t.trim().split(K).map(parseFloat)).length%2!=0&&t.pop();for(let r=0,n=t.length;r<n;r+=2)e.push([t[r],t[r+1]]);return e}size(t,e){let r;const n=this.bbox();for(r=this.length-1;r>=0;r--)n.width&&(this[r][0]=(this[r][0]-n.x)*t/n.width+n.x),n.height&&(this[r][1]=(this[r][1]-n.y)*e/n.height+n.y);return this}toLine(){return{x1:this[0][0],y1:this[0][1],x2:this[1][0],y2:this[1][1]}}toString(){const t=[];for(let e=0,r=this.length;e<r;e++)t.push(this[e].join(","));return t.join(" ")}transform(t){return this.clone().transformO(t)}transformO(t){st.isMatrixLike(t)||(t=new st(t));for(let e=this.length;e--;){const[r,n]=this[e];this[e][0]=t.a*r+t.c*n+t.e,this[e][1]=t.b*r+t.d*n+t.f}return this}}const Kt=Jt;function Qt(t){return null==t?this.bbox().x:this.move(t,this.bbox().y)}function Zt(t){return null==t?this.bbox().y:this.move(this.bbox().x,t)}function te(t){const e=this.bbox();return null==t?e.width:this.size(t,e.height)}function ee(t){const e=this.bbox();return null==t?e.height:this.size(e.width,t)}class re extends Ct{constructor(t,e=t){super(j("line",t),e)}array(){return new Jt([[this.attr("x1"),this.attr("y1")],[this.attr("x2"),this.attr("y2")]])}move(t,e){return this.attr(this.array().move(t,e).toLine())}plot(t,e,r,n){return null==t?this.array():(t=void 0!==e?{x1:t,y1:e,x2:r,y2:n}:new Jt(t).toLine(),this.attr(t))}size(t,e){const r=g(this,t,e);return this.attr(this.array().size(r.width,r.height).toLine())}}B(re,i),c({Container:{line:V(function(...t){return re.prototype.plot.apply(this.put(new re),null!=t[0]?t:[0,0,0,0])})}}),k(re,"Line");class ne extends Tt{constructor(t,e=t){super(j("marker",t),e)}height(t){return this.attr("markerHeight",t)}orient(t){return this.attr("orient",t)}ref(t,e){return this.attr("refX",t).attr("refY",e)}toString(){return"url(#"+this.id()+")"}update(t){return this.clear(),"function"==typeof t&&t.call(this,this),this}width(t){return this.attr("markerWidth",t)}}function ie(t,e){return function(r){return null==r?this[t]:(this[t]=r,e&&e.call(this),this)}}c({Container:{marker(...t){return this.defs().marker(...t)}},Defs:{marker:V(function(t,e,r){return this.put(new ne).size(t,e).ref(t/2,e/2).viewbox(0,0,t,e).attr("orient","auto").update(r)})},marker:{marker(t,e,r,n){let i=["marker"];return"all"!==t&&i.push(t),i=i.join("-"),t=arguments[1]instanceof ne?arguments[1]:this.defs().marker(e,r,n),this.attr(i,t)}}}),k(ne,"Marker");const se={"-":function(t){return t},"<>":function(t){return-Math.cos(t*Math.PI)/2+.5},">":function(t){return Math.sin(t*Math.PI/2)},"<":function(t){return 1-Math.cos(t*Math.PI/2)},bezier:function(t,e,r,n){return function(i){return i<0?t>0?e/t*i:r>0?n/r*i:0:i>1?r<1?(1-n)/(1-r)*i+(n-r)/(1-r):t<1?(1-e)/(1-t)*i+(e-t)/(1-t):1:3*i*(1-i)**2*e+3*i**2*(1-i)*n+i**3}},steps:function(t,e="end"){e=e.split("-").reverse()[0];let r=t;return"none"===e?--r:"both"===e&&++r,(n,i=!1)=>{let s=Math.floor(n*t);const o=n*s%1==0;return"start"!==e&&"both"!==e||++s,i&&o&&--s,n>=0&&s<0&&(s=0),n<=1&&s>r&&(s=r),s/r}}};class oe{done(){return!1}}class ae extends oe{constructor(t=">"){super(),this.ease=se[t]||t}step(t,e,r){return"number"!=typeof t?r<1?t:e:t+(e-t)*this.ease(r)}}class ue extends oe{constructor(t){super(),this.stepper=t}done(t){return t.done}step(t,e,r,n){return this.stepper(t,e,r,n)}}function he(){const t=(this._duration||500)/1e3,e=this._overshoot||0,r=Math.PI,n=Math.log(e/100+1e-10),i=-n/Math.sqrt(r*r+n*n),s=3.9/(i*t);this.d=2*i*s,this.k=s*s}B(class extends ue{constructor(t=500,e=0){super(),this.duration(t).overshoot(e)}step(t,e,r,n){if("string"==typeof t)return t;if(n.done=r===1/0,r===1/0)return e;if(0===r)return t;r>100&&(r=16),r/=1e3;const i=n.velocity||0,s=-this.d*i-this.k*(t-e),o=t+i*r+s*r*r/2;return n.velocity=i+s*r,n.done=Math.abs(e-o)+Math.abs(i)<.002,n.done?e:o}},{duration:ie("_duration",he),overshoot:ie("_overshoot",he)}),B(class extends ue{constructor(t=.1,e=.01,r=0,n=1e3){super(),this.p(t).i(e).d(r).windup(n)}step(t,e,r,n){if("string"==typeof t)return t;if(n.done=r===1/0,r===1/0)return e;if(0===r)return t;const i=e-t;let s=(n.integral||0)+i*r;const o=(i-(n.error||0))/r,a=this._windup;return!1!==a&&(s=Math.max(-a,Math.min(s,a))),n.error=i,n.integral=s,n.done=Math.abs(i)<.001,n.done?e:t+(this.P*i+this.I*s+this.D*o)}},{windup:ie("_windup"),p:ie("P"),i:ie("I"),d:ie("D")});const ce={M:2,L:2,H:1,V:1,C:6,S:4,Q:4,T:2,A:7,Z:0},le={M:function(t,e,r){return e.x=r.x=t[0],e.y=r.y=t[1],["M",e.x,e.y]},L:function(t,e){return e.x=t[0],e.y=t[1],["L",t[0],t[1]]},H:function(t,e){return e.x=t[0],["H",t[0]]},V:function(t,e){return e.y=t[0],["V",t[0]]},C:function(t,e){return e.x=t[4],e.y=t[5],["C",t[0],t[1],t[2],t[3],t[4],t[5]]},S:function(t,e){return e.x=t[2],e.y=t[3],["S",t[0],t[1],t[2],t[3]]},Q:function(t,e){return e.x=t[2],e.y=t[3],["Q",t[0],t[1],t[2],t[3]]},T:function(t,e){return e.x=t[0],e.y=t[1],["T",t[0],t[1]]},Z:function(t,e,r){return e.x=r.x,e.y=r.y,["Z"]},A:function(t,e){return e.x=t[5],e.y=t[6],["A",t[0],t[1],t[2],t[3],t[4],t[5],t[6]]}},fe="mlhvqtcsaz".split("");for(let t=0,e=fe.length;t<e;++t)le[fe[t]]=function(t){return function(e,r,n){if("H"===t)e[0]=e[0]+r.x;else if("V"===t)e[0]=e[0]+r.y;else if("A"===t)e[5]=e[5]+r.x,e[6]=e[6]+r.y;else for(let t=0,n=e.length;t<n;++t)e[t]=e[t]+(t%2?r.y:r.x);return le[t](e,r,n)}}(fe[t].toUpperCase());function de(t){return t.segment.length&&t.segment.length-1===ce[t.segment[0].toUpperCase()]}function me(t,e){t.inNumber&&pe(t,!1);const r=Q.test(e);if(r)t.segment=[e];else{const e=t.lastCommand,r=e.toLowerCase(),n=e===r;t.segment=["m"===r?n?"l":"L":e]}return t.inSegment=!0,t.lastCommand=t.segment[0],r}function pe(t,e){if(!t.inNumber)throw new Error("Parser Error");t.number&&t.segment.push(parseFloat(t.number)),t.inNumber=e,t.number="",t.pointSeen=!1,t.hasExponent=!1,de(t)&&ye(t)}function ye(t){t.inSegment=!1,t.absolute&&(t.segment=function(t){const e=t.segment[0];return le[e](t.segment.slice(1),t.p,t.p0)}(t)),t.segments.push(t.segment)}function ge(t){if(!t.segment.length)return!1;const e="A"===t.segment[0].toUpperCase(),r=t.segment.length;return e&&(4===r||5===r)}function be(t){return"E"===t.lastToken.toUpperCase()}const ve=new Set([" ",",","\t","\n","\r","\f"]);class we extends Nt{bbox(){return ot().path.setAttribute("d",this.toString()),new ut(ot.nodes.path.getBBox())}move(t,e){const r=this.bbox();if(t-=r.x,e-=r.y,!isNaN(t)&&!isNaN(e))for(let r,n=this.length-1;n>=0;n--)r=this[n][0],"M"===r||"L"===r||"T"===r?(this[n][1]+=t,this[n][2]+=e):"H"===r?this[n][1]+=t:"V"===r?this[n][1]+=e:"C"===r||"S"===r||"Q"===r?(this[n][1]+=t,this[n][2]+=e,this[n][3]+=t,this[n][4]+=e,"C"===r&&(this[n][5]+=t,this[n][6]+=e)):"A"===r&&(this[n][6]+=t,this[n][7]+=e);return this}parse(t="M0 0"){return Array.isArray(t)&&(t=Array.prototype.concat.apply([],t).toString()),function(t,e=!0){let r=0,n="";const i={segment:[],inNumber:!1,number:"",lastToken:"",inSegment:!1,segments:[],pointSeen:!1,hasExponent:!1,absolute:e,p0:new nt,p:new nt};for(;i.lastToken=n,n=t.charAt(r++);)if(i.inSegment||!me(i,n))if("."!==n)if(isNaN(parseInt(n)))if(ve.has(n))i.inNumber&&pe(i,!1);else if("-"!==n&&"+"!==n)if("E"!==n.toUpperCase()){if(Q.test(n)){if(i.inNumber)pe(i,!1);else{if(!de(i))throw new Error("parser Error");ye(i)}--r}}else i.number+=n,i.hasExponent=!0;else{if(i.inNumber&&!be(i)){pe(i,!1),--r;continue}i.number+=n,i.inNumber=!0}else{if("0"===i.number||ge(i)){i.inNumber=!0,i.number=n,pe(i,!0);continue}i.inNumber=!0,i.number+=n}else{if(i.pointSeen||i.hasExponent){pe(i,!1),--r;continue}i.inNumber=!0,i.pointSeen=!0,i.number+=n}return i.inNumber&&pe(i,!1),i.inSegment&&de(i)&&ye(i),i.segments}(t)}size(t,e){const r=this.bbox();let n,i;for(r.width=0===r.width?1:r.width,r.height=0===r.height?1:r.height,n=this.length-1;n>=0;n--)i=this[n][0],"M"===i||"L"===i||"T"===i?(this[n][1]=(this[n][1]-r.x)*t/r.width+r.x,this[n][2]=(this[n][2]-r.y)*e/r.height+r.y):"H"===i?this[n][1]=(this[n][1]-r.x)*t/r.width+r.x:"V"===i?this[n][1]=(this[n][1]-r.y)*e/r.height+r.y:"C"===i||"S"===i||"Q"===i?(this[n][1]=(this[n][1]-r.x)*t/r.width+r.x,this[n][2]=(this[n][2]-r.y)*e/r.height+r.y,this[n][3]=(this[n][3]-r.x)*t/r.width+r.x,this[n][4]=(this[n][4]-r.y)*e/r.height+r.y,"C"===i&&(this[n][5]=(this[n][5]-r.x)*t/r.width+r.x,this[n][6]=(this[n][6]-r.y)*e/r.height+r.y)):"A"===i&&(this[n][1]=this[n][1]*t/r.width,this[n][2]=this[n][2]*e/r.height,this[n][6]=(this[n][6]-r.x)*t/r.width+r.x,this[n][7]=(this[n][7]-r.y)*e/r.height+r.y);return this}toString(){return function(t){let e="";for(let r=0,n=t.length;r<n;r++)e+=t[r][0],null!=t[r][1]&&(e+=t[r][1],null!=t[r][2]&&(e+=" ",e+=t[r][2],null!=t[r][3]&&(e+=" ",e+=t[r][3],e+=" ",e+=t[r][4],null!=t[r][5]&&(e+=" ",e+=t[r][5],e+=" ",e+=t[r][6],null!=t[r][7]&&(e+=" ",e+=t[r][7])))));return e+" "}(this)}}const xe=t=>{const e=typeof t;return"number"===e?_t:"string"===e?rt.isColor(t)?rt:K.test(t)?Q.test(t)?we:Nt:R.test(t)?_t:Ne:Ee.indexOf(t.constructor)>-1?t.constructor:Array.isArray(t)?Nt:"object"===e?Pe:Ne};class Se{constructor(t){this._stepper=t||new ae("-"),this._from=null,this._to=null,this._type=null,this._context=null,this._morphObj=null}at(t){return this._morphObj.morph(this._from,this._to,t,this._stepper,this._context)}done(){return this._context.map(this._stepper.done).reduce(function(t,e){return t&&e},!0)}from(t){return null==t?this._from:(this._from=this._set(t),this)}stepper(t){return null==t?this._stepper:(this._stepper=t,this)}to(t){return null==t?this._to:(this._to=this._set(t),this)}type(t){return null==t?this._type:(this._type=t,this)}_set(t){this._type||this.type(xe(t));let e=new this._type(t);return this._type===rt&&(e=this._to?e[this._to[4]]():this._from?e[this._from[4]]():e),this._type===Pe&&(e=this._to?e.align(this._to):this._from?e.align(this._from):e),e=e.toConsumable(),this._morphObj=this._morphObj||new this._type,this._context=this._context||Array.apply(null,Array(e.length)).map(Object).map(function(t){return t.done=!0,t}),e}}class Ne{constructor(...t){this.init(...t)}init(t){return t=Array.isArray(t)?t[0]:t,this.value=t,this}toArray(){return[this.value]}valueOf(){return this.value}}class _e{constructor(...t){this.init(...t)}init(t){return Array.isArray(t)&&(t={scaleX:t[0],scaleY:t[1],shear:t[2],rotate:t[3],translateX:t[4],translateY:t[5],originX:t[6],originY:t[7]}),Object.assign(this,_e.defaults,t),this}toArray(){const t=this;return[t.scaleX,t.scaleY,t.shear,t.rotate,t.translateX,t.translateY,t.originX,t.originY]}}_e.defaults={scaleX:1,scaleY:1,shear:0,rotate:0,translateX:0,translateY:0,originX:0,originY:0};const Oe=(t,e)=>t[0]<e[0]?-1:t[0]>e[0]?1:0;class Pe{constructor(...t){this.init(...t)}align(t){const e=this.values;for(let r=0,n=e.length;r<n;++r){if(e[r+1]===t[r+1]){if(e[r+1]===rt&&t[r+7]!==e[r+7]){const e=t[r+7],n=new rt(this.values.splice(r+3,5))[e]().toArray();this.values.splice(r+3,0,...n)}r+=e[r+2]+2;continue}if(!t[r+1])return this;const n=(new t[r+1]).toArray(),i=e[r+2]+3;e.splice(r,i,t[r],t[r+1],t[r+2],...n),r+=e[r+2]+2}return this}init(t){if(this.values=[],Array.isArray(t))return void(this.values=t.slice());t=t||{};const e=[];for(const r in t){const n=xe(t[r]),i=new n(t[r]).toArray();e.push([r,n,i.length,...i])}return e.sort(Oe),this.values=e.reduce((t,e)=>t.concat(e),[]),this}toArray(){return this.values}valueOf(){const t={},e=this.values;for(;e.length;){const r=e.shift(),n=e.shift(),i=e.shift(),s=e.splice(0,i);t[r]=new n(s)}return t}}const Ee=[Ne,_e,Pe];class Me extends Ct{constructor(t,e=t){super(j("path",t),e)}array(){return this._array||(this._array=new we(this.attr("d")))}clear(){return delete this._array,this}height(t){return null==t?this.bbox().height:this.size(this.bbox().width,t)}move(t,e){return this.attr("d",this.array().move(t,e))}plot(t){return null==t?this.array():this.clear().attr("d","string"==typeof t?t:this._array=new we(t))}size(t,e){const r=g(this,t,e);return this.attr("d",this.array().size(r.width,r.height))}width(t){return null==t?this.bbox().width:this.size(t,this.bbox().height)}x(t){return null==t?this.bbox().x:this.move(t,this.bbox().y)}y(t){return null==t?this.bbox().y:this.move(this.bbox().x,t)}}function Ae(){return this._array||(this._array=new Jt(this.attr("points")))}function Te(){return delete this._array,this}function je(t,e){return this.attr("points",this.array().move(t,e))}function Ce(t){return null==t?this.array():this.clear().attr("points","string"==typeof t?t:this._array=new Jt(t))}function Le(t,e){const r=g(this,t,e);return this.attr("points",this.array().size(r.width,r.height))}Me.prototype.MorphArray=we,c({Container:{path:V(function(t){return this.put(new Me).plot(t||new we)})}}),k(Me,"Path");class ke extends Ct{constructor(t,e=t){super(j("polygon",t),e)}}c({Container:{polygon:V(function(t){return this.put(new ke).plot(t||new Jt)})}}),B(ke,i),B(ke,s),k(ke,"Polygon");class De extends Ct{constructor(t,e=t){super(j("polyline",t),e)}}c({Container:{polyline:V(function(t){return this.put(new De).plot(t||new Jt)})}}),B(De,i),B(De,s),k(De,"Polyline");class Ie extends Ct{constructor(t,e=t){super(j("rect",t),e)}}B(Ie,{rx:Lt,ry:kt}),c({Container:{rect:V(function(t,e){return this.put(new Ie).size(t,e)})}}),k(Ie,"Rect");class Fe{constructor(){this._first=null,this._last=null}first(){return this._first&&this._first.value}last(){return this._last&&this._last.value}push(t){const e=void 0!==t.next?t:{value:t,next:null,prev:null};return this._last?(e.prev=this._last,this._last.next=e,this._last=e):(this._last=e,this._first=e),e}remove(t){t.prev&&(t.prev.next=t.next),t.next&&(t.next.prev=t.prev),t===this._last&&(this._last=t.prev),t===this._first&&(this._first=t.next),t.prev=null,t.next=null}shift(){const t=this._first;return t?(this._first=t.next,this._first&&(this._first.prev=null),this._last=this._first?this._last:null,t.value):null}}const Be={nextDraw:null,frames:new Fe,timeouts:new Fe,immediates:new Fe,timer:()=>O.window.performance||O.window.Date,transforms:[],frame(t){const e=Be.frames.push({run:t});return null===Be.nextDraw&&(Be.nextDraw=O.window.requestAnimationFrame(Be._draw)),e},timeout(t,e){e=e||0;const r=Be.timer().now()+e,n=Be.timeouts.push({run:t,time:r});return null===Be.nextDraw&&(Be.nextDraw=O.window.requestAnimationFrame(Be._draw)),n},immediate(t){const e=Be.immediates.push(t);return null===Be.nextDraw&&(Be.nextDraw=O.window.requestAnimationFrame(Be._draw)),e},cancelFrame(t){null!=t&&Be.frames.remove(t)},clearTimeout(t){null!=t&&Be.timeouts.remove(t)},cancelImmediate(t){null!=t&&Be.immediates.remove(t)},_draw(t){let e=null;const r=Be.timeouts.last();for(;(e=Be.timeouts.shift())&&(t>=e.time?e.run():Be.timeouts.push(e),e!==r););let n=null;const i=Be.frames.last();for(;n!==i&&(n=Be.frames.shift());)n.run(t);let s=null;for(;s=Be.immediates.shift();)s();Be.nextDraw=Be.timeouts.first()||Be.frames.first()?O.window.requestAnimationFrame(Be._draw):null}},Ve=Be,Re=function(t){const e=t.start,r=t.runner.duration();return{start:e,duration:r,end:e+r,runner:t.runner}},ze=function(){const t=O.window;return(t.performance||t.Date).now()};class Ge extends wt{constructor(t=ze){super(),this._timeSource=t,this.terminate()}active(){return!!this._nextFrame}finish(){return this.time(this.getEndTimeOfTimeline()+1),this.pause()}getEndTime(){const t=this.getLastRunnerInfo(),e=t?t.runner.duration():0;return(t?t.start:this._time)+e}getEndTimeOfTimeline(){const t=this._runners.map(t=>t.start+t.runner.duration());return Math.max(0,...t)}getLastRunnerInfo(){return this.getRunnerInfoById(this._lastRunnerId)}getRunnerInfoById(t){return this._runners[this._runnerIds.indexOf(t)]||null}pause(){return this._paused=!0,this._continue()}persist(t){return null==t?this._persist:(this._persist=t,this)}play(){return this._paused=!1,this.updateTime()._continue()}reverse(t){const e=this.speed();if(null==t)return this.speed(-e);const r=Math.abs(e);return this.speed(t?-r:r)}schedule(t,e,r){if(null==t)return this._runners.map(Re);let n=0;const i=this.getEndTime();if(e=e||0,null==r||"last"===r||"after"===r)n=i;else if("absolute"===r||"start"===r)n=e,e=0;else if("now"===r)n=this._time;else if("relative"===r){const r=this.getRunnerInfoById(t.id);r&&(n=r.start+e,e=0)}else{if("with-last"!==r)throw new Error('Invalid value for the "when" parameter');{const t=this.getLastRunnerInfo();n=t?t.start:this._time}}t.unschedule(),t.timeline(this);const s=t.persist(),o={persist:null===s?this._persist:s,start:n+e,runner:t};return this._lastRunnerId=t.id,this._runners.push(o),this._runners.sort((t,e)=>t.start-e.start),this._runnerIds=this._runners.map(t=>t.runner.id),this.updateTime()._continue(),this}seek(t){return this.time(this._time+t)}source(t){return null==t?this._timeSource:(this._timeSource=t,this)}speed(t){return null==t?this._speed:(this._speed=t,this)}stop(){return this.time(0),this.pause()}time(t){return null==t?this._time:(this._time=t,this._continue(!0))}unschedule(t){const e=this._runnerIds.indexOf(t.id);return e<0||(this._runners.splice(e,1),this._runnerIds.splice(e,1),t.timeline(null)),this}updateTime(){return this.active()||(this._lastSourceTime=this._timeSource()),this}_continue(t=!1){return Ve.cancelFrame(this._nextFrame),this._nextFrame=null,t?this._stepImmediate():(this._paused||(this._nextFrame=Ve.frame(this._step)),this)}_stepFn(t=!1){const e=this._timeSource();let r=e-this._lastSourceTime;t&&(r=0);const n=this._speed*r+(this._time-this._lastStepTime);this._lastSourceTime=e,t||(this._time+=n,this._time=this._time<0?0:this._time),this._lastStepTime=this._time,this.fire("time",this._time);for(let t=this._runners.length;t--;){const e=this._runners[t],r=e.runner;this._time-e.start<=0&&r.reset()}let i=!1;for(let t=0,e=this._runners.length;t<e;t++){const r=this._runners[t],s=r.runner;let o=n;const a=this._time-r.start;a<=0?i=!0:(a<o&&(o=a),s.active()&&(s.step(o).done?!0!==r.persist&&s.duration()-s.time()+this._time+r.persist<this._time&&(s.unschedule(),--t,--e):i=!0))}return i&&!(this._speed<0&&0===this._time)||this._runnerIds.length&&this._speed<0&&this._time>0?this._continue():(this.pause(),this.fire("finished")),this}terminate(){this._startTime=0,this._speed=1,this._persist=0,this._nextFrame=null,this._paused=!0,this._runners=[],this._runnerIds=[],this._lastRunnerId=-1,this._time=0,this._lastSourceTime=0,this._lastStepTime=0,this._step=this._stepFn.bind(this,!1),this._stepImmediate=this._stepFn.bind(this,!0)}}c({Element:{timeline:function(t){return null==t?(this._timeline=this._timeline||new Ge,this._timeline):(this._timeline=t,this)}}});class Ue extends wt{constructor(t){super(),this.id=Ue.id++,t="function"==typeof(t=t??400)?new ue(t):t,this._element=null,this._timeline=null,this.done=!1,this._queue=[],this._duration="number"==typeof t&&t,this._isDeclarative=t instanceof ue,this._stepper=this._isDeclarative?t:new ae,this._history={},this.enabled=!0,this._time=0,this._lastTime=0,this._reseted=!0,this.transforms=new st,this.transformId=1,this._haveReversed=!1,this._reverse=!1,this._loopsDone=0,this._swing=!1,this._wait=0,this._times=1,this._frameId=null,this._persist=!!this._isDeclarative||null}static sanitise(t,e,r){let n=1,i=!1,s=0;return e=e??0,r=r||"last","object"!=typeof(t=t??400)||t instanceof oe||(e=t.delay??e,r=t.when??r,i=t.swing||i,n=t.times??n,s=t.wait??s,t=t.duration??400),{duration:t,delay:e,swing:i,times:n,wait:s,when:r}}active(t){return null==t?this.enabled:(this.enabled=t,this)}addTransform(t){return this.transforms.lmultiplyO(t),this}after(t){return this.on("finished",t)}animate(t,e,r){const n=Ue.sanitise(t,e,r),i=new Ue(n.duration);return this._timeline&&i.timeline(this._timeline),this._element&&i.element(this._element),i.loop(n).schedule(n.delay,n.when)}clearTransform(){return this.transforms=new st,this}clearTransformsFromQueue(){this.done&&this._timeline&&this._timeline._runnerIds.includes(this.id)||(this._queue=this._queue.filter(t=>!t.isTransform))}delay(t){return this.animate(0,t)}duration(){return this._times*(this._wait+this._duration)-this._wait}during(t){return this.queue(null,t)}ease(t){return this._stepper=new ae(t),this}element(t){return null==t?this._element:(this._element=t,t._prepareRunner(),this)}finish(){return this.step(1/0)}loop(t,e,r){return"object"==typeof t&&(e=t.swing,r=t.wait,t=t.times),this._times=t||1/0,this._swing=e||!1,this._wait=r||0,!0===this._times&&(this._times=1/0),this}loops(t){const e=this._duration+this._wait;if(null==t){const t=Math.floor(this._time/e),r=(this._time-t*e)/this._duration;return Math.min(t+r,this._times)}const r=t%1,n=e*Math.floor(t)+this._duration*r;return this.time(n)}persist(t){return null==t?this._persist:(this._persist=t,this)}position(t){const e=this._time,r=this._duration,n=this._wait,i=this._times,s=this._swing,o=this._reverse;let a;if(null==t){const t=function(t){const e=s*Math.floor(t%(2*(n+r))/(n+r)),i=e&&!o||!e&&o,a=Math.pow(-1,i)*(t%(n+r))/r+i;return Math.max(Math.min(a,1),0)},u=i*(n+r)-n;return a=e<=0?Math.round(t(1e-5)):e<u?t(e):Math.round(t(u-1e-5)),a}const u=Math.floor(this.loops()),h=s&&u%2==0;return a=u+(h&&!o||o&&h?t:1-t),this.loops(a)}progress(t){return null==t?Math.min(1,this._time/this.duration()):this.time(t*this.duration())}queue(t,e,r,n){return this._queue.push({initialiser:t||xt,runner:e||xt,retarget:r,isTransform:n,initialised:!1,finished:!1}),this.timeline()&&this.timeline()._continue(),this}reset(){return this._reseted||(this.time(0),this._reseted=!0),this}reverse(t){return this._reverse=t??!this._reverse,this}schedule(t,e,r){if(t instanceof Ge||(r=e,e=t,t=this.timeline()),!t)throw Error("Runner cannot be scheduled without timeline");return t.schedule(this,e,r),this}step(t){if(!this.enabled)return this;t=t??16,this._time+=t;const e=this.position(),r=this._lastPosition!==e&&this._time>=0;this._lastPosition=e;const n=this.duration(),i=this._lastTime<=0&&this._time>0,s=this._lastTime<n&&this._time>=n;this._lastTime=this._time,i&&this.fire("start",this);const o=this._isDeclarative;this.done=!o&&!s&&this._time>=n,this._reseted=!1;let a=!1;return(r||o)&&(this._initialise(r),this.transforms=new st,a=this._run(o?t:e),this.fire("step",this)),this.done=this.done||a&&o,s&&this.fire("finished",this),this}time(t){if(null==t)return this._time;const e=t-this._time;return this.step(e),this}timeline(t){return void 0===t?this._timeline:(this._timeline=t,this)}unschedule(){const t=this.timeline();return t&&t.unschedule(this),this}_initialise(t){if(t||this._isDeclarative)for(let e=0,r=this._queue.length;e<r;++e){const r=this._queue[e],n=this._isDeclarative||!r.initialised&&t;t=!r.finished,n&&t&&(r.initialiser.call(this),r.initialised=!0)}}_rememberMorpher(t,e){if(this._history[t]={morpher:e,caller:this._queue[this._queue.length-1]},this._isDeclarative){const t=this.timeline();t&&t.play()}}_run(t){let e=!0;for(let r=0,n=this._queue.length;r<n;++r){const n=this._queue[r],i=n.runner.call(this,t);n.finished=n.finished||!0===i,e=e&&n.finished}return e}_tryRetarget(t,e,r){if(this._history[t]){if(!this._history[t].caller.initialised){const e=this._queue.indexOf(this._history[t].caller);return this._queue.splice(e,1),!1}this._history[t].caller.retarget?this._history[t].caller.retarget.call(this,e,r):this._history[t].morpher.to(e),this._history[t].caller.finished=!1;const n=this.timeline();return n&&n.play(),!0}return!1}}Ue.id=0;class Xe{constructor(t=new st,e=-1,r=!0){this.transforms=t,this.id=e,this.done=r}clearTransformsFromQueue(){}}B([Ue,Xe],{mergeWith(t){return new Xe(t.transforms.lmultiply(this.transforms),t.id)}});const Ye=(t,e)=>t.lmultiplyO(e),We=t=>t.transforms;function qe(){const t=this._transformationRunners.runners.map(We).reduce(Ye,new st);this.transform(t),this._transformationRunners.merge(),1===this._transformationRunners.length()&&(this._frameId=null)}class He{constructor(){this.runners=[],this.ids=[]}add(t){if(this.runners.includes(t))return;const e=t.id+1;return this.runners.push(t),this.ids.push(e),this}clearBefore(t){const e=this.ids.indexOf(t+1)||1;return this.ids.splice(0,e,0),this.runners.splice(0,e,new Xe).forEach(t=>t.clearTransformsFromQueue()),this}edit(t,e){const r=this.ids.indexOf(t+1);return this.ids.splice(r,1,t+1),this.runners.splice(r,1,e),this}getByID(t){return this.runners[this.ids.indexOf(t+1)]}length(){return this.ids.length}merge(){let t=null;for(let e=0;e<this.runners.length;++e){const r=this.runners[e];if(!(t&&r.done&&t.done)||r._timeline&&r._timeline._runnerIds.includes(r.id)||t._timeline&&t._timeline._runnerIds.includes(t.id))t=r;else{this.remove(r.id);const n=r.mergeWith(t);this.edit(t.id,n),t=n,--e}}return this}remove(t){const e=this.ids.indexOf(t+1);return this.ids.splice(e,1),this.runners.splice(e,1),this}}c({Element:{animate(t,e,r){const n=Ue.sanitise(t,e,r),i=this.timeline();return new Ue(n.duration).loop(n).element(this).timeline(i.play()).schedule(n.delay,n.when)},delay(t,e){return this.animate(0,t,e)},_clearTransformRunnersBefore(t){this._transformationRunners.clearBefore(t.id)},_currentTransform(t){return this._transformationRunners.runners.filter(e=>e.id<=t.id).map(We).reduce(Ye,new st)},_addRunner(t){this._transformationRunners.add(t),Ve.cancelImmediate(this._frameId),this._frameId=Ve.immediate(qe.bind(this))},_prepareRunner(){null==this._frameId&&(this._transformationRunners=(new He).add(new Xe(new st(this))))}}}),B(Ue,{attr(t,e){return this.styleAttr("attr",t,e)},css(t,e){return this.styleAttr("css",t,e)},styleAttr(t,e,r){if("string"==typeof e)return this.styleAttr(t,{[e]:r});let n=e;if(this._tryRetarget(t,n))return this;let i=new Se(this._stepper).to(n),s=Object.keys(n);return this.queue(function(){i=i.from(this.element()[t](s))},function(e){return this.element()[t](i.at(e).valueOf()),i.done()},function(e){const r=Object.keys(e),o=(a=s,r.filter(t=>!a.includes(t)));var a;if(o.length){const e=this.element()[t](o),r=new Pe(i.from()).valueOf();Object.assign(r,e),i.from(r)}const u=new Pe(i.to()).valueOf();Object.assign(u,e),i.to(u),s=r,n=e}),this._rememberMorpher(t,i),this},zoom(t,e){if(this._tryRetarget("zoom",t,e))return this;let r=new Se(this._stepper).to(new _t(t));return this.queue(function(){r=r.from(this.element().zoom())},function(t){return this.element().zoom(r.at(t),e),r.done()},function(t,n){e=n,r.to(t)}),this._rememberMorpher("zoom",r),this},transform(t,e,r){if(e=t.relative||e,this._isDeclarative&&!e&&this._tryRetarget("transform",t))return this;const n=st.isMatrixLike(t);r=null!=t.affine?t.affine:null!=r?r:!n;const i=new Se(this._stepper).type(r?_e:st);let s,o,a,u,h;return this.queue(function(){o=o||this.element(),s=s||b(t,o),h=new st(e?void 0:o),o._addRunner(this),e||o._clearTransformRunnersBefore(this)},function(c){e||this.clearTransform();const{x:l,y:f}=new nt(s).transform(o._currentTransform(this));let d=new st({...t,origin:[l,f]}),m=this._isDeclarative&&a?a:h;if(r){d=d.decompose(l,f),m=m.decompose(l,f);const t=d.rotate,e=m.rotate,r=[t-360,t,t+360],n=r.map(t=>Math.abs(t-e)),i=Math.min(...n),s=n.indexOf(i);d.rotate=r[s]}e&&(n||(d.rotate=t.rotate||0),this._isDeclarative&&u&&(m.rotate=u)),i.from(m),i.to(d);const p=i.at(c);return u=p.rotate,a=new st(p),this.addTransform(a),o._addRunner(this),i.done()},function(e){(e.origin||"center").toString()!==(t.origin||"center").toString()&&(s=b(e,o)),t={...e,origin:s}},!0),this._isDeclarative&&this._rememberMorpher("transform",i),this},x(t){return this._queueNumber("x",t)},y(t){return this._queueNumber("y",t)},ax(t){return this._queueNumber("ax",t)},ay(t){return this._queueNumber("ay",t)},dx(t=0){return this._queueNumberDelta("x",t)},dy(t=0){return this._queueNumberDelta("y",t)},dmove(t,e){return this.dx(t).dy(e)},_queueNumberDelta(t,e){if(e=new _t(e),this._tryRetarget(t,e))return this;const r=new Se(this._stepper).to(e);let n=null;return this.queue(function(){n=this.element()[t](),r.from(n),r.to(n+e)},function(e){return this.element()[t](r.at(e)),r.done()},function(t){r.to(n+new _t(t))}),this._rememberMorpher(t,r),this},_queueObject(t,e){if(this._tryRetarget(t,e))return this;const r=new Se(this._stepper).to(e);return this.queue(function(){r.from(this.element()[t]())},function(e){return this.element()[t](r.at(e)),r.done()}),this._rememberMorpher(t,r),this},_queueNumber(t,e){return this._queueObject(t,new _t(e))},cx(t){return this._queueNumber("cx",t)},cy(t){return this._queueNumber("cy",t)},move(t,e){return this.x(t).y(e)},amove(t,e){return this.ax(t).ay(e)},center(t,e){return this.cx(t).cy(e)},size(t,e){let r;return t&&e||(r=this._element.bbox()),t||(t=r.width/r.height*e),e||(e=r.height/r.width*t),this.width(t).height(e)},width(t){return this._queueNumber("width",t)},height(t){return this._queueNumber("height",t)},plot(t,e,r,n){if(4===arguments.length)return this.plot([t,e,r,n]);if(this._tryRetarget("plot",t))return this;const i=new Se(this._stepper).type(this._element.MorphArray).to(t);return this.queue(function(){i.from(this._element.array())},function(t){return this._element.plot(i.at(t)),i.done()}),this._rememberMorpher("plot",i),this},leading(t){return this._queueNumber("leading",t)},viewbox(t,e,r,n){return this._queueObject("viewbox",new ut(t,e,r,n))},update(t){return"object"!=typeof t?this.update({offset:arguments[0],color:arguments[1],opacity:arguments[2]}):(null!=t.opacity&&this.attr("stop-opacity",t.opacity),null!=t.color&&this.attr("stop-color",t.color),null!=t.offset&&this.attr("offset",t.offset),this)}}),B(Ue,{rx:Lt,ry:kt,from:Xt,to:Yt}),k(Ue,"Runner");class $e extends Tt{constructor(t,e=t){super(j("svg",t),e),this.namespace()}defs(){return this.isRoot()?C(this.node.querySelector("defs"))||this.put(new jt):this.root().defs()}isRoot(){return!this.node.parentNode||!(this.node.parentNode instanceof O.window.SVGElement)&&"#document-fragment"!==this.node.parentNode.nodeName}namespace(){return this.isRoot()?this.attr({xmlns:S,version:"1.1"}).attr("xmlns:xlink",_,N):this.root().namespace()}removeNamespace(){return this.attr({xmlns:null,version:null}).attr("xmlns:xlink",null,N).attr("xmlns:svgjs",null,N)}root(){return this.isRoot()?this:super.root()}}c({Container:{nested:V(function(){return this.put(new $e)})}}),k($e,"Svg",!0);class Je extends Tt{constructor(t,e=t){super(j("symbol",t),e)}}function Ke(t){return!1===this._build&&this.clear(),this.node.appendChild(O.document.createTextNode(t)),this}function Qe(){return this.node.getComputedTextLength()}function Ze(t,e=this.bbox()){return null==t?e.x:this.attr("x",this.attr("x")+t-e.x)}function tr(t,e=this.bbox()){return null==t?e.y:this.attr("y",this.attr("y")+t-e.y)}function er(t,e,r=this.bbox()){return this.x(t,r).y(e,r)}function rr(t,e=this.bbox()){return null==t?e.cx:this.attr("x",this.attr("x")+t-e.cx)}function nr(t,e=this.bbox()){return null==t?e.cy:this.attr("y",this.attr("y")+t-e.cy)}function ir(t,e,r=this.bbox()){return this.cx(t,r).cy(e,r)}function sr(t){return this.attr("x",t)}function or(t){return this.attr("y",t)}function ar(t,e){return this.ax(t).ay(e)}function ur(t){return this._build=!!t,this}c({Container:{symbol:V(function(){return this.put(new Je)})}}),k(Je,"Symbol");class hr extends Ct{constructor(t,e=t){super(j("text",t),e),this.dom.leading=this.dom.leading??new _t(1.3),this._rebuild=!0,this._build=!1}leading(t){return null==t?this.dom.leading:(this.dom.leading=new _t(t),this.rebuild())}rebuild(t){if("boolean"==typeof t&&(this._rebuild=t),this._rebuild){const t=this;let e=0;const r=this.dom.leading;this.each(function(n){if(w(this.node))return;const i=O.window.getComputedStyle(this.node).getPropertyValue("font-size"),s=r*new _t(i);this.dom.newLined&&(this.attr("x",t.attr("x")),"\n"===this.text()?e+=s:(this.attr("dy",n?s+e:0),e=0))}),this.fire("rebuild")}return this}setData(t){return this.dom=t,this.dom.leading=new _t(t.leading||1.3),this}writeDataToDom(){return x(this,this.dom,{leading:1.3}),this}text(t){if(void 0===t){const e=this.node.childNodes;let r=0;t="";for(let n=0,i=e.length;n<i;++n)"textPath"===e[n].nodeName||w(e[n])?0===n&&(r=n+1):(n!==r&&3!==e[n].nodeType&&!0===C(e[n]).dom.newLined&&(t+="\n"),t+=e[n].textContent);return t}if(this.clear().build(!0),"function"==typeof t)t.call(this,this);else for(let e=0,r=(t=(t+"").split("\n")).length;e<r;e++)this.newLine(t[e]);return this.build(!1).rebuild()}}B(hr,o),c({Container:{text:V(function(t=""){return this.put(new hr).text(t)}),plain:V(function(t=""){return this.put(new hr).plain(t)})}}),k(hr,"Text");class cr extends Ct{constructor(t,e=t){super(j("tspan",t),e),this._build=!1}dx(t){return this.attr("dx",t)}dy(t){return this.attr("dy",t)}newLine(){this.dom.newLined=!0;const t=this.parent();if(!(t instanceof hr))return this;const e=t.index(this),r=O.window.getComputedStyle(this.node).getPropertyValue("font-size"),n=t.dom.leading*new _t(r);return this.dy(e?n:0).attr("x",t.x())}text(t){return null==t?this.node.textContent+(this.dom.newLined?"\n":""):("function"==typeof t?(this.clear().build(!0),t.call(this,this),this.build(!1)):this.plain(t),this)}}B(cr,o),c({Tspan:{tspan:V(function(t=""){const e=new cr;return this._build||this.clear(),this.put(e).text(t)})},Text:{newLine:function(t=""){return this.tspan(t).newLine()}}}),k(cr,"Tspan");class lr extends Ct{constructor(t,e=t){super(j("circle",t),e)}radius(t){return this.attr("r",t)}rx(t){return this.attr("r",t)}ry(t){return this.rx(t)}size(t){return this.radius(new _t(t).divide(2))}}B(lr,{x:Dt,y:It,cx:Ft,cy:Bt,width:Vt,height:Rt}),c({Container:{circle:V(function(t=0){return this.put(new lr).size(t).move(0,0)})}}),k(lr,"Circle");class fr extends Tt{constructor(t,e=t){super(j("clipPath",t),e)}remove(){return this.targets().forEach(function(t){t.unclip()}),super.remove()}targets(){return dt("svg [clip-path*="+this.id()+"]")}}c({Container:{clip:V(function(){return this.defs().put(new fr)})},Element:{clipper(){return this.reference("clip-path")},clipWith(t){const e=t instanceof fr?t:this.parent().clip().add(t);return this.attr("clip-path","url(#"+e.id()+")")},unclip(){return this.attr("clip-path",null)}}}),k(fr,"ClipPath");class dr extends Mt{constructor(t,e=t){super(j("foreignObject",t),e)}}function mr(t,e){return this.children().forEach(r=>{let n;try{n=r.node instanceof O.window.SVGSVGElement?new ut(r.attr(["x","y","width","height"])):r.bbox()}catch(t){return}const i=new st(r),s=i.translate(t,e).transform(i.inverse()),o=new nt(n.x,n.y).transform(s);r.move(o.x,o.y)}),this}function pr(t){return this.dmove(t,0)}function yr(t){return this.dmove(0,t)}function gr(t,e=this.bbox()){return null==t?e.height:this.size(e.width,t,e)}function br(t=0,e=0,r=this.bbox()){const n=t-r.x,i=e-r.y;return this.dmove(n,i)}function vr(t,e,r=this.bbox()){const n=g(this,t,e,r),i=n.width/r.width,s=n.height/r.height;return this.children().forEach(t=>{const e=new nt(r).transform(new st(t).inverse());t.scale(i,s,e.x,e.y)}),this}function wr(t,e=this.bbox()){return null==t?e.width:this.size(t,e.height,e)}function xr(t,e=this.bbox()){return null==t?e.x:this.move(t,e.y,e)}function Sr(t,e=this.bbox()){return null==t?e.y:this.move(e.x,t,e)}c({Container:{foreignObject:V(function(t,e){return this.put(new dr).size(t,e)})}}),k(dr,"ForeignObject");class Nr extends Tt{constructor(t,e=t){super(j("g",t),e)}}B(Nr,a),c({Container:{group:V(function(){return this.put(new Nr)})}}),k(Nr,"G");class _r extends Tt{constructor(t,e=t){super(j("a",t),e)}target(t){return this.attr("target",t)}to(t){return this.attr("href",t,_)}}B(_r,a),c({Container:{link:V(function(t){return this.put(new _r).to(t)})},Element:{unlink(){const t=this.linker();if(!t)return this;const e=t.parent();if(!e)return this.remove();const r=e.index(t);return e.add(this,r),t.remove(),this},linkTo(t){let e=this.linker();return e||(e=new _r,this.wrap(e)),"function"==typeof t?t.call(e,e):e.to(t),this},linker(){const t=this.parent();return t&&"a"===t.node.nodeName.toLowerCase()?t:null}}}),k(_r,"A");class Or extends Tt{constructor(t,e=t){super(j("mask",t),e)}remove(){return this.targets().forEach(function(t){t.unmask()}),super.remove()}targets(){return dt("svg [mask*="+this.id()+"]")}}c({Container:{mask:V(function(){return this.defs().put(new Or)})},Element:{masker(){return this.reference("mask")},maskWith(t){const e=t instanceof Or?t:this.parent().mask().add(t);return this.attr("mask","url(#"+e.id()+")")},unmask(){return this.attr("mask",null)}}}),k(Or,"Mask");class Pr extends Mt{constructor(t,e=t){super(j("stop",t),e)}update(t){return("number"==typeof t||t instanceof _t)&&(t={offset:arguments[0],color:arguments[1],opacity:arguments[2]}),null!=t.opacity&&this.attr("stop-opacity",t.opacity),null!=t.color&&this.attr("stop-color",t.color),null!=t.offset&&this.attr("offset",new _t(t.offset)),this}}c({Gradient:{stop:function(t,e,r){return this.put(new Pr).update(t,e,r)}}}),k(Pr,"Stop");class Er extends Mt{constructor(t,e=t){super(j("style",t),e)}addText(t=""){return this.node.textContent+=t,this}font(t,e,r={}){return this.rule("@font-face",{fontFamily:t,src:e,...r})}rule(t,e){return this.addText(function(t,e){if(!t)return"";if(!e)return t;let r=t+"{";for(const t in e)r+=p(t)+":"+e[t]+";";return r+="}",r}(t,e))}}c("Dom",{style(t,e){return this.put(new Er).rule(t,e)},fontface(t,e,r){return this.put(new Er).font(t,e,r)}}),k(Er,"Style");class Mr extends hr{constructor(t,e=t){super(j("textPath",t),e)}array(){const t=this.track();return t?t.array():null}plot(t){const e=this.track();let r=null;return e&&(r=e.plot(t)),null==t?r:this}track(){return this.reference("href")}}c({Container:{textPath:V(function(t,e){return t instanceof hr||(t=this.text(t)),t.path(e)})},Text:{path:V(function(t,e=!0){const r=new Mr;let n;if(t instanceof Me||(t=this.defs().path(t)),r.attr("href","#"+t,_),e)for(;n=this.node.firstChild;)r.node.appendChild(n);return this.put(r)}),textPath(){return this.findOne("textPath")}},Path:{text:V(function(t){return t instanceof hr||(t=(new hr).addTo(this.parent()).text(t)),t.path(this)}),targets(){return dt("svg textPath").filter(t=>(t.attr("href")||"").includes(this.id()))}}}),Mr.prototype.MorphArray=we,k(Mr,"TextPath");class Ar extends Ct{constructor(t,e=t){super(j("use",t),e)}use(t,e){return this.attr("href",(e||"")+"#"+t,_)}}c({Container:{use:V(function(t,e){return this.put(new Ar).use(t,e)})}}),k(Ar,"Use"),B([$e,Je,Ht,qt,ne],l("viewbox")),B([re,De,ke,Me],l("marker")),B(hr,l("Text")),B(Me,l("Path")),B(jt,l("Defs")),B([hr,cr],l("Tspan")),B([Ie,zt,Wt,Ue],l("radius")),B(wt,l("EventTarget")),B(Et,l("Dom")),B(Mt,l("Element")),B(Ct,l("Shape")),B([Tt,Ut],l("Container")),B(Wt,l("Gradient")),B(Ue,l("Runner")),lt.extend([...new Set(h)]),function(t=[]){Ee.push(...[].concat(t))}([_t,rt,ut,st,Nt,Jt,we,nt]),B(Ee,{to(t){return(new Se).type(this.constructor).from(this.toArray()).to(t)},fromArray(t){return this.init(t),this},toConsumable(){return this.toArray()},morph(t,e,r,n,i){return this.fromArray(t.map(function(t,s){return n.step(t,e[s],r,i[s],i)}))}});var Tr,jr,Cr,Lr,kr=r(726),Dr=r(854),Ir=r(731),Fr=r(986),Br=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class Vr{static create(t){let e=document.createElementNS("http://www.w3.org/2000/svg","text");e.textContent=t;let r=new Vr(e);return r.assignUUID(),r.setAttributes(Vr.defaultAttributes),r}static deserialized(t,e){var r;if(!(0,Dr.isNonNullObject)(t))throw new Error("Saved base must be an object.");let n=null!==(r=t.id)&&void 0!==r?r:t.textId;if(!n)throw new Error("Missing base ID.");if(!(0,Dr.isString)(n))throw new Error("Base IDs must be strings.");let i=e.domNode.querySelector("#"+n);if(!i)throw new Error("Unable to find nucleobase DOM node.");if(!(i instanceof SVGTextElement))throw new Error("Nucleobase DOM node must be an SVG text element.");return new Vr(i)}constructor(t){Tr.add(this),this.domNode=t,jr.set(this,void 0),Cr.set(this,{change:[]}),this.centerPoint=new Ir.CenterPoint(t),function(t,e,r){if("function"==typeof e||!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");e.set(t,r)}(this,jr,new MutationObserver(()=>Br(this,Tr,"m",Lr).call(this,"change"))),Br(this,jr,"f").observe(t,{attributes:!0,childList:!0,characterData:!0,subtree:!0})}serialized(){if(!this.id)throw new Error("Nucleobase ID is falsy.");return{id:this.id}}appendTo(t){t.appendChild(this.domNode)}remove(){this.domNode.remove()}isIn(t){return t.contains(this.domNode)&&t!==this.domNode}hasParent(){return!!this.domNode.parentNode}bringToFront(){(0,kr.bringToFront)(this.domNode)}sendToBack(){(0,kr.sendToBack)(this.domNode)}getAttribute(t){return this.domNode.getAttribute(t)}setAttribute(t,e){this.domNode.setAttribute(t,e)}setAttributes(t){try{new hr(this.domNode).attr(t)}catch(t){}}get id(){return this.domNode.id}assignUUID(){(0,kr.assignUUID)(this.domNode)}get textContent(){return this.domNode.textContent}set textContent(t){this.domNode.textContent=t}isA(){var t;return"A"===(null===(t=this.textContent)||void 0===t?void 0:t.toUpperCase())}isU(){var t;return"U"===(null===(t=this.textContent)||void 0===t?void 0:t.toUpperCase())}isT(){var t;return"T"===(null===(t=this.textContent)||void 0===t?void 0:t.toUpperCase())}isG(){var t;return"G"===(null===(t=this.textContent)||void 0===t?void 0:t.toUpperCase())}isC(){var t;return"C"===(null===(t=this.textContent)||void 0===t?void 0:t.toUpperCase())}get bbox(){return this.domNode.getBBox()}getCenterPoint(){return this.centerPoint}setCenterPoint(t){this.centerPoint.x=t.x,this.centerPoint.y=t.y}maintainingCenterPoint(t){let{x:e,y:r}=this.centerPoint;t(),this.centerPoint.x=e,this.centerPoint.y=r}get boundingClientRect(){return this.domNode.getBoundingClientRect()}get clientCenterPoint(){let t=this.domNode.getBoundingClientRect();return{x:(0,Fr.mean)([t.left,t.right]),y:(0,Fr.mean)([t.top,t.bottom])}}getClientCenterPoint(){return this.clientCenterPoint}addEventListener(t,e){Br(this,Cr,"f")[t].push(e)}removeEventListener(t,e){Br(this,Cr,"f")[t]=Br(this,Cr,"f")[t].filter(t=>t!==e)}}jr=new WeakMap,Cr=new WeakMap,Tr=new WeakSet,Lr=function(t){Br(this,Cr,"f")[t].forEach(t=>t())},Vr.defaultAttributes={"font-family":"Arial","font-size":"9","font-weight":"700"},Vr.defaultAttributeNames=["font-family","font-size","font-weight"];class Rr{constructor(t,e){this.base1=t,this.base2=e}[Symbol.iterator](){return[this.base1,this.base2].values()}isAU(){return this.base1.isA()&&this.base2.isU()||this.base1.isU()&&this.base2.isA()}isAT(){return this.base1.isA()&&this.base2.isT()||this.base1.isT()&&this.base2.isA()}isGC(){return this.base1.isG()&&this.base2.isC()||this.base1.isC()&&this.base2.isG()}isGU(){return this.base1.isG()&&this.base2.isU()||this.base1.isU()&&this.base2.isG()}isGT(){return this.base1.isG()&&this.base2.isT()||this.base1.isT()&&this.base2.isG()}}function zr(t,e){let r=new Map;e.forEach((t,e)=>r.set(t,e));let n=[...t];return n.sort((t,e)=>{var n,i;return(null!==(n=r.get(t))&&void 0!==n?n:-1)-(null!==(i=r.get(e))&&void 0!==i?i:-1)}),n}})(),n})(),t.exports=e()},726(t){var e;e=()=>(()=>{var t={725(t){t.exports=(()=>{var t={986:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){var e=0;return t.forEach(function(t){return e+=t}),e}function n(t){return r(t)/t.length}function i(t){t.sort(function(t,e){return t-e})}t.r(e),t.d(e,{areWithin:()=>f,average:()=>n,degrees:()=>p,isBetweenExclusive:()=>l,isBetweenInclusive:()=>c,max:()=>h,mean:()=>n,median:()=>a,min:()=>u,radians:()=>y,sortNumbers:()=>i,sortNumbersAscending:()=>i,sortNumbersDescending:()=>d,sortedNumbers:()=>o,sortedNumbersAscending:()=>o,sortedNumbersDescending:()=>m,sum:()=>r});var s=function(t,e,r){if(r||2===arguments.length)for(var n,i=0,s=e.length;i<s;i++)!n&&i in e||(n||(n=Array.prototype.slice.call(e,0,i)),n[i]=e[i]);return t.concat(n||Array.prototype.slice.call(e))};function o(t){var e=s([],t,!0);return i(e),e}function a(t){if(0==t.length)return NaN;var e=o(t);if(e.length%2!=0)return e[Math.floor(e.length/2)];var r=e.length/2,i=r-1;return n([e[r],e[i]])}function u(t){if(0==t.length)return 1/0;var e=t[0];return t.slice(1).forEach(function(t){e=Math.min(e,t)}),e}function h(t){if(0==t.length)return-1/0;var e=t[0];return t.slice(1).forEach(function(t){e=Math.max(e,t)}),e}function c(t,e,r){return t>=e&&t<=r}function l(t,e,r){return t>e&&t<r}function f(t,e,r){return Math.abs(t-e)<=r}function d(t){i(t),t.reverse()}function m(t){var e=o(t);return e.reverse(),e}function p(t){return t*(180/Math.PI)}function y(t){return t*(Math.PI/180)}return e})()},854:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){return"number"==typeof t}function n(t){return r(t)&&Number.isFinite(t)}function i(t){return r(t)&&!Number.isFinite(t)}function s(t){return n(t)&&t>0}function o(t){return n(t)&&t>=0}function a(t){return"string"==typeof t}function u(t){return null==t}function h(t){return"object"==typeof t&&null!==t}function c(t){return Array.isArray(t)}return t.r(e),t.d(e,{isArray:()=>c,isFiniteNumber:()=>n,isNonFiniteNumber:()=>i,isNonNegativeFiniteNumber:()=>o,isNonNullObject:()=>h,isNullish:()=>u,isNumber:()=>r,isPositiveFiniteNumber:()=>s,isString:()=>a}),e})()},30:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){return Math.pow(Math.pow(t.x,2)+Math.pow(t.y,2),.5)}function n(t){return Math.atan2(t.y,t.x)}return t.r(e),t.d(e,{direction:()=>n,magnitude:()=>r}),e})()}},e={};function r(n){var i=e[n];if(void 0!==i)return i.exports;var s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,r),s.exports}r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var n={};return(()=>{"use strict";r.r(n),r.d(n,{areWithin:()=>a,centroid:()=>d,deepCopy:()=>s,direction:()=>l,displaced:()=>h,displacement:()=>u,distance:()=>o,isFinitePoint:()=>i,isPoint:()=>e,midpoint:()=>m});var t=r(854);function e(e){return(0,t.isNonNullObject)(e)&&(0,t.isNumber)(e.x)&&(0,t.isNumber)(e.y)}function i(r){return e(r)&&(0,t.isFiniteNumber)(r.x)&&(0,t.isFiniteNumber)(r.y)}function s(t){return{x:t.x,y:t.y}}function o(t,e){var r=e.x-t.x,n=e.y-t.y;return Math.pow(Math.pow(r,2)+Math.pow(n,2),.5)}function a(t,e,r){return o(t,e)<=r}function u(t,e){return{x:e.x-t.x,y:e.y-t.y}}function h(t,e){return{x:t.x+e.x,y:t.y+e.y}}var c=r(30);function l(t,e){return(0,c.direction)(u(t,e))}var f=r(986);function d(t){return{x:(0,f.mean)(t.map(function(t){return t.x})),y:(0,f.mean)(t.map(function(t){return t.y}))}}function m(t,e){return d([t,e])}})(),n})()},854(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){return"number"==typeof t}function n(t){return r(t)&&Number.isFinite(t)}function i(t){return r(t)&&!Number.isFinite(t)}function s(t){return n(t)&&t>0}function o(t){return n(t)&&t>=0}function a(t){return"string"==typeof t}function u(t){return""===t}function h(t){return a(t)&&!u(t)}function c(t){return!!a(t)&&0==t.trim().length}function l(t){if(!a(t))return!1;try{return JSON.parse(t),!0}catch{return!1}}function f(t){try{return JSON.stringify(t),!0}catch{return!1}}function d(t){return!!t}function m(t){return!t}function p(t){return null==t}function y(t){return"object"==typeof t&&null!==t}function g(t){return Array.isArray(t)}function b(t){return g(t)&&0==t.length}function v(t){return g(t)&&t.length>0}function w(t){return g(t)&&t.every(r)}function x(t){return w(t)&&t.length>0}function S(t){return g(t)&&t.every(n)}function N(t){return g(t)&&t.every(i)}function _(t){return g(t)&&t.every(a)}function O(t){return _(t)&&t.length>0}function P(t){return t instanceof SVGGraphicsElement}return t.r(e),t.d(e,{isArray:()=>g,isEmptyArray:()=>b,isEmptyString:()=>u,isFalsy:()=>m,isFiniteNumber:()=>n,isFiniteNumbersArray:()=>S,isJSON:()=>l,isJSONSerializable:()=>f,isNonEmptyArray:()=>v,isNonEmptyNumbersArray:()=>x,isNonEmptyString:()=>h,isNonEmptyStringsArray:()=>O,isNonFiniteNumber:()=>i,isNonFiniteNumbersArray:()=>N,isNonNegativeFiniteNumber:()=>o,isNonNullObject:()=>y,isNullish:()=>p,isNumber:()=>r,isNumbersArray:()=>w,isPositiveFiniteNumber:()=>s,isSVGGraphicsElement:()=>P,isString:()=>a,isStringsArray:()=>_,isTruthy:()=>d,isWhitespace:()=>c}),e})()}};const e={};function r(n){const i=e[n];if(void 0!==i)return i.exports;const s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,r),s.exports}r.d=(t,e)=>{if(Array.isArray(e))for(var n=0;n<e.length;){var i=e[n++],s=e[n++];r.o(t,i)?0===s&&n++:0===s?Object.defineProperty(t,i,{enumerable:!0,value:e[n++]}):Object.defineProperty(t,i,{enumerable:!0,get:s})}else for(var i in e)r.o(e,i)&&!r.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};let n={};return(()=>{"use strict";r.r(n),r.d(n,{AbstractPath:()=>s,CoordinateSystem:()=>y,HorizontalClientScaling:()=>b,InnerXML:()=>_,OuterXML:()=>E,Path:()=>i,Scaling:()=>g,VerticalClientScaling:()=>v,assignUUID:()=>p,bringToFront:()=>w,drawOnCanvas:()=>j,isSVGGraphicsElement:()=>M,isSVGGraphicsElementsArray:()=>T,sendToBack:()=>x,setAttributes:()=>h});var t,e=r(725);class i{constructor(t){this.domNode=t}closestPoint(t){let r=this.domNode.getTotalLength(),n=[];for(let i=0;i<=16;i++){let s=i/16*r;n.push([s,(0,e.distance)(t,this.domNode.getPointAtLength(s))])}n.sort((t,e)=>t[1]-e[1]);let i=n[0],s=i[0]-r/16,o=i[0]+r/16;s=Math.max(0,s),o=Math.min(r,o);for(let r=0;r<20;r++){let r=(o-s)/3;(0,e.distance)(t,this.domNode.getPointAtLength(s))<(0,e.distance)(t,this.domNode.getPointAtLength(o))?o-=r:s+=r}let a=(s+o)/2,u=this.domNode.getPointAtLength(a);return{x:u.x,y:u.y,length:a}}}class s{constructor(e){t.set(this,void 0),function(t,e,r){if("function"==typeof e||!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");e.set(t,r)}(this,t,e)}closestPoint(e){return document.body.contains(a)||document.body.append(a),u.setAttribute("d",function(t,e){if("function"==typeof e||!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return e.get(t)}(this,t)),new i(u).closestPoint(e)}}t=new WeakMap;const o=document.createElementNS("http://www.w3.org/2000/svg","svg");o.setAttribute("viewBox","0 0 100 100"),o.setAttribute("width","100"),o.setAttribute("height","100");const a=document.createElement("div");a.append(o),a.style.height="0px",a.style.position="fixed",document.body.append(a);const u=document.createElementNS("http://www.w3.org/2000/svg","path");function h(t,e){for(let[r,n]of Object.entries(e))t.setAttribute(r,n)}u.setAttribute("stroke","black"),u.setAttribute("stroke-width","1"),o.append(u);const c={randomUUID:"undefined"!=typeof crypto&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};let l;const f=new Uint8Array(16),d=[];for(let t=0;t<256;++t)d.push((t+256).toString(16).slice(1));const m=function(t,e,r){return!c.randomUUID||e||t?function(t,e,r){const n=(t=t||{}).random??t.rng?.()??function(){if(!l){if("undefined"==typeof crypto||!crypto.getRandomValues)throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");l=crypto.getRandomValues.bind(crypto)}return l(f)}();if(n.length<16)throw new Error("Random bytes length must be >= 16");if(n[6]=15&n[6]|64,n[8]=63&n[8]|128,e){if((r=r||0)<0||r+16>e.length)throw new RangeError(`UUID byte range ${r}:${r+15} is out of buffer bounds`);for(let t=0;t<16;++t)e[r+t]=n[t];return e}return function(t,e=0){return(d[t[e+0]]+d[t[e+1]]+d[t[e+2]]+d[t[e+3]]+"-"+d[t[e+4]]+d[t[e+5]]+"-"+d[t[e+6]]+d[t[e+7]]+"-"+d[t[e+8]]+d[t[e+9]]+"-"+d[t[e+10]]+d[t[e+11]]+d[t[e+12]]+d[t[e+13]]+d[t[e+14]]+d[t[e+15]]).toLowerCase()}(n)}(t,e,r):c.randomUUID()};function p(t){t.id="uuid-"+m()}class y{constructor(t){this.targetSVGDoc=t}get width(){return this.targetSVGDoc.viewBox.baseVal.width}get height(){return this.targetSVGDoc.viewBox.baseVal.height}get minX(){return this.targetSVGDoc.viewBox.baseVal.x}get maxX(){return this.minX+this.width}get minY(){return this.targetSVGDoc.viewBox.baseVal.y}get maxY(){return this.minY+this.height}get horizontalScaling(){return this.targetSVGDoc.width.baseVal.value/this.width}get verticalScaling(){return this.targetSVGDoc.height.baseVal.value/this.height}setScaling(t){this.targetSVGDoc.setAttribute("width",""+t*this.width),this.targetSVGDoc.setAttribute("height",""+t*this.height)}get clientWidth(){return this.targetSVGDoc.getBoundingClientRect().width}get clientHeight(){return this.targetSVGDoc.getBoundingClientRect().height}get horizontalClientScaling(){return this.clientWidth/this.width}get verticalClientScaling(){return this.clientHeight/this.height}get minClientX(){return this.targetSVGDoc.getBoundingClientRect().x}get minClientY(){return this.targetSVGDoc.getBoundingClientRect().y}fromClientX(t){return this.minX+(t-this.minClientX)/this.horizontalClientScaling}fromClientY(t){return this.minY+(t-this.minClientY)/this.verticalClientScaling}fromClientCoordinates(t,e){return[this.fromClientX(t),this.fromClientY(e)]}fromClientPoint(t){return{x:this.fromClientX(t.x),y:this.fromClientY(t.y)}}toClientX(t){return this.minClientX+this.horizontalClientScaling*(t-this.minX)}toClientY(t){return this.minClientY+this.verticalClientScaling*(t-this.minY)}toClientCoordinates(t,e){return[this.toClientX(t),this.toClientY(e)]}toClientPoint(t){return{x:this.toClientX(t.x),y:this.toClientY(t.y)}}}class g{constructor(t){this.targetSVGDoc=t}set(t){let e=this.targetSVGDoc.viewBox.baseVal;this.targetSVGDoc.setAttribute("width",t*e.width+"px"),this.targetSVGDoc.setAttribute("height",t*e.height+"px")}}class b{constructor(t){this.targetSVGDoc=t}get(){let t=this.targetSVGDoc.getBoundingClientRect(),e=this.targetSVGDoc.viewBox.baseVal;return t.width/e.width}}class v{constructor(t){this.targetSVGDoc=t}get(){let t=this.targetSVGDoc.getBoundingClientRect(),e=this.targetSVGDoc.viewBox.baseVal;return t.height/e.height}}function w(t){let e=t.parentNode;e&&e.appendChild(t)}function x(t){let e=t.parentNode;e&&e.prepend(t)}var S,N=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class _{constructor(t){S.set(this,void 0),function(t,e,r){if("function"==typeof e||!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");e.set(t,r)}(this,S,t)}toString(){return N(this,S,"f").innerHTML}set(t){N(this,S,"f").innerHTML=t}}S=new WeakMap;var O,P=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class E{constructor(t){O.set(this,void 0),function(t,e,r){if("function"==typeof e||!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");e.set(t,r)}(this,O,t)}toString(){return P(this,O,"f").outerHTML}set(t){let e=document.createElementNS("http://www.w3.org/2000/svg","svg");if(e.style.height="0px",document.body.append(e),e.innerHTML=t,!e.firstElementChild)throw new Error("Outer XML must encode an SVG element.");if(e.childNodes.length>1)throw new Error("Outer XML cannot encode multiple DOM nodes.");if(e.firstElementChild.tagName.toLowerCase()!=P(this,O,"f").tagName.toLowerCase())throw new Error("Outer XML must specify an SVG element with the same tag name as the target SVG element.");[...P(this,O,"f").attributes].forEach(t=>P(this,O,"f").removeAttribute(t.name)),[...e.firstElementChild.attributes].forEach(t=>P(this,O,"f").setAttribute(t.name,t.value)),P(this,O,"f").innerHTML=e.firstElementChild.innerHTML,e.remove()}}function M(t){return t instanceof SVGGraphicsElement}O=new WeakMap;var A=r(854);function T(t){return(0,A.isArray)(t)&&t.every(M)}async function j(t){let e=document.createElement("canvas");e.style.position="fixed",e.style.display="none",e.style.pointerEvents="none",document.body.append(e),e.width=t.width.baseVal.value,e.height=t.height.baseVal.value;let r=e.getContext("2d");if(!r)throw new Error("Unable to get canvas context.");let n=(new XMLSerializer).serializeToString(t),i=new Image;return i.src="data:image/svg+xml;charset=utf-8,"+encodeURIComponent(n),await i.decode(),r.drawImage(i,0,0,t.width.baseVal.value,t.height.baseVal.value),e.remove(),e.style.position="",e.style.display="",e.style.pointerEvents="",e}})(),n})(),t.exports=e()},534(t){var e;e=()=>(()=>{var t={30:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){return Math.pow(Math.pow(t.x,2)+Math.pow(t.y,2),.5)}function n(t){return Math.atan2(t.y,t.x)}return t.r(e),t.d(e,{direction:()=>n,magnitude:()=>r}),e})()},127:function(t){var e;e=()=>(()=>{var t={369:function(t){var e;e=()=>(()=>{var t={854:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){return"number"==typeof t}function n(t){return r(t)&&Number.isFinite(t)}function i(t){return r(t)&&!Number.isFinite(t)}function s(t){return n(t)&&t>0}function o(t){return n(t)&&t>=0}function a(t){return"string"==typeof t}function u(t){return null==t}function h(t){return"object"==typeof t&&null!==t}function c(t){return Array.isArray(t)}function l(t){return c(t)&&0==t.length}function f(t){return c(t)&&t.length>0}function d(t){return c(t)&&t.every(r)}function m(t){return d(t)&&t.length>0}function p(t){return c(t)&&t.every(n)}function y(t){return c(t)&&t.every(i)}function g(t){return c(t)&&t.every(a)}function b(t){return g(t)&&t.length>0}return t.r(e),t.d(e,{isArray:()=>c,isEmptyArray:()=>l,isFiniteNumber:()=>n,isFiniteNumbersArray:()=>p,isNonEmptyArray:()=>f,isNonEmptyNumbersArray:()=>m,isNonEmptyStringsArray:()=>b,isNonFiniteNumber:()=>i,isNonFiniteNumbersArray:()=>y,isNonNegativeFiniteNumber:()=>o,isNonNullObject:()=>h,isNullish:()=>u,isNumber:()=>r,isNumbersArray:()=>d,isPositiveFiniteNumber:()=>s,isString:()=>a,isStringsArray:()=>g}),e})()},986:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){var e=0;return t.forEach(function(t){return e+=t}),e}function n(t){return r(t)/t.length}function i(t){t.sort(function(t,e){return t-e})}t.r(e),t.d(e,{areWithin:()=>d,average:()=>n,clamp:()=>f,degrees:()=>y,flipAway:()=>v,isBetween:()=>c,isBetweenExclusive:()=>l,isBetweenInclusive:()=>c,max:()=>h,mean:()=>n,median:()=>a,min:()=>u,normalizeAngle:()=>b,radians:()=>g,sortNumbers:()=>i,sortNumbersAscending:()=>i,sortNumbersDescending:()=>m,sortedNumbers:()=>o,sortedNumbersAscending:()=>o,sortedNumbersDescending:()=>p,sum:()=>r});var s=function(t,e,r){if(r||2===arguments.length)for(var n,i=0,s=e.length;i<s;i++)!n&&i in e||(n||(n=Array.prototype.slice.call(e,0,i)),n[i]=e[i]);return t.concat(n||Array.prototype.slice.call(e))};function o(t){var e=s([],t,!0);return i(e),e}function a(t){if(0==t.length)return NaN;var e=o(t);if(e.length%2!=0)return e[Math.floor(e.length/2)];var r=e.length/2,i=r-1;return n([e[r],e[i]])}function u(t){if(0==t.length)return 1/0;var e=t[0];return t.slice(1).forEach(function(t){e=Math.min(e,t)}),e}function h(t){if(0==t.length)return-1/0;var e=t[0];return t.slice(1).forEach(function(t){e=Math.max(e,t)}),e}function c(t,e,r){return t>=e&&t<=r}function l(t,e,r){return t>e&&t<r}function f(t,e,r){return t<e?e:t>r?r:t}function d(t,e,r){return Math.abs(t-e)<=r}function m(t){i(t),t.reverse()}function p(t){var e=o(t);return e.reverse(),e}function y(t){return t*(180/Math.PI)}function g(t){return t*(Math.PI/180)}function b(t,e){void 0===e&&(e=-Math.PI);var r=t-e;return e+((r%=2*Math.PI)>=0?r:r+2*Math.PI)}function v(t,e){var r=(e=b(e,t))-t;return(r<Math.PI/2||r>3*Math.PI/2)&&(t+=Math.PI),t}return e})()}},e={};function r(n){var i=e[n];if(void 0!==i)return i.exports;var s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,r),s.exports}r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var n={};return(()=>{"use strict";r.r(n),r.d(n,{Linkers:()=>y,Stems:()=>p,areConflicting:()=>h,areCrossing:()=>f,areEqual:()=>a,areKnotless:()=>l,areStacked:()=>u,basePairs:()=>v,deepCopy:()=>i,knotless:()=>d,mountainPlotTraversal:()=>g,parseDotBracket:()=>b,radializable:()=>m,sorted:()=>o});var t=r(854),e=function(t,e,r){if(r||2===arguments.length)for(var n,i=0,s=e.length;i<s;i++)!n&&i in e||(n||(n=Array.prototype.slice.call(e,0,i)),n[i]=e[i]);return t.concat(n||Array.prototype.slice.call(e))};function i(r){return(0,t.isNumbersArray)(r)?e([],r,!0):r.map(function(t){return e([],t,!0)})}var s=r(986);function o(t){var e=i(t);return e.forEach(s.sortNumbers),e.sort(function(t,e){return t[0]-e[0]}),e}function a(t,e){var r=i(t),n=i(e);return(0,s.sortNumbers)(r),(0,s.sortNumbers)(n),[0,1].every(function(t){return r[t]==n[t]})}function u(t,e){var r=o([t,e]);return r[0][0]==r[1][0]-1&&r[0][1]==r[1][1]+1}function h(t,e){return(0,s.min)(t)==(0,s.min)(e)&&(0,s.max)(t)!=(0,s.max)(e)||(0,s.min)(t)!=(0,s.min)(e)&&(0,s.max)(t)==(0,s.max)(e)}function c(t){if(0==t.length)return[];for(var e=[],r=0;r<(0,s.max)(t.flat());r++)e.push(void 0);return t.forEach(function(t){e[t[0]-1]=t[1],e[t[1]-1]=t[0]}),e}function l(t){var e=c(t),r=[],n=!1;return e.forEach(function(t,e){var i=e+1;null==t||(i<t?r.push(i):i==t||r.pop()!=t&&(n=!0))}),!n}function f(t,e){return!l([t,e])}function d(t){var e=[],r=i(t);r.sort(function(t,e){return Math.abs(t[0]-t[1])-Math.abs(e[0]-e[1])});var n=[];return r.forEach(function(t){var r=[t[0]-1,t[1]-1],i=(0,s.min)(r),o=(0,s.max)(r);if(!n[i]&&!n[o]){e.push(t);for(var a=i;a<=o;a++)n[a]=!0}}),e}function m(t){var e=i(t);e.sort(function(t,e){var r=t[0],n=t[1],i=e[0],s=e[1];return Math.abs(r-n)-Math.abs(i-s)});var r=[],n=[];return e.forEach(function(t){var e=t[0],i=t[1];e==i||null!=n[e-1]||null!=n[i-1]||(r.push([e,i]),n[e-1]=i,n[i-1]=e)}),d(r)}var p=function(){function t(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];this.targetStructure=t}return t.prototype.get=function(){var t=this.targetStructure[1];if(0==t.length)return[];var e=o(t),r=[],n=[];return e.forEach(function(t){var e=0==n.length?null:n[n.length-1];!e||u(e,t)?n.push(t):(r.push(n),n=[t])}),r.push(n),r},t}(),y=function(){function t(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];this.targetStructure=t}return t.prototype.get=function(){var t=(new(p.bind.apply(p,function(t,e,r){if(r||2===arguments.length)for(var n,i=0,s=e.length;i<s;i++)!n&&i in e||(n||(n=Array.prototype.slice.call(e,0,i)),n[i]=e[i]);return t.concat(n||Array.prototype.slice.call(e))}([void 0],this.targetStructure,!1)))).get().flatMap(function(t){return[t.map(s.min),t.map(s.max)]});t.forEach(s.sortNumbers),t.sort(function(t,e){return(0,s.min)(t)-(0,s.min)(e)});for(var e=[],r=t.shift(),n=t.shift();r&&n;){for(var i=[],o=(0,s.max)(r),a=(0,s.min)(n),u=o;u<=a;u++)i.push(u);e.push(i),r=n,n=t.shift()}return e},t}();function g(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];var r=t[0],n=t[1],i=c(n);if(!l(n))throw new Error("Pseudoknot(s) encountered.");var s=[],o=0;return r.forEach(function(t,e){var r=e+1,n=i[e];null==n?s.push(o):r<n?(s.push(o),o++):(r==n||o--,s.push(o))}),s}function b(t){var e=t.split(""),r=[".","(",")"];e.forEach(function(t){if(!r.includes(t))throw new Error('Unrecognized character in dot-bracket notation: "'.concat(t,'".'))});var n=[],i=[];if(e.forEach(function(t,e){var r=e+1;if("("==t)i.push(r);else if(")"==t){var s=i.pop();if("number"!=typeof s)throw new Error("Unmatched downstream partner(s) in dot-bracket notation.");n.push([s,r])}}),i.length>0)throw new Error("Unmatched upstream partner(s) in dot-bracket notation.");return o(n)}function v(t,e){return e.forEach(function(e){e.forEach(function(e){if(e<1)throw new Error("Sequence positions must be positive.");if(e>t.length)throw new Error("Position out of sequence range.")})}),e.map(function(e){return[t[e[0]-1],t[e[1]-1]]})}})(),n})(),t.exports=e()},986:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){var e=0;return t.forEach(function(t){return e+=t}),e}function n(t){return r(t)/t.length}function i(t){t.sort(function(t,e){return t-e})}t.r(e),t.d(e,{areWithin:()=>d,average:()=>n,clamp:()=>f,degrees:()=>y,flipAway:()=>v,isBetween:()=>c,isBetweenExclusive:()=>l,isBetweenInclusive:()=>c,max:()=>h,mean:()=>n,median:()=>a,min:()=>u,normalizeAngle:()=>b,radians:()=>g,sortNumbers:()=>i,sortNumbersAscending:()=>i,sortNumbersDescending:()=>m,sortedNumbers:()=>o,sortedNumbersAscending:()=>o,sortedNumbersDescending:()=>p,sum:()=>r});var s=function(t,e,r){if(r||2===arguments.length)for(var n,i=0,s=e.length;i<s;i++)!n&&i in e||(n||(n=Array.prototype.slice.call(e,0,i)),n[i]=e[i]);return t.concat(n||Array.prototype.slice.call(e))};function o(t){var e=s([],t,!0);return i(e),e}function a(t){if(0==t.length)return NaN;var e=o(t);if(e.length%2!=0)return e[Math.floor(e.length/2)];var r=e.length/2,i=r-1;return n([e[r],e[i]])}function u(t){if(0==t.length)return 1/0;var e=t[0];return t.slice(1).forEach(function(t){e=Math.min(e,t)}),e}function h(t){if(0==t.length)return-1/0;var e=t[0];return t.slice(1).forEach(function(t){e=Math.max(e,t)}),e}function c(t,e,r){return t>=e&&t<=r}function l(t,e,r){return t>e&&t<r}function f(t,e,r){return t<e?e:t>r?r:t}function d(t,e,r){return Math.abs(t-e)<=r}function m(t){i(t),t.reverse()}function p(t){var e=o(t);return e.reverse(),e}function y(t){return t*(180/Math.PI)}function g(t){return t*(Math.PI/180)}function b(t,e){void 0===e&&(e=-Math.PI);var r=t-e;return e+((r%=2*Math.PI)>=0?r:r+2*Math.PI)}function v(t,e){var r=(e=b(e,t))-t;return(r<Math.PI/2||r>3*Math.PI/2)&&(t+=Math.PI),t}return e})()}},e={};function r(n){var i=e[n];if(void 0!==i)return i.exports;var s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,r),s.exports}r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var n={};return(()=>{"use strict";function t(t,e){return t[0]===e[0]&&t[1]===e[1]||t[0]===e[1]&&t[1]===e[0]}function e(t,e){if(!e.includes(t))throw new Error("The given base is not present in the provided base-pair.");return t===e[0]?e[1]:e[0]}r.r(n),r.d(n,{FirstPairedBase:()=>s,LastPairedBase:()=>a,LeadingDanglingBases:()=>u,Linkers:()=>f,PositionPairs:()=>i,Stems:()=>l,TrailingDanglingBases:()=>h,antiParallelPairs:()=>b,areEqual:()=>t,consecutivePairs:()=>y,knotless:()=>d,missing:()=>v,other:()=>e,parallelPairs:()=>g,parseDotBracket:()=>p,radializable:()=>m});class i{constructor(...t){this.targetStructure=t}get(){let t=this.targetStructure[0];return this.targetStructure[1].map(e=>[t.indexOf(e[0])+1,t.indexOf(e[1])+1])}}class s{constructor(...t){this.targetStructure=t}get(){let t=this.targetStructure[0],e=this.targetStructure[1];if(0==e.length)throw new Error("There are no paired bases.");let r=e.flat(),n=t.findIndex(t=>r.includes(t));if(n<0)throw new Error("No paired bases present in sequence.");return t[n]}}var o=r(986);class a{constructor(...t){this.targetStructure=t}get(){let t=this.targetStructure[0],e=this.targetStructure[1];if(0==e.length)throw new Error("There are no paired bases.");let r=e.flat().map(e=>t.indexOf(e));if((0,o.max)(r)<0)throw new Error("No paired bases present in sequence.");return t[(0,o.max)(r)]}}class u{constructor(...t){this.targetStructure=t}get(){let t=this.targetStructure[0];if(0==this.targetStructure[1].length)throw new Error("There are no paired bases.");let e=new s(...this.targetStructure).get(),r=t.indexOf(e);if(r<0)throw new Error("No paired bases present in sequence.");return t.slice(0,r)}}class h{constructor(...t){this.targetStructure=t}get(){let t=this.targetStructure[0];if(0==this.targetStructure[1].length)throw new Error("There are no paired bases.");let e=new a(...this.targetStructure).get(),r=t.indexOf(e);if(r<0)throw new Error("No paired bases present in sequence.");return t.slice(r+1)}}var c=r(369);class l{constructor(...t){this.targetStructure=t}get(){let t=this.targetStructure[0],e=new i(...this.targetStructure).get();return new c.Stems(t,e).get().map(e=>e.map(e=>[t[e[0]-1],t[e[1]-1]]))}}class f{constructor(...t){this.targetStructure=t}get(){let t=this.targetStructure[0],e=new i(...this.targetStructure).get();return new c.Linkers(t,e).get().map(e=>e.map(e=>t[e-1]))}}function d(...t){let[e,r]=t,n=new i(...t).get();(0,c.areKnotless)(n)||(n=(0,c.knotless)(n));let s=n.map(t=>[e[t[0]-1],e[t[1]-1]]);return[[...e],s]}function m(...t){let[e,r]=t,n=new i(...t).get();return[[...e],(0,c.radializable)(n).map(([t,r])=>[e[t-1],e[r-1]])]}function p(t,e){if(e.length>t.length)throw new Error("Dot-bracket notation is longer than the sequence.");return[...(0,c.parseDotBracket)(e)].map(e=>{let r=e[0],n=e[1];return[t[r-1],t[n-1]]})}function y(t){return t.length<2?[]:t.slice(0,-1).map((e,r)=>[t[r],t[r+1]])}function g(t){let e=[],r=Math.floor(t.length/2)-1,n=Math.ceil(t.length/2);for(let i=0;i<=r;i++){let r=t[i],s=t[n+i];e.push([r,s])}return e}function b(t){let e=[];for(let r=0;r<Math.floor(t.length/2);r++){let n=t[r],i=t[t.length-r-1];e.push([n,i])}return e}function v(e,r){return r.filter(r=>!e.find(e=>t(r,e))).map(t=>[...t])}})(),n})(),t.exports=e()},173:function(t){var e;e=()=>(()=>{var t={422:function(t){t.exports=(()=>{var t={138:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){var e=0;return t.forEach(function(t){return e+=t}),e}function n(t){return r(t)/t.length}return t.r(e),t.d(e,{average:()=>n,mean:()=>n,sum:()=>r}),e})()}},e={};function r(n){var i=e[n];if(void 0!==i)return i.exports;var s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,r),s.exports}r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var n={};return(()=>{"use strict";function t(t,e){var r=e.x-t.x,n=e.y-t.y;return Math.pow(Math.pow(r,2)+Math.pow(n,2),.5)}function e(t,e){return{x:e.x-t.x,y:e.y-t.y}}r.r(n),r.d(n,{centroid:()=>s,displacement:()=>e,distance:()=>t,midpoint:()=>o});var i=r(138);function s(t){return{x:(0,i.mean)(t.map(function(t){return t.x})),y:(0,i.mean)(t.map(function(t){return t.y}))}}function o(t,e){return s([t,e])}})(),n})()},872:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){return Math.atan2(t.y,t.x)}return t.r(e),t.d(e,{direction:()=>r}),e})()}},e={};function r(n){var i=e[n];if(void 0!==i)return i.exports;var s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,r),s.exports}r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var n={};return(()=>{"use strict";r.r(n),r.d(n,{CircularSegment:()=>a,Semicircle:()=>e});var t=r(422),e=function(){function e(t){this.chord=t}return Object.defineProperty(e.prototype,"chordLength",{get:function(){return(0,t.distance)(this.chord[0],this.chord[1])},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"arcLength",{get:function(){return Math.PI*this.chordLength/2},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"arcAngle",{get:function(){return Math.PI},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"parentCircleRadius",{get:function(){return this.chordLength/2},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"parentCircleDiameter",{get:function(){return 2*this.parentCircleRadius},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"parentCircleCircumference",{get:function(){return 2*Math.PI*this.parentCircleRadius},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"parentCircleCenterPoint",{get:function(){return(0,t.midpoint)(this.chord[0],this.chord[1])},enumerable:!1,configurable:!0}),e}(),i=r(872),s=function(){function e(e,r){this.chord=e,this.moreProps=r;var n=r.arcLength,i=(0,t.distance)(e[0],e[1]);if(n<=i)throw new Error("Arc length is too small.");if(n>=Math.PI*i/2)throw new Error("Arc length is too big.");for(var s=Math.PI/2,o=0;o<20;o++)s-=(n/i*Math.sin(s)-s)/(n/i*Math.cos(s)-1);this.arcAngle=2*s}return Object.defineProperty(e.prototype,"chordLength",{get:function(){return(0,t.distance)(this.chord[0],this.chord[1])},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"arcLength",{get:function(){return this.moreProps.arcLength},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"parentCircleRadius",{get:function(){return this.arcLength/this.arcAngle},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"parentCircleDiameter",{get:function(){return 2*this.parentCircleRadius},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"parentCircleCircumference",{get:function(){return 2*Math.PI*this.parentCircleRadius},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"parentCircleCenterPoint",{get:function(){var e=(0,i.direction)((0,t.displacement)(this.chord[0],this.chord[1]));e+=(Math.PI-this.arcAngle)/2;var r=this.parentCircleRadius;return{x:this.chord[0].x+r*Math.cos(e),y:this.chord[0].y+r*Math.sin(e)}},enumerable:!1,configurable:!0}),e}(),o=function(){function e(e,r){this.chord=e,this.moreProps=r;var n=r.arcLength,i=(0,t.distance)(e[0],e[1]);if(0==i)throw new Error("Chord length cannot be zero.");if(n<=Math.PI*i/2)throw new Error("Arc length is too small.");for(var s=Math.PI,o=0;o<20;o++)s-=(n/i*Math.sin(Math.PI-s)-s)/(-n/i*Math.cos(Math.PI-s)-1);this.arcAngle=2*s}return Object.defineProperty(e.prototype,"chordLength",{get:function(){return(0,t.distance)(this.chord[0],this.chord[1])},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"arcLength",{get:function(){return this.moreProps.arcLength},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"parentCircleRadius",{get:function(){return this.arcLength/this.arcAngle},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"parentCircleDiameter",{get:function(){return 2*this.parentCircleRadius},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"parentCircleCircumference",{get:function(){return 2*Math.PI*this.parentCircleRadius},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"parentCircleCenterPoint",{get:function(){var e=(0,i.direction)((0,t.displacement)(this.chord[0],this.chord[1]));e-=(this.arcAngle-Math.PI)/2;var r=this.parentCircleRadius;return{x:this.chord[0].x+r*Math.cos(e),y:this.chord[0].y+r*Math.sin(e)}},enumerable:!1,configurable:!0}),e}(),a=function(){function r(r,n){this.chord=r,this.moreProps=n;var i=n.arcLength,a=(0,t.distance)(r[0],r[1]);if(a>0&&i<=a)throw new Error("Arc length is too small.");var u=a<.001&&i<.001,h=Math.PI*a/2,c=Math.abs(i-h)<.001;this.wrappedCircularSegment=u||c?new e(r):i<h?new s(r,{arcLength:i}):new o(r,{arcLength:i})}return Object.defineProperty(r.prototype,"chordLength",{get:function(){return this.wrappedCircularSegment.chordLength},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"arcLength",{get:function(){return this.moreProps.arcLength},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"arcAngle",{get:function(){return this.wrappedCircularSegment.arcAngle},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"parentCircleRadius",{get:function(){return this.wrappedCircularSegment.parentCircleRadius},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"parentCircleDiameter",{get:function(){return this.wrappedCircularSegment.parentCircleDiameter},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"parentCircleCircumference",{get:function(){return this.wrappedCircularSegment.parentCircleCircumference},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"parentCircleCenterPoint",{get:function(){return this.wrappedCircularSegment.parentCircleCenterPoint},enumerable:!1,configurable:!0}),r}()})(),n})(),t.exports=e()},369:function(t){var e;e=()=>(()=>{var t={854:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){return"number"==typeof t}function n(t){return r(t)&&Number.isFinite(t)}function i(t){return r(t)&&!Number.isFinite(t)}function s(t){return n(t)&&t>0}function o(t){return n(t)&&t>=0}function a(t){return"string"==typeof t}function u(t){return null==t}function h(t){return"object"==typeof t&&null!==t}function c(t){return Array.isArray(t)}function l(t){return c(t)&&0==t.length}function f(t){return c(t)&&t.length>0}function d(t){return c(t)&&t.every(r)}function m(t){return d(t)&&t.length>0}function p(t){return c(t)&&t.every(n)}function y(t){return c(t)&&t.every(i)}function g(t){return c(t)&&t.every(a)}function b(t){return g(t)&&t.length>0}return t.r(e),t.d(e,{isArray:()=>c,isEmptyArray:()=>l,isFiniteNumber:()=>n,isFiniteNumbersArray:()=>p,isNonEmptyArray:()=>f,isNonEmptyNumbersArray:()=>m,isNonEmptyStringsArray:()=>b,isNonFiniteNumber:()=>i,isNonFiniteNumbersArray:()=>y,isNonNegativeFiniteNumber:()=>o,isNonNullObject:()=>h,isNullish:()=>u,isNumber:()=>r,isNumbersArray:()=>d,isPositiveFiniteNumber:()=>s,isString:()=>a,isStringsArray:()=>g}),e})()},986:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){var e=0;return t.forEach(function(t){return e+=t}),e}function n(t){return r(t)/t.length}function i(t){t.sort(function(t,e){return t-e})}t.r(e),t.d(e,{areWithin:()=>d,average:()=>n,clamp:()=>f,degrees:()=>y,flipAway:()=>v,isBetween:()=>c,isBetweenExclusive:()=>l,isBetweenInclusive:()=>c,max:()=>h,mean:()=>n,median:()=>a,min:()=>u,normalizeAngle:()=>b,radians:()=>g,sortNumbers:()=>i,sortNumbersAscending:()=>i,sortNumbersDescending:()=>m,sortedNumbers:()=>o,sortedNumbersAscending:()=>o,sortedNumbersDescending:()=>p,sum:()=>r});var s=function(t,e,r){if(r||2===arguments.length)for(var n,i=0,s=e.length;i<s;i++)!n&&i in e||(n||(n=Array.prototype.slice.call(e,0,i)),n[i]=e[i]);return t.concat(n||Array.prototype.slice.call(e))};function o(t){var e=s([],t,!0);return i(e),e}function a(t){if(0==t.length)return NaN;var e=o(t);if(e.length%2!=0)return e[Math.floor(e.length/2)];var r=e.length/2,i=r-1;return n([e[r],e[i]])}function u(t){if(0==t.length)return 1/0;var e=t[0];return t.slice(1).forEach(function(t){e=Math.min(e,t)}),e}function h(t){if(0==t.length)return-1/0;var e=t[0];return t.slice(1).forEach(function(t){e=Math.max(e,t)}),e}function c(t,e,r){return t>=e&&t<=r}function l(t,e,r){return t>e&&t<r}function f(t,e,r){return t<e?e:t>r?r:t}function d(t,e,r){return Math.abs(t-e)<=r}function m(t){i(t),t.reverse()}function p(t){var e=o(t);return e.reverse(),e}function y(t){return t*(180/Math.PI)}function g(t){return t*(Math.PI/180)}function b(t,e){void 0===e&&(e=-Math.PI);var r=t-e;return e+((r%=2*Math.PI)>=0?r:r+2*Math.PI)}function v(t,e){var r=(e=b(e,t))-t;return(r<Math.PI/2||r>3*Math.PI/2)&&(t+=Math.PI),t}return e})()}},e={};function r(n){var i=e[n];if(void 0!==i)return i.exports;var s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,r),s.exports}r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var n={};return(()=>{"use strict";r.r(n),r.d(n,{Linkers:()=>y,Stems:()=>p,areConflicting:()=>h,areCrossing:()=>f,areEqual:()=>a,areKnotless:()=>l,areStacked:()=>u,basePairs:()=>v,deepCopy:()=>i,knotless:()=>d,mountainPlotTraversal:()=>g,parseDotBracket:()=>b,radializable:()=>m,sorted:()=>o});var t=r(854),e=function(t,e,r){if(r||2===arguments.length)for(var n,i=0,s=e.length;i<s;i++)!n&&i in e||(n||(n=Array.prototype.slice.call(e,0,i)),n[i]=e[i]);return t.concat(n||Array.prototype.slice.call(e))};function i(r){return(0,t.isNumbersArray)(r)?e([],r,!0):r.map(function(t){return e([],t,!0)})}var s=r(986);function o(t){var e=i(t);return e.forEach(s.sortNumbers),e.sort(function(t,e){return t[0]-e[0]}),e}function a(t,e){var r=i(t),n=i(e);return(0,s.sortNumbers)(r),(0,s.sortNumbers)(n),[0,1].every(function(t){return r[t]==n[t]})}function u(t,e){var r=o([t,e]);return r[0][0]==r[1][0]-1&&r[0][1]==r[1][1]+1}function h(t,e){return(0,s.min)(t)==(0,s.min)(e)&&(0,s.max)(t)!=(0,s.max)(e)||(0,s.min)(t)!=(0,s.min)(e)&&(0,s.max)(t)==(0,s.max)(e)}function c(t){if(0==t.length)return[];for(var e=[],r=0;r<(0,s.max)(t.flat());r++)e.push(void 0);return t.forEach(function(t){e[t[0]-1]=t[1],e[t[1]-1]=t[0]}),e}function l(t){var e=c(t),r=[],n=!1;return e.forEach(function(t,e){var i=e+1;null==t||(i<t?r.push(i):i==t||r.pop()!=t&&(n=!0))}),!n}function f(t,e){return!l([t,e])}function d(t){var e=[],r=i(t);r.sort(function(t,e){return Math.abs(t[0]-t[1])-Math.abs(e[0]-e[1])});var n=[];return r.forEach(function(t){var r=[t[0]-1,t[1]-1],i=(0,s.min)(r),o=(0,s.max)(r);if(!n[i]&&!n[o]){e.push(t);for(var a=i;a<=o;a++)n[a]=!0}}),e}function m(t){var e=i(t);e.sort(function(t,e){var r=t[0],n=t[1],i=e[0],s=e[1];return Math.abs(r-n)-Math.abs(i-s)});var r=[],n=[];return e.forEach(function(t){var e=t[0],i=t[1];e==i||null!=n[e-1]||null!=n[i-1]||(r.push([e,i]),n[e-1]=i,n[i-1]=e)}),d(r)}var p=function(){function t(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];this.targetStructure=t}return t.prototype.get=function(){var t=this.targetStructure[1];if(0==t.length)return[];var e=o(t),r=[],n=[];return e.forEach(function(t){var e=0==n.length?null:n[n.length-1];!e||u(e,t)?n.push(t):(r.push(n),n=[t])}),r.push(n),r},t}(),y=function(){function t(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];this.targetStructure=t}return t.prototype.get=function(){var t=(new(p.bind.apply(p,function(t,e,r){if(r||2===arguments.length)for(var n,i=0,s=e.length;i<s;i++)!n&&i in e||(n||(n=Array.prototype.slice.call(e,0,i)),n[i]=e[i]);return t.concat(n||Array.prototype.slice.call(e))}([void 0],this.targetStructure,!1)))).get().flatMap(function(t){return[t.map(s.min),t.map(s.max)]});t.forEach(s.sortNumbers),t.sort(function(t,e){return(0,s.min)(t)-(0,s.min)(e)});for(var e=[],r=t.shift(),n=t.shift();r&&n;){for(var i=[],o=(0,s.max)(r),a=(0,s.min)(n),u=o;u<=a;u++)i.push(u);e.push(i),r=n,n=t.shift()}return e},t}();function g(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];var r=t[0],n=t[1],i=c(n);if(!l(n))throw new Error("Pseudoknot(s) encountered.");var s=[],o=0;return r.forEach(function(t,e){var r=e+1,n=i[e];null==n?s.push(o):r<n?(s.push(o),o++):(r==n||o--,s.push(o))}),s}function b(t){var e=t.split(""),r=[".","(",")"];e.forEach(function(t){if(!r.includes(t))throw new Error('Unrecognized character in dot-bracket notation: "'.concat(t,'".'))});var n=[],i=[];if(e.forEach(function(t,e){var r=e+1;if("("==t)i.push(r);else if(")"==t){var s=i.pop();if("number"!=typeof s)throw new Error("Unmatched downstream partner(s) in dot-bracket notation.");n.push([s,r])}}),i.length>0)throw new Error("Unmatched upstream partner(s) in dot-bracket notation.");return o(n)}function v(t,e){return e.forEach(function(e){e.forEach(function(e){if(e<1)throw new Error("Sequence positions must be positive.");if(e>t.length)throw new Error("Position out of sequence range.")})}),e.map(function(e){return[t[e[0]-1],t[e[1]-1]]})}})(),n})(),t.exports=e()},456:function(t){var e;e=()=>(()=>{var t={277:function(t){var e;e=()=>(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};t.r(e),t.d(e,{Vector:()=>r});class r{static matching(t){return new r(t.x,t.y)}constructor(t,e){this.x=t,this.y=e}[Symbol.iterator](){return[this.x,this.y].values()}get magnitude(){return Math.sqrt(Math.pow(this.x,2)+Math.pow(this.y,2))}get direction(){return Math.atan2(this.y,this.x)}}return e})(),t.exports=e()}},e={};function r(n){var i=e[n];if(void 0!==i)return i.exports;var s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,r),s.exports}r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var n={};return(()=>{"use strict";r.r(n),r.d(n,{Point:()=>e,RelativePoint:()=>c});var t=r(277);class e{static matching(t){return new e(t.x,t.y)}constructor(t,e){this.x=t,this.y=e}[Symbol.iterator](){return[this.x,this.y].values()}displacementTo(e){return new t.Vector(e.x-this.x,e.y-this.y)}displacementFrom(e){return new t.Vector(this.x-e.x,this.y-e.y)}distanceTo(t){return this.displacementTo(t).magnitude}distanceFrom(t){return this.distanceTo(t)}directionTo(t){return this.displacementTo(t).direction}directionFrom(t){return this.displacementFrom(t).direction}}var i,s,o,a,u,h=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class c{constructor(e){i.add(this),s.set(this,void 0),o.set(this,new t.Vector(0,0)),a.set(this,{move:[]}),function(t,e,r){if("function"==typeof e||!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");e.set(t,r)}(this,s,e),e.addEventListener("move",()=>h(this,i,"m",u).call(this,"move"))}get x(){return h(this,s,"f").x+h(this,o,"f").x}set x(t){h(this,o,"f").x=t-h(this,s,"f").x,h(this,i,"m",u).call(this,"move")}get y(){return h(this,s,"f").y+h(this,o,"f").y}set y(t){h(this,o,"f").y=t-h(this,s,"f").y,h(this,i,"m",u).call(this,"move")}addEventListener(t,e){h(this,a,"f")[t].push(e)}removeEventListener(t,e){h(this,a,"f")[t]=h(this,a,"f")[t].filter(t=>t!==e)}}s=new WeakMap,o=new WeakMap,a=new WeakMap,i=new WeakSet,u=function(t){h(this,a,"f")[t].forEach(t=>t())}})(),n})(),t.exports=e()},725:function(t){t.exports=(()=>{var t={986:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){var e=0;return t.forEach(function(t){return e+=t}),e}function n(t){return r(t)/t.length}function i(t){t.sort(function(t,e){return t-e})}t.r(e),t.d(e,{areWithin:()=>f,average:()=>n,degrees:()=>p,isBetweenExclusive:()=>l,isBetweenInclusive:()=>c,max:()=>h,mean:()=>n,median:()=>a,min:()=>u,radians:()=>y,sortNumbers:()=>i,sortNumbersAscending:()=>i,sortNumbersDescending:()=>d,sortedNumbers:()=>o,sortedNumbersAscending:()=>o,sortedNumbersDescending:()=>m,sum:()=>r});var s=function(t,e,r){if(r||2===arguments.length)for(var n,i=0,s=e.length;i<s;i++)!n&&i in e||(n||(n=Array.prototype.slice.call(e,0,i)),n[i]=e[i]);return t.concat(n||Array.prototype.slice.call(e))};function o(t){var e=s([],t,!0);return i(e),e}function a(t){if(0==t.length)return NaN;var e=o(t);if(e.length%2!=0)return e[Math.floor(e.length/2)];var r=e.length/2,i=r-1;return n([e[r],e[i]])}function u(t){if(0==t.length)return 1/0;var e=t[0];return t.slice(1).forEach(function(t){e=Math.min(e,t)}),e}function h(t){if(0==t.length)return-1/0;var e=t[0];return t.slice(1).forEach(function(t){e=Math.max(e,t)}),e}function c(t,e,r){return t>=e&&t<=r}function l(t,e,r){return t>e&&t<r}function f(t,e,r){return Math.abs(t-e)<=r}function d(t){i(t),t.reverse()}function m(t){var e=o(t);return e.reverse(),e}function p(t){return t*(180/Math.PI)}function y(t){return t*(Math.PI/180)}return e})()},854:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){return"number"==typeof t}function n(t){return r(t)&&Number.isFinite(t)}function i(t){return r(t)&&!Number.isFinite(t)}function s(t){return n(t)&&t>0}function o(t){return n(t)&&t>=0}function a(t){return"string"==typeof t}function u(t){return null==t}function h(t){return"object"==typeof t&&null!==t}function c(t){return Array.isArray(t)}return t.r(e),t.d(e,{isArray:()=>c,isFiniteNumber:()=>n,isNonFiniteNumber:()=>i,isNonNegativeFiniteNumber:()=>o,isNonNullObject:()=>h,isNullish:()=>u,isNumber:()=>r,isPositiveFiniteNumber:()=>s,isString:()=>a}),e})()},30:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){return Math.pow(Math.pow(t.x,2)+Math.pow(t.y,2),.5)}function n(t){return Math.atan2(t.y,t.x)}return t.r(e),t.d(e,{direction:()=>n,magnitude:()=>r}),e})()}},e={};function r(n){var i=e[n];if(void 0!==i)return i.exports;var s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,r),s.exports}r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var n={};return(()=>{"use strict";r.r(n),r.d(n,{areWithin:()=>a,centroid:()=>d,deepCopy:()=>s,direction:()=>l,displaced:()=>h,displacement:()=>u,distance:()=>o,isFinitePoint:()=>i,isPoint:()=>e,midpoint:()=>m});var t=r(854);function e(e){return(0,t.isNonNullObject)(e)&&(0,t.isNumber)(e.x)&&(0,t.isNumber)(e.y)}function i(r){return e(r)&&(0,t.isFiniteNumber)(r.x)&&(0,t.isFiniteNumber)(r.y)}function s(t){return{x:t.x,y:t.y}}function o(t,e){var r=e.x-t.x,n=e.y-t.y;return Math.pow(Math.pow(r,2)+Math.pow(n,2),.5)}function a(t,e,r){return o(t,e)<=r}function u(t,e){return{x:e.x-t.x,y:e.y-t.y}}function h(t,e){return{x:t.x+e.x,y:t.y+e.y}}var c=r(30);function l(t,e){return(0,c.direction)(u(t,e))}var f=r(986);function d(t){return{x:(0,f.mean)(t.map(function(t){return t.x})),y:(0,f.mean)(t.map(function(t){return t.y}))}}function m(t,e){return d([t,e])}})(),n})()},986:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){var e=0;return t.forEach(function(t){return e+=t}),e}function n(t){return r(t)/t.length}function i(t){t.sort(function(t,e){return t-e})}t.r(e),t.d(e,{areWithin:()=>d,average:()=>n,clamp:()=>f,degrees:()=>g,flipAway:()=>w,isBetween:()=>c,isBetweenExclusive:()=>l,isBetweenInclusive:()=>c,max:()=>h,mean:()=>n,median:()=>a,min:()=>u,normalizeAngle:()=>v,radians:()=>b,round:()=>y,sortNumbers:()=>i,sortNumbersAscending:()=>i,sortNumbersDescending:()=>m,sortedNumbers:()=>o,sortedNumbersAscending:()=>o,sortedNumbersDescending:()=>p,sum:()=>r});var s=function(t,e,r){if(r||2===arguments.length)for(var n,i=0,s=e.length;i<s;i++)!n&&i in e||(n||(n=Array.prototype.slice.call(e,0,i)),n[i]=e[i]);return t.concat(n||Array.prototype.slice.call(e))};function o(t){var e=s([],t,!0);return i(e),e}function a(t){if(0==t.length)return NaN;var e=o(t);if(e.length%2!=0)return e[Math.floor(e.length/2)];var r=e.length/2,i=r-1;return n([e[r],e[i]])}function u(t){if(0==t.length)return 1/0;var e=t[0];return t.slice(1).forEach(function(t){e=Math.min(e,t)}),e}function h(t){if(0==t.length)return-1/0;var e=t[0];return t.slice(1).forEach(function(t){e=Math.max(e,t)}),e}function c(t,e,r){return t>=e&&t<=r}function l(t,e,r){return t>e&&t<r}function f(t,e,r){return t<e?e:t>r?r:t}function d(t,e,r){return Math.abs(t-e)<=r}function m(t){i(t),t.reverse()}function p(t){var e=o(t);return e.reverse(),e}function y(t,e){return Number.parseFloat(t.toFixed(null!=e?e:0))}function g(t){return t*(180/Math.PI)}function b(t){return t*(Math.PI/180)}function v(t,e){void 0===e&&(e=-Math.PI);var r=t-e;return e+((r%=2*Math.PI)>=0?r:r+2*Math.PI)}function w(t,e){var r=(e=v(e,t))-t;return(r<Math.PI/2||r>3*Math.PI/2)&&(t+=Math.PI),t}return e})()}},e={};function r(n){var i=e[n];if(void 0!==i)return i.exports;var s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,r),s.exports}r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var n={};return(()=>{"use strict";r.r(n),r.d(n,{Centroid:()=>s,Direction:()=>d,MaxCenterX:()=>u,MaxCenterY:()=>c,MinCenterX:()=>a,MinCenterY:()=>h,NucleobaseMock:()=>t,arrange:()=>M,circularize:()=>_,flipSelfX:()=>y,flipSelfY:()=>g,flipX:()=>m,flipY:()=>p,linearize:()=>x,outwardNormal:()=>w,rotate:()=>f,round:()=>P,shift:()=>e,stemmify:()=>N,straighten:()=>S,tangent:()=>b,untangle:()=>F});class t{constructor(t){this.props=t}getCenterPoint(){return this.props.centerPoint}setCenterPoint(t){this.props.centerPoint=t}}function e(t,e){t.forEach(t=>{let r=t.getCenterPoint();t.setCenterPoint({x:r.x+e.x,y:r.y+e.y})})}var i=r(725);class s{constructor(t){this.targetBases=t}get(){let t=this.targetBases.map(t=>t.getCenterPoint());return(0,i.centroid)(t)}set(t){let r=this.get(),n=(0,i.displacement)(r,t);e(this.targetBases,n)}}var o=r(986);class a{constructor(t){this.targetBases=t}get(){return(0,o.min)(this.targetBases.map(t=>t.getCenterPoint().x))}set(t){let r=this.get();e(this.targetBases,{x:t-r,y:0})}}class u{constructor(t){this.targetBases=t}get(){return(0,o.max)(this.targetBases.map(t=>t.getCenterPoint().x))}set(t){let r=this.get();e(this.targetBases,{x:t-r,y:0})}}class h{constructor(t){this.targetBases=t}get(){return(0,o.min)(this.targetBases.map(t=>t.getCenterPoint().y))}set(t){let r=this.get();e(this.targetBases,{x:0,y:t-r})}}class c{constructor(t){this.targetBases=t}get(){return(0,o.max)(this.targetBases.map(t=>t.getCenterPoint().y))}set(t){let r=this.get();e(this.targetBases,{x:0,y:t-r})}}var l=r(30);function f(t,e){if(t.length<2)return;let r=t[0],n=t[t.length-1],s=(0,i.midpoint)(r.getCenterPoint(),n.getCenterPoint());t.forEach(t=>{let r=t.getCenterPoint(),n=(0,i.distance)(s,r),o=(0,l.direction)((0,i.displacement)(s,r));o+=e,t.setCenterPoint({x:s.x+n*Math.cos(o),y:s.y+n*Math.sin(o)})})}class d{constructor(t){this.targetBases=t}get(){if(this.targetBases.length<2)return 0;let t=this.targetBases[0],e=this.targetBases[this.targetBases.length-1];return(0,l.direction)((0,i.displacement)(t.getCenterPoint(),e.getCenterPoint()))}set(t){let e=t-this.get();f(this.targetBases,e)}}function m(t){let e=new s(t).get().y;t.forEach(t=>{let r=t.getCenterPoint(),n=r.y-e;t.setCenterPoint({x:r.x,y:e-n})})}function p(t){let e=new s(t).get().x;t.forEach(t=>{let r=t.getCenterPoint(),n=r.x-e;t.setCenterPoint({x:e-n,y:r.y})})}function y(t){if(0==t.length)return;let r=t[0],{x:n,y:s}=r.getCenterPoint(),o={x:n,y:s},a=new d(t).get();f(t,-a),m(t),f(t,a),e(t,(0,i.displacement)(r.getCenterPoint(),o))}function g(t){let e=new s(t),{x:r,y:n}=e.get(),i=r,o=n,a=new d(t).get();f(t,-a),p(t),f(t,a),e.set({x:i,y:o})}function b(t,e){let r=e.indexOf(t);if(-1==r)throw new Error("The target base is not present in the parent sequence.");let n=r-1,i=r+2;return n=Math.max(n,0),new d(e.slice(n,i)).get()}var v=r(127);function w(t,...e){var r;let n=e[0],s=null!==(r=e[1])&&void 0!==r?r:[],a=b(t,n)-Math.PI/2,u=n.indexOf(t);if(u<0)throw new Error("The target base is not present in the provided structure.");if(n.length>1&&u<n.length-1){let e=n[u+1];a=(0,o.flipAway)(a,(0,i.direction)(t.getCenterPoint(),e.getCenterPoint()))}let h=s.find(e=>e.includes(t));return h&&(a=(0,o.flipAway)(a,(0,i.direction)(t.getCenterPoint(),(0,v.other)(t,h).getCenterPoint()))),a}function x(t,e){let{spacing:r}=e;if(t.length<2)return;let n=new d(t),i=n.get(),o=new s(t),{x:a,y:u}=o.get(),h={x:a,y:u};t.forEach((t,e)=>{t.setCenterPoint({x:e*r,y:0})}),n.set(i),o.set(h)}function S(t){if(t.length<3)return;let e=t[0],r=t[t.length-1],n=[e.getCenterPoint(),r.getCenterPoint()],s=(0,i.distance)(n[0],n[1]),o=(0,l.direction)((0,i.displacement)(n[0],n[1])),a=s/(t.length-1),u=a*Math.cos(o),h=a*Math.sin(o),{x:c,y:f}=n[0];t.forEach(t=>{t.setCenterPoint({x:c,y:f}),c+=u,f+=h})}function N(t,r){let{basePairLength:n,basePairSpacing:o}=r;if(t.length<2)return;let a=Math.ceil(t.length/2),u=t.slice(0,a),h=t.slice(a),c=new s(t),{x:l,y:m}=c.get(),p={x:l,y:m},y=new d(t).get();x(u,{spacing:o}),x(h,{spacing:o}),new d(u).set(-Math.PI/2),new d(h).set(Math.PI/2);let g=t[0],b=t[t.length-1];e(u,(0,i.displacement)(g.getCenterPoint(),{x:0,y:0})),e(h,(0,i.displacement)(b.getCenterPoint(),{x:n,y:0})),f(t,y),c.set(p)}function _(t,e){let{spacing:r,terminiGap:n}=e;if(t.length<2)return;let i=new s(t),{x:o,y:a}=i.get(),u=o,h=a,c=new d(t).get(),l=r*(t.length-1);l+=n,Math.abs(l)<1e-5&&(l=1e-5);let m=l/(2*Math.PI),p=Math.PI/2+2*Math.PI*(.5*n/l);t.forEach((t,e)=>{let n=p+2*Math.PI*(e*r)/l;t.setCenterPoint({x:m*Math.cos(n),y:m*Math.sin(n)})}),f(t,c),i.set({x:u,y:h})}var O=r(173);function P(t,r){let{spacing:n}=r;if(t.length<3)return;let s=t[0],o=t[t.length-1],a=[s.getCenterPoint(),o.getCenterPoint()],u=(0,i.distance)(a[0],a[1]),h=n*(t.length-1);if(h-u<.001)return void S(t);if(u<.001){let{x:r,y:o}=s.getCenterPoint();return _(t,{spacing:n,terminiGap:u}),void e(t,(0,i.displacement)(s.getCenterPoint(),{x:r,y:o}))}let c=new O.CircularSegment(a,{arcLength:h}),f=c.parentCircleCenterPoint,d=c.parentCircleRadius,m=(0,l.direction)((0,i.displacement)(f,s.getCenterPoint())),p=c.arcAngle/(t.length-1);t.forEach(t=>{t.setCenterPoint({x:f.x+d*Math.cos(m),y:f.y+d*Math.sin(m)}),m+=p})}var E=r(369);function M(t,r,n){var a,u,h;let{spacing:c}=n,l=null!==(a=n.basePairSpacing)&&void 0!==a?a:c,f=null!==(u=n.hairpinLoopSpacing)&&void 0!==u?u:c,m=null!==(h=n.terminiGap)&&void 0!==h?h:c,{x:p,y}=new s(t).get(),g={x:p,y},b=new d(t).get();[,r]=(0,v.radializable)(t,r);let w=new v.PositionPairs(t,r).get(),x=(0,E.mountainPlotTraversal)(t,w),S=t.filter((t,e)=>0==x[e]);_(S,{spacing:c,terminiGap:m});let O=new v.Stems(t,r).get(),M=new Set(S),A=O.filter(t=>M.has(t[0][0])),T=r=>{let n=r[0],{x:a,y:u}=new s(n).get(),h={x:a,y:u},m=new d(r[0]).get(),p=[...r.map(t=>t[0]),...r.map(t=>t[1]).reverse()];N(p,{basePairLength:c,basePairSpacing:l}),new d(p).set(m),e(p,(0,i.displacement)(new s(n).get(),h));let y=r[r.length-1],g=y.map(e=>t.indexOf(e)),b=t.filter((t,e)=>(0,o.isBetweenExclusive)(e,(0,o.min)(g),(0,o.max)(g))&&x[e]==x[(0,o.min)(g)]+1),v=new Set(b),w=O.filter(t=>v.has(t[0][0]));P([y[0],...b,y[1]],{spacing:w.length>0?c:f}),w.forEach(t=>T(t))};A.forEach(t=>T(t)),new d(t).set(b),new s(t).set(g)}var A,T,j,C,L,k=r(456),D=function(t,e,r,n,i){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!i:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===n?i.call(t,r):i?i.value=r:e.set(t,r),r},I=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};function F(e,r,n){var i;let a,{spacing:u}=n,h=null!==(i=n.hairpinLoopSpacing)&&void 0!==i?i:u;if(0==e.length)return;if(0==r.length)return void function(t,e){let{spacing:r}=e,n=k.Point.matching(new s(t).get());_(t,{spacing:r,terminiGap:2*r}),new d(t).set(Math.PI/2),new s(t).set(n)}(e,n);[a,r]=(0,v.radializable)(e,r);let c=[...e],l=k.Point.matching(new s(c).get());e=[...e,new t({centerPoint:{x:0,y:0}})];let m=new V(e,r),p=m.loops;p.sort((t,e)=>z(t,m)-z(e,m));let y=p[0],g=(0,o.max)(y.linkers.map(t=>t.length)),b=y.linkers.flatMap(e=>[G(e),...Array.from({length:g-2}).map(()=>new t({centerPoint:{x:0,y:0}})),U(e)]);if(_(b,{spacing:u,terminiGap:u}),f(b,-new d(b).get()),new s(b).set(l),y.linkers.forEach(t=>P(t,{spacing:u})),y.emanatingStems.forEach(t=>B(t.bottomBasePair,m,n)),"outerStem"in y){let t=[y.outerStem.topBasePair[1],y.outerStem.topBasePair[0]],i=[...e.slice(m.indexOf(t[0])),...e.slice(0,m.indexOf(t[1])+1)],s=new Set(i);B(t,new V(i,r.filter(t=>t.every(t=>s.has(t)))),n)}"isHairpinLoop"in y&&y.isHairpinLoop()&&P(y.bases,{spacing:h})}function B(r,n,s){var a,u;let{spacing:h}=s,c=null!==(a=s.basePairSpacing)&&void 0!==a?a:h,l=null!==(u=s.hairpinLoopSpacing)&&void 0!==u?u:h,f=n.stems.find(t=>t.bottomBasePair[0]===r[0]);if(!f)throw new Error("Closing stem not found.");let d=k.Point.matching(r[0].getCenterPoint());N(f.bases,{basePairSpacing:c,basePairLength:h}),e(f.bases,(0,i.displacement)(r[0].getCenterPoint(),d));let m=n.loop(f.topBasePair);m.innerStems.length>0?function(r,n,s){let{spacing:a}=s,u=[n.indexOf(r[0]),n.indexOf(r[1])],h=n.loop(r).innerStems.flatMap(t=>t.bottomBasePair.map(t=>n.indexOf(t))),c=(0,o.min)(h),l=(0,o.max)(h),f=n.sequence.filter((t,e)=>e>=c&&e<=l&&n.mountainPlotTraversal[e]==n.mountainPlotTraversal[c]&&[e-1,e,e+1].some(t=>h.includes(t))),d=(0,o.max)([f.length-2,c-(0,o.min)(u)-1,(0,o.max)(u)-l-1]);d=(0,o.max)([d,0]);let m=Array.from({length:d}).map(()=>new t({centerPoint:{x:0,y:0}})),p=m.map(()=>new t({centerPoint:{x:0,y:0}})),y=k.Point.matching(r[0].getCenterPoint());_([r[0],...m,...f,...p,r[1]],{spacing:a,terminiGap:a}),e([...r,...f],(0,i.displacement)(r[0].getCenterPoint(),y)),P(n.sequence.slice(u[0],c+1),{spacing:a}),P(n.sequence.slice(l,u[1]+1),{spacing:a})}(f.topBasePair,n,s):P(m.bases,{spacing:l}),m.innerStems.forEach(t=>B(t.bottomBasePair,n,s)),(0,v.consecutivePairs)(m.innerStems).map(([t,e])=>[t.bottomBasePair[1],...n.interveningBases(t.bottomBasePair[1],e.bottomBasePair[0]),e.bottomBasePair[0]]).filter(t=>t.length>=5).forEach(t=>{let r=t.slice(1,-1),n=k.Point.matching(r[0].getCenterPoint()),s=(0,i.distance)(G(r).getCenterPoint(),U(r).getCenterPoint());N(r,{basePairLength:s,basePairSpacing:c}),P(r.length%2==0?function(t){if(t.length<4)throw new Error("The array has less than four items.");if(t.length%2!=0)throw new Error("The array has an odd number of items.");return t.slice(Math.floor(t.length/2)-2,Math.floor(t.length/2)+2)}(r):function(t){if(t.length<3)throw new Error("The array has less than three items.");if(t.length%2==0)throw new Error("The array has an even number of items.");let e=Math.floor(t.length/2);return t.slice(e-1,e+2)}(r),{spacing:r.length>=5?c:s}),e(r,(0,i.displacement)(r[0].getCenterPoint(),n))})}class V{constructor(t,e){this.sequence=t,this.basePairs=e,A.set(this,void 0),T.set(this,void 0),j.set(this,void 0),C.set(this,void 0),D(this,A,new Map,"f"),this.sequence.forEach((t,e)=>I(this,A,"f").set(t,e)),D(this,T,new Map,"f"),this.sequence.forEach((t,e)=>I(this,T,"f").set(t,e+1)),D(this,j,new Map,"f"),this.basePairs.forEach(t=>I(this,j,"f").set(t[0],t[1])),this.basePairs.forEach(t=>I(this,j,"f").set(t[1],t[0])),D(this,C,this.basePairs.map(t=>[this.positionOf(t[0]),this.positionOf(t[1])]),"f"),this.mountainPlotTraversal=(0,E.mountainPlotTraversal)(this.sequence,I(this,C,"f")),this.stems=new v.Stems(this.sequence,this.basePairs).get().map(t=>new R(t))}indexOf(t){let e=I(this,A,"f").get(t);if("number"!=typeof e)throw new Error("Base not found.");return e}positionOf(t){let e=I(this,T,"f").get(t);if("number"!=typeof e)throw new Error("Base not found.");return e}spannedBases(t){let e=this.indexOf(t[0]),r=this.indexOf(t[1]);return this.sequence.slice((0,o.min)([e,r])+1,(0,o.max)([e,r]))}numSpannedBases(t){return this.spannedBases(t).length}joinedBases(t){let e=this.indexOf(t[0]),r=this.indexOf(t[1]);return[...this.sequence.slice(0,(0,o.min)([e,r])+1),...this.sequence.slice((0,o.max)([e,r]))]}numJoinedBases(t){return this.joinedBases(t).length}interveningBases(t,e){let r=this.indexOf(t),n=this.indexOf(e);return this.sequence.slice((0,o.min)([r,n])+1,(0,o.max)([r,n]))}get loops(){return[this.outermostLoop,...this.stems.map(t=>this.loop(t.topBasePair))]}loop(t){let e=[this.indexOf(t[0]),this.indexOf(t[1])],r=this.mountainPlotTraversal[e[0]]+1,n=this.spannedBases(t).filter(t=>this.mountainPlotTraversal[this.indexOf(t)]==r),i=new Set(n),s=[t[0],...n,t[1]],o=this.stems.filter(t=>i.has(t.bottomBasePair[0])),a=o,u=this.stems.find(e=>t.includes(e.topBasePair[0]));if(!u)throw new Error("Outer stem not found.");let h=(0,v.consecutivePairs)(o).map(([t,e])=>[t.bottomBasePair[1],...this.interveningBases(t.bottomBasePair[1],e.bottomBasePair[0]),e.bottomBasePair[0]]);return o.length>0&&(h.unshift([t[0],...this.interveningBases(t[0],G(o).bottomBasePair[0]),G(o).bottomBasePair[0]]),h.push([U(o).bottomBasePair[1],...this.interveningBases(U(o).bottomBasePair[1],t[1]),t[1]])),{bases:s,closingBasePair:t,outerStem:u,innerStems:o,emanatingStems:a,linkers:h,isHairpinLoop:()=>0==a.length}}get outermostLoop(){let t=this.stems.filter(t=>0==this.mountainPlotTraversal[this.indexOf(t.bottomBasePair[0])]),e=t,r=(0,v.consecutivePairs)(e).map(([t,e])=>[t.bottomBasePair[1],...this.interveningBases(t.bottomBasePair[1],e.bottomBasePair[0]),e.bottomBasePair[0]]);return e.length>0&&r.push([...this.sequence.slice(this.indexOf(U(e).bottomBasePair[1])),...this.sequence.slice(0,this.indexOf(G(e).bottomBasePair[0])+1)]),{stems:e,emanatingStems:t,linkers:r}}}A=new WeakMap,T=new WeakMap,j=new WeakMap,C=new WeakMap;class R{constructor(t){if(L.set(this,void 0),0==t.length)throw new Error("A stem must have at least one base-pair.");D(this,L,t,"f")}get bottomBasePair(){return G(I(this,L,"f"))}get topBasePair(){return U(I(this,L,"f"))}get side5(){return I(this,L,"f").map(t=>t[0])}get side3(){let t=I(this,L,"f").map(t=>t[1]);return t.reverse(),t}get bases(){return[...this.side5,...this.side3]}}function z(t,e){let r=(0,o.max)(t.emanatingStems.map(t=>e.numSpannedBases(t.bottomBasePair)));return"closingBasePair"in t&&(r=(0,o.max)([r,e.numJoinedBases(t.closingBasePair)-2])),r}function G(t){if(0==t.length)throw new Error("The array is empty.");return t[0]}function U(t){if(0==t.length)throw new Error("The array is empty.");return t[t.length-1]}L=new WeakMap})(),n})(),t.exports=e()},986(t){t.exports=(()=>{"use strict";const t={d:(e,r)=>{if(Array.isArray(r))for(var n=0;n<r.length;){var i=r[n++],s=r[n++];t.o(e,i)?0===s&&n++:0===s?Object.defineProperty(e,i,{enumerable:!0,value:r[n++]}):Object.defineProperty(e,i,{enumerable:!0,get:s})}else for(var i in r)t.o(r,i)&&!t.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:r[i]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}};let e={};function r(t,e){return Math.abs(t-e)}function n(t){let e=0;return t.forEach(t=>e+=t),e}function i(t){return n(t)/t.length}function s(t){t.sort((t,e)=>t-e)}function o(t){let e=[...t];return s(e),e}function a(t){if(0==t.length)return NaN;let e=o(t);if(e.length%2!=0)return e[Math.floor(e.length/2)];let r=e.length/2,n=r-1;return i([e[r],e[n]])}function u(t){if(0==t.length)return 1/0;let e=t[0];return t.slice(1).forEach(t=>{e=Math.min(e,t)}),e}function h(t){if(0==t.length)return-1/0;let e=t[0];return t.slice(1).forEach(t=>{e=Math.max(e,t)}),e}function c(t,e,r){return t>=e&&t<=r}function l(t,e,r){return t>e&&t<r}function f(t,e,r){return t<e?e:t>r?r:t}function d(t,e,r){return Math.abs(t-e)<=r}function m(t){s(t),t.reverse()}function p(t){let e=o(t);return e.reverse(),e}function y(t,e){return Number.parseFloat(t.toFixed(null!=e?e:0))}function g(t){return t*(180/Math.PI)}function b(t){return t*(Math.PI/180)}function v(t,e=-Math.PI){let r=t-e;return r%=2*Math.PI,r=r>=0?r:r+2*Math.PI,e+r}function w(t,e){let r=(e=v(e,t))-t;return(r<Math.PI/2||r>3*Math.PI/2)&&(t+=Math.PI),t}return t.r(e),t.d(e,{areWithin:()=>d,average:()=>i,clamp:()=>f,degrees:()=>g,distance:()=>r,flipAway:()=>w,isBetween:()=>c,isBetweenExclusive:()=>l,isBetweenInclusive:()=>c,max:()=>h,mean:()=>i,median:()=>a,min:()=>u,normalizeAngle:()=>v,radians:()=>b,round:()=>y,sortNumbers:()=>s,sortNumbersAscending:()=>s,sortNumbersDescending:()=>m,sortedNumbers:()=>o,sortedNumbersAscending:()=>o,sortedNumbersDescending:()=>p,sum:()=>n}),e})()},369(t){var e;e=()=>(()=>{var t={986(t){t.exports=(()=>{"use strict";const t={d:(e,r)=>{if(Array.isArray(r))for(var n=0;n<r.length;){var i=r[n++],s=r[n++];t.o(e,i)?0===s&&n++:0===s?Object.defineProperty(e,i,{enumerable:!0,value:r[n++]}):Object.defineProperty(e,i,{enumerable:!0,get:s})}else for(var i in r)t.o(r,i)&&!t.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:r[i]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}};let e={};function r(t,e){return Math.abs(t-e)}function n(t){let e=0;return t.forEach(t=>e+=t),e}function i(t){return n(t)/t.length}function s(t){t.sort((t,e)=>t-e)}function o(t){let e=[...t];return s(e),e}function a(t){if(0==t.length)return NaN;let e=o(t);if(e.length%2!=0)return e[Math.floor(e.length/2)];let r=e.length/2,n=r-1;return i([e[r],e[n]])}function u(t){if(0==t.length)return 1/0;let e=t[0];return t.slice(1).forEach(t=>{e=Math.min(e,t)}),e}function h(t){if(0==t.length)return-1/0;let e=t[0];return t.slice(1).forEach(t=>{e=Math.max(e,t)}),e}function c(t,e,r){return t>=e&&t<=r}function l(t,e,r){return t>e&&t<r}function f(t,e,r){return t<e?e:t>r?r:t}function d(t,e,r){return Math.abs(t-e)<=r}function m(t){s(t),t.reverse()}function p(t){let e=o(t);return e.reverse(),e}function y(t,e){return Number.parseFloat(t.toFixed(null!=e?e:0))}function g(t){return t*(180/Math.PI)}function b(t){return t*(Math.PI/180)}function v(t,e=-Math.PI){let r=t-e;return r%=2*Math.PI,r=r>=0?r:r+2*Math.PI,e+r}function w(t,e){let r=(e=v(e,t))-t;return(r<Math.PI/2||r>3*Math.PI/2)&&(t+=Math.PI),t}return t.r(e),t.d(e,{areWithin:()=>d,average:()=>i,clamp:()=>f,degrees:()=>g,distance:()=>r,flipAway:()=>w,isBetween:()=>c,isBetweenExclusive:()=>l,isBetweenInclusive:()=>c,max:()=>h,mean:()=>i,median:()=>a,min:()=>u,normalizeAngle:()=>v,radians:()=>b,round:()=>y,sortNumbers:()=>s,sortNumbersAscending:()=>s,sortNumbersDescending:()=>m,sortedNumbers:()=>o,sortedNumbersAscending:()=>o,sortedNumbersDescending:()=>p,sum:()=>n}),e})()},106(t){var e;e=()=>(()=>{var t={992(t){var e;e=()=>(()=>{"use strict";const t={d:(e,r)=>{if(Array.isArray(r))for(var n=0;n<r.length;){var i=r[n++],s=r[n++];t.o(e,i)?0===s&&n++:0===s?Object.defineProperty(e,i,{enumerable:!0,value:r[n++]}):Object.defineProperty(e,i,{enumerable:!0,get:s})}else for(var i in r)t.o(r,i)&&!t.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:r[i]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}};let e={};t.r(e),t.d(e,{KeyBinding:()=>p});var r,n,i,s,o,a,u,h,c,l,f,d=function(t,e,r,n,i){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!i:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===n?i.call(t,r):i?i.value=r:e.set(t,r),r},m=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class p{constructor(t,e,a){r.add(this),this.key=t,n.set(this,void 0),i.set(this,void 0),s.set(this,void 0),o.set(this,void 0),d(this,n,e,"f"),d(this,i,t=>m(this,r,"m",l).call(this,t),"f"),d(this,s,a,"f")}get owner(){return m(this,o,"f")}set owner(t){var e;null===(e=m(this,o,"f"))||void 0===e||e.removeEventListener("keydown",m(this,i,"f")),null==t||t.addEventListener("keydown",m(this,i,"f"),{passive:!1}),d(this,o,t,"f")}}return n=new WeakMap,i=new WeakMap,s=new WeakMap,o=new WeakMap,r=new WeakSet,a=function(){var t,e;return null!==(e=null===(t=m(this,s,"f"))||void 0===t?void 0:t.altKey)&&void 0!==e&&e},u=function(){var t,e;return null!==(e=null===(t=m(this,s,"f"))||void 0===t?void 0:t.ctrlKey)&&void 0!==e&&e},h=function(){var t,e;return null!==(e=null===(t=m(this,s,"f"))||void 0===t?void 0:t.metaKey)&&void 0!==e&&e},c=function(){var t,e;return null!==(e=null===(t=m(this,s,"f"))||void 0===t?void 0:t.shiftKey)&&void 0!==e&&e},l=function(t){this.owner&&this.owner===document.activeElement&&`Key${this.key}`.toUpperCase()===t.code.toUpperCase()&&t.altKey===m(this,r,"a",a)&&t.ctrlKey===m(this,r,"a",u)&&t.metaKey===m(this,r,"a",h)&&t.shiftKey===m(this,r,"a",c)&&m(this,r,"m",f).call(this,t)},f=function(t){t.preventDefault(),m(this,n,"f").call(this)},e})(),t.exports=e()},854(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){return"number"==typeof t}function n(t){return r(t)&&Number.isFinite(t)}function i(t){return r(t)&&!Number.isFinite(t)}function s(t){return n(t)&&t>0}function o(t){return n(t)&&t>=0}function a(t){return"string"==typeof t}function u(t){return""===t}function h(t){return a(t)&&!u(t)}function c(t){return!!a(t)&&0==t.trim().length}function l(t){if(!a(t))return!1;try{return JSON.parse(t),!0}catch{return!1}}function f(t){try{return JSON.stringify(t),!0}catch{return!1}}function d(t){return!!t}function m(t){return!t}function p(t){return null==t}function y(t){return"object"==typeof t&&null!==t}function g(t){return Array.isArray(t)}function b(t){return g(t)&&0==t.length}function v(t){return g(t)&&t.length>0}function w(t){return g(t)&&t.every(r)}function x(t){return w(t)&&t.length>0}function S(t){return g(t)&&t.every(n)}function N(t){return g(t)&&t.every(i)}function _(t){return g(t)&&t.every(a)}function O(t){return _(t)&&t.length>0}function P(t){return t instanceof SVGGraphicsElement}return t.r(e),t.d(e,{isArray:()=>g,isEmptyArray:()=>b,isEmptyString:()=>u,isFalsy:()=>m,isFiniteNumber:()=>n,isFiniteNumbersArray:()=>S,isJSON:()=>l,isJSONSerializable:()=>f,isNonEmptyArray:()=>v,isNonEmptyNumbersArray:()=>x,isNonEmptyString:()=>h,isNonEmptyStringsArray:()=>O,isNonFiniteNumber:()=>i,isNonFiniteNumbersArray:()=>N,isNonNegativeFiniteNumber:()=>o,isNonNullObject:()=>y,isNullish:()=>p,isNumber:()=>r,isNumbersArray:()=>w,isPositiveFiniteNumber:()=>s,isSVGGraphicsElement:()=>P,isString:()=>a,isStringsArray:()=>_,isTruthy:()=>d,isWhitespace:()=>c}),e})()}};const e={};function r(n){const i=e[n];if(void 0!==i)return i.exports;const s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,r),s.exports}r.d=(t,e)=>{if(Array.isArray(e))for(var n=0;n<e.length;){var i=e[n++],s=e[n++];r.o(t,i)?0===s&&n++:0===s?Object.defineProperty(t,i,{enumerable:!0,value:e[n++]}):Object.defineProperty(t,i,{enumerable:!0,get:s})}else for(var i in e)r.o(e,i)&&!r.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};let n={};return(()=>{"use strict";function t(t){if(t.length>0)return t[0];throw new Error("Array is empty.")}function e(t){if(t.length>0)return t[t.length-1];throw new Error("Array is empty.")}function i(t){if(t.length<3)throw new Error("Array has less than 3 items.");if(t.length%2==0)throw new Error("Array has an even number of items.");let e=Math.floor(t.length/2);return[t[e-1],t[e],t[e+1]]}function s(t){if(t.length<4)throw new Error("Array has less than 4 items.");if(t.length%2!=0)throw new Error("Array has an odd number of items.");let e=Math.floor(t.length/2);return[t[e-2],t[e-1],t[e],t[e+1]]}function o(t){return t.length<2?[]:t.slice(0,-1).map((e,r)=>[t[r],t[r+1]])}r.r(n),r.d(n,{DownloadableFile:()=>v,EventfulSet:()=>w,FiniteStack:()=>P,KeyBinding:()=>d.KeyBinding,consecutivePairs:()=>o,containsFocus:()=>f,detectMac:()=>p,detectWindows:()=>m,first:()=>t,hasFocus:()=>l,isJSON:()=>a.isJSON,isJSONSerializable:()=>a.isJSONSerializable,isURL:()=>E,last:()=>e,middleFour:()=>s,middleThree:()=>i,removeWhitespace:()=>u,shuffled:()=>c,splitLines:()=>h});var a=r(854);function u(t){return[...t].filter(t=>!(0,a.isWhitespace)(t)).join("")}function h(t){return t.split(/\r\n|\r|\n/)}function c(t){return t.map(t=>({v:t,priority:Math.random()})).sort((t,e)=>t.priority-e.priority).map(({v:t})=>t)}function l(t){return t===document.activeElement}function f(t){return!!document.activeElement&&t.contains(document.activeElement)}var d=r(992);function m(){return-1!==navigator.userAgent.indexOf("Windows")}function p(){try{return window.navigator.platform.toLowerCase().includes("mac")}catch(t){return!1}}var y,g=function(t,e,r,n,i){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!i:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===n?i.call(t,r):i?i.value=r:e.set(t,r),r},b=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class v{constructor(t,e,r){y.set(this,void 0),this.name=null!=t?t:"Unnamed.txt",this.content=null!=e?e:"",g(this,y,null==r?void 0:r.type,"f")}get type(){return null!=b(this,y,"f")?b(this,y,"f"):this.content instanceof Blob?this.content.type:"text/plain"}set type(t){g(this,y,t,"f")}download(){let t=new File([this.content],this.name,{type:this.type}),e=URL.createObjectURL(t),r=document.createElement("a");r.href=e,r.download=t.name,document.body.appendChild(r),r.click(),r.remove(),URL.revokeObjectURL(e)}}y=new WeakMap;class w{constructor(){this.eventListeners={change:[]},this.underlyingSet=new Set}[Symbol.iterator](){return this.underlyingSet.values()}includes(t){return this.underlyingSet.has(t)}include(t){return this.includes(t)}addAll(t){let e=[...t];0!=e.length&&(e.every(t=>this.includes(t))||(e.forEach(t=>this.underlyingSet.add(t)),this.callEventListeners("change")))}removeAll(t){let e=[...t];0!=e.length&&(e.every(t=>!this.includes(t))||(e.forEach(t=>this.underlyingSet.delete(t)),this.callEventListeners("change")))}clear(){0!=this.underlyingSet.size&&(this.underlyingSet.clear(),this.callEventListeners("change"))}addEventListener(t,e){this.eventListeners[t].push(e)}callEventListeners(t){this.eventListeners[t].forEach(t=>t())}removeEventListener(t,e){this.eventListeners[t]=this.eventListeners[t].filter(t=>t!==e)}}var x,S,N,_,O=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class P{constructor(t){x.add(this),this.maxSize=t,S.set(this,[]),N.set(this,{change:[]})}get size(){return O(this,S,"f").length}isEmpty(){return 0==this.size}empty(){0!=this.size&&(function(t,e){if("function"==typeof e||!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");e.set(t,[])}(this,S),O(this,x,"m",_).call(this,"change"))}peek(){if(0==this.size)throw new Error("The stack is empty.");return O(this,S,"f")[O(this,S,"f").length-1]}push(t){O(this,S,"f").push(t),this.size>this.maxSize&&O(this,S,"f").shift(),O(this,x,"m",_).call(this,"change")}pop(){if(0==this.size)throw new Error("The stack is empty.");let t=O(this,S,"f").pop();return O(this,x,"m",_).call(this,"change"),t}addEventListener(t,e){O(this,N,"f")[t].push(e)}removeEventListener(t,e){O(this,N,"f")[t]=O(this,N,"f")[t].filter(t=>t!==e)}}function E(t){try{return new URL(t),!0}catch(t){return!1}}S=new WeakMap,N=new WeakMap,x=new WeakSet,_=function(t){O(this,N,"f")[t].forEach(t=>t())}})(),n})(),t.exports=e()},854(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){return"number"==typeof t}function n(t){return r(t)&&Number.isFinite(t)}function i(t){return r(t)&&!Number.isFinite(t)}function s(t){return n(t)&&t>0}function o(t){return n(t)&&t>=0}function a(t){return"string"==typeof t}function u(t){return""===t}function h(t){return a(t)&&!u(t)}function c(t){return!!a(t)&&0==t.trim().length}function l(t){if(!a(t))return!1;try{return JSON.parse(t),!0}catch{return!1}}function f(t){try{return JSON.stringify(t),!0}catch{return!1}}function d(t){return!!t}function m(t){return!t}function p(t){return null==t}function y(t){return"object"==typeof t&&null!==t}function g(t){return Array.isArray(t)}function b(t){return g(t)&&0==t.length}function v(t){return g(t)&&t.length>0}function w(t){return g(t)&&t.every(r)}function x(t){return w(t)&&t.length>0}function S(t){return g(t)&&t.every(n)}function N(t){return g(t)&&t.every(i)}function _(t){return g(t)&&t.every(a)}function O(t){return _(t)&&t.length>0}function P(t){return t instanceof SVGGraphicsElement}return t.r(e),t.d(e,{isArray:()=>g,isEmptyArray:()=>b,isEmptyString:()=>u,isFalsy:()=>m,isFiniteNumber:()=>n,isFiniteNumbersArray:()=>S,isJSON:()=>l,isJSONSerializable:()=>f,isNonEmptyArray:()=>v,isNonEmptyNumbersArray:()=>x,isNonEmptyString:()=>h,isNonEmptyStringsArray:()=>O,isNonFiniteNumber:()=>i,isNonFiniteNumbersArray:()=>N,isNonNegativeFiniteNumber:()=>o,isNonNullObject:()=>y,isNullish:()=>p,isNumber:()=>r,isNumbersArray:()=>w,isPositiveFiniteNumber:()=>s,isSVGGraphicsElement:()=>P,isString:()=>a,isStringsArray:()=>_,isTruthy:()=>d,isWhitespace:()=>c}),e})()}};const e={};function r(n){const i=e[n];if(void 0!==i)return i.exports;const s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,r),s.exports}r.d=(t,e)=>{if(Array.isArray(e))for(var n=0;n<e.length;){var i=e[n++],s=e[n++];r.o(t,i)?0===s&&n++:0===s?Object.defineProperty(t,i,{enumerable:!0,value:e[n++]}):Object.defineProperty(t,i,{enumerable:!0,get:s})}else for(var i in e)r.o(e,i)&&!r.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};let n={};return(()=>{"use strict";r.r(n),r.d(n,{Linkers:()=>p,Stems:()=>m,areConflicting:()=>u,areCrossing:()=>l,areEqual:()=>o,areKnotless:()=>c,areStacked:()=>a,basePairs:()=>w,deepCopy:()=>e,knotless:()=>f,mountainPlotTraversal:()=>y,parseDotBracket:()=>b,radializable:()=>d,sorted:()=>s});var t=r(854);function e(e){return(0,t.isNumbersArray)(e)?[...e]:e.map(t=>[...t])}var i=r(986);function s(t){let r=e(t);return r.forEach(i.sortNumbers),r.sort((t,e)=>t[0]-e[0]),r}function o(t,r){let n=e(t),s=e(r);return(0,i.sortNumbers)(n),(0,i.sortNumbers)(s),[0,1].every(t=>n[t]==s[t])}function a(t,e){let r=s([t,e]);return r[0][0]==r[1][0]-1&&r[0][1]==r[1][1]+1}function u(t,e){return(0,i.min)(t)==(0,i.min)(e)&&(0,i.max)(t)!=(0,i.max)(e)||(0,i.min)(t)!=(0,i.min)(e)&&(0,i.max)(t)==(0,i.max)(e)}function h(t){if(0==t.length)return[];let e=[];for(let r=0;r<(0,i.max)(t.flat());r++)e.push(void 0);return t.forEach(t=>{e[t[0]-1]=t[1],e[t[1]-1]=t[0]}),e}function c(t){let e=h(t),r=[],n=!1;return e.forEach((t,e)=>{let i=e+1;null==t||(i<t?r.push(i):i==t||r.pop()!=t&&(n=!0))}),!n}function l(t,e){return!c([t,e])}function f(t){let r=[],n=e(t);n.sort((t,e)=>Math.abs(t[0]-t[1])-Math.abs(e[0]-e[1]));let s=[];return n.forEach(t=>{let e=[t[0]-1,t[1]-1],n=(0,i.min)(e),o=(0,i.max)(e);if(!s[n]&&!s[o]){r.push(t);for(let t=n;t<=o;t++)s[t]=!0}}),r}function d(t){let r=e(t);r.sort(([t,e],[r,n])=>Math.abs(t-e)-Math.abs(r-n));let n=[],i=[];return r.forEach(([t,e])=>{t==e||null!=i[t-1]||null!=i[e-1]||(n.push([t,e]),i[t-1]=e,i[e-1]=t)}),f(n)}class m{constructor(...t){this.targetStructure=t}get(){let t=this.targetStructure[1];if(0==t.length)return[];let e=s(t),r=[],n=[];return e.forEach(t=>{let e=0==n.length?null:n[n.length-1];!e||a(e,t)?n.push(t):(r.push(n),n=[t])}),r.push(n),r}}class p{constructor(...t){this.targetStructure=t}get(){let t=new m(...this.targetStructure).get().flatMap(t=>[t.map(i.min),t.map(i.max)]);t.forEach(i.sortNumbers),t.sort((t,e)=>(0,i.min)(t)-(0,i.min)(e));let e=[],r=t.shift(),n=t.shift();for(;r&&n;){let s=[],o=(0,i.max)(r),a=(0,i.min)(n);for(let t=o;t<=a;t++)s.push(t);e.push(s),r=n,n=t.shift()}return e}}function y(...t){let e=t[0],r=t[1],n=h(r);if(!c(r))throw new Error("Pseudoknot(s) encountered.");let i=[],s=0;return e.forEach((t,e)=>{let r=e+1,o=n[e];null==o?i.push(s):r<o?(i.push(s),s++):(r==o||s--,i.push(s))}),i}var g=r(106);function b(t){t=(0,g.removeWhitespace)(t);let e={"()":[],"[]":[],"{}":[],"<>":[]};v.forEach(r=>{let[n,i]=r.split(""),o=[...t].map(t=>t===n?"(":t===i?")":".").join("");e[r]=function(t){let e=[],r=[];if([...t].forEach((t,n)=>{let i=n+1;if("."==t);else if("("==t)r.push(i);else if(")"==t){let t=r.pop();if("number"!=typeof t)throw new Error(`Unmatched downstream partner in dot-bracket notation at position: ${i}.`);e.push([t,i])}}),r.length>0)throw new Error(`Unmatched upstream partner in dot-bracket notation at position: ${r.pop()}.`);return s(e)}(o)});let r=()=>s(v.flatMap(t=>e[t]));return{[Symbol.iterator]:()=>r()[Symbol.iterator](),toArray:r,...e}}const v=["()","[]","{}","<>"];function w(t,e){return e.forEach(e=>{e.forEach(e=>{if(e<1)throw new Error("Sequence positions must be positive.");if(e>t.length)throw new Error("Position out of sequence range.")})}),e.map(e=>[t[e[0]-1],t[e[1]-1]])}})(),n})(),t.exports=e()},106(t){var e;e=()=>(()=>{var t={992(t){var e;e=()=>(()=>{"use strict";const t={d:(e,r)=>{if(Array.isArray(r))for(var n=0;n<r.length;){var i=r[n++],s=r[n++];t.o(e,i)?0===s&&n++:0===s?Object.defineProperty(e,i,{enumerable:!0,value:r[n++]}):Object.defineProperty(e,i,{enumerable:!0,get:s})}else for(var i in r)t.o(r,i)&&!t.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:r[i]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}};let e={};t.r(e),t.d(e,{KeyBinding:()=>p});var r,n,i,s,o,a,u,h,c,l,f,d=function(t,e,r,n,i){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!i:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===n?i.call(t,r):i?i.value=r:e.set(t,r),r},m=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class p{constructor(t,e,a){r.add(this),this.key=t,n.set(this,void 0),i.set(this,void 0),s.set(this,void 0),o.set(this,void 0),d(this,n,e,"f"),d(this,i,t=>m(this,r,"m",l).call(this,t),"f"),d(this,s,a,"f")}get owner(){return m(this,o,"f")}set owner(t){var e;null===(e=m(this,o,"f"))||void 0===e||e.removeEventListener("keydown",m(this,i,"f")),null==t||t.addEventListener("keydown",m(this,i,"f"),{passive:!1}),d(this,o,t,"f")}}return n=new WeakMap,i=new WeakMap,s=new WeakMap,o=new WeakMap,r=new WeakSet,a=function(){var t,e;return null!==(e=null===(t=m(this,s,"f"))||void 0===t?void 0:t.altKey)&&void 0!==e&&e},u=function(){var t,e;return null!==(e=null===(t=m(this,s,"f"))||void 0===t?void 0:t.ctrlKey)&&void 0!==e&&e},h=function(){var t,e;return null!==(e=null===(t=m(this,s,"f"))||void 0===t?void 0:t.metaKey)&&void 0!==e&&e},c=function(){var t,e;return null!==(e=null===(t=m(this,s,"f"))||void 0===t?void 0:t.shiftKey)&&void 0!==e&&e},l=function(t){this.owner&&this.owner===document.activeElement&&`Key${this.key}`.toUpperCase()===t.code.toUpperCase()&&t.altKey===m(this,r,"a",a)&&t.ctrlKey===m(this,r,"a",u)&&t.metaKey===m(this,r,"a",h)&&t.shiftKey===m(this,r,"a",c)&&m(this,r,"m",f).call(this,t)},f=function(t){t.preventDefault(),m(this,n,"f").call(this)},e})(),t.exports=e()},854(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){return"number"==typeof t}function n(t){return r(t)&&Number.isFinite(t)}function i(t){return r(t)&&!Number.isFinite(t)}function s(t){return n(t)&&t>0}function o(t){return n(t)&&t>=0}function a(t){return"string"==typeof t}function u(t){return""===t}function h(t){return a(t)&&!u(t)}function c(t){return!!a(t)&&0==t.trim().length}function l(t){if(!a(t))return!1;try{return JSON.parse(t),!0}catch{return!1}}function f(t){try{return JSON.stringify(t),!0}catch{return!1}}function d(t){return!!t}function m(t){return!t}function p(t){return null==t}function y(t){return"object"==typeof t&&null!==t}function g(t){return Array.isArray(t)}function b(t){return g(t)&&0==t.length}function v(t){return g(t)&&t.length>0}function w(t){return g(t)&&t.every(r)}function x(t){return w(t)&&t.length>0}function S(t){return g(t)&&t.every(n)}function N(t){return g(t)&&t.every(i)}function _(t){return g(t)&&t.every(a)}function O(t){return _(t)&&t.length>0}function P(t){return t instanceof SVGGraphicsElement}return t.r(e),t.d(e,{isArray:()=>g,isEmptyArray:()=>b,isEmptyString:()=>u,isFalsy:()=>m,isFiniteNumber:()=>n,isFiniteNumbersArray:()=>S,isJSON:()=>l,isJSONSerializable:()=>f,isNonEmptyArray:()=>v,isNonEmptyNumbersArray:()=>x,isNonEmptyString:()=>h,isNonEmptyStringsArray:()=>O,isNonFiniteNumber:()=>i,isNonFiniteNumbersArray:()=>N,isNonNegativeFiniteNumber:()=>o,isNonNullObject:()=>y,isNullish:()=>p,isNumber:()=>r,isNumbersArray:()=>w,isPositiveFiniteNumber:()=>s,isSVGGraphicsElement:()=>P,isString:()=>a,isStringsArray:()=>_,isTruthy:()=>d,isWhitespace:()=>c}),e})()}};const e={};function r(n){const i=e[n];if(void 0!==i)return i.exports;const s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,r),s.exports}r.d=(t,e)=>{if(Array.isArray(e))for(var n=0;n<e.length;){var i=e[n++],s=e[n++];r.o(t,i)?0===s&&n++:0===s?Object.defineProperty(t,i,{enumerable:!0,value:e[n++]}):Object.defineProperty(t,i,{enumerable:!0,get:s})}else for(var i in e)r.o(e,i)&&!r.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};let n={};return(()=>{"use strict";function t(t){if(t.length>0)return t[0];throw new Error("Array is empty.")}function e(t){if(t.length>0)return t[t.length-1];throw new Error("Array is empty.")}function i(t){if(t.length<3)throw new Error("Array has less than 3 items.");if(t.length%2==0)throw new Error("Array has an even number of items.");let e=Math.floor(t.length/2);return[t[e-1],t[e],t[e+1]]}function s(t){if(t.length<4)throw new Error("Array has less than 4 items.");if(t.length%2!=0)throw new Error("Array has an odd number of items.");let e=Math.floor(t.length/2);return[t[e-2],t[e-1],t[e],t[e+1]]}function o(t){return t.length<2?[]:t.slice(0,-1).map((e,r)=>[t[r],t[r+1]])}r.r(n),r.d(n,{DownloadableFile:()=>v,EventfulSet:()=>w,FiniteStack:()=>P,KeyBinding:()=>d.KeyBinding,consecutivePairs:()=>o,containsFocus:()=>f,detectMac:()=>p,detectWindows:()=>m,first:()=>t,hasFocus:()=>l,isJSON:()=>a.isJSON,isJSONSerializable:()=>a.isJSONSerializable,isURL:()=>E,last:()=>e,middleFour:()=>s,middleThree:()=>i,removeWhitespace:()=>u,shuffled:()=>c,splitLines:()=>h});var a=r(854);function u(t){return[...t].filter(t=>!(0,a.isWhitespace)(t)).join("")}function h(t){return t.split(/\r\n|\r|\n/)}function c(t){return t.map(t=>({v:t,priority:Math.random()})).sort((t,e)=>t.priority-e.priority).map(({v:t})=>t)}function l(t){return t===document.activeElement}function f(t){return!!document.activeElement&&t.contains(document.activeElement)}var d=r(992);function m(){return-1!==navigator.userAgent.indexOf("Windows")}function p(){try{return window.navigator.platform.toLowerCase().includes("mac")}catch(t){return!1}}var y,g=function(t,e,r,n,i){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!i:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===n?i.call(t,r):i?i.value=r:e.set(t,r),r},b=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class v{constructor(t,e,r){y.set(this,void 0),this.name=null!=t?t:"Unnamed.txt",this.content=null!=e?e:"",g(this,y,null==r?void 0:r.type,"f")}get type(){return null!=b(this,y,"f")?b(this,y,"f"):this.content instanceof Blob?this.content.type:"text/plain"}set type(t){g(this,y,t,"f")}download(){let t=new File([this.content],this.name,{type:this.type}),e=URL.createObjectURL(t),r=document.createElement("a");r.href=e,r.download=t.name,document.body.appendChild(r),r.click(),r.remove(),URL.revokeObjectURL(e)}}y=new WeakMap;class w{constructor(){this.eventListeners={change:[]},this.underlyingSet=new Set}[Symbol.iterator](){return this.underlyingSet.values()}includes(t){return this.underlyingSet.has(t)}include(t){return this.includes(t)}addAll(t){let e=[...t];0!=e.length&&(e.every(t=>this.includes(t))||(e.forEach(t=>this.underlyingSet.add(t)),this.callEventListeners("change")))}removeAll(t){let e=[...t];0!=e.length&&(e.every(t=>!this.includes(t))||(e.forEach(t=>this.underlyingSet.delete(t)),this.callEventListeners("change")))}clear(){0!=this.underlyingSet.size&&(this.underlyingSet.clear(),this.callEventListeners("change"))}addEventListener(t,e){this.eventListeners[t].push(e)}callEventListeners(t){this.eventListeners[t].forEach(t=>t())}removeEventListener(t,e){this.eventListeners[t]=this.eventListeners[t].filter(t=>t!==e)}}var x,S,N,_,O=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class P{constructor(t){x.add(this),this.maxSize=t,S.set(this,[]),N.set(this,{change:[]})}get size(){return O(this,S,"f").length}isEmpty(){return 0==this.size}empty(){0!=this.size&&(function(t,e){if("function"==typeof e||!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");e.set(t,[])}(this,S),O(this,x,"m",_).call(this,"change"))}peek(){if(0==this.size)throw new Error("The stack is empty.");return O(this,S,"f")[O(this,S,"f").length-1]}push(t){O(this,S,"f").push(t),this.size>this.maxSize&&O(this,S,"f").shift(),O(this,x,"m",_).call(this,"change")}pop(){if(0==this.size)throw new Error("The stack is empty.");let t=O(this,S,"f").pop();return O(this,x,"m",_).call(this,"change"),t}addEventListener(t,e){O(this,N,"f")[t].push(e)}removeEventListener(t,e){O(this,N,"f")[t]=O(this,N,"f")[t].filter(t=>t!==e)}}function E(t){try{return new URL(t),!0}catch(t){return!1}}S=new WeakMap,N=new WeakMap,x=new WeakSet,_=function(t){O(this,N,"f")[t].forEach(t=>t())}})(),n})(),t.exports=e()},854(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){return"number"==typeof t}function n(t){return r(t)&&Number.isFinite(t)}function i(t){return r(t)&&!Number.isFinite(t)}function s(t){return n(t)&&t>0}function o(t){return n(t)&&t>=0}function a(t){return"string"==typeof t}function u(t){return""===t}function h(t){return a(t)&&!u(t)}function c(t){return!!a(t)&&0==t.trim().length}function l(t){if(!a(t))return!1;try{return JSON.parse(t),!0}catch{return!1}}function f(t){try{return JSON.stringify(t),!0}catch{return!1}}function d(t){return!!t}function m(t){return!t}function p(t){return null==t}function y(t){return"object"==typeof t&&null!==t}function g(t){return Array.isArray(t)}function b(t){return g(t)&&0==t.length}function v(t){return g(t)&&t.length>0}function w(t){return g(t)&&t.every(r)}function x(t){return w(t)&&t.length>0}function S(t){return g(t)&&t.every(n)}function N(t){return g(t)&&t.every(i)}function _(t){return g(t)&&t.every(a)}function O(t){return _(t)&&t.length>0}function P(t){return t instanceof SVGGraphicsElement}return t.r(e),t.d(e,{isArray:()=>g,isEmptyArray:()=>b,isEmptyString:()=>u,isFalsy:()=>m,isFiniteNumber:()=>n,isFiniteNumbersArray:()=>S,isJSON:()=>l,isJSONSerializable:()=>f,isNonEmptyArray:()=>v,isNonEmptyNumbersArray:()=>x,isNonEmptyString:()=>h,isNonEmptyStringsArray:()=>O,isNonFiniteNumber:()=>i,isNonFiniteNumbersArray:()=>N,isNonNegativeFiniteNumber:()=>o,isNonNullObject:()=>y,isNullish:()=>p,isNumber:()=>r,isNumbersArray:()=>w,isPositiveFiniteNumber:()=>s,isSVGGraphicsElement:()=>P,isString:()=>a,isStringsArray:()=>_,isTruthy:()=>d,isWhitespace:()=>c}),e})()}};const e={};function r(n){const i=e[n];if(void 0!==i)return i.exports;const s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,r),s.exports}r.d=(t,e)=>{if(Array.isArray(e))for(var n=0;n<e.length;){var i=e[n++],s=e[n++];r.o(t,i)?0===s&&n++:0===s?Object.defineProperty(t,i,{enumerable:!0,value:e[n++]}):Object.defineProperty(t,i,{enumerable:!0,get:s})}else for(var i in e)r.o(e,i)&&!r.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};let n={};return(()=>{"use strict";r.r(n),r.d(n,{BaseOutline:()=>Oi.BaseOutline,CTDrawer:()=>ss,DotBracketDrawer:()=>es,Drawing:()=>Hi,Nucleobase:()=>ui.Nucleobase,SchemaDrawer:()=>fs,StraightBond:()=>Mi.StraightBond});var t=Object.create,e=Object.defineProperty,i=Object.getOwnPropertyDescriptor,s=Object.getOwnPropertyNames,o=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,u=(t,e)=>()=>(e||(t((e={exports:{}}).exports,e),t=null),e.exports),h=(t,r)=>{let n={};for(var i in t)e(n,i,{get:t[i],enumerable:!0});return r||e(n,Symbol.toStringTag,{value:"Module"}),n},c=(r,n,u)=>(u=null!=r?t(o(r)):{},((t,r,n,o)=>{if(r&&"object"==typeof r||"function"==typeof r)for(var u,h=s(r),c=0,l=h.length;c<l;c++)u=h[c],a.call(t,u)||void 0===u||e(t,u,{get:(t=>r[t]).bind(null,u),enumerable:!(o=i(r,u))||o.enumerable});return t})(!n&&r&&r.__esModule?u:e(u,"default",{value:r,enumerable:!0}),r));const l={},f=[];function d(t,e){if(Array.isArray(t))for(const r of t)d(r,e);else if("object"!=typeof t)p(Object.getOwnPropertyNames(e)),l[t]=Object.assign(l[t]||{},e);else for(const e in t)d(e,t[e])}function m(t){return l[t]||{}}function p(t){f.push(...t)}var y=u((t,e)=>{e.exports=function(t){try{return!!t()}catch(t){return!0}}}),g=u((t,e)=>{var r=y();e.exports=!r(function(){var t=function(){}.bind();return"function"!=typeof t||t.hasOwnProperty("prototype")})}),b=u((t,e)=>{var r=g(),n=Function.prototype,i=n.call,s=r&&n.bind.bind(i,i);e.exports=r?s:function(t){return function(){return i.apply(t,arguments)}}}),v=u((t,e)=>{var r=b();e.exports=r({}.isPrototypeOf)}),w=u((t,e)=>{var n=function(t){return t&&t.Math===Math&&t};e.exports=n("object"==typeof globalThis&&globalThis)||n("object"==typeof window&&window)||n("object"==typeof self&&self)||n("object"==typeof r.g&&r.g)||n("object"==typeof t&&t)||function(){return this}()||Function("return this")()}),x=u((t,e)=>{var r=g(),n=Function.prototype,i=n.apply,s=n.call;e.exports="object"==typeof Reflect&&Reflect.apply||(r?s.bind(i):function(){return s.apply(i,arguments)})}),S=u((t,e)=>{var r=b(),n=r({}.toString),i=r("".slice);e.exports=function(t){return i(n(t),8,-1)}}),N=u((t,e)=>{var r=S(),n=b();e.exports=function(t){if("Function"===r(t))return n(t)}}),_=u((t,e)=>{var r="object"==typeof document&&document.all;e.exports=void 0===r&&void 0!==r?function(t){return"function"==typeof t||t===r}:function(t){return"function"==typeof t}}),O=u((t,e)=>{var r=y();e.exports=!r(function(){return 7!==Object.defineProperty({},1,{get:function(){return 7}})[1]})}),P=u((t,e)=>{var r=g(),n=Function.prototype.call;e.exports=r?n.bind(n):function(){return n.apply(n,arguments)}}),E=u(t=>{var e={}.propertyIsEnumerable,r=Object.getOwnPropertyDescriptor,n=r&&!e.call({1:2},1);t.f=n?function(t){var e=r(this,t);return!!e&&e.enumerable}:e}),M=u((t,e)=>{e.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}}),A=u((t,e)=>{var r=b(),n=y(),i=S(),s=Object,o=r("".split);e.exports=n(function(){return!s("z").propertyIsEnumerable(0)})?function(t){return"String"===i(t)?o(t,""):s(t)}:s}),T=u((t,e)=>{e.exports=function(t){return null==t}}),j=u((t,e)=>{var r=T(),n=TypeError;e.exports=function(t){if(r(t))throw new n("Can't call method on "+t);return t}}),C=u((t,e)=>{var r=A(),n=j();e.exports=function(t){return r(n(t))}}),L=u((t,e)=>{var r=_();e.exports=function(t){return"object"==typeof t?null!==t:r(t)}}),k=u((t,e)=>{e.exports={}}),D=u((t,e)=>{var r=k(),n=w(),i=_(),s=function(t){return i(t)?t:void 0};e.exports=function(t,e){return arguments.length<2?s(r[t])||s(n[t]):r[t]&&r[t][e]||n[t]&&n[t][e]}}),I=u((t,e)=>{var r=w().navigator,n=r&&r.userAgent;e.exports=n?String(n):""}),F=u((t,e)=>{var r,n,i=w(),s=I(),o=i.process,a=i.Deno,u=o&&o.versions||a&&a.version,h=u&&u.v8;h&&(n=(r=h.split("."))[0]>0&&r[0]<4?1:+(r[0]+r[1])),!n&&s&&(!(r=s.match(/Edge\/(\d+)/))||r[1]>=74)&&(r=s.match(/Chrome\/(\d+)/))&&(n=+r[1]),e.exports=n}),B=u((t,e)=>{var r=F(),n=y(),i=w().String;e.exports=!!Object.getOwnPropertySymbols&&!n(function(){var t=Symbol("symbol detection");return!i(t)||!(Object(t)instanceof Symbol)||!Symbol.sham&&r&&r<41})}),V=u((t,e)=>{var r=B();e.exports=r&&!Symbol.sham&&"symbol"==typeof Symbol.iterator}),R=u((t,e)=>{var r=D(),n=_(),i=v(),s=V(),o=Object;e.exports=s?function(t){return"symbol"==typeof t}:function(t){var e=r("Symbol");return n(e)&&i(e.prototype,o(t))}}),z=u((t,e)=>{var r=String;e.exports=function(t){try{return r(t)}catch(t){return"Object"}}}),G=u((t,e)=>{var r=_(),n=z(),i=TypeError;e.exports=function(t){if(r(t))return t;throw new i(n(t)+" is not a function")}}),U=u((t,e)=>{var r=G(),n=T();e.exports=function(t,e){var i=t[e];return n(i)?void 0:r(i)}}),X=u((t,e)=>{var r=P(),n=_(),i=L(),s=TypeError;e.exports=function(t,e){var o,a;if("string"===e&&n(o=t.toString)&&!i(a=r(o,t)))return a;if(n(o=t.valueOf)&&!i(a=r(o,t)))return a;if("string"!==e&&n(o=t.toString)&&!i(a=r(o,t)))return a;throw new s("Can't convert object to primitive value")}}),Y=u((t,e)=>{e.exports=!0}),W=u((t,e)=>{var r=w(),n=Object.defineProperty;e.exports=function(t,e){try{n(r,t,{value:e,configurable:!0,writable:!0})}catch(n){r[t]=e}return e}}),q=u((t,e)=>{var r=Y(),n=w(),i=W(),s="__core-js_shared__",o=e.exports=n[s]||i(s,{});(o.versions||(o.versions=[])).push({version:"3.49.0",mode:r?"pure":"global",copyright:"© 2013–2025 Denis Pushkarev (zloirock.ru), 2025–2026 CoreJS Company (core-js.io). All rights reserved.",license:"https://github.com/zloirock/core-js/blob/v3.49.0/LICENSE",source:"https://github.com/zloirock/core-js"})}),H=u((t,e)=>{var r=q();e.exports=function(t,e){return r[t]||(r[t]=e||{})}}),$=u((t,e)=>{var r=j(),n=Object;e.exports=function(t){return n(r(t))}}),J=u((t,e)=>{var r=b(),n=$(),i=r({}.hasOwnProperty);e.exports=Object.hasOwn||function(t,e){return i(n(t),e)}}),K=u((t,e)=>{var r=b(),n=0,i=Math.random(),s=r(1.1.toString);e.exports=function(t){return"Symbol("+(void 0===t?"":t)+")_"+s(++n+i,36)}}),Q=u((t,e)=>{var r=w(),n=H(),i=J(),s=K(),o=B(),a=V(),u=r.Symbol,h=n("wks"),c=a?u.for||u:u&&u.withoutSetter||s;e.exports=function(t){return i(h,t)||(h[t]=o&&i(u,t)?u[t]:c("Symbol."+t)),h[t]}}),Z=u((t,e)=>{var r=P(),n=L(),i=R(),s=U(),o=X(),a=Q(),u=TypeError,h=a("toPrimitive");e.exports=function(t,e){if(!n(t)||i(t))return t;var a,c=s(t,h);if(c){if(void 0===e&&(e="default"),a=r(c,t,e),!n(a)||i(a))return a;throw new u("Can't convert object to primitive value")}return void 0===e&&(e="number"),o(t,e)}}),tt=u((t,e)=>{var r=Z(),n=R();e.exports=function(t){var e=r(t,"string");return n(e)?e:e+""}}),et=u((t,e)=>{var r=w(),n=L(),i=r.document,s=n(i)&&n(i.createElement);e.exports=function(t){return s?i.createElement(t):{}}}),rt=u((t,e)=>{var r=O(),n=y(),i=et();e.exports=!r&&!n(function(){return 7!==Object.defineProperty(i("div"),"a",{get:function(){return 7}}).a})}),nt=u(t=>{var e=O(),r=P(),n=E(),i=M(),s=C(),o=tt(),a=J(),u=rt(),h=Object.getOwnPropertyDescriptor;t.f=e?h:function(t,e){if(t=s(t),e=o(e),u)try{return h(t,e)}catch(t){}if(a(t,e))return i(!r(n.f,t,e),t[e])}}),it=u((t,e)=>{var r=y(),n=_(),i=/#|\.prototype\./,s=function(t,e){var i=a[o(t)];return i===h||i!==u&&(n(e)?r(e):!!e)},o=s.normalize=function(t){return String(t).replace(i,".").toLowerCase()},a=s.data={},u=s.NATIVE="N",h=s.POLYFILL="P";e.exports=s}),st=u((t,e)=>{var r=N(),n=G(),i=g(),s=r(r.bind);e.exports=function(t,e){return n(t),void 0===e?t:i?s(t,e):function(){return t.apply(e,arguments)}}}),ot=u((t,e)=>{var r=O(),n=y();e.exports=r&&n(function(){return 42!==Object.defineProperty(function(){},"prototype",{value:42,writable:!1}).prototype})}),at=u((t,e)=>{var r=L(),n=String,i=TypeError;e.exports=function(t){if(r(t))return t;throw new i(n(t)+" is not an object")}}),ut=u(t=>{var e=O(),r=rt(),n=ot(),i=at(),s=tt(),o=TypeError,a=Object.defineProperty,u=Object.getOwnPropertyDescriptor,h="enumerable",c="configurable",l="writable";t.f=e?n?function(t,e,r){if(i(t),e=s(e),i(r),"function"==typeof t&&"prototype"===e&&"value"in r&&l in r&&!r[l]){var n=u(t,e);n&&n[l]&&(t[e]=r.value,r={configurable:c in r?r[c]:n[c],enumerable:h in r?r[h]:n[h],writable:!1})}return a(t,e,r)}:a:function(t,e,n){if(i(t),e=s(e),i(n),r)try{return a(t,e,n)}catch(t){}if("get"in n||"set"in n)throw new o("Accessors not supported");return"value"in n&&(t[e]=n.value),t}}),ht=u((t,e)=>{var r=O(),n=ut(),i=M();e.exports=r?function(t,e,r){return n.f(t,e,i(1,r))}:function(t,e,r){return t[e]=r,t}}),ct=u((t,e)=>{var r=w(),n=x(),i=N(),s=_(),o=nt().f,a=it(),u=k(),h=st(),c=ht(),l=J();q();var f=function(t){var e=function(r,i,s){if(this instanceof e){switch(arguments.length){case 0:return new t;case 1:return new t(r);case 2:return new t(r,i)}return new t(r,i,s)}return n(t,this,arguments)};return e.prototype=t.prototype,e};e.exports=function(t,e){var n,d,m,p,y,g,b,v,w,x=t.target,S=t.global,N=t.stat,_=t.proto,O=S?r:N?r[x]:r[x]&&r[x].prototype,P=S?u:u[x]||c(u,x,{})[x],E=P.prototype;for(p in e)d=!(n=a(S?p:x+(N?".":"#")+p,t.forced))&&O&&l(O,p),g=P[p],d&&(b=t.dontCallGetSet?(w=o(O,p))&&w.value:O[p]),y=d&&b?b:e[p],(n||_||typeof g!=typeof y)&&(v=t.bind&&d?h(y,r):t.wrap&&d?f(y):_&&s(y)?i(y):y,(t.sham||y&&y.sham||g&&g.sham)&&c(v,"sham",!0),c(P,p,v),_&&(l(u,m=x+"Prototype")||c(u,m,{}),c(u[m],p,y),t.real&&E&&(n||!E[p])&&c(E,p,y)))}}),lt=u((t,e)=>{var r=Math.ceil,n=Math.floor;e.exports=Math.trunc||function(t){var e=+t;return(e>0?n:r)(e)}}),ft=u((t,e)=>{var r=lt();e.exports=function(t){var e=+t;return e!=e||0===e?0:r(e)}}),dt=u((t,e)=>{var r=ft(),n=Math.max,i=Math.min;e.exports=function(t,e){var s=r(t);return s<0?n(s+e,0):i(s,e)}}),mt=u((t,e)=>{var r=ft(),n=Math.min;e.exports=function(t){var e=r(t);return e>0?n(e,9007199254740991):0}}),pt=u((t,e)=>{var r=mt();e.exports=function(t){return r(t.length)}}),yt=u((t,e)=>{var r=C(),n=dt(),i=pt(),s=function(t){return function(e,s,o){var a=r(e),u=i(a);if(0===u)return!t&&-1;var h,c=n(o,u);if(t&&s!=s){for(;u>c;)if((h=a[c++])!=h)return!0}else for(;u>c;c++)if((t||c in a)&&a[c]===s)return t||c||0;return!t&&-1}};e.exports={includes:s(!0),indexOf:s(!1)}}),gt=u((t,e)=>{e.exports=function(){}}),bt=u(()=>{var t=ct(),e=yt().includes,r=y(),n=gt(),i=r(function(){return!Array(1).includes()}),s=r(function(){return[,1].includes(void 0,1)});t({target:"Array",proto:!0,forced:i||s},{includes:function(t){return e(this,t,arguments.length>1?arguments[1]:void 0)}}),n("includes")}),vt=u((t,e)=>{var r=w(),n=k();e.exports=function(t,e){var i=n[t+"Prototype"],s=i&&i[e];if(s)return s;var o=r[t],a=o&&o.prototype;return a&&a[e]}}),wt=u((t,e)=>{bt();var r=vt();e.exports=r("Array","includes")}),xt=u((t,e)=>{var r=L(),n=S(),i=Q()("match");e.exports=function(t){var e;return r(t)&&(void 0!==(e=t[i])?!!e:"RegExp"===n(t))}}),St=u((t,e)=>{var r=xt(),n=TypeError;e.exports=function(t){if(r(t))throw new n("The method doesn't accept regular expressions");return t}}),Nt=u((t,e)=>{var r={};r[Q()("toStringTag")]="z",e.exports="[object z]"===String(r)}),_t=u((t,e)=>{var r=Nt(),n=_(),i=S(),s=Q()("toStringTag"),o=Object,a="Arguments"===i(function(){return arguments}());e.exports=r?i:function(t){var e,r,u;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(r=function(t,e){try{return t[e]}catch(t){}}(e=o(t),s))?r:a?i(e):"Object"===(u=i(e))&&n(e.callee)?"Arguments":u}}),Ot=u((t,e)=>{var r=_t(),n=String;e.exports=function(t){if("Symbol"===r(t))throw new TypeError("Cannot convert a Symbol value to a string");return n(t)}}),Pt=u((t,e)=>{var r=Q()("match");e.exports=function(t){var e=/./;try{"/./"[t](e)}catch(n){try{return e[r]=!1,"/./"[t](e)}catch(t){}}return!1}}),Et=u(()=>{var t=ct(),e=b(),r=St(),n=j(),i=Ot(),s=Pt(),o=e("".indexOf);t({target:"String",proto:!0,forced:!s("includes")},{includes:function(t){return!!~o(i(n(this)),i(r(t)),arguments.length>1?arguments[1]:void 0)}})}),Mt=u((t,e)=>{Et();var r=vt();e.exports=r("String","includes")}),At=u((t,e)=>{var r=v(),n=wt(),i=Mt(),s=Array.prototype,o=String.prototype;e.exports=function(t){var e=t.includes;return t===s||r(s,t)&&e===s.includes?n:"string"==typeof t||t===o||r(o,t)&&e===o.includes?i:e}}),Tt=c(u((t,e)=>{var r=At();e.exports=r})(),1);function jt(t,e){let r;const n=t.length,i=[];for(r=0;r<n;r++)i.push(e(t[r]));return i}function Ct(t){return t%360*Math.PI/180}function Lt(t){return t.replace(/([A-Z])/g,function(t,e){return"-"+e.toLowerCase()})}function kt(t){return t.charAt(0).toUpperCase()+t.slice(1)}function Dt(t,e,r,n){return null!=e&&null!=r||(n=n||t.bbox(),null==e?e=n.width/n.height*r:null==r&&(r=n.height/n.width*e)),{width:e,height:r}}function It(t,e){const r=t.origin;let n=null!=t.ox?t.ox:null!=t.originX?t.originX:"center",i=null!=t.oy?t.oy:null!=t.originY?t.originY:"center";null!=r&&([n,i]=Array.isArray(r)?r:"object"==typeof r?[r.x,r.y]:[r,r]);const s="string"==typeof n,o="string"==typeof i;if(s||o){const{height:t,width:r,x:a,y:u}=e.bbox();s&&(n=(0,Tt.default)(n).call(n,"left")?a:(0,Tt.default)(n).call(n,"right")?a+r:a+r/2),o&&(i=(0,Tt.default)(i).call(i,"top")?u:(0,Tt.default)(i).call(i,"bottom")?u+t:u+t/2)}return[n,i]}const Ft=new Set(["desc","metadata","title"]),Bt=t=>Ft.has(t.nodeName),Vt="http://www.w3.org/2000/svg",Rt="http://www.w3.org/2000/xmlns/",zt="http://www.w3.org/1999/xlink",Gt={window:"undefined"==typeof window?null:window,document:"undefined"==typeof document?null:document};var Ut=class{};const Xt={},Yt="___SYMBOL___ROOT___";function Wt(t,e=Vt){return Gt.document.createElementNS(e,t)}function qt(t,e=!1){if(t instanceof Ut)return t;if("object"==typeof t)return Jt(t);if(null==t)return new Xt[Yt];if("string"==typeof t&&"<"!==t.trim().charAt(0))return Jt(Gt.document.querySelector(t));const r=e?Gt.document.createElement("div"):Wt("svg");return r.innerHTML=t.trim(),t=Jt(r.firstElementChild),r.removeChild(r.firstElementChild),t}function Ht(t,e){return e&&(e instanceof Gt.window.Node||e.ownerDocument&&e instanceof e.ownerDocument.defaultView.Node)?e:Wt(t)}function $t(t){if(!t)return null;if(t.instance instanceof Ut)return t.instance;if("#document-fragment"===t.nodeName)return new Xt.Fragment(t);let e=kt(t.nodeName||"Dom");return"LinearGradient"===e||"RadialGradient"===e?e="Gradient":Xt[e]||(e="Dom"),new Xt[e](t)}let Jt=$t;function Kt(t,e=t.name,r=!1){return Xt[e]=t,r&&(Xt[Yt]=t),p(Object.getOwnPropertyNames(t.prototype)),t}let Qt=1e3;function Zt(t){return"Svgjs"+kt(t)+Qt++}function te(t){for(let e=t.children.length-1;e>=0;e--)te(t.children[e]);return t.id?(t.id=Zt(t.nodeName),t):t}function ee(t,e){let r,n;for(n=(t=Array.isArray(t)?t:[t]).length-1;n>=0;n--)for(r in e)t[n].prototype[r]=e[r]}function re(t){return function(...e){const r=e[e.length-1];return!r||r.constructor!==Object||r instanceof Array?t.apply(this,e):t.apply(this,e.slice(0,-1)).attr(r)}}d("Dom",{siblings:function(){return this.parent().children()},position:function(){return this.parent().index(this)},next:function(){return this.siblings()[this.position()+1]},prev:function(){return this.siblings()[this.position()-1]},forward:function(){const t=this.position();return this.parent().add(this.remove(),t+1),this},backward:function(){const t=this.position();return this.parent().add(this.remove(),t?t-1:0),this},front:function(){return this.parent().add(this.remove()),this},back:function(){return this.parent().add(this.remove(),0),this},before:function(t){(t=qt(t)).remove();const e=this.position();return this.parent().add(t,e),this},after:function(t){(t=qt(t)).remove();const e=this.position();return this.parent().add(t,e+1),this},insertBefore:function(t){return(t=qt(t)).before(this),this},insertAfter:function(t){return(t=qt(t)).after(this),this}});const ne=/^([+-]?(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?)([a-z%]*)$/i,ie=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i,se=/rgb\((\d+),(\d+),(\d+)\)/,oe=/^(#[^\s]+)$/,ae=/\)\s*,?\s*/,ue=/\s/g,he=/^#[a-f0-9]{3}$|^#[a-f0-9]{6}$/i,ce=/^rgb\(/,le=/^(\s+)?$/,fe=/^[+-]?(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,de=/\.(jpg|jpeg|png|gif|svg)(\?[^=]+.*)?/i,me=/[\s,]+/,pe=/[MLHVCSQTAZ]/i;d("Dom",{classes:function(){const t=this.attr("class");return null==t?[]:t.trim().split(me)},hasClass:function(t){return-1!==this.classes().indexOf(t)},addClass:function(t){if(!this.hasClass(t)){const e=this.classes();e.push(t),this.attr("class",e.join(" "))}return this},removeClass:function(t){return this.hasClass(t)&&this.attr("class",this.classes().filter(function(e){return e!==t}).join(" ")),this},toggleClass:function(t){return this.hasClass(t)?this.removeClass(t):this.addClass(t)}});const ye=t=>t.startsWith("--")?t:Lt(t);function ge(t){const e=Math.max(0,Math.min(255,Math.round(t))).toString(16);return 1===e.length?"0"+e:e}function be(t,e){for(let r=e.length;r--;)if(null==t[e[r]])return!1;return!0}function ve(t,e,r){return r<0&&(r+=1),r>1&&(r-=1),r<1/6?t+6*(e-t)*r:r<.5?e:r<2/3?t+(e-t)*(2/3-r)*6:t}d("Dom",{css:function(t,e){const r={};if(0===arguments.length){const t=this.node.style;for(let e=0;e<t.length;e++){const n=t.item(e),i=t.getPropertyValue(n),s=t.getPropertyPriority(n);r[n]=s?`${i} !${s}`:i}return r}if(arguments.length<2){if(Array.isArray(t)){for(const e of t){const t=ye(e);r[e]=this.node.style.getPropertyValue(t)}return r}if("string"==typeof t)return this.node.style.getPropertyValue(ye(t));if("object"==typeof t)for(const e in t)this.node.style.setProperty(ye(e),null==t[e]||le.test(t[e])?"":t[e])}return 2===arguments.length&&this.node.style.setProperty(ye(t),null==e||le.test(e)?"":e),this},show:function(){return this.css("display","")},hide:function(){return this.css("display","none")},visible:function(){return"none"!==this.css("display")}}),d("Dom",{data:function(t,e,r){if(null==t)return this.data(jt(function(t,e){let r;const n=t.length,i=[];for(r=0;r<n;r++)e(t[r])&&i.push(t[r]);return i}(this.node.attributes,t=>0===t.nodeName.indexOf("data-")),t=>t.nodeName.slice(5)));if(t instanceof Array){const e={};for(const r of t)e[r]=this.data(r);return e}if("object"==typeof t)for(e in t)this.data(e,t[e]);else if(arguments.length<2)try{return JSON.parse(this.attr("data-"+t))}catch(e){return this.attr("data-"+t)}else this.attr("data-"+t,null===e?null:!0===r||"string"==typeof e||"number"==typeof e?e:JSON.stringify(e));return this}}),d("Dom",{remember:function(t,e){if("object"==typeof arguments[0])for(const e in t)this.remember(e,t[e]);else{if(1===arguments.length)return this.memory()[t];this.memory()[t]=e}return this},forget:function(){if(0===arguments.length)this._memory={};else for(let t=arguments.length-1;t>=0;t--)delete this.memory()[arguments[t]];return this},memory:function(){return this._memory=this._memory||{}}});var we=class t{constructor(...t){this.init(...t)}static isColor(e){return e&&(e instanceof t||this.isRgb(e)||this.test(e))}static isRgb(t){return t&&"number"==typeof t.r&&"number"==typeof t.g&&"number"==typeof t.b}static random(e="vibrant",r){const{random:n,round:i,sin:s,PI:o}=Math;if("vibrant"===e){const e=24*n()+57,r=38*n()+45,i=360*n();return new t(e,r,i,"lch")}if("sine"===e){const e=i(80*s(2*o*(r=r??n())/.5+.01)+150),a=i(50*s(2*o*r/.5+4.6)+200),u=i(100*s(2*o*r/.5+2.3)+150);return new t(e,a,u)}if("pastel"===e){const e=8*n()+86,r=17*n()+9,i=360*n();return new t(e,r,i,"lch")}if("dark"===e){const e=10+10*n(),r=50*n()+86,i=360*n();return new t(e,r,i,"lch")}if("rgb"===e){const e=255*n(),r=255*n(),i=255*n();return new t(e,r,i)}if("lab"===e){const e=100*n(),r=256*n()-128,i=256*n()-128;return new t(e,r,i,"lab")}if("grey"===e){const e=255*n();return new t(e,e,e)}throw new Error("Unsupported random color mode")}static test(t){return"string"==typeof t&&(he.test(t)||ce.test(t))}cmyk(){const{_a:e,_b:r,_c:n}=this.rgb(),[i,s,o]=[e,r,n].map(t=>t/255),a=Math.min(1-i,1-s,1-o);return 1===a?new t(0,0,0,1,"cmyk"):new t((1-i-a)/(1-a),(1-s-a)/(1-a),(1-o-a)/(1-a),a,"cmyk")}hsl(){const{_a:e,_b:r,_c:n}=this.rgb(),[i,s,o]=[e,r,n].map(t=>t/255),a=Math.max(i,s,o),u=Math.min(i,s,o),h=(a+u)/2,c=a===u,l=a-u;return new t(360*(c?0:a===i?((s-o)/l+(s<o?6:0))/6:a===s?((o-i)/l+2)/6:a===o?((i-s)/l+4)/6:0),100*(c?0:h>.5?l/(2-a-u):l/(a+u)),100*h,"hsl")}init(t=0,e=0,r=0,n=0,i="rgb"){if(t=t||0,this.space)for(const t in this.space)delete this[this.space[t]];if("number"==typeof t)i="string"==typeof n?n:i,n="string"==typeof n?0:n,Object.assign(this,{_a:t,_b:e,_c:r,_d:n,space:i});else if(t instanceof Array)this.space=e||("string"==typeof t[3]?t[3]:t[4])||"rgb",Object.assign(this,{_a:t[0],_b:t[1],_c:t[2],_d:t[3]||0});else if(t instanceof Object){const r=function(t,e){const r=be(t,"rgb")?{_a:t.r,_b:t.g,_c:t.b,_d:0,space:"rgb"}:be(t,"xyz")?{_a:t.x,_b:t.y,_c:t.z,_d:0,space:"xyz"}:be(t,"hsl")?{_a:t.h,_b:t.s,_c:t.l,_d:0,space:"hsl"}:be(t,"lab")?{_a:t.l,_b:t.a,_c:t.b,_d:0,space:"lab"}:be(t,"lch")?{_a:t.l,_b:t.c,_c:t.h,_d:0,space:"lch"}:be(t,"cmyk")?{_a:t.c,_b:t.m,_c:t.y,_d:t.k,space:"cmyk"}:{_a:0,_b:0,_c:0,space:"rgb"};return r.space=e||r.space,r}(t,e);Object.assign(this,r)}else if("string"==typeof t)if(ce.test(t)){const e=t.replace(ue,""),[r,n,i]=se.exec(e).slice(1,4).map(t=>parseInt(t));Object.assign(this,{_a:r,_b:n,_c:i,_d:0,space:"rgb"})}else{if(!he.test(t))throw Error("Unsupported string format, can't construct Color");{const e=t=>parseInt(t,16),[,r,n,i]=ie.exec(function(t){return 4===t.length?["#",t.substring(1,2),t.substring(1,2),t.substring(2,3),t.substring(2,3),t.substring(3,4),t.substring(3,4)].join(""):t}(t)).map(e);Object.assign(this,{_a:r,_b:n,_c:i,_d:0,space:"rgb"})}}const{_a:s,_b:o,_c:a,_d:u}=this,h="rgb"===this.space?{r:s,g:o,b:a}:"xyz"===this.space?{x:s,y:o,z:a}:"hsl"===this.space?{h:s,s:o,l:a}:"lab"===this.space?{l:s,a:o,b:a}:"lch"===this.space?{l:s,c:o,h:a}:"cmyk"===this.space?{c:s,m:o,y:a,k:u}:{};Object.assign(this,h)}lab(){const{x:e,y:r,z:n}=this.xyz();return new t(116*r-16,500*(e-r),200*(r-n),"lab")}lch(){const{l:e,a:r,b:n}=this.lab(),i=Math.sqrt(r**2+n**2);let s=180*Math.atan2(n,r)/Math.PI;return s<0&&(s*=-1,s=360-s),new t(e,i,s,"lch")}rgb(){if("rgb"===this.space)return this;if("lab"===(e=this.space)||"xyz"===e||"lch"===e){let{x:e,y:r,z:n}=this;if("lab"===this.space||"lch"===this.space){let{l:t,a:i,b:s}=this;if("lch"===this.space){const{c:t,h:e}=this,r=Math.PI/180;i=t*Math.cos(r*e),s=t*Math.sin(r*e)}const o=(t+16)/116,a=i/500+o,u=o-s/200,h=16/116,c=.008856,l=7.787;e=.95047*(a**3>c?a**3:(a-h)/l),r=1*(o**3>c?o**3:(o-h)/l),n=1.08883*(u**3>c?u**3:(u-h)/l)}const i=3.2406*e+-1.5372*r+-.4986*n,s=-.9689*e+1.8758*r+.0415*n,o=.0557*e+-.204*r+1.057*n,a=Math.pow,u=.0031308,h=i>u?1.055*a(i,1/2.4)-.055:12.92*i,c=s>u?1.055*a(s,1/2.4)-.055:12.92*s,l=o>u?1.055*a(o,1/2.4)-.055:12.92*o;return new t(255*h,255*c,255*l)}if("hsl"===this.space){let{h:e,s:r,l:n}=this;if(e/=360,r/=100,n/=100,0===r)return n*=255,new t(n,n,n);const i=n<.5?n*(1+r):n+r-n*r,s=2*n-i,o=255*ve(s,i,e+1/3),a=255*ve(s,i,e),u=255*ve(s,i,e-1/3);return new t(o,a,u)}if("cmyk"===this.space){const{c:e,m:r,y:n,k:i}=this,s=255*(1-Math.min(1,e*(1-i)+i)),o=255*(1-Math.min(1,r*(1-i)+i)),a=255*(1-Math.min(1,n*(1-i)+i));return new t(s,o,a)}return this;var e}toArray(){const{_a:t,_b:e,_c:r,_d:n,space:i}=this;return[t,e,r,n,i]}toHex(){const[t,e,r]=this._clamped().map(ge);return`#${t}${e}${r}`}toRgb(){const[t,e,r]=this._clamped();return`rgb(${t},${e},${r})`}toString(){return this.toHex()}xyz(){const{_a:e,_b:r,_c:n}=this.rgb(),[i,s,o]=[e,r,n].map(t=>t/255),a=i>.04045?Math.pow((i+.055)/1.055,2.4):i/12.92,u=s>.04045?Math.pow((s+.055)/1.055,2.4):s/12.92,h=o>.04045?Math.pow((o+.055)/1.055,2.4):o/12.92,c=(.4124*a+.3576*u+.1805*h)/.95047,l=(.2126*a+.7152*u+.0722*h)/1,f=(.0193*a+.1192*u+.9505*h)/1.08883,d=c>.008856?Math.pow(c,1/3):7.787*c+16/116,m=l>.008856?Math.pow(l,1/3):7.787*l+16/116,p=f>.008856?Math.pow(f,1/3):7.787*f+16/116;return new t(d,m,p,"xyz")}_clamped(){const{_a:t,_b:e,_c:r}=this.rgb(),{max:n,min:i,round:s}=Math;return[t,e,r].map(t=>n(0,i(s(t),255)))}},xe=class t{constructor(...t){this.init(...t)}clone(){return new t(this)}init(t,e){const r=Array.isArray(t)?{x:t[0],y:t[1]}:"object"==typeof t?{x:t.x,y:t.y}:{x:t,y:e};return this.x=r.x??0,this.y=r.y??0,this}toArray(){return[this.x,this.y]}transform(t){return this.clone().transformO(t)}transformO(t){Ne.isMatrixLike(t)||(t=new Ne(t));const{x:e,y:r}=this;return this.x=t.a*e+t.c*r+t.e,this.y=t.b*e+t.d*r+t.f,this}};function Se(t,e,r){return Math.abs(e-t)<(r||1e-6)}var Ne=class t{constructor(...t){this.init(...t)}static formatTransforms(t){const e="both"===t.flip||!0===t.flip,r=t.flip&&(e||"x"===t.flip)?-1:1,n=t.flip&&(e||"y"===t.flip)?-1:1,i=t.skew&&t.skew.length?t.skew[0]:isFinite(t.skew)?t.skew:isFinite(t.skewX)?t.skewX:0,s=t.skew&&t.skew.length?t.skew[1]:isFinite(t.skew)?t.skew:isFinite(t.skewY)?t.skewY:0,o=t.scale&&t.scale.length?t.scale[0]*r:isFinite(t.scale)?t.scale*r:isFinite(t.scaleX)?t.scaleX*r:r,a=t.scale&&t.scale.length?t.scale[1]*n:isFinite(t.scale)?t.scale*n:isFinite(t.scaleY)?t.scaleY*n:n,u=t.shear||0,h=t.rotate||t.theta||0,c=new xe(t.origin||t.around||t.ox||t.originX,t.oy||t.originY),l=c.x,f=c.y,d=new xe(t.position??t.px??t.positionX??NaN,t.py??t.positionY??NaN),m=d.x,p=d.y,y=new xe(t.translate||t.tx||t.translateX,t.ty||t.translateY),g=y.x,b=y.y,v=new xe(t.relative||t.rx||t.relativeX,t.ry||t.relativeY);return{scaleX:o,scaleY:a,skewX:i,skewY:s,shear:u,theta:h,rx:v.x,ry:v.y,tx:g,ty:b,ox:l,oy:f,px:m,py:p}}static fromArray(t){return{a:t[0],b:t[1],c:t[2],d:t[3],e:t[4],f:t[5]}}static isMatrixLike(t){return null!=t.a||null!=t.b||null!=t.c||null!=t.d||null!=t.e||null!=t.f}static matrixMultiply(t,e,r){const n=t.a*e.a+t.c*e.b,i=t.b*e.a+t.d*e.b,s=t.a*e.c+t.c*e.d,o=t.b*e.c+t.d*e.d,a=t.e+t.a*e.e+t.c*e.f,u=t.f+t.b*e.e+t.d*e.f;return r.a=n,r.b=i,r.c=s,r.d=o,r.e=a,r.f=u,r}around(t,e,r){return this.clone().aroundO(t,e,r)}aroundO(t,e,r){const n=t||0,i=e||0;return this.translateO(-n,-i).lmultiplyO(r).translateO(n,i)}clone(){return new t(this)}decompose(t=0,e=0){const r=this.a,n=this.b,i=this.c,s=this.d,o=this.e,a=this.f,u=r*s-n*i,h=u>0?1:-1,c=h*Math.sqrt(r*r+n*n),l=Math.atan2(h*n,h*r),f=(r*i+n*s)/u;return{scaleX:c,scaleY:i*c/(f*r-n)||s*c/(f*n+r),shear:f,rotate:180/Math.PI*l,translateX:o-t+t*r+e*i,translateY:a-e+t*n+e*s,originX:t,originY:e,a:this.a,b:this.b,c:this.c,d:this.d,e:this.e,f:this.f}}equals(e){if(e===this)return!0;const r=new t(e);return Se(this.a,r.a)&&Se(this.b,r.b)&&Se(this.c,r.c)&&Se(this.d,r.d)&&Se(this.e,r.e)&&Se(this.f,r.f)}flip(t,e){return this.clone().flipO(t,e)}flipO(t,e){return"x"===t?this.scaleO(-1,1,e,0):"y"===t?this.scaleO(1,-1,0,e):this.scaleO(-1,-1,t,e||t)}init(e){const r=t.fromArray([1,0,0,1,0,0]);return e=e instanceof Qe?e.matrixify():"string"==typeof e?t.fromArray(e.split(me).map(parseFloat)):Array.isArray(e)?t.fromArray(e):"object"==typeof e&&t.isMatrixLike(e)?e:"object"==typeof e?(new t).transform(e):6===arguments.length?t.fromArray([].slice.call(arguments)):r,this.a=null!=e.a?e.a:r.a,this.b=null!=e.b?e.b:r.b,this.c=null!=e.c?e.c:r.c,this.d=null!=e.d?e.d:r.d,this.e=null!=e.e?e.e:r.e,this.f=null!=e.f?e.f:r.f,this}inverse(){return this.clone().inverseO()}inverseO(){const t=this.a,e=this.b,r=this.c,n=this.d,i=this.e,s=this.f,o=t*n-e*r;if(!o)throw new Error("Cannot invert "+this);const a=n/o,u=-e/o,h=-r/o,c=t/o,l=-(a*i+h*s),f=-(u*i+c*s);return this.a=a,this.b=u,this.c=h,this.d=c,this.e=l,this.f=f,this}lmultiply(t){return this.clone().lmultiplyO(t)}lmultiplyO(e){const r=e instanceof t?e:new t(e);return t.matrixMultiply(r,this,this)}multiply(t){return this.clone().multiplyO(t)}multiplyO(e){const r=e instanceof t?e:new t(e);return t.matrixMultiply(this,r,this)}rotate(t,e,r){return this.clone().rotateO(t,e,r)}rotateO(t,e=0,r=0){t=Ct(t);const n=Math.cos(t),i=Math.sin(t),{a:s,b:o,c:a,d:u,e:h,f:c}=this;return this.a=s*n-o*i,this.b=o*n+s*i,this.c=a*n-u*i,this.d=u*n+a*i,this.e=h*n-c*i+r*i-e*n+e,this.f=c*n+h*i-e*i-r*n+r,this}scale(){return this.clone().scaleO(...arguments)}scaleO(t,e=t,r=0,n=0){3===arguments.length&&(n=r,r=e,e=t);const{a:i,b:s,c:o,d:a,e:u,f:h}=this;return this.a=i*t,this.b=s*e,this.c=o*t,this.d=a*e,this.e=u*t-r*t+r,this.f=h*e-n*e+n,this}shear(t,e,r){return this.clone().shearO(t,e,r)}shearO(t,e=0,r=0){const{a:n,b:i,c:s,d:o,e:a,f:u}=this;return this.a=n+i*t,this.c=s+o*t,this.e=a+u*t-r*t,this}skew(){return this.clone().skewO(...arguments)}skewO(t,e=t,r=0,n=0){3===arguments.length&&(n=r,r=e,e=t),t=Ct(t),e=Ct(e);const i=Math.tan(t),s=Math.tan(e),{a:o,b:a,c:u,d:h,e:c,f:l}=this;return this.a=o+a*i,this.b=a+o*s,this.c=u+h*i,this.d=h+u*s,this.e=c+l*i-n*i,this.f=l+c*s-r*s,this}skewX(t,e,r){return this.skew(t,0,e,r)}skewY(t,e,r){return this.skew(0,t,e,r)}toArray(){return[this.a,this.b,this.c,this.d,this.e,this.f]}toString(){return"matrix("+this.a+","+this.b+","+this.c+","+this.d+","+this.e+","+this.f+")"}transform(e){if(t.isMatrixLike(e))return new t(e).multiplyO(this);const r=t.formatTransforms(e),{x:n,y:i}=new xe(r.ox,r.oy).transform(this),s=(new t).translateO(r.rx,r.ry).lmultiplyO(this).translateO(-n,-i).scaleO(r.scaleX,r.scaleY).skewO(r.skewX,r.skewY).shearO(r.shear).rotateO(r.theta).translateO(n,i);if(isFinite(r.px)||isFinite(r.py)){const t=new xe(n,i).transform(s),e=isFinite(r.px)?r.px-t.x:0,o=isFinite(r.py)?r.py-t.y:0;s.translateO(e,o)}return s.translateO(r.tx,r.ty),s}translate(t,e){return this.clone().translateO(t,e)}translateO(t,e){return this.e+=t||0,this.f+=e||0,this}valueOf(){return{a:this.a,b:this.b,c:this.c,d:this.d,e:this.e,f:this.f}}};function _e(){if(!_e.nodes||_e.nodes.svg.node.ownerDocument!==Gt.document){const t=qt().size(2,0);t.node.style.cssText=["opacity: 0","position: absolute","left: -100%","top: -100%","overflow: hidden"].join(";"),t.attr("focusable","false"),t.attr("aria-hidden","true"),_e.nodes={svg:t,path:t.path().node}}return _e.nodes.svg.node.parentNode||_e.nodes.svg.addTo(Gt.document.body||Gt.document.documentElement),_e.nodes}function Oe(t){return!(t.width||t.height||t.x||t.y)}Kt(Ne,"Matrix");var Pe=class t{constructor(...t){this.init(...t)}addOffset(){return this.x+=Gt.window.pageXOffset,this.y+=Gt.window.pageYOffset,new t(this)}init(t){return t="string"==typeof t?t.split(me).map(parseFloat):Array.isArray(t)?t:"object"==typeof t?[null!=t.left?t.left:t.x,null!=t.top?t.top:t.y,t.width,t.height]:4===arguments.length?[].slice.call(arguments):[0,0,0,0],this.x=t[0]||0,this.y=t[1]||0,this.width=this.w=t[2]||0,this.height=this.h=t[3]||0,this.x2=this.x+this.w,this.y2=this.y+this.h,this.cx=this.x+this.w/2,this.cy=this.y+this.h/2,this}isNulled(){return Oe(this)}merge(e){const r=Math.min(this.x,e.x),n=Math.min(this.y,e.y),i=Math.max(this.x+this.width,e.x+e.width)-r,s=Math.max(this.y+this.height,e.y+e.height)-n;return new t(r,n,i,s)}toArray(){return[this.x,this.y,this.width,this.height]}toString(){return this.x+" "+this.y+" "+this.width+" "+this.height}transform(e){e instanceof Ne||(e=new Ne(e));let r=1/0,n=-1/0,i=1/0,s=-1/0;return[new xe(this.x,this.y),new xe(this.x2,this.y),new xe(this.x,this.y2),new xe(this.x2,this.y2)].forEach(function(t){t=t.transform(e),r=Math.min(r,t.x),n=Math.max(n,t.x),i=Math.min(i,t.y),s=Math.max(s,t.y)}),new t(r,i,n-r,s-i)}};function Ee(t,e,r){let n;try{if(n=e(t.node),Oe(n)&&(i=t.node)!==Gt.document&&!(Gt.document.documentElement.contains||function(t){for(;t.parentNode;)t=t.parentNode;return t===Gt.document}).call(Gt.document.documentElement,i))throw new Error("Element not in the dom")}catch(e){n=r(t)}var i;return n}d({viewbox:{viewbox(t,e,r,n){return null==t?new Pe(this.attr("viewBox")):this.attr("viewBox",new Pe(t,e,r,n))},zoom(t,e){let{width:r,height:n}=this.attr(["width","height"]);if((r||n)&&"string"!=typeof r&&"string"!=typeof n||(r=this.node.clientWidth,n=this.node.clientHeight),!r||!n)throw new Error("Impossible to get absolute width and height. Please provide an absolute width and height attribute on the zooming element");const i=this.viewbox(),s=r/i.width,o=n/i.height,a=Math.min(s,o);if(null==t)return a;let u=a/t;u===1/0&&(u=Number.MAX_SAFE_INTEGER/100),e=e||new xe(r/2/s+i.x,n/2/o+i.y);const h=new Pe(i).transform(new Ne({scale:u,origin:e}));return this.viewbox(h)}}}),Kt(Pe,"Box");var Me=class extends Array{constructor(t=[],...e){if(super(t,...e),"number"==typeof t)return this;this.length=0,this.push(...t)}};ee([Me],{each(t,...e){return"function"==typeof t?this.map((e,r,n)=>t.call(e,e,r,n)):this.map(r=>r[t](...e))},toArray(){return Array.prototype.concat.apply([],this)}});const Ae=["toArray","constructor","each"];function Te(t){let e=(t+"").trim();const r=e.match(/^url\((.*)\)$/i);if(r){e=r[1].trim();const t=e[0];if('"'===t||"'"===t){if(e[e.length-1]!==t)return null;e=e.slice(1,-1)}}const n=e.match(oe);return n?n[1].slice(1):null}function je(t,e){const r=`#${Gt.window.CSS.escape(e)}`;return 1===t.nodeType&&t.matches(r)?t:t.querySelector(r)}function Ce(t,e,r=`[${e}]`){const n=t.getAttribute("id"),i=t.getRootNode();if(!n||je(i,n)!==t)return new Me;const s=[];1===i.nodeType&&i.matches(r)&&Te(i.getAttribute(e))===n&&s.push($t(i));for(const t of i.querySelectorAll(r))Te(t.getAttribute(e))===n&&s.push($t(t));return new Me(s)}Me.extend=function(t){t=t.reduce((t,e)=>((0,Tt.default)(Ae).call(Ae,e)||"_"===e[0]||(e in Array.prototype&&(t["$"+e]=Array.prototype[e]),t[e]=function(...t){return this.each(e,...t)}),t),{}),ee([Me],t)};let Le=0;const ke=new WeakMap,De=new WeakMap,Ie=()=>Object.create(null);function Fe(t){const e=t.getEventHolder();let r=ke.get(e);return r||(r=Ie(),ke.set(e,r)),r}function Be(t){return t.getEventTarget()}function Ve(t,e,r,n,i){const s=r.bind(n||t),o=i||!1,a=qt(t),u=Fe(a),h=Be(a);e=Array.isArray(e)?e:e.split(me);let c=De.get(r);c||(c=++Le,De.set(r,c)),e.forEach(function(t){const e=t.split(".")[0],r=t.split(".")[1]||"*";u[e]=u[e]||Ie(),u[e][r]=u[e][r]||Ie(),u[e][r][c]=u[e][r][c]||[],u[e][r][c].push({listener:s,options:o}),h.addEventListener(e,s,o)})}function Re(t,e,r,n){const i=qt(t),s=Fe(i),o=Be(i);("function"!=typeof r||(r=De.get(r)))&&(e=Array.isArray(e)?e:(e||"").split(me)).forEach(function(t){const e=t&&t.split(".")[0],a=t&&t.split(".")[1];let u,h;if(r){if(s[e]&&s[e][a||"*"]){const t=s[e][a||"*"][r];if(!t)return;t.forEach(function(t){o.removeEventListener(e,t.listener,t.options??n??!1)}),delete s[e][a||"*"][r]}}else if(e&&a){if(s[e]&&s[e][a]){for(h in s[e][a])Re(o,[e,a].join("."),h);delete s[e][a]}}else if(a)for(t in s)for(u in s[t])a===u&&Re(o,[t,a].join("."));else if(e){if(s[e]){for(u in s[e])Re(o,[e,u].join("."));delete s[e]}}else{for(t in s)Re(o,t);!function(t){ke.delete(t.getEventHolder())}(i)}})}var ze=class extends Ut{addEventListener(){}dispatch(t,e,r){return function(t,e,r,n){const i=Be(t);return e instanceof Gt.window.Event||(e=new Gt.window.CustomEvent(e,{detail:r,cancelable:!0,...n})),i.dispatchEvent(e),e}(this,t,e,r)}dispatchEvent(t){const e=Fe(this)[t.type];if(!e)return!0;for(const r in e)for(const n in e[r])e[r][n].forEach(function(e){e.listener(t)});return!t.defaultPrevented}fire(t,e,r){return this.dispatch(t,e,r),this}getEventHolder(){return this}getEventTarget(){return this}off(t,e,r){return Re(this,t,e,r),this}on(t,e,r,n){return Ve(this,t,e,r,n),this}removeEventListener(){}};function Ge(){}Kt(ze,"EventTarget");const Ue=400,Xe=">",Ye=0,We={"fill-opacity":1,"stroke-opacity":1,"stroke-width":0,"stroke-linejoin":"miter","stroke-linecap":"butt",fill:"#000000",stroke:"#000000",opacity:1,x:0,y:0,cx:0,cy:0,width:0,height:0,r:0,rx:0,ry:0,offset:0,"stop-opacity":1,"stop-color":"#000000","text-anchor":"start"};var qe=class extends Array{constructor(...t){super(...t),this.init(...t)}clone(){return new this.constructor(this)}init(t){return"number"==typeof t||(this.length=0,this.push(...this.parse(t))),this}parse(t=[]){return t instanceof Array?t:t.trim().split(me).map(parseFloat)}toArray(){return Array.prototype.concat.apply([],this)}toSet(){return new Set(this)}toString(){return this.join(" ")}valueOf(){const t=[];return t.push(...this),t}},He=class t{constructor(...t){this.init(...t)}convert(e){return new t(this.value,e)}divide(e){return e=new t(e),new t(this/e,this.unit||e.unit)}init(e,r){return r=Array.isArray(e)?e[1]:r,e=Array.isArray(e)?e[0]:e,this.value=0,this.unit=r||"","number"==typeof e?this.value=isNaN(e)?0:isFinite(e)?e:e<0?-34e37:34e37:"string"==typeof e?(r=e.match(ne))&&(this.value=parseFloat(r[1]),"%"===r[5]?this.value/=100:"s"===r[5]&&(this.value*=1e3),this.unit=r[5]):e instanceof t&&(this.value=e.valueOf(),this.unit=e.unit),this}minus(e){return e=new t(e),new t(this-e,this.unit||e.unit)}plus(e){return e=new t(e),new t(this+e,this.unit||e.unit)}times(e){return e=new t(e),new t(this*e,this.unit||e.unit)}toArray(){return[this.value,this.unit]}toJSON(){return this.toString()}toString(){return("%"===this.unit?~~(1e8*this.value)/1e6:"s"===this.unit?this.value/1e3:this.value)+this.unit}valueOf(){return this.value}};const $e=new Set(["fill","stroke","color","bgcolor","stop-color","flood-color","lighting-color"]),Je=[];var Ke=class t extends ze{constructor(t,e){super(),this.node=t,this.type=t.nodeName,e&&t!==e&&this.attr(e)}add(t,e){return(t=qt(t)).removeNamespace&&this.node instanceof Gt.window.SVGElement&&t.removeNamespace(),null==e?this.node.appendChild(t.node):t.node!==this.node.childNodes[e]&&this.node.insertBefore(t.node,this.node.childNodes[e]),this}addTo(t,e){return qt(t).put(this,e)}children(){return new Me(jt(this.node.children,function(t){return $t(t)}))}clear(){for(;this.node.hasChildNodes();)this.node.removeChild(this.node.lastChild);return this}clone(t=!0,e=!0){this.writeDataToDom();let r=this.node.cloneNode(t);return e&&(r=te(r)),new this.constructor(r)}each(t,e){const r=this.children();let n,i;for(n=0,i=r.length;n<i;n++)t.apply(r[n],[n,r]),e&&r[n].each(t,e);return this}element(e,r){return this.put(new t(Wt(e),r))}first(){return $t(this.node.firstChild)}get(t){return $t(this.node.childNodes[t])}getEventHolder(){return this.node}getEventTarget(){return this.node}has(t){return this.index(t)>=0}html(t,e){return this.xml(t,e,"http://www.w3.org/1999/xhtml")}id(t){return void 0!==t||this.node.id||(this.node.id=Zt(this.type)),this.attr("id",t)}index(t){return[].slice.call(this.node.childNodes).indexOf(t.node)}last(){return $t(this.node.lastChild)}matches(t){const e=this.node,r=e.matches||e.matchesSelector||e.msMatchesSelector||e.mozMatchesSelector||e.webkitMatchesSelector||e.oMatchesSelector||null;return r&&r.call(e,t)}parent(t){let e=this;if(!e.node.parentNode)return null;if(e=$t(e.node.parentNode),!t)return e;do{if("string"==typeof t?e.matches(t):e instanceof t)return e}while(e=$t(e.node.parentNode));return e}put(t,e){return t=qt(t),this.add(t,e),t}putIn(t,e){return qt(t).add(this,e)}remove(){return this.parent()&&this.parent().removeElement(this),this}removeElement(t){return this.node.removeChild(t.node),this}replace(t){return t=qt(t),this.node.parentNode&&this.node.parentNode.replaceChild(t.node,this.node),t}round(t=2,e=null){const r=10**t,n=this.attr(e);for(const t in n)"number"==typeof n[t]&&(n[t]=Math.round(n[t]*r)/r);return this.attr(n),this}svg(t,e){return this.xml(t,e,Vt)}toString(){return this.id()}words(t){return this.node.textContent=t,this}wrap(t){const e=this.parent();if(!e)return this.addTo(t);const r=e.index(this);return e.put(t,r).put(this)}writeDataToDom(){return this.each(function(){this.writeDataToDom()}),this}xml(t,e,r){if("boolean"==typeof t&&(r=e,e=t,t=null),null==t||"function"==typeof t){e=e??!0,this.writeDataToDom();let r=this;if(null!=t){if(r=$t(r.node.cloneNode(!0)),e){const e=t(r);if(r=e||r,!1===e)return""}r.each(function(){const e=t(this),r=e||this;!1===e?this.remove():e&&this!==r&&this.replace(r)},!0)}return e?r.node.outerHTML:r.node.innerHTML}e=e??!1;const n=Wt("wrapper",r),i=Gt.document.createDocumentFragment();n.innerHTML=t;for(let t=n.children.length;t--;)i.appendChild(n.firstElementChild);const s=this.parent();return e?this.replace(i)&&s:this.add(i)}};ee(Ke,{attr:function(t,e,r){if(null==t){t={},e=this.node.attributes;for(const r of e)t[r.nodeName]=fe.test(r.nodeValue)?parseFloat(r.nodeValue):r.nodeValue;return t}if(t instanceof Array)return t.reduce((t,e)=>(t[e]=this.attr(e),t),{});if("object"==typeof t&&t.constructor===Object)for(e in t)this.attr(e,t[e]);else if(null===e)this.node.removeAttribute(t);else{if(null==e)return null==(e=this.node.getAttribute(t))?We[t]:fe.test(e)?parseFloat(e):e;"number"==typeof(e=Je.reduce((e,r)=>r(t,e,this),e))?e=new He(e):$e.has(t)&&we.isColor(e)?e=new we(e):e.constructor===Array&&(e=new qe(e)),"leading"===t?this.leading&&this.leading(e):"string"==typeof r?this.node.setAttributeNS(r,t,e.toString()):this.node.setAttribute(t,e.toString()),!this.rebuild||"font-size"!==t&&"x"!==t||this.rebuild()}return this},find:function(t){return function(t,e){return new Me(jt((e||Gt.document).querySelectorAll(t),function(t){return $t(t)}))}(t,this.node)},findOne:function(t){return $t(this.node.querySelector(t))}}),Kt(Ke,"Dom");var Qe=class extends Ke{constructor(t,e){super(t,e),this.dom={},this.node.instance=this,(t.hasAttribute("data-svgjs")||t.hasAttribute("svgjs:data"))&&this.setData(JSON.parse(t.getAttribute("data-svgjs"))??JSON.parse(t.getAttribute("svgjs:data"))??{})}center(t,e){return this.cx(t).cy(e)}cx(t){return null==t?this.x()+this.width()/2:this.x(t-this.width()/2)}cy(t){return null==t?this.y()+this.height()/2:this.y(t-this.height()/2)}defs(){const t=this.root();return t&&t.defs()}dmove(t,e){return this.dx(t).dy(e)}dx(t=0){return this.x(new He(t).plus(this.x()))}dy(t=0){return this.y(new He(t).plus(this.y()))}getEventHolder(){return this}height(t){return this.attr("height",t)}move(t,e){return this.x(t).y(e)}parents(t=this.root()){const e="string"==typeof t,r=this.root(),n=r&&r.node;e||(t=t&&qt(t).node);const i=new Me;let s=this;for(;(s=s.parent())&&s.node!==Gt.document&&"#document-fragment"!==s.node.nodeName&&(i.push(s),e||s.node!==t)&&(!e||!s.matches(t));)if(n&&s.node===n)return null;return i}reference(t){if(!(t=this.attr(t)))return null;const e=function(t,e){const r=Te(e);return r?je(t.getRootNode(),r):null}(this.node,t);return e?qt(e):null}root(){const t=this.parent(Xt[Yt]);return t&&t.root()}setData(t){return this.dom=t,this}size(t,e){const r=Dt(this,t,e);return this.width(new He(r.width)).height(new He(r.height))}width(t){return this.attr("width",t)}writeDataToDom(t){return((t,e,r={})=>{const n={...e};for(const t in n)n[t].valueOf()===r[t]&&delete n[t];Object.keys(n).length?t.node.setAttribute("data-svgjs",JSON.stringify(n)):(t.node.removeAttribute("data-svgjs"),t.node.removeAttribute("svgjs:data"))})(this,this.dom,t),super.writeDataToDom()}x(t){return this.attr("x",t)}y(t){return this.attr("y",t)}};ee(Qe,{bbox:function(){const t=Ee(this,t=>t.getBBox(),t=>{try{const e=t.clone().addTo(_e().svg).show(),r=e.node.getBBox();return e.remove(),r}catch(e){throw new Error(`Getting bbox of element "${t.node.nodeName}" is not possible: ${e.toString()}`)}});return new Pe(t)},rbox:function(t){const e=Ee(this,t=>t.getBoundingClientRect(),t=>{throw new Error(`Getting rbox of element "${t.node.nodeName}" is not possible`)}),r=new Pe(e);return t?r.transform(t.screenCTM().inverseO()):r.addOffset()},inside:function(t,e){const r=this.bbox();return t>r.x&&e>r.y&&t<r.x+r.width&&e<r.y+r.height},point:function(t,e){return new xe(t,e).transformO(this.screenCTM().inverseO())},ctm:function(){return new Ne(this.node.getCTM())},screenCTM:function(){try{if("function"==typeof this.isRoot&&!this.isRoot()){const t=this.rect(1,1),e=t.node.getScreenCTM();return t.remove(),new Ne(e)}return new Ne(this.node.getScreenCTM())}catch(t){return console.warn(`Cannot get CTM from SVG node ${this.node.nodeName}. Is the element rendered?`),new Ne}}}),Kt(Qe,"Element");const Ze={stroke:["color","width","opacity","linecap","linejoin","miterlimit","dasharray","dashoffset"],fill:["color","opacity","rule"],prefix:function(t,e){return"color"===e?t:t+"-"+e}};["fill","stroke"].forEach(function(t){const e={};let r;e[t]=function(e){if(void 0===e)return this.attr(t);if("string"==typeof e||e instanceof we||we.isRgb(e)||e instanceof Qe)this.attr(t,e);else for(r=Ze[t].length-1;r>=0;r--)null!=e[Ze[t][r]]&&this.attr(Ze.prefix(t,Ze[t][r]),e[Ze[t][r]]);return this},d(["Element","Runner"],e)}),d(["Element","Runner"],{matrix:function(t,e,r,n,i,s){return null==t?new Ne(this):this.attr("transform",new Ne(t,e,r,n,i,s))},rotate:function(t,e,r){return this.transform({rotate:t,ox:e,oy:r},!0)},skew:function(t,e,r,n){return 1===arguments.length||3===arguments.length?this.transform({skew:t,ox:e,oy:r},!0):this.transform({skew:[t,e],ox:r,oy:n},!0)},shear:function(t,e,r){return this.transform({shear:t,ox:e,oy:r},!0)},scale:function(t,e,r,n){return 1===arguments.length||3===arguments.length?this.transform({scale:t,ox:e,oy:r},!0):this.transform({scale:[t,e],ox:r,oy:n},!0)},translate:function(t,e){return this.transform({translate:[t,e]},!0)},relative:function(t,e){return this.transform({relative:[t,e]},!0)},flip:function(t="both",e="center"){return-1==="xybothtrue".indexOf(t)&&(e=t,t="both"),this.transform({flip:t,origin:e},!0)},opacity:function(t){return this.attr("opacity",t)}}),d("radius",{radius:function(t,e=t){return"radialGradient"===(this._element||this).type?this.attr("r",new He(t)):this.rx(t).ry(e)}}),d("Path",{length:function(){return this.node.getTotalLength()},pointAt:function(t){return new xe(this.node.getPointAtLength(t))}}),d(["Element","Runner"],{font:function(t,e){if("object"==typeof t){for(e in t)this.font(e,t[e]);return this}return"leading"===t?this.leading(e):"anchor"===t?this.attr("text-anchor",e):"size"===t||"family"===t||"weight"===t||"stretch"===t||"variant"===t||"style"===t?this.attr("font-"+t,e):this.attr(t,e)}}),d("Element",["click","dblclick","mousedown","mouseup","mouseover","mouseout","mousemove","mouseenter","mouseleave","touchstart","touchmove","touchleave","touchend","touchcancel","contextmenu","wheel","pointerdown","pointermove","pointerup","pointerleave","pointercancel"].reduce(function(t,e){return t[e]=function(t){return null===t?this.off(e):this.on(e,t),this},t},{})),d("Element",{untransform:function(){return this.attr("transform",null)},matrixify:function(){return(this.attr("transform")||"").split(ae).slice(0,-1).map(function(t){const e=t.trim().split("(");return[e[0].trim(),e[1].split(me).map(function(t){return parseFloat(t)})]}).reverse().reduce(function(t,e){return"matrix"===e[0]?t.lmultiply(Ne.fromArray(e[1])):t[e[0]].apply(t,e[1])},new Ne)},toParent:function(t,e){if(this===t)return this;if(Bt(this.node))return this.addTo(t,e);const r=this.screenCTM(),n=t.screenCTM().inverse();return this.addTo(t,e).untransform().transform(n.multiply(r)),this},toRoot:function(t){return this.toParent(this.root(),t)},transform:function(t,e){if(null==t||"string"==typeof t){const e=new Ne(this).decompose();return null==t?e:e[t]}Ne.isMatrixLike(t)||(t={...t,origin:It(t,this)});const r=new Ne(!0===e?this:e||!1).transform(t);return this.attr("transform",r)}});var tr=class t extends Qe{flatten(){return this.each(function(){if(this instanceof t)return this.flatten().ungroup()}),this}ungroup(t=this.parent(),e=t.index(this)){return e=-1===e?t.children().length:e,this.each(function(r,n){return n[n.length-r-1].toParent(t,e)}),this.remove()}};Kt(tr,"Container");var er=class extends tr{constructor(t,e=t){super(Ht("defs",t),e)}flatten(){return this}ungroup(){return this}};Kt(er,"Defs");var rr=class extends Qe{};Kt(rr,"Shape");var nr=h({cx:()=>ur,cy:()=>hr,height:()=>lr,rx:()=>ir,ry:()=>sr,width:()=>cr,x:()=>or,y:()=>ar});function ir(t){return this.attr("rx",t)}function sr(t){return this.attr("ry",t)}function or(t){return null==t?this.cx()-this.rx():this.cx(t+this.rx())}function ar(t){return null==t?this.cy()-this.ry():this.cy(t+this.ry())}function ur(t){return this.attr("cx",t)}function hr(t){return this.attr("cy",t)}function cr(t){return null==t?2*this.rx():this.rx(new He(t).divide(2))}function lr(t){return null==t?2*this.ry():this.ry(new He(t).divide(2))}var fr=class extends rr{constructor(t,e=t){super(Ht("ellipse",t),e)}size(t,e){const r=Dt(this,t,e);return this.rx(new He(r.width).divide(2)).ry(new He(r.height).divide(2))}};ee(fr,nr),d("Container",{ellipse:re(function(t=0,e=t){return this.put(new fr).size(t,e).move(0,0)})}),Kt(fr,"Ellipse");var dr=class extends Ke{constructor(t=Gt.document.createDocumentFragment()){super(t)}xml(t,e,r){if("boolean"==typeof t&&(r=e,e=t,t=null),null==t||"function"==typeof t){const t=new Ke(Wt("wrapper",r));return t.add(this.node.cloneNode(!0)),t.xml(!1,r)}return super.xml(t,!1,r)}};Kt(dr,"Fragment");var mr=h({from:()=>pr,to:()=>yr});function pr(t,e){return"radialGradient"===(this._element||this).type?this.attr({fx:new He(t),fy:new He(e)}):this.attr({x1:new He(t),y1:new He(e)})}function yr(t,e){return"radialGradient"===(this._element||this).type?this.attr({cx:new He(t),cy:new He(e)}):this.attr({x2:new He(t),y2:new He(e)})}var gr=class extends tr{constructor(t,e){super(Ht(t+"Gradient","string"==typeof t?null:t),e)}attr(t,e,r){return"transform"===t&&(t="gradientTransform"),super.attr(t,e,r)}bbox(){return new Pe}targets(){return Ce(this.node,"fill")}toString(){return this.url()}update(t){return this.clear(),"function"==typeof t&&t.call(this,this),this}url(){return"url(#"+this.id()+")"}};ee(gr,mr),d({Container:{gradient(...t){return this.defs().gradient(...t)}},Defs:{gradient:re(function(t,e){return this.put(new gr(t)).update(e)})}}),Kt(gr,"Gradient");var br=class extends tr{constructor(t,e=t){super(Ht("pattern",t),e)}attr(t,e,r){return"transform"===t&&(t="patternTransform"),super.attr(t,e,r)}bbox(){return new Pe}targets(){return Ce(this.node,"fill")}toString(){return this.url()}update(t){return this.clear(),"function"==typeof t&&t.call(this,this),this}url(){return"url(#"+this.id()+")"}};d({Container:{pattern(...t){return this.defs().pattern(...t)}},Defs:{pattern:re(function(t,e,r){return this.put(new br).update(r).attr({x:0,y:0,width:t,height:e,patternUnits:"userSpaceOnUse"})})}}),Kt(br,"Pattern");var vr,wr=class extends rr{constructor(t,e=t){super(Ht("image",t),e)}load(t,e){if(!t)return this;const r=new Gt.window.Image;return Ve(r,"load",function(t){const n=this.parent(br);0===this.width()&&0===this.height()&&this.size(r.width,r.height),n instanceof br&&0===n.width()&&0===n.height()&&n.size(this.width(),this.height()),"function"==typeof e&&e.call(this,t)},this),Ve(r,"load error",function(){Re(r)}),this.attr("href",r.src=t,zt)}};vr=function(t,e,r){return"fill"!==t&&"stroke"!==t||de.test(e)&&(e=r.root().defs().image(e)),e instanceof wr&&(e=r.root().defs().pattern(0,0,t=>{t.add(e)})),e},Je.push(vr),d({Container:{image:re(function(t,e){return this.put(new wr).size(0,0).load(t,e)})}}),Kt(wr,"Image");var xr=class extends qe{bbox(){let t=-1/0,e=-1/0,r=1/0,n=1/0;return this.forEach(function(i){t=Math.max(i[0],t),e=Math.max(i[1],e),r=Math.min(i[0],r),n=Math.min(i[1],n)}),new Pe(r,n,t-r,e-n)}move(t,e){const r=this.bbox();if(t-=r.x,e-=r.y,!isNaN(t)&&!isNaN(e))for(let r=this.length-1;r>=0;r--)this[r]=[this[r][0]+t,this[r][1]+e];return this}parse(t=[0,0]){const e=[];(t=t instanceof Array?Array.prototype.concat.apply([],t):t.trim().split(me).map(parseFloat)).length%2!=0&&t.pop();for(let r=0,n=t.length;r<n;r+=2)e.push([t[r],t[r+1]]);return e}size(t,e){let r;const n=this.bbox();for(r=this.length-1;r>=0;r--)n.width&&(this[r][0]=(this[r][0]-n.x)*t/n.width+n.x),n.height&&(this[r][1]=(this[r][1]-n.y)*e/n.height+n.y);return this}toLine(){return{x1:this[0][0],y1:this[0][1],x2:this[1][0],y2:this[1][1]}}toString(){const t=[];for(let e=0,r=this.length;e<r;e++)t.push(this[e].join(","));return t.join(" ")}transform(t){return this.clone().transformO(t)}transformO(t){Ne.isMatrixLike(t)||(t=new Ne(t));for(let e=this.length;e--;){const[r,n]=this[e];this[e][0]=t.a*r+t.c*n+t.e,this[e][1]=t.b*r+t.d*n+t.f}return this}},Sr=h({MorphArray:()=>Nr,height:()=>Er,width:()=>Pr,x:()=>_r,y:()=>Or});const Nr=xr;function _r(t){return null==t?this.bbox().x:this.move(t,this.bbox().y)}function Or(t){return null==t?this.bbox().y:this.move(this.bbox().x,t)}function Pr(t){const e=this.bbox();return null==t?e.width:this.size(t,e.height)}function Er(t){const e=this.bbox();return null==t?e.height:this.size(e.width,t)}var Mr=class extends rr{constructor(t,e=t){super(Ht("line",t),e)}array(){return new xr([[this.attr("x1"),this.attr("y1")],[this.attr("x2"),this.attr("y2")]])}move(t,e){return this.attr(this.array().move(t,e).toLine())}plot(t,e,r,n){return null==t?this.array():(t=void 0!==e?{x1:t,y1:e,x2:r,y2:n}:new xr(t).toLine(),this.attr(t))}size(t,e){const r=Dt(this,t,e);return this.attr(this.array().size(r.width,r.height).toLine())}};ee(Mr,Sr),d({Container:{line:re(function(...t){return Mr.prototype.plot.apply(this.put(new Mr),null!=t[0]?t:[0,0,0,0])})}}),Kt(Mr,"Line");var Ar=class extends tr{constructor(t,e=t){super(Ht("marker",t),e)}height(t){return this.attr("markerHeight",t)}orient(t){return this.attr("orient",t)}ref(t,e){return this.attr("refX",t).attr("refY",e)}toString(){return"url(#"+this.id()+")"}update(t){return this.clear(),"function"==typeof t&&t.call(this,this),this}width(t){return this.attr("markerWidth",t)}};function Tr(t,e){return function(r){return null==r?this[t]:(this[t]=r,e&&e.call(this),this)}}d({Container:{marker(...t){return this.defs().marker(...t)}},Defs:{marker:re(function(t,e,r){return this.put(new Ar).size(t,e).ref(t/2,e/2).viewbox(0,0,t,e).attr("orient","auto").update(r)})},marker:{marker(t,e,r,n){let i=["marker"];return"all"!==t&&i.push(t),i=i.join("-"),t=arguments[1]instanceof Ar?arguments[1]:this.defs().marker(e,r,n),this.attr(i,t)}}}),Kt(Ar,"Marker");const jr={"-":function(t){return t},"<>":function(t){return-Math.cos(t*Math.PI)/2+.5},">":function(t){return Math.sin(t*Math.PI/2)},"<":function(t){return 1-Math.cos(t*Math.PI/2)},bezier:function(t,e,r,n){return function(i){return i<0?t>0?e/t*i:r>0?n/r*i:0:i>1?r<1?(1-n)/(1-r)*i+(n-r)/(1-r):t<1?(1-e)/(1-t)*i+(e-t)/(1-t):1:3*i*(1-i)**2*e+3*i**2*(1-i)*n+i**3}},steps:function(t,e="end"){e=e.split("-").reverse()[0];let r=t;return"none"===e?--r:"both"===e&&++r,(n,i=!1)=>{let s=Math.floor(n*t);const o=n*s%1==0;return"start"!==e&&"both"!==e||++s,i&&o&&--s,n>=0&&s<0&&(s=0),n<=1&&s>r&&(s=r),s/r}}};var Cr=class{done(){return!1}},Lr=class extends Cr{constructor(t=Xe){super(),this.ease=jr[t]||t}step(t,e,r){return"number"!=typeof t?r<1?t:e:t+(e-t)*this.ease(r)}},kr=class extends Cr{constructor(t){super(),this.stepper=t}done(t){return t.done}step(t,e,r,n){return this.stepper(t,e,r,n)}};function Dr(){const t=(this._duration||500)/1e3,e=this._overshoot||0,r=Math.PI,n=Math.log(e/100+1e-10),i=-n/Math.sqrt(r*r+n*n),s=3.9/(i*t);this.d=2*i*s,this.k=s*s}ee(class extends kr{constructor(t=500,e=0){super(),this.duration(t).overshoot(e)}step(t,e,r,n){if("string"==typeof t)return t;if(n.done=r===1/0,r===1/0)return e;if(0===r)return t;r>100&&(r=16),r/=1e3;const i=n.velocity||0,s=-this.d*i-this.k*(t-e),o=t+i*r+s*r*r/2;return n.velocity=i+s*r,n.done=Math.abs(e-o)+Math.abs(i)<.002,n.done?e:o}},{duration:Tr("_duration",Dr),overshoot:Tr("_overshoot",Dr)}),ee(class extends kr{constructor(t=.1,e=.01,r=0,n=1e3){super(),this.p(t).i(e).d(r).windup(n)}step(t,e,r,n){if("string"==typeof t)return t;if(n.done=r===1/0,r===1/0)return e;if(0===r)return t;const i=e-t;let s=(n.integral||0)+i*r;const o=(i-(n.error||0))/r,a=this._windup;return!1!==a&&(s=Math.max(-a,Math.min(s,a))),n.error=i,n.integral=s,n.done=Math.abs(i)<.001,n.done?e:t+(this.P*i+this.I*s+this.D*o)}},{windup:Tr("_windup"),p:Tr("P"),i:Tr("I"),d:Tr("D")});const Ir={M:2,L:2,H:1,V:1,C:6,S:4,Q:4,T:2,A:7,Z:0},Fr={M:function(t,e,r){return e.x=r.x=t[0],e.y=r.y=t[1],["M",e.x,e.y]},L:function(t,e){return e.x=t[0],e.y=t[1],["L",t[0],t[1]]},H:function(t,e){return e.x=t[0],["H",t[0]]},V:function(t,e){return e.y=t[0],["V",t[0]]},C:function(t,e){return e.x=t[4],e.y=t[5],["C",t[0],t[1],t[2],t[3],t[4],t[5]]},S:function(t,e){return e.x=t[2],e.y=t[3],["S",t[0],t[1],t[2],t[3]]},Q:function(t,e){return e.x=t[2],e.y=t[3],["Q",t[0],t[1],t[2],t[3]]},T:function(t,e){return e.x=t[0],e.y=t[1],["T",t[0],t[1]]},Z:function(t,e,r){return e.x=r.x,e.y=r.y,["Z"]},A:function(t,e){return e.x=t[5],e.y=t[6],["A",t[0],t[1],t[2],t[3],t[4],t[5],t[6]]}},Br="mlhvqtcsaz".split("");for(let t=0,e=Br.length;t<e;++t)Fr[Br[t]]=function(t){return function(e,r,n){if("H"===t)e[0]=e[0]+r.x;else if("V"===t)e[0]=e[0]+r.y;else if("A"===t)e[5]=e[5]+r.x,e[6]=e[6]+r.y;else for(let t=0,n=e.length;t<n;++t)e[t]=e[t]+(t%2?r.y:r.x);return Fr[t](e,r,n)}}(Br[t].toUpperCase());function Vr(t){return t.segment.length&&t.segment.length-1===Ir[t.segment[0].toUpperCase()]}function Rr(t,e){t.inNumber&&zr(t,!1);const r=pe.test(e);if(r)t.segment=[e];else{const e=t.lastCommand,r=e.toLowerCase();t.segment=["m"===r?e===r?"l":"L":e]}return t.inSegment=!0,t.lastCommand=t.segment[0],r}function zr(t,e){if(!t.inNumber)throw new Error("Parser Error");t.number&&t.segment.push(parseFloat(t.number)),t.inNumber=e,t.number="",t.pointSeen=!1,t.hasExponent=!1,Vr(t)&&Gr(t)}function Gr(t){t.inSegment=!1,t.absolute&&(t.segment=function(t){return Fr[t.segment[0]](t.segment.slice(1),t.p,t.p0)}(t)),t.segments.push(t.segment)}function Ur(t){if(!t.segment.length)return!1;const e="A"===t.segment[0].toUpperCase(),r=t.segment.length;return e&&(4===r||5===r)}function Xr(t){return"E"===t.lastToken.toUpperCase()}const Yr=new Set([" ",",","\t","\n","\r","\f"]);var Wr=class extends qe{bbox(){return _e().path.setAttribute("d",this.toString()),new Pe(_e.nodes.path.getBBox())}move(t,e){const r=this.bbox();if(t-=r.x,e-=r.y,!isNaN(t)&&!isNaN(e))for(let r,n=this.length-1;n>=0;n--)r=this[n][0],"M"===r||"L"===r||"T"===r?(this[n][1]+=t,this[n][2]+=e):"H"===r?this[n][1]+=t:"V"===r?this[n][1]+=e:"C"===r||"S"===r||"Q"===r?(this[n][1]+=t,this[n][2]+=e,this[n][3]+=t,this[n][4]+=e,"C"===r&&(this[n][5]+=t,this[n][6]+=e)):"A"===r&&(this[n][6]+=t,this[n][7]+=e);return this}parse(t="M0 0"){return Array.isArray(t)&&(t=Array.prototype.concat.apply([],t).toString()),function(t,e=!0){let r=0,n="";const i={segment:[],inNumber:!1,number:"",lastToken:"",inSegment:!1,segments:[],pointSeen:!1,hasExponent:!1,absolute:e,p0:new xe,p:new xe};for(;i.lastToken=n,n=t.charAt(r++);)if(i.inSegment||!Rr(i,n))if("."!==n)if(isNaN(parseInt(n)))if(Yr.has(n))i.inNumber&&zr(i,!1);else if("-"!==n&&"+"!==n)if("E"!==n.toUpperCase()){if(pe.test(n)){if(i.inNumber)zr(i,!1);else{if(!Vr(i))throw new Error("parser Error");Gr(i)}--r}}else i.number+=n,i.hasExponent=!0;else{if(i.inNumber&&!Xr(i)){zr(i,!1),--r;continue}i.number+=n,i.inNumber=!0}else{if("0"===i.number||Ur(i)){i.inNumber=!0,i.number=n,zr(i,!0);continue}i.inNumber=!0,i.number+=n}else{if(i.pointSeen||i.hasExponent){zr(i,!1),--r;continue}i.inNumber=!0,i.pointSeen=!0,i.number+=n}return i.inNumber&&zr(i,!1),i.inSegment&&Vr(i)&&Gr(i),i.segments}(t)}size(t,e){const r=this.bbox();let n,i;for(r.width=0===r.width?1:r.width,r.height=0===r.height?1:r.height,n=this.length-1;n>=0;n--)i=this[n][0],"M"===i||"L"===i||"T"===i?(this[n][1]=(this[n][1]-r.x)*t/r.width+r.x,this[n][2]=(this[n][2]-r.y)*e/r.height+r.y):"H"===i?this[n][1]=(this[n][1]-r.x)*t/r.width+r.x:"V"===i?this[n][1]=(this[n][1]-r.y)*e/r.height+r.y:"C"===i||"S"===i||"Q"===i?(this[n][1]=(this[n][1]-r.x)*t/r.width+r.x,this[n][2]=(this[n][2]-r.y)*e/r.height+r.y,this[n][3]=(this[n][3]-r.x)*t/r.width+r.x,this[n][4]=(this[n][4]-r.y)*e/r.height+r.y,"C"===i&&(this[n][5]=(this[n][5]-r.x)*t/r.width+r.x,this[n][6]=(this[n][6]-r.y)*e/r.height+r.y)):"A"===i&&(this[n][1]=this[n][1]*t/r.width,this[n][2]=this[n][2]*e/r.height,this[n][6]=(this[n][6]-r.x)*t/r.width+r.x,this[n][7]=(this[n][7]-r.y)*e/r.height+r.y);return this}toString(){return function(t){let e="";for(let r=0,n=t.length;r<n;r++)e+=t[r][0],null!=t[r][1]&&(e+=t[r][1],null!=t[r][2]&&(e+=" ",e+=t[r][2],null!=t[r][3]&&(e+=" ",e+=t[r][3],e+=" ",e+=t[r][4],null!=t[r][5]&&(e+=" ",e+=t[r][5],e+=" ",e+=t[r][6],null!=t[r][7]&&(e+=" ",e+=t[r][7])))));return e+" "}(this)}};const qr=t=>{const e=typeof t;return"number"===e?He:"string"===e?we.isColor(t)?we:me.test(t)?pe.test(t)?Wr:qe:ne.test(t)?He:$r:Zr.indexOf(t.constructor)>-1?t.constructor:Array.isArray(t)?qe:"object"===e?Qr:$r};var Hr=class{constructor(t){this._stepper=t||new Lr("-"),this._from=null,this._to=null,this._type=null,this._context=null,this._morphObj=null}at(t){return this._morphObj.morph(this._from,this._to,t,this._stepper,this._context)}done(){return this._context.map(this._stepper.done).reduce(function(t,e){return t&&e},!0)}from(t){return null==t?this._from:(this._from=this._set(t),this)}stepper(t){return null==t?this._stepper:(this._stepper=t,this)}to(t){return null==t?this._to:(this._to=this._set(t),this)}type(t){return null==t?this._type:(this._type=t,this)}_set(t){this._type||this.type(qr(t));let e=new this._type(t);return this._type===we&&(e=this._to?e[this._to[4]]():this._from?e[this._from[4]]():e),this._type===Qr&&(e=this._to?e.align(this._to):this._from?e.align(this._from):e),e=e.toConsumable(),this._morphObj=this._morphObj||new this._type,this._context=this._context||Array.apply(null,Array(e.length)).map(Object).map(function(t){return t.done=!0,t}),e}},$r=class{constructor(...t){this.init(...t)}init(t){return t=Array.isArray(t)?t[0]:t,this.value=t,this}toArray(){return[this.value]}valueOf(){return this.value}},Jr=class t{constructor(...t){this.init(...t)}init(e){return Array.isArray(e)&&(e={scaleX:e[0],scaleY:e[1],shear:e[2],rotate:e[3],translateX:e[4],translateY:e[5],originX:e[6],originY:e[7]}),Object.assign(this,t.defaults,e),this}toArray(){const t=this;return[t.scaleX,t.scaleY,t.shear,t.rotate,t.translateX,t.translateY,t.originX,t.originY]}};Jr.defaults={scaleX:1,scaleY:1,shear:0,rotate:0,translateX:0,translateY:0,originX:0,originY:0};const Kr=(t,e)=>t[0]<e[0]?-1:t[0]>e[0]?1:0;var Qr=class{constructor(...t){this.init(...t)}align(t){const e=this.values;for(let r=0,n=e.length;r<n;++r){if(e[r+1]===t[r+1]){if(e[r+1]===we&&t[r+7]!==e[r+7]){const e=t[r+7],n=new we(this.values.splice(r+3,5))[e]().toArray();this.values.splice(r+3,0,...n)}r+=e[r+2]+2;continue}if(!t[r+1])return this;const n=(new t[r+1]).toArray(),i=e[r+2]+3;e.splice(r,i,t[r],t[r+1],t[r+2],...n),r+=e[r+2]+2}return this}init(t){if(this.values=[],Array.isArray(t))return void(this.values=t.slice());t=t||{};const e=[];for(const r in t){const n=qr(t[r]),i=new n(t[r]).toArray();e.push([r,n,i.length,...i])}return e.sort(Kr),this.values=e.reduce((t,e)=>t.concat(e),[]),this}toArray(){return this.values}valueOf(){const t={},e=this.values;for(;e.length;){const r=e.shift(),n=e.shift(),i=e.shift();t[r]=new n(e.splice(0,i))}return t}};const Zr=[$r,Jr,Qr];var tn=class extends rr{constructor(t,e=t){super(Ht("path",t),e)}array(){return this._array||(this._array=new Wr(this.attr("d")))}clear(){return delete this._array,this}height(t){return null==t?this.bbox().height:this.size(this.bbox().width,t)}move(t,e){return this.attr("d",this.array().move(t,e))}plot(t){return null==t?this.array():this.clear().attr("d","string"==typeof t?t:this._array=new Wr(t))}size(t,e){const r=Dt(this,t,e);return this.attr("d",this.array().size(r.width,r.height))}width(t){return null==t?this.bbox().width:this.size(t,this.bbox().height)}x(t){return null==t?this.bbox().x:this.move(t,this.bbox().y)}y(t){return null==t?this.bbox().y:this.move(this.bbox().x,t)}};tn.prototype.MorphArray=Wr,d({Container:{path:re(function(t){return this.put(new tn).plot(t||new Wr)})}}),Kt(tn,"Path");var en=h({array:()=>rn,clear:()=>nn,move:()=>sn,plot:()=>on,size:()=>an});function rn(){return this._array||(this._array=new xr(this.attr("points")))}function nn(){return delete this._array,this}function sn(t,e){return this.attr("points",this.array().move(t,e))}function on(t){return null==t?this.array():this.clear().attr("points","string"==typeof t?t:this._array=new xr(t))}function an(t,e){const r=Dt(this,t,e);return this.attr("points",this.array().size(r.width,r.height))}var un=class extends rr{constructor(t,e=t){super(Ht("polygon",t),e)}};d({Container:{polygon:re(function(t){return this.put(new un).plot(t||new xr)})}}),ee(un,Sr),ee(un,en),Kt(un,"Polygon");var hn=class extends rr{constructor(t,e=t){super(Ht("polyline",t),e)}};d({Container:{polyline:re(function(t){return this.put(new hn).plot(t||new xr)})}}),ee(hn,Sr),ee(hn,en),Kt(hn,"Polyline");var cn=class extends rr{constructor(t,e=t){super(Ht("rect",t),e)}};ee(cn,{rx:ir,ry:sr}),d({Container:{rect:re(function(t,e){return this.put(new cn).size(t,e)})}}),Kt(cn,"Rect");var ln=class{constructor(){this._first=null,this._last=null}first(){return this._first&&this._first.value}last(){return this._last&&this._last.value}push(t){const e=void 0!==t.next?t:{value:t,next:null,prev:null};return this._last?(e.prev=this._last,this._last.next=e,this._last=e):(this._last=e,this._first=e),e}remove(t){t.prev&&(t.prev.next=t.next),t.next&&(t.next.prev=t.prev),t===this._last&&(this._last=t.prev),t===this._first&&(this._first=t.next),t.prev=null,t.next=null}shift(){const t=this._first;return t?(this._first=t.next,this._first&&(this._first.prev=null),this._last=this._first?this._last:null,t.value):null}};const fn={nextDraw:null,frames:new ln,timeouts:new ln,immediates:new ln,timer:()=>Gt.window.performance||Gt.window.Date,frame(t){const e=fn.frames.push({run:t});return null===fn.nextDraw&&(fn.nextDraw=Gt.window.requestAnimationFrame(fn._draw)),e},timeout(t,e){e=e||0;const r=fn.timer().now()+e,n=fn.timeouts.push({run:t,time:r});return null===fn.nextDraw&&(fn.nextDraw=Gt.window.requestAnimationFrame(fn._draw)),n},immediate(t){const e=fn.immediates.push(t);return null===fn.nextDraw&&(fn.nextDraw=Gt.window.requestAnimationFrame(fn._draw)),e},cancelFrame(t){null!=t&&fn.frames.remove(t)},clearTimeout(t){null!=t&&fn.timeouts.remove(t)},cancelImmediate(t){null!=t&&fn.immediates.remove(t)},_draw(t){try{let e=null;const r=fn.timeouts.last();for(;(e=fn.timeouts.shift())&&(t>=e.time?e.run():fn.timeouts.push(e),e!==r););let n=null;const i=fn.frames.last();for(;n!==i&&(n=fn.frames.shift());)n.run(t);let s=null;for(;s=fn.immediates.shift();)s()}finally{const t=fn.timeouts.first()||fn.frames.first()||fn.immediates.first();fn.nextDraw=t?Gt.window.requestAnimationFrame(fn._draw):null}}},dn=function(t){const e=t.start,r=t.runner.duration();return{start:e,duration:r,end:e+r,runner:t.runner}},mn=function(){const t=Gt.window;return(t.performance||t.Date).now()};var pn=class extends ze{constructor(t=mn){super(),this._timeSource=t,this.terminate()}active(){return!!this._nextFrame}finish(){this._finishing=!0;try{this.time(this.getEndTimeOfTimeline()+1)}finally{this._finishing=!1}return this.pause()}getEndTime(){const t=this.getLastRunnerInfo(),e=t?t.runner.duration():0;return(t?t.start:this._time)+e}getEndTimeOfTimeline(){const t=this._runners.map(t=>t.start+t.runner.duration());return Math.max(0,...t)}getLastRunnerInfo(){return this.getRunnerInfoById(this._lastRunnerId)}getRunnerInfoById(t){return this._runners[this._runnerIds.indexOf(t)]||null}pause(){return this._paused=!0,this._continue()}persist(t){return null==t?this._persist:(this._persist=t,this)}play(){return this._paused=!1,this.updateTime()._continue()}reverse(t){const e=this.speed();if(null==t)return this.speed(-e);const r=Math.abs(e);return this.speed(t?-r:r)}schedule(t,e,r){if(null==t)return this._runners.map(dn);let n=0;const i=this.getEndTime();if(e=e||0,null==r||"last"===r||"after"===r)n=i;else if("absolute"===r||"start"===r)n=e,e=0;else if("now"===r)n=this._time;else if("relative"===r){const r=this.getRunnerInfoById(t.id);r&&(n=r.start+e,e=0)}else{if("with-last"!==r)throw new Error('Invalid value for the "when" parameter');{const t=this.getLastRunnerInfo();n=t?t.start:this._time}}t.unschedule(),t.timeline(this),t._retired=!1;const s=t.persist(),o={persist:null===s?this._persist:s,start:n+e,runner:t};return this._lastRunnerId=t.id,t._runnerInfo=o,this._runners.push(o),this._runners.sort((t,e)=>t.start-e.start),this._runnerIds=this._runners.map(t=>t.runner.id),this.updateTime()._continue(),this}seek(t){return this.time(this._time+t)}source(t){return null==t?this._timeSource:(this._timeSource=t,this)}speed(t){return null==t?this._speed:(this._speed=t,this)}stop(){return this.time(0),this.pause()}time(t){return null==t?this._time:(this._time=t,this._continue(!0))}unschedule(t){const e=this._runnerIds.indexOf(t.id);return e<0||(this._runners.splice(e,1),this._runnerIds.splice(e,1),t.timeline(null),t._runnerInfo=null,t._retired=!0),this}updateTime(){return this.active()||(this._lastSourceTime=this._timeSource()),this}_continue(t=!1){return fn.cancelFrame(this._nextFrame),this._nextFrame=null,t?this._stepImmediate():(this._paused||(this._nextFrame=fn.frame(this._step)),this)}_stepFn(t=!1){const e=this._generation,r=this._timeSource();let n=r-this._lastSourceTime;t&&(n=0);const i=this._speed*n+(this._time-this._lastStepTime);this._lastSourceTime=r,t||(this._time+=i,this._time=this._time<0?0:this._time),this._lastStepTime=this._time,this.fire("time",this._time);const s=this._runners.slice();for(let t=s.length;t--;){const e=s[t];if(e.runner._runnerInfo!==e)continue;const r=e.runner;this._time-e.start<0&&r.reset(!0)}let o=!1;for(const t of this._runners.slice()){if(t.runner._runnerInfo!==t)continue;const e=t.runner;let r=i;const n=this._time-t.start;if(n<0){o=!0;continue}if(0===n){e.reset(),o=!0;continue}if(n<r&&(r=n),!e.active())continue;const s=(this._finishing&&e._isDeclarative?e.finish():e.step(r)).done;e._runnerInfo===t&&(s?!0!==t.persist&&e.duration()-e.time()+this._time+t.persist<=this._time&&e.unschedule():o=!0)}return e!==this._generation||(o||(o=this._runners.some(({start:t,runner:e})=>t>=this._time||e.active()&&!e.done)),o&&!(this._speed<0&&0===this._time)||this._runnerIds.length&&this._speed<0&&this._time>0?this._continue():(this.pause(),this.fire("finished"))),this}terminate(){fn.cancelFrame(this._nextFrame),this._generation=(this._generation||0)+1,this._startTime=0,this._speed=1,this._persist=0;for(const{runner:t}of this._runners||[])t._retired=!0,t._runnerInfo=null;this._nextFrame=null,this._paused=!0,this._finishing=!1,this._runners=[],this._runnerIds=[],this._lastRunnerId=-1,this._time=0,this._lastSourceTime=0,this._lastStepTime=0,this._step=this._stepFn.bind(this,!1),this._stepImmediate=this._stepFn.bind(this,!0)}};d({Element:{timeline:function(t){return null==t?(this._timeline=this._timeline||new pn,this._timeline):(this._timeline=t,this)}}});var yn=class t extends ze{constructor(e){super(),this.id=t.id++,e="function"==typeof(e=e??Ue)?new kr(e):e,this._element=null,this._timeline=null,this._runnerInfo=null,this.done=!1,this._queue=[],this._duration="number"==typeof e&&e,this._isDeclarative=e instanceof kr,this._stepper=this._isDeclarative?e:new Lr,this._history={},this.enabled=!0,this._time=0,this._lastTime=0,this._reseted=!0,this.transforms=new Ne,this._isAbsoluteTransform=!1,this._hasTransform=!1,this._transformInitialised=!1,this._transformActive=!1,this._retired=!1,this._reverse=!1,this._swing=!1,this._wait=0,this._times=1,this._persist=!!this._isDeclarative||null}static sanitise(t,e,r){let n=1,i=!1,s=0;return e=e??Ye,r=r||"last","object"!=typeof(t=t??Ue)||t instanceof Cr||(e=t.delay??e,r=t.when??r,i=t.swing||i,n=t.times??n,s=t.wait??s,t=t.duration??Ue),{duration:t,delay:e,swing:i,times:n,wait:s,when:r}}active(t){return null==t?this.enabled:(this.enabled=t,this)}addTransform(t){return this.transforms.lmultiplyO(t),this._transformInitialised=!0,this._transformActive=!0,this}after(t){return this.on("finished",t)}animate(e,r,n){const i=t.sanitise(e,r,n),s=new t(i.duration);return this._timeline&&s.timeline(this._timeline),this._element&&s.element(this._element),s.loop(i).schedule(i.delay,i.when)}clearTransform(){return this.transforms=new Ne,this}delay(t){return this.animate(0,t)}duration(){return this._times*(this._wait+this._duration)-this._wait}during(t){return this.queue(null,t)}ease(t){return this._stepper=new Lr(t),this}element(t){return null==t?this._element:(this._element=t,t._prepareRunner(),this)}finish(){if(!this._isDeclarative)return this.time(this.duration());const t=this._time;return this.step(1/0),this._time=t,this}loop(t,e,r){return"object"==typeof t&&(e=t.swing,r=t.wait,t=t.times),this._times=t||1/0,this._swing=e||!1,this._wait=r||0,!0===this._times&&(this._times=1/0),this}loops(t){const e=this._duration+this._wait;if(null==t){const t=Math.floor(this._time/e),r=(this._time-t*e)/this._duration;return Math.min(t+r,this._times)}const r=t%1,n=e*Math.floor(t)+this._duration*r;return this.time(n)}persist(t){return null==t?this._persist:(this._persist=t,this)}position(t){const e=this._time,r=this._duration,n=this._wait,i=this._times,s=this._swing,o=this._reverse;let a;if(null==t){const t=function(t){const e=s*Math.floor(t%(2*(n+r))/(n+r)),i=e&&!o||!e&&o,a=Math.pow(-1,i)*(t%(n+r))/r+i;return Math.max(Math.min(a,1),0)},u=i*(n+r)-n;return a=e<=0?Math.round(t(1e-5)):e<u?t(e):Math.round(t(u-1e-5)),a}const u=Math.floor(this.loops()),h=s&&u%2==0;return a=u+(h&&!o||o&&h?t:1-t),this.loops(a)}progress(t){return null==t?Math.min(1,this._time/this.duration()):this.time(t*this.duration())}queue(t,e,r,n){return this._isDeclarative&&(this.done=!1),this._queue.push({initialiser:t||Ge,runner:e||Ge,retarget:r,isTransform:n,initialised:!1,finished:!1}),this.timeline()&&this.timeline()._continue(),this}reset(t=!1){if(this._reseted){const e=!t&&this._hasTransform&&0!==this.position();return e&&!this._transformInitialised?(this.step(0),this._reseted=!0,this):(e!==this._transformActive&&(this._transformActive=e,this._element&&this._element._addRunner(this)),this)}return this._reseted||(this.time(0),this._reseted=!0),t&&this._transformActive&&(this._transformActive=!1,this._element&&this._element._addRunner(this)),this}reverse(t){return this._reverse=t??!this._reverse,this}schedule(t,e,r){if(t instanceof pn||(r=e,e=t,t=this.timeline()),!t)throw Error("Runner cannot be scheduled without timeline");return t.schedule(this,e,r),this}step(t){if(!this.enabled)return this;const e=this.done;t=t??16,this._time+=t;const r=this.position(),n=this._lastPosition!==r&&this._time>=0;this._lastPosition=r;const i=this.duration(),s=this._lastTime<=0&&this._time>0;this._lastTime=this._time,s&&this.fire("start",this);const o=this._isDeclarative;this.done=!o&&this._time>=i,this._reseted=!1;const a=this._hasTransform&&(this._time>0||0!==r);this._transformActive=a;let u=!1;return(n||o)&&(this._initialise(n),this.transforms=new Ne,u=this._run(o?t:r),this._transformActive=a,this.fire("step",this)),this.done=this.done||u&&o,this.done&&!e&&this.fire("finished",this),this}time(t){if(null==t)return this._time;const e=t-this._time;return this.step(e),this}timeline(t){return void 0===t?this._timeline:(this._timeline=t,this)}unschedule(){const t=this.timeline();return t&&t.unschedule(this),this}_initialise(t){if(t||this._isDeclarative)for(let e=0,r=this._queue.length;e<r;++e){const r=this._queue[e],n=this._isDeclarative||!r.initialised&&t;t=!r.finished,n&&t&&(r.initialiser.call(this),r.initialised=!0)}}_rememberMorpher(t,e){if(this._history[t]={morpher:e,caller:this._queue[this._queue.length-1]},this._isDeclarative){const t=this.timeline();t&&t.play()}}_run(t){let e=!0;for(let r=0,n=this._queue.length;r<n;++r){const n=this._queue[r];if(this._isDeclarative&&n.finished&&!n.isTransform)continue;const i=n.runner.call(this,t);n.finished=n.finished||!0===i,e=e&&n.finished}return e}_tryRetarget(t,e,r){if(this._history[t]){if(!this._history[t].caller.initialised){const e=this._queue.indexOf(this._history[t].caller);return this._queue.splice(e,1),!1}this._history[t].caller.retarget?this._history[t].caller.retarget.call(this,e,r):this._history[t].morpher.to(e),this._history[t].caller.finished=!1,this._isDeclarative&&(this.done=!1);const n=this.timeline();return n&&n.play(),!0}return!1}};yn.id=0;var gn=class{constructor(t=new Ne,e=-1,r=!0,n=!1){this.transforms=t,this.id=e,this.done=r,this._isAbsoluteTransform=n,this._transformActive=!0,this._retired=!0}};ee([yn,gn],{mergeWith(t){return new gn(this._isAbsoluteTransform?this.transforms:t.transforms.lmultiply(this.transforms),t.id,!0,t._isAbsoluteTransform||this._isAbsoluteTransform)}});const bn=(t,e)=>t.lmultiplyO(e),vn=t=>t.transforms,wn=t=>t._transformActive;function xn(t){const e=t.filter(wn);let r=0;for(let t=0;t<e.length;++t)e[t]._isAbsoluteTransform&&(r=t);return e.slice(r)}function Sn(){const t=xn(this._transformationRunners.runners).map(vn).reduce(bn,new Ne);this.transform(t),this._transformationRunners.merge(),1===this._transformationRunners.length()&&(this._frameId=null)}var Nn=class{constructor(){this.runners=[]}add(t){var e;if(!(0,Tt.default)(e=this.runners).call(e,t))return this.runners.push(t),this}edit(t,e){const r=this.runners.findIndex(e=>e.id===t);return r>=0&&this.runners.splice(r,1,e),this}getByID(t){return this.runners.find(e=>e.id===t)}length(){return this.runners.length}merge(){let t=null;for(let e=0;e<this.runners.length;++e){const r=this.runners[e];if(t&&r.done&&t.done&&r._retired&&t._retired){this.remove(r.id);const n=r.mergeWith(t);this.edit(t.id,n),t=n,--e}else t=r}return this}remove(t){const e=this.runners.findIndex(e=>e.id===t);return e>=0&&this.runners.splice(e,1),this}};d({Element:{animate(t,e,r){const n=yn.sanitise(t,e,r),i=this.timeline();return new yn(n.duration).loop(n).element(this).timeline(i.play()).schedule(n.delay,n.when)},delay(t,e){return this.animate(0,t,e)},_currentTransform(t){const e=this._transformationRunners.runners,r=e.indexOf(t);return xn(e.slice(0,r+1)).map(vn).reduce(bn,new Ne)},_addRunner(t){1===this._transformationRunners.length()&&-1===this._transformationRunners.runners[0].id&&(this._transformationRunners.runners[0].transforms=new Ne(this)),this._transformationRunners.add(t),fn.cancelImmediate(this._frameId),this._frameId=fn.immediate(Sn.bind(this))},_prepareRunner(){null==this._frameId&&(this._transformationRunners=(new Nn).add(new gn(new Ne(this))))}}}),ee(yn,{attr(t,e){return this.styleAttr("attr",t,e)},css(t,e){return this.styleAttr("css",t,e)},styleAttr(t,e,r){if("string"==typeof e)return this.styleAttr(t,{[e]:r});const n=e,i=this._history[t];if(i&&!i.caller.initialised&&i.caller.retarget)return i.caller.retarget.call(this,n),this;if(this._tryRetarget(t,n))return this;let s=new Hr(this._stepper).to(n),o=Object.keys(n);return this.queue(function(){s=s.from(this.element()[t](o))},function(e){return this.element()[t](s.at(e).valueOf()),s.done()},function(e){const r=(n=Object.keys(e),i=o,n.filter(t=>!(0,Tt.default)(i).call(i,t)));var n,i;if(r.length&&null!=s.from()){const e=this.element()[t](r),n=new Qr(s.from()).valueOf();Object.assign(n,e),s.from(n)}const a=new Qr(s.to()).valueOf();Object.assign(a,e),s.to(a),o=Object.keys(a)}),this._rememberMorpher(t,s),this},zoom(t,e){if(this._tryRetarget("zoom",t,e))return this;let r=new Hr(this._stepper).to(new He(t));return this.queue(function(){r=r.from(this.element().zoom())},function(t){return this.element().zoom(r.at(t),e),r.done()},function(t,n){e=n,r.to(t)}),this._rememberMorpher("zoom",r),this},transform(t,e,r){if(e=t.relative||e,this._hasTransform=!0,this._isAbsoluteTransform=this._isAbsoluteTransform||!e,this._isDeclarative&&!e&&this._tryRetarget("transform",t))return this;const n=Ne.isMatrixLike(t);r=null!=t.affine?t.affine:null!=r?r:!n;const i=new Hr(this._stepper).type(r?Jr:Ne),s=r?new Hr(this._stepper).type(Ne):i;let o,a,u,h,c;return this.queue(function(){a=a||this.element(),o=o||It(t,a),c=new Ne(e?void 0:a),a._addRunner(this)},function(l){e||this.clearTransform();const{x:f,y:d}=new xe(o).transform(a._currentTransform(this)),m={...t,origin:[f,d]};!0===m.relative&&delete m.relative;let p=new Ne(m),y=this._isDeclarative&&u?u:c,g=i;if(r){const t=p.decompose(f,d),e=y.decompose(f,d);if(new Jr(t).toArray().concat(new Jr(e).toArray()).every(Number.isFinite)){p=t,y=e;const r=p.rotate,n=y.rotate,i=[r-360,r,r+360],s=i.map(t=>Math.abs(t-n)),o=Math.min(...s),a=s.indexOf(o);p.rotate=i[a]}else g=s}e&&g===i&&(n||(p.rotate=t.rotate||0),this._isDeclarative&&h&&(y.rotate=h)),g.from(y),g.to(p);const b=g.at(l);return h=b.rotate,u=new Ne(b),this.addTransform(u),a._addRunner(this),g.done()},function(e){o=It(e,a),t={...e}},!0),this._isDeclarative&&this._rememberMorpher("transform",i),this},x(t){return this._queueNumber("x",t)},y(t){return this._queueNumber("y",t)},ax(t){return this._queueNumber("ax",t)},ay(t){return this._queueNumber("ay",t)},dx(t=0){return this._queueNumberDelta("x",t)},dy(t=0){return this._queueNumberDelta("y",t)},dmove(t,e){return this.dx(t).dy(e)},_queueNumberDelta(t,e){if(e=new He(e),this._tryRetarget(t,e))return this;const r=new Hr(this._stepper).to(e);let n=null;return this.queue(function(){n=this.element()[t](),r.from(n),r.to(n+e)},function(e){return this.element()[t](r.at(e)),r.done()},function(t){r.to(n+new He(t))}),this._rememberMorpher(t,r),this},_queueObject(t,e){if(this._tryRetarget(t,e))return this;const r=new Hr(this._stepper).to(e);return this.queue(function(){r.from(this.element()[t]())},function(e){return this.element()[t](r.at(e)),r.done()}),this._rememberMorpher(t,r),this},_queueNumber(t,e){return this._queueObject(t,new He(e))},cx(t){return this._queueNumber("cx",t)},cy(t){return this._queueNumber("cy",t)},move(t,e){return this.x(t).y(e)},amove(t,e){return this.ax(t).ay(e)},center(t,e){return this.cx(t).cy(e)},size(t,e){const r=Dt(this._element,t,e);return this.width(r.width).height(r.height)},width(t){return this._queueNumber("width",t)},height(t){return this._queueNumber("height",t)},plot(t,e,r,n){if(4===arguments.length)return this.plot([t,e,r,n]);if(this._tryRetarget("plot",t))return this;const i=new Hr(this._stepper).type(this._element.MorphArray).to(t);return this.queue(function(){i.from(this._element.array())},function(t){return this._element.plot(i.at(t)),i.done()}),this._rememberMorpher("plot",i),this},leading(t){return this._queueNumber("leading",t)},viewbox(t,e,r,n){return this._queueObject("viewbox",new Pe(t,e,r,n))},update(t){return"object"!=typeof t?this.update({offset:arguments[0],color:arguments[1],opacity:arguments[2]}):(null!=t.opacity&&this.attr("stop-opacity",t.opacity),null!=t.color&&this.attr("stop-color",t.color),null!=t.offset&&this.attr("offset",t.offset),this)}}),ee(yn,{rx:ir,ry:sr,from:pr,to:yr}),Kt(yn,"Runner");var _n=class extends tr{constructor(t,e=t){super(Ht("svg",t),e),this.namespace()}defs(){return this.isRoot()?$t(this.node.querySelector("defs"))||this.put(new er):this.root().defs()}isRoot(){return!this.node.parentNode||!(this.node.parentNode instanceof Gt.window.SVGElement)&&"#document-fragment"!==this.node.parentNode.nodeName}namespace(){return this.isRoot()?this.attr({xmlns:Vt,version:"1.1"}).attr("xmlns:xlink",zt,Rt):this.root().namespace()}removeNamespace(){return this.attr({xmlns:null,version:null}).attr("xmlns:xlink",null,Rt).attr("xmlns:svgjs",null,Rt)}root(){return this.isRoot()?this:super.root()}};d({Container:{nested:re(function(){return this.put(new _n)})}}),Kt(_n,"Svg",!0);var On=class extends tr{constructor(t,e=t){super(Ht("symbol",t),e)}};d({Container:{symbol:re(function(){return this.put(new On)})}}),Kt(On,"Symbol");var Pn=h({amove:()=>Fn,ax:()=>Dn,ay:()=>In,build:()=>Bn,center:()=>kn,cx:()=>Cn,cy:()=>Ln,length:()=>Mn,move:()=>jn,plain:()=>En,x:()=>An,y:()=>Tn});function En(t){return!1===this._build&&this.clear(),this.node.appendChild(Gt.document.createTextNode(t)),this}function Mn(){return this.node.getComputedTextLength()}function An(t,e=this.bbox()){return null==t?e.x:this.attr("x",this.attr("x")+t-e.x)}function Tn(t,e=this.bbox()){return null==t?e.y:this.attr("y",this.attr("y")+t-e.y)}function jn(t,e,r=this.bbox()){return this.x(t,r).y(e,r)}function Cn(t,e=this.bbox()){return null==t?e.cx:this.attr("x",this.attr("x")+t-e.cx)}function Ln(t,e=this.bbox()){return null==t?e.cy:this.attr("y",this.attr("y")+t-e.cy)}function kn(t,e,r=this.bbox()){return this.cx(t,r).cy(e,r)}function Dn(t){return this.attr("x",t)}function In(t){return this.attr("y",t)}function Fn(t,e){return this.ax(t).ay(e)}function Bn(t){return this._build=!!t,this}var Vn=class extends rr{constructor(t,e=t){super(Ht("text",t),e),this.dom.leading=this.dom.leading??new He(1.3),this._rebuild=!0,this._build=!1}leading(t){return null==t?this.dom.leading:(this.dom.leading=new He(t),this.rebuild())}rebuild(t){if("boolean"==typeof t&&(this._rebuild=t),this._rebuild){const t=this;let e=0;const r=this.dom.leading;this.each(function(n){if(Bt(this.node))return;const i=Gt.window.getComputedStyle(this.node).getPropertyValue("font-size"),s=r*new He(i);this.dom.newLined&&(this.attr("x",t.attr("x")),"\n"===this.text()?e+=s:(this.attr("dy",n?s+e:0),e=0))}),this.fire("rebuild")}return this}setData(t){return this.dom=t,this.dom.leading=new He(t.leading||1.3),this}writeDataToDom(){return super.writeDataToDom({leading:1.3})}text(t){if(void 0===t){const e=this.node.childNodes;let r=0;t="";for(let n=0,i=e.length;n<i;++n)"textPath"===e[n].nodeName||Bt(e[n])?0===n&&(r=n+1):(n!==r&&3!==e[n].nodeType&&!0===$t(e[n]).dom.newLined&&(t+="\n"),t+=e[n].textContent);return t}if(this.clear().build(!0),"function"==typeof t)t.call(this,this);else for(let e=0,r=(t=(t+"").split("\n")).length;e<r;e++)this.newLine(t[e]);return this.build(!1).rebuild()}};ee(Vn,Pn),d({Container:{text:re(function(t=""){return this.put(new Vn).text(t)}),plain:re(function(t=""){return this.put(new Vn).plain(t)})}}),Kt(Vn,"Text");var Rn=class extends rr{constructor(t,e=t){super(Ht("tspan",t),e),this._build=!1}dx(t){return this.attr("dx",t)}dy(t){return this.attr("dy",t)}newLine(){this.dom.newLined=!0;const t=this.parent();if(!(t instanceof Vn))return this;const e=t.index(this),r=Gt.window.getComputedStyle(this.node).getPropertyValue("font-size"),n=t.dom.leading*new He(r);return this.dy(e?n:0).attr("x",t.x())}text(t){return null==t?this.node.textContent+(this.dom.newLined?"\n":""):("function"==typeof t?(this.clear().build(!0),t.call(this,this),this.build(!1)):this.plain(t),this)}};ee(Rn,Pn),d({Tspan:{tspan:re(function(t=""){const e=new Rn;return this._build||this.clear(),this.put(e).text(t)})},Text:{newLine:function(t=""){return this.tspan(t).newLine()}}}),Kt(Rn,"Tspan");var zn=class extends rr{constructor(t,e=t){super(Ht("circle",t),e)}radius(t){return this.attr("r",t)}rx(t){return this.attr("r",t)}ry(t){return this.rx(t)}size(t){return this.radius(new He(t).divide(2))}};ee(zn,{x:or,y:ar,cx:ur,cy:hr,width:cr,height:lr}),d({Container:{circle:re(function(t=0){return this.put(new zn).size(t).move(0,0)})}}),Kt(zn,"Circle");var Gn=class extends tr{constructor(t,e=t){super(Ht("clipPath",t),e)}remove(){return this.targets().forEach(function(t){t.unclip()}),super.remove()}targets(){return Ce(this.node,"clip-path")}};d({Container:{clip:re(function(){return this.defs().put(new Gn)})},Element:{clipper(){return this.reference("clip-path")},clipWith(t){const e=t instanceof Gn?t:this.parent().clip().add(t);return this.attr("clip-path","url(#"+e.id()+")")},unclip(){return this.attr("clip-path",null)}}}),Kt(Gn,"ClipPath");var Un=class extends Qe{constructor(t,e=t){super(Ht("foreignObject",t),e)}};d({Container:{foreignObject:re(function(t,e){return this.put(new Un).size(t,e)})}}),Kt(Un,"ForeignObject");var Xn=h({dmove:()=>Yn,dx:()=>Wn,dy:()=>qn,height:()=>Hn,move:()=>$n,size:()=>Jn,width:()=>Kn,x:()=>Qn,y:()=>Zn});function Yn(t,e){return this.children().forEach(r=>{let n;try{n=r.node instanceof Gt.window.SVGSVGElement?new Pe(r.attr(["x","y","width","height"])):r.bbox()}catch(t){return}const i=new Ne(r),s=i.translate(t,e).transform(i.inverse()),o=new xe(n.x,n.y).transform(s);r.dmove(o.x-n.x,o.y-n.y)}),this}function Wn(t){return this.dmove(t,0)}function qn(t){return this.dmove(0,t)}function Hn(t,e=this.bbox()){return null==t?e.height:this.size(e.width,t,e)}function $n(t=0,e=0,r=this.bbox()){const n=t-r.x,i=e-r.y;return this.dmove(n,i)}function Jn(t,e,r=this.bbox()){const n=Dt(this,t,e,r),i=n.width/r.width,s=n.height/r.height;return this.children().forEach(t=>{const e=new xe(r).transform(new Ne(t).inverse());t.scale(i,s,e.x,e.y)}),this}function Kn(t,e=this.bbox()){return null==t?e.width:this.size(t,e.height,e)}function Qn(t,e=this.bbox()){return null==t?e.x:this.move(t,e.y,e)}function Zn(t,e=this.bbox()){return null==t?e.y:this.move(e.x,t,e)}var ti=class extends tr{constructor(t,e=t){super(Ht("g",t),e)}};ee(ti,Xn),d({Container:{group:re(function(){return this.put(new ti)})}}),Kt(ti,"G");var ei=class extends tr{constructor(t,e=t){super(Ht("a",t),e)}target(t){return this.attr("target",t)}to(t){return this.attr("href",t,zt)}};ee(ei,Xn),d({Container:{link:re(function(t){return this.put(new ei).to(t)})},Element:{unlink(){const t=this.linker();if(!t)return this;const e=t.parent();if(!e)return this.remove();const r=e.index(t);return e.add(this,r),t.remove(),this},linkTo(t){let e=this.linker();return e||(e=new ei,this.wrap(e)),"function"==typeof t?t.call(e,e):e.to(t),this},linker(){const t=this.parent();return t&&"a"===t.node.nodeName.toLowerCase()?t:null}}}),Kt(ei,"A");var ri=class extends tr{constructor(t,e=t){super(Ht("mask",t),e)}remove(){return this.targets().forEach(function(t){t.unmask()}),super.remove()}targets(){return Ce(this.node,"mask")}};d({Container:{mask:re(function(){return this.defs().put(new ri)})},Element:{masker(){return this.reference("mask")},maskWith(t){const e=t instanceof ri?t:this.parent().mask().add(t);return this.attr("mask","url(#"+e.id()+")")},unmask(){return this.attr("mask",null)}}}),Kt(ri,"Mask");var ni=class extends Qe{constructor(t,e=t){super(Ht("stop",t),e)}update(t){return("number"==typeof t||t instanceof He)&&(t={offset:arguments[0],color:arguments[1],opacity:arguments[2]}),null!=t.opacity&&this.attr("stop-opacity",t.opacity),null!=t.color&&this.attr("stop-color",t.color),null!=t.offset&&this.attr("offset",new He(t.offset)),this}};d({Gradient:{stop:function(t,e,r){return this.put(new ni).update(t,e,r)}}}),Kt(ni,"Stop");var ii=class extends Qe{constructor(t,e=t){super(Ht("style",t),e)}addText(t=""){return this.node.textContent+=t,this}font(t,e,r={}){return this.rule("@font-face",{fontFamily:t,src:e,...r})}rule(t,e){return this.addText(function(t,e){if(!t)return"";if(!e)return t;let r=t+"{";for(const t in e)r+=Lt(t)+":"+e[t]+";";return r+="}",r}(t,e))}};d("Dom",{style(t,e){return this.put(new ii).rule(t,e)},fontface(t,e,r){return this.put(new ii).font(t,e,r)}}),Kt(ii,"Style");var si=class extends Vn{constructor(t,e=t){super(Ht("textPath",t),e)}array(){const t=this.track();return t?t.array():null}plot(t){const e=this.track();let r=null;return e&&(r=e.plot(t)),null==t?r:this}track(){return this.reference("href")}};d({Container:{textPath:re(function(t,e){return t instanceof Vn||(t=this.text(t)),t.path(e)})},Text:{path:re(function(t,e=!0){const r=new si;let n;if(t instanceof tn||(t=this.defs().path(t)),r.attr("href","#"+t,zt),e)for(;n=this.node.firstChild;)r.node.appendChild(n);return this.put(r)}),textPath(){return this.findOne("textPath")}},Path:{text:re(function(t){return t instanceof Vn||(t=(new Vn).addTo(this.parent()).text(t)),t.path(this)}),targets(){return Ce(this.node,"href","textPath")}}}),si.prototype.MorphArray=Wr,Kt(si,"TextPath");var oi=class extends rr{constructor(t,e=t){super(Ht("use",t),e)}use(t,e){return this.attr("href",(e||"")+"#"+t,zt)}};d({Container:{use:re(function(t,e){return this.put(new oi).use(t,e)})}}),Kt(oi,"Use"),ee([_n,On,wr,br,Ar],m("viewbox")),ee([Mr,hn,un,tn],m("marker")),ee(Vn,m("Text")),ee(tn,m("Path")),ee(er,m("Defs")),ee([Vn,Rn],m("Tspan")),ee([cn,fr,gr,yn],m("radius")),ee(ze,m("EventTarget")),ee(Ke,m("Dom")),ee(Qe,m("Element")),ee(rr,m("Shape")),ee([tr,dr],m("Container")),ee(gr,m("Gradient")),ee(yn,m("Runner")),Me.extend([...new Set(f)]),function(t=[]){Zr.push(...[].concat(t))}([He,we,Pe,Ne,qe,xr,Wr,xe]),ee(Zr,{to(t){return(new Hr).type(this.constructor).from(this.toArray()).to(t)},fromArray(t){return this.init(t),this},toConsumable(){return this.toArray()},morph(t,e,r,n,i){return this.fromArray(t.map(function(t,s){return n.step(t,e[s],r,i[s],i)}))}});var ai=r(726),ui=r(358);class hi{constructor(t,e){this.svgDoc=t,this.elements=e,new MutationObserver(t=>{t.some(t=>t.removedNodes.length>0)&&(this.elements=this.elements.filter(t=>this.svgDoc.contains(t.domNode)))}).observe(t,{childList:!0,subtree:!0})}}class ci{constructor(t,e){this.svgDoc=t,this.elementsDrawing=new hi(t,e)}get bases(){return this.elementsDrawing.elements}set bases(t){this.elementsDrawing.elements=t}append(t){t.appendTo(this.svgDoc),this.bases.push(t)}add(t){let e=ui.Nucleobase.create(t);return this.append(e),e}}var li,fi,di=r(534),mi=r(742),pi=function(t,e,r,n,i){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!i:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===n?i.call(t,r):i?i.value=r:e.set(t,r),r},yi=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class gi{constructor(t){this.domNode=t,li.set(this,void 0),fi.set(this,void 0),pi(this,li,new hi(t,[]),"f"),pi(this,fi,new MutationObserver(()=>{this.elements.forEach(t=>{this.domNode.contains(t.owner.domNode)||t.domNode.remove()})}),"f"),yi(this,fi,"f").observe(t,{childList:!0,subtree:!0})}get elements(){return yi(this,li,"f").elements}set elements(t){yi(this,li,"f").elements=t}}li=new WeakMap,fi=new WeakMap;var bi,vi,wi=function(t,e,r,n,i){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!i:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===n?i.call(t,r):i?i.value=r:e.set(t,r),r},xi=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class Si{constructor(t){this.domNode=t,bi.set(this,void 0),wi(this,bi,new gi(t),"f")}get numberings(){return xi(this,bi,"f").elements}set numberings(t){xi(this,bi,"f").elements=t}number(t,e){let r=mi.Numbering.numbering(t,e);return this.domNode.insertBefore(r.domNode,t.domNode),xi(this,bi,"f").elements.push(r),r}}bi=new WeakMap;class Ni{constructor(t){this.domNode=t,vi.set(this,void 0),wi(this,vi,new gi(t),"f")}get numberingLines(){return xi(this,vi,"f").elements}set numberingLines(t){xi(this,vi,"f").elements=t}connect(t){let e=mi.NumberingLine.connecting(t);return this.domNode.insertBefore(e.domNode,t.domNode),xi(this,vi,"f").elements.push(e),e}}vi=new WeakMap;var _i,Oi=r(775),Pi=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class Ei{constructor(t){this.domNode=t,_i.set(this,void 0),function(t,e,r,n,i){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!i:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");"a"===n?i.call(t,r):i?i.value=r:e.set(t,r)}(this,_i,new gi(t),"f")}get baseOutlines(){return Pi(this,_i,"f").elements}set baseOutlines(t){Pi(this,_i,"f").elements=t}append(t){this.domNode.append(t.domNode),this.baseOutlines.push(t)}outline(t){let e=Oi.BaseOutline.outlining(t);return e.setAttribute("r",""+.54*t.domNode.getBBox().height),t.domNode.insertAdjacentElement("beforebegin",e.domNode),this.baseOutlines.push(e),e}}_i=new WeakMap;var Mi=r(282);class Ai{constructor(t,e){this.svgDoc=t,this.elementsDrawing=new hi(t,e),new MutationObserver(()=>{this.bonds.forEach(t=>{this.svgDoc.contains(t.base1.domNode)&&this.svgDoc.contains(t.base2.domNode)||t.remove()})}).observe(t,{childList:!0,subtree:!0})}get bonds(){return this.elementsDrawing.elements}set bonds(t){this.elementsDrawing.elements=t}}class Ti{constructor(t,e){this.svgDoc=t,this.defaultValues={attributes:{stroke:"#808080","stroke-width":"1"},basePadding1:6,basePadding2:6},this.bondsDrawing=new Ai(t,e)}get primaryBonds(){return this.bondsDrawing.bonds}set primaryBonds(t){this.bondsDrawing.bonds=t}append(t){t.appendTo(this.svgDoc),this.primaryBonds.push(t)}add(t,e){let r=Mi.StraightBond.between(t,e);return this.append(r),r.set(this.defaultValues),r}}class ji{constructor(t,e){this.svgDoc=t,this.defaultValues={attributes:{stroke:"#000000","stroke-width":"2"},basePadding1:6,basePadding2:6},this.bondsDrawing=new Ai(t,e)}get secondaryBonds(){return this.bondsDrawing.bonds}set secondaryBonds(t){this.bondsDrawing.bonds=t}append(t){t.appendTo(this.svgDoc),this.secondaryBonds.push(t)}add(t,e){let r=Mi.StraightBond.between(t,e);return this.append(r),r.set(this.defaultValues),r}}var Ci,Li=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class ki{constructor(t){this.domNode=t,Ci.set(this,void 0),function(t,e,r,n,i){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!i:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");"a"===n?i.call(t,r):i?i.value=r:e.set(t,r)}(this,Ci,new Ai(t,[]),"f")}get tertiaryBonds(){return Li(this,Ci,"f").bonds}set tertiaryBonds(t){Li(this,Ci,"f").bonds=t}addTertiaryBond(t,e){let r=Mi.CurvedBond.between(t,e);return this.domNode.append(r.domNode),this.tertiaryBonds.push(r),r}}Ci=new WeakMap;var Di,Ii=r(854),Fi=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class Bi{constructor(t){if(Di.set(this,void 0),!(0,Ii.isNonNullObject)(t))throw new Error("Saved drawings must be non-null objects.");!function(t,e,r,n,i){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!i:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");"a"===n?i.call(t,r):i?i.value=r:e.set(t,r)}(this,Di,t,"f")}get outerXML(){if((0,Ii.isString)(Fi(this,Di,"f").outerXML))return Fi(this,Di,"f").outerXML;if((0,Ii.isString)(Fi(this,Di,"f").svg))return Fi(this,Di,"f").svg;throw new Error("Unable to find the outer XML of the saved drawing.")}get bases(){if((0,Ii.isArray)(Fi(this,Di,"f").bases)){if(!Fi(this,Di,"f").bases.every(Ii.isNonNullObject))throw new Error("Saved bases must be non-null objects.");return Fi(this,Di,"f").bases}if((0,Ii.isArray)(Fi(this,Di,"f").sequences)){if(!Fi(this,Di,"f").sequences.every(Ii.isNonNullObject))throw new Error("Saved sequences must be non-null objects.");let t=Fi(this,Di,"f").sequences.flatMap(t=>t.bases);if(!t.every(Ii.isNonNullObject))throw new Error("Saved bases must be non-null objects.");return t}return[]}get outlines(){if((0,Ii.isArray)(Fi(this,Di,"f").outlines))return Fi(this,Di,"f").outlines;if((0,Ii.isArray)(Fi(this,Di,"f").baseOutlines))return Fi(this,Di,"f").baseOutlines;try{let t=this.bases;if(t.some(t=>t.outline))return t.filter(t=>t.outline).map(t=>{if(!(0,Ii.isNonNullObject)(t.outline))throw new Error("Saved outlines must be non-null objects.");return{...t.outline,ownerID:t.textId}})}catch{}return[]}get numberings(){if((0,Ii.isArray)(Fi(this,Di,"f").numberings))return Fi(this,Di,"f").numberings;if((0,Ii.isArray)(Fi(this,Di,"f").baseNumberings))return Fi(this,Di,"f").baseNumberings;try{let t=this.bases;if(t.some(t=>t.numbering))return t.filter(t=>t.numbering).map(t=>{if(!(0,Ii.isNonNullObject)(t.numbering))throw new Error("Saved numberings must be non-null objects.");return{...t.numbering,ownerID:t.textId}})}catch{}return[]}get numberingLines(){if((0,Ii.isArray)(Fi(this,Di,"f").numberingLines))return Fi(this,Di,"f").numberingLines;if((0,Ii.isArray)(Fi(this,Di,"f").baseNumberingLines))return Fi(this,Di,"f").baseNumberingLines;try{let t=this.bases;if(t.some(t=>t.numbering))return t.filter(t=>t.numbering).map(t=>t.numbering)}catch{}return[]}get primaryBonds(){return(0,Ii.isArray)(Fi(this,Di,"f").primaryBonds)?Fi(this,Di,"f").primaryBonds:[]}get secondaryBonds(){return(0,Ii.isArray)(Fi(this,Di,"f").secondaryBonds)?Fi(this,Di,"f").secondaryBonds:[]}get tertiaryBonds(){return(0,Ii.isArray)(Fi(this,Di,"f").tertiaryBonds)?Fi(this,Di,"f").tertiaryBonds:[]}}Di=new WeakMap;var Vi,Ri,zi,Gi,Ui,Xi,Yi=r(645),Wi=function(t,e,r,n,i){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!i:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===n?i.call(t,r):i?i.value=r:e.set(t,r),r},qi=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class Hi{constructor(){Vi.add(this),Ri.set(this,void 0),zi.set(this,void 0),Gi.set(this,void 0),Ui.set(this,void 0),this.domNode=(new _n).node,this.domNode.setAttribute("viewBox",`0 0 ${$i} ${Ji}`),this.domNode.setAttribute("width",`${$i}`),this.domNode.setAttribute("height",`${Ji}`),this.basesDrawing=new ci(this.domNode,[]),Wi(this,Ri,new Si(this.domNode),"f"),Wi(this,zi,new Ni(this.domNode),"f"),Wi(this,Gi,new Ei(this.domNode),"f"),this.primaryBondsDrawing=new Ti(this.domNode,[]),this.secondaryBondsDrawing=new ji(this.domNode,[]),Wi(this,Ui,new ki(this.domNode),"f")}get outerXML(){return this.domNode.outerHTML}set outerXML(t){new ai.OuterXML(this.domNode).set(t)}get innerXML(){return this.domNode.innerHTML}set innerXML(t){new ai.InnerXML(this.domNode).set(t)}get name(){return this.domNode.dataset.name}set name(t){void 0===t?this.domNode.removeAttribute("data-name"):this.domNode.setAttribute("data-name",t)}appendTo(t){t.appendChild(this.domNode)}remove(){this.domNode.remove()}get minX(){return this.domNode.viewBox.baseVal.x}set minX(t){let e=this.maxX-t,r=this.horizontalScaling;this.domNode.setAttribute("viewBox",`${t} ${this.minY} ${e} ${this.height}`),this.domNode.setAttribute("width",(r*e).toString())}get maxX(){return this.minX+this.width}set maxX(t){let e=t-this.minX,r=this.horizontalScaling;this.domNode.setAttribute("viewBox",`${this.minX} ${this.minY} ${e} ${this.height}`),this.domNode.setAttribute("width",(r*e).toString())}get minY(){return this.domNode.viewBox.baseVal.y}set minY(t){let e=this.maxY-t,r=this.verticalScaling;this.domNode.setAttribute("viewBox",`${this.minX} ${t} ${this.width} ${e}`),this.domNode.setAttribute("height",(r*e).toString())}get maxY(){return this.minY+this.height}set maxY(t){let e=t-this.minY,r=this.verticalScaling;this.domNode.setAttribute("viewBox",`${this.minX} ${this.minY} ${this.width} ${e}`),this.domNode.setAttribute("height",(r*e).toString())}setBoundaries({minX:t,maxX:e,minY:r,maxY:n}){this.minX=t,this.maxX=e,this.minY=r,this.maxY=n}get width(){return this.domNode.viewBox.baseVal.width}set width(t){this.maxX=this.minX+t}get height(){return this.domNode.viewBox.baseVal.height}set height(t){this.maxY=this.minY+t}get horizontalScaling(){let t=this.width;return this.domNode.width.baseVal.value/t}set horizontalScaling(t){let e=this.width;this.domNode.setAttribute("width",(t*e).toString())}get verticalScaling(){let t=this.height;return this.domNode.height.baseVal.value/t}set verticalScaling(t){let e=this.height;this.domNode.setAttribute("height",(t*e).toString())}setScaling(t){this.horizontalScaling=t,this.verticalScaling=t}get horizontalClientScaling(){return new ai.HorizontalClientScaling(this.domNode).get()}get verticalClientScaling(){return new ai.VerticalClientScaling(this.domNode).get()}isEmpty(){return 0==this.domNode.childNodes.length}get bases(){return this.basesDrawing.bases}set bases(t){this.basesDrawing.bases=[...t]}appendBase(t){this.basesDrawing.append(t)}addBase(t){return this.basesDrawing.add(t)}number(t,e){let r=qi(this,Ri,"f").number(t,e),n=qi(this,zi,"f").connect(r);return r.displacement.magnitude=10,n.direction=(0,di.outwardNormal)(t,...qi(this,Vi,"a",Xi)),n.length=1.15*r.domNode.getBBox().height,[r,n]}get numberings(){return qi(this,Ri,"f").numberings}set numberings(t){qi(this,Ri,"f").numberings=[...t]}get numberingLines(){return qi(this,zi,"f").numberingLines}set numberingLines(t){qi(this,zi,"f").numberingLines=[...t]}connect(t){return qi(this,zi,"f").connect(t)}get baseOutlines(){return qi(this,Gi,"f").baseOutlines}set baseOutlines(t){qi(this,Gi,"f").baseOutlines=[...t]}get outlines(){return this.baseOutlines}outlineBase(t){return qi(this,Gi,"f").outline(t)}outline(t){return this.outlineBase(t)}appendBaseOutline(t){qi(this,Gi,"f").append(t)}get primaryBonds(){return this.primaryBondsDrawing.primaryBonds}set primaryBonds(t){this.primaryBondsDrawing.primaryBonds=[...t]}appendPrimaryBond(t){this.primaryBondsDrawing.append(t)}addPrimaryBond(t,e){return this.primaryBondsDrawing.add(t,e)}get secondaryBonds(){return this.secondaryBondsDrawing.secondaryBonds}set secondaryBonds(t){this.secondaryBondsDrawing.secondaryBonds=[...t]}appendSecondaryBond(t){this.secondaryBondsDrawing.append(t)}addSecondaryBond(t,e){return this.secondaryBondsDrawing.add(t,e)}get tertiaryBonds(){return qi(this,Ui,"f").tertiaryBonds}set tertiaryBonds(t){qi(this,Ui,"f").tertiaryBonds=[...t]}addTertiaryBond(t,e){return qi(this,Ui,"f").addTertiaryBond(t,e)}rotate(t,e){let r=new Set(t);for(let t of this.numberings)if(r.has(t.owner)){let r=mi.NumberingLine.unpadded(t);this.domNode.append(r.domNode),r.direction+=e,r.domNode.remove()}(0,di.rotate)(t,e)}get defaultValues(){let t=this.primaryBondsDrawing,e=this.secondaryBondsDrawing;return{get primaryBonds(){return t.defaultValues},set primaryBonds(e){t.defaultValues=e},get secondaryBonds(){return e.defaultValues},set secondaryBonds(t){e.defaultValues=t}}}get contentBBox(){return Yi.Box.matching(this.domNode.getBBox())}setPadding(t){let e=this.contentBBox;this.setBoundaries({minX:e.x-t,maxX:e.x+e.width+t,minY:e.y-t,maxY:e.y+e.height+t})}reset(){this.domNode.innerHTML="",this.basesDrawing.bases=[],qi(this,Gi,"f").baseOutlines=[],this.primaryBondsDrawing.primaryBonds=[],this.secondaryBondsDrawing.secondaryBonds=[],qi(this,Ui,"f").tertiaryBonds=[],[...this.domNode.attributes].forEach(t=>this.domNode.removeAttribute(t.name)),this.domNode.setAttribute("viewBox",`0 0 ${$i} ${Ji}`),this.domNode.setAttribute("width",`${$i}`),this.domNode.setAttribute("height",`${Ji}`)}serialized(){return{outerXML:this.outerXML,bases:[...this.bases].map(t=>t.serialized()),numberings:[...this.numberings].map(t=>t.serialized()),numberingLines:[...this.numberingLines].map(t=>t.serialized()),baseOutlines:[...this.baseOutlines].map(t=>t.serialized()),primaryBonds:[...this.primaryBonds].map(t=>t.serialized()),secondaryBonds:[...this.secondaryBonds].map(t=>t.serialized()),tertiaryBonds:[...this.tertiaryBonds].map(t=>t.save())}}static deserialized(t){let e=new Bi(t),r=new Hi,n=document.createElement("div");n.append(r.domNode),n.style.width="0px",n.style.height="0px",document.body.append(n),r.outerXML=e.outerXML;let i=r.domNode;r.bases=e.bases.map(t=>ui.Nucleobase.deserialized(t,r));let s=[...r.bases];r.numberings=e.numberings.map(t=>mi.Numbering.deserialized(t,{domNode:i,bases:s}));let o=[...r.numberings];return r.numberingLines=e.numberingLines.map(t=>mi.NumberingLine.deserialized(t,{domNode:i,numberings:o})),r.baseOutlines=e.outlines.map(t=>Oi.BaseOutline.deserialized(t,r)),r.primaryBonds=e.primaryBonds.map(t=>Mi.StraightBond.deserialized(t,r)),r.secondaryBonds=e.secondaryBonds.map(t=>Mi.StraightBond.deserialized(t,r)),r.tertiaryBonds=e.tertiaryBonds.map(t=>Mi.CurvedBond.recreate(t,r)),r.domNode.remove(),n.remove(),r}restore(t){let e=Hi.deserialized(t),r=[...e.bases],n=[...e.numberings],i=[...e.numberingLines],s=[...e.baseOutlines],o=[...e.primaryBonds],a=[...e.secondaryBonds],u=[...e.tertiaryBonds];this.reset(),[...this.domNode.attributes].forEach(t=>this.domNode.removeAttribute(t.name)),[...e.domNode.attributes].forEach(t=>this.domNode.setAttribute(t.name,t.value)),[...e.domNode.childNodes].forEach(t=>this.domNode.appendChild(t)),this.bases=r,this.numberings=n,this.numberingLines=i,this.baseOutlines=s,this.primaryBonds=o,this.secondaryBonds=a,this.tertiaryBonds=u}}Ri=new WeakMap,zi=new WeakMap,Gi=new WeakMap,Ui=new WeakMap,Vi=new WeakSet,Xi=function(){return[[...this.bases],this.secondaryBondsDrawing.secondaryBonds.map(t=>t.basePair)]};const $i=250,Ji=250;var Ki=r(369),Qi=r(127),Zi=r(986),ts=r(106);class es{constructor(t){this.targetDrawing=t}draw(t,e){let r=[...t].map(t=>this.targetDrawing.addBase(t));(0,Qi.consecutivePairs)(r).forEach(t=>this.targetDrawing.addPrimaryBond(...t));let n=(0,Ki.parseDotBracket)(e),i=(0,Ki.basePairs)(r,n["()"]);i.forEach(t=>this.targetDrawing.addSecondaryBond(...t));let s=(0,Ki.basePairs)(r,n.toArray());r.forEach(t=>t.bringToFront());let o=1.87*(0,Zi.mean)(r.map(t=>t.bbox.height));if(i.length>0?(0,di.untangle)(r,i,{spacing:o,basePairSpacing:o/2,hairpinLoopSpacing:o/2}):((0,di.linearize)(r,{spacing:o/2}),new di.Direction(r).set(0)),(0,Qi.missing)(i,s).forEach(t=>this.targetDrawing.addTertiaryBond(...t)),r.length>10){this.targetDrawing.number((0,ts.first)(r),1),this.targetDrawing.number((0,ts.last)(r),r.length);let t=20;r.slice(0,-3).forEach((e,r)=>{let n=r+1;n%t!=0||this.targetDrawing.number(e,n)})}return r.forEach(t=>t.bringToFront()),{bases:r}}}var rs,ns=r(297),is=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class ss{constructor(t){rs.set(this,void 0),function(t,e,r,n,i){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!i:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");"a"===n?i.call(t,r):i?i.value=r:e.set(t,r)}(this,rs,t,"f")}draw(t){let e=(0,ns.parseCT)(t),r=[...e.sequence].map(t=>is(this,rs,"f").addBase(t));(0,Qi.consecutivePairs)(r).forEach(t=>is(this,rs,"f").addPrimaryBond(...t));let n=(0,Ki.basePairs)(r,e.positionPairs),[i,s]=(0,Qi.knotless)(r,n),o=(0,Qi.missing)(s,n);s.forEach(t=>is(this,rs,"f").addSecondaryBond(...t)),r.forEach(t=>t.bringToFront());let a=1.87*(0,Zi.mean)(r.map(t=>t.bbox.height));if(s.length>0?(0,di.untangle)(r,s,{spacing:a,basePairSpacing:a/2,hairpinLoopSpacing:a/2}):((0,di.linearize)(r,{spacing:a/2}),new di.Direction(r).set(0)),o.forEach(t=>is(this,rs,"f").addTertiaryBond(...t)),r.length>10){is(this,rs,"f").number((0,ts.first)(r),1+e.numberingOffset),is(this,rs,"f").number((0,ts.last)(r),r.length+e.numberingOffset);let t=20;r.slice(0,-3).forEach((r,n)=>{let i=n+1;i%t!=0||is(this,rs,"f").number(r,i+e.numberingOffset)})}return{bases:r}}}rs=new WeakMap;var os,as,us,hs,cs,ls=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class fs{constructor(t){os.add(this),as.set(this,void 0),function(t,e,r,n,i){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!i:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");"a"===n?i.call(t,r):i?i.value=r:e.set(t,r)}(this,as,t,"f")}draw(t){var e;(t={...t,classes:[...ds,...null!==(e=t.classes)&&void 0!==e?e:[]]}).rnaComplexes.forEach(e=>{e.rnaMolecules.forEach(e=>{let r=e.sequence.map(e=>ls(this,os,"m",us).call(this,e,t)),n=(0,Zi.mean)(r.map(t=>t.bbox.height));ls(this,as,"f").defaultValues.primaryBonds.attributes["stroke-width"]=""+.125*n,ls(this,as,"f").defaultValues.primaryBonds.basePadding1=.75*n,ls(this,as,"f").defaultValues.primaryBonds.basePadding2=.75*n,(0,Qi.consecutivePairs)(r).forEach(t=>ls(this,as,"f").addPrimaryBond(...t)),ls(this,as,"f").defaultValues.secondaryBonds.attributes["stroke-width"]=""+.15*n,ls(this,as,"f").defaultValues.secondaryBonds.basePadding1=.6*n,ls(this,as,"f").defaultValues.secondaryBonds.basePadding2=.6*n,new Set(e.basePairs.map(t=>JSON.stringify(t))).forEach(e=>ls(this,os,"m",hs).call(this,JSON.parse(e),r,t)),mi.Numbering.defaultValues.attributes["font-family"]="Helvetica",mi.Numbering.defaultValues.attributes["font-size"]=""+.97*n,mi.Numbering.defaultValues.attributes["font-weight"]="700",mi.Numbering.defaultValues.attributes.fill="#cccccc",mi.NumberingLine.defaultValues.attributes.stroke="#cccccc",mi.NumberingLine.defaultValues.attributes["stroke-width"]=""+.125*n,mi.NumberingLine.defaultValues.basePadding=.75*n,mi.NumberingLine.defaultValues.textPadding=.25*n,(0,Ii.isArray)(e.labels)&&new Set(e.labels.map(t=>JSON.stringify(t))).forEach(t=>ls(this,os,"m",cs).call(this,JSON.parse(t),r))})})}}as=new WeakMap,os=new WeakSet,us=function(t,e){var r,n;let i=ls(this,as,"f").addBase(t.residueName),s=null===(r=e.classes)||void 0===r?void 0:r.find(t=>"font"==t.name);return!s||i.setAttributes({...s,name:void 0}),null===(n=t.classes)||void 0===n||n.forEach(t=>{var r;(null!==(r=e.classes)&&void 0!==r?r:[]).filter(e=>e.name==t).forEach(t=>i.setAttributes({...t,name:void 0}))}),i.centerPoint.x=t.x,i.centerPoint.y=t.y,i},hs=function(t,e,r){var n;let i=e[t.residueIndex1],s=e[t.residueIndex2],o=ls(this,as,"f").addSecondaryBond(i,s);return null===(n=t.classes)||void 0===n||n.forEach(t=>{var e;(null!==(e=r.classes)&&void 0!==e?e:[]).filter(e=>e.name==t).forEach(t=>o.setAttributes({...t,name:void 0}))}),o},cs=function(t,e){if(!(0,Ii.isNonNullObject)(t))return void console.error(`Label schema is not an object: ${t}.`);if("number"!=typeof t.residueIndex)return void console.error(`Label residue index is not a number: ${t.residueIndex}.`);if(t.residueIndex<0)return void console.error(`Label residue index is negative: ${t.residueIndex}.`);if(t.residueIndex>=e.length)return void console.error(`Label residue index is out-of-bounds: ${t.residueIndex}.`);if(!Number.isInteger(t.residueIndex))return void console.error(`Label residue index is not an integer: ${t.residueIndex}.`);let r=e[t.residueIndex],n=t.residueIndex+1,i=t.labelContent;(0,Ii.isNonNullObject)(i)||console.error(`Label content schema is not an object: ${i}.`);let s=(0,Ii.isNonNullObject)(i)&&!(0,Ii.isNullish)(i.label)&&""!==i.label?`${i.label}`:`${n}`,[o,a]=ls(this,as,"f").number(r,n),u=o.displacement.direction;o.textContent=s,a.length=1.03*r.domNode.getBBox().height,a.direction=u};const ds=[{name:"text-black",fill:"#000000"},{name:"text-green",fill:"#00ff00"},{name:"text-red",fill:"#ff00ff"},{name:"text-blue",fill:"#0000ff"}]})(),n})());
1
+ !function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.draw=e():t.draw=e()}(this,()=>(()=>{var t={127(t){var e;e=()=>(()=>{var t={986(t){t.exports=(()=>{"use strict";const t={d:(e,r)=>{if(Array.isArray(r))for(var n=0;n<r.length;){var i=r[n++],s=r[n++];t.o(e,i)?0===s&&n++:0===s?Object.defineProperty(e,i,{enumerable:!0,value:r[n++]}):Object.defineProperty(e,i,{enumerable:!0,get:s})}else for(var i in r)t.o(r,i)&&!t.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:r[i]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}};let e={};function r(t,e){return Math.abs(t-e)}function n(t){let e=0;return t.forEach(t=>e+=t),e}function i(t){return n(t)/t.length}function s(t){t.sort((t,e)=>t-e)}function o(t){let e=[...t];return s(e),e}function a(t){if(0==t.length)return NaN;let e=o(t);if(e.length%2!=0)return e[Math.floor(e.length/2)];let r=e.length/2,n=r-1;return i([e[r],e[n]])}function u(t){if(0==t.length)return 1/0;let e=t[0];return t.slice(1).forEach(t=>{e=Math.min(e,t)}),e}function h(t){if(0==t.length)return-1/0;let e=t[0];return t.slice(1).forEach(t=>{e=Math.max(e,t)}),e}function c(t,e,r){return t>=e&&t<=r}function l(t,e,r){return t>e&&t<r}function f(t,e,r){return t<e?e:t>r?r:t}function d(t,e,r){return Math.abs(t-e)<=r}function m(t){s(t),t.reverse()}function p(t){let e=o(t);return e.reverse(),e}function y(t,e){return Number.parseFloat(t.toFixed(null!=e?e:0))}function g(t){return t*(180/Math.PI)}function b(t){return t*(Math.PI/180)}function w(t,e=-Math.PI){let r=t-e;return r%=2*Math.PI,r=r>=0?r:r+2*Math.PI,e+r}function v(t,e){let r=(e=w(e,t))-t;return(r<Math.PI/2||r>3*Math.PI/2)&&(t+=Math.PI),t}return t.r(e),t.d(e,{areWithin:()=>d,average:()=>i,clamp:()=>f,degrees:()=>g,distance:()=>r,flipAway:()=>v,isBetween:()=>c,isBetweenExclusive:()=>l,isBetweenInclusive:()=>c,max:()=>h,mean:()=>i,median:()=>a,min:()=>u,normalizeAngle:()=>w,radians:()=>b,round:()=>y,sortNumbers:()=>s,sortNumbersAscending:()=>s,sortNumbersDescending:()=>m,sortedNumbers:()=>o,sortedNumbersAscending:()=>o,sortedNumbersDescending:()=>p,sum:()=>n}),e})()},369(t){var e;e=()=>(()=>{var t={986(t){t.exports=(()=>{"use strict";const t={d:(e,r)=>{if(Array.isArray(r))for(var n=0;n<r.length;){var i=r[n++],s=r[n++];t.o(e,i)?0===s&&n++:0===s?Object.defineProperty(e,i,{enumerable:!0,value:r[n++]}):Object.defineProperty(e,i,{enumerable:!0,get:s})}else for(var i in r)t.o(r,i)&&!t.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:r[i]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}};let e={};function r(t,e){return Math.abs(t-e)}function n(t){let e=0;return t.forEach(t=>e+=t),e}function i(t){return n(t)/t.length}function s(t){t.sort((t,e)=>t-e)}function o(t){let e=[...t];return s(e),e}function a(t){if(0==t.length)return NaN;let e=o(t);if(e.length%2!=0)return e[Math.floor(e.length/2)];let r=e.length/2,n=r-1;return i([e[r],e[n]])}function u(t){if(0==t.length)return 1/0;let e=t[0];return t.slice(1).forEach(t=>{e=Math.min(e,t)}),e}function h(t){if(0==t.length)return-1/0;let e=t[0];return t.slice(1).forEach(t=>{e=Math.max(e,t)}),e}function c(t,e,r){return t>=e&&t<=r}function l(t,e,r){return t>e&&t<r}function f(t,e,r){return t<e?e:t>r?r:t}function d(t,e,r){return Math.abs(t-e)<=r}function m(t){s(t),t.reverse()}function p(t){let e=o(t);return e.reverse(),e}function y(t,e){return Number.parseFloat(t.toFixed(null!=e?e:0))}function g(t){return t*(180/Math.PI)}function b(t){return t*(Math.PI/180)}function w(t,e=-Math.PI){let r=t-e;return r%=2*Math.PI,r=r>=0?r:r+2*Math.PI,e+r}function v(t,e){let r=(e=w(e,t))-t;return(r<Math.PI/2||r>3*Math.PI/2)&&(t+=Math.PI),t}return t.r(e),t.d(e,{areWithin:()=>d,average:()=>i,clamp:()=>f,degrees:()=>g,distance:()=>r,flipAway:()=>v,isBetween:()=>c,isBetweenExclusive:()=>l,isBetweenInclusive:()=>c,max:()=>h,mean:()=>i,median:()=>a,min:()=>u,normalizeAngle:()=>w,radians:()=>b,round:()=>y,sortNumbers:()=>s,sortNumbersAscending:()=>s,sortNumbersDescending:()=>m,sortedNumbers:()=>o,sortedNumbersAscending:()=>o,sortedNumbersDescending:()=>p,sum:()=>n}),e})()},106(t){var e;e=()=>(()=>{var t={992(t){var e;e=()=>(()=>{"use strict";const t={d:(e,r)=>{if(Array.isArray(r))for(var n=0;n<r.length;){var i=r[n++],s=r[n++];t.o(e,i)?0===s&&n++:0===s?Object.defineProperty(e,i,{enumerable:!0,value:r[n++]}):Object.defineProperty(e,i,{enumerable:!0,get:s})}else for(var i in r)t.o(r,i)&&!t.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:r[i]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}};let e={};t.r(e),t.d(e,{KeyBinding:()=>p});var r,n,i,s,o,a,u,h,c,l,f,d=function(t,e,r,n,i){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!i:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===n?i.call(t,r):i?i.value=r:e.set(t,r),r},m=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class p{constructor(t,e,a){r.add(this),this.key=t,n.set(this,void 0),i.set(this,void 0),s.set(this,void 0),o.set(this,void 0),d(this,n,e,"f"),d(this,i,t=>m(this,r,"m",l).call(this,t),"f"),d(this,s,a,"f")}get owner(){return m(this,o,"f")}set owner(t){var e;null===(e=m(this,o,"f"))||void 0===e||e.removeEventListener("keydown",m(this,i,"f")),null==t||t.addEventListener("keydown",m(this,i,"f"),{passive:!1}),d(this,o,t,"f")}}return n=new WeakMap,i=new WeakMap,s=new WeakMap,o=new WeakMap,r=new WeakSet,a=function(){var t,e;return null!==(e=null===(t=m(this,s,"f"))||void 0===t?void 0:t.altKey)&&void 0!==e&&e},u=function(){var t,e;return null!==(e=null===(t=m(this,s,"f"))||void 0===t?void 0:t.ctrlKey)&&void 0!==e&&e},h=function(){var t,e;return null!==(e=null===(t=m(this,s,"f"))||void 0===t?void 0:t.metaKey)&&void 0!==e&&e},c=function(){var t,e;return null!==(e=null===(t=m(this,s,"f"))||void 0===t?void 0:t.shiftKey)&&void 0!==e&&e},l=function(t){this.owner&&this.owner===document.activeElement&&`Key${this.key}`.toUpperCase()===t.code.toUpperCase()&&t.altKey===m(this,r,"a",a)&&t.ctrlKey===m(this,r,"a",u)&&t.metaKey===m(this,r,"a",h)&&t.shiftKey===m(this,r,"a",c)&&m(this,r,"m",f).call(this,t)},f=function(t){t.preventDefault(),m(this,n,"f").call(this)},e})(),t.exports=e()},854(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){return"number"==typeof t}function n(t){return r(t)&&Number.isFinite(t)}function i(t){return r(t)&&!Number.isFinite(t)}function s(t){return n(t)&&t>0}function o(t){return n(t)&&t>=0}function a(t){return"string"==typeof t}function u(t){return""===t}function h(t){return a(t)&&!u(t)}function c(t){return!!a(t)&&0==t.trim().length}function l(t){if(!a(t))return!1;try{return JSON.parse(t),!0}catch{return!1}}function f(t){try{return JSON.stringify(t),!0}catch{return!1}}function d(t){return!!t}function m(t){return!t}function p(t){return null==t}function y(t){return"object"==typeof t&&null!==t}function g(t){return Array.isArray(t)}function b(t){return g(t)&&0==t.length}function w(t){return g(t)&&t.length>0}function v(t){return g(t)&&t.every(r)}function x(t){return v(t)&&t.length>0}function N(t){return g(t)&&t.every(n)}function S(t){return g(t)&&t.every(i)}function _(t){return g(t)&&t.every(a)}function O(t){return _(t)&&t.length>0}function E(t){return t instanceof SVGGraphicsElement}return t.r(e),t.d(e,{isArray:()=>g,isEmptyArray:()=>b,isEmptyString:()=>u,isFalsy:()=>m,isFiniteNumber:()=>n,isFiniteNumbersArray:()=>N,isJSON:()=>l,isJSONSerializable:()=>f,isNonEmptyArray:()=>w,isNonEmptyNumbersArray:()=>x,isNonEmptyString:()=>h,isNonEmptyStringsArray:()=>O,isNonFiniteNumber:()=>i,isNonFiniteNumbersArray:()=>S,isNonNegativeFiniteNumber:()=>o,isNonNullObject:()=>y,isNullish:()=>p,isNumber:()=>r,isNumbersArray:()=>v,isPositiveFiniteNumber:()=>s,isSVGGraphicsElement:()=>E,isString:()=>a,isStringsArray:()=>_,isTruthy:()=>d,isWhitespace:()=>c}),e})()}};const e={};function r(n){const i=e[n];if(void 0!==i)return i.exports;const s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,r),s.exports}r.d=(t,e)=>{if(Array.isArray(e))for(var n=0;n<e.length;){var i=e[n++],s=e[n++];r.o(t,i)?0===s&&n++:0===s?Object.defineProperty(t,i,{enumerable:!0,value:e[n++]}):Object.defineProperty(t,i,{enumerable:!0,get:s})}else for(var i in e)r.o(e,i)&&!r.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};let n={};return(()=>{"use strict";function t(t){if(t.length>0)return t[0];throw new Error("Array is empty.")}function e(t){if(t.length>0)return t[t.length-1];throw new Error("Array is empty.")}function i(t){if(t.length<3)throw new Error("Array has less than 3 items.");if(t.length%2==0)throw new Error("Array has an even number of items.");let e=Math.floor(t.length/2);return[t[e-1],t[e],t[e+1]]}function s(t){if(t.length<4)throw new Error("Array has less than 4 items.");if(t.length%2!=0)throw new Error("Array has an odd number of items.");let e=Math.floor(t.length/2);return[t[e-2],t[e-1],t[e],t[e+1]]}function o(t){return t.length<2?[]:t.slice(0,-1).map((e,r)=>[t[r],t[r+1]])}r.r(n),r.d(n,{DownloadableFile:()=>w,EventfulSet:()=>v,FiniteStack:()=>E,KeyBinding:()=>d.KeyBinding,consecutivePairs:()=>o,containsFocus:()=>f,detectMac:()=>p,detectWindows:()=>m,first:()=>t,hasFocus:()=>l,isJSON:()=>a.isJSON,isJSONSerializable:()=>a.isJSONSerializable,isURL:()=>P,last:()=>e,middleFour:()=>s,middleThree:()=>i,removeWhitespace:()=>u,shuffled:()=>c,splitLines:()=>h});var a=r(854);function u(t){return[...t].filter(t=>!(0,a.isWhitespace)(t)).join("")}function h(t){return t.split(/\r\n|\r|\n/)}function c(t){return t.map(t=>({v:t,priority:Math.random()})).sort((t,e)=>t.priority-e.priority).map(({v:t})=>t)}function l(t){return t===document.activeElement}function f(t){return!!document.activeElement&&t.contains(document.activeElement)}var d=r(992);function m(){return-1!==navigator.userAgent.indexOf("Windows")}function p(){try{return window.navigator.platform.toLowerCase().includes("mac")}catch(t){return!1}}var y,g=function(t,e,r,n,i){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!i:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===n?i.call(t,r):i?i.value=r:e.set(t,r),r},b=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class w{constructor(t,e,r){y.set(this,void 0),this.name=null!=t?t:"Unnamed.txt",this.content=null!=e?e:"",g(this,y,null==r?void 0:r.type,"f")}get type(){return null!=b(this,y,"f")?b(this,y,"f"):this.content instanceof Blob?this.content.type:"text/plain"}set type(t){g(this,y,t,"f")}download(){let t=new File([this.content],this.name,{type:this.type}),e=URL.createObjectURL(t),r=document.createElement("a");r.href=e,r.download=t.name,document.body.appendChild(r),r.click(),r.remove(),URL.revokeObjectURL(e)}}y=new WeakMap;class v{constructor(){this.eventListeners={change:[]},this.underlyingSet=new Set}[Symbol.iterator](){return this.underlyingSet.values()}includes(t){return this.underlyingSet.has(t)}include(t){return this.includes(t)}addAll(t){let e=[...t];0!=e.length&&(e.every(t=>this.includes(t))||(e.forEach(t=>this.underlyingSet.add(t)),this.callEventListeners("change")))}removeAll(t){let e=[...t];0!=e.length&&(e.every(t=>!this.includes(t))||(e.forEach(t=>this.underlyingSet.delete(t)),this.callEventListeners("change")))}clear(){0!=this.underlyingSet.size&&(this.underlyingSet.clear(),this.callEventListeners("change"))}addEventListener(t,e){this.eventListeners[t].push(e)}callEventListeners(t){this.eventListeners[t].forEach(t=>t())}removeEventListener(t,e){this.eventListeners[t]=this.eventListeners[t].filter(t=>t!==e)}}var x,N,S,_,O=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class E{constructor(t){x.add(this),this.maxSize=t,N.set(this,[]),S.set(this,{change:[]})}get size(){return O(this,N,"f").length}isEmpty(){return 0==this.size}empty(){0!=this.size&&(function(t,e){if("function"==typeof e||!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");e.set(t,[])}(this,N),O(this,x,"m",_).call(this,"change"))}peek(){if(0==this.size)throw new Error("The stack is empty.");return O(this,N,"f")[O(this,N,"f").length-1]}push(t){O(this,N,"f").push(t),this.size>this.maxSize&&O(this,N,"f").shift(),O(this,x,"m",_).call(this,"change")}pop(){if(0==this.size)throw new Error("The stack is empty.");let t=O(this,N,"f").pop();return O(this,x,"m",_).call(this,"change"),t}addEventListener(t,e){O(this,S,"f")[t].push(e)}removeEventListener(t,e){O(this,S,"f")[t]=O(this,S,"f")[t].filter(t=>t!==e)}}function P(t){try{return new URL(t),!0}catch(t){return!1}}N=new WeakMap,S=new WeakMap,x=new WeakSet,_=function(t){O(this,S,"f")[t].forEach(t=>t())}})(),n})(),t.exports=e()},854(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){return"number"==typeof t}function n(t){return r(t)&&Number.isFinite(t)}function i(t){return r(t)&&!Number.isFinite(t)}function s(t){return n(t)&&t>0}function o(t){return n(t)&&t>=0}function a(t){return"string"==typeof t}function u(t){return""===t}function h(t){return a(t)&&!u(t)}function c(t){return!!a(t)&&0==t.trim().length}function l(t){if(!a(t))return!1;try{return JSON.parse(t),!0}catch{return!1}}function f(t){try{return JSON.stringify(t),!0}catch{return!1}}function d(t){return!!t}function m(t){return!t}function p(t){return null==t}function y(t){return"object"==typeof t&&null!==t}function g(t){return Array.isArray(t)}function b(t){return g(t)&&0==t.length}function w(t){return g(t)&&t.length>0}function v(t){return g(t)&&t.every(r)}function x(t){return v(t)&&t.length>0}function N(t){return g(t)&&t.every(n)}function S(t){return g(t)&&t.every(i)}function _(t){return g(t)&&t.every(a)}function O(t){return _(t)&&t.length>0}function E(t){return t instanceof SVGGraphicsElement}return t.r(e),t.d(e,{isArray:()=>g,isEmptyArray:()=>b,isEmptyString:()=>u,isFalsy:()=>m,isFiniteNumber:()=>n,isFiniteNumbersArray:()=>N,isJSON:()=>l,isJSONSerializable:()=>f,isNonEmptyArray:()=>w,isNonEmptyNumbersArray:()=>x,isNonEmptyString:()=>h,isNonEmptyStringsArray:()=>O,isNonFiniteNumber:()=>i,isNonFiniteNumbersArray:()=>S,isNonNegativeFiniteNumber:()=>o,isNonNullObject:()=>y,isNullish:()=>p,isNumber:()=>r,isNumbersArray:()=>v,isPositiveFiniteNumber:()=>s,isSVGGraphicsElement:()=>E,isString:()=>a,isStringsArray:()=>_,isTruthy:()=>d,isWhitespace:()=>c}),e})()}};const e={};function r(n){const i=e[n];if(void 0!==i)return i.exports;const s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,r),s.exports}r.d=(t,e)=>{if(Array.isArray(e))for(var n=0;n<e.length;){var i=e[n++],s=e[n++];r.o(t,i)?0===s&&n++:0===s?Object.defineProperty(t,i,{enumerable:!0,value:e[n++]}):Object.defineProperty(t,i,{enumerable:!0,get:s})}else for(var i in e)r.o(e,i)&&!r.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};let n={};return(()=>{"use strict";r.r(n),r.d(n,{Linkers:()=>p,Stems:()=>m,areConflicting:()=>u,areCrossing:()=>l,areEqual:()=>o,areKnotless:()=>c,areStacked:()=>a,basePairs:()=>v,deepCopy:()=>e,knotless:()=>f,mountainPlotTraversal:()=>y,parseDotBracket:()=>b,radializable:()=>d,sorted:()=>s});var t=r(854);function e(e){return(0,t.isNumbersArray)(e)?[...e]:e.map(t=>[...t])}var i=r(986);function s(t){let r=e(t);return r.forEach(i.sortNumbers),r.sort((t,e)=>t[0]-e[0]),r}function o(t,r){let n=e(t),s=e(r);return(0,i.sortNumbers)(n),(0,i.sortNumbers)(s),[0,1].every(t=>n[t]==s[t])}function a(t,e){let r=s([t,e]);return r[0][0]==r[1][0]-1&&r[0][1]==r[1][1]+1}function u(t,e){return(0,i.min)(t)==(0,i.min)(e)&&(0,i.max)(t)!=(0,i.max)(e)||(0,i.min)(t)!=(0,i.min)(e)&&(0,i.max)(t)==(0,i.max)(e)}function h(t){if(0==t.length)return[];let e=[];for(let r=0;r<(0,i.max)(t.flat());r++)e.push(void 0);return t.forEach(t=>{e[t[0]-1]=t[1],e[t[1]-1]=t[0]}),e}function c(t){let e=h(t),r=[],n=!1;return e.forEach((t,e)=>{let i=e+1;null==t||(i<t?r.push(i):i==t||r.pop()!=t&&(n=!0))}),!n}function l(t,e){return!c([t,e])}function f(t){let r=[],n=e(t);n.sort((t,e)=>Math.abs(t[0]-t[1])-Math.abs(e[0]-e[1]));let s=[];return n.forEach(t=>{let e=[t[0]-1,t[1]-1],n=(0,i.min)(e),o=(0,i.max)(e);if(!s[n]&&!s[o]){r.push(t);for(let t=n;t<=o;t++)s[t]=!0}}),r}function d(t){let r=e(t);r.sort(([t,e],[r,n])=>Math.abs(t-e)-Math.abs(r-n));let n=[],i=[];return r.forEach(([t,e])=>{t==e||null!=i[t-1]||null!=i[e-1]||(n.push([t,e]),i[t-1]=e,i[e-1]=t)}),f(n)}class m{constructor(...t){this.targetStructure=t}get(){let t=this.targetStructure[1];if(0==t.length)return[];let e=s(t),r=[],n=[];return e.forEach(t=>{let e=0==n.length?null:n[n.length-1];!e||a(e,t)?n.push(t):(r.push(n),n=[t])}),r.push(n),r}}class p{constructor(...t){this.targetStructure=t}get(){let t=new m(...this.targetStructure).get().flatMap(t=>[t.map(i.min),t.map(i.max)]);t.forEach(i.sortNumbers),t.sort((t,e)=>(0,i.min)(t)-(0,i.min)(e));let e=[],r=t.shift(),n=t.shift();for(;r&&n;){let s=[],o=(0,i.max)(r),a=(0,i.min)(n);for(let t=o;t<=a;t++)s.push(t);e.push(s),r=n,n=t.shift()}return e}}function y(...t){let e=t[0],r=t[1],n=h(r);if(!c(r))throw new Error("Pseudoknot(s) encountered.");let i=[],s=0;return e.forEach((t,e)=>{let r=e+1,o=n[e];null==o?i.push(s):r<o?(i.push(s),s++):(r==o||s--,i.push(s))}),i}var g=r(106);function b(t){t=(0,g.removeWhitespace)(t);let e={"()":[],"[]":[],"{}":[],"<>":[]};w.forEach(r=>{let[n,i]=r.split(""),o=[...t].map(t=>t===n?"(":t===i?")":".").join("");e[r]=function(t){let e=[],r=[];if([...t].forEach((t,n)=>{let i=n+1;if("."==t);else if("("==t)r.push(i);else if(")"==t){let t=r.pop();if("number"!=typeof t)throw new Error(`Unmatched downstream partner in dot-bracket notation at position: ${i}.`);e.push([t,i])}}),r.length>0)throw new Error(`Unmatched upstream partner in dot-bracket notation at position: ${r.pop()}.`);return s(e)}(o)});let r=()=>s(w.flatMap(t=>e[t]));return{[Symbol.iterator]:()=>r()[Symbol.iterator](),toArray:r,...e}}const w=["()","[]","{}","<>"];function v(t,e){return e.forEach(e=>{e.forEach(e=>{if(e<1)throw new Error("Sequence positions must be positive.");if(e>t.length)throw new Error("Position out of sequence range.")})}),e.map(e=>[t[e[0]-1],t[e[1]-1]])}})(),n})(),t.exports=e()},106(t){var e;e=()=>(()=>{var t={992(t){var e;e=()=>(()=>{"use strict";const t={d:(e,r)=>{if(Array.isArray(r))for(var n=0;n<r.length;){var i=r[n++],s=r[n++];t.o(e,i)?0===s&&n++:0===s?Object.defineProperty(e,i,{enumerable:!0,value:r[n++]}):Object.defineProperty(e,i,{enumerable:!0,get:s})}else for(var i in r)t.o(r,i)&&!t.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:r[i]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}};let e={};t.r(e),t.d(e,{KeyBinding:()=>p});var r,n,i,s,o,a,u,h,c,l,f,d=function(t,e,r,n,i){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!i:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===n?i.call(t,r):i?i.value=r:e.set(t,r),r},m=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class p{constructor(t,e,a){r.add(this),this.key=t,n.set(this,void 0),i.set(this,void 0),s.set(this,void 0),o.set(this,void 0),d(this,n,e,"f"),d(this,i,t=>m(this,r,"m",l).call(this,t),"f"),d(this,s,a,"f")}get owner(){return m(this,o,"f")}set owner(t){var e;null===(e=m(this,o,"f"))||void 0===e||e.removeEventListener("keydown",m(this,i,"f")),null==t||t.addEventListener("keydown",m(this,i,"f"),{passive:!1}),d(this,o,t,"f")}}return n=new WeakMap,i=new WeakMap,s=new WeakMap,o=new WeakMap,r=new WeakSet,a=function(){var t,e;return null!==(e=null===(t=m(this,s,"f"))||void 0===t?void 0:t.altKey)&&void 0!==e&&e},u=function(){var t,e;return null!==(e=null===(t=m(this,s,"f"))||void 0===t?void 0:t.ctrlKey)&&void 0!==e&&e},h=function(){var t,e;return null!==(e=null===(t=m(this,s,"f"))||void 0===t?void 0:t.metaKey)&&void 0!==e&&e},c=function(){var t,e;return null!==(e=null===(t=m(this,s,"f"))||void 0===t?void 0:t.shiftKey)&&void 0!==e&&e},l=function(t){this.owner&&this.owner===document.activeElement&&`Key${this.key}`.toUpperCase()===t.code.toUpperCase()&&t.altKey===m(this,r,"a",a)&&t.ctrlKey===m(this,r,"a",u)&&t.metaKey===m(this,r,"a",h)&&t.shiftKey===m(this,r,"a",c)&&m(this,r,"m",f).call(this,t)},f=function(t){t.preventDefault(),m(this,n,"f").call(this)},e})(),t.exports=e()},854(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){return"number"==typeof t}function n(t){return r(t)&&Number.isFinite(t)}function i(t){return r(t)&&!Number.isFinite(t)}function s(t){return n(t)&&t>0}function o(t){return n(t)&&t>=0}function a(t){return"string"==typeof t}function u(t){return""===t}function h(t){return a(t)&&!u(t)}function c(t){return!!a(t)&&0==t.trim().length}function l(t){if(!a(t))return!1;try{return JSON.parse(t),!0}catch{return!1}}function f(t){try{return JSON.stringify(t),!0}catch{return!1}}function d(t){return!!t}function m(t){return!t}function p(t){return null==t}function y(t){return"object"==typeof t&&null!==t}function g(t){return Array.isArray(t)}function b(t){return g(t)&&0==t.length}function w(t){return g(t)&&t.length>0}function v(t){return g(t)&&t.every(r)}function x(t){return v(t)&&t.length>0}function N(t){return g(t)&&t.every(n)}function S(t){return g(t)&&t.every(i)}function _(t){return g(t)&&t.every(a)}function O(t){return _(t)&&t.length>0}function E(t){return t instanceof SVGGraphicsElement}return t.r(e),t.d(e,{isArray:()=>g,isEmptyArray:()=>b,isEmptyString:()=>u,isFalsy:()=>m,isFiniteNumber:()=>n,isFiniteNumbersArray:()=>N,isJSON:()=>l,isJSONSerializable:()=>f,isNonEmptyArray:()=>w,isNonEmptyNumbersArray:()=>x,isNonEmptyString:()=>h,isNonEmptyStringsArray:()=>O,isNonFiniteNumber:()=>i,isNonFiniteNumbersArray:()=>S,isNonNegativeFiniteNumber:()=>o,isNonNullObject:()=>y,isNullish:()=>p,isNumber:()=>r,isNumbersArray:()=>v,isPositiveFiniteNumber:()=>s,isSVGGraphicsElement:()=>E,isString:()=>a,isStringsArray:()=>_,isTruthy:()=>d,isWhitespace:()=>c}),e})()}};const e={};function r(n){const i=e[n];if(void 0!==i)return i.exports;const s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,r),s.exports}r.d=(t,e)=>{if(Array.isArray(e))for(var n=0;n<e.length;){var i=e[n++],s=e[n++];r.o(t,i)?0===s&&n++:0===s?Object.defineProperty(t,i,{enumerable:!0,value:e[n++]}):Object.defineProperty(t,i,{enumerable:!0,get:s})}else for(var i in e)r.o(e,i)&&!r.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};let n={};return(()=>{"use strict";function t(t){if(t.length>0)return t[0];throw new Error("Array is empty.")}function e(t){if(t.length>0)return t[t.length-1];throw new Error("Array is empty.")}function i(t){if(t.length<3)throw new Error("Array has less than 3 items.");if(t.length%2==0)throw new Error("Array has an even number of items.");let e=Math.floor(t.length/2);return[t[e-1],t[e],t[e+1]]}function s(t){if(t.length<4)throw new Error("Array has less than 4 items.");if(t.length%2!=0)throw new Error("Array has an odd number of items.");let e=Math.floor(t.length/2);return[t[e-2],t[e-1],t[e],t[e+1]]}function o(t){return t.length<2?[]:t.slice(0,-1).map((e,r)=>[t[r],t[r+1]])}r.r(n),r.d(n,{DownloadableFile:()=>w,EventfulSet:()=>v,FiniteStack:()=>E,KeyBinding:()=>d.KeyBinding,consecutivePairs:()=>o,containsFocus:()=>f,detectMac:()=>p,detectWindows:()=>m,first:()=>t,hasFocus:()=>l,isJSON:()=>a.isJSON,isJSONSerializable:()=>a.isJSONSerializable,isURL:()=>P,last:()=>e,middleFour:()=>s,middleThree:()=>i,removeWhitespace:()=>u,shuffled:()=>c,splitLines:()=>h});var a=r(854);function u(t){return[...t].filter(t=>!(0,a.isWhitespace)(t)).join("")}function h(t){return t.split(/\r\n|\r|\n/)}function c(t){return t.map(t=>({v:t,priority:Math.random()})).sort((t,e)=>t.priority-e.priority).map(({v:t})=>t)}function l(t){return t===document.activeElement}function f(t){return!!document.activeElement&&t.contains(document.activeElement)}var d=r(992);function m(){return-1!==navigator.userAgent.indexOf("Windows")}function p(){try{return window.navigator.platform.toLowerCase().includes("mac")}catch(t){return!1}}var y,g=function(t,e,r,n,i){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!i:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===n?i.call(t,r):i?i.value=r:e.set(t,r),r},b=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class w{constructor(t,e,r){y.set(this,void 0),this.name=null!=t?t:"Unnamed.txt",this.content=null!=e?e:"",g(this,y,null==r?void 0:r.type,"f")}get type(){return null!=b(this,y,"f")?b(this,y,"f"):this.content instanceof Blob?this.content.type:"text/plain"}set type(t){g(this,y,t,"f")}download(){let t=new File([this.content],this.name,{type:this.type}),e=URL.createObjectURL(t),r=document.createElement("a");r.href=e,r.download=t.name,document.body.appendChild(r),r.click(),r.remove(),URL.revokeObjectURL(e)}}y=new WeakMap;class v{constructor(){this.eventListeners={change:[]},this.underlyingSet=new Set}[Symbol.iterator](){return this.underlyingSet.values()}includes(t){return this.underlyingSet.has(t)}include(t){return this.includes(t)}addAll(t){let e=[...t];0!=e.length&&(e.every(t=>this.includes(t))||(e.forEach(t=>this.underlyingSet.add(t)),this.callEventListeners("change")))}removeAll(t){let e=[...t];0!=e.length&&(e.every(t=>!this.includes(t))||(e.forEach(t=>this.underlyingSet.delete(t)),this.callEventListeners("change")))}clear(){0!=this.underlyingSet.size&&(this.underlyingSet.clear(),this.callEventListeners("change"))}addEventListener(t,e){this.eventListeners[t].push(e)}callEventListeners(t){this.eventListeners[t].forEach(t=>t())}removeEventListener(t,e){this.eventListeners[t]=this.eventListeners[t].filter(t=>t!==e)}}var x,N,S,_,O=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class E{constructor(t){x.add(this),this.maxSize=t,N.set(this,[]),S.set(this,{change:[]})}get size(){return O(this,N,"f").length}isEmpty(){return 0==this.size}empty(){0!=this.size&&(function(t,e){if("function"==typeof e||!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");e.set(t,[])}(this,N),O(this,x,"m",_).call(this,"change"))}peek(){if(0==this.size)throw new Error("The stack is empty.");return O(this,N,"f")[O(this,N,"f").length-1]}push(t){O(this,N,"f").push(t),this.size>this.maxSize&&O(this,N,"f").shift(),O(this,x,"m",_).call(this,"change")}pop(){if(0==this.size)throw new Error("The stack is empty.");let t=O(this,N,"f").pop();return O(this,x,"m",_).call(this,"change"),t}addEventListener(t,e){O(this,S,"f")[t].push(e)}removeEventListener(t,e){O(this,S,"f")[t]=O(this,S,"f")[t].filter(t=>t!==e)}}function P(t){try{return new URL(t),!0}catch(t){return!1}}N=new WeakMap,S=new WeakMap,x=new WeakSet,_=function(t){O(this,S,"f")[t].forEach(t=>t())}})(),n})(),t.exports=e()}};const e={};function r(n){const i=e[n];if(void 0!==i)return i.exports;const s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,r),s.exports}r.d=(t,e)=>{if(Array.isArray(e))for(var n=0;n<e.length;){var i=e[n++],s=e[n++];r.o(t,i)?0===s&&n++:0===s?Object.defineProperty(t,i,{enumerable:!0,value:e[n++]}):Object.defineProperty(t,i,{enumerable:!0,get:s})}else for(var i in e)r.o(e,i)&&!r.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};let n={};return(()=>{"use strict";function t(t,e){return t[0]===e[0]&&t[1]===e[1]||t[0]===e[1]&&t[1]===e[0]}function e(t,e){if(!e.includes(t))throw new Error("The given base is not present in the provided base-pair.");return t===e[0]?e[1]:e[0]}r.r(n),r.d(n,{FirstPairedBase:()=>s,LastPairedBase:()=>a,LeadingDanglingBases:()=>u,Linkers:()=>f,PositionPairs:()=>i,Stems:()=>l,TrailingDanglingBases:()=>h,antiParallelPairs:()=>v,areEqual:()=>t,consecutivePairs:()=>b,knotless:()=>d,missing:()=>x,mountainPlotTraversal:()=>p,other:()=>e,parallelPairs:()=>w,parseDotBracket:()=>y,radializable:()=>m});class i{constructor(...t){this.targetStructure=t}get(){let t=this.targetStructure[0];return this.targetStructure[1].map(e=>[t.indexOf(e[0])+1,t.indexOf(e[1])+1])}}class s{constructor(...t){this.targetStructure=t}get(){let t=this.targetStructure[0],e=this.targetStructure[1];if(0==e.length)throw new Error("There are no paired bases.");let r=e.flat(),n=t.findIndex(t=>r.includes(t));if(n<0)throw new Error("No paired bases present in sequence.");return t[n]}}var o=r(986);class a{constructor(...t){this.targetStructure=t}get(){let t=this.targetStructure[0],e=this.targetStructure[1];if(0==e.length)throw new Error("There are no paired bases.");let r=e.flat().map(e=>t.indexOf(e));if((0,o.max)(r)<0)throw new Error("No paired bases present in sequence.");return t[(0,o.max)(r)]}}class u{constructor(...t){this.targetStructure=t}get(){let t=this.targetStructure[0];if(0==this.targetStructure[1].length)throw new Error("There are no paired bases.");let e=new s(...this.targetStructure).get(),r=t.indexOf(e);if(r<0)throw new Error("No paired bases present in sequence.");return t.slice(0,r)}}class h{constructor(...t){this.targetStructure=t}get(){let t=this.targetStructure[0];if(0==this.targetStructure[1].length)throw new Error("There are no paired bases.");let e=new a(...this.targetStructure).get(),r=t.indexOf(e);if(r<0)throw new Error("No paired bases present in sequence.");return t.slice(r+1)}}var c=r(369);class l{constructor(...t){this.targetStructure=t}get(){let t=this.targetStructure[0],e=new i(...this.targetStructure).get();return new c.Stems(t,e).get().map(e=>e.map(e=>[t[e[0]-1],t[e[1]-1]]))}}class f{constructor(...t){this.targetStructure=t}get(){let t=this.targetStructure[0],e=new i(...this.targetStructure).get();return new c.Linkers(t,e).get().map(e=>e.map(e=>t[e-1]))}}function d(...t){let[e,r]=t,n=new i(...t).get();(0,c.areKnotless)(n)||(n=(0,c.knotless)(n));let s=n.map(t=>[e[t[0]-1],e[t[1]-1]]);return[[...e],s]}function m(...t){let[e,r]=t,n=new i(...t).get();return[[...e],(0,c.radializable)(n).map(([t,r])=>[e[t-1],e[r-1]])]}function p(...t){let[e,r]=t,n=new i(...t).get();return(0,c.mountainPlotTraversal)(e,n)}function y(t,e){let r=(0,c.parseDotBracket)(e),n=()=>(0,c.basePairs)(t,r.toArray());return{[Symbol.iterator]:()=>n()[Symbol.iterator](),toArray:n,"()":(0,c.basePairs)(t,r["()"]),"[]":(0,c.basePairs)(t,r["[]"]),"{}":(0,c.basePairs)(t,r["{}"]),"<>":(0,c.basePairs)(t,r["<>"])}}var g=r(106);function b(t){return(0,g.consecutivePairs)(t)}function w(t){let e=[],r=Math.floor(t.length/2)-1,n=Math.ceil(t.length/2);for(let i=0;i<=r;i++){let r=t[i],s=t[n+i];e.push([r,s])}return e}function v(t){let e=[];for(let r=0;r<Math.floor(t.length/2);r++){let n=t[r],i=t[t.length-r-1];e.push([n,i])}return e}function x(e,r){return r.filter(r=>!e.find(e=>t(r,e))).map(t=>[...t])}})(),n})(),t.exports=e()},645(t){var e;e=()=>(()=>{var t={986(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){var e=0;return t.forEach(function(t){return e+=t}),e}function n(t){return r(t)/t.length}function i(t){t.sort(function(t,e){return t-e})}t.r(e),t.d(e,{areWithin:()=>d,average:()=>n,clamp:()=>f,degrees:()=>g,flipAway:()=>v,isBetween:()=>c,isBetweenExclusive:()=>l,isBetweenInclusive:()=>c,max:()=>h,mean:()=>n,median:()=>a,min:()=>u,normalizeAngle:()=>w,radians:()=>b,round:()=>y,sortNumbers:()=>i,sortNumbersAscending:()=>i,sortNumbersDescending:()=>m,sortedNumbers:()=>o,sortedNumbersAscending:()=>o,sortedNumbersDescending:()=>p,sum:()=>r});var s=function(t,e,r){if(r||2===arguments.length)for(var n,i=0,s=e.length;i<s;i++)!n&&i in e||(n||(n=Array.prototype.slice.call(e,0,i)),n[i]=e[i]);return t.concat(n||Array.prototype.slice.call(e))};function o(t){var e=s([],t,!0);return i(e),e}function a(t){if(0==t.length)return NaN;var e=o(t);if(e.length%2!=0)return e[Math.floor(e.length/2)];var r=e.length/2,i=r-1;return n([e[r],e[i]])}function u(t){if(0==t.length)return 1/0;var e=t[0];return t.slice(1).forEach(function(t){e=Math.min(e,t)}),e}function h(t){if(0==t.length)return-1/0;var e=t[0];return t.slice(1).forEach(function(t){e=Math.max(e,t)}),e}function c(t,e,r){return t>=e&&t<=r}function l(t,e,r){return t>e&&t<r}function f(t,e,r){return t<e?e:t>r?r:t}function d(t,e,r){return Math.abs(t-e)<=r}function m(t){i(t),t.reverse()}function p(t){var e=o(t);return e.reverse(),e}function y(t,e){return Number.parseFloat(t.toFixed(null!=e?e:0))}function g(t){return t*(180/Math.PI)}function b(t){return t*(Math.PI/180)}function w(t,e){void 0===e&&(e=-Math.PI);var r=t-e;return e+((r%=2*Math.PI)>=0?r:r+2*Math.PI)}function v(t,e){var r=(e=w(e,t))-t;return(r<Math.PI/2||r>3*Math.PI/2)&&(t+=Math.PI),t}return e})()}},e={};function r(n){var i=e[n];if(void 0!==i)return i.exports;var s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,r),s.exports}r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var n={};return(()=>{"use strict";r.r(n),r.d(n,{Box:()=>e});var t=r(986);class e{static matching(t){let{x:r,y:n,width:i,height:s}=t;return new e(r,n,i,s)}static bounding(r){let n=[...r];if(0==n.length)throw new Error("An empty collection of boxes doesn't have a bounding box.");let i=n.map(t=>e.matching(t)),s=(0,t.min)(i.map(t=>t.left)),o=(0,t.min)(i.map(t=>t.top)),a=(0,t.max)(i.map(t=>t.right))-s,u=(0,t.max)(i.map(t=>t.bottom))-o;return new e(s,o,a,u)}constructor(t,e,r,n){this.x=t,this.y=e,this.width=r,this.height=n}get centerX(){return this.minX+this.width/2}get centerY(){return this.minY+this.height/2}get minX(){return this.x}get minY(){return this.y}get maxX(){return this.minX+this.width}get maxY(){return this.minY+this.height}get top(){return this.minY}get right(){return this.maxX}get bottom(){return this.maxY}get left(){return this.minX}bounds(t){let r=e.matching(t);return this.minX<=r.minX&&this.minY<=r.minY&&this.maxX>=r.maxX&&this.maxY>=r.maxY}padded(...t){let r="number"==typeof t[0]?t[0]:"factor"in t[0]?t[0].factor*this.width:t[0].percentage/100*this.width,n="number"==typeof t[0]&&"number"==typeof t[1]?t[1]:"number"==typeof t[0]?t[0]:"factor"in t[0]?t[0].factor*this.height:t[0].percentage/100*this.height;return new e(this.x-r,this.y-n,this.width+2*r,this.height+2*n)}get periphery(){return{atAngle:t=>{let e=this.width/2,r=this.height/2,n=Math.pow(Math.pow(e,2)+Math.pow(r,2),.5),i=this.centerX+n*Math.cos(t),s=this.centerY+n*Math.sin(t),o=n;return Math.abs(this.centerX-i)>e&&(o=Math.abs(e/Math.cos(t)),o=Number.isFinite(o)?o:r),Math.abs(this.centerY-s)>r&&(o=Math.abs(r/Math.sin(t)),o=Number.isFinite(o)?o:e),{x:this.centerX+o*Math.cos(t),y:this.centerY+o*Math.sin(t)}}}}}})(),n})(),t.exports=e()},297(t){var e;e=()=>(()=>{var t={106(t){var e;e=()=>(()=>{var t={992:function(t){var e;e=()=>(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};t.r(e),t.d(e,{KeyBinding:()=>m});var r,n,i,s,o,a,u,h,c,l,f=function(t,e,r,n,i){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!i:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===n?i.call(t,r):i?i.value=r:e.set(t,r),r},d=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class m{constructor(t,e,a){r.add(this),this.key=t,n.set(this,void 0),i.set(this,void 0),s.set(this,void 0),o.set(this,void 0),f(this,n,e,"f"),f(this,i,t=>d(this,r,"m",l).call(this,t),"f"),f(this,s,a,"f")}get owner(){return d(this,o,"f")}set owner(t){var e;null===(e=d(this,o,"f"))||void 0===e||e.removeEventListener("keydown",d(this,i,"f")),null==t||t.addEventListener("keydown",d(this,i,"f"),{passive:!1}),f(this,o,t,"f")}}return n=new WeakMap,i=new WeakMap,s=new WeakMap,o=new WeakMap,r=new WeakSet,a=function(){var t,e;return null!==(e=null===(t=d(this,s,"f"))||void 0===t?void 0:t.altKey)&&void 0!==e&&e},u=function(){var t,e;return null!==(e=null===(t=d(this,s,"f"))||void 0===t?void 0:t.ctrlKey)&&void 0!==e&&e},h=function(){var t,e;return null!==(e=null===(t=d(this,s,"f"))||void 0===t?void 0:t.metaKey)&&void 0!==e&&e},c=function(){var t,e;return null!==(e=null===(t=d(this,s,"f"))||void 0===t?void 0:t.shiftKey)&&void 0!==e&&e},l=function(t){this.owner&&this.owner===document.activeElement&&t.key.toUpperCase()===this.key.toUpperCase()&&t.altKey===d(this,r,"a",a)&&t.ctrlKey===d(this,r,"a",u)&&t.metaKey===d(this,r,"a",h)&&t.shiftKey===d(this,r,"a",c)&&(t.preventDefault(),d(this,n,"f").call(this))},e})(),t.exports=e()}},e={};function r(n){var i=e[n];if(void 0!==i)return i.exports;var s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,r),s.exports}r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var n={};return(()=>{"use strict";function t(t){if(t.length>0)return t[0];throw new Error("Array is empty.")}function e(t){if(t.length>0)return t[t.length-1];throw new Error("Array is empty.")}function i(t){if(t.length<3)throw new Error("Array has less than 3 items.");if(t.length%2==0)throw new Error("Array has an even number of items.");let e=Math.floor(t.length/2);return[t[e-1],t[e],t[e+1]]}function s(t){if(t.length<4)throw new Error("Array has less than 4 items.");if(t.length%2!=0)throw new Error("Array has an odd number of items.");let e=Math.floor(t.length/2);return[t[e-2],t[e-1],t[e],t[e+1]]}function o(t){return t.split(/\r\n|\r|\n/)}function a(t){try{return JSON.stringify(t),!0}catch(t){return!1}}function u(t){return t.map(t=>({v:t,priority:Math.random()})).sort((t,e)=>t.priority-e.priority).map(({v:t})=>t)}function h(t){return t===document.activeElement}function c(t){return!!document.activeElement&&t.contains(document.activeElement)}r.r(n),r.d(n,{DownloadableFile:()=>g,EventfulSet:()=>b,FiniteStack:()=>_,KeyBinding:()=>l.KeyBinding,containsFocus:()=>c,detectMacOS:()=>d,detectWindows:()=>f,first:()=>t,hasFocus:()=>h,isJSONSerializable:()=>a,isURL:()=>O,last:()=>e,middleFour:()=>s,middleThree:()=>i,shuffled:()=>u,splitLines:()=>o});var l=r(992);function f(){return-1!==navigator.userAgent.indexOf("Windows")}function d(){try{return window.navigator.platform.toLowerCase().includes("mac")}catch(t){return!1}}var m,p=function(t,e,r,n,i){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!i:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===n?i.call(t,r):i?i.value=r:e.set(t,r),r},y=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class g{constructor(t,e,r){m.set(this,void 0),this.name=null!=t?t:"Unnamed.txt",this.content=null!=e?e:"",p(this,m,null==r?void 0:r.type,"f")}get type(){return null!=y(this,m,"f")?y(this,m,"f"):this.content instanceof Blob?this.content.type:"text/plain"}set type(t){p(this,m,t,"f")}download(){let t=new File([this.content],this.name,{type:this.type}),e=URL.createObjectURL(t),r=document.createElement("a");r.href=e,r.download=t.name,document.body.appendChild(r),r.click(),r.remove(),URL.revokeObjectURL(e)}}m=new WeakMap;class b{constructor(){this.eventListeners={change:[]},this.underlyingSet=new Set}[Symbol.iterator](){return this.underlyingSet.values()}includes(t){return this.underlyingSet.has(t)}include(t){return this.includes(t)}addAll(t){let e=[...t];0!=e.length&&(e.every(t=>this.includes(t))||(e.forEach(t=>this.underlyingSet.add(t)),this.callEventListeners("change")))}removeAll(t){let e=[...t];0!=e.length&&(e.every(t=>!this.includes(t))||(e.forEach(t=>this.underlyingSet.delete(t)),this.callEventListeners("change")))}clear(){0!=this.underlyingSet.size&&(this.underlyingSet.clear(),this.callEventListeners("change"))}addEventListener(t,e){this.eventListeners[t].push(e)}callEventListeners(t){this.eventListeners[t].forEach(t=>t())}removeEventListener(t,e){this.eventListeners[t]=this.eventListeners[t].filter(t=>t!==e)}}var w,v,x,N,S=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class _{constructor(t){w.add(this),this.maxSize=t,v.set(this,[]),x.set(this,{change:[]})}get size(){return S(this,v,"f").length}isEmpty(){return 0==this.size}empty(){0!=this.size&&(function(t,e){if("function"==typeof e||!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");e.set(t,[])}(this,v),S(this,w,"m",N).call(this,"change"))}peek(){if(0==this.size)throw new Error("The stack is empty.");return S(this,v,"f")[S(this,v,"f").length-1]}push(t){S(this,v,"f").push(t),this.size>this.maxSize&&S(this,v,"f").shift(),S(this,w,"m",N).call(this,"change")}pop(){if(0==this.size)throw new Error("The stack is empty.");let t=S(this,v,"f").pop();return S(this,w,"m",N).call(this,"change"),t}addEventListener(t,e){S(this,x,"f")[t].push(e)}removeEventListener(t,e){S(this,x,"f")[t]=S(this,x,"f")[t].filter(t=>t!==e)}}function O(t){try{return new URL(t),!0}catch(t){return!1}}v=new WeakMap,x=new WeakMap,w=new WeakSet,N=function(t){S(this,x,"f")[t].forEach(t=>t())}})(),n})(),t.exports=e()}},e={};function r(n){var i=e[n];if(void 0!==i)return i.exports;var s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,r),s.exports}r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var n={};return(()=>{"use strict";r.r(n),r.d(n,{isCT:()=>f,parseCT:()=>e});var t=r(106);function e(e){let r=function(t){let e=t.findIndex(t=>!i(t)&&!s(t));if(e<0)throw new Error("Unable to find the start of the structure.");let r=[...t].reverse().findIndex(t=>!i(t)&&!s(t));if(r<0)throw new Error("Unable to find the end of the structure.");return r=t.length-r-1,t.slice(e,r+1)}((0,t.splitLines)(e));return{description:o(r),sequence:a(r),positionPairs:u(r),numberingOffset:h(r)}}function i(t){return 0==t.trim().length}function s(t){return"#"==t.trim().charAt(0)}function o(t){if(0==t.length)return;let e=t[0],r=c(e);if(r.length<2)return;let n=r[0];return e.slice(e.indexOf(n)+n.length).trim()}function a(t){return t.slice(1).map(t=>{let e=c(t);if(e.length<2)throw new Error("Line is missing a character.");return e[1]}).join("")}function u(t){let e=t.slice(1),r=[];return e.forEach((t,e)=>{let n=e+1,i=c(t);if(i.length>=5){let t=Number.parseFloat(i[4]);if(Number.isNaN(t))throw new Error("Partner positions must be numbers.");if(!Number.isInteger(t))throw new Error("Partner positions must be integers.");0!=t&&n<=t&&r.push([n,t])}}),r}function h(t){if(t.length<2)return 0;let e=c(t[1]);if(e.length<6)return 0;let r=Number.parseFloat(e[5]);return Number.isNaN(r)?0:Number.isInteger(r)?r-1:0}function c(t){return function(t){return t.split(/\s/)}(t).filter(l)}function l(t){return t.length>0}function f(r){let n;try{n=e(r)}catch(t){return!1}if(0==n.sequence.length)return!1;let i=(0,t.splitLines)(r);if(i=i.filter(e=>!function(t){return 0==t.length}(e)&&!function(t){return 0==t.trim().length}(e)&&!function(e){return!((0,t.splitLines)(e).length>1)&&"#"==e.trim().charAt(0)}(e)),0==i.length)return!1;let s=(0,t.first)(i),o=Number.parseFloat(s.trim().split(/\s+/)[0]);if(!Number.isInteger(o))return!1;let a=i.slice(1);return 0!=a.length&&a.every(t=>{let e=t.trim().split(/\s+/);if(e.length<5)return!1;let r=Number.parseFloat(e[4]);return Number.isInteger(r)})}})(),n})(),t.exports=e()},282(t){var e;e=()=>(()=>{var t={127(t){var e;e=()=>(()=>{var t={986(t){t.exports=(()=>{"use strict";const t={d:(e,r)=>{if(Array.isArray(r))for(var n=0;n<r.length;){var i=r[n++],s=r[n++];t.o(e,i)?0===s&&n++:0===s?Object.defineProperty(e,i,{enumerable:!0,value:r[n++]}):Object.defineProperty(e,i,{enumerable:!0,get:s})}else for(var i in r)t.o(r,i)&&!t.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:r[i]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}};let e={};function r(t,e){return Math.abs(t-e)}function n(t){let e=0;return t.forEach(t=>e+=t),e}function i(t){return n(t)/t.length}function s(t){t.sort((t,e)=>t-e)}function o(t){let e=[...t];return s(e),e}function a(t){if(0==t.length)return NaN;let e=o(t);if(e.length%2!=0)return e[Math.floor(e.length/2)];let r=e.length/2,n=r-1;return i([e[r],e[n]])}function u(t){if(0==t.length)return 1/0;let e=t[0];return t.slice(1).forEach(t=>{e=Math.min(e,t)}),e}function h(t){if(0==t.length)return-1/0;let e=t[0];return t.slice(1).forEach(t=>{e=Math.max(e,t)}),e}function c(t,e,r){return t>=e&&t<=r}function l(t,e,r){return t>e&&t<r}function f(t,e,r){return t<e?e:t>r?r:t}function d(t,e,r){return Math.abs(t-e)<=r}function m(t){s(t),t.reverse()}function p(t){let e=o(t);return e.reverse(),e}function y(t,e){return Number.parseFloat(t.toFixed(null!=e?e:0))}function g(t){return t*(180/Math.PI)}function b(t){return t*(Math.PI/180)}function w(t,e=-Math.PI){let r=t-e;return r%=2*Math.PI,r=r>=0?r:r+2*Math.PI,e+r}function v(t,e){let r=(e=w(e,t))-t;return(r<Math.PI/2||r>3*Math.PI/2)&&(t+=Math.PI),t}return t.r(e),t.d(e,{areWithin:()=>d,average:()=>i,clamp:()=>f,degrees:()=>g,distance:()=>r,flipAway:()=>v,isBetween:()=>c,isBetweenExclusive:()=>l,isBetweenInclusive:()=>c,max:()=>h,mean:()=>i,median:()=>a,min:()=>u,normalizeAngle:()=>w,radians:()=>b,round:()=>y,sortNumbers:()=>s,sortNumbersAscending:()=>s,sortNumbersDescending:()=>m,sortedNumbers:()=>o,sortedNumbersAscending:()=>o,sortedNumbersDescending:()=>p,sum:()=>n}),e})()},369(t){var e;e=()=>(()=>{var t={986(t){t.exports=(()=>{"use strict";const t={d:(e,r)=>{if(Array.isArray(r))for(var n=0;n<r.length;){var i=r[n++],s=r[n++];t.o(e,i)?0===s&&n++:0===s?Object.defineProperty(e,i,{enumerable:!0,value:r[n++]}):Object.defineProperty(e,i,{enumerable:!0,get:s})}else for(var i in r)t.o(r,i)&&!t.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:r[i]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}};let e={};function r(t,e){return Math.abs(t-e)}function n(t){let e=0;return t.forEach(t=>e+=t),e}function i(t){return n(t)/t.length}function s(t){t.sort((t,e)=>t-e)}function o(t){let e=[...t];return s(e),e}function a(t){if(0==t.length)return NaN;let e=o(t);if(e.length%2!=0)return e[Math.floor(e.length/2)];let r=e.length/2,n=r-1;return i([e[r],e[n]])}function u(t){if(0==t.length)return 1/0;let e=t[0];return t.slice(1).forEach(t=>{e=Math.min(e,t)}),e}function h(t){if(0==t.length)return-1/0;let e=t[0];return t.slice(1).forEach(t=>{e=Math.max(e,t)}),e}function c(t,e,r){return t>=e&&t<=r}function l(t,e,r){return t>e&&t<r}function f(t,e,r){return t<e?e:t>r?r:t}function d(t,e,r){return Math.abs(t-e)<=r}function m(t){s(t),t.reverse()}function p(t){let e=o(t);return e.reverse(),e}function y(t,e){return Number.parseFloat(t.toFixed(null!=e?e:0))}function g(t){return t*(180/Math.PI)}function b(t){return t*(Math.PI/180)}function w(t,e=-Math.PI){let r=t-e;return r%=2*Math.PI,r=r>=0?r:r+2*Math.PI,e+r}function v(t,e){let r=(e=w(e,t))-t;return(r<Math.PI/2||r>3*Math.PI/2)&&(t+=Math.PI),t}return t.r(e),t.d(e,{areWithin:()=>d,average:()=>i,clamp:()=>f,degrees:()=>g,distance:()=>r,flipAway:()=>v,isBetween:()=>c,isBetweenExclusive:()=>l,isBetweenInclusive:()=>c,max:()=>h,mean:()=>i,median:()=>a,min:()=>u,normalizeAngle:()=>w,radians:()=>b,round:()=>y,sortNumbers:()=>s,sortNumbersAscending:()=>s,sortNumbersDescending:()=>m,sortedNumbers:()=>o,sortedNumbersAscending:()=>o,sortedNumbersDescending:()=>p,sum:()=>n}),e})()},106(t){var e;e=()=>(()=>{var t={992(t){var e;e=()=>(()=>{"use strict";const t={d:(e,r)=>{if(Array.isArray(r))for(var n=0;n<r.length;){var i=r[n++],s=r[n++];t.o(e,i)?0===s&&n++:0===s?Object.defineProperty(e,i,{enumerable:!0,value:r[n++]}):Object.defineProperty(e,i,{enumerable:!0,get:s})}else for(var i in r)t.o(r,i)&&!t.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:r[i]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}};let e={};t.r(e),t.d(e,{KeyBinding:()=>p});var r,n,i,s,o,a,u,h,c,l,f,d=function(t,e,r,n,i){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!i:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===n?i.call(t,r):i?i.value=r:e.set(t,r),r},m=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class p{constructor(t,e,a){r.add(this),this.key=t,n.set(this,void 0),i.set(this,void 0),s.set(this,void 0),o.set(this,void 0),d(this,n,e,"f"),d(this,i,t=>m(this,r,"m",l).call(this,t),"f"),d(this,s,a,"f")}get owner(){return m(this,o,"f")}set owner(t){var e;null===(e=m(this,o,"f"))||void 0===e||e.removeEventListener("keydown",m(this,i,"f")),null==t||t.addEventListener("keydown",m(this,i,"f"),{passive:!1}),d(this,o,t,"f")}}return n=new WeakMap,i=new WeakMap,s=new WeakMap,o=new WeakMap,r=new WeakSet,a=function(){var t,e;return null!==(e=null===(t=m(this,s,"f"))||void 0===t?void 0:t.altKey)&&void 0!==e&&e},u=function(){var t,e;return null!==(e=null===(t=m(this,s,"f"))||void 0===t?void 0:t.ctrlKey)&&void 0!==e&&e},h=function(){var t,e;return null!==(e=null===(t=m(this,s,"f"))||void 0===t?void 0:t.metaKey)&&void 0!==e&&e},c=function(){var t,e;return null!==(e=null===(t=m(this,s,"f"))||void 0===t?void 0:t.shiftKey)&&void 0!==e&&e},l=function(t){this.owner&&this.owner===document.activeElement&&`Key${this.key}`.toUpperCase()===t.code.toUpperCase()&&t.altKey===m(this,r,"a",a)&&t.ctrlKey===m(this,r,"a",u)&&t.metaKey===m(this,r,"a",h)&&t.shiftKey===m(this,r,"a",c)&&m(this,r,"m",f).call(this,t)},f=function(t){t.preventDefault(),m(this,n,"f").call(this)},e})(),t.exports=e()},854(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){return"number"==typeof t}function n(t){return r(t)&&Number.isFinite(t)}function i(t){return r(t)&&!Number.isFinite(t)}function s(t){return n(t)&&t>0}function o(t){return n(t)&&t>=0}function a(t){return"string"==typeof t}function u(t){return""===t}function h(t){return a(t)&&!u(t)}function c(t){return!!a(t)&&0==t.trim().length}function l(t){if(!a(t))return!1;try{return JSON.parse(t),!0}catch{return!1}}function f(t){try{return JSON.stringify(t),!0}catch{return!1}}function d(t){return!!t}function m(t){return!t}function p(t){return null==t}function y(t){return"object"==typeof t&&null!==t}function g(t){return Array.isArray(t)}function b(t){return g(t)&&0==t.length}function w(t){return g(t)&&t.length>0}function v(t){return g(t)&&t.every(r)}function x(t){return v(t)&&t.length>0}function N(t){return g(t)&&t.every(n)}function S(t){return g(t)&&t.every(i)}function _(t){return g(t)&&t.every(a)}function O(t){return _(t)&&t.length>0}function E(t){return t instanceof SVGGraphicsElement}return t.r(e),t.d(e,{isArray:()=>g,isEmptyArray:()=>b,isEmptyString:()=>u,isFalsy:()=>m,isFiniteNumber:()=>n,isFiniteNumbersArray:()=>N,isJSON:()=>l,isJSONSerializable:()=>f,isNonEmptyArray:()=>w,isNonEmptyNumbersArray:()=>x,isNonEmptyString:()=>h,isNonEmptyStringsArray:()=>O,isNonFiniteNumber:()=>i,isNonFiniteNumbersArray:()=>S,isNonNegativeFiniteNumber:()=>o,isNonNullObject:()=>y,isNullish:()=>p,isNumber:()=>r,isNumbersArray:()=>v,isPositiveFiniteNumber:()=>s,isSVGGraphicsElement:()=>E,isString:()=>a,isStringsArray:()=>_,isTruthy:()=>d,isWhitespace:()=>c}),e})()}};const e={};function r(n){const i=e[n];if(void 0!==i)return i.exports;const s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,r),s.exports}r.d=(t,e)=>{if(Array.isArray(e))for(var n=0;n<e.length;){var i=e[n++],s=e[n++];r.o(t,i)?0===s&&n++:0===s?Object.defineProperty(t,i,{enumerable:!0,value:e[n++]}):Object.defineProperty(t,i,{enumerable:!0,get:s})}else for(var i in e)r.o(e,i)&&!r.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};let n={};return(()=>{"use strict";function t(t){if(t.length>0)return t[0];throw new Error("Array is empty.")}function e(t){if(t.length>0)return t[t.length-1];throw new Error("Array is empty.")}function i(t){if(t.length<3)throw new Error("Array has less than 3 items.");if(t.length%2==0)throw new Error("Array has an even number of items.");let e=Math.floor(t.length/2);return[t[e-1],t[e],t[e+1]]}function s(t){if(t.length<4)throw new Error("Array has less than 4 items.");if(t.length%2!=0)throw new Error("Array has an odd number of items.");let e=Math.floor(t.length/2);return[t[e-2],t[e-1],t[e],t[e+1]]}function o(t){return t.length<2?[]:t.slice(0,-1).map((e,r)=>[t[r],t[r+1]])}r.r(n),r.d(n,{DownloadableFile:()=>w,EventfulSet:()=>v,FiniteStack:()=>E,KeyBinding:()=>d.KeyBinding,consecutivePairs:()=>o,containsFocus:()=>f,detectMac:()=>p,detectWindows:()=>m,first:()=>t,hasFocus:()=>l,isJSON:()=>a.isJSON,isJSONSerializable:()=>a.isJSONSerializable,isURL:()=>P,last:()=>e,middleFour:()=>s,middleThree:()=>i,removeWhitespace:()=>u,shuffled:()=>c,splitLines:()=>h});var a=r(854);function u(t){return[...t].filter(t=>!(0,a.isWhitespace)(t)).join("")}function h(t){return t.split(/\r\n|\r|\n/)}function c(t){return t.map(t=>({v:t,priority:Math.random()})).sort((t,e)=>t.priority-e.priority).map(({v:t})=>t)}function l(t){return t===document.activeElement}function f(t){return!!document.activeElement&&t.contains(document.activeElement)}var d=r(992);function m(){return-1!==navigator.userAgent.indexOf("Windows")}function p(){try{return window.navigator.platform.toLowerCase().includes("mac")}catch(t){return!1}}var y,g=function(t,e,r,n,i){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!i:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===n?i.call(t,r):i?i.value=r:e.set(t,r),r},b=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class w{constructor(t,e,r){y.set(this,void 0),this.name=null!=t?t:"Unnamed.txt",this.content=null!=e?e:"",g(this,y,null==r?void 0:r.type,"f")}get type(){return null!=b(this,y,"f")?b(this,y,"f"):this.content instanceof Blob?this.content.type:"text/plain"}set type(t){g(this,y,t,"f")}download(){let t=new File([this.content],this.name,{type:this.type}),e=URL.createObjectURL(t),r=document.createElement("a");r.href=e,r.download=t.name,document.body.appendChild(r),r.click(),r.remove(),URL.revokeObjectURL(e)}}y=new WeakMap;class v{constructor(){this.eventListeners={change:[]},this.underlyingSet=new Set}[Symbol.iterator](){return this.underlyingSet.values()}includes(t){return this.underlyingSet.has(t)}include(t){return this.includes(t)}addAll(t){let e=[...t];0!=e.length&&(e.every(t=>this.includes(t))||(e.forEach(t=>this.underlyingSet.add(t)),this.callEventListeners("change")))}removeAll(t){let e=[...t];0!=e.length&&(e.every(t=>!this.includes(t))||(e.forEach(t=>this.underlyingSet.delete(t)),this.callEventListeners("change")))}clear(){0!=this.underlyingSet.size&&(this.underlyingSet.clear(),this.callEventListeners("change"))}addEventListener(t,e){this.eventListeners[t].push(e)}callEventListeners(t){this.eventListeners[t].forEach(t=>t())}removeEventListener(t,e){this.eventListeners[t]=this.eventListeners[t].filter(t=>t!==e)}}var x,N,S,_,O=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class E{constructor(t){x.add(this),this.maxSize=t,N.set(this,[]),S.set(this,{change:[]})}get size(){return O(this,N,"f").length}isEmpty(){return 0==this.size}empty(){0!=this.size&&(function(t,e){if("function"==typeof e||!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");e.set(t,[])}(this,N),O(this,x,"m",_).call(this,"change"))}peek(){if(0==this.size)throw new Error("The stack is empty.");return O(this,N,"f")[O(this,N,"f").length-1]}push(t){O(this,N,"f").push(t),this.size>this.maxSize&&O(this,N,"f").shift(),O(this,x,"m",_).call(this,"change")}pop(){if(0==this.size)throw new Error("The stack is empty.");let t=O(this,N,"f").pop();return O(this,x,"m",_).call(this,"change"),t}addEventListener(t,e){O(this,S,"f")[t].push(e)}removeEventListener(t,e){O(this,S,"f")[t]=O(this,S,"f")[t].filter(t=>t!==e)}}function P(t){try{return new URL(t),!0}catch(t){return!1}}N=new WeakMap,S=new WeakMap,x=new WeakSet,_=function(t){O(this,S,"f")[t].forEach(t=>t())}})(),n})(),t.exports=e()},854(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){return"number"==typeof t}function n(t){return r(t)&&Number.isFinite(t)}function i(t){return r(t)&&!Number.isFinite(t)}function s(t){return n(t)&&t>0}function o(t){return n(t)&&t>=0}function a(t){return"string"==typeof t}function u(t){return""===t}function h(t){return a(t)&&!u(t)}function c(t){return!!a(t)&&0==t.trim().length}function l(t){if(!a(t))return!1;try{return JSON.parse(t),!0}catch{return!1}}function f(t){try{return JSON.stringify(t),!0}catch{return!1}}function d(t){return!!t}function m(t){return!t}function p(t){return null==t}function y(t){return"object"==typeof t&&null!==t}function g(t){return Array.isArray(t)}function b(t){return g(t)&&0==t.length}function w(t){return g(t)&&t.length>0}function v(t){return g(t)&&t.every(r)}function x(t){return v(t)&&t.length>0}function N(t){return g(t)&&t.every(n)}function S(t){return g(t)&&t.every(i)}function _(t){return g(t)&&t.every(a)}function O(t){return _(t)&&t.length>0}function E(t){return t instanceof SVGGraphicsElement}return t.r(e),t.d(e,{isArray:()=>g,isEmptyArray:()=>b,isEmptyString:()=>u,isFalsy:()=>m,isFiniteNumber:()=>n,isFiniteNumbersArray:()=>N,isJSON:()=>l,isJSONSerializable:()=>f,isNonEmptyArray:()=>w,isNonEmptyNumbersArray:()=>x,isNonEmptyString:()=>h,isNonEmptyStringsArray:()=>O,isNonFiniteNumber:()=>i,isNonFiniteNumbersArray:()=>S,isNonNegativeFiniteNumber:()=>o,isNonNullObject:()=>y,isNullish:()=>p,isNumber:()=>r,isNumbersArray:()=>v,isPositiveFiniteNumber:()=>s,isSVGGraphicsElement:()=>E,isString:()=>a,isStringsArray:()=>_,isTruthy:()=>d,isWhitespace:()=>c}),e})()}};const e={};function r(n){const i=e[n];if(void 0!==i)return i.exports;const s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,r),s.exports}r.d=(t,e)=>{if(Array.isArray(e))for(var n=0;n<e.length;){var i=e[n++],s=e[n++];r.o(t,i)?0===s&&n++:0===s?Object.defineProperty(t,i,{enumerable:!0,value:e[n++]}):Object.defineProperty(t,i,{enumerable:!0,get:s})}else for(var i in e)r.o(e,i)&&!r.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};let n={};return(()=>{"use strict";r.r(n),r.d(n,{Linkers:()=>p,Stems:()=>m,areConflicting:()=>u,areCrossing:()=>l,areEqual:()=>o,areKnotless:()=>c,areStacked:()=>a,basePairs:()=>v,deepCopy:()=>e,knotless:()=>f,mountainPlotTraversal:()=>y,parseDotBracket:()=>b,radializable:()=>d,sorted:()=>s});var t=r(854);function e(e){return(0,t.isNumbersArray)(e)?[...e]:e.map(t=>[...t])}var i=r(986);function s(t){let r=e(t);return r.forEach(i.sortNumbers),r.sort((t,e)=>t[0]-e[0]),r}function o(t,r){let n=e(t),s=e(r);return(0,i.sortNumbers)(n),(0,i.sortNumbers)(s),[0,1].every(t=>n[t]==s[t])}function a(t,e){let r=s([t,e]);return r[0][0]==r[1][0]-1&&r[0][1]==r[1][1]+1}function u(t,e){return(0,i.min)(t)==(0,i.min)(e)&&(0,i.max)(t)!=(0,i.max)(e)||(0,i.min)(t)!=(0,i.min)(e)&&(0,i.max)(t)==(0,i.max)(e)}function h(t){if(0==t.length)return[];let e=[];for(let r=0;r<(0,i.max)(t.flat());r++)e.push(void 0);return t.forEach(t=>{e[t[0]-1]=t[1],e[t[1]-1]=t[0]}),e}function c(t){let e=h(t),r=[],n=!1;return e.forEach((t,e)=>{let i=e+1;null==t||(i<t?r.push(i):i==t||r.pop()!=t&&(n=!0))}),!n}function l(t,e){return!c([t,e])}function f(t){let r=[],n=e(t);n.sort((t,e)=>Math.abs(t[0]-t[1])-Math.abs(e[0]-e[1]));let s=[];return n.forEach(t=>{let e=[t[0]-1,t[1]-1],n=(0,i.min)(e),o=(0,i.max)(e);if(!s[n]&&!s[o]){r.push(t);for(let t=n;t<=o;t++)s[t]=!0}}),r}function d(t){let r=e(t);r.sort(([t,e],[r,n])=>Math.abs(t-e)-Math.abs(r-n));let n=[],i=[];return r.forEach(([t,e])=>{t==e||null!=i[t-1]||null!=i[e-1]||(n.push([t,e]),i[t-1]=e,i[e-1]=t)}),f(n)}class m{constructor(...t){this.targetStructure=t}get(){let t=this.targetStructure[1];if(0==t.length)return[];let e=s(t),r=[],n=[];return e.forEach(t=>{let e=0==n.length?null:n[n.length-1];!e||a(e,t)?n.push(t):(r.push(n),n=[t])}),r.push(n),r}}class p{constructor(...t){this.targetStructure=t}get(){let t=new m(...this.targetStructure).get().flatMap(t=>[t.map(i.min),t.map(i.max)]);t.forEach(i.sortNumbers),t.sort((t,e)=>(0,i.min)(t)-(0,i.min)(e));let e=[],r=t.shift(),n=t.shift();for(;r&&n;){let s=[],o=(0,i.max)(r),a=(0,i.min)(n);for(let t=o;t<=a;t++)s.push(t);e.push(s),r=n,n=t.shift()}return e}}function y(...t){let e=t[0],r=t[1],n=h(r);if(!c(r))throw new Error("Pseudoknot(s) encountered.");let i=[],s=0;return e.forEach((t,e)=>{let r=e+1,o=n[e];null==o?i.push(s):r<o?(i.push(s),s++):(r==o||s--,i.push(s))}),i}var g=r(106);function b(t){t=(0,g.removeWhitespace)(t);let e={"()":[],"[]":[],"{}":[],"<>":[]};w.forEach(r=>{let[n,i]=r.split(""),o=[...t].map(t=>t===n?"(":t===i?")":".").join("");e[r]=function(t){let e=[],r=[];if([...t].forEach((t,n)=>{let i=n+1;if("."==t);else if("("==t)r.push(i);else if(")"==t){let t=r.pop();if("number"!=typeof t)throw new Error(`Unmatched downstream partner in dot-bracket notation at position: ${i}.`);e.push([t,i])}}),r.length>0)throw new Error(`Unmatched upstream partner in dot-bracket notation at position: ${r.pop()}.`);return s(e)}(o)});let r=()=>s(w.flatMap(t=>e[t]));return{[Symbol.iterator]:()=>r()[Symbol.iterator](),toArray:r,...e}}const w=["()","[]","{}","<>"];function v(t,e){return e.forEach(e=>{e.forEach(e=>{if(e<1)throw new Error("Sequence positions must be positive.");if(e>t.length)throw new Error("Position out of sequence range.")})}),e.map(e=>[t[e[0]-1],t[e[1]-1]])}})(),n})(),t.exports=e()},106(t){var e;e=()=>(()=>{var t={992(t){var e;e=()=>(()=>{"use strict";const t={d:(e,r)=>{if(Array.isArray(r))for(var n=0;n<r.length;){var i=r[n++],s=r[n++];t.o(e,i)?0===s&&n++:0===s?Object.defineProperty(e,i,{enumerable:!0,value:r[n++]}):Object.defineProperty(e,i,{enumerable:!0,get:s})}else for(var i in r)t.o(r,i)&&!t.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:r[i]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}};let e={};t.r(e),t.d(e,{KeyBinding:()=>p});var r,n,i,s,o,a,u,h,c,l,f,d=function(t,e,r,n,i){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!i:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===n?i.call(t,r):i?i.value=r:e.set(t,r),r},m=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class p{constructor(t,e,a){r.add(this),this.key=t,n.set(this,void 0),i.set(this,void 0),s.set(this,void 0),o.set(this,void 0),d(this,n,e,"f"),d(this,i,t=>m(this,r,"m",l).call(this,t),"f"),d(this,s,a,"f")}get owner(){return m(this,o,"f")}set owner(t){var e;null===(e=m(this,o,"f"))||void 0===e||e.removeEventListener("keydown",m(this,i,"f")),null==t||t.addEventListener("keydown",m(this,i,"f"),{passive:!1}),d(this,o,t,"f")}}return n=new WeakMap,i=new WeakMap,s=new WeakMap,o=new WeakMap,r=new WeakSet,a=function(){var t,e;return null!==(e=null===(t=m(this,s,"f"))||void 0===t?void 0:t.altKey)&&void 0!==e&&e},u=function(){var t,e;return null!==(e=null===(t=m(this,s,"f"))||void 0===t?void 0:t.ctrlKey)&&void 0!==e&&e},h=function(){var t,e;return null!==(e=null===(t=m(this,s,"f"))||void 0===t?void 0:t.metaKey)&&void 0!==e&&e},c=function(){var t,e;return null!==(e=null===(t=m(this,s,"f"))||void 0===t?void 0:t.shiftKey)&&void 0!==e&&e},l=function(t){this.owner&&this.owner===document.activeElement&&`Key${this.key}`.toUpperCase()===t.code.toUpperCase()&&t.altKey===m(this,r,"a",a)&&t.ctrlKey===m(this,r,"a",u)&&t.metaKey===m(this,r,"a",h)&&t.shiftKey===m(this,r,"a",c)&&m(this,r,"m",f).call(this,t)},f=function(t){t.preventDefault(),m(this,n,"f").call(this)},e})(),t.exports=e()},854(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){return"number"==typeof t}function n(t){return r(t)&&Number.isFinite(t)}function i(t){return r(t)&&!Number.isFinite(t)}function s(t){return n(t)&&t>0}function o(t){return n(t)&&t>=0}function a(t){return"string"==typeof t}function u(t){return""===t}function h(t){return a(t)&&!u(t)}function c(t){return!!a(t)&&0==t.trim().length}function l(t){if(!a(t))return!1;try{return JSON.parse(t),!0}catch{return!1}}function f(t){try{return JSON.stringify(t),!0}catch{return!1}}function d(t){return!!t}function m(t){return!t}function p(t){return null==t}function y(t){return"object"==typeof t&&null!==t}function g(t){return Array.isArray(t)}function b(t){return g(t)&&0==t.length}function w(t){return g(t)&&t.length>0}function v(t){return g(t)&&t.every(r)}function x(t){return v(t)&&t.length>0}function N(t){return g(t)&&t.every(n)}function S(t){return g(t)&&t.every(i)}function _(t){return g(t)&&t.every(a)}function O(t){return _(t)&&t.length>0}function E(t){return t instanceof SVGGraphicsElement}return t.r(e),t.d(e,{isArray:()=>g,isEmptyArray:()=>b,isEmptyString:()=>u,isFalsy:()=>m,isFiniteNumber:()=>n,isFiniteNumbersArray:()=>N,isJSON:()=>l,isJSONSerializable:()=>f,isNonEmptyArray:()=>w,isNonEmptyNumbersArray:()=>x,isNonEmptyString:()=>h,isNonEmptyStringsArray:()=>O,isNonFiniteNumber:()=>i,isNonFiniteNumbersArray:()=>S,isNonNegativeFiniteNumber:()=>o,isNonNullObject:()=>y,isNullish:()=>p,isNumber:()=>r,isNumbersArray:()=>v,isPositiveFiniteNumber:()=>s,isSVGGraphicsElement:()=>E,isString:()=>a,isStringsArray:()=>_,isTruthy:()=>d,isWhitespace:()=>c}),e})()}};const e={};function r(n){const i=e[n];if(void 0!==i)return i.exports;const s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,r),s.exports}r.d=(t,e)=>{if(Array.isArray(e))for(var n=0;n<e.length;){var i=e[n++],s=e[n++];r.o(t,i)?0===s&&n++:0===s?Object.defineProperty(t,i,{enumerable:!0,value:e[n++]}):Object.defineProperty(t,i,{enumerable:!0,get:s})}else for(var i in e)r.o(e,i)&&!r.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};let n={};return(()=>{"use strict";function t(t){if(t.length>0)return t[0];throw new Error("Array is empty.")}function e(t){if(t.length>0)return t[t.length-1];throw new Error("Array is empty.")}function i(t){if(t.length<3)throw new Error("Array has less than 3 items.");if(t.length%2==0)throw new Error("Array has an even number of items.");let e=Math.floor(t.length/2);return[t[e-1],t[e],t[e+1]]}function s(t){if(t.length<4)throw new Error("Array has less than 4 items.");if(t.length%2!=0)throw new Error("Array has an odd number of items.");let e=Math.floor(t.length/2);return[t[e-2],t[e-1],t[e],t[e+1]]}function o(t){return t.length<2?[]:t.slice(0,-1).map((e,r)=>[t[r],t[r+1]])}r.r(n),r.d(n,{DownloadableFile:()=>w,EventfulSet:()=>v,FiniteStack:()=>E,KeyBinding:()=>d.KeyBinding,consecutivePairs:()=>o,containsFocus:()=>f,detectMac:()=>p,detectWindows:()=>m,first:()=>t,hasFocus:()=>l,isJSON:()=>a.isJSON,isJSONSerializable:()=>a.isJSONSerializable,isURL:()=>P,last:()=>e,middleFour:()=>s,middleThree:()=>i,removeWhitespace:()=>u,shuffled:()=>c,splitLines:()=>h});var a=r(854);function u(t){return[...t].filter(t=>!(0,a.isWhitespace)(t)).join("")}function h(t){return t.split(/\r\n|\r|\n/)}function c(t){return t.map(t=>({v:t,priority:Math.random()})).sort((t,e)=>t.priority-e.priority).map(({v:t})=>t)}function l(t){return t===document.activeElement}function f(t){return!!document.activeElement&&t.contains(document.activeElement)}var d=r(992);function m(){return-1!==navigator.userAgent.indexOf("Windows")}function p(){try{return window.navigator.platform.toLowerCase().includes("mac")}catch(t){return!1}}var y,g=function(t,e,r,n,i){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!i:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===n?i.call(t,r):i?i.value=r:e.set(t,r),r},b=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class w{constructor(t,e,r){y.set(this,void 0),this.name=null!=t?t:"Unnamed.txt",this.content=null!=e?e:"",g(this,y,null==r?void 0:r.type,"f")}get type(){return null!=b(this,y,"f")?b(this,y,"f"):this.content instanceof Blob?this.content.type:"text/plain"}set type(t){g(this,y,t,"f")}download(){let t=new File([this.content],this.name,{type:this.type}),e=URL.createObjectURL(t),r=document.createElement("a");r.href=e,r.download=t.name,document.body.appendChild(r),r.click(),r.remove(),URL.revokeObjectURL(e)}}y=new WeakMap;class v{constructor(){this.eventListeners={change:[]},this.underlyingSet=new Set}[Symbol.iterator](){return this.underlyingSet.values()}includes(t){return this.underlyingSet.has(t)}include(t){return this.includes(t)}addAll(t){let e=[...t];0!=e.length&&(e.every(t=>this.includes(t))||(e.forEach(t=>this.underlyingSet.add(t)),this.callEventListeners("change")))}removeAll(t){let e=[...t];0!=e.length&&(e.every(t=>!this.includes(t))||(e.forEach(t=>this.underlyingSet.delete(t)),this.callEventListeners("change")))}clear(){0!=this.underlyingSet.size&&(this.underlyingSet.clear(),this.callEventListeners("change"))}addEventListener(t,e){this.eventListeners[t].push(e)}callEventListeners(t){this.eventListeners[t].forEach(t=>t())}removeEventListener(t,e){this.eventListeners[t]=this.eventListeners[t].filter(t=>t!==e)}}var x,N,S,_,O=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class E{constructor(t){x.add(this),this.maxSize=t,N.set(this,[]),S.set(this,{change:[]})}get size(){return O(this,N,"f").length}isEmpty(){return 0==this.size}empty(){0!=this.size&&(function(t,e){if("function"==typeof e||!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");e.set(t,[])}(this,N),O(this,x,"m",_).call(this,"change"))}peek(){if(0==this.size)throw new Error("The stack is empty.");return O(this,N,"f")[O(this,N,"f").length-1]}push(t){O(this,N,"f").push(t),this.size>this.maxSize&&O(this,N,"f").shift(),O(this,x,"m",_).call(this,"change")}pop(){if(0==this.size)throw new Error("The stack is empty.");let t=O(this,N,"f").pop();return O(this,x,"m",_).call(this,"change"),t}addEventListener(t,e){O(this,S,"f")[t].push(e)}removeEventListener(t,e){O(this,S,"f")[t]=O(this,S,"f")[t].filter(t=>t!==e)}}function P(t){try{return new URL(t),!0}catch(t){return!1}}N=new WeakMap,S=new WeakMap,x=new WeakSet,_=function(t){O(this,S,"f")[t].forEach(t=>t())}})(),n})(),t.exports=e()}};const e={};function r(n){const i=e[n];if(void 0!==i)return i.exports;const s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,r),s.exports}r.d=(t,e)=>{if(Array.isArray(e))for(var n=0;n<e.length;){var i=e[n++],s=e[n++];r.o(t,i)?0===s&&n++:0===s?Object.defineProperty(t,i,{enumerable:!0,value:e[n++]}):Object.defineProperty(t,i,{enumerable:!0,get:s})}else for(var i in e)r.o(e,i)&&!r.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};let n={};return(()=>{"use strict";function t(t,e){return t[0]===e[0]&&t[1]===e[1]||t[0]===e[1]&&t[1]===e[0]}function e(t,e){if(!e.includes(t))throw new Error("The given base is not present in the provided base-pair.");return t===e[0]?e[1]:e[0]}r.r(n),r.d(n,{FirstPairedBase:()=>s,LastPairedBase:()=>a,LeadingDanglingBases:()=>u,Linkers:()=>f,PositionPairs:()=>i,Stems:()=>l,TrailingDanglingBases:()=>h,antiParallelPairs:()=>v,areEqual:()=>t,consecutivePairs:()=>b,knotless:()=>d,missing:()=>x,mountainPlotTraversal:()=>p,other:()=>e,parallelPairs:()=>w,parseDotBracket:()=>y,radializable:()=>m});class i{constructor(...t){this.targetStructure=t}get(){let t=this.targetStructure[0];return this.targetStructure[1].map(e=>[t.indexOf(e[0])+1,t.indexOf(e[1])+1])}}class s{constructor(...t){this.targetStructure=t}get(){let t=this.targetStructure[0],e=this.targetStructure[1];if(0==e.length)throw new Error("There are no paired bases.");let r=e.flat(),n=t.findIndex(t=>r.includes(t));if(n<0)throw new Error("No paired bases present in sequence.");return t[n]}}var o=r(986);class a{constructor(...t){this.targetStructure=t}get(){let t=this.targetStructure[0],e=this.targetStructure[1];if(0==e.length)throw new Error("There are no paired bases.");let r=e.flat().map(e=>t.indexOf(e));if((0,o.max)(r)<0)throw new Error("No paired bases present in sequence.");return t[(0,o.max)(r)]}}class u{constructor(...t){this.targetStructure=t}get(){let t=this.targetStructure[0];if(0==this.targetStructure[1].length)throw new Error("There are no paired bases.");let e=new s(...this.targetStructure).get(),r=t.indexOf(e);if(r<0)throw new Error("No paired bases present in sequence.");return t.slice(0,r)}}class h{constructor(...t){this.targetStructure=t}get(){let t=this.targetStructure[0];if(0==this.targetStructure[1].length)throw new Error("There are no paired bases.");let e=new a(...this.targetStructure).get(),r=t.indexOf(e);if(r<0)throw new Error("No paired bases present in sequence.");return t.slice(r+1)}}var c=r(369);class l{constructor(...t){this.targetStructure=t}get(){let t=this.targetStructure[0],e=new i(...this.targetStructure).get();return new c.Stems(t,e).get().map(e=>e.map(e=>[t[e[0]-1],t[e[1]-1]]))}}class f{constructor(...t){this.targetStructure=t}get(){let t=this.targetStructure[0],e=new i(...this.targetStructure).get();return new c.Linkers(t,e).get().map(e=>e.map(e=>t[e-1]))}}function d(...t){let[e,r]=t,n=new i(...t).get();(0,c.areKnotless)(n)||(n=(0,c.knotless)(n));let s=n.map(t=>[e[t[0]-1],e[t[1]-1]]);return[[...e],s]}function m(...t){let[e,r]=t,n=new i(...t).get();return[[...e],(0,c.radializable)(n).map(([t,r])=>[e[t-1],e[r-1]])]}function p(...t){let[e,r]=t,n=new i(...t).get();return(0,c.mountainPlotTraversal)(e,n)}function y(t,e){let r=(0,c.parseDotBracket)(e),n=()=>(0,c.basePairs)(t,r.toArray());return{[Symbol.iterator]:()=>n()[Symbol.iterator](),toArray:n,"()":(0,c.basePairs)(t,r["()"]),"[]":(0,c.basePairs)(t,r["[]"]),"{}":(0,c.basePairs)(t,r["{}"]),"<>":(0,c.basePairs)(t,r["<>"])}}var g=r(106);function b(t){return(0,g.consecutivePairs)(t)}function w(t){let e=[],r=Math.floor(t.length/2)-1,n=Math.ceil(t.length/2);for(let i=0;i<=r;i++){let r=t[i],s=t[n+i];e.push([r,s])}return e}function v(t){let e=[];for(let r=0;r<Math.floor(t.length/2);r++){let n=t[r],i=t[t.length-r-1];e.push([n,i])}return e}function x(e,r){return r.filter(r=>!e.find(e=>t(r,e))).map(t=>[...t])}})(),n})(),t.exports=e()},801(t){var e;e=()=>(()=>{var t={726(t){var e;e=()=>(()=>{var t={725(t){t.exports=(()=>{var t={986:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){var e=0;return t.forEach(function(t){return e+=t}),e}function n(t){return r(t)/t.length}function i(t){t.sort(function(t,e){return t-e})}t.r(e),t.d(e,{areWithin:()=>f,average:()=>n,degrees:()=>p,isBetweenExclusive:()=>l,isBetweenInclusive:()=>c,max:()=>h,mean:()=>n,median:()=>a,min:()=>u,radians:()=>y,sortNumbers:()=>i,sortNumbersAscending:()=>i,sortNumbersDescending:()=>d,sortedNumbers:()=>o,sortedNumbersAscending:()=>o,sortedNumbersDescending:()=>m,sum:()=>r});var s=function(t,e,r){if(r||2===arguments.length)for(var n,i=0,s=e.length;i<s;i++)!n&&i in e||(n||(n=Array.prototype.slice.call(e,0,i)),n[i]=e[i]);return t.concat(n||Array.prototype.slice.call(e))};function o(t){var e=s([],t,!0);return i(e),e}function a(t){if(0==t.length)return NaN;var e=o(t);if(e.length%2!=0)return e[Math.floor(e.length/2)];var r=e.length/2,i=r-1;return n([e[r],e[i]])}function u(t){if(0==t.length)return 1/0;var e=t[0];return t.slice(1).forEach(function(t){e=Math.min(e,t)}),e}function h(t){if(0==t.length)return-1/0;var e=t[0];return t.slice(1).forEach(function(t){e=Math.max(e,t)}),e}function c(t,e,r){return t>=e&&t<=r}function l(t,e,r){return t>e&&t<r}function f(t,e,r){return Math.abs(t-e)<=r}function d(t){i(t),t.reverse()}function m(t){var e=o(t);return e.reverse(),e}function p(t){return t*(180/Math.PI)}function y(t){return t*(Math.PI/180)}return e})()},854:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){return"number"==typeof t}function n(t){return r(t)&&Number.isFinite(t)}function i(t){return r(t)&&!Number.isFinite(t)}function s(t){return n(t)&&t>0}function o(t){return n(t)&&t>=0}function a(t){return"string"==typeof t}function u(t){return null==t}function h(t){return"object"==typeof t&&null!==t}function c(t){return Array.isArray(t)}return t.r(e),t.d(e,{isArray:()=>c,isFiniteNumber:()=>n,isNonFiniteNumber:()=>i,isNonNegativeFiniteNumber:()=>o,isNonNullObject:()=>h,isNullish:()=>u,isNumber:()=>r,isPositiveFiniteNumber:()=>s,isString:()=>a}),e})()},30:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){return Math.pow(Math.pow(t.x,2)+Math.pow(t.y,2),.5)}function n(t){return Math.atan2(t.y,t.x)}return t.r(e),t.d(e,{direction:()=>n,magnitude:()=>r}),e})()}},e={};function r(n){var i=e[n];if(void 0!==i)return i.exports;var s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,r),s.exports}r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var n={};return(()=>{"use strict";r.r(n),r.d(n,{areWithin:()=>a,centroid:()=>d,deepCopy:()=>s,direction:()=>l,displaced:()=>h,displacement:()=>u,distance:()=>o,isFinitePoint:()=>i,isPoint:()=>e,midpoint:()=>m});var t=r(854);function e(e){return(0,t.isNonNullObject)(e)&&(0,t.isNumber)(e.x)&&(0,t.isNumber)(e.y)}function i(r){return e(r)&&(0,t.isFiniteNumber)(r.x)&&(0,t.isFiniteNumber)(r.y)}function s(t){return{x:t.x,y:t.y}}function o(t,e){var r=e.x-t.x,n=e.y-t.y;return Math.pow(Math.pow(r,2)+Math.pow(n,2),.5)}function a(t,e,r){return o(t,e)<=r}function u(t,e){return{x:e.x-t.x,y:e.y-t.y}}function h(t,e){return{x:t.x+e.x,y:t.y+e.y}}var c=r(30);function l(t,e){return(0,c.direction)(u(t,e))}var f=r(986);function d(t){return{x:(0,f.mean)(t.map(function(t){return t.x})),y:(0,f.mean)(t.map(function(t){return t.y}))}}function m(t,e){return d([t,e])}})(),n})()},854(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){return"number"==typeof t}function n(t){return r(t)&&Number.isFinite(t)}function i(t){return r(t)&&!Number.isFinite(t)}function s(t){return n(t)&&t>0}function o(t){return n(t)&&t>=0}function a(t){return"string"==typeof t}function u(t){return""===t}function h(t){return a(t)&&!u(t)}function c(t){return!!a(t)&&0==t.trim().length}function l(t){if(!a(t))return!1;try{return JSON.parse(t),!0}catch{return!1}}function f(t){try{return JSON.stringify(t),!0}catch{return!1}}function d(t){return!!t}function m(t){return!t}function p(t){return null==t}function y(t){return"object"==typeof t&&null!==t}function g(t){return Array.isArray(t)}function b(t){return g(t)&&0==t.length}function w(t){return g(t)&&t.length>0}function v(t){return g(t)&&t.every(r)}function x(t){return v(t)&&t.length>0}function N(t){return g(t)&&t.every(n)}function S(t){return g(t)&&t.every(i)}function _(t){return g(t)&&t.every(a)}function O(t){return _(t)&&t.length>0}function E(t){return t instanceof SVGGraphicsElement}return t.r(e),t.d(e,{isArray:()=>g,isEmptyArray:()=>b,isEmptyString:()=>u,isFalsy:()=>m,isFiniteNumber:()=>n,isFiniteNumbersArray:()=>N,isJSON:()=>l,isJSONSerializable:()=>f,isNonEmptyArray:()=>w,isNonEmptyNumbersArray:()=>x,isNonEmptyString:()=>h,isNonEmptyStringsArray:()=>O,isNonFiniteNumber:()=>i,isNonFiniteNumbersArray:()=>S,isNonNegativeFiniteNumber:()=>o,isNonNullObject:()=>y,isNullish:()=>p,isNumber:()=>r,isNumbersArray:()=>v,isPositiveFiniteNumber:()=>s,isSVGGraphicsElement:()=>E,isString:()=>a,isStringsArray:()=>_,isTruthy:()=>d,isWhitespace:()=>c}),e})()}};const e={};function r(n){const i=e[n];if(void 0!==i)return i.exports;const s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,r),s.exports}r.d=(t,e)=>{if(Array.isArray(e))for(var n=0;n<e.length;){var i=e[n++],s=e[n++];r.o(t,i)?0===s&&n++:0===s?Object.defineProperty(t,i,{enumerable:!0,value:e[n++]}):Object.defineProperty(t,i,{enumerable:!0,get:s})}else for(var i in e)r.o(e,i)&&!r.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};let n={};return(()=>{"use strict";r.r(n),r.d(n,{AbstractPath:()=>s,CoordinateSystem:()=>y,HorizontalClientScaling:()=>b,InnerXML:()=>_,OuterXML:()=>P,Path:()=>i,Scaling:()=>g,VerticalClientScaling:()=>w,assignUUID:()=>p,bringToFront:()=>v,drawOnCanvas:()=>j,isSVGGraphicsElement:()=>M,isSVGGraphicsElementsArray:()=>T,sendToBack:()=>x,setAttributes:()=>h});var t,e=r(725);class i{constructor(t){this.domNode=t}closestPoint(t){let r=this.domNode.getTotalLength(),n=[];for(let i=0;i<=16;i++){let s=i/16*r;n.push([s,(0,e.distance)(t,this.domNode.getPointAtLength(s))])}n.sort((t,e)=>t[1]-e[1]);let i=n[0],s=i[0]-r/16,o=i[0]+r/16;s=Math.max(0,s),o=Math.min(r,o);for(let r=0;r<20;r++){let r=(o-s)/3;(0,e.distance)(t,this.domNode.getPointAtLength(s))<(0,e.distance)(t,this.domNode.getPointAtLength(o))?o-=r:s+=r}let a=(s+o)/2,u=this.domNode.getPointAtLength(a);return{x:u.x,y:u.y,length:a}}}class s{constructor(e){t.set(this,void 0),function(t,e,r){if("function"==typeof e||!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");e.set(t,r)}(this,t,e)}closestPoint(e){return document.body.contains(a)||document.body.append(a),u.setAttribute("d",function(t,e){if("function"==typeof e||!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return e.get(t)}(this,t)),new i(u).closestPoint(e)}}t=new WeakMap;const o=document.createElementNS("http://www.w3.org/2000/svg","svg");o.setAttribute("viewBox","0 0 100 100"),o.setAttribute("width","100"),o.setAttribute("height","100");const a=document.createElement("div");a.append(o),a.style.height="0px",a.style.position="fixed",document.body.append(a);const u=document.createElementNS("http://www.w3.org/2000/svg","path");function h(t,e){for(let[r,n]of Object.entries(e))t.setAttribute(r,n)}u.setAttribute("stroke","black"),u.setAttribute("stroke-width","1"),o.append(u);const c={randomUUID:"undefined"!=typeof crypto&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};let l;const f=new Uint8Array(16),d=[];for(let t=0;t<256;++t)d.push((t+256).toString(16).slice(1));const m=function(t,e,r){return!c.randomUUID||e||t?function(t,e,r){const n=(t=t||{}).random??t.rng?.()??function(){if(!l){if("undefined"==typeof crypto||!crypto.getRandomValues)throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");l=crypto.getRandomValues.bind(crypto)}return l(f)}();if(n.length<16)throw new Error("Random bytes length must be >= 16");if(n[6]=15&n[6]|64,n[8]=63&n[8]|128,e){if((r=r||0)<0||r+16>e.length)throw new RangeError(`UUID byte range ${r}:${r+15} is out of buffer bounds`);for(let t=0;t<16;++t)e[r+t]=n[t];return e}return function(t,e=0){return(d[t[e+0]]+d[t[e+1]]+d[t[e+2]]+d[t[e+3]]+"-"+d[t[e+4]]+d[t[e+5]]+"-"+d[t[e+6]]+d[t[e+7]]+"-"+d[t[e+8]]+d[t[e+9]]+"-"+d[t[e+10]]+d[t[e+11]]+d[t[e+12]]+d[t[e+13]]+d[t[e+14]]+d[t[e+15]]).toLowerCase()}(n)}(t,e,r):c.randomUUID()};function p(t){t.id="uuid-"+m()}class y{constructor(t){this.targetSVGDoc=t}get width(){return this.targetSVGDoc.viewBox.baseVal.width}get height(){return this.targetSVGDoc.viewBox.baseVal.height}get minX(){return this.targetSVGDoc.viewBox.baseVal.x}get maxX(){return this.minX+this.width}get minY(){return this.targetSVGDoc.viewBox.baseVal.y}get maxY(){return this.minY+this.height}get horizontalScaling(){return this.targetSVGDoc.width.baseVal.value/this.width}get verticalScaling(){return this.targetSVGDoc.height.baseVal.value/this.height}setScaling(t){this.targetSVGDoc.setAttribute("width",""+t*this.width),this.targetSVGDoc.setAttribute("height",""+t*this.height)}get clientWidth(){return this.targetSVGDoc.getBoundingClientRect().width}get clientHeight(){return this.targetSVGDoc.getBoundingClientRect().height}get horizontalClientScaling(){return this.clientWidth/this.width}get verticalClientScaling(){return this.clientHeight/this.height}get minClientX(){return this.targetSVGDoc.getBoundingClientRect().x}get minClientY(){return this.targetSVGDoc.getBoundingClientRect().y}fromClientX(t){return this.minX+(t-this.minClientX)/this.horizontalClientScaling}fromClientY(t){return this.minY+(t-this.minClientY)/this.verticalClientScaling}fromClientCoordinates(t,e){return[this.fromClientX(t),this.fromClientY(e)]}fromClientPoint(t){return{x:this.fromClientX(t.x),y:this.fromClientY(t.y)}}toClientX(t){return this.minClientX+this.horizontalClientScaling*(t-this.minX)}toClientY(t){return this.minClientY+this.verticalClientScaling*(t-this.minY)}toClientCoordinates(t,e){return[this.toClientX(t),this.toClientY(e)]}toClientPoint(t){return{x:this.toClientX(t.x),y:this.toClientY(t.y)}}}class g{constructor(t){this.targetSVGDoc=t}set(t){let e=this.targetSVGDoc.viewBox.baseVal;this.targetSVGDoc.setAttribute("width",t*e.width+"px"),this.targetSVGDoc.setAttribute("height",t*e.height+"px")}}class b{constructor(t){this.targetSVGDoc=t}get(){let t=this.targetSVGDoc.getBoundingClientRect(),e=this.targetSVGDoc.viewBox.baseVal;return t.width/e.width}}class w{constructor(t){this.targetSVGDoc=t}get(){let t=this.targetSVGDoc.getBoundingClientRect(),e=this.targetSVGDoc.viewBox.baseVal;return t.height/e.height}}function v(t){let e=t.parentNode;e&&e.appendChild(t)}function x(t){let e=t.parentNode;e&&e.prepend(t)}var N,S=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class _{constructor(t){N.set(this,void 0),function(t,e,r){if("function"==typeof e||!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");e.set(t,r)}(this,N,t)}toString(){return S(this,N,"f").innerHTML}set(t){S(this,N,"f").innerHTML=t}}N=new WeakMap;var O,E=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class P{constructor(t){O.set(this,void 0),function(t,e,r){if("function"==typeof e||!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");e.set(t,r)}(this,O,t)}toString(){return E(this,O,"f").outerHTML}set(t){let e=document.createElementNS("http://www.w3.org/2000/svg","svg");if(e.style.height="0px",document.body.append(e),e.innerHTML=t,!e.firstElementChild)throw new Error("Outer XML must encode an SVG element.");if(e.childNodes.length>1)throw new Error("Outer XML cannot encode multiple DOM nodes.");if(e.firstElementChild.tagName.toLowerCase()!=E(this,O,"f").tagName.toLowerCase())throw new Error("Outer XML must specify an SVG element with the same tag name as the target SVG element.");[...E(this,O,"f").attributes].forEach(t=>E(this,O,"f").removeAttribute(t.name)),[...e.firstElementChild.attributes].forEach(t=>E(this,O,"f").setAttribute(t.name,t.value)),E(this,O,"f").innerHTML=e.firstElementChild.innerHTML,e.remove()}}function M(t){return t instanceof SVGGraphicsElement}O=new WeakMap;var A=r(854);function T(t){return(0,A.isArray)(t)&&t.every(M)}async function j(t){let e=document.createElement("canvas");e.style.position="fixed",e.style.display="none",e.style.pointerEvents="none",document.body.append(e),e.width=t.width.baseVal.value,e.height=t.height.baseVal.value;let r=e.getContext("2d");if(!r)throw new Error("Unable to get canvas context.");let n=(new XMLSerializer).serializeToString(t),i=new Image;return i.src="data:image/svg+xml;charset=utf-8,"+encodeURIComponent(n),await i.decode(),r.drawImage(i,0,0,t.width.baseVal.value,t.height.baseVal.value),e.remove(),e.style.position="",e.style.display="",e.style.pointerEvents="",e}})(),n})(),t.exports=e()},986(t){t.exports=(()=>{"use strict";const t={d:(e,r)=>{if(Array.isArray(r))for(var n=0;n<r.length;){var i=r[n++],s=r[n++];t.o(e,i)?0===s&&n++:0===s?Object.defineProperty(e,i,{enumerable:!0,value:r[n++]}):Object.defineProperty(e,i,{enumerable:!0,get:s})}else for(var i in r)t.o(r,i)&&!t.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:r[i]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}};let e={};function r(t,e){return Math.abs(t-e)}function n(t){var e=0;return t.forEach(function(t){return e+=t}),e}function i(t){return n(t)/t.length}function s(t){t.sort(function(t,e){return t-e})}t.r(e),t.d(e,{areWithin:()=>m,average:()=>i,clamp:()=>d,degrees:()=>b,distance:()=>r,flipAway:()=>x,isBetween:()=>l,isBetweenExclusive:()=>f,isBetweenInclusive:()=>l,max:()=>c,mean:()=>i,median:()=>u,min:()=>h,normalizeAngle:()=>v,radians:()=>w,round:()=>g,sortNumbers:()=>s,sortNumbersAscending:()=>s,sortNumbersDescending:()=>p,sortedNumbers:()=>a,sortedNumbersAscending:()=>a,sortedNumbersDescending:()=>y,sum:()=>n});var o=function(t,e,r){if(r||2===arguments.length)for(var n,i=0,s=e.length;i<s;i++)!n&&i in e||(n||(n=Array.prototype.slice.call(e,0,i)),n[i]=e[i]);return t.concat(n||Array.prototype.slice.call(e))};function a(t){var e=o([],t,!0);return s(e),e}function u(t){if(0==t.length)return NaN;var e=a(t);if(e.length%2!=0)return e[Math.floor(e.length/2)];var r=e.length/2,n=r-1;return i([e[r],e[n]])}function h(t){if(0==t.length)return 1/0;var e=t[0];return t.slice(1).forEach(function(t){e=Math.min(e,t)}),e}function c(t){if(0==t.length)return-1/0;var e=t[0];return t.slice(1).forEach(function(t){e=Math.max(e,t)}),e}function l(t,e,r){return t>=e&&t<=r}function f(t,e,r){return t>e&&t<r}function d(t,e,r){return t<e?e:t>r?r:t}function m(t,e,r){return Math.abs(t-e)<=r}function p(t){s(t),t.reverse()}function y(t){var e=a(t);return e.reverse(),e}function g(t,e){return Number.parseFloat(t.toFixed(null!=e?e:0))}function b(t){return t*(180/Math.PI)}function w(t){return t*(Math.PI/180)}function v(t,e){void 0===e&&(e=-Math.PI);var r=t-e;return e+((r%=2*Math.PI)>=0?r:r+2*Math.PI)}function x(t,e){var r=(e=v(e,t))-t;return(r<Math.PI/2||r>3*Math.PI/2)&&(t+=Math.PI),t}return e})()},456(t){var e;e=()=>(()=>{var t={986(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){var e=0;return t.forEach(function(t){return e+=t}),e}function n(t){return r(t)/t.length}function i(t){t.sort(function(t,e){return t-e})}t.r(e),t.d(e,{areWithin:()=>d,average:()=>n,clamp:()=>f,degrees:()=>g,flipAway:()=>v,isBetween:()=>c,isBetweenExclusive:()=>l,isBetweenInclusive:()=>c,max:()=>h,mean:()=>n,median:()=>a,min:()=>u,normalizeAngle:()=>w,radians:()=>b,round:()=>y,sortNumbers:()=>i,sortNumbersAscending:()=>i,sortNumbersDescending:()=>m,sortedNumbers:()=>o,sortedNumbersAscending:()=>o,sortedNumbersDescending:()=>p,sum:()=>r});var s=function(t,e,r){if(r||2===arguments.length)for(var n,i=0,s=e.length;i<s;i++)!n&&i in e||(n||(n=Array.prototype.slice.call(e,0,i)),n[i]=e[i]);return t.concat(n||Array.prototype.slice.call(e))};function o(t){var e=s([],t,!0);return i(e),e}function a(t){if(0==t.length)return NaN;var e=o(t);if(e.length%2!=0)return e[Math.floor(e.length/2)];var r=e.length/2,i=r-1;return n([e[r],e[i]])}function u(t){if(0==t.length)return 1/0;var e=t[0];return t.slice(1).forEach(function(t){e=Math.min(e,t)}),e}function h(t){if(0==t.length)return-1/0;var e=t[0];return t.slice(1).forEach(function(t){e=Math.max(e,t)}),e}function c(t,e,r){return t>=e&&t<=r}function l(t,e,r){return t>e&&t<r}function f(t,e,r){return t<e?e:t>r?r:t}function d(t,e,r){return Math.abs(t-e)<=r}function m(t){i(t),t.reverse()}function p(t){var e=o(t);return e.reverse(),e}function y(t,e){return Number.parseFloat(t.toFixed(null!=e?e:0))}function g(t){return t*(180/Math.PI)}function b(t){return t*(Math.PI/180)}function w(t,e){void 0===e&&(e=-Math.PI);var r=t-e;return e+((r%=2*Math.PI)>=0?r:r+2*Math.PI)}function v(t,e){var r=(e=w(e,t))-t;return(r<Math.PI/2||r>3*Math.PI/2)&&(t+=Math.PI),t}return e})()},854(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){return"number"==typeof t}function n(t){return r(t)&&Number.isFinite(t)}function i(t){return r(t)&&!Number.isFinite(t)}function s(t){return n(t)&&t>0}function o(t){return n(t)&&t>=0}function a(t){return"string"==typeof t}function u(t){return""===t}function h(t){return a(t)&&!u(t)}function c(t){return!!a(t)&&0==t.trim().length}function l(t){if(!a(t))return!1;try{return JSON.parse(t),!0}catch{return!1}}function f(t){try{return JSON.stringify(t),!0}catch{return!1}}function d(t){return!!t}function m(t){return!t}function p(t){return null==t}function y(t){return"object"==typeof t&&null!==t}function g(t){return Array.isArray(t)}function b(t){return g(t)&&0==t.length}function w(t){return g(t)&&t.length>0}function v(t){return g(t)&&t.every(r)}function x(t){return v(t)&&t.length>0}function N(t){return g(t)&&t.every(n)}function S(t){return g(t)&&t.every(i)}function _(t){return g(t)&&t.every(a)}function O(t){return _(t)&&t.length>0}function E(t){return t instanceof SVGGraphicsElement}return t.r(e),t.d(e,{isArray:()=>g,isEmptyArray:()=>b,isEmptyString:()=>u,isFalsy:()=>m,isFiniteNumber:()=>n,isFiniteNumbersArray:()=>N,isJSON:()=>l,isJSONSerializable:()=>f,isNonEmptyArray:()=>w,isNonEmptyNumbersArray:()=>x,isNonEmptyString:()=>h,isNonEmptyStringsArray:()=>O,isNonFiniteNumber:()=>i,isNonFiniteNumbersArray:()=>S,isNonNegativeFiniteNumber:()=>o,isNonNullObject:()=>y,isNullish:()=>p,isNumber:()=>r,isNumbersArray:()=>v,isPositiveFiniteNumber:()=>s,isSVGGraphicsElement:()=>E,isString:()=>a,isStringsArray:()=>_,isTruthy:()=>d,isWhitespace:()=>c}),e})()},277(t){var e;e=()=>(()=>{var t={854(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){return"number"==typeof t}function n(t){return r(t)&&Number.isFinite(t)}function i(t){return r(t)&&!Number.isFinite(t)}function s(t){return n(t)&&t>0}function o(t){return n(t)&&t>=0}function a(t){return"string"==typeof t}function u(t){return""===t}function h(t){return a(t)&&!u(t)}function c(t){return!!a(t)&&0==t.trim().length}function l(t){if(!a(t))return!1;try{return JSON.parse(t),!0}catch{return!1}}function f(t){try{return JSON.stringify(t),!0}catch{return!1}}function d(t){return!!t}function m(t){return!t}function p(t){return null==t}function y(t){return"object"==typeof t&&null!==t}function g(t){return Array.isArray(t)}function b(t){return g(t)&&0==t.length}function w(t){return g(t)&&t.length>0}function v(t){return g(t)&&t.every(r)}function x(t){return v(t)&&t.length>0}function N(t){return g(t)&&t.every(n)}function S(t){return g(t)&&t.every(i)}function _(t){return g(t)&&t.every(a)}function O(t){return _(t)&&t.length>0}function E(t){return t instanceof SVGGraphicsElement}return t.r(e),t.d(e,{isArray:()=>g,isEmptyArray:()=>b,isEmptyString:()=>u,isFalsy:()=>m,isFiniteNumber:()=>n,isFiniteNumbersArray:()=>N,isJSON:()=>l,isJSONSerializable:()=>f,isNonEmptyArray:()=>w,isNonEmptyNumbersArray:()=>x,isNonEmptyString:()=>h,isNonEmptyStringsArray:()=>O,isNonFiniteNumber:()=>i,isNonFiniteNumbersArray:()=>S,isNonNegativeFiniteNumber:()=>o,isNonNullObject:()=>y,isNullish:()=>p,isNumber:()=>r,isNumbersArray:()=>v,isPositiveFiniteNumber:()=>s,isSVGGraphicsElement:()=>E,isString:()=>a,isStringsArray:()=>_,isTruthy:()=>d,isWhitespace:()=>c}),e})()}},e={};function r(n){var i=e[n];if(void 0!==i)return i.exports;var s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,r),s.exports}r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var n={};return(()=>{"use strict";r.r(n),r.d(n,{Vector:()=>e,isFiniteVectorLike:()=>s,isVectorLike:()=>i});var t=r(854);class e{static matching(t){let r="x"in t?t.x:t.magnitude*Math.cos(t.direction),n="y"in t?t.y:t.magnitude*Math.sin(t.direction);return new e(r,n)}constructor(t,e){this.x=t,this.y=e}[Symbol.iterator](){return[this.x,this.y].values()}get magnitude(){return Math.sqrt(Math.pow(this.x,2)+Math.pow(this.y,2))}set magnitude(t){let e=this.direction;this.x=t*Math.cos(e),this.y=t*Math.sin(e)}get direction(){return Math.atan2(this.y,this.x)}set direction(t){let e=this.magnitude;this.x=e*Math.cos(t),this.y=e*Math.sin(t)}isFinite(){return(0,t.isFiniteNumber)(this.x)&&(0,t.isFiniteNumber)(this.y)}}function i(e){return!(!(0,t.isNonNullObject)(e)||!((0,t.isNumber)(e.x)&&(0,t.isNumber)(e.y)||(0,t.isNumber)(e.magnitude)&&(0,t.isNumber)(e.direction)))}function s(t){return!!i(t)&&e.matching(t).isFinite()}})(),n})(),t.exports=e()}};const e={};function r(n){const i=e[n];if(void 0!==i)return i.exports;const s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,r),s.exports}r.d=(t,e)=>{if(Array.isArray(e))for(var n=0;n<e.length;){var i=e[n++],s=e[n++];r.o(t,i)?0===s&&n++:0===s?Object.defineProperty(t,i,{enumerable:!0,value:e[n++]}):Object.defineProperty(t,i,{enumerable:!0,get:s})}else for(var i in e)r.o(e,i)&&!r.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};let n={};return(()=>{"use strict";r.r(n),r.d(n,{FinitePoint:()=>s,Point:()=>i,RelativePoint:()=>f,midpoint:()=>m});var t=r(277),e=r(854);class i{static matching(t){return new i(t.x,t.y)}constructor(t,e){this.x=t,this.y=e}[Symbol.iterator](){return[this.x,this.y].values()}set(t){(0,e.isNumber)(null==t?void 0:t.x)&&(this.x=t.x),(0,e.isNumber)(null==t?void 0:t.y)&&(this.y=t.y)}drag(t,e){this.displace({x:t,y:e})}displace(e){let r=t.Vector.matching(e);this.x+=r.x,this.y+=r.y}displaced(t){let e=i.matching(this);return e.displace(t),e}displacementTo(e){return new t.Vector(e.x-this.x,e.y-this.y)}displacementFrom(e){return new t.Vector(this.x-e.x,this.y-e.y)}distanceTo(t){return this.displacementTo(t).magnitude}distanceFrom(t){return this.distanceTo(t)}directionTo(t){return this.displacementTo(t).direction}directionFrom(t){return this.displacementFrom(t).direction}deepCopy(){return new i(this.x,this.y)}}class s extends i{static matching(t){let e=i.matching(t);return new s(e.x,e.y)}constructor(t,r){if(super(t,r),!(0,e.isFiniteNumber)(t)||!(0,e.isFiniteNumber)(r))throw new Error(`Finite points must have finite number coordinates: (${t}, ${r}).`)}set(...t){let e=new i(0,0);e.set(...t),s.matching(e),super.set(...t)}}var o,a,u,h,c,l=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class f{constructor(e){o.add(this),a.set(this,void 0),u.set(this,new t.Vector(0,0)),h.set(this,{move:[]}),function(t,e,r){if("function"==typeof e||!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");e.set(t,r)}(this,a,e),e.addEventListener("move",()=>l(this,o,"m",c).call(this,"move"))}get x(){return l(this,a,"f").x+l(this,u,"f").x}set x(t){l(this,u,"f").x=t-l(this,a,"f").x,l(this,o,"m",c).call(this,"move")}get y(){return l(this,a,"f").y+l(this,u,"f").y}set y(t){l(this,u,"f").y=t-l(this,a,"f").y,l(this,o,"m",c).call(this,"move")}addEventListener(t,e){l(this,h,"f")[t].push(e)}removeEventListener(t,e){l(this,h,"f")[t]=l(this,h,"f")[t].filter(t=>t!==e)}}a=new WeakMap,u=new WeakMap,h=new WeakMap,o=new WeakSet,c=function(t){l(this,h,"f")[t].forEach(t=>t())};var d=r(986);function m(t,e){return new i((0,d.average)([t.x,e.x]),(0,d.average)([t.y,e.y]))}})(),n})(),t.exports=e()},725(t){t.exports=(()=>{var t={986:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){var e=0;return t.forEach(function(t){return e+=t}),e}function n(t){return r(t)/t.length}function i(t){t.sort(function(t,e){return t-e})}t.r(e),t.d(e,{areWithin:()=>f,average:()=>n,degrees:()=>p,isBetweenExclusive:()=>l,isBetweenInclusive:()=>c,max:()=>h,mean:()=>n,median:()=>a,min:()=>u,radians:()=>y,sortNumbers:()=>i,sortNumbersAscending:()=>i,sortNumbersDescending:()=>d,sortedNumbers:()=>o,sortedNumbersAscending:()=>o,sortedNumbersDescending:()=>m,sum:()=>r});var s=function(t,e,r){if(r||2===arguments.length)for(var n,i=0,s=e.length;i<s;i++)!n&&i in e||(n||(n=Array.prototype.slice.call(e,0,i)),n[i]=e[i]);return t.concat(n||Array.prototype.slice.call(e))};function o(t){var e=s([],t,!0);return i(e),e}function a(t){if(0==t.length)return NaN;var e=o(t);if(e.length%2!=0)return e[Math.floor(e.length/2)];var r=e.length/2,i=r-1;return n([e[r],e[i]])}function u(t){if(0==t.length)return 1/0;var e=t[0];return t.slice(1).forEach(function(t){e=Math.min(e,t)}),e}function h(t){if(0==t.length)return-1/0;var e=t[0];return t.slice(1).forEach(function(t){e=Math.max(e,t)}),e}function c(t,e,r){return t>=e&&t<=r}function l(t,e,r){return t>e&&t<r}function f(t,e,r){return Math.abs(t-e)<=r}function d(t){i(t),t.reverse()}function m(t){var e=o(t);return e.reverse(),e}function p(t){return t*(180/Math.PI)}function y(t){return t*(Math.PI/180)}return e})()},854:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){return"number"==typeof t}function n(t){return r(t)&&Number.isFinite(t)}function i(t){return r(t)&&!Number.isFinite(t)}function s(t){return n(t)&&t>0}function o(t){return n(t)&&t>=0}function a(t){return"string"==typeof t}function u(t){return null==t}function h(t){return"object"==typeof t&&null!==t}function c(t){return Array.isArray(t)}return t.r(e),t.d(e,{isArray:()=>c,isFiniteNumber:()=>n,isNonFiniteNumber:()=>i,isNonNegativeFiniteNumber:()=>o,isNonNullObject:()=>h,isNullish:()=>u,isNumber:()=>r,isPositiveFiniteNumber:()=>s,isString:()=>a}),e})()},30:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){return Math.pow(Math.pow(t.x,2)+Math.pow(t.y,2),.5)}function n(t){return Math.atan2(t.y,t.x)}return t.r(e),t.d(e,{direction:()=>n,magnitude:()=>r}),e})()}},e={};function r(n){var i=e[n];if(void 0!==i)return i.exports;var s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,r),s.exports}r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var n={};return(()=>{"use strict";r.r(n),r.d(n,{areWithin:()=>a,centroid:()=>d,deepCopy:()=>s,direction:()=>l,displaced:()=>h,displacement:()=>u,distance:()=>o,isFinitePoint:()=>i,isPoint:()=>e,midpoint:()=>m});var t=r(854);function e(e){return(0,t.isNonNullObject)(e)&&(0,t.isNumber)(e.x)&&(0,t.isNumber)(e.y)}function i(r){return e(r)&&(0,t.isFiniteNumber)(r.x)&&(0,t.isFiniteNumber)(r.y)}function s(t){return{x:t.x,y:t.y}}function o(t,e){var r=e.x-t.x,n=e.y-t.y;return Math.pow(Math.pow(r,2)+Math.pow(n,2),.5)}function a(t,e,r){return o(t,e)<=r}function u(t,e){return{x:e.x-t.x,y:e.y-t.y}}function h(t,e){return{x:t.x+e.x,y:t.y+e.y}}var c=r(30);function l(t,e){return(0,c.direction)(u(t,e))}var f=r(986);function d(t){return{x:(0,f.mean)(t.map(function(t){return t.x})),y:(0,f.mean)(t.map(function(t){return t.y}))}}function m(t,e){return d([t,e])}})(),n})()},106(t){var e;e=()=>(()=>{var t={992(t){var e;e=()=>(()=>{"use strict";const t={d:(e,r)=>{if(Array.isArray(r))for(var n=0;n<r.length;){var i=r[n++],s=r[n++];t.o(e,i)?0===s&&n++:0===s?Object.defineProperty(e,i,{enumerable:!0,value:r[n++]}):Object.defineProperty(e,i,{enumerable:!0,get:s})}else for(var i in r)t.o(r,i)&&!t.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:r[i]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}};let e={};t.r(e),t.d(e,{KeyBinding:()=>p});var r,n,i,s,o,a,u,h,c,l,f,d=function(t,e,r,n,i){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!i:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===n?i.call(t,r):i?i.value=r:e.set(t,r),r},m=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class p{constructor(t,e,a){r.add(this),this.key=t,n.set(this,void 0),i.set(this,void 0),s.set(this,void 0),o.set(this,void 0),d(this,n,e,"f"),d(this,i,t=>m(this,r,"m",l).call(this,t),"f"),d(this,s,a,"f")}get owner(){return m(this,o,"f")}set owner(t){var e;null===(e=m(this,o,"f"))||void 0===e||e.removeEventListener("keydown",m(this,i,"f")),null==t||t.addEventListener("keydown",m(this,i,"f"),{passive:!1}),d(this,o,t,"f")}}return n=new WeakMap,i=new WeakMap,s=new WeakMap,o=new WeakMap,r=new WeakSet,a=function(){var t,e;return null!==(e=null===(t=m(this,s,"f"))||void 0===t?void 0:t.altKey)&&void 0!==e&&e},u=function(){var t,e;return null!==(e=null===(t=m(this,s,"f"))||void 0===t?void 0:t.ctrlKey)&&void 0!==e&&e},h=function(){var t,e;return null!==(e=null===(t=m(this,s,"f"))||void 0===t?void 0:t.metaKey)&&void 0!==e&&e},c=function(){var t,e;return null!==(e=null===(t=m(this,s,"f"))||void 0===t?void 0:t.shiftKey)&&void 0!==e&&e},l=function(t){this.owner&&this.owner===document.activeElement&&`Key${this.key}`.toUpperCase()===t.code.toUpperCase()&&t.altKey===m(this,r,"a",a)&&t.ctrlKey===m(this,r,"a",u)&&t.metaKey===m(this,r,"a",h)&&t.shiftKey===m(this,r,"a",c)&&m(this,r,"m",f).call(this,t)},f=function(t){t.preventDefault(),m(this,n,"f").call(this)},e})(),t.exports=e()},854(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){return"number"==typeof t}function n(t){return r(t)&&Number.isFinite(t)}function i(t){return r(t)&&!Number.isFinite(t)}function s(t){return n(t)&&t>0}function o(t){return n(t)&&t>=0}function a(t){return"string"==typeof t}function u(t){return""===t}function h(t){return a(t)&&!u(t)}function c(t){return!!a(t)&&0==t.trim().length}function l(t){if(!a(t))return!1;try{return JSON.parse(t),!0}catch{return!1}}function f(t){try{return JSON.stringify(t),!0}catch{return!1}}function d(t){return!!t}function m(t){return!t}function p(t){return null==t}function y(t){return"object"==typeof t&&null!==t}function g(t){return Array.isArray(t)}function b(t){return g(t)&&0==t.length}function w(t){return g(t)&&t.length>0}function v(t){return g(t)&&t.every(r)}function x(t){return v(t)&&t.length>0}function N(t){return g(t)&&t.every(n)}function S(t){return g(t)&&t.every(i)}function _(t){return g(t)&&t.every(a)}function O(t){return _(t)&&t.length>0}function E(t){return t instanceof SVGGraphicsElement}return t.r(e),t.d(e,{isArray:()=>g,isEmptyArray:()=>b,isEmptyString:()=>u,isFalsy:()=>m,isFiniteNumber:()=>n,isFiniteNumbersArray:()=>N,isJSON:()=>l,isJSONSerializable:()=>f,isNonEmptyArray:()=>w,isNonEmptyNumbersArray:()=>x,isNonEmptyString:()=>h,isNonEmptyStringsArray:()=>O,isNonFiniteNumber:()=>i,isNonFiniteNumbersArray:()=>S,isNonNegativeFiniteNumber:()=>o,isNonNullObject:()=>y,isNullish:()=>p,isNumber:()=>r,isNumbersArray:()=>v,isPositiveFiniteNumber:()=>s,isSVGGraphicsElement:()=>E,isString:()=>a,isStringsArray:()=>_,isTruthy:()=>d,isWhitespace:()=>c}),e})()}};const e={};function r(n){const i=e[n];if(void 0!==i)return i.exports;const s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,r),s.exports}r.d=(t,e)=>{if(Array.isArray(e))for(var n=0;n<e.length;){var i=e[n++],s=e[n++];r.o(t,i)?0===s&&n++:0===s?Object.defineProperty(t,i,{enumerable:!0,value:e[n++]}):Object.defineProperty(t,i,{enumerable:!0,get:s})}else for(var i in e)r.o(e,i)&&!r.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};let n={};return(()=>{"use strict";function t(t){if(t.length>0)return t[0];throw new Error("Array is empty.")}function e(t){if(t.length>0)return t[t.length-1];throw new Error("Array is empty.")}function i(t){if(t.length<3)throw new Error("Array has less than 3 items.");if(t.length%2==0)throw new Error("Array has an even number of items.");let e=Math.floor(t.length/2);return[t[e-1],t[e],t[e+1]]}function s(t){if(t.length<4)throw new Error("Array has less than 4 items.");if(t.length%2!=0)throw new Error("Array has an odd number of items.");let e=Math.floor(t.length/2);return[t[e-2],t[e-1],t[e],t[e+1]]}function o(t){return t.length<2?[]:t.slice(0,-1).map((e,r)=>[t[r],t[r+1]])}r.r(n),r.d(n,{DownloadableFile:()=>w,EventfulSet:()=>v,FiniteStack:()=>E,KeyBinding:()=>d.KeyBinding,consecutivePairs:()=>o,containsFocus:()=>f,detectMac:()=>p,detectWindows:()=>m,first:()=>t,hasFocus:()=>l,isJSON:()=>a.isJSON,isJSONSerializable:()=>a.isJSONSerializable,isURL:()=>P,last:()=>e,middleFour:()=>s,middleThree:()=>i,removeWhitespace:()=>u,shuffled:()=>c,splitLines:()=>h});var a=r(854);function u(t){return[...t].filter(t=>!(0,a.isWhitespace)(t)).join("")}function h(t){return t.split(/\r\n|\r|\n/)}function c(t){return t.map(t=>({v:t,priority:Math.random()})).sort((t,e)=>t.priority-e.priority).map(({v:t})=>t)}function l(t){return t===document.activeElement}function f(t){return!!document.activeElement&&t.contains(document.activeElement)}var d=r(992);function m(){return-1!==navigator.userAgent.indexOf("Windows")}function p(){try{return window.navigator.platform.toLowerCase().includes("mac")}catch(t){return!1}}var y,g=function(t,e,r,n,i){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!i:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===n?i.call(t,r):i?i.value=r:e.set(t,r),r},b=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class w{constructor(t,e,r){y.set(this,void 0),this.name=null!=t?t:"Unnamed.txt",this.content=null!=e?e:"",g(this,y,null==r?void 0:r.type,"f")}get type(){return null!=b(this,y,"f")?b(this,y,"f"):this.content instanceof Blob?this.content.type:"text/plain"}set type(t){g(this,y,t,"f")}download(){let t=new File([this.content],this.name,{type:this.type}),e=URL.createObjectURL(t),r=document.createElement("a");r.href=e,r.download=t.name,document.body.appendChild(r),r.click(),r.remove(),URL.revokeObjectURL(e)}}y=new WeakMap;class v{constructor(){this.eventListeners={change:[]},this.underlyingSet=new Set}[Symbol.iterator](){return this.underlyingSet.values()}includes(t){return this.underlyingSet.has(t)}include(t){return this.includes(t)}addAll(t){let e=[...t];0!=e.length&&(e.every(t=>this.includes(t))||(e.forEach(t=>this.underlyingSet.add(t)),this.callEventListeners("change")))}removeAll(t){let e=[...t];0!=e.length&&(e.every(t=>!this.includes(t))||(e.forEach(t=>this.underlyingSet.delete(t)),this.callEventListeners("change")))}clear(){0!=this.underlyingSet.size&&(this.underlyingSet.clear(),this.callEventListeners("change"))}addEventListener(t,e){this.eventListeners[t].push(e)}callEventListeners(t){this.eventListeners[t].forEach(t=>t())}removeEventListener(t,e){this.eventListeners[t]=this.eventListeners[t].filter(t=>t!==e)}}var x,N,S,_,O=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class E{constructor(t){x.add(this),this.maxSize=t,N.set(this,[]),S.set(this,{change:[]})}get size(){return O(this,N,"f").length}isEmpty(){return 0==this.size}empty(){0!=this.size&&(function(t,e){if("function"==typeof e||!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");e.set(t,[])}(this,N),O(this,x,"m",_).call(this,"change"))}peek(){if(0==this.size)throw new Error("The stack is empty.");return O(this,N,"f")[O(this,N,"f").length-1]}push(t){O(this,N,"f").push(t),this.size>this.maxSize&&O(this,N,"f").shift(),O(this,x,"m",_).call(this,"change")}pop(){if(0==this.size)throw new Error("The stack is empty.");let t=O(this,N,"f").pop();return O(this,x,"m",_).call(this,"change"),t}addEventListener(t,e){O(this,S,"f")[t].push(e)}removeEventListener(t,e){O(this,S,"f")[t]=O(this,S,"f")[t].filter(t=>t!==e)}}function P(t){try{return new URL(t),!0}catch(t){return!1}}N=new WeakMap,S=new WeakMap,x=new WeakSet,_=function(t){O(this,S,"f")[t].forEach(t=>t())}})(),n})(),t.exports=e()},854(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){return"number"==typeof t}function n(t){return r(t)&&Number.isFinite(t)}function i(t){return r(t)&&!Number.isFinite(t)}function s(t){return n(t)&&t>0}function o(t){return n(t)&&t>=0}function a(t){return"string"==typeof t}function u(t){return""===t}function h(t){return a(t)&&!u(t)}function c(t){return!!a(t)&&0==t.trim().length}function l(t){if(!a(t))return!1;try{return JSON.parse(t),!0}catch{return!1}}function f(t){try{return JSON.stringify(t),!0}catch{return!1}}function d(t){return!!t}function m(t){return!t}function p(t){return null==t}function y(t){return"object"==typeof t&&null!==t}function g(t){return Array.isArray(t)}function b(t){return g(t)&&0==t.length}function w(t){return g(t)&&t.length>0}function v(t){return g(t)&&t.every(r)}function x(t){return v(t)&&t.length>0}function N(t){return g(t)&&t.every(n)}function S(t){return g(t)&&t.every(i)}function _(t){return g(t)&&t.every(a)}function O(t){return _(t)&&t.length>0}function E(t){return t instanceof SVGGraphicsElement}return t.r(e),t.d(e,{isArray:()=>g,isEmptyArray:()=>b,isEmptyString:()=>u,isFalsy:()=>m,isFiniteNumber:()=>n,isFiniteNumbersArray:()=>N,isJSON:()=>l,isJSONSerializable:()=>f,isNonEmptyArray:()=>w,isNonEmptyNumbersArray:()=>x,isNonEmptyString:()=>h,isNonEmptyStringsArray:()=>O,isNonFiniteNumber:()=>i,isNonFiniteNumbersArray:()=>S,isNonNegativeFiniteNumber:()=>o,isNonNullObject:()=>y,isNullish:()=>p,isNumber:()=>r,isNumbersArray:()=>v,isPositiveFiniteNumber:()=>s,isSVGGraphicsElement:()=>E,isString:()=>a,isStringsArray:()=>_,isTruthy:()=>d,isWhitespace:()=>c}),e})()},277(t){var e;e=()=>(()=>{var t={854(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){return"number"==typeof t}function n(t){return r(t)&&Number.isFinite(t)}function i(t){return r(t)&&!Number.isFinite(t)}function s(t){return n(t)&&t>0}function o(t){return n(t)&&t>=0}function a(t){return"string"==typeof t}function u(t){return""===t}function h(t){return a(t)&&!u(t)}function c(t){return!!a(t)&&0==t.trim().length}function l(t){if(!a(t))return!1;try{return JSON.parse(t),!0}catch{return!1}}function f(t){try{return JSON.stringify(t),!0}catch{return!1}}function d(t){return!!t}function m(t){return!t}function p(t){return null==t}function y(t){return"object"==typeof t&&null!==t}function g(t){return Array.isArray(t)}function b(t){return g(t)&&0==t.length}function w(t){return g(t)&&t.length>0}function v(t){return g(t)&&t.every(r)}function x(t){return v(t)&&t.length>0}function N(t){return g(t)&&t.every(n)}function S(t){return g(t)&&t.every(i)}function _(t){return g(t)&&t.every(a)}function O(t){return _(t)&&t.length>0}function E(t){return t instanceof SVGGraphicsElement}return t.r(e),t.d(e,{isArray:()=>g,isEmptyArray:()=>b,isEmptyString:()=>u,isFalsy:()=>m,isFiniteNumber:()=>n,isFiniteNumbersArray:()=>N,isJSON:()=>l,isJSONSerializable:()=>f,isNonEmptyArray:()=>w,isNonEmptyNumbersArray:()=>x,isNonEmptyString:()=>h,isNonEmptyStringsArray:()=>O,isNonFiniteNumber:()=>i,isNonFiniteNumbersArray:()=>S,isNonNegativeFiniteNumber:()=>o,isNonNullObject:()=>y,isNullish:()=>p,isNumber:()=>r,isNumbersArray:()=>v,isPositiveFiniteNumber:()=>s,isSVGGraphicsElement:()=>E,isString:()=>a,isStringsArray:()=>_,isTruthy:()=>d,isWhitespace:()=>c}),e})()}},e={};function r(n){var i=e[n];if(void 0!==i)return i.exports;var s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,r),s.exports}r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var n={};return(()=>{"use strict";r.r(n),r.d(n,{Vector:()=>e,isFiniteVectorLike:()=>s,isVectorLike:()=>i});var t=r(854);class e{static matching(t){let r="x"in t?t.x:t.magnitude*Math.cos(t.direction),n="y"in t?t.y:t.magnitude*Math.sin(t.direction);return new e(r,n)}constructor(t,e){this.x=t,this.y=e}[Symbol.iterator](){return[this.x,this.y].values()}get magnitude(){return Math.sqrt(Math.pow(this.x,2)+Math.pow(this.y,2))}set magnitude(t){let e=this.direction;this.x=t*Math.cos(e),this.y=t*Math.sin(e)}get direction(){return Math.atan2(this.y,this.x)}set direction(t){let e=this.magnitude;this.x=e*Math.cos(t),this.y=e*Math.sin(t)}isFinite(){return(0,t.isFiniteNumber)(this.x)&&(0,t.isFiniteNumber)(this.y)}}function i(e){return!(!(0,t.isNonNullObject)(e)||!((0,t.isNumber)(e.x)&&(0,t.isNumber)(e.y)||(0,t.isNumber)(e.magnitude)&&(0,t.isNumber)(e.direction)))}function s(t){return!!i(t)&&e.matching(t).isFinite()}})(),n})(),t.exports=e()}};const e={};function r(n){const i=e[n];if(void 0!==i)return i.exports;const s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,r),s.exports}r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};let n={};return(()=>{"use strict";r.r(n),r.d(n,{CurvedBond:()=>lt});var t=r(726);const e={randomUUID:"undefined"!=typeof crypto&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};let i;const s=new Uint8Array(16),o=[];for(let t=0;t<256;++t)o.push((t+256).toString(16).slice(1));function a(t,e,r){const n=(t=t||{}).random??t.rng?.()??function(){if(!i){if("undefined"==typeof crypto||!crypto.getRandomValues)throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");i=crypto.getRandomValues.bind(crypto)}return i(s)}();if(n.length<16)throw new Error("Random bytes length must be >= 16");if(n[6]=15&n[6]|64,n[8]=63&n[8]|128,e){if((r=r||0)<0||r+16>e.length)throw new RangeError(`UUID byte range ${r}:${r+15} is out of buffer bounds`);for(let t=0;t<16;++t)e[r+t]=n[t];return e}return function(t,e=0){return(o[t[e+0]]+o[t[e+1]]+o[t[e+2]]+o[t[e+3]]+"-"+o[t[e+4]]+o[t[e+5]]+"-"+o[t[e+6]]+o[t[e+7]]+"-"+o[t[e+8]]+o[t[e+9]]+"-"+o[t[e+10]]+o[t[e+11]]+o[t[e+12]]+o[t[e+13]]+o[t[e+14]]+o[t[e+15]]).toLowerCase()}(n)}const u=" ";function h([t,e],r){return[t*Math.cos(r)-e*Math.sin(r),t*Math.sin(r)+e*Math.cos(r)]}function c(...t){for(let e=0;e<t.length;e++)if("number"!=typeof t[e])throw new Error(`assertNumbers arguments[${e}] is not a number. ${typeof t[e]} == typeof ${t[e]}`);return!0}const l=Math.PI;function f(t,e,r){t.lArcFlag=0===t.lArcFlag?0:1,t.sweepFlag=0===t.sweepFlag?0:1;let{rX:n,rY:i}=t;const{x:s,y:o}=t;if(Math.abs(n)<1e-10||Math.abs(i)<1e-10)return t.rX=0,t.rY=0,t.cX=(e+s)/2,t.cY=(r+o)/2,t.phi1=0,void(t.phi2=0);n=Math.abs(t.rX),i=Math.abs(t.rY);const a=t.xRot/180*l,[u,c]=h([(e-s)/2,(r-o)/2],-a),f=Math.pow(u,2)/Math.pow(n,2)+Math.pow(c,2)/Math.pow(i,2);1<f&&(n*=Math.sqrt(f),i*=Math.sqrt(f)),t.rX=n,t.rY=i;const d=Math.pow(n,2)*Math.pow(c,2)+Math.pow(i,2)*Math.pow(u,2),m=(t.lArcFlag!==t.sweepFlag?1:-1)*Math.sqrt(Math.max(0,(Math.pow(n,2)*Math.pow(i,2)-d)/d)),p=n*c/i*m,y=-i*u/n*m,g=h([p,y],a);t.cX=g[0]+(e+s)/2,t.cY=g[1]+(r+o)/2,t.phi1=Math.atan2((c-y)/i,(u-p)/n),t.phi2=Math.atan2((-c-y)/i,(-u-p)/n),0===t.sweepFlag&&t.phi2>t.phi1&&(t.phi2-=2*l),1===t.sweepFlag&&t.phi2<t.phi1&&(t.phi2+=2*l),t.phi1*=180/l,t.phi2*=180/l}function d(t,e,r){c(t,e,r);const n=t*t+e*e-r*r;if(0>n)return[];if(0===n)return[[t*r/(t*t+e*e),e*r/(t*t+e*e)]];const i=Math.sqrt(n);return[[(t*r+e*i)/(t*t+e*e),(e*r-t*i)/(t*t+e*e)],[(t*r-e*i)/(t*t+e*e),(e*r+t*i)/(t*t+e*e)]]}const m=Math.PI/180;function p(t,e,r){return(1-r)*t+r*e}function y(t,e,r,n){return t+Math.cos(n/180*l)*e+Math.sin(n/180*l)*r}function g(t,e,r,n){const i=1e-6,s=e-t,o=r-e,a=3*s+3*(n-r)-6*o,u=6*(o-s),h=3*s;return Math.abs(a)<i?Math.abs(u)<i?[]:[-h/u]:function(t,e,r=1e-6){const n=t*t/4-e;if(n<-r)return[];if(n<=r)return[-t/2];const i=Math.sqrt(n);return[-t/2-i,-t/2+i]}(u/a,h/a,i)}function b(t,e,r,n,i){const s=1-i;return t*(s*s*s)+e*(3*s*s*i)+r*(3*s*i*i)+n*(i*i*i)}function w(t,e,r){const n=e[0]-t[0],i=e[1]-t[1],s=r[0]-t[0],o=r[1]-t[1],a=n*o-i*s;if(!(Math.abs(a)<1e-10))return!1;const u=n*s+i*o,h=s*s+o*o;return 0<=u&&u<=h&&n*n+i*i<=h}function v(t){const e=t[t.length-1]?.type===j.CLOSE_PATH,r=e?t.length-2:t.length-1,n=[{type:j.MOVE_TO,relative:!1,x:t[r].x,y:t[r].y}];for(let e=r;e>0;e--){const r=t[e],i=t[e-1];if(r.relative)throw new Error("Relative command are not supported convert first with `toAbs()`");switch(r.type){case j.HORIZ_LINE_TO:n.push({type:j.HORIZ_LINE_TO,relative:!1,x:i.x});break;case j.VERT_LINE_TO:n.push({type:j.VERT_LINE_TO,relative:!1,y:i.y});break;case j.LINE_TO:case j.MOVE_TO:n.push({type:j.LINE_TO,relative:!1,x:i.x,y:i.y});break;case j.CURVE_TO:n.push({type:j.CURVE_TO,relative:!1,x:i.x,y:i.y,x1:r.x2,y1:r.y2,x2:r.x1,y2:r.y1});break;case j.SMOOTH_CURVE_TO:throw new Error("Unsupported command: S (smooth cubic bezier)");case j.SMOOTH_QUAD_TO:throw new Error("Unsupported command: T (smooth quadratic bezier)");case j.ARC:throw new Error("Unsupported command: A (arc)");case j.QUAD_TO:throw new Error("Unsupported command: Q (quadratic bezier)")}}return e&&n.push({type:j.CLOSE_PATH}),n}function x(){return _((t,e,r)=>(t.relative&&(void 0!==t.x1&&(t.x1+=e),void 0!==t.y1&&(t.y1+=r),void 0!==t.x2&&(t.x2+=e),void 0!==t.y2&&(t.y2+=r),void 0!==t.x&&(t.x+=e),void 0!==t.y&&(t.y+=r),t.relative=!1),t))}function N(){let t=NaN,e=NaN,r=NaN,n=NaN;return _((i,s,o)=>(i.type&j.SMOOTH_CURVE_TO&&(i.type=j.CURVE_TO,t=isNaN(t)?s:t,e=isNaN(e)?o:e,i.x1=i.relative?s-t:2*s-t,i.y1=i.relative?o-e:2*o-e),i.type&j.CURVE_TO?(t=i.relative?s+i.x2:i.x2,e=i.relative?o+i.y2:i.y2):(t=NaN,e=NaN),i.type&j.SMOOTH_QUAD_TO&&(i.type=j.QUAD_TO,r=isNaN(r)?s:r,n=isNaN(n)?o:n,i.x1=i.relative?s-r:2*s-r,i.y1=i.relative?o-n:2*o-n),i.type&j.QUAD_TO?(r=i.relative?s+i.x1:i.x1,n=i.relative?o+i.y1:i.y1):(r=NaN,n=NaN),i))}function S(){let t=NaN,e=NaN;return _((r,n,i)=>{if(r.type&j.SMOOTH_QUAD_TO&&(r.type=j.QUAD_TO,t=isNaN(t)?n:t,e=isNaN(e)?i:e,r.x1=r.relative?n-t:2*n-t,r.y1=r.relative?i-e:2*i-e),r.type&j.QUAD_TO){t=r.relative?n+r.x1:r.x1,e=r.relative?i+r.y1:r.y1;const s=r.x1,o=r.y1;r.type=j.CURVE_TO,r.x1=((r.relative?0:n)+2*s)/3,r.y1=((r.relative?0:i)+2*o)/3,r.x2=(r.x+2*s)/3,r.y2=(r.y+2*o)/3}else t=NaN,e=NaN;return r})}function _(t){let e=0,r=0,n=NaN,i=NaN;return function(s){if(isNaN(n)&&!(s.type&j.MOVE_TO))throw new Error("path must start with moveto");const o=t(s,e,r,n,i);return s.type&j.CLOSE_PATH&&(e=n,r=i),"x"in s&&void 0!==s.x&&(e=s.relative?e+s.x:s.x),"y"in s&&void 0!==s.y&&(r=s.relative?r+s.y:s.y),s.type&j.MOVE_TO&&(n=e,i=r),o}}function O(t,e,r,n,i,s){return c(t,e,r,n,i,s),_((o,a,u,h)=>{const c=o.x1,l=o.x2,f=o.relative&&!isNaN(h),d=void 0!==o.x?o.x:f?0:a,m=void 0!==o.y?o.y:f?0:u;function p(t){return t*t}o.type&j.HORIZ_LINE_TO&&0!==e&&(o.type=j.LINE_TO,o.y=o.relative?0:u),o.type&j.VERT_LINE_TO&&0!==r&&(o.type=j.LINE_TO,o.x=o.relative?0:a),void 0!==o.x&&(o.x=o.x*t+m*r+(f?0:i)),void 0!==o.y&&(o.y=d*e+o.y*n+(f?0:s)),void 0!==o.x1&&(o.x1=o.x1*t+o.y1*r+(f?0:i)),void 0!==o.y1&&(o.y1=c*e+o.y1*n+(f?0:s)),void 0!==o.x2&&(o.x2=o.x2*t+o.y2*r+(f?0:i)),void 0!==o.y2&&(o.y2=l*e+o.y2*n+(f?0:s));const y=t*n-e*r;if(void 0!==o.xRot&&(1!==t||0!==e||0!==r||1!==n))if(0===y)delete o.rX,delete o.rY,delete o.xRot,delete o.lArcFlag,delete o.sweepFlag,o.type=j.LINE_TO;else{const i=o.xRot*Math.PI/180,s=Math.sin(i),a=Math.cos(i),u=1/p(o.rX),h=1/p(o.rY),c=p(a)*u+p(s)*h,l=2*s*a*(u-h),f=p(s)*u+p(a)*h,d=c*n*n-l*e*n+f*e*e,m=l*(t*n+e*r)-2*(c*r*n+f*t*e),g=c*r*r-l*t*r+f*t*t,b=(Math.atan2(m,d-g)+Math.PI)%Math.PI/2,w=Math.sin(b),v=Math.cos(b);o.rX=Math.abs(y)/Math.sqrt(d*p(v)+m*w*v+g*p(w)),o.rY=Math.abs(y)/Math.sqrt(d*p(w)-m*w*v+g*p(v)),o.xRot=180*b/Math.PI}return void 0!==o.sweepFlag&&0>y&&(o.sweepFlag=+!o.sweepFlag),o})}const E={ROUND:function(t=1e13){function e(e){return Math.round(e*t)/t}return c(t),function(t){return"x1"in t&&void 0!==t.x1&&(t.x1=e(t.x1)),"y1"in t&&void 0!==t.y1&&(t.y1=e(t.y1)),"x2"in t&&void 0!==t.x2&&(t.x2=e(t.x2)),"y2"in t&&void 0!==t.y2&&(t.y2=e(t.y2)),"x"in t&&void 0!==t.x&&(t.x=e(t.x)),"y"in t&&void 0!==t.y&&(t.y=e(t.y)),"rX"in t&&void 0!==t.rX&&(t.rX=e(t.rX)),"rY"in t&&void 0!==t.rY&&(t.rY=e(t.rY)),t}},TO_ABS:x,TO_REL:function(){return _((t,e,r)=>(t.relative||(void 0!==t.x1&&(t.x1-=e),void 0!==t.y1&&(t.y1-=r),void 0!==t.x2&&(t.x2-=e),void 0!==t.y2&&(t.y2-=r),void 0!==t.x&&(t.x-=e),void 0!==t.y&&(t.y-=r),t.relative=!0),t))},NORMALIZE_HVZ:function(t=!0,e=!0,r=!0,n=!0){return _((i,s,o,a,u)=>{if(isNaN(a)&&!(i.type&j.MOVE_TO))throw new Error("path must start with moveto");if(e&&i.type&j.HORIZ_LINE_TO&&(i.type=j.LINE_TO,i.y=i.relative?0:o),r&&i.type&j.VERT_LINE_TO&&(i.type=j.LINE_TO,i.x=i.relative?0:s),t&&i.type&j.CLOSE_PATH&&(i.type=j.LINE_TO,i.x=i.relative?a-s:a,i.y=i.relative?u-o:u),i.type&j.ARC&&(0===i.rX||0===i.rY)&&(i.type=j.LINE_TO,delete i.rX,delete i.rY,delete i.xRot,delete i.lArcFlag,delete i.sweepFlag),n&&i.type&j.QUAD_TO&&w([s,o],i.relative?[s+i.x1,o+i.y1]:[i.x1,i.y1],i.relative?[s+i.x,o+i.y]:[i.x,i.y])&&(i.type=j.LINE_TO,delete i.x1,delete i.y1),n&&i.type&j.CURVE_TO){const t=[s,o],e=i.relative?[s+i.x1,o+i.y1]:[i.x1,i.y1],r=i.relative?[s+i.x2,o+i.y2]:[i.x2,i.y2],n=i.relative?[s+i.x,o+i.y]:[i.x,i.y];w(t,e,n)&&w(t,r,n)&&(i.type=j.LINE_TO,delete i.x1,delete i.y1,delete i.x2,delete i.y2)}return i})},NORMALIZE_ST:N,QT_TO_C:S,INFO:_,SANITIZE:function(t=0){c(t);let e=NaN,r=NaN,n=NaN,i=NaN;return _((s,o,a,u,h)=>{const c=Math.abs;let l=!1,f=0,d=0;if(s.type&j.SMOOTH_CURVE_TO&&(f=isNaN(e)?0:o-e,d=isNaN(r)?0:a-r),s.type&(j.CURVE_TO|j.SMOOTH_CURVE_TO)?(e=s.relative?o+s.x2:s.x2,r=s.relative?a+s.y2:s.y2):(e=NaN,r=NaN),s.type&j.SMOOTH_QUAD_TO?(n=isNaN(n)?o:2*o-n,i=isNaN(i)?a:2*a-i):s.type&j.QUAD_TO?(n=s.relative?o+s.x1:s.x1,i=s.relative?a+s.y1:s.y2):(n=NaN,i=NaN),s.type&j.LINE_COMMANDS||s.type&j.ARC&&(0===s.rX||0===s.rY||!s.lArcFlag)||s.type&j.CURVE_TO||s.type&j.SMOOTH_CURVE_TO||s.type&j.QUAD_TO||s.type&j.SMOOTH_QUAD_TO){const e=void 0===s.x?0:s.relative?s.x:s.x-o,r=void 0===s.y?0:s.relative?s.y:s.y-a;f=isNaN(n)?void 0===s.x1?f:s.relative?s.x:s.x1-o:n-o,d=isNaN(i)?void 0===s.y1?d:s.relative?s.y:s.y1-a:i-a;const u=void 0===s.x2?0:s.relative?s.x:s.x2-o,h=void 0===s.y2?0:s.relative?s.y:s.y2-a;c(e)<=t&&c(r)<=t&&c(f)<=t&&c(d)<=t&&c(u)<=t&&c(h)<=t&&(l=!0)}return s.type&j.CLOSE_PATH&&c(o-u)<=t&&c(a-h)<=t&&(l=!0),l?[]:s})},MATRIX:O,ROTATE:function(t,e=0,r=0){c(t,e,r);const n=Math.sin(t),i=Math.cos(t);return O(i,n,-n,i,e-e*i+r*n,r-e*n-r*i)},TRANSLATE:function(t,e=0){return c(t,e),O(1,0,0,1,t,e)},SCALE:function(t,e=t){return c(t,e),O(t,0,0,e,0,0)},SKEW_X:function(t){return c(t),O(1,0,Math.tan(t),1,0,0)},SKEW_Y:function(t){return c(t),O(1,Math.tan(t),0,1,0,0)},X_AXIS_SYMMETRY:function(t=0){return c(t),O(-1,0,0,1,t,0)},Y_AXIS_SYMMETRY:function(t=0){return c(t),O(1,0,0,-1,0,t)},A_TO_C:function(){return _((t,e,r)=>j.ARC===t.type?function(t,e,r){t.cX||f(t,e,r);const n=t.xRot/180*l;if(Math.abs(t.rX)<1e-10||Math.abs(t.rY)<1e-10)return[{relative:t.relative,type:j.CURVE_TO,x1:e+(t.x-e)/3,y1:r+(t.y-r)/3,x2:e+2*(t.x-e)/3,y2:r+2*(t.y-r)/3,x:t.x,y:t.y}];const i=Math.min(t.phi1,t.phi2),s=Math.max(t.phi1,t.phi2)-i,o=Math.ceil(s/90),a=new Array(o);let u=e,c=r;const d=(e,r)=>{const[i,s]=h([e*t.rX,r*t.rY],n);return[t.cX+i,t.cY+s]};for(let e=0;e<o;e++){const r=p(t.phi1,t.phi2,e/o),n=p(t.phi1,t.phi2,(e+1)/o),i=n-r,s=4/3*Math.tan(i*m/4),h=Math.cos(r*m)-s*Math.sin(r*m),l=Math.sin(r*m)+s*Math.cos(r*m),f=Math.cos(n*m),y=Math.sin(n*m),g=f+s*y,b=y-s*f,w=d(h,l),v=d(g,b),x=d(f,y),N={relative:t.relative,type:j.CURVE_TO,x:x[0],y:x[1],x1:w[0],y1:w[1],x2:v[0],y2:v[1]};t.relative&&(N.x1-=u,N.y1-=c,N.x2-=u,N.y2-=c,N.x-=u,N.y-=c),u=x[0],c=x[1],a[e]=N}return a}(t,t.relative?0:e,t.relative?0:r):t)},ANNOTATE_ARCS:function(){return _((t,e,r)=>(t.relative&&(e=0,r=0),j.ARC===t.type&&f(t,e,r),t))},CLONE:function(){return t=>({...t})},CALCULATE_BOUNDS:function(){const t=x(),e=S(),r=N(),n=_((i,s,o)=>{const a=r(e(t((t=>({...t}))(i))));function u(t){t>n.maxX&&(n.maxX=t),t<n.minX&&(n.minX=t)}function h(t){t>n.maxY&&(n.maxY=t),t<n.minY&&(n.minY=t)}if(a.type&j.DRAWING_COMMANDS&&(u(s),h(o)),a.type&j.HORIZ_LINE_TO&&u(a.x),a.type&j.VERT_LINE_TO&&h(a.y),a.type&j.LINE_TO&&(u(a.x),h(a.y)),a.type&j.CURVE_TO){u(a.x),h(a.y);const t=g(s,a.x1,a.x2,a.x);for(const e of t)0<e&&1>e&&u(b(s,a.x1,a.x2,a.x,e));const e=g(o,a.y1,a.y2,a.y);for(const t of e)0<t&&1>t&&h(b(o,a.y1,a.y2,a.y,t))}if(a.type&j.ARC){u(a.x),h(a.y),f(a,s,o);const t=a.xRot/180*Math.PI,e=Math.cos(t)*a.rX,r=Math.sin(t)*a.rX,n=-Math.sin(t)*a.rY,i=Math.cos(t)*a.rY,[c,l]=a.phi1<a.phi2?[a.phi1,a.phi2]:-180>a.phi2?[a.phi2+360,a.phi1+360]:[a.phi2,a.phi1],m=([t,e])=>{const r=180*Math.atan2(e,t)/Math.PI;return r<c?r+360:r},p=d(n,-e,0).map(m);for(const t of p)t>c&&t<l&&u(y(a.cX,e,n,t));const g=d(i,-r,0).map(m);for(const t of g)t>c&&t<l&&h(y(a.cY,r,i,t))}return i});return n.minX=1/0,n.maxX=-1/0,n.minY=1/0,n.maxY=-1/0,n},REVERSE_PATH:function(t,e=!0){if(t.length<2)return t;const r=E.INFO((t,e,r)=>({...t,x:t.x??e,y:t.y??r,relative:t.relative??!1})),n=[];let i=[];for(const s of t){const t=r(s);t.type===j.MOVE_TO&&i.length>0&&(e?n.push(...v(i)):n.unshift(...v(i)),i=[]),i.push(t)}return i.length>0&&(e?n.push(...v(i)):n.unshift(...v(i))),n},REMOVE_COLLINEAR:function(t){if(t.length<=2)return t;const e=[],r=t.map(E.INFO((t,e,r)=>{const n="relative"in t&&t.relative;return["x"in t?t.x+(n?e:0):e,"y"in t?t.y+(n?r:0):r]}));let n=r[0];e.push(t[0]);for(let i=1;i<t.length;i++){const s=t[i],o=t[i+1];if(i<t.length-1&&o&&s.type&j.LINE_COMMANDS&&o.type&j.LINE_COMMANDS){const t=r[i+1];if(w(n,r[i],t)){"relative"in o&&o.relative&&("x"in o&&(o.x=t[0]-n[0]),"y"in o&&(o.y=t[1]-n[1]));continue}}e.push(s),n=r[i]}return e}};class P{round(t){return this.transform(E.ROUND(t))}toAbs(){return this.transform(E.TO_ABS())}toRel(){return this.transform(E.TO_REL())}normalizeHVZ(t,e,r){return this.transform(E.NORMALIZE_HVZ(t,e,r))}normalizeST(){return this.transform(E.NORMALIZE_ST())}qtToC(){return this.transform(E.QT_TO_C())}aToC(){return this.transform(E.A_TO_C())}sanitize(t){return this.transform(E.SANITIZE(t))}translate(t,e){return this.transform(E.TRANSLATE(t,e))}scale(t,e){return this.transform(E.SCALE(t,e))}rotate(t,e,r){return this.transform(E.ROTATE(t,e,r))}matrix(t,e,r,n,i,s){return this.transform(E.MATRIX(t,e,r,n,i,s))}skewX(t){return this.transform(E.SKEW_X(t))}skewY(t){return this.transform(E.SKEW_Y(t))}xSymmetry(t){return this.transform(E.X_AXIS_SYMMETRY(t))}ySymmetry(t){return this.transform(E.Y_AXIS_SYMMETRY(t))}annotateArcs(){return this.transform(E.ANNOTATE_ARCS())}}const M=t=>" "===t||"\t"===t||"\r"===t||"\n"===t,A=t=>"0".charCodeAt(0)<=t.charCodeAt(0)&&t.charCodeAt(0)<="9".charCodeAt(0);class T extends P{curNumber="";curCommandType=-1;curCommandRelative=!1;canParseCommandOrComma=!0;curNumberHasExp=!1;curNumberHasExpDigits=!1;curNumberHasDecimal=!1;curArgs=[];finish(t=[]){if(this.parse(" ",t),0!==this.curArgs.length||!this.canParseCommandOrComma)throw new SyntaxError("Unterminated command at the path end.");return t}parse(t,e=[]){const r=t=>{e.push(t),this.curArgs.length=0,this.canParseCommandOrComma=!0};for(let n=0;n<t.length;n++){const i=t[n],s=!(this.curCommandType!==j.ARC||3!==this.curArgs.length&&4!==this.curArgs.length||1!==this.curNumber.length||"0"!==this.curNumber&&"1"!==this.curNumber),o=A(i)&&("0"===this.curNumber&&"0"===i||s);if(!A(i)||o)if("e"!==i&&"E"!==i)if("-"!==i&&"+"!==i||!this.curNumberHasExp||this.curNumberHasExpDigits)if("."!==i||this.curNumberHasExp||this.curNumberHasDecimal||s){if(this.curNumber&&-1!==this.curCommandType){const t=Number(this.curNumber);if(isNaN(t))throw new SyntaxError(`Invalid number ending at ${n}`);if(this.curCommandType===j.ARC)if(0===this.curArgs.length||1===this.curArgs.length){if(0>t)throw new SyntaxError(`Expected positive number, got "${t}" at index "${n}"`)}else if((3===this.curArgs.length||4===this.curArgs.length)&&"0"!==this.curNumber&&"1"!==this.curNumber)throw new SyntaxError(`Expected a flag, got "${this.curNumber}" at index "${n}"`);this.curArgs.push(t),this.curArgs.length===C[this.curCommandType]&&(j.HORIZ_LINE_TO===this.curCommandType?r({type:j.HORIZ_LINE_TO,relative:this.curCommandRelative,x:t}):j.VERT_LINE_TO===this.curCommandType?r({type:j.VERT_LINE_TO,relative:this.curCommandRelative,y:t}):this.curCommandType===j.MOVE_TO||this.curCommandType===j.LINE_TO||this.curCommandType===j.SMOOTH_QUAD_TO?(r({type:this.curCommandType,relative:this.curCommandRelative,x:this.curArgs[0],y:this.curArgs[1]}),j.MOVE_TO===this.curCommandType&&(this.curCommandType=j.LINE_TO)):this.curCommandType===j.CURVE_TO?r({type:j.CURVE_TO,relative:this.curCommandRelative,x1:this.curArgs[0],y1:this.curArgs[1],x2:this.curArgs[2],y2:this.curArgs[3],x:this.curArgs[4],y:this.curArgs[5]}):this.curCommandType===j.SMOOTH_CURVE_TO?r({type:j.SMOOTH_CURVE_TO,relative:this.curCommandRelative,x2:this.curArgs[0],y2:this.curArgs[1],x:this.curArgs[2],y:this.curArgs[3]}):this.curCommandType===j.QUAD_TO?r({type:j.QUAD_TO,relative:this.curCommandRelative,x1:this.curArgs[0],y1:this.curArgs[1],x:this.curArgs[2],y:this.curArgs[3]}):this.curCommandType===j.ARC&&r({type:j.ARC,relative:this.curCommandRelative,rX:this.curArgs[0],rY:this.curArgs[1],xRot:this.curArgs[2],lArcFlag:this.curArgs[3],sweepFlag:this.curArgs[4],x:this.curArgs[5],y:this.curArgs[6]})),this.curNumber="",this.curNumberHasExpDigits=!1,this.curNumberHasExp=!1,this.curNumberHasDecimal=!1,this.canParseCommandOrComma=!0}if(!M(i))if(","===i&&this.canParseCommandOrComma)this.canParseCommandOrComma=!1;else if("+"!==i&&"-"!==i&&"."!==i)if(o)this.curNumber=i,this.curNumberHasDecimal=!1;else{if(0!==this.curArgs.length)throw new SyntaxError(`Unterminated command at index ${n}.`);if(!this.canParseCommandOrComma)throw new SyntaxError(`Unexpected character "${i}" at index ${n}. Command cannot follow comma`);if(this.canParseCommandOrComma=!1,"z"!==i&&"Z"!==i)if("h"===i||"H"===i)this.curCommandType=j.HORIZ_LINE_TO,this.curCommandRelative="h"===i;else if("v"===i||"V"===i)this.curCommandType=j.VERT_LINE_TO,this.curCommandRelative="v"===i;else if("m"===i||"M"===i)this.curCommandType=j.MOVE_TO,this.curCommandRelative="m"===i;else if("l"===i||"L"===i)this.curCommandType=j.LINE_TO,this.curCommandRelative="l"===i;else if("c"===i||"C"===i)this.curCommandType=j.CURVE_TO,this.curCommandRelative="c"===i;else if("s"===i||"S"===i)this.curCommandType=j.SMOOTH_CURVE_TO,this.curCommandRelative="s"===i;else if("q"===i||"Q"===i)this.curCommandType=j.QUAD_TO,this.curCommandRelative="q"===i;else if("t"===i||"T"===i)this.curCommandType=j.SMOOTH_QUAD_TO,this.curCommandRelative="t"===i;else{if("a"!==i&&"A"!==i)throw new SyntaxError(`Unexpected character "${i}" at index ${n}.`);this.curCommandType=j.ARC,this.curCommandRelative="a"===i}else e.push({type:j.CLOSE_PATH}),this.canParseCommandOrComma=!0,this.curCommandType=-1}else this.curNumber=i,this.curNumberHasDecimal="."===i}else this.curNumber+=i,this.curNumberHasDecimal=!0;else this.curNumber+=i;else this.curNumber+=i,this.curNumberHasExp=!0;else this.curNumber+=i,this.curNumberHasExpDigits=this.curNumberHasExp}return e}transform(t){return Object.create(this,{parse:{value(e,r=[]){const n=Object.getPrototypeOf(this).parse.call(this,e);for(const e of n){const n=t(e);Array.isArray(n)?r.push(...n):r.push(n)}return r}}})}}class j extends P{commands;constructor(t){super(),this.commands="string"==typeof t?j.parse(t):t}encode(){return j.encode(this.commands)}getBounds(){const t=E.CALCULATE_BOUNDS();return this.transform(t),t}transform(t){const e=[];for(const r of this.commands){const n=t(r);Array.isArray(n)?e.push(...n):e.push(n)}return this.commands=e,this}reverse(t=!0){return this.commands=E.REVERSE_PATH(this.commands,t),this}removeCollinear(){return this.commands=E.REMOVE_COLLINEAR(this.commands),this}static encode(t){return function(t){let e="";Array.isArray(t)||(t=[t]);for(let r=0;r<t.length;r++){const n=t[r];if(n.type===j.CLOSE_PATH)e+="z";else if(n.type===j.HORIZ_LINE_TO)e+=(n.relative?"h":"H")+n.x;else if(n.type===j.VERT_LINE_TO)e+=(n.relative?"v":"V")+n.y;else if(n.type===j.MOVE_TO)e+=(n.relative?"m":"M")+n.x+u+n.y;else if(n.type===j.LINE_TO)e+=(n.relative?"l":"L")+n.x+u+n.y;else if(n.type===j.CURVE_TO)e+=(n.relative?"c":"C")+n.x1+u+n.y1+u+n.x2+u+n.y2+u+n.x+u+n.y;else if(n.type===j.SMOOTH_CURVE_TO)e+=(n.relative?"s":"S")+n.x2+u+n.y2+u+n.x+u+n.y;else if(n.type===j.QUAD_TO)e+=(n.relative?"q":"Q")+n.x1+u+n.y1+u+n.x+u+n.y;else if(n.type===j.SMOOTH_QUAD_TO)e+=(n.relative?"t":"T")+n.x+u+n.y;else{if(n.type!==j.ARC)throw new Error(`Unexpected command type "${n?.type}" at index ${r}.`);e+=(n.relative?"a":"A")+n.rX+u+n.rY+u+n.xRot+u+ +n.lArcFlag+u+ +n.sweepFlag+u+n.x+u+n.y}}return e}(t)}static parse(t){const e=new T,r=[];return e.parse(t,r),e.finish(r),r}static CLOSE_PATH=1;static MOVE_TO=2;static HORIZ_LINE_TO=4;static VERT_LINE_TO=8;static LINE_TO=16;static CURVE_TO=32;static SMOOTH_CURVE_TO=64;static QUAD_TO=128;static SMOOTH_QUAD_TO=256;static ARC=512;static LINE_COMMANDS=j.LINE_TO|j.HORIZ_LINE_TO|j.VERT_LINE_TO;static DRAWING_COMMANDS=j.HORIZ_LINE_TO|j.VERT_LINE_TO|j.LINE_TO|j.CURVE_TO|j.SMOOTH_CURVE_TO|j.QUAD_TO|j.SMOOTH_QUAD_TO|j.ARC}const C={[j.MOVE_TO]:2,[j.LINE_TO]:2,[j.HORIZ_LINE_TO]:1,[j.VERT_LINE_TO]:1,[j.CLOSE_PATH]:0,[j.QUAD_TO]:4,[j.SMOOTH_QUAD_TO]:2,[j.CURVE_TO]:6,[j.SMOOTH_CURVE_TO]:4,[j.ARC]:7};var D=r(456);class I{static matching(t){if(t.type!==j.MOVE_TO)throw new Error('SVG path definition command is not of type "M".');if(t.relative)throw new Error("The input SVG path definition command is a relative command.");let e=new D.FinitePoint(t.x,t.y);return new I(e)}constructor(t){this.startPoint=t}get endPoint(){return this.startPoint}toString(){return`M ${this.startPoint.x} ${this.startPoint.y}`}}class k extends D.FinitePoint{drag(t,e){t*=2,e*=2,super.drag(t,e)}}class F{static matching(t){if(t.type!==j.LINE_TO&&t.type!==j.QUAD_TO&&t.type!==j.CURVE_TO)throw new Error('Trailing segments can only be created for "L", "Q" and "C" SVG path definition commands.');if(t.relative)throw new Error("The input SVG path definition command is a relative command.");var e=[];t.type!==j.QUAD_TO&&t.type!==j.CURVE_TO||e.push(new k(t.x1,t.y1)),t.type===j.CURVE_TO&&e.push(new k(t.x2,t.y2));var r=new D.FinitePoint(t.x,t.y);return new F(e,r)}constructor(t,e){this.controlPoints=t,this.endPoint=e}toString(){if(this.controlPoints.length>2)throw new Error(`There can only be at most 2 control points: ${this.controlPoints.length} control points.`);return(0==this.controlPoints.length?"L":1==this.controlPoints.length?"Q":"C")+" "+this.controlPoints.map(t=>`${t.x} ${t.y}`).join(" ")+" "+`${this.endPoint.x} ${this.endPoint.y}`}}var L,B=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class V{constructor(t,e){this.startPoint=t,L.set(this,void 0),function(t,e,r){if("function"==typeof e||!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");e.set(t,r)}(this,L,e)}get controlPoints(){return B(this,L,"f").controlPoints}get endPoint(){return B(this,L,"f").endPoint}closestPoint(e){return new t.AbstractPath(`M ${this.startPoint.x} ${this.startPoint.y} ${B(this,L,"f").toString()}`).closestPoint(e)}}L=new WeakMap;var R,z=r(725),X=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class G{constructor(t){R.set(this,void 0),function(t,e,r){if("function"==typeof e||!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");e.set(t,r)}(this,R,t)}closest(t){if(0==X(this,R,"f").length)throw new Error("This points collection is empty.");let e=[...X(this,R,"f")];return e.sort((e,r)=>(0,z.distance)(e,t)-(0,z.distance)(r,t)),e[0]}}R=new WeakMap;var U,Y,W=r(106),$=r(854),q=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class H{static matching(t){let e=J.create();if(!(0,$.isString)(t))return e;try{let e=new j(t);e=e.toAbs();let r=I.matching(e.commands[0]),n=[F.matching(e.commands[1]),...e.commands.slice(2).map(t=>F.matching(t))];return new H(r,n)}catch{return e}}constructor(t,e){U.add(this),this.moveToSegment=t,this.trailingSegments=e}get segments(){return[this.moveToSegment,this.trailingSegments[0],...this.trailingSegments.slice(1)]}get definingPoints(){return{toArray:()=>[this.startPoint,...this.trailingSegments.flatMap(t=>[...t.controlPoints,t.endPoint])],anchored:()=>[this.startPoint.deepCopy(),...q(this,U,"a",Y).flatMap(t=>[...t.controlPoints.map(e=>t.closestPoint(e)),t.endPoint.deepCopy()])]}}get startPoint(){return this.moveToSegment.startPoint}get interveningPoints(){return[...this.trailingSegments.slice(0,-1).flatMap(t=>[...t.controlPoints,t.endPoint]),...(0,W.last)(this.trailingSegments).controlPoints]}get controlPoints(){return this.trailingSegments.flatMap(t=>t.controlPoints)}get endPoint(){if(0==this.trailingSegments.length)throw new Error("This SVG path definition has no trailing segments.");return(0,W.last)(this.trailingSegments).endPoint}toString(){return this.segments.map(t=>t.toString()).join(" ")}drag(t,e,r){let n=new G(this.definingPoints.toArray()).closest(r.dragPoint);this.controlPoints.includes(n)&&(t*=2,e*=2),n.displace({x:t,y:e})}}U=new WeakSet,Y=function(){return[new V(this.startPoint,this.trailingSegments[0]),...(0,W.consecutivePairs)(this.trailingSegments).map(([t,e])=>new V(t.endPoint,e))]};const J={create:()=>{let t=new j("M 0 0 Q 0 0 0 0");if(t.commands.length<2)throw new Error("Unable to create default SVG path definition.");let e=I.matching(t.commands[0]),r=[F.matching(t.commands[1])];return new H(e,r)}};var K=r(277);class Q{static from(t){let e,r=new Q(0,0);if(!(0,$.isString)(t))return r;try{e=JSON.parse(t)}catch{return r}return(0,K.isVectorLike)(e)?Q.matching(e):r}static matching(t){let e=K.Vector.matching(t);return new Q(e.magnitude,e.direction)}constructor(t,e){this.magnitude=t,this.direction=e}toJSON(){return JSON.stringify({magnitude:this.magnitude,direction:this.direction})}}var Z,tt,et,rt,nt,it,st,ot,at,ut,ht=r(986),ct=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class lt{static between(t,r){let n=t.domNode.getBBox().height,i=r.domNode.getBBox().height,s=document.createElementNS("http://www.w3.org/2000/svg","path");s.id="id-"+(e.randomUUID?e.randomUUID():a(void 0,void 0,void 0)),s.setAttribute("stroke","red"),s.setAttribute("stroke-width",""+.146*(0,ht.mean)([n,i])),s.setAttribute("stroke-opacity","1"),s.setAttribute("stroke-dasharray","3 1.5"),s.setAttribute("stroke-linecap",""),s.setAttribute("stroke-linejoin",""),s.setAttribute("fill","none");let o=(0,D.midpoint)(t.centerPoint,r.centerPoint);s.setAttribute("d",`M ${t.centerPoint.x} ${t.centerPoint.y} Q ${o.x} ${o.y} ${r.centerPoint.x} ${r.centerPoint.y}`);let u=new lt(s,t,r);u.basePadding1.magnitude=.591*n,u.basePadding2.magnitude=.591*i,u.basePadding1.direction=-Math.PI/8,u.basePadding2.direction=Math.PI/8;let h=H.matching(u.domNode.getAttribute("d"));return o=(0,D.midpoint)(h.startPoint,h.endPoint),h.trailingSegments[0].controlPoints[0]=D.FinitePoint.matching(o.displaced({magnitude:.2*(0,z.distance)(h.startPoint,h.endPoint),direction:(0,z.direction)(h.startPoint,h.endPoint)-Math.PI/2})),u.domNode.setAttribute("d",h.toString()),u}constructor(t,e,r){Z.add(this),this.domNode=t,this.base1=e,this.base2=r,tt.set(this,void 0),et.set(this,{change:[]}),t.dataset.basePadding1||t.dataset.basePadding2||ct(this,Z,"m",it).call(this),e.addEventListener("change",()=>ct(this,Z,"m",nt).call(this)),r.addEventListener("change",()=>ct(this,Z,"m",nt).call(this)),function(t,e,r){if("function"==typeof e||!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");e.set(t,r)}(this,tt,new MutationObserver(()=>ct(this,Z,"m",rt).call(this,"change"))),ct(this,tt,"f").observe(t,{attributes:!0,subtree:!0})}get id(){return this.domNode.id}binds(t){return t===this.base1||t===this.base2}get basePadding1(){let t=()=>Q.from(this.domNode.dataset.basePadding1),e=(t,e)=>{let r=new Q(t,e);this.domNode.dataset.basePadding1=r.toJSON(),ct(this,Z,"m",nt).call(this)},r=()=>t().magnitude,n=()=>t().direction;return{get magnitude(){return r()},set magnitude(t){(t=>{e(t,n())})(t)},get direction(){return n()},set direction(t){(t=>{e(r(),t)})(t)}}}get basePadding2(){let t=()=>Q.from(this.domNode.dataset.basePadding2),e=(t,e)=>{let r=new Q(t,e);this.domNode.dataset.basePadding2=r.toJSON(),ct(this,Z,"m",nt).call(this)},r=()=>t().magnitude,n=()=>t().direction;return{get magnitude(){return r()},set magnitude(t){(t=>{e(t,n())})(t)},get direction(){return n()},set direction(t){(t=>{e(r(),t)})(t)}}}get length(){return this.domNode.getTotalLength()}atLength(t){let e=(t=(t=t<0?0:t)>this.length?this.length:t)-.005,r=t+.005;e=(0,ht.max)([e,0]),r=(0,ht.min)([r,this.length]);let n=D.Point.matching(this.domNode.getPointAtLength(e)),i=D.Point.matching(this.domNode.getPointAtLength(r)),s=(0,D.midpoint)(n,i),o=n.directionTo(i);return o=Number.isFinite(o)?o:0,{x:s.x,y:s.y,direction:o}}closestPoint(e){return new t.Path(this.domNode).closestPoint(e)}get definingPoints(){let t=H.matching(this.domNode.getAttribute("d"));return{toArray:()=>t.definingPoints.toArray(),closest:e=>new G(t.definingPoints.toArray()).closest(e),anchored:()=>({closest:t=>{let e=H.matching(this.domNode.getAttribute("d")).definingPoints.anchored(),r=[...e].sort((e,r)=>(0,z.distance)(e,t)-(0,z.distance)(r,t)),n=e.indexOf(r[0]);return{drag:(t,e)=>{let r=H.matching(this.domNode.getAttribute("d")),i=r.definingPoints.toArray()[n];if(!i)throw new Error("The reference to the closest defining point was lost.");i.drag(t,e),this.domNode.setAttribute("d",r.toString()),ct(this,Z,"m",it).call(this)}}}})}}drag(t,e,r){var n;let i=null==r?void 0:r.dragGroup;if((null==i?void 0:i.has(this.base1.domNode))||(null==i?void 0:i.has(this.base2.domNode)))return;let s=null!==(n=null==r?void 0:r.dragPoint)&&void 0!==n?n:this.domNode.getPointAtLength(this.domNode.getTotalLength()/2),o=H.matching(this.domNode.getAttribute("d"));o.drag(t,e,{dragPoint:s}),this.domNode.setAttribute("d",o.toString()),ct(this,Z,"m",it).call(this)}addEventListener(t,e){ct(this,et,"f")[t].push(e)}removeEventListener(t,e){ct(this,et,"f")[t]=ct(this,et,"f")[t].filter(t=>t!==e)}remove(){this.domNode.remove()}save(){return{id:this.id,baseID1:this.base1.id,baseID2:this.base2.id}}static recreate(t,e){var r,n,i;if(!(0,$.isNonNullObject)(t))throw new Error(`Saved curved bond isn't an object: ${t}.`);let s=null!==(r=t.id)&&void 0!==r?r:t.pathId;if(!(0,$.isString)(s))throw new Error(`Saved curved bond ID isn't a string: ${s}.`);let o=null!==(n=t.baseID1)&&void 0!==n?n:t.baseId1,a=null!==(i=t.baseID2)&&void 0!==i?i:t.baseId2;if(!(0,$.isString)(o))throw new Error(`Saved curved bond base 1 ID isn't a string: ${o}.`);if(!(0,$.isString)(a))throw new Error(`Saved curved bond base 2 ID isn't a string: ${a}.`);let u=e.domNode.querySelector("#"+s);if(!u)throw new Error("Unable to find saved curved bond DOM node in parent drawing by ID.");if(!(u instanceof SVGPathElement))throw new Error(`Saved curved bond DOM node isn't an SVG path element: ${u}.`);let h=[...e.bases],c=h.find(t=>t.id===o),l=h.find(t=>t.id===a);if(!c)throw new Error("Unable to find base 1 in parent drawing.");if(!l)throw new Error("Unable to find base 2 in parent drawing.");return new lt(u,c,l)}}tt=new WeakMap,et=new WeakMap,Z=new WeakSet,rt=function(t){for(let e of ct(this,et,"f")[t])e()},nt=function(){let t=Q.from(this.domNode.dataset.basePadding1),e=Q.from(this.domNode.dataset.basePadding2);t=ct(this,Z,"m",st).call(this,t),e=ct(this,Z,"m",ot).call(this,e);let r=H.matching(this.domNode.getAttribute("d")),n=(0,D.midpoint)(r.startPoint,r.endPoint),i=r.interveningPoints.map(t=>[t,n.displacementTo(t)]);i.forEach(([t,e])=>e.direction-=(0,z.direction)(r.startPoint,r.endPoint)),r.startPoint.set(D.Point.matching(this.base1.centerPoint).displaced(t)),r.endPoint.set(D.Point.matching(this.base2.centerPoint).displaced(e)),n=(0,D.midpoint)(r.startPoint,r.endPoint),i.forEach(([t,e])=>e.direction+=(0,z.direction)(r.startPoint,r.endPoint)),i.forEach(([t,e])=>t.set(n.displaced(e))),this.domNode.setAttribute("d",r.toString())},it=function(){let t=H.matching(this.domNode.getAttribute("d")),e=Q.matching(D.Point.matching(this.base1.centerPoint).displacementTo(t.startPoint)),r=Q.matching(D.Point.matching(this.base2.centerPoint).displacementTo(t.endPoint));e=ct(this,Z,"m",at).call(this,e),r=ct(this,Z,"m",ut).call(this,r),this.domNode.dataset.basePadding1=e.toJSON(),this.domNode.dataset.basePadding2=r.toJSON()},st=function(t){let e=Q.matching(t);return e.direction+=(0,z.direction)(this.base1.centerPoint,this.base2.centerPoint),e},ot=function(t){let e=Q.matching(t);return e.direction+=(0,z.direction)(this.base2.centerPoint,this.base1.centerPoint),e},at=function(t){let e=Q.matching(t);return e.direction-=(0,z.direction)(this.base1.centerPoint,this.base2.centerPoint),e},ut=function(t){let e=Q.matching(t);return e.direction-=(0,z.direction)(this.base2.centerPoint,this.base1.centerPoint),e}})(),n})(),t.exports=e()},726(t){var e;e=()=>(()=>{var t={725(t){t.exports=(()=>{var t={986:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){var e=0;return t.forEach(function(t){return e+=t}),e}function n(t){return r(t)/t.length}function i(t){t.sort(function(t,e){return t-e})}t.r(e),t.d(e,{areWithin:()=>f,average:()=>n,degrees:()=>p,isBetweenExclusive:()=>l,isBetweenInclusive:()=>c,max:()=>h,mean:()=>n,median:()=>a,min:()=>u,radians:()=>y,sortNumbers:()=>i,sortNumbersAscending:()=>i,sortNumbersDescending:()=>d,sortedNumbers:()=>o,sortedNumbersAscending:()=>o,sortedNumbersDescending:()=>m,sum:()=>r});var s=function(t,e,r){if(r||2===arguments.length)for(var n,i=0,s=e.length;i<s;i++)!n&&i in e||(n||(n=Array.prototype.slice.call(e,0,i)),n[i]=e[i]);return t.concat(n||Array.prototype.slice.call(e))};function o(t){var e=s([],t,!0);return i(e),e}function a(t){if(0==t.length)return NaN;var e=o(t);if(e.length%2!=0)return e[Math.floor(e.length/2)];var r=e.length/2,i=r-1;return n([e[r],e[i]])}function u(t){if(0==t.length)return 1/0;var e=t[0];return t.slice(1).forEach(function(t){e=Math.min(e,t)}),e}function h(t){if(0==t.length)return-1/0;var e=t[0];return t.slice(1).forEach(function(t){e=Math.max(e,t)}),e}function c(t,e,r){return t>=e&&t<=r}function l(t,e,r){return t>e&&t<r}function f(t,e,r){return Math.abs(t-e)<=r}function d(t){i(t),t.reverse()}function m(t){var e=o(t);return e.reverse(),e}function p(t){return t*(180/Math.PI)}function y(t){return t*(Math.PI/180)}return e})()},854:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){return"number"==typeof t}function n(t){return r(t)&&Number.isFinite(t)}function i(t){return r(t)&&!Number.isFinite(t)}function s(t){return n(t)&&t>0}function o(t){return n(t)&&t>=0}function a(t){return"string"==typeof t}function u(t){return null==t}function h(t){return"object"==typeof t&&null!==t}function c(t){return Array.isArray(t)}return t.r(e),t.d(e,{isArray:()=>c,isFiniteNumber:()=>n,isNonFiniteNumber:()=>i,isNonNegativeFiniteNumber:()=>o,isNonNullObject:()=>h,isNullish:()=>u,isNumber:()=>r,isPositiveFiniteNumber:()=>s,isString:()=>a}),e})()},30:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){return Math.pow(Math.pow(t.x,2)+Math.pow(t.y,2),.5)}function n(t){return Math.atan2(t.y,t.x)}return t.r(e),t.d(e,{direction:()=>n,magnitude:()=>r}),e})()}},e={};function r(n){var i=e[n];if(void 0!==i)return i.exports;var s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,r),s.exports}r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var n={};return(()=>{"use strict";r.r(n),r.d(n,{areWithin:()=>a,centroid:()=>d,deepCopy:()=>s,direction:()=>l,displaced:()=>h,displacement:()=>u,distance:()=>o,isFinitePoint:()=>i,isPoint:()=>e,midpoint:()=>m});var t=r(854);function e(e){return(0,t.isNonNullObject)(e)&&(0,t.isNumber)(e.x)&&(0,t.isNumber)(e.y)}function i(r){return e(r)&&(0,t.isFiniteNumber)(r.x)&&(0,t.isFiniteNumber)(r.y)}function s(t){return{x:t.x,y:t.y}}function o(t,e){var r=e.x-t.x,n=e.y-t.y;return Math.pow(Math.pow(r,2)+Math.pow(n,2),.5)}function a(t,e,r){return o(t,e)<=r}function u(t,e){return{x:e.x-t.x,y:e.y-t.y}}function h(t,e){return{x:t.x+e.x,y:t.y+e.y}}var c=r(30);function l(t,e){return(0,c.direction)(u(t,e))}var f=r(986);function d(t){return{x:(0,f.mean)(t.map(function(t){return t.x})),y:(0,f.mean)(t.map(function(t){return t.y}))}}function m(t,e){return d([t,e])}})(),n})()},854(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){return"number"==typeof t}function n(t){return r(t)&&Number.isFinite(t)}function i(t){return r(t)&&!Number.isFinite(t)}function s(t){return n(t)&&t>0}function o(t){return n(t)&&t>=0}function a(t){return"string"==typeof t}function u(t){return""===t}function h(t){return a(t)&&!u(t)}function c(t){return!!a(t)&&0==t.trim().length}function l(t){if(!a(t))return!1;try{return JSON.parse(t),!0}catch{return!1}}function f(t){try{return JSON.stringify(t),!0}catch{return!1}}function d(t){return!!t}function m(t){return!t}function p(t){return null==t}function y(t){return"object"==typeof t&&null!==t}function g(t){return Array.isArray(t)}function b(t){return g(t)&&0==t.length}function w(t){return g(t)&&t.length>0}function v(t){return g(t)&&t.every(r)}function x(t){return v(t)&&t.length>0}function N(t){return g(t)&&t.every(n)}function S(t){return g(t)&&t.every(i)}function _(t){return g(t)&&t.every(a)}function O(t){return _(t)&&t.length>0}function E(t){return t instanceof SVGGraphicsElement}return t.r(e),t.d(e,{isArray:()=>g,isEmptyArray:()=>b,isEmptyString:()=>u,isFalsy:()=>m,isFiniteNumber:()=>n,isFiniteNumbersArray:()=>N,isJSON:()=>l,isJSONSerializable:()=>f,isNonEmptyArray:()=>w,isNonEmptyNumbersArray:()=>x,isNonEmptyString:()=>h,isNonEmptyStringsArray:()=>O,isNonFiniteNumber:()=>i,isNonFiniteNumbersArray:()=>S,isNonNegativeFiniteNumber:()=>o,isNonNullObject:()=>y,isNullish:()=>p,isNumber:()=>r,isNumbersArray:()=>v,isPositiveFiniteNumber:()=>s,isSVGGraphicsElement:()=>E,isString:()=>a,isStringsArray:()=>_,isTruthy:()=>d,isWhitespace:()=>c}),e})()}};const e={};function r(n){const i=e[n];if(void 0!==i)return i.exports;const s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,r),s.exports}r.d=(t,e)=>{if(Array.isArray(e))for(var n=0;n<e.length;){var i=e[n++],s=e[n++];r.o(t,i)?0===s&&n++:0===s?Object.defineProperty(t,i,{enumerable:!0,value:e[n++]}):Object.defineProperty(t,i,{enumerable:!0,get:s})}else for(var i in e)r.o(e,i)&&!r.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};let n={};return(()=>{"use strict";r.r(n),r.d(n,{AbstractPath:()=>s,CoordinateSystem:()=>y,HorizontalClientScaling:()=>b,InnerXML:()=>_,OuterXML:()=>P,Path:()=>i,Scaling:()=>g,VerticalClientScaling:()=>w,assignUUID:()=>p,bringToFront:()=>v,drawOnCanvas:()=>j,isSVGGraphicsElement:()=>M,isSVGGraphicsElementsArray:()=>T,sendToBack:()=>x,setAttributes:()=>h});var t,e=r(725);class i{constructor(t){this.domNode=t}closestPoint(t){let r=this.domNode.getTotalLength(),n=[];for(let i=0;i<=16;i++){let s=i/16*r;n.push([s,(0,e.distance)(t,this.domNode.getPointAtLength(s))])}n.sort((t,e)=>t[1]-e[1]);let i=n[0],s=i[0]-r/16,o=i[0]+r/16;s=Math.max(0,s),o=Math.min(r,o);for(let r=0;r<20;r++){let r=(o-s)/3;(0,e.distance)(t,this.domNode.getPointAtLength(s))<(0,e.distance)(t,this.domNode.getPointAtLength(o))?o-=r:s+=r}let a=(s+o)/2,u=this.domNode.getPointAtLength(a);return{x:u.x,y:u.y,length:a}}}class s{constructor(e){t.set(this,void 0),function(t,e,r){if("function"==typeof e||!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");e.set(t,r)}(this,t,e)}closestPoint(e){return document.body.contains(a)||document.body.append(a),u.setAttribute("d",function(t,e){if("function"==typeof e||!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return e.get(t)}(this,t)),new i(u).closestPoint(e)}}t=new WeakMap;const o=document.createElementNS("http://www.w3.org/2000/svg","svg");o.setAttribute("viewBox","0 0 100 100"),o.setAttribute("width","100"),o.setAttribute("height","100");const a=document.createElement("div");a.append(o),a.style.height="0px",a.style.position="fixed",document.body.append(a);const u=document.createElementNS("http://www.w3.org/2000/svg","path");function h(t,e){for(let[r,n]of Object.entries(e))t.setAttribute(r,n)}u.setAttribute("stroke","black"),u.setAttribute("stroke-width","1"),o.append(u);const c={randomUUID:"undefined"!=typeof crypto&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};let l;const f=new Uint8Array(16),d=[];for(let t=0;t<256;++t)d.push((t+256).toString(16).slice(1));const m=function(t,e,r){return!c.randomUUID||e||t?function(t,e,r){const n=(t=t||{}).random??t.rng?.()??function(){if(!l){if("undefined"==typeof crypto||!crypto.getRandomValues)throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");l=crypto.getRandomValues.bind(crypto)}return l(f)}();if(n.length<16)throw new Error("Random bytes length must be >= 16");if(n[6]=15&n[6]|64,n[8]=63&n[8]|128,e){if((r=r||0)<0||r+16>e.length)throw new RangeError(`UUID byte range ${r}:${r+15} is out of buffer bounds`);for(let t=0;t<16;++t)e[r+t]=n[t];return e}return function(t,e=0){return(d[t[e+0]]+d[t[e+1]]+d[t[e+2]]+d[t[e+3]]+"-"+d[t[e+4]]+d[t[e+5]]+"-"+d[t[e+6]]+d[t[e+7]]+"-"+d[t[e+8]]+d[t[e+9]]+"-"+d[t[e+10]]+d[t[e+11]]+d[t[e+12]]+d[t[e+13]]+d[t[e+14]]+d[t[e+15]]).toLowerCase()}(n)}(t,e,r):c.randomUUID()};function p(t){t.id="uuid-"+m()}class y{constructor(t){this.targetSVGDoc=t}get width(){return this.targetSVGDoc.viewBox.baseVal.width}get height(){return this.targetSVGDoc.viewBox.baseVal.height}get minX(){return this.targetSVGDoc.viewBox.baseVal.x}get maxX(){return this.minX+this.width}get minY(){return this.targetSVGDoc.viewBox.baseVal.y}get maxY(){return this.minY+this.height}get horizontalScaling(){return this.targetSVGDoc.width.baseVal.value/this.width}get verticalScaling(){return this.targetSVGDoc.height.baseVal.value/this.height}setScaling(t){this.targetSVGDoc.setAttribute("width",""+t*this.width),this.targetSVGDoc.setAttribute("height",""+t*this.height)}get clientWidth(){return this.targetSVGDoc.getBoundingClientRect().width}get clientHeight(){return this.targetSVGDoc.getBoundingClientRect().height}get horizontalClientScaling(){return this.clientWidth/this.width}get verticalClientScaling(){return this.clientHeight/this.height}get minClientX(){return this.targetSVGDoc.getBoundingClientRect().x}get minClientY(){return this.targetSVGDoc.getBoundingClientRect().y}fromClientX(t){return this.minX+(t-this.minClientX)/this.horizontalClientScaling}fromClientY(t){return this.minY+(t-this.minClientY)/this.verticalClientScaling}fromClientCoordinates(t,e){return[this.fromClientX(t),this.fromClientY(e)]}fromClientPoint(t){return{x:this.fromClientX(t.x),y:this.fromClientY(t.y)}}toClientX(t){return this.minClientX+this.horizontalClientScaling*(t-this.minX)}toClientY(t){return this.minClientY+this.verticalClientScaling*(t-this.minY)}toClientCoordinates(t,e){return[this.toClientX(t),this.toClientY(e)]}toClientPoint(t){return{x:this.toClientX(t.x),y:this.toClientY(t.y)}}}class g{constructor(t){this.targetSVGDoc=t}set(t){let e=this.targetSVGDoc.viewBox.baseVal;this.targetSVGDoc.setAttribute("width",t*e.width+"px"),this.targetSVGDoc.setAttribute("height",t*e.height+"px")}}class b{constructor(t){this.targetSVGDoc=t}get(){let t=this.targetSVGDoc.getBoundingClientRect(),e=this.targetSVGDoc.viewBox.baseVal;return t.width/e.width}}class w{constructor(t){this.targetSVGDoc=t}get(){let t=this.targetSVGDoc.getBoundingClientRect(),e=this.targetSVGDoc.viewBox.baseVal;return t.height/e.height}}function v(t){let e=t.parentNode;e&&e.appendChild(t)}function x(t){let e=t.parentNode;e&&e.prepend(t)}var N,S=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class _{constructor(t){N.set(this,void 0),function(t,e,r){if("function"==typeof e||!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");e.set(t,r)}(this,N,t)}toString(){return S(this,N,"f").innerHTML}set(t){S(this,N,"f").innerHTML=t}}N=new WeakMap;var O,E=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class P{constructor(t){O.set(this,void 0),function(t,e,r){if("function"==typeof e||!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");e.set(t,r)}(this,O,t)}toString(){return E(this,O,"f").outerHTML}set(t){let e=document.createElementNS("http://www.w3.org/2000/svg","svg");if(e.style.height="0px",document.body.append(e),e.innerHTML=t,!e.firstElementChild)throw new Error("Outer XML must encode an SVG element.");if(e.childNodes.length>1)throw new Error("Outer XML cannot encode multiple DOM nodes.");if(e.firstElementChild.tagName.toLowerCase()!=E(this,O,"f").tagName.toLowerCase())throw new Error("Outer XML must specify an SVG element with the same tag name as the target SVG element.");[...E(this,O,"f").attributes].forEach(t=>E(this,O,"f").removeAttribute(t.name)),[...e.firstElementChild.attributes].forEach(t=>E(this,O,"f").setAttribute(t.name,t.value)),E(this,O,"f").innerHTML=e.firstElementChild.innerHTML,e.remove()}}function M(t){return t instanceof SVGGraphicsElement}O=new WeakMap;var A=r(854);function T(t){return(0,A.isArray)(t)&&t.every(M)}async function j(t){let e=document.createElement("canvas");e.style.position="fixed",e.style.display="none",e.style.pointerEvents="none",document.body.append(e),e.width=t.width.baseVal.value,e.height=t.height.baseVal.value;let r=e.getContext("2d");if(!r)throw new Error("Unable to get canvas context.");let n=(new XMLSerializer).serializeToString(t),i=new Image;return i.src="data:image/svg+xml;charset=utf-8,"+encodeURIComponent(n),await i.decode(),r.drawImage(i,0,0,t.width.baseVal.value,t.height.baseVal.value),e.remove(),e.style.position="",e.style.display="",e.style.pointerEvents="",e}})(),n})(),t.exports=e()},725(t){t.exports=(()=>{var t={986:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){var e=0;return t.forEach(function(t){return e+=t}),e}function n(t){return r(t)/t.length}function i(t){t.sort(function(t,e){return t-e})}t.r(e),t.d(e,{areWithin:()=>f,average:()=>n,degrees:()=>p,isBetweenExclusive:()=>l,isBetweenInclusive:()=>c,max:()=>h,mean:()=>n,median:()=>a,min:()=>u,radians:()=>y,sortNumbers:()=>i,sortNumbersAscending:()=>i,sortNumbersDescending:()=>d,sortedNumbers:()=>o,sortedNumbersAscending:()=>o,sortedNumbersDescending:()=>m,sum:()=>r});var s=function(t,e,r){if(r||2===arguments.length)for(var n,i=0,s=e.length;i<s;i++)!n&&i in e||(n||(n=Array.prototype.slice.call(e,0,i)),n[i]=e[i]);return t.concat(n||Array.prototype.slice.call(e))};function o(t){var e=s([],t,!0);return i(e),e}function a(t){if(0==t.length)return NaN;var e=o(t);if(e.length%2!=0)return e[Math.floor(e.length/2)];var r=e.length/2,i=r-1;return n([e[r],e[i]])}function u(t){if(0==t.length)return 1/0;var e=t[0];return t.slice(1).forEach(function(t){e=Math.min(e,t)}),e}function h(t){if(0==t.length)return-1/0;var e=t[0];return t.slice(1).forEach(function(t){e=Math.max(e,t)}),e}function c(t,e,r){return t>=e&&t<=r}function l(t,e,r){return t>e&&t<r}function f(t,e,r){return Math.abs(t-e)<=r}function d(t){i(t),t.reverse()}function m(t){var e=o(t);return e.reverse(),e}function p(t){return t*(180/Math.PI)}function y(t){return t*(Math.PI/180)}return e})()},854:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){return"number"==typeof t}function n(t){return r(t)&&Number.isFinite(t)}function i(t){return r(t)&&!Number.isFinite(t)}function s(t){return n(t)&&t>0}function o(t){return n(t)&&t>=0}function a(t){return"string"==typeof t}function u(t){return null==t}function h(t){return"object"==typeof t&&null!==t}function c(t){return Array.isArray(t)}return t.r(e),t.d(e,{isArray:()=>c,isFiniteNumber:()=>n,isNonFiniteNumber:()=>i,isNonNegativeFiniteNumber:()=>o,isNonNullObject:()=>h,isNullish:()=>u,isNumber:()=>r,isPositiveFiniteNumber:()=>s,isString:()=>a}),e})()},30:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){return Math.pow(Math.pow(t.x,2)+Math.pow(t.y,2),.5)}function n(t){return Math.atan2(t.y,t.x)}return t.r(e),t.d(e,{direction:()=>n,magnitude:()=>r}),e})()}},e={};function r(n){var i=e[n];if(void 0!==i)return i.exports;var s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,r),s.exports}r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var n={};return(()=>{"use strict";r.r(n),r.d(n,{areWithin:()=>a,centroid:()=>d,deepCopy:()=>s,direction:()=>l,displaced:()=>h,displacement:()=>u,distance:()=>o,isFinitePoint:()=>i,isPoint:()=>e,midpoint:()=>m});var t=r(854);function e(e){return(0,t.isNonNullObject)(e)&&(0,t.isNumber)(e.x)&&(0,t.isNumber)(e.y)}function i(r){return e(r)&&(0,t.isFiniteNumber)(r.x)&&(0,t.isFiniteNumber)(r.y)}function s(t){return{x:t.x,y:t.y}}function o(t,e){var r=e.x-t.x,n=e.y-t.y;return Math.pow(Math.pow(r,2)+Math.pow(n,2),.5)}function a(t,e,r){return o(t,e)<=r}function u(t,e){return{x:e.x-t.x,y:e.y-t.y}}function h(t,e){return{x:t.x+e.x,y:t.y+e.y}}var c=r(30);function l(t,e){return(0,c.direction)(u(t,e))}var f=r(986);function d(t){return{x:(0,f.mean)(t.map(function(t){return t.x})),y:(0,f.mean)(t.map(function(t){return t.y}))}}function m(t,e){return d([t,e])}})(),n})()},854(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){return"number"==typeof t}function n(t){return r(t)&&Number.isFinite(t)}function i(t){return r(t)&&!Number.isFinite(t)}function s(t){return n(t)&&t>0}function o(t){return n(t)&&t>=0}function a(t){return"string"==typeof t}function u(t){return""===t}function h(t){return a(t)&&!u(t)}function c(t){return!!a(t)&&0==t.trim().length}function l(t){if(!a(t))return!1;try{return JSON.parse(t),!0}catch{return!1}}function f(t){try{return JSON.stringify(t),!0}catch{return!1}}function d(t){return!!t}function m(t){return!t}function p(t){return null==t}function y(t){return"object"==typeof t&&null!==t}function g(t){return Array.isArray(t)}function b(t){return g(t)&&0==t.length}function w(t){return g(t)&&t.length>0}function v(t){return g(t)&&t.every(r)}function x(t){return v(t)&&t.length>0}function N(t){return g(t)&&t.every(n)}function S(t){return g(t)&&t.every(i)}function _(t){return g(t)&&t.every(a)}function O(t){return _(t)&&t.length>0}function E(t){return t instanceof SVGGraphicsElement}return t.r(e),t.d(e,{isArray:()=>g,isEmptyArray:()=>b,isEmptyString:()=>u,isFalsy:()=>m,isFiniteNumber:()=>n,isFiniteNumbersArray:()=>N,isJSON:()=>l,isJSONSerializable:()=>f,isNonEmptyArray:()=>w,isNonEmptyNumbersArray:()=>x,isNonEmptyString:()=>h,isNonEmptyStringsArray:()=>O,isNonFiniteNumber:()=>i,isNonFiniteNumbersArray:()=>S,isNonNegativeFiniteNumber:()=>o,isNonNullObject:()=>y,isNullish:()=>p,isNumber:()=>r,isNumbersArray:()=>v,isPositiveFiniteNumber:()=>s,isSVGGraphicsElement:()=>E,isString:()=>a,isStringsArray:()=>_,isTruthy:()=>d,isWhitespace:()=>c}),e})()}};const e={};function r(n){const i=e[n];if(void 0!==i)return i.exports;const s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,r),s.exports}r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};let n={};return(()=>{"use strict";r.r(n),r.d(n,{CurvedBond:()=>bi.CurvedBond,InvertedStraightBondsHider:()=>Ni,MissingPrimaryBondsAdder:()=>xi,StraightBond:()=>di});var t=Object.create,e=Object.defineProperty,i=Object.getOwnPropertyDescriptor,s=Object.getOwnPropertyNames,o=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,u=(t,e)=>()=>(e||(t((e={exports:{}}).exports,e),t=null),e.exports),h=(t,r)=>{let n={};for(var i in t)e(n,i,{get:t[i],enumerable:!0});return r||e(n,Symbol.toStringTag,{value:"Module"}),n};const c={},l=[];function f(t,e){if(Array.isArray(t))for(const r of t)f(r,e);else if("object"!=typeof t)m(Object.getOwnPropertyNames(e)),c[t]=Object.assign(c[t]||{},e);else for(const e in t)f(e,t[e])}function d(t){return c[t]||{}}function m(t){l.push(...t)}var p=u((t,e)=>{e.exports=function(t){try{return!!t()}catch(t){return!0}}}),y=u((t,e)=>{var r=p();e.exports=!r(function(){var t=function(){}.bind();return"function"!=typeof t||t.hasOwnProperty("prototype")})}),g=u((t,e)=>{var r=y(),n=Function.prototype,i=n.call,s=r&&n.bind.bind(i,i);e.exports=r?s:function(t){return function(){return i.apply(t,arguments)}}}),b=u((t,e)=>{var r=g();e.exports=r({}.isPrototypeOf)}),w=u((t,e)=>{var n=function(t){return t&&t.Math===Math&&t};e.exports=n("object"==typeof globalThis&&globalThis)||n("object"==typeof window&&window)||n("object"==typeof self&&self)||n("object"==typeof r.g&&r.g)||n("object"==typeof t&&t)||function(){return this}()||Function("return this")()}),v=u((t,e)=>{var r=y(),n=Function.prototype,i=n.apply,s=n.call;e.exports="object"==typeof Reflect&&Reflect.apply||(r?s.bind(i):function(){return s.apply(i,arguments)})}),x=u((t,e)=>{var r=g(),n=r({}.toString),i=r("".slice);e.exports=function(t){return i(n(t),8,-1)}}),N=u((t,e)=>{var r=x(),n=g();e.exports=function(t){if("Function"===r(t))return n(t)}}),S=u((t,e)=>{var r="object"==typeof document&&document.all;e.exports=void 0===r&&void 0!==r?function(t){return"function"==typeof t||t===r}:function(t){return"function"==typeof t}}),_=u((t,e)=>{var r=p();e.exports=!r(function(){return 7!==Object.defineProperty({},1,{get:function(){return 7}})[1]})}),O=u((t,e)=>{var r=y(),n=Function.prototype.call;e.exports=r?n.bind(n):function(){return n.apply(n,arguments)}}),E=u(t=>{var e={}.propertyIsEnumerable,r=Object.getOwnPropertyDescriptor,n=r&&!e.call({1:2},1);t.f=n?function(t){var e=r(this,t);return!!e&&e.enumerable}:e}),P=u((t,e)=>{e.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}}),M=u((t,e)=>{var r=g(),n=p(),i=x(),s=Object,o=r("".split);e.exports=n(function(){return!s("z").propertyIsEnumerable(0)})?function(t){return"String"===i(t)?o(t,""):s(t)}:s}),A=u((t,e)=>{e.exports=function(t){return null==t}}),T=u((t,e)=>{var r=A(),n=TypeError;e.exports=function(t){if(r(t))throw new n("Can't call method on "+t);return t}}),j=u((t,e)=>{var r=M(),n=T();e.exports=function(t){return r(n(t))}}),C=u((t,e)=>{var r=S();e.exports=function(t){return"object"==typeof t?null!==t:r(t)}}),D=u((t,e)=>{e.exports={}}),I=u((t,e)=>{var r=D(),n=w(),i=S(),s=function(t){return i(t)?t:void 0};e.exports=function(t,e){return arguments.length<2?s(r[t])||s(n[t]):r[t]&&r[t][e]||n[t]&&n[t][e]}}),k=u((t,e)=>{var r=w().navigator,n=r&&r.userAgent;e.exports=n?String(n):""}),F=u((t,e)=>{var r,n,i=w(),s=k(),o=i.process,a=i.Deno,u=o&&o.versions||a&&a.version,h=u&&u.v8;h&&(n=(r=h.split("."))[0]>0&&r[0]<4?1:+(r[0]+r[1])),!n&&s&&(!(r=s.match(/Edge\/(\d+)/))||r[1]>=74)&&(r=s.match(/Chrome\/(\d+)/))&&(n=+r[1]),e.exports=n}),L=u((t,e)=>{var r=F(),n=p(),i=w().String;e.exports=!!Object.getOwnPropertySymbols&&!n(function(){var t=Symbol("symbol detection");return!i(t)||!(Object(t)instanceof Symbol)||!Symbol.sham&&r&&r<41})}),B=u((t,e)=>{var r=L();e.exports=r&&!Symbol.sham&&"symbol"==typeof Symbol.iterator}),V=u((t,e)=>{var r=I(),n=S(),i=b(),s=B(),o=Object;e.exports=s?function(t){return"symbol"==typeof t}:function(t){var e=r("Symbol");return n(e)&&i(e.prototype,o(t))}}),R=u((t,e)=>{var r=String;e.exports=function(t){try{return r(t)}catch(t){return"Object"}}}),z=u((t,e)=>{var r=S(),n=R(),i=TypeError;e.exports=function(t){if(r(t))return t;throw new i(n(t)+" is not a function")}}),X=u((t,e)=>{var r=z(),n=A();e.exports=function(t,e){var i=t[e];return n(i)?void 0:r(i)}}),G=u((t,e)=>{var r=O(),n=S(),i=C(),s=TypeError;e.exports=function(t,e){var o,a;if("string"===e&&n(o=t.toString)&&!i(a=r(o,t)))return a;if(n(o=t.valueOf)&&!i(a=r(o,t)))return a;if("string"!==e&&n(o=t.toString)&&!i(a=r(o,t)))return a;throw new s("Can't convert object to primitive value")}}),U=u((t,e)=>{e.exports=!0}),Y=u((t,e)=>{var r=w(),n=Object.defineProperty;e.exports=function(t,e){try{n(r,t,{value:e,configurable:!0,writable:!0})}catch(n){r[t]=e}return e}}),W=u((t,e)=>{var r=U(),n=w(),i=Y(),s="__core-js_shared__",o=e.exports=n[s]||i(s,{});(o.versions||(o.versions=[])).push({version:"3.49.0",mode:r?"pure":"global",copyright:"© 2013–2025 Denis Pushkarev (zloirock.ru), 2025–2026 CoreJS Company (core-js.io). All rights reserved.",license:"https://github.com/zloirock/core-js/blob/v3.49.0/LICENSE",source:"https://github.com/zloirock/core-js"})}),$=u((t,e)=>{var r=W();e.exports=function(t,e){return r[t]||(r[t]=e||{})}}),q=u((t,e)=>{var r=T(),n=Object;e.exports=function(t){return n(r(t))}}),H=u((t,e)=>{var r=g(),n=q(),i=r({}.hasOwnProperty);e.exports=Object.hasOwn||function(t,e){return i(n(t),e)}}),J=u((t,e)=>{var r=g(),n=0,i=Math.random(),s=r(1.1.toString);e.exports=function(t){return"Symbol("+(void 0===t?"":t)+")_"+s(++n+i,36)}}),K=u((t,e)=>{var r=w(),n=$(),i=H(),s=J(),o=L(),a=B(),u=r.Symbol,h=n("wks"),c=a?u.for||u:u&&u.withoutSetter||s;e.exports=function(t){return i(h,t)||(h[t]=o&&i(u,t)?u[t]:c("Symbol."+t)),h[t]}}),Q=u((t,e)=>{var r=O(),n=C(),i=V(),s=X(),o=G(),a=K(),u=TypeError,h=a("toPrimitive");e.exports=function(t,e){if(!n(t)||i(t))return t;var a,c=s(t,h);if(c){if(void 0===e&&(e="default"),a=r(c,t,e),!n(a)||i(a))return a;throw new u("Can't convert object to primitive value")}return void 0===e&&(e="number"),o(t,e)}}),Z=u((t,e)=>{var r=Q(),n=V();e.exports=function(t){var e=r(t,"string");return n(e)?e:e+""}}),tt=u((t,e)=>{var r=w(),n=C(),i=r.document,s=n(i)&&n(i.createElement);e.exports=function(t){return s?i.createElement(t):{}}}),et=u((t,e)=>{var r=_(),n=p(),i=tt();e.exports=!r&&!n(function(){return 7!==Object.defineProperty(i("div"),"a",{get:function(){return 7}}).a})}),rt=u(t=>{var e=_(),r=O(),n=E(),i=P(),s=j(),o=Z(),a=H(),u=et(),h=Object.getOwnPropertyDescriptor;t.f=e?h:function(t,e){if(t=s(t),e=o(e),u)try{return h(t,e)}catch(t){}if(a(t,e))return i(!r(n.f,t,e),t[e])}}),nt=u((t,e)=>{var r=p(),n=S(),i=/#|\.prototype\./,s=function(t,e){var i=a[o(t)];return i===h||i!==u&&(n(e)?r(e):!!e)},o=s.normalize=function(t){return String(t).replace(i,".").toLowerCase()},a=s.data={},u=s.NATIVE="N",h=s.POLYFILL="P";e.exports=s}),it=u((t,e)=>{var r=N(),n=z(),i=y(),s=r(r.bind);e.exports=function(t,e){return n(t),void 0===e?t:i?s(t,e):function(){return t.apply(e,arguments)}}}),st=u((t,e)=>{var r=_(),n=p();e.exports=r&&n(function(){return 42!==Object.defineProperty(function(){},"prototype",{value:42,writable:!1}).prototype})}),ot=u((t,e)=>{var r=C(),n=String,i=TypeError;e.exports=function(t){if(r(t))return t;throw new i(n(t)+" is not an object")}}),at=u(t=>{var e=_(),r=et(),n=st(),i=ot(),s=Z(),o=TypeError,a=Object.defineProperty,u=Object.getOwnPropertyDescriptor,h="enumerable",c="configurable",l="writable";t.f=e?n?function(t,e,r){if(i(t),e=s(e),i(r),"function"==typeof t&&"prototype"===e&&"value"in r&&l in r&&!r[l]){var n=u(t,e);n&&n[l]&&(t[e]=r.value,r={configurable:c in r?r[c]:n[c],enumerable:h in r?r[h]:n[h],writable:!1})}return a(t,e,r)}:a:function(t,e,n){if(i(t),e=s(e),i(n),r)try{return a(t,e,n)}catch(t){}if("get"in n||"set"in n)throw new o("Accessors not supported");return"value"in n&&(t[e]=n.value),t}}),ut=u((t,e)=>{var r=_(),n=at(),i=P();e.exports=r?function(t,e,r){return n.f(t,e,i(1,r))}:function(t,e,r){return t[e]=r,t}}),ht=u((t,e)=>{var r=w(),n=v(),i=N(),s=S(),o=rt().f,a=nt(),u=D(),h=it(),c=ut(),l=H();W();var f=function(t){var e=function(r,i,s){if(this instanceof e){switch(arguments.length){case 0:return new t;case 1:return new t(r);case 2:return new t(r,i)}return new t(r,i,s)}return n(t,this,arguments)};return e.prototype=t.prototype,e};e.exports=function(t,e){var n,d,m,p,y,g,b,w,v,x=t.target,N=t.global,S=t.stat,_=t.proto,O=N?r:S?r[x]:r[x]&&r[x].prototype,E=N?u:u[x]||c(u,x,{})[x],P=E.prototype;for(p in e)d=!(n=a(N?p:x+(S?".":"#")+p,t.forced))&&O&&l(O,p),g=E[p],d&&(b=t.dontCallGetSet?(v=o(O,p))&&v.value:O[p]),y=d&&b?b:e[p],(n||_||typeof g!=typeof y)&&(w=t.bind&&d?h(y,r):t.wrap&&d?f(y):_&&s(y)?i(y):y,(t.sham||y&&y.sham||g&&g.sham)&&c(w,"sham",!0),c(E,p,w),_&&(l(u,m=x+"Prototype")||c(u,m,{}),c(u[m],p,y),t.real&&P&&(n||!P[p])&&c(P,p,y)))}}),ct=u((t,e)=>{var r=Math.ceil,n=Math.floor;e.exports=Math.trunc||function(t){var e=+t;return(e>0?n:r)(e)}}),lt=u((t,e)=>{var r=ct();e.exports=function(t){var e=+t;return e!=e||0===e?0:r(e)}}),ft=u((t,e)=>{var r=lt(),n=Math.max,i=Math.min;e.exports=function(t,e){var s=r(t);return s<0?n(s+e,0):i(s,e)}}),dt=u((t,e)=>{var r=lt(),n=Math.min;e.exports=function(t){var e=r(t);return e>0?n(e,9007199254740991):0}}),mt=u((t,e)=>{var r=dt();e.exports=function(t){return r(t.length)}}),pt=u((t,e)=>{var r=j(),n=ft(),i=mt(),s=function(t){return function(e,s,o){var a=r(e),u=i(a);if(0===u)return!t&&-1;var h,c=n(o,u);if(t&&s!=s){for(;u>c;)if((h=a[c++])!=h)return!0}else for(;u>c;c++)if((t||c in a)&&a[c]===s)return t||c||0;return!t&&-1}};e.exports={includes:s(!0),indexOf:s(!1)}}),yt=u((t,e)=>{e.exports=function(){}}),gt=u(()=>{var t=ht(),e=pt().includes,r=p(),n=yt(),i=r(function(){return!Array(1).includes()}),s=r(function(){return[,1].includes(void 0,1)});t({target:"Array",proto:!0,forced:i||s},{includes:function(t){return e(this,t,arguments.length>1?arguments[1]:void 0)}}),n("includes")}),bt=u((t,e)=>{var r=w(),n=D();e.exports=function(t,e){var i=n[t+"Prototype"],s=i&&i[e];if(s)return s;var o=r[t],a=o&&o.prototype;return a&&a[e]}}),wt=u((t,e)=>{gt();var r=bt();e.exports=r("Array","includes")}),vt=u((t,e)=>{var r=C(),n=x(),i=K()("match");e.exports=function(t){var e;return r(t)&&(void 0!==(e=t[i])?!!e:"RegExp"===n(t))}}),xt=u((t,e)=>{var r=vt(),n=TypeError;e.exports=function(t){if(r(t))throw new n("The method doesn't accept regular expressions");return t}}),Nt=u((t,e)=>{var r={};r[K()("toStringTag")]="z",e.exports="[object z]"===String(r)}),St=u((t,e)=>{var r=Nt(),n=S(),i=x(),s=K()("toStringTag"),o=Object,a="Arguments"===i(function(){return arguments}());e.exports=r?i:function(t){var e,r,u;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(r=function(t,e){try{return t[e]}catch(t){}}(e=o(t),s))?r:a?i(e):"Object"===(u=i(e))&&n(e.callee)?"Arguments":u}}),_t=u((t,e)=>{var r=St(),n=String;e.exports=function(t){if("Symbol"===r(t))throw new TypeError("Cannot convert a Symbol value to a string");return n(t)}}),Ot=u((t,e)=>{var r=K()("match");e.exports=function(t){var e=/./;try{"/./"[t](e)}catch(n){try{return e[r]=!1,"/./"[t](e)}catch(t){}}return!1}}),Et=u(()=>{var t=ht(),e=g(),r=xt(),n=T(),i=_t(),s=Ot(),o=e("".indexOf);t({target:"String",proto:!0,forced:!s("includes")},{includes:function(t){return!!~o(i(n(this)),i(r(t)),arguments.length>1?arguments[1]:void 0)}})}),Pt=u((t,e)=>{Et();var r=bt();e.exports=r("String","includes")}),Mt=u((t,e)=>{var r=b(),n=wt(),i=Pt(),s=Array.prototype,o=String.prototype;e.exports=function(t){var e=t.includes;return t===s||r(s,t)&&e===s.includes?n:"string"==typeof t||t===o||r(o,t)&&e===o.includes?i:e}}),At=((r,n,u)=>(u=null!=r?t(o(r)):{},((t,r,n,o)=>{if(r&&"object"==typeof r||"function"==typeof r)for(var u,h=s(r),c=0,l=h.length;c<l;c++)u=h[c],a.call(t,u)||void 0===u||e(t,u,{get:(t=>r[t]).bind(null,u),enumerable:!(o=i(r,u))||o.enumerable});return t})(e(u,"default",{value:r,enumerable:!0}),r)))(u((t,e)=>{var r=Mt();e.exports=r})());function Tt(t,e){let r;const n=t.length,i=[];for(r=0;r<n;r++)i.push(e(t[r]));return i}function jt(t){return t%360*Math.PI/180}function Ct(t){return t.replace(/([A-Z])/g,function(t,e){return"-"+e.toLowerCase()})}function Dt(t){return t.charAt(0).toUpperCase()+t.slice(1)}function It(t,e,r,n){return null!=e&&null!=r||(n=n||t.bbox(),null==e?e=n.width/n.height*r:null==r&&(r=n.height/n.width*e)),{width:e,height:r}}function kt(t,e){const r=t.origin;let n=null!=t.ox?t.ox:null!=t.originX?t.originX:"center",i=null!=t.oy?t.oy:null!=t.originY?t.originY:"center";null!=r&&([n,i]=Array.isArray(r)?r:"object"==typeof r?[r.x,r.y]:[r,r]);const s="string"==typeof n,o="string"==typeof i;if(s||o){const{height:t,width:r,x:a,y:u}=e.bbox();s&&(n=(0,At.default)(n).call(n,"left")?a:(0,At.default)(n).call(n,"right")?a+r:a+r/2),o&&(i=(0,At.default)(i).call(i,"top")?u:(0,At.default)(i).call(i,"bottom")?u+t:u+t/2)}return[n,i]}const Ft=new Set(["desc","metadata","title"]),Lt=t=>Ft.has(t.nodeName),Bt="http://www.w3.org/2000/svg",Vt="http://www.w3.org/2000/xmlns/",Rt="http://www.w3.org/1999/xlink",zt={window:"undefined"==typeof window?null:window,document:"undefined"==typeof document?null:document};var Xt=class{};const Gt={},Ut="___SYMBOL___ROOT___";function Yt(t,e=Bt){return zt.document.createElementNS(e,t)}function Wt(t,e=!1){if(t instanceof Xt)return t;if("object"==typeof t)return Ht(t);if(null==t)return new Gt[Ut];if("string"==typeof t&&"<"!==t.trim().charAt(0))return Ht(zt.document.querySelector(t));const r=e?zt.document.createElement("div"):Yt("svg");return r.innerHTML=t.trim(),t=Ht(r.firstElementChild),r.removeChild(r.firstElementChild),t}function $t(t,e){return e&&(e instanceof zt.window.Node||e.ownerDocument&&e instanceof e.ownerDocument.defaultView.Node)?e:Yt(t)}function qt(t){if(!t)return null;if(t.instance instanceof Xt)return t.instance;if("#document-fragment"===t.nodeName)return new Gt.Fragment(t);let e=Dt(t.nodeName||"Dom");return"LinearGradient"===e||"RadialGradient"===e?e="Gradient":Gt[e]||(e="Dom"),new Gt[e](t)}let Ht=qt;function Jt(t,e=t.name,r=!1){return Gt[e]=t,r&&(Gt[Ut]=t),m(Object.getOwnPropertyNames(t.prototype)),t}let Kt=1e3;function Qt(t){return"Svgjs"+Dt(t)+Kt++}function Zt(t){for(let e=t.children.length-1;e>=0;e--)Zt(t.children[e]);return t.id?(t.id=Qt(t.nodeName),t):t}function te(t,e){let r,n;for(n=(t=Array.isArray(t)?t:[t]).length-1;n>=0;n--)for(r in e)t[n].prototype[r]=e[r]}function ee(t){return function(...e){const r=e[e.length-1];return!r||r.constructor!==Object||r instanceof Array?t.apply(this,e):t.apply(this,e.slice(0,-1)).attr(r)}}f("Dom",{siblings:function(){return this.parent().children()},position:function(){return this.parent().index(this)},next:function(){return this.siblings()[this.position()+1]},prev:function(){return this.siblings()[this.position()-1]},forward:function(){const t=this.position();return this.parent().add(this.remove(),t+1),this},backward:function(){const t=this.position();return this.parent().add(this.remove(),t?t-1:0),this},front:function(){return this.parent().add(this.remove()),this},back:function(){return this.parent().add(this.remove(),0),this},before:function(t){(t=Wt(t)).remove();const e=this.position();return this.parent().add(t,e),this},after:function(t){(t=Wt(t)).remove();const e=this.position();return this.parent().add(t,e+1),this},insertBefore:function(t){return(t=Wt(t)).before(this),this},insertAfter:function(t){return(t=Wt(t)).after(this),this}});const re=/^([+-]?(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?)([a-z%]*)$/i,ne=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i,ie=/rgb\((\d+),(\d+),(\d+)\)/,se=/^(#[^\s]+)$/,oe=/\)\s*,?\s*/,ae=/\s/g,ue=/^#[a-f0-9]{3}$|^#[a-f0-9]{6}$/i,he=/^rgb\(/,ce=/^(\s+)?$/,le=/^[+-]?(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,fe=/\.(jpg|jpeg|png|gif|svg)(\?[^=]+.*)?/i,de=/[\s,]+/,me=/[MLHVCSQTAZ]/i;f("Dom",{classes:function(){const t=this.attr("class");return null==t?[]:t.trim().split(de)},hasClass:function(t){return-1!==this.classes().indexOf(t)},addClass:function(t){if(!this.hasClass(t)){const e=this.classes();e.push(t),this.attr("class",e.join(" "))}return this},removeClass:function(t){return this.hasClass(t)&&this.attr("class",this.classes().filter(function(e){return e!==t}).join(" ")),this},toggleClass:function(t){return this.hasClass(t)?this.removeClass(t):this.addClass(t)}});const pe=t=>t.startsWith("--")?t:Ct(t);function ye(t){const e=Math.max(0,Math.min(255,Math.round(t))).toString(16);return 1===e.length?"0"+e:e}function ge(t,e){for(let r=e.length;r--;)if(null==t[e[r]])return!1;return!0}function be(t,e,r){return r<0&&(r+=1),r>1&&(r-=1),r<1/6?t+6*(e-t)*r:r<.5?e:r<2/3?t+(e-t)*(2/3-r)*6:t}f("Dom",{css:function(t,e){const r={};if(0===arguments.length){const t=this.node.style;for(let e=0;e<t.length;e++){const n=t.item(e),i=t.getPropertyValue(n),s=t.getPropertyPriority(n);r[n]=s?`${i} !${s}`:i}return r}if(arguments.length<2){if(Array.isArray(t)){for(const e of t){const t=pe(e);r[e]=this.node.style.getPropertyValue(t)}return r}if("string"==typeof t)return this.node.style.getPropertyValue(pe(t));if("object"==typeof t)for(const e in t)this.node.style.setProperty(pe(e),null==t[e]||ce.test(t[e])?"":t[e])}return 2===arguments.length&&this.node.style.setProperty(pe(t),null==e||ce.test(e)?"":e),this},show:function(){return this.css("display","")},hide:function(){return this.css("display","none")},visible:function(){return"none"!==this.css("display")}}),f("Dom",{data:function(t,e,r){if(null==t)return this.data(Tt(function(t,e){let r;const n=t.length,i=[];for(r=0;r<n;r++)e(t[r])&&i.push(t[r]);return i}(this.node.attributes,t=>0===t.nodeName.indexOf("data-")),t=>t.nodeName.slice(5)));if(t instanceof Array){const e={};for(const r of t)e[r]=this.data(r);return e}if("object"==typeof t)for(e in t)this.data(e,t[e]);else if(arguments.length<2)try{return JSON.parse(this.attr("data-"+t))}catch(e){return this.attr("data-"+t)}else this.attr("data-"+t,null===e?null:!0===r||"string"==typeof e||"number"==typeof e?e:JSON.stringify(e));return this}}),f("Dom",{remember:function(t,e){if("object"==typeof arguments[0])for(const e in t)this.remember(e,t[e]);else{if(1===arguments.length)return this.memory()[t];this.memory()[t]=e}return this},forget:function(){if(0===arguments.length)this._memory={};else for(let t=arguments.length-1;t>=0;t--)delete this.memory()[arguments[t]];return this},memory:function(){return this._memory=this._memory||{}}});var we=class t{constructor(...t){this.init(...t)}static isColor(e){return e&&(e instanceof t||this.isRgb(e)||this.test(e))}static isRgb(t){return t&&"number"==typeof t.r&&"number"==typeof t.g&&"number"==typeof t.b}static random(e="vibrant",r){const{random:n,round:i,sin:s,PI:o}=Math;if("vibrant"===e){const e=24*n()+57,r=38*n()+45,i=360*n();return new t(e,r,i,"lch")}if("sine"===e){const e=i(80*s(2*o*(r=r??n())/.5+.01)+150),a=i(50*s(2*o*r/.5+4.6)+200),u=i(100*s(2*o*r/.5+2.3)+150);return new t(e,a,u)}if("pastel"===e){const e=8*n()+86,r=17*n()+9,i=360*n();return new t(e,r,i,"lch")}if("dark"===e){const e=10+10*n(),r=50*n()+86,i=360*n();return new t(e,r,i,"lch")}if("rgb"===e){const e=255*n(),r=255*n(),i=255*n();return new t(e,r,i)}if("lab"===e){const e=100*n(),r=256*n()-128,i=256*n()-128;return new t(e,r,i,"lab")}if("grey"===e){const e=255*n();return new t(e,e,e)}throw new Error("Unsupported random color mode")}static test(t){return"string"==typeof t&&(ue.test(t)||he.test(t))}cmyk(){const{_a:e,_b:r,_c:n}=this.rgb(),[i,s,o]=[e,r,n].map(t=>t/255),a=Math.min(1-i,1-s,1-o);return 1===a?new t(0,0,0,1,"cmyk"):new t((1-i-a)/(1-a),(1-s-a)/(1-a),(1-o-a)/(1-a),a,"cmyk")}hsl(){const{_a:e,_b:r,_c:n}=this.rgb(),[i,s,o]=[e,r,n].map(t=>t/255),a=Math.max(i,s,o),u=Math.min(i,s,o),h=(a+u)/2,c=a===u,l=a-u;return new t(360*(c?0:a===i?((s-o)/l+(s<o?6:0))/6:a===s?((o-i)/l+2)/6:a===o?((i-s)/l+4)/6:0),100*(c?0:h>.5?l/(2-a-u):l/(a+u)),100*h,"hsl")}init(t=0,e=0,r=0,n=0,i="rgb"){if(t=t||0,this.space)for(const t in this.space)delete this[this.space[t]];if("number"==typeof t)i="string"==typeof n?n:i,n="string"==typeof n?0:n,Object.assign(this,{_a:t,_b:e,_c:r,_d:n,space:i});else if(t instanceof Array)this.space=e||("string"==typeof t[3]?t[3]:t[4])||"rgb",Object.assign(this,{_a:t[0],_b:t[1],_c:t[2],_d:t[3]||0});else if(t instanceof Object){const r=function(t,e){const r=ge(t,"rgb")?{_a:t.r,_b:t.g,_c:t.b,_d:0,space:"rgb"}:ge(t,"xyz")?{_a:t.x,_b:t.y,_c:t.z,_d:0,space:"xyz"}:ge(t,"hsl")?{_a:t.h,_b:t.s,_c:t.l,_d:0,space:"hsl"}:ge(t,"lab")?{_a:t.l,_b:t.a,_c:t.b,_d:0,space:"lab"}:ge(t,"lch")?{_a:t.l,_b:t.c,_c:t.h,_d:0,space:"lch"}:ge(t,"cmyk")?{_a:t.c,_b:t.m,_c:t.y,_d:t.k,space:"cmyk"}:{_a:0,_b:0,_c:0,space:"rgb"};return r.space=e||r.space,r}(t,e);Object.assign(this,r)}else if("string"==typeof t)if(he.test(t)){const e=t.replace(ae,""),[r,n,i]=ie.exec(e).slice(1,4).map(t=>parseInt(t));Object.assign(this,{_a:r,_b:n,_c:i,_d:0,space:"rgb"})}else{if(!ue.test(t))throw Error("Unsupported string format, can't construct Color");{const e=t=>parseInt(t,16),[,r,n,i]=ne.exec(function(t){return 4===t.length?["#",t.substring(1,2),t.substring(1,2),t.substring(2,3),t.substring(2,3),t.substring(3,4),t.substring(3,4)].join(""):t}(t)).map(e);Object.assign(this,{_a:r,_b:n,_c:i,_d:0,space:"rgb"})}}const{_a:s,_b:o,_c:a,_d:u}=this,h="rgb"===this.space?{r:s,g:o,b:a}:"xyz"===this.space?{x:s,y:o,z:a}:"hsl"===this.space?{h:s,s:o,l:a}:"lab"===this.space?{l:s,a:o,b:a}:"lch"===this.space?{l:s,c:o,h:a}:"cmyk"===this.space?{c:s,m:o,y:a,k:u}:{};Object.assign(this,h)}lab(){const{x:e,y:r,z:n}=this.xyz();return new t(116*r-16,500*(e-r),200*(r-n),"lab")}lch(){const{l:e,a:r,b:n}=this.lab(),i=Math.sqrt(r**2+n**2);let s=180*Math.atan2(n,r)/Math.PI;return s<0&&(s*=-1,s=360-s),new t(e,i,s,"lch")}rgb(){if("rgb"===this.space)return this;if("lab"===(e=this.space)||"xyz"===e||"lch"===e){let{x:e,y:r,z:n}=this;if("lab"===this.space||"lch"===this.space){let{l:t,a:i,b:s}=this;if("lch"===this.space){const{c:t,h:e}=this,r=Math.PI/180;i=t*Math.cos(r*e),s=t*Math.sin(r*e)}const o=(t+16)/116,a=i/500+o,u=o-s/200,h=16/116,c=.008856,l=7.787;e=.95047*(a**3>c?a**3:(a-h)/l),r=1*(o**3>c?o**3:(o-h)/l),n=1.08883*(u**3>c?u**3:(u-h)/l)}const i=3.2406*e+-1.5372*r+-.4986*n,s=-.9689*e+1.8758*r+.0415*n,o=.0557*e+-.204*r+1.057*n,a=Math.pow,u=.0031308,h=i>u?1.055*a(i,1/2.4)-.055:12.92*i,c=s>u?1.055*a(s,1/2.4)-.055:12.92*s,l=o>u?1.055*a(o,1/2.4)-.055:12.92*o;return new t(255*h,255*c,255*l)}if("hsl"===this.space){let{h:e,s:r,l:n}=this;if(e/=360,r/=100,n/=100,0===r)return n*=255,new t(n,n,n);const i=n<.5?n*(1+r):n+r-n*r,s=2*n-i,o=255*be(s,i,e+1/3),a=255*be(s,i,e),u=255*be(s,i,e-1/3);return new t(o,a,u)}if("cmyk"===this.space){const{c:e,m:r,y:n,k:i}=this,s=255*(1-Math.min(1,e*(1-i)+i)),o=255*(1-Math.min(1,r*(1-i)+i)),a=255*(1-Math.min(1,n*(1-i)+i));return new t(s,o,a)}return this;var e}toArray(){const{_a:t,_b:e,_c:r,_d:n,space:i}=this;return[t,e,r,n,i]}toHex(){const[t,e,r]=this._clamped().map(ye);return`#${t}${e}${r}`}toRgb(){const[t,e,r]=this._clamped();return`rgb(${t},${e},${r})`}toString(){return this.toHex()}xyz(){const{_a:e,_b:r,_c:n}=this.rgb(),[i,s,o]=[e,r,n].map(t=>t/255),a=i>.04045?Math.pow((i+.055)/1.055,2.4):i/12.92,u=s>.04045?Math.pow((s+.055)/1.055,2.4):s/12.92,h=o>.04045?Math.pow((o+.055)/1.055,2.4):o/12.92,c=(.4124*a+.3576*u+.1805*h)/.95047,l=(.2126*a+.7152*u+.0722*h)/1,f=(.0193*a+.1192*u+.9505*h)/1.08883,d=c>.008856?Math.pow(c,1/3):7.787*c+16/116,m=l>.008856?Math.pow(l,1/3):7.787*l+16/116,p=f>.008856?Math.pow(f,1/3):7.787*f+16/116;return new t(d,m,p,"xyz")}_clamped(){const{_a:t,_b:e,_c:r}=this.rgb(),{max:n,min:i,round:s}=Math;return[t,e,r].map(t=>n(0,i(s(t),255)))}},ve=class t{constructor(...t){this.init(...t)}clone(){return new t(this)}init(t,e){const r=Array.isArray(t)?{x:t[0],y:t[1]}:"object"==typeof t?{x:t.x,y:t.y}:{x:t,y:e};return this.x=r.x??0,this.y=r.y??0,this}toArray(){return[this.x,this.y]}transform(t){return this.clone().transformO(t)}transformO(t){Ne.isMatrixLike(t)||(t=new Ne(t));const{x:e,y:r}=this;return this.x=t.a*e+t.c*r+t.e,this.y=t.b*e+t.d*r+t.f,this}};function xe(t,e,r){return Math.abs(e-t)<(r||1e-6)}var Ne=class t{constructor(...t){this.init(...t)}static formatTransforms(t){const e="both"===t.flip||!0===t.flip,r=t.flip&&(e||"x"===t.flip)?-1:1,n=t.flip&&(e||"y"===t.flip)?-1:1,i=t.skew&&t.skew.length?t.skew[0]:isFinite(t.skew)?t.skew:isFinite(t.skewX)?t.skewX:0,s=t.skew&&t.skew.length?t.skew[1]:isFinite(t.skew)?t.skew:isFinite(t.skewY)?t.skewY:0,o=t.scale&&t.scale.length?t.scale[0]*r:isFinite(t.scale)?t.scale*r:isFinite(t.scaleX)?t.scaleX*r:r,a=t.scale&&t.scale.length?t.scale[1]*n:isFinite(t.scale)?t.scale*n:isFinite(t.scaleY)?t.scaleY*n:n,u=t.shear||0,h=t.rotate||t.theta||0,c=new ve(t.origin||t.around||t.ox||t.originX,t.oy||t.originY),l=c.x,f=c.y,d=new ve(t.position??t.px??t.positionX??NaN,t.py??t.positionY??NaN),m=d.x,p=d.y,y=new ve(t.translate||t.tx||t.translateX,t.ty||t.translateY),g=y.x,b=y.y,w=new ve(t.relative||t.rx||t.relativeX,t.ry||t.relativeY);return{scaleX:o,scaleY:a,skewX:i,skewY:s,shear:u,theta:h,rx:w.x,ry:w.y,tx:g,ty:b,ox:l,oy:f,px:m,py:p}}static fromArray(t){return{a:t[0],b:t[1],c:t[2],d:t[3],e:t[4],f:t[5]}}static isMatrixLike(t){return null!=t.a||null!=t.b||null!=t.c||null!=t.d||null!=t.e||null!=t.f}static matrixMultiply(t,e,r){const n=t.a*e.a+t.c*e.b,i=t.b*e.a+t.d*e.b,s=t.a*e.c+t.c*e.d,o=t.b*e.c+t.d*e.d,a=t.e+t.a*e.e+t.c*e.f,u=t.f+t.b*e.e+t.d*e.f;return r.a=n,r.b=i,r.c=s,r.d=o,r.e=a,r.f=u,r}around(t,e,r){return this.clone().aroundO(t,e,r)}aroundO(t,e,r){const n=t||0,i=e||0;return this.translateO(-n,-i).lmultiplyO(r).translateO(n,i)}clone(){return new t(this)}decompose(t=0,e=0){const r=this.a,n=this.b,i=this.c,s=this.d,o=this.e,a=this.f,u=r*s-n*i,h=u>0?1:-1,c=h*Math.sqrt(r*r+n*n),l=Math.atan2(h*n,h*r),f=(r*i+n*s)/u;return{scaleX:c,scaleY:i*c/(f*r-n)||s*c/(f*n+r),shear:f,rotate:180/Math.PI*l,translateX:o-t+t*r+e*i,translateY:a-e+t*n+e*s,originX:t,originY:e,a:this.a,b:this.b,c:this.c,d:this.d,e:this.e,f:this.f}}equals(e){if(e===this)return!0;const r=new t(e);return xe(this.a,r.a)&&xe(this.b,r.b)&&xe(this.c,r.c)&&xe(this.d,r.d)&&xe(this.e,r.e)&&xe(this.f,r.f)}flip(t,e){return this.clone().flipO(t,e)}flipO(t,e){return"x"===t?this.scaleO(-1,1,e,0):"y"===t?this.scaleO(1,-1,0,e):this.scaleO(-1,-1,t,e||t)}init(e){const r=t.fromArray([1,0,0,1,0,0]);return e=e instanceof qe?e.matrixify():"string"==typeof e?t.fromArray(e.split(de).map(parseFloat)):Array.isArray(e)?t.fromArray(e):"object"==typeof e&&t.isMatrixLike(e)?e:"object"==typeof e?(new t).transform(e):6===arguments.length?t.fromArray([].slice.call(arguments)):r,this.a=null!=e.a?e.a:r.a,this.b=null!=e.b?e.b:r.b,this.c=null!=e.c?e.c:r.c,this.d=null!=e.d?e.d:r.d,this.e=null!=e.e?e.e:r.e,this.f=null!=e.f?e.f:r.f,this}inverse(){return this.clone().inverseO()}inverseO(){const t=this.a,e=this.b,r=this.c,n=this.d,i=this.e,s=this.f,o=t*n-e*r;if(!o)throw new Error("Cannot invert "+this);const a=n/o,u=-e/o,h=-r/o,c=t/o,l=-(a*i+h*s),f=-(u*i+c*s);return this.a=a,this.b=u,this.c=h,this.d=c,this.e=l,this.f=f,this}lmultiply(t){return this.clone().lmultiplyO(t)}lmultiplyO(e){const r=e instanceof t?e:new t(e);return t.matrixMultiply(r,this,this)}multiply(t){return this.clone().multiplyO(t)}multiplyO(e){const r=e instanceof t?e:new t(e);return t.matrixMultiply(this,r,this)}rotate(t,e,r){return this.clone().rotateO(t,e,r)}rotateO(t,e=0,r=0){t=jt(t);const n=Math.cos(t),i=Math.sin(t),{a:s,b:o,c:a,d:u,e:h,f:c}=this;return this.a=s*n-o*i,this.b=o*n+s*i,this.c=a*n-u*i,this.d=u*n+a*i,this.e=h*n-c*i+r*i-e*n+e,this.f=c*n+h*i-e*i-r*n+r,this}scale(){return this.clone().scaleO(...arguments)}scaleO(t,e=t,r=0,n=0){3===arguments.length&&(n=r,r=e,e=t);const{a:i,b:s,c:o,d:a,e:u,f:h}=this;return this.a=i*t,this.b=s*e,this.c=o*t,this.d=a*e,this.e=u*t-r*t+r,this.f=h*e-n*e+n,this}shear(t,e,r){return this.clone().shearO(t,e,r)}shearO(t,e=0,r=0){const{a:n,b:i,c:s,d:o,e:a,f:u}=this;return this.a=n+i*t,this.c=s+o*t,this.e=a+u*t-r*t,this}skew(){return this.clone().skewO(...arguments)}skewO(t,e=t,r=0,n=0){3===arguments.length&&(n=r,r=e,e=t),t=jt(t),e=jt(e);const i=Math.tan(t),s=Math.tan(e),{a:o,b:a,c:u,d:h,e:c,f:l}=this;return this.a=o+a*i,this.b=a+o*s,this.c=u+h*i,this.d=h+u*s,this.e=c+l*i-n*i,this.f=l+c*s-r*s,this}skewX(t,e,r){return this.skew(t,0,e,r)}skewY(t,e,r){return this.skew(0,t,e,r)}toArray(){return[this.a,this.b,this.c,this.d,this.e,this.f]}toString(){return"matrix("+this.a+","+this.b+","+this.c+","+this.d+","+this.e+","+this.f+")"}transform(e){if(t.isMatrixLike(e))return new t(e).multiplyO(this);const r=t.formatTransforms(e),{x:n,y:i}=new ve(r.ox,r.oy).transform(this),s=(new t).translateO(r.rx,r.ry).lmultiplyO(this).translateO(-n,-i).scaleO(r.scaleX,r.scaleY).skewO(r.skewX,r.skewY).shearO(r.shear).rotateO(r.theta).translateO(n,i);if(isFinite(r.px)||isFinite(r.py)){const t=new ve(n,i).transform(s),e=isFinite(r.px)?r.px-t.x:0,o=isFinite(r.py)?r.py-t.y:0;s.translateO(e,o)}return s.translateO(r.tx,r.ty),s}translate(t,e){return this.clone().translateO(t,e)}translateO(t,e){return this.e+=t||0,this.f+=e||0,this}valueOf(){return{a:this.a,b:this.b,c:this.c,d:this.d,e:this.e,f:this.f}}};function Se(){if(!Se.nodes||Se.nodes.svg.node.ownerDocument!==zt.document){const t=Wt().size(2,0);t.node.style.cssText=["opacity: 0","position: absolute","left: -100%","top: -100%","overflow: hidden"].join(";"),t.attr("focusable","false"),t.attr("aria-hidden","true"),Se.nodes={svg:t,path:t.path().node}}return Se.nodes.svg.node.parentNode||Se.nodes.svg.addTo(zt.document.body||zt.document.documentElement),Se.nodes}function _e(t){return!(t.width||t.height||t.x||t.y)}Jt(Ne,"Matrix");var Oe=class t{constructor(...t){this.init(...t)}addOffset(){return this.x+=zt.window.pageXOffset,this.y+=zt.window.pageYOffset,new t(this)}init(t){return t="string"==typeof t?t.split(de).map(parseFloat):Array.isArray(t)?t:"object"==typeof t?[null!=t.left?t.left:t.x,null!=t.top?t.top:t.y,t.width,t.height]:4===arguments.length?[].slice.call(arguments):[0,0,0,0],this.x=t[0]||0,this.y=t[1]||0,this.width=this.w=t[2]||0,this.height=this.h=t[3]||0,this.x2=this.x+this.w,this.y2=this.y+this.h,this.cx=this.x+this.w/2,this.cy=this.y+this.h/2,this}isNulled(){return _e(this)}merge(e){const r=Math.min(this.x,e.x),n=Math.min(this.y,e.y),i=Math.max(this.x+this.width,e.x+e.width)-r,s=Math.max(this.y+this.height,e.y+e.height)-n;return new t(r,n,i,s)}toArray(){return[this.x,this.y,this.width,this.height]}toString(){return this.x+" "+this.y+" "+this.width+" "+this.height}transform(e){e instanceof Ne||(e=new Ne(e));let r=1/0,n=-1/0,i=1/0,s=-1/0;return[new ve(this.x,this.y),new ve(this.x2,this.y),new ve(this.x,this.y2),new ve(this.x2,this.y2)].forEach(function(t){t=t.transform(e),r=Math.min(r,t.x),n=Math.max(n,t.x),i=Math.min(i,t.y),s=Math.max(s,t.y)}),new t(r,i,n-r,s-i)}};function Ee(t,e,r){let n;try{if(n=e(t.node),_e(n)&&(i=t.node)!==zt.document&&!(zt.document.documentElement.contains||function(t){for(;t.parentNode;)t=t.parentNode;return t===zt.document}).call(zt.document.documentElement,i))throw new Error("Element not in the dom")}catch(e){n=r(t)}var i;return n}f({viewbox:{viewbox(t,e,r,n){return null==t?new Oe(this.attr("viewBox")):this.attr("viewBox",new Oe(t,e,r,n))},zoom(t,e){let{width:r,height:n}=this.attr(["width","height"]);if((r||n)&&"string"!=typeof r&&"string"!=typeof n||(r=this.node.clientWidth,n=this.node.clientHeight),!r||!n)throw new Error("Impossible to get absolute width and height. Please provide an absolute width and height attribute on the zooming element");const i=this.viewbox(),s=r/i.width,o=n/i.height,a=Math.min(s,o);if(null==t)return a;let u=a/t;u===1/0&&(u=Number.MAX_SAFE_INTEGER/100),e=e||new ve(r/2/s+i.x,n/2/o+i.y);const h=new Oe(i).transform(new Ne({scale:u,origin:e}));return this.viewbox(h)}}}),Jt(Oe,"Box");var Pe=class extends Array{constructor(t=[],...e){if(super(t,...e),"number"==typeof t)return this;this.length=0,this.push(...t)}};te([Pe],{each(t,...e){return"function"==typeof t?this.map((e,r,n)=>t.call(e,e,r,n)):this.map(r=>r[t](...e))},toArray(){return Array.prototype.concat.apply([],this)}});const Me=["toArray","constructor","each"];function Ae(t){let e=(t+"").trim();const r=e.match(/^url\((.*)\)$/i);if(r){e=r[1].trim();const t=e[0];if('"'===t||"'"===t){if(e[e.length-1]!==t)return null;e=e.slice(1,-1)}}const n=e.match(se);return n?n[1].slice(1):null}function Te(t,e){const r=`#${zt.window.CSS.escape(e)}`;return 1===t.nodeType&&t.matches(r)?t:t.querySelector(r)}function je(t,e,r=`[${e}]`){const n=t.getAttribute("id"),i=t.getRootNode();if(!n||Te(i,n)!==t)return new Pe;const s=[];1===i.nodeType&&i.matches(r)&&Ae(i.getAttribute(e))===n&&s.push(qt(i));for(const t of i.querySelectorAll(r))Ae(t.getAttribute(e))===n&&s.push(qt(t));return new Pe(s)}Pe.extend=function(t){t=t.reduce((t,e)=>((0,At.default)(Me).call(Me,e)||"_"===e[0]||(e in Array.prototype&&(t["$"+e]=Array.prototype[e]),t[e]=function(...t){return this.each(e,...t)}),t),{}),te([Pe],t)};let Ce=0;const De=new WeakMap,Ie=new WeakMap,ke=()=>Object.create(null);function Fe(t){const e=t.getEventHolder();let r=De.get(e);return r||(r=ke(),De.set(e,r)),r}function Le(t){return t.getEventTarget()}function Be(t,e,r,n,i){const s=r.bind(n||t),o=i||!1,a=Wt(t),u=Fe(a),h=Le(a);e=Array.isArray(e)?e:e.split(de);let c=Ie.get(r);c||(c=++Ce,Ie.set(r,c)),e.forEach(function(t){const e=t.split(".")[0],r=t.split(".")[1]||"*";u[e]=u[e]||ke(),u[e][r]=u[e][r]||ke(),u[e][r][c]=u[e][r][c]||[],u[e][r][c].push({listener:s,options:o}),h.addEventListener(e,s,o)})}function Ve(t,e,r,n){const i=Wt(t),s=Fe(i),o=Le(i);("function"!=typeof r||(r=Ie.get(r)))&&(e=Array.isArray(e)?e:(e||"").split(de)).forEach(function(t){const e=t&&t.split(".")[0],a=t&&t.split(".")[1];let u,h;if(r){if(s[e]&&s[e][a||"*"]){const t=s[e][a||"*"][r];if(!t)return;t.forEach(function(t){o.removeEventListener(e,t.listener,t.options??n??!1)}),delete s[e][a||"*"][r]}}else if(e&&a){if(s[e]&&s[e][a]){for(h in s[e][a])Ve(o,[e,a].join("."),h);delete s[e][a]}}else if(a)for(t in s)for(u in s[t])a===u&&Ve(o,[t,a].join("."));else if(e){if(s[e]){for(u in s[e])Ve(o,[e,u].join("."));delete s[e]}}else{for(t in s)Ve(o,t);!function(t){De.delete(t.getEventHolder())}(i)}})}var Re=class extends Xt{addEventListener(){}dispatch(t,e,r){return function(t,e,r,n){const i=Le(t);return e instanceof zt.window.Event||(e=new zt.window.CustomEvent(e,{detail:r,cancelable:!0,...n})),i.dispatchEvent(e),e}(this,t,e,r)}dispatchEvent(t){const e=Fe(this)[t.type];if(!e)return!0;for(const r in e)for(const n in e[r])e[r][n].forEach(function(e){e.listener(t)});return!t.defaultPrevented}fire(t,e,r){return this.dispatch(t,e,r),this}getEventHolder(){return this}getEventTarget(){return this}off(t,e,r){return Ve(this,t,e,r),this}on(t,e,r,n){return Be(this,t,e,r,n),this}removeEventListener(){}};function ze(){}Jt(Re,"EventTarget");const Xe={"fill-opacity":1,"stroke-opacity":1,"stroke-width":0,"stroke-linejoin":"miter","stroke-linecap":"butt",fill:"#000000",stroke:"#000000",opacity:1,x:0,y:0,cx:0,cy:0,width:0,height:0,r:0,rx:0,ry:0,offset:0,"stop-opacity":1,"stop-color":"#000000","text-anchor":"start"};var Ge=class extends Array{constructor(...t){super(...t),this.init(...t)}clone(){return new this.constructor(this)}init(t){return"number"==typeof t||(this.length=0,this.push(...this.parse(t))),this}parse(t=[]){return t instanceof Array?t:t.trim().split(de).map(parseFloat)}toArray(){return Array.prototype.concat.apply([],this)}toSet(){return new Set(this)}toString(){return this.join(" ")}valueOf(){const t=[];return t.push(...this),t}},Ue=class t{constructor(...t){this.init(...t)}convert(e){return new t(this.value,e)}divide(e){return e=new t(e),new t(this/e,this.unit||e.unit)}init(e,r){return r=Array.isArray(e)?e[1]:r,e=Array.isArray(e)?e[0]:e,this.value=0,this.unit=r||"","number"==typeof e?this.value=isNaN(e)?0:isFinite(e)?e:e<0?-34e37:34e37:"string"==typeof e?(r=e.match(re))&&(this.value=parseFloat(r[1]),"%"===r[5]?this.value/=100:"s"===r[5]&&(this.value*=1e3),this.unit=r[5]):e instanceof t&&(this.value=e.valueOf(),this.unit=e.unit),this}minus(e){return e=new t(e),new t(this-e,this.unit||e.unit)}plus(e){return e=new t(e),new t(this+e,this.unit||e.unit)}times(e){return e=new t(e),new t(this*e,this.unit||e.unit)}toArray(){return[this.value,this.unit]}toJSON(){return this.toString()}toString(){return("%"===this.unit?~~(1e8*this.value)/1e6:"s"===this.unit?this.value/1e3:this.value)+this.unit}valueOf(){return this.value}};const Ye=new Set(["fill","stroke","color","bgcolor","stop-color","flood-color","lighting-color"]),We=[];var $e=class t extends Re{constructor(t,e){super(),this.node=t,this.type=t.nodeName,e&&t!==e&&this.attr(e)}add(t,e){return(t=Wt(t)).removeNamespace&&this.node instanceof zt.window.SVGElement&&t.removeNamespace(),null==e?this.node.appendChild(t.node):t.node!==this.node.childNodes[e]&&this.node.insertBefore(t.node,this.node.childNodes[e]),this}addTo(t,e){return Wt(t).put(this,e)}children(){return new Pe(Tt(this.node.children,function(t){return qt(t)}))}clear(){for(;this.node.hasChildNodes();)this.node.removeChild(this.node.lastChild);return this}clone(t=!0,e=!0){this.writeDataToDom();let r=this.node.cloneNode(t);return e&&(r=Zt(r)),new this.constructor(r)}each(t,e){const r=this.children();let n,i;for(n=0,i=r.length;n<i;n++)t.apply(r[n],[n,r]),e&&r[n].each(t,e);return this}element(e,r){return this.put(new t(Yt(e),r))}first(){return qt(this.node.firstChild)}get(t){return qt(this.node.childNodes[t])}getEventHolder(){return this.node}getEventTarget(){return this.node}has(t){return this.index(t)>=0}html(t,e){return this.xml(t,e,"http://www.w3.org/1999/xhtml")}id(t){return void 0!==t||this.node.id||(this.node.id=Qt(this.type)),this.attr("id",t)}index(t){return[].slice.call(this.node.childNodes).indexOf(t.node)}last(){return qt(this.node.lastChild)}matches(t){const e=this.node,r=e.matches||e.matchesSelector||e.msMatchesSelector||e.mozMatchesSelector||e.webkitMatchesSelector||e.oMatchesSelector||null;return r&&r.call(e,t)}parent(t){let e=this;if(!e.node.parentNode)return null;if(e=qt(e.node.parentNode),!t)return e;do{if("string"==typeof t?e.matches(t):e instanceof t)return e}while(e=qt(e.node.parentNode));return e}put(t,e){return t=Wt(t),this.add(t,e),t}putIn(t,e){return Wt(t).add(this,e)}remove(){return this.parent()&&this.parent().removeElement(this),this}removeElement(t){return this.node.removeChild(t.node),this}replace(t){return t=Wt(t),this.node.parentNode&&this.node.parentNode.replaceChild(t.node,this.node),t}round(t=2,e=null){const r=10**t,n=this.attr(e);for(const t in n)"number"==typeof n[t]&&(n[t]=Math.round(n[t]*r)/r);return this.attr(n),this}svg(t,e){return this.xml(t,e,Bt)}toString(){return this.id()}words(t){return this.node.textContent=t,this}wrap(t){const e=this.parent();if(!e)return this.addTo(t);const r=e.index(this);return e.put(t,r).put(this)}writeDataToDom(){return this.each(function(){this.writeDataToDom()}),this}xml(t,e,r){if("boolean"==typeof t&&(r=e,e=t,t=null),null==t||"function"==typeof t){e=e??!0,this.writeDataToDom();let r=this;if(null!=t){if(r=qt(r.node.cloneNode(!0)),e){const e=t(r);if(r=e||r,!1===e)return""}r.each(function(){const e=t(this),r=e||this;!1===e?this.remove():e&&this!==r&&this.replace(r)},!0)}return e?r.node.outerHTML:r.node.innerHTML}e=e??!1;const n=Yt("wrapper",r),i=zt.document.createDocumentFragment();n.innerHTML=t;for(let t=n.children.length;t--;)i.appendChild(n.firstElementChild);const s=this.parent();return e?this.replace(i)&&s:this.add(i)}};te($e,{attr:function(t,e,r){if(null==t){t={},e=this.node.attributes;for(const r of e)t[r.nodeName]=le.test(r.nodeValue)?parseFloat(r.nodeValue):r.nodeValue;return t}if(t instanceof Array)return t.reduce((t,e)=>(t[e]=this.attr(e),t),{});if("object"==typeof t&&t.constructor===Object)for(e in t)this.attr(e,t[e]);else if(null===e)this.node.removeAttribute(t);else{if(null==e)return null==(e=this.node.getAttribute(t))?Xe[t]:le.test(e)?parseFloat(e):e;"number"==typeof(e=We.reduce((e,r)=>r(t,e,this),e))?e=new Ue(e):Ye.has(t)&&we.isColor(e)?e=new we(e):e.constructor===Array&&(e=new Ge(e)),"leading"===t?this.leading&&this.leading(e):"string"==typeof r?this.node.setAttributeNS(r,t,e.toString()):this.node.setAttribute(t,e.toString()),!this.rebuild||"font-size"!==t&&"x"!==t||this.rebuild()}return this},find:function(t){return function(t,e){return new Pe(Tt((e||zt.document).querySelectorAll(t),function(t){return qt(t)}))}(t,this.node)},findOne:function(t){return qt(this.node.querySelector(t))}}),Jt($e,"Dom");var qe=class extends $e{constructor(t,e){super(t,e),this.dom={},this.node.instance=this,(t.hasAttribute("data-svgjs")||t.hasAttribute("svgjs:data"))&&this.setData(JSON.parse(t.getAttribute("data-svgjs"))??JSON.parse(t.getAttribute("svgjs:data"))??{})}center(t,e){return this.cx(t).cy(e)}cx(t){return null==t?this.x()+this.width()/2:this.x(t-this.width()/2)}cy(t){return null==t?this.y()+this.height()/2:this.y(t-this.height()/2)}defs(){const t=this.root();return t&&t.defs()}dmove(t,e){return this.dx(t).dy(e)}dx(t=0){return this.x(new Ue(t).plus(this.x()))}dy(t=0){return this.y(new Ue(t).plus(this.y()))}getEventHolder(){return this}height(t){return this.attr("height",t)}move(t,e){return this.x(t).y(e)}parents(t=this.root()){const e="string"==typeof t,r=this.root(),n=r&&r.node;e||(t=t&&Wt(t).node);const i=new Pe;let s=this;for(;(s=s.parent())&&s.node!==zt.document&&"#document-fragment"!==s.node.nodeName&&(i.push(s),e||s.node!==t)&&(!e||!s.matches(t));)if(n&&s.node===n)return null;return i}reference(t){if(!(t=this.attr(t)))return null;const e=function(t,e){const r=Ae(e);return r?Te(t.getRootNode(),r):null}(this.node,t);return e?Wt(e):null}root(){const t=this.parent(Gt[Ut]);return t&&t.root()}setData(t){return this.dom=t,this}size(t,e){const r=It(this,t,e);return this.width(new Ue(r.width)).height(new Ue(r.height))}width(t){return this.attr("width",t)}writeDataToDom(t){return((t,e,r={})=>{const n={...e};for(const t in n)n[t].valueOf()===r[t]&&delete n[t];Object.keys(n).length?t.node.setAttribute("data-svgjs",JSON.stringify(n)):(t.node.removeAttribute("data-svgjs"),t.node.removeAttribute("svgjs:data"))})(this,this.dom,t),super.writeDataToDom()}x(t){return this.attr("x",t)}y(t){return this.attr("y",t)}};te(qe,{bbox:function(){const t=Ee(this,t=>t.getBBox(),t=>{try{const e=t.clone().addTo(Se().svg).show(),r=e.node.getBBox();return e.remove(),r}catch(e){throw new Error(`Getting bbox of element "${t.node.nodeName}" is not possible: ${e.toString()}`)}});return new Oe(t)},rbox:function(t){const e=Ee(this,t=>t.getBoundingClientRect(),t=>{throw new Error(`Getting rbox of element "${t.node.nodeName}" is not possible`)}),r=new Oe(e);return t?r.transform(t.screenCTM().inverseO()):r.addOffset()},inside:function(t,e){const r=this.bbox();return t>r.x&&e>r.y&&t<r.x+r.width&&e<r.y+r.height},point:function(t,e){return new ve(t,e).transformO(this.screenCTM().inverseO())},ctm:function(){return new Ne(this.node.getCTM())},screenCTM:function(){try{if("function"==typeof this.isRoot&&!this.isRoot()){const t=this.rect(1,1),e=t.node.getScreenCTM();return t.remove(),new Ne(e)}return new Ne(this.node.getScreenCTM())}catch(t){return console.warn(`Cannot get CTM from SVG node ${this.node.nodeName}. Is the element rendered?`),new Ne}}}),Jt(qe,"Element");const He={stroke:["color","width","opacity","linecap","linejoin","miterlimit","dasharray","dashoffset"],fill:["color","opacity","rule"],prefix:function(t,e){return"color"===e?t:t+"-"+e}};["fill","stroke"].forEach(function(t){const e={};let r;e[t]=function(e){if(void 0===e)return this.attr(t);if("string"==typeof e||e instanceof we||we.isRgb(e)||e instanceof qe)this.attr(t,e);else for(r=He[t].length-1;r>=0;r--)null!=e[He[t][r]]&&this.attr(He.prefix(t,He[t][r]),e[He[t][r]]);return this},f(["Element","Runner"],e)}),f(["Element","Runner"],{matrix:function(t,e,r,n,i,s){return null==t?new Ne(this):this.attr("transform",new Ne(t,e,r,n,i,s))},rotate:function(t,e,r){return this.transform({rotate:t,ox:e,oy:r},!0)},skew:function(t,e,r,n){return 1===arguments.length||3===arguments.length?this.transform({skew:t,ox:e,oy:r},!0):this.transform({skew:[t,e],ox:r,oy:n},!0)},shear:function(t,e,r){return this.transform({shear:t,ox:e,oy:r},!0)},scale:function(t,e,r,n){return 1===arguments.length||3===arguments.length?this.transform({scale:t,ox:e,oy:r},!0):this.transform({scale:[t,e],ox:r,oy:n},!0)},translate:function(t,e){return this.transform({translate:[t,e]},!0)},relative:function(t,e){return this.transform({relative:[t,e]},!0)},flip:function(t="both",e="center"){return-1==="xybothtrue".indexOf(t)&&(e=t,t="both"),this.transform({flip:t,origin:e},!0)},opacity:function(t){return this.attr("opacity",t)}}),f("radius",{radius:function(t,e=t){return"radialGradient"===(this._element||this).type?this.attr("r",new Ue(t)):this.rx(t).ry(e)}}),f("Path",{length:function(){return this.node.getTotalLength()},pointAt:function(t){return new ve(this.node.getPointAtLength(t))}}),f(["Element","Runner"],{font:function(t,e){if("object"==typeof t){for(e in t)this.font(e,t[e]);return this}return"leading"===t?this.leading(e):"anchor"===t?this.attr("text-anchor",e):"size"===t||"family"===t||"weight"===t||"stretch"===t||"variant"===t||"style"===t?this.attr("font-"+t,e):this.attr(t,e)}}),f("Element",["click","dblclick","mousedown","mouseup","mouseover","mouseout","mousemove","mouseenter","mouseleave","touchstart","touchmove","touchleave","touchend","touchcancel","contextmenu","wheel","pointerdown","pointermove","pointerup","pointerleave","pointercancel"].reduce(function(t,e){return t[e]=function(t){return null===t?this.off(e):this.on(e,t),this},t},{})),f("Element",{untransform:function(){return this.attr("transform",null)},matrixify:function(){return(this.attr("transform")||"").split(oe).slice(0,-1).map(function(t){const e=t.trim().split("(");return[e[0].trim(),e[1].split(de).map(function(t){return parseFloat(t)})]}).reverse().reduce(function(t,e){return"matrix"===e[0]?t.lmultiply(Ne.fromArray(e[1])):t[e[0]].apply(t,e[1])},new Ne)},toParent:function(t,e){if(this===t)return this;if(Lt(this.node))return this.addTo(t,e);const r=this.screenCTM(),n=t.screenCTM().inverse();return this.addTo(t,e).untransform().transform(n.multiply(r)),this},toRoot:function(t){return this.toParent(this.root(),t)},transform:function(t,e){if(null==t||"string"==typeof t){const e=new Ne(this).decompose();return null==t?e:e[t]}Ne.isMatrixLike(t)||(t={...t,origin:kt(t,this)});const r=new Ne(!0===e?this:e||!1).transform(t);return this.attr("transform",r)}});var Je=class t extends qe{flatten(){return this.each(function(){if(this instanceof t)return this.flatten().ungroup()}),this}ungroup(t=this.parent(),e=t.index(this)){return e=-1===e?t.children().length:e,this.each(function(r,n){return n[n.length-r-1].toParent(t,e)}),this.remove()}};Jt(Je,"Container");var Ke=class extends Je{constructor(t,e=t){super($t("defs",t),e)}flatten(){return this}ungroup(){return this}};Jt(Ke,"Defs");var Qe=class extends qe{};Jt(Qe,"Shape");var Ze=h({cx:()=>ir,cy:()=>sr,height:()=>ar,rx:()=>tr,ry:()=>er,width:()=>or,x:()=>rr,y:()=>nr});function tr(t){return this.attr("rx",t)}function er(t){return this.attr("ry",t)}function rr(t){return null==t?this.cx()-this.rx():this.cx(t+this.rx())}function nr(t){return null==t?this.cy()-this.ry():this.cy(t+this.ry())}function ir(t){return this.attr("cx",t)}function sr(t){return this.attr("cy",t)}function or(t){return null==t?2*this.rx():this.rx(new Ue(t).divide(2))}function ar(t){return null==t?2*this.ry():this.ry(new Ue(t).divide(2))}var ur=class extends Qe{constructor(t,e=t){super($t("ellipse",t),e)}size(t,e){const r=It(this,t,e);return this.rx(new Ue(r.width).divide(2)).ry(new Ue(r.height).divide(2))}};te(ur,Ze),f("Container",{ellipse:ee(function(t=0,e=t){return this.put(new ur).size(t,e).move(0,0)})}),Jt(ur,"Ellipse");var hr=class extends $e{constructor(t=zt.document.createDocumentFragment()){super(t)}xml(t,e,r){if("boolean"==typeof t&&(r=e,e=t,t=null),null==t||"function"==typeof t){const t=new $e(Yt("wrapper",r));return t.add(this.node.cloneNode(!0)),t.xml(!1,r)}return super.xml(t,!1,r)}};Jt(hr,"Fragment");var cr=h({from:()=>lr,to:()=>fr});function lr(t,e){return"radialGradient"===(this._element||this).type?this.attr({fx:new Ue(t),fy:new Ue(e)}):this.attr({x1:new Ue(t),y1:new Ue(e)})}function fr(t,e){return"radialGradient"===(this._element||this).type?this.attr({cx:new Ue(t),cy:new Ue(e)}):this.attr({x2:new Ue(t),y2:new Ue(e)})}var dr=class extends Je{constructor(t,e){super($t(t+"Gradient","string"==typeof t?null:t),e)}attr(t,e,r){return"transform"===t&&(t="gradientTransform"),super.attr(t,e,r)}bbox(){return new Oe}targets(){return je(this.node,"fill")}toString(){return this.url()}update(t){return this.clear(),"function"==typeof t&&t.call(this,this),this}url(){return"url(#"+this.id()+")"}};te(dr,cr),f({Container:{gradient(...t){return this.defs().gradient(...t)}},Defs:{gradient:ee(function(t,e){return this.put(new dr(t)).update(e)})}}),Jt(dr,"Gradient");var mr=class extends Je{constructor(t,e=t){super($t("pattern",t),e)}attr(t,e,r){return"transform"===t&&(t="patternTransform"),super.attr(t,e,r)}bbox(){return new Oe}targets(){return je(this.node,"fill")}toString(){return this.url()}update(t){return this.clear(),"function"==typeof t&&t.call(this,this),this}url(){return"url(#"+this.id()+")"}};f({Container:{pattern(...t){return this.defs().pattern(...t)}},Defs:{pattern:ee(function(t,e,r){return this.put(new mr).update(r).attr({x:0,y:0,width:t,height:e,patternUnits:"userSpaceOnUse"})})}}),Jt(mr,"Pattern");var pr,yr=class extends Qe{constructor(t,e=t){super($t("image",t),e)}load(t,e){if(!t)return this;const r=new zt.window.Image;return Be(r,"load",function(t){const n=this.parent(mr);0===this.width()&&0===this.height()&&this.size(r.width,r.height),n instanceof mr&&0===n.width()&&0===n.height()&&n.size(this.width(),this.height()),"function"==typeof e&&e.call(this,t)},this),Be(r,"load error",function(){Ve(r)}),this.attr("href",r.src=t,Rt)}};pr=function(t,e,r){return"fill"!==t&&"stroke"!==t||fe.test(e)&&(e=r.root().defs().image(e)),e instanceof yr&&(e=r.root().defs().pattern(0,0,t=>{t.add(e)})),e},We.push(pr),f({Container:{image:ee(function(t,e){return this.put(new yr).size(0,0).load(t,e)})}}),Jt(yr,"Image");var gr=class extends Ge{bbox(){let t=-1/0,e=-1/0,r=1/0,n=1/0;return this.forEach(function(i){t=Math.max(i[0],t),e=Math.max(i[1],e),r=Math.min(i[0],r),n=Math.min(i[1],n)}),new Oe(r,n,t-r,e-n)}move(t,e){const r=this.bbox();if(t-=r.x,e-=r.y,!isNaN(t)&&!isNaN(e))for(let r=this.length-1;r>=0;r--)this[r]=[this[r][0]+t,this[r][1]+e];return this}parse(t=[0,0]){const e=[];(t=t instanceof Array?Array.prototype.concat.apply([],t):t.trim().split(de).map(parseFloat)).length%2!=0&&t.pop();for(let r=0,n=t.length;r<n;r+=2)e.push([t[r],t[r+1]]);return e}size(t,e){let r;const n=this.bbox();for(r=this.length-1;r>=0;r--)n.width&&(this[r][0]=(this[r][0]-n.x)*t/n.width+n.x),n.height&&(this[r][1]=(this[r][1]-n.y)*e/n.height+n.y);return this}toLine(){return{x1:this[0][0],y1:this[0][1],x2:this[1][0],y2:this[1][1]}}toString(){const t=[];for(let e=0,r=this.length;e<r;e++)t.push(this[e].join(","));return t.join(" ")}transform(t){return this.clone().transformO(t)}transformO(t){Ne.isMatrixLike(t)||(t=new Ne(t));for(let e=this.length;e--;){const[r,n]=this[e];this[e][0]=t.a*r+t.c*n+t.e,this[e][1]=t.b*r+t.d*n+t.f}return this}},br=h({MorphArray:()=>wr,height:()=>Sr,width:()=>Nr,x:()=>vr,y:()=>xr});const wr=gr;function vr(t){return null==t?this.bbox().x:this.move(t,this.bbox().y)}function xr(t){return null==t?this.bbox().y:this.move(this.bbox().x,t)}function Nr(t){const e=this.bbox();return null==t?e.width:this.size(t,e.height)}function Sr(t){const e=this.bbox();return null==t?e.height:this.size(e.width,t)}var _r=class extends Qe{constructor(t,e=t){super($t("line",t),e)}array(){return new gr([[this.attr("x1"),this.attr("y1")],[this.attr("x2"),this.attr("y2")]])}move(t,e){return this.attr(this.array().move(t,e).toLine())}plot(t,e,r,n){return null==t?this.array():(t=void 0!==e?{x1:t,y1:e,x2:r,y2:n}:new gr(t).toLine(),this.attr(t))}size(t,e){const r=It(this,t,e);return this.attr(this.array().size(r.width,r.height).toLine())}};te(_r,br),f({Container:{line:ee(function(...t){return _r.prototype.plot.apply(this.put(new _r),null!=t[0]?t:[0,0,0,0])})}}),Jt(_r,"Line");var Or=class extends Je{constructor(t,e=t){super($t("marker",t),e)}height(t){return this.attr("markerHeight",t)}orient(t){return this.attr("orient",t)}ref(t,e){return this.attr("refX",t).attr("refY",e)}toString(){return"url(#"+this.id()+")"}update(t){return this.clear(),"function"==typeof t&&t.call(this,this),this}width(t){return this.attr("markerWidth",t)}};function Er(t,e){return function(r){return null==r?this[t]:(this[t]=r,e&&e.call(this),this)}}f({Container:{marker(...t){return this.defs().marker(...t)}},Defs:{marker:ee(function(t,e,r){return this.put(new Or).size(t,e).ref(t/2,e/2).viewbox(0,0,t,e).attr("orient","auto").update(r)})},marker:{marker(t,e,r,n){let i=["marker"];return"all"!==t&&i.push(t),i=i.join("-"),t=arguments[1]instanceof Or?arguments[1]:this.defs().marker(e,r,n),this.attr(i,t)}}}),Jt(Or,"Marker");const Pr={"-":function(t){return t},"<>":function(t){return-Math.cos(t*Math.PI)/2+.5},">":function(t){return Math.sin(t*Math.PI/2)},"<":function(t){return 1-Math.cos(t*Math.PI/2)},bezier:function(t,e,r,n){return function(i){return i<0?t>0?e/t*i:r>0?n/r*i:0:i>1?r<1?(1-n)/(1-r)*i+(n-r)/(1-r):t<1?(1-e)/(1-t)*i+(e-t)/(1-t):1:3*i*(1-i)**2*e+3*i**2*(1-i)*n+i**3}},steps:function(t,e="end"){e=e.split("-").reverse()[0];let r=t;return"none"===e?--r:"both"===e&&++r,(n,i=!1)=>{let s=Math.floor(n*t);const o=n*s%1==0;return"start"!==e&&"both"!==e||++s,i&&o&&--s,n>=0&&s<0&&(s=0),n<=1&&s>r&&(s=r),s/r}}};var Mr=class{done(){return!1}},Ar=class extends Mr{constructor(t=">"){super(),this.ease=Pr[t]||t}step(t,e,r){return"number"!=typeof t?r<1?t:e:t+(e-t)*this.ease(r)}},Tr=class extends Mr{constructor(t){super(),this.stepper=t}done(t){return t.done}step(t,e,r,n){return this.stepper(t,e,r,n)}};function jr(){const t=(this._duration||500)/1e3,e=this._overshoot||0,r=Math.PI,n=Math.log(e/100+1e-10),i=-n/Math.sqrt(r*r+n*n),s=3.9/(i*t);this.d=2*i*s,this.k=s*s}te(class extends Tr{constructor(t=500,e=0){super(),this.duration(t).overshoot(e)}step(t,e,r,n){if("string"==typeof t)return t;if(n.done=r===1/0,r===1/0)return e;if(0===r)return t;r>100&&(r=16),r/=1e3;const i=n.velocity||0,s=-this.d*i-this.k*(t-e),o=t+i*r+s*r*r/2;return n.velocity=i+s*r,n.done=Math.abs(e-o)+Math.abs(i)<.002,n.done?e:o}},{duration:Er("_duration",jr),overshoot:Er("_overshoot",jr)}),te(class extends Tr{constructor(t=.1,e=.01,r=0,n=1e3){super(),this.p(t).i(e).d(r).windup(n)}step(t,e,r,n){if("string"==typeof t)return t;if(n.done=r===1/0,r===1/0)return e;if(0===r)return t;const i=e-t;let s=(n.integral||0)+i*r;const o=(i-(n.error||0))/r,a=this._windup;return!1!==a&&(s=Math.max(-a,Math.min(s,a))),n.error=i,n.integral=s,n.done=Math.abs(i)<.001,n.done?e:t+(this.P*i+this.I*s+this.D*o)}},{windup:Er("_windup"),p:Er("P"),i:Er("I"),d:Er("D")});const Cr={M:2,L:2,H:1,V:1,C:6,S:4,Q:4,T:2,A:7,Z:0},Dr={M:function(t,e,r){return e.x=r.x=t[0],e.y=r.y=t[1],["M",e.x,e.y]},L:function(t,e){return e.x=t[0],e.y=t[1],["L",t[0],t[1]]},H:function(t,e){return e.x=t[0],["H",t[0]]},V:function(t,e){return e.y=t[0],["V",t[0]]},C:function(t,e){return e.x=t[4],e.y=t[5],["C",t[0],t[1],t[2],t[3],t[4],t[5]]},S:function(t,e){return e.x=t[2],e.y=t[3],["S",t[0],t[1],t[2],t[3]]},Q:function(t,e){return e.x=t[2],e.y=t[3],["Q",t[0],t[1],t[2],t[3]]},T:function(t,e){return e.x=t[0],e.y=t[1],["T",t[0],t[1]]},Z:function(t,e,r){return e.x=r.x,e.y=r.y,["Z"]},A:function(t,e){return e.x=t[5],e.y=t[6],["A",t[0],t[1],t[2],t[3],t[4],t[5],t[6]]}},Ir="mlhvqtcsaz".split("");for(let t=0,e=Ir.length;t<e;++t)Dr[Ir[t]]=function(t){return function(e,r,n){if("H"===t)e[0]=e[0]+r.x;else if("V"===t)e[0]=e[0]+r.y;else if("A"===t)e[5]=e[5]+r.x,e[6]=e[6]+r.y;else for(let t=0,n=e.length;t<n;++t)e[t]=e[t]+(t%2?r.y:r.x);return Dr[t](e,r,n)}}(Ir[t].toUpperCase());function kr(t){return t.segment.length&&t.segment.length-1===Cr[t.segment[0].toUpperCase()]}function Fr(t,e){t.inNumber&&Lr(t,!1);const r=me.test(e);if(r)t.segment=[e];else{const e=t.lastCommand,r=e.toLowerCase();t.segment=["m"===r?e===r?"l":"L":e]}return t.inSegment=!0,t.lastCommand=t.segment[0],r}function Lr(t,e){if(!t.inNumber)throw new Error("Parser Error");t.number&&t.segment.push(parseFloat(t.number)),t.inNumber=e,t.number="",t.pointSeen=!1,t.hasExponent=!1,kr(t)&&Br(t)}function Br(t){t.inSegment=!1,t.absolute&&(t.segment=function(t){return Dr[t.segment[0]](t.segment.slice(1),t.p,t.p0)}(t)),t.segments.push(t.segment)}function Vr(t){if(!t.segment.length)return!1;const e="A"===t.segment[0].toUpperCase(),r=t.segment.length;return e&&(4===r||5===r)}function Rr(t){return"E"===t.lastToken.toUpperCase()}const zr=new Set([" ",",","\t","\n","\r","\f"]);var Xr=class extends Ge{bbox(){return Se().path.setAttribute("d",this.toString()),new Oe(Se.nodes.path.getBBox())}move(t,e){const r=this.bbox();if(t-=r.x,e-=r.y,!isNaN(t)&&!isNaN(e))for(let r,n=this.length-1;n>=0;n--)r=this[n][0],"M"===r||"L"===r||"T"===r?(this[n][1]+=t,this[n][2]+=e):"H"===r?this[n][1]+=t:"V"===r?this[n][1]+=e:"C"===r||"S"===r||"Q"===r?(this[n][1]+=t,this[n][2]+=e,this[n][3]+=t,this[n][4]+=e,"C"===r&&(this[n][5]+=t,this[n][6]+=e)):"A"===r&&(this[n][6]+=t,this[n][7]+=e);return this}parse(t="M0 0"){return Array.isArray(t)&&(t=Array.prototype.concat.apply([],t).toString()),function(t,e=!0){let r=0,n="";const i={segment:[],inNumber:!1,number:"",lastToken:"",inSegment:!1,segments:[],pointSeen:!1,hasExponent:!1,absolute:e,p0:new ve,p:new ve};for(;i.lastToken=n,n=t.charAt(r++);)if(i.inSegment||!Fr(i,n))if("."!==n)if(isNaN(parseInt(n)))if(zr.has(n))i.inNumber&&Lr(i,!1);else if("-"!==n&&"+"!==n)if("E"!==n.toUpperCase()){if(me.test(n)){if(i.inNumber)Lr(i,!1);else{if(!kr(i))throw new Error("parser Error");Br(i)}--r}}else i.number+=n,i.hasExponent=!0;else{if(i.inNumber&&!Rr(i)){Lr(i,!1),--r;continue}i.number+=n,i.inNumber=!0}else{if("0"===i.number||Vr(i)){i.inNumber=!0,i.number=n,Lr(i,!0);continue}i.inNumber=!0,i.number+=n}else{if(i.pointSeen||i.hasExponent){Lr(i,!1),--r;continue}i.inNumber=!0,i.pointSeen=!0,i.number+=n}return i.inNumber&&Lr(i,!1),i.inSegment&&kr(i)&&Br(i),i.segments}(t)}size(t,e){const r=this.bbox();let n,i;for(r.width=0===r.width?1:r.width,r.height=0===r.height?1:r.height,n=this.length-1;n>=0;n--)i=this[n][0],"M"===i||"L"===i||"T"===i?(this[n][1]=(this[n][1]-r.x)*t/r.width+r.x,this[n][2]=(this[n][2]-r.y)*e/r.height+r.y):"H"===i?this[n][1]=(this[n][1]-r.x)*t/r.width+r.x:"V"===i?this[n][1]=(this[n][1]-r.y)*e/r.height+r.y:"C"===i||"S"===i||"Q"===i?(this[n][1]=(this[n][1]-r.x)*t/r.width+r.x,this[n][2]=(this[n][2]-r.y)*e/r.height+r.y,this[n][3]=(this[n][3]-r.x)*t/r.width+r.x,this[n][4]=(this[n][4]-r.y)*e/r.height+r.y,"C"===i&&(this[n][5]=(this[n][5]-r.x)*t/r.width+r.x,this[n][6]=(this[n][6]-r.y)*e/r.height+r.y)):"A"===i&&(this[n][1]=this[n][1]*t/r.width,this[n][2]=this[n][2]*e/r.height,this[n][6]=(this[n][6]-r.x)*t/r.width+r.x,this[n][7]=(this[n][7]-r.y)*e/r.height+r.y);return this}toString(){return function(t){let e="";for(let r=0,n=t.length;r<n;r++)e+=t[r][0],null!=t[r][1]&&(e+=t[r][1],null!=t[r][2]&&(e+=" ",e+=t[r][2],null!=t[r][3]&&(e+=" ",e+=t[r][3],e+=" ",e+=t[r][4],null!=t[r][5]&&(e+=" ",e+=t[r][5],e+=" ",e+=t[r][6],null!=t[r][7]&&(e+=" ",e+=t[r][7])))));return e+" "}(this)}};const Gr=t=>{const e=typeof t;return"number"===e?Ue:"string"===e?we.isColor(t)?we:de.test(t)?me.test(t)?Xr:Ge:re.test(t)?Ue:Yr:Hr.indexOf(t.constructor)>-1?t.constructor:Array.isArray(t)?Ge:"object"===e?qr:Yr};var Ur=class{constructor(t){this._stepper=t||new Ar("-"),this._from=null,this._to=null,this._type=null,this._context=null,this._morphObj=null}at(t){return this._morphObj.morph(this._from,this._to,t,this._stepper,this._context)}done(){return this._context.map(this._stepper.done).reduce(function(t,e){return t&&e},!0)}from(t){return null==t?this._from:(this._from=this._set(t),this)}stepper(t){return null==t?this._stepper:(this._stepper=t,this)}to(t){return null==t?this._to:(this._to=this._set(t),this)}type(t){return null==t?this._type:(this._type=t,this)}_set(t){this._type||this.type(Gr(t));let e=new this._type(t);return this._type===we&&(e=this._to?e[this._to[4]]():this._from?e[this._from[4]]():e),this._type===qr&&(e=this._to?e.align(this._to):this._from?e.align(this._from):e),e=e.toConsumable(),this._morphObj=this._morphObj||new this._type,this._context=this._context||Array.apply(null,Array(e.length)).map(Object).map(function(t){return t.done=!0,t}),e}},Yr=class{constructor(...t){this.init(...t)}init(t){return t=Array.isArray(t)?t[0]:t,this.value=t,this}toArray(){return[this.value]}valueOf(){return this.value}},Wr=class t{constructor(...t){this.init(...t)}init(e){return Array.isArray(e)&&(e={scaleX:e[0],scaleY:e[1],shear:e[2],rotate:e[3],translateX:e[4],translateY:e[5],originX:e[6],originY:e[7]}),Object.assign(this,t.defaults,e),this}toArray(){const t=this;return[t.scaleX,t.scaleY,t.shear,t.rotate,t.translateX,t.translateY,t.originX,t.originY]}};Wr.defaults={scaleX:1,scaleY:1,shear:0,rotate:0,translateX:0,translateY:0,originX:0,originY:0};const $r=(t,e)=>t[0]<e[0]?-1:t[0]>e[0]?1:0;var qr=class{constructor(...t){this.init(...t)}align(t){const e=this.values;for(let r=0,n=e.length;r<n;++r){if(e[r+1]===t[r+1]){if(e[r+1]===we&&t[r+7]!==e[r+7]){const e=t[r+7],n=new we(this.values.splice(r+3,5))[e]().toArray();this.values.splice(r+3,0,...n)}r+=e[r+2]+2;continue}if(!t[r+1])return this;const n=(new t[r+1]).toArray(),i=e[r+2]+3;e.splice(r,i,t[r],t[r+1],t[r+2],...n),r+=e[r+2]+2}return this}init(t){if(this.values=[],Array.isArray(t))return void(this.values=t.slice());t=t||{};const e=[];for(const r in t){const n=Gr(t[r]),i=new n(t[r]).toArray();e.push([r,n,i.length,...i])}return e.sort($r),this.values=e.reduce((t,e)=>t.concat(e),[]),this}toArray(){return this.values}valueOf(){const t={},e=this.values;for(;e.length;){const r=e.shift(),n=e.shift(),i=e.shift();t[r]=new n(e.splice(0,i))}return t}};const Hr=[Yr,Wr,qr];var Jr=class extends Qe{constructor(t,e=t){super($t("path",t),e)}array(){return this._array||(this._array=new Xr(this.attr("d")))}clear(){return delete this._array,this}height(t){return null==t?this.bbox().height:this.size(this.bbox().width,t)}move(t,e){return this.attr("d",this.array().move(t,e))}plot(t){return null==t?this.array():this.clear().attr("d","string"==typeof t?t:this._array=new Xr(t))}size(t,e){const r=It(this,t,e);return this.attr("d",this.array().size(r.width,r.height))}width(t){return null==t?this.bbox().width:this.size(t,this.bbox().height)}x(t){return null==t?this.bbox().x:this.move(t,this.bbox().y)}y(t){return null==t?this.bbox().y:this.move(this.bbox().x,t)}};Jr.prototype.MorphArray=Xr,f({Container:{path:ee(function(t){return this.put(new Jr).plot(t||new Xr)})}}),Jt(Jr,"Path");var Kr=h({array:()=>Qr,clear:()=>Zr,move:()=>tn,plot:()=>en,size:()=>rn});function Qr(){return this._array||(this._array=new gr(this.attr("points")))}function Zr(){return delete this._array,this}function tn(t,e){return this.attr("points",this.array().move(t,e))}function en(t){return null==t?this.array():this.clear().attr("points","string"==typeof t?t:this._array=new gr(t))}function rn(t,e){const r=It(this,t,e);return this.attr("points",this.array().size(r.width,r.height))}var nn=class extends Qe{constructor(t,e=t){super($t("polygon",t),e)}};f({Container:{polygon:ee(function(t){return this.put(new nn).plot(t||new gr)})}}),te(nn,br),te(nn,Kr),Jt(nn,"Polygon");var sn=class extends Qe{constructor(t,e=t){super($t("polyline",t),e)}};f({Container:{polyline:ee(function(t){return this.put(new sn).plot(t||new gr)})}}),te(sn,br),te(sn,Kr),Jt(sn,"Polyline");var on=class extends Qe{constructor(t,e=t){super($t("rect",t),e)}};te(on,{rx:tr,ry:er}),f({Container:{rect:ee(function(t,e){return this.put(new on).size(t,e)})}}),Jt(on,"Rect");var an=class{constructor(){this._first=null,this._last=null}first(){return this._first&&this._first.value}last(){return this._last&&this._last.value}push(t){const e=void 0!==t.next?t:{value:t,next:null,prev:null};return this._last?(e.prev=this._last,this._last.next=e,this._last=e):(this._last=e,this._first=e),e}remove(t){t.prev&&(t.prev.next=t.next),t.next&&(t.next.prev=t.prev),t===this._last&&(this._last=t.prev),t===this._first&&(this._first=t.next),t.prev=null,t.next=null}shift(){const t=this._first;return t?(this._first=t.next,this._first&&(this._first.prev=null),this._last=this._first?this._last:null,t.value):null}};const un={nextDraw:null,frames:new an,timeouts:new an,immediates:new an,timer:()=>zt.window.performance||zt.window.Date,frame(t){const e=un.frames.push({run:t});return null===un.nextDraw&&(un.nextDraw=zt.window.requestAnimationFrame(un._draw)),e},timeout(t,e){e=e||0;const r=un.timer().now()+e,n=un.timeouts.push({run:t,time:r});return null===un.nextDraw&&(un.nextDraw=zt.window.requestAnimationFrame(un._draw)),n},immediate(t){const e=un.immediates.push(t);return null===un.nextDraw&&(un.nextDraw=zt.window.requestAnimationFrame(un._draw)),e},cancelFrame(t){null!=t&&un.frames.remove(t)},clearTimeout(t){null!=t&&un.timeouts.remove(t)},cancelImmediate(t){null!=t&&un.immediates.remove(t)},_draw(t){try{let e=null;const r=un.timeouts.last();for(;(e=un.timeouts.shift())&&(t>=e.time?e.run():un.timeouts.push(e),e!==r););let n=null;const i=un.frames.last();for(;n!==i&&(n=un.frames.shift());)n.run(t);let s=null;for(;s=un.immediates.shift();)s()}finally{const t=un.timeouts.first()||un.frames.first()||un.immediates.first();un.nextDraw=t?zt.window.requestAnimationFrame(un._draw):null}}},hn=function(t){const e=t.start,r=t.runner.duration();return{start:e,duration:r,end:e+r,runner:t.runner}},cn=function(){const t=zt.window;return(t.performance||t.Date).now()};var ln=class extends Re{constructor(t=cn){super(),this._timeSource=t,this.terminate()}active(){return!!this._nextFrame}finish(){this._finishing=!0;try{this.time(this.getEndTimeOfTimeline()+1)}finally{this._finishing=!1}return this.pause()}getEndTime(){const t=this.getLastRunnerInfo(),e=t?t.runner.duration():0;return(t?t.start:this._time)+e}getEndTimeOfTimeline(){const t=this._runners.map(t=>t.start+t.runner.duration());return Math.max(0,...t)}getLastRunnerInfo(){return this.getRunnerInfoById(this._lastRunnerId)}getRunnerInfoById(t){return this._runners[this._runnerIds.indexOf(t)]||null}pause(){return this._paused=!0,this._continue()}persist(t){return null==t?this._persist:(this._persist=t,this)}play(){return this._paused=!1,this.updateTime()._continue()}reverse(t){const e=this.speed();if(null==t)return this.speed(-e);const r=Math.abs(e);return this.speed(t?-r:r)}schedule(t,e,r){if(null==t)return this._runners.map(hn);let n=0;const i=this.getEndTime();if(e=e||0,null==r||"last"===r||"after"===r)n=i;else if("absolute"===r||"start"===r)n=e,e=0;else if("now"===r)n=this._time;else if("relative"===r){const r=this.getRunnerInfoById(t.id);r&&(n=r.start+e,e=0)}else{if("with-last"!==r)throw new Error('Invalid value for the "when" parameter');{const t=this.getLastRunnerInfo();n=t?t.start:this._time}}t.unschedule(),t.timeline(this),t._retired=!1;const s=t.persist(),o={persist:null===s?this._persist:s,start:n+e,runner:t};return this._lastRunnerId=t.id,t._runnerInfo=o,this._runners.push(o),this._runners.sort((t,e)=>t.start-e.start),this._runnerIds=this._runners.map(t=>t.runner.id),this.updateTime()._continue(),this}seek(t){return this.time(this._time+t)}source(t){return null==t?this._timeSource:(this._timeSource=t,this)}speed(t){return null==t?this._speed:(this._speed=t,this)}stop(){return this.time(0),this.pause()}time(t){return null==t?this._time:(this._time=t,this._continue(!0))}unschedule(t){const e=this._runnerIds.indexOf(t.id);return e<0||(this._runners.splice(e,1),this._runnerIds.splice(e,1),t.timeline(null),t._runnerInfo=null,t._retired=!0),this}updateTime(){return this.active()||(this._lastSourceTime=this._timeSource()),this}_continue(t=!1){return un.cancelFrame(this._nextFrame),this._nextFrame=null,t?this._stepImmediate():(this._paused||(this._nextFrame=un.frame(this._step)),this)}_stepFn(t=!1){const e=this._generation,r=this._timeSource();let n=r-this._lastSourceTime;t&&(n=0);const i=this._speed*n+(this._time-this._lastStepTime);this._lastSourceTime=r,t||(this._time+=i,this._time=this._time<0?0:this._time),this._lastStepTime=this._time,this.fire("time",this._time);const s=this._runners.slice();for(let t=s.length;t--;){const e=s[t];if(e.runner._runnerInfo!==e)continue;const r=e.runner;this._time-e.start<0&&r.reset(!0)}let o=!1;for(const t of this._runners.slice()){if(t.runner._runnerInfo!==t)continue;const e=t.runner;let r=i;const n=this._time-t.start;if(n<0){o=!0;continue}if(0===n){e.reset(),o=!0;continue}if(n<r&&(r=n),!e.active())continue;const s=(this._finishing&&e._isDeclarative?e.finish():e.step(r)).done;e._runnerInfo===t&&(s?!0!==t.persist&&e.duration()-e.time()+this._time+t.persist<=this._time&&e.unschedule():o=!0)}return e!==this._generation||(o||(o=this._runners.some(({start:t,runner:e})=>t>=this._time||e.active()&&!e.done)),o&&!(this._speed<0&&0===this._time)||this._runnerIds.length&&this._speed<0&&this._time>0?this._continue():(this.pause(),this.fire("finished"))),this}terminate(){un.cancelFrame(this._nextFrame),this._generation=(this._generation||0)+1,this._startTime=0,this._speed=1,this._persist=0;for(const{runner:t}of this._runners||[])t._retired=!0,t._runnerInfo=null;this._nextFrame=null,this._paused=!0,this._finishing=!1,this._runners=[],this._runnerIds=[],this._lastRunnerId=-1,this._time=0,this._lastSourceTime=0,this._lastStepTime=0,this._step=this._stepFn.bind(this,!1),this._stepImmediate=this._stepFn.bind(this,!0)}};f({Element:{timeline:function(t){return null==t?(this._timeline=this._timeline||new ln,this._timeline):(this._timeline=t,this)}}});var fn=class t extends Re{constructor(e){super(),this.id=t.id++,e="function"==typeof(e=e??400)?new Tr(e):e,this._element=null,this._timeline=null,this._runnerInfo=null,this.done=!1,this._queue=[],this._duration="number"==typeof e&&e,this._isDeclarative=e instanceof Tr,this._stepper=this._isDeclarative?e:new Ar,this._history={},this.enabled=!0,this._time=0,this._lastTime=0,this._reseted=!0,this.transforms=new Ne,this._isAbsoluteTransform=!1,this._hasTransform=!1,this._transformInitialised=!1,this._transformActive=!1,this._retired=!1,this._reverse=!1,this._swing=!1,this._wait=0,this._times=1,this._persist=!!this._isDeclarative||null}static sanitise(t,e,r){let n=1,i=!1,s=0;return e=e??0,r=r||"last","object"!=typeof(t=t??400)||t instanceof Mr||(e=t.delay??e,r=t.when??r,i=t.swing||i,n=t.times??n,s=t.wait??s,t=t.duration??400),{duration:t,delay:e,swing:i,times:n,wait:s,when:r}}active(t){return null==t?this.enabled:(this.enabled=t,this)}addTransform(t){return this.transforms.lmultiplyO(t),this._transformInitialised=!0,this._transformActive=!0,this}after(t){return this.on("finished",t)}animate(e,r,n){const i=t.sanitise(e,r,n),s=new t(i.duration);return this._timeline&&s.timeline(this._timeline),this._element&&s.element(this._element),s.loop(i).schedule(i.delay,i.when)}clearTransform(){return this.transforms=new Ne,this}delay(t){return this.animate(0,t)}duration(){return this._times*(this._wait+this._duration)-this._wait}during(t){return this.queue(null,t)}ease(t){return this._stepper=new Ar(t),this}element(t){return null==t?this._element:(this._element=t,t._prepareRunner(),this)}finish(){if(!this._isDeclarative)return this.time(this.duration());const t=this._time;return this.step(1/0),this._time=t,this}loop(t,e,r){return"object"==typeof t&&(e=t.swing,r=t.wait,t=t.times),this._times=t||1/0,this._swing=e||!1,this._wait=r||0,!0===this._times&&(this._times=1/0),this}loops(t){const e=this._duration+this._wait;if(null==t){const t=Math.floor(this._time/e),r=(this._time-t*e)/this._duration;return Math.min(t+r,this._times)}const r=t%1,n=e*Math.floor(t)+this._duration*r;return this.time(n)}persist(t){return null==t?this._persist:(this._persist=t,this)}position(t){const e=this._time,r=this._duration,n=this._wait,i=this._times,s=this._swing,o=this._reverse;let a;if(null==t){const t=function(t){const e=s*Math.floor(t%(2*(n+r))/(n+r)),i=e&&!o||!e&&o,a=Math.pow(-1,i)*(t%(n+r))/r+i;return Math.max(Math.min(a,1),0)},u=i*(n+r)-n;return a=e<=0?Math.round(t(1e-5)):e<u?t(e):Math.round(t(u-1e-5)),a}const u=Math.floor(this.loops()),h=s&&u%2==0;return a=u+(h&&!o||o&&h?t:1-t),this.loops(a)}progress(t){return null==t?Math.min(1,this._time/this.duration()):this.time(t*this.duration())}queue(t,e,r,n){return this._isDeclarative&&(this.done=!1),this._queue.push({initialiser:t||ze,runner:e||ze,retarget:r,isTransform:n,initialised:!1,finished:!1}),this.timeline()&&this.timeline()._continue(),this}reset(t=!1){if(this._reseted){const e=!t&&this._hasTransform&&0!==this.position();return e&&!this._transformInitialised?(this.step(0),this._reseted=!0,this):(e!==this._transformActive&&(this._transformActive=e,this._element&&this._element._addRunner(this)),this)}return this._reseted||(this.time(0),this._reseted=!0),t&&this._transformActive&&(this._transformActive=!1,this._element&&this._element._addRunner(this)),this}reverse(t){return this._reverse=t??!this._reverse,this}schedule(t,e,r){if(t instanceof ln||(r=e,e=t,t=this.timeline()),!t)throw Error("Runner cannot be scheduled without timeline");return t.schedule(this,e,r),this}step(t){if(!this.enabled)return this;const e=this.done;t=t??16,this._time+=t;const r=this.position(),n=this._lastPosition!==r&&this._time>=0;this._lastPosition=r;const i=this.duration(),s=this._lastTime<=0&&this._time>0;this._lastTime=this._time,s&&this.fire("start",this);const o=this._isDeclarative;this.done=!o&&this._time>=i,this._reseted=!1;const a=this._hasTransform&&(this._time>0||0!==r);this._transformActive=a;let u=!1;return(n||o)&&(this._initialise(n),this.transforms=new Ne,u=this._run(o?t:r),this._transformActive=a,this.fire("step",this)),this.done=this.done||u&&o,this.done&&!e&&this.fire("finished",this),this}time(t){if(null==t)return this._time;const e=t-this._time;return this.step(e),this}timeline(t){return void 0===t?this._timeline:(this._timeline=t,this)}unschedule(){const t=this.timeline();return t&&t.unschedule(this),this}_initialise(t){if(t||this._isDeclarative)for(let e=0,r=this._queue.length;e<r;++e){const r=this._queue[e],n=this._isDeclarative||!r.initialised&&t;t=!r.finished,n&&t&&(r.initialiser.call(this),r.initialised=!0)}}_rememberMorpher(t,e){if(this._history[t]={morpher:e,caller:this._queue[this._queue.length-1]},this._isDeclarative){const t=this.timeline();t&&t.play()}}_run(t){let e=!0;for(let r=0,n=this._queue.length;r<n;++r){const n=this._queue[r];if(this._isDeclarative&&n.finished&&!n.isTransform)continue;const i=n.runner.call(this,t);n.finished=n.finished||!0===i,e=e&&n.finished}return e}_tryRetarget(t,e,r){if(this._history[t]){if(!this._history[t].caller.initialised){const e=this._queue.indexOf(this._history[t].caller);return this._queue.splice(e,1),!1}this._history[t].caller.retarget?this._history[t].caller.retarget.call(this,e,r):this._history[t].morpher.to(e),this._history[t].caller.finished=!1,this._isDeclarative&&(this.done=!1);const n=this.timeline();return n&&n.play(),!0}return!1}};fn.id=0;var dn=class{constructor(t=new Ne,e=-1,r=!0,n=!1){this.transforms=t,this.id=e,this.done=r,this._isAbsoluteTransform=n,this._transformActive=!0,this._retired=!0}};te([fn,dn],{mergeWith(t){return new dn(this._isAbsoluteTransform?this.transforms:t.transforms.lmultiply(this.transforms),t.id,!0,t._isAbsoluteTransform||this._isAbsoluteTransform)}});const mn=(t,e)=>t.lmultiplyO(e),pn=t=>t.transforms,yn=t=>t._transformActive;function gn(t){const e=t.filter(yn);let r=0;for(let t=0;t<e.length;++t)e[t]._isAbsoluteTransform&&(r=t);return e.slice(r)}function bn(){const t=gn(this._transformationRunners.runners).map(pn).reduce(mn,new Ne);this.transform(t),this._transformationRunners.merge(),1===this._transformationRunners.length()&&(this._frameId=null)}var wn=class{constructor(){this.runners=[]}add(t){var e;if(!(0,At.default)(e=this.runners).call(e,t))return this.runners.push(t),this}edit(t,e){const r=this.runners.findIndex(e=>e.id===t);return r>=0&&this.runners.splice(r,1,e),this}getByID(t){return this.runners.find(e=>e.id===t)}length(){return this.runners.length}merge(){let t=null;for(let e=0;e<this.runners.length;++e){const r=this.runners[e];if(t&&r.done&&t.done&&r._retired&&t._retired){this.remove(r.id);const n=r.mergeWith(t);this.edit(t.id,n),t=n,--e}else t=r}return this}remove(t){const e=this.runners.findIndex(e=>e.id===t);return e>=0&&this.runners.splice(e,1),this}};f({Element:{animate(t,e,r){const n=fn.sanitise(t,e,r),i=this.timeline();return new fn(n.duration).loop(n).element(this).timeline(i.play()).schedule(n.delay,n.when)},delay(t,e){return this.animate(0,t,e)},_currentTransform(t){const e=this._transformationRunners.runners,r=e.indexOf(t);return gn(e.slice(0,r+1)).map(pn).reduce(mn,new Ne)},_addRunner(t){1===this._transformationRunners.length()&&-1===this._transformationRunners.runners[0].id&&(this._transformationRunners.runners[0].transforms=new Ne(this)),this._transformationRunners.add(t),un.cancelImmediate(this._frameId),this._frameId=un.immediate(bn.bind(this))},_prepareRunner(){null==this._frameId&&(this._transformationRunners=(new wn).add(new dn(new Ne(this))))}}}),te(fn,{attr(t,e){return this.styleAttr("attr",t,e)},css(t,e){return this.styleAttr("css",t,e)},styleAttr(t,e,r){if("string"==typeof e)return this.styleAttr(t,{[e]:r});const n=e,i=this._history[t];if(i&&!i.caller.initialised&&i.caller.retarget)return i.caller.retarget.call(this,n),this;if(this._tryRetarget(t,n))return this;let s=new Ur(this._stepper).to(n),o=Object.keys(n);return this.queue(function(){s=s.from(this.element()[t](o))},function(e){return this.element()[t](s.at(e).valueOf()),s.done()},function(e){const r=(n=Object.keys(e),i=o,n.filter(t=>!(0,At.default)(i).call(i,t)));var n,i;if(r.length&&null!=s.from()){const e=this.element()[t](r),n=new qr(s.from()).valueOf();Object.assign(n,e),s.from(n)}const a=new qr(s.to()).valueOf();Object.assign(a,e),s.to(a),o=Object.keys(a)}),this._rememberMorpher(t,s),this},zoom(t,e){if(this._tryRetarget("zoom",t,e))return this;let r=new Ur(this._stepper).to(new Ue(t));return this.queue(function(){r=r.from(this.element().zoom())},function(t){return this.element().zoom(r.at(t),e),r.done()},function(t,n){e=n,r.to(t)}),this._rememberMorpher("zoom",r),this},transform(t,e,r){if(e=t.relative||e,this._hasTransform=!0,this._isAbsoluteTransform=this._isAbsoluteTransform||!e,this._isDeclarative&&!e&&this._tryRetarget("transform",t))return this;const n=Ne.isMatrixLike(t);r=null!=t.affine?t.affine:null!=r?r:!n;const i=new Ur(this._stepper).type(r?Wr:Ne),s=r?new Ur(this._stepper).type(Ne):i;let o,a,u,h,c;return this.queue(function(){a=a||this.element(),o=o||kt(t,a),c=new Ne(e?void 0:a),a._addRunner(this)},function(l){e||this.clearTransform();const{x:f,y:d}=new ve(o).transform(a._currentTransform(this)),m={...t,origin:[f,d]};!0===m.relative&&delete m.relative;let p=new Ne(m),y=this._isDeclarative&&u?u:c,g=i;if(r){const t=p.decompose(f,d),e=y.decompose(f,d);if(new Wr(t).toArray().concat(new Wr(e).toArray()).every(Number.isFinite)){p=t,y=e;const r=p.rotate,n=y.rotate,i=[r-360,r,r+360],s=i.map(t=>Math.abs(t-n)),o=Math.min(...s),a=s.indexOf(o);p.rotate=i[a]}else g=s}e&&g===i&&(n||(p.rotate=t.rotate||0),this._isDeclarative&&h&&(y.rotate=h)),g.from(y),g.to(p);const b=g.at(l);return h=b.rotate,u=new Ne(b),this.addTransform(u),a._addRunner(this),g.done()},function(e){o=kt(e,a),t={...e}},!0),this._isDeclarative&&this._rememberMorpher("transform",i),this},x(t){return this._queueNumber("x",t)},y(t){return this._queueNumber("y",t)},ax(t){return this._queueNumber("ax",t)},ay(t){return this._queueNumber("ay",t)},dx(t=0){return this._queueNumberDelta("x",t)},dy(t=0){return this._queueNumberDelta("y",t)},dmove(t,e){return this.dx(t).dy(e)},_queueNumberDelta(t,e){if(e=new Ue(e),this._tryRetarget(t,e))return this;const r=new Ur(this._stepper).to(e);let n=null;return this.queue(function(){n=this.element()[t](),r.from(n),r.to(n+e)},function(e){return this.element()[t](r.at(e)),r.done()},function(t){r.to(n+new Ue(t))}),this._rememberMorpher(t,r),this},_queueObject(t,e){if(this._tryRetarget(t,e))return this;const r=new Ur(this._stepper).to(e);return this.queue(function(){r.from(this.element()[t]())},function(e){return this.element()[t](r.at(e)),r.done()}),this._rememberMorpher(t,r),this},_queueNumber(t,e){return this._queueObject(t,new Ue(e))},cx(t){return this._queueNumber("cx",t)},cy(t){return this._queueNumber("cy",t)},move(t,e){return this.x(t).y(e)},amove(t,e){return this.ax(t).ay(e)},center(t,e){return this.cx(t).cy(e)},size(t,e){const r=It(this._element,t,e);return this.width(r.width).height(r.height)},width(t){return this._queueNumber("width",t)},height(t){return this._queueNumber("height",t)},plot(t,e,r,n){if(4===arguments.length)return this.plot([t,e,r,n]);if(this._tryRetarget("plot",t))return this;const i=new Ur(this._stepper).type(this._element.MorphArray).to(t);return this.queue(function(){i.from(this._element.array())},function(t){return this._element.plot(i.at(t)),i.done()}),this._rememberMorpher("plot",i),this},leading(t){return this._queueNumber("leading",t)},viewbox(t,e,r,n){return this._queueObject("viewbox",new Oe(t,e,r,n))},update(t){return"object"!=typeof t?this.update({offset:arguments[0],color:arguments[1],opacity:arguments[2]}):(null!=t.opacity&&this.attr("stop-opacity",t.opacity),null!=t.color&&this.attr("stop-color",t.color),null!=t.offset&&this.attr("offset",t.offset),this)}}),te(fn,{rx:tr,ry:er,from:lr,to:fr}),Jt(fn,"Runner");var vn=class extends Je{constructor(t,e=t){super($t("svg",t),e),this.namespace()}defs(){return this.isRoot()?qt(this.node.querySelector("defs"))||this.put(new Ke):this.root().defs()}isRoot(){return!this.node.parentNode||!(this.node.parentNode instanceof zt.window.SVGElement)&&"#document-fragment"!==this.node.parentNode.nodeName}namespace(){return this.isRoot()?this.attr({xmlns:Bt,version:"1.1"}).attr("xmlns:xlink",Rt,Vt):this.root().namespace()}removeNamespace(){return this.attr({xmlns:null,version:null}).attr("xmlns:xlink",null,Vt).attr("xmlns:svgjs",null,Vt)}root(){return this.isRoot()?this:super.root()}};f({Container:{nested:ee(function(){return this.put(new vn)})}}),Jt(vn,"Svg",!0);var xn=class extends Je{constructor(t,e=t){super($t("symbol",t),e)}};f({Container:{symbol:ee(function(){return this.put(new xn)})}}),Jt(xn,"Symbol");var Nn=h({amove:()=>Dn,ax:()=>jn,ay:()=>Cn,build:()=>In,center:()=>Tn,cx:()=>Mn,cy:()=>An,length:()=>_n,move:()=>Pn,plain:()=>Sn,x:()=>On,y:()=>En});function Sn(t){return!1===this._build&&this.clear(),this.node.appendChild(zt.document.createTextNode(t)),this}function _n(){return this.node.getComputedTextLength()}function On(t,e=this.bbox()){return null==t?e.x:this.attr("x",this.attr("x")+t-e.x)}function En(t,e=this.bbox()){return null==t?e.y:this.attr("y",this.attr("y")+t-e.y)}function Pn(t,e,r=this.bbox()){return this.x(t,r).y(e,r)}function Mn(t,e=this.bbox()){return null==t?e.cx:this.attr("x",this.attr("x")+t-e.cx)}function An(t,e=this.bbox()){return null==t?e.cy:this.attr("y",this.attr("y")+t-e.cy)}function Tn(t,e,r=this.bbox()){return this.cx(t,r).cy(e,r)}function jn(t){return this.attr("x",t)}function Cn(t){return this.attr("y",t)}function Dn(t,e){return this.ax(t).ay(e)}function In(t){return this._build=!!t,this}var kn=class extends Qe{constructor(t,e=t){super($t("text",t),e),this.dom.leading=this.dom.leading??new Ue(1.3),this._rebuild=!0,this._build=!1}leading(t){return null==t?this.dom.leading:(this.dom.leading=new Ue(t),this.rebuild())}rebuild(t){if("boolean"==typeof t&&(this._rebuild=t),this._rebuild){const t=this;let e=0;const r=this.dom.leading;this.each(function(n){if(Lt(this.node))return;const i=zt.window.getComputedStyle(this.node).getPropertyValue("font-size"),s=r*new Ue(i);this.dom.newLined&&(this.attr("x",t.attr("x")),"\n"===this.text()?e+=s:(this.attr("dy",n?s+e:0),e=0))}),this.fire("rebuild")}return this}setData(t){return this.dom=t,this.dom.leading=new Ue(t.leading||1.3),this}writeDataToDom(){return super.writeDataToDom({leading:1.3})}text(t){if(void 0===t){const e=this.node.childNodes;let r=0;t="";for(let n=0,i=e.length;n<i;++n)"textPath"===e[n].nodeName||Lt(e[n])?0===n&&(r=n+1):(n!==r&&3!==e[n].nodeType&&!0===qt(e[n]).dom.newLined&&(t+="\n"),t+=e[n].textContent);return t}if(this.clear().build(!0),"function"==typeof t)t.call(this,this);else for(let e=0,r=(t=(t+"").split("\n")).length;e<r;e++)this.newLine(t[e]);return this.build(!1).rebuild()}};te(kn,Nn),f({Container:{text:ee(function(t=""){return this.put(new kn).text(t)}),plain:ee(function(t=""){return this.put(new kn).plain(t)})}}),Jt(kn,"Text");var Fn=class extends Qe{constructor(t,e=t){super($t("tspan",t),e),this._build=!1}dx(t){return this.attr("dx",t)}dy(t){return this.attr("dy",t)}newLine(){this.dom.newLined=!0;const t=this.parent();if(!(t instanceof kn))return this;const e=t.index(this),r=zt.window.getComputedStyle(this.node).getPropertyValue("font-size"),n=t.dom.leading*new Ue(r);return this.dy(e?n:0).attr("x",t.x())}text(t){return null==t?this.node.textContent+(this.dom.newLined?"\n":""):("function"==typeof t?(this.clear().build(!0),t.call(this,this),this.build(!1)):this.plain(t),this)}};te(Fn,Nn),f({Tspan:{tspan:ee(function(t=""){const e=new Fn;return this._build||this.clear(),this.put(e).text(t)})},Text:{newLine:function(t=""){return this.tspan(t).newLine()}}}),Jt(Fn,"Tspan");var Ln=class extends Qe{constructor(t,e=t){super($t("circle",t),e)}radius(t){return this.attr("r",t)}rx(t){return this.attr("r",t)}ry(t){return this.rx(t)}size(t){return this.radius(new Ue(t).divide(2))}};te(Ln,{x:rr,y:nr,cx:ir,cy:sr,width:or,height:ar}),f({Container:{circle:ee(function(t=0){return this.put(new Ln).size(t).move(0,0)})}}),Jt(Ln,"Circle");var Bn=class extends Je{constructor(t,e=t){super($t("clipPath",t),e)}remove(){return this.targets().forEach(function(t){t.unclip()}),super.remove()}targets(){return je(this.node,"clip-path")}};f({Container:{clip:ee(function(){return this.defs().put(new Bn)})},Element:{clipper(){return this.reference("clip-path")},clipWith(t){const e=t instanceof Bn?t:this.parent().clip().add(t);return this.attr("clip-path","url(#"+e.id()+")")},unclip(){return this.attr("clip-path",null)}}}),Jt(Bn,"ClipPath");var Vn=class extends qe{constructor(t,e=t){super($t("foreignObject",t),e)}};f({Container:{foreignObject:ee(function(t,e){return this.put(new Vn).size(t,e)})}}),Jt(Vn,"ForeignObject");var Rn=h({dmove:()=>zn,dx:()=>Xn,dy:()=>Gn,height:()=>Un,move:()=>Yn,size:()=>Wn,width:()=>$n,x:()=>qn,y:()=>Hn});function zn(t,e){return this.children().forEach(r=>{let n;try{n=r.node instanceof zt.window.SVGSVGElement?new Oe(r.attr(["x","y","width","height"])):r.bbox()}catch(t){return}const i=new Ne(r),s=i.translate(t,e).transform(i.inverse()),o=new ve(n.x,n.y).transform(s);r.dmove(o.x-n.x,o.y-n.y)}),this}function Xn(t){return this.dmove(t,0)}function Gn(t){return this.dmove(0,t)}function Un(t,e=this.bbox()){return null==t?e.height:this.size(e.width,t,e)}function Yn(t=0,e=0,r=this.bbox()){const n=t-r.x,i=e-r.y;return this.dmove(n,i)}function Wn(t,e,r=this.bbox()){const n=It(this,t,e,r),i=n.width/r.width,s=n.height/r.height;return this.children().forEach(t=>{const e=new ve(r).transform(new Ne(t).inverse());t.scale(i,s,e.x,e.y)}),this}function $n(t,e=this.bbox()){return null==t?e.width:this.size(t,e.height,e)}function qn(t,e=this.bbox()){return null==t?e.x:this.move(t,e.y,e)}function Hn(t,e=this.bbox()){return null==t?e.y:this.move(e.x,t,e)}var Jn=class extends Je{constructor(t,e=t){super($t("g",t),e)}};te(Jn,Rn),f({Container:{group:ee(function(){return this.put(new Jn)})}}),Jt(Jn,"G");var Kn=class extends Je{constructor(t,e=t){super($t("a",t),e)}target(t){return this.attr("target",t)}to(t){return this.attr("href",t,Rt)}};te(Kn,Rn),f({Container:{link:ee(function(t){return this.put(new Kn).to(t)})},Element:{unlink(){const t=this.linker();if(!t)return this;const e=t.parent();if(!e)return this.remove();const r=e.index(t);return e.add(this,r),t.remove(),this},linkTo(t){let e=this.linker();return e||(e=new Kn,this.wrap(e)),"function"==typeof t?t.call(e,e):e.to(t),this},linker(){const t=this.parent();return t&&"a"===t.node.nodeName.toLowerCase()?t:null}}}),Jt(Kn,"A");var Qn=class extends Je{constructor(t,e=t){super($t("mask",t),e)}remove(){return this.targets().forEach(function(t){t.unmask()}),super.remove()}targets(){return je(this.node,"mask")}};f({Container:{mask:ee(function(){return this.defs().put(new Qn)})},Element:{masker(){return this.reference("mask")},maskWith(t){const e=t instanceof Qn?t:this.parent().mask().add(t);return this.attr("mask","url(#"+e.id()+")")},unmask(){return this.attr("mask",null)}}}),Jt(Qn,"Mask");var Zn=class extends qe{constructor(t,e=t){super($t("stop",t),e)}update(t){return("number"==typeof t||t instanceof Ue)&&(t={offset:arguments[0],color:arguments[1],opacity:arguments[2]}),null!=t.opacity&&this.attr("stop-opacity",t.opacity),null!=t.color&&this.attr("stop-color",t.color),null!=t.offset&&this.attr("offset",new Ue(t.offset)),this}};f({Gradient:{stop:function(t,e,r){return this.put(new Zn).update(t,e,r)}}}),Jt(Zn,"Stop");var ti=class extends qe{constructor(t,e=t){super($t("style",t),e)}addText(t=""){return this.node.textContent+=t,this}font(t,e,r={}){return this.rule("@font-face",{fontFamily:t,src:e,...r})}rule(t,e){return this.addText(function(t,e){if(!t)return"";if(!e)return t;let r=t+"{";for(const t in e)r+=Ct(t)+":"+e[t]+";";return r+="}",r}(t,e))}};f("Dom",{style(t,e){return this.put(new ti).rule(t,e)},fontface(t,e,r){return this.put(new ti).font(t,e,r)}}),Jt(ti,"Style");var ei=class extends kn{constructor(t,e=t){super($t("textPath",t),e)}array(){const t=this.track();return t?t.array():null}plot(t){const e=this.track();let r=null;return e&&(r=e.plot(t)),null==t?r:this}track(){return this.reference("href")}};f({Container:{textPath:ee(function(t,e){return t instanceof kn||(t=this.text(t)),t.path(e)})},Text:{path:ee(function(t,e=!0){const r=new ei;let n;if(t instanceof Jr||(t=this.defs().path(t)),r.attr("href","#"+t,Rt),e)for(;n=this.node.firstChild;)r.node.appendChild(n);return this.put(r)}),textPath(){return this.findOne("textPath")}},Path:{text:ee(function(t){return t instanceof kn||(t=(new kn).addTo(this.parent()).text(t)),t.path(this)}),targets(){return je(this.node,"href","textPath")}}}),ei.prototype.MorphArray=Xr,Jt(ei,"TextPath");var ri=class extends Qe{constructor(t,e=t){super($t("use",t),e)}use(t,e){return this.attr("href",(e||"")+"#"+t,Rt)}};f({Container:{use:ee(function(t,e){return this.put(new ri).use(t,e)})}}),Jt(ri,"Use"),te([vn,xn,yr,mr,Or],d("viewbox")),te([_r,sn,nn,Jr],d("marker")),te(kn,d("Text")),te(Jr,d("Path")),te(Ke,d("Defs")),te([kn,Fn],d("Tspan")),te([on,ur,dr,fn],d("radius")),te(Re,d("EventTarget")),te($e,d("Dom")),te(qe,d("Element")),te(Qe,d("Shape")),te([Je,hr],d("Container")),te(dr,d("Gradient")),te(fn,d("Runner")),Pe.extend([...new Set(l)]),function(t=[]){Hr.push(...[].concat(t))}([Ue,we,Oe,Ne,Ge,gr,Xr,ve]),te(Hr,{to(t){return(new Ur).type(this.constructor).from(this.toArray()).to(t)},fromArray(t){return this.init(t),this},toConsumable(){return this.toArray()},morph(t,e,r,n,i){return this.fromArray(t.map(function(t,s){return n.step(t,e[s],r,i[s],i)}))}});var ni,ii,si,oi,ai=r(726),ui=r(725),hi=r(854),ci=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};const li=["basePadding1","basePadding2"],fi={basePadding1:"setBasePadding1",basePadding2:"setBasePadding2"};class di{static between(t,e){let r=(new _r).node,n=new di(r,t,e);return n.assignUUID(),n.set(di.defaultValues),n.reposition(),n}constructor(t,e,r){ni.add(this),this.line=t,this.base1=e,this.base2=r,ii.set(this,{change:[]}),si.set(this,new MutationObserver(()=>ci(this,ni,"m",oi).call(this,"change"))),this.domNode.dataset.basePadding1||(this.domNode.dataset.basePadding1=`${(0,ui.distance)(this.point1,this.base1.centerPoint)}`),this.domNode.dataset.basePadding2||(this.domNode.dataset.basePadding2=`${(0,ui.distance)(this.point2,this.base2.centerPoint)}`),e.centerPoint.addEventListener("move",()=>this.reposition()),r.centerPoint.addEventListener("move",()=>this.reposition()),ci(this,si,"f").observe(t,{attributes:!0,childList:!0,characterData:!0,subtree:!0})}get basePair(){return[this.base1,this.base2]}get domNode(){return this.line}getAttribute(t){return this.domNode.getAttribute(t)}setAttribute(t,e){this.domNode.setAttribute(t,e)}setAttributes(t){if((0,hi.isNonNullObject)(t))try{new _r(this.domNode).attr(t)}catch{}}get id(){return this.domNode.id}assignUUID(){(0,ai.assignUUID)(this.domNode)}appendTo(t){t.appendChild(this.domNode)}remove(){this.domNode.remove()}isIn(t){return t.contains(this.domNode)&&t!==this.domNode}hasParent(){return!!this.domNode.parentNode}getTotalLength(){return this.domNode.getTotalLength()}get length(){return this.getTotalLength()}getPointAtLength(t){t<0?t=0:t>this.length&&(t=this.length);let e=this.domNode.getPointAtLength(t);return{x:e.x,y:e.y,direction:this.direction}}atLength(t){return this.getPointAtLength(t)}get point1(){return{x:this.domNode.x1.baseVal.value,y:this.domNode.y1.baseVal.value}}get point2(){return{x:this.domNode.x2.baseVal.value,y:this.domNode.y2.baseVal.value}}get direction(){return(0,ui.direction)(this.point1,this.point2)}get basePadding1(){var t;let e=Number.parseFloat(null!==(t=this.domNode.dataset.basePadding1)&&void 0!==t?t:"");return Number.isFinite(e)?e:0}set basePadding1(t){this.domNode.dataset.basePadding1=`${t}`,this.reposition()}setBasePadding1(t){(0,hi.isFiniteNumber)(t)&&(this.basePadding1=Math.max(0,t))}get basePadding2(){var t;let e=Number.parseFloat(null!==(t=this.domNode.dataset.basePadding2)&&void 0!==t?t:"");return Number.isFinite(e)?e:0}set basePadding2(t){this.domNode.dataset.basePadding2=`${t}`,this.reposition()}setBasePadding2(t){(0,hi.isFiniteNumber)(t)&&(this.basePadding2=Math.max(0,t))}isInverted(){return this.basePadding1+this.basePadding2>(0,ui.distance)(this.base1.centerPoint,this.base2.centerPoint)}set(t){try{this.setAttributes(t.attributes)}catch{}li.forEach(e=>{try{this[fi[e]](t[e])}catch{}})}reposition(){let t=this.base1.centerPoint,e=this.base2.centerPoint,r=(0,ui.direction)(t,e);this.setAttribute("x1",`${t.x+this.basePadding1*Math.cos(r)}`),this.setAttribute("y1",`${t.y+this.basePadding1*Math.sin(r)}`),this.setAttribute("x2",""+(e.x-this.basePadding2*Math.cos(r))),this.setAttribute("y2",""+(e.y-this.basePadding2*Math.sin(r)))}addEventListener(t,e){ci(this,ii,"f")[t].push(e)}removeEventListener(t,e){ci(this,ii,"f")[t]=ci(this,ii,"f")[t].filter(t=>t!==e)}serialized(){let t=this.id;if(!t)throw new Error("Straight bond ID is falsy.");let e=this.base1.id;if(!e)throw new Error("Base 1 ID is falsy.");let r=this.base2.id;if(!r)throw new Error("Base 2 ID is falsy.");return{id:t,baseID1:e,baseID2:r}}static deserialized(t,e){var r,n,i;if(!(0,hi.isNonNullObject)(t))throw new Error("Saved straight bond must be an object.");let s=null!==(r=t.id)&&void 0!==r?r:t.lineId;if(!s)throw new Error("Straight bond ID is missing.");let o=e.domNode.querySelector("#"+s);if(!o)throw new Error("Unable to find straight bond DOM node.");if(!(o instanceof SVGLineElement))throw new Error("Straight bond DOM node must be an SVG line element.");let a=null!==(n=t.baseID1)&&void 0!==n?n:t.baseId1,u=null!==(i=t.baseID2)&&void 0!==i?i:t.baseId2;if(!a)throw new Error("Missing base 1 ID.");if(!u)throw new Error("Missing base 2 ID.");let h=[...e.bases].find(t=>t.id===a),c=[...e.bases].find(t=>t.id===u);if(!h)throw new Error("Unable to find base 1.");if(!c)throw new Error("Unable to find base 2.");let l=new di(o,h,c);return(0,hi.isNumber)(t.basePadding1)&&(l.basePadding1=t.basePadding1),(0,hi.isNumber)(t.basePadding2)&&(l.basePadding2=t.basePadding2),l}}ii=new WeakMap,si=new WeakMap,ni=new WeakSet,oi=function(t){ci(this,ii,"f")[t].forEach(t=>t())},di.defaultValues={attributes:{stroke:"#000000","stroke-width":"2"},basePadding1:6,basePadding2:6};var mi,pi,yi,gi,bi=r(801),wi=r(127),vi=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class xi{constructor(t){mi.add(this),pi.set(this,void 0),yi.set(this,new MutationObserver(()=>vi(this,mi,"m",gi).call(this))),function(t,e,r){if("function"==typeof e||!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");e.set(t,r)}(this,pi,t),vi(this,yi,"f").observe(t.domNode,{childList:!0,subtree:!0})}}pi=new WeakMap,yi=new WeakMap,mi=new WeakSet,gi=function(){let t=[...vi(this,pi,"f").bases],e=new Map;t.forEach(t=>e.set(t,new Set)),[...vi(this,pi,"f").primaryBonds].forEach(t=>{var r,n;null===(r=e.get(t.base1))||void 0===r||r.add(t.base2),null===(n=e.get(t.base2))||void 0===n||n.add(t.base1)}),(0,wi.consecutivePairs)(t).forEach(([t,r])=>{var n;(null===(n=e.get(t))||void 0===n?void 0:n.has(r))||vi(this,pi,"f").addPrimaryBond(t,r)})};class Ni{constructor(t,e){this.targetStraightBonds=t,new MutationObserver(t=>{let e=new Set([...this.targetStraightBonds].map(t=>t.domNode));!t.some(t=>e.has(t.target))||this.updateOpacities()}).observe(e,{attributes:!0,attributeFilter:["x1","y1","x2","y2"],subtree:!0})}updateOpacities(){[...this.targetStraightBonds].forEach(t=>{let e=t.isInverted()?"0":"1";t.setAttribute("opacity",e)})}}})(),n})(),t.exports=e()},742(t){var e;e=()=>(()=>{var t={277(t){var e;e=()=>(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};t.r(e),t.d(e,{Vector:()=>r});class r{static matching(t){return new r(t.x,t.y)}constructor(t,e){this.x=t,this.y=e}[Symbol.iterator](){return[this.x,this.y].values()}get magnitude(){return Math.sqrt(Math.pow(this.x,2)+Math.pow(this.y,2))}set magnitude(t){let e=this.direction;this.x=t*Math.cos(e),this.y=t*Math.sin(e)}get direction(){return Math.atan2(this.y,this.x)}set direction(t){let e=this.magnitude;this.x=e*Math.cos(t),this.y=e*Math.sin(t)}}return e})(),t.exports=e()},645(t){var e;e=()=>(()=>{var t={986:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){var e=0;return t.forEach(function(t){return e+=t}),e}function n(t){return r(t)/t.length}function i(t){t.sort(function(t,e){return t-e})}t.r(e),t.d(e,{areWithin:()=>d,average:()=>n,clamp:()=>f,degrees:()=>y,flipAway:()=>w,isBetween:()=>c,isBetweenExclusive:()=>l,isBetweenInclusive:()=>c,max:()=>h,mean:()=>n,median:()=>a,min:()=>u,normalizeAngle:()=>b,radians:()=>g,sortNumbers:()=>i,sortNumbersAscending:()=>i,sortNumbersDescending:()=>m,sortedNumbers:()=>o,sortedNumbersAscending:()=>o,sortedNumbersDescending:()=>p,sum:()=>r});var s=function(t,e,r){if(r||2===arguments.length)for(var n,i=0,s=e.length;i<s;i++)!n&&i in e||(n||(n=Array.prototype.slice.call(e,0,i)),n[i]=e[i]);return t.concat(n||Array.prototype.slice.call(e))};function o(t){var e=s([],t,!0);return i(e),e}function a(t){if(0==t.length)return NaN;var e=o(t);if(e.length%2!=0)return e[Math.floor(e.length/2)];var r=e.length/2,i=r-1;return n([e[r],e[i]])}function u(t){if(0==t.length)return 1/0;var e=t[0];return t.slice(1).forEach(function(t){e=Math.min(e,t)}),e}function h(t){if(0==t.length)return-1/0;var e=t[0];return t.slice(1).forEach(function(t){e=Math.max(e,t)}),e}function c(t,e,r){return t>=e&&t<=r}function l(t,e,r){return t>e&&t<r}function f(t,e,r){return t<e?e:t>r?r:t}function d(t,e,r){return Math.abs(t-e)<=r}function m(t){i(t),t.reverse()}function p(t){var e=o(t);return e.reverse(),e}function y(t){return t*(180/Math.PI)}function g(t){return t*(Math.PI/180)}function b(t,e){void 0===e&&(e=-Math.PI);var r=t-e;return e+((r%=2*Math.PI)>=0?r:r+2*Math.PI)}function w(t,e){var r=(e=b(e,t))-t;return(r<Math.PI/2||r>3*Math.PI/2)&&(t+=Math.PI),t}return e})()}},e={};function r(n){var i=e[n];if(void 0!==i)return i.exports;var s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,r),s.exports}r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var n={};return(()=>{"use strict";r.r(n),r.d(n,{Box:()=>e});var t=r(986);class e{static bounding(r){let n=r.map(t=>e.matching(t)),i=(0,t.min)(n.map(t=>t.left)),s=(0,t.min)(n.map(t=>t.top)),o=(0,t.max)(n.map(t=>t.right))-i,a=(0,t.max)(n.map(t=>t.bottom))-s;return new e(i,s,o,a)}static matching(t){let{x:r,y:n,width:i,height:s}=t;return new e(r,n,i,s)}constructor(t,e,r,n){this.x=t,this.y=e,this.width=r,this.height=n}get centerX(){return this.minX+this.width/2}get centerY(){return this.minY+this.height/2}get minX(){return this.x}get minY(){return this.y}get maxX(){return this.minX+this.width}get maxY(){return this.minY+this.height}get top(){return this.minY}get right(){return this.maxX}get bottom(){return this.maxY}get left(){return this.minX}isBoundedBy(t){let r=e.matching(t);return this.minX>=r.minX&&this.minY>=r.minY&&this.maxX<=r.maxX&&this.maxY<=r.maxY}padded(t,r){return"number"!=typeof r&&(r=t),new e(this.x-t,this.y-r,this.width+2*t,this.height+2*r)}peripheralPoint(t){let e=this.width/2,r=this.height/2,n=Math.pow(Math.pow(e,2)+Math.pow(r,2),.5),i=this.centerX+n*Math.cos(t),s=this.centerY+n*Math.sin(t),o=n;return Math.abs(this.centerX-i)>e&&(o=Math.abs(e/Math.cos(t)),o=Number.isFinite(o)?o:r),Math.abs(this.centerY-s)>r&&(o=Math.abs(r/Math.sin(t)),o=Number.isFinite(o)?o:e),{x:this.centerX+o*Math.cos(t),y:this.centerY+o*Math.sin(t)}}}})(),n})(),t.exports=e()},725(t){t.exports=(()=>{var t={986:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){var e=0;return t.forEach(function(t){return e+=t}),e}function n(t){return r(t)/t.length}function i(t){t.sort(function(t,e){return t-e})}t.r(e),t.d(e,{areWithin:()=>f,average:()=>n,degrees:()=>p,isBetweenExclusive:()=>l,isBetweenInclusive:()=>c,max:()=>h,mean:()=>n,median:()=>a,min:()=>u,radians:()=>y,sortNumbers:()=>i,sortNumbersAscending:()=>i,sortNumbersDescending:()=>d,sortedNumbers:()=>o,sortedNumbersAscending:()=>o,sortedNumbersDescending:()=>m,sum:()=>r});var s=function(t,e,r){if(r||2===arguments.length)for(var n,i=0,s=e.length;i<s;i++)!n&&i in e||(n||(n=Array.prototype.slice.call(e,0,i)),n[i]=e[i]);return t.concat(n||Array.prototype.slice.call(e))};function o(t){var e=s([],t,!0);return i(e),e}function a(t){if(0==t.length)return NaN;var e=o(t);if(e.length%2!=0)return e[Math.floor(e.length/2)];var r=e.length/2,i=r-1;return n([e[r],e[i]])}function u(t){if(0==t.length)return 1/0;var e=t[0];return t.slice(1).forEach(function(t){e=Math.min(e,t)}),e}function h(t){if(0==t.length)return-1/0;var e=t[0];return t.slice(1).forEach(function(t){e=Math.max(e,t)}),e}function c(t,e,r){return t>=e&&t<=r}function l(t,e,r){return t>e&&t<r}function f(t,e,r){return Math.abs(t-e)<=r}function d(t){i(t),t.reverse()}function m(t){var e=o(t);return e.reverse(),e}function p(t){return t*(180/Math.PI)}function y(t){return t*(Math.PI/180)}return e})()},854:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){return"number"==typeof t}function n(t){return r(t)&&Number.isFinite(t)}function i(t){return r(t)&&!Number.isFinite(t)}function s(t){return n(t)&&t>0}function o(t){return n(t)&&t>=0}function a(t){return"string"==typeof t}function u(t){return null==t}function h(t){return"object"==typeof t&&null!==t}function c(t){return Array.isArray(t)}return t.r(e),t.d(e,{isArray:()=>c,isFiniteNumber:()=>n,isNonFiniteNumber:()=>i,isNonNegativeFiniteNumber:()=>o,isNonNullObject:()=>h,isNullish:()=>u,isNumber:()=>r,isPositiveFiniteNumber:()=>s,isString:()=>a}),e})()},30:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){return Math.pow(Math.pow(t.x,2)+Math.pow(t.y,2),.5)}function n(t){return Math.atan2(t.y,t.x)}return t.r(e),t.d(e,{direction:()=>n,magnitude:()=>r}),e})()}},e={};function r(n){var i=e[n];if(void 0!==i)return i.exports;var s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,r),s.exports}r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var n={};return(()=>{"use strict";r.r(n),r.d(n,{areWithin:()=>a,centroid:()=>d,deepCopy:()=>s,direction:()=>l,displaced:()=>h,displacement:()=>u,distance:()=>o,isFinitePoint:()=>i,isPoint:()=>e,midpoint:()=>m});var t=r(854);function e(e){return(0,t.isNonNullObject)(e)&&(0,t.isNumber)(e.x)&&(0,t.isNumber)(e.y)}function i(r){return e(r)&&(0,t.isFiniteNumber)(r.x)&&(0,t.isFiniteNumber)(r.y)}function s(t){return{x:t.x,y:t.y}}function o(t,e){var r=e.x-t.x,n=e.y-t.y;return Math.pow(Math.pow(r,2)+Math.pow(n,2),.5)}function a(t,e,r){return o(t,e)<=r}function u(t,e){return{x:e.x-t.x,y:e.y-t.y}}function h(t,e){return{x:t.x+e.x,y:t.y+e.y}}var c=r(30);function l(t,e){return(0,c.direction)(u(t,e))}var f=r(986);function d(t){return{x:(0,f.mean)(t.map(function(t){return t.x})),y:(0,f.mean)(t.map(function(t){return t.y}))}}function m(t,e){return d([t,e])}})(),n})()},726(t){var e;e=()=>(()=>{var t={854:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){return"number"==typeof t}function n(t){return r(t)&&Number.isFinite(t)}function i(t){return r(t)&&!Number.isFinite(t)}function s(t){return n(t)&&t>0}function o(t){return n(t)&&t>=0}function a(t){return"string"==typeof t}function u(t){return null==t}function h(t){return"object"==typeof t&&null!==t}function c(t){return Array.isArray(t)}function l(t){return c(t)&&0==t.length}function f(t){return c(t)&&t.length>0}function d(t){return c(t)&&t.every(r)}function m(t){return d(t)&&t.length>0}function p(t){return c(t)&&t.every(n)}function y(t){return c(t)&&t.every(i)}function g(t){return c(t)&&t.every(a)}function b(t){return g(t)&&t.length>0}return t.r(e),t.d(e,{isArray:()=>c,isEmptyArray:()=>l,isFiniteNumber:()=>n,isFiniteNumbersArray:()=>p,isNonEmptyArray:()=>f,isNonEmptyNumbersArray:()=>m,isNonEmptyStringsArray:()=>b,isNonFiniteNumber:()=>i,isNonFiniteNumbersArray:()=>y,isNonNegativeFiniteNumber:()=>o,isNonNullObject:()=>h,isNullish:()=>u,isNumber:()=>r,isNumbersArray:()=>d,isPositiveFiniteNumber:()=>s,isString:()=>a,isStringsArray:()=>g}),e})()}},e={};function r(n){var i=e[n];if(void 0!==i)return i.exports;var s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,r),s.exports}r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var n={};return(()=>{"use strict";function t(t,e){for(let[r,n]of Object.entries(e))t.setAttribute(r,n)}r.r(n),r.d(n,{CoordinateSystem:()=>l,HorizontalClientScaling:()=>d,InnerXML:()=>w,OuterXML:()=>N,Scaling:()=>f,VerticalClientScaling:()=>m,assignUUID:()=>c,bringToFront:()=>p,drawOnCanvas:()=>P,isSVGGraphicsElement:()=>S,isSVGGraphicsElementsArray:()=>O,sendToBack:()=>y,setAttributes:()=>t});const e={randomUUID:"undefined"!=typeof crypto&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};var i,s=new Uint8Array(16);function o(){if(!i&&!(i="undefined"!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return i(s)}for(var a=[],u=0;u<256;++u)a.push((u+256).toString(16).slice(1));const h=function(t,r,n){if(e.randomUUID&&!r&&!t)return e.randomUUID();var i=(t=t||{}).random||(t.rng||o)();if(i[6]=15&i[6]|64,i[8]=63&i[8]|128,r){n=n||0;for(var s=0;s<16;++s)r[n+s]=i[s];return r}return function(t,e=0){return(a[t[e+0]]+a[t[e+1]]+a[t[e+2]]+a[t[e+3]]+"-"+a[t[e+4]]+a[t[e+5]]+"-"+a[t[e+6]]+a[t[e+7]]+"-"+a[t[e+8]]+a[t[e+9]]+"-"+a[t[e+10]]+a[t[e+11]]+a[t[e+12]]+a[t[e+13]]+a[t[e+14]]+a[t[e+15]]).toLowerCase()}(i)};function c(t){t.id="uuid-"+h()}class l{constructor(t){this.targetSVGDoc=t}get width(){return this.targetSVGDoc.viewBox.baseVal.width}get height(){return this.targetSVGDoc.viewBox.baseVal.height}get minX(){return this.targetSVGDoc.viewBox.baseVal.x}get maxX(){return this.minX+this.width}get minY(){return this.targetSVGDoc.viewBox.baseVal.y}get maxY(){return this.minY+this.height}get horizontalScaling(){return this.targetSVGDoc.width.baseVal.value/this.width}get verticalScaling(){return this.targetSVGDoc.height.baseVal.value/this.height}setScaling(t){this.targetSVGDoc.setAttribute("width",""+t*this.width),this.targetSVGDoc.setAttribute("height",""+t*this.height)}get clientWidth(){return this.targetSVGDoc.getBoundingClientRect().width}get clientHeight(){return this.targetSVGDoc.getBoundingClientRect().height}get horizontalClientScaling(){return this.clientWidth/this.width}get verticalClientScaling(){return this.clientHeight/this.height}get minClientX(){return this.targetSVGDoc.getBoundingClientRect().x}get minClientY(){return this.targetSVGDoc.getBoundingClientRect().y}fromClientX(t){return this.minX+(t-this.minClientX)/this.horizontalClientScaling}fromClientY(t){return this.minY+(t-this.minClientY)/this.verticalClientScaling}fromClientCoordinates(t,e){return[this.fromClientX(t),this.fromClientY(e)]}fromClientPoint(t){return{x:this.fromClientX(t.x),y:this.fromClientY(t.y)}}toClientX(t){return this.minClientX+this.horizontalClientScaling*(t-this.minX)}toClientY(t){return this.minClientY+this.verticalClientScaling*(t-this.minY)}toClientCoordinates(t,e){return[this.toClientX(t),this.toClientY(e)]}toClientPoint(t){return{x:this.toClientX(t.x),y:this.toClientY(t.y)}}}class f{constructor(t){this.targetSVGDoc=t}set(t){let e=this.targetSVGDoc.viewBox.baseVal;this.targetSVGDoc.setAttribute("width",t*e.width+"px"),this.targetSVGDoc.setAttribute("height",t*e.height+"px")}}class d{constructor(t){this.targetSVGDoc=t}get(){let t=this.targetSVGDoc.getBoundingClientRect(),e=this.targetSVGDoc.viewBox.baseVal;return t.width/e.width}}class m{constructor(t){this.targetSVGDoc=t}get(){let t=this.targetSVGDoc.getBoundingClientRect(),e=this.targetSVGDoc.viewBox.baseVal;return t.height/e.height}}function p(t){let e=t.parentNode;e&&e.appendChild(t)}function y(t){let e=t.parentNode;e&&e.prepend(t)}var g,b=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class w{constructor(t){g.set(this,void 0),function(t,e,r){if("function"==typeof e||!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");e.set(t,r)}(this,g,t)}toString(){return b(this,g,"f").innerHTML}set(t){b(this,g,"f").innerHTML=t}}g=new WeakMap;var v,x=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class N{constructor(t){v.set(this,void 0),function(t,e,r){if("function"==typeof e||!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");e.set(t,r)}(this,v,t)}toString(){return x(this,v,"f").outerHTML}set(t){let e=document.createElementNS("http://www.w3.org/2000/svg","svg");if(e.style.height="0px",document.body.append(e),e.innerHTML=t,!e.firstElementChild)throw new Error("Outer XML must encode an SVG element.");if(e.childNodes.length>1)throw new Error("Outer XML cannot encode multiple DOM nodes.");if(e.firstElementChild.tagName.toLowerCase()!=x(this,v,"f").tagName.toLowerCase())throw new Error("Outer XML must specify an SVG element with the same tag name as the target SVG element.");[...x(this,v,"f").attributes].forEach(t=>x(this,v,"f").removeAttribute(t.name)),[...e.firstElementChild.attributes].forEach(t=>x(this,v,"f").setAttribute(t.name,t.value)),x(this,v,"f").innerHTML=e.firstElementChild.innerHTML,e.remove()}}function S(t){return t instanceof SVGGraphicsElement}v=new WeakMap;var _=r(854);function O(t){return(0,_.isArray)(t)&&t.every(S)}var E=function(t,e,r,n){return new(r||(r=Promise))(function(i,s){function o(t){try{u(n.next(t))}catch(t){s(t)}}function a(t){try{u(n.throw(t))}catch(t){s(t)}}function u(t){var e;t.done?i(t.value):(e=t.value,e instanceof r?e:new r(function(t){t(e)})).then(o,a)}u((n=n.apply(t,e||[])).next())})};function P(t){return E(this,void 0,void 0,function*(){let e=document.createElement("canvas");e.style.position="fixed",e.style.display="none",e.style.pointerEvents="none",document.body.append(e),e.width=t.width.baseVal.value,e.height=t.height.baseVal.value;let r=e.getContext("2d");if(!r)throw new Error("Unable to get canvas context.");let n=(new XMLSerializer).serializeToString(t),i=new Image;return i.src="data:image/svg+xml;charset=utf-8,"+encodeURIComponent(n),yield i.decode(),r.drawImage(i,0,0,t.width.baseVal.value,t.height.baseVal.value),e.remove(),e.style.position="",e.style.display="",e.style.pointerEvents="",e})}})(),n})(),t.exports=e()},731(t){var e;e=()=>(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};t.r(e),t.d(e,{CenterPoint:()=>h});var r,n,i,s,o,a=function(t,e,r,n,i){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!i:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===n?i.call(t,r):i?i.value=r:e.set(t,r),r},u=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class h{constructor(t){r.add(this),n.set(this,void 0),i.set(this,{move:[]}),s.set(this,void 0),a(this,n,t,"f"),a(this,s,new MutationObserver(()=>u(this,r,"m",o).call(this,"move")),"f"),u(this,s,"f").observe(t,{attributes:!0,childList:!0,characterData:!0,subtree:!0})}get x(){let t=u(this,n,"f").getBBox();return t.x+t.width/2}set x(t){let e=this.x,r=[...u(this,n,"f").x.baseVal].map(t=>t.value);0!=r.length||r.push(0),r=r.map(r=>r+(t-e)),u(this,n,"f").setAttribute("x",r.join(", "))}get y(){let t=u(this,n,"f").getBBox();return t.y+t.height/2}set y(t){let e=this.y,r=[...u(this,n,"f").y.baseVal].map(t=>t.value);0!=r.length||r.push(0),r=r.map(r=>r+(t-e)),u(this,n,"f").setAttribute("y",r.join(", "))}addEventListener(t,e){u(this,i,"f")[t].push(e)}removeEventListener(t,e){u(this,i,"f")[t]=u(this,i,"f")[t].filter(t=>t!==e)}}return n=new WeakMap,i=new WeakMap,s=new WeakMap,r=new WeakSet,o=function(t){u(this,i,"f")[t].forEach(t=>t())},e})(),t.exports=e()},854(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){return"number"==typeof t}function n(t){return r(t)&&Number.isFinite(t)}function i(t){return r(t)&&!Number.isFinite(t)}function s(t){return n(t)&&t>0}function o(t){return n(t)&&t>=0}function a(t){return"string"==typeof t}function u(t){return null==t}function h(t){return"object"==typeof t&&null!==t}function c(t){return Array.isArray(t)}function l(t){return c(t)&&0==t.length}function f(t){return c(t)&&t.length>0}function d(t){return c(t)&&t.every(r)}function m(t){return d(t)&&t.length>0}function p(t){return c(t)&&t.every(n)}function y(t){return c(t)&&t.every(i)}function g(t){return c(t)&&t.every(a)}function b(t){return g(t)&&t.length>0}return t.r(e),t.d(e,{isArray:()=>c,isEmptyArray:()=>l,isFiniteNumber:()=>n,isFiniteNumbersArray:()=>p,isNonEmptyArray:()=>f,isNonEmptyNumbersArray:()=>m,isNonEmptyStringsArray:()=>b,isNonFiniteNumber:()=>i,isNonFiniteNumbersArray:()=>y,isNonNegativeFiniteNumber:()=>o,isNonNullObject:()=>h,isNullish:()=>u,isNumber:()=>r,isNumbersArray:()=>d,isPositiveFiniteNumber:()=>s,isString:()=>a,isStringsArray:()=>g}),e})()}},e={};function r(n){var i=e[n];if(void 0!==i)return i.exports;var s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,r),s.exports}r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var n={};return(()=>{"use strict";r.r(n),r.d(n,{Numbering:()=>O,NumberingLine:()=>B});var t,e=r(726),i=r(731),s=r(277),o=r(725),a=r(854),u=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class h{constructor(e){if(t.set(this,void 0),!(0,a.isNonNullObject)(e))throw new Error("Saved numberings must be non-null objects.");!function(t,e,r){if("function"==typeof e||!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");e.set(t,r)}(this,t,e)}get id(){if((0,a.isString)(u(this,t,"f").id))return u(this,t,"f").id;if((0,a.isString)(u(this,t,"f").textId))return u(this,t,"f").textId;throw new Error("Unable to find the ID of the saved numbering.")}get ownerID(){if((0,a.isString)(u(this,t,"f").ownerID))return u(this,t,"f").ownerID;throw new Error("Unable to find the owner ID of the saved numbering.")}get displacement(){return u(this,t,"f").displacement}}t=new WeakMap;var c,l,f,d,m,p,y,g,b,w,v,x,N,S=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)},_=function(t,e,r,n,i){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!i:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===n?i.call(t,r):i?i.value=r:e.set(t,r),r};class O{static numbering(t,r){let n=document.createElementNS("http://www.w3.org/2000/svg","text");(0,e.assignUUID)(n),n.textContent=`${r}`;let i=new O(n,t);return i.setAttributes(O.defaultValues.attributes),i.displacement.magnitude=0,i}constructor(t,e){c.add(this),this.domNode=t,this.owner=e,l.set(this,{change:[]}),f.set(this,void 0),this.centerPoint=new i.CenterPoint(t),t.dataset.displacement||(t.dataset.displacement=JSON.stringify((0,o.displacement)(e.centerPoint,this.centerPoint))),e.centerPoint.addEventListener("move",()=>S(this,c,"m",d).call(this)),_(this,f,new MutationObserver(()=>S(this,c,"m",N).call(this,"change")),"f"),S(this,f,"f").observe(t,{attributes:!0,characterData:!0,childList:!0,subtree:!0})}get id(){return this.domNode.id}hasAttribute(t){return this.domNode.hasAttribute(t)}getAttribute(t){return this.domNode.getAttribute(t)}setAttribute(t,e){this.domNode.setAttribute(t,e)}setAttributes(t){Object.entries(t).forEach(([t,e])=>this.setAttribute(t,e))}removeAttribute(t){this.domNode.removeAttribute(t)}get textContent(){return this.domNode.textContent}set textContent(t){this.domNode.textContent=t}get number(){return Number.parseFloat(this.textContent)}set number(t){this.textContent=`${t}`}get displacement(){const t=()=>S(this,c,"a",m),e=t=>{_(this,c,t,"a",p)},r=()=>S(this,c,"a",y),n=t=>{_(this,c,t,"a",g)},i=()=>S(this,c,"a",b),s=t=>{_(this,c,t,"a",w)},o=()=>S(this,c,"a",v),a=t=>{_(this,c,t,"a",x)};return{get x(){return t()},set x(t){e(t)},get y(){return r()},set y(t){n(t)},get magnitude(){return i()},set magnitude(t){s(t)},get direction(){return o()},set direction(t){a(t)}}}addEventListener(t,e){S(this,l,"f")[t].push(e)}removeEventListener(t,e){S(this,l,"f")[t]=S(this,l,"f")[t].filter(t=>t!==e)}serialized(){return{id:this.id,ownerID:this.owner.id}}static deserialized(t,e){let r=new h(t),n=e.domNode.querySelector("#"+r.id);if(!n)throw new Error("Numbering DOM node not found.");if(!(n instanceof SVGTextElement))throw new Error("Numbering DOM node must be an SVG text element.");let i=e.bases.find(t=>t.id===r.ownerID);if(!i)throw new Error("Unable to find numbering owner.");let s=new O(n,i);return(0,o.isPoint)(r.displacement)&&(s.displacement.x=r.displacement.x,s.displacement.y=r.displacement.y),s}}l=new WeakMap,f=new WeakMap,c=new WeakSet,d=function(){this.centerPoint.x=this.owner.centerPoint.x+S(this,c,"a",m),this.centerPoint.y=this.owner.centerPoint.y+S(this,c,"a",y)},m=function(){if(!this.domNode.dataset.displacement)return 0;let t;try{t=JSON.parse(this.domNode.dataset.displacement)}catch(t){return 0}return(0,o.isFinitePoint)(t)?t.x:0},p=function(t){this.domNode.dataset.displacement=JSON.stringify({x:t,y:S(this,c,"a",y)}),S(this,c,"m",d).call(this)},y=function(){if(!this.domNode.dataset.displacement)return 0;let t;try{t=JSON.parse(this.domNode.dataset.displacement)}catch(t){return 0}return(0,o.isFinitePoint)(t)?t.y:0},g=function(t){this.domNode.dataset.displacement=JSON.stringify({x:S(this,c,"a",m),y:t}),S(this,c,"m",d).call(this)},b=function(){return s.Vector.matching({x:S(this,c,"a",m),y:S(this,c,"a",y)}).magnitude},w=function(t){let e=s.Vector.matching({x:S(this,c,"a",m),y:S(this,c,"a",y)});e.magnitude=t,this.domNode.dataset.displacement=JSON.stringify({x:e.x,y:e.y}),S(this,c,"m",d).call(this)},v=function(){return s.Vector.matching({x:S(this,c,"a",m),y:S(this,c,"a",y)}).direction},x=function(t){let e=s.Vector.matching({x:S(this,c,"a",m),y:S(this,c,"a",y)});e.direction=t,this.domNode.dataset.displacement=JSON.stringify({x:e.x,y:e.y}),S(this,c,"m",d).call(this)},N=function(t){S(this,l,"f")[t].forEach(t=>t())},O.defaultValues={attributes:{"font-family":"Arial","font-size":"8","font-weight":"400",fill:"#808080"}};var E,P=r(645),M=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class A{constructor(t){if(E.set(this,void 0),!(0,a.isNonNullObject)(t))throw new Error("Saved numbering lines must be non-null objects.");!function(t,e,r){if("function"==typeof e||!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");e.set(t,r)}(this,E,t)}get id(){if((0,a.isString)(M(this,E,"f").id))return M(this,E,"f").id;if((0,a.isString)(M(this,E,"f").lineId))return M(this,E,"f").lineId;throw new Error("Unable to find saved numbering line ID.")}get ownerID(){if((0,a.isString)(M(this,E,"f").ownerID))return M(this,E,"f").ownerID;if((0,a.isString)(M(this,E,"f").textId))return M(this,E,"f").textId;throw new Error("Unable to find saved numbering line owner ID.")}get basePadding(){return M(this,E,"f").basePadding}get textPadding(){return void 0!==M(this,E,"f").numberingPadding?M(this,E,"f").numberingPadding:M(this,E,"f").textPadding}}E=new WeakMap;var T,j,C,D,I,k,F=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)},L=function(t,e,r,n,i){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!i:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===n?i.call(t,r):i?i.value=r:e.set(t,r),r};class B{static connecting(t){let r=document.createElementNS("http://www.w3.org/2000/svg","line");(0,e.assignUUID)(r),r.setAttribute("x1",`${t.owner.centerPoint.x}`),r.setAttribute("y1",`${t.owner.centerPoint.y}`),r.setAttribute("x2",`${t.centerPoint.x}`),r.setAttribute("y2",`${t.centerPoint.y}`);let n=new B(r,t);return n.set(B.defaultValues),n}static unpadded(t){let e=B.connecting(t);return e.basePadding=0,e.textPadding=0,e}constructor(t,e){T.add(this),this.domNode=t,this.owner=e,t.dataset.basePadding||(t.dataset.basePadding=`${(0,o.distance)(e.owner.centerPoint,this.point1)}`);let r=P.Box.matching(e.domNode.getBBox());t.dataset.textPadding||(t.dataset.textPadding=`${(0,o.distance)(this.point2,r.peripheralPoint(e.displacement.direction+Math.PI))}`),e.centerPoint.addEventListener("move",()=>F(this,T,"m",k).call(this)),e.owner.centerPoint.addEventListener("move",()=>F(this,T,"m",k).call(this))}get id(){return this.domNode.id}hasAttribute(t){return this.domNode.hasAttribute(t)}getAttribute(t){return this.domNode.getAttribute(t)}setAttribute(t,e){this.domNode.setAttribute(t,e)}setAttributes(t){Object.entries(t).forEach(([t,e])=>this.setAttribute(t,e))}removeAttribute(t){this.domNode.removeAttribute(t)}get x1(){return this.domNode.x1.baseVal.value}get y1(){return this.domNode.y1.baseVal.value}get point1(){return{x:this.x1,y:this.y1}}get x2(){return this.domNode.x2.baseVal.value}get y2(){return this.domNode.y2.baseVal.value}get point2(){return{x:this.x2,y:this.y2}}get length(){return(0,o.distance)(this.point1,this.point2)}set length(t){let e=P.Box.matching(this.owner.domNode.getBBox());this.owner.displacement.magnitude=this.basePadding+t+this.textPadding+(0,o.distance)(this.owner.centerPoint,e.peripheralPoint(this.owner.displacement.direction+Math.PI))}get direction(){return(0,o.direction)(this.point1,this.point2)}set direction(t){let e=this.length;this.owner.displacement.direction=t,this.length=e}get basePadding(){return F(this,T,"a",j)}set basePadding(t){L(this,T,t,"a",C)}get textPadding(){return F(this,T,"a",D)}set textPadding(t){L(this,T,t,"a",I)}set(t){!t.attributes||this.setAttributes(t.attributes),!(0,a.isNumber)(t.basePadding)||(this.basePadding=t.basePadding),!(0,a.isNumber)(t.textPadding)||(this.textPadding=t.textPadding)}serialized(){return{id:this.id,ownerID:this.owner.id}}static deserialized(t,e){let r=new A(t),n=e.domNode.querySelector("#"+r.id);if(!n)throw new Error("Numbering line DOM node not found.");if(!(n instanceof SVGLineElement))throw new Error("Numbering line DOM node must be an SVG line element.");let i=e.numberings.find(t=>t.id===r.ownerID);if(!i)throw new Error("Numbering line owner not found.");let s=new B(n,i);return(0,a.isNumber)(r.basePadding)&&(s.basePadding=r.basePadding),(0,a.isNumber)(r.textPadding)&&(s.textPadding=r.textPadding),s}}T=new WeakSet,j=function(){if(!this.domNode.dataset.basePadding)return 0;let t=Number.parseFloat(this.domNode.dataset.basePadding);return Number.isFinite(t)?t:0},C=function(t){this.domNode.dataset.basePadding=`${t}`,F(this,T,"m",k).call(this)},D=function(){if(!this.domNode.dataset.textPadding)return 0;let t=Number.parseFloat(this.domNode.dataset.textPadding);return Number.isFinite(t)?t:0},I=function(t){this.domNode.dataset.textPadding=`${t}`,F(this,T,"m",k).call(this)},k=function(){let t=this.owner.displacement.direction;this.domNode.setAttribute("x1",`${this.owner.owner.centerPoint.x+F(this,T,"a",j)*Math.cos(t)}`),this.domNode.setAttribute("y1",`${this.owner.owner.centerPoint.y+F(this,T,"a",j)*Math.sin(t)}`);let e=P.Box.matching(this.owner.domNode.getBBox()).peripheralPoint(t+Math.PI);this.domNode.setAttribute("x2",`${e.x+F(this,T,"a",D)*Math.cos(t+Math.PI)}`),this.domNode.setAttribute("y2",`${e.y+F(this,T,"a",D)*Math.sin(t+Math.PI)}`)},B.defaultValues={attributes:{stroke:"#808080","stroke-width":"1","stroke-opacity":"1"},basePadding:5,textPadding:1}})(),n})(),t.exports=e()},775(t){var e;e=()=>(()=>{var t={726:function(t){var e;e=()=>(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t,e){for(let[r,n]of Object.entries(e))t.setAttribute(r,n)}t.r(e),t.d(e,{CoordinateSystem:()=>l,HorizontalClientScaling:()=>d,InnerXML:()=>w,OuterXML:()=>N,Scaling:()=>f,VerticalClientScaling:()=>m,assignUUID:()=>c,bringToFront:()=>p,sendToBack:()=>y,setAttributes:()=>r});const n={randomUUID:"undefined"!=typeof crypto&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};var i,s=new Uint8Array(16);function o(){if(!i&&!(i="undefined"!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return i(s)}for(var a=[],u=0;u<256;++u)a.push((u+256).toString(16).slice(1));const h=function(t,e,r){if(n.randomUUID&&!e&&!t)return n.randomUUID();var i=(t=t||{}).random||(t.rng||o)();if(i[6]=15&i[6]|64,i[8]=63&i[8]|128,e){r=r||0;for(var s=0;s<16;++s)e[r+s]=i[s];return e}return function(t,e=0){return(a[t[e+0]]+a[t[e+1]]+a[t[e+2]]+a[t[e+3]]+"-"+a[t[e+4]]+a[t[e+5]]+"-"+a[t[e+6]]+a[t[e+7]]+"-"+a[t[e+8]]+a[t[e+9]]+"-"+a[t[e+10]]+a[t[e+11]]+a[t[e+12]]+a[t[e+13]]+a[t[e+14]]+a[t[e+15]]).toLowerCase()}(i)};function c(t){t.id="uuid-"+h()}class l{constructor(t){this.targetSVGDoc=t}get width(){return this.targetSVGDoc.viewBox.baseVal.width}get height(){return this.targetSVGDoc.viewBox.baseVal.height}get minX(){return this.targetSVGDoc.viewBox.baseVal.x}get maxX(){return this.minX+this.width}get minY(){return this.targetSVGDoc.viewBox.baseVal.y}get maxY(){return this.minY+this.height}get horizontalScaling(){return this.targetSVGDoc.width.baseVal.value/this.width}get verticalScaling(){return this.targetSVGDoc.height.baseVal.value/this.height}setScaling(t){this.targetSVGDoc.setAttribute("width",""+t*this.width),this.targetSVGDoc.setAttribute("height",""+t*this.height)}get clientWidth(){return this.targetSVGDoc.getBoundingClientRect().width}get clientHeight(){return this.targetSVGDoc.getBoundingClientRect().height}get horizontalClientScaling(){return this.clientWidth/this.width}get verticalClientScaling(){return this.clientHeight/this.height}get minClientX(){return this.targetSVGDoc.getBoundingClientRect().x}get minClientY(){return this.targetSVGDoc.getBoundingClientRect().y}fromClientX(t){return this.minX+(t-this.minClientX)/this.horizontalClientScaling}fromClientY(t){return this.minY+(t-this.minClientY)/this.verticalClientScaling}fromClientCoordinates(t,e){return[this.fromClientX(t),this.fromClientY(e)]}fromClientPoint(t){return{x:this.fromClientX(t.x),y:this.fromClientY(t.y)}}toClientX(t){return this.minClientX+this.horizontalClientScaling*(t-this.minX)}toClientY(t){return this.minClientY+this.verticalClientScaling*(t-this.minY)}toClientCoordinates(t,e){return[this.toClientX(t),this.toClientY(e)]}toClientPoint(t){return{x:this.toClientX(t.x),y:this.toClientY(t.y)}}}class f{constructor(t){this.targetSVGDoc=t}set(t){let e=this.targetSVGDoc.viewBox.baseVal;this.targetSVGDoc.setAttribute("width",t*e.width+"px"),this.targetSVGDoc.setAttribute("height",t*e.height+"px")}}class d{constructor(t){this.targetSVGDoc=t}get(){let t=this.targetSVGDoc.getBoundingClientRect(),e=this.targetSVGDoc.viewBox.baseVal;return t.width/e.width}}class m{constructor(t){this.targetSVGDoc=t}get(){let t=this.targetSVGDoc.getBoundingClientRect(),e=this.targetSVGDoc.viewBox.baseVal;return t.height/e.height}}function p(t){let e=t.parentNode;e&&e.appendChild(t)}function y(t){let e=t.parentNode;e&&e.prepend(t)}var g,b=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class w{constructor(t){g.set(this,void 0),function(t,e,r){if("function"==typeof e||!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");e.set(t,r)}(this,g,t)}toString(){return b(this,g,"f").innerHTML}set(t){b(this,g,"f").innerHTML=t}}g=new WeakMap;var v,x=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class N{constructor(t){v.set(this,void 0),function(t,e,r){if("function"==typeof e||!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");e.set(t,r)}(this,v,t)}toString(){return x(this,v,"f").outerHTML}set(t){let e=document.createElementNS("http://www.w3.org/2000/svg","svg");if(e.style.height="0px",document.body.append(e),e.innerHTML=t,!e.firstElementChild)throw new Error("Outer XML must encode an SVG element.");if(e.childNodes.length>1)throw new Error("Outer XML cannot encode multiple DOM nodes.");if(e.firstElementChild.tagName.toLowerCase()!=x(this,v,"f").tagName.toLowerCase())throw new Error("Outer XML must specify an SVG element with the same tag name as the target SVG element.");[...x(this,v,"f").attributes].forEach(t=>x(this,v,"f").removeAttribute(t.name)),[...e.firstElementChild.attributes].forEach(t=>x(this,v,"f").setAttribute(t.name,t.value)),x(this,v,"f").innerHTML=e.firstElementChild.innerHTML,e.remove()}}return v=new WeakMap,e})(),t.exports=e()},854:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){return"number"==typeof t}function n(t){return r(t)&&Number.isFinite(t)}function i(t){return r(t)&&!Number.isFinite(t)}function s(t){return n(t)&&t>0}function o(t){return n(t)&&t>=0}function a(t){return"string"==typeof t}function u(t){return null==t}function h(t){return"object"==typeof t&&null!==t}function c(t){return Array.isArray(t)}function l(t){return c(t)&&0==t.length}function f(t){return c(t)&&t.length>0}function d(t){return c(t)&&t.every(r)}function m(t){return d(t)&&t.length>0}function p(t){return c(t)&&t.every(n)}function y(t){return c(t)&&t.every(i)}function g(t){return c(t)&&t.every(a)}function b(t){return g(t)&&t.length>0}return t.r(e),t.d(e,{isArray:()=>c,isEmptyArray:()=>l,isFiniteNumber:()=>n,isFiniteNumbersArray:()=>p,isNonEmptyArray:()=>f,isNonEmptyNumbersArray:()=>m,isNonEmptyStringsArray:()=>b,isNonFiniteNumber:()=>i,isNonFiniteNumbersArray:()=>y,isNonNegativeFiniteNumber:()=>o,isNonNullObject:()=>h,isNullish:()=>u,isNumber:()=>r,isNumbersArray:()=>d,isPositiveFiniteNumber:()=>s,isString:()=>a,isStringsArray:()=>g}),e})()}},e={};function r(n){var i=e[n];if(void 0!==i)return i.exports;var s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,r),s.exports}r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var n={};return(()=>{"use strict";r.r(n),r.d(n,{BaseOutline:()=>i});var t=r(726),e=r(854);class i{static outlining(e){let r=document.createElementNS("http://www.w3.org/2000/svg","circle");(0,t.assignUUID)(r),r.setAttribute("cx",`${e.centerPoint.x}`),r.setAttribute("cy",`${e.centerPoint.y}`);let n=new i(r,e);return n.set(i.defaultValues.circle),n}static deserialized(t,r){var n;if(!(0,e.isNonNullObject)(t))throw new Error("Saved base outline must be an object.");let s=null!==(n=t.id)&&void 0!==n?n:t.circleId;if(!s)throw new Error("Base outline ID is missing.");if(!(0,e.isString)(s))throw new Error("Base outline ID must be a string.");let o=r.domNode.querySelector("#"+s);if(!o)throw new Error("Unable to find base outline DOM node.");if(!(o instanceof SVGCircleElement))throw new Error("Base outline DOM node must be an SVG circle element.");let a=t.ownerID;if(!a)throw new Error("Missing base outline owner ID.");if(!(0,e.isString)(a))throw new Error("Base outline owner ID must be a string.");let u=[...r.bases].find(t=>t.id===a);if(!u)throw new Error("Unable to find base outline owner.");return new i(o,u)}constructor(t,e){this.domNode=t,this.owner=e,e.centerPoint.addEventListener("move",()=>{t.setAttribute("cx",`${e.centerPoint.x}`),t.setAttribute("cy",`${e.centerPoint.y}`)})}serialized(){let t=this.id;if(!t)throw new Error("Base outline ID is falsy.");let e=this.owner.id;if(!e)throw new Error("Base outline owner ID is falsy.");return{id:t,ownerID:e}}get id(){return this.domNode.id}getAttribute(t){return this.domNode.getAttribute(t)}setAttribute(t,e){this.domNode.setAttribute(t,e)}setAttributes(e){(0,t.setAttributes)(this.domNode,e)}set(t){t.attributes&&this.setAttributes(t.attributes)}}i.defaultValues={circle:{attributes:{r:"5.5",stroke:"#000000","stroke-width":"0","stroke-opacity":"1",fill:"#00ffff","fill-opacity":"1"}}}})(),n})(),t.exports=e()},358(t){var e;e=()=>(()=>{var t={731(t){var e;e=()=>(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};t.r(e),t.d(e,{CenterPoint:()=>h});var r,n,i,s,o,a=function(t,e,r,n,i){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!i:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===n?i.call(t,r):i?i.value=r:e.set(t,r),r},u=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class h{constructor(t){r.add(this),n.set(this,void 0),i.set(this,{move:[]}),s.set(this,void 0),a(this,n,t,"f"),a(this,s,new MutationObserver(()=>u(this,r,"m",o).call(this,"move")),"f"),u(this,s,"f").observe(t,{attributes:!0,childList:!0,characterData:!0,subtree:!0})}get x(){let t=u(this,n,"f").getBBox();return t.x+t.width/2}set x(t){let e=this.x,r=[...u(this,n,"f").x.baseVal].map(t=>t.value);0!=r.length||r.push(0),r=r.map(r=>r+(t-e)),u(this,n,"f").setAttribute("x",r.join(", "))}get y(){let t=u(this,n,"f").getBBox();return t.y+t.height/2}set y(t){let e=this.y,r=[...u(this,n,"f").y.baseVal].map(t=>t.value);0!=r.length||r.push(0),r=r.map(r=>r+(t-e)),u(this,n,"f").setAttribute("y",r.join(", "))}addEventListener(t,e){u(this,i,"f")[t].push(e)}removeEventListener(t,e){u(this,i,"f")[t]=u(this,i,"f")[t].filter(t=>t!==e)}}return n=new WeakMap,i=new WeakMap,s=new WeakMap,r=new WeakSet,o=function(t){u(this,i,"f")[t].forEach(t=>t())},e})(),t.exports=e()},726(t){var e;e=()=>(()=>{var t={854:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){return"number"==typeof t}function n(t){return r(t)&&Number.isFinite(t)}function i(t){return r(t)&&!Number.isFinite(t)}function s(t){return n(t)&&t>0}function o(t){return n(t)&&t>=0}function a(t){return"string"==typeof t}function u(t){return null==t}function h(t){return"object"==typeof t&&null!==t}function c(t){return Array.isArray(t)}function l(t){return c(t)&&0==t.length}function f(t){return c(t)&&t.length>0}function d(t){return c(t)&&t.every(r)}function m(t){return d(t)&&t.length>0}function p(t){return c(t)&&t.every(n)}function y(t){return c(t)&&t.every(i)}function g(t){return c(t)&&t.every(a)}function b(t){return g(t)&&t.length>0}return t.r(e),t.d(e,{isArray:()=>c,isEmptyArray:()=>l,isFiniteNumber:()=>n,isFiniteNumbersArray:()=>p,isNonEmptyArray:()=>f,isNonEmptyNumbersArray:()=>m,isNonEmptyStringsArray:()=>b,isNonFiniteNumber:()=>i,isNonFiniteNumbersArray:()=>y,isNonNegativeFiniteNumber:()=>o,isNonNullObject:()=>h,isNullish:()=>u,isNumber:()=>r,isNumbersArray:()=>d,isPositiveFiniteNumber:()=>s,isString:()=>a,isStringsArray:()=>g}),e})()}},e={};function r(n){var i=e[n];if(void 0!==i)return i.exports;var s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,r),s.exports}r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var n={};return(()=>{"use strict";function t(t,e){for(let[r,n]of Object.entries(e))t.setAttribute(r,n)}r.r(n),r.d(n,{CoordinateSystem:()=>l,HorizontalClientScaling:()=>d,InnerXML:()=>w,OuterXML:()=>N,Scaling:()=>f,VerticalClientScaling:()=>m,assignUUID:()=>c,bringToFront:()=>p,drawOnCanvas:()=>P,isSVGGraphicsElement:()=>S,isSVGGraphicsElementsArray:()=>O,sendToBack:()=>y,setAttributes:()=>t});const e={randomUUID:"undefined"!=typeof crypto&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};var i,s=new Uint8Array(16);function o(){if(!i&&!(i="undefined"!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return i(s)}for(var a=[],u=0;u<256;++u)a.push((u+256).toString(16).slice(1));const h=function(t,r,n){if(e.randomUUID&&!r&&!t)return e.randomUUID();var i=(t=t||{}).random||(t.rng||o)();if(i[6]=15&i[6]|64,i[8]=63&i[8]|128,r){n=n||0;for(var s=0;s<16;++s)r[n+s]=i[s];return r}return function(t,e=0){return(a[t[e+0]]+a[t[e+1]]+a[t[e+2]]+a[t[e+3]]+"-"+a[t[e+4]]+a[t[e+5]]+"-"+a[t[e+6]]+a[t[e+7]]+"-"+a[t[e+8]]+a[t[e+9]]+"-"+a[t[e+10]]+a[t[e+11]]+a[t[e+12]]+a[t[e+13]]+a[t[e+14]]+a[t[e+15]]).toLowerCase()}(i)};function c(t){t.id="uuid-"+h()}class l{constructor(t){this.targetSVGDoc=t}get width(){return this.targetSVGDoc.viewBox.baseVal.width}get height(){return this.targetSVGDoc.viewBox.baseVal.height}get minX(){return this.targetSVGDoc.viewBox.baseVal.x}get maxX(){return this.minX+this.width}get minY(){return this.targetSVGDoc.viewBox.baseVal.y}get maxY(){return this.minY+this.height}get horizontalScaling(){return this.targetSVGDoc.width.baseVal.value/this.width}get verticalScaling(){return this.targetSVGDoc.height.baseVal.value/this.height}setScaling(t){this.targetSVGDoc.setAttribute("width",""+t*this.width),this.targetSVGDoc.setAttribute("height",""+t*this.height)}get clientWidth(){return this.targetSVGDoc.getBoundingClientRect().width}get clientHeight(){return this.targetSVGDoc.getBoundingClientRect().height}get horizontalClientScaling(){return this.clientWidth/this.width}get verticalClientScaling(){return this.clientHeight/this.height}get minClientX(){return this.targetSVGDoc.getBoundingClientRect().x}get minClientY(){return this.targetSVGDoc.getBoundingClientRect().y}fromClientX(t){return this.minX+(t-this.minClientX)/this.horizontalClientScaling}fromClientY(t){return this.minY+(t-this.minClientY)/this.verticalClientScaling}fromClientCoordinates(t,e){return[this.fromClientX(t),this.fromClientY(e)]}fromClientPoint(t){return{x:this.fromClientX(t.x),y:this.fromClientY(t.y)}}toClientX(t){return this.minClientX+this.horizontalClientScaling*(t-this.minX)}toClientY(t){return this.minClientY+this.verticalClientScaling*(t-this.minY)}toClientCoordinates(t,e){return[this.toClientX(t),this.toClientY(e)]}toClientPoint(t){return{x:this.toClientX(t.x),y:this.toClientY(t.y)}}}class f{constructor(t){this.targetSVGDoc=t}set(t){let e=this.targetSVGDoc.viewBox.baseVal;this.targetSVGDoc.setAttribute("width",t*e.width+"px"),this.targetSVGDoc.setAttribute("height",t*e.height+"px")}}class d{constructor(t){this.targetSVGDoc=t}get(){let t=this.targetSVGDoc.getBoundingClientRect(),e=this.targetSVGDoc.viewBox.baseVal;return t.width/e.width}}class m{constructor(t){this.targetSVGDoc=t}get(){let t=this.targetSVGDoc.getBoundingClientRect(),e=this.targetSVGDoc.viewBox.baseVal;return t.height/e.height}}function p(t){let e=t.parentNode;e&&e.appendChild(t)}function y(t){let e=t.parentNode;e&&e.prepend(t)}var g,b=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class w{constructor(t){g.set(this,void 0),function(t,e,r){if("function"==typeof e||!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");e.set(t,r)}(this,g,t)}toString(){return b(this,g,"f").innerHTML}set(t){b(this,g,"f").innerHTML=t}}g=new WeakMap;var v,x=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class N{constructor(t){v.set(this,void 0),function(t,e,r){if("function"==typeof e||!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");e.set(t,r)}(this,v,t)}toString(){return x(this,v,"f").outerHTML}set(t){let e=document.createElementNS("http://www.w3.org/2000/svg","svg");if(e.style.height="0px",document.body.append(e),e.innerHTML=t,!e.firstElementChild)throw new Error("Outer XML must encode an SVG element.");if(e.childNodes.length>1)throw new Error("Outer XML cannot encode multiple DOM nodes.");if(e.firstElementChild.tagName.toLowerCase()!=x(this,v,"f").tagName.toLowerCase())throw new Error("Outer XML must specify an SVG element with the same tag name as the target SVG element.");[...x(this,v,"f").attributes].forEach(t=>x(this,v,"f").removeAttribute(t.name)),[...e.firstElementChild.attributes].forEach(t=>x(this,v,"f").setAttribute(t.name,t.value)),x(this,v,"f").innerHTML=e.firstElementChild.innerHTML,e.remove()}}function S(t){return t instanceof SVGGraphicsElement}v=new WeakMap;var _=r(854);function O(t){return(0,_.isArray)(t)&&t.every(S)}var E=function(t,e,r,n){return new(r||(r=Promise))(function(i,s){function o(t){try{u(n.next(t))}catch(t){s(t)}}function a(t){try{u(n.throw(t))}catch(t){s(t)}}function u(t){var e;t.done?i(t.value):(e=t.value,e instanceof r?e:new r(function(t){t(e)})).then(o,a)}u((n=n.apply(t,e||[])).next())})};function P(t){return E(this,void 0,void 0,function*(){let e=document.createElement("canvas");e.style.position="fixed",e.style.display="none",e.style.pointerEvents="none",document.body.append(e),e.width=t.width.baseVal.value,e.height=t.height.baseVal.value;let r=e.getContext("2d");if(!r)throw new Error("Unable to get canvas context.");let n=(new XMLSerializer).serializeToString(t),i=new Image;return i.src="data:image/svg+xml;charset=utf-8,"+encodeURIComponent(n),yield i.decode(),r.drawImage(i,0,0,t.width.baseVal.value,t.height.baseVal.value),e.remove(),e.style.position="",e.style.display="",e.style.pointerEvents="",e})}})(),n})(),t.exports=e()},986(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){var e=0;return t.forEach(function(t){return e+=t}),e}function n(t){return r(t)/t.length}function i(t){t.sort(function(t,e){return t-e})}t.r(e),t.d(e,{areWithin:()=>d,average:()=>n,clamp:()=>f,degrees:()=>g,flipAway:()=>v,isBetween:()=>c,isBetweenExclusive:()=>l,isBetweenInclusive:()=>c,max:()=>h,mean:()=>n,median:()=>a,min:()=>u,normalizeAngle:()=>w,radians:()=>b,round:()=>y,sortNumbers:()=>i,sortNumbersAscending:()=>i,sortNumbersDescending:()=>m,sortedNumbers:()=>o,sortedNumbersAscending:()=>o,sortedNumbersDescending:()=>p,sum:()=>r});var s=function(t,e,r){if(r||2===arguments.length)for(var n,i=0,s=e.length;i<s;i++)!n&&i in e||(n||(n=Array.prototype.slice.call(e,0,i)),n[i]=e[i]);return t.concat(n||Array.prototype.slice.call(e))};function o(t){var e=s([],t,!0);return i(e),e}function a(t){if(0==t.length)return NaN;var e=o(t);if(e.length%2!=0)return e[Math.floor(e.length/2)];var r=e.length/2,i=r-1;return n([e[r],e[i]])}function u(t){if(0==t.length)return 1/0;var e=t[0];return t.slice(1).forEach(function(t){e=Math.min(e,t)}),e}function h(t){if(0==t.length)return-1/0;var e=t[0];return t.slice(1).forEach(function(t){e=Math.max(e,t)}),e}function c(t,e,r){return t>=e&&t<=r}function l(t,e,r){return t>e&&t<r}function f(t,e,r){return t<e?e:t>r?r:t}function d(t,e,r){return Math.abs(t-e)<=r}function m(t){i(t),t.reverse()}function p(t){var e=o(t);return e.reverse(),e}function y(t,e){return Number.parseFloat(t.toFixed(null!=e?e:0))}function g(t){return t*(180/Math.PI)}function b(t){return t*(Math.PI/180)}function w(t,e){void 0===e&&(e=-Math.PI);var r=t-e;return e+((r%=2*Math.PI)>=0?r:r+2*Math.PI)}function v(t,e){var r=(e=w(e,t))-t;return(r<Math.PI/2||r>3*Math.PI/2)&&(t+=Math.PI),t}return e})()},854(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){return"number"==typeof t}function n(t){return r(t)&&Number.isFinite(t)}function i(t){return r(t)&&!Number.isFinite(t)}function s(t){return n(t)&&t>0}function o(t){return n(t)&&t>=0}function a(t){return"string"==typeof t}function u(t){return null==t}function h(t){return"object"==typeof t&&null!==t}function c(t){return Array.isArray(t)}function l(t){return c(t)&&0==t.length}function f(t){return c(t)&&t.length>0}function d(t){return c(t)&&t.every(r)}function m(t){return d(t)&&t.length>0}function p(t){return c(t)&&t.every(n)}function y(t){return c(t)&&t.every(i)}function g(t){return c(t)&&t.every(a)}function b(t){return g(t)&&t.length>0}return t.r(e),t.d(e,{isArray:()=>c,isEmptyArray:()=>l,isFiniteNumber:()=>n,isFiniteNumbersArray:()=>p,isNonEmptyArray:()=>f,isNonEmptyNumbersArray:()=>m,isNonEmptyStringsArray:()=>b,isNonFiniteNumber:()=>i,isNonFiniteNumbersArray:()=>y,isNonNegativeFiniteNumber:()=>o,isNonNullObject:()=>h,isNullish:()=>u,isNumber:()=>r,isNumbersArray:()=>d,isPositiveFiniteNumber:()=>s,isString:()=>a,isStringsArray:()=>g}),e})()}};const e={};function r(n){const i=e[n];if(void 0!==i)return i.exports;const s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,r),s.exports}r.d=(t,e)=>{if(Array.isArray(e))for(var n=0;n<e.length;){var i=e[n++],s=e[n++];r.o(t,i)?0===s&&n++:0===s?Object.defineProperty(t,i,{enumerable:!0,value:e[n++]}):Object.defineProperty(t,i,{enumerable:!0,get:s})}else for(var i in e)r.o(e,i)&&!r.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};let n={};return(()=>{"use strict";r.r(n),r.d(n,{BasePair:()=>Rr,Nucleobase:()=>Vr,seqSorted:()=>zr});var t={};r.r(t),r.d(t,{cx:()=>Lt,cy:()=>Bt,height:()=>Rt,rx:()=>Dt,ry:()=>It,width:()=>Vt,x:()=>kt,y:()=>Ft});var e={};r.r(e),r.d(e,{from:()=>Ut,to:()=>Yt});var i={};r.r(i),r.d(i,{MorphArray:()=>Kt,height:()=>ee,width:()=>te,x:()=>Qt,y:()=>Zt});var s={};r.r(s),r.d(s,{array:()=>Ae,clear:()=>Te,move:()=>je,plot:()=>Ce,size:()=>De});var o={};r.r(o),r.d(o,{amove:()=>ar,ax:()=>sr,ay:()=>or,build:()=>ur,center:()=>ir,cx:()=>rr,cy:()=>nr,length:()=>Qe,move:()=>er,plain:()=>Ke,x:()=>Ze,y:()=>tr});var a={};r.r(a),r.d(a,{dmove:()=>mr,dx:()=>pr,dy:()=>yr,height:()=>gr,move:()=>br,size:()=>wr,width:()=>vr,x:()=>xr,y:()=>Nr});const u={},h=[];function c(t,e){if(Array.isArray(t))for(const r of t)c(r,e);else if("object"!=typeof t)f(Object.getOwnPropertyNames(e)),u[t]=Object.assign(u[t]||{},e);else for(const e in t)c(e,t[e])}function l(t){return u[t]||{}}function f(t){h.push(...t)}function d(t,e){let r;const n=t.length,i=[];for(r=0;r<n;r++)i.push(e(t[r]));return i}function m(t){return t%360*Math.PI/180}function p(t){return t.replace(/([A-Z])/g,function(t,e){return"-"+e.toLowerCase()})}function y(t){return t.charAt(0).toUpperCase()+t.slice(1)}function g(t,e,r,n){return null!=e&&null!=r||(n=n||t.bbox(),null==e?e=n.width/n.height*r:null==r&&(r=n.height/n.width*e)),{width:e,height:r}}function b(t,e){const r=t.origin;let n=null!=t.ox?t.ox:null!=t.originX?t.originX:"center",i=null!=t.oy?t.oy:null!=t.originY?t.originY:"center";null!=r&&([n,i]=Array.isArray(r)?r:"object"==typeof r?[r.x,r.y]:[r,r]);const s="string"==typeof n,o="string"==typeof i;if(s||o){const{height:t,width:r,x:a,y:u}=e.bbox();s&&(n=n.includes("left")?a:n.includes("right")?a+r:a+r/2),o&&(i=i.includes("top")?u:i.includes("bottom")?u+t:u+t/2)}return[n,i]}const w=new Set(["desc","metadata","title"]),v=t=>w.has(t.nodeName),x=(t,e,r={})=>{const n={...e};for(const t in n)n[t].valueOf()===r[t]&&delete n[t];Object.keys(n).length?t.node.setAttribute("data-svgjs",JSON.stringify(n)):(t.node.removeAttribute("data-svgjs"),t.node.removeAttribute("svgjs:data"))},N="http://www.w3.org/2000/svg",S="http://www.w3.org/2000/xmlns/",_="http://www.w3.org/1999/xlink",O={window:"undefined"==typeof window?null:window,document:"undefined"==typeof document?null:document};class E{}const P={},M="___SYMBOL___ROOT___";function A(t,e=N){return O.document.createElementNS(e,t)}function T(t,e=!1){if(t instanceof E)return t;if("object"==typeof t)return D(t);if(null==t)return new P[M];if("string"==typeof t&&"<"!==t.trim().charAt(0))return D(O.document.querySelector(t));const r=e?O.document.createElement("div"):A("svg");return r.innerHTML=t.trim(),t=D(r.firstElementChild),r.removeChild(r.firstElementChild),t}function j(t,e){return e&&(e instanceof O.window.Node||e.ownerDocument&&e instanceof e.ownerDocument.defaultView.Node)?e:A(t)}function C(t){if(!t)return null;if(t.instance instanceof E)return t.instance;if("#document-fragment"===t.nodeName)return new P.Fragment(t);let e=y(t.nodeName||"Dom");return"LinearGradient"===e||"RadialGradient"===e?e="Gradient":P[e]||(e="Dom"),new P[e](t)}let D=C;function I(t,e=t.name,r=!1){return P[e]=t,r&&(P[M]=t),f(Object.getOwnPropertyNames(t.prototype)),t}let k=1e3;function F(t){return"Svgjs"+y(t)+k++}function L(t){for(let e=t.children.length-1;e>=0;e--)L(t.children[e]);return t.id?(t.id=F(t.nodeName),t):t}function B(t,e){let r,n;for(n=(t=Array.isArray(t)?t:[t]).length-1;n>=0;n--)for(r in e)t[n].prototype[r]=e[r]}function V(t){return function(...e){const r=e[e.length-1];return!r||r.constructor!==Object||r instanceof Array?t.apply(this,e):t.apply(this,e.slice(0,-1)).attr(r)}}c("Dom",{siblings:function(){return this.parent().children()},position:function(){return this.parent().index(this)},next:function(){return this.siblings()[this.position()+1]},prev:function(){return this.siblings()[this.position()-1]},forward:function(){const t=this.position();return this.parent().add(this.remove(),t+1),this},backward:function(){const t=this.position();return this.parent().add(this.remove(),t?t-1:0),this},front:function(){return this.parent().add(this.remove()),this},back:function(){return this.parent().add(this.remove(),0),this},before:function(t){(t=T(t)).remove();const e=this.position();return this.parent().add(t,e),this},after:function(t){(t=T(t)).remove();const e=this.position();return this.parent().add(t,e+1),this},insertBefore:function(t){return(t=T(t)).before(this),this},insertAfter:function(t){return(t=T(t)).after(this),this}});const R=/^([+-]?(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?)([a-z%]*)$/i,z=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i,X=/rgb\((\d+),(\d+),(\d+)\)/,G=/(#[a-z_][a-z0-9\-_]*)/i,U=/\)\s*,?\s*/,Y=/\s/g,W=/^#[a-f0-9]{3}$|^#[a-f0-9]{6}$/i,$=/^rgb\(/,q=/^(\s+)?$/,H=/^[+-]?(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,J=/\.(jpg|jpeg|png|gif|svg)(\?[^=]+.*)?/i,K=/[\s,]+/,Q=/[MLHVCSQTAZ]/i;function Z(t){const e=Math.round(t),r=Math.max(0,Math.min(255,e)).toString(16);return 1===r.length?"0"+r:r}function tt(t,e){for(let r=e.length;r--;)if(null==t[e[r]])return!1;return!0}function et(t,e,r){return r<0&&(r+=1),r>1&&(r-=1),r<1/6?t+6*(e-t)*r:r<.5?e:r<2/3?t+(e-t)*(2/3-r)*6:t}c("Dom",{classes:function(){const t=this.attr("class");return null==t?[]:t.trim().split(K)},hasClass:function(t){return-1!==this.classes().indexOf(t)},addClass:function(t){if(!this.hasClass(t)){const e=this.classes();e.push(t),this.attr("class",e.join(" "))}return this},removeClass:function(t){return this.hasClass(t)&&this.attr("class",this.classes().filter(function(e){return e!==t}).join(" ")),this},toggleClass:function(t){return this.hasClass(t)?this.removeClass(t):this.addClass(t)}}),c("Dom",{css:function(t,e){const r={};if(0===arguments.length)return this.node.style.cssText.split(/\s*;\s*/).filter(function(t){return!!t.length}).forEach(function(t){const e=t.split(/\s*:\s*/);r[e[0]]=e[1]}),r;if(arguments.length<2){if(Array.isArray(t)){for(const e of t){const t=e;r[e]=this.node.style.getPropertyValue(t)}return r}if("string"==typeof t)return this.node.style.getPropertyValue(t);if("object"==typeof t)for(const e in t)this.node.style.setProperty(e,null==t[e]||q.test(t[e])?"":t[e])}return 2===arguments.length&&this.node.style.setProperty(t,null==e||q.test(e)?"":e),this},show:function(){return this.css("display","")},hide:function(){return this.css("display","none")},visible:function(){return"none"!==this.css("display")}}),c("Dom",{data:function(t,e,r){if(null==t)return this.data(d(function(t,e){let r;const n=t.length,i=[];for(r=0;r<n;r++)e(t[r])&&i.push(t[r]);return i}(this.node.attributes,t=>0===t.nodeName.indexOf("data-")),t=>t.nodeName.slice(5)));if(t instanceof Array){const e={};for(const r of t)e[r]=this.data(r);return e}if("object"==typeof t)for(e in t)this.data(e,t[e]);else if(arguments.length<2)try{return JSON.parse(this.attr("data-"+t))}catch(e){return this.attr("data-"+t)}else this.attr("data-"+t,null===e?null:!0===r||"string"==typeof e||"number"==typeof e?e:JSON.stringify(e));return this}}),c("Dom",{remember:function(t,e){if("object"==typeof arguments[0])for(const e in t)this.remember(e,t[e]);else{if(1===arguments.length)return this.memory()[t];this.memory()[t]=e}return this},forget:function(){if(0===arguments.length)this._memory={};else for(let t=arguments.length-1;t>=0;t--)delete this.memory()[arguments[t]];return this},memory:function(){return this._memory=this._memory||{}}});class rt{constructor(...t){this.init(...t)}static isColor(t){return t&&(t instanceof rt||this.isRgb(t)||this.test(t))}static isRgb(t){return t&&"number"==typeof t.r&&"number"==typeof t.g&&"number"==typeof t.b}static random(t="vibrant",e){const{random:r,round:n,sin:i,PI:s}=Math;if("vibrant"===t){const t=24*r()+57,e=38*r()+45,n=360*r();return new rt(t,e,n,"lch")}if("sine"===t){const t=n(80*i(2*s*(e=e??r())/.5+.01)+150),o=n(50*i(2*s*e/.5+4.6)+200),a=n(100*i(2*s*e/.5+2.3)+150);return new rt(t,o,a)}if("pastel"===t){const t=8*r()+86,e=17*r()+9,n=360*r();return new rt(t,e,n,"lch")}if("dark"===t){const t=10+10*r(),e=50*r()+86,n=360*r();return new rt(t,e,n,"lch")}if("rgb"===t){const t=255*r(),e=255*r(),n=255*r();return new rt(t,e,n)}if("lab"===t){const t=100*r(),e=256*r()-128,n=256*r()-128;return new rt(t,e,n,"lab")}if("grey"===t){const t=255*r();return new rt(t,t,t)}throw new Error("Unsupported random color mode")}static test(t){return"string"==typeof t&&(W.test(t)||$.test(t))}cmyk(){const{_a:t,_b:e,_c:r}=this.rgb(),[n,i,s]=[t,e,r].map(t=>t/255),o=Math.min(1-n,1-i,1-s);return 1===o?new rt(0,0,0,1,"cmyk"):new rt((1-n-o)/(1-o),(1-i-o)/(1-o),(1-s-o)/(1-o),o,"cmyk")}hsl(){const{_a:t,_b:e,_c:r}=this.rgb(),[n,i,s]=[t,e,r].map(t=>t/255),o=Math.max(n,i,s),a=Math.min(n,i,s),u=(o+a)/2,h=o===a,c=o-a;return new rt(360*(h?0:o===n?((i-s)/c+(i<s?6:0))/6:o===i?((s-n)/c+2)/6:o===s?((n-i)/c+4)/6:0),100*(h?0:u>.5?c/(2-o-a):c/(o+a)),100*u,"hsl")}init(t=0,e=0,r=0,n=0,i="rgb"){if(t=t||0,this.space)for(const t in this.space)delete this[this.space[t]];if("number"==typeof t)i="string"==typeof n?n:i,n="string"==typeof n?0:n,Object.assign(this,{_a:t,_b:e,_c:r,_d:n,space:i});else if(t instanceof Array)this.space=e||("string"==typeof t[3]?t[3]:t[4])||"rgb",Object.assign(this,{_a:t[0],_b:t[1],_c:t[2],_d:t[3]||0});else if(t instanceof Object){const r=function(t,e){const r=tt(t,"rgb")?{_a:t.r,_b:t.g,_c:t.b,_d:0,space:"rgb"}:tt(t,"xyz")?{_a:t.x,_b:t.y,_c:t.z,_d:0,space:"xyz"}:tt(t,"hsl")?{_a:t.h,_b:t.s,_c:t.l,_d:0,space:"hsl"}:tt(t,"lab")?{_a:t.l,_b:t.a,_c:t.b,_d:0,space:"lab"}:tt(t,"lch")?{_a:t.l,_b:t.c,_c:t.h,_d:0,space:"lch"}:tt(t,"cmyk")?{_a:t.c,_b:t.m,_c:t.y,_d:t.k,space:"cmyk"}:{_a:0,_b:0,_c:0,space:"rgb"};return r.space=e||r.space,r}(t,e);Object.assign(this,r)}else if("string"==typeof t)if($.test(t)){const e=t.replace(Y,""),[r,n,i]=X.exec(e).slice(1,4).map(t=>parseInt(t));Object.assign(this,{_a:r,_b:n,_c:i,_d:0,space:"rgb"})}else{if(!W.test(t))throw Error("Unsupported string format, can't construct Color");{const e=t=>parseInt(t,16),[,r,n,i]=z.exec(function(t){return 4===t.length?["#",t.substring(1,2),t.substring(1,2),t.substring(2,3),t.substring(2,3),t.substring(3,4),t.substring(3,4)].join(""):t}(t)).map(e);Object.assign(this,{_a:r,_b:n,_c:i,_d:0,space:"rgb"})}}const{_a:s,_b:o,_c:a,_d:u}=this,h="rgb"===this.space?{r:s,g:o,b:a}:"xyz"===this.space?{x:s,y:o,z:a}:"hsl"===this.space?{h:s,s:o,l:a}:"lab"===this.space?{l:s,a:o,b:a}:"lch"===this.space?{l:s,c:o,h:a}:"cmyk"===this.space?{c:s,m:o,y:a,k:u}:{};Object.assign(this,h)}lab(){const{x:t,y:e,z:r}=this.xyz();return new rt(116*e-16,500*(t-e),200*(e-r),"lab")}lch(){const{l:t,a:e,b:r}=this.lab(),n=Math.sqrt(e**2+r**2);let i=180*Math.atan2(r,e)/Math.PI;return i<0&&(i*=-1,i=360-i),new rt(t,n,i,"lch")}rgb(){if("rgb"===this.space)return this;if("lab"===(t=this.space)||"xyz"===t||"lch"===t){let{x:t,y:e,z:r}=this;if("lab"===this.space||"lch"===this.space){let{l:n,a:i,b:s}=this;if("lch"===this.space){const{c:t,h:e}=this,r=Math.PI/180;i=t*Math.cos(r*e),s=t*Math.sin(r*e)}const o=(n+16)/116,a=i/500+o,u=o-s/200,h=16/116,c=.008856,l=7.787;t=.95047*(a**3>c?a**3:(a-h)/l),e=1*(o**3>c?o**3:(o-h)/l),r=1.08883*(u**3>c?u**3:(u-h)/l)}const n=3.2406*t+-1.5372*e+-.4986*r,i=-.9689*t+1.8758*e+.0415*r,s=.0557*t+-.204*e+1.057*r,o=Math.pow,a=.0031308,u=n>a?1.055*o(n,1/2.4)-.055:12.92*n,h=i>a?1.055*o(i,1/2.4)-.055:12.92*i,c=s>a?1.055*o(s,1/2.4)-.055:12.92*s;return new rt(255*u,255*h,255*c)}if("hsl"===this.space){let{h:t,s:e,l:r}=this;if(t/=360,e/=100,r/=100,0===e)return r*=255,new rt(r,r,r);const n=r<.5?r*(1+e):r+e-r*e,i=2*r-n,s=255*et(i,n,t+1/3),o=255*et(i,n,t),a=255*et(i,n,t-1/3);return new rt(s,o,a)}if("cmyk"===this.space){const{c:t,m:e,y:r,k:n}=this,i=255*(1-Math.min(1,t*(1-n)+n)),s=255*(1-Math.min(1,e*(1-n)+n)),o=255*(1-Math.min(1,r*(1-n)+n));return new rt(i,s,o)}return this;var t}toArray(){const{_a:t,_b:e,_c:r,_d:n,space:i}=this;return[t,e,r,n,i]}toHex(){const[t,e,r]=this._clamped().map(Z);return`#${t}${e}${r}`}toRgb(){const[t,e,r]=this._clamped();return`rgb(${t},${e},${r})`}toString(){return this.toHex()}xyz(){const{_a:t,_b:e,_c:r}=this.rgb(),[n,i,s]=[t,e,r].map(t=>t/255),o=n>.04045?Math.pow((n+.055)/1.055,2.4):n/12.92,a=i>.04045?Math.pow((i+.055)/1.055,2.4):i/12.92,u=s>.04045?Math.pow((s+.055)/1.055,2.4):s/12.92,h=(.4124*o+.3576*a+.1805*u)/.95047,c=(.2126*o+.7152*a+.0722*u)/1,l=(.0193*o+.1192*a+.9505*u)/1.08883,f=h>.008856?Math.pow(h,1/3):7.787*h+16/116,d=c>.008856?Math.pow(c,1/3):7.787*c+16/116,m=l>.008856?Math.pow(l,1/3):7.787*l+16/116;return new rt(f,d,m,"xyz")}_clamped(){const{_a:t,_b:e,_c:r}=this.rgb(),{max:n,min:i,round:s}=Math;return[t,e,r].map(t=>n(0,i(s(t),255)))}}class nt{constructor(...t){this.init(...t)}clone(){return new nt(this)}init(t,e){const r=Array.isArray(t)?{x:t[0],y:t[1]}:"object"==typeof t?{x:t.x,y:t.y}:{x:t,y:e};return this.x=r.x??0,this.y=r.y??0,this}toArray(){return[this.x,this.y]}transform(t){return this.clone().transformO(t)}transformO(t){st.isMatrixLike(t)||(t=new st(t));const{x:e,y:r}=this;return this.x=t.a*e+t.c*r+t.e,this.y=t.b*e+t.d*r+t.f,this}}function it(t,e,r){return Math.abs(e-t)<(r||1e-6)}class st{constructor(...t){this.init(...t)}static formatTransforms(t){const e="both"===t.flip||!0===t.flip,r=t.flip&&(e||"x"===t.flip)?-1:1,n=t.flip&&(e||"y"===t.flip)?-1:1,i=t.skew&&t.skew.length?t.skew[0]:isFinite(t.skew)?t.skew:isFinite(t.skewX)?t.skewX:0,s=t.skew&&t.skew.length?t.skew[1]:isFinite(t.skew)?t.skew:isFinite(t.skewY)?t.skewY:0,o=t.scale&&t.scale.length?t.scale[0]*r:isFinite(t.scale)?t.scale*r:isFinite(t.scaleX)?t.scaleX*r:r,a=t.scale&&t.scale.length?t.scale[1]*n:isFinite(t.scale)?t.scale*n:isFinite(t.scaleY)?t.scaleY*n:n,u=t.shear||0,h=t.rotate||t.theta||0,c=new nt(t.origin||t.around||t.ox||t.originX,t.oy||t.originY),l=c.x,f=c.y,d=new nt(t.position||t.px||t.positionX||NaN,t.py||t.positionY||NaN),m=d.x,p=d.y,y=new nt(t.translate||t.tx||t.translateX,t.ty||t.translateY),g=y.x,b=y.y,w=new nt(t.relative||t.rx||t.relativeX,t.ry||t.relativeY);return{scaleX:o,scaleY:a,skewX:i,skewY:s,shear:u,theta:h,rx:w.x,ry:w.y,tx:g,ty:b,ox:l,oy:f,px:m,py:p}}static fromArray(t){return{a:t[0],b:t[1],c:t[2],d:t[3],e:t[4],f:t[5]}}static isMatrixLike(t){return null!=t.a||null!=t.b||null!=t.c||null!=t.d||null!=t.e||null!=t.f}static matrixMultiply(t,e,r){const n=t.a*e.a+t.c*e.b,i=t.b*e.a+t.d*e.b,s=t.a*e.c+t.c*e.d,o=t.b*e.c+t.d*e.d,a=t.e+t.a*e.e+t.c*e.f,u=t.f+t.b*e.e+t.d*e.f;return r.a=n,r.b=i,r.c=s,r.d=o,r.e=a,r.f=u,r}around(t,e,r){return this.clone().aroundO(t,e,r)}aroundO(t,e,r){const n=t||0,i=e||0;return this.translateO(-n,-i).lmultiplyO(r).translateO(n,i)}clone(){return new st(this)}decompose(t=0,e=0){const r=this.a,n=this.b,i=this.c,s=this.d,o=this.e,a=this.f,u=r*s-n*i,h=u>0?1:-1,c=h*Math.sqrt(r*r+n*n),l=Math.atan2(h*n,h*r),f=180/Math.PI*l,d=Math.cos(l),m=Math.sin(l),p=(r*i+n*s)/u,y=i*c/(p*r-n)||s*c/(p*n+r);return{scaleX:c,scaleY:y,shear:p,rotate:f,translateX:o-t+t*d*c+e*(p*d*c-m*y),translateY:a-e+t*m*c+e*(p*m*c+d*y),originX:t,originY:e,a:this.a,b:this.b,c:this.c,d:this.d,e:this.e,f:this.f}}equals(t){if(t===this)return!0;const e=new st(t);return it(this.a,e.a)&&it(this.b,e.b)&&it(this.c,e.c)&&it(this.d,e.d)&&it(this.e,e.e)&&it(this.f,e.f)}flip(t,e){return this.clone().flipO(t,e)}flipO(t,e){return"x"===t?this.scaleO(-1,1,e,0):"y"===t?this.scaleO(1,-1,0,e):this.scaleO(-1,-1,t,e||t)}init(t){const e=st.fromArray([1,0,0,1,0,0]);return t=t instanceof Mt?t.matrixify():"string"==typeof t?st.fromArray(t.split(K).map(parseFloat)):Array.isArray(t)?st.fromArray(t):"object"==typeof t&&st.isMatrixLike(t)?t:"object"==typeof t?(new st).transform(t):6===arguments.length?st.fromArray([].slice.call(arguments)):e,this.a=null!=t.a?t.a:e.a,this.b=null!=t.b?t.b:e.b,this.c=null!=t.c?t.c:e.c,this.d=null!=t.d?t.d:e.d,this.e=null!=t.e?t.e:e.e,this.f=null!=t.f?t.f:e.f,this}inverse(){return this.clone().inverseO()}inverseO(){const t=this.a,e=this.b,r=this.c,n=this.d,i=this.e,s=this.f,o=t*n-e*r;if(!o)throw new Error("Cannot invert "+this);const a=n/o,u=-e/o,h=-r/o,c=t/o,l=-(a*i+h*s),f=-(u*i+c*s);return this.a=a,this.b=u,this.c=h,this.d=c,this.e=l,this.f=f,this}lmultiply(t){return this.clone().lmultiplyO(t)}lmultiplyO(t){const e=t instanceof st?t:new st(t);return st.matrixMultiply(e,this,this)}multiply(t){return this.clone().multiplyO(t)}multiplyO(t){const e=t instanceof st?t:new st(t);return st.matrixMultiply(this,e,this)}rotate(t,e,r){return this.clone().rotateO(t,e,r)}rotateO(t,e=0,r=0){t=m(t);const n=Math.cos(t),i=Math.sin(t),{a:s,b:o,c:a,d:u,e:h,f:c}=this;return this.a=s*n-o*i,this.b=o*n+s*i,this.c=a*n-u*i,this.d=u*n+a*i,this.e=h*n-c*i+r*i-e*n+e,this.f=c*n+h*i-e*i-r*n+r,this}scale(){return this.clone().scaleO(...arguments)}scaleO(t,e=t,r=0,n=0){3===arguments.length&&(n=r,r=e,e=t);const{a:i,b:s,c:o,d:a,e:u,f:h}=this;return this.a=i*t,this.b=s*e,this.c=o*t,this.d=a*e,this.e=u*t-r*t+r,this.f=h*e-n*e+n,this}shear(t,e,r){return this.clone().shearO(t,e,r)}shearO(t,e=0,r=0){const{a:n,b:i,c:s,d:o,e:a,f:u}=this;return this.a=n+i*t,this.c=s+o*t,this.e=a+u*t-r*t,this}skew(){return this.clone().skewO(...arguments)}skewO(t,e=t,r=0,n=0){3===arguments.length&&(n=r,r=e,e=t),t=m(t),e=m(e);const i=Math.tan(t),s=Math.tan(e),{a:o,b:a,c:u,d:h,e:c,f:l}=this;return this.a=o+a*i,this.b=a+o*s,this.c=u+h*i,this.d=h+u*s,this.e=c+l*i-n*i,this.f=l+c*s-r*s,this}skewX(t,e,r){return this.skew(t,0,e,r)}skewY(t,e,r){return this.skew(0,t,e,r)}toArray(){return[this.a,this.b,this.c,this.d,this.e,this.f]}toString(){return"matrix("+this.a+","+this.b+","+this.c+","+this.d+","+this.e+","+this.f+")"}transform(t){if(st.isMatrixLike(t))return new st(t).multiplyO(this);const e=st.formatTransforms(t),{x:r,y:n}=new nt(e.ox,e.oy).transform(this),i=(new st).translateO(e.rx,e.ry).lmultiplyO(this).translateO(-r,-n).scaleO(e.scaleX,e.scaleY).skewO(e.skewX,e.skewY).shearO(e.shear).rotateO(e.theta).translateO(r,n);if(isFinite(e.px)||isFinite(e.py)){const t=new nt(r,n).transform(i),s=isFinite(e.px)?e.px-t.x:0,o=isFinite(e.py)?e.py-t.y:0;i.translateO(s,o)}return i.translateO(e.tx,e.ty),i}translate(t,e){return this.clone().translateO(t,e)}translateO(t,e){return this.e+=t||0,this.f+=e||0,this}valueOf(){return{a:this.a,b:this.b,c:this.c,d:this.d,e:this.e,f:this.f}}}function ot(){if(!ot.nodes){const t=T().size(2,0);t.node.style.cssText=["opacity: 0","position: absolute","left: -100%","top: -100%","overflow: hidden"].join(";"),t.attr("focusable","false"),t.attr("aria-hidden","true");const e=t.path().node;ot.nodes={svg:t,path:e}}if(!ot.nodes.svg.node.parentNode){const t=O.document.body||O.document.documentElement;ot.nodes.svg.addTo(t)}return ot.nodes}function at(t){return!(t.width||t.height||t.x||t.y)}I(st,"Matrix");class ut{constructor(...t){this.init(...t)}addOffset(){return this.x+=O.window.pageXOffset,this.y+=O.window.pageYOffset,new ut(this)}init(t){return t="string"==typeof t?t.split(K).map(parseFloat):Array.isArray(t)?t:"object"==typeof t?[null!=t.left?t.left:t.x,null!=t.top?t.top:t.y,t.width,t.height]:4===arguments.length?[].slice.call(arguments):[0,0,0,0],this.x=t[0]||0,this.y=t[1]||0,this.width=this.w=t[2]||0,this.height=this.h=t[3]||0,this.x2=this.x+this.w,this.y2=this.y+this.h,this.cx=this.x+this.w/2,this.cy=this.y+this.h/2,this}isNulled(){return at(this)}merge(t){const e=Math.min(this.x,t.x),r=Math.min(this.y,t.y),n=Math.max(this.x+this.width,t.x+t.width)-e,i=Math.max(this.y+this.height,t.y+t.height)-r;return new ut(e,r,n,i)}toArray(){return[this.x,this.y,this.width,this.height]}toString(){return this.x+" "+this.y+" "+this.width+" "+this.height}transform(t){t instanceof st||(t=new st(t));let e=1/0,r=-1/0,n=1/0,i=-1/0;return[new nt(this.x,this.y),new nt(this.x2,this.y),new nt(this.x,this.y2),new nt(this.x2,this.y2)].forEach(function(s){s=s.transform(t),e=Math.min(e,s.x),r=Math.max(r,s.x),n=Math.min(n,s.y),i=Math.max(i,s.y)}),new ut(e,n,r-e,i-n)}}function ht(t,e,r){let n;try{if(n=e(t.node),at(n)&&(i=t.node)!==O.document&&!(O.document.documentElement.contains||function(t){for(;t.parentNode;)t=t.parentNode;return t===O.document}).call(O.document.documentElement,i))throw new Error("Element not in the dom")}catch(e){n=r(t)}var i;return n}c({viewbox:{viewbox(t,e,r,n){return null==t?new ut(this.attr("viewBox")):this.attr("viewBox",new ut(t,e,r,n))},zoom(t,e){let{width:r,height:n}=this.attr(["width","height"]);if((r||n)&&"string"!=typeof r&&"string"!=typeof n||(r=this.node.clientWidth,n=this.node.clientHeight),!r||!n)throw new Error("Impossible to get absolute width and height. Please provide an absolute width and height attribute on the zooming element");const i=this.viewbox(),s=r/i.width,o=n/i.height,a=Math.min(s,o);if(null==t)return a;let u=a/t;u===1/0&&(u=Number.MAX_SAFE_INTEGER/100),e=e||new nt(r/2/s+i.x,n/2/o+i.y);const h=new ut(i).transform(new st({scale:u,origin:e}));return this.viewbox(h)}}}),I(ut,"Box");class ct extends Array{constructor(t=[],...e){if(super(t,...e),"number"==typeof t)return this;this.length=0,this.push(...t)}}const lt=ct;B([ct],{each(t,...e){return"function"==typeof t?this.map((e,r,n)=>t.call(e,e,r,n)):this.map(r=>r[t](...e))},toArray(){return Array.prototype.concat.apply([],this)}});const ft=["toArray","constructor","each"];function dt(t,e){return new lt(d((e||O.document).querySelectorAll(t),function(t){return C(t)}))}ct.extend=function(t){t=t.reduce((t,e)=>(ft.includes(e)||"_"===e[0]||(e in Array.prototype&&(t["$"+e]=Array.prototype[e]),t[e]=function(...t){return this.each(e,...t)}),t),{}),B([ct],t)};let mt=0;const pt={};function yt(t){let e=t.getEventHolder();return e===O.window&&(e=pt),e.events||(e.events={}),e.events}function gt(t){return t.getEventTarget()}function bt(t,e,r,n,i){const s=r.bind(n||t),o=T(t),a=yt(o),u=gt(o);e=Array.isArray(e)?e:e.split(K),r._svgjsListenerId||(r._svgjsListenerId=++mt),e.forEach(function(t){const e=t.split(".")[0],n=t.split(".")[1]||"*";a[e]=a[e]||{},a[e][n]=a[e][n]||{},a[e][n][r._svgjsListenerId]=s,u.addEventListener(e,s,i||!1)})}function wt(t,e,r,n){const i=T(t),s=yt(i),o=gt(i);("function"!=typeof r||(r=r._svgjsListenerId))&&(e=Array.isArray(e)?e:(e||"").split(K)).forEach(function(t){const e=t&&t.split(".")[0],a=t&&t.split(".")[1];let u,h;if(r)s[e]&&s[e][a||"*"]&&(o.removeEventListener(e,s[e][a||"*"][r],n||!1),delete s[e][a||"*"][r]);else if(e&&a){if(s[e]&&s[e][a]){for(h in s[e][a])wt(o,[e,a].join("."),h);delete s[e][a]}}else if(a)for(t in s)for(u in s[t])a===u&&wt(o,[t,a].join("."));else if(e){if(s[e]){for(u in s[e])wt(o,[e,u].join("."));delete s[e]}}else{for(t in s)wt(o,t);!function(t){let e=t.getEventHolder();e===O.window&&(e=pt),e.events&&(e.events={})}(i)}})}class vt extends E{addEventListener(){}dispatch(t,e,r){return function(t,e,r,n){const i=gt(t);return e instanceof O.window.Event||(e=new O.window.CustomEvent(e,{detail:r,cancelable:!0,...n})),i.dispatchEvent(e),e}(this,t,e,r)}dispatchEvent(t){const e=this.getEventHolder().events;if(!e)return!0;const r=e[t.type];for(const e in r)for(const n in r[e])r[e][n](t);return!t.defaultPrevented}fire(t,e,r){return this.dispatch(t,e,r),this}getEventHolder(){return this}getEventTarget(){return this}off(t,e,r){return wt(this,t,e,r),this}on(t,e,r,n){return bt(this,t,e,r,n),this}removeEventListener(){}}function xt(){}I(vt,"EventTarget");const Nt={"fill-opacity":1,"stroke-opacity":1,"stroke-width":0,"stroke-linejoin":"miter","stroke-linecap":"butt",fill:"#000000",stroke:"#000000",opacity:1,x:0,y:0,cx:0,cy:0,width:0,height:0,r:0,rx:0,ry:0,offset:0,"stop-opacity":1,"stop-color":"#000000","text-anchor":"start"};class St extends Array{constructor(...t){super(...t),this.init(...t)}clone(){return new this.constructor(this)}init(t){return"number"==typeof t||(this.length=0,this.push(...this.parse(t))),this}parse(t=[]){return t instanceof Array?t:t.trim().split(K).map(parseFloat)}toArray(){return Array.prototype.concat.apply([],this)}toSet(){return new Set(this)}toString(){return this.join(" ")}valueOf(){const t=[];return t.push(...this),t}}class _t{constructor(...t){this.init(...t)}convert(t){return new _t(this.value,t)}divide(t){return t=new _t(t),new _t(this/t,this.unit||t.unit)}init(t,e){return e=Array.isArray(t)?t[1]:e,t=Array.isArray(t)?t[0]:t,this.value=0,this.unit=e||"","number"==typeof t?this.value=isNaN(t)?0:isFinite(t)?t:t<0?-34e37:34e37:"string"==typeof t?(e=t.match(R))&&(this.value=parseFloat(e[1]),"%"===e[5]?this.value/=100:"s"===e[5]&&(this.value*=1e3),this.unit=e[5]):t instanceof _t&&(this.value=t.valueOf(),this.unit=t.unit),this}minus(t){return t=new _t(t),new _t(this-t,this.unit||t.unit)}plus(t){return t=new _t(t),new _t(this+t,this.unit||t.unit)}times(t){return t=new _t(t),new _t(this*t,this.unit||t.unit)}toArray(){return[this.value,this.unit]}toJSON(){return this.toString()}toString(){return("%"===this.unit?~~(1e8*this.value)/1e6:"s"===this.unit?this.value/1e3:this.value)+this.unit}valueOf(){return this.value}}const Ot=new Set(["fill","stroke","color","bgcolor","stop-color","flood-color","lighting-color"]),Et=[];class Pt extends vt{constructor(t,e){super(),this.node=t,this.type=t.nodeName,e&&t!==e&&this.attr(e)}add(t,e){return(t=T(t)).removeNamespace&&this.node instanceof O.window.SVGElement&&t.removeNamespace(),null==e?this.node.appendChild(t.node):t.node!==this.node.childNodes[e]&&this.node.insertBefore(t.node,this.node.childNodes[e]),this}addTo(t,e){return T(t).put(this,e)}children(){return new lt(d(this.node.children,function(t){return C(t)}))}clear(){for(;this.node.hasChildNodes();)this.node.removeChild(this.node.lastChild);return this}clone(t=!0,e=!0){this.writeDataToDom();let r=this.node.cloneNode(t);return e&&(r=L(r)),new this.constructor(r)}each(t,e){const r=this.children();let n,i;for(n=0,i=r.length;n<i;n++)t.apply(r[n],[n,r]),e&&r[n].each(t,e);return this}element(t,e){return this.put(new Pt(A(t),e))}first(){return C(this.node.firstChild)}get(t){return C(this.node.childNodes[t])}getEventHolder(){return this.node}getEventTarget(){return this.node}has(t){return this.index(t)>=0}html(t,e){return this.xml(t,e,"http://www.w3.org/1999/xhtml")}id(t){return void 0!==t||this.node.id||(this.node.id=F(this.type)),this.attr("id",t)}index(t){return[].slice.call(this.node.childNodes).indexOf(t.node)}last(){return C(this.node.lastChild)}matches(t){const e=this.node,r=e.matches||e.matchesSelector||e.msMatchesSelector||e.mozMatchesSelector||e.webkitMatchesSelector||e.oMatchesSelector||null;return r&&r.call(e,t)}parent(t){let e=this;if(!e.node.parentNode)return null;if(e=C(e.node.parentNode),!t)return e;do{if("string"==typeof t?e.matches(t):e instanceof t)return e}while(e=C(e.node.parentNode));return e}put(t,e){return t=T(t),this.add(t,e),t}putIn(t,e){return T(t).add(this,e)}remove(){return this.parent()&&this.parent().removeElement(this),this}removeElement(t){return this.node.removeChild(t.node),this}replace(t){return t=T(t),this.node.parentNode&&this.node.parentNode.replaceChild(t.node,this.node),t}round(t=2,e=null){const r=10**t,n=this.attr(e);for(const t in n)"number"==typeof n[t]&&(n[t]=Math.round(n[t]*r)/r);return this.attr(n),this}svg(t,e){return this.xml(t,e,N)}toString(){return this.id()}words(t){return this.node.textContent=t,this}wrap(t){const e=this.parent();if(!e)return this.addTo(t);const r=e.index(this);return e.put(t,r).put(this)}writeDataToDom(){return this.each(function(){this.writeDataToDom()}),this}xml(t,e,r){if("boolean"==typeof t&&(r=e,e=t,t=null),null==t||"function"==typeof t){e=e??!0,this.writeDataToDom();let r=this;if(null!=t){if(r=C(r.node.cloneNode(!0)),e){const e=t(r);if(r=e||r,!1===e)return""}r.each(function(){const e=t(this),r=e||this;!1===e?this.remove():e&&this!==r&&this.replace(r)},!0)}return e?r.node.outerHTML:r.node.innerHTML}e=e??!1;const n=A("wrapper",r),i=O.document.createDocumentFragment();n.innerHTML=t;for(let t=n.children.length;t--;)i.appendChild(n.firstElementChild);const s=this.parent();return e?this.replace(i)&&s:this.add(i)}}B(Pt,{attr:function(t,e,r){if(null==t){t={},e=this.node.attributes;for(const r of e)t[r.nodeName]=H.test(r.nodeValue)?parseFloat(r.nodeValue):r.nodeValue;return t}if(t instanceof Array)return t.reduce((t,e)=>(t[e]=this.attr(e),t),{});if("object"==typeof t&&t.constructor===Object)for(e in t)this.attr(e,t[e]);else if(null===e)this.node.removeAttribute(t);else{if(null==e)return null==(e=this.node.getAttribute(t))?Nt[t]:H.test(e)?parseFloat(e):e;"number"==typeof(e=Et.reduce((e,r)=>r(t,e,this),e))?e=new _t(e):Ot.has(t)&&rt.isColor(e)?e=new rt(e):e.constructor===Array&&(e=new St(e)),"leading"===t?this.leading&&this.leading(e):"string"==typeof r?this.node.setAttributeNS(r,t,e.toString()):this.node.setAttribute(t,e.toString()),!this.rebuild||"font-size"!==t&&"x"!==t||this.rebuild()}return this},find:function(t){return dt(t,this.node)},findOne:function(t){return C(this.node.querySelector(t))}}),I(Pt,"Dom");class Mt extends Pt{constructor(t,e){super(t,e),this.dom={},this.node.instance=this,(t.hasAttribute("data-svgjs")||t.hasAttribute("svgjs:data"))&&this.setData(JSON.parse(t.getAttribute("data-svgjs"))??JSON.parse(t.getAttribute("svgjs:data"))??{})}center(t,e){return this.cx(t).cy(e)}cx(t){return null==t?this.x()+this.width()/2:this.x(t-this.width()/2)}cy(t){return null==t?this.y()+this.height()/2:this.y(t-this.height()/2)}defs(){const t=this.root();return t&&t.defs()}dmove(t,e){return this.dx(t).dy(e)}dx(t=0){return this.x(new _t(t).plus(this.x()))}dy(t=0){return this.y(new _t(t).plus(this.y()))}getEventHolder(){return this}height(t){return this.attr("height",t)}move(t,e){return this.x(t).y(e)}parents(t=this.root()){const e="string"==typeof t;e||(t=T(t));const r=new lt;let n=this;for(;(n=n.parent())&&n.node!==O.document&&"#document-fragment"!==n.nodeName&&(r.push(n),e||n.node!==t.node)&&(!e||!n.matches(t));)if(n.node===this.root().node)return null;return r}reference(t){if(!(t=this.attr(t)))return null;const e=(t+"").match(G);return e?T(e[1]):null}root(){const t=this.parent(P[M]);return t&&t.root()}setData(t){return this.dom=t,this}size(t,e){const r=g(this,t,e);return this.width(new _t(r.width)).height(new _t(r.height))}width(t){return this.attr("width",t)}writeDataToDom(){return x(this,this.dom),super.writeDataToDom()}x(t){return this.attr("x",t)}y(t){return this.attr("y",t)}}B(Mt,{bbox:function(){const t=ht(this,t=>t.getBBox(),t=>{try{const e=t.clone().addTo(ot().svg).show(),r=e.node.getBBox();return e.remove(),r}catch(e){throw new Error(`Getting bbox of element "${t.node.nodeName}" is not possible: ${e.toString()}`)}});return new ut(t)},rbox:function(t){const e=ht(this,t=>t.getBoundingClientRect(),t=>{throw new Error(`Getting rbox of element "${t.node.nodeName}" is not possible`)}),r=new ut(e);return t?r.transform(t.screenCTM().inverseO()):r.addOffset()},inside:function(t,e){const r=this.bbox();return t>r.x&&e>r.y&&t<r.x+r.width&&e<r.y+r.height},point:function(t,e){return new nt(t,e).transformO(this.screenCTM().inverseO())},ctm:function(){return new st(this.node.getCTM())},screenCTM:function(){try{if("function"==typeof this.isRoot&&!this.isRoot()){const t=this.rect(1,1),e=t.node.getScreenCTM();return t.remove(),new st(e)}return new st(this.node.getScreenCTM())}catch(t){return console.warn(`Cannot get CTM from SVG node ${this.node.nodeName}. Is the element rendered?`),new st}}}),I(Mt,"Element");const At={stroke:["color","width","opacity","linecap","linejoin","miterlimit","dasharray","dashoffset"],fill:["color","opacity","rule"],prefix:function(t,e){return"color"===e?t:t+"-"+e}};["fill","stroke"].forEach(function(t){const e={};let r;e[t]=function(e){if(void 0===e)return this.attr(t);if("string"==typeof e||e instanceof rt||rt.isRgb(e)||e instanceof Mt)this.attr(t,e);else for(r=At[t].length-1;r>=0;r--)null!=e[At[t][r]]&&this.attr(At.prefix(t,At[t][r]),e[At[t][r]]);return this},c(["Element","Runner"],e)}),c(["Element","Runner"],{matrix:function(t,e,r,n,i,s){return null==t?new st(this):this.attr("transform",new st(t,e,r,n,i,s))},rotate:function(t,e,r){return this.transform({rotate:t,ox:e,oy:r},!0)},skew:function(t,e,r,n){return 1===arguments.length||3===arguments.length?this.transform({skew:t,ox:e,oy:r},!0):this.transform({skew:[t,e],ox:r,oy:n},!0)},shear:function(t,e,r){return this.transform({shear:t,ox:e,oy:r},!0)},scale:function(t,e,r,n){return 1===arguments.length||3===arguments.length?this.transform({scale:t,ox:e,oy:r},!0):this.transform({scale:[t,e],ox:r,oy:n},!0)},translate:function(t,e){return this.transform({translate:[t,e]},!0)},relative:function(t,e){return this.transform({relative:[t,e]},!0)},flip:function(t="both",e="center"){return-1==="xybothtrue".indexOf(t)&&(e=t,t="both"),this.transform({flip:t,origin:e},!0)},opacity:function(t){return this.attr("opacity",t)}}),c("radius",{radius:function(t,e=t){return"radialGradient"===(this._element||this).type?this.attr("r",new _t(t)):this.rx(t).ry(e)}}),c("Path",{length:function(){return this.node.getTotalLength()},pointAt:function(t){return new nt(this.node.getPointAtLength(t))}}),c(["Element","Runner"],{font:function(t,e){if("object"==typeof t){for(e in t)this.font(e,t[e]);return this}return"leading"===t?this.leading(e):"anchor"===t?this.attr("text-anchor",e):"size"===t||"family"===t||"weight"===t||"stretch"===t||"variant"===t||"style"===t?this.attr("font-"+t,e):this.attr(t,e)}}),c("Element",["click","dblclick","mousedown","mouseup","mouseover","mouseout","mousemove","mouseenter","mouseleave","touchstart","touchmove","touchleave","touchend","touchcancel","contextmenu","wheel","pointerdown","pointermove","pointerup","pointerleave","pointercancel"].reduce(function(t,e){return t[e]=function(t){return null===t?this.off(e):this.on(e,t),this},t},{})),c("Element",{untransform:function(){return this.attr("transform",null)},matrixify:function(){return(this.attr("transform")||"").split(U).slice(0,-1).map(function(t){const e=t.trim().split("(");return[e[0],e[1].split(K).map(function(t){return parseFloat(t)})]}).reverse().reduce(function(t,e){return"matrix"===e[0]?t.lmultiply(st.fromArray(e[1])):t[e[0]].apply(t,e[1])},new st)},toParent:function(t,e){if(this===t)return this;if(v(this.node))return this.addTo(t,e);const r=this.screenCTM(),n=t.screenCTM().inverse();return this.addTo(t,e).untransform().transform(n.multiply(r)),this},toRoot:function(t){return this.toParent(this.root(),t)},transform:function(t,e){if(null==t||"string"==typeof t){const e=new st(this).decompose();return null==t?e:e[t]}st.isMatrixLike(t)||(t={...t,origin:b(t,this)});const r=new st(!0===e?this:e||!1).transform(t);return this.attr("transform",r)}});class Tt extends Mt{flatten(){return this.each(function(){if(this instanceof Tt)return this.flatten().ungroup()}),this}ungroup(t=this.parent(),e=t.index(this)){return e=-1===e?t.children().length:e,this.each(function(r,n){return n[n.length-r-1].toParent(t,e)}),this.remove()}}I(Tt,"Container");class jt extends Tt{constructor(t,e=t){super(j("defs",t),e)}flatten(){return this}ungroup(){return this}}I(jt,"Defs");class Ct extends Mt{}function Dt(t){return this.attr("rx",t)}function It(t){return this.attr("ry",t)}function kt(t){return null==t?this.cx()-this.rx():this.cx(t+this.rx())}function Ft(t){return null==t?this.cy()-this.ry():this.cy(t+this.ry())}function Lt(t){return this.attr("cx",t)}function Bt(t){return this.attr("cy",t)}function Vt(t){return null==t?2*this.rx():this.rx(new _t(t).divide(2))}function Rt(t){return null==t?2*this.ry():this.ry(new _t(t).divide(2))}I(Ct,"Shape");class zt extends Ct{constructor(t,e=t){super(j("ellipse",t),e)}size(t,e){const r=g(this,t,e);return this.rx(new _t(r.width).divide(2)).ry(new _t(r.height).divide(2))}}B(zt,t),c("Container",{ellipse:V(function(t=0,e=t){return this.put(new zt).size(t,e).move(0,0)})}),I(zt,"Ellipse");class Xt extends Pt{constructor(t=O.document.createDocumentFragment()){super(t)}xml(t,e,r){if("boolean"==typeof t&&(r=e,e=t,t=null),null==t||"function"==typeof t){const t=new Pt(A("wrapper",r));return t.add(this.node.cloneNode(!0)),t.xml(!1,r)}return super.xml(t,!1,r)}}I(Xt,"Fragment");const Gt=Xt;function Ut(t,e){return"radialGradient"===(this._element||this).type?this.attr({fx:new _t(t),fy:new _t(e)}):this.attr({x1:new _t(t),y1:new _t(e)})}function Yt(t,e){return"radialGradient"===(this._element||this).type?this.attr({cx:new _t(t),cy:new _t(e)}):this.attr({x2:new _t(t),y2:new _t(e)})}class Wt extends Tt{constructor(t,e){super(j(t+"Gradient","string"==typeof t?null:t),e)}attr(t,e,r){return"transform"===t&&(t="gradientTransform"),super.attr(t,e,r)}bbox(){return new ut}targets(){return dt("svg [fill*="+this.id()+"]")}toString(){return this.url()}update(t){return this.clear(),"function"==typeof t&&t.call(this,this),this}url(){return"url(#"+this.id()+")"}}B(Wt,e),c({Container:{gradient(...t){return this.defs().gradient(...t)}},Defs:{gradient:V(function(t,e){return this.put(new Wt(t)).update(e)})}}),I(Wt,"Gradient");class $t extends Tt{constructor(t,e=t){super(j("pattern",t),e)}attr(t,e,r){return"transform"===t&&(t="patternTransform"),super.attr(t,e,r)}bbox(){return new ut}targets(){return dt("svg [fill*="+this.id()+"]")}toString(){return this.url()}update(t){return this.clear(),"function"==typeof t&&t.call(this,this),this}url(){return"url(#"+this.id()+")"}}c({Container:{pattern(...t){return this.defs().pattern(...t)}},Defs:{pattern:V(function(t,e,r){return this.put(new $t).update(r).attr({x:0,y:0,width:t,height:e,patternUnits:"userSpaceOnUse"})})}}),I($t,"Pattern");class qt extends Ct{constructor(t,e=t){super(j("image",t),e)}load(t,e){if(!t)return this;const r=new O.window.Image;return bt(r,"load",function(t){const n=this.parent($t);0===this.width()&&0===this.height()&&this.size(r.width,r.height),n instanceof $t&&0===n.width()&&0===n.height()&&n.size(this.width(),this.height()),"function"==typeof e&&e.call(this,t)},this),bt(r,"load error",function(){wt(r)}),this.attr("href",r.src=t,_)}}var Ht;Ht=function(t,e,r){return"fill"!==t&&"stroke"!==t||J.test(e)&&(e=r.root().defs().image(e)),e instanceof qt&&(e=r.root().defs().pattern(0,0,t=>{t.add(e)})),e},Et.push(Ht),c({Container:{image:V(function(t,e){return this.put(new qt).size(0,0).load(t,e)})}}),I(qt,"Image");class Jt extends St{bbox(){let t=-1/0,e=-1/0,r=1/0,n=1/0;return this.forEach(function(i){t=Math.max(i[0],t),e=Math.max(i[1],e),r=Math.min(i[0],r),n=Math.min(i[1],n)}),new ut(r,n,t-r,e-n)}move(t,e){const r=this.bbox();if(t-=r.x,e-=r.y,!isNaN(t)&&!isNaN(e))for(let r=this.length-1;r>=0;r--)this[r]=[this[r][0]+t,this[r][1]+e];return this}parse(t=[0,0]){const e=[];(t=t instanceof Array?Array.prototype.concat.apply([],t):t.trim().split(K).map(parseFloat)).length%2!=0&&t.pop();for(let r=0,n=t.length;r<n;r+=2)e.push([t[r],t[r+1]]);return e}size(t,e){let r;const n=this.bbox();for(r=this.length-1;r>=0;r--)n.width&&(this[r][0]=(this[r][0]-n.x)*t/n.width+n.x),n.height&&(this[r][1]=(this[r][1]-n.y)*e/n.height+n.y);return this}toLine(){return{x1:this[0][0],y1:this[0][1],x2:this[1][0],y2:this[1][1]}}toString(){const t=[];for(let e=0,r=this.length;e<r;e++)t.push(this[e].join(","));return t.join(" ")}transform(t){return this.clone().transformO(t)}transformO(t){st.isMatrixLike(t)||(t=new st(t));for(let e=this.length;e--;){const[r,n]=this[e];this[e][0]=t.a*r+t.c*n+t.e,this[e][1]=t.b*r+t.d*n+t.f}return this}}const Kt=Jt;function Qt(t){return null==t?this.bbox().x:this.move(t,this.bbox().y)}function Zt(t){return null==t?this.bbox().y:this.move(this.bbox().x,t)}function te(t){const e=this.bbox();return null==t?e.width:this.size(t,e.height)}function ee(t){const e=this.bbox();return null==t?e.height:this.size(e.width,t)}class re extends Ct{constructor(t,e=t){super(j("line",t),e)}array(){return new Jt([[this.attr("x1"),this.attr("y1")],[this.attr("x2"),this.attr("y2")]])}move(t,e){return this.attr(this.array().move(t,e).toLine())}plot(t,e,r,n){return null==t?this.array():(t=void 0!==e?{x1:t,y1:e,x2:r,y2:n}:new Jt(t).toLine(),this.attr(t))}size(t,e){const r=g(this,t,e);return this.attr(this.array().size(r.width,r.height).toLine())}}B(re,i),c({Container:{line:V(function(...t){return re.prototype.plot.apply(this.put(new re),null!=t[0]?t:[0,0,0,0])})}}),I(re,"Line");class ne extends Tt{constructor(t,e=t){super(j("marker",t),e)}height(t){return this.attr("markerHeight",t)}orient(t){return this.attr("orient",t)}ref(t,e){return this.attr("refX",t).attr("refY",e)}toString(){return"url(#"+this.id()+")"}update(t){return this.clear(),"function"==typeof t&&t.call(this,this),this}width(t){return this.attr("markerWidth",t)}}function ie(t,e){return function(r){return null==r?this[t]:(this[t]=r,e&&e.call(this),this)}}c({Container:{marker(...t){return this.defs().marker(...t)}},Defs:{marker:V(function(t,e,r){return this.put(new ne).size(t,e).ref(t/2,e/2).viewbox(0,0,t,e).attr("orient","auto").update(r)})},marker:{marker(t,e,r,n){let i=["marker"];return"all"!==t&&i.push(t),i=i.join("-"),t=arguments[1]instanceof ne?arguments[1]:this.defs().marker(e,r,n),this.attr(i,t)}}}),I(ne,"Marker");const se={"-":function(t){return t},"<>":function(t){return-Math.cos(t*Math.PI)/2+.5},">":function(t){return Math.sin(t*Math.PI/2)},"<":function(t){return 1-Math.cos(t*Math.PI/2)},bezier:function(t,e,r,n){return function(i){return i<0?t>0?e/t*i:r>0?n/r*i:0:i>1?r<1?(1-n)/(1-r)*i+(n-r)/(1-r):t<1?(1-e)/(1-t)*i+(e-t)/(1-t):1:3*i*(1-i)**2*e+3*i**2*(1-i)*n+i**3}},steps:function(t,e="end"){e=e.split("-").reverse()[0];let r=t;return"none"===e?--r:"both"===e&&++r,(n,i=!1)=>{let s=Math.floor(n*t);const o=n*s%1==0;return"start"!==e&&"both"!==e||++s,i&&o&&--s,n>=0&&s<0&&(s=0),n<=1&&s>r&&(s=r),s/r}}};class oe{done(){return!1}}class ae extends oe{constructor(t=">"){super(),this.ease=se[t]||t}step(t,e,r){return"number"!=typeof t?r<1?t:e:t+(e-t)*this.ease(r)}}class ue extends oe{constructor(t){super(),this.stepper=t}done(t){return t.done}step(t,e,r,n){return this.stepper(t,e,r,n)}}function he(){const t=(this._duration||500)/1e3,e=this._overshoot||0,r=Math.PI,n=Math.log(e/100+1e-10),i=-n/Math.sqrt(r*r+n*n),s=3.9/(i*t);this.d=2*i*s,this.k=s*s}B(class extends ue{constructor(t=500,e=0){super(),this.duration(t).overshoot(e)}step(t,e,r,n){if("string"==typeof t)return t;if(n.done=r===1/0,r===1/0)return e;if(0===r)return t;r>100&&(r=16),r/=1e3;const i=n.velocity||0,s=-this.d*i-this.k*(t-e),o=t+i*r+s*r*r/2;return n.velocity=i+s*r,n.done=Math.abs(e-o)+Math.abs(i)<.002,n.done?e:o}},{duration:ie("_duration",he),overshoot:ie("_overshoot",he)}),B(class extends ue{constructor(t=.1,e=.01,r=0,n=1e3){super(),this.p(t).i(e).d(r).windup(n)}step(t,e,r,n){if("string"==typeof t)return t;if(n.done=r===1/0,r===1/0)return e;if(0===r)return t;const i=e-t;let s=(n.integral||0)+i*r;const o=(i-(n.error||0))/r,a=this._windup;return!1!==a&&(s=Math.max(-a,Math.min(s,a))),n.error=i,n.integral=s,n.done=Math.abs(i)<.001,n.done?e:t+(this.P*i+this.I*s+this.D*o)}},{windup:ie("_windup"),p:ie("P"),i:ie("I"),d:ie("D")});const ce={M:2,L:2,H:1,V:1,C:6,S:4,Q:4,T:2,A:7,Z:0},le={M:function(t,e,r){return e.x=r.x=t[0],e.y=r.y=t[1],["M",e.x,e.y]},L:function(t,e){return e.x=t[0],e.y=t[1],["L",t[0],t[1]]},H:function(t,e){return e.x=t[0],["H",t[0]]},V:function(t,e){return e.y=t[0],["V",t[0]]},C:function(t,e){return e.x=t[4],e.y=t[5],["C",t[0],t[1],t[2],t[3],t[4],t[5]]},S:function(t,e){return e.x=t[2],e.y=t[3],["S",t[0],t[1],t[2],t[3]]},Q:function(t,e){return e.x=t[2],e.y=t[3],["Q",t[0],t[1],t[2],t[3]]},T:function(t,e){return e.x=t[0],e.y=t[1],["T",t[0],t[1]]},Z:function(t,e,r){return e.x=r.x,e.y=r.y,["Z"]},A:function(t,e){return e.x=t[5],e.y=t[6],["A",t[0],t[1],t[2],t[3],t[4],t[5],t[6]]}},fe="mlhvqtcsaz".split("");for(let t=0,e=fe.length;t<e;++t)le[fe[t]]=function(t){return function(e,r,n){if("H"===t)e[0]=e[0]+r.x;else if("V"===t)e[0]=e[0]+r.y;else if("A"===t)e[5]=e[5]+r.x,e[6]=e[6]+r.y;else for(let t=0,n=e.length;t<n;++t)e[t]=e[t]+(t%2?r.y:r.x);return le[t](e,r,n)}}(fe[t].toUpperCase());function de(t){return t.segment.length&&t.segment.length-1===ce[t.segment[0].toUpperCase()]}function me(t,e){t.inNumber&&pe(t,!1);const r=Q.test(e);if(r)t.segment=[e];else{const e=t.lastCommand,r=e.toLowerCase(),n=e===r;t.segment=["m"===r?n?"l":"L":e]}return t.inSegment=!0,t.lastCommand=t.segment[0],r}function pe(t,e){if(!t.inNumber)throw new Error("Parser Error");t.number&&t.segment.push(parseFloat(t.number)),t.inNumber=e,t.number="",t.pointSeen=!1,t.hasExponent=!1,de(t)&&ye(t)}function ye(t){t.inSegment=!1,t.absolute&&(t.segment=function(t){const e=t.segment[0];return le[e](t.segment.slice(1),t.p,t.p0)}(t)),t.segments.push(t.segment)}function ge(t){if(!t.segment.length)return!1;const e="A"===t.segment[0].toUpperCase(),r=t.segment.length;return e&&(4===r||5===r)}function be(t){return"E"===t.lastToken.toUpperCase()}const we=new Set([" ",",","\t","\n","\r","\f"]);class ve extends St{bbox(){return ot().path.setAttribute("d",this.toString()),new ut(ot.nodes.path.getBBox())}move(t,e){const r=this.bbox();if(t-=r.x,e-=r.y,!isNaN(t)&&!isNaN(e))for(let r,n=this.length-1;n>=0;n--)r=this[n][0],"M"===r||"L"===r||"T"===r?(this[n][1]+=t,this[n][2]+=e):"H"===r?this[n][1]+=t:"V"===r?this[n][1]+=e:"C"===r||"S"===r||"Q"===r?(this[n][1]+=t,this[n][2]+=e,this[n][3]+=t,this[n][4]+=e,"C"===r&&(this[n][5]+=t,this[n][6]+=e)):"A"===r&&(this[n][6]+=t,this[n][7]+=e);return this}parse(t="M0 0"){return Array.isArray(t)&&(t=Array.prototype.concat.apply([],t).toString()),function(t,e=!0){let r=0,n="";const i={segment:[],inNumber:!1,number:"",lastToken:"",inSegment:!1,segments:[],pointSeen:!1,hasExponent:!1,absolute:e,p0:new nt,p:new nt};for(;i.lastToken=n,n=t.charAt(r++);)if(i.inSegment||!me(i,n))if("."!==n)if(isNaN(parseInt(n)))if(we.has(n))i.inNumber&&pe(i,!1);else if("-"!==n&&"+"!==n)if("E"!==n.toUpperCase()){if(Q.test(n)){if(i.inNumber)pe(i,!1);else{if(!de(i))throw new Error("parser Error");ye(i)}--r}}else i.number+=n,i.hasExponent=!0;else{if(i.inNumber&&!be(i)){pe(i,!1),--r;continue}i.number+=n,i.inNumber=!0}else{if("0"===i.number||ge(i)){i.inNumber=!0,i.number=n,pe(i,!0);continue}i.inNumber=!0,i.number+=n}else{if(i.pointSeen||i.hasExponent){pe(i,!1),--r;continue}i.inNumber=!0,i.pointSeen=!0,i.number+=n}return i.inNumber&&pe(i,!1),i.inSegment&&de(i)&&ye(i),i.segments}(t)}size(t,e){const r=this.bbox();let n,i;for(r.width=0===r.width?1:r.width,r.height=0===r.height?1:r.height,n=this.length-1;n>=0;n--)i=this[n][0],"M"===i||"L"===i||"T"===i?(this[n][1]=(this[n][1]-r.x)*t/r.width+r.x,this[n][2]=(this[n][2]-r.y)*e/r.height+r.y):"H"===i?this[n][1]=(this[n][1]-r.x)*t/r.width+r.x:"V"===i?this[n][1]=(this[n][1]-r.y)*e/r.height+r.y:"C"===i||"S"===i||"Q"===i?(this[n][1]=(this[n][1]-r.x)*t/r.width+r.x,this[n][2]=(this[n][2]-r.y)*e/r.height+r.y,this[n][3]=(this[n][3]-r.x)*t/r.width+r.x,this[n][4]=(this[n][4]-r.y)*e/r.height+r.y,"C"===i&&(this[n][5]=(this[n][5]-r.x)*t/r.width+r.x,this[n][6]=(this[n][6]-r.y)*e/r.height+r.y)):"A"===i&&(this[n][1]=this[n][1]*t/r.width,this[n][2]=this[n][2]*e/r.height,this[n][6]=(this[n][6]-r.x)*t/r.width+r.x,this[n][7]=(this[n][7]-r.y)*e/r.height+r.y);return this}toString(){return function(t){let e="";for(let r=0,n=t.length;r<n;r++)e+=t[r][0],null!=t[r][1]&&(e+=t[r][1],null!=t[r][2]&&(e+=" ",e+=t[r][2],null!=t[r][3]&&(e+=" ",e+=t[r][3],e+=" ",e+=t[r][4],null!=t[r][5]&&(e+=" ",e+=t[r][5],e+=" ",e+=t[r][6],null!=t[r][7]&&(e+=" ",e+=t[r][7])))));return e+" "}(this)}}const xe=t=>{const e=typeof t;return"number"===e?_t:"string"===e?rt.isColor(t)?rt:K.test(t)?Q.test(t)?ve:St:R.test(t)?_t:Se:Pe.indexOf(t.constructor)>-1?t.constructor:Array.isArray(t)?St:"object"===e?Ee:Se};class Ne{constructor(t){this._stepper=t||new ae("-"),this._from=null,this._to=null,this._type=null,this._context=null,this._morphObj=null}at(t){return this._morphObj.morph(this._from,this._to,t,this._stepper,this._context)}done(){return this._context.map(this._stepper.done).reduce(function(t,e){return t&&e},!0)}from(t){return null==t?this._from:(this._from=this._set(t),this)}stepper(t){return null==t?this._stepper:(this._stepper=t,this)}to(t){return null==t?this._to:(this._to=this._set(t),this)}type(t){return null==t?this._type:(this._type=t,this)}_set(t){this._type||this.type(xe(t));let e=new this._type(t);return this._type===rt&&(e=this._to?e[this._to[4]]():this._from?e[this._from[4]]():e),this._type===Ee&&(e=this._to?e.align(this._to):this._from?e.align(this._from):e),e=e.toConsumable(),this._morphObj=this._morphObj||new this._type,this._context=this._context||Array.apply(null,Array(e.length)).map(Object).map(function(t){return t.done=!0,t}),e}}class Se{constructor(...t){this.init(...t)}init(t){return t=Array.isArray(t)?t[0]:t,this.value=t,this}toArray(){return[this.value]}valueOf(){return this.value}}class _e{constructor(...t){this.init(...t)}init(t){return Array.isArray(t)&&(t={scaleX:t[0],scaleY:t[1],shear:t[2],rotate:t[3],translateX:t[4],translateY:t[5],originX:t[6],originY:t[7]}),Object.assign(this,_e.defaults,t),this}toArray(){const t=this;return[t.scaleX,t.scaleY,t.shear,t.rotate,t.translateX,t.translateY,t.originX,t.originY]}}_e.defaults={scaleX:1,scaleY:1,shear:0,rotate:0,translateX:0,translateY:0,originX:0,originY:0};const Oe=(t,e)=>t[0]<e[0]?-1:t[0]>e[0]?1:0;class Ee{constructor(...t){this.init(...t)}align(t){const e=this.values;for(let r=0,n=e.length;r<n;++r){if(e[r+1]===t[r+1]){if(e[r+1]===rt&&t[r+7]!==e[r+7]){const e=t[r+7],n=new rt(this.values.splice(r+3,5))[e]().toArray();this.values.splice(r+3,0,...n)}r+=e[r+2]+2;continue}if(!t[r+1])return this;const n=(new t[r+1]).toArray(),i=e[r+2]+3;e.splice(r,i,t[r],t[r+1],t[r+2],...n),r+=e[r+2]+2}return this}init(t){if(this.values=[],Array.isArray(t))return void(this.values=t.slice());t=t||{};const e=[];for(const r in t){const n=xe(t[r]),i=new n(t[r]).toArray();e.push([r,n,i.length,...i])}return e.sort(Oe),this.values=e.reduce((t,e)=>t.concat(e),[]),this}toArray(){return this.values}valueOf(){const t={},e=this.values;for(;e.length;){const r=e.shift(),n=e.shift(),i=e.shift(),s=e.splice(0,i);t[r]=new n(s)}return t}}const Pe=[Se,_e,Ee];class Me extends Ct{constructor(t,e=t){super(j("path",t),e)}array(){return this._array||(this._array=new ve(this.attr("d")))}clear(){return delete this._array,this}height(t){return null==t?this.bbox().height:this.size(this.bbox().width,t)}move(t,e){return this.attr("d",this.array().move(t,e))}plot(t){return null==t?this.array():this.clear().attr("d","string"==typeof t?t:this._array=new ve(t))}size(t,e){const r=g(this,t,e);return this.attr("d",this.array().size(r.width,r.height))}width(t){return null==t?this.bbox().width:this.size(t,this.bbox().height)}x(t){return null==t?this.bbox().x:this.move(t,this.bbox().y)}y(t){return null==t?this.bbox().y:this.move(this.bbox().x,t)}}function Ae(){return this._array||(this._array=new Jt(this.attr("points")))}function Te(){return delete this._array,this}function je(t,e){return this.attr("points",this.array().move(t,e))}function Ce(t){return null==t?this.array():this.clear().attr("points","string"==typeof t?t:this._array=new Jt(t))}function De(t,e){const r=g(this,t,e);return this.attr("points",this.array().size(r.width,r.height))}Me.prototype.MorphArray=ve,c({Container:{path:V(function(t){return this.put(new Me).plot(t||new ve)})}}),I(Me,"Path");class Ie extends Ct{constructor(t,e=t){super(j("polygon",t),e)}}c({Container:{polygon:V(function(t){return this.put(new Ie).plot(t||new Jt)})}}),B(Ie,i),B(Ie,s),I(Ie,"Polygon");class ke extends Ct{constructor(t,e=t){super(j("polyline",t),e)}}c({Container:{polyline:V(function(t){return this.put(new ke).plot(t||new Jt)})}}),B(ke,i),B(ke,s),I(ke,"Polyline");class Fe extends Ct{constructor(t,e=t){super(j("rect",t),e)}}B(Fe,{rx:Dt,ry:It}),c({Container:{rect:V(function(t,e){return this.put(new Fe).size(t,e)})}}),I(Fe,"Rect");class Le{constructor(){this._first=null,this._last=null}first(){return this._first&&this._first.value}last(){return this._last&&this._last.value}push(t){const e=void 0!==t.next?t:{value:t,next:null,prev:null};return this._last?(e.prev=this._last,this._last.next=e,this._last=e):(this._last=e,this._first=e),e}remove(t){t.prev&&(t.prev.next=t.next),t.next&&(t.next.prev=t.prev),t===this._last&&(this._last=t.prev),t===this._first&&(this._first=t.next),t.prev=null,t.next=null}shift(){const t=this._first;return t?(this._first=t.next,this._first&&(this._first.prev=null),this._last=this._first?this._last:null,t.value):null}}const Be={nextDraw:null,frames:new Le,timeouts:new Le,immediates:new Le,timer:()=>O.window.performance||O.window.Date,transforms:[],frame(t){const e=Be.frames.push({run:t});return null===Be.nextDraw&&(Be.nextDraw=O.window.requestAnimationFrame(Be._draw)),e},timeout(t,e){e=e||0;const r=Be.timer().now()+e,n=Be.timeouts.push({run:t,time:r});return null===Be.nextDraw&&(Be.nextDraw=O.window.requestAnimationFrame(Be._draw)),n},immediate(t){const e=Be.immediates.push(t);return null===Be.nextDraw&&(Be.nextDraw=O.window.requestAnimationFrame(Be._draw)),e},cancelFrame(t){null!=t&&Be.frames.remove(t)},clearTimeout(t){null!=t&&Be.timeouts.remove(t)},cancelImmediate(t){null!=t&&Be.immediates.remove(t)},_draw(t){let e=null;const r=Be.timeouts.last();for(;(e=Be.timeouts.shift())&&(t>=e.time?e.run():Be.timeouts.push(e),e!==r););let n=null;const i=Be.frames.last();for(;n!==i&&(n=Be.frames.shift());)n.run(t);let s=null;for(;s=Be.immediates.shift();)s();Be.nextDraw=Be.timeouts.first()||Be.frames.first()?O.window.requestAnimationFrame(Be._draw):null}},Ve=Be,Re=function(t){const e=t.start,r=t.runner.duration();return{start:e,duration:r,end:e+r,runner:t.runner}},ze=function(){const t=O.window;return(t.performance||t.Date).now()};class Xe extends vt{constructor(t=ze){super(),this._timeSource=t,this.terminate()}active(){return!!this._nextFrame}finish(){return this.time(this.getEndTimeOfTimeline()+1),this.pause()}getEndTime(){const t=this.getLastRunnerInfo(),e=t?t.runner.duration():0;return(t?t.start:this._time)+e}getEndTimeOfTimeline(){const t=this._runners.map(t=>t.start+t.runner.duration());return Math.max(0,...t)}getLastRunnerInfo(){return this.getRunnerInfoById(this._lastRunnerId)}getRunnerInfoById(t){return this._runners[this._runnerIds.indexOf(t)]||null}pause(){return this._paused=!0,this._continue()}persist(t){return null==t?this._persist:(this._persist=t,this)}play(){return this._paused=!1,this.updateTime()._continue()}reverse(t){const e=this.speed();if(null==t)return this.speed(-e);const r=Math.abs(e);return this.speed(t?-r:r)}schedule(t,e,r){if(null==t)return this._runners.map(Re);let n=0;const i=this.getEndTime();if(e=e||0,null==r||"last"===r||"after"===r)n=i;else if("absolute"===r||"start"===r)n=e,e=0;else if("now"===r)n=this._time;else if("relative"===r){const r=this.getRunnerInfoById(t.id);r&&(n=r.start+e,e=0)}else{if("with-last"!==r)throw new Error('Invalid value for the "when" parameter');{const t=this.getLastRunnerInfo();n=t?t.start:this._time}}t.unschedule(),t.timeline(this);const s=t.persist(),o={persist:null===s?this._persist:s,start:n+e,runner:t};return this._lastRunnerId=t.id,this._runners.push(o),this._runners.sort((t,e)=>t.start-e.start),this._runnerIds=this._runners.map(t=>t.runner.id),this.updateTime()._continue(),this}seek(t){return this.time(this._time+t)}source(t){return null==t?this._timeSource:(this._timeSource=t,this)}speed(t){return null==t?this._speed:(this._speed=t,this)}stop(){return this.time(0),this.pause()}time(t){return null==t?this._time:(this._time=t,this._continue(!0))}unschedule(t){const e=this._runnerIds.indexOf(t.id);return e<0||(this._runners.splice(e,1),this._runnerIds.splice(e,1),t.timeline(null)),this}updateTime(){return this.active()||(this._lastSourceTime=this._timeSource()),this}_continue(t=!1){return Ve.cancelFrame(this._nextFrame),this._nextFrame=null,t?this._stepImmediate():(this._paused||(this._nextFrame=Ve.frame(this._step)),this)}_stepFn(t=!1){const e=this._timeSource();let r=e-this._lastSourceTime;t&&(r=0);const n=this._speed*r+(this._time-this._lastStepTime);this._lastSourceTime=e,t||(this._time+=n,this._time=this._time<0?0:this._time),this._lastStepTime=this._time,this.fire("time",this._time);for(let t=this._runners.length;t--;){const e=this._runners[t],r=e.runner;this._time-e.start<=0&&r.reset()}let i=!1;for(let t=0,e=this._runners.length;t<e;t++){const r=this._runners[t],s=r.runner;let o=n;const a=this._time-r.start;a<=0?i=!0:(a<o&&(o=a),s.active()&&(s.step(o).done?!0!==r.persist&&s.duration()-s.time()+this._time+r.persist<this._time&&(s.unschedule(),--t,--e):i=!0))}return i&&!(this._speed<0&&0===this._time)||this._runnerIds.length&&this._speed<0&&this._time>0?this._continue():(this.pause(),this.fire("finished")),this}terminate(){this._startTime=0,this._speed=1,this._persist=0,this._nextFrame=null,this._paused=!0,this._runners=[],this._runnerIds=[],this._lastRunnerId=-1,this._time=0,this._lastSourceTime=0,this._lastStepTime=0,this._step=this._stepFn.bind(this,!1),this._stepImmediate=this._stepFn.bind(this,!0)}}c({Element:{timeline:function(t){return null==t?(this._timeline=this._timeline||new Xe,this._timeline):(this._timeline=t,this)}}});class Ge extends vt{constructor(t){super(),this.id=Ge.id++,t="function"==typeof(t=t??400)?new ue(t):t,this._element=null,this._timeline=null,this.done=!1,this._queue=[],this._duration="number"==typeof t&&t,this._isDeclarative=t instanceof ue,this._stepper=this._isDeclarative?t:new ae,this._history={},this.enabled=!0,this._time=0,this._lastTime=0,this._reseted=!0,this.transforms=new st,this.transformId=1,this._haveReversed=!1,this._reverse=!1,this._loopsDone=0,this._swing=!1,this._wait=0,this._times=1,this._frameId=null,this._persist=!!this._isDeclarative||null}static sanitise(t,e,r){let n=1,i=!1,s=0;return e=e??0,r=r||"last","object"!=typeof(t=t??400)||t instanceof oe||(e=t.delay??e,r=t.when??r,i=t.swing||i,n=t.times??n,s=t.wait??s,t=t.duration??400),{duration:t,delay:e,swing:i,times:n,wait:s,when:r}}active(t){return null==t?this.enabled:(this.enabled=t,this)}addTransform(t){return this.transforms.lmultiplyO(t),this}after(t){return this.on("finished",t)}animate(t,e,r){const n=Ge.sanitise(t,e,r),i=new Ge(n.duration);return this._timeline&&i.timeline(this._timeline),this._element&&i.element(this._element),i.loop(n).schedule(n.delay,n.when)}clearTransform(){return this.transforms=new st,this}clearTransformsFromQueue(){this.done&&this._timeline&&this._timeline._runnerIds.includes(this.id)||(this._queue=this._queue.filter(t=>!t.isTransform))}delay(t){return this.animate(0,t)}duration(){return this._times*(this._wait+this._duration)-this._wait}during(t){return this.queue(null,t)}ease(t){return this._stepper=new ae(t),this}element(t){return null==t?this._element:(this._element=t,t._prepareRunner(),this)}finish(){return this.step(1/0)}loop(t,e,r){return"object"==typeof t&&(e=t.swing,r=t.wait,t=t.times),this._times=t||1/0,this._swing=e||!1,this._wait=r||0,!0===this._times&&(this._times=1/0),this}loops(t){const e=this._duration+this._wait;if(null==t){const t=Math.floor(this._time/e),r=(this._time-t*e)/this._duration;return Math.min(t+r,this._times)}const r=t%1,n=e*Math.floor(t)+this._duration*r;return this.time(n)}persist(t){return null==t?this._persist:(this._persist=t,this)}position(t){const e=this._time,r=this._duration,n=this._wait,i=this._times,s=this._swing,o=this._reverse;let a;if(null==t){const t=function(t){const e=s*Math.floor(t%(2*(n+r))/(n+r)),i=e&&!o||!e&&o,a=Math.pow(-1,i)*(t%(n+r))/r+i;return Math.max(Math.min(a,1),0)},u=i*(n+r)-n;return a=e<=0?Math.round(t(1e-5)):e<u?t(e):Math.round(t(u-1e-5)),a}const u=Math.floor(this.loops()),h=s&&u%2==0;return a=u+(h&&!o||o&&h?t:1-t),this.loops(a)}progress(t){return null==t?Math.min(1,this._time/this.duration()):this.time(t*this.duration())}queue(t,e,r,n){return this._queue.push({initialiser:t||xt,runner:e||xt,retarget:r,isTransform:n,initialised:!1,finished:!1}),this.timeline()&&this.timeline()._continue(),this}reset(){return this._reseted||(this.time(0),this._reseted=!0),this}reverse(t){return this._reverse=t??!this._reverse,this}schedule(t,e,r){if(t instanceof Xe||(r=e,e=t,t=this.timeline()),!t)throw Error("Runner cannot be scheduled without timeline");return t.schedule(this,e,r),this}step(t){if(!this.enabled)return this;t=t??16,this._time+=t;const e=this.position(),r=this._lastPosition!==e&&this._time>=0;this._lastPosition=e;const n=this.duration(),i=this._lastTime<=0&&this._time>0,s=this._lastTime<n&&this._time>=n;this._lastTime=this._time,i&&this.fire("start",this);const o=this._isDeclarative;this.done=!o&&!s&&this._time>=n,this._reseted=!1;let a=!1;return(r||o)&&(this._initialise(r),this.transforms=new st,a=this._run(o?t:e),this.fire("step",this)),this.done=this.done||a&&o,s&&this.fire("finished",this),this}time(t){if(null==t)return this._time;const e=t-this._time;return this.step(e),this}timeline(t){return void 0===t?this._timeline:(this._timeline=t,this)}unschedule(){const t=this.timeline();return t&&t.unschedule(this),this}_initialise(t){if(t||this._isDeclarative)for(let e=0,r=this._queue.length;e<r;++e){const r=this._queue[e],n=this._isDeclarative||!r.initialised&&t;t=!r.finished,n&&t&&(r.initialiser.call(this),r.initialised=!0)}}_rememberMorpher(t,e){if(this._history[t]={morpher:e,caller:this._queue[this._queue.length-1]},this._isDeclarative){const t=this.timeline();t&&t.play()}}_run(t){let e=!0;for(let r=0,n=this._queue.length;r<n;++r){const n=this._queue[r],i=n.runner.call(this,t);n.finished=n.finished||!0===i,e=e&&n.finished}return e}_tryRetarget(t,e,r){if(this._history[t]){if(!this._history[t].caller.initialised){const e=this._queue.indexOf(this._history[t].caller);return this._queue.splice(e,1),!1}this._history[t].caller.retarget?this._history[t].caller.retarget.call(this,e,r):this._history[t].morpher.to(e),this._history[t].caller.finished=!1;const n=this.timeline();return n&&n.play(),!0}return!1}}Ge.id=0;class Ue{constructor(t=new st,e=-1,r=!0){this.transforms=t,this.id=e,this.done=r}clearTransformsFromQueue(){}}B([Ge,Ue],{mergeWith(t){return new Ue(t.transforms.lmultiply(this.transforms),t.id)}});const Ye=(t,e)=>t.lmultiplyO(e),We=t=>t.transforms;function $e(){const t=this._transformationRunners.runners.map(We).reduce(Ye,new st);this.transform(t),this._transformationRunners.merge(),1===this._transformationRunners.length()&&(this._frameId=null)}class qe{constructor(){this.runners=[],this.ids=[]}add(t){if(this.runners.includes(t))return;const e=t.id+1;return this.runners.push(t),this.ids.push(e),this}clearBefore(t){const e=this.ids.indexOf(t+1)||1;return this.ids.splice(0,e,0),this.runners.splice(0,e,new Ue).forEach(t=>t.clearTransformsFromQueue()),this}edit(t,e){const r=this.ids.indexOf(t+1);return this.ids.splice(r,1,t+1),this.runners.splice(r,1,e),this}getByID(t){return this.runners[this.ids.indexOf(t+1)]}length(){return this.ids.length}merge(){let t=null;for(let e=0;e<this.runners.length;++e){const r=this.runners[e];if(!(t&&r.done&&t.done)||r._timeline&&r._timeline._runnerIds.includes(r.id)||t._timeline&&t._timeline._runnerIds.includes(t.id))t=r;else{this.remove(r.id);const n=r.mergeWith(t);this.edit(t.id,n),t=n,--e}}return this}remove(t){const e=this.ids.indexOf(t+1);return this.ids.splice(e,1),this.runners.splice(e,1),this}}c({Element:{animate(t,e,r){const n=Ge.sanitise(t,e,r),i=this.timeline();return new Ge(n.duration).loop(n).element(this).timeline(i.play()).schedule(n.delay,n.when)},delay(t,e){return this.animate(0,t,e)},_clearTransformRunnersBefore(t){this._transformationRunners.clearBefore(t.id)},_currentTransform(t){return this._transformationRunners.runners.filter(e=>e.id<=t.id).map(We).reduce(Ye,new st)},_addRunner(t){this._transformationRunners.add(t),Ve.cancelImmediate(this._frameId),this._frameId=Ve.immediate($e.bind(this))},_prepareRunner(){null==this._frameId&&(this._transformationRunners=(new qe).add(new Ue(new st(this))))}}}),B(Ge,{attr(t,e){return this.styleAttr("attr",t,e)},css(t,e){return this.styleAttr("css",t,e)},styleAttr(t,e,r){if("string"==typeof e)return this.styleAttr(t,{[e]:r});let n=e;if(this._tryRetarget(t,n))return this;let i=new Ne(this._stepper).to(n),s=Object.keys(n);return this.queue(function(){i=i.from(this.element()[t](s))},function(e){return this.element()[t](i.at(e).valueOf()),i.done()},function(e){const r=Object.keys(e),o=(a=s,r.filter(t=>!a.includes(t)));var a;if(o.length){const e=this.element()[t](o),r=new Ee(i.from()).valueOf();Object.assign(r,e),i.from(r)}const u=new Ee(i.to()).valueOf();Object.assign(u,e),i.to(u),s=r,n=e}),this._rememberMorpher(t,i),this},zoom(t,e){if(this._tryRetarget("zoom",t,e))return this;let r=new Ne(this._stepper).to(new _t(t));return this.queue(function(){r=r.from(this.element().zoom())},function(t){return this.element().zoom(r.at(t),e),r.done()},function(t,n){e=n,r.to(t)}),this._rememberMorpher("zoom",r),this},transform(t,e,r){if(e=t.relative||e,this._isDeclarative&&!e&&this._tryRetarget("transform",t))return this;const n=st.isMatrixLike(t);r=null!=t.affine?t.affine:null!=r?r:!n;const i=new Ne(this._stepper).type(r?_e:st);let s,o,a,u,h;return this.queue(function(){o=o||this.element(),s=s||b(t,o),h=new st(e?void 0:o),o._addRunner(this),e||o._clearTransformRunnersBefore(this)},function(c){e||this.clearTransform();const{x:l,y:f}=new nt(s).transform(o._currentTransform(this));let d=new st({...t,origin:[l,f]}),m=this._isDeclarative&&a?a:h;if(r){d=d.decompose(l,f),m=m.decompose(l,f);const t=d.rotate,e=m.rotate,r=[t-360,t,t+360],n=r.map(t=>Math.abs(t-e)),i=Math.min(...n),s=n.indexOf(i);d.rotate=r[s]}e&&(n||(d.rotate=t.rotate||0),this._isDeclarative&&u&&(m.rotate=u)),i.from(m),i.to(d);const p=i.at(c);return u=p.rotate,a=new st(p),this.addTransform(a),o._addRunner(this),i.done()},function(e){(e.origin||"center").toString()!==(t.origin||"center").toString()&&(s=b(e,o)),t={...e,origin:s}},!0),this._isDeclarative&&this._rememberMorpher("transform",i),this},x(t){return this._queueNumber("x",t)},y(t){return this._queueNumber("y",t)},ax(t){return this._queueNumber("ax",t)},ay(t){return this._queueNumber("ay",t)},dx(t=0){return this._queueNumberDelta("x",t)},dy(t=0){return this._queueNumberDelta("y",t)},dmove(t,e){return this.dx(t).dy(e)},_queueNumberDelta(t,e){if(e=new _t(e),this._tryRetarget(t,e))return this;const r=new Ne(this._stepper).to(e);let n=null;return this.queue(function(){n=this.element()[t](),r.from(n),r.to(n+e)},function(e){return this.element()[t](r.at(e)),r.done()},function(t){r.to(n+new _t(t))}),this._rememberMorpher(t,r),this},_queueObject(t,e){if(this._tryRetarget(t,e))return this;const r=new Ne(this._stepper).to(e);return this.queue(function(){r.from(this.element()[t]())},function(e){return this.element()[t](r.at(e)),r.done()}),this._rememberMorpher(t,r),this},_queueNumber(t,e){return this._queueObject(t,new _t(e))},cx(t){return this._queueNumber("cx",t)},cy(t){return this._queueNumber("cy",t)},move(t,e){return this.x(t).y(e)},amove(t,e){return this.ax(t).ay(e)},center(t,e){return this.cx(t).cy(e)},size(t,e){let r;return t&&e||(r=this._element.bbox()),t||(t=r.width/r.height*e),e||(e=r.height/r.width*t),this.width(t).height(e)},width(t){return this._queueNumber("width",t)},height(t){return this._queueNumber("height",t)},plot(t,e,r,n){if(4===arguments.length)return this.plot([t,e,r,n]);if(this._tryRetarget("plot",t))return this;const i=new Ne(this._stepper).type(this._element.MorphArray).to(t);return this.queue(function(){i.from(this._element.array())},function(t){return this._element.plot(i.at(t)),i.done()}),this._rememberMorpher("plot",i),this},leading(t){return this._queueNumber("leading",t)},viewbox(t,e,r,n){return this._queueObject("viewbox",new ut(t,e,r,n))},update(t){return"object"!=typeof t?this.update({offset:arguments[0],color:arguments[1],opacity:arguments[2]}):(null!=t.opacity&&this.attr("stop-opacity",t.opacity),null!=t.color&&this.attr("stop-color",t.color),null!=t.offset&&this.attr("offset",t.offset),this)}}),B(Ge,{rx:Dt,ry:It,from:Ut,to:Yt}),I(Ge,"Runner");class He extends Tt{constructor(t,e=t){super(j("svg",t),e),this.namespace()}defs(){return this.isRoot()?C(this.node.querySelector("defs"))||this.put(new jt):this.root().defs()}isRoot(){return!this.node.parentNode||!(this.node.parentNode instanceof O.window.SVGElement)&&"#document-fragment"!==this.node.parentNode.nodeName}namespace(){return this.isRoot()?this.attr({xmlns:N,version:"1.1"}).attr("xmlns:xlink",_,S):this.root().namespace()}removeNamespace(){return this.attr({xmlns:null,version:null}).attr("xmlns:xlink",null,S).attr("xmlns:svgjs",null,S)}root(){return this.isRoot()?this:super.root()}}c({Container:{nested:V(function(){return this.put(new He)})}}),I(He,"Svg",!0);class Je extends Tt{constructor(t,e=t){super(j("symbol",t),e)}}function Ke(t){return!1===this._build&&this.clear(),this.node.appendChild(O.document.createTextNode(t)),this}function Qe(){return this.node.getComputedTextLength()}function Ze(t,e=this.bbox()){return null==t?e.x:this.attr("x",this.attr("x")+t-e.x)}function tr(t,e=this.bbox()){return null==t?e.y:this.attr("y",this.attr("y")+t-e.y)}function er(t,e,r=this.bbox()){return this.x(t,r).y(e,r)}function rr(t,e=this.bbox()){return null==t?e.cx:this.attr("x",this.attr("x")+t-e.cx)}function nr(t,e=this.bbox()){return null==t?e.cy:this.attr("y",this.attr("y")+t-e.cy)}function ir(t,e,r=this.bbox()){return this.cx(t,r).cy(e,r)}function sr(t){return this.attr("x",t)}function or(t){return this.attr("y",t)}function ar(t,e){return this.ax(t).ay(e)}function ur(t){return this._build=!!t,this}c({Container:{symbol:V(function(){return this.put(new Je)})}}),I(Je,"Symbol");class hr extends Ct{constructor(t,e=t){super(j("text",t),e),this.dom.leading=this.dom.leading??new _t(1.3),this._rebuild=!0,this._build=!1}leading(t){return null==t?this.dom.leading:(this.dom.leading=new _t(t),this.rebuild())}rebuild(t){if("boolean"==typeof t&&(this._rebuild=t),this._rebuild){const t=this;let e=0;const r=this.dom.leading;this.each(function(n){if(v(this.node))return;const i=O.window.getComputedStyle(this.node).getPropertyValue("font-size"),s=r*new _t(i);this.dom.newLined&&(this.attr("x",t.attr("x")),"\n"===this.text()?e+=s:(this.attr("dy",n?s+e:0),e=0))}),this.fire("rebuild")}return this}setData(t){return this.dom=t,this.dom.leading=new _t(t.leading||1.3),this}writeDataToDom(){return x(this,this.dom,{leading:1.3}),this}text(t){if(void 0===t){const e=this.node.childNodes;let r=0;t="";for(let n=0,i=e.length;n<i;++n)"textPath"===e[n].nodeName||v(e[n])?0===n&&(r=n+1):(n!==r&&3!==e[n].nodeType&&!0===C(e[n]).dom.newLined&&(t+="\n"),t+=e[n].textContent);return t}if(this.clear().build(!0),"function"==typeof t)t.call(this,this);else for(let e=0,r=(t=(t+"").split("\n")).length;e<r;e++)this.newLine(t[e]);return this.build(!1).rebuild()}}B(hr,o),c({Container:{text:V(function(t=""){return this.put(new hr).text(t)}),plain:V(function(t=""){return this.put(new hr).plain(t)})}}),I(hr,"Text");class cr extends Ct{constructor(t,e=t){super(j("tspan",t),e),this._build=!1}dx(t){return this.attr("dx",t)}dy(t){return this.attr("dy",t)}newLine(){this.dom.newLined=!0;const t=this.parent();if(!(t instanceof hr))return this;const e=t.index(this),r=O.window.getComputedStyle(this.node).getPropertyValue("font-size"),n=t.dom.leading*new _t(r);return this.dy(e?n:0).attr("x",t.x())}text(t){return null==t?this.node.textContent+(this.dom.newLined?"\n":""):("function"==typeof t?(this.clear().build(!0),t.call(this,this),this.build(!1)):this.plain(t),this)}}B(cr,o),c({Tspan:{tspan:V(function(t=""){const e=new cr;return this._build||this.clear(),this.put(e).text(t)})},Text:{newLine:function(t=""){return this.tspan(t).newLine()}}}),I(cr,"Tspan");class lr extends Ct{constructor(t,e=t){super(j("circle",t),e)}radius(t){return this.attr("r",t)}rx(t){return this.attr("r",t)}ry(t){return this.rx(t)}size(t){return this.radius(new _t(t).divide(2))}}B(lr,{x:kt,y:Ft,cx:Lt,cy:Bt,width:Vt,height:Rt}),c({Container:{circle:V(function(t=0){return this.put(new lr).size(t).move(0,0)})}}),I(lr,"Circle");class fr extends Tt{constructor(t,e=t){super(j("clipPath",t),e)}remove(){return this.targets().forEach(function(t){t.unclip()}),super.remove()}targets(){return dt("svg [clip-path*="+this.id()+"]")}}c({Container:{clip:V(function(){return this.defs().put(new fr)})},Element:{clipper(){return this.reference("clip-path")},clipWith(t){const e=t instanceof fr?t:this.parent().clip().add(t);return this.attr("clip-path","url(#"+e.id()+")")},unclip(){return this.attr("clip-path",null)}}}),I(fr,"ClipPath");class dr extends Mt{constructor(t,e=t){super(j("foreignObject",t),e)}}function mr(t,e){return this.children().forEach(r=>{let n;try{n=r.node instanceof O.window.SVGSVGElement?new ut(r.attr(["x","y","width","height"])):r.bbox()}catch(t){return}const i=new st(r),s=i.translate(t,e).transform(i.inverse()),o=new nt(n.x,n.y).transform(s);r.move(o.x,o.y)}),this}function pr(t){return this.dmove(t,0)}function yr(t){return this.dmove(0,t)}function gr(t,e=this.bbox()){return null==t?e.height:this.size(e.width,t,e)}function br(t=0,e=0,r=this.bbox()){const n=t-r.x,i=e-r.y;return this.dmove(n,i)}function wr(t,e,r=this.bbox()){const n=g(this,t,e,r),i=n.width/r.width,s=n.height/r.height;return this.children().forEach(t=>{const e=new nt(r).transform(new st(t).inverse());t.scale(i,s,e.x,e.y)}),this}function vr(t,e=this.bbox()){return null==t?e.width:this.size(t,e.height,e)}function xr(t,e=this.bbox()){return null==t?e.x:this.move(t,e.y,e)}function Nr(t,e=this.bbox()){return null==t?e.y:this.move(e.x,t,e)}c({Container:{foreignObject:V(function(t,e){return this.put(new dr).size(t,e)})}}),I(dr,"ForeignObject");class Sr extends Tt{constructor(t,e=t){super(j("g",t),e)}}B(Sr,a),c({Container:{group:V(function(){return this.put(new Sr)})}}),I(Sr,"G");class _r extends Tt{constructor(t,e=t){super(j("a",t),e)}target(t){return this.attr("target",t)}to(t){return this.attr("href",t,_)}}B(_r,a),c({Container:{link:V(function(t){return this.put(new _r).to(t)})},Element:{unlink(){const t=this.linker();if(!t)return this;const e=t.parent();if(!e)return this.remove();const r=e.index(t);return e.add(this,r),t.remove(),this},linkTo(t){let e=this.linker();return e||(e=new _r,this.wrap(e)),"function"==typeof t?t.call(e,e):e.to(t),this},linker(){const t=this.parent();return t&&"a"===t.node.nodeName.toLowerCase()?t:null}}}),I(_r,"A");class Or extends Tt{constructor(t,e=t){super(j("mask",t),e)}remove(){return this.targets().forEach(function(t){t.unmask()}),super.remove()}targets(){return dt("svg [mask*="+this.id()+"]")}}c({Container:{mask:V(function(){return this.defs().put(new Or)})},Element:{masker(){return this.reference("mask")},maskWith(t){const e=t instanceof Or?t:this.parent().mask().add(t);return this.attr("mask","url(#"+e.id()+")")},unmask(){return this.attr("mask",null)}}}),I(Or,"Mask");class Er extends Mt{constructor(t,e=t){super(j("stop",t),e)}update(t){return("number"==typeof t||t instanceof _t)&&(t={offset:arguments[0],color:arguments[1],opacity:arguments[2]}),null!=t.opacity&&this.attr("stop-opacity",t.opacity),null!=t.color&&this.attr("stop-color",t.color),null!=t.offset&&this.attr("offset",new _t(t.offset)),this}}c({Gradient:{stop:function(t,e,r){return this.put(new Er).update(t,e,r)}}}),I(Er,"Stop");class Pr extends Mt{constructor(t,e=t){super(j("style",t),e)}addText(t=""){return this.node.textContent+=t,this}font(t,e,r={}){return this.rule("@font-face",{fontFamily:t,src:e,...r})}rule(t,e){return this.addText(function(t,e){if(!t)return"";if(!e)return t;let r=t+"{";for(const t in e)r+=p(t)+":"+e[t]+";";return r+="}",r}(t,e))}}c("Dom",{style(t,e){return this.put(new Pr).rule(t,e)},fontface(t,e,r){return this.put(new Pr).font(t,e,r)}}),I(Pr,"Style");class Mr extends hr{constructor(t,e=t){super(j("textPath",t),e)}array(){const t=this.track();return t?t.array():null}plot(t){const e=this.track();let r=null;return e&&(r=e.plot(t)),null==t?r:this}track(){return this.reference("href")}}c({Container:{textPath:V(function(t,e){return t instanceof hr||(t=this.text(t)),t.path(e)})},Text:{path:V(function(t,e=!0){const r=new Mr;let n;if(t instanceof Me||(t=this.defs().path(t)),r.attr("href","#"+t,_),e)for(;n=this.node.firstChild;)r.node.appendChild(n);return this.put(r)}),textPath(){return this.findOne("textPath")}},Path:{text:V(function(t){return t instanceof hr||(t=(new hr).addTo(this.parent()).text(t)),t.path(this)}),targets(){return dt("svg textPath").filter(t=>(t.attr("href")||"").includes(this.id()))}}}),Mr.prototype.MorphArray=ve,I(Mr,"TextPath");class Ar extends Ct{constructor(t,e=t){super(j("use",t),e)}use(t,e){return this.attr("href",(e||"")+"#"+t,_)}}c({Container:{use:V(function(t,e){return this.put(new Ar).use(t,e)})}}),I(Ar,"Use"),B([He,Je,qt,$t,ne],l("viewbox")),B([re,ke,Ie,Me],l("marker")),B(hr,l("Text")),B(Me,l("Path")),B(jt,l("Defs")),B([hr,cr],l("Tspan")),B([Fe,zt,Wt,Ge],l("radius")),B(vt,l("EventTarget")),B(Pt,l("Dom")),B(Mt,l("Element")),B(Ct,l("Shape")),B([Tt,Gt],l("Container")),B(Wt,l("Gradient")),B(Ge,l("Runner")),lt.extend([...new Set(h)]),function(t=[]){Pe.push(...[].concat(t))}([_t,rt,ut,st,St,Jt,ve,nt]),B(Pe,{to(t){return(new Ne).type(this.constructor).from(this.toArray()).to(t)},fromArray(t){return this.init(t),this},toConsumable(){return this.toArray()},morph(t,e,r,n,i){return this.fromArray(t.map(function(t,s){return n.step(t,e[s],r,i[s],i)}))}});var Tr,jr,Cr,Dr,Ir=r(726),kr=r(854),Fr=r(731),Lr=r(986),Br=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class Vr{static create(t){let e=document.createElementNS("http://www.w3.org/2000/svg","text");e.textContent=t;let r=new Vr(e);return r.assignUUID(),r.setAttributes(Vr.defaultAttributes),r}static deserialized(t,e){var r;if(!(0,kr.isNonNullObject)(t))throw new Error("Saved base must be an object.");let n=null!==(r=t.id)&&void 0!==r?r:t.textId;if(!n)throw new Error("Missing base ID.");if(!(0,kr.isString)(n))throw new Error("Base IDs must be strings.");let i=e.domNode.querySelector("#"+n);if(!i)throw new Error("Unable to find nucleobase DOM node.");if(!(i instanceof SVGTextElement))throw new Error("Nucleobase DOM node must be an SVG text element.");return new Vr(i)}constructor(t){Tr.add(this),this.domNode=t,jr.set(this,void 0),Cr.set(this,{change:[]}),this.centerPoint=new Fr.CenterPoint(t),function(t,e,r){if("function"==typeof e||!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");e.set(t,r)}(this,jr,new MutationObserver(()=>Br(this,Tr,"m",Dr).call(this,"change"))),Br(this,jr,"f").observe(t,{attributes:!0,childList:!0,characterData:!0,subtree:!0})}serialized(){if(!this.id)throw new Error("Nucleobase ID is falsy.");return{id:this.id}}appendTo(t){t.appendChild(this.domNode)}remove(){this.domNode.remove()}isIn(t){return t.contains(this.domNode)&&t!==this.domNode}hasParent(){return!!this.domNode.parentNode}bringToFront(){(0,Ir.bringToFront)(this.domNode)}sendToBack(){(0,Ir.sendToBack)(this.domNode)}getAttribute(t){return this.domNode.getAttribute(t)}setAttribute(t,e){this.domNode.setAttribute(t,e)}setAttributes(t){try{new hr(this.domNode).attr(t)}catch(t){}}get id(){return this.domNode.id}assignUUID(){(0,Ir.assignUUID)(this.domNode)}get textContent(){return this.domNode.textContent}set textContent(t){this.domNode.textContent=t}isA(){var t;return"A"===(null===(t=this.textContent)||void 0===t?void 0:t.toUpperCase())}isU(){var t;return"U"===(null===(t=this.textContent)||void 0===t?void 0:t.toUpperCase())}isT(){var t;return"T"===(null===(t=this.textContent)||void 0===t?void 0:t.toUpperCase())}isG(){var t;return"G"===(null===(t=this.textContent)||void 0===t?void 0:t.toUpperCase())}isC(){var t;return"C"===(null===(t=this.textContent)||void 0===t?void 0:t.toUpperCase())}get bbox(){return this.domNode.getBBox()}getCenterPoint(){return this.centerPoint}setCenterPoint(t){this.centerPoint.x=t.x,this.centerPoint.y=t.y}maintainingCenterPoint(t){let{x:e,y:r}=this.centerPoint;t(),this.centerPoint.x=e,this.centerPoint.y=r}get boundingClientRect(){return this.domNode.getBoundingClientRect()}get clientCenterPoint(){let t=this.domNode.getBoundingClientRect();return{x:(0,Lr.mean)([t.left,t.right]),y:(0,Lr.mean)([t.top,t.bottom])}}getClientCenterPoint(){return this.clientCenterPoint}addEventListener(t,e){Br(this,Cr,"f")[t].push(e)}removeEventListener(t,e){Br(this,Cr,"f")[t]=Br(this,Cr,"f")[t].filter(t=>t!==e)}}jr=new WeakMap,Cr=new WeakMap,Tr=new WeakSet,Dr=function(t){Br(this,Cr,"f")[t].forEach(t=>t())},Vr.defaultAttributes={"font-family":"Arial","font-size":"9","font-weight":"700"},Vr.defaultAttributeNames=["font-family","font-size","font-weight"];class Rr{constructor(t,e){this.base1=t,this.base2=e}[Symbol.iterator](){return[this.base1,this.base2].values()}isAU(){return this.base1.isA()&&this.base2.isU()||this.base1.isU()&&this.base2.isA()}isAT(){return this.base1.isA()&&this.base2.isT()||this.base1.isT()&&this.base2.isA()}isGC(){return this.base1.isG()&&this.base2.isC()||this.base1.isC()&&this.base2.isG()}isGU(){return this.base1.isG()&&this.base2.isU()||this.base1.isU()&&this.base2.isG()}isGT(){return this.base1.isG()&&this.base2.isT()||this.base1.isT()&&this.base2.isG()}}function zr(t,e){let r=new Map;e.forEach((t,e)=>r.set(t,e));let n=[...t];return n.sort((t,e)=>{var n,i;return(null!==(n=r.get(t))&&void 0!==n?n:-1)-(null!==(i=r.get(e))&&void 0!==i?i:-1)}),n}})(),n})(),t.exports=e()},976(t){var e;e=()=>(()=>{var t={645(t){var e;e=()=>(()=>{var t={986(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){var e=0;return t.forEach(function(t){return e+=t}),e}function n(t){return r(t)/t.length}function i(t){t.sort(function(t,e){return t-e})}t.r(e),t.d(e,{areWithin:()=>d,average:()=>n,clamp:()=>f,degrees:()=>g,flipAway:()=>v,isBetween:()=>c,isBetweenExclusive:()=>l,isBetweenInclusive:()=>c,max:()=>h,mean:()=>n,median:()=>a,min:()=>u,normalizeAngle:()=>w,radians:()=>b,round:()=>y,sortNumbers:()=>i,sortNumbersAscending:()=>i,sortNumbersDescending:()=>m,sortedNumbers:()=>o,sortedNumbersAscending:()=>o,sortedNumbersDescending:()=>p,sum:()=>r});var s=function(t,e,r){if(r||2===arguments.length)for(var n,i=0,s=e.length;i<s;i++)!n&&i in e||(n||(n=Array.prototype.slice.call(e,0,i)),n[i]=e[i]);return t.concat(n||Array.prototype.slice.call(e))};function o(t){var e=s([],t,!0);return i(e),e}function a(t){if(0==t.length)return NaN;var e=o(t);if(e.length%2!=0)return e[Math.floor(e.length/2)];var r=e.length/2,i=r-1;return n([e[r],e[i]])}function u(t){if(0==t.length)return 1/0;var e=t[0];return t.slice(1).forEach(function(t){e=Math.min(e,t)}),e}function h(t){if(0==t.length)return-1/0;var e=t[0];return t.slice(1).forEach(function(t){e=Math.max(e,t)}),e}function c(t,e,r){return t>=e&&t<=r}function l(t,e,r){return t>e&&t<r}function f(t,e,r){return t<e?e:t>r?r:t}function d(t,e,r){return Math.abs(t-e)<=r}function m(t){i(t),t.reverse()}function p(t){var e=o(t);return e.reverse(),e}function y(t,e){return Number.parseFloat(t.toFixed(null!=e?e:0))}function g(t){return t*(180/Math.PI)}function b(t){return t*(Math.PI/180)}function w(t,e){void 0===e&&(e=-Math.PI);var r=t-e;return e+((r%=2*Math.PI)>=0?r:r+2*Math.PI)}function v(t,e){var r=(e=w(e,t))-t;return(r<Math.PI/2||r>3*Math.PI/2)&&(t+=Math.PI),t}return e})()}},e={};function r(n){var i=e[n];if(void 0!==i)return i.exports;var s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,r),s.exports}r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var n={};return(()=>{"use strict";r.r(n),r.d(n,{Box:()=>e});var t=r(986);class e{static matching(t){let{x:r,y:n,width:i,height:s}=t;return new e(r,n,i,s)}static bounding(r){let n=[...r];if(0==n.length)throw new Error("An empty collection of boxes doesn't have a bounding box.");let i=n.map(t=>e.matching(t)),s=(0,t.min)(i.map(t=>t.left)),o=(0,t.min)(i.map(t=>t.top)),a=(0,t.max)(i.map(t=>t.right))-s,u=(0,t.max)(i.map(t=>t.bottom))-o;return new e(s,o,a,u)}constructor(t,e,r,n){this.x=t,this.y=e,this.width=r,this.height=n}get centerX(){return this.minX+this.width/2}get centerY(){return this.minY+this.height/2}get minX(){return this.x}get minY(){return this.y}get maxX(){return this.minX+this.width}get maxY(){return this.minY+this.height}get top(){return this.minY}get right(){return this.maxX}get bottom(){return this.maxY}get left(){return this.minX}bounds(t){let r=e.matching(t);return this.minX<=r.minX&&this.minY<=r.minY&&this.maxX>=r.maxX&&this.maxY>=r.maxY}padded(...t){let r="number"==typeof t[0]?t[0]:"factor"in t[0]?t[0].factor*this.width:t[0].percentage/100*this.width,n="number"==typeof t[0]&&"number"==typeof t[1]?t[1]:"number"==typeof t[0]?t[0]:"factor"in t[0]?t[0].factor*this.height:t[0].percentage/100*this.height;return new e(this.x-r,this.y-n,this.width+2*r,this.height+2*n)}get periphery(){return{atAngle:t=>{let e=this.width/2,r=this.height/2,n=Math.pow(Math.pow(e,2)+Math.pow(r,2),.5),i=this.centerX+n*Math.cos(t),s=this.centerY+n*Math.sin(t),o=n;return Math.abs(this.centerX-i)>e&&(o=Math.abs(e/Math.cos(t)),o=Number.isFinite(o)?o:r),Math.abs(this.centerY-s)>r&&(o=Math.abs(r/Math.sin(t)),o=Number.isFinite(o)?o:e),{x:this.centerX+o*Math.cos(t),y:this.centerY+o*Math.sin(t)}}}}}})(),n})(),t.exports=e()},153(t){var e;e=()=>(()=>{var t={986(t){t.exports=(()=>{"use strict";const t={d:(e,r)=>{if(Array.isArray(r))for(var n=0;n<r.length;){var i=r[n++],s=r[n++];t.o(e,i)?0===s&&n++:0===s?Object.defineProperty(e,i,{enumerable:!0,value:r[n++]}):Object.defineProperty(e,i,{enumerable:!0,get:s})}else for(var i in r)t.o(r,i)&&!t.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:r[i]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}};let e={};function r(t,e){return Math.abs(t-e)}function n(t){var e=0;return t.forEach(function(t){return e+=t}),e}function i(t){return n(t)/t.length}function s(t){t.sort(function(t,e){return t-e})}t.r(e),t.d(e,{areWithin:()=>m,average:()=>i,clamp:()=>d,degrees:()=>b,distance:()=>r,flipAway:()=>x,isBetween:()=>l,isBetweenExclusive:()=>f,isBetweenInclusive:()=>l,max:()=>c,mean:()=>i,median:()=>u,min:()=>h,normalizeAngle:()=>v,radians:()=>w,round:()=>g,sortNumbers:()=>s,sortNumbersAscending:()=>s,sortNumbersDescending:()=>p,sortedNumbers:()=>a,sortedNumbersAscending:()=>a,sortedNumbersDescending:()=>y,sum:()=>n});var o=function(t,e,r){if(r||2===arguments.length)for(var n,i=0,s=e.length;i<s;i++)!n&&i in e||(n||(n=Array.prototype.slice.call(e,0,i)),n[i]=e[i]);return t.concat(n||Array.prototype.slice.call(e))};function a(t){var e=o([],t,!0);return s(e),e}function u(t){if(0==t.length)return NaN;var e=a(t);if(e.length%2!=0)return e[Math.floor(e.length/2)];var r=e.length/2,n=r-1;return i([e[r],e[n]])}function h(t){if(0==t.length)return 1/0;var e=t[0];return t.slice(1).forEach(function(t){e=Math.min(e,t)}),e}function c(t){if(0==t.length)return-1/0;var e=t[0];return t.slice(1).forEach(function(t){e=Math.max(e,t)}),e}function l(t,e,r){return t>=e&&t<=r}function f(t,e,r){return t>e&&t<r}function d(t,e,r){return t<e?e:t>r?r:t}function m(t,e,r){return Math.abs(t-e)<=r}function p(t){s(t),t.reverse()}function y(t){var e=a(t);return e.reverse(),e}function g(t,e){return Number.parseFloat(t.toFixed(null!=e?e:0))}function b(t){return t*(180/Math.PI)}function w(t){return t*(Math.PI/180)}function v(t,e){void 0===e&&(e=-Math.PI);var r=t-e;return e+((r%=2*Math.PI)>=0?r:r+2*Math.PI)}function x(t,e){var r=(e=v(e,t))-t;return(r<Math.PI/2||r>3*Math.PI/2)&&(t+=Math.PI),t}return e})()},725(t){t.exports=(()=>{var t={986:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){var e=0;return t.forEach(function(t){return e+=t}),e}function n(t){return r(t)/t.length}function i(t){t.sort(function(t,e){return t-e})}t.r(e),t.d(e,{areWithin:()=>f,average:()=>n,degrees:()=>p,isBetweenExclusive:()=>l,isBetweenInclusive:()=>c,max:()=>h,mean:()=>n,median:()=>a,min:()=>u,radians:()=>y,sortNumbers:()=>i,sortNumbersAscending:()=>i,sortNumbersDescending:()=>d,sortedNumbers:()=>o,sortedNumbersAscending:()=>o,sortedNumbersDescending:()=>m,sum:()=>r});var s=function(t,e,r){if(r||2===arguments.length)for(var n,i=0,s=e.length;i<s;i++)!n&&i in e||(n||(n=Array.prototype.slice.call(e,0,i)),n[i]=e[i]);return t.concat(n||Array.prototype.slice.call(e))};function o(t){var e=s([],t,!0);return i(e),e}function a(t){if(0==t.length)return NaN;var e=o(t);if(e.length%2!=0)return e[Math.floor(e.length/2)];var r=e.length/2,i=r-1;return n([e[r],e[i]])}function u(t){if(0==t.length)return 1/0;var e=t[0];return t.slice(1).forEach(function(t){e=Math.min(e,t)}),e}function h(t){if(0==t.length)return-1/0;var e=t[0];return t.slice(1).forEach(function(t){e=Math.max(e,t)}),e}function c(t,e,r){return t>=e&&t<=r}function l(t,e,r){return t>e&&t<r}function f(t,e,r){return Math.abs(t-e)<=r}function d(t){i(t),t.reverse()}function m(t){var e=o(t);return e.reverse(),e}function p(t){return t*(180/Math.PI)}function y(t){return t*(Math.PI/180)}return e})()},854:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){return"number"==typeof t}function n(t){return r(t)&&Number.isFinite(t)}function i(t){return r(t)&&!Number.isFinite(t)}function s(t){return n(t)&&t>0}function o(t){return n(t)&&t>=0}function a(t){return"string"==typeof t}function u(t){return null==t}function h(t){return"object"==typeof t&&null!==t}function c(t){return Array.isArray(t)}return t.r(e),t.d(e,{isArray:()=>c,isFiniteNumber:()=>n,isNonFiniteNumber:()=>i,isNonNegativeFiniteNumber:()=>o,isNonNullObject:()=>h,isNullish:()=>u,isNumber:()=>r,isPositiveFiniteNumber:()=>s,isString:()=>a}),e})()},30:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){return Math.pow(Math.pow(t.x,2)+Math.pow(t.y,2),.5)}function n(t){return Math.atan2(t.y,t.x)}return t.r(e),t.d(e,{direction:()=>n,magnitude:()=>r}),e})()}},e={};function r(n){var i=e[n];if(void 0!==i)return i.exports;var s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,r),s.exports}r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var n={};return(()=>{"use strict";r.r(n),r.d(n,{areWithin:()=>a,centroid:()=>d,deepCopy:()=>s,direction:()=>l,displaced:()=>h,displacement:()=>u,distance:()=>o,isFinitePoint:()=>i,isPoint:()=>e,midpoint:()=>m});var t=r(854);function e(e){return(0,t.isNonNullObject)(e)&&(0,t.isNumber)(e.x)&&(0,t.isNumber)(e.y)}function i(r){return e(r)&&(0,t.isFiniteNumber)(r.x)&&(0,t.isFiniteNumber)(r.y)}function s(t){return{x:t.x,y:t.y}}function o(t,e){var r=e.x-t.x,n=e.y-t.y;return Math.pow(Math.pow(r,2)+Math.pow(n,2),.5)}function a(t,e,r){return o(t,e)<=r}function u(t,e){return{x:e.x-t.x,y:e.y-t.y}}function h(t,e){return{x:t.x+e.x,y:t.y+e.y}}var c=r(30);function l(t,e){return(0,c.direction)(u(t,e))}var f=r(986);function d(t){return{x:(0,f.mean)(t.map(function(t){return t.x})),y:(0,f.mean)(t.map(function(t){return t.y}))}}function m(t,e){return d([t,e])}})(),n})()}};const e={};function r(n){const i=e[n];if(void 0!==i)return i.exports;const s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,r),s.exports}r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};let n={};return(()=>{"use strict";r.r(n),r.d(n,{StrungElement:()=>f});var t=r(725),e=r(986);const i=r=>({closestLength(n){let i=0,s=r.length;for(let o=0;o<15;o++)(0,t.distance)(n,r.atLength(i))<(0,t.distance)(n,r.atLength(s))?s=(0,e.average)([i,s]):i=(0,e.average)([i,s]);return(0,e.average)([i,s])}});var s,o,a,u,h,c,l=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class f{constructor(t,e){s.add(this),this.owner=e,o.set(this,void 0),function(t,e,r){if("function"==typeof e||!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");e.set(t,r)}(this,o,t),t.domNode.dataset.lineX||l(this,s,"m",a).call(this),t.domNode.dataset.displacementMagnitude&&t.domNode.dataset.displacementDirection||l(this,s,"m",u).call(this),e.addEventListener("change",()=>l(this,s,"m",c).call(this))}get domNode(){return l(this,o,"f").domNode}get rotation(){let t;return t=l(this,o,"f").domNode.dataset.rotation?Number.parseFloat(l(this,o,"f").domNode.dataset.rotation):0,Number.isFinite(t)||(t=0),t}set rotation(t){Number.isFinite(t)?(l(this,o,"f").domNode.dataset.rotation=`${t}`,l(this,s,"m",c).call(this)):console.error(`The specified rotation is nonfinite: ${t}.`)}get lineX(){let t;return t=l(this,o,"f").domNode.dataset.lineX?Number.parseFloat(l(this,o,"f").domNode.dataset.lineX):0,Number.isFinite(t)||(t=0),t}set lineX(t){Number.isFinite(t)?(t<-this.owner.length/2?t=-this.owner.length/2:t>this.owner.length/2&&(t=this.owner.length/2),l(this,o,"f").domNode.dataset.lineX=`${t}`,l(this,s,"m",c).call(this)):console.error(`The specified line X coordinate is nonfinite: ${t}.`)}get displacementMagnitude(){let t;return t=l(this,o,"f").domNode.dataset.displacementMagnitude?Number.parseFloat(l(this,o,"f").domNode.dataset.displacementMagnitude):0,Number.isFinite(t)||(t=0),t}set displacementMagnitude(t){Number.isFinite(t)?(l(this,o,"f").domNode.dataset.displacementMagnitude=`${t}`,l(this,s,"m",c).call(this)):console.error(`The specified displacement magnitude is nonfinite: ${t}.`)}get displacementDirection(){let t;return t=l(this,o,"f").domNode.dataset.displacementDirection?Number.parseFloat(l(this,o,"f").domNode.dataset.displacementDirection):0,Number.isFinite(t)||(t=0),t}set displacementDirection(t){Number.isFinite(t)?(l(this,o,"f").domNode.dataset.displacementDirection=`${t}`,l(this,s,"m",c).call(this)):console.error(`The specified displacement direction is nonfinite: ${t}.`)}get displacementX(){return this.displacementMagnitude*Math.cos(this.displacementDirection)}set displacementX(t){if(!Number.isFinite(t))return void console.error(`The specified displacement X component is nonfinite: ${t}.`);let e=this.displacementY;this.displacementMagnitude=Math.pow(Math.pow(t,2)+Math.pow(e,2),.5),this.displacementDirection=Math.atan2(e,t)}get displacementY(){return this.displacementMagnitude*Math.sin(this.displacementDirection)}set displacementY(t){if(!Number.isFinite(t))return void console.error(`The specified displacement Y component is nonfinite: ${t}.`);let e=this.displacementX;this.displacementMagnitude=Math.pow(Math.pow(e,2)+Math.pow(t,2),.5),this.displacementDirection=Math.atan2(t,e)}drag(t,e,r){var n;if(!Number.isFinite(t))return void console.error(`The specified drag X value is nonfinite: ${t}.`);if(!Number.isFinite(e))return void console.error(`The specified drag Y value is nonfinite: ${e}.`);if(null===(n=null==r?void 0:r.dragGroup)||void 0===n?void 0:n.has(this.owner))return;let i=Math.pow(Math.pow(t,2)+Math.pow(e,2),.5),o=Math.atan2(e,t),a=l(this,s,"a",h);this.displacementX+=i*Math.cos(o-a.direction),this.displacementY+=i*Math.sin(o-a.direction)}}o=new WeakMap,s=new WeakSet,a=function(){let t={x:l(this,o,"f").centerX,y:l(this,o,"f").centerY},e=this.owner.length/2;l(this,o,"f").domNode.dataset.lineX=""+(i(this.owner).closestLength(t)-e)},u=function(){let e=l(this,s,"a",h),r={x:l(this,o,"f").centerX,y:l(this,o,"f").centerY};l(this,o,"f").domNode.dataset.displacementMagnitude=`${(0,t.distance)(e,r)}`,l(this,o,"f").domNode.dataset.displacementDirection=""+((0,t.direction)(e,r)-e.direction)},h=function(){let t=this.owner.length/2;return this.owner.atLength(t+this.lineX)},c=function(){let t=l(this,s,"a",h);l(this,o,"f").centerX=t.x+this.displacementMagnitude*Math.cos(this.displacementDirection+t.direction),l(this,o,"f").centerY=t.y+this.displacementMagnitude*Math.sin(this.displacementDirection+t.direction),"direction"in l(this,o,"f")&&(l(this,o,"f").direction=t.direction+this.rotation)}})(),n})(),t.exports=e()},731(t){var e;e=()=>(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};t.r(e),t.d(e,{CenterPoint:()=>h});var r,n,i,s,o,a=function(t,e,r,n,i){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!i:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===n?i.call(t,r):i?i.value=r:e.set(t,r),r},u=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class h{constructor(t){r.add(this),n.set(this,void 0),i.set(this,{move:[]}),s.set(this,void 0),a(this,n,t,"f"),a(this,s,new MutationObserver(()=>u(this,r,"m",o).call(this,"move")),"f"),u(this,s,"f").observe(t,{attributes:!0,childList:!0,characterData:!0,subtree:!0})}get x(){let t=u(this,n,"f").getBBox();return t.x+t.width/2}set x(t){let e=this.x,r=[...u(this,n,"f").x.baseVal].map(t=>t.value);0!=r.length||r.push(0),r=r.map(r=>r+(t-e)),u(this,n,"f").setAttribute("x",r.join(", "))}get y(){let t=u(this,n,"f").getBBox();return t.y+t.height/2}set y(t){let e=this.y,r=[...u(this,n,"f").y.baseVal].map(t=>t.value);0!=r.length||r.push(0),r=r.map(r=>r+(t-e)),u(this,n,"f").setAttribute("y",r.join(", "))}addEventListener(t,e){u(this,i,"f")[t].push(e)}removeEventListener(t,e){u(this,i,"f")[t]=u(this,i,"f")[t].filter(t=>t!==e)}}return n=new WeakMap,i=new WeakMap,s=new WeakMap,r=new WeakSet,o=function(t){u(this,i,"f")[t].forEach(t=>t())},e})(),t.exports=e()},456(t){var e;e=()=>(()=>{var t={986(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){var e=0;return t.forEach(function(t){return e+=t}),e}function n(t){return r(t)/t.length}function i(t){t.sort(function(t,e){return t-e})}t.r(e),t.d(e,{areWithin:()=>d,average:()=>n,clamp:()=>f,degrees:()=>g,flipAway:()=>v,isBetween:()=>c,isBetweenExclusive:()=>l,isBetweenInclusive:()=>c,max:()=>h,mean:()=>n,median:()=>a,min:()=>u,normalizeAngle:()=>w,radians:()=>b,round:()=>y,sortNumbers:()=>i,sortNumbersAscending:()=>i,sortNumbersDescending:()=>m,sortedNumbers:()=>o,sortedNumbersAscending:()=>o,sortedNumbersDescending:()=>p,sum:()=>r});var s=function(t,e,r){if(r||2===arguments.length)for(var n,i=0,s=e.length;i<s;i++)!n&&i in e||(n||(n=Array.prototype.slice.call(e,0,i)),n[i]=e[i]);return t.concat(n||Array.prototype.slice.call(e))};function o(t){var e=s([],t,!0);return i(e),e}function a(t){if(0==t.length)return NaN;var e=o(t);if(e.length%2!=0)return e[Math.floor(e.length/2)];var r=e.length/2,i=r-1;return n([e[r],e[i]])}function u(t){if(0==t.length)return 1/0;var e=t[0];return t.slice(1).forEach(function(t){e=Math.min(e,t)}),e}function h(t){if(0==t.length)return-1/0;var e=t[0];return t.slice(1).forEach(function(t){e=Math.max(e,t)}),e}function c(t,e,r){return t>=e&&t<=r}function l(t,e,r){return t>e&&t<r}function f(t,e,r){return t<e?e:t>r?r:t}function d(t,e,r){return Math.abs(t-e)<=r}function m(t){i(t),t.reverse()}function p(t){var e=o(t);return e.reverse(),e}function y(t,e){return Number.parseFloat(t.toFixed(null!=e?e:0))}function g(t){return t*(180/Math.PI)}function b(t){return t*(Math.PI/180)}function w(t,e){void 0===e&&(e=-Math.PI);var r=t-e;return e+((r%=2*Math.PI)>=0?r:r+2*Math.PI)}function v(t,e){var r=(e=w(e,t))-t;return(r<Math.PI/2||r>3*Math.PI/2)&&(t+=Math.PI),t}return e})()},854(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){return"number"==typeof t}function n(t){return r(t)&&Number.isFinite(t)}function i(t){return r(t)&&!Number.isFinite(t)}function s(t){return n(t)&&t>0}function o(t){return n(t)&&t>=0}function a(t){return"string"==typeof t}function u(t){return""===t}function h(t){return a(t)&&!u(t)}function c(t){return!!a(t)&&0==t.trim().length}function l(t){if(!a(t))return!1;try{return JSON.parse(t),!0}catch{return!1}}function f(t){try{return JSON.stringify(t),!0}catch{return!1}}function d(t){return!!t}function m(t){return!t}function p(t){return null==t}function y(t){return"object"==typeof t&&null!==t}function g(t){return Array.isArray(t)}function b(t){return g(t)&&0==t.length}function w(t){return g(t)&&t.length>0}function v(t){return g(t)&&t.every(r)}function x(t){return v(t)&&t.length>0}function N(t){return g(t)&&t.every(n)}function S(t){return g(t)&&t.every(i)}function _(t){return g(t)&&t.every(a)}function O(t){return _(t)&&t.length>0}function E(t){return t instanceof SVGGraphicsElement}return t.r(e),t.d(e,{isArray:()=>g,isEmptyArray:()=>b,isEmptyString:()=>u,isFalsy:()=>m,isFiniteNumber:()=>n,isFiniteNumbersArray:()=>N,isJSON:()=>l,isJSONSerializable:()=>f,isNonEmptyArray:()=>w,isNonEmptyNumbersArray:()=>x,isNonEmptyString:()=>h,isNonEmptyStringsArray:()=>O,isNonFiniteNumber:()=>i,isNonFiniteNumbersArray:()=>S,isNonNegativeFiniteNumber:()=>o,isNonNullObject:()=>y,isNullish:()=>p,isNumber:()=>r,isNumbersArray:()=>v,isPositiveFiniteNumber:()=>s,isSVGGraphicsElement:()=>E,isString:()=>a,isStringsArray:()=>_,isTruthy:()=>d,isWhitespace:()=>c}),e})()},277(t){var e;e=()=>(()=>{var t={854(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){return"number"==typeof t}function n(t){return r(t)&&Number.isFinite(t)}function i(t){return r(t)&&!Number.isFinite(t)}function s(t){return n(t)&&t>0}function o(t){return n(t)&&t>=0}function a(t){return"string"==typeof t}function u(t){return""===t}function h(t){return a(t)&&!u(t)}function c(t){return!!a(t)&&0==t.trim().length}function l(t){if(!a(t))return!1;try{return JSON.parse(t),!0}catch{return!1}}function f(t){try{return JSON.stringify(t),!0}catch{return!1}}function d(t){return!!t}function m(t){return!t}function p(t){return null==t}function y(t){return"object"==typeof t&&null!==t}function g(t){return Array.isArray(t)}function b(t){return g(t)&&0==t.length}function w(t){return g(t)&&t.length>0}function v(t){return g(t)&&t.every(r)}function x(t){return v(t)&&t.length>0}function N(t){return g(t)&&t.every(n)}function S(t){return g(t)&&t.every(i)}function _(t){return g(t)&&t.every(a)}function O(t){return _(t)&&t.length>0}function E(t){return t instanceof SVGGraphicsElement}return t.r(e),t.d(e,{isArray:()=>g,isEmptyArray:()=>b,isEmptyString:()=>u,isFalsy:()=>m,isFiniteNumber:()=>n,isFiniteNumbersArray:()=>N,isJSON:()=>l,isJSONSerializable:()=>f,isNonEmptyArray:()=>w,isNonEmptyNumbersArray:()=>x,isNonEmptyString:()=>h,isNonEmptyStringsArray:()=>O,isNonFiniteNumber:()=>i,isNonFiniteNumbersArray:()=>S,isNonNegativeFiniteNumber:()=>o,isNonNullObject:()=>y,isNullish:()=>p,isNumber:()=>r,isNumbersArray:()=>v,isPositiveFiniteNumber:()=>s,isSVGGraphicsElement:()=>E,isString:()=>a,isStringsArray:()=>_,isTruthy:()=>d,isWhitespace:()=>c}),e})()}},e={};function r(n){var i=e[n];if(void 0!==i)return i.exports;var s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,r),s.exports}r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var n={};return(()=>{"use strict";r.r(n),r.d(n,{Vector:()=>e,isFiniteVectorLike:()=>s,isVectorLike:()=>i});var t=r(854);class e{static matching(t){let r="x"in t?t.x:t.magnitude*Math.cos(t.direction),n="y"in t?t.y:t.magnitude*Math.sin(t.direction);return new e(r,n)}constructor(t,e){this.x=t,this.y=e}[Symbol.iterator](){return[this.x,this.y].values()}get magnitude(){return Math.sqrt(Math.pow(this.x,2)+Math.pow(this.y,2))}set magnitude(t){let e=this.direction;this.x=t*Math.cos(e),this.y=t*Math.sin(e)}get direction(){return Math.atan2(this.y,this.x)}set direction(t){let e=this.magnitude;this.x=e*Math.cos(t),this.y=e*Math.sin(t)}isFinite(){return(0,t.isFiniteNumber)(this.x)&&(0,t.isFiniteNumber)(this.y)}}function i(e){return!(!(0,t.isNonNullObject)(e)||!((0,t.isNumber)(e.x)&&(0,t.isNumber)(e.y)||(0,t.isNumber)(e.magnitude)&&(0,t.isNumber)(e.direction)))}function s(t){return!!i(t)&&e.matching(t).isFinite()}})(),n})(),t.exports=e()}};const e={};function r(n){const i=e[n];if(void 0!==i)return i.exports;const s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,r),s.exports}r.d=(t,e)=>{if(Array.isArray(e))for(var n=0;n<e.length;){var i=e[n++],s=e[n++];r.o(t,i)?0===s&&n++:0===s?Object.defineProperty(t,i,{enumerable:!0,value:e[n++]}):Object.defineProperty(t,i,{enumerable:!0,get:s})}else for(var i in e)r.o(e,i)&&!r.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};let n={};return(()=>{"use strict";r.r(n),r.d(n,{FinitePoint:()=>s,Point:()=>i,RelativePoint:()=>f,midpoint:()=>m});var t=r(277),e=r(854);class i{static matching(t){return new i(t.x,t.y)}constructor(t,e){this.x=t,this.y=e}[Symbol.iterator](){return[this.x,this.y].values()}set(t){(0,e.isNumber)(null==t?void 0:t.x)&&(this.x=t.x),(0,e.isNumber)(null==t?void 0:t.y)&&(this.y=t.y)}drag(t,e){this.displace({x:t,y:e})}displace(e){let r=t.Vector.matching(e);this.x+=r.x,this.y+=r.y}displaced(t){let e=i.matching(this);return e.displace(t),e}displacementTo(e){return new t.Vector(e.x-this.x,e.y-this.y)}displacementFrom(e){return new t.Vector(this.x-e.x,this.y-e.y)}distanceTo(t){return this.displacementTo(t).magnitude}distanceFrom(t){return this.distanceTo(t)}directionTo(t){return this.displacementTo(t).direction}directionFrom(t){return this.displacementFrom(t).direction}deepCopy(){return new i(this.x,this.y)}}class s extends i{static matching(t){let e=i.matching(t);return new s(e.x,e.y)}constructor(t,r){if(super(t,r),!(0,e.isFiniteNumber)(t)||!(0,e.isFiniteNumber)(r))throw new Error(`Finite points must have finite number coordinates: (${t}, ${r}).`)}set(...t){let e=new i(0,0);e.set(...t),s.matching(e),super.set(...t)}}var o,a,u,h,c,l=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class f{constructor(e){o.add(this),a.set(this,void 0),u.set(this,new t.Vector(0,0)),h.set(this,{move:[]}),function(t,e,r){if("function"==typeof e||!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");e.set(t,r)}(this,a,e),e.addEventListener("move",()=>l(this,o,"m",c).call(this,"move"))}get x(){return l(this,a,"f").x+l(this,u,"f").x}set x(t){l(this,u,"f").x=t-l(this,a,"f").x,l(this,o,"m",c).call(this,"move")}get y(){return l(this,a,"f").y+l(this,u,"f").y}set y(t){l(this,u,"f").y=t-l(this,a,"f").y,l(this,o,"m",c).call(this,"move")}addEventListener(t,e){l(this,h,"f")[t].push(e)}removeEventListener(t,e){l(this,h,"f")[t]=l(this,h,"f")[t].filter(t=>t!==e)}}a=new WeakMap,u=new WeakMap,h=new WeakMap,o=new WeakSet,c=function(t){l(this,h,"f")[t].forEach(t=>t())};var d=r(986);function m(t,e){return new i((0,d.average)([t.x,e.x]),(0,d.average)([t.y,e.y]))}})(),n})(),t.exports=e()},854(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){return"number"==typeof t}function n(t){return r(t)&&Number.isFinite(t)}function i(t){return r(t)&&!Number.isFinite(t)}function s(t){return n(t)&&t>0}function o(t){return n(t)&&t>=0}function a(t){return"string"==typeof t}function u(t){return""===t}function h(t){return a(t)&&!u(t)}function c(t){return!!a(t)&&0==t.trim().length}function l(t){if(!a(t))return!1;try{return JSON.parse(t),!0}catch{return!1}}function f(t){try{return JSON.stringify(t),!0}catch{return!1}}function d(t){return!!t}function m(t){return!t}function p(t){return null==t}function y(t){return"object"==typeof t&&null!==t}function g(t){return Array.isArray(t)}function b(t){return g(t)&&0==t.length}function w(t){return g(t)&&t.length>0}function v(t){return g(t)&&t.every(r)}function x(t){return v(t)&&t.length>0}function N(t){return g(t)&&t.every(n)}function S(t){return g(t)&&t.every(i)}function _(t){return g(t)&&t.every(a)}function O(t){return _(t)&&t.length>0}function E(t){return t instanceof SVGGraphicsElement}return t.r(e),t.d(e,{isArray:()=>g,isEmptyArray:()=>b,isEmptyString:()=>u,isFalsy:()=>m,isFiniteNumber:()=>n,isFiniteNumbersArray:()=>N,isJSON:()=>l,isJSONSerializable:()=>f,isNonEmptyArray:()=>w,isNonEmptyNumbersArray:()=>x,isNonEmptyString:()=>h,isNonEmptyStringsArray:()=>O,isNonFiniteNumber:()=>i,isNonFiniteNumbersArray:()=>S,isNonNegativeFiniteNumber:()=>o,isNonNullObject:()=>y,isNullish:()=>p,isNumber:()=>r,isNumbersArray:()=>v,isPositiveFiniteNumber:()=>s,isSVGGraphicsElement:()=>E,isString:()=>a,isStringsArray:()=>_,isTruthy:()=>d,isWhitespace:()=>c}),e})()}};const e={};function r(n){const i=e[n];if(void 0!==i)return i.exports;const s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,r),s.exports}r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};let n={};return(()=>{"use strict";r.r(n),r.d(n,{Circle:()=>f,Rectangle:()=>v,StrungCircle:()=>I,StrungElement:()=>z,StrungRectangle:()=>L,StrungText:()=>j,StrungTriangle:()=>R,Text:()=>l,Triangle:()=>P});const t={randomUUID:"undefined"!=typeof crypto&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};let e;const i=new Uint8Array(16),s=[];for(let t=0;t<256;++t)s.push((t+256).toString(16).slice(1));function o(t,r,n){const o=(t=t||{}).random??t.rng?.()??function(){if(!e){if("undefined"==typeof crypto||!crypto.getRandomValues)throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");e=crypto.getRandomValues.bind(crypto)}return e(i)}();if(o.length<16)throw new Error("Random bytes length must be >= 16");if(o[6]=15&o[6]|64,o[8]=63&o[8]|128,r){if((n=n||0)<0||n+16>r.length)throw new RangeError(`UUID byte range ${n}:${n+15} is out of buffer bounds`);for(let t=0;t<16;++t)r[n+t]=o[t];return r}return function(t,e=0){return(s[t[e+0]]+s[t[e+1]]+s[t[e+2]]+s[t[e+3]]+"-"+s[t[e+4]]+s[t[e+5]]+"-"+s[t[e+6]]+s[t[e+7]]+"-"+s[t[e+8]]+s[t[e+9]]+"-"+s[t[e+10]]+s[t[e+11]]+s[t[e+12]]+s[t[e+13]]+s[t[e+14]]+s[t[e+15]]).toLowerCase()}(o)}const a=function(e,r,n){return!t.randomUUID||r||e?o(e,r,n):t.randomUUID()};var u=r(645),h=r(731),c=r(854);class l{static create(t){let e=document.createElementNS("http://www.w3.org/2000/svg","text");return e.id="id-"+a(),e.textContent=null!=t?t:"",e.setAttribute("font-family","Arial"),e.setAttribute("font-size","9"),e.setAttribute("font-weight","700"),e.setAttribute("font-style","normal"),e.setAttribute("fill","black"),e.setAttribute("fill-opacity","1"),new l(e)}constructor(t){this.domNode=t}get id(){return this.domNode.id}get bbox(){return u.Box.matching(this.domNode.getBBox())}get centerX(){return this.bbox.centerX}set centerX(t){new h.CenterPoint(this.domNode).x=t}get centerY(){return this.bbox.centerY}set centerY(t){new h.CenterPoint(this.domNode).y=t}drag(t,e){this.centerX+=t,this.centerY+=e}serialized(){if(!this.id)throw new Error("Text element ID is falsy.");return{id:this.id}}static recreate(t,e){if(!(0,c.isNonNullObject)(t))throw new Error(`Saved text element is not an object: ${t}.`);if(!t.id)throw new Error("Saved text element ID is falsy.");if(!(0,c.isString)(t.id))throw new Error(`Saved text element ID is not a string: ${t.id}.`);let r=e.domNode.querySelector("#"+t.id);if(!r)throw new Error("Unable to find text element DOM node in parent drawing by ID.");if(!(r instanceof SVGTextElement))throw new Error(`Text element DOM node is not an SVG text element: ${r}.`);return new l(r)}}class f{static create(){let t=document.createElementNS("http://www.w3.org/2000/svg","circle");return t.id="id-"+a(),t.setAttribute("r","6"),t.setAttribute("stroke","black"),t.setAttribute("stroke-width","1"),t.setAttribute("stroke-opacity","1"),t.setAttribute("stroke-dasharray",""),t.setAttribute("stroke-linecap",""),t.setAttribute("fill","white"),t.setAttribute("fill-opacity","1"),new f(t)}constructor(t){this.domNode=t}get id(){return this.domNode.id}get centerX(){return this.domNode.cx.baseVal.value}set centerX(t){this.domNode.setAttribute("cx",`${t}`)}get centerY(){return this.domNode.cy.baseVal.value}set centerY(t){this.domNode.setAttribute("cy",`${t}`)}drag(t,e){this.centerX+=t,this.centerY+=e}serialized(){if(!this.id)throw new Error("Circle ID is falsy.");return{id:this.id}}static recreate(t,e){if(!(0,c.isNonNullObject)(t))throw new Error(`Saved circle must be an object: ${t}.`);if(!t.id)throw new Error("Saved circle ID is falsy.");if(!(0,c.isString)(t.id))throw new Error(`Saved circle ID must be a string: ${t.id}.`);let r=e.domNode.querySelector("#"+t.id);if(!r)throw new Error("Unable to find circle element DOM node by ID.");if(!(r instanceof SVGCircleElement))throw new Error(`Circle element DOM node is not an SVG circle element: ${r}.`);return new f(r)}}var d=r(456);class m{constructor(){this.centerX=0,this.centerY=0,this.direction=-Math.PI/2,this.width=0,this.height=0,this.cornerRadius=0}static matching(t){let e=new m;return e.centerX=t.centerX,e.centerY=t.centerY,e.direction=t.direction,e.width=t.width,e.height=t.height,e.cornerRadius=t.cornerRadius,e}toString(){let t=new d.Point(this.centerX,this.centerY);t.displace({magnitude:this.height/2,direction:this.direction}),t.displace({magnitude:this.width/2-this.cornerRadius,direction:this.direction+Math.PI/2});let e=`M ${t.x} ${t.y}`;return t.displace({magnitude:Math.SQRT2*this.cornerRadius,direction:this.direction+3*Math.PI/4}),e+=` A ${this.cornerRadius} ${this.cornerRadius} 90 0 1 ${t.x} ${t.y}`,t.displace({magnitude:this.height-2*this.cornerRadius,direction:this.direction+Math.PI}),e+=` L ${t.x} ${t.y}`,t.displace({magnitude:Math.SQRT2*this.cornerRadius,direction:this.direction+5*Math.PI/4}),e+=` A ${this.cornerRadius} ${this.cornerRadius} 90 0 1 ${t.x} ${t.y}`,t.displace({magnitude:this.width-2*this.cornerRadius,direction:this.direction+3*Math.PI/2}),e+=` L ${t.x} ${t.y}`,t.displace({magnitude:Math.SQRT2*this.cornerRadius,direction:this.direction+7*Math.PI/4}),e+=` A ${this.cornerRadius} ${this.cornerRadius} 90 0 1 ${t.x} ${t.y}`,t.displace({magnitude:this.height-2*this.cornerRadius,direction:this.direction}),e+=` L ${t.x} ${t.y}`,t.displace({magnitude:Math.SQRT2*this.cornerRadius,direction:this.direction+9*Math.PI/4}),e+=` A ${this.cornerRadius} ${this.cornerRadius} 90 0 1 ${t.x} ${t.y}`,e+=" Z",e}}var p,y,g,b,w=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class v{static create(){let t=document.createElementNS("http://www.w3.org/2000/svg","path");t.id="id-"+a();let e=new v(t);return e.centerX=0,e.centerY=0,e.direction=-Math.PI/2,e.width=5.5,e.height=5.5,e.cornerRadius=0,e.domNode.setAttribute("stroke","black"),e.domNode.setAttribute("stroke-width","1"),e.domNode.setAttribute("stroke-opacity","1"),e.domNode.setAttribute("stroke-linejoin",""),e.domNode.setAttribute("stroke-dasharray",""),e.domNode.setAttribute("stroke-linecap",""),e.domNode.setAttribute("fill","white"),e.domNode.setAttribute("fill-opacity","1"),e}constructor(t){p.add(this),this.domNode=t,t.dataset.centerX||w(this,p,"m",y).call(this),t.dataset.centerY||w(this,p,"m",g).call(this)}get id(){return this.domNode.id}get centerX(){var t;let e=Number.parseFloat(null!==(t=this.domNode.dataset.centerX)&&void 0!==t?t:"");return Number.isFinite(e)?e:0}set centerX(t){Number.isFinite(t)?(this.domNode.dataset.centerX=`${t}`,w(this,p,"m",b).call(this)):console.error(`The specified center X coordinate is nonfinite: ${t}.`)}get centerY(){var t;let e=Number.parseFloat(null!==(t=this.domNode.dataset.centerY)&&void 0!==t?t:"");return Number.isFinite(e)?e:0}set centerY(t){Number.isFinite(t)?(this.domNode.dataset.centerY=`${t}`,w(this,p,"m",b).call(this)):console.error(`The specified center Y coordinate is nonfinite: ${t}.`)}drag(t,e){this.centerX+=t,this.centerY+=e}get direction(){var t;let e=Number.parseFloat(null!==(t=this.domNode.dataset.direction)&&void 0!==t?t:"");return Number.isFinite(e)?e:0}set direction(t){Number.isFinite(t)?(this.domNode.dataset.direction=`${t}`,w(this,p,"m",b).call(this)):console.error(`The specified direction angle is nonfinite: ${t}.`)}get width(){var t;let e=Number.parseFloat(null!==(t=this.domNode.dataset.width)&&void 0!==t?t:"");return Number.isFinite(e)?e:0}set width(t){Number.isFinite(t)?(this.domNode.dataset.width=`${t}`,w(this,p,"m",b).call(this)):console.error(`The specified width is nonfinite: ${t}.`)}get height(){var t;let e=Number.parseFloat(null!==(t=this.domNode.dataset.height)&&void 0!==t?t:"");return Number.isFinite(e)?e:0}set height(t){Number.isFinite(t)?(this.domNode.dataset.height=`${t}`,w(this,p,"m",b).call(this)):console.error(`The specified height is nonfinite: ${t}.`)}get cornerRadius(){var t;let e=Number.parseFloat(null!==(t=this.domNode.dataset.cornerRadius)&&void 0!==t?t:"");return Number.isFinite(e)?e:0}set cornerRadius(t){Number.isFinite(t)?(this.domNode.dataset.cornerRadius=`${t}`,w(this,p,"m",b).call(this)):console.error(`The specified corner radius is nonfinite: ${t}.`)}get bbox(){return u.Box.matching(this.domNode.getBBox())}serialized(){if(!this.id)throw new Error("Rectangle ID is falsy.");return{id:this.id}}static recreate(t,e){if(!(0,c.isNonNullObject)(t))throw new Error(`Saved rectangle is not an object: ${t}.`);if(!t.id)throw new Error("Saved rectangle ID is falsy.");if(!(0,c.isString)(t.id))throw new Error(`Saved rectangle ID is not a string: ${t.id}.`);let r=e.domNode.querySelector("#"+t.id);if(!r)throw new Error("Unable to find saved rectangle DOM node in parent drawing by ID.");if(!(r instanceof SVGPathElement))throw new Error(`DOM node found for saved rectangle is not an SVG path element: ${r}.`);let n=new v(r);return(0,c.isFiniteNumber)(t.width)&&(n.width=t.width),(0,c.isFiniteNumber)(t.height)&&(n.height=t.height),(0,c.isFiniteNumber)(t.borderRadius)&&(n.cornerRadius=t.borderRadius),n}}p=new WeakSet,y=function(){let t=u.Box.matching(this.domNode.getBBox());this.domNode.dataset.centerX=`${t.centerX}`},g=function(){let t=u.Box.matching(this.domNode.getBBox());this.domNode.dataset.centerY=`${t.centerY}`},b=function(){let t=new m;t.centerX=this.centerX,t.centerY=this.centerY,t.direction=this.direction,t.width=this.width,t.height=this.height,t.cornerRadius=this.cornerRadius,this.domNode.setAttribute("d",t.toString())};class x{constructor(){this.centerX=0,this.centerY=0,this.direction=-Math.PI/2,this.width=0,this.height=0,this.tailsHeight=0}static matching(t){let e=new x;return e.centerX=t.centerX,e.centerY=t.centerY,e.direction=t.direction,e.width=t.width,e.height=t.height,e.tailsHeight=t.tailsHeight,e}toString(){let t=new d.Point(this.centerX,this.centerY),e=t.displaced({magnitude:this.height/2,direction:this.direction}),r=t.displaced({magnitude:this.width/2,direction:this.direction-Math.PI/2}).displaced({magnitude:this.height/2,direction:this.direction+Math.PI}),n=t.displaced({magnitude:this.width/2,direction:this.direction+Math.PI/2}).displaced({magnitude:this.height/2,direction:this.direction+Math.PI}),i=t.displaced({magnitude:this.height/2-this.tailsHeight,direction:this.direction+Math.PI});return`M ${e.x} ${e.y} L ${n.x} ${n.y} L ${i.x} ${i.y} L ${r.x} ${r.y} Z`}}var N,S,_,O,E=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class P{static create(){let t=document.createElementNS("http://www.w3.org/2000/svg","path");t.id="id-"+a();let e=new P(t);return e.centerX=0,e.centerY=0,e.direction=-Math.PI/2,e.width=6.5,e.height=6.5,e.tailsHeight=0,e.domNode.setAttribute("stroke","black"),e.domNode.setAttribute("stroke-width","1"),e.domNode.setAttribute("stroke-opacity","1"),e.domNode.setAttribute("stroke-linejoin",""),e.domNode.setAttribute("stroke-dasharray",""),e.domNode.setAttribute("stroke-linecap",""),e.domNode.setAttribute("fill","white"),e.domNode.setAttribute("fill-opacity","1"),e}constructor(t){N.add(this),this.domNode=t,t.dataset.centerX||E(this,N,"m",S).call(this),t.dataset.centerY||E(this,N,"m",_).call(this)}get id(){return this.domNode.id}get centerX(){var t;let e=Number.parseFloat(null!==(t=this.domNode.dataset.centerX)&&void 0!==t?t:"");return Number.isFinite(e)?e:0}set centerX(t){Number.isFinite(t)?(this.domNode.dataset.centerX=`${t}`,E(this,N,"m",O).call(this)):console.error(`The specified center X coordinate is nonfinite: ${t}.`)}get centerY(){var t;let e=Number.parseFloat(null!==(t=this.domNode.dataset.centerY)&&void 0!==t?t:"");return Number.isFinite(e)?e:0}set centerY(t){Number.isFinite(t)?(this.domNode.dataset.centerY=`${t}`,E(this,N,"m",O).call(this)):console.error(`The specified center Y coordinate is nonfinite: ${t}.`)}drag(t,e){this.centerX+=t,this.centerY+=e}get direction(){var t;let e=Number.parseFloat(null!==(t=this.domNode.dataset.direction)&&void 0!==t?t:"");return Number.isFinite(e)?e:0}set direction(t){Number.isFinite(t)?(this.domNode.dataset.direction=`${t}`,E(this,N,"m",O).call(this)):console.error(`The specified direction angle is nonfinite: ${t}.`)}get width(){var t;let e=Number.parseFloat(null!==(t=this.domNode.dataset.width)&&void 0!==t?t:"");return Number.isFinite(e)?e:0}set width(t){Number.isFinite(t)?(this.domNode.dataset.width=`${t}`,E(this,N,"m",O).call(this)):console.error(`The specified width is nonfinite: ${t}.`)}get height(){var t;let e=Number.parseFloat(null!==(t=this.domNode.dataset.height)&&void 0!==t?t:"");return Number.isFinite(e)?e:0}set height(t){Number.isFinite(t)?(this.domNode.dataset.height=`${t}`,E(this,N,"m",O).call(this)):console.error(`The specified height is nonfinite: ${t}.`)}get tailsHeight(){var t;let e=Number.parseFloat(null!==(t=this.domNode.dataset.tailsHeight)&&void 0!==t?t:"");return Number.isFinite(e)?e:0}set tailsHeight(t){Number.isFinite(t)?(this.domNode.dataset.tailsHeight=`${t}`,E(this,N,"m",O).call(this)):console.error(`The specified tails height is nonfinite: ${t}.`)}get bbox(){return u.Box.matching(this.domNode.getBBox())}serialized(){if(!this.id)throw new Error("Triangle ID is falsy.");return{id:this.id}}static recreate(t,e){if(!(0,c.isNonNullObject)(t))throw new Error(`Saved triangle is not an object: ${t}.`);if(!t.id)throw new Error("Saved triangle ID is falsy.");if(!(0,c.isString)(t.id))throw new Error(`Saved triangle ID is not a string: ${t.id}.`);let r=e.domNode.querySelector("#"+t.id);if(!r)throw new Error("Unable to find saved triangle DOM node in parent drawing by ID.");if(!(r instanceof SVGPathElement))throw new Error(`DOM node found for saved triangle is not an SVG path element: ${r}.`);let n=new P(r);return(0,c.isFiniteNumber)(t.width)&&(n.width=t.width),(0,c.isFiniteNumber)(t.height)&&(n.height=t.height),(0,c.isFiniteNumber)(t.tailsHeight)&&(n.tailsHeight=t.tailsHeight),n}}N=new WeakSet,S=function(){let t=u.Box.matching(this.domNode.getBBox());this.domNode.dataset.centerX=`${t.centerX}`},_=function(){let t=u.Box.matching(this.domNode.getBBox());this.domNode.dataset.centerY=`${t.centerY}`},O=function(){let t=new x;t.centerX=this.centerX,t.centerY=this.centerY,t.direction=this.direction,t.width=this.width,t.height=this.height,t.tailsHeight=this.tailsHeight,this.domNode.setAttribute("d",t.toString())};var M,A=r(153),T=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class j extends A.StrungElement{static on(t){let e=l.create();return new j(e,t)}constructor(t,e){super(t,e),this.owner=e,M.set(this,void 0),function(t,e,r){if("function"==typeof e||!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");e.set(t,r)}(this,M,t)}get textContent(){return this.domNode.textContent}save(){return{text:T(this,M,"f").serialized(),ownerID:this.owner.id}}static recreate(t,e){if(!(0,c.isNonNullObject)(t))throw new Error(`Saved strung text isn't an object: ${t}.`);let r=l.recreate(t.text,e);if(!(0,c.isString)(t.ownerID))throw new Error(`Saved strung text owner ID isn't a string: ${t.ownerID}.`);if(!t.ownerID)throw new Error("Saved strung text owner ID is an empty string.");let n=e.bonds.find(e=>e.id==t.ownerID);if(!n)throw new Error(`Saved strung text owner wasn't found in the parent drawing: ${t}.`);return new j(r,n)}}M=new WeakMap;var C,D=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class I extends A.StrungElement{static on(t){let e=f.create();return new I(e,t)}constructor(t,e){super(t,e),this.owner=e,C.set(this,void 0),function(t,e,r){if("function"==typeof e||!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");e.set(t,r)}(this,C,t)}save(){return{circle:D(this,C,"f").serialized(),ownerID:this.owner.id}}static recreate(t,e){if(!(0,c.isNonNullObject)(t))throw new Error(`Saved strung circle isn't an object: ${t}.`);let r=f.recreate(t.circle,e);if(!(0,c.isString)(t.ownerID))throw new Error(`Saved strung circle owner ID isn't a string: ${t.ownerID}.`);if(!t.ownerID)throw new Error("Saved strung circle owner ID is an empty string.");let n=e.bonds.find(e=>e.id===t.ownerID);if(!n)throw new Error(`Saved strung circle owner wasn't found in the parent drawing: ${t}.`);return new I(r,n)}}C=new WeakMap;var k,F=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class L extends A.StrungElement{static on(t){let e=v.create();return new L(e,t)}constructor(t,e){super(t,e),this.owner=e,k.set(this,void 0),function(t,e,r){if("function"==typeof e||!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");e.set(t,r)}(this,k,t)}get width(){return F(this,k,"f").width}set width(t){F(this,k,"f").width=t}get height(){return F(this,k,"f").height}set height(t){F(this,k,"f").height=t}get cornerRadius(){return F(this,k,"f").cornerRadius}set cornerRadius(t){F(this,k,"f").cornerRadius=t}save(){return{rectangle:F(this,k,"f").serialized(),ownerID:this.owner.id}}static recreate(t,e){if(!(0,c.isNonNullObject)(t))throw new Error(`Saved strung rectangle isn't an object: ${t}.`);let r=v.recreate(t.rectangle,e);if(!(0,c.isString)(t.ownerID))throw new Error(`Saved strung rectangle owner ID isn't a string: ${t.ownerID}.`);if(!t.ownerID)throw new Error("Saved strung rectangle owner ID is an empty string.");let n=e.bonds.find(e=>e.id===t.ownerID);if(!n)throw new Error(`Saved strung rectangle owner wasn't found in the parent drawing: ${t}.`);return(0,c.isFiniteNumber)(t.rotation)&&(r.domNode.dataset.rotation=`${t.rotation}`),new L(r,n)}}k=new WeakMap;var B,V=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class R extends A.StrungElement{static on(t){let e=P.create();return new R(e,t)}constructor(t,e){super(t,e),this.owner=e,B.set(this,void 0),function(t,e,r){if("function"==typeof e||!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");e.set(t,r)}(this,B,t)}get width(){return V(this,B,"f").width}set width(t){V(this,B,"f").width=t}get height(){return V(this,B,"f").height}set height(t){V(this,B,"f").height=t}get tailsHeight(){return V(this,B,"f").tailsHeight}set tailsHeight(t){V(this,B,"f").tailsHeight=t}save(){return{triangle:V(this,B,"f").serialized(),ownerID:this.owner.id}}static recreate(t,e){if(!(0,c.isNonNullObject)(t))throw new Error(`Saved strung triangle isn't an object: ${t}.`);let r=P.recreate(t.triangle,e);if(!(0,c.isString)(t.ownerID))throw new Error(`Saved strung triangle owner ID isn't a string: ${t.ownerID}.`);if(!t.ownerID)throw new Error("Saved strung triangle owner ID is an empty string.");let n=e.bonds.find(e=>e.id===t.ownerID);if(!n)throw new Error(`Saved strung triangle owner wasn't found in the parent drawing: ${t}.`);return(0,c.isFiniteNumber)(t.rotation)&&(r.domNode.dataset.rotation=`${t.rotation}`),new R(r,n)}}B=new WeakMap;const z={recreate:(t,e)=>{if(!(0,c.isNonNullObject)(t))throw new Error(`Saved strung element isn't an object: ${t}.`);if("text"in t)return j.recreate(t,e);if("circle"in t)return I.recreate(t,e);if("rectangle"in t)return L.recreate(t,e);if("triangle"in t)return R.recreate(t,e);throw new Error(`Saved strung element doesn't have a recognized element type: ${t}.`)}}})(),n})(),t.exports=e()},726(t){var e;e=()=>(()=>{var t={725(t){t.exports=(()=>{var t={986:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){var e=0;return t.forEach(function(t){return e+=t}),e}function n(t){return r(t)/t.length}function i(t){t.sort(function(t,e){return t-e})}t.r(e),t.d(e,{areWithin:()=>f,average:()=>n,degrees:()=>p,isBetweenExclusive:()=>l,isBetweenInclusive:()=>c,max:()=>h,mean:()=>n,median:()=>a,min:()=>u,radians:()=>y,sortNumbers:()=>i,sortNumbersAscending:()=>i,sortNumbersDescending:()=>d,sortedNumbers:()=>o,sortedNumbersAscending:()=>o,sortedNumbersDescending:()=>m,sum:()=>r});var s=function(t,e,r){if(r||2===arguments.length)for(var n,i=0,s=e.length;i<s;i++)!n&&i in e||(n||(n=Array.prototype.slice.call(e,0,i)),n[i]=e[i]);return t.concat(n||Array.prototype.slice.call(e))};function o(t){var e=s([],t,!0);return i(e),e}function a(t){if(0==t.length)return NaN;var e=o(t);if(e.length%2!=0)return e[Math.floor(e.length/2)];var r=e.length/2,i=r-1;return n([e[r],e[i]])}function u(t){if(0==t.length)return 1/0;var e=t[0];return t.slice(1).forEach(function(t){e=Math.min(e,t)}),e}function h(t){if(0==t.length)return-1/0;var e=t[0];return t.slice(1).forEach(function(t){e=Math.max(e,t)}),e}function c(t,e,r){return t>=e&&t<=r}function l(t,e,r){return t>e&&t<r}function f(t,e,r){return Math.abs(t-e)<=r}function d(t){i(t),t.reverse()}function m(t){var e=o(t);return e.reverse(),e}function p(t){return t*(180/Math.PI)}function y(t){return t*(Math.PI/180)}return e})()},854:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){return"number"==typeof t}function n(t){return r(t)&&Number.isFinite(t)}function i(t){return r(t)&&!Number.isFinite(t)}function s(t){return n(t)&&t>0}function o(t){return n(t)&&t>=0}function a(t){return"string"==typeof t}function u(t){return null==t}function h(t){return"object"==typeof t&&null!==t}function c(t){return Array.isArray(t)}return t.r(e),t.d(e,{isArray:()=>c,isFiniteNumber:()=>n,isNonFiniteNumber:()=>i,isNonNegativeFiniteNumber:()=>o,isNonNullObject:()=>h,isNullish:()=>u,isNumber:()=>r,isPositiveFiniteNumber:()=>s,isString:()=>a}),e})()},30:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){return Math.pow(Math.pow(t.x,2)+Math.pow(t.y,2),.5)}function n(t){return Math.atan2(t.y,t.x)}return t.r(e),t.d(e,{direction:()=>n,magnitude:()=>r}),e})()}},e={};function r(n){var i=e[n];if(void 0!==i)return i.exports;var s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,r),s.exports}r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var n={};return(()=>{"use strict";r.r(n),r.d(n,{areWithin:()=>a,centroid:()=>d,deepCopy:()=>s,direction:()=>l,displaced:()=>h,displacement:()=>u,distance:()=>o,isFinitePoint:()=>i,isPoint:()=>e,midpoint:()=>m});var t=r(854);function e(e){return(0,t.isNonNullObject)(e)&&(0,t.isNumber)(e.x)&&(0,t.isNumber)(e.y)}function i(r){return e(r)&&(0,t.isFiniteNumber)(r.x)&&(0,t.isFiniteNumber)(r.y)}function s(t){return{x:t.x,y:t.y}}function o(t,e){var r=e.x-t.x,n=e.y-t.y;return Math.pow(Math.pow(r,2)+Math.pow(n,2),.5)}function a(t,e,r){return o(t,e)<=r}function u(t,e){return{x:e.x-t.x,y:e.y-t.y}}function h(t,e){return{x:t.x+e.x,y:t.y+e.y}}var c=r(30);function l(t,e){return(0,c.direction)(u(t,e))}var f=r(986);function d(t){return{x:(0,f.mean)(t.map(function(t){return t.x})),y:(0,f.mean)(t.map(function(t){return t.y}))}}function m(t,e){return d([t,e])}})(),n})()},854(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){return"number"==typeof t}function n(t){return r(t)&&Number.isFinite(t)}function i(t){return r(t)&&!Number.isFinite(t)}function s(t){return n(t)&&t>0}function o(t){return n(t)&&t>=0}function a(t){return"string"==typeof t}function u(t){return""===t}function h(t){return a(t)&&!u(t)}function c(t){return!!a(t)&&0==t.trim().length}function l(t){if(!a(t))return!1;try{return JSON.parse(t),!0}catch{return!1}}function f(t){try{return JSON.stringify(t),!0}catch{return!1}}function d(t){return!!t}function m(t){return!t}function p(t){return null==t}function y(t){return"object"==typeof t&&null!==t}function g(t){return Array.isArray(t)}function b(t){return g(t)&&0==t.length}function w(t){return g(t)&&t.length>0}function v(t){return g(t)&&t.every(r)}function x(t){return v(t)&&t.length>0}function N(t){return g(t)&&t.every(n)}function S(t){return g(t)&&t.every(i)}function _(t){return g(t)&&t.every(a)}function O(t){return _(t)&&t.length>0}function E(t){return t instanceof SVGGraphicsElement}return t.r(e),t.d(e,{isArray:()=>g,isEmptyArray:()=>b,isEmptyString:()=>u,isFalsy:()=>m,isFiniteNumber:()=>n,isFiniteNumbersArray:()=>N,isJSON:()=>l,isJSONSerializable:()=>f,isNonEmptyArray:()=>w,isNonEmptyNumbersArray:()=>x,isNonEmptyString:()=>h,isNonEmptyStringsArray:()=>O,isNonFiniteNumber:()=>i,isNonFiniteNumbersArray:()=>S,isNonNegativeFiniteNumber:()=>o,isNonNullObject:()=>y,isNullish:()=>p,isNumber:()=>r,isNumbersArray:()=>v,isPositiveFiniteNumber:()=>s,isSVGGraphicsElement:()=>E,isString:()=>a,isStringsArray:()=>_,isTruthy:()=>d,isWhitespace:()=>c}),e})()}};const e={};function r(n){const i=e[n];if(void 0!==i)return i.exports;const s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,r),s.exports}r.d=(t,e)=>{if(Array.isArray(e))for(var n=0;n<e.length;){var i=e[n++],s=e[n++];r.o(t,i)?0===s&&n++:0===s?Object.defineProperty(t,i,{enumerable:!0,value:e[n++]}):Object.defineProperty(t,i,{enumerable:!0,get:s})}else for(var i in e)r.o(e,i)&&!r.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};let n={};return(()=>{"use strict";r.r(n),r.d(n,{AbstractPath:()=>s,CoordinateSystem:()=>y,HorizontalClientScaling:()=>b,InnerXML:()=>_,OuterXML:()=>P,Path:()=>i,Scaling:()=>g,VerticalClientScaling:()=>w,assignUUID:()=>p,bringToFront:()=>v,drawOnCanvas:()=>j,isSVGGraphicsElement:()=>M,isSVGGraphicsElementsArray:()=>T,sendToBack:()=>x,setAttributes:()=>h});var t,e=r(725);class i{constructor(t){this.domNode=t}closestPoint(t){let r=this.domNode.getTotalLength(),n=[];for(let i=0;i<=16;i++){let s=i/16*r;n.push([s,(0,e.distance)(t,this.domNode.getPointAtLength(s))])}n.sort((t,e)=>t[1]-e[1]);let i=n[0],s=i[0]-r/16,o=i[0]+r/16;s=Math.max(0,s),o=Math.min(r,o);for(let r=0;r<20;r++){let r=(o-s)/3;(0,e.distance)(t,this.domNode.getPointAtLength(s))<(0,e.distance)(t,this.domNode.getPointAtLength(o))?o-=r:s+=r}let a=(s+o)/2,u=this.domNode.getPointAtLength(a);return{x:u.x,y:u.y,length:a}}}class s{constructor(e){t.set(this,void 0),function(t,e,r){if("function"==typeof e||!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");e.set(t,r)}(this,t,e)}closestPoint(e){return document.body.contains(a)||document.body.append(a),u.setAttribute("d",function(t,e){if("function"==typeof e||!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return e.get(t)}(this,t)),new i(u).closestPoint(e)}}t=new WeakMap;const o=document.createElementNS("http://www.w3.org/2000/svg","svg");o.setAttribute("viewBox","0 0 100 100"),o.setAttribute("width","100"),o.setAttribute("height","100");const a=document.createElement("div");a.append(o),a.style.height="0px",a.style.position="fixed",document.body.append(a);const u=document.createElementNS("http://www.w3.org/2000/svg","path");function h(t,e){for(let[r,n]of Object.entries(e))t.setAttribute(r,n)}u.setAttribute("stroke","black"),u.setAttribute("stroke-width","1"),o.append(u);const c={randomUUID:"undefined"!=typeof crypto&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};let l;const f=new Uint8Array(16),d=[];for(let t=0;t<256;++t)d.push((t+256).toString(16).slice(1));const m=function(t,e,r){return!c.randomUUID||e||t?function(t,e,r){const n=(t=t||{}).random??t.rng?.()??function(){if(!l){if("undefined"==typeof crypto||!crypto.getRandomValues)throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");l=crypto.getRandomValues.bind(crypto)}return l(f)}();if(n.length<16)throw new Error("Random bytes length must be >= 16");if(n[6]=15&n[6]|64,n[8]=63&n[8]|128,e){if((r=r||0)<0||r+16>e.length)throw new RangeError(`UUID byte range ${r}:${r+15} is out of buffer bounds`);for(let t=0;t<16;++t)e[r+t]=n[t];return e}return function(t,e=0){return(d[t[e+0]]+d[t[e+1]]+d[t[e+2]]+d[t[e+3]]+"-"+d[t[e+4]]+d[t[e+5]]+"-"+d[t[e+6]]+d[t[e+7]]+"-"+d[t[e+8]]+d[t[e+9]]+"-"+d[t[e+10]]+d[t[e+11]]+d[t[e+12]]+d[t[e+13]]+d[t[e+14]]+d[t[e+15]]).toLowerCase()}(n)}(t,e,r):c.randomUUID()};function p(t){t.id="uuid-"+m()}class y{constructor(t){this.targetSVGDoc=t}get width(){return this.targetSVGDoc.viewBox.baseVal.width}get height(){return this.targetSVGDoc.viewBox.baseVal.height}get minX(){return this.targetSVGDoc.viewBox.baseVal.x}get maxX(){return this.minX+this.width}get minY(){return this.targetSVGDoc.viewBox.baseVal.y}get maxY(){return this.minY+this.height}get horizontalScaling(){return this.targetSVGDoc.width.baseVal.value/this.width}get verticalScaling(){return this.targetSVGDoc.height.baseVal.value/this.height}setScaling(t){this.targetSVGDoc.setAttribute("width",""+t*this.width),this.targetSVGDoc.setAttribute("height",""+t*this.height)}get clientWidth(){return this.targetSVGDoc.getBoundingClientRect().width}get clientHeight(){return this.targetSVGDoc.getBoundingClientRect().height}get horizontalClientScaling(){return this.clientWidth/this.width}get verticalClientScaling(){return this.clientHeight/this.height}get minClientX(){return this.targetSVGDoc.getBoundingClientRect().x}get minClientY(){return this.targetSVGDoc.getBoundingClientRect().y}fromClientX(t){return this.minX+(t-this.minClientX)/this.horizontalClientScaling}fromClientY(t){return this.minY+(t-this.minClientY)/this.verticalClientScaling}fromClientCoordinates(t,e){return[this.fromClientX(t),this.fromClientY(e)]}fromClientPoint(t){return{x:this.fromClientX(t.x),y:this.fromClientY(t.y)}}toClientX(t){return this.minClientX+this.horizontalClientScaling*(t-this.minX)}toClientY(t){return this.minClientY+this.verticalClientScaling*(t-this.minY)}toClientCoordinates(t,e){return[this.toClientX(t),this.toClientY(e)]}toClientPoint(t){return{x:this.toClientX(t.x),y:this.toClientY(t.y)}}}class g{constructor(t){this.targetSVGDoc=t}set(t){let e=this.targetSVGDoc.viewBox.baseVal;this.targetSVGDoc.setAttribute("width",t*e.width+"px"),this.targetSVGDoc.setAttribute("height",t*e.height+"px")}}class b{constructor(t){this.targetSVGDoc=t}get(){let t=this.targetSVGDoc.getBoundingClientRect(),e=this.targetSVGDoc.viewBox.baseVal;return t.width/e.width}}class w{constructor(t){this.targetSVGDoc=t}get(){let t=this.targetSVGDoc.getBoundingClientRect(),e=this.targetSVGDoc.viewBox.baseVal;return t.height/e.height}}function v(t){let e=t.parentNode;e&&e.appendChild(t)}function x(t){let e=t.parentNode;e&&e.prepend(t)}var N,S=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class _{constructor(t){N.set(this,void 0),function(t,e,r){if("function"==typeof e||!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");e.set(t,r)}(this,N,t)}toString(){return S(this,N,"f").innerHTML}set(t){S(this,N,"f").innerHTML=t}}N=new WeakMap;var O,E=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class P{constructor(t){O.set(this,void 0),function(t,e,r){if("function"==typeof e||!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");e.set(t,r)}(this,O,t)}toString(){return E(this,O,"f").outerHTML}set(t){let e=document.createElementNS("http://www.w3.org/2000/svg","svg");if(e.style.height="0px",document.body.append(e),e.innerHTML=t,!e.firstElementChild)throw new Error("Outer XML must encode an SVG element.");if(e.childNodes.length>1)throw new Error("Outer XML cannot encode multiple DOM nodes.");if(e.firstElementChild.tagName.toLowerCase()!=E(this,O,"f").tagName.toLowerCase())throw new Error("Outer XML must specify an SVG element with the same tag name as the target SVG element.");[...E(this,O,"f").attributes].forEach(t=>E(this,O,"f").removeAttribute(t.name)),[...e.firstElementChild.attributes].forEach(t=>E(this,O,"f").setAttribute(t.name,t.value)),E(this,O,"f").innerHTML=e.firstElementChild.innerHTML,e.remove()}}function M(t){return t instanceof SVGGraphicsElement}O=new WeakMap;var A=r(854);function T(t){return(0,A.isArray)(t)&&t.every(M)}async function j(t){let e=document.createElement("canvas");e.style.position="fixed",e.style.display="none",e.style.pointerEvents="none",document.body.append(e),e.width=t.width.baseVal.value,e.height=t.height.baseVal.value;let r=e.getContext("2d");if(!r)throw new Error("Unable to get canvas context.");let n=(new XMLSerializer).serializeToString(t),i=new Image;return i.src="data:image/svg+xml;charset=utf-8,"+encodeURIComponent(n),await i.decode(),r.drawImage(i,0,0,t.width.baseVal.value,t.height.baseVal.value),e.remove(),e.style.position="",e.style.display="",e.style.pointerEvents="",e}})(),n})(),t.exports=e()},534(t){var e;e=()=>(()=>{var t={30:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){return Math.pow(Math.pow(t.x,2)+Math.pow(t.y,2),.5)}function n(t){return Math.atan2(t.y,t.x)}return t.r(e),t.d(e,{direction:()=>n,magnitude:()=>r}),e})()},127:function(t){var e;e=()=>(()=>{var t={369:function(t){var e;e=()=>(()=>{var t={854:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){return"number"==typeof t}function n(t){return r(t)&&Number.isFinite(t)}function i(t){return r(t)&&!Number.isFinite(t)}function s(t){return n(t)&&t>0}function o(t){return n(t)&&t>=0}function a(t){return"string"==typeof t}function u(t){return null==t}function h(t){return"object"==typeof t&&null!==t}function c(t){return Array.isArray(t)}function l(t){return c(t)&&0==t.length}function f(t){return c(t)&&t.length>0}function d(t){return c(t)&&t.every(r)}function m(t){return d(t)&&t.length>0}function p(t){return c(t)&&t.every(n)}function y(t){return c(t)&&t.every(i)}function g(t){return c(t)&&t.every(a)}function b(t){return g(t)&&t.length>0}return t.r(e),t.d(e,{isArray:()=>c,isEmptyArray:()=>l,isFiniteNumber:()=>n,isFiniteNumbersArray:()=>p,isNonEmptyArray:()=>f,isNonEmptyNumbersArray:()=>m,isNonEmptyStringsArray:()=>b,isNonFiniteNumber:()=>i,isNonFiniteNumbersArray:()=>y,isNonNegativeFiniteNumber:()=>o,isNonNullObject:()=>h,isNullish:()=>u,isNumber:()=>r,isNumbersArray:()=>d,isPositiveFiniteNumber:()=>s,isString:()=>a,isStringsArray:()=>g}),e})()},986:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){var e=0;return t.forEach(function(t){return e+=t}),e}function n(t){return r(t)/t.length}function i(t){t.sort(function(t,e){return t-e})}t.r(e),t.d(e,{areWithin:()=>d,average:()=>n,clamp:()=>f,degrees:()=>y,flipAway:()=>w,isBetween:()=>c,isBetweenExclusive:()=>l,isBetweenInclusive:()=>c,max:()=>h,mean:()=>n,median:()=>a,min:()=>u,normalizeAngle:()=>b,radians:()=>g,sortNumbers:()=>i,sortNumbersAscending:()=>i,sortNumbersDescending:()=>m,sortedNumbers:()=>o,sortedNumbersAscending:()=>o,sortedNumbersDescending:()=>p,sum:()=>r});var s=function(t,e,r){if(r||2===arguments.length)for(var n,i=0,s=e.length;i<s;i++)!n&&i in e||(n||(n=Array.prototype.slice.call(e,0,i)),n[i]=e[i]);return t.concat(n||Array.prototype.slice.call(e))};function o(t){var e=s([],t,!0);return i(e),e}function a(t){if(0==t.length)return NaN;var e=o(t);if(e.length%2!=0)return e[Math.floor(e.length/2)];var r=e.length/2,i=r-1;return n([e[r],e[i]])}function u(t){if(0==t.length)return 1/0;var e=t[0];return t.slice(1).forEach(function(t){e=Math.min(e,t)}),e}function h(t){if(0==t.length)return-1/0;var e=t[0];return t.slice(1).forEach(function(t){e=Math.max(e,t)}),e}function c(t,e,r){return t>=e&&t<=r}function l(t,e,r){return t>e&&t<r}function f(t,e,r){return t<e?e:t>r?r:t}function d(t,e,r){return Math.abs(t-e)<=r}function m(t){i(t),t.reverse()}function p(t){var e=o(t);return e.reverse(),e}function y(t){return t*(180/Math.PI)}function g(t){return t*(Math.PI/180)}function b(t,e){void 0===e&&(e=-Math.PI);var r=t-e;return e+((r%=2*Math.PI)>=0?r:r+2*Math.PI)}function w(t,e){var r=(e=b(e,t))-t;return(r<Math.PI/2||r>3*Math.PI/2)&&(t+=Math.PI),t}return e})()}},e={};function r(n){var i=e[n];if(void 0!==i)return i.exports;var s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,r),s.exports}r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var n={};return(()=>{"use strict";r.r(n),r.d(n,{Linkers:()=>y,Stems:()=>p,areConflicting:()=>h,areCrossing:()=>f,areEqual:()=>a,areKnotless:()=>l,areStacked:()=>u,basePairs:()=>w,deepCopy:()=>i,knotless:()=>d,mountainPlotTraversal:()=>g,parseDotBracket:()=>b,radializable:()=>m,sorted:()=>o});var t=r(854),e=function(t,e,r){if(r||2===arguments.length)for(var n,i=0,s=e.length;i<s;i++)!n&&i in e||(n||(n=Array.prototype.slice.call(e,0,i)),n[i]=e[i]);return t.concat(n||Array.prototype.slice.call(e))};function i(r){return(0,t.isNumbersArray)(r)?e([],r,!0):r.map(function(t){return e([],t,!0)})}var s=r(986);function o(t){var e=i(t);return e.forEach(s.sortNumbers),e.sort(function(t,e){return t[0]-e[0]}),e}function a(t,e){var r=i(t),n=i(e);return(0,s.sortNumbers)(r),(0,s.sortNumbers)(n),[0,1].every(function(t){return r[t]==n[t]})}function u(t,e){var r=o([t,e]);return r[0][0]==r[1][0]-1&&r[0][1]==r[1][1]+1}function h(t,e){return(0,s.min)(t)==(0,s.min)(e)&&(0,s.max)(t)!=(0,s.max)(e)||(0,s.min)(t)!=(0,s.min)(e)&&(0,s.max)(t)==(0,s.max)(e)}function c(t){if(0==t.length)return[];for(var e=[],r=0;r<(0,s.max)(t.flat());r++)e.push(void 0);return t.forEach(function(t){e[t[0]-1]=t[1],e[t[1]-1]=t[0]}),e}function l(t){var e=c(t),r=[],n=!1;return e.forEach(function(t,e){var i=e+1;null==t||(i<t?r.push(i):i==t||r.pop()!=t&&(n=!0))}),!n}function f(t,e){return!l([t,e])}function d(t){var e=[],r=i(t);r.sort(function(t,e){return Math.abs(t[0]-t[1])-Math.abs(e[0]-e[1])});var n=[];return r.forEach(function(t){var r=[t[0]-1,t[1]-1],i=(0,s.min)(r),o=(0,s.max)(r);if(!n[i]&&!n[o]){e.push(t);for(var a=i;a<=o;a++)n[a]=!0}}),e}function m(t){var e=i(t);e.sort(function(t,e){var r=t[0],n=t[1],i=e[0],s=e[1];return Math.abs(r-n)-Math.abs(i-s)});var r=[],n=[];return e.forEach(function(t){var e=t[0],i=t[1];e==i||null!=n[e-1]||null!=n[i-1]||(r.push([e,i]),n[e-1]=i,n[i-1]=e)}),d(r)}var p=function(){function t(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];this.targetStructure=t}return t.prototype.get=function(){var t=this.targetStructure[1];if(0==t.length)return[];var e=o(t),r=[],n=[];return e.forEach(function(t){var e=0==n.length?null:n[n.length-1];!e||u(e,t)?n.push(t):(r.push(n),n=[t])}),r.push(n),r},t}(),y=function(){function t(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];this.targetStructure=t}return t.prototype.get=function(){var t=(new(p.bind.apply(p,function(t,e,r){if(r||2===arguments.length)for(var n,i=0,s=e.length;i<s;i++)!n&&i in e||(n||(n=Array.prototype.slice.call(e,0,i)),n[i]=e[i]);return t.concat(n||Array.prototype.slice.call(e))}([void 0],this.targetStructure,!1)))).get().flatMap(function(t){return[t.map(s.min),t.map(s.max)]});t.forEach(s.sortNumbers),t.sort(function(t,e){return(0,s.min)(t)-(0,s.min)(e)});for(var e=[],r=t.shift(),n=t.shift();r&&n;){for(var i=[],o=(0,s.max)(r),a=(0,s.min)(n),u=o;u<=a;u++)i.push(u);e.push(i),r=n,n=t.shift()}return e},t}();function g(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];var r=t[0],n=t[1],i=c(n);if(!l(n))throw new Error("Pseudoknot(s) encountered.");var s=[],o=0;return r.forEach(function(t,e){var r=e+1,n=i[e];null==n?s.push(o):r<n?(s.push(o),o++):(r==n||o--,s.push(o))}),s}function b(t){var e=t.split(""),r=[".","(",")"];e.forEach(function(t){if(!r.includes(t))throw new Error('Unrecognized character in dot-bracket notation: "'.concat(t,'".'))});var n=[],i=[];if(e.forEach(function(t,e){var r=e+1;if("("==t)i.push(r);else if(")"==t){var s=i.pop();if("number"!=typeof s)throw new Error("Unmatched downstream partner(s) in dot-bracket notation.");n.push([s,r])}}),i.length>0)throw new Error("Unmatched upstream partner(s) in dot-bracket notation.");return o(n)}function w(t,e){return e.forEach(function(e){e.forEach(function(e){if(e<1)throw new Error("Sequence positions must be positive.");if(e>t.length)throw new Error("Position out of sequence range.")})}),e.map(function(e){return[t[e[0]-1],t[e[1]-1]]})}})(),n})(),t.exports=e()},986:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){var e=0;return t.forEach(function(t){return e+=t}),e}function n(t){return r(t)/t.length}function i(t){t.sort(function(t,e){return t-e})}t.r(e),t.d(e,{areWithin:()=>d,average:()=>n,clamp:()=>f,degrees:()=>y,flipAway:()=>w,isBetween:()=>c,isBetweenExclusive:()=>l,isBetweenInclusive:()=>c,max:()=>h,mean:()=>n,median:()=>a,min:()=>u,normalizeAngle:()=>b,radians:()=>g,sortNumbers:()=>i,sortNumbersAscending:()=>i,sortNumbersDescending:()=>m,sortedNumbers:()=>o,sortedNumbersAscending:()=>o,sortedNumbersDescending:()=>p,sum:()=>r});var s=function(t,e,r){if(r||2===arguments.length)for(var n,i=0,s=e.length;i<s;i++)!n&&i in e||(n||(n=Array.prototype.slice.call(e,0,i)),n[i]=e[i]);return t.concat(n||Array.prototype.slice.call(e))};function o(t){var e=s([],t,!0);return i(e),e}function a(t){if(0==t.length)return NaN;var e=o(t);if(e.length%2!=0)return e[Math.floor(e.length/2)];var r=e.length/2,i=r-1;return n([e[r],e[i]])}function u(t){if(0==t.length)return 1/0;var e=t[0];return t.slice(1).forEach(function(t){e=Math.min(e,t)}),e}function h(t){if(0==t.length)return-1/0;var e=t[0];return t.slice(1).forEach(function(t){e=Math.max(e,t)}),e}function c(t,e,r){return t>=e&&t<=r}function l(t,e,r){return t>e&&t<r}function f(t,e,r){return t<e?e:t>r?r:t}function d(t,e,r){return Math.abs(t-e)<=r}function m(t){i(t),t.reverse()}function p(t){var e=o(t);return e.reverse(),e}function y(t){return t*(180/Math.PI)}function g(t){return t*(Math.PI/180)}function b(t,e){void 0===e&&(e=-Math.PI);var r=t-e;return e+((r%=2*Math.PI)>=0?r:r+2*Math.PI)}function w(t,e){var r=(e=b(e,t))-t;return(r<Math.PI/2||r>3*Math.PI/2)&&(t+=Math.PI),t}return e})()}},e={};function r(n){var i=e[n];if(void 0!==i)return i.exports;var s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,r),s.exports}r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var n={};return(()=>{"use strict";function t(t,e){return t[0]===e[0]&&t[1]===e[1]||t[0]===e[1]&&t[1]===e[0]}function e(t,e){if(!e.includes(t))throw new Error("The given base is not present in the provided base-pair.");return t===e[0]?e[1]:e[0]}r.r(n),r.d(n,{FirstPairedBase:()=>s,LastPairedBase:()=>a,LeadingDanglingBases:()=>u,Linkers:()=>f,PositionPairs:()=>i,Stems:()=>l,TrailingDanglingBases:()=>h,antiParallelPairs:()=>b,areEqual:()=>t,consecutivePairs:()=>y,knotless:()=>d,missing:()=>w,other:()=>e,parallelPairs:()=>g,parseDotBracket:()=>p,radializable:()=>m});class i{constructor(...t){this.targetStructure=t}get(){let t=this.targetStructure[0];return this.targetStructure[1].map(e=>[t.indexOf(e[0])+1,t.indexOf(e[1])+1])}}class s{constructor(...t){this.targetStructure=t}get(){let t=this.targetStructure[0],e=this.targetStructure[1];if(0==e.length)throw new Error("There are no paired bases.");let r=e.flat(),n=t.findIndex(t=>r.includes(t));if(n<0)throw new Error("No paired bases present in sequence.");return t[n]}}var o=r(986);class a{constructor(...t){this.targetStructure=t}get(){let t=this.targetStructure[0],e=this.targetStructure[1];if(0==e.length)throw new Error("There are no paired bases.");let r=e.flat().map(e=>t.indexOf(e));if((0,o.max)(r)<0)throw new Error("No paired bases present in sequence.");return t[(0,o.max)(r)]}}class u{constructor(...t){this.targetStructure=t}get(){let t=this.targetStructure[0];if(0==this.targetStructure[1].length)throw new Error("There are no paired bases.");let e=new s(...this.targetStructure).get(),r=t.indexOf(e);if(r<0)throw new Error("No paired bases present in sequence.");return t.slice(0,r)}}class h{constructor(...t){this.targetStructure=t}get(){let t=this.targetStructure[0];if(0==this.targetStructure[1].length)throw new Error("There are no paired bases.");let e=new a(...this.targetStructure).get(),r=t.indexOf(e);if(r<0)throw new Error("No paired bases present in sequence.");return t.slice(r+1)}}var c=r(369);class l{constructor(...t){this.targetStructure=t}get(){let t=this.targetStructure[0],e=new i(...this.targetStructure).get();return new c.Stems(t,e).get().map(e=>e.map(e=>[t[e[0]-1],t[e[1]-1]]))}}class f{constructor(...t){this.targetStructure=t}get(){let t=this.targetStructure[0],e=new i(...this.targetStructure).get();return new c.Linkers(t,e).get().map(e=>e.map(e=>t[e-1]))}}function d(...t){let[e,r]=t,n=new i(...t).get();(0,c.areKnotless)(n)||(n=(0,c.knotless)(n));let s=n.map(t=>[e[t[0]-1],e[t[1]-1]]);return[[...e],s]}function m(...t){let[e,r]=t,n=new i(...t).get();return[[...e],(0,c.radializable)(n).map(([t,r])=>[e[t-1],e[r-1]])]}function p(t,e){if(e.length>t.length)throw new Error("Dot-bracket notation is longer than the sequence.");return[...(0,c.parseDotBracket)(e)].map(e=>{let r=e[0],n=e[1];return[t[r-1],t[n-1]]})}function y(t){return t.length<2?[]:t.slice(0,-1).map((e,r)=>[t[r],t[r+1]])}function g(t){let e=[],r=Math.floor(t.length/2)-1,n=Math.ceil(t.length/2);for(let i=0;i<=r;i++){let r=t[i],s=t[n+i];e.push([r,s])}return e}function b(t){let e=[];for(let r=0;r<Math.floor(t.length/2);r++){let n=t[r],i=t[t.length-r-1];e.push([n,i])}return e}function w(e,r){return r.filter(r=>!e.find(e=>t(r,e))).map(t=>[...t])}})(),n})(),t.exports=e()},173:function(t){var e;e=()=>(()=>{var t={422:function(t){t.exports=(()=>{var t={138:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){var e=0;return t.forEach(function(t){return e+=t}),e}function n(t){return r(t)/t.length}return t.r(e),t.d(e,{average:()=>n,mean:()=>n,sum:()=>r}),e})()}},e={};function r(n){var i=e[n];if(void 0!==i)return i.exports;var s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,r),s.exports}r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var n={};return(()=>{"use strict";function t(t,e){var r=e.x-t.x,n=e.y-t.y;return Math.pow(Math.pow(r,2)+Math.pow(n,2),.5)}function e(t,e){return{x:e.x-t.x,y:e.y-t.y}}r.r(n),r.d(n,{centroid:()=>s,displacement:()=>e,distance:()=>t,midpoint:()=>o});var i=r(138);function s(t){return{x:(0,i.mean)(t.map(function(t){return t.x})),y:(0,i.mean)(t.map(function(t){return t.y}))}}function o(t,e){return s([t,e])}})(),n})()},872:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){return Math.atan2(t.y,t.x)}return t.r(e),t.d(e,{direction:()=>r}),e})()}},e={};function r(n){var i=e[n];if(void 0!==i)return i.exports;var s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,r),s.exports}r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var n={};return(()=>{"use strict";r.r(n),r.d(n,{CircularSegment:()=>a,Semicircle:()=>e});var t=r(422),e=function(){function e(t){this.chord=t}return Object.defineProperty(e.prototype,"chordLength",{get:function(){return(0,t.distance)(this.chord[0],this.chord[1])},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"arcLength",{get:function(){return Math.PI*this.chordLength/2},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"arcAngle",{get:function(){return Math.PI},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"parentCircleRadius",{get:function(){return this.chordLength/2},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"parentCircleDiameter",{get:function(){return 2*this.parentCircleRadius},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"parentCircleCircumference",{get:function(){return 2*Math.PI*this.parentCircleRadius},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"parentCircleCenterPoint",{get:function(){return(0,t.midpoint)(this.chord[0],this.chord[1])},enumerable:!1,configurable:!0}),e}(),i=r(872),s=function(){function e(e,r){this.chord=e,this.moreProps=r;var n=r.arcLength,i=(0,t.distance)(e[0],e[1]);if(n<=i)throw new Error("Arc length is too small.");if(n>=Math.PI*i/2)throw new Error("Arc length is too big.");for(var s=Math.PI/2,o=0;o<20;o++)s-=(n/i*Math.sin(s)-s)/(n/i*Math.cos(s)-1);this.arcAngle=2*s}return Object.defineProperty(e.prototype,"chordLength",{get:function(){return(0,t.distance)(this.chord[0],this.chord[1])},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"arcLength",{get:function(){return this.moreProps.arcLength},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"parentCircleRadius",{get:function(){return this.arcLength/this.arcAngle},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"parentCircleDiameter",{get:function(){return 2*this.parentCircleRadius},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"parentCircleCircumference",{get:function(){return 2*Math.PI*this.parentCircleRadius},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"parentCircleCenterPoint",{get:function(){var e=(0,i.direction)((0,t.displacement)(this.chord[0],this.chord[1]));e+=(Math.PI-this.arcAngle)/2;var r=this.parentCircleRadius;return{x:this.chord[0].x+r*Math.cos(e),y:this.chord[0].y+r*Math.sin(e)}},enumerable:!1,configurable:!0}),e}(),o=function(){function e(e,r){this.chord=e,this.moreProps=r;var n=r.arcLength,i=(0,t.distance)(e[0],e[1]);if(0==i)throw new Error("Chord length cannot be zero.");if(n<=Math.PI*i/2)throw new Error("Arc length is too small.");for(var s=Math.PI,o=0;o<20;o++)s-=(n/i*Math.sin(Math.PI-s)-s)/(-n/i*Math.cos(Math.PI-s)-1);this.arcAngle=2*s}return Object.defineProperty(e.prototype,"chordLength",{get:function(){return(0,t.distance)(this.chord[0],this.chord[1])},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"arcLength",{get:function(){return this.moreProps.arcLength},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"parentCircleRadius",{get:function(){return this.arcLength/this.arcAngle},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"parentCircleDiameter",{get:function(){return 2*this.parentCircleRadius},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"parentCircleCircumference",{get:function(){return 2*Math.PI*this.parentCircleRadius},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"parentCircleCenterPoint",{get:function(){var e=(0,i.direction)((0,t.displacement)(this.chord[0],this.chord[1]));e-=(this.arcAngle-Math.PI)/2;var r=this.parentCircleRadius;return{x:this.chord[0].x+r*Math.cos(e),y:this.chord[0].y+r*Math.sin(e)}},enumerable:!1,configurable:!0}),e}(),a=function(){function r(r,n){this.chord=r,this.moreProps=n;var i=n.arcLength,a=(0,t.distance)(r[0],r[1]);if(a>0&&i<=a)throw new Error("Arc length is too small.");var u=a<.001&&i<.001,h=Math.PI*a/2,c=Math.abs(i-h)<.001;this.wrappedCircularSegment=u||c?new e(r):i<h?new s(r,{arcLength:i}):new o(r,{arcLength:i})}return Object.defineProperty(r.prototype,"chordLength",{get:function(){return this.wrappedCircularSegment.chordLength},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"arcLength",{get:function(){return this.moreProps.arcLength},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"arcAngle",{get:function(){return this.wrappedCircularSegment.arcAngle},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"parentCircleRadius",{get:function(){return this.wrappedCircularSegment.parentCircleRadius},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"parentCircleDiameter",{get:function(){return this.wrappedCircularSegment.parentCircleDiameter},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"parentCircleCircumference",{get:function(){return this.wrappedCircularSegment.parentCircleCircumference},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"parentCircleCenterPoint",{get:function(){return this.wrappedCircularSegment.parentCircleCenterPoint},enumerable:!1,configurable:!0}),r}()})(),n})(),t.exports=e()},369:function(t){var e;e=()=>(()=>{var t={854:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){return"number"==typeof t}function n(t){return r(t)&&Number.isFinite(t)}function i(t){return r(t)&&!Number.isFinite(t)}function s(t){return n(t)&&t>0}function o(t){return n(t)&&t>=0}function a(t){return"string"==typeof t}function u(t){return null==t}function h(t){return"object"==typeof t&&null!==t}function c(t){return Array.isArray(t)}function l(t){return c(t)&&0==t.length}function f(t){return c(t)&&t.length>0}function d(t){return c(t)&&t.every(r)}function m(t){return d(t)&&t.length>0}function p(t){return c(t)&&t.every(n)}function y(t){return c(t)&&t.every(i)}function g(t){return c(t)&&t.every(a)}function b(t){return g(t)&&t.length>0}return t.r(e),t.d(e,{isArray:()=>c,isEmptyArray:()=>l,isFiniteNumber:()=>n,isFiniteNumbersArray:()=>p,isNonEmptyArray:()=>f,isNonEmptyNumbersArray:()=>m,isNonEmptyStringsArray:()=>b,isNonFiniteNumber:()=>i,isNonFiniteNumbersArray:()=>y,isNonNegativeFiniteNumber:()=>o,isNonNullObject:()=>h,isNullish:()=>u,isNumber:()=>r,isNumbersArray:()=>d,isPositiveFiniteNumber:()=>s,isString:()=>a,isStringsArray:()=>g}),e})()},986:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){var e=0;return t.forEach(function(t){return e+=t}),e}function n(t){return r(t)/t.length}function i(t){t.sort(function(t,e){return t-e})}t.r(e),t.d(e,{areWithin:()=>d,average:()=>n,clamp:()=>f,degrees:()=>y,flipAway:()=>w,isBetween:()=>c,isBetweenExclusive:()=>l,isBetweenInclusive:()=>c,max:()=>h,mean:()=>n,median:()=>a,min:()=>u,normalizeAngle:()=>b,radians:()=>g,sortNumbers:()=>i,sortNumbersAscending:()=>i,sortNumbersDescending:()=>m,sortedNumbers:()=>o,sortedNumbersAscending:()=>o,sortedNumbersDescending:()=>p,sum:()=>r});var s=function(t,e,r){if(r||2===arguments.length)for(var n,i=0,s=e.length;i<s;i++)!n&&i in e||(n||(n=Array.prototype.slice.call(e,0,i)),n[i]=e[i]);return t.concat(n||Array.prototype.slice.call(e))};function o(t){var e=s([],t,!0);return i(e),e}function a(t){if(0==t.length)return NaN;var e=o(t);if(e.length%2!=0)return e[Math.floor(e.length/2)];var r=e.length/2,i=r-1;return n([e[r],e[i]])}function u(t){if(0==t.length)return 1/0;var e=t[0];return t.slice(1).forEach(function(t){e=Math.min(e,t)}),e}function h(t){if(0==t.length)return-1/0;var e=t[0];return t.slice(1).forEach(function(t){e=Math.max(e,t)}),e}function c(t,e,r){return t>=e&&t<=r}function l(t,e,r){return t>e&&t<r}function f(t,e,r){return t<e?e:t>r?r:t}function d(t,e,r){return Math.abs(t-e)<=r}function m(t){i(t),t.reverse()}function p(t){var e=o(t);return e.reverse(),e}function y(t){return t*(180/Math.PI)}function g(t){return t*(Math.PI/180)}function b(t,e){void 0===e&&(e=-Math.PI);var r=t-e;return e+((r%=2*Math.PI)>=0?r:r+2*Math.PI)}function w(t,e){var r=(e=b(e,t))-t;return(r<Math.PI/2||r>3*Math.PI/2)&&(t+=Math.PI),t}return e})()}},e={};function r(n){var i=e[n];if(void 0!==i)return i.exports;var s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,r),s.exports}r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var n={};return(()=>{"use strict";r.r(n),r.d(n,{Linkers:()=>y,Stems:()=>p,areConflicting:()=>h,areCrossing:()=>f,areEqual:()=>a,areKnotless:()=>l,areStacked:()=>u,basePairs:()=>w,deepCopy:()=>i,knotless:()=>d,mountainPlotTraversal:()=>g,parseDotBracket:()=>b,radializable:()=>m,sorted:()=>o});var t=r(854),e=function(t,e,r){if(r||2===arguments.length)for(var n,i=0,s=e.length;i<s;i++)!n&&i in e||(n||(n=Array.prototype.slice.call(e,0,i)),n[i]=e[i]);return t.concat(n||Array.prototype.slice.call(e))};function i(r){return(0,t.isNumbersArray)(r)?e([],r,!0):r.map(function(t){return e([],t,!0)})}var s=r(986);function o(t){var e=i(t);return e.forEach(s.sortNumbers),e.sort(function(t,e){return t[0]-e[0]}),e}function a(t,e){var r=i(t),n=i(e);return(0,s.sortNumbers)(r),(0,s.sortNumbers)(n),[0,1].every(function(t){return r[t]==n[t]})}function u(t,e){var r=o([t,e]);return r[0][0]==r[1][0]-1&&r[0][1]==r[1][1]+1}function h(t,e){return(0,s.min)(t)==(0,s.min)(e)&&(0,s.max)(t)!=(0,s.max)(e)||(0,s.min)(t)!=(0,s.min)(e)&&(0,s.max)(t)==(0,s.max)(e)}function c(t){if(0==t.length)return[];for(var e=[],r=0;r<(0,s.max)(t.flat());r++)e.push(void 0);return t.forEach(function(t){e[t[0]-1]=t[1],e[t[1]-1]=t[0]}),e}function l(t){var e=c(t),r=[],n=!1;return e.forEach(function(t,e){var i=e+1;null==t||(i<t?r.push(i):i==t||r.pop()!=t&&(n=!0))}),!n}function f(t,e){return!l([t,e])}function d(t){var e=[],r=i(t);r.sort(function(t,e){return Math.abs(t[0]-t[1])-Math.abs(e[0]-e[1])});var n=[];return r.forEach(function(t){var r=[t[0]-1,t[1]-1],i=(0,s.min)(r),o=(0,s.max)(r);if(!n[i]&&!n[o]){e.push(t);for(var a=i;a<=o;a++)n[a]=!0}}),e}function m(t){var e=i(t);e.sort(function(t,e){var r=t[0],n=t[1],i=e[0],s=e[1];return Math.abs(r-n)-Math.abs(i-s)});var r=[],n=[];return e.forEach(function(t){var e=t[0],i=t[1];e==i||null!=n[e-1]||null!=n[i-1]||(r.push([e,i]),n[e-1]=i,n[i-1]=e)}),d(r)}var p=function(){function t(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];this.targetStructure=t}return t.prototype.get=function(){var t=this.targetStructure[1];if(0==t.length)return[];var e=o(t),r=[],n=[];return e.forEach(function(t){var e=0==n.length?null:n[n.length-1];!e||u(e,t)?n.push(t):(r.push(n),n=[t])}),r.push(n),r},t}(),y=function(){function t(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];this.targetStructure=t}return t.prototype.get=function(){var t=(new(p.bind.apply(p,function(t,e,r){if(r||2===arguments.length)for(var n,i=0,s=e.length;i<s;i++)!n&&i in e||(n||(n=Array.prototype.slice.call(e,0,i)),n[i]=e[i]);return t.concat(n||Array.prototype.slice.call(e))}([void 0],this.targetStructure,!1)))).get().flatMap(function(t){return[t.map(s.min),t.map(s.max)]});t.forEach(s.sortNumbers),t.sort(function(t,e){return(0,s.min)(t)-(0,s.min)(e)});for(var e=[],r=t.shift(),n=t.shift();r&&n;){for(var i=[],o=(0,s.max)(r),a=(0,s.min)(n),u=o;u<=a;u++)i.push(u);e.push(i),r=n,n=t.shift()}return e},t}();function g(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];var r=t[0],n=t[1],i=c(n);if(!l(n))throw new Error("Pseudoknot(s) encountered.");var s=[],o=0;return r.forEach(function(t,e){var r=e+1,n=i[e];null==n?s.push(o):r<n?(s.push(o),o++):(r==n||o--,s.push(o))}),s}function b(t){var e=t.split(""),r=[".","(",")"];e.forEach(function(t){if(!r.includes(t))throw new Error('Unrecognized character in dot-bracket notation: "'.concat(t,'".'))});var n=[],i=[];if(e.forEach(function(t,e){var r=e+1;if("("==t)i.push(r);else if(")"==t){var s=i.pop();if("number"!=typeof s)throw new Error("Unmatched downstream partner(s) in dot-bracket notation.");n.push([s,r])}}),i.length>0)throw new Error("Unmatched upstream partner(s) in dot-bracket notation.");return o(n)}function w(t,e){return e.forEach(function(e){e.forEach(function(e){if(e<1)throw new Error("Sequence positions must be positive.");if(e>t.length)throw new Error("Position out of sequence range.")})}),e.map(function(e){return[t[e[0]-1],t[e[1]-1]]})}})(),n})(),t.exports=e()},456:function(t){var e;e=()=>(()=>{var t={277:function(t){var e;e=()=>(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};t.r(e),t.d(e,{Vector:()=>r});class r{static matching(t){return new r(t.x,t.y)}constructor(t,e){this.x=t,this.y=e}[Symbol.iterator](){return[this.x,this.y].values()}get magnitude(){return Math.sqrt(Math.pow(this.x,2)+Math.pow(this.y,2))}get direction(){return Math.atan2(this.y,this.x)}}return e})(),t.exports=e()}},e={};function r(n){var i=e[n];if(void 0!==i)return i.exports;var s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,r),s.exports}r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var n={};return(()=>{"use strict";r.r(n),r.d(n,{Point:()=>e,RelativePoint:()=>c});var t=r(277);class e{static matching(t){return new e(t.x,t.y)}constructor(t,e){this.x=t,this.y=e}[Symbol.iterator](){return[this.x,this.y].values()}displacementTo(e){return new t.Vector(e.x-this.x,e.y-this.y)}displacementFrom(e){return new t.Vector(this.x-e.x,this.y-e.y)}distanceTo(t){return this.displacementTo(t).magnitude}distanceFrom(t){return this.distanceTo(t)}directionTo(t){return this.displacementTo(t).direction}directionFrom(t){return this.displacementFrom(t).direction}}var i,s,o,a,u,h=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class c{constructor(e){i.add(this),s.set(this,void 0),o.set(this,new t.Vector(0,0)),a.set(this,{move:[]}),function(t,e,r){if("function"==typeof e||!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");e.set(t,r)}(this,s,e),e.addEventListener("move",()=>h(this,i,"m",u).call(this,"move"))}get x(){return h(this,s,"f").x+h(this,o,"f").x}set x(t){h(this,o,"f").x=t-h(this,s,"f").x,h(this,i,"m",u).call(this,"move")}get y(){return h(this,s,"f").y+h(this,o,"f").y}set y(t){h(this,o,"f").y=t-h(this,s,"f").y,h(this,i,"m",u).call(this,"move")}addEventListener(t,e){h(this,a,"f")[t].push(e)}removeEventListener(t,e){h(this,a,"f")[t]=h(this,a,"f")[t].filter(t=>t!==e)}}s=new WeakMap,o=new WeakMap,a=new WeakMap,i=new WeakSet,u=function(t){h(this,a,"f")[t].forEach(t=>t())}})(),n})(),t.exports=e()},725:function(t){t.exports=(()=>{var t={986:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){var e=0;return t.forEach(function(t){return e+=t}),e}function n(t){return r(t)/t.length}function i(t){t.sort(function(t,e){return t-e})}t.r(e),t.d(e,{areWithin:()=>f,average:()=>n,degrees:()=>p,isBetweenExclusive:()=>l,isBetweenInclusive:()=>c,max:()=>h,mean:()=>n,median:()=>a,min:()=>u,radians:()=>y,sortNumbers:()=>i,sortNumbersAscending:()=>i,sortNumbersDescending:()=>d,sortedNumbers:()=>o,sortedNumbersAscending:()=>o,sortedNumbersDescending:()=>m,sum:()=>r});var s=function(t,e,r){if(r||2===arguments.length)for(var n,i=0,s=e.length;i<s;i++)!n&&i in e||(n||(n=Array.prototype.slice.call(e,0,i)),n[i]=e[i]);return t.concat(n||Array.prototype.slice.call(e))};function o(t){var e=s([],t,!0);return i(e),e}function a(t){if(0==t.length)return NaN;var e=o(t);if(e.length%2!=0)return e[Math.floor(e.length/2)];var r=e.length/2,i=r-1;return n([e[r],e[i]])}function u(t){if(0==t.length)return 1/0;var e=t[0];return t.slice(1).forEach(function(t){e=Math.min(e,t)}),e}function h(t){if(0==t.length)return-1/0;var e=t[0];return t.slice(1).forEach(function(t){e=Math.max(e,t)}),e}function c(t,e,r){return t>=e&&t<=r}function l(t,e,r){return t>e&&t<r}function f(t,e,r){return Math.abs(t-e)<=r}function d(t){i(t),t.reverse()}function m(t){var e=o(t);return e.reverse(),e}function p(t){return t*(180/Math.PI)}function y(t){return t*(Math.PI/180)}return e})()},854:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){return"number"==typeof t}function n(t){return r(t)&&Number.isFinite(t)}function i(t){return r(t)&&!Number.isFinite(t)}function s(t){return n(t)&&t>0}function o(t){return n(t)&&t>=0}function a(t){return"string"==typeof t}function u(t){return null==t}function h(t){return"object"==typeof t&&null!==t}function c(t){return Array.isArray(t)}return t.r(e),t.d(e,{isArray:()=>c,isFiniteNumber:()=>n,isNonFiniteNumber:()=>i,isNonNegativeFiniteNumber:()=>o,isNonNullObject:()=>h,isNullish:()=>u,isNumber:()=>r,isPositiveFiniteNumber:()=>s,isString:()=>a}),e})()},30:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){return Math.pow(Math.pow(t.x,2)+Math.pow(t.y,2),.5)}function n(t){return Math.atan2(t.y,t.x)}return t.r(e),t.d(e,{direction:()=>n,magnitude:()=>r}),e})()}},e={};function r(n){var i=e[n];if(void 0!==i)return i.exports;var s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,r),s.exports}r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var n={};return(()=>{"use strict";r.r(n),r.d(n,{areWithin:()=>a,centroid:()=>d,deepCopy:()=>s,direction:()=>l,displaced:()=>h,displacement:()=>u,distance:()=>o,isFinitePoint:()=>i,isPoint:()=>e,midpoint:()=>m});var t=r(854);function e(e){return(0,t.isNonNullObject)(e)&&(0,t.isNumber)(e.x)&&(0,t.isNumber)(e.y)}function i(r){return e(r)&&(0,t.isFiniteNumber)(r.x)&&(0,t.isFiniteNumber)(r.y)}function s(t){return{x:t.x,y:t.y}}function o(t,e){var r=e.x-t.x,n=e.y-t.y;return Math.pow(Math.pow(r,2)+Math.pow(n,2),.5)}function a(t,e,r){return o(t,e)<=r}function u(t,e){return{x:e.x-t.x,y:e.y-t.y}}function h(t,e){return{x:t.x+e.x,y:t.y+e.y}}var c=r(30);function l(t,e){return(0,c.direction)(u(t,e))}var f=r(986);function d(t){return{x:(0,f.mean)(t.map(function(t){return t.x})),y:(0,f.mean)(t.map(function(t){return t.y}))}}function m(t,e){return d([t,e])}})(),n})()},986:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){var e=0;return t.forEach(function(t){return e+=t}),e}function n(t){return r(t)/t.length}function i(t){t.sort(function(t,e){return t-e})}t.r(e),t.d(e,{areWithin:()=>d,average:()=>n,clamp:()=>f,degrees:()=>g,flipAway:()=>v,isBetween:()=>c,isBetweenExclusive:()=>l,isBetweenInclusive:()=>c,max:()=>h,mean:()=>n,median:()=>a,min:()=>u,normalizeAngle:()=>w,radians:()=>b,round:()=>y,sortNumbers:()=>i,sortNumbersAscending:()=>i,sortNumbersDescending:()=>m,sortedNumbers:()=>o,sortedNumbersAscending:()=>o,sortedNumbersDescending:()=>p,sum:()=>r});var s=function(t,e,r){if(r||2===arguments.length)for(var n,i=0,s=e.length;i<s;i++)!n&&i in e||(n||(n=Array.prototype.slice.call(e,0,i)),n[i]=e[i]);return t.concat(n||Array.prototype.slice.call(e))};function o(t){var e=s([],t,!0);return i(e),e}function a(t){if(0==t.length)return NaN;var e=o(t);if(e.length%2!=0)return e[Math.floor(e.length/2)];var r=e.length/2,i=r-1;return n([e[r],e[i]])}function u(t){if(0==t.length)return 1/0;var e=t[0];return t.slice(1).forEach(function(t){e=Math.min(e,t)}),e}function h(t){if(0==t.length)return-1/0;var e=t[0];return t.slice(1).forEach(function(t){e=Math.max(e,t)}),e}function c(t,e,r){return t>=e&&t<=r}function l(t,e,r){return t>e&&t<r}function f(t,e,r){return t<e?e:t>r?r:t}function d(t,e,r){return Math.abs(t-e)<=r}function m(t){i(t),t.reverse()}function p(t){var e=o(t);return e.reverse(),e}function y(t,e){return Number.parseFloat(t.toFixed(null!=e?e:0))}function g(t){return t*(180/Math.PI)}function b(t){return t*(Math.PI/180)}function w(t,e){void 0===e&&(e=-Math.PI);var r=t-e;return e+((r%=2*Math.PI)>=0?r:r+2*Math.PI)}function v(t,e){var r=(e=w(e,t))-t;return(r<Math.PI/2||r>3*Math.PI/2)&&(t+=Math.PI),t}return e})()}},e={};function r(n){var i=e[n];if(void 0!==i)return i.exports;var s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,r),s.exports}r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var n={};return(()=>{"use strict";r.r(n),r.d(n,{Centroid:()=>s,Direction:()=>d,MaxCenterX:()=>u,MaxCenterY:()=>c,MinCenterX:()=>a,MinCenterY:()=>h,NucleobaseMock:()=>t,arrange:()=>M,circularize:()=>_,flipSelfX:()=>y,flipSelfY:()=>g,flipX:()=>m,flipY:()=>p,linearize:()=>x,outwardNormal:()=>v,rotate:()=>f,round:()=>E,shift:()=>e,stemmify:()=>S,straighten:()=>N,tangent:()=>b,untangle:()=>L});class t{constructor(t){this.props=t}getCenterPoint(){return this.props.centerPoint}setCenterPoint(t){this.props.centerPoint=t}}function e(t,e){t.forEach(t=>{let r=t.getCenterPoint();t.setCenterPoint({x:r.x+e.x,y:r.y+e.y})})}var i=r(725);class s{constructor(t){this.targetBases=t}get(){let t=this.targetBases.map(t=>t.getCenterPoint());return(0,i.centroid)(t)}set(t){let r=this.get(),n=(0,i.displacement)(r,t);e(this.targetBases,n)}}var o=r(986);class a{constructor(t){this.targetBases=t}get(){return(0,o.min)(this.targetBases.map(t=>t.getCenterPoint().x))}set(t){let r=this.get();e(this.targetBases,{x:t-r,y:0})}}class u{constructor(t){this.targetBases=t}get(){return(0,o.max)(this.targetBases.map(t=>t.getCenterPoint().x))}set(t){let r=this.get();e(this.targetBases,{x:t-r,y:0})}}class h{constructor(t){this.targetBases=t}get(){return(0,o.min)(this.targetBases.map(t=>t.getCenterPoint().y))}set(t){let r=this.get();e(this.targetBases,{x:0,y:t-r})}}class c{constructor(t){this.targetBases=t}get(){return(0,o.max)(this.targetBases.map(t=>t.getCenterPoint().y))}set(t){let r=this.get();e(this.targetBases,{x:0,y:t-r})}}var l=r(30);function f(t,e){if(t.length<2)return;let r=t[0],n=t[t.length-1],s=(0,i.midpoint)(r.getCenterPoint(),n.getCenterPoint());t.forEach(t=>{let r=t.getCenterPoint(),n=(0,i.distance)(s,r),o=(0,l.direction)((0,i.displacement)(s,r));o+=e,t.setCenterPoint({x:s.x+n*Math.cos(o),y:s.y+n*Math.sin(o)})})}class d{constructor(t){this.targetBases=t}get(){if(this.targetBases.length<2)return 0;let t=this.targetBases[0],e=this.targetBases[this.targetBases.length-1];return(0,l.direction)((0,i.displacement)(t.getCenterPoint(),e.getCenterPoint()))}set(t){let e=t-this.get();f(this.targetBases,e)}}function m(t){let e=new s(t).get().y;t.forEach(t=>{let r=t.getCenterPoint(),n=r.y-e;t.setCenterPoint({x:r.x,y:e-n})})}function p(t){let e=new s(t).get().x;t.forEach(t=>{let r=t.getCenterPoint(),n=r.x-e;t.setCenterPoint({x:e-n,y:r.y})})}function y(t){if(0==t.length)return;let r=t[0],{x:n,y:s}=r.getCenterPoint(),o={x:n,y:s},a=new d(t).get();f(t,-a),m(t),f(t,a),e(t,(0,i.displacement)(r.getCenterPoint(),o))}function g(t){let e=new s(t),{x:r,y:n}=e.get(),i=r,o=n,a=new d(t).get();f(t,-a),p(t),f(t,a),e.set({x:i,y:o})}function b(t,e){let r=e.indexOf(t);if(-1==r)throw new Error("The target base is not present in the parent sequence.");let n=r-1,i=r+2;return n=Math.max(n,0),new d(e.slice(n,i)).get()}var w=r(127);function v(t,...e){var r;let n=e[0],s=null!==(r=e[1])&&void 0!==r?r:[],a=b(t,n)-Math.PI/2,u=n.indexOf(t);if(u<0)throw new Error("The target base is not present in the provided structure.");if(n.length>1&&u<n.length-1){let e=n[u+1];a=(0,o.flipAway)(a,(0,i.direction)(t.getCenterPoint(),e.getCenterPoint()))}let h=s.find(e=>e.includes(t));return h&&(a=(0,o.flipAway)(a,(0,i.direction)(t.getCenterPoint(),(0,w.other)(t,h).getCenterPoint()))),a}function x(t,e){let{spacing:r}=e;if(t.length<2)return;let n=new d(t),i=n.get(),o=new s(t),{x:a,y:u}=o.get(),h={x:a,y:u};t.forEach((t,e)=>{t.setCenterPoint({x:e*r,y:0})}),n.set(i),o.set(h)}function N(t){if(t.length<3)return;let e=t[0],r=t[t.length-1],n=[e.getCenterPoint(),r.getCenterPoint()],s=(0,i.distance)(n[0],n[1]),o=(0,l.direction)((0,i.displacement)(n[0],n[1])),a=s/(t.length-1),u=a*Math.cos(o),h=a*Math.sin(o),{x:c,y:f}=n[0];t.forEach(t=>{t.setCenterPoint({x:c,y:f}),c+=u,f+=h})}function S(t,r){let{basePairLength:n,basePairSpacing:o}=r;if(t.length<2)return;let a=Math.ceil(t.length/2),u=t.slice(0,a),h=t.slice(a),c=new s(t),{x:l,y:m}=c.get(),p={x:l,y:m},y=new d(t).get();x(u,{spacing:o}),x(h,{spacing:o}),new d(u).set(-Math.PI/2),new d(h).set(Math.PI/2);let g=t[0],b=t[t.length-1];e(u,(0,i.displacement)(g.getCenterPoint(),{x:0,y:0})),e(h,(0,i.displacement)(b.getCenterPoint(),{x:n,y:0})),f(t,y),c.set(p)}function _(t,e){let{spacing:r,terminiGap:n}=e;if(t.length<2)return;let i=new s(t),{x:o,y:a}=i.get(),u=o,h=a,c=new d(t).get(),l=r*(t.length-1);l+=n,Math.abs(l)<1e-5&&(l=1e-5);let m=l/(2*Math.PI),p=Math.PI/2+2*Math.PI*(.5*n/l);t.forEach((t,e)=>{let n=p+2*Math.PI*(e*r)/l;t.setCenterPoint({x:m*Math.cos(n),y:m*Math.sin(n)})}),f(t,c),i.set({x:u,y:h})}var O=r(173);function E(t,r){let{spacing:n}=r;if(t.length<3)return;let s=t[0],o=t[t.length-1],a=[s.getCenterPoint(),o.getCenterPoint()],u=(0,i.distance)(a[0],a[1]),h=n*(t.length-1);if(h-u<.001)return void N(t);if(u<.001){let{x:r,y:o}=s.getCenterPoint();return _(t,{spacing:n,terminiGap:u}),void e(t,(0,i.displacement)(s.getCenterPoint(),{x:r,y:o}))}let c=new O.CircularSegment(a,{arcLength:h}),f=c.parentCircleCenterPoint,d=c.parentCircleRadius,m=(0,l.direction)((0,i.displacement)(f,s.getCenterPoint())),p=c.arcAngle/(t.length-1);t.forEach(t=>{t.setCenterPoint({x:f.x+d*Math.cos(m),y:f.y+d*Math.sin(m)}),m+=p})}var P=r(369);function M(t,r,n){var a,u,h;let{spacing:c}=n,l=null!==(a=n.basePairSpacing)&&void 0!==a?a:c,f=null!==(u=n.hairpinLoopSpacing)&&void 0!==u?u:c,m=null!==(h=n.terminiGap)&&void 0!==h?h:c,{x:p,y}=new s(t).get(),g={x:p,y},b=new d(t).get();[,r]=(0,w.radializable)(t,r);let v=new w.PositionPairs(t,r).get(),x=(0,P.mountainPlotTraversal)(t,v),N=t.filter((t,e)=>0==x[e]);_(N,{spacing:c,terminiGap:m});let O=new w.Stems(t,r).get(),M=new Set(N),A=O.filter(t=>M.has(t[0][0])),T=r=>{let n=r[0],{x:a,y:u}=new s(n).get(),h={x:a,y:u},m=new d(r[0]).get(),p=[...r.map(t=>t[0]),...r.map(t=>t[1]).reverse()];S(p,{basePairLength:c,basePairSpacing:l}),new d(p).set(m),e(p,(0,i.displacement)(new s(n).get(),h));let y=r[r.length-1],g=y.map(e=>t.indexOf(e)),b=t.filter((t,e)=>(0,o.isBetweenExclusive)(e,(0,o.min)(g),(0,o.max)(g))&&x[e]==x[(0,o.min)(g)]+1),w=new Set(b),v=O.filter(t=>w.has(t[0][0]));E([y[0],...b,y[1]],{spacing:v.length>0?c:f}),v.forEach(t=>T(t))};A.forEach(t=>T(t)),new d(t).set(b),new s(t).set(g)}var A,T,j,C,D,I=r(456),k=function(t,e,r,n,i){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!i:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===n?i.call(t,r):i?i.value=r:e.set(t,r),r},F=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};function L(e,r,n){var i;let a,{spacing:u}=n,h=null!==(i=n.hairpinLoopSpacing)&&void 0!==i?i:u;if(0==e.length)return;if(0==r.length)return void function(t,e){let{spacing:r}=e,n=I.Point.matching(new s(t).get());_(t,{spacing:r,terminiGap:2*r}),new d(t).set(Math.PI/2),new s(t).set(n)}(e,n);[a,r]=(0,w.radializable)(e,r);let c=[...e],l=I.Point.matching(new s(c).get());e=[...e,new t({centerPoint:{x:0,y:0}})];let m=new V(e,r),p=m.loops;p.sort((t,e)=>z(t,m)-z(e,m));let y=p[0],g=(0,o.max)(y.linkers.map(t=>t.length)),b=y.linkers.flatMap(e=>[X(e),...Array.from({length:g-2}).map(()=>new t({centerPoint:{x:0,y:0}})),G(e)]);if(_(b,{spacing:u,terminiGap:u}),f(b,-new d(b).get()),new s(b).set(l),y.linkers.forEach(t=>E(t,{spacing:u})),y.emanatingStems.forEach(t=>B(t.bottomBasePair,m,n)),"outerStem"in y){let t=[y.outerStem.topBasePair[1],y.outerStem.topBasePair[0]],i=[...e.slice(m.indexOf(t[0])),...e.slice(0,m.indexOf(t[1])+1)],s=new Set(i);B(t,new V(i,r.filter(t=>t.every(t=>s.has(t)))),n)}"isHairpinLoop"in y&&y.isHairpinLoop()&&E(y.bases,{spacing:h})}function B(r,n,s){var a,u;let{spacing:h}=s,c=null!==(a=s.basePairSpacing)&&void 0!==a?a:h,l=null!==(u=s.hairpinLoopSpacing)&&void 0!==u?u:h,f=n.stems.find(t=>t.bottomBasePair[0]===r[0]);if(!f)throw new Error("Closing stem not found.");let d=I.Point.matching(r[0].getCenterPoint());S(f.bases,{basePairSpacing:c,basePairLength:h}),e(f.bases,(0,i.displacement)(r[0].getCenterPoint(),d));let m=n.loop(f.topBasePair);m.innerStems.length>0?function(r,n,s){let{spacing:a}=s,u=[n.indexOf(r[0]),n.indexOf(r[1])],h=n.loop(r).innerStems.flatMap(t=>t.bottomBasePair.map(t=>n.indexOf(t))),c=(0,o.min)(h),l=(0,o.max)(h),f=n.sequence.filter((t,e)=>e>=c&&e<=l&&n.mountainPlotTraversal[e]==n.mountainPlotTraversal[c]&&[e-1,e,e+1].some(t=>h.includes(t))),d=(0,o.max)([f.length-2,c-(0,o.min)(u)-1,(0,o.max)(u)-l-1]);d=(0,o.max)([d,0]);let m=Array.from({length:d}).map(()=>new t({centerPoint:{x:0,y:0}})),p=m.map(()=>new t({centerPoint:{x:0,y:0}})),y=I.Point.matching(r[0].getCenterPoint());_([r[0],...m,...f,...p,r[1]],{spacing:a,terminiGap:a}),e([...r,...f],(0,i.displacement)(r[0].getCenterPoint(),y)),E(n.sequence.slice(u[0],c+1),{spacing:a}),E(n.sequence.slice(l,u[1]+1),{spacing:a})}(f.topBasePair,n,s):E(m.bases,{spacing:l}),m.innerStems.forEach(t=>B(t.bottomBasePair,n,s)),(0,w.consecutivePairs)(m.innerStems).map(([t,e])=>[t.bottomBasePair[1],...n.interveningBases(t.bottomBasePair[1],e.bottomBasePair[0]),e.bottomBasePair[0]]).filter(t=>t.length>=5).forEach(t=>{let r=t.slice(1,-1),n=I.Point.matching(r[0].getCenterPoint()),s=(0,i.distance)(X(r).getCenterPoint(),G(r).getCenterPoint());S(r,{basePairLength:s,basePairSpacing:c}),E(r.length%2==0?function(t){if(t.length<4)throw new Error("The array has less than four items.");if(t.length%2!=0)throw new Error("The array has an odd number of items.");return t.slice(Math.floor(t.length/2)-2,Math.floor(t.length/2)+2)}(r):function(t){if(t.length<3)throw new Error("The array has less than three items.");if(t.length%2==0)throw new Error("The array has an even number of items.");let e=Math.floor(t.length/2);return t.slice(e-1,e+2)}(r),{spacing:r.length>=5?c:s}),e(r,(0,i.displacement)(r[0].getCenterPoint(),n))})}class V{constructor(t,e){this.sequence=t,this.basePairs=e,A.set(this,void 0),T.set(this,void 0),j.set(this,void 0),C.set(this,void 0),k(this,A,new Map,"f"),this.sequence.forEach((t,e)=>F(this,A,"f").set(t,e)),k(this,T,new Map,"f"),this.sequence.forEach((t,e)=>F(this,T,"f").set(t,e+1)),k(this,j,new Map,"f"),this.basePairs.forEach(t=>F(this,j,"f").set(t[0],t[1])),this.basePairs.forEach(t=>F(this,j,"f").set(t[1],t[0])),k(this,C,this.basePairs.map(t=>[this.positionOf(t[0]),this.positionOf(t[1])]),"f"),this.mountainPlotTraversal=(0,P.mountainPlotTraversal)(this.sequence,F(this,C,"f")),this.stems=new w.Stems(this.sequence,this.basePairs).get().map(t=>new R(t))}indexOf(t){let e=F(this,A,"f").get(t);if("number"!=typeof e)throw new Error("Base not found.");return e}positionOf(t){let e=F(this,T,"f").get(t);if("number"!=typeof e)throw new Error("Base not found.");return e}spannedBases(t){let e=this.indexOf(t[0]),r=this.indexOf(t[1]);return this.sequence.slice((0,o.min)([e,r])+1,(0,o.max)([e,r]))}numSpannedBases(t){return this.spannedBases(t).length}joinedBases(t){let e=this.indexOf(t[0]),r=this.indexOf(t[1]);return[...this.sequence.slice(0,(0,o.min)([e,r])+1),...this.sequence.slice((0,o.max)([e,r]))]}numJoinedBases(t){return this.joinedBases(t).length}interveningBases(t,e){let r=this.indexOf(t),n=this.indexOf(e);return this.sequence.slice((0,o.min)([r,n])+1,(0,o.max)([r,n]))}get loops(){return[this.outermostLoop,...this.stems.map(t=>this.loop(t.topBasePair))]}loop(t){let e=[this.indexOf(t[0]),this.indexOf(t[1])],r=this.mountainPlotTraversal[e[0]]+1,n=this.spannedBases(t).filter(t=>this.mountainPlotTraversal[this.indexOf(t)]==r),i=new Set(n),s=[t[0],...n,t[1]],o=this.stems.filter(t=>i.has(t.bottomBasePair[0])),a=o,u=this.stems.find(e=>t.includes(e.topBasePair[0]));if(!u)throw new Error("Outer stem not found.");let h=(0,w.consecutivePairs)(o).map(([t,e])=>[t.bottomBasePair[1],...this.interveningBases(t.bottomBasePair[1],e.bottomBasePair[0]),e.bottomBasePair[0]]);return o.length>0&&(h.unshift([t[0],...this.interveningBases(t[0],X(o).bottomBasePair[0]),X(o).bottomBasePair[0]]),h.push([G(o).bottomBasePair[1],...this.interveningBases(G(o).bottomBasePair[1],t[1]),t[1]])),{bases:s,closingBasePair:t,outerStem:u,innerStems:o,emanatingStems:a,linkers:h,isHairpinLoop:()=>0==a.length}}get outermostLoop(){let t=this.stems.filter(t=>0==this.mountainPlotTraversal[this.indexOf(t.bottomBasePair[0])]),e=t,r=(0,w.consecutivePairs)(e).map(([t,e])=>[t.bottomBasePair[1],...this.interveningBases(t.bottomBasePair[1],e.bottomBasePair[0]),e.bottomBasePair[0]]);return e.length>0&&r.push([...this.sequence.slice(this.indexOf(G(e).bottomBasePair[1])),...this.sequence.slice(0,this.indexOf(X(e).bottomBasePair[0])+1)]),{stems:e,emanatingStems:t,linkers:r}}}A=new WeakMap,T=new WeakMap,j=new WeakMap,C=new WeakMap;class R{constructor(t){if(D.set(this,void 0),0==t.length)throw new Error("A stem must have at least one base-pair.");k(this,D,t,"f")}get bottomBasePair(){return X(F(this,D,"f"))}get topBasePair(){return G(F(this,D,"f"))}get side5(){return F(this,D,"f").map(t=>t[0])}get side3(){let t=F(this,D,"f").map(t=>t[1]);return t.reverse(),t}get bases(){return[...this.side5,...this.side3]}}function z(t,e){let r=(0,o.max)(t.emanatingStems.map(t=>e.numSpannedBases(t.bottomBasePair)));return"closingBasePair"in t&&(r=(0,o.max)([r,e.numJoinedBases(t.closingBasePair)-2])),r}function X(t){if(0==t.length)throw new Error("The array is empty.");return t[0]}function G(t){if(0==t.length)throw new Error("The array is empty.");return t[t.length-1]}D=new WeakMap})(),n})(),t.exports=e()},986(t){t.exports=(()=>{"use strict";const t={d:(e,r)=>{if(Array.isArray(r))for(var n=0;n<r.length;){var i=r[n++],s=r[n++];t.o(e,i)?0===s&&n++:0===s?Object.defineProperty(e,i,{enumerable:!0,value:r[n++]}):Object.defineProperty(e,i,{enumerable:!0,get:s})}else for(var i in r)t.o(r,i)&&!t.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:r[i]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}};let e={};function r(t,e){return Math.abs(t-e)}function n(t){let e=0;return t.forEach(t=>e+=t),e}function i(t){return n(t)/t.length}function s(t){t.sort((t,e)=>t-e)}function o(t){let e=[...t];return s(e),e}function a(t){if(0==t.length)return NaN;let e=o(t);if(e.length%2!=0)return e[Math.floor(e.length/2)];let r=e.length/2,n=r-1;return i([e[r],e[n]])}function u(t){if(0==t.length)return 1/0;let e=t[0];return t.slice(1).forEach(t=>{e=Math.min(e,t)}),e}function h(t){if(0==t.length)return-1/0;let e=t[0];return t.slice(1).forEach(t=>{e=Math.max(e,t)}),e}function c(t,e,r){return t>=e&&t<=r}function l(t,e,r){return t>e&&t<r}function f(t,e,r){return t<e?e:t>r?r:t}function d(t,e,r){return Math.abs(t-e)<=r}function m(t){s(t),t.reverse()}function p(t){let e=o(t);return e.reverse(),e}function y(t,e){return Number.parseFloat(t.toFixed(null!=e?e:0))}function g(t){return t*(180/Math.PI)}function b(t){return t*(Math.PI/180)}function w(t,e=-Math.PI){let r=t-e;return r%=2*Math.PI,r=r>=0?r:r+2*Math.PI,e+r}function v(t,e){let r=(e=w(e,t))-t;return(r<Math.PI/2||r>3*Math.PI/2)&&(t+=Math.PI),t}return t.r(e),t.d(e,{areWithin:()=>d,average:()=>i,clamp:()=>f,degrees:()=>g,distance:()=>r,flipAway:()=>v,isBetween:()=>c,isBetweenExclusive:()=>l,isBetweenInclusive:()=>c,max:()=>h,mean:()=>i,median:()=>a,min:()=>u,normalizeAngle:()=>w,radians:()=>b,round:()=>y,sortNumbers:()=>s,sortNumbersAscending:()=>s,sortNumbersDescending:()=>m,sortedNumbers:()=>o,sortedNumbersAscending:()=>o,sortedNumbersDescending:()=>p,sum:()=>n}),e})()},369(t){var e;e=()=>(()=>{var t={986(t){t.exports=(()=>{"use strict";const t={d:(e,r)=>{if(Array.isArray(r))for(var n=0;n<r.length;){var i=r[n++],s=r[n++];t.o(e,i)?0===s&&n++:0===s?Object.defineProperty(e,i,{enumerable:!0,value:r[n++]}):Object.defineProperty(e,i,{enumerable:!0,get:s})}else for(var i in r)t.o(r,i)&&!t.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:r[i]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}};let e={};function r(t,e){return Math.abs(t-e)}function n(t){let e=0;return t.forEach(t=>e+=t),e}function i(t){return n(t)/t.length}function s(t){t.sort((t,e)=>t-e)}function o(t){let e=[...t];return s(e),e}function a(t){if(0==t.length)return NaN;let e=o(t);if(e.length%2!=0)return e[Math.floor(e.length/2)];let r=e.length/2,n=r-1;return i([e[r],e[n]])}function u(t){if(0==t.length)return 1/0;let e=t[0];return t.slice(1).forEach(t=>{e=Math.min(e,t)}),e}function h(t){if(0==t.length)return-1/0;let e=t[0];return t.slice(1).forEach(t=>{e=Math.max(e,t)}),e}function c(t,e,r){return t>=e&&t<=r}function l(t,e,r){return t>e&&t<r}function f(t,e,r){return t<e?e:t>r?r:t}function d(t,e,r){return Math.abs(t-e)<=r}function m(t){s(t),t.reverse()}function p(t){let e=o(t);return e.reverse(),e}function y(t,e){return Number.parseFloat(t.toFixed(null!=e?e:0))}function g(t){return t*(180/Math.PI)}function b(t){return t*(Math.PI/180)}function w(t,e=-Math.PI){let r=t-e;return r%=2*Math.PI,r=r>=0?r:r+2*Math.PI,e+r}function v(t,e){let r=(e=w(e,t))-t;return(r<Math.PI/2||r>3*Math.PI/2)&&(t+=Math.PI),t}return t.r(e),t.d(e,{areWithin:()=>d,average:()=>i,clamp:()=>f,degrees:()=>g,distance:()=>r,flipAway:()=>v,isBetween:()=>c,isBetweenExclusive:()=>l,isBetweenInclusive:()=>c,max:()=>h,mean:()=>i,median:()=>a,min:()=>u,normalizeAngle:()=>w,radians:()=>b,round:()=>y,sortNumbers:()=>s,sortNumbersAscending:()=>s,sortNumbersDescending:()=>m,sortedNumbers:()=>o,sortedNumbersAscending:()=>o,sortedNumbersDescending:()=>p,sum:()=>n}),e})()},106(t){var e;e=()=>(()=>{var t={992(t){var e;e=()=>(()=>{"use strict";const t={d:(e,r)=>{if(Array.isArray(r))for(var n=0;n<r.length;){var i=r[n++],s=r[n++];t.o(e,i)?0===s&&n++:0===s?Object.defineProperty(e,i,{enumerable:!0,value:r[n++]}):Object.defineProperty(e,i,{enumerable:!0,get:s})}else for(var i in r)t.o(r,i)&&!t.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:r[i]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}};let e={};t.r(e),t.d(e,{KeyBinding:()=>p});var r,n,i,s,o,a,u,h,c,l,f,d=function(t,e,r,n,i){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!i:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===n?i.call(t,r):i?i.value=r:e.set(t,r),r},m=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class p{constructor(t,e,a){r.add(this),this.key=t,n.set(this,void 0),i.set(this,void 0),s.set(this,void 0),o.set(this,void 0),d(this,n,e,"f"),d(this,i,t=>m(this,r,"m",l).call(this,t),"f"),d(this,s,a,"f")}get owner(){return m(this,o,"f")}set owner(t){var e;null===(e=m(this,o,"f"))||void 0===e||e.removeEventListener("keydown",m(this,i,"f")),null==t||t.addEventListener("keydown",m(this,i,"f"),{passive:!1}),d(this,o,t,"f")}}return n=new WeakMap,i=new WeakMap,s=new WeakMap,o=new WeakMap,r=new WeakSet,a=function(){var t,e;return null!==(e=null===(t=m(this,s,"f"))||void 0===t?void 0:t.altKey)&&void 0!==e&&e},u=function(){var t,e;return null!==(e=null===(t=m(this,s,"f"))||void 0===t?void 0:t.ctrlKey)&&void 0!==e&&e},h=function(){var t,e;return null!==(e=null===(t=m(this,s,"f"))||void 0===t?void 0:t.metaKey)&&void 0!==e&&e},c=function(){var t,e;return null!==(e=null===(t=m(this,s,"f"))||void 0===t?void 0:t.shiftKey)&&void 0!==e&&e},l=function(t){this.owner&&this.owner===document.activeElement&&`Key${this.key}`.toUpperCase()===t.code.toUpperCase()&&t.altKey===m(this,r,"a",a)&&t.ctrlKey===m(this,r,"a",u)&&t.metaKey===m(this,r,"a",h)&&t.shiftKey===m(this,r,"a",c)&&m(this,r,"m",f).call(this,t)},f=function(t){t.preventDefault(),m(this,n,"f").call(this)},e})(),t.exports=e()},854(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){return"number"==typeof t}function n(t){return r(t)&&Number.isFinite(t)}function i(t){return r(t)&&!Number.isFinite(t)}function s(t){return n(t)&&t>0}function o(t){return n(t)&&t>=0}function a(t){return"string"==typeof t}function u(t){return""===t}function h(t){return a(t)&&!u(t)}function c(t){return!!a(t)&&0==t.trim().length}function l(t){if(!a(t))return!1;try{return JSON.parse(t),!0}catch{return!1}}function f(t){try{return JSON.stringify(t),!0}catch{return!1}}function d(t){return!!t}function m(t){return!t}function p(t){return null==t}function y(t){return"object"==typeof t&&null!==t}function g(t){return Array.isArray(t)}function b(t){return g(t)&&0==t.length}function w(t){return g(t)&&t.length>0}function v(t){return g(t)&&t.every(r)}function x(t){return v(t)&&t.length>0}function N(t){return g(t)&&t.every(n)}function S(t){return g(t)&&t.every(i)}function _(t){return g(t)&&t.every(a)}function O(t){return _(t)&&t.length>0}function E(t){return t instanceof SVGGraphicsElement}return t.r(e),t.d(e,{isArray:()=>g,isEmptyArray:()=>b,isEmptyString:()=>u,isFalsy:()=>m,isFiniteNumber:()=>n,isFiniteNumbersArray:()=>N,isJSON:()=>l,isJSONSerializable:()=>f,isNonEmptyArray:()=>w,isNonEmptyNumbersArray:()=>x,isNonEmptyString:()=>h,isNonEmptyStringsArray:()=>O,isNonFiniteNumber:()=>i,isNonFiniteNumbersArray:()=>S,isNonNegativeFiniteNumber:()=>o,isNonNullObject:()=>y,isNullish:()=>p,isNumber:()=>r,isNumbersArray:()=>v,isPositiveFiniteNumber:()=>s,isSVGGraphicsElement:()=>E,isString:()=>a,isStringsArray:()=>_,isTruthy:()=>d,isWhitespace:()=>c}),e})()}};const e={};function r(n){const i=e[n];if(void 0!==i)return i.exports;const s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,r),s.exports}r.d=(t,e)=>{if(Array.isArray(e))for(var n=0;n<e.length;){var i=e[n++],s=e[n++];r.o(t,i)?0===s&&n++:0===s?Object.defineProperty(t,i,{enumerable:!0,value:e[n++]}):Object.defineProperty(t,i,{enumerable:!0,get:s})}else for(var i in e)r.o(e,i)&&!r.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};let n={};return(()=>{"use strict";function t(t){if(t.length>0)return t[0];throw new Error("Array is empty.")}function e(t){if(t.length>0)return t[t.length-1];throw new Error("Array is empty.")}function i(t){if(t.length<3)throw new Error("Array has less than 3 items.");if(t.length%2==0)throw new Error("Array has an even number of items.");let e=Math.floor(t.length/2);return[t[e-1],t[e],t[e+1]]}function s(t){if(t.length<4)throw new Error("Array has less than 4 items.");if(t.length%2!=0)throw new Error("Array has an odd number of items.");let e=Math.floor(t.length/2);return[t[e-2],t[e-1],t[e],t[e+1]]}function o(t){return t.length<2?[]:t.slice(0,-1).map((e,r)=>[t[r],t[r+1]])}r.r(n),r.d(n,{DownloadableFile:()=>w,EventfulSet:()=>v,FiniteStack:()=>E,KeyBinding:()=>d.KeyBinding,consecutivePairs:()=>o,containsFocus:()=>f,detectMac:()=>p,detectWindows:()=>m,first:()=>t,hasFocus:()=>l,isJSON:()=>a.isJSON,isJSONSerializable:()=>a.isJSONSerializable,isURL:()=>P,last:()=>e,middleFour:()=>s,middleThree:()=>i,removeWhitespace:()=>u,shuffled:()=>c,splitLines:()=>h});var a=r(854);function u(t){return[...t].filter(t=>!(0,a.isWhitespace)(t)).join("")}function h(t){return t.split(/\r\n|\r|\n/)}function c(t){return t.map(t=>({v:t,priority:Math.random()})).sort((t,e)=>t.priority-e.priority).map(({v:t})=>t)}function l(t){return t===document.activeElement}function f(t){return!!document.activeElement&&t.contains(document.activeElement)}var d=r(992);function m(){return-1!==navigator.userAgent.indexOf("Windows")}function p(){try{return window.navigator.platform.toLowerCase().includes("mac")}catch(t){return!1}}var y,g=function(t,e,r,n,i){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!i:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===n?i.call(t,r):i?i.value=r:e.set(t,r),r},b=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class w{constructor(t,e,r){y.set(this,void 0),this.name=null!=t?t:"Unnamed.txt",this.content=null!=e?e:"",g(this,y,null==r?void 0:r.type,"f")}get type(){return null!=b(this,y,"f")?b(this,y,"f"):this.content instanceof Blob?this.content.type:"text/plain"}set type(t){g(this,y,t,"f")}download(){let t=new File([this.content],this.name,{type:this.type}),e=URL.createObjectURL(t),r=document.createElement("a");r.href=e,r.download=t.name,document.body.appendChild(r),r.click(),r.remove(),URL.revokeObjectURL(e)}}y=new WeakMap;class v{constructor(){this.eventListeners={change:[]},this.underlyingSet=new Set}[Symbol.iterator](){return this.underlyingSet.values()}includes(t){return this.underlyingSet.has(t)}include(t){return this.includes(t)}addAll(t){let e=[...t];0!=e.length&&(e.every(t=>this.includes(t))||(e.forEach(t=>this.underlyingSet.add(t)),this.callEventListeners("change")))}removeAll(t){let e=[...t];0!=e.length&&(e.every(t=>!this.includes(t))||(e.forEach(t=>this.underlyingSet.delete(t)),this.callEventListeners("change")))}clear(){0!=this.underlyingSet.size&&(this.underlyingSet.clear(),this.callEventListeners("change"))}addEventListener(t,e){this.eventListeners[t].push(e)}callEventListeners(t){this.eventListeners[t].forEach(t=>t())}removeEventListener(t,e){this.eventListeners[t]=this.eventListeners[t].filter(t=>t!==e)}}var x,N,S,_,O=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class E{constructor(t){x.add(this),this.maxSize=t,N.set(this,[]),S.set(this,{change:[]})}get size(){return O(this,N,"f").length}isEmpty(){return 0==this.size}empty(){0!=this.size&&(function(t,e){if("function"==typeof e||!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");e.set(t,[])}(this,N),O(this,x,"m",_).call(this,"change"))}peek(){if(0==this.size)throw new Error("The stack is empty.");return O(this,N,"f")[O(this,N,"f").length-1]}push(t){O(this,N,"f").push(t),this.size>this.maxSize&&O(this,N,"f").shift(),O(this,x,"m",_).call(this,"change")}pop(){if(0==this.size)throw new Error("The stack is empty.");let t=O(this,N,"f").pop();return O(this,x,"m",_).call(this,"change"),t}addEventListener(t,e){O(this,S,"f")[t].push(e)}removeEventListener(t,e){O(this,S,"f")[t]=O(this,S,"f")[t].filter(t=>t!==e)}}function P(t){try{return new URL(t),!0}catch(t){return!1}}N=new WeakMap,S=new WeakMap,x=new WeakSet,_=function(t){O(this,S,"f")[t].forEach(t=>t())}})(),n})(),t.exports=e()},854(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){return"number"==typeof t}function n(t){return r(t)&&Number.isFinite(t)}function i(t){return r(t)&&!Number.isFinite(t)}function s(t){return n(t)&&t>0}function o(t){return n(t)&&t>=0}function a(t){return"string"==typeof t}function u(t){return""===t}function h(t){return a(t)&&!u(t)}function c(t){return!!a(t)&&0==t.trim().length}function l(t){if(!a(t))return!1;try{return JSON.parse(t),!0}catch{return!1}}function f(t){try{return JSON.stringify(t),!0}catch{return!1}}function d(t){return!!t}function m(t){return!t}function p(t){return null==t}function y(t){return"object"==typeof t&&null!==t}function g(t){return Array.isArray(t)}function b(t){return g(t)&&0==t.length}function w(t){return g(t)&&t.length>0}function v(t){return g(t)&&t.every(r)}function x(t){return v(t)&&t.length>0}function N(t){return g(t)&&t.every(n)}function S(t){return g(t)&&t.every(i)}function _(t){return g(t)&&t.every(a)}function O(t){return _(t)&&t.length>0}function E(t){return t instanceof SVGGraphicsElement}return t.r(e),t.d(e,{isArray:()=>g,isEmptyArray:()=>b,isEmptyString:()=>u,isFalsy:()=>m,isFiniteNumber:()=>n,isFiniteNumbersArray:()=>N,isJSON:()=>l,isJSONSerializable:()=>f,isNonEmptyArray:()=>w,isNonEmptyNumbersArray:()=>x,isNonEmptyString:()=>h,isNonEmptyStringsArray:()=>O,isNonFiniteNumber:()=>i,isNonFiniteNumbersArray:()=>S,isNonNegativeFiniteNumber:()=>o,isNonNullObject:()=>y,isNullish:()=>p,isNumber:()=>r,isNumbersArray:()=>v,isPositiveFiniteNumber:()=>s,isSVGGraphicsElement:()=>E,isString:()=>a,isStringsArray:()=>_,isTruthy:()=>d,isWhitespace:()=>c}),e})()}};const e={};function r(n){const i=e[n];if(void 0!==i)return i.exports;const s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,r),s.exports}r.d=(t,e)=>{if(Array.isArray(e))for(var n=0;n<e.length;){var i=e[n++],s=e[n++];r.o(t,i)?0===s&&n++:0===s?Object.defineProperty(t,i,{enumerable:!0,value:e[n++]}):Object.defineProperty(t,i,{enumerable:!0,get:s})}else for(var i in e)r.o(e,i)&&!r.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};let n={};return(()=>{"use strict";r.r(n),r.d(n,{Linkers:()=>p,Stems:()=>m,areConflicting:()=>u,areCrossing:()=>l,areEqual:()=>o,areKnotless:()=>c,areStacked:()=>a,basePairs:()=>v,deepCopy:()=>e,knotless:()=>f,mountainPlotTraversal:()=>y,parseDotBracket:()=>b,radializable:()=>d,sorted:()=>s});var t=r(854);function e(e){return(0,t.isNumbersArray)(e)?[...e]:e.map(t=>[...t])}var i=r(986);function s(t){let r=e(t);return r.forEach(i.sortNumbers),r.sort((t,e)=>t[0]-e[0]),r}function o(t,r){let n=e(t),s=e(r);return(0,i.sortNumbers)(n),(0,i.sortNumbers)(s),[0,1].every(t=>n[t]==s[t])}function a(t,e){let r=s([t,e]);return r[0][0]==r[1][0]-1&&r[0][1]==r[1][1]+1}function u(t,e){return(0,i.min)(t)==(0,i.min)(e)&&(0,i.max)(t)!=(0,i.max)(e)||(0,i.min)(t)!=(0,i.min)(e)&&(0,i.max)(t)==(0,i.max)(e)}function h(t){if(0==t.length)return[];let e=[];for(let r=0;r<(0,i.max)(t.flat());r++)e.push(void 0);return t.forEach(t=>{e[t[0]-1]=t[1],e[t[1]-1]=t[0]}),e}function c(t){let e=h(t),r=[],n=!1;return e.forEach((t,e)=>{let i=e+1;null==t||(i<t?r.push(i):i==t||r.pop()!=t&&(n=!0))}),!n}function l(t,e){return!c([t,e])}function f(t){let r=[],n=e(t);n.sort((t,e)=>Math.abs(t[0]-t[1])-Math.abs(e[0]-e[1]));let s=[];return n.forEach(t=>{let e=[t[0]-1,t[1]-1],n=(0,i.min)(e),o=(0,i.max)(e);if(!s[n]&&!s[o]){r.push(t);for(let t=n;t<=o;t++)s[t]=!0}}),r}function d(t){let r=e(t);r.sort(([t,e],[r,n])=>Math.abs(t-e)-Math.abs(r-n));let n=[],i=[];return r.forEach(([t,e])=>{t==e||null!=i[t-1]||null!=i[e-1]||(n.push([t,e]),i[t-1]=e,i[e-1]=t)}),f(n)}class m{constructor(...t){this.targetStructure=t}get(){let t=this.targetStructure[1];if(0==t.length)return[];let e=s(t),r=[],n=[];return e.forEach(t=>{let e=0==n.length?null:n[n.length-1];!e||a(e,t)?n.push(t):(r.push(n),n=[t])}),r.push(n),r}}class p{constructor(...t){this.targetStructure=t}get(){let t=new m(...this.targetStructure).get().flatMap(t=>[t.map(i.min),t.map(i.max)]);t.forEach(i.sortNumbers),t.sort((t,e)=>(0,i.min)(t)-(0,i.min)(e));let e=[],r=t.shift(),n=t.shift();for(;r&&n;){let s=[],o=(0,i.max)(r),a=(0,i.min)(n);for(let t=o;t<=a;t++)s.push(t);e.push(s),r=n,n=t.shift()}return e}}function y(...t){let e=t[0],r=t[1],n=h(r);if(!c(r))throw new Error("Pseudoknot(s) encountered.");let i=[],s=0;return e.forEach((t,e)=>{let r=e+1,o=n[e];null==o?i.push(s):r<o?(i.push(s),s++):(r==o||s--,i.push(s))}),i}var g=r(106);function b(t){t=(0,g.removeWhitespace)(t);let e={"()":[],"[]":[],"{}":[],"<>":[]};w.forEach(r=>{let[n,i]=r.split(""),o=[...t].map(t=>t===n?"(":t===i?")":".").join("");e[r]=function(t){let e=[],r=[];if([...t].forEach((t,n)=>{let i=n+1;if("."==t);else if("("==t)r.push(i);else if(")"==t){let t=r.pop();if("number"!=typeof t)throw new Error(`Unmatched downstream partner in dot-bracket notation at position: ${i}.`);e.push([t,i])}}),r.length>0)throw new Error(`Unmatched upstream partner in dot-bracket notation at position: ${r.pop()}.`);return s(e)}(o)});let r=()=>s(w.flatMap(t=>e[t]));return{[Symbol.iterator]:()=>r()[Symbol.iterator](),toArray:r,...e}}const w=["()","[]","{}","<>"];function v(t,e){return e.forEach(e=>{e.forEach(e=>{if(e<1)throw new Error("Sequence positions must be positive.");if(e>t.length)throw new Error("Position out of sequence range.")})}),e.map(e=>[t[e[0]-1],t[e[1]-1]])}})(),n})(),t.exports=e()},106(t){var e;e=()=>(()=>{var t={992(t){var e;e=()=>(()=>{"use strict";const t={d:(e,r)=>{if(Array.isArray(r))for(var n=0;n<r.length;){var i=r[n++],s=r[n++];t.o(e,i)?0===s&&n++:0===s?Object.defineProperty(e,i,{enumerable:!0,value:r[n++]}):Object.defineProperty(e,i,{enumerable:!0,get:s})}else for(var i in r)t.o(r,i)&&!t.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:r[i]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}};let e={};t.r(e),t.d(e,{KeyBinding:()=>p});var r,n,i,s,o,a,u,h,c,l,f,d=function(t,e,r,n,i){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!i:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===n?i.call(t,r):i?i.value=r:e.set(t,r),r},m=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class p{constructor(t,e,a){r.add(this),this.key=t,n.set(this,void 0),i.set(this,void 0),s.set(this,void 0),o.set(this,void 0),d(this,n,e,"f"),d(this,i,t=>m(this,r,"m",l).call(this,t),"f"),d(this,s,a,"f")}get owner(){return m(this,o,"f")}set owner(t){var e;null===(e=m(this,o,"f"))||void 0===e||e.removeEventListener("keydown",m(this,i,"f")),null==t||t.addEventListener("keydown",m(this,i,"f"),{passive:!1}),d(this,o,t,"f")}}return n=new WeakMap,i=new WeakMap,s=new WeakMap,o=new WeakMap,r=new WeakSet,a=function(){var t,e;return null!==(e=null===(t=m(this,s,"f"))||void 0===t?void 0:t.altKey)&&void 0!==e&&e},u=function(){var t,e;return null!==(e=null===(t=m(this,s,"f"))||void 0===t?void 0:t.ctrlKey)&&void 0!==e&&e},h=function(){var t,e;return null!==(e=null===(t=m(this,s,"f"))||void 0===t?void 0:t.metaKey)&&void 0!==e&&e},c=function(){var t,e;return null!==(e=null===(t=m(this,s,"f"))||void 0===t?void 0:t.shiftKey)&&void 0!==e&&e},l=function(t){this.owner&&this.owner===document.activeElement&&`Key${this.key}`.toUpperCase()===t.code.toUpperCase()&&t.altKey===m(this,r,"a",a)&&t.ctrlKey===m(this,r,"a",u)&&t.metaKey===m(this,r,"a",h)&&t.shiftKey===m(this,r,"a",c)&&m(this,r,"m",f).call(this,t)},f=function(t){t.preventDefault(),m(this,n,"f").call(this)},e})(),t.exports=e()},854(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){return"number"==typeof t}function n(t){return r(t)&&Number.isFinite(t)}function i(t){return r(t)&&!Number.isFinite(t)}function s(t){return n(t)&&t>0}function o(t){return n(t)&&t>=0}function a(t){return"string"==typeof t}function u(t){return""===t}function h(t){return a(t)&&!u(t)}function c(t){return!!a(t)&&0==t.trim().length}function l(t){if(!a(t))return!1;try{return JSON.parse(t),!0}catch{return!1}}function f(t){try{return JSON.stringify(t),!0}catch{return!1}}function d(t){return!!t}function m(t){return!t}function p(t){return null==t}function y(t){return"object"==typeof t&&null!==t}function g(t){return Array.isArray(t)}function b(t){return g(t)&&0==t.length}function w(t){return g(t)&&t.length>0}function v(t){return g(t)&&t.every(r)}function x(t){return v(t)&&t.length>0}function N(t){return g(t)&&t.every(n)}function S(t){return g(t)&&t.every(i)}function _(t){return g(t)&&t.every(a)}function O(t){return _(t)&&t.length>0}function E(t){return t instanceof SVGGraphicsElement}return t.r(e),t.d(e,{isArray:()=>g,isEmptyArray:()=>b,isEmptyString:()=>u,isFalsy:()=>m,isFiniteNumber:()=>n,isFiniteNumbersArray:()=>N,isJSON:()=>l,isJSONSerializable:()=>f,isNonEmptyArray:()=>w,isNonEmptyNumbersArray:()=>x,isNonEmptyString:()=>h,isNonEmptyStringsArray:()=>O,isNonFiniteNumber:()=>i,isNonFiniteNumbersArray:()=>S,isNonNegativeFiniteNumber:()=>o,isNonNullObject:()=>y,isNullish:()=>p,isNumber:()=>r,isNumbersArray:()=>v,isPositiveFiniteNumber:()=>s,isSVGGraphicsElement:()=>E,isString:()=>a,isStringsArray:()=>_,isTruthy:()=>d,isWhitespace:()=>c}),e})()}};const e={};function r(n){const i=e[n];if(void 0!==i)return i.exports;const s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,r),s.exports}r.d=(t,e)=>{if(Array.isArray(e))for(var n=0;n<e.length;){var i=e[n++],s=e[n++];r.o(t,i)?0===s&&n++:0===s?Object.defineProperty(t,i,{enumerable:!0,value:e[n++]}):Object.defineProperty(t,i,{enumerable:!0,get:s})}else for(var i in e)r.o(e,i)&&!r.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};let n={};return(()=>{"use strict";function t(t){if(t.length>0)return t[0];throw new Error("Array is empty.")}function e(t){if(t.length>0)return t[t.length-1];throw new Error("Array is empty.")}function i(t){if(t.length<3)throw new Error("Array has less than 3 items.");if(t.length%2==0)throw new Error("Array has an even number of items.");let e=Math.floor(t.length/2);return[t[e-1],t[e],t[e+1]]}function s(t){if(t.length<4)throw new Error("Array has less than 4 items.");if(t.length%2!=0)throw new Error("Array has an odd number of items.");let e=Math.floor(t.length/2);return[t[e-2],t[e-1],t[e],t[e+1]]}function o(t){return t.length<2?[]:t.slice(0,-1).map((e,r)=>[t[r],t[r+1]])}r.r(n),r.d(n,{DownloadableFile:()=>w,EventfulSet:()=>v,FiniteStack:()=>E,KeyBinding:()=>d.KeyBinding,consecutivePairs:()=>o,containsFocus:()=>f,detectMac:()=>p,detectWindows:()=>m,first:()=>t,hasFocus:()=>l,isJSON:()=>a.isJSON,isJSONSerializable:()=>a.isJSONSerializable,isURL:()=>P,last:()=>e,middleFour:()=>s,middleThree:()=>i,removeWhitespace:()=>u,shuffled:()=>c,splitLines:()=>h});var a=r(854);function u(t){return[...t].filter(t=>!(0,a.isWhitespace)(t)).join("")}function h(t){return t.split(/\r\n|\r|\n/)}function c(t){return t.map(t=>({v:t,priority:Math.random()})).sort((t,e)=>t.priority-e.priority).map(({v:t})=>t)}function l(t){return t===document.activeElement}function f(t){return!!document.activeElement&&t.contains(document.activeElement)}var d=r(992);function m(){return-1!==navigator.userAgent.indexOf("Windows")}function p(){try{return window.navigator.platform.toLowerCase().includes("mac")}catch(t){return!1}}var y,g=function(t,e,r,n,i){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!i:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===n?i.call(t,r):i?i.value=r:e.set(t,r),r},b=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class w{constructor(t,e,r){y.set(this,void 0),this.name=null!=t?t:"Unnamed.txt",this.content=null!=e?e:"",g(this,y,null==r?void 0:r.type,"f")}get type(){return null!=b(this,y,"f")?b(this,y,"f"):this.content instanceof Blob?this.content.type:"text/plain"}set type(t){g(this,y,t,"f")}download(){let t=new File([this.content],this.name,{type:this.type}),e=URL.createObjectURL(t),r=document.createElement("a");r.href=e,r.download=t.name,document.body.appendChild(r),r.click(),r.remove(),URL.revokeObjectURL(e)}}y=new WeakMap;class v{constructor(){this.eventListeners={change:[]},this.underlyingSet=new Set}[Symbol.iterator](){return this.underlyingSet.values()}includes(t){return this.underlyingSet.has(t)}include(t){return this.includes(t)}addAll(t){let e=[...t];0!=e.length&&(e.every(t=>this.includes(t))||(e.forEach(t=>this.underlyingSet.add(t)),this.callEventListeners("change")))}removeAll(t){let e=[...t];0!=e.length&&(e.every(t=>!this.includes(t))||(e.forEach(t=>this.underlyingSet.delete(t)),this.callEventListeners("change")))}clear(){0!=this.underlyingSet.size&&(this.underlyingSet.clear(),this.callEventListeners("change"))}addEventListener(t,e){this.eventListeners[t].push(e)}callEventListeners(t){this.eventListeners[t].forEach(t=>t())}removeEventListener(t,e){this.eventListeners[t]=this.eventListeners[t].filter(t=>t!==e)}}var x,N,S,_,O=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class E{constructor(t){x.add(this),this.maxSize=t,N.set(this,[]),S.set(this,{change:[]})}get size(){return O(this,N,"f").length}isEmpty(){return 0==this.size}empty(){0!=this.size&&(function(t,e){if("function"==typeof e||!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");e.set(t,[])}(this,N),O(this,x,"m",_).call(this,"change"))}peek(){if(0==this.size)throw new Error("The stack is empty.");return O(this,N,"f")[O(this,N,"f").length-1]}push(t){O(this,N,"f").push(t),this.size>this.maxSize&&O(this,N,"f").shift(),O(this,x,"m",_).call(this,"change")}pop(){if(0==this.size)throw new Error("The stack is empty.");let t=O(this,N,"f").pop();return O(this,x,"m",_).call(this,"change"),t}addEventListener(t,e){O(this,S,"f")[t].push(e)}removeEventListener(t,e){O(this,S,"f")[t]=O(this,S,"f")[t].filter(t=>t!==e)}}function P(t){try{return new URL(t),!0}catch(t){return!1}}N=new WeakMap,S=new WeakMap,x=new WeakSet,_=function(t){O(this,S,"f")[t].forEach(t=>t())}})(),n})(),t.exports=e()},854(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){return"number"==typeof t}function n(t){return r(t)&&Number.isFinite(t)}function i(t){return r(t)&&!Number.isFinite(t)}function s(t){return n(t)&&t>0}function o(t){return n(t)&&t>=0}function a(t){return"string"==typeof t}function u(t){return""===t}function h(t){return a(t)&&!u(t)}function c(t){return!!a(t)&&0==t.trim().length}function l(t){if(!a(t))return!1;try{return JSON.parse(t),!0}catch{return!1}}function f(t){try{return JSON.stringify(t),!0}catch{return!1}}function d(t){return!!t}function m(t){return!t}function p(t){return null==t}function y(t){return"object"==typeof t&&null!==t}function g(t){return Array.isArray(t)}function b(t){return g(t)&&0==t.length}function w(t){return g(t)&&t.length>0}function v(t){return g(t)&&t.every(r)}function x(t){return v(t)&&t.length>0}function N(t){return g(t)&&t.every(n)}function S(t){return g(t)&&t.every(i)}function _(t){return g(t)&&t.every(a)}function O(t){return _(t)&&t.length>0}function E(t){return t instanceof SVGGraphicsElement}return t.r(e),t.d(e,{isArray:()=>g,isEmptyArray:()=>b,isEmptyString:()=>u,isFalsy:()=>m,isFiniteNumber:()=>n,isFiniteNumbersArray:()=>N,isJSON:()=>l,isJSONSerializable:()=>f,isNonEmptyArray:()=>w,isNonEmptyNumbersArray:()=>x,isNonEmptyString:()=>h,isNonEmptyStringsArray:()=>O,isNonFiniteNumber:()=>i,isNonFiniteNumbersArray:()=>S,isNonNegativeFiniteNumber:()=>o,isNonNullObject:()=>y,isNullish:()=>p,isNumber:()=>r,isNumbersArray:()=>v,isPositiveFiniteNumber:()=>s,isSVGGraphicsElement:()=>E,isString:()=>a,isStringsArray:()=>_,isTruthy:()=>d,isWhitespace:()=>c}),e})()}};const e={};function r(n){const i=e[n];if(void 0!==i)return i.exports;const s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,r),s.exports}r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};let n={};return(()=>{"use strict";r.r(n),r.d(n,{BaseOutline:()=>Oi.BaseOutline,CTDrawer:()=>cs,DotBracketDrawer:()=>os,Drawing:()=>Zi,Nucleobase:()=>ui.Nucleobase,SchemaDrawer:()=>gs,StraightBond:()=>Mi.StraightBond});var t=Object.create,e=Object.defineProperty,i=Object.getOwnPropertyDescriptor,s=Object.getOwnPropertyNames,o=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,u=(t,e)=>()=>(e||(t((e={exports:{}}).exports,e),t=null),e.exports),h=(t,r)=>{let n={};for(var i in t)e(n,i,{get:t[i],enumerable:!0});return r||e(n,Symbol.toStringTag,{value:"Module"}),n},c=(r,n,u)=>(u=null!=r?t(o(r)):{},((t,r,n,o)=>{if(r&&"object"==typeof r||"function"==typeof r)for(var u,h=s(r),c=0,l=h.length;c<l;c++)u=h[c],a.call(t,u)||void 0===u||e(t,u,{get:(t=>r[t]).bind(null,u),enumerable:!(o=i(r,u))||o.enumerable});return t})(!n&&r&&r.__esModule?u:e(u,"default",{value:r,enumerable:!0}),r));const l={},f=[];function d(t,e){if(Array.isArray(t))for(const r of t)d(r,e);else if("object"!=typeof t)p(Object.getOwnPropertyNames(e)),l[t]=Object.assign(l[t]||{},e);else for(const e in t)d(e,t[e])}function m(t){return l[t]||{}}function p(t){f.push(...t)}var y=u((t,e)=>{e.exports=function(t){try{return!!t()}catch(t){return!0}}}),g=u((t,e)=>{var r=y();e.exports=!r(function(){var t=function(){}.bind();return"function"!=typeof t||t.hasOwnProperty("prototype")})}),b=u((t,e)=>{var r=g(),n=Function.prototype,i=n.call,s=r&&n.bind.bind(i,i);e.exports=r?s:function(t){return function(){return i.apply(t,arguments)}}}),w=u((t,e)=>{var r=b();e.exports=r({}.isPrototypeOf)}),v=u((t,e)=>{var n=function(t){return t&&t.Math===Math&&t};e.exports=n("object"==typeof globalThis&&globalThis)||n("object"==typeof window&&window)||n("object"==typeof self&&self)||n("object"==typeof r.g&&r.g)||n("object"==typeof t&&t)||function(){return this}()||Function("return this")()}),x=u((t,e)=>{var r=g(),n=Function.prototype,i=n.apply,s=n.call;e.exports="object"==typeof Reflect&&Reflect.apply||(r?s.bind(i):function(){return s.apply(i,arguments)})}),N=u((t,e)=>{var r=b(),n=r({}.toString),i=r("".slice);e.exports=function(t){return i(n(t),8,-1)}}),S=u((t,e)=>{var r=N(),n=b();e.exports=function(t){if("Function"===r(t))return n(t)}}),_=u((t,e)=>{var r="object"==typeof document&&document.all;e.exports=void 0===r&&void 0!==r?function(t){return"function"==typeof t||t===r}:function(t){return"function"==typeof t}}),O=u((t,e)=>{var r=y();e.exports=!r(function(){return 7!==Object.defineProperty({},1,{get:function(){return 7}})[1]})}),E=u((t,e)=>{var r=g(),n=Function.prototype.call;e.exports=r?n.bind(n):function(){return n.apply(n,arguments)}}),P=u(t=>{var e={}.propertyIsEnumerable,r=Object.getOwnPropertyDescriptor,n=r&&!e.call({1:2},1);t.f=n?function(t){var e=r(this,t);return!!e&&e.enumerable}:e}),M=u((t,e)=>{e.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}}),A=u((t,e)=>{var r=b(),n=y(),i=N(),s=Object,o=r("".split);e.exports=n(function(){return!s("z").propertyIsEnumerable(0)})?function(t){return"String"===i(t)?o(t,""):s(t)}:s}),T=u((t,e)=>{e.exports=function(t){return null==t}}),j=u((t,e)=>{var r=T(),n=TypeError;e.exports=function(t){if(r(t))throw new n("Can't call method on "+t);return t}}),C=u((t,e)=>{var r=A(),n=j();e.exports=function(t){return r(n(t))}}),D=u((t,e)=>{var r=_();e.exports=function(t){return"object"==typeof t?null!==t:r(t)}}),I=u((t,e)=>{e.exports={}}),k=u((t,e)=>{var r=I(),n=v(),i=_(),s=function(t){return i(t)?t:void 0};e.exports=function(t,e){return arguments.length<2?s(r[t])||s(n[t]):r[t]&&r[t][e]||n[t]&&n[t][e]}}),F=u((t,e)=>{var r=v().navigator,n=r&&r.userAgent;e.exports=n?String(n):""}),L=u((t,e)=>{var r,n,i=v(),s=F(),o=i.process,a=i.Deno,u=o&&o.versions||a&&a.version,h=u&&u.v8;h&&(n=(r=h.split("."))[0]>0&&r[0]<4?1:+(r[0]+r[1])),!n&&s&&(!(r=s.match(/Edge\/(\d+)/))||r[1]>=74)&&(r=s.match(/Chrome\/(\d+)/))&&(n=+r[1]),e.exports=n}),B=u((t,e)=>{var r=L(),n=y(),i=v().String;e.exports=!!Object.getOwnPropertySymbols&&!n(function(){var t=Symbol("symbol detection");return!i(t)||!(Object(t)instanceof Symbol)||!Symbol.sham&&r&&r<41})}),V=u((t,e)=>{var r=B();e.exports=r&&!Symbol.sham&&"symbol"==typeof Symbol.iterator}),R=u((t,e)=>{var r=k(),n=_(),i=w(),s=V(),o=Object;e.exports=s?function(t){return"symbol"==typeof t}:function(t){var e=r("Symbol");return n(e)&&i(e.prototype,o(t))}}),z=u((t,e)=>{var r=String;e.exports=function(t){try{return r(t)}catch(t){return"Object"}}}),X=u((t,e)=>{var r=_(),n=z(),i=TypeError;e.exports=function(t){if(r(t))return t;throw new i(n(t)+" is not a function")}}),G=u((t,e)=>{var r=X(),n=T();e.exports=function(t,e){var i=t[e];return n(i)?void 0:r(i)}}),U=u((t,e)=>{var r=E(),n=_(),i=D(),s=TypeError;e.exports=function(t,e){var o,a;if("string"===e&&n(o=t.toString)&&!i(a=r(o,t)))return a;if(n(o=t.valueOf)&&!i(a=r(o,t)))return a;if("string"!==e&&n(o=t.toString)&&!i(a=r(o,t)))return a;throw new s("Can't convert object to primitive value")}}),Y=u((t,e)=>{e.exports=!0}),W=u((t,e)=>{var r=v(),n=Object.defineProperty;e.exports=function(t,e){try{n(r,t,{value:e,configurable:!0,writable:!0})}catch(n){r[t]=e}return e}}),$=u((t,e)=>{var r=Y(),n=v(),i=W(),s="__core-js_shared__",o=e.exports=n[s]||i(s,{});(o.versions||(o.versions=[])).push({version:"3.49.0",mode:r?"pure":"global",copyright:"© 2013–2025 Denis Pushkarev (zloirock.ru), 2025–2026 CoreJS Company (core-js.io). All rights reserved.",license:"https://github.com/zloirock/core-js/blob/v3.49.0/LICENSE",source:"https://github.com/zloirock/core-js"})}),q=u((t,e)=>{var r=$();e.exports=function(t,e){return r[t]||(r[t]=e||{})}}),H=u((t,e)=>{var r=j(),n=Object;e.exports=function(t){return n(r(t))}}),J=u((t,e)=>{var r=b(),n=H(),i=r({}.hasOwnProperty);e.exports=Object.hasOwn||function(t,e){return i(n(t),e)}}),K=u((t,e)=>{var r=b(),n=0,i=Math.random(),s=r(1.1.toString);e.exports=function(t){return"Symbol("+(void 0===t?"":t)+")_"+s(++n+i,36)}}),Q=u((t,e)=>{var r=v(),n=q(),i=J(),s=K(),o=B(),a=V(),u=r.Symbol,h=n("wks"),c=a?u.for||u:u&&u.withoutSetter||s;e.exports=function(t){return i(h,t)||(h[t]=o&&i(u,t)?u[t]:c("Symbol."+t)),h[t]}}),Z=u((t,e)=>{var r=E(),n=D(),i=R(),s=G(),o=U(),a=Q(),u=TypeError,h=a("toPrimitive");e.exports=function(t,e){if(!n(t)||i(t))return t;var a,c=s(t,h);if(c){if(void 0===e&&(e="default"),a=r(c,t,e),!n(a)||i(a))return a;throw new u("Can't convert object to primitive value")}return void 0===e&&(e="number"),o(t,e)}}),tt=u((t,e)=>{var r=Z(),n=R();e.exports=function(t){var e=r(t,"string");return n(e)?e:e+""}}),et=u((t,e)=>{var r=v(),n=D(),i=r.document,s=n(i)&&n(i.createElement);e.exports=function(t){return s?i.createElement(t):{}}}),rt=u((t,e)=>{var r=O(),n=y(),i=et();e.exports=!r&&!n(function(){return 7!==Object.defineProperty(i("div"),"a",{get:function(){return 7}}).a})}),nt=u(t=>{var e=O(),r=E(),n=P(),i=M(),s=C(),o=tt(),a=J(),u=rt(),h=Object.getOwnPropertyDescriptor;t.f=e?h:function(t,e){if(t=s(t),e=o(e),u)try{return h(t,e)}catch(t){}if(a(t,e))return i(!r(n.f,t,e),t[e])}}),it=u((t,e)=>{var r=y(),n=_(),i=/#|\.prototype\./,s=function(t,e){var i=a[o(t)];return i===h||i!==u&&(n(e)?r(e):!!e)},o=s.normalize=function(t){return String(t).replace(i,".").toLowerCase()},a=s.data={},u=s.NATIVE="N",h=s.POLYFILL="P";e.exports=s}),st=u((t,e)=>{var r=S(),n=X(),i=g(),s=r(r.bind);e.exports=function(t,e){return n(t),void 0===e?t:i?s(t,e):function(){return t.apply(e,arguments)}}}),ot=u((t,e)=>{var r=O(),n=y();e.exports=r&&n(function(){return 42!==Object.defineProperty(function(){},"prototype",{value:42,writable:!1}).prototype})}),at=u((t,e)=>{var r=D(),n=String,i=TypeError;e.exports=function(t){if(r(t))return t;throw new i(n(t)+" is not an object")}}),ut=u(t=>{var e=O(),r=rt(),n=ot(),i=at(),s=tt(),o=TypeError,a=Object.defineProperty,u=Object.getOwnPropertyDescriptor,h="enumerable",c="configurable",l="writable";t.f=e?n?function(t,e,r){if(i(t),e=s(e),i(r),"function"==typeof t&&"prototype"===e&&"value"in r&&l in r&&!r[l]){var n=u(t,e);n&&n[l]&&(t[e]=r.value,r={configurable:c in r?r[c]:n[c],enumerable:h in r?r[h]:n[h],writable:!1})}return a(t,e,r)}:a:function(t,e,n){if(i(t),e=s(e),i(n),r)try{return a(t,e,n)}catch(t){}if("get"in n||"set"in n)throw new o("Accessors not supported");return"value"in n&&(t[e]=n.value),t}}),ht=u((t,e)=>{var r=O(),n=ut(),i=M();e.exports=r?function(t,e,r){return n.f(t,e,i(1,r))}:function(t,e,r){return t[e]=r,t}}),ct=u((t,e)=>{var r=v(),n=x(),i=S(),s=_(),o=nt().f,a=it(),u=I(),h=st(),c=ht(),l=J();$();var f=function(t){var e=function(r,i,s){if(this instanceof e){switch(arguments.length){case 0:return new t;case 1:return new t(r);case 2:return new t(r,i)}return new t(r,i,s)}return n(t,this,arguments)};return e.prototype=t.prototype,e};e.exports=function(t,e){var n,d,m,p,y,g,b,w,v,x=t.target,N=t.global,S=t.stat,_=t.proto,O=N?r:S?r[x]:r[x]&&r[x].prototype,E=N?u:u[x]||c(u,x,{})[x],P=E.prototype;for(p in e)d=!(n=a(N?p:x+(S?".":"#")+p,t.forced))&&O&&l(O,p),g=E[p],d&&(b=t.dontCallGetSet?(v=o(O,p))&&v.value:O[p]),y=d&&b?b:e[p],(n||_||typeof g!=typeof y)&&(w=t.bind&&d?h(y,r):t.wrap&&d?f(y):_&&s(y)?i(y):y,(t.sham||y&&y.sham||g&&g.sham)&&c(w,"sham",!0),c(E,p,w),_&&(l(u,m=x+"Prototype")||c(u,m,{}),c(u[m],p,y),t.real&&P&&(n||!P[p])&&c(P,p,y)))}}),lt=u((t,e)=>{var r=Math.ceil,n=Math.floor;e.exports=Math.trunc||function(t){var e=+t;return(e>0?n:r)(e)}}),ft=u((t,e)=>{var r=lt();e.exports=function(t){var e=+t;return e!=e||0===e?0:r(e)}}),dt=u((t,e)=>{var r=ft(),n=Math.max,i=Math.min;e.exports=function(t,e){var s=r(t);return s<0?n(s+e,0):i(s,e)}}),mt=u((t,e)=>{var r=ft(),n=Math.min;e.exports=function(t){var e=r(t);return e>0?n(e,9007199254740991):0}}),pt=u((t,e)=>{var r=mt();e.exports=function(t){return r(t.length)}}),yt=u((t,e)=>{var r=C(),n=dt(),i=pt(),s=function(t){return function(e,s,o){var a=r(e),u=i(a);if(0===u)return!t&&-1;var h,c=n(o,u);if(t&&s!=s){for(;u>c;)if((h=a[c++])!=h)return!0}else for(;u>c;c++)if((t||c in a)&&a[c]===s)return t||c||0;return!t&&-1}};e.exports={includes:s(!0),indexOf:s(!1)}}),gt=u((t,e)=>{e.exports=function(){}}),bt=u(()=>{var t=ct(),e=yt().includes,r=y(),n=gt(),i=r(function(){return!Array(1).includes()}),s=r(function(){return[,1].includes(void 0,1)});t({target:"Array",proto:!0,forced:i||s},{includes:function(t){return e(this,t,arguments.length>1?arguments[1]:void 0)}}),n("includes")}),wt=u((t,e)=>{var r=v(),n=I();e.exports=function(t,e){var i=n[t+"Prototype"],s=i&&i[e];if(s)return s;var o=r[t],a=o&&o.prototype;return a&&a[e]}}),vt=u((t,e)=>{bt();var r=wt();e.exports=r("Array","includes")}),xt=u((t,e)=>{var r=D(),n=N(),i=Q()("match");e.exports=function(t){var e;return r(t)&&(void 0!==(e=t[i])?!!e:"RegExp"===n(t))}}),Nt=u((t,e)=>{var r=xt(),n=TypeError;e.exports=function(t){if(r(t))throw new n("The method doesn't accept regular expressions");return t}}),St=u((t,e)=>{var r={};r[Q()("toStringTag")]="z",e.exports="[object z]"===String(r)}),_t=u((t,e)=>{var r=St(),n=_(),i=N(),s=Q()("toStringTag"),o=Object,a="Arguments"===i(function(){return arguments}());e.exports=r?i:function(t){var e,r,u;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(r=function(t,e){try{return t[e]}catch(t){}}(e=o(t),s))?r:a?i(e):"Object"===(u=i(e))&&n(e.callee)?"Arguments":u}}),Ot=u((t,e)=>{var r=_t(),n=String;e.exports=function(t){if("Symbol"===r(t))throw new TypeError("Cannot convert a Symbol value to a string");return n(t)}}),Et=u((t,e)=>{var r=Q()("match");e.exports=function(t){var e=/./;try{"/./"[t](e)}catch(n){try{return e[r]=!1,"/./"[t](e)}catch(t){}}return!1}}),Pt=u(()=>{var t=ct(),e=b(),r=Nt(),n=j(),i=Ot(),s=Et(),o=e("".indexOf);t({target:"String",proto:!0,forced:!s("includes")},{includes:function(t){return!!~o(i(n(this)),i(r(t)),arguments.length>1?arguments[1]:void 0)}})}),Mt=u((t,e)=>{Pt();var r=wt();e.exports=r("String","includes")}),At=u((t,e)=>{var r=w(),n=vt(),i=Mt(),s=Array.prototype,o=String.prototype;e.exports=function(t){var e=t.includes;return t===s||r(s,t)&&e===s.includes?n:"string"==typeof t||t===o||r(o,t)&&e===o.includes?i:e}}),Tt=c(u((t,e)=>{var r=At();e.exports=r})(),1);function jt(t,e){let r;const n=t.length,i=[];for(r=0;r<n;r++)i.push(e(t[r]));return i}function Ct(t){return t%360*Math.PI/180}function Dt(t){return t.replace(/([A-Z])/g,function(t,e){return"-"+e.toLowerCase()})}function It(t){return t.charAt(0).toUpperCase()+t.slice(1)}function kt(t,e,r,n){return null!=e&&null!=r||(n=n||t.bbox(),null==e?e=n.width/n.height*r:null==r&&(r=n.height/n.width*e)),{width:e,height:r}}function Ft(t,e){const r=t.origin;let n=null!=t.ox?t.ox:null!=t.originX?t.originX:"center",i=null!=t.oy?t.oy:null!=t.originY?t.originY:"center";null!=r&&([n,i]=Array.isArray(r)?r:"object"==typeof r?[r.x,r.y]:[r,r]);const s="string"==typeof n,o="string"==typeof i;if(s||o){const{height:t,width:r,x:a,y:u}=e.bbox();s&&(n=(0,Tt.default)(n).call(n,"left")?a:(0,Tt.default)(n).call(n,"right")?a+r:a+r/2),o&&(i=(0,Tt.default)(i).call(i,"top")?u:(0,Tt.default)(i).call(i,"bottom")?u+t:u+t/2)}return[n,i]}const Lt=new Set(["desc","metadata","title"]),Bt=t=>Lt.has(t.nodeName),Vt="http://www.w3.org/2000/svg",Rt="http://www.w3.org/2000/xmlns/",zt="http://www.w3.org/1999/xlink",Xt={window:"undefined"==typeof window?null:window,document:"undefined"==typeof document?null:document};var Gt=class{};const Ut={},Yt="___SYMBOL___ROOT___";function Wt(t,e=Vt){return Xt.document.createElementNS(e,t)}function $t(t,e=!1){if(t instanceof Gt)return t;if("object"==typeof t)return Jt(t);if(null==t)return new Ut[Yt];if("string"==typeof t&&"<"!==t.trim().charAt(0))return Jt(Xt.document.querySelector(t));const r=e?Xt.document.createElement("div"):Wt("svg");return r.innerHTML=t.trim(),t=Jt(r.firstElementChild),r.removeChild(r.firstElementChild),t}function qt(t,e){return e&&(e instanceof Xt.window.Node||e.ownerDocument&&e instanceof e.ownerDocument.defaultView.Node)?e:Wt(t)}function Ht(t){if(!t)return null;if(t.instance instanceof Gt)return t.instance;if("#document-fragment"===t.nodeName)return new Ut.Fragment(t);let e=It(t.nodeName||"Dom");return"LinearGradient"===e||"RadialGradient"===e?e="Gradient":Ut[e]||(e="Dom"),new Ut[e](t)}let Jt=Ht;function Kt(t,e=t.name,r=!1){return Ut[e]=t,r&&(Ut[Yt]=t),p(Object.getOwnPropertyNames(t.prototype)),t}let Qt=1e3;function Zt(t){return"Svgjs"+It(t)+Qt++}function te(t){for(let e=t.children.length-1;e>=0;e--)te(t.children[e]);return t.id?(t.id=Zt(t.nodeName),t):t}function ee(t,e){let r,n;for(n=(t=Array.isArray(t)?t:[t]).length-1;n>=0;n--)for(r in e)t[n].prototype[r]=e[r]}function re(t){return function(...e){const r=e[e.length-1];return!r||r.constructor!==Object||r instanceof Array?t.apply(this,e):t.apply(this,e.slice(0,-1)).attr(r)}}d("Dom",{siblings:function(){return this.parent().children()},position:function(){return this.parent().index(this)},next:function(){return this.siblings()[this.position()+1]},prev:function(){return this.siblings()[this.position()-1]},forward:function(){const t=this.position();return this.parent().add(this.remove(),t+1),this},backward:function(){const t=this.position();return this.parent().add(this.remove(),t?t-1:0),this},front:function(){return this.parent().add(this.remove()),this},back:function(){return this.parent().add(this.remove(),0),this},before:function(t){(t=$t(t)).remove();const e=this.position();return this.parent().add(t,e),this},after:function(t){(t=$t(t)).remove();const e=this.position();return this.parent().add(t,e+1),this},insertBefore:function(t){return(t=$t(t)).before(this),this},insertAfter:function(t){return(t=$t(t)).after(this),this}});const ne=/^([+-]?(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?)([a-z%]*)$/i,ie=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i,se=/rgb\((\d+),(\d+),(\d+)\)/,oe=/^(#[^\s]+)$/,ae=/\)\s*,?\s*/,ue=/\s/g,he=/^#[a-f0-9]{3}$|^#[a-f0-9]{6}$/i,ce=/^rgb\(/,le=/^(\s+)?$/,fe=/^[+-]?(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,de=/\.(jpg|jpeg|png|gif|svg)(\?[^=]+.*)?/i,me=/[\s,]+/,pe=/[MLHVCSQTAZ]/i;d("Dom",{classes:function(){const t=this.attr("class");return null==t?[]:t.trim().split(me)},hasClass:function(t){return-1!==this.classes().indexOf(t)},addClass:function(t){if(!this.hasClass(t)){const e=this.classes();e.push(t),this.attr("class",e.join(" "))}return this},removeClass:function(t){return this.hasClass(t)&&this.attr("class",this.classes().filter(function(e){return e!==t}).join(" ")),this},toggleClass:function(t){return this.hasClass(t)?this.removeClass(t):this.addClass(t)}});const ye=t=>t.startsWith("--")?t:Dt(t);function ge(t){const e=Math.max(0,Math.min(255,Math.round(t))).toString(16);return 1===e.length?"0"+e:e}function be(t,e){for(let r=e.length;r--;)if(null==t[e[r]])return!1;return!0}function we(t,e,r){return r<0&&(r+=1),r>1&&(r-=1),r<1/6?t+6*(e-t)*r:r<.5?e:r<2/3?t+(e-t)*(2/3-r)*6:t}d("Dom",{css:function(t,e){const r={};if(0===arguments.length){const t=this.node.style;for(let e=0;e<t.length;e++){const n=t.item(e),i=t.getPropertyValue(n),s=t.getPropertyPriority(n);r[n]=s?`${i} !${s}`:i}return r}if(arguments.length<2){if(Array.isArray(t)){for(const e of t){const t=ye(e);r[e]=this.node.style.getPropertyValue(t)}return r}if("string"==typeof t)return this.node.style.getPropertyValue(ye(t));if("object"==typeof t)for(const e in t)this.node.style.setProperty(ye(e),null==t[e]||le.test(t[e])?"":t[e])}return 2===arguments.length&&this.node.style.setProperty(ye(t),null==e||le.test(e)?"":e),this},show:function(){return this.css("display","")},hide:function(){return this.css("display","none")},visible:function(){return"none"!==this.css("display")}}),d("Dom",{data:function(t,e,r){if(null==t)return this.data(jt(function(t,e){let r;const n=t.length,i=[];for(r=0;r<n;r++)e(t[r])&&i.push(t[r]);return i}(this.node.attributes,t=>0===t.nodeName.indexOf("data-")),t=>t.nodeName.slice(5)));if(t instanceof Array){const e={};for(const r of t)e[r]=this.data(r);return e}if("object"==typeof t)for(e in t)this.data(e,t[e]);else if(arguments.length<2)try{return JSON.parse(this.attr("data-"+t))}catch(e){return this.attr("data-"+t)}else this.attr("data-"+t,null===e?null:!0===r||"string"==typeof e||"number"==typeof e?e:JSON.stringify(e));return this}}),d("Dom",{remember:function(t,e){if("object"==typeof arguments[0])for(const e in t)this.remember(e,t[e]);else{if(1===arguments.length)return this.memory()[t];this.memory()[t]=e}return this},forget:function(){if(0===arguments.length)this._memory={};else for(let t=arguments.length-1;t>=0;t--)delete this.memory()[arguments[t]];return this},memory:function(){return this._memory=this._memory||{}}});var ve=class t{constructor(...t){this.init(...t)}static isColor(e){return e&&(e instanceof t||this.isRgb(e)||this.test(e))}static isRgb(t){return t&&"number"==typeof t.r&&"number"==typeof t.g&&"number"==typeof t.b}static random(e="vibrant",r){const{random:n,round:i,sin:s,PI:o}=Math;if("vibrant"===e){const e=24*n()+57,r=38*n()+45,i=360*n();return new t(e,r,i,"lch")}if("sine"===e){const e=i(80*s(2*o*(r=r??n())/.5+.01)+150),a=i(50*s(2*o*r/.5+4.6)+200),u=i(100*s(2*o*r/.5+2.3)+150);return new t(e,a,u)}if("pastel"===e){const e=8*n()+86,r=17*n()+9,i=360*n();return new t(e,r,i,"lch")}if("dark"===e){const e=10+10*n(),r=50*n()+86,i=360*n();return new t(e,r,i,"lch")}if("rgb"===e){const e=255*n(),r=255*n(),i=255*n();return new t(e,r,i)}if("lab"===e){const e=100*n(),r=256*n()-128,i=256*n()-128;return new t(e,r,i,"lab")}if("grey"===e){const e=255*n();return new t(e,e,e)}throw new Error("Unsupported random color mode")}static test(t){return"string"==typeof t&&(he.test(t)||ce.test(t))}cmyk(){const{_a:e,_b:r,_c:n}=this.rgb(),[i,s,o]=[e,r,n].map(t=>t/255),a=Math.min(1-i,1-s,1-o);return 1===a?new t(0,0,0,1,"cmyk"):new t((1-i-a)/(1-a),(1-s-a)/(1-a),(1-o-a)/(1-a),a,"cmyk")}hsl(){const{_a:e,_b:r,_c:n}=this.rgb(),[i,s,o]=[e,r,n].map(t=>t/255),a=Math.max(i,s,o),u=Math.min(i,s,o),h=(a+u)/2,c=a===u,l=a-u;return new t(360*(c?0:a===i?((s-o)/l+(s<o?6:0))/6:a===s?((o-i)/l+2)/6:a===o?((i-s)/l+4)/6:0),100*(c?0:h>.5?l/(2-a-u):l/(a+u)),100*h,"hsl")}init(t=0,e=0,r=0,n=0,i="rgb"){if(t=t||0,this.space)for(const t in this.space)delete this[this.space[t]];if("number"==typeof t)i="string"==typeof n?n:i,n="string"==typeof n?0:n,Object.assign(this,{_a:t,_b:e,_c:r,_d:n,space:i});else if(t instanceof Array)this.space=e||("string"==typeof t[3]?t[3]:t[4])||"rgb",Object.assign(this,{_a:t[0],_b:t[1],_c:t[2],_d:t[3]||0});else if(t instanceof Object){const r=function(t,e){const r=be(t,"rgb")?{_a:t.r,_b:t.g,_c:t.b,_d:0,space:"rgb"}:be(t,"xyz")?{_a:t.x,_b:t.y,_c:t.z,_d:0,space:"xyz"}:be(t,"hsl")?{_a:t.h,_b:t.s,_c:t.l,_d:0,space:"hsl"}:be(t,"lab")?{_a:t.l,_b:t.a,_c:t.b,_d:0,space:"lab"}:be(t,"lch")?{_a:t.l,_b:t.c,_c:t.h,_d:0,space:"lch"}:be(t,"cmyk")?{_a:t.c,_b:t.m,_c:t.y,_d:t.k,space:"cmyk"}:{_a:0,_b:0,_c:0,space:"rgb"};return r.space=e||r.space,r}(t,e);Object.assign(this,r)}else if("string"==typeof t)if(ce.test(t)){const e=t.replace(ue,""),[r,n,i]=se.exec(e).slice(1,4).map(t=>parseInt(t));Object.assign(this,{_a:r,_b:n,_c:i,_d:0,space:"rgb"})}else{if(!he.test(t))throw Error("Unsupported string format, can't construct Color");{const e=t=>parseInt(t,16),[,r,n,i]=ie.exec(function(t){return 4===t.length?["#",t.substring(1,2),t.substring(1,2),t.substring(2,3),t.substring(2,3),t.substring(3,4),t.substring(3,4)].join(""):t}(t)).map(e);Object.assign(this,{_a:r,_b:n,_c:i,_d:0,space:"rgb"})}}const{_a:s,_b:o,_c:a,_d:u}=this,h="rgb"===this.space?{r:s,g:o,b:a}:"xyz"===this.space?{x:s,y:o,z:a}:"hsl"===this.space?{h:s,s:o,l:a}:"lab"===this.space?{l:s,a:o,b:a}:"lch"===this.space?{l:s,c:o,h:a}:"cmyk"===this.space?{c:s,m:o,y:a,k:u}:{};Object.assign(this,h)}lab(){const{x:e,y:r,z:n}=this.xyz();return new t(116*r-16,500*(e-r),200*(r-n),"lab")}lch(){const{l:e,a:r,b:n}=this.lab(),i=Math.sqrt(r**2+n**2);let s=180*Math.atan2(n,r)/Math.PI;return s<0&&(s*=-1,s=360-s),new t(e,i,s,"lch")}rgb(){if("rgb"===this.space)return this;if("lab"===(e=this.space)||"xyz"===e||"lch"===e){let{x:e,y:r,z:n}=this;if("lab"===this.space||"lch"===this.space){let{l:t,a:i,b:s}=this;if("lch"===this.space){const{c:t,h:e}=this,r=Math.PI/180;i=t*Math.cos(r*e),s=t*Math.sin(r*e)}const o=(t+16)/116,a=i/500+o,u=o-s/200,h=16/116,c=.008856,l=7.787;e=.95047*(a**3>c?a**3:(a-h)/l),r=1*(o**3>c?o**3:(o-h)/l),n=1.08883*(u**3>c?u**3:(u-h)/l)}const i=3.2406*e+-1.5372*r+-.4986*n,s=-.9689*e+1.8758*r+.0415*n,o=.0557*e+-.204*r+1.057*n,a=Math.pow,u=.0031308,h=i>u?1.055*a(i,1/2.4)-.055:12.92*i,c=s>u?1.055*a(s,1/2.4)-.055:12.92*s,l=o>u?1.055*a(o,1/2.4)-.055:12.92*o;return new t(255*h,255*c,255*l)}if("hsl"===this.space){let{h:e,s:r,l:n}=this;if(e/=360,r/=100,n/=100,0===r)return n*=255,new t(n,n,n);const i=n<.5?n*(1+r):n+r-n*r,s=2*n-i,o=255*we(s,i,e+1/3),a=255*we(s,i,e),u=255*we(s,i,e-1/3);return new t(o,a,u)}if("cmyk"===this.space){const{c:e,m:r,y:n,k:i}=this,s=255*(1-Math.min(1,e*(1-i)+i)),o=255*(1-Math.min(1,r*(1-i)+i)),a=255*(1-Math.min(1,n*(1-i)+i));return new t(s,o,a)}return this;var e}toArray(){const{_a:t,_b:e,_c:r,_d:n,space:i}=this;return[t,e,r,n,i]}toHex(){const[t,e,r]=this._clamped().map(ge);return`#${t}${e}${r}`}toRgb(){const[t,e,r]=this._clamped();return`rgb(${t},${e},${r})`}toString(){return this.toHex()}xyz(){const{_a:e,_b:r,_c:n}=this.rgb(),[i,s,o]=[e,r,n].map(t=>t/255),a=i>.04045?Math.pow((i+.055)/1.055,2.4):i/12.92,u=s>.04045?Math.pow((s+.055)/1.055,2.4):s/12.92,h=o>.04045?Math.pow((o+.055)/1.055,2.4):o/12.92,c=(.4124*a+.3576*u+.1805*h)/.95047,l=(.2126*a+.7152*u+.0722*h)/1,f=(.0193*a+.1192*u+.9505*h)/1.08883,d=c>.008856?Math.pow(c,1/3):7.787*c+16/116,m=l>.008856?Math.pow(l,1/3):7.787*l+16/116,p=f>.008856?Math.pow(f,1/3):7.787*f+16/116;return new t(d,m,p,"xyz")}_clamped(){const{_a:t,_b:e,_c:r}=this.rgb(),{max:n,min:i,round:s}=Math;return[t,e,r].map(t=>n(0,i(s(t),255)))}},xe=class t{constructor(...t){this.init(...t)}clone(){return new t(this)}init(t,e){const r=Array.isArray(t)?{x:t[0],y:t[1]}:"object"==typeof t?{x:t.x,y:t.y}:{x:t,y:e};return this.x=r.x??0,this.y=r.y??0,this}toArray(){return[this.x,this.y]}transform(t){return this.clone().transformO(t)}transformO(t){Se.isMatrixLike(t)||(t=new Se(t));const{x:e,y:r}=this;return this.x=t.a*e+t.c*r+t.e,this.y=t.b*e+t.d*r+t.f,this}};function Ne(t,e,r){return Math.abs(e-t)<(r||1e-6)}var Se=class t{constructor(...t){this.init(...t)}static formatTransforms(t){const e="both"===t.flip||!0===t.flip,r=t.flip&&(e||"x"===t.flip)?-1:1,n=t.flip&&(e||"y"===t.flip)?-1:1,i=t.skew&&t.skew.length?t.skew[0]:isFinite(t.skew)?t.skew:isFinite(t.skewX)?t.skewX:0,s=t.skew&&t.skew.length?t.skew[1]:isFinite(t.skew)?t.skew:isFinite(t.skewY)?t.skewY:0,o=t.scale&&t.scale.length?t.scale[0]*r:isFinite(t.scale)?t.scale*r:isFinite(t.scaleX)?t.scaleX*r:r,a=t.scale&&t.scale.length?t.scale[1]*n:isFinite(t.scale)?t.scale*n:isFinite(t.scaleY)?t.scaleY*n:n,u=t.shear||0,h=t.rotate||t.theta||0,c=new xe(t.origin||t.around||t.ox||t.originX,t.oy||t.originY),l=c.x,f=c.y,d=new xe(t.position??t.px??t.positionX??NaN,t.py??t.positionY??NaN),m=d.x,p=d.y,y=new xe(t.translate||t.tx||t.translateX,t.ty||t.translateY),g=y.x,b=y.y,w=new xe(t.relative||t.rx||t.relativeX,t.ry||t.relativeY);return{scaleX:o,scaleY:a,skewX:i,skewY:s,shear:u,theta:h,rx:w.x,ry:w.y,tx:g,ty:b,ox:l,oy:f,px:m,py:p}}static fromArray(t){return{a:t[0],b:t[1],c:t[2],d:t[3],e:t[4],f:t[5]}}static isMatrixLike(t){return null!=t.a||null!=t.b||null!=t.c||null!=t.d||null!=t.e||null!=t.f}static matrixMultiply(t,e,r){const n=t.a*e.a+t.c*e.b,i=t.b*e.a+t.d*e.b,s=t.a*e.c+t.c*e.d,o=t.b*e.c+t.d*e.d,a=t.e+t.a*e.e+t.c*e.f,u=t.f+t.b*e.e+t.d*e.f;return r.a=n,r.b=i,r.c=s,r.d=o,r.e=a,r.f=u,r}around(t,e,r){return this.clone().aroundO(t,e,r)}aroundO(t,e,r){const n=t||0,i=e||0;return this.translateO(-n,-i).lmultiplyO(r).translateO(n,i)}clone(){return new t(this)}decompose(t=0,e=0){const r=this.a,n=this.b,i=this.c,s=this.d,o=this.e,a=this.f,u=r*s-n*i,h=u>0?1:-1,c=h*Math.sqrt(r*r+n*n),l=Math.atan2(h*n,h*r),f=(r*i+n*s)/u;return{scaleX:c,scaleY:i*c/(f*r-n)||s*c/(f*n+r),shear:f,rotate:180/Math.PI*l,translateX:o-t+t*r+e*i,translateY:a-e+t*n+e*s,originX:t,originY:e,a:this.a,b:this.b,c:this.c,d:this.d,e:this.e,f:this.f}}equals(e){if(e===this)return!0;const r=new t(e);return Ne(this.a,r.a)&&Ne(this.b,r.b)&&Ne(this.c,r.c)&&Ne(this.d,r.d)&&Ne(this.e,r.e)&&Ne(this.f,r.f)}flip(t,e){return this.clone().flipO(t,e)}flipO(t,e){return"x"===t?this.scaleO(-1,1,e,0):"y"===t?this.scaleO(1,-1,0,e):this.scaleO(-1,-1,t,e||t)}init(e){const r=t.fromArray([1,0,0,1,0,0]);return e=e instanceof Qe?e.matrixify():"string"==typeof e?t.fromArray(e.split(me).map(parseFloat)):Array.isArray(e)?t.fromArray(e):"object"==typeof e&&t.isMatrixLike(e)?e:"object"==typeof e?(new t).transform(e):6===arguments.length?t.fromArray([].slice.call(arguments)):r,this.a=null!=e.a?e.a:r.a,this.b=null!=e.b?e.b:r.b,this.c=null!=e.c?e.c:r.c,this.d=null!=e.d?e.d:r.d,this.e=null!=e.e?e.e:r.e,this.f=null!=e.f?e.f:r.f,this}inverse(){return this.clone().inverseO()}inverseO(){const t=this.a,e=this.b,r=this.c,n=this.d,i=this.e,s=this.f,o=t*n-e*r;if(!o)throw new Error("Cannot invert "+this);const a=n/o,u=-e/o,h=-r/o,c=t/o,l=-(a*i+h*s),f=-(u*i+c*s);return this.a=a,this.b=u,this.c=h,this.d=c,this.e=l,this.f=f,this}lmultiply(t){return this.clone().lmultiplyO(t)}lmultiplyO(e){const r=e instanceof t?e:new t(e);return t.matrixMultiply(r,this,this)}multiply(t){return this.clone().multiplyO(t)}multiplyO(e){const r=e instanceof t?e:new t(e);return t.matrixMultiply(this,r,this)}rotate(t,e,r){return this.clone().rotateO(t,e,r)}rotateO(t,e=0,r=0){t=Ct(t);const n=Math.cos(t),i=Math.sin(t),{a:s,b:o,c:a,d:u,e:h,f:c}=this;return this.a=s*n-o*i,this.b=o*n+s*i,this.c=a*n-u*i,this.d=u*n+a*i,this.e=h*n-c*i+r*i-e*n+e,this.f=c*n+h*i-e*i-r*n+r,this}scale(){return this.clone().scaleO(...arguments)}scaleO(t,e=t,r=0,n=0){3===arguments.length&&(n=r,r=e,e=t);const{a:i,b:s,c:o,d:a,e:u,f:h}=this;return this.a=i*t,this.b=s*e,this.c=o*t,this.d=a*e,this.e=u*t-r*t+r,this.f=h*e-n*e+n,this}shear(t,e,r){return this.clone().shearO(t,e,r)}shearO(t,e=0,r=0){const{a:n,b:i,c:s,d:o,e:a,f:u}=this;return this.a=n+i*t,this.c=s+o*t,this.e=a+u*t-r*t,this}skew(){return this.clone().skewO(...arguments)}skewO(t,e=t,r=0,n=0){3===arguments.length&&(n=r,r=e,e=t),t=Ct(t),e=Ct(e);const i=Math.tan(t),s=Math.tan(e),{a:o,b:a,c:u,d:h,e:c,f:l}=this;return this.a=o+a*i,this.b=a+o*s,this.c=u+h*i,this.d=h+u*s,this.e=c+l*i-n*i,this.f=l+c*s-r*s,this}skewX(t,e,r){return this.skew(t,0,e,r)}skewY(t,e,r){return this.skew(0,t,e,r)}toArray(){return[this.a,this.b,this.c,this.d,this.e,this.f]}toString(){return"matrix("+this.a+","+this.b+","+this.c+","+this.d+","+this.e+","+this.f+")"}transform(e){if(t.isMatrixLike(e))return new t(e).multiplyO(this);const r=t.formatTransforms(e),{x:n,y:i}=new xe(r.ox,r.oy).transform(this),s=(new t).translateO(r.rx,r.ry).lmultiplyO(this).translateO(-n,-i).scaleO(r.scaleX,r.scaleY).skewO(r.skewX,r.skewY).shearO(r.shear).rotateO(r.theta).translateO(n,i);if(isFinite(r.px)||isFinite(r.py)){const t=new xe(n,i).transform(s),e=isFinite(r.px)?r.px-t.x:0,o=isFinite(r.py)?r.py-t.y:0;s.translateO(e,o)}return s.translateO(r.tx,r.ty),s}translate(t,e){return this.clone().translateO(t,e)}translateO(t,e){return this.e+=t||0,this.f+=e||0,this}valueOf(){return{a:this.a,b:this.b,c:this.c,d:this.d,e:this.e,f:this.f}}};function _e(){if(!_e.nodes||_e.nodes.svg.node.ownerDocument!==Xt.document){const t=$t().size(2,0);t.node.style.cssText=["opacity: 0","position: absolute","left: -100%","top: -100%","overflow: hidden"].join(";"),t.attr("focusable","false"),t.attr("aria-hidden","true"),_e.nodes={svg:t,path:t.path().node}}return _e.nodes.svg.node.parentNode||_e.nodes.svg.addTo(Xt.document.body||Xt.document.documentElement),_e.nodes}function Oe(t){return!(t.width||t.height||t.x||t.y)}Kt(Se,"Matrix");var Ee=class t{constructor(...t){this.init(...t)}addOffset(){return this.x+=Xt.window.pageXOffset,this.y+=Xt.window.pageYOffset,new t(this)}init(t){return t="string"==typeof t?t.split(me).map(parseFloat):Array.isArray(t)?t:"object"==typeof t?[null!=t.left?t.left:t.x,null!=t.top?t.top:t.y,t.width,t.height]:4===arguments.length?[].slice.call(arguments):[0,0,0,0],this.x=t[0]||0,this.y=t[1]||0,this.width=this.w=t[2]||0,this.height=this.h=t[3]||0,this.x2=this.x+this.w,this.y2=this.y+this.h,this.cx=this.x+this.w/2,this.cy=this.y+this.h/2,this}isNulled(){return Oe(this)}merge(e){const r=Math.min(this.x,e.x),n=Math.min(this.y,e.y),i=Math.max(this.x+this.width,e.x+e.width)-r,s=Math.max(this.y+this.height,e.y+e.height)-n;return new t(r,n,i,s)}toArray(){return[this.x,this.y,this.width,this.height]}toString(){return this.x+" "+this.y+" "+this.width+" "+this.height}transform(e){e instanceof Se||(e=new Se(e));let r=1/0,n=-1/0,i=1/0,s=-1/0;return[new xe(this.x,this.y),new xe(this.x2,this.y),new xe(this.x,this.y2),new xe(this.x2,this.y2)].forEach(function(t){t=t.transform(e),r=Math.min(r,t.x),n=Math.max(n,t.x),i=Math.min(i,t.y),s=Math.max(s,t.y)}),new t(r,i,n-r,s-i)}};function Pe(t,e,r){let n;try{if(n=e(t.node),Oe(n)&&(i=t.node)!==Xt.document&&!(Xt.document.documentElement.contains||function(t){for(;t.parentNode;)t=t.parentNode;return t===Xt.document}).call(Xt.document.documentElement,i))throw new Error("Element not in the dom")}catch(e){n=r(t)}var i;return n}d({viewbox:{viewbox(t,e,r,n){return null==t?new Ee(this.attr("viewBox")):this.attr("viewBox",new Ee(t,e,r,n))},zoom(t,e){let{width:r,height:n}=this.attr(["width","height"]);if((r||n)&&"string"!=typeof r&&"string"!=typeof n||(r=this.node.clientWidth,n=this.node.clientHeight),!r||!n)throw new Error("Impossible to get absolute width and height. Please provide an absolute width and height attribute on the zooming element");const i=this.viewbox(),s=r/i.width,o=n/i.height,a=Math.min(s,o);if(null==t)return a;let u=a/t;u===1/0&&(u=Number.MAX_SAFE_INTEGER/100),e=e||new xe(r/2/s+i.x,n/2/o+i.y);const h=new Ee(i).transform(new Se({scale:u,origin:e}));return this.viewbox(h)}}}),Kt(Ee,"Box");var Me=class extends Array{constructor(t=[],...e){if(super(t,...e),"number"==typeof t)return this;this.length=0,this.push(...t)}};ee([Me],{each(t,...e){return"function"==typeof t?this.map((e,r,n)=>t.call(e,e,r,n)):this.map(r=>r[t](...e))},toArray(){return Array.prototype.concat.apply([],this)}});const Ae=["toArray","constructor","each"];function Te(t){let e=(t+"").trim();const r=e.match(/^url\((.*)\)$/i);if(r){e=r[1].trim();const t=e[0];if('"'===t||"'"===t){if(e[e.length-1]!==t)return null;e=e.slice(1,-1)}}const n=e.match(oe);return n?n[1].slice(1):null}function je(t,e){const r=`#${Xt.window.CSS.escape(e)}`;return 1===t.nodeType&&t.matches(r)?t:t.querySelector(r)}function Ce(t,e,r=`[${e}]`){const n=t.getAttribute("id"),i=t.getRootNode();if(!n||je(i,n)!==t)return new Me;const s=[];1===i.nodeType&&i.matches(r)&&Te(i.getAttribute(e))===n&&s.push(Ht(i));for(const t of i.querySelectorAll(r))Te(t.getAttribute(e))===n&&s.push(Ht(t));return new Me(s)}Me.extend=function(t){t=t.reduce((t,e)=>((0,Tt.default)(Ae).call(Ae,e)||"_"===e[0]||(e in Array.prototype&&(t["$"+e]=Array.prototype[e]),t[e]=function(...t){return this.each(e,...t)}),t),{}),ee([Me],t)};let De=0;const Ie=new WeakMap,ke=new WeakMap,Fe=()=>Object.create(null);function Le(t){const e=t.getEventHolder();let r=Ie.get(e);return r||(r=Fe(),Ie.set(e,r)),r}function Be(t){return t.getEventTarget()}function Ve(t,e,r,n,i){const s=r.bind(n||t),o=i||!1,a=$t(t),u=Le(a),h=Be(a);e=Array.isArray(e)?e:e.split(me);let c=ke.get(r);c||(c=++De,ke.set(r,c)),e.forEach(function(t){const e=t.split(".")[0],r=t.split(".")[1]||"*";u[e]=u[e]||Fe(),u[e][r]=u[e][r]||Fe(),u[e][r][c]=u[e][r][c]||[],u[e][r][c].push({listener:s,options:o}),h.addEventListener(e,s,o)})}function Re(t,e,r,n){const i=$t(t),s=Le(i),o=Be(i);("function"!=typeof r||(r=ke.get(r)))&&(e=Array.isArray(e)?e:(e||"").split(me)).forEach(function(t){const e=t&&t.split(".")[0],a=t&&t.split(".")[1];let u,h;if(r){if(s[e]&&s[e][a||"*"]){const t=s[e][a||"*"][r];if(!t)return;t.forEach(function(t){o.removeEventListener(e,t.listener,t.options??n??!1)}),delete s[e][a||"*"][r]}}else if(e&&a){if(s[e]&&s[e][a]){for(h in s[e][a])Re(o,[e,a].join("."),h);delete s[e][a]}}else if(a)for(t in s)for(u in s[t])a===u&&Re(o,[t,a].join("."));else if(e){if(s[e]){for(u in s[e])Re(o,[e,u].join("."));delete s[e]}}else{for(t in s)Re(o,t);!function(t){Ie.delete(t.getEventHolder())}(i)}})}var ze=class extends Gt{addEventListener(){}dispatch(t,e,r){return function(t,e,r,n){const i=Be(t);return e instanceof Xt.window.Event||(e=new Xt.window.CustomEvent(e,{detail:r,cancelable:!0,...n})),i.dispatchEvent(e),e}(this,t,e,r)}dispatchEvent(t){const e=Le(this)[t.type];if(!e)return!0;for(const r in e)for(const n in e[r])e[r][n].forEach(function(e){e.listener(t)});return!t.defaultPrevented}fire(t,e,r){return this.dispatch(t,e,r),this}getEventHolder(){return this}getEventTarget(){return this}off(t,e,r){return Re(this,t,e,r),this}on(t,e,r,n){return Ve(this,t,e,r,n),this}removeEventListener(){}};function Xe(){}Kt(ze,"EventTarget");const Ge=400,Ue=">",Ye=0,We={"fill-opacity":1,"stroke-opacity":1,"stroke-width":0,"stroke-linejoin":"miter","stroke-linecap":"butt",fill:"#000000",stroke:"#000000",opacity:1,x:0,y:0,cx:0,cy:0,width:0,height:0,r:0,rx:0,ry:0,offset:0,"stop-opacity":1,"stop-color":"#000000","text-anchor":"start"};var $e=class extends Array{constructor(...t){super(...t),this.init(...t)}clone(){return new this.constructor(this)}init(t){return"number"==typeof t||(this.length=0,this.push(...this.parse(t))),this}parse(t=[]){return t instanceof Array?t:t.trim().split(me).map(parseFloat)}toArray(){return Array.prototype.concat.apply([],this)}toSet(){return new Set(this)}toString(){return this.join(" ")}valueOf(){const t=[];return t.push(...this),t}},qe=class t{constructor(...t){this.init(...t)}convert(e){return new t(this.value,e)}divide(e){return e=new t(e),new t(this/e,this.unit||e.unit)}init(e,r){return r=Array.isArray(e)?e[1]:r,e=Array.isArray(e)?e[0]:e,this.value=0,this.unit=r||"","number"==typeof e?this.value=isNaN(e)?0:isFinite(e)?e:e<0?-34e37:34e37:"string"==typeof e?(r=e.match(ne))&&(this.value=parseFloat(r[1]),"%"===r[5]?this.value/=100:"s"===r[5]&&(this.value*=1e3),this.unit=r[5]):e instanceof t&&(this.value=e.valueOf(),this.unit=e.unit),this}minus(e){return e=new t(e),new t(this-e,this.unit||e.unit)}plus(e){return e=new t(e),new t(this+e,this.unit||e.unit)}times(e){return e=new t(e),new t(this*e,this.unit||e.unit)}toArray(){return[this.value,this.unit]}toJSON(){return this.toString()}toString(){return("%"===this.unit?~~(1e8*this.value)/1e6:"s"===this.unit?this.value/1e3:this.value)+this.unit}valueOf(){return this.value}};const He=new Set(["fill","stroke","color","bgcolor","stop-color","flood-color","lighting-color"]),Je=[];var Ke=class t extends ze{constructor(t,e){super(),this.node=t,this.type=t.nodeName,e&&t!==e&&this.attr(e)}add(t,e){return(t=$t(t)).removeNamespace&&this.node instanceof Xt.window.SVGElement&&t.removeNamespace(),null==e?this.node.appendChild(t.node):t.node!==this.node.childNodes[e]&&this.node.insertBefore(t.node,this.node.childNodes[e]),this}addTo(t,e){return $t(t).put(this,e)}children(){return new Me(jt(this.node.children,function(t){return Ht(t)}))}clear(){for(;this.node.hasChildNodes();)this.node.removeChild(this.node.lastChild);return this}clone(t=!0,e=!0){this.writeDataToDom();let r=this.node.cloneNode(t);return e&&(r=te(r)),new this.constructor(r)}each(t,e){const r=this.children();let n,i;for(n=0,i=r.length;n<i;n++)t.apply(r[n],[n,r]),e&&r[n].each(t,e);return this}element(e,r){return this.put(new t(Wt(e),r))}first(){return Ht(this.node.firstChild)}get(t){return Ht(this.node.childNodes[t])}getEventHolder(){return this.node}getEventTarget(){return this.node}has(t){return this.index(t)>=0}html(t,e){return this.xml(t,e,"http://www.w3.org/1999/xhtml")}id(t){return void 0!==t||this.node.id||(this.node.id=Zt(this.type)),this.attr("id",t)}index(t){return[].slice.call(this.node.childNodes).indexOf(t.node)}last(){return Ht(this.node.lastChild)}matches(t){const e=this.node,r=e.matches||e.matchesSelector||e.msMatchesSelector||e.mozMatchesSelector||e.webkitMatchesSelector||e.oMatchesSelector||null;return r&&r.call(e,t)}parent(t){let e=this;if(!e.node.parentNode)return null;if(e=Ht(e.node.parentNode),!t)return e;do{if("string"==typeof t?e.matches(t):e instanceof t)return e}while(e=Ht(e.node.parentNode));return e}put(t,e){return t=$t(t),this.add(t,e),t}putIn(t,e){return $t(t).add(this,e)}remove(){return this.parent()&&this.parent().removeElement(this),this}removeElement(t){return this.node.removeChild(t.node),this}replace(t){return t=$t(t),this.node.parentNode&&this.node.parentNode.replaceChild(t.node,this.node),t}round(t=2,e=null){const r=10**t,n=this.attr(e);for(const t in n)"number"==typeof n[t]&&(n[t]=Math.round(n[t]*r)/r);return this.attr(n),this}svg(t,e){return this.xml(t,e,Vt)}toString(){return this.id()}words(t){return this.node.textContent=t,this}wrap(t){const e=this.parent();if(!e)return this.addTo(t);const r=e.index(this);return e.put(t,r).put(this)}writeDataToDom(){return this.each(function(){this.writeDataToDom()}),this}xml(t,e,r){if("boolean"==typeof t&&(r=e,e=t,t=null),null==t||"function"==typeof t){e=e??!0,this.writeDataToDom();let r=this;if(null!=t){if(r=Ht(r.node.cloneNode(!0)),e){const e=t(r);if(r=e||r,!1===e)return""}r.each(function(){const e=t(this),r=e||this;!1===e?this.remove():e&&this!==r&&this.replace(r)},!0)}return e?r.node.outerHTML:r.node.innerHTML}e=e??!1;const n=Wt("wrapper",r),i=Xt.document.createDocumentFragment();n.innerHTML=t;for(let t=n.children.length;t--;)i.appendChild(n.firstElementChild);const s=this.parent();return e?this.replace(i)&&s:this.add(i)}};ee(Ke,{attr:function(t,e,r){if(null==t){t={},e=this.node.attributes;for(const r of e)t[r.nodeName]=fe.test(r.nodeValue)?parseFloat(r.nodeValue):r.nodeValue;return t}if(t instanceof Array)return t.reduce((t,e)=>(t[e]=this.attr(e),t),{});if("object"==typeof t&&t.constructor===Object)for(e in t)this.attr(e,t[e]);else if(null===e)this.node.removeAttribute(t);else{if(null==e)return null==(e=this.node.getAttribute(t))?We[t]:fe.test(e)?parseFloat(e):e;"number"==typeof(e=Je.reduce((e,r)=>r(t,e,this),e))?e=new qe(e):He.has(t)&&ve.isColor(e)?e=new ve(e):e.constructor===Array&&(e=new $e(e)),"leading"===t?this.leading&&this.leading(e):"string"==typeof r?this.node.setAttributeNS(r,t,e.toString()):this.node.setAttribute(t,e.toString()),!this.rebuild||"font-size"!==t&&"x"!==t||this.rebuild()}return this},find:function(t){return function(t,e){return new Me(jt((e||Xt.document).querySelectorAll(t),function(t){return Ht(t)}))}(t,this.node)},findOne:function(t){return Ht(this.node.querySelector(t))}}),Kt(Ke,"Dom");var Qe=class extends Ke{constructor(t,e){super(t,e),this.dom={},this.node.instance=this,(t.hasAttribute("data-svgjs")||t.hasAttribute("svgjs:data"))&&this.setData(JSON.parse(t.getAttribute("data-svgjs"))??JSON.parse(t.getAttribute("svgjs:data"))??{})}center(t,e){return this.cx(t).cy(e)}cx(t){return null==t?this.x()+this.width()/2:this.x(t-this.width()/2)}cy(t){return null==t?this.y()+this.height()/2:this.y(t-this.height()/2)}defs(){const t=this.root();return t&&t.defs()}dmove(t,e){return this.dx(t).dy(e)}dx(t=0){return this.x(new qe(t).plus(this.x()))}dy(t=0){return this.y(new qe(t).plus(this.y()))}getEventHolder(){return this}height(t){return this.attr("height",t)}move(t,e){return this.x(t).y(e)}parents(t=this.root()){const e="string"==typeof t,r=this.root(),n=r&&r.node;e||(t=t&&$t(t).node);const i=new Me;let s=this;for(;(s=s.parent())&&s.node!==Xt.document&&"#document-fragment"!==s.node.nodeName&&(i.push(s),e||s.node!==t)&&(!e||!s.matches(t));)if(n&&s.node===n)return null;return i}reference(t){if(!(t=this.attr(t)))return null;const e=function(t,e){const r=Te(e);return r?je(t.getRootNode(),r):null}(this.node,t);return e?$t(e):null}root(){const t=this.parent(Ut[Yt]);return t&&t.root()}setData(t){return this.dom=t,this}size(t,e){const r=kt(this,t,e);return this.width(new qe(r.width)).height(new qe(r.height))}width(t){return this.attr("width",t)}writeDataToDom(t){return((t,e,r={})=>{const n={...e};for(const t in n)n[t].valueOf()===r[t]&&delete n[t];Object.keys(n).length?t.node.setAttribute("data-svgjs",JSON.stringify(n)):(t.node.removeAttribute("data-svgjs"),t.node.removeAttribute("svgjs:data"))})(this,this.dom,t),super.writeDataToDom()}x(t){return this.attr("x",t)}y(t){return this.attr("y",t)}};ee(Qe,{bbox:function(){const t=Pe(this,t=>t.getBBox(),t=>{try{const e=t.clone().addTo(_e().svg).show(),r=e.node.getBBox();return e.remove(),r}catch(e){throw new Error(`Getting bbox of element "${t.node.nodeName}" is not possible: ${e.toString()}`)}});return new Ee(t)},rbox:function(t){const e=Pe(this,t=>t.getBoundingClientRect(),t=>{throw new Error(`Getting rbox of element "${t.node.nodeName}" is not possible`)}),r=new Ee(e);return t?r.transform(t.screenCTM().inverseO()):r.addOffset()},inside:function(t,e){const r=this.bbox();return t>r.x&&e>r.y&&t<r.x+r.width&&e<r.y+r.height},point:function(t,e){return new xe(t,e).transformO(this.screenCTM().inverseO())},ctm:function(){return new Se(this.node.getCTM())},screenCTM:function(){try{if("function"==typeof this.isRoot&&!this.isRoot()){const t=this.rect(1,1),e=t.node.getScreenCTM();return t.remove(),new Se(e)}return new Se(this.node.getScreenCTM())}catch(t){return console.warn(`Cannot get CTM from SVG node ${this.node.nodeName}. Is the element rendered?`),new Se}}}),Kt(Qe,"Element");const Ze={stroke:["color","width","opacity","linecap","linejoin","miterlimit","dasharray","dashoffset"],fill:["color","opacity","rule"],prefix:function(t,e){return"color"===e?t:t+"-"+e}};["fill","stroke"].forEach(function(t){const e={};let r;e[t]=function(e){if(void 0===e)return this.attr(t);if("string"==typeof e||e instanceof ve||ve.isRgb(e)||e instanceof Qe)this.attr(t,e);else for(r=Ze[t].length-1;r>=0;r--)null!=e[Ze[t][r]]&&this.attr(Ze.prefix(t,Ze[t][r]),e[Ze[t][r]]);return this},d(["Element","Runner"],e)}),d(["Element","Runner"],{matrix:function(t,e,r,n,i,s){return null==t?new Se(this):this.attr("transform",new Se(t,e,r,n,i,s))},rotate:function(t,e,r){return this.transform({rotate:t,ox:e,oy:r},!0)},skew:function(t,e,r,n){return 1===arguments.length||3===arguments.length?this.transform({skew:t,ox:e,oy:r},!0):this.transform({skew:[t,e],ox:r,oy:n},!0)},shear:function(t,e,r){return this.transform({shear:t,ox:e,oy:r},!0)},scale:function(t,e,r,n){return 1===arguments.length||3===arguments.length?this.transform({scale:t,ox:e,oy:r},!0):this.transform({scale:[t,e],ox:r,oy:n},!0)},translate:function(t,e){return this.transform({translate:[t,e]},!0)},relative:function(t,e){return this.transform({relative:[t,e]},!0)},flip:function(t="both",e="center"){return-1==="xybothtrue".indexOf(t)&&(e=t,t="both"),this.transform({flip:t,origin:e},!0)},opacity:function(t){return this.attr("opacity",t)}}),d("radius",{radius:function(t,e=t){return"radialGradient"===(this._element||this).type?this.attr("r",new qe(t)):this.rx(t).ry(e)}}),d("Path",{length:function(){return this.node.getTotalLength()},pointAt:function(t){return new xe(this.node.getPointAtLength(t))}}),d(["Element","Runner"],{font:function(t,e){if("object"==typeof t){for(e in t)this.font(e,t[e]);return this}return"leading"===t?this.leading(e):"anchor"===t?this.attr("text-anchor",e):"size"===t||"family"===t||"weight"===t||"stretch"===t||"variant"===t||"style"===t?this.attr("font-"+t,e):this.attr(t,e)}}),d("Element",["click","dblclick","mousedown","mouseup","mouseover","mouseout","mousemove","mouseenter","mouseleave","touchstart","touchmove","touchleave","touchend","touchcancel","contextmenu","wheel","pointerdown","pointermove","pointerup","pointerleave","pointercancel"].reduce(function(t,e){return t[e]=function(t){return null===t?this.off(e):this.on(e,t),this},t},{})),d("Element",{untransform:function(){return this.attr("transform",null)},matrixify:function(){return(this.attr("transform")||"").split(ae).slice(0,-1).map(function(t){const e=t.trim().split("(");return[e[0].trim(),e[1].split(me).map(function(t){return parseFloat(t)})]}).reverse().reduce(function(t,e){return"matrix"===e[0]?t.lmultiply(Se.fromArray(e[1])):t[e[0]].apply(t,e[1])},new Se)},toParent:function(t,e){if(this===t)return this;if(Bt(this.node))return this.addTo(t,e);const r=this.screenCTM(),n=t.screenCTM().inverse();return this.addTo(t,e).untransform().transform(n.multiply(r)),this},toRoot:function(t){return this.toParent(this.root(),t)},transform:function(t,e){if(null==t||"string"==typeof t){const e=new Se(this).decompose();return null==t?e:e[t]}Se.isMatrixLike(t)||(t={...t,origin:Ft(t,this)});const r=new Se(!0===e?this:e||!1).transform(t);return this.attr("transform",r)}});var tr=class t extends Qe{flatten(){return this.each(function(){if(this instanceof t)return this.flatten().ungroup()}),this}ungroup(t=this.parent(),e=t.index(this)){return e=-1===e?t.children().length:e,this.each(function(r,n){return n[n.length-r-1].toParent(t,e)}),this.remove()}};Kt(tr,"Container");var er=class extends tr{constructor(t,e=t){super(qt("defs",t),e)}flatten(){return this}ungroup(){return this}};Kt(er,"Defs");var rr=class extends Qe{};Kt(rr,"Shape");var nr=h({cx:()=>ur,cy:()=>hr,height:()=>lr,rx:()=>ir,ry:()=>sr,width:()=>cr,x:()=>or,y:()=>ar});function ir(t){return this.attr("rx",t)}function sr(t){return this.attr("ry",t)}function or(t){return null==t?this.cx()-this.rx():this.cx(t+this.rx())}function ar(t){return null==t?this.cy()-this.ry():this.cy(t+this.ry())}function ur(t){return this.attr("cx",t)}function hr(t){return this.attr("cy",t)}function cr(t){return null==t?2*this.rx():this.rx(new qe(t).divide(2))}function lr(t){return null==t?2*this.ry():this.ry(new qe(t).divide(2))}var fr=class extends rr{constructor(t,e=t){super(qt("ellipse",t),e)}size(t,e){const r=kt(this,t,e);return this.rx(new qe(r.width).divide(2)).ry(new qe(r.height).divide(2))}};ee(fr,nr),d("Container",{ellipse:re(function(t=0,e=t){return this.put(new fr).size(t,e).move(0,0)})}),Kt(fr,"Ellipse");var dr=class extends Ke{constructor(t=Xt.document.createDocumentFragment()){super(t)}xml(t,e,r){if("boolean"==typeof t&&(r=e,e=t,t=null),null==t||"function"==typeof t){const t=new Ke(Wt("wrapper",r));return t.add(this.node.cloneNode(!0)),t.xml(!1,r)}return super.xml(t,!1,r)}};Kt(dr,"Fragment");var mr=h({from:()=>pr,to:()=>yr});function pr(t,e){return"radialGradient"===(this._element||this).type?this.attr({fx:new qe(t),fy:new qe(e)}):this.attr({x1:new qe(t),y1:new qe(e)})}function yr(t,e){return"radialGradient"===(this._element||this).type?this.attr({cx:new qe(t),cy:new qe(e)}):this.attr({x2:new qe(t),y2:new qe(e)})}var gr=class extends tr{constructor(t,e){super(qt(t+"Gradient","string"==typeof t?null:t),e)}attr(t,e,r){return"transform"===t&&(t="gradientTransform"),super.attr(t,e,r)}bbox(){return new Ee}targets(){return Ce(this.node,"fill")}toString(){return this.url()}update(t){return this.clear(),"function"==typeof t&&t.call(this,this),this}url(){return"url(#"+this.id()+")"}};ee(gr,mr),d({Container:{gradient(...t){return this.defs().gradient(...t)}},Defs:{gradient:re(function(t,e){return this.put(new gr(t)).update(e)})}}),Kt(gr,"Gradient");var br=class extends tr{constructor(t,e=t){super(qt("pattern",t),e)}attr(t,e,r){return"transform"===t&&(t="patternTransform"),super.attr(t,e,r)}bbox(){return new Ee}targets(){return Ce(this.node,"fill")}toString(){return this.url()}update(t){return this.clear(),"function"==typeof t&&t.call(this,this),this}url(){return"url(#"+this.id()+")"}};d({Container:{pattern(...t){return this.defs().pattern(...t)}},Defs:{pattern:re(function(t,e,r){return this.put(new br).update(r).attr({x:0,y:0,width:t,height:e,patternUnits:"userSpaceOnUse"})})}}),Kt(br,"Pattern");var wr,vr=class extends rr{constructor(t,e=t){super(qt("image",t),e)}load(t,e){if(!t)return this;const r=new Xt.window.Image;return Ve(r,"load",function(t){const n=this.parent(br);0===this.width()&&0===this.height()&&this.size(r.width,r.height),n instanceof br&&0===n.width()&&0===n.height()&&n.size(this.width(),this.height()),"function"==typeof e&&e.call(this,t)},this),Ve(r,"load error",function(){Re(r)}),this.attr("href",r.src=t,zt)}};wr=function(t,e,r){return"fill"!==t&&"stroke"!==t||de.test(e)&&(e=r.root().defs().image(e)),e instanceof vr&&(e=r.root().defs().pattern(0,0,t=>{t.add(e)})),e},Je.push(wr),d({Container:{image:re(function(t,e){return this.put(new vr).size(0,0).load(t,e)})}}),Kt(vr,"Image");var xr=class extends $e{bbox(){let t=-1/0,e=-1/0,r=1/0,n=1/0;return this.forEach(function(i){t=Math.max(i[0],t),e=Math.max(i[1],e),r=Math.min(i[0],r),n=Math.min(i[1],n)}),new Ee(r,n,t-r,e-n)}move(t,e){const r=this.bbox();if(t-=r.x,e-=r.y,!isNaN(t)&&!isNaN(e))for(let r=this.length-1;r>=0;r--)this[r]=[this[r][0]+t,this[r][1]+e];return this}parse(t=[0,0]){const e=[];(t=t instanceof Array?Array.prototype.concat.apply([],t):t.trim().split(me).map(parseFloat)).length%2!=0&&t.pop();for(let r=0,n=t.length;r<n;r+=2)e.push([t[r],t[r+1]]);return e}size(t,e){let r;const n=this.bbox();for(r=this.length-1;r>=0;r--)n.width&&(this[r][0]=(this[r][0]-n.x)*t/n.width+n.x),n.height&&(this[r][1]=(this[r][1]-n.y)*e/n.height+n.y);return this}toLine(){return{x1:this[0][0],y1:this[0][1],x2:this[1][0],y2:this[1][1]}}toString(){const t=[];for(let e=0,r=this.length;e<r;e++)t.push(this[e].join(","));return t.join(" ")}transform(t){return this.clone().transformO(t)}transformO(t){Se.isMatrixLike(t)||(t=new Se(t));for(let e=this.length;e--;){const[r,n]=this[e];this[e][0]=t.a*r+t.c*n+t.e,this[e][1]=t.b*r+t.d*n+t.f}return this}},Nr=h({MorphArray:()=>Sr,height:()=>Pr,width:()=>Er,x:()=>_r,y:()=>Or});const Sr=xr;function _r(t){return null==t?this.bbox().x:this.move(t,this.bbox().y)}function Or(t){return null==t?this.bbox().y:this.move(this.bbox().x,t)}function Er(t){const e=this.bbox();return null==t?e.width:this.size(t,e.height)}function Pr(t){const e=this.bbox();return null==t?e.height:this.size(e.width,t)}var Mr=class extends rr{constructor(t,e=t){super(qt("line",t),e)}array(){return new xr([[this.attr("x1"),this.attr("y1")],[this.attr("x2"),this.attr("y2")]])}move(t,e){return this.attr(this.array().move(t,e).toLine())}plot(t,e,r,n){return null==t?this.array():(t=void 0!==e?{x1:t,y1:e,x2:r,y2:n}:new xr(t).toLine(),this.attr(t))}size(t,e){const r=kt(this,t,e);return this.attr(this.array().size(r.width,r.height).toLine())}};ee(Mr,Nr),d({Container:{line:re(function(...t){return Mr.prototype.plot.apply(this.put(new Mr),null!=t[0]?t:[0,0,0,0])})}}),Kt(Mr,"Line");var Ar=class extends tr{constructor(t,e=t){super(qt("marker",t),e)}height(t){return this.attr("markerHeight",t)}orient(t){return this.attr("orient",t)}ref(t,e){return this.attr("refX",t).attr("refY",e)}toString(){return"url(#"+this.id()+")"}update(t){return this.clear(),"function"==typeof t&&t.call(this,this),this}width(t){return this.attr("markerWidth",t)}};function Tr(t,e){return function(r){return null==r?this[t]:(this[t]=r,e&&e.call(this),this)}}d({Container:{marker(...t){return this.defs().marker(...t)}},Defs:{marker:re(function(t,e,r){return this.put(new Ar).size(t,e).ref(t/2,e/2).viewbox(0,0,t,e).attr("orient","auto").update(r)})},marker:{marker(t,e,r,n){let i=["marker"];return"all"!==t&&i.push(t),i=i.join("-"),t=arguments[1]instanceof Ar?arguments[1]:this.defs().marker(e,r,n),this.attr(i,t)}}}),Kt(Ar,"Marker");const jr={"-":function(t){return t},"<>":function(t){return-Math.cos(t*Math.PI)/2+.5},">":function(t){return Math.sin(t*Math.PI/2)},"<":function(t){return 1-Math.cos(t*Math.PI/2)},bezier:function(t,e,r,n){return function(i){return i<0?t>0?e/t*i:r>0?n/r*i:0:i>1?r<1?(1-n)/(1-r)*i+(n-r)/(1-r):t<1?(1-e)/(1-t)*i+(e-t)/(1-t):1:3*i*(1-i)**2*e+3*i**2*(1-i)*n+i**3}},steps:function(t,e="end"){e=e.split("-").reverse()[0];let r=t;return"none"===e?--r:"both"===e&&++r,(n,i=!1)=>{let s=Math.floor(n*t);const o=n*s%1==0;return"start"!==e&&"both"!==e||++s,i&&o&&--s,n>=0&&s<0&&(s=0),n<=1&&s>r&&(s=r),s/r}}};var Cr=class{done(){return!1}},Dr=class extends Cr{constructor(t=Ue){super(),this.ease=jr[t]||t}step(t,e,r){return"number"!=typeof t?r<1?t:e:t+(e-t)*this.ease(r)}},Ir=class extends Cr{constructor(t){super(),this.stepper=t}done(t){return t.done}step(t,e,r,n){return this.stepper(t,e,r,n)}};function kr(){const t=(this._duration||500)/1e3,e=this._overshoot||0,r=Math.PI,n=Math.log(e/100+1e-10),i=-n/Math.sqrt(r*r+n*n),s=3.9/(i*t);this.d=2*i*s,this.k=s*s}ee(class extends Ir{constructor(t=500,e=0){super(),this.duration(t).overshoot(e)}step(t,e,r,n){if("string"==typeof t)return t;if(n.done=r===1/0,r===1/0)return e;if(0===r)return t;r>100&&(r=16),r/=1e3;const i=n.velocity||0,s=-this.d*i-this.k*(t-e),o=t+i*r+s*r*r/2;return n.velocity=i+s*r,n.done=Math.abs(e-o)+Math.abs(i)<.002,n.done?e:o}},{duration:Tr("_duration",kr),overshoot:Tr("_overshoot",kr)}),ee(class extends Ir{constructor(t=.1,e=.01,r=0,n=1e3){super(),this.p(t).i(e).d(r).windup(n)}step(t,e,r,n){if("string"==typeof t)return t;if(n.done=r===1/0,r===1/0)return e;if(0===r)return t;const i=e-t;let s=(n.integral||0)+i*r;const o=(i-(n.error||0))/r,a=this._windup;return!1!==a&&(s=Math.max(-a,Math.min(s,a))),n.error=i,n.integral=s,n.done=Math.abs(i)<.001,n.done?e:t+(this.P*i+this.I*s+this.D*o)}},{windup:Tr("_windup"),p:Tr("P"),i:Tr("I"),d:Tr("D")});const Fr={M:2,L:2,H:1,V:1,C:6,S:4,Q:4,T:2,A:7,Z:0},Lr={M:function(t,e,r){return e.x=r.x=t[0],e.y=r.y=t[1],["M",e.x,e.y]},L:function(t,e){return e.x=t[0],e.y=t[1],["L",t[0],t[1]]},H:function(t,e){return e.x=t[0],["H",t[0]]},V:function(t,e){return e.y=t[0],["V",t[0]]},C:function(t,e){return e.x=t[4],e.y=t[5],["C",t[0],t[1],t[2],t[3],t[4],t[5]]},S:function(t,e){return e.x=t[2],e.y=t[3],["S",t[0],t[1],t[2],t[3]]},Q:function(t,e){return e.x=t[2],e.y=t[3],["Q",t[0],t[1],t[2],t[3]]},T:function(t,e){return e.x=t[0],e.y=t[1],["T",t[0],t[1]]},Z:function(t,e,r){return e.x=r.x,e.y=r.y,["Z"]},A:function(t,e){return e.x=t[5],e.y=t[6],["A",t[0],t[1],t[2],t[3],t[4],t[5],t[6]]}},Br="mlhvqtcsaz".split("");for(let t=0,e=Br.length;t<e;++t)Lr[Br[t]]=function(t){return function(e,r,n){if("H"===t)e[0]=e[0]+r.x;else if("V"===t)e[0]=e[0]+r.y;else if("A"===t)e[5]=e[5]+r.x,e[6]=e[6]+r.y;else for(let t=0,n=e.length;t<n;++t)e[t]=e[t]+(t%2?r.y:r.x);return Lr[t](e,r,n)}}(Br[t].toUpperCase());function Vr(t){return t.segment.length&&t.segment.length-1===Fr[t.segment[0].toUpperCase()]}function Rr(t,e){t.inNumber&&zr(t,!1);const r=pe.test(e);if(r)t.segment=[e];else{const e=t.lastCommand,r=e.toLowerCase();t.segment=["m"===r?e===r?"l":"L":e]}return t.inSegment=!0,t.lastCommand=t.segment[0],r}function zr(t,e){if(!t.inNumber)throw new Error("Parser Error");t.number&&t.segment.push(parseFloat(t.number)),t.inNumber=e,t.number="",t.pointSeen=!1,t.hasExponent=!1,Vr(t)&&Xr(t)}function Xr(t){t.inSegment=!1,t.absolute&&(t.segment=function(t){return Lr[t.segment[0]](t.segment.slice(1),t.p,t.p0)}(t)),t.segments.push(t.segment)}function Gr(t){if(!t.segment.length)return!1;const e="A"===t.segment[0].toUpperCase(),r=t.segment.length;return e&&(4===r||5===r)}function Ur(t){return"E"===t.lastToken.toUpperCase()}const Yr=new Set([" ",",","\t","\n","\r","\f"]);var Wr=class extends $e{bbox(){return _e().path.setAttribute("d",this.toString()),new Ee(_e.nodes.path.getBBox())}move(t,e){const r=this.bbox();if(t-=r.x,e-=r.y,!isNaN(t)&&!isNaN(e))for(let r,n=this.length-1;n>=0;n--)r=this[n][0],"M"===r||"L"===r||"T"===r?(this[n][1]+=t,this[n][2]+=e):"H"===r?this[n][1]+=t:"V"===r?this[n][1]+=e:"C"===r||"S"===r||"Q"===r?(this[n][1]+=t,this[n][2]+=e,this[n][3]+=t,this[n][4]+=e,"C"===r&&(this[n][5]+=t,this[n][6]+=e)):"A"===r&&(this[n][6]+=t,this[n][7]+=e);return this}parse(t="M0 0"){return Array.isArray(t)&&(t=Array.prototype.concat.apply([],t).toString()),function(t,e=!0){let r=0,n="";const i={segment:[],inNumber:!1,number:"",lastToken:"",inSegment:!1,segments:[],pointSeen:!1,hasExponent:!1,absolute:e,p0:new xe,p:new xe};for(;i.lastToken=n,n=t.charAt(r++);)if(i.inSegment||!Rr(i,n))if("."!==n)if(isNaN(parseInt(n)))if(Yr.has(n))i.inNumber&&zr(i,!1);else if("-"!==n&&"+"!==n)if("E"!==n.toUpperCase()){if(pe.test(n)){if(i.inNumber)zr(i,!1);else{if(!Vr(i))throw new Error("parser Error");Xr(i)}--r}}else i.number+=n,i.hasExponent=!0;else{if(i.inNumber&&!Ur(i)){zr(i,!1),--r;continue}i.number+=n,i.inNumber=!0}else{if("0"===i.number||Gr(i)){i.inNumber=!0,i.number=n,zr(i,!0);continue}i.inNumber=!0,i.number+=n}else{if(i.pointSeen||i.hasExponent){zr(i,!1),--r;continue}i.inNumber=!0,i.pointSeen=!0,i.number+=n}return i.inNumber&&zr(i,!1),i.inSegment&&Vr(i)&&Xr(i),i.segments}(t)}size(t,e){const r=this.bbox();let n,i;for(r.width=0===r.width?1:r.width,r.height=0===r.height?1:r.height,n=this.length-1;n>=0;n--)i=this[n][0],"M"===i||"L"===i||"T"===i?(this[n][1]=(this[n][1]-r.x)*t/r.width+r.x,this[n][2]=(this[n][2]-r.y)*e/r.height+r.y):"H"===i?this[n][1]=(this[n][1]-r.x)*t/r.width+r.x:"V"===i?this[n][1]=(this[n][1]-r.y)*e/r.height+r.y:"C"===i||"S"===i||"Q"===i?(this[n][1]=(this[n][1]-r.x)*t/r.width+r.x,this[n][2]=(this[n][2]-r.y)*e/r.height+r.y,this[n][3]=(this[n][3]-r.x)*t/r.width+r.x,this[n][4]=(this[n][4]-r.y)*e/r.height+r.y,"C"===i&&(this[n][5]=(this[n][5]-r.x)*t/r.width+r.x,this[n][6]=(this[n][6]-r.y)*e/r.height+r.y)):"A"===i&&(this[n][1]=this[n][1]*t/r.width,this[n][2]=this[n][2]*e/r.height,this[n][6]=(this[n][6]-r.x)*t/r.width+r.x,this[n][7]=(this[n][7]-r.y)*e/r.height+r.y);return this}toString(){return function(t){let e="";for(let r=0,n=t.length;r<n;r++)e+=t[r][0],null!=t[r][1]&&(e+=t[r][1],null!=t[r][2]&&(e+=" ",e+=t[r][2],null!=t[r][3]&&(e+=" ",e+=t[r][3],e+=" ",e+=t[r][4],null!=t[r][5]&&(e+=" ",e+=t[r][5],e+=" ",e+=t[r][6],null!=t[r][7]&&(e+=" ",e+=t[r][7])))));return e+" "}(this)}};const $r=t=>{const e=typeof t;return"number"===e?qe:"string"===e?ve.isColor(t)?ve:me.test(t)?pe.test(t)?Wr:$e:ne.test(t)?qe:Hr:Zr.indexOf(t.constructor)>-1?t.constructor:Array.isArray(t)?$e:"object"===e?Qr:Hr};var qr=class{constructor(t){this._stepper=t||new Dr("-"),this._from=null,this._to=null,this._type=null,this._context=null,this._morphObj=null}at(t){return this._morphObj.morph(this._from,this._to,t,this._stepper,this._context)}done(){return this._context.map(this._stepper.done).reduce(function(t,e){return t&&e},!0)}from(t){return null==t?this._from:(this._from=this._set(t),this)}stepper(t){return null==t?this._stepper:(this._stepper=t,this)}to(t){return null==t?this._to:(this._to=this._set(t),this)}type(t){return null==t?this._type:(this._type=t,this)}_set(t){this._type||this.type($r(t));let e=new this._type(t);return this._type===ve&&(e=this._to?e[this._to[4]]():this._from?e[this._from[4]]():e),this._type===Qr&&(e=this._to?e.align(this._to):this._from?e.align(this._from):e),e=e.toConsumable(),this._morphObj=this._morphObj||new this._type,this._context=this._context||Array.apply(null,Array(e.length)).map(Object).map(function(t){return t.done=!0,t}),e}},Hr=class{constructor(...t){this.init(...t)}init(t){return t=Array.isArray(t)?t[0]:t,this.value=t,this}toArray(){return[this.value]}valueOf(){return this.value}},Jr=class t{constructor(...t){this.init(...t)}init(e){return Array.isArray(e)&&(e={scaleX:e[0],scaleY:e[1],shear:e[2],rotate:e[3],translateX:e[4],translateY:e[5],originX:e[6],originY:e[7]}),Object.assign(this,t.defaults,e),this}toArray(){const t=this;return[t.scaleX,t.scaleY,t.shear,t.rotate,t.translateX,t.translateY,t.originX,t.originY]}};Jr.defaults={scaleX:1,scaleY:1,shear:0,rotate:0,translateX:0,translateY:0,originX:0,originY:0};const Kr=(t,e)=>t[0]<e[0]?-1:t[0]>e[0]?1:0;var Qr=class{constructor(...t){this.init(...t)}align(t){const e=this.values;for(let r=0,n=e.length;r<n;++r){if(e[r+1]===t[r+1]){if(e[r+1]===ve&&t[r+7]!==e[r+7]){const e=t[r+7],n=new ve(this.values.splice(r+3,5))[e]().toArray();this.values.splice(r+3,0,...n)}r+=e[r+2]+2;continue}if(!t[r+1])return this;const n=(new t[r+1]).toArray(),i=e[r+2]+3;e.splice(r,i,t[r],t[r+1],t[r+2],...n),r+=e[r+2]+2}return this}init(t){if(this.values=[],Array.isArray(t))return void(this.values=t.slice());t=t||{};const e=[];for(const r in t){const n=$r(t[r]),i=new n(t[r]).toArray();e.push([r,n,i.length,...i])}return e.sort(Kr),this.values=e.reduce((t,e)=>t.concat(e),[]),this}toArray(){return this.values}valueOf(){const t={},e=this.values;for(;e.length;){const r=e.shift(),n=e.shift(),i=e.shift();t[r]=new n(e.splice(0,i))}return t}};const Zr=[Hr,Jr,Qr];var tn=class extends rr{constructor(t,e=t){super(qt("path",t),e)}array(){return this._array||(this._array=new Wr(this.attr("d")))}clear(){return delete this._array,this}height(t){return null==t?this.bbox().height:this.size(this.bbox().width,t)}move(t,e){return this.attr("d",this.array().move(t,e))}plot(t){return null==t?this.array():this.clear().attr("d","string"==typeof t?t:this._array=new Wr(t))}size(t,e){const r=kt(this,t,e);return this.attr("d",this.array().size(r.width,r.height))}width(t){return null==t?this.bbox().width:this.size(t,this.bbox().height)}x(t){return null==t?this.bbox().x:this.move(t,this.bbox().y)}y(t){return null==t?this.bbox().y:this.move(this.bbox().x,t)}};tn.prototype.MorphArray=Wr,d({Container:{path:re(function(t){return this.put(new tn).plot(t||new Wr)})}}),Kt(tn,"Path");var en=h({array:()=>rn,clear:()=>nn,move:()=>sn,plot:()=>on,size:()=>an});function rn(){return this._array||(this._array=new xr(this.attr("points")))}function nn(){return delete this._array,this}function sn(t,e){return this.attr("points",this.array().move(t,e))}function on(t){return null==t?this.array():this.clear().attr("points","string"==typeof t?t:this._array=new xr(t))}function an(t,e){const r=kt(this,t,e);return this.attr("points",this.array().size(r.width,r.height))}var un=class extends rr{constructor(t,e=t){super(qt("polygon",t),e)}};d({Container:{polygon:re(function(t){return this.put(new un).plot(t||new xr)})}}),ee(un,Nr),ee(un,en),Kt(un,"Polygon");var hn=class extends rr{constructor(t,e=t){super(qt("polyline",t),e)}};d({Container:{polyline:re(function(t){return this.put(new hn).plot(t||new xr)})}}),ee(hn,Nr),ee(hn,en),Kt(hn,"Polyline");var cn=class extends rr{constructor(t,e=t){super(qt("rect",t),e)}};ee(cn,{rx:ir,ry:sr}),d({Container:{rect:re(function(t,e){return this.put(new cn).size(t,e)})}}),Kt(cn,"Rect");var ln=class{constructor(){this._first=null,this._last=null}first(){return this._first&&this._first.value}last(){return this._last&&this._last.value}push(t){const e=void 0!==t.next?t:{value:t,next:null,prev:null};return this._last?(e.prev=this._last,this._last.next=e,this._last=e):(this._last=e,this._first=e),e}remove(t){t.prev&&(t.prev.next=t.next),t.next&&(t.next.prev=t.prev),t===this._last&&(this._last=t.prev),t===this._first&&(this._first=t.next),t.prev=null,t.next=null}shift(){const t=this._first;return t?(this._first=t.next,this._first&&(this._first.prev=null),this._last=this._first?this._last:null,t.value):null}};const fn={nextDraw:null,frames:new ln,timeouts:new ln,immediates:new ln,timer:()=>Xt.window.performance||Xt.window.Date,frame(t){const e=fn.frames.push({run:t});return null===fn.nextDraw&&(fn.nextDraw=Xt.window.requestAnimationFrame(fn._draw)),e},timeout(t,e){e=e||0;const r=fn.timer().now()+e,n=fn.timeouts.push({run:t,time:r});return null===fn.nextDraw&&(fn.nextDraw=Xt.window.requestAnimationFrame(fn._draw)),n},immediate(t){const e=fn.immediates.push(t);return null===fn.nextDraw&&(fn.nextDraw=Xt.window.requestAnimationFrame(fn._draw)),e},cancelFrame(t){null!=t&&fn.frames.remove(t)},clearTimeout(t){null!=t&&fn.timeouts.remove(t)},cancelImmediate(t){null!=t&&fn.immediates.remove(t)},_draw(t){try{let e=null;const r=fn.timeouts.last();for(;(e=fn.timeouts.shift())&&(t>=e.time?e.run():fn.timeouts.push(e),e!==r););let n=null;const i=fn.frames.last();for(;n!==i&&(n=fn.frames.shift());)n.run(t);let s=null;for(;s=fn.immediates.shift();)s()}finally{const t=fn.timeouts.first()||fn.frames.first()||fn.immediates.first();fn.nextDraw=t?Xt.window.requestAnimationFrame(fn._draw):null}}},dn=function(t){const e=t.start,r=t.runner.duration();return{start:e,duration:r,end:e+r,runner:t.runner}},mn=function(){const t=Xt.window;return(t.performance||t.Date).now()};var pn=class extends ze{constructor(t=mn){super(),this._timeSource=t,this.terminate()}active(){return!!this._nextFrame}finish(){this._finishing=!0;try{this.time(this.getEndTimeOfTimeline()+1)}finally{this._finishing=!1}return this.pause()}getEndTime(){const t=this.getLastRunnerInfo(),e=t?t.runner.duration():0;return(t?t.start:this._time)+e}getEndTimeOfTimeline(){const t=this._runners.map(t=>t.start+t.runner.duration());return Math.max(0,...t)}getLastRunnerInfo(){return this.getRunnerInfoById(this._lastRunnerId)}getRunnerInfoById(t){return this._runners[this._runnerIds.indexOf(t)]||null}pause(){return this._paused=!0,this._continue()}persist(t){return null==t?this._persist:(this._persist=t,this)}play(){return this._paused=!1,this.updateTime()._continue()}reverse(t){const e=this.speed();if(null==t)return this.speed(-e);const r=Math.abs(e);return this.speed(t?-r:r)}schedule(t,e,r){if(null==t)return this._runners.map(dn);let n=0;const i=this.getEndTime();if(e=e||0,null==r||"last"===r||"after"===r)n=i;else if("absolute"===r||"start"===r)n=e,e=0;else if("now"===r)n=this._time;else if("relative"===r){const r=this.getRunnerInfoById(t.id);r&&(n=r.start+e,e=0)}else{if("with-last"!==r)throw new Error('Invalid value for the "when" parameter');{const t=this.getLastRunnerInfo();n=t?t.start:this._time}}t.unschedule(),t.timeline(this),t._retired=!1;const s=t.persist(),o={persist:null===s?this._persist:s,start:n+e,runner:t};return this._lastRunnerId=t.id,t._runnerInfo=o,this._runners.push(o),this._runners.sort((t,e)=>t.start-e.start),this._runnerIds=this._runners.map(t=>t.runner.id),this.updateTime()._continue(),this}seek(t){return this.time(this._time+t)}source(t){return null==t?this._timeSource:(this._timeSource=t,this)}speed(t){return null==t?this._speed:(this._speed=t,this)}stop(){return this.time(0),this.pause()}time(t){return null==t?this._time:(this._time=t,this._continue(!0))}unschedule(t){const e=this._runnerIds.indexOf(t.id);return e<0||(this._runners.splice(e,1),this._runnerIds.splice(e,1),t.timeline(null),t._runnerInfo=null,t._retired=!0),this}updateTime(){return this.active()||(this._lastSourceTime=this._timeSource()),this}_continue(t=!1){return fn.cancelFrame(this._nextFrame),this._nextFrame=null,t?this._stepImmediate():(this._paused||(this._nextFrame=fn.frame(this._step)),this)}_stepFn(t=!1){const e=this._generation,r=this._timeSource();let n=r-this._lastSourceTime;t&&(n=0);const i=this._speed*n+(this._time-this._lastStepTime);this._lastSourceTime=r,t||(this._time+=i,this._time=this._time<0?0:this._time),this._lastStepTime=this._time,this.fire("time",this._time);const s=this._runners.slice();for(let t=s.length;t--;){const e=s[t];if(e.runner._runnerInfo!==e)continue;const r=e.runner;this._time-e.start<0&&r.reset(!0)}let o=!1;for(const t of this._runners.slice()){if(t.runner._runnerInfo!==t)continue;const e=t.runner;let r=i;const n=this._time-t.start;if(n<0){o=!0;continue}if(0===n){e.reset(),o=!0;continue}if(n<r&&(r=n),!e.active())continue;const s=(this._finishing&&e._isDeclarative?e.finish():e.step(r)).done;e._runnerInfo===t&&(s?!0!==t.persist&&e.duration()-e.time()+this._time+t.persist<=this._time&&e.unschedule():o=!0)}return e!==this._generation||(o||(o=this._runners.some(({start:t,runner:e})=>t>=this._time||e.active()&&!e.done)),o&&!(this._speed<0&&0===this._time)||this._runnerIds.length&&this._speed<0&&this._time>0?this._continue():(this.pause(),this.fire("finished"))),this}terminate(){fn.cancelFrame(this._nextFrame),this._generation=(this._generation||0)+1,this._startTime=0,this._speed=1,this._persist=0;for(const{runner:t}of this._runners||[])t._retired=!0,t._runnerInfo=null;this._nextFrame=null,this._paused=!0,this._finishing=!1,this._runners=[],this._runnerIds=[],this._lastRunnerId=-1,this._time=0,this._lastSourceTime=0,this._lastStepTime=0,this._step=this._stepFn.bind(this,!1),this._stepImmediate=this._stepFn.bind(this,!0)}};d({Element:{timeline:function(t){return null==t?(this._timeline=this._timeline||new pn,this._timeline):(this._timeline=t,this)}}});var yn=class t extends ze{constructor(e){super(),this.id=t.id++,e="function"==typeof(e=e??Ge)?new Ir(e):e,this._element=null,this._timeline=null,this._runnerInfo=null,this.done=!1,this._queue=[],this._duration="number"==typeof e&&e,this._isDeclarative=e instanceof Ir,this._stepper=this._isDeclarative?e:new Dr,this._history={},this.enabled=!0,this._time=0,this._lastTime=0,this._reseted=!0,this.transforms=new Se,this._isAbsoluteTransform=!1,this._hasTransform=!1,this._transformInitialised=!1,this._transformActive=!1,this._retired=!1,this._reverse=!1,this._swing=!1,this._wait=0,this._times=1,this._persist=!!this._isDeclarative||null}static sanitise(t,e,r){let n=1,i=!1,s=0;return e=e??Ye,r=r||"last","object"!=typeof(t=t??Ge)||t instanceof Cr||(e=t.delay??e,r=t.when??r,i=t.swing||i,n=t.times??n,s=t.wait??s,t=t.duration??Ge),{duration:t,delay:e,swing:i,times:n,wait:s,when:r}}active(t){return null==t?this.enabled:(this.enabled=t,this)}addTransform(t){return this.transforms.lmultiplyO(t),this._transformInitialised=!0,this._transformActive=!0,this}after(t){return this.on("finished",t)}animate(e,r,n){const i=t.sanitise(e,r,n),s=new t(i.duration);return this._timeline&&s.timeline(this._timeline),this._element&&s.element(this._element),s.loop(i).schedule(i.delay,i.when)}clearTransform(){return this.transforms=new Se,this}delay(t){return this.animate(0,t)}duration(){return this._times*(this._wait+this._duration)-this._wait}during(t){return this.queue(null,t)}ease(t){return this._stepper=new Dr(t),this}element(t){return null==t?this._element:(this._element=t,t._prepareRunner(),this)}finish(){if(!this._isDeclarative)return this.time(this.duration());const t=this._time;return this.step(1/0),this._time=t,this}loop(t,e,r){return"object"==typeof t&&(e=t.swing,r=t.wait,t=t.times),this._times=t||1/0,this._swing=e||!1,this._wait=r||0,!0===this._times&&(this._times=1/0),this}loops(t){const e=this._duration+this._wait;if(null==t){const t=Math.floor(this._time/e),r=(this._time-t*e)/this._duration;return Math.min(t+r,this._times)}const r=t%1,n=e*Math.floor(t)+this._duration*r;return this.time(n)}persist(t){return null==t?this._persist:(this._persist=t,this)}position(t){const e=this._time,r=this._duration,n=this._wait,i=this._times,s=this._swing,o=this._reverse;let a;if(null==t){const t=function(t){const e=s*Math.floor(t%(2*(n+r))/(n+r)),i=e&&!o||!e&&o,a=Math.pow(-1,i)*(t%(n+r))/r+i;return Math.max(Math.min(a,1),0)},u=i*(n+r)-n;return a=e<=0?Math.round(t(1e-5)):e<u?t(e):Math.round(t(u-1e-5)),a}const u=Math.floor(this.loops()),h=s&&u%2==0;return a=u+(h&&!o||o&&h?t:1-t),this.loops(a)}progress(t){return null==t?Math.min(1,this._time/this.duration()):this.time(t*this.duration())}queue(t,e,r,n){return this._isDeclarative&&(this.done=!1),this._queue.push({initialiser:t||Xe,runner:e||Xe,retarget:r,isTransform:n,initialised:!1,finished:!1}),this.timeline()&&this.timeline()._continue(),this}reset(t=!1){if(this._reseted){const e=!t&&this._hasTransform&&0!==this.position();return e&&!this._transformInitialised?(this.step(0),this._reseted=!0,this):(e!==this._transformActive&&(this._transformActive=e,this._element&&this._element._addRunner(this)),this)}return this._reseted||(this.time(0),this._reseted=!0),t&&this._transformActive&&(this._transformActive=!1,this._element&&this._element._addRunner(this)),this}reverse(t){return this._reverse=t??!this._reverse,this}schedule(t,e,r){if(t instanceof pn||(r=e,e=t,t=this.timeline()),!t)throw Error("Runner cannot be scheduled without timeline");return t.schedule(this,e,r),this}step(t){if(!this.enabled)return this;const e=this.done;t=t??16,this._time+=t;const r=this.position(),n=this._lastPosition!==r&&this._time>=0;this._lastPosition=r;const i=this.duration(),s=this._lastTime<=0&&this._time>0;this._lastTime=this._time,s&&this.fire("start",this);const o=this._isDeclarative;this.done=!o&&this._time>=i,this._reseted=!1;const a=this._hasTransform&&(this._time>0||0!==r);this._transformActive=a;let u=!1;return(n||o)&&(this._initialise(n),this.transforms=new Se,u=this._run(o?t:r),this._transformActive=a,this.fire("step",this)),this.done=this.done||u&&o,this.done&&!e&&this.fire("finished",this),this}time(t){if(null==t)return this._time;const e=t-this._time;return this.step(e),this}timeline(t){return void 0===t?this._timeline:(this._timeline=t,this)}unschedule(){const t=this.timeline();return t&&t.unschedule(this),this}_initialise(t){if(t||this._isDeclarative)for(let e=0,r=this._queue.length;e<r;++e){const r=this._queue[e],n=this._isDeclarative||!r.initialised&&t;t=!r.finished,n&&t&&(r.initialiser.call(this),r.initialised=!0)}}_rememberMorpher(t,e){if(this._history[t]={morpher:e,caller:this._queue[this._queue.length-1]},this._isDeclarative){const t=this.timeline();t&&t.play()}}_run(t){let e=!0;for(let r=0,n=this._queue.length;r<n;++r){const n=this._queue[r];if(this._isDeclarative&&n.finished&&!n.isTransform)continue;const i=n.runner.call(this,t);n.finished=n.finished||!0===i,e=e&&n.finished}return e}_tryRetarget(t,e,r){if(this._history[t]){if(!this._history[t].caller.initialised){const e=this._queue.indexOf(this._history[t].caller);return this._queue.splice(e,1),!1}this._history[t].caller.retarget?this._history[t].caller.retarget.call(this,e,r):this._history[t].morpher.to(e),this._history[t].caller.finished=!1,this._isDeclarative&&(this.done=!1);const n=this.timeline();return n&&n.play(),!0}return!1}};yn.id=0;var gn=class{constructor(t=new Se,e=-1,r=!0,n=!1){this.transforms=t,this.id=e,this.done=r,this._isAbsoluteTransform=n,this._transformActive=!0,this._retired=!0}};ee([yn,gn],{mergeWith(t){return new gn(this._isAbsoluteTransform?this.transforms:t.transforms.lmultiply(this.transforms),t.id,!0,t._isAbsoluteTransform||this._isAbsoluteTransform)}});const bn=(t,e)=>t.lmultiplyO(e),wn=t=>t.transforms,vn=t=>t._transformActive;function xn(t){const e=t.filter(vn);let r=0;for(let t=0;t<e.length;++t)e[t]._isAbsoluteTransform&&(r=t);return e.slice(r)}function Nn(){const t=xn(this._transformationRunners.runners).map(wn).reduce(bn,new Se);this.transform(t),this._transformationRunners.merge(),1===this._transformationRunners.length()&&(this._frameId=null)}var Sn=class{constructor(){this.runners=[]}add(t){var e;if(!(0,Tt.default)(e=this.runners).call(e,t))return this.runners.push(t),this}edit(t,e){const r=this.runners.findIndex(e=>e.id===t);return r>=0&&this.runners.splice(r,1,e),this}getByID(t){return this.runners.find(e=>e.id===t)}length(){return this.runners.length}merge(){let t=null;for(let e=0;e<this.runners.length;++e){const r=this.runners[e];if(t&&r.done&&t.done&&r._retired&&t._retired){this.remove(r.id);const n=r.mergeWith(t);this.edit(t.id,n),t=n,--e}else t=r}return this}remove(t){const e=this.runners.findIndex(e=>e.id===t);return e>=0&&this.runners.splice(e,1),this}};d({Element:{animate(t,e,r){const n=yn.sanitise(t,e,r),i=this.timeline();return new yn(n.duration).loop(n).element(this).timeline(i.play()).schedule(n.delay,n.when)},delay(t,e){return this.animate(0,t,e)},_currentTransform(t){const e=this._transformationRunners.runners,r=e.indexOf(t);return xn(e.slice(0,r+1)).map(wn).reduce(bn,new Se)},_addRunner(t){1===this._transformationRunners.length()&&-1===this._transformationRunners.runners[0].id&&(this._transformationRunners.runners[0].transforms=new Se(this)),this._transformationRunners.add(t),fn.cancelImmediate(this._frameId),this._frameId=fn.immediate(Nn.bind(this))},_prepareRunner(){null==this._frameId&&(this._transformationRunners=(new Sn).add(new gn(new Se(this))))}}}),ee(yn,{attr(t,e){return this.styleAttr("attr",t,e)},css(t,e){return this.styleAttr("css",t,e)},styleAttr(t,e,r){if("string"==typeof e)return this.styleAttr(t,{[e]:r});const n=e,i=this._history[t];if(i&&!i.caller.initialised&&i.caller.retarget)return i.caller.retarget.call(this,n),this;if(this._tryRetarget(t,n))return this;let s=new qr(this._stepper).to(n),o=Object.keys(n);return this.queue(function(){s=s.from(this.element()[t](o))},function(e){return this.element()[t](s.at(e).valueOf()),s.done()},function(e){const r=(n=Object.keys(e),i=o,n.filter(t=>!(0,Tt.default)(i).call(i,t)));var n,i;if(r.length&&null!=s.from()){const e=this.element()[t](r),n=new Qr(s.from()).valueOf();Object.assign(n,e),s.from(n)}const a=new Qr(s.to()).valueOf();Object.assign(a,e),s.to(a),o=Object.keys(a)}),this._rememberMorpher(t,s),this},zoom(t,e){if(this._tryRetarget("zoom",t,e))return this;let r=new qr(this._stepper).to(new qe(t));return this.queue(function(){r=r.from(this.element().zoom())},function(t){return this.element().zoom(r.at(t),e),r.done()},function(t,n){e=n,r.to(t)}),this._rememberMorpher("zoom",r),this},transform(t,e,r){if(e=t.relative||e,this._hasTransform=!0,this._isAbsoluteTransform=this._isAbsoluteTransform||!e,this._isDeclarative&&!e&&this._tryRetarget("transform",t))return this;const n=Se.isMatrixLike(t);r=null!=t.affine?t.affine:null!=r?r:!n;const i=new qr(this._stepper).type(r?Jr:Se),s=r?new qr(this._stepper).type(Se):i;let o,a,u,h,c;return this.queue(function(){a=a||this.element(),o=o||Ft(t,a),c=new Se(e?void 0:a),a._addRunner(this)},function(l){e||this.clearTransform();const{x:f,y:d}=new xe(o).transform(a._currentTransform(this)),m={...t,origin:[f,d]};!0===m.relative&&delete m.relative;let p=new Se(m),y=this._isDeclarative&&u?u:c,g=i;if(r){const t=p.decompose(f,d),e=y.decompose(f,d);if(new Jr(t).toArray().concat(new Jr(e).toArray()).every(Number.isFinite)){p=t,y=e;const r=p.rotate,n=y.rotate,i=[r-360,r,r+360],s=i.map(t=>Math.abs(t-n)),o=Math.min(...s),a=s.indexOf(o);p.rotate=i[a]}else g=s}e&&g===i&&(n||(p.rotate=t.rotate||0),this._isDeclarative&&h&&(y.rotate=h)),g.from(y),g.to(p);const b=g.at(l);return h=b.rotate,u=new Se(b),this.addTransform(u),a._addRunner(this),g.done()},function(e){o=Ft(e,a),t={...e}},!0),this._isDeclarative&&this._rememberMorpher("transform",i),this},x(t){return this._queueNumber("x",t)},y(t){return this._queueNumber("y",t)},ax(t){return this._queueNumber("ax",t)},ay(t){return this._queueNumber("ay",t)},dx(t=0){return this._queueNumberDelta("x",t)},dy(t=0){return this._queueNumberDelta("y",t)},dmove(t,e){return this.dx(t).dy(e)},_queueNumberDelta(t,e){if(e=new qe(e),this._tryRetarget(t,e))return this;const r=new qr(this._stepper).to(e);let n=null;return this.queue(function(){n=this.element()[t](),r.from(n),r.to(n+e)},function(e){return this.element()[t](r.at(e)),r.done()},function(t){r.to(n+new qe(t))}),this._rememberMorpher(t,r),this},_queueObject(t,e){if(this._tryRetarget(t,e))return this;const r=new qr(this._stepper).to(e);return this.queue(function(){r.from(this.element()[t]())},function(e){return this.element()[t](r.at(e)),r.done()}),this._rememberMorpher(t,r),this},_queueNumber(t,e){return this._queueObject(t,new qe(e))},cx(t){return this._queueNumber("cx",t)},cy(t){return this._queueNumber("cy",t)},move(t,e){return this.x(t).y(e)},amove(t,e){return this.ax(t).ay(e)},center(t,e){return this.cx(t).cy(e)},size(t,e){const r=kt(this._element,t,e);return this.width(r.width).height(r.height)},width(t){return this._queueNumber("width",t)},height(t){return this._queueNumber("height",t)},plot(t,e,r,n){if(4===arguments.length)return this.plot([t,e,r,n]);if(this._tryRetarget("plot",t))return this;const i=new qr(this._stepper).type(this._element.MorphArray).to(t);return this.queue(function(){i.from(this._element.array())},function(t){return this._element.plot(i.at(t)),i.done()}),this._rememberMorpher("plot",i),this},leading(t){return this._queueNumber("leading",t)},viewbox(t,e,r,n){return this._queueObject("viewbox",new Ee(t,e,r,n))},update(t){return"object"!=typeof t?this.update({offset:arguments[0],color:arguments[1],opacity:arguments[2]}):(null!=t.opacity&&this.attr("stop-opacity",t.opacity),null!=t.color&&this.attr("stop-color",t.color),null!=t.offset&&this.attr("offset",t.offset),this)}}),ee(yn,{rx:ir,ry:sr,from:pr,to:yr}),Kt(yn,"Runner");var _n=class extends tr{constructor(t,e=t){super(qt("svg",t),e),this.namespace()}defs(){return this.isRoot()?Ht(this.node.querySelector("defs"))||this.put(new er):this.root().defs()}isRoot(){return!this.node.parentNode||!(this.node.parentNode instanceof Xt.window.SVGElement)&&"#document-fragment"!==this.node.parentNode.nodeName}namespace(){return this.isRoot()?this.attr({xmlns:Vt,version:"1.1"}).attr("xmlns:xlink",zt,Rt):this.root().namespace()}removeNamespace(){return this.attr({xmlns:null,version:null}).attr("xmlns:xlink",null,Rt).attr("xmlns:svgjs",null,Rt)}root(){return this.isRoot()?this:super.root()}};d({Container:{nested:re(function(){return this.put(new _n)})}}),Kt(_n,"Svg",!0);var On=class extends tr{constructor(t,e=t){super(qt("symbol",t),e)}};d({Container:{symbol:re(function(){return this.put(new On)})}}),Kt(On,"Symbol");var En=h({amove:()=>Ln,ax:()=>kn,ay:()=>Fn,build:()=>Bn,center:()=>In,cx:()=>Cn,cy:()=>Dn,length:()=>Mn,move:()=>jn,plain:()=>Pn,x:()=>An,y:()=>Tn});function Pn(t){return!1===this._build&&this.clear(),this.node.appendChild(Xt.document.createTextNode(t)),this}function Mn(){return this.node.getComputedTextLength()}function An(t,e=this.bbox()){return null==t?e.x:this.attr("x",this.attr("x")+t-e.x)}function Tn(t,e=this.bbox()){return null==t?e.y:this.attr("y",this.attr("y")+t-e.y)}function jn(t,e,r=this.bbox()){return this.x(t,r).y(e,r)}function Cn(t,e=this.bbox()){return null==t?e.cx:this.attr("x",this.attr("x")+t-e.cx)}function Dn(t,e=this.bbox()){return null==t?e.cy:this.attr("y",this.attr("y")+t-e.cy)}function In(t,e,r=this.bbox()){return this.cx(t,r).cy(e,r)}function kn(t){return this.attr("x",t)}function Fn(t){return this.attr("y",t)}function Ln(t,e){return this.ax(t).ay(e)}function Bn(t){return this._build=!!t,this}var Vn=class extends rr{constructor(t,e=t){super(qt("text",t),e),this.dom.leading=this.dom.leading??new qe(1.3),this._rebuild=!0,this._build=!1}leading(t){return null==t?this.dom.leading:(this.dom.leading=new qe(t),this.rebuild())}rebuild(t){if("boolean"==typeof t&&(this._rebuild=t),this._rebuild){const t=this;let e=0;const r=this.dom.leading;this.each(function(n){if(Bt(this.node))return;const i=Xt.window.getComputedStyle(this.node).getPropertyValue("font-size"),s=r*new qe(i);this.dom.newLined&&(this.attr("x",t.attr("x")),"\n"===this.text()?e+=s:(this.attr("dy",n?s+e:0),e=0))}),this.fire("rebuild")}return this}setData(t){return this.dom=t,this.dom.leading=new qe(t.leading||1.3),this}writeDataToDom(){return super.writeDataToDom({leading:1.3})}text(t){if(void 0===t){const e=this.node.childNodes;let r=0;t="";for(let n=0,i=e.length;n<i;++n)"textPath"===e[n].nodeName||Bt(e[n])?0===n&&(r=n+1):(n!==r&&3!==e[n].nodeType&&!0===Ht(e[n]).dom.newLined&&(t+="\n"),t+=e[n].textContent);return t}if(this.clear().build(!0),"function"==typeof t)t.call(this,this);else for(let e=0,r=(t=(t+"").split("\n")).length;e<r;e++)this.newLine(t[e]);return this.build(!1).rebuild()}};ee(Vn,En),d({Container:{text:re(function(t=""){return this.put(new Vn).text(t)}),plain:re(function(t=""){return this.put(new Vn).plain(t)})}}),Kt(Vn,"Text");var Rn=class extends rr{constructor(t,e=t){super(qt("tspan",t),e),this._build=!1}dx(t){return this.attr("dx",t)}dy(t){return this.attr("dy",t)}newLine(){this.dom.newLined=!0;const t=this.parent();if(!(t instanceof Vn))return this;const e=t.index(this),r=Xt.window.getComputedStyle(this.node).getPropertyValue("font-size"),n=t.dom.leading*new qe(r);return this.dy(e?n:0).attr("x",t.x())}text(t){return null==t?this.node.textContent+(this.dom.newLined?"\n":""):("function"==typeof t?(this.clear().build(!0),t.call(this,this),this.build(!1)):this.plain(t),this)}};ee(Rn,En),d({Tspan:{tspan:re(function(t=""){const e=new Rn;return this._build||this.clear(),this.put(e).text(t)})},Text:{newLine:function(t=""){return this.tspan(t).newLine()}}}),Kt(Rn,"Tspan");var zn=class extends rr{constructor(t,e=t){super(qt("circle",t),e)}radius(t){return this.attr("r",t)}rx(t){return this.attr("r",t)}ry(t){return this.rx(t)}size(t){return this.radius(new qe(t).divide(2))}};ee(zn,{x:or,y:ar,cx:ur,cy:hr,width:cr,height:lr}),d({Container:{circle:re(function(t=0){return this.put(new zn).size(t).move(0,0)})}}),Kt(zn,"Circle");var Xn=class extends tr{constructor(t,e=t){super(qt("clipPath",t),e)}remove(){return this.targets().forEach(function(t){t.unclip()}),super.remove()}targets(){return Ce(this.node,"clip-path")}};d({Container:{clip:re(function(){return this.defs().put(new Xn)})},Element:{clipper(){return this.reference("clip-path")},clipWith(t){const e=t instanceof Xn?t:this.parent().clip().add(t);return this.attr("clip-path","url(#"+e.id()+")")},unclip(){return this.attr("clip-path",null)}}}),Kt(Xn,"ClipPath");var Gn=class extends Qe{constructor(t,e=t){super(qt("foreignObject",t),e)}};d({Container:{foreignObject:re(function(t,e){return this.put(new Gn).size(t,e)})}}),Kt(Gn,"ForeignObject");var Un=h({dmove:()=>Yn,dx:()=>Wn,dy:()=>$n,height:()=>qn,move:()=>Hn,size:()=>Jn,width:()=>Kn,x:()=>Qn,y:()=>Zn});function Yn(t,e){return this.children().forEach(r=>{let n;try{n=r.node instanceof Xt.window.SVGSVGElement?new Ee(r.attr(["x","y","width","height"])):r.bbox()}catch(t){return}const i=new Se(r),s=i.translate(t,e).transform(i.inverse()),o=new xe(n.x,n.y).transform(s);r.dmove(o.x-n.x,o.y-n.y)}),this}function Wn(t){return this.dmove(t,0)}function $n(t){return this.dmove(0,t)}function qn(t,e=this.bbox()){return null==t?e.height:this.size(e.width,t,e)}function Hn(t=0,e=0,r=this.bbox()){const n=t-r.x,i=e-r.y;return this.dmove(n,i)}function Jn(t,e,r=this.bbox()){const n=kt(this,t,e,r),i=n.width/r.width,s=n.height/r.height;return this.children().forEach(t=>{const e=new xe(r).transform(new Se(t).inverse());t.scale(i,s,e.x,e.y)}),this}function Kn(t,e=this.bbox()){return null==t?e.width:this.size(t,e.height,e)}function Qn(t,e=this.bbox()){return null==t?e.x:this.move(t,e.y,e)}function Zn(t,e=this.bbox()){return null==t?e.y:this.move(e.x,t,e)}var ti=class extends tr{constructor(t,e=t){super(qt("g",t),e)}};ee(ti,Un),d({Container:{group:re(function(){return this.put(new ti)})}}),Kt(ti,"G");var ei=class extends tr{constructor(t,e=t){super(qt("a",t),e)}target(t){return this.attr("target",t)}to(t){return this.attr("href",t,zt)}};ee(ei,Un),d({Container:{link:re(function(t){return this.put(new ei).to(t)})},Element:{unlink(){const t=this.linker();if(!t)return this;const e=t.parent();if(!e)return this.remove();const r=e.index(t);return e.add(this,r),t.remove(),this},linkTo(t){let e=this.linker();return e||(e=new ei,this.wrap(e)),"function"==typeof t?t.call(e,e):e.to(t),this},linker(){const t=this.parent();return t&&"a"===t.node.nodeName.toLowerCase()?t:null}}}),Kt(ei,"A");var ri=class extends tr{constructor(t,e=t){super(qt("mask",t),e)}remove(){return this.targets().forEach(function(t){t.unmask()}),super.remove()}targets(){return Ce(this.node,"mask")}};d({Container:{mask:re(function(){return this.defs().put(new ri)})},Element:{masker(){return this.reference("mask")},maskWith(t){const e=t instanceof ri?t:this.parent().mask().add(t);return this.attr("mask","url(#"+e.id()+")")},unmask(){return this.attr("mask",null)}}}),Kt(ri,"Mask");var ni=class extends Qe{constructor(t,e=t){super(qt("stop",t),e)}update(t){return("number"==typeof t||t instanceof qe)&&(t={offset:arguments[0],color:arguments[1],opacity:arguments[2]}),null!=t.opacity&&this.attr("stop-opacity",t.opacity),null!=t.color&&this.attr("stop-color",t.color),null!=t.offset&&this.attr("offset",new qe(t.offset)),this}};d({Gradient:{stop:function(t,e,r){return this.put(new ni).update(t,e,r)}}}),Kt(ni,"Stop");var ii=class extends Qe{constructor(t,e=t){super(qt("style",t),e)}addText(t=""){return this.node.textContent+=t,this}font(t,e,r={}){return this.rule("@font-face",{fontFamily:t,src:e,...r})}rule(t,e){return this.addText(function(t,e){if(!t)return"";if(!e)return t;let r=t+"{";for(const t in e)r+=Dt(t)+":"+e[t]+";";return r+="}",r}(t,e))}};d("Dom",{style(t,e){return this.put(new ii).rule(t,e)},fontface(t,e,r){return this.put(new ii).font(t,e,r)}}),Kt(ii,"Style");var si=class extends Vn{constructor(t,e=t){super(qt("textPath",t),e)}array(){const t=this.track();return t?t.array():null}plot(t){const e=this.track();let r=null;return e&&(r=e.plot(t)),null==t?r:this}track(){return this.reference("href")}};d({Container:{textPath:re(function(t,e){return t instanceof Vn||(t=this.text(t)),t.path(e)})},Text:{path:re(function(t,e=!0){const r=new si;let n;if(t instanceof tn||(t=this.defs().path(t)),r.attr("href","#"+t,zt),e)for(;n=this.node.firstChild;)r.node.appendChild(n);return this.put(r)}),textPath(){return this.findOne("textPath")}},Path:{text:re(function(t){return t instanceof Vn||(t=(new Vn).addTo(this.parent()).text(t)),t.path(this)}),targets(){return Ce(this.node,"href","textPath")}}}),si.prototype.MorphArray=Wr,Kt(si,"TextPath");var oi=class extends rr{constructor(t,e=t){super(qt("use",t),e)}use(t,e){return this.attr("href",(e||"")+"#"+t,zt)}};d({Container:{use:re(function(t,e){return this.put(new oi).use(t,e)})}}),Kt(oi,"Use"),ee([_n,On,vr,br,Ar],m("viewbox")),ee([Mr,hn,un,tn],m("marker")),ee(Vn,m("Text")),ee(tn,m("Path")),ee(er,m("Defs")),ee([Vn,Rn],m("Tspan")),ee([cn,fr,gr,yn],m("radius")),ee(ze,m("EventTarget")),ee(Ke,m("Dom")),ee(Qe,m("Element")),ee(rr,m("Shape")),ee([tr,dr],m("Container")),ee(gr,m("Gradient")),ee(yn,m("Runner")),Me.extend([...new Set(f)]),function(t=[]){Zr.push(...[].concat(t))}([qe,ve,Ee,Se,$e,xr,Wr,xe]),ee(Zr,{to(t){return(new qr).type(this.constructor).from(this.toArray()).to(t)},fromArray(t){return this.init(t),this},toConsumable(){return this.toArray()},morph(t,e,r,n,i){return this.fromArray(t.map(function(t,s){return n.step(t,e[s],r,i[s],i)}))}});var ai=r(726),ui=r(358);class hi{constructor(t,e){this.svgDoc=t,this.elements=e,new MutationObserver(t=>{t.some(t=>t.removedNodes.length>0)&&(this.elements=this.elements.filter(t=>this.svgDoc.contains(t.domNode)))}).observe(t,{childList:!0,subtree:!0})}}class ci{constructor(t,e){this.svgDoc=t,this.elementsDrawing=new hi(t,e)}get bases(){return this.elementsDrawing.elements}set bases(t){this.elementsDrawing.elements=t}append(t){t.appendTo(this.svgDoc),this.bases.push(t)}add(t){let e=ui.Nucleobase.create(t);return this.append(e),e}}var li,fi,di=r(534),mi=r(742),pi=function(t,e,r,n,i){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!i:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===n?i.call(t,r):i?i.value=r:e.set(t,r),r},yi=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class gi{constructor(t){this.domNode=t,li.set(this,void 0),fi.set(this,void 0),pi(this,li,new hi(t,[]),"f"),pi(this,fi,new MutationObserver(()=>{this.elements.forEach(t=>{this.domNode.contains(t.owner.domNode)||t.domNode.remove()})}),"f"),yi(this,fi,"f").observe(t,{childList:!0,subtree:!0})}get elements(){return yi(this,li,"f").elements}set elements(t){yi(this,li,"f").elements=t}}li=new WeakMap,fi=new WeakMap;var bi,wi,vi=function(t,e,r,n,i){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!i:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===n?i.call(t,r):i?i.value=r:e.set(t,r),r},xi=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class Ni{constructor(t){this.domNode=t,bi.set(this,void 0),vi(this,bi,new gi(t),"f")}get numberings(){return xi(this,bi,"f").elements}set numberings(t){xi(this,bi,"f").elements=t}number(t,e){let r=mi.Numbering.numbering(t,e);return this.domNode.insertBefore(r.domNode,t.domNode),xi(this,bi,"f").elements.push(r),r}}bi=new WeakMap;class Si{constructor(t){this.domNode=t,wi.set(this,void 0),vi(this,wi,new gi(t),"f")}get numberingLines(){return xi(this,wi,"f").elements}set numberingLines(t){xi(this,wi,"f").elements=t}connect(t){let e=mi.NumberingLine.connecting(t);return this.domNode.insertBefore(e.domNode,t.domNode),xi(this,wi,"f").elements.push(e),e}}wi=new WeakMap;var _i,Oi=r(775),Ei=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class Pi{constructor(t){this.domNode=t,_i.set(this,void 0),function(t,e,r,n,i){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!i:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");"a"===n?i.call(t,r):i?i.value=r:e.set(t,r)}(this,_i,new gi(t),"f")}get baseOutlines(){return Ei(this,_i,"f").elements}set baseOutlines(t){Ei(this,_i,"f").elements=t}append(t){this.domNode.append(t.domNode),this.baseOutlines.push(t)}outline(t){let e=Oi.BaseOutline.outlining(t);return e.setAttribute("r",""+.54*t.domNode.getBBox().height),t.domNode.insertAdjacentElement("beforebegin",e.domNode),this.baseOutlines.push(e),e}}_i=new WeakMap;var Mi=r(282);class Ai{constructor(t,e){this.svgDoc=t,this.elementsDrawing=new hi(t,e),new MutationObserver(()=>{this.bonds.forEach(t=>{this.svgDoc.contains(t.base1.domNode)&&this.svgDoc.contains(t.base2.domNode)||t.remove()})}).observe(t,{childList:!0,subtree:!0})}get bonds(){return this.elementsDrawing.elements}set bonds(t){this.elementsDrawing.elements=t}}class Ti{constructor(t,e){this.svgDoc=t,this.defaultValues={attributes:{stroke:"#808080","stroke-width":"1"},basePadding1:6,basePadding2:6},this.bondsDrawing=new Ai(t,e)}get primaryBonds(){return this.bondsDrawing.bonds}set primaryBonds(t){this.bondsDrawing.bonds=t}append(t){t.appendTo(this.svgDoc),this.primaryBonds.push(t)}add(t,e){let r=Mi.StraightBond.between(t,e);return this.append(r),r.set(this.defaultValues),r}}class ji{constructor(t,e){this.svgDoc=t,this.defaultValues={attributes:{stroke:"#000000","stroke-width":"2"},basePadding1:6,basePadding2:6},this.bondsDrawing=new Ai(t,e)}get secondaryBonds(){return this.bondsDrawing.bonds}set secondaryBonds(t){this.bondsDrawing.bonds=t}append(t){t.appendTo(this.svgDoc),this.secondaryBonds.push(t)}add(t,e){let r=Mi.StraightBond.between(t,e);return this.append(r),r.set(this.defaultValues),r}}var Ci,Di=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class Ii{constructor(t){this.domNode=t,Ci.set(this,void 0),function(t,e,r,n,i){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!i:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");"a"===n?i.call(t,r):i?i.value=r:e.set(t,r)}(this,Ci,new Ai(t,[]),"f")}get tertiaryBonds(){return Di(this,Ci,"f").bonds}set tertiaryBonds(t){Di(this,Ci,"f").bonds=t}addTertiaryBond(t,e){let r=Mi.CurvedBond.between(t,e);return this.domNode.append(r.domNode),this.tertiaryBonds.push(r),r}}Ci=new WeakMap;var ki,Fi=r(976),Li=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class Bi{constructor(t){ki.set(this,void 0),function(t,e,r,n,i){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!i:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");"a"===n?i.call(t,r):i?i.value=r:e.set(t,r)}(this,ki,new gi(t),"f")}get domNode(){return Li(this,ki,"f").domNode}get strungElements(){return Li(this,ki,"f").elements}set strungElements(t){Li(this,ki,"f").elements=t}add(t,e){let r;if("text"==(t=(t=t.trim()).toLowerCase()))r=Fi.StrungText.on(e);else if("circle"==t)r=Fi.StrungCircle.on(e);else if("rectangle"==t)r=Fi.StrungRectangle.on(e);else{if("triangle"!=t)throw new Error(`Unrecognized strung element type: ${t}.`);r=Fi.StrungTriangle.on(e)}return this.domNode.append(r.domNode),Li(this,ki,"f").elements.push(r),r}}ki=new WeakMap;var Vi,Ri=r(854),zi=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class Xi{constructor(t){if(Vi.set(this,void 0),!(0,Ri.isNonNullObject)(t))throw new Error("Saved drawings must be non-null objects.");!function(t,e,r,n,i){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!i:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");"a"===n?i.call(t,r):i?i.value=r:e.set(t,r)}(this,Vi,t,"f")}get outerXML(){if((0,Ri.isString)(zi(this,Vi,"f").outerXML))return zi(this,Vi,"f").outerXML;if((0,Ri.isString)(zi(this,Vi,"f").svg))return zi(this,Vi,"f").svg;throw new Error("Unable to find the outer XML of the saved drawing.")}get bases(){if((0,Ri.isArray)(zi(this,Vi,"f").bases)){if(!zi(this,Vi,"f").bases.every(Ri.isNonNullObject))throw new Error("Saved bases must be non-null objects.");return zi(this,Vi,"f").bases}if((0,Ri.isArray)(zi(this,Vi,"f").sequences)){if(!zi(this,Vi,"f").sequences.every(Ri.isNonNullObject))throw new Error("Saved sequences must be non-null objects.");let t=zi(this,Vi,"f").sequences.flatMap(t=>t.bases);if(!t.every(Ri.isNonNullObject))throw new Error("Saved bases must be non-null objects.");return t}return[]}get outlines(){if((0,Ri.isArray)(zi(this,Vi,"f").outlines))return zi(this,Vi,"f").outlines;if((0,Ri.isArray)(zi(this,Vi,"f").baseOutlines))return zi(this,Vi,"f").baseOutlines;try{let t=this.bases;if(t.some(t=>t.outline))return t.filter(t=>t.outline).map(t=>{if(!(0,Ri.isNonNullObject)(t.outline))throw new Error("Saved outlines must be non-null objects.");return{...t.outline,ownerID:t.textId}})}catch{}return[]}get numberings(){if((0,Ri.isArray)(zi(this,Vi,"f").numberings))return zi(this,Vi,"f").numberings;if((0,Ri.isArray)(zi(this,Vi,"f").baseNumberings))return zi(this,Vi,"f").baseNumberings;try{let t=this.bases;if(t.some(t=>t.numbering))return t.filter(t=>t.numbering).map(t=>{if(!(0,Ri.isNonNullObject)(t.numbering))throw new Error("Saved numberings must be non-null objects.");return{...t.numbering,ownerID:t.textId}})}catch{}return[]}get numberingLines(){if((0,Ri.isArray)(zi(this,Vi,"f").numberingLines))return zi(this,Vi,"f").numberingLines;if((0,Ri.isArray)(zi(this,Vi,"f").baseNumberingLines))return zi(this,Vi,"f").baseNumberingLines;try{let t=this.bases;if(t.some(t=>t.numbering))return t.filter(t=>t.numbering).map(t=>t.numbering)}catch{}return[]}get primaryBonds(){return(0,Ri.isArray)(zi(this,Vi,"f").primaryBonds)?zi(this,Vi,"f").primaryBonds:[]}get secondaryBonds(){return(0,Ri.isArray)(zi(this,Vi,"f").secondaryBonds)?zi(this,Vi,"f").secondaryBonds:[]}get tertiaryBonds(){return(0,Ri.isArray)(zi(this,Vi,"f").tertiaryBonds)?zi(this,Vi,"f").tertiaryBonds:[]}get strungElements(){return(0,Ri.isArray)(zi(this,Vi,"f").strungElements)?zi(this,Vi,"f").strungElements:[]}}Vi=new WeakMap;var Gi,Ui,Yi,Wi,$i,qi,Hi,Ji=r(645),Ki=function(t,e,r,n,i){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!i:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===n?i.call(t,r):i?i.value=r:e.set(t,r),r},Qi=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class Zi{constructor(){Gi.add(this),Ui.set(this,void 0),Yi.set(this,void 0),Wi.set(this,void 0),$i.set(this,void 0),qi.set(this,void 0),this.domNode=(new _n).node,this.domNode.setAttribute("viewBox",`0 0 ${ts} ${es}`),this.domNode.setAttribute("width",`${ts}`),this.domNode.setAttribute("height",`${es}`),this.basesDrawing=new ci(this.domNode,[]),Ki(this,Ui,new Ni(this.domNode),"f"),Ki(this,Yi,new Si(this.domNode),"f"),Ki(this,Wi,new Pi(this.domNode),"f"),this.primaryBondsDrawing=new Ti(this.domNode,[]),this.secondaryBondsDrawing=new ji(this.domNode,[]),Ki(this,$i,new Ii(this.domNode),"f"),Ki(this,qi,new Bi(this.domNode),"f")}get outerXML(){return this.domNode.outerHTML}set outerXML(t){new ai.OuterXML(this.domNode).set(t)}get innerXML(){return this.domNode.innerHTML}set innerXML(t){new ai.InnerXML(this.domNode).set(t)}get name(){return this.domNode.dataset.name}set name(t){void 0===t?this.domNode.removeAttribute("data-name"):this.domNode.setAttribute("data-name",t)}appendTo(t){t.appendChild(this.domNode)}remove(){this.domNode.remove()}get minX(){return this.domNode.viewBox.baseVal.x}set minX(t){let e=this.maxX-t,r=this.horizontalScaling;this.domNode.setAttribute("viewBox",`${t} ${this.minY} ${e} ${this.height}`),this.domNode.setAttribute("width",(r*e).toString())}get maxX(){return this.minX+this.width}set maxX(t){let e=t-this.minX,r=this.horizontalScaling;this.domNode.setAttribute("viewBox",`${this.minX} ${this.minY} ${e} ${this.height}`),this.domNode.setAttribute("width",(r*e).toString())}get minY(){return this.domNode.viewBox.baseVal.y}set minY(t){let e=this.maxY-t,r=this.verticalScaling;this.domNode.setAttribute("viewBox",`${this.minX} ${t} ${this.width} ${e}`),this.domNode.setAttribute("height",(r*e).toString())}get maxY(){return this.minY+this.height}set maxY(t){let e=t-this.minY,r=this.verticalScaling;this.domNode.setAttribute("viewBox",`${this.minX} ${this.minY} ${this.width} ${e}`),this.domNode.setAttribute("height",(r*e).toString())}setBoundaries({minX:t,maxX:e,minY:r,maxY:n}){this.minX=t,this.maxX=e,this.minY=r,this.maxY=n}get width(){return this.domNode.viewBox.baseVal.width}set width(t){this.maxX=this.minX+t}get height(){return this.domNode.viewBox.baseVal.height}set height(t){this.maxY=this.minY+t}get horizontalScaling(){let t=this.width;return this.domNode.width.baseVal.value/t}set horizontalScaling(t){let e=this.width;this.domNode.setAttribute("width",(t*e).toString())}get verticalScaling(){let t=this.height;return this.domNode.height.baseVal.value/t}set verticalScaling(t){let e=this.height;this.domNode.setAttribute("height",(t*e).toString())}setScaling(t){this.horizontalScaling=t,this.verticalScaling=t}get horizontalClientScaling(){return new ai.HorizontalClientScaling(this.domNode).get()}get verticalClientScaling(){return new ai.VerticalClientScaling(this.domNode).get()}isEmpty(){return 0==this.domNode.childNodes.length}get bases(){return this.basesDrawing.bases}set bases(t){this.basesDrawing.bases=[...t]}appendBase(t){this.basesDrawing.append(t)}addBase(t){return this.basesDrawing.add(t)}number(t,e){let r=Qi(this,Ui,"f").number(t,e),n=Qi(this,Yi,"f").connect(r);return r.displacement.magnitude=10,n.direction=(0,di.outwardNormal)(t,...Qi(this,Gi,"a",Hi)),n.length=1.15*r.domNode.getBBox().height,[r,n]}get numberings(){return Qi(this,Ui,"f").numberings}set numberings(t){Qi(this,Ui,"f").numberings=[...t]}get numberingLines(){return Qi(this,Yi,"f").numberingLines}set numberingLines(t){Qi(this,Yi,"f").numberingLines=[...t]}connect(t){return Qi(this,Yi,"f").connect(t)}get baseOutlines(){return Qi(this,Wi,"f").baseOutlines}set baseOutlines(t){Qi(this,Wi,"f").baseOutlines=[...t]}get outlines(){return this.baseOutlines}outlineBase(t){return Qi(this,Wi,"f").outline(t)}outline(t){return this.outlineBase(t)}appendBaseOutline(t){Qi(this,Wi,"f").append(t)}get bonds(){return{find:t=>{var e,r;return null!==(r=null!==(e=this.primaryBondsDrawing.primaryBonds.find(t))&&void 0!==e?e:this.secondaryBondsDrawing.secondaryBonds.find(t))&&void 0!==r?r:Qi(this,$i,"f").tertiaryBonds.find(t)}}}get primaryBonds(){return this.primaryBondsDrawing.primaryBonds}set primaryBonds(t){this.primaryBondsDrawing.primaryBonds=[...t]}appendPrimaryBond(t){this.primaryBondsDrawing.append(t)}addPrimaryBond(t,e){return this.primaryBondsDrawing.add(t,e)}get secondaryBonds(){return this.secondaryBondsDrawing.secondaryBonds}set secondaryBonds(t){this.secondaryBondsDrawing.secondaryBonds=[...t]}appendSecondaryBond(t){this.secondaryBondsDrawing.append(t)}addSecondaryBond(t,e){return this.secondaryBondsDrawing.add(t,e)}get tertiaryBonds(){return Qi(this,$i,"f").tertiaryBonds}set tertiaryBonds(t){Qi(this,$i,"f").tertiaryBonds=[...t]}addTertiaryBond(t,e){return Qi(this,$i,"f").addTertiaryBond(t,e)}get strungElements(){return{[Symbol.iterator]:()=>Qi(this,qi,"f").strungElements[Symbol.iterator](),toArray:()=>Qi(this,qi,"f").strungElements}}set strungElements(t){Array.isArray(t)?Qi(this,qi,"f").strungElements=t:Qi(this,qi,"f").strungElements=[...t]}addStrungElement(t,e){return Qi(this,qi,"f").add(t,e)}rotate(t,e){let r=new Set(t);for(let t of this.numberings)if(r.has(t.owner)){let r=mi.NumberingLine.unpadded(t);this.domNode.append(r.domNode),r.direction+=e,r.domNode.remove()}(0,di.rotate)(t,e)}get defaultValues(){let t=this.primaryBondsDrawing,e=this.secondaryBondsDrawing;return{get primaryBonds(){return t.defaultValues},set primaryBonds(e){t.defaultValues=e},get secondaryBonds(){return e.defaultValues},set secondaryBonds(t){e.defaultValues=t}}}get contentBBox(){return Ji.Box.matching(this.domNode.getBBox())}setPadding(t){let e=this.contentBBox;this.setBoundaries({minX:e.x-t,maxX:e.x+e.width+t,minY:e.y-t,maxY:e.y+e.height+t})}reset(){this.domNode.innerHTML="",this.basesDrawing.bases=[],Qi(this,Wi,"f").baseOutlines=[],this.primaryBondsDrawing.primaryBonds=[],this.secondaryBondsDrawing.secondaryBonds=[],Qi(this,$i,"f").tertiaryBonds=[],[...this.domNode.attributes].forEach(t=>this.domNode.removeAttribute(t.name)),this.domNode.setAttribute("viewBox",`0 0 ${ts} ${es}`),this.domNode.setAttribute("width",`${ts}`),this.domNode.setAttribute("height",`${es}`)}serialized(){return{outerXML:this.outerXML,bases:[...this.bases].map(t=>t.serialized()),numberings:[...this.numberings].map(t=>t.serialized()),numberingLines:[...this.numberingLines].map(t=>t.serialized()),baseOutlines:[...this.baseOutlines].map(t=>t.serialized()),primaryBonds:[...this.primaryBonds].map(t=>t.serialized()),secondaryBonds:[...this.secondaryBonds].map(t=>t.serialized()),tertiaryBonds:[...this.tertiaryBonds].map(t=>t.save()),strungElements:this.strungElements.toArray().map(t=>t.save())}}static deserialized(t){let e=new Xi(t),r=new Zi,n=document.createElement("div");n.append(r.domNode),n.style.width="0px",n.style.height="0px",document.body.append(n),r.outerXML=e.outerXML;let i=r.domNode;r.bases=e.bases.map(t=>ui.Nucleobase.deserialized(t,r));let s=[...r.bases];r.numberings=e.numberings.map(t=>mi.Numbering.deserialized(t,{domNode:i,bases:s}));let o=[...r.numberings];return r.numberingLines=e.numberingLines.map(t=>mi.NumberingLine.deserialized(t,{domNode:i,numberings:o})),r.baseOutlines=e.outlines.map(t=>Oi.BaseOutline.deserialized(t,r)),r.primaryBonds=e.primaryBonds.map(t=>Mi.StraightBond.deserialized(t,r)),r.secondaryBonds=e.secondaryBonds.map(t=>Mi.StraightBond.deserialized(t,r)),r.tertiaryBonds=e.tertiaryBonds.map(t=>Mi.CurvedBond.recreate(t,r)),r.strungElements=e.strungElements.map(t=>Fi.StrungElement.recreate(t,r)),r.domNode.remove(),n.remove(),r}restore(t){let e=Zi.deserialized(t),r=[...e.bases],n=[...e.numberings],i=[...e.numberingLines],s=[...e.baseOutlines],o=[...e.primaryBonds],a=[...e.secondaryBonds],u=[...e.tertiaryBonds],h=e.strungElements.toArray();this.reset(),[...this.domNode.attributes].forEach(t=>this.domNode.removeAttribute(t.name)),[...e.domNode.attributes].forEach(t=>this.domNode.setAttribute(t.name,t.value)),[...e.domNode.childNodes].forEach(t=>this.domNode.appendChild(t)),this.bases=r,this.numberings=n,this.numberingLines=i,this.baseOutlines=s,this.primaryBonds=o,this.secondaryBonds=a,this.tertiaryBonds=u,this.strungElements=h}}Ui=new WeakMap,Yi=new WeakMap,Wi=new WeakMap,$i=new WeakMap,qi=new WeakMap,Gi=new WeakSet,Hi=function(){return[[...this.bases],this.secondaryBondsDrawing.secondaryBonds.map(t=>t.basePair)]};const ts=250,es=250;var rs=r(369),ns=r(127),is=r(986),ss=r(106);class os{constructor(t){this.targetDrawing=t}draw(t,e){let r=[...t].map(t=>this.targetDrawing.addBase(t));(0,ns.consecutivePairs)(r).forEach(t=>this.targetDrawing.addPrimaryBond(...t));let n=(0,rs.parseDotBracket)(e),i=(0,rs.basePairs)(r,n["()"]);i.forEach(t=>this.targetDrawing.addSecondaryBond(...t));let s=(0,rs.basePairs)(r,n.toArray());r.forEach(t=>t.bringToFront());let o=1.87*(0,is.mean)(r.map(t=>t.bbox.height));if(i.length>0?(0,di.untangle)(r,i,{spacing:o,basePairSpacing:o/2,hairpinLoopSpacing:o/2}):((0,di.linearize)(r,{spacing:o/2}),new di.Direction(r).set(0)),(0,ns.missing)(i,s).forEach(t=>this.targetDrawing.addTertiaryBond(...t)),r.length>10){this.targetDrawing.number((0,ss.first)(r),1),this.targetDrawing.number((0,ss.last)(r),r.length);let t=20;r.slice(0,-3).forEach((e,r)=>{let n=r+1;n%t!=0||this.targetDrawing.number(e,n)})}return r.forEach(t=>t.bringToFront()),{bases:r}}}var as,us=r(297),hs=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class cs{constructor(t){as.set(this,void 0),function(t,e,r,n,i){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!i:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");"a"===n?i.call(t,r):i?i.value=r:e.set(t,r)}(this,as,t,"f")}draw(t){let e=(0,us.parseCT)(t),r=[...e.sequence].map(t=>hs(this,as,"f").addBase(t));(0,ns.consecutivePairs)(r).forEach(t=>hs(this,as,"f").addPrimaryBond(...t));let n=(0,rs.basePairs)(r,e.positionPairs),[i,s]=(0,ns.knotless)(r,n),o=(0,ns.missing)(s,n);s.forEach(t=>hs(this,as,"f").addSecondaryBond(...t)),r.forEach(t=>t.bringToFront());let a=1.87*(0,is.mean)(r.map(t=>t.bbox.height));if(s.length>0?(0,di.untangle)(r,s,{spacing:a,basePairSpacing:a/2,hairpinLoopSpacing:a/2}):((0,di.linearize)(r,{spacing:a/2}),new di.Direction(r).set(0)),o.forEach(t=>hs(this,as,"f").addTertiaryBond(...t)),r.length>10){hs(this,as,"f").number((0,ss.first)(r),1+e.numberingOffset),hs(this,as,"f").number((0,ss.last)(r),r.length+e.numberingOffset);let t=20;r.slice(0,-3).forEach((r,n)=>{let i=n+1;i%t!=0||hs(this,as,"f").number(r,i+e.numberingOffset)})}return{bases:r}}}as=new WeakMap;var ls,fs,ds,ms,ps,ys=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class gs{constructor(t){ls.add(this),fs.set(this,void 0),function(t,e,r,n,i){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!i:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");"a"===n?i.call(t,r):i?i.value=r:e.set(t,r)}(this,fs,t,"f")}draw(t){var e;(t={...t,classes:[...bs,...null!==(e=t.classes)&&void 0!==e?e:[]]}).rnaComplexes.forEach(e=>{e.rnaMolecules.forEach(e=>{let r=e.sequence.map(e=>ys(this,ls,"m",ds).call(this,e,t)),n=(0,is.mean)(r.map(t=>t.bbox.height));ys(this,fs,"f").defaultValues.primaryBonds.attributes["stroke-width"]=""+.125*n,ys(this,fs,"f").defaultValues.primaryBonds.basePadding1=.75*n,ys(this,fs,"f").defaultValues.primaryBonds.basePadding2=.75*n,(0,ns.consecutivePairs)(r).forEach(t=>ys(this,fs,"f").addPrimaryBond(...t)),ys(this,fs,"f").defaultValues.secondaryBonds.attributes["stroke-width"]=""+.15*n,ys(this,fs,"f").defaultValues.secondaryBonds.basePadding1=.6*n,ys(this,fs,"f").defaultValues.secondaryBonds.basePadding2=.6*n,new Set(e.basePairs.map(t=>JSON.stringify(t))).forEach(e=>ys(this,ls,"m",ms).call(this,JSON.parse(e),r,t)),mi.Numbering.defaultValues.attributes["font-family"]="Helvetica",mi.Numbering.defaultValues.attributes["font-size"]=""+.97*n,mi.Numbering.defaultValues.attributes["font-weight"]="700",mi.Numbering.defaultValues.attributes.fill="#cccccc",mi.NumberingLine.defaultValues.attributes.stroke="#cccccc",mi.NumberingLine.defaultValues.attributes["stroke-width"]=""+.125*n,mi.NumberingLine.defaultValues.basePadding=.75*n,mi.NumberingLine.defaultValues.textPadding=.25*n,(0,Ri.isArray)(e.labels)&&new Set(e.labels.map(t=>JSON.stringify(t))).forEach(t=>ys(this,ls,"m",ps).call(this,JSON.parse(t),r))})})}}fs=new WeakMap,ls=new WeakSet,ds=function(t,e){var r,n;let i=ys(this,fs,"f").addBase(t.residueName),s=null===(r=e.classes)||void 0===r?void 0:r.find(t=>"font"==t.name);return!s||i.setAttributes({...s,name:void 0}),null===(n=t.classes)||void 0===n||n.forEach(t=>{var r;(null!==(r=e.classes)&&void 0!==r?r:[]).filter(e=>e.name==t).forEach(t=>i.setAttributes({...t,name:void 0}))}),i.centerPoint.x=t.x,i.centerPoint.y=t.y,i},ms=function(t,e,r){var n;let i=e[t.residueIndex1],s=e[t.residueIndex2],o=ys(this,fs,"f").addSecondaryBond(i,s);return null===(n=t.classes)||void 0===n||n.forEach(t=>{var e;(null!==(e=r.classes)&&void 0!==e?e:[]).filter(e=>e.name==t).forEach(t=>o.setAttributes({...t,name:void 0}))}),o},ps=function(t,e){if(!(0,Ri.isNonNullObject)(t))return void console.error(`Label schema is not an object: ${t}.`);if("number"!=typeof t.residueIndex)return void console.error(`Label residue index is not a number: ${t.residueIndex}.`);if(t.residueIndex<0)return void console.error(`Label residue index is negative: ${t.residueIndex}.`);if(t.residueIndex>=e.length)return void console.error(`Label residue index is out-of-bounds: ${t.residueIndex}.`);if(!Number.isInteger(t.residueIndex))return void console.error(`Label residue index is not an integer: ${t.residueIndex}.`);let r=e[t.residueIndex],n=t.residueIndex+1,i=t.labelContent;(0,Ri.isNonNullObject)(i)||console.error(`Label content schema is not an object: ${i}.`);let s=(0,Ri.isNonNullObject)(i)&&!(0,Ri.isNullish)(i.label)&&""!==i.label?`${i.label}`:`${n}`,[o,a]=ys(this,fs,"f").number(r,n),u=o.displacement.direction;o.textContent=s,a.length=1.03*r.domNode.getBBox().height,a.direction=u};const bs=[{name:"text-black",fill:"#000000"},{name:"text-green",fill:"#00ff00"},{name:"text-red",fill:"#ff00ff"},{name:"text-blue",fill:"#0000ff"}]})(),n})());