@decidables/detectable-elements 0.2.7 → 0.2.9

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.
@@ -14,13 +14,13 @@ const t=globalThis,e=t.ShadowRoot&&(void 0===t.ShadyCSS||t.ShadyCSS.nativeShadow
14
14
  * Copyright 2017 Google LLC
15
15
  * SPDX-License-Identifier: BSD-3-Clause
16
16
  */
17
- const k=globalThis,_=k.trustedTypes,S=_?_.createPolicy("lit-html",{createHTML:t=>t}):void 0,A="$lit$",E=`lit$${(Math.random()+"").slice(9)}$`,M="?"+E,T=`<${M}>`,C=document,N=()=>C.createComment(""),R=t=>null===t||"object"!=typeof t&&"function"!=typeof t,P=Array.isArray,q="[ \t\n\f\r]",z=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,F=/-->/g,O=/>/g,I=RegExp(`>|${q}(?:([^\\s"'>=/]+)(${q}*=${q}*(?:[^ \t\n\f\r"'\`<>=]|("|')|))|$)`,"g"),U=/'/g,H=/"/g,D=/^(?:script|style|textarea|title)$/i,L=t=>(e,...r)=>({_$litType$:t,strings:e,values:r}),j=L(1),B=L(2),V=Symbol.for("lit-noChange"),K=Symbol.for("lit-nothing"),X=new WeakMap,W=C.createTreeWalker(C,129);function G(t,e){if(!Array.isArray(t)||!t.hasOwnProperty("raw"))throw Error("invalid template strings array");return void 0!==S?S.createHTML(e):e}const Y=(t,e)=>{const r=t.length-1,n=[];let i,s=2===e?"<svg>":"",a=z;for(let e=0;e<r;e++){const r=t[e];let o,l,c=-1,h=0;for(;h<r.length&&(a.lastIndex=h,l=a.exec(r),null!==l);)h=a.lastIndex,a===z?"!--"===l[1]?a=F:void 0!==l[1]?a=O:void 0!==l[2]?(D.test(l[2])&&(i=RegExp("</"+l[2],"g")),a=I):void 0!==l[3]&&(a=I):a===I?">"===l[0]?(a=i??z,c=-1):void 0===l[1]?c=-2:(c=a.lastIndex-l[2].length,o=l[1],a=void 0===l[3]?I:'"'===l[3]?H:U):a===H||a===U?a=I:a===F||a===O?a=z:(a=I,i=void 0);const u=a===I&&t[e+1].startsWith("/>")?" ":"";s+=a===z?r+T:c>=0?(n.push(o),r.slice(0,c)+A+r.slice(c)+E+u):r+E+(-2===c?e:u)}return[G(t,s+(t[r]||"<?>")+(2===e?"</svg>":"")),n]};class Z{constructor({strings:t,_$litType$:e},r){let n;this.parts=[];let i=0,s=0;const a=t.length-1,o=this.parts,[l,c]=Y(t,e);if(this.el=Z.createElement(l,r),W.currentNode=this.el.content,2===e){const t=this.el.content.firstChild;t.replaceWith(...t.childNodes)}for(;null!==(n=W.nextNode())&&o.length<a;){if(1===n.nodeType){if(n.hasAttributes())for(const t of n.getAttributeNames())if(t.endsWith(A)){const e=c[s++],r=n.getAttribute(t).split(E),a=/([.?@])?(.*)/.exec(e);o.push({type:1,index:i,name:a[2],strings:r,ctor:"."===a[1]?rt:"?"===a[1]?nt:"@"===a[1]?it:et}),n.removeAttribute(t)}else t.startsWith(E)&&(o.push({type:6,index:i}),n.removeAttribute(t));if(D.test(n.tagName)){const t=n.textContent.split(E),e=t.length-1;if(e>0){n.textContent=_?_.emptyScript:"";for(let r=0;r<e;r++)n.append(t[r],N()),W.nextNode(),o.push({type:2,index:++i});n.append(t[e],N())}}}else if(8===n.nodeType)if(n.data===M)o.push({type:2,index:i});else{let t=-1;for(;-1!==(t=n.data.indexOf(E,t+1));)o.push({type:7,index:i}),t+=E.length-1}i++}}static createElement(t,e){const r=C.createElement("template");return r.innerHTML=t,r}}function Q(t,e,r=t,n){if(e===V)return e;let i=void 0!==n?r._$Co?.[n]:r._$Cl;const s=R(e)?void 0:e._$litDirective$;return i?.constructor!==s&&(i?._$AO?.(!1),void 0===s?i=void 0:(i=new s(t),i._$AT(t,r,n)),void 0!==n?(r._$Co??=[])[n]=i:r._$Cl=i),void 0!==i&&(e=Q(t,i._$AS(t,e.values),i,n)),e}class J{constructor(t,e){this._$AV=[],this._$AN=void 0,this._$AD=t,this._$AM=e}get parentNode(){return this._$AM.parentNode}get _$AU(){return this._$AM._$AU}u(t){const{el:{content:e},parts:r}=this._$AD,n=(t?.creationScope??C).importNode(e,!0);W.currentNode=n;let i=W.nextNode(),s=0,a=0,o=r[0];for(;void 0!==o;){if(s===o.index){let e;2===o.type?e=new tt(i,i.nextSibling,this,t):1===o.type?e=new o.ctor(i,o.name,o.strings,this,t):6===o.type&&(e=new st(i,this,t)),this._$AV.push(e),o=r[++a]}s!==o?.index&&(i=W.nextNode(),s++)}return W.currentNode=C,n}p(t){let e=0;for(const r of this._$AV)void 0!==r&&(void 0!==r.strings?(r._$AI(t,r,e),e+=r.strings.length-2):r._$AI(t[e])),e++}}class tt{get _$AU(){return this._$AM?._$AU??this._$Cv}constructor(t,e,r,n){this.type=2,this._$AH=K,this._$AN=void 0,this._$AA=t,this._$AB=e,this._$AM=r,this.options=n,this._$Cv=n?.isConnected??!0}get parentNode(){let t=this._$AA.parentNode;const e=this._$AM;return void 0!==e&&11===t?.nodeType&&(t=e.parentNode),t}get startNode(){return this._$AA}get endNode(){return this._$AB}_$AI(t,e=this){t=Q(this,t,e),R(t)?t===K||null==t||""===t?(this._$AH!==K&&this._$AR(),this._$AH=K):t!==this._$AH&&t!==V&&this._(t):void 0!==t._$litType$?this.g(t):void 0!==t.nodeType?this.$(t):(t=>P(t)||"function"==typeof t?.[Symbol.iterator])(t)?this.T(t):this._(t)}k(t){return this._$AA.parentNode.insertBefore(t,this._$AB)}$(t){this._$AH!==t&&(this._$AR(),this._$AH=this.k(t))}_(t){this._$AH!==K&&R(this._$AH)?this._$AA.nextSibling.data=t:this.$(C.createTextNode(t)),this._$AH=t}g(t){const{values:e,_$litType$:r}=t,n="number"==typeof r?this._$AC(t):(void 0===r.el&&(r.el=Z.createElement(G(r.h,r.h[0]),this.options)),r);if(this._$AH?._$AD===n)this._$AH.p(e);else{const t=new J(n,this),r=t.u(this.options);t.p(e),this.$(r),this._$AH=t}}_$AC(t){let e=X.get(t.strings);return void 0===e&&X.set(t.strings,e=new Z(t)),e}T(t){P(this._$AH)||(this._$AH=[],this._$AR());const e=this._$AH;let r,n=0;for(const i of t)n===e.length?e.push(r=new tt(this.k(N()),this.k(N()),this,this.options)):r=e[n],r._$AI(i),n++;n<e.length&&(this._$AR(r&&r._$AB.nextSibling,n),e.length=n)}_$AR(t=this._$AA.nextSibling,e){for(this._$AP?.(!1,!0,e);t&&t!==this._$AB;){const e=t.nextSibling;t.remove(),t=e}}setConnected(t){void 0===this._$AM&&(this._$Cv=t,this._$AP?.(t))}}class et{get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}constructor(t,e,r,n,i){this.type=1,this._$AH=K,this._$AN=void 0,this.element=t,this.name=e,this._$AM=n,this.options=i,r.length>2||""!==r[0]||""!==r[1]?(this._$AH=Array(r.length-1).fill(new String),this.strings=r):this._$AH=K}_$AI(t,e=this,r,n){const i=this.strings;let s=!1;if(void 0===i)t=Q(this,t,e,0),s=!R(t)||t!==this._$AH&&t!==V,s&&(this._$AH=t);else{const n=t;let a,o;for(t=i[0],a=0;a<i.length-1;a++)o=Q(this,n[r+a],e,a),o===V&&(o=this._$AH[a]),s||=!R(o)||o!==this._$AH[a],o===K?t=K:t!==K&&(t+=(o??"")+i[a+1]),this._$AH[a]=o}s&&!n&&this.O(t)}O(t){t===K?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,t??"")}}class rt extends et{constructor(){super(...arguments),this.type=3}O(t){this.element[this.name]=t===K?void 0:t}}class nt extends et{constructor(){super(...arguments),this.type=4}O(t){this.element.toggleAttribute(this.name,!!t&&t!==K)}}class it extends et{constructor(t,e,r,n,i){super(t,e,r,n,i),this.type=5}_$AI(t,e=this){if((t=Q(this,t,e,0)??K)===V)return;const r=this._$AH,n=t===K&&r!==K||t.capture!==r.capture||t.once!==r.once||t.passive!==r.passive,i=t!==K&&(r===K||n);n&&this.element.removeEventListener(this.name,this,r),i&&this.element.addEventListener(this.name,this,t),this._$AH=t}handleEvent(t){"function"==typeof this._$AH?this._$AH.call(this.options?.host??this.element,t):this._$AH.handleEvent(t)}}class st{constructor(t,e,r){this.element=t,this.type=6,this._$AN=void 0,this._$AM=e,this.options=r}get _$AU(){return this._$AM._$AU}_$AI(t){Q(this,t)}}const at=k.litHtmlPolyfillSupport;at?.(Z,tt),(k.litHtmlVersions??=[]).push("3.1.0");
17
+ const k=globalThis,_=k.trustedTypes,S=_?_.createPolicy("lit-html",{createHTML:t=>t}):void 0,A="$lit$",E=`lit$${(Math.random()+"").slice(9)}$`,M="?"+E,T=`<${M}>`,C=document,N=()=>C.createComment(""),R=t=>null===t||"object"!=typeof t&&"function"!=typeof t,P=Array.isArray,q="[ \t\n\f\r]",z=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,F=/-->/g,O=/>/g,U=RegExp(`>|${q}(?:([^\\s"'>=/]+)(${q}*=${q}*(?:[^ \t\n\f\r"'\`<>=]|("|')|))|$)`,"g"),I=/'/g,H=/"/g,D=/^(?:script|style|textarea|title)$/i,L=t=>(e,...r)=>({_$litType$:t,strings:e,values:r}),j=L(1),B=L(2),V=Symbol.for("lit-noChange"),K=Symbol.for("lit-nothing"),X=new WeakMap,W=C.createTreeWalker(C,129);function G(t,e){if(!Array.isArray(t)||!t.hasOwnProperty("raw"))throw Error("invalid template strings array");return void 0!==S?S.createHTML(e):e}const Y=(t,e)=>{const r=t.length-1,n=[];let i,s=2===e?"<svg>":"",a=z;for(let e=0;e<r;e++){const r=t[e];let o,l,c=-1,h=0;for(;h<r.length&&(a.lastIndex=h,l=a.exec(r),null!==l);)h=a.lastIndex,a===z?"!--"===l[1]?a=F:void 0!==l[1]?a=O:void 0!==l[2]?(D.test(l[2])&&(i=RegExp("</"+l[2],"g")),a=U):void 0!==l[3]&&(a=U):a===U?">"===l[0]?(a=i??z,c=-1):void 0===l[1]?c=-2:(c=a.lastIndex-l[2].length,o=l[1],a=void 0===l[3]?U:'"'===l[3]?H:I):a===H||a===I?a=U:a===F||a===O?a=z:(a=U,i=void 0);const u=a===U&&t[e+1].startsWith("/>")?" ":"";s+=a===z?r+T:c>=0?(n.push(o),r.slice(0,c)+A+r.slice(c)+E+u):r+E+(-2===c?e:u)}return[G(t,s+(t[r]||"<?>")+(2===e?"</svg>":"")),n]};class Z{constructor({strings:t,_$litType$:e},r){let n;this.parts=[];let i=0,s=0;const a=t.length-1,o=this.parts,[l,c]=Y(t,e);if(this.el=Z.createElement(l,r),W.currentNode=this.el.content,2===e){const t=this.el.content.firstChild;t.replaceWith(...t.childNodes)}for(;null!==(n=W.nextNode())&&o.length<a;){if(1===n.nodeType){if(n.hasAttributes())for(const t of n.getAttributeNames())if(t.endsWith(A)){const e=c[s++],r=n.getAttribute(t).split(E),a=/([.?@])?(.*)/.exec(e);o.push({type:1,index:i,name:a[2],strings:r,ctor:"."===a[1]?rt:"?"===a[1]?nt:"@"===a[1]?it:et}),n.removeAttribute(t)}else t.startsWith(E)&&(o.push({type:6,index:i}),n.removeAttribute(t));if(D.test(n.tagName)){const t=n.textContent.split(E),e=t.length-1;if(e>0){n.textContent=_?_.emptyScript:"";for(let r=0;r<e;r++)n.append(t[r],N()),W.nextNode(),o.push({type:2,index:++i});n.append(t[e],N())}}}else if(8===n.nodeType)if(n.data===M)o.push({type:2,index:i});else{let t=-1;for(;-1!==(t=n.data.indexOf(E,t+1));)o.push({type:7,index:i}),t+=E.length-1}i++}}static createElement(t,e){const r=C.createElement("template");return r.innerHTML=t,r}}function Q(t,e,r=t,n){if(e===V)return e;let i=void 0!==n?r._$Co?.[n]:r._$Cl;const s=R(e)?void 0:e._$litDirective$;return i?.constructor!==s&&(i?._$AO?.(!1),void 0===s?i=void 0:(i=new s(t),i._$AT(t,r,n)),void 0!==n?(r._$Co??=[])[n]=i:r._$Cl=i),void 0!==i&&(e=Q(t,i._$AS(t,e.values),i,n)),e}class J{constructor(t,e){this._$AV=[],this._$AN=void 0,this._$AD=t,this._$AM=e}get parentNode(){return this._$AM.parentNode}get _$AU(){return this._$AM._$AU}u(t){const{el:{content:e},parts:r}=this._$AD,n=(t?.creationScope??C).importNode(e,!0);W.currentNode=n;let i=W.nextNode(),s=0,a=0,o=r[0];for(;void 0!==o;){if(s===o.index){let e;2===o.type?e=new tt(i,i.nextSibling,this,t):1===o.type?e=new o.ctor(i,o.name,o.strings,this,t):6===o.type&&(e=new st(i,this,t)),this._$AV.push(e),o=r[++a]}s!==o?.index&&(i=W.nextNode(),s++)}return W.currentNode=C,n}p(t){let e=0;for(const r of this._$AV)void 0!==r&&(void 0!==r.strings?(r._$AI(t,r,e),e+=r.strings.length-2):r._$AI(t[e])),e++}}class tt{get _$AU(){return this._$AM?._$AU??this._$Cv}constructor(t,e,r,n){this.type=2,this._$AH=K,this._$AN=void 0,this._$AA=t,this._$AB=e,this._$AM=r,this.options=n,this._$Cv=n?.isConnected??!0}get parentNode(){let t=this._$AA.parentNode;const e=this._$AM;return void 0!==e&&11===t?.nodeType&&(t=e.parentNode),t}get startNode(){return this._$AA}get endNode(){return this._$AB}_$AI(t,e=this){t=Q(this,t,e),R(t)?t===K||null==t||""===t?(this._$AH!==K&&this._$AR(),this._$AH=K):t!==this._$AH&&t!==V&&this._(t):void 0!==t._$litType$?this.g(t):void 0!==t.nodeType?this.$(t):(t=>P(t)||"function"==typeof t?.[Symbol.iterator])(t)?this.T(t):this._(t)}k(t){return this._$AA.parentNode.insertBefore(t,this._$AB)}$(t){this._$AH!==t&&(this._$AR(),this._$AH=this.k(t))}_(t){this._$AH!==K&&R(this._$AH)?this._$AA.nextSibling.data=t:this.$(C.createTextNode(t)),this._$AH=t}g(t){const{values:e,_$litType$:r}=t,n="number"==typeof r?this._$AC(t):(void 0===r.el&&(r.el=Z.createElement(G(r.h,r.h[0]),this.options)),r);if(this._$AH?._$AD===n)this._$AH.p(e);else{const t=new J(n,this),r=t.u(this.options);t.p(e),this.$(r),this._$AH=t}}_$AC(t){let e=X.get(t.strings);return void 0===e&&X.set(t.strings,e=new Z(t)),e}T(t){P(this._$AH)||(this._$AH=[],this._$AR());const e=this._$AH;let r,n=0;for(const i of t)n===e.length?e.push(r=new tt(this.k(N()),this.k(N()),this,this.options)):r=e[n],r._$AI(i),n++;n<e.length&&(this._$AR(r&&r._$AB.nextSibling,n),e.length=n)}_$AR(t=this._$AA.nextSibling,e){for(this._$AP?.(!1,!0,e);t&&t!==this._$AB;){const e=t.nextSibling;t.remove(),t=e}}setConnected(t){void 0===this._$AM&&(this._$Cv=t,this._$AP?.(t))}}class et{get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}constructor(t,e,r,n,i){this.type=1,this._$AH=K,this._$AN=void 0,this.element=t,this.name=e,this._$AM=n,this.options=i,r.length>2||""!==r[0]||""!==r[1]?(this._$AH=Array(r.length-1).fill(new String),this.strings=r):this._$AH=K}_$AI(t,e=this,r,n){const i=this.strings;let s=!1;if(void 0===i)t=Q(this,t,e,0),s=!R(t)||t!==this._$AH&&t!==V,s&&(this._$AH=t);else{const n=t;let a,o;for(t=i[0],a=0;a<i.length-1;a++)o=Q(this,n[r+a],e,a),o===V&&(o=this._$AH[a]),s||=!R(o)||o!==this._$AH[a],o===K?t=K:t!==K&&(t+=(o??"")+i[a+1]),this._$AH[a]=o}s&&!n&&this.O(t)}O(t){t===K?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,t??"")}}class rt extends et{constructor(){super(...arguments),this.type=3}O(t){this.element[this.name]=t===K?void 0:t}}class nt extends et{constructor(){super(...arguments),this.type=4}O(t){this.element.toggleAttribute(this.name,!!t&&t!==K)}}class it extends et{constructor(t,e,r,n,i){super(t,e,r,n,i),this.type=5}_$AI(t,e=this){if((t=Q(this,t,e,0)??K)===V)return;const r=this._$AH,n=t===K&&r!==K||t.capture!==r.capture||t.once!==r.once||t.passive!==r.passive,i=t!==K&&(r===K||n);n&&this.element.removeEventListener(this.name,this,r),i&&this.element.addEventListener(this.name,this,t),this._$AH=t}handleEvent(t){"function"==typeof this._$AH?this._$AH.call(this.options?.host??this.element,t):this._$AH.handleEvent(t)}}class st{constructor(t,e,r){this.element=t,this.type=6,this._$AN=void 0,this._$AM=e,this.options=r}get _$AU(){return this._$AM._$AU}_$AI(t){Q(this,t)}}const at=k.litHtmlPolyfillSupport;at?.(Z,tt),(k.litHtmlVersions??=[]).push("3.1.0");
18
18
  /**
19
19
  * @license
20
20
  * Copyright 2017 Google LLC
21
21
  * SPDX-License-Identifier: BSD-3-Clause
22
22
  */
23
- class ot extends ${constructor(){super(...arguments),this.renderOptions={host:this},this._$Do=void 0}createRenderRoot(){const t=super.createRenderRoot();return this.renderOptions.renderBefore??=t.firstChild,t}update(t){const e=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(t),this._$Do=((t,e,r)=>{const n=r?.renderBefore??e;let i=n._$litPart$;if(void 0===i){const t=r?.renderBefore??null;n._$litPart$=i=new tt(e.insertBefore(N(),t),t,void 0,r??{})}return i._$AI(t),i})(e,this.renderRoot,this.renderOptions)}connectedCallback(){super.connectedCallback(),this._$Do?.setConnected(!0)}disconnectedCallback(){super.disconnectedCallback(),this._$Do?.setConnected(!1)}render(){return V}}ot._$litElement$=!0,ot.finalized=!0,globalThis.litElementHydrateSupport?.({LitElement:ot});const lt=globalThis.litElementPolyfillSupport;function ct(t,e){return null==t||null==e?NaN:t<e?-1:t>e?1:t>=e?0:NaN}function ht(t,e){return null==t||null==e?NaN:e<t?-1:e>t?1:e>=t?0:NaN}function ut(t){let e,r,n;function i(t,n,i=0,s=t.length){if(i<s){if(0!==e(n,n))return s;do{const e=i+s>>>1;r(t[e],n)<0?i=e+1:s=e}while(i<s)}return i}return 2!==t.length?(e=ct,r=(e,r)=>ct(t(e),r),n=(e,r)=>t(e)-r):(e=t===ct||t===ht?t:dt,r=t,n=t),{left:i,center:function(t,e,r=0,s=t.length){const a=i(t,e,r,s-1);return a>r&&n(t[a-1],e)>-n(t[a],e)?a-1:a},right:function(t,n,i=0,s=t.length){if(i<s){if(0!==e(n,n))return s;do{const e=i+s>>>1;r(t[e],n)<=0?i=e+1:s=e}while(i<s)}return i}}}function dt(){return 0}lt?.({LitElement:ot}),(globalThis.litElementVersions??=[]).push("4.0.2");const ft=ut(ct).right;ut((function(t){return null===t?NaN:+t})).center;var pt=ft;function mt(t,e){let r,n;if(void 0===e)for(const e of t)null!=e&&(void 0===r?e>=e&&(r=n=e):(r>e&&(r=e),n<e&&(n=e)));else{let i=-1;for(let s of t)null!=(s=e(s,++i,t))&&(void 0===r?s>=s&&(r=n=s):(r>s&&(r=s),n<s&&(n=s)))}return[r,n]}class bt{constructor(){this._partials=new Float64Array(32),this._n=0}add(t){const e=this._partials;let r=0;for(let n=0;n<this._n&&n<32;n++){const i=e[n],s=t+i,a=Math.abs(t)<Math.abs(i)?t-(s-i):i-(s-t);a&&(e[r++]=a),t=s}return e[r]=t,this._n=r+1,this}valueOf(){const t=this._partials;let e,r,n,i=this._n,s=0;if(i>0){for(s=t[--i];i>0&&(e=s,r=t[--i],s=e+r,n=r-(s-e),!n););i>0&&(n<0&&t[i-1]<0||n>0&&t[i-1]>0)&&(r=2*n,e=s+r,r==e-s&&(s=e))}return s}}function gt(t){return t}var vt=Array.prototype.slice;function yt(t){return()=>t}const wt=Math.sqrt(50),xt=Math.sqrt(10),$t=Math.sqrt(2);function kt(t,e,r){const n=(e-t)/Math.max(0,r),i=Math.floor(Math.log10(n)),s=n/Math.pow(10,i),a=s>=wt?10:s>=xt?5:s>=$t?2:1;let o,l,c;return i<0?(c=Math.pow(10,-i)/a,o=Math.round(t*c),l=Math.round(e*c),o/c<t&&++o,l/c>e&&--l,c=-c):(c=Math.pow(10,i)*a,o=Math.round(t/c),l=Math.round(e/c),o*c<t&&++o,l*c>e&&--l),l<o&&.5<=r&&r<2?kt(t,e,2*r):[o,l,c]}function _t(t,e,r){if(!((r=+r)>0))return[];if((t=+t)===(e=+e))return[t];const n=e<t,[i,s,a]=n?kt(e,t,r):kt(t,e,r);if(!(s>=i))return[];const o=s-i+1,l=new Array(o);if(n)if(a<0)for(let t=0;t<o;++t)l[t]=(s-t)/-a;else for(let t=0;t<o;++t)l[t]=(s-t)*a;else if(a<0)for(let t=0;t<o;++t)l[t]=(i+t)/-a;else for(let t=0;t<o;++t)l[t]=(i+t)*a;return l}function St(t,e,r){return kt(t=+t,e=+e,r=+r)[2]}function At(t,e,r){let n;for(;;){const i=St(t,e,r);if(i===n||0===i||!isFinite(i))return[t,e];i>0?(t=Math.floor(t/i)*i,e=Math.ceil(e/i)*i):i<0&&(t=Math.ceil(t*i)/i,e=Math.floor(e*i)/i),n=i}}function Et(t){return Math.max(1,Math.ceil(Math.log(function(t,e){let r=0;if(void 0===e)for(let e of t)null!=e&&(e=+e)>=e&&++r;else{let n=-1;for(let i of t)null!=(i=e(i,++n,t))&&(i=+i)>=i&&++r}return r}(t))/Math.LN2)+1)}function Mt(t,e,r){t=+t,e=+e,r=(i=arguments.length)<2?(e=t,t=0,1):i<3?1:+r;for(var n=-1,i=0|Math.max(0,Math.ceil((e-t)/r)),s=new Array(i);++n<i;)s[n]=t+n*r;return s}function Tt(t){return t}var Ct=1,Nt=2,Rt=3,Pt=4,qt=1e-6;function zt(t){return"translate("+t+",0)"}function Ft(t){return"translate(0,"+t+")"}function Ot(t){return e=>+t(e)}function It(t,e){return e=Math.max(0,t.bandwidth()-2*e)/2,t.round()&&(e=Math.round(e)),r=>+t(r)+e}function Ut(){return!this.__axis}function Ht(t,e){var r=[],n=null,i=null,s=6,a=6,o=3,l="undefined"!=typeof window&&window.devicePixelRatio>1?0:.5,c=t===Ct||t===Pt?-1:1,h=t===Pt||t===Nt?"x":"y",u=t===Ct||t===Rt?zt:Ft;function d(d){var f=null==n?e.ticks?e.ticks.apply(e,r):e.domain():n,p=null==i?e.tickFormat?e.tickFormat.apply(e,r):Tt:i,m=Math.max(s,0)+o,b=e.range(),g=+b[0]+l,v=+b[b.length-1]+l,y=(e.bandwidth?It:Ot)(e.copy(),l),w=d.selection?d.selection():d,x=w.selectAll(".domain").data([null]),$=w.selectAll(".tick").data(f,e).order(),k=$.exit(),_=$.enter().append("g").attr("class","tick"),S=$.select("line"),A=$.select("text");x=x.merge(x.enter().insert("path",".tick").attr("class","domain").attr("stroke","currentColor")),$=$.merge(_),S=S.merge(_.append("line").attr("stroke","currentColor").attr(h+"2",c*s)),A=A.merge(_.append("text").attr("fill","currentColor").attr(h,c*m).attr("dy",t===Ct?"0em":t===Rt?"0.71em":"0.32em")),d!==w&&(x=x.transition(d),$=$.transition(d),S=S.transition(d),A=A.transition(d),k=k.transition(d).attr("opacity",qt).attr("transform",(function(t){return isFinite(t=y(t))?u(t+l):this.getAttribute("transform")})),_.attr("opacity",qt).attr("transform",(function(t){var e=this.parentNode.__axis;return u((e&&isFinite(e=e(t))?e:y(t))+l)}))),k.remove(),x.attr("d",t===Pt||t===Nt?a?"M"+c*a+","+g+"H"+l+"V"+v+"H"+c*a:"M"+l+","+g+"V"+v:a?"M"+g+","+c*a+"V"+l+"H"+v+"V"+c*a:"M"+g+","+l+"H"+v),$.attr("opacity",1).attr("transform",(function(t){return u(y(t)+l)})),S.attr(h+"2",c*s),A.attr(h,c*m).text(p),w.filter(Ut).attr("fill","none").attr("font-size",10).attr("font-family","sans-serif").attr("text-anchor",t===Nt?"start":t===Pt?"end":"middle"),w.each((function(){this.__axis=y}))}return d.scale=function(t){return arguments.length?(e=t,d):e},d.ticks=function(){return r=Array.from(arguments),d},d.tickArguments=function(t){return arguments.length?(r=null==t?[]:Array.from(t),d):r.slice()},d.tickValues=function(t){return arguments.length?(n=null==t?null:Array.from(t),d):n&&n.slice()},d.tickFormat=function(t){return arguments.length?(i=t,d):i},d.tickSize=function(t){return arguments.length?(s=a=+t,d):s},d.tickSizeInner=function(t){return arguments.length?(s=+t,d):s},d.tickSizeOuter=function(t){return arguments.length?(a=+t,d):a},d.tickPadding=function(t){return arguments.length?(o=+t,d):o},d.offset=function(t){return arguments.length?(l=+t,d):l},d}function Dt(t){return Ht(Rt,t)}function Lt(t){return Ht(Pt,t)}var jt={value:()=>{}};function Bt(){for(var t,e=0,r=arguments.length,n={};e<r;++e){if(!(t=arguments[e]+"")||t in n||/[\s.]/.test(t))throw new Error("illegal type: "+t);n[t]=[]}return new Vt(n)}function Vt(t){this._=t}function Kt(t,e){for(var r,n=0,i=t.length;n<i;++n)if((r=t[n]).name===e)return r.value}function Xt(t,e,r){for(var n=0,i=t.length;n<i;++n)if(t[n].name===e){t[n]=jt,t=t.slice(0,n).concat(t.slice(n+1));break}return null!=r&&t.push({name:e,value:r}),t}Vt.prototype=Bt.prototype={constructor:Vt,on:function(t,e){var r,n,i=this._,s=(n=i,(t+"").trim().split(/^|\s+/).map((function(t){var e="",r=t.indexOf(".");if(r>=0&&(e=t.slice(r+1),t=t.slice(0,r)),t&&!n.hasOwnProperty(t))throw new Error("unknown type: "+t);return{type:t,name:e}}))),a=-1,o=s.length;if(!(arguments.length<2)){if(null!=e&&"function"!=typeof e)throw new Error("invalid callback: "+e);for(;++a<o;)if(r=(t=s[a]).type)i[r]=Xt(i[r],t.name,e);else if(null==e)for(r in i)i[r]=Xt(i[r],t.name,null);return this}for(;++a<o;)if((r=(t=s[a]).type)&&(r=Kt(i[r],t.name)))return r},copy:function(){var t={},e=this._;for(var r in e)t[r]=e[r].slice();return new Vt(t)},call:function(t,e){if((r=arguments.length-2)>0)for(var r,n,i=new Array(r),s=0;s<r;++s)i[s]=arguments[s+2];if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(s=0,r=(n=this._[t]).length;s<r;++s)n[s].value.apply(e,i)},apply:function(t,e,r){if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(var n=this._[t],i=0,s=n.length;i<s;++i)n[i].value.apply(e,r)}};var Wt="http://www.w3.org/1999/xhtml",Gt={svg:"http://www.w3.org/2000/svg",xhtml:Wt,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function Yt(t){var e=t+="",r=e.indexOf(":");return r>=0&&"xmlns"!==(e=t.slice(0,r))&&(t=t.slice(r+1)),Gt.hasOwnProperty(e)?{space:Gt[e],local:t}:t}function Zt(t){return function(){var e=this.ownerDocument,r=this.namespaceURI;return r===Wt&&e.documentElement.namespaceURI===Wt?e.createElement(t):e.createElementNS(r,t)}}function Qt(t){return function(){return this.ownerDocument.createElementNS(t.space,t.local)}}function Jt(t){var e=Yt(t);return(e.local?Qt:Zt)(e)}function te(){}function ee(t){return null==t?te:function(){return this.querySelector(t)}}function re(){return[]}function ne(t){return null==t?re:function(){return this.querySelectorAll(t)}}function ie(t){return function(){return function(t){return null==t?[]:Array.isArray(t)?t:Array.from(t)}(t.apply(this,arguments))}}function se(t){return function(){return this.matches(t)}}function ae(t){return function(e){return e.matches(t)}}var oe=Array.prototype.find;function le(){return this.firstElementChild}var ce=Array.prototype.filter;function he(){return Array.from(this.children)}function ue(t){return new Array(t.length)}function de(t,e){this.ownerDocument=t.ownerDocument,this.namespaceURI=t.namespaceURI,this._next=null,this._parent=t,this.__data__=e}function fe(t,e,r,n,i,s){for(var a,o=0,l=e.length,c=s.length;o<c;++o)(a=e[o])?(a.__data__=s[o],n[o]=a):r[o]=new de(t,s[o]);for(;o<l;++o)(a=e[o])&&(i[o]=a)}function pe(t,e,r,n,i,s,a){var o,l,c,h=new Map,u=e.length,d=s.length,f=new Array(u);for(o=0;o<u;++o)(l=e[o])&&(f[o]=c=a.call(l,l.__data__,o,e)+"",h.has(c)?i[o]=l:h.set(c,l));for(o=0;o<d;++o)c=a.call(t,s[o],o,s)+"",(l=h.get(c))?(n[o]=l,l.__data__=s[o],h.delete(c)):r[o]=new de(t,s[o]);for(o=0;o<u;++o)(l=e[o])&&h.get(f[o])===l&&(i[o]=l)}function me(t){return t.__data__}function be(t){return"object"==typeof t&&"length"in t?t:Array.from(t)}function ge(t,e){return t<e?-1:t>e?1:t>=e?0:NaN}function ve(t){return function(){this.removeAttribute(t)}}function ye(t){return function(){this.removeAttributeNS(t.space,t.local)}}function we(t,e){return function(){this.setAttribute(t,e)}}function xe(t,e){return function(){this.setAttributeNS(t.space,t.local,e)}}function $e(t,e){return function(){var r=e.apply(this,arguments);null==r?this.removeAttribute(t):this.setAttribute(t,r)}}function ke(t,e){return function(){var r=e.apply(this,arguments);null==r?this.removeAttributeNS(t.space,t.local):this.setAttributeNS(t.space,t.local,r)}}function _e(t){return t.ownerDocument&&t.ownerDocument.defaultView||t.document&&t||t.defaultView}function Se(t){return function(){this.style.removeProperty(t)}}function Ae(t,e,r){return function(){this.style.setProperty(t,e,r)}}function Ee(t,e,r){return function(){var n=e.apply(this,arguments);null==n?this.style.removeProperty(t):this.style.setProperty(t,n,r)}}function Me(t,e){return t.style.getPropertyValue(e)||_e(t).getComputedStyle(t,null).getPropertyValue(e)}function Te(t){return function(){delete this[t]}}function Ce(t,e){return function(){this[t]=e}}function Ne(t,e){return function(){var r=e.apply(this,arguments);null==r?delete this[t]:this[t]=r}}function Re(t){return t.trim().split(/^|\s+/)}function Pe(t){return t.classList||new qe(t)}function qe(t){this._node=t,this._names=Re(t.getAttribute("class")||"")}function ze(t,e){for(var r=Pe(t),n=-1,i=e.length;++n<i;)r.add(e[n])}function Fe(t,e){for(var r=Pe(t),n=-1,i=e.length;++n<i;)r.remove(e[n])}function Oe(t){return function(){ze(this,t)}}function Ie(t){return function(){Fe(this,t)}}function Ue(t,e){return function(){(e.apply(this,arguments)?ze:Fe)(this,t)}}function He(){this.textContent=""}function De(t){return function(){this.textContent=t}}function Le(t){return function(){var e=t.apply(this,arguments);this.textContent=null==e?"":e}}function je(){this.innerHTML=""}function Be(t){return function(){this.innerHTML=t}}function Ve(t){return function(){var e=t.apply(this,arguments);this.innerHTML=null==e?"":e}}function Ke(){this.nextSibling&&this.parentNode.appendChild(this)}function Xe(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function We(){return null}function Ge(){var t=this.parentNode;t&&t.removeChild(this)}function Ye(){var t=this.cloneNode(!1),e=this.parentNode;return e?e.insertBefore(t,this.nextSibling):t}function Ze(){var t=this.cloneNode(!0),e=this.parentNode;return e?e.insertBefore(t,this.nextSibling):t}function Qe(t){return function(){var e=this.__on;if(e){for(var r,n=0,i=-1,s=e.length;n<s;++n)r=e[n],t.type&&r.type!==t.type||r.name!==t.name?e[++i]=r:this.removeEventListener(r.type,r.listener,r.options);++i?e.length=i:delete this.__on}}}function Je(t,e,r){return function(){var n,i=this.__on,s=function(t){return function(e){t.call(this,e,this.__data__)}}(e);if(i)for(var a=0,o=i.length;a<o;++a)if((n=i[a]).type===t.type&&n.name===t.name)return this.removeEventListener(n.type,n.listener,n.options),this.addEventListener(n.type,n.listener=s,n.options=r),void(n.value=e);this.addEventListener(t.type,s,r),n={type:t.type,name:t.name,value:e,listener:s,options:r},i?i.push(n):this.__on=[n]}}function tr(t,e,r){var n=_e(t),i=n.CustomEvent;"function"==typeof i?i=new i(e,r):(i=n.document.createEvent("Event"),r?(i.initEvent(e,r.bubbles,r.cancelable),i.detail=r.detail):i.initEvent(e,!1,!1)),t.dispatchEvent(i)}function er(t,e){return function(){return tr(this,t,e)}}function rr(t,e){return function(){return tr(this,t,e.apply(this,arguments))}}de.prototype={constructor:de,appendChild:function(t){return this._parent.insertBefore(t,this._next)},insertBefore:function(t,e){return this._parent.insertBefore(t,e)},querySelector:function(t){return this._parent.querySelector(t)},querySelectorAll:function(t){return this._parent.querySelectorAll(t)}},qe.prototype={add:function(t){this._names.indexOf(t)<0&&(this._names.push(t),this._node.setAttribute("class",this._names.join(" ")))},remove:function(t){var e=this._names.indexOf(t);e>=0&&(this._names.splice(e,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(t){return this._names.indexOf(t)>=0}};var nr=[null];function ir(t,e){this._groups=t,this._parents=e}function sr(){return new ir([[document.documentElement]],nr)}function ar(t){return"string"==typeof t?new ir([[document.querySelector(t)]],[document.documentElement]):new ir([[t]],nr)}function or(t,e){if(t=function(t){let e;for(;e=t.sourceEvent;)t=e;return t}(t),void 0===e&&(e=t.currentTarget),e){var r=e.ownerSVGElement||e;if(r.createSVGPoint){var n=r.createSVGPoint();return n.x=t.clientX,n.y=t.clientY,[(n=n.matrixTransform(e.getScreenCTM().inverse())).x,n.y]}if(e.getBoundingClientRect){var i=e.getBoundingClientRect();return[t.clientX-i.left-e.clientLeft,t.clientY-i.top-e.clientTop]}}return[t.pageX,t.pageY]}ir.prototype=sr.prototype={constructor:ir,select:function(t){"function"!=typeof t&&(t=ee(t));for(var e=this._groups,r=e.length,n=new Array(r),i=0;i<r;++i)for(var s,a,o=e[i],l=o.length,c=n[i]=new Array(l),h=0;h<l;++h)(s=o[h])&&(a=t.call(s,s.__data__,h,o))&&("__data__"in s&&(a.__data__=s.__data__),c[h]=a);return new ir(n,this._parents)},selectAll:function(t){t="function"==typeof t?ie(t):ne(t);for(var e=this._groups,r=e.length,n=[],i=[],s=0;s<r;++s)for(var a,o=e[s],l=o.length,c=0;c<l;++c)(a=o[c])&&(n.push(t.call(a,a.__data__,c,o)),i.push(a));return new ir(n,i)},selectChild:function(t){return this.select(null==t?le:function(t){return function(){return oe.call(this.children,t)}}("function"==typeof t?t:ae(t)))},selectChildren:function(t){return this.selectAll(null==t?he:function(t){return function(){return ce.call(this.children,t)}}("function"==typeof t?t:ae(t)))},filter:function(t){"function"!=typeof t&&(t=se(t));for(var e=this._groups,r=e.length,n=new Array(r),i=0;i<r;++i)for(var s,a=e[i],o=a.length,l=n[i]=[],c=0;c<o;++c)(s=a[c])&&t.call(s,s.__data__,c,a)&&l.push(s);return new ir(n,this._parents)},data:function(t,e){if(!arguments.length)return Array.from(this,me);var r=e?pe:fe,n=this._parents,i=this._groups;"function"!=typeof t&&(t=function(t){return function(){return t}}(t));for(var s=i.length,a=new Array(s),o=new Array(s),l=new Array(s),c=0;c<s;++c){var h=n[c],u=i[c],d=u.length,f=be(t.call(h,h&&h.__data__,c,n)),p=f.length,m=o[c]=new Array(p),b=a[c]=new Array(p);r(h,u,m,b,l[c]=new Array(d),f,e);for(var g,v,y=0,w=0;y<p;++y)if(g=m[y]){for(y>=w&&(w=y+1);!(v=b[w])&&++w<p;);g._next=v||null}}return(a=new ir(a,n))._enter=o,a._exit=l,a},enter:function(){return new ir(this._enter||this._groups.map(ue),this._parents)},exit:function(){return new ir(this._exit||this._groups.map(ue),this._parents)},join:function(t,e,r){var n=this.enter(),i=this,s=this.exit();return"function"==typeof t?(n=t(n))&&(n=n.selection()):n=n.append(t+""),null!=e&&(i=e(i))&&(i=i.selection()),null==r?s.remove():r(s),n&&i?n.merge(i).order():i},merge:function(t){for(var e=t.selection?t.selection():t,r=this._groups,n=e._groups,i=r.length,s=n.length,a=Math.min(i,s),o=new Array(i),l=0;l<a;++l)for(var c,h=r[l],u=n[l],d=h.length,f=o[l]=new Array(d),p=0;p<d;++p)(c=h[p]||u[p])&&(f[p]=c);for(;l<i;++l)o[l]=r[l];return new ir(o,this._parents)},selection:function(){return this},order:function(){for(var t=this._groups,e=-1,r=t.length;++e<r;)for(var n,i=t[e],s=i.length-1,a=i[s];--s>=0;)(n=i[s])&&(a&&4^n.compareDocumentPosition(a)&&a.parentNode.insertBefore(n,a),a=n);return this},sort:function(t){function e(e,r){return e&&r?t(e.__data__,r.__data__):!e-!r}t||(t=ge);for(var r=this._groups,n=r.length,i=new Array(n),s=0;s<n;++s){for(var a,o=r[s],l=o.length,c=i[s]=new Array(l),h=0;h<l;++h)(a=o[h])&&(c[h]=a);c.sort(e)}return new ir(i,this._parents).order()},call:function(){var t=arguments[0];return arguments[0]=this,t.apply(null,arguments),this},nodes:function(){return Array.from(this)},node:function(){for(var t=this._groups,e=0,r=t.length;e<r;++e)for(var n=t[e],i=0,s=n.length;i<s;++i){var a=n[i];if(a)return a}return null},size:function(){let t=0;for(const e of this)++t;return t},empty:function(){return!this.node()},each:function(t){for(var e=this._groups,r=0,n=e.length;r<n;++r)for(var i,s=e[r],a=0,o=s.length;a<o;++a)(i=s[a])&&t.call(i,i.__data__,a,s);return this},attr:function(t,e){var r=Yt(t);if(arguments.length<2){var n=this.node();return r.local?n.getAttributeNS(r.space,r.local):n.getAttribute(r)}return this.each((null==e?r.local?ye:ve:"function"==typeof e?r.local?ke:$e:r.local?xe:we)(r,e))},style:function(t,e,r){return arguments.length>1?this.each((null==e?Se:"function"==typeof e?Ee:Ae)(t,e,null==r?"":r)):Me(this.node(),t)},property:function(t,e){return arguments.length>1?this.each((null==e?Te:"function"==typeof e?Ne:Ce)(t,e)):this.node()[t]},classed:function(t,e){var r=Re(t+"");if(arguments.length<2){for(var n=Pe(this.node()),i=-1,s=r.length;++i<s;)if(!n.contains(r[i]))return!1;return!0}return this.each(("function"==typeof e?Ue:e?Oe:Ie)(r,e))},text:function(t){return arguments.length?this.each(null==t?He:("function"==typeof t?Le:De)(t)):this.node().textContent},html:function(t){return arguments.length?this.each(null==t?je:("function"==typeof t?Ve:Be)(t)):this.node().innerHTML},raise:function(){return this.each(Ke)},lower:function(){return this.each(Xe)},append:function(t){var e="function"==typeof t?t:Jt(t);return this.select((function(){return this.appendChild(e.apply(this,arguments))}))},insert:function(t,e){var r="function"==typeof t?t:Jt(t),n=null==e?We:"function"==typeof e?e:ee(e);return this.select((function(){return this.insertBefore(r.apply(this,arguments),n.apply(this,arguments)||null)}))},remove:function(){return this.each(Ge)},clone:function(t){return this.select(t?Ze:Ye)},datum:function(t){return arguments.length?this.property("__data__",t):this.node().__data__},on:function(t,e,r){var n,i,s=function(t){return t.trim().split(/^|\s+/).map((function(t){var e="",r=t.indexOf(".");return r>=0&&(e=t.slice(r+1),t=t.slice(0,r)),{type:t,name:e}}))}(t+""),a=s.length;if(!(arguments.length<2)){for(o=e?Je:Qe,n=0;n<a;++n)this.each(o(s[n],e,r));return this}var o=this.node().__on;if(o)for(var l,c=0,h=o.length;c<h;++c)for(n=0,l=o[c];n<a;++n)if((i=s[n]).type===l.type&&i.name===l.name)return l.value},dispatch:function(t,e){return this.each(("function"==typeof e?rr:er)(t,e))},[Symbol.iterator]:function*(){for(var t=this._groups,e=0,r=t.length;e<r;++e)for(var n,i=t[e],s=0,a=i.length;s<a;++s)(n=i[s])&&(yield n)}};const lr={passive:!1},cr={capture:!0,passive:!1};function hr(t){t.stopImmediatePropagation()}function ur(t){t.preventDefault(),t.stopImmediatePropagation()}var dr=t=>()=>t;function fr(t,{sourceEvent:e,subject:r,target:n,identifier:i,active:s,x:a,y:o,dx:l,dy:c,dispatch:h}){Object.defineProperties(this,{type:{value:t,enumerable:!0,configurable:!0},sourceEvent:{value:e,enumerable:!0,configurable:!0},subject:{value:r,enumerable:!0,configurable:!0},target:{value:n,enumerable:!0,configurable:!0},identifier:{value:i,enumerable:!0,configurable:!0},active:{value:s,enumerable:!0,configurable:!0},x:{value:a,enumerable:!0,configurable:!0},y:{value:o,enumerable:!0,configurable:!0},dx:{value:l,enumerable:!0,configurable:!0},dy:{value:c,enumerable:!0,configurable:!0},_:{value:h}})}function pr(t){return!t.ctrlKey&&!t.button}function mr(){return this.parentNode}function br(t,e){return null==e?{x:t.x,y:t.y}:e}function gr(){return navigator.maxTouchPoints||"ontouchstart"in this}function vr(){var t,e,r,n,i=pr,s=mr,a=br,o=gr,l={},c=Bt("start","drag","end"),h=0,u=0;function d(t){t.on("mousedown.drag",f).filter(o).on("touchstart.drag",b).on("touchmove.drag",g,lr).on("touchend.drag touchcancel.drag",v).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function f(a,o){if(!n&&i.call(this,a,o)){var l=y(this,s.call(this,a,o),a,o,"mouse");l&&(ar(a.view).on("mousemove.drag",p,cr).on("mouseup.drag",m,cr),function(t){var e=t.document.documentElement,r=ar(t).on("dragstart.drag",ur,cr);"onselectstart"in e?r.on("selectstart.drag",ur,cr):(e.__noselect=e.style.MozUserSelect,e.style.MozUserSelect="none")}(a.view),hr(a),r=!1,t=a.clientX,e=a.clientY,l("start",a))}}function p(n){if(ur(n),!r){var i=n.clientX-t,s=n.clientY-e;r=i*i+s*s>u}l.mouse("drag",n)}function m(t){ar(t.view).on("mousemove.drag mouseup.drag",null),function(t,e){var r=t.document.documentElement,n=ar(t).on("dragstart.drag",null);e&&(n.on("click.drag",ur,cr),setTimeout((function(){n.on("click.drag",null)}),0)),"onselectstart"in r?n.on("selectstart.drag",null):(r.style.MozUserSelect=r.__noselect,delete r.__noselect)}(t.view,r),ur(t),l.mouse("end",t)}function b(t,e){if(i.call(this,t,e)){var r,n,a=t.changedTouches,o=s.call(this,t,e),l=a.length;for(r=0;r<l;++r)(n=y(this,o,t,e,a[r].identifier,a[r]))&&(hr(t),n("start",t,a[r]))}}function g(t){var e,r,n=t.changedTouches,i=n.length;for(e=0;e<i;++e)(r=l[n[e].identifier])&&(ur(t),r("drag",t,n[e]))}function v(t){var e,r,i=t.changedTouches,s=i.length;for(n&&clearTimeout(n),n=setTimeout((function(){n=null}),500),e=0;e<s;++e)(r=l[i[e].identifier])&&(hr(t),r("end",t,i[e]))}function y(t,e,r,n,i,s){var o,u,f,p=c.copy(),m=or(s||r,e);if(null!=(f=a.call(t,new fr("beforestart",{sourceEvent:r,target:d,identifier:i,active:h,x:m[0],y:m[1],dx:0,dy:0,dispatch:p}),n)))return o=f.x-m[0]||0,u=f.y-m[1]||0,function r(s,a,c){var b,g=m;switch(s){case"start":l[i]=r,b=h++;break;case"end":delete l[i],--h;case"drag":m=or(c||a,e),b=h}p.call(s,t,new fr(s,{sourceEvent:a,subject:f,target:d,identifier:i,active:b,x:m[0]+o,y:m[1]+u,dx:m[0]-g[0],dy:m[1]-g[1],dispatch:p}),n)}}return d.filter=function(t){return arguments.length?(i="function"==typeof t?t:dr(!!t),d):i},d.container=function(t){return arguments.length?(s="function"==typeof t?t:dr(t),d):s},d.subject=function(t){return arguments.length?(a="function"==typeof t?t:dr(t),d):a},d.touchable=function(t){return arguments.length?(o="function"==typeof t?t:dr(!!t),d):o},d.on=function(){var t=c.on.apply(c,arguments);return t===c?d:t},d.clickDistance=function(t){return arguments.length?(u=(t=+t)*t,d):Math.sqrt(u)},d}function yr(t,e,r){t.prototype=e.prototype=r,r.constructor=t}function wr(t,e){var r=Object.create(t.prototype);for(var n in e)r[n]=e[n];return r}function xr(){}fr.prototype.on=function(){var t=this._.on.apply(this._,arguments);return t===this._?this:t};var $r=.7,kr=1/$r,_r="\\s*([+-]?\\d+)\\s*",Sr="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",Ar="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",Er=/^#([0-9a-f]{3,8})$/,Mr=new RegExp(`^rgb\\(${_r},${_r},${_r}\\)$`),Tr=new RegExp(`^rgb\\(${Ar},${Ar},${Ar}\\)$`),Cr=new RegExp(`^rgba\\(${_r},${_r},${_r},${Sr}\\)$`),Nr=new RegExp(`^rgba\\(${Ar},${Ar},${Ar},${Sr}\\)$`),Rr=new RegExp(`^hsl\\(${Sr},${Ar},${Ar}\\)$`),Pr=new RegExp(`^hsla\\(${Sr},${Ar},${Ar},${Sr}\\)$`),qr={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};function zr(){return this.rgb().formatHex()}function Fr(){return this.rgb().formatRgb()}function Or(t){var e,r;return t=(t+"").trim().toLowerCase(),(e=Er.exec(t))?(r=e[1].length,e=parseInt(e[1],16),6===r?Ir(e):3===r?new Dr(e>>8&15|e>>4&240,e>>4&15|240&e,(15&e)<<4|15&e,1):8===r?Ur(e>>24&255,e>>16&255,e>>8&255,(255&e)/255):4===r?Ur(e>>12&15|e>>8&240,e>>8&15|e>>4&240,e>>4&15|240&e,((15&e)<<4|15&e)/255):null):(e=Mr.exec(t))?new Dr(e[1],e[2],e[3],1):(e=Tr.exec(t))?new Dr(255*e[1]/100,255*e[2]/100,255*e[3]/100,1):(e=Cr.exec(t))?Ur(e[1],e[2],e[3],e[4]):(e=Nr.exec(t))?Ur(255*e[1]/100,255*e[2]/100,255*e[3]/100,e[4]):(e=Rr.exec(t))?Xr(e[1],e[2]/100,e[3]/100,1):(e=Pr.exec(t))?Xr(e[1],e[2]/100,e[3]/100,e[4]):qr.hasOwnProperty(t)?Ir(qr[t]):"transparent"===t?new Dr(NaN,NaN,NaN,0):null}function Ir(t){return new Dr(t>>16&255,t>>8&255,255&t,1)}function Ur(t,e,r,n){return n<=0&&(t=e=r=NaN),new Dr(t,e,r,n)}function Hr(t,e,r,n){return 1===arguments.length?function(t){return t instanceof xr||(t=Or(t)),t?new Dr((t=t.rgb()).r,t.g,t.b,t.opacity):new Dr}(t):new Dr(t,e,r,null==n?1:n)}function Dr(t,e,r,n){this.r=+t,this.g=+e,this.b=+r,this.opacity=+n}function Lr(){return`#${Kr(this.r)}${Kr(this.g)}${Kr(this.b)}`}function jr(){const t=Br(this.opacity);return`${1===t?"rgb(":"rgba("}${Vr(this.r)}, ${Vr(this.g)}, ${Vr(this.b)}${1===t?")":`, ${t})`}`}function Br(t){return isNaN(t)?1:Math.max(0,Math.min(1,t))}function Vr(t){return Math.max(0,Math.min(255,Math.round(t)||0))}function Kr(t){return((t=Vr(t))<16?"0":"")+t.toString(16)}function Xr(t,e,r,n){return n<=0?t=e=r=NaN:r<=0||r>=1?t=e=NaN:e<=0&&(t=NaN),new Gr(t,e,r,n)}function Wr(t){if(t instanceof Gr)return new Gr(t.h,t.s,t.l,t.opacity);if(t instanceof xr||(t=Or(t)),!t)return new Gr;if(t instanceof Gr)return t;var e=(t=t.rgb()).r/255,r=t.g/255,n=t.b/255,i=Math.min(e,r,n),s=Math.max(e,r,n),a=NaN,o=s-i,l=(s+i)/2;return o?(a=e===s?(r-n)/o+6*(r<n):r===s?(n-e)/o+2:(e-r)/o+4,o/=l<.5?s+i:2-s-i,a*=60):o=l>0&&l<1?0:a,new Gr(a,o,l,t.opacity)}function Gr(t,e,r,n){this.h=+t,this.s=+e,this.l=+r,this.opacity=+n}function Yr(t){return(t=(t||0)%360)<0?t+360:t}function Zr(t){return Math.max(0,Math.min(1,t||0))}function Qr(t,e,r){return 255*(t<60?e+(r-e)*t/60:t<180?r:t<240?e+(r-e)*(240-t)/60:e)}yr(xr,Or,{copy(t){return Object.assign(new this.constructor,this,t)},displayable(){return this.rgb().displayable()},hex:zr,formatHex:zr,formatHex8:function(){return this.rgb().formatHex8()},formatHsl:function(){return Wr(this).formatHsl()},formatRgb:Fr,toString:Fr}),yr(Dr,Hr,wr(xr,{brighter(t){return t=null==t?kr:Math.pow(kr,t),new Dr(this.r*t,this.g*t,this.b*t,this.opacity)},darker(t){return t=null==t?$r:Math.pow($r,t),new Dr(this.r*t,this.g*t,this.b*t,this.opacity)},rgb(){return this},clamp(){return new Dr(Vr(this.r),Vr(this.g),Vr(this.b),Br(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:Lr,formatHex:Lr,formatHex8:function(){return`#${Kr(this.r)}${Kr(this.g)}${Kr(this.b)}${Kr(255*(isNaN(this.opacity)?1:this.opacity))}`},formatRgb:jr,toString:jr})),yr(Gr,(function(t,e,r,n){return 1===arguments.length?Wr(t):new Gr(t,e,r,null==n?1:n)}),wr(xr,{brighter(t){return t=null==t?kr:Math.pow(kr,t),new Gr(this.h,this.s,this.l*t,this.opacity)},darker(t){return t=null==t?$r:Math.pow($r,t),new Gr(this.h,this.s,this.l*t,this.opacity)},rgb(){var t=this.h%360+360*(this.h<0),e=isNaN(t)||isNaN(this.s)?0:this.s,r=this.l,n=r+(r<.5?r:1-r)*e,i=2*r-n;return new Dr(Qr(t>=240?t-240:t+120,i,n),Qr(t,i,n),Qr(t<120?t+240:t-120,i,n),this.opacity)},clamp(){return new Gr(Yr(this.h),Zr(this.s),Zr(this.l),Br(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const t=Br(this.opacity);return`${1===t?"hsl(":"hsla("}${Yr(this.h)}, ${100*Zr(this.s)}%, ${100*Zr(this.l)}%${1===t?")":`, ${t})`}`}}));var Jr=t=>()=>t;function tn(t){return 1==(t=+t)?en:function(e,r){return r-e?function(t,e,r){return t=Math.pow(t,r),e=Math.pow(e,r)-t,r=1/r,function(n){return Math.pow(t+n*e,r)}}(e,r,t):Jr(isNaN(e)?r:e)}}function en(t,e){var r=e-t;return r?function(t,e){return function(r){return t+r*e}}(t,r):Jr(isNaN(t)?e:t)}var rn=function t(e){var r=tn(e);function n(t,e){var n=r((t=Hr(t)).r,(e=Hr(e)).r),i=r(t.g,e.g),s=r(t.b,e.b),a=en(t.opacity,e.opacity);return function(e){return t.r=n(e),t.g=i(e),t.b=s(e),t.opacity=a(e),t+""}}return n.gamma=t,n}(1);function nn(t,e){e||(e=[]);var r,n=t?Math.min(e.length,t.length):0,i=e.slice();return function(s){for(r=0;r<n;++r)i[r]=t[r]*(1-s)+e[r]*s;return i}}function sn(t,e){var r,n=e?e.length:0,i=t?Math.min(n,t.length):0,s=new Array(i),a=new Array(n);for(r=0;r<i;++r)s[r]=dn(t[r],e[r]);for(;r<n;++r)a[r]=e[r];return function(t){for(r=0;r<i;++r)a[r]=s[r](t);return a}}function an(t,e){var r=new Date;return t=+t,e=+e,function(n){return r.setTime(t*(1-n)+e*n),r}}function on(t,e){return t=+t,e=+e,function(r){return t*(1-r)+e*r}}function ln(t,e){var r,n={},i={};for(r in null!==t&&"object"==typeof t||(t={}),null!==e&&"object"==typeof e||(e={}),e)r in t?n[r]=dn(t[r],e[r]):i[r]=e[r];return function(t){for(r in n)i[r]=n[r](t);return i}}var cn=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,hn=new RegExp(cn.source,"g");function un(t,e){var r,n,i,s=cn.lastIndex=hn.lastIndex=0,a=-1,o=[],l=[];for(t+="",e+="";(r=cn.exec(t))&&(n=hn.exec(e));)(i=n.index)>s&&(i=e.slice(s,i),o[a]?o[a]+=i:o[++a]=i),(r=r[0])===(n=n[0])?o[a]?o[a]+=n:o[++a]=n:(o[++a]=null,l.push({i:a,x:on(r,n)})),s=hn.lastIndex;return s<e.length&&(i=e.slice(s),o[a]?o[a]+=i:o[++a]=i),o.length<2?l[0]?function(t){return function(e){return t(e)+""}}(l[0].x):function(t){return function(){return t}}(e):(e=l.length,function(t){for(var r,n=0;n<e;++n)o[(r=l[n]).i]=r.x(t);return o.join("")})}function dn(t,e){var r,n=typeof e;return null==e||"boolean"===n?Jr(e):("number"===n?on:"string"===n?(r=Or(e))?(e=r,rn):un:e instanceof Or?rn:e instanceof Date?an:function(t){return ArrayBuffer.isView(t)&&!(t instanceof DataView)}(e)?nn:Array.isArray(e)?sn:"function"!=typeof e.valueOf&&"function"!=typeof e.toString||isNaN(e)?ln:on)(t,e)}function fn(t,e){return t=+t,e=+e,function(r){return Math.round(t*(1-r)+e*r)}}var pn,mn=180/Math.PI,bn={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function gn(t,e,r,n,i,s){var a,o,l;return(a=Math.sqrt(t*t+e*e))&&(t/=a,e/=a),(l=t*r+e*n)&&(r-=t*l,n-=e*l),(o=Math.sqrt(r*r+n*n))&&(r/=o,n/=o,l/=o),t*n<e*r&&(t=-t,e=-e,l=-l,a=-a),{translateX:i,translateY:s,rotate:Math.atan2(e,t)*mn,skewX:Math.atan(l)*mn,scaleX:a,scaleY:o}}function vn(t,e,r,n){function i(t){return t.length?t.pop()+" ":""}return function(s,a){var o=[],l=[];return s=t(s),a=t(a),function(t,n,i,s,a,o){if(t!==i||n!==s){var l=a.push("translate(",null,e,null,r);o.push({i:l-4,x:on(t,i)},{i:l-2,x:on(n,s)})}else(i||s)&&a.push("translate("+i+e+s+r)}(s.translateX,s.translateY,a.translateX,a.translateY,o,l),function(t,e,r,s){t!==e?(t-e>180?e+=360:e-t>180&&(t+=360),s.push({i:r.push(i(r)+"rotate(",null,n)-2,x:on(t,e)})):e&&r.push(i(r)+"rotate("+e+n)}(s.rotate,a.rotate,o,l),function(t,e,r,s){t!==e?s.push({i:r.push(i(r)+"skewX(",null,n)-2,x:on(t,e)}):e&&r.push(i(r)+"skewX("+e+n)}(s.skewX,a.skewX,o,l),function(t,e,r,n,s,a){if(t!==r||e!==n){var o=s.push(i(s)+"scale(",null,",",null,")");a.push({i:o-4,x:on(t,r)},{i:o-2,x:on(e,n)})}else 1===r&&1===n||s.push(i(s)+"scale("+r+","+n+")")}(s.scaleX,s.scaleY,a.scaleX,a.scaleY,o,l),s=a=null,function(t){for(var e,r=-1,n=l.length;++r<n;)o[(e=l[r]).i]=e.x(t);return o.join("")}}}var yn,wn,xn=vn((function(t){const e=new("function"==typeof DOMMatrix?DOMMatrix:WebKitCSSMatrix)(t+"");return e.isIdentity?bn:gn(e.a,e.b,e.c,e.d,e.e,e.f)}),"px, ","px)","deg)"),$n=vn((function(t){return null==t?bn:(pn||(pn=document.createElementNS("http://www.w3.org/2000/svg","g")),pn.setAttribute("transform",t),(t=pn.transform.baseVal.consolidate())?gn((t=t.matrix).a,t.b,t.c,t.d,t.e,t.f):bn)}),", ",")",")"),kn=0,_n=0,Sn=0,An=1e3,En=0,Mn=0,Tn=0,Cn="object"==typeof performance&&performance.now?performance:Date,Nn="object"==typeof window&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(t){setTimeout(t,17)};function Rn(){return Mn||(Nn(Pn),Mn=Cn.now()+Tn)}function Pn(){Mn=0}function qn(){this._call=this._time=this._next=null}function zn(t,e,r){var n=new qn;return n.restart(t,e,r),n}function Fn(){Mn=(En=Cn.now())+Tn,kn=_n=0;try{!function(){Rn(),++kn;for(var t,e=yn;e;)(t=Mn-e._time)>=0&&e._call.call(void 0,t),e=e._next;--kn}()}finally{kn=0,function(){var t,e,r=yn,n=1/0;for(;r;)r._call?(n>r._time&&(n=r._time),t=r,r=r._next):(e=r._next,r._next=null,r=t?t._next=e:yn=e);wn=t,In(n)}(),Mn=0}}function On(){var t=Cn.now(),e=t-En;e>An&&(Tn-=e,En=t)}function In(t){kn||(_n&&(_n=clearTimeout(_n)),t-Mn>24?(t<1/0&&(_n=setTimeout(Fn,t-Cn.now()-Tn)),Sn&&(Sn=clearInterval(Sn))):(Sn||(En=Cn.now(),Sn=setInterval(On,An)),kn=1,Nn(Fn)))}function Un(t,e,r){var n=new qn;return e=null==e?0:+e,n.restart((r=>{n.stop(),t(r+e)}),e,r),n}qn.prototype=zn.prototype={constructor:qn,restart:function(t,e,r){if("function"!=typeof t)throw new TypeError("callback is not a function");r=(null==r?Rn():+r)+(null==e?0:+e),this._next||wn===this||(wn?wn._next=this:yn=this,wn=this),this._call=t,this._time=r,In()},stop:function(){this._call&&(this._call=null,this._time=1/0,In())}};var Hn=Bt("start","end","cancel","interrupt"),Dn=[],Ln=0,jn=1,Bn=2,Vn=3,Kn=4,Xn=5,Wn=6;function Gn(t,e,r,n,i,s){var a=t.__transition;if(a){if(r in a)return}else t.__transition={};!function(t,e,r){var n,i=t.__transition;function s(t){r.state=jn,r.timer.restart(a,r.delay,r.time),r.delay<=t&&a(t-r.delay)}function a(s){var c,h,u,d;if(r.state!==jn)return l();for(c in i)if((d=i[c]).name===r.name){if(d.state===Vn)return Un(a);d.state===Kn?(d.state=Wn,d.timer.stop(),d.on.call("interrupt",t,t.__data__,d.index,d.group),delete i[c]):+c<e&&(d.state=Wn,d.timer.stop(),d.on.call("cancel",t,t.__data__,d.index,d.group),delete i[c])}if(Un((function(){r.state===Vn&&(r.state=Kn,r.timer.restart(o,r.delay,r.time),o(s))})),r.state=Bn,r.on.call("start",t,t.__data__,r.index,r.group),r.state===Bn){for(r.state=Vn,n=new Array(u=r.tween.length),c=0,h=-1;c<u;++c)(d=r.tween[c].value.call(t,t.__data__,r.index,r.group))&&(n[++h]=d);n.length=h+1}}function o(e){for(var i=e<r.duration?r.ease.call(null,e/r.duration):(r.timer.restart(l),r.state=Xn,1),s=-1,a=n.length;++s<a;)n[s].call(t,i);r.state===Xn&&(r.on.call("end",t,t.__data__,r.index,r.group),l())}function l(){for(var n in r.state=Wn,r.timer.stop(),delete i[e],i)return;delete t.__transition}i[e]=r,r.timer=zn(s,0,r.time)}(t,r,{name:e,index:n,group:i,on:Hn,tween:Dn,time:s.time,delay:s.delay,duration:s.duration,ease:s.ease,timer:null,state:Ln})}function Yn(t,e){var r=Qn(t,e);if(r.state>Ln)throw new Error("too late; already scheduled");return r}function Zn(t,e){var r=Qn(t,e);if(r.state>Vn)throw new Error("too late; already running");return r}function Qn(t,e){var r=t.__transition;if(!r||!(r=r[e]))throw new Error("transition not found");return r}function Jn(t,e){var r,n;return function(){var i=Zn(this,t),s=i.tween;if(s!==r)for(var a=0,o=(n=r=s).length;a<o;++a)if(n[a].name===e){(n=n.slice()).splice(a,1);break}i.tween=n}}function ti(t,e,r){var n,i;if("function"!=typeof r)throw new Error;return function(){var s=Zn(this,t),a=s.tween;if(a!==n){i=(n=a).slice();for(var o={name:e,value:r},l=0,c=i.length;l<c;++l)if(i[l].name===e){i[l]=o;break}l===c&&i.push(o)}s.tween=i}}function ei(t,e,r){var n=t._id;return t.each((function(){var t=Zn(this,n);(t.value||(t.value={}))[e]=r.apply(this,arguments)})),function(t){return Qn(t,n).value[e]}}function ri(t,e){var r;return("number"==typeof e?on:e instanceof Or?rn:(r=Or(e))?(e=r,rn):un)(t,e)}function ni(t){return function(){this.removeAttribute(t)}}function ii(t){return function(){this.removeAttributeNS(t.space,t.local)}}function si(t,e,r){var n,i,s=r+"";return function(){var a=this.getAttribute(t);return a===s?null:a===n?i:i=e(n=a,r)}}function ai(t,e,r){var n,i,s=r+"";return function(){var a=this.getAttributeNS(t.space,t.local);return a===s?null:a===n?i:i=e(n=a,r)}}function oi(t,e,r){var n,i,s;return function(){var a,o,l=r(this);if(null!=l)return(a=this.getAttribute(t))===(o=l+"")?null:a===n&&o===i?s:(i=o,s=e(n=a,l));this.removeAttribute(t)}}function li(t,e,r){var n,i,s;return function(){var a,o,l=r(this);if(null!=l)return(a=this.getAttributeNS(t.space,t.local))===(o=l+"")?null:a===n&&o===i?s:(i=o,s=e(n=a,l));this.removeAttributeNS(t.space,t.local)}}function ci(t,e){var r,n;function i(){var i=e.apply(this,arguments);return i!==n&&(r=(n=i)&&function(t,e){return function(r){this.setAttributeNS(t.space,t.local,e.call(this,r))}}(t,i)),r}return i._value=e,i}function hi(t,e){var r,n;function i(){var i=e.apply(this,arguments);return i!==n&&(r=(n=i)&&function(t,e){return function(r){this.setAttribute(t,e.call(this,r))}}(t,i)),r}return i._value=e,i}function ui(t,e){return function(){Yn(this,t).delay=+e.apply(this,arguments)}}function di(t,e){return e=+e,function(){Yn(this,t).delay=e}}function fi(t,e){return function(){Zn(this,t).duration=+e.apply(this,arguments)}}function pi(t,e){return e=+e,function(){Zn(this,t).duration=e}}var mi=sr.prototype.constructor;function bi(t){return function(){this.style.removeProperty(t)}}var gi=0;function vi(t,e,r,n){this._groups=t,this._parents=e,this._name=r,this._id=n}function yi(){return++gi}var wi=sr.prototype;vi.prototype={constructor:vi,select:function(t){var e=this._name,r=this._id;"function"!=typeof t&&(t=ee(t));for(var n=this._groups,i=n.length,s=new Array(i),a=0;a<i;++a)for(var o,l,c=n[a],h=c.length,u=s[a]=new Array(h),d=0;d<h;++d)(o=c[d])&&(l=t.call(o,o.__data__,d,c))&&("__data__"in o&&(l.__data__=o.__data__),u[d]=l,Gn(u[d],e,r,d,u,Qn(o,r)));return new vi(s,this._parents,e,r)},selectAll:function(t){var e=this._name,r=this._id;"function"!=typeof t&&(t=ne(t));for(var n=this._groups,i=n.length,s=[],a=[],o=0;o<i;++o)for(var l,c=n[o],h=c.length,u=0;u<h;++u)if(l=c[u]){for(var d,f=t.call(l,l.__data__,u,c),p=Qn(l,r),m=0,b=f.length;m<b;++m)(d=f[m])&&Gn(d,e,r,m,f,p);s.push(f),a.push(l)}return new vi(s,a,e,r)},selectChild:wi.selectChild,selectChildren:wi.selectChildren,filter:function(t){"function"!=typeof t&&(t=se(t));for(var e=this._groups,r=e.length,n=new Array(r),i=0;i<r;++i)for(var s,a=e[i],o=a.length,l=n[i]=[],c=0;c<o;++c)(s=a[c])&&t.call(s,s.__data__,c,a)&&l.push(s);return new vi(n,this._parents,this._name,this._id)},merge:function(t){if(t._id!==this._id)throw new Error;for(var e=this._groups,r=t._groups,n=e.length,i=r.length,s=Math.min(n,i),a=new Array(n),o=0;o<s;++o)for(var l,c=e[o],h=r[o],u=c.length,d=a[o]=new Array(u),f=0;f<u;++f)(l=c[f]||h[f])&&(d[f]=l);for(;o<n;++o)a[o]=e[o];return new vi(a,this._parents,this._name,this._id)},selection:function(){return new mi(this._groups,this._parents)},transition:function(){for(var t=this._name,e=this._id,r=yi(),n=this._groups,i=n.length,s=0;s<i;++s)for(var a,o=n[s],l=o.length,c=0;c<l;++c)if(a=o[c]){var h=Qn(a,e);Gn(a,t,r,c,o,{time:h.time+h.delay+h.duration,delay:0,duration:h.duration,ease:h.ease})}return new vi(n,this._parents,t,r)},call:wi.call,nodes:wi.nodes,node:wi.node,size:wi.size,empty:wi.empty,each:wi.each,on:function(t,e){var r=this._id;return arguments.length<2?Qn(this.node(),r).on.on(t):this.each(function(t,e,r){var n,i,s=function(t){return(t+"").trim().split(/^|\s+/).every((function(t){var e=t.indexOf(".");return e>=0&&(t=t.slice(0,e)),!t||"start"===t}))}(e)?Yn:Zn;return function(){var a=s(this,t),o=a.on;o!==n&&(i=(n=o).copy()).on(e,r),a.on=i}}(r,t,e))},attr:function(t,e){var r=Yt(t),n="transform"===r?$n:ri;return this.attrTween(t,"function"==typeof e?(r.local?li:oi)(r,n,ei(this,"attr."+t,e)):null==e?(r.local?ii:ni)(r):(r.local?ai:si)(r,n,e))},attrTween:function(t,e){var r="attr."+t;if(arguments.length<2)return(r=this.tween(r))&&r._value;if(null==e)return this.tween(r,null);if("function"!=typeof e)throw new Error;var n=Yt(t);return this.tween(r,(n.local?ci:hi)(n,e))},style:function(t,e,r){var n="transform"==(t+="")?xn:ri;return null==e?this.styleTween(t,function(t,e){var r,n,i;return function(){var s=Me(this,t),a=(this.style.removeProperty(t),Me(this,t));return s===a?null:s===r&&a===n?i:i=e(r=s,n=a)}}(t,n)).on("end.style."+t,bi(t)):"function"==typeof e?this.styleTween(t,function(t,e,r){var n,i,s;return function(){var a=Me(this,t),o=r(this),l=o+"";return null==o&&(this.style.removeProperty(t),l=o=Me(this,t)),a===l?null:a===n&&l===i?s:(i=l,s=e(n=a,o))}}(t,n,ei(this,"style."+t,e))).each(function(t,e){var r,n,i,s,a="style."+e,o="end."+a;return function(){var l=Zn(this,t),c=l.on,h=null==l.value[a]?s||(s=bi(e)):void 0;c===r&&i===h||(n=(r=c).copy()).on(o,i=h),l.on=n}}(this._id,t)):this.styleTween(t,function(t,e,r){var n,i,s=r+"";return function(){var a=Me(this,t);return a===s?null:a===n?i:i=e(n=a,r)}}(t,n,e),r).on("end.style."+t,null)},styleTween:function(t,e,r){var n="style."+(t+="");if(arguments.length<2)return(n=this.tween(n))&&n._value;if(null==e)return this.tween(n,null);if("function"!=typeof e)throw new Error;return this.tween(n,function(t,e,r){var n,i;function s(){var s=e.apply(this,arguments);return s!==i&&(n=(i=s)&&function(t,e,r){return function(n){this.style.setProperty(t,e.call(this,n),r)}}(t,s,r)),n}return s._value=e,s}(t,e,null==r?"":r))},text:function(t){return this.tween("text","function"==typeof t?function(t){return function(){var e=t(this);this.textContent=null==e?"":e}}(ei(this,"text",t)):function(t){return function(){this.textContent=t}}(null==t?"":t+""))},textTween:function(t){var e="text";if(arguments.length<1)return(e=this.tween(e))&&e._value;if(null==t)return this.tween(e,null);if("function"!=typeof t)throw new Error;return this.tween(e,function(t){var e,r;function n(){var n=t.apply(this,arguments);return n!==r&&(e=(r=n)&&function(t){return function(e){this.textContent=t.call(this,e)}}(n)),e}return n._value=t,n}(t))},remove:function(){return this.on("end.remove",function(t){return function(){var e=this.parentNode;for(var r in this.__transition)if(+r!==t)return;e&&e.removeChild(this)}}(this._id))},tween:function(t,e){var r=this._id;if(t+="",arguments.length<2){for(var n,i=Qn(this.node(),r).tween,s=0,a=i.length;s<a;++s)if((n=i[s]).name===t)return n.value;return null}return this.each((null==e?Jn:ti)(r,t,e))},delay:function(t){var e=this._id;return arguments.length?this.each(("function"==typeof t?ui:di)(e,t)):Qn(this.node(),e).delay},duration:function(t){var e=this._id;return arguments.length?this.each(("function"==typeof t?fi:pi)(e,t)):Qn(this.node(),e).duration},ease:function(t){var e=this._id;return arguments.length?this.each(function(t,e){if("function"!=typeof e)throw new Error;return function(){Zn(this,t).ease=e}}(e,t)):Qn(this.node(),e).ease},easeVarying:function(t){if("function"!=typeof t)throw new Error;return this.each(function(t,e){return function(){var r=e.apply(this,arguments);if("function"!=typeof r)throw new Error;Zn(this,t).ease=r}}(this._id,t))},end:function(){var t,e,r=this,n=r._id,i=r.size();return new Promise((function(s,a){var o={value:a},l={value:function(){0==--i&&s()}};r.each((function(){var r=Zn(this,n),i=r.on;i!==t&&((e=(t=i).copy())._.cancel.push(o),e._.interrupt.push(o),e._.end.push(l)),r.on=e})),0===i&&s()}))},[Symbol.iterator]:wi[Symbol.iterator]};const xi=t=>+t;function $i(t){return t*t*t}function ki(t){return--t*t*t+1}var _i={time:null,delay:0,duration:250,ease:function(t){return((t*=2)<=1?t*t*t:(t-=2)*t*t+2)/2}};function Si(t,e){for(var r;!(r=t.__transition)||!(r=r[e]);)if(!(t=t.parentNode))throw new Error(`transition ${e} not found`);return r}sr.prototype.interrupt=function(t){return this.each((function(){!function(t,e){var r,n,i,s=t.__transition,a=!0;if(s){for(i in e=null==e?null:e+"",s)(r=s[i]).name===e?(n=r.state>Bn&&r.state<Xn,r.state=Wn,r.timer.stop(),r.on.call(n?"interrupt":"cancel",t,t.__data__,r.index,r.group),delete s[i]):a=!1;a&&delete t.__transition}}(this,t)}))},sr.prototype.transition=function(t){var e,r;t instanceof vi?(e=t._id,t=t._name):(e=yi(),(r=_i).time=Rn(),t=null==t?null:t+"");for(var n=this._groups,i=n.length,s=0;s<i;++s)for(var a,o=n[s],l=o.length,c=0;c<l;++c)(a=o[c])&&Gn(a,t,e,c,o,r||Si(a,e));return new vi(n,this._parents,t,e)};const Ai=Math.PI,Ei=2*Ai,Mi=1e-6,Ti=Ei-Mi;function Ci(t){this._+=t[0];for(let e=1,r=t.length;e<r;++e)this._+=arguments[e]+t[e]}class Ni{constructor(t){this._x0=this._y0=this._x1=this._y1=null,this._="",this._append=null==t?Ci:function(t){let e=Math.floor(t);if(!(e>=0))throw new Error(`invalid digits: ${t}`);if(e>15)return Ci;const r=10**e;return function(t){this._+=t[0];for(let e=1,n=t.length;e<n;++e)this._+=Math.round(arguments[e]*r)/r+t[e]}}(t)}moveTo(t,e){this._append`M${this._x0=this._x1=+t},${this._y0=this._y1=+e}`}closePath(){null!==this._x1&&(this._x1=this._x0,this._y1=this._y0,this._append`Z`)}lineTo(t,e){this._append`L${this._x1=+t},${this._y1=+e}`}quadraticCurveTo(t,e,r,n){this._append`Q${+t},${+e},${this._x1=+r},${this._y1=+n}`}bezierCurveTo(t,e,r,n,i,s){this._append`C${+t},${+e},${+r},${+n},${this._x1=+i},${this._y1=+s}`}arcTo(t,e,r,n,i){if(t=+t,e=+e,r=+r,n=+n,(i=+i)<0)throw new Error(`negative radius: ${i}`);let s=this._x1,a=this._y1,o=r-t,l=n-e,c=s-t,h=a-e,u=c*c+h*h;if(null===this._x1)this._append`M${this._x1=t},${this._y1=e}`;else if(u>Mi)if(Math.abs(h*o-l*c)>Mi&&i){let d=r-s,f=n-a,p=o*o+l*l,m=d*d+f*f,b=Math.sqrt(p),g=Math.sqrt(u),v=i*Math.tan((Ai-Math.acos((p+u-m)/(2*b*g)))/2),y=v/g,w=v/b;Math.abs(y-1)>Mi&&this._append`L${t+y*c},${e+y*h}`,this._append`A${i},${i},0,0,${+(h*d>c*f)},${this._x1=t+w*o},${this._y1=e+w*l}`}else this._append`L${this._x1=t},${this._y1=e}`;else;}arc(t,e,r,n,i,s){if(t=+t,e=+e,s=!!s,(r=+r)<0)throw new Error(`negative radius: ${r}`);let a=r*Math.cos(n),o=r*Math.sin(n),l=t+a,c=e+o,h=1^s,u=s?n-i:i-n;null===this._x1?this._append`M${l},${c}`:(Math.abs(this._x1-l)>Mi||Math.abs(this._y1-c)>Mi)&&this._append`L${l},${c}`,r&&(u<0&&(u=u%Ei+Ei),u>Ti?this._append`A${r},${r},0,1,${h},${t-a},${e-o}A${r},${r},0,1,${h},${this._x1=l},${this._y1=c}`:u>Mi&&this._append`A${r},${r},0,${+(u>=Ai)},${h},${this._x1=t+r*Math.cos(i)},${this._y1=e+r*Math.sin(i)}`)}rect(t,e,r,n){this._append`M${this._x0=this._x1=+t},${this._y0=this._y1=+e}h${r=+r}v${+n}h${-r}Z`}toString(){return this._}}var Ri=Array.prototype.slice;function Pi(t,e){return t-e}var qi=t=>()=>t;function zi(t,e){for(var r,n=-1,i=e.length;++n<i;)if(r=Fi(t,e[n]))return r;return 0}function Fi(t,e){for(var r=e[0],n=e[1],i=-1,s=0,a=t.length,o=a-1;s<a;o=s++){var l=t[s],c=l[0],h=l[1],u=t[o],d=u[0],f=u[1];if(Oi(l,u,e))return 0;h>n!=f>n&&r<(d-c)*(n-h)/(f-h)+c&&(i=-i)}return i}function Oi(t,e,r){var n;return function(t,e,r){return(e[0]-t[0])*(r[1]-t[1])==(r[0]-t[0])*(e[1]-t[1])}(t,e,r)&&function(t,e,r){return t<=e&&e<=r||r<=e&&e<=t}(t[n=+(t[0]===e[0])],r[n],e[n])}function Ii(){}var Ui=[[],[[[1,1.5],[.5,1]]],[[[1.5,1],[1,1.5]]],[[[1.5,1],[.5,1]]],[[[1,.5],[1.5,1]]],[[[1,1.5],[.5,1]],[[1,.5],[1.5,1]]],[[[1,.5],[1,1.5]]],[[[1,.5],[.5,1]]],[[[.5,1],[1,.5]]],[[[1,1.5],[1,.5]]],[[[.5,1],[1,.5]],[[1.5,1],[1,1.5]]],[[[1.5,1],[1,.5]]],[[[.5,1],[1.5,1]]],[[[1,1.5],[1.5,1]]],[[[.5,1],[1,1.5]]],[]];function Hi(){var t=1,e=1,r=Et,n=o;function i(t){var e=r(t);if(Array.isArray(e))e=e.slice().sort(Pi);else{const r=mt(t,Di);for(e=_t(...At(r[0],r[1],e),e);e[e.length-1]>=r[1];)e.pop();for(;e[1]<r[0];)e.shift()}return e.map((e=>s(t,e)))}function s(r,i){const s=null==i?NaN:+i;if(isNaN(s))throw new Error(`invalid value: ${i}`);var o=[],l=[];return function(r,n,i){var s,o,l,c,h,u,d=new Array,f=new Array;s=o=-1,c=Li(r[0],n),Ui[c<<1].forEach(p);for(;++s<t-1;)l=c,c=Li(r[s+1],n),Ui[l|c<<1].forEach(p);Ui[c<<0].forEach(p);for(;++o<e-1;){for(s=-1,c=Li(r[o*t+t],n),h=Li(r[o*t],n),Ui[c<<1|h<<2].forEach(p);++s<t-1;)l=c,c=Li(r[o*t+t+s+1],n),u=h,h=Li(r[o*t+s+1],n),Ui[l|c<<1|h<<2|u<<3].forEach(p);Ui[c|h<<3].forEach(p)}s=-1,h=r[o*t]>=n,Ui[h<<2].forEach(p);for(;++s<t-1;)u=h,h=Li(r[o*t+s+1],n),Ui[h<<2|u<<3].forEach(p);function p(t){var e,r,n=[t[0][0]+s,t[0][1]+o],l=[t[1][0]+s,t[1][1]+o],c=a(n),h=a(l);(e=f[c])?(r=d[h])?(delete f[e.end],delete d[r.start],e===r?(e.ring.push(l),i(e.ring)):d[e.start]=f[r.end]={start:e.start,end:r.end,ring:e.ring.concat(r.ring)}):(delete f[e.end],e.ring.push(l),f[e.end=h]=e):(e=d[h])?(r=f[c])?(delete d[e.start],delete f[r.end],e===r?(e.ring.push(l),i(e.ring)):d[r.start]=f[e.end]={start:r.start,end:e.end,ring:r.ring.concat(e.ring)}):(delete d[e.start],e.ring.unshift(n),d[e.start=c]=e):d[c]=f[h]={start:c,end:h,ring:[n,l]}}Ui[h<<3].forEach(p)}(r,s,(function(t){n(t,r,s),function(t){for(var e=0,r=t.length,n=t[r-1][1]*t[0][0]-t[r-1][0]*t[0][1];++e<r;)n+=t[e-1][1]*t[e][0]-t[e-1][0]*t[e][1];return n}(t)>0?o.push([t]):l.push(t)})),l.forEach((function(t){for(var e,r=0,n=o.length;r<n;++r)if(-1!==zi((e=o[r])[0],t))return void e.push(t)})),{type:"MultiPolygon",value:i,coordinates:o}}function a(e){return 2*e[0]+e[1]*(t+1)*4}function o(r,n,i){r.forEach((function(r){var s=r[0],a=r[1],o=0|s,l=0|a,c=ji(n[l*t+o]);s>0&&s<t&&o===s&&(r[0]=Bi(s,ji(n[l*t+o-1]),c,i)),a>0&&a<e&&l===a&&(r[1]=Bi(a,ji(n[(l-1)*t+o]),c,i))}))}return i.contour=s,i.size=function(r){if(!arguments.length)return[t,e];var n=Math.floor(r[0]),s=Math.floor(r[1]);if(!(n>=0&&s>=0))throw new Error("invalid size");return t=n,e=s,i},i.thresholds=function(t){return arguments.length?(r="function"==typeof t?t:Array.isArray(t)?qi(Ri.call(t)):qi(t),i):r},i.smooth=function(t){return arguments.length?(n=t?o:Ii,i):n===o},i}function Di(t){return isFinite(t)?t:NaN}function Li(t,e){return null!=t&&+t>=e}function ji(t){return null==t||isNaN(t=+t)?-1/0:t}function Bi(t,e,r,n){const i=n-e,s=r-e,a=isFinite(i)||isFinite(s)?i/s:Math.sign(i)/Math.sign(s);return isNaN(a)?t:t+a-.5}function Vi(t,e){if((r=(t=e?t.toExponential(e-1):t.toExponential()).indexOf("e"))<0)return null;var r,n=t.slice(0,r);return[n.length>1?n[0]+n.slice(2):n,+t.slice(r+1)]}function Ki(t){return(t=Vi(Math.abs(t)))?t[1]:NaN}var Xi,Wi=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function Gi(t){if(!(e=Wi.exec(t)))throw new Error("invalid format: "+t);var e;return new Yi({fill:e[1],align:e[2],sign:e[3],symbol:e[4],zero:e[5],width:e[6],comma:e[7],precision:e[8]&&e[8].slice(1),trim:e[9],type:e[10]})}function Yi(t){this.fill=void 0===t.fill?" ":t.fill+"",this.align=void 0===t.align?">":t.align+"",this.sign=void 0===t.sign?"-":t.sign+"",this.symbol=void 0===t.symbol?"":t.symbol+"",this.zero=!!t.zero,this.width=void 0===t.width?void 0:+t.width,this.comma=!!t.comma,this.precision=void 0===t.precision?void 0:+t.precision,this.trim=!!t.trim,this.type=void 0===t.type?"":t.type+""}function Zi(t,e){var r=Vi(t,e);if(!r)return t+"";var n=r[0],i=r[1];return i<0?"0."+new Array(-i).join("0")+n:n.length>i+1?n.slice(0,i+1)+"."+n.slice(i+1):n+new Array(i-n.length+2).join("0")}Gi.prototype=Yi.prototype,Yi.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(void 0===this.width?"":Math.max(1,0|this.width))+(this.comma?",":"")+(void 0===this.precision?"":"."+Math.max(0,0|this.precision))+(this.trim?"~":"")+this.type};var Qi={"%":(t,e)=>(100*t).toFixed(e),b:t=>Math.round(t).toString(2),c:t=>t+"",d:function(t){return Math.abs(t=Math.round(t))>=1e21?t.toLocaleString("en").replace(/,/g,""):t.toString(10)},e:(t,e)=>t.toExponential(e),f:(t,e)=>t.toFixed(e),g:(t,e)=>t.toPrecision(e),o:t=>Math.round(t).toString(8),p:(t,e)=>Zi(100*t,e),r:Zi,s:function(t,e){var r=Vi(t,e);if(!r)return t+"";var n=r[0],i=r[1],s=i-(Xi=3*Math.max(-8,Math.min(8,Math.floor(i/3))))+1,a=n.length;return s===a?n:s>a?n+new Array(s-a+1).join("0"):s>0?n.slice(0,s)+"."+n.slice(s):"0."+new Array(1-s).join("0")+Vi(t,Math.max(0,e+s-1))[0]},X:t=>Math.round(t).toString(16).toUpperCase(),x:t=>Math.round(t).toString(16)};function Ji(t){return t}var ts,es,rs,ns=Array.prototype.map,is=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function ss(t){var e,r,n=void 0===t.grouping||void 0===t.thousands?Ji:(e=ns.call(t.grouping,Number),r=t.thousands+"",function(t,n){for(var i=t.length,s=[],a=0,o=e[0],l=0;i>0&&o>0&&(l+o+1>n&&(o=Math.max(1,n-l)),s.push(t.substring(i-=o,i+o)),!((l+=o+1)>n));)o=e[a=(a+1)%e.length];return s.reverse().join(r)}),i=void 0===t.currency?"":t.currency[0]+"",s=void 0===t.currency?"":t.currency[1]+"",a=void 0===t.decimal?".":t.decimal+"",o=void 0===t.numerals?Ji:function(t){return function(e){return e.replace(/[0-9]/g,(function(e){return t[+e]}))}}(ns.call(t.numerals,String)),l=void 0===t.percent?"%":t.percent+"",c=void 0===t.minus?"−":t.minus+"",h=void 0===t.nan?"NaN":t.nan+"";function u(t){var e=(t=Gi(t)).fill,r=t.align,u=t.sign,d=t.symbol,f=t.zero,p=t.width,m=t.comma,b=t.precision,g=t.trim,v=t.type;"n"===v?(m=!0,v="g"):Qi[v]||(void 0===b&&(b=12),g=!0,v="g"),(f||"0"===e&&"="===r)&&(f=!0,e="0",r="=");var y="$"===d?i:"#"===d&&/[boxX]/.test(v)?"0"+v.toLowerCase():"",w="$"===d?s:/[%p]/.test(v)?l:"",x=Qi[v],$=/[defgprs%]/.test(v);function k(t){var i,s,l,d=y,k=w;if("c"===v)k=x(t)+k,t="";else{var _=(t=+t)<0||1/t<0;if(t=isNaN(t)?h:x(Math.abs(t),b),g&&(t=function(t){t:for(var e,r=t.length,n=1,i=-1;n<r;++n)switch(t[n]){case".":i=e=n;break;case"0":0===i&&(i=n),e=n;break;default:if(!+t[n])break t;i>0&&(i=0)}return i>0?t.slice(0,i)+t.slice(e+1):t}(t)),_&&0==+t&&"+"!==u&&(_=!1),d=(_?"("===u?u:c:"-"===u||"("===u?"":u)+d,k=("s"===v?is[8+Xi/3]:"")+k+(_&&"("===u?")":""),$)for(i=-1,s=t.length;++i<s;)if(48>(l=t.charCodeAt(i))||l>57){k=(46===l?a+t.slice(i+1):t.slice(i))+k,t=t.slice(0,i);break}}m&&!f&&(t=n(t,1/0));var S=d.length+t.length+k.length,A=S<p?new Array(p-S+1).join(e):"";switch(m&&f&&(t=n(A+t,A.length?p-k.length:1/0),A=""),r){case"<":t=d+t+k+A;break;case"=":t=d+A+t+k;break;case"^":t=A.slice(0,S=A.length>>1)+d+t+k+A.slice(S);break;default:t=A+d+t+k}return o(t)}return b=void 0===b?6:/[gprs]/.test(v)?Math.max(1,Math.min(21,b)):Math.max(0,Math.min(20,b)),k.toString=function(){return t+""},k}return{format:u,formatPrefix:function(t,e){var r=u(((t=Gi(t)).type="f",t)),n=3*Math.max(-8,Math.min(8,Math.floor(Ki(e)/3))),i=Math.pow(10,-n),s=is[8+n/3];return function(t){return r(i*t)+s}}}}ts=ss({thousands:",",grouping:[3],currency:["$",""]}),es=ts.format,rs=ts.formatPrefix;var as=1e-6,os=Math.PI,ls=2*os,cs=180/os,hs=os/180,us=Math.abs,ds=Math.cos,fs=Math.sin,ps=Math.sqrt;function ms(){}function bs(t,e){t&&vs.hasOwnProperty(t.type)&&vs[t.type](t,e)}var gs={Feature:function(t,e){bs(t.geometry,e)},FeatureCollection:function(t,e){for(var r=t.features,n=-1,i=r.length;++n<i;)bs(r[n].geometry,e)}},vs={Sphere:function(t,e){e.sphere()},Point:function(t,e){t=t.coordinates,e.point(t[0],t[1],t[2])},MultiPoint:function(t,e){for(var r=t.coordinates,n=-1,i=r.length;++n<i;)t=r[n],e.point(t[0],t[1],t[2])},LineString:function(t,e){ys(t.coordinates,e,0)},MultiLineString:function(t,e){for(var r=t.coordinates,n=-1,i=r.length;++n<i;)ys(r[n],e,0)},Polygon:function(t,e){ws(t.coordinates,e)},MultiPolygon:function(t,e){for(var r=t.coordinates,n=-1,i=r.length;++n<i;)ws(r[n],e)},GeometryCollection:function(t,e){for(var r=t.geometries,n=-1,i=r.length;++n<i;)bs(r[n],e)}};function ys(t,e,r){var n,i=-1,s=t.length-r;for(e.lineStart();++i<s;)n=t[i],e.point(n[0],n[1],n[2]);e.lineEnd()}function ws(t,e){var r=-1,n=t.length;for(e.polygonStart();++r<n;)ys(t[r],e,1);e.polygonEnd()}function xs(t,e){t&&gs.hasOwnProperty(t.type)?gs[t.type](t,e):bs(t,e)}function $s(t,e,r,n){this.x=t,this.z=e,this.o=r,this.e=n,this.v=!1,this.n=this.p=null}function ks(t,e,r,n,i){var s,a,o=[],l=[];if(t.forEach((function(t){if(!((e=t.length-1)<=0)){var e,r,n=t[0],a=t[e];if(function(t,e){return us(t[0]-e[0])<as&&us(t[1]-e[1])<as}(n,a)){if(!n[2]&&!a[2]){for(i.lineStart(),s=0;s<e;++s)i.point((n=t[s])[0],n[1]);return void i.lineEnd()}a[0]+=2*as}o.push(r=new $s(n,t,null,!0)),l.push(r.o=new $s(n,null,r,!1)),o.push(r=new $s(a,t,null,!1)),l.push(r.o=new $s(a,null,r,!0))}})),o.length){for(l.sort(e),_s(o),_s(l),s=0,a=l.length;s<a;++s)l[s].e=r=!r;for(var c,h,u=o[0];;){for(var d=u,f=!0;d.v;)if((d=d.n)===u)return;c=d.z,i.lineStart();do{if(d.v=d.o.v=!0,d.e){if(f)for(s=0,a=c.length;s<a;++s)i.point((h=c[s])[0],h[1]);else n(d.x,d.n.x,1,i);d=d.n}else{if(f)for(c=d.p.z,s=c.length-1;s>=0;--s)i.point((h=c[s])[0],h[1]);else n(d.x,d.p.x,-1,i);d=d.p}c=(d=d.o).z,f=!f}while(!d.v);i.lineEnd()}}}function _s(t){if(e=t.length){for(var e,r,n=0,i=t[0];++n<e;)i.n=r=t[n],r.p=i,i=r;i.n=r=t[0],r.p=i}}var Ss=1e9,As=-Ss;function Es(t,e,r,n){function i(i,s){return t<=i&&i<=r&&e<=s&&s<=n}function s(i,s,o,c){var h=0,u=0;if(null==i||(h=a(i,o))!==(u=a(s,o))||l(i,s)<0^o>0)do{c.point(0===h||3===h?t:r,h>1?n:e)}while((h=(h+o+4)%4)!==u);else c.point(s[0],s[1])}function a(n,i){return us(n[0]-t)<as?i>0?0:3:us(n[0]-r)<as?i>0?2:1:us(n[1]-e)<as?i>0?1:0:i>0?3:2}function o(t,e){return l(t.x,e.x)}function l(t,e){var r=a(t,1),n=a(e,1);return r!==n?r-n:0===r?e[1]-t[1]:1===r?t[0]-e[0]:2===r?t[1]-e[1]:e[0]-t[0]}return function(a){var l,c,h,u,d,f,p,m,b,g,v,y=a,w=function(){var t,e=[];return{point:function(e,r,n){t.push([e,r,n])},lineStart:function(){e.push(t=[])},lineEnd:ms,rejoin:function(){e.length>1&&e.push(e.pop().concat(e.shift()))},result:function(){var r=e;return e=[],t=null,r}}}(),x={point:$,lineStart:function(){x.point=k,c&&c.push(h=[]);g=!0,b=!1,p=m=NaN},lineEnd:function(){l&&(k(u,d),f&&b&&w.rejoin(),l.push(w.result()));x.point=$,b&&y.lineEnd()},polygonStart:function(){y=w,l=[],c=[],v=!0},polygonEnd:function(){var e=function(){for(var e=0,r=0,i=c.length;r<i;++r)for(var s,a,o=c[r],l=1,h=o.length,u=o[0],d=u[0],f=u[1];l<h;++l)s=d,a=f,d=(u=o[l])[0],f=u[1],a<=n?f>n&&(d-s)*(n-a)>(f-a)*(t-s)&&++e:f<=n&&(d-s)*(n-a)<(f-a)*(t-s)&&--e;return e}(),r=v&&e,i=(u=l,l=Array.from(function*(t){for(const e of t)yield*e}(u))).length;var u;(r||i)&&(a.polygonStart(),r&&(a.lineStart(),s(null,null,1,a),a.lineEnd()),i&&ks(l,o,e,s,a),a.polygonEnd());y=a,l=c=h=null}};function $(t,e){i(t,e)&&y.point(t,e)}function k(s,a){var o=i(s,a);if(c&&h.push([s,a]),g)u=s,d=a,f=o,g=!1,o&&(y.lineStart(),y.point(s,a));else if(o&&b)y.point(s,a);else{var l=[p=Math.max(As,Math.min(Ss,p)),m=Math.max(As,Math.min(Ss,m))],w=[s=Math.max(As,Math.min(Ss,s)),a=Math.max(As,Math.min(Ss,a))];!function(t,e,r,n,i,s){var a,o=t[0],l=t[1],c=0,h=1,u=e[0]-o,d=e[1]-l;if(a=r-o,u||!(a>0)){if(a/=u,u<0){if(a<c)return;a<h&&(h=a)}else if(u>0){if(a>h)return;a>c&&(c=a)}if(a=i-o,u||!(a<0)){if(a/=u,u<0){if(a>h)return;a>c&&(c=a)}else if(u>0){if(a<c)return;a<h&&(h=a)}if(a=n-l,d||!(a>0)){if(a/=d,d<0){if(a<c)return;a<h&&(h=a)}else if(d>0){if(a>h)return;a>c&&(c=a)}if(a=s-l,d||!(a<0)){if(a/=d,d<0){if(a>h)return;a>c&&(c=a)}else if(d>0){if(a<c)return;a<h&&(h=a)}return c>0&&(t[0]=o+c*u,t[1]=l+c*d),h<1&&(e[0]=o+h*u,e[1]=l+h*d),!0}}}}}(l,w,t,e,r,n)?o&&(y.lineStart(),y.point(s,a),v=!1):(b||(y.lineStart(),y.point(l[0],l[1])),y.point(w[0],w[1]),o||y.lineEnd(),v=!1)}p=s,m=a,b=o}return x}}var Ms,Ts,Cs,Ns,Rs=t=>t,Ps=new bt,qs=new bt,zs={point:ms,lineStart:ms,lineEnd:ms,polygonStart:function(){zs.lineStart=Fs,zs.lineEnd=Us},polygonEnd:function(){zs.lineStart=zs.lineEnd=zs.point=ms,Ps.add(us(qs)),qs=new bt},result:function(){var t=Ps/2;return Ps=new bt,t}};function Fs(){zs.point=Os}function Os(t,e){zs.point=Is,Ms=Cs=t,Ts=Ns=e}function Is(t,e){qs.add(Ns*t-Cs*e),Cs=t,Ns=e}function Us(){Is(Ms,Ts)}var Hs=zs,Ds=1/0,Ls=Ds,js=-Ds,Bs=js,Vs={point:function(t,e){t<Ds&&(Ds=t);t>js&&(js=t);e<Ls&&(Ls=e);e>Bs&&(Bs=e)},lineStart:ms,lineEnd:ms,polygonStart:ms,polygonEnd:ms,result:function(){var t=[[Ds,Ls],[js,Bs]];return js=Bs=-(Ls=Ds=1/0),t}};var Ks,Xs,Ws,Gs,Ys=Vs,Zs=0,Qs=0,Js=0,ta=0,ea=0,ra=0,na=0,ia=0,sa=0,aa={point:oa,lineStart:la,lineEnd:ua,polygonStart:function(){aa.lineStart=da,aa.lineEnd=fa},polygonEnd:function(){aa.point=oa,aa.lineStart=la,aa.lineEnd=ua},result:function(){var t=sa?[na/sa,ia/sa]:ra?[ta/ra,ea/ra]:Js?[Zs/Js,Qs/Js]:[NaN,NaN];return Zs=Qs=Js=ta=ea=ra=na=ia=sa=0,t}};function oa(t,e){Zs+=t,Qs+=e,++Js}function la(){aa.point=ca}function ca(t,e){aa.point=ha,oa(Ws=t,Gs=e)}function ha(t,e){var r=t-Ws,n=e-Gs,i=ps(r*r+n*n);ta+=i*(Ws+t)/2,ea+=i*(Gs+e)/2,ra+=i,oa(Ws=t,Gs=e)}function ua(){aa.point=oa}function da(){aa.point=pa}function fa(){ma(Ks,Xs)}function pa(t,e){aa.point=ma,oa(Ks=Ws=t,Xs=Gs=e)}function ma(t,e){var r=t-Ws,n=e-Gs,i=ps(r*r+n*n);ta+=i*(Ws+t)/2,ea+=i*(Gs+e)/2,ra+=i,na+=(i=Gs*t-Ws*e)*(Ws+t),ia+=i*(Gs+e),sa+=3*i,oa(Ws=t,Gs=e)}var ba=aa;function ga(t){this._context=t}ga.prototype={_radius:4.5,pointRadius:function(t){return this._radius=t,this},polygonStart:function(){this._line=0},polygonEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){0===this._line&&this._context.closePath(),this._point=NaN},point:function(t,e){switch(this._point){case 0:this._context.moveTo(t,e),this._point=1;break;case 1:this._context.lineTo(t,e);break;default:this._context.moveTo(t+this._radius,e),this._context.arc(t,e,this._radius,0,ls)}},result:ms};var va,ya,wa,xa,$a,ka=new bt,_a={point:ms,lineStart:function(){_a.point=Sa},lineEnd:function(){va&&Aa(ya,wa),_a.point=ms},polygonStart:function(){va=!0},polygonEnd:function(){va=null},result:function(){var t=+ka;return ka=new bt,t}};function Sa(t,e){_a.point=Aa,ya=xa=t,wa=$a=e}function Aa(t,e){xa-=t,$a-=e,ka.add(ps(xa*xa+$a*$a)),xa=t,$a=e}var Ea=_a;let Ma,Ta,Ca,Na;class Ra{constructor(t){this._append=null==t?Pa:function(t){const e=Math.floor(t);if(!(e>=0))throw new RangeError(`invalid digits: ${t}`);if(e>15)return Pa;if(e!==Ma){const t=10**e;Ma=e,Ta=function(e){let r=1;this._+=e[0];for(const n=e.length;r<n;++r)this._+=Math.round(arguments[r]*t)/t+e[r]}}return Ta}(t),this._radius=4.5,this._=""}pointRadius(t){return this._radius=+t,this}polygonStart(){this._line=0}polygonEnd(){this._line=NaN}lineStart(){this._point=0}lineEnd(){0===this._line&&(this._+="Z"),this._point=NaN}point(t,e){switch(this._point){case 0:this._append`M${t},${e}`,this._point=1;break;case 1:this._append`L${t},${e}`;break;default:if(this._append`M${t},${e}`,this._radius!==Ca||this._append!==Ta){const t=this._radius,e=this._;this._="",this._append`m0,${t}a${t},${t} 0 1,1 0,${-2*t}a${t},${t} 0 1,1 0,${2*t}z`,Ca=t,Ta=this._append,Na=this._,this._=e}this._+=Na}}result(){const t=this._;return this._="",t.length?t:null}}function Pa(t){let e=1;this._+=t[0];for(const r=t.length;e<r;++e)this._+=arguments[e]+t[e]}function qa(t,e){let r,n,i=3,s=4.5;function a(t){return t&&("function"==typeof s&&n.pointRadius(+s.apply(this,arguments)),xs(t,r(n))),n.result()}return a.area=function(t){return xs(t,r(Hs)),Hs.result()},a.measure=function(t){return xs(t,r(Ea)),Ea.result()},a.bounds=function(t){return xs(t,r(Ys)),Ys.result()},a.centroid=function(t){return xs(t,r(ba)),ba.result()},a.projection=function(e){return arguments.length?(r=null==e?(t=null,Rs):(t=e).stream,a):t},a.context=function(t){return arguments.length?(n=null==t?(e=null,new Ra(i)):new ga(e=t),"function"!=typeof s&&n.pointRadius(s),a):e},a.pointRadius=function(t){return arguments.length?(s="function"==typeof t?t:(n.pointRadius(+t),+t),a):s},a.digits=function(t){if(!arguments.length)return i;if(null==t)i=null;else{const e=Math.floor(t);if(!(e>=0))throw new RangeError(`invalid digits: ${t}`);i=e}return null===e&&(n=new Ra(i)),a},a.projection(t).digits(i).context(e)}function za(){}function Fa(t,e,r){var n=t.clipExtent&&t.clipExtent();return t.scale(150).translate([0,0]),null!=n&&t.clipExtent(null),xs(r,t.stream(Ys)),e(Ys.result()),null!=n&&t.clipExtent(n),t}function Oa(t,e,r){return Fa(t,(function(r){var n=e[1][0]-e[0][0],i=e[1][1]-e[0][1],s=Math.min(n/(r[1][0]-r[0][0]),i/(r[1][1]-r[0][1])),a=+e[0][0]+(n-s*(r[1][0]+r[0][0]))/2,o=+e[0][1]+(i-s*(r[1][1]+r[0][1]))/2;t.scale(150*s).translate([a,o])}),r)}function Ia(){var t,e,r,n,i,s,a,o,l=1,c=0,h=0,u=1,d=1,f=0,p=null,m=1,b=1,g=(o={point:function(t,e){var r=w([t,e]);this.stream.point(r[0],r[1])}},function(t){var e=new za;for(var r in o)e[r]=o[r];return e.stream=t,e}),v=Rs;function y(){return m=l*u,b=l*d,s=a=null,w}function w(r){var n=r[0]*m,i=r[1]*b;if(f){var s=i*t-n*e;n=n*t+i*e,i=s}return[n+c,i+h]}return w.invert=function(r){var n=r[0]-c,i=r[1]-h;if(f){var s=i*t+n*e;n=n*t-i*e,i=s}return[n/m,i/b]},w.stream=function(t){return s&&a===t?s:s=g(v(a=t))},w.postclip=function(t){return arguments.length?(v=t,p=r=n=i=null,y()):v},w.clipExtent=function(t){return arguments.length?(v=null==t?(p=r=n=i=null,Rs):Es(p=+t[0][0],r=+t[0][1],n=+t[1][0],i=+t[1][1]),y()):null==p?null:[[p,r],[n,i]]},w.scale=function(t){return arguments.length?(l=+t,y()):l},w.translate=function(t){return arguments.length?(c=+t[0],h=+t[1],y()):[c,h]},w.angle=function(r){return arguments.length?(e=fs(f=r%360*hs),t=ds(f),y()):f*cs},w.reflectX=function(t){return arguments.length?(u=t?-1:1,y()):u<0},w.reflectY=function(t){return arguments.length?(d=t?-1:1,y()):d<0},w.fitExtent=function(t,e){return Oa(w,t,e)},w.fitSize=function(t,e){return function(t,e,r){return Oa(t,[[0,0],e],r)}(w,t,e)},w.fitWidth=function(t,e){return function(t,e,r){return Fa(t,(function(r){var n=+e,i=n/(r[1][0]-r[0][0]),s=(n-i*(r[1][0]+r[0][0]))/2,a=-i*r[0][1];t.scale(150*i).translate([s,a])}),r)}(w,t,e)},w.fitHeight=function(t,e){return function(t,e,r){return Fa(t,(function(r){var n=+e,i=n/(r[1][1]-r[0][1]),s=-i*r[0][0],a=(n-i*(r[1][1]+r[0][1]))/2;t.scale(150*i).translate([s,a])}),r)}(w,t,e)},w}function Ua(t,e){switch(arguments.length){case 0:break;case 1:this.range(t);break;default:this.range(e).domain(t)}return this}function Ha(t){return+t}za.prototype={constructor:za,point:function(t,e){this.stream.point(t,e)},sphere:function(){this.stream.sphere()},lineStart:function(){this.stream.lineStart()},lineEnd:function(){this.stream.lineEnd()},polygonStart:function(){this.stream.polygonStart()},polygonEnd:function(){this.stream.polygonEnd()}};var Da=[0,1];function La(t){return t}function ja(t,e){return(e-=t=+t)?function(r){return(r-t)/e}:function(t){return function(){return t}}(isNaN(e)?NaN:.5)}function Ba(t,e,r){var n=t[0],i=t[1],s=e[0],a=e[1];return i<n?(n=ja(i,n),s=r(a,s)):(n=ja(n,i),s=r(s,a)),function(t){return s(n(t))}}function Va(t,e,r){var n=Math.min(t.length,e.length)-1,i=new Array(n),s=new Array(n),a=-1;for(t[n]<t[0]&&(t=t.slice().reverse(),e=e.slice().reverse());++a<n;)i[a]=ja(t[a],t[a+1]),s[a]=r(e[a],e[a+1]);return function(e){var r=pt(t,e,1,n)-1;return s[r](i[r](e))}}function Ka(){var t,e,r,n,i,s,a=Da,o=Da,l=dn,c=La;function h(){var t=Math.min(a.length,o.length);return c!==La&&(c=function(t,e){var r;return t>e&&(r=t,t=e,e=r),function(r){return Math.max(t,Math.min(e,r))}}(a[0],a[t-1])),n=t>2?Va:Ba,i=s=null,u}function u(e){return null==e||isNaN(e=+e)?r:(i||(i=n(a.map(t),o,l)))(t(c(e)))}return u.invert=function(r){return c(e((s||(s=n(o,a.map(t),on)))(r)))},u.domain=function(t){return arguments.length?(a=Array.from(t,Ha),h()):a.slice()},u.range=function(t){return arguments.length?(o=Array.from(t),h()):o.slice()},u.rangeRound=function(t){return o=Array.from(t),l=fn,h()},u.clamp=function(t){return arguments.length?(c=!!t||La,h()):c!==La},u.interpolate=function(t){return arguments.length?(l=t,h()):l},u.unknown=function(t){return arguments.length?(r=t,u):r},function(r,n){return t=r,e=n,h()}}function Xa(t,e,r,n){var i,s=function(t,e,r){r=+r;const n=(e=+e)<(t=+t),i=n?St(e,t,r):St(t,e,r);return(n?-1:1)*(i<0?1/-i:i)}(t,e,r);switch((n=Gi(null==n?",f":n)).type){case"s":var a=Math.max(Math.abs(t),Math.abs(e));return null!=n.precision||isNaN(i=function(t,e){return Math.max(0,3*Math.max(-8,Math.min(8,Math.floor(Ki(e)/3)))-Ki(Math.abs(t)))}(s,a))||(n.precision=i),rs(n,a);case"":case"e":case"g":case"p":case"r":null!=n.precision||isNaN(i=function(t,e){return t=Math.abs(t),e=Math.abs(e)-t,Math.max(0,Ki(e)-Ki(t))+1}(s,Math.max(Math.abs(t),Math.abs(e))))||(n.precision=i-("e"===n.type));break;case"f":case"%":null!=n.precision||isNaN(i=function(t){return Math.max(0,-Ki(Math.abs(t)))}(s))||(n.precision=i-2*("%"===n.type))}return es(n)}function Wa(){var t=Ka()(La,La);return t.copy=function(){return e=t,Wa().domain(e.domain()).range(e.range()).interpolate(e.interpolate()).clamp(e.clamp()).unknown(e.unknown());var e},Ua.apply(t,arguments),function(t){var e=t.domain;return t.ticks=function(t){var r=e();return _t(r[0],r[r.length-1],null==t?10:t)},t.tickFormat=function(t,r){var n=e();return Xa(n[0],n[n.length-1],null==t?10:t,r)},t.nice=function(r){null==r&&(r=10);var n,i,s=e(),a=0,o=s.length-1,l=s[a],c=s[o],h=10;for(c<l&&(i=l,l=c,c=i,i=a,a=o,o=i);h-- >0;){if((i=St(l,c,r))===n)return s[a]=l,s[o]=c,e(s);if(i>0)l=Math.floor(l/i)*i,c=Math.ceil(c/i)*i;else{if(!(i<0))break;l=Math.ceil(l*i)/i,c=Math.floor(c*i)/i}n=i}return t},t}(t)}var Ga=function(t){for(var e=t.length/6|0,r=new Array(e),n=0;n<e;)r[n]="#"+t.slice(6*n,6*++n);return r}("e41a1c377eb84daf4a984ea3ff7f00ffff33a65628f781bf999999");function Ya(t){return function(){return t}}function Za(t){this._context=t}function Qa(t){return new Za(t)}function Ja(t){return t[0]}function to(t){return t[1]}function eo(t,e){var r=Ya(!0),n=null,i=Qa,s=null,a=function(t){let e=3;return t.digits=function(r){if(!arguments.length)return e;if(null==r)e=null;else{const t=Math.floor(r);if(!(t>=0))throw new RangeError(`invalid digits: ${r}`);e=t}return t},()=>new Ni(e)}(o);function o(o){var l,c,h,u=(o=function(t){return"object"==typeof t&&"length"in t?t:Array.from(t)}(o)).length,d=!1;for(null==n&&(s=i(h=a())),l=0;l<=u;++l)!(l<u&&r(c=o[l],l,o))===d&&((d=!d)?s.lineStart():s.lineEnd()),d&&s.point(+t(c,l,o),+e(c,l,o));if(h)return s=null,h+""||null}return t="function"==typeof t?t:void 0===t?Ja:Ya(t),e="function"==typeof e?e:void 0===e?to:Ya(e),o.x=function(e){return arguments.length?(t="function"==typeof e?e:Ya(+e),o):t},o.y=function(t){return arguments.length?(e="function"==typeof t?t:Ya(+t),o):e},o.defined=function(t){return arguments.length?(r="function"==typeof t?t:Ya(!!t),o):r},o.curve=function(t){return arguments.length?(i=t,null!=n&&(s=i(n)),o):i},o.context=function(t){return arguments.length?(null==t?n=s=null:s=i(n=t),o):n},o}function ro(t,e,r){this.k=t,this.x=e,this.y=r}Za.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;default:this._context.lineTo(t,e)}}},ro.prototype={constructor:ro,scale:function(t){return 1===t?this:new ro(this.k*t,this.x,this.y)},translate:function(t,e){return 0===t&0===e?this:new ro(this.k,this.x+this.k*t,this.y+this.k*e)},apply:function(t){return[t[0]*this.k+this.x,t[1]*this.k+this.y]},applyX:function(t){return t*this.k+this.x},applyY:function(t){return t*this.k+this.y},invert:function(t){return[(t[0]-this.x)/this.k,(t[1]-this.y)/this.k]},invertX:function(t){return(t-this.x)/this.k},invertY:function(t){return(t-this.y)/this.k},rescaleX:function(t){return t.copy().domain(t.range().map(this.invertX,this).map(t.invert,t))},rescaleY:function(t){return t.copy().domain(t.range().map(this.invertY,this).map(t.invert,t))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}},ro.prototype;class no extends ot{getComputedStyleValue(t){return getComputedStyle(this).getPropertyValue(t).trim()}firstUpdated(t){super.firstUpdated(t),ar(this.renderRoot.host).classed("keyboard",!0).on("mousemove.keyboard touchstart.keyboard",(t=>{ar(t.currentTarget.renderRoot.host).classed("keyboard",!1).on("mousemove.keyboard touchstart.keyboard",null)})).on("keydown.keyboard",(t=>{ar(t.currentTarget.renderRoot.host).classed("keyboard",!0).on("keydown.keyboard mousemove.keyboard touchstart.keyboard",null)}))}static get greys(){const t="#999999",e={white:"#ffffff"};return e.light75=rn(t,"#ffffff")(.75),e.light50=rn(t,"#ffffff")(.5),e.light25=rn(t,"#ffffff")(.25),e.grey=t,e.dark25=rn(t,"#000000")(.25),e.dark50=rn(t,"#000000")(.5),e.dark75=rn(t,"#000000")(.75),e.black="#000000",e}static get shadows(){return{elevations:[0,2,4,8,16],baselineColor:"#000000",baselineColorString:"0, 0, 0",inverseBaselineColor:"#FFFFFF",inverseBaselineColorString:"255, 255, 255",opacityUmbra:.2,opacityPenumbra:.14,opacityAmbient:.12,opacityBoost:.2,mapUmbra:{0:{x:0,y:0,b:0,s:0},2:{x:0,y:3,b:1,s:-2},4:{x:0,y:2,b:4,s:-1},8:{x:0,y:5,b:5,s:-3},16:{x:0,y:8,b:10,s:-5}},mapPenumbra:{0:{x:0,y:0,b:0,s:0},2:{x:0,y:2,b:2,s:0},4:{x:0,y:4,b:5,s:0},8:{x:0,y:8,b:10,s:1},16:{x:0,y:16,b:24,s:2}},mapAmbient:{0:{x:0,y:0,b:0,s:0},2:{x:0,y:1,b:5,s:0},4:{x:0,y:1,b:10,s:0},8:{x:0,y:3,b:14,s:2},16:{x:0,y:6,b:30,s:5}}}}static cssBoxShadow(t,e=!1,r=!1){const n=this.shadows.opacityUmbra+this.shadows.opacityBoost,i=this.shadows.opacityPenumbra+this.shadows.opacityBoost,s=this.shadows.opacityAmbient+this.shadows.opacityBoost,a=r?`rgba(${this.shadows.inverseBaselineColorString}, ${n})`:`rgba(${this.shadows.baselineColorString}, ${n})`,o=r?`rgba(${this.shadows.inverseBaselineColorString}, ${i})`:`rgba(${this.shadows.baselineColorString}, ${i})`,l=r?`rgba(${this.shadows.inverseBaselineColorString}, ${s})`:`rgba(${this.shadows.baselineColorString}, ${s})`,c=this.shadows.mapUmbra[t],h=this.shadows.mapPenumbra[t],u=this.shadows.mapAmbient[t];return`${e?`${-c.y}px ${c.y/2}px ${c.b}px ${c.s}px`:`${c.y/2}px ${c.y}px ${c.b}px ${c.s}px`} ${a}, ${e?`${-h.y}px ${h.y/2}px ${h.b}px ${h.s}px`:`${h.y/2}px ${h.y}px ${h.b}px ${h.s}px`} ${o}, ${e?`${-u.y}px ${u.y/2}px ${u.b}px ${u.s}px`:`${u.y/2}px ${u.y}px ${u.b}px ${u.s}px`} ${l}`}static get svgDefs(){const t=no.shadows;return`\n <defs>\n ${t.elevations.map((e=>`\n <filter id=shadow-${e} filterUnits="userSpaceOnUse" x="-100%" y="-100%" width="200%" height="200%">\n <feComponentTransfer in="SourceAlpha" result="solid">\n <feFuncA type="table" tableValues="0 1 1"/>\n </feComponentTransfer>\n <feOffset in="solid" result="offU" dx=${t.mapUmbra[e].y/2} dy=${t.mapUmbra[e].y} />\n <feOffset in="solid" result="offP" dx=${t.mapPenumbra[e].y/2} dy=${t.mapPenumbra[e].y} />\n <feOffset in="solid" result="offA" dx=${t.mapAmbient[e].y/2} dy=${t.mapAmbient[e].y} />\n ${0===t.mapUmbra[e].s?"":`<feMorphology in="offU" result="spreadU" operator=${t.mapUmbra[e].s>0?"dilate":"erode"} radius=${Math.abs(t.mapUmbra[e].s)} />`}\n ${0===t.mapPenumbra[e].s?"":`<feMorphology in="offP" result="spreadP" operator=${t.mapPenumbra[e].s>0?"dilate":"erode"} radius=${Math.abs(t.mapPenumbra[e].s)} />`}\n ${0===t.mapAmbient[e].s?"":`<feMorphology in="offA" result="spreadA" operator=${t.mapAmbient[e].s>0?"dilate":"erode"} radius=${Math.abs(t.mapAmbient[e].s)} />`}\n <feGaussianBlur in=${0===t.mapUmbra[e].s?"offU":"spreadU"} result="blurU" stdDeviation=${t.mapUmbra[e].b/2} />\n <feGaussianBlur in=${0===t.mapPenumbra[e].s?"offP":"spreadP"} result="blurP" stdDeviation=${t.mapPenumbra[e].b/2} />\n <feGaussianBlur in=${0===t.mapAmbient[e].s?"offA":"spreadA"} result="blurA" stdDeviation=${t.mapAmbient[e].b/2} />\n <feFlood in="SourceGraphic" result="opU" flood-color=${t.baselineColor} flood-opacity=${t.opacityUmbra+t.opacityBoost} />\n <feFlood in="SourceGraphic" result="opP" flood-color=${t.baselineColor} flood-opacity=${t.opacityPenumbra+t.opacityBoost} />\n <feFlood in="SourceGraphic" result="opA" flood-color=${t.baselineColor} flood-opacity=${t.opacityAmbient+t.opacityBoost} />\n <feComposite in="opU" in2="blurU" result="shU" operator="in" />\n <feComposite in="opP" in2="blurP" result="shP" operator="in" />\n <feComposite in="opA" in2="blurA" result="shA" operator="in" />\n <feMorphology in="solid" result="smaller" operator="erode" radius="1" />\n <feComposite in="shU" in2="smaller" result="finalU" operator="out" />\n <feComposite in="shP" in2="smaller" result="finalP" operator="out" />\n <feComposite in="shA" in2="smaller" result="finalA" operator="out" />\n <feMerge>\n <feMergeNode in="finalU" />\n <feMergeNode in="finalP" />\n <feMergeNode in="finalA" />\n <feMergeNode in="SourceGraphic" />\n </feMerge>\n </filter>`))}\n </defs>\n `}static get svgFilters(){const t=no.shadows,e=t.elevations.map((e=>B`
23
+ class ot extends ${constructor(){super(...arguments),this.renderOptions={host:this},this._$Do=void 0}createRenderRoot(){const t=super.createRenderRoot();return this.renderOptions.renderBefore??=t.firstChild,t}update(t){const e=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(t),this._$Do=((t,e,r)=>{const n=r?.renderBefore??e;let i=n._$litPart$;if(void 0===i){const t=r?.renderBefore??null;n._$litPart$=i=new tt(e.insertBefore(N(),t),t,void 0,r??{})}return i._$AI(t),i})(e,this.renderRoot,this.renderOptions)}connectedCallback(){super.connectedCallback(),this._$Do?.setConnected(!0)}disconnectedCallback(){super.disconnectedCallback(),this._$Do?.setConnected(!1)}render(){return V}}ot._$litElement$=!0,ot.finalized=!0,globalThis.litElementHydrateSupport?.({LitElement:ot});const lt=globalThis.litElementPolyfillSupport;function ct(t,e){return null==t||null==e?NaN:t<e?-1:t>e?1:t>=e?0:NaN}function ht(t,e){return null==t||null==e?NaN:e<t?-1:e>t?1:e>=t?0:NaN}function ut(t){let e,r,n;function i(t,n,i=0,s=t.length){if(i<s){if(0!==e(n,n))return s;do{const e=i+s>>>1;r(t[e],n)<0?i=e+1:s=e}while(i<s)}return i}return 2!==t.length?(e=ct,r=(e,r)=>ct(t(e),r),n=(e,r)=>t(e)-r):(e=t===ct||t===ht?t:dt,r=t,n=t),{left:i,center:function(t,e,r=0,s=t.length){const a=i(t,e,r,s-1);return a>r&&n(t[a-1],e)>-n(t[a],e)?a-1:a},right:function(t,n,i=0,s=t.length){if(i<s){if(0!==e(n,n))return s;do{const e=i+s>>>1;r(t[e],n)<=0?i=e+1:s=e}while(i<s)}return i}}}function dt(){return 0}lt?.({LitElement:ot}),(globalThis.litElementVersions??=[]).push("4.0.2");const ft=ut(ct).right;ut((function(t){return null===t?NaN:+t})).center;var pt=ft;function mt(t,e){let r,n;if(void 0===e)for(const e of t)null!=e&&(void 0===r?e>=e&&(r=n=e):(r>e&&(r=e),n<e&&(n=e)));else{let i=-1;for(let s of t)null!=(s=e(s,++i,t))&&(void 0===r?s>=s&&(r=n=s):(r>s&&(r=s),n<s&&(n=s)))}return[r,n]}class bt{constructor(){this._partials=new Float64Array(32),this._n=0}add(t){const e=this._partials;let r=0;for(let n=0;n<this._n&&n<32;n++){const i=e[n],s=t+i,a=Math.abs(t)<Math.abs(i)?t-(s-i):i-(s-t);a&&(e[r++]=a),t=s}return e[r]=t,this._n=r+1,this}valueOf(){const t=this._partials;let e,r,n,i=this._n,s=0;if(i>0){for(s=t[--i];i>0&&(e=s,r=t[--i],s=e+r,n=r-(s-e),!n););i>0&&(n<0&&t[i-1]<0||n>0&&t[i-1]>0)&&(r=2*n,e=s+r,r==e-s&&(s=e))}return s}}function gt(t){return t}var vt=Array.prototype.slice;function yt(t){return()=>t}const wt=Math.sqrt(50),xt=Math.sqrt(10),$t=Math.sqrt(2);function kt(t,e,r){const n=(e-t)/Math.max(0,r),i=Math.floor(Math.log10(n)),s=n/Math.pow(10,i),a=s>=wt?10:s>=xt?5:s>=$t?2:1;let o,l,c;return i<0?(c=Math.pow(10,-i)/a,o=Math.round(t*c),l=Math.round(e*c),o/c<t&&++o,l/c>e&&--l,c=-c):(c=Math.pow(10,i)*a,o=Math.round(t/c),l=Math.round(e/c),o*c<t&&++o,l*c>e&&--l),l<o&&.5<=r&&r<2?kt(t,e,2*r):[o,l,c]}function _t(t,e,r){if(!((r=+r)>0))return[];if((t=+t)===(e=+e))return[t];const n=e<t,[i,s,a]=n?kt(e,t,r):kt(t,e,r);if(!(s>=i))return[];const o=s-i+1,l=new Array(o);if(n)if(a<0)for(let t=0;t<o;++t)l[t]=(s-t)/-a;else for(let t=0;t<o;++t)l[t]=(s-t)*a;else if(a<0)for(let t=0;t<o;++t)l[t]=(i+t)/-a;else for(let t=0;t<o;++t)l[t]=(i+t)*a;return l}function St(t,e,r){return kt(t=+t,e=+e,r=+r)[2]}function At(t,e,r){let n;for(;;){const i=St(t,e,r);if(i===n||0===i||!isFinite(i))return[t,e];i>0?(t=Math.floor(t/i)*i,e=Math.ceil(e/i)*i):i<0&&(t=Math.ceil(t*i)/i,e=Math.floor(e*i)/i),n=i}}function Et(t){return Math.max(1,Math.ceil(Math.log(function(t,e){let r=0;if(void 0===e)for(let e of t)null!=e&&(e=+e)>=e&&++r;else{let n=-1;for(let i of t)null!=(i=e(i,++n,t))&&(i=+i)>=i&&++r}return r}(t))/Math.LN2)+1)}function Mt(t,e,r){t=+t,e=+e,r=(i=arguments.length)<2?(e=t,t=0,1):i<3?1:+r;for(var n=-1,i=0|Math.max(0,Math.ceil((e-t)/r)),s=new Array(i);++n<i;)s[n]=t+n*r;return s}function Tt(t){return t}var Ct=1,Nt=2,Rt=3,Pt=4,qt=1e-6;function zt(t){return"translate("+t+",0)"}function Ft(t){return"translate(0,"+t+")"}function Ot(t){return e=>+t(e)}function Ut(t,e){return e=Math.max(0,t.bandwidth()-2*e)/2,t.round()&&(e=Math.round(e)),r=>+t(r)+e}function It(){return!this.__axis}function Ht(t,e){var r=[],n=null,i=null,s=6,a=6,o=3,l="undefined"!=typeof window&&window.devicePixelRatio>1?0:.5,c=t===Ct||t===Pt?-1:1,h=t===Pt||t===Nt?"x":"y",u=t===Ct||t===Rt?zt:Ft;function d(d){var f=null==n?e.ticks?e.ticks.apply(e,r):e.domain():n,p=null==i?e.tickFormat?e.tickFormat.apply(e,r):Tt:i,m=Math.max(s,0)+o,b=e.range(),g=+b[0]+l,v=+b[b.length-1]+l,y=(e.bandwidth?Ut:Ot)(e.copy(),l),w=d.selection?d.selection():d,x=w.selectAll(".domain").data([null]),$=w.selectAll(".tick").data(f,e).order(),k=$.exit(),_=$.enter().append("g").attr("class","tick"),S=$.select("line"),A=$.select("text");x=x.merge(x.enter().insert("path",".tick").attr("class","domain").attr("stroke","currentColor")),$=$.merge(_),S=S.merge(_.append("line").attr("stroke","currentColor").attr(h+"2",c*s)),A=A.merge(_.append("text").attr("fill","currentColor").attr(h,c*m).attr("dy",t===Ct?"0em":t===Rt?"0.71em":"0.32em")),d!==w&&(x=x.transition(d),$=$.transition(d),S=S.transition(d),A=A.transition(d),k=k.transition(d).attr("opacity",qt).attr("transform",(function(t){return isFinite(t=y(t))?u(t+l):this.getAttribute("transform")})),_.attr("opacity",qt).attr("transform",(function(t){var e=this.parentNode.__axis;return u((e&&isFinite(e=e(t))?e:y(t))+l)}))),k.remove(),x.attr("d",t===Pt||t===Nt?a?"M"+c*a+","+g+"H"+l+"V"+v+"H"+c*a:"M"+l+","+g+"V"+v:a?"M"+g+","+c*a+"V"+l+"H"+v+"V"+c*a:"M"+g+","+l+"H"+v),$.attr("opacity",1).attr("transform",(function(t){return u(y(t)+l)})),S.attr(h+"2",c*s),A.attr(h,c*m).text(p),w.filter(It).attr("fill","none").attr("font-size",10).attr("font-family","sans-serif").attr("text-anchor",t===Nt?"start":t===Pt?"end":"middle"),w.each((function(){this.__axis=y}))}return d.scale=function(t){return arguments.length?(e=t,d):e},d.ticks=function(){return r=Array.from(arguments),d},d.tickArguments=function(t){return arguments.length?(r=null==t?[]:Array.from(t),d):r.slice()},d.tickValues=function(t){return arguments.length?(n=null==t?null:Array.from(t),d):n&&n.slice()},d.tickFormat=function(t){return arguments.length?(i=t,d):i},d.tickSize=function(t){return arguments.length?(s=a=+t,d):s},d.tickSizeInner=function(t){return arguments.length?(s=+t,d):s},d.tickSizeOuter=function(t){return arguments.length?(a=+t,d):a},d.tickPadding=function(t){return arguments.length?(o=+t,d):o},d.offset=function(t){return arguments.length?(l=+t,d):l},d}function Dt(t){return Ht(Rt,t)}function Lt(t){return Ht(Pt,t)}var jt={value:()=>{}};function Bt(){for(var t,e=0,r=arguments.length,n={};e<r;++e){if(!(t=arguments[e]+"")||t in n||/[\s.]/.test(t))throw new Error("illegal type: "+t);n[t]=[]}return new Vt(n)}function Vt(t){this._=t}function Kt(t,e){for(var r,n=0,i=t.length;n<i;++n)if((r=t[n]).name===e)return r.value}function Xt(t,e,r){for(var n=0,i=t.length;n<i;++n)if(t[n].name===e){t[n]=jt,t=t.slice(0,n).concat(t.slice(n+1));break}return null!=r&&t.push({name:e,value:r}),t}Vt.prototype=Bt.prototype={constructor:Vt,on:function(t,e){var r,n,i=this._,s=(n=i,(t+"").trim().split(/^|\s+/).map((function(t){var e="",r=t.indexOf(".");if(r>=0&&(e=t.slice(r+1),t=t.slice(0,r)),t&&!n.hasOwnProperty(t))throw new Error("unknown type: "+t);return{type:t,name:e}}))),a=-1,o=s.length;if(!(arguments.length<2)){if(null!=e&&"function"!=typeof e)throw new Error("invalid callback: "+e);for(;++a<o;)if(r=(t=s[a]).type)i[r]=Xt(i[r],t.name,e);else if(null==e)for(r in i)i[r]=Xt(i[r],t.name,null);return this}for(;++a<o;)if((r=(t=s[a]).type)&&(r=Kt(i[r],t.name)))return r},copy:function(){var t={},e=this._;for(var r in e)t[r]=e[r].slice();return new Vt(t)},call:function(t,e){if((r=arguments.length-2)>0)for(var r,n,i=new Array(r),s=0;s<r;++s)i[s]=arguments[s+2];if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(s=0,r=(n=this._[t]).length;s<r;++s)n[s].value.apply(e,i)},apply:function(t,e,r){if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(var n=this._[t],i=0,s=n.length;i<s;++i)n[i].value.apply(e,r)}};var Wt="http://www.w3.org/1999/xhtml",Gt={svg:"http://www.w3.org/2000/svg",xhtml:Wt,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function Yt(t){var e=t+="",r=e.indexOf(":");return r>=0&&"xmlns"!==(e=t.slice(0,r))&&(t=t.slice(r+1)),Gt.hasOwnProperty(e)?{space:Gt[e],local:t}:t}function Zt(t){return function(){var e=this.ownerDocument,r=this.namespaceURI;return r===Wt&&e.documentElement.namespaceURI===Wt?e.createElement(t):e.createElementNS(r,t)}}function Qt(t){return function(){return this.ownerDocument.createElementNS(t.space,t.local)}}function Jt(t){var e=Yt(t);return(e.local?Qt:Zt)(e)}function te(){}function ee(t){return null==t?te:function(){return this.querySelector(t)}}function re(){return[]}function ne(t){return null==t?re:function(){return this.querySelectorAll(t)}}function ie(t){return function(){return function(t){return null==t?[]:Array.isArray(t)?t:Array.from(t)}(t.apply(this,arguments))}}function se(t){return function(){return this.matches(t)}}function ae(t){return function(e){return e.matches(t)}}var oe=Array.prototype.find;function le(){return this.firstElementChild}var ce=Array.prototype.filter;function he(){return Array.from(this.children)}function ue(t){return new Array(t.length)}function de(t,e){this.ownerDocument=t.ownerDocument,this.namespaceURI=t.namespaceURI,this._next=null,this._parent=t,this.__data__=e}function fe(t,e,r,n,i,s){for(var a,o=0,l=e.length,c=s.length;o<c;++o)(a=e[o])?(a.__data__=s[o],n[o]=a):r[o]=new de(t,s[o]);for(;o<l;++o)(a=e[o])&&(i[o]=a)}function pe(t,e,r,n,i,s,a){var o,l,c,h=new Map,u=e.length,d=s.length,f=new Array(u);for(o=0;o<u;++o)(l=e[o])&&(f[o]=c=a.call(l,l.__data__,o,e)+"",h.has(c)?i[o]=l:h.set(c,l));for(o=0;o<d;++o)c=a.call(t,s[o],o,s)+"",(l=h.get(c))?(n[o]=l,l.__data__=s[o],h.delete(c)):r[o]=new de(t,s[o]);for(o=0;o<u;++o)(l=e[o])&&h.get(f[o])===l&&(i[o]=l)}function me(t){return t.__data__}function be(t){return"object"==typeof t&&"length"in t?t:Array.from(t)}function ge(t,e){return t<e?-1:t>e?1:t>=e?0:NaN}function ve(t){return function(){this.removeAttribute(t)}}function ye(t){return function(){this.removeAttributeNS(t.space,t.local)}}function we(t,e){return function(){this.setAttribute(t,e)}}function xe(t,e){return function(){this.setAttributeNS(t.space,t.local,e)}}function $e(t,e){return function(){var r=e.apply(this,arguments);null==r?this.removeAttribute(t):this.setAttribute(t,r)}}function ke(t,e){return function(){var r=e.apply(this,arguments);null==r?this.removeAttributeNS(t.space,t.local):this.setAttributeNS(t.space,t.local,r)}}function _e(t){return t.ownerDocument&&t.ownerDocument.defaultView||t.document&&t||t.defaultView}function Se(t){return function(){this.style.removeProperty(t)}}function Ae(t,e,r){return function(){this.style.setProperty(t,e,r)}}function Ee(t,e,r){return function(){var n=e.apply(this,arguments);null==n?this.style.removeProperty(t):this.style.setProperty(t,n,r)}}function Me(t,e){return t.style.getPropertyValue(e)||_e(t).getComputedStyle(t,null).getPropertyValue(e)}function Te(t){return function(){delete this[t]}}function Ce(t,e){return function(){this[t]=e}}function Ne(t,e){return function(){var r=e.apply(this,arguments);null==r?delete this[t]:this[t]=r}}function Re(t){return t.trim().split(/^|\s+/)}function Pe(t){return t.classList||new qe(t)}function qe(t){this._node=t,this._names=Re(t.getAttribute("class")||"")}function ze(t,e){for(var r=Pe(t),n=-1,i=e.length;++n<i;)r.add(e[n])}function Fe(t,e){for(var r=Pe(t),n=-1,i=e.length;++n<i;)r.remove(e[n])}function Oe(t){return function(){ze(this,t)}}function Ue(t){return function(){Fe(this,t)}}function Ie(t,e){return function(){(e.apply(this,arguments)?ze:Fe)(this,t)}}function He(){this.textContent=""}function De(t){return function(){this.textContent=t}}function Le(t){return function(){var e=t.apply(this,arguments);this.textContent=null==e?"":e}}function je(){this.innerHTML=""}function Be(t){return function(){this.innerHTML=t}}function Ve(t){return function(){var e=t.apply(this,arguments);this.innerHTML=null==e?"":e}}function Ke(){this.nextSibling&&this.parentNode.appendChild(this)}function Xe(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function We(){return null}function Ge(){var t=this.parentNode;t&&t.removeChild(this)}function Ye(){var t=this.cloneNode(!1),e=this.parentNode;return e?e.insertBefore(t,this.nextSibling):t}function Ze(){var t=this.cloneNode(!0),e=this.parentNode;return e?e.insertBefore(t,this.nextSibling):t}function Qe(t){return function(){var e=this.__on;if(e){for(var r,n=0,i=-1,s=e.length;n<s;++n)r=e[n],t.type&&r.type!==t.type||r.name!==t.name?e[++i]=r:this.removeEventListener(r.type,r.listener,r.options);++i?e.length=i:delete this.__on}}}function Je(t,e,r){return function(){var n,i=this.__on,s=function(t){return function(e){t.call(this,e,this.__data__)}}(e);if(i)for(var a=0,o=i.length;a<o;++a)if((n=i[a]).type===t.type&&n.name===t.name)return this.removeEventListener(n.type,n.listener,n.options),this.addEventListener(n.type,n.listener=s,n.options=r),void(n.value=e);this.addEventListener(t.type,s,r),n={type:t.type,name:t.name,value:e,listener:s,options:r},i?i.push(n):this.__on=[n]}}function tr(t,e,r){var n=_e(t),i=n.CustomEvent;"function"==typeof i?i=new i(e,r):(i=n.document.createEvent("Event"),r?(i.initEvent(e,r.bubbles,r.cancelable),i.detail=r.detail):i.initEvent(e,!1,!1)),t.dispatchEvent(i)}function er(t,e){return function(){return tr(this,t,e)}}function rr(t,e){return function(){return tr(this,t,e.apply(this,arguments))}}de.prototype={constructor:de,appendChild:function(t){return this._parent.insertBefore(t,this._next)},insertBefore:function(t,e){return this._parent.insertBefore(t,e)},querySelector:function(t){return this._parent.querySelector(t)},querySelectorAll:function(t){return this._parent.querySelectorAll(t)}},qe.prototype={add:function(t){this._names.indexOf(t)<0&&(this._names.push(t),this._node.setAttribute("class",this._names.join(" ")))},remove:function(t){var e=this._names.indexOf(t);e>=0&&(this._names.splice(e,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(t){return this._names.indexOf(t)>=0}};var nr=[null];function ir(t,e){this._groups=t,this._parents=e}function sr(){return new ir([[document.documentElement]],nr)}function ar(t){return"string"==typeof t?new ir([[document.querySelector(t)]],[document.documentElement]):new ir([[t]],nr)}function or(t,e){if(t=function(t){let e;for(;e=t.sourceEvent;)t=e;return t}(t),void 0===e&&(e=t.currentTarget),e){var r=e.ownerSVGElement||e;if(r.createSVGPoint){var n=r.createSVGPoint();return n.x=t.clientX,n.y=t.clientY,[(n=n.matrixTransform(e.getScreenCTM().inverse())).x,n.y]}if(e.getBoundingClientRect){var i=e.getBoundingClientRect();return[t.clientX-i.left-e.clientLeft,t.clientY-i.top-e.clientTop]}}return[t.pageX,t.pageY]}ir.prototype=sr.prototype={constructor:ir,select:function(t){"function"!=typeof t&&(t=ee(t));for(var e=this._groups,r=e.length,n=new Array(r),i=0;i<r;++i)for(var s,a,o=e[i],l=o.length,c=n[i]=new Array(l),h=0;h<l;++h)(s=o[h])&&(a=t.call(s,s.__data__,h,o))&&("__data__"in s&&(a.__data__=s.__data__),c[h]=a);return new ir(n,this._parents)},selectAll:function(t){t="function"==typeof t?ie(t):ne(t);for(var e=this._groups,r=e.length,n=[],i=[],s=0;s<r;++s)for(var a,o=e[s],l=o.length,c=0;c<l;++c)(a=o[c])&&(n.push(t.call(a,a.__data__,c,o)),i.push(a));return new ir(n,i)},selectChild:function(t){return this.select(null==t?le:function(t){return function(){return oe.call(this.children,t)}}("function"==typeof t?t:ae(t)))},selectChildren:function(t){return this.selectAll(null==t?he:function(t){return function(){return ce.call(this.children,t)}}("function"==typeof t?t:ae(t)))},filter:function(t){"function"!=typeof t&&(t=se(t));for(var e=this._groups,r=e.length,n=new Array(r),i=0;i<r;++i)for(var s,a=e[i],o=a.length,l=n[i]=[],c=0;c<o;++c)(s=a[c])&&t.call(s,s.__data__,c,a)&&l.push(s);return new ir(n,this._parents)},data:function(t,e){if(!arguments.length)return Array.from(this,me);var r=e?pe:fe,n=this._parents,i=this._groups;"function"!=typeof t&&(t=function(t){return function(){return t}}(t));for(var s=i.length,a=new Array(s),o=new Array(s),l=new Array(s),c=0;c<s;++c){var h=n[c],u=i[c],d=u.length,f=be(t.call(h,h&&h.__data__,c,n)),p=f.length,m=o[c]=new Array(p),b=a[c]=new Array(p);r(h,u,m,b,l[c]=new Array(d),f,e);for(var g,v,y=0,w=0;y<p;++y)if(g=m[y]){for(y>=w&&(w=y+1);!(v=b[w])&&++w<p;);g._next=v||null}}return(a=new ir(a,n))._enter=o,a._exit=l,a},enter:function(){return new ir(this._enter||this._groups.map(ue),this._parents)},exit:function(){return new ir(this._exit||this._groups.map(ue),this._parents)},join:function(t,e,r){var n=this.enter(),i=this,s=this.exit();return"function"==typeof t?(n=t(n))&&(n=n.selection()):n=n.append(t+""),null!=e&&(i=e(i))&&(i=i.selection()),null==r?s.remove():r(s),n&&i?n.merge(i).order():i},merge:function(t){for(var e=t.selection?t.selection():t,r=this._groups,n=e._groups,i=r.length,s=n.length,a=Math.min(i,s),o=new Array(i),l=0;l<a;++l)for(var c,h=r[l],u=n[l],d=h.length,f=o[l]=new Array(d),p=0;p<d;++p)(c=h[p]||u[p])&&(f[p]=c);for(;l<i;++l)o[l]=r[l];return new ir(o,this._parents)},selection:function(){return this},order:function(){for(var t=this._groups,e=-1,r=t.length;++e<r;)for(var n,i=t[e],s=i.length-1,a=i[s];--s>=0;)(n=i[s])&&(a&&4^n.compareDocumentPosition(a)&&a.parentNode.insertBefore(n,a),a=n);return this},sort:function(t){function e(e,r){return e&&r?t(e.__data__,r.__data__):!e-!r}t||(t=ge);for(var r=this._groups,n=r.length,i=new Array(n),s=0;s<n;++s){for(var a,o=r[s],l=o.length,c=i[s]=new Array(l),h=0;h<l;++h)(a=o[h])&&(c[h]=a);c.sort(e)}return new ir(i,this._parents).order()},call:function(){var t=arguments[0];return arguments[0]=this,t.apply(null,arguments),this},nodes:function(){return Array.from(this)},node:function(){for(var t=this._groups,e=0,r=t.length;e<r;++e)for(var n=t[e],i=0,s=n.length;i<s;++i){var a=n[i];if(a)return a}return null},size:function(){let t=0;for(const e of this)++t;return t},empty:function(){return!this.node()},each:function(t){for(var e=this._groups,r=0,n=e.length;r<n;++r)for(var i,s=e[r],a=0,o=s.length;a<o;++a)(i=s[a])&&t.call(i,i.__data__,a,s);return this},attr:function(t,e){var r=Yt(t);if(arguments.length<2){var n=this.node();return r.local?n.getAttributeNS(r.space,r.local):n.getAttribute(r)}return this.each((null==e?r.local?ye:ve:"function"==typeof e?r.local?ke:$e:r.local?xe:we)(r,e))},style:function(t,e,r){return arguments.length>1?this.each((null==e?Se:"function"==typeof e?Ee:Ae)(t,e,null==r?"":r)):Me(this.node(),t)},property:function(t,e){return arguments.length>1?this.each((null==e?Te:"function"==typeof e?Ne:Ce)(t,e)):this.node()[t]},classed:function(t,e){var r=Re(t+"");if(arguments.length<2){for(var n=Pe(this.node()),i=-1,s=r.length;++i<s;)if(!n.contains(r[i]))return!1;return!0}return this.each(("function"==typeof e?Ie:e?Oe:Ue)(r,e))},text:function(t){return arguments.length?this.each(null==t?He:("function"==typeof t?Le:De)(t)):this.node().textContent},html:function(t){return arguments.length?this.each(null==t?je:("function"==typeof t?Ve:Be)(t)):this.node().innerHTML},raise:function(){return this.each(Ke)},lower:function(){return this.each(Xe)},append:function(t){var e="function"==typeof t?t:Jt(t);return this.select((function(){return this.appendChild(e.apply(this,arguments))}))},insert:function(t,e){var r="function"==typeof t?t:Jt(t),n=null==e?We:"function"==typeof e?e:ee(e);return this.select((function(){return this.insertBefore(r.apply(this,arguments),n.apply(this,arguments)||null)}))},remove:function(){return this.each(Ge)},clone:function(t){return this.select(t?Ze:Ye)},datum:function(t){return arguments.length?this.property("__data__",t):this.node().__data__},on:function(t,e,r){var n,i,s=function(t){return t.trim().split(/^|\s+/).map((function(t){var e="",r=t.indexOf(".");return r>=0&&(e=t.slice(r+1),t=t.slice(0,r)),{type:t,name:e}}))}(t+""),a=s.length;if(!(arguments.length<2)){for(o=e?Je:Qe,n=0;n<a;++n)this.each(o(s[n],e,r));return this}var o=this.node().__on;if(o)for(var l,c=0,h=o.length;c<h;++c)for(n=0,l=o[c];n<a;++n)if((i=s[n]).type===l.type&&i.name===l.name)return l.value},dispatch:function(t,e){return this.each(("function"==typeof e?rr:er)(t,e))},[Symbol.iterator]:function*(){for(var t=this._groups,e=0,r=t.length;e<r;++e)for(var n,i=t[e],s=0,a=i.length;s<a;++s)(n=i[s])&&(yield n)}};const lr={passive:!1},cr={capture:!0,passive:!1};function hr(t){t.stopImmediatePropagation()}function ur(t){t.preventDefault(),t.stopImmediatePropagation()}var dr=t=>()=>t;function fr(t,{sourceEvent:e,subject:r,target:n,identifier:i,active:s,x:a,y:o,dx:l,dy:c,dispatch:h}){Object.defineProperties(this,{type:{value:t,enumerable:!0,configurable:!0},sourceEvent:{value:e,enumerable:!0,configurable:!0},subject:{value:r,enumerable:!0,configurable:!0},target:{value:n,enumerable:!0,configurable:!0},identifier:{value:i,enumerable:!0,configurable:!0},active:{value:s,enumerable:!0,configurable:!0},x:{value:a,enumerable:!0,configurable:!0},y:{value:o,enumerable:!0,configurable:!0},dx:{value:l,enumerable:!0,configurable:!0},dy:{value:c,enumerable:!0,configurable:!0},_:{value:h}})}function pr(t){return!t.ctrlKey&&!t.button}function mr(){return this.parentNode}function br(t,e){return null==e?{x:t.x,y:t.y}:e}function gr(){return navigator.maxTouchPoints||"ontouchstart"in this}function vr(){var t,e,r,n,i=pr,s=mr,a=br,o=gr,l={},c=Bt("start","drag","end"),h=0,u=0;function d(t){t.on("mousedown.drag",f).filter(o).on("touchstart.drag",b).on("touchmove.drag",g,lr).on("touchend.drag touchcancel.drag",v).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function f(a,o){if(!n&&i.call(this,a,o)){var l=y(this,s.call(this,a,o),a,o,"mouse");l&&(ar(a.view).on("mousemove.drag",p,cr).on("mouseup.drag",m,cr),function(t){var e=t.document.documentElement,r=ar(t).on("dragstart.drag",ur,cr);"onselectstart"in e?r.on("selectstart.drag",ur,cr):(e.__noselect=e.style.MozUserSelect,e.style.MozUserSelect="none")}(a.view),hr(a),r=!1,t=a.clientX,e=a.clientY,l("start",a))}}function p(n){if(ur(n),!r){var i=n.clientX-t,s=n.clientY-e;r=i*i+s*s>u}l.mouse("drag",n)}function m(t){ar(t.view).on("mousemove.drag mouseup.drag",null),function(t,e){var r=t.document.documentElement,n=ar(t).on("dragstart.drag",null);e&&(n.on("click.drag",ur,cr),setTimeout((function(){n.on("click.drag",null)}),0)),"onselectstart"in r?n.on("selectstart.drag",null):(r.style.MozUserSelect=r.__noselect,delete r.__noselect)}(t.view,r),ur(t),l.mouse("end",t)}function b(t,e){if(i.call(this,t,e)){var r,n,a=t.changedTouches,o=s.call(this,t,e),l=a.length;for(r=0;r<l;++r)(n=y(this,o,t,e,a[r].identifier,a[r]))&&(hr(t),n("start",t,a[r]))}}function g(t){var e,r,n=t.changedTouches,i=n.length;for(e=0;e<i;++e)(r=l[n[e].identifier])&&(ur(t),r("drag",t,n[e]))}function v(t){var e,r,i=t.changedTouches,s=i.length;for(n&&clearTimeout(n),n=setTimeout((function(){n=null}),500),e=0;e<s;++e)(r=l[i[e].identifier])&&(hr(t),r("end",t,i[e]))}function y(t,e,r,n,i,s){var o,u,f,p=c.copy(),m=or(s||r,e);if(null!=(f=a.call(t,new fr("beforestart",{sourceEvent:r,target:d,identifier:i,active:h,x:m[0],y:m[1],dx:0,dy:0,dispatch:p}),n)))return o=f.x-m[0]||0,u=f.y-m[1]||0,function r(s,a,c){var b,g=m;switch(s){case"start":l[i]=r,b=h++;break;case"end":delete l[i],--h;case"drag":m=or(c||a,e),b=h}p.call(s,t,new fr(s,{sourceEvent:a,subject:f,target:d,identifier:i,active:b,x:m[0]+o,y:m[1]+u,dx:m[0]-g[0],dy:m[1]-g[1],dispatch:p}),n)}}return d.filter=function(t){return arguments.length?(i="function"==typeof t?t:dr(!!t),d):i},d.container=function(t){return arguments.length?(s="function"==typeof t?t:dr(t),d):s},d.subject=function(t){return arguments.length?(a="function"==typeof t?t:dr(t),d):a},d.touchable=function(t){return arguments.length?(o="function"==typeof t?t:dr(!!t),d):o},d.on=function(){var t=c.on.apply(c,arguments);return t===c?d:t},d.clickDistance=function(t){return arguments.length?(u=(t=+t)*t,d):Math.sqrt(u)},d}function yr(t,e,r){t.prototype=e.prototype=r,r.constructor=t}function wr(t,e){var r=Object.create(t.prototype);for(var n in e)r[n]=e[n];return r}function xr(){}fr.prototype.on=function(){var t=this._.on.apply(this._,arguments);return t===this._?this:t};var $r=.7,kr=1/$r,_r="\\s*([+-]?\\d+)\\s*",Sr="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",Ar="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",Er=/^#([0-9a-f]{3,8})$/,Mr=new RegExp(`^rgb\\(${_r},${_r},${_r}\\)$`),Tr=new RegExp(`^rgb\\(${Ar},${Ar},${Ar}\\)$`),Cr=new RegExp(`^rgba\\(${_r},${_r},${_r},${Sr}\\)$`),Nr=new RegExp(`^rgba\\(${Ar},${Ar},${Ar},${Sr}\\)$`),Rr=new RegExp(`^hsl\\(${Sr},${Ar},${Ar}\\)$`),Pr=new RegExp(`^hsla\\(${Sr},${Ar},${Ar},${Sr}\\)$`),qr={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};function zr(){return this.rgb().formatHex()}function Fr(){return this.rgb().formatRgb()}function Or(t){var e,r;return t=(t+"").trim().toLowerCase(),(e=Er.exec(t))?(r=e[1].length,e=parseInt(e[1],16),6===r?Ur(e):3===r?new Dr(e>>8&15|e>>4&240,e>>4&15|240&e,(15&e)<<4|15&e,1):8===r?Ir(e>>24&255,e>>16&255,e>>8&255,(255&e)/255):4===r?Ir(e>>12&15|e>>8&240,e>>8&15|e>>4&240,e>>4&15|240&e,((15&e)<<4|15&e)/255):null):(e=Mr.exec(t))?new Dr(e[1],e[2],e[3],1):(e=Tr.exec(t))?new Dr(255*e[1]/100,255*e[2]/100,255*e[3]/100,1):(e=Cr.exec(t))?Ir(e[1],e[2],e[3],e[4]):(e=Nr.exec(t))?Ir(255*e[1]/100,255*e[2]/100,255*e[3]/100,e[4]):(e=Rr.exec(t))?Xr(e[1],e[2]/100,e[3]/100,1):(e=Pr.exec(t))?Xr(e[1],e[2]/100,e[3]/100,e[4]):qr.hasOwnProperty(t)?Ur(qr[t]):"transparent"===t?new Dr(NaN,NaN,NaN,0):null}function Ur(t){return new Dr(t>>16&255,t>>8&255,255&t,1)}function Ir(t,e,r,n){return n<=0&&(t=e=r=NaN),new Dr(t,e,r,n)}function Hr(t,e,r,n){return 1===arguments.length?function(t){return t instanceof xr||(t=Or(t)),t?new Dr((t=t.rgb()).r,t.g,t.b,t.opacity):new Dr}(t):new Dr(t,e,r,null==n?1:n)}function Dr(t,e,r,n){this.r=+t,this.g=+e,this.b=+r,this.opacity=+n}function Lr(){return`#${Kr(this.r)}${Kr(this.g)}${Kr(this.b)}`}function jr(){const t=Br(this.opacity);return`${1===t?"rgb(":"rgba("}${Vr(this.r)}, ${Vr(this.g)}, ${Vr(this.b)}${1===t?")":`, ${t})`}`}function Br(t){return isNaN(t)?1:Math.max(0,Math.min(1,t))}function Vr(t){return Math.max(0,Math.min(255,Math.round(t)||0))}function Kr(t){return((t=Vr(t))<16?"0":"")+t.toString(16)}function Xr(t,e,r,n){return n<=0?t=e=r=NaN:r<=0||r>=1?t=e=NaN:e<=0&&(t=NaN),new Gr(t,e,r,n)}function Wr(t){if(t instanceof Gr)return new Gr(t.h,t.s,t.l,t.opacity);if(t instanceof xr||(t=Or(t)),!t)return new Gr;if(t instanceof Gr)return t;var e=(t=t.rgb()).r/255,r=t.g/255,n=t.b/255,i=Math.min(e,r,n),s=Math.max(e,r,n),a=NaN,o=s-i,l=(s+i)/2;return o?(a=e===s?(r-n)/o+6*(r<n):r===s?(n-e)/o+2:(e-r)/o+4,o/=l<.5?s+i:2-s-i,a*=60):o=l>0&&l<1?0:a,new Gr(a,o,l,t.opacity)}function Gr(t,e,r,n){this.h=+t,this.s=+e,this.l=+r,this.opacity=+n}function Yr(t){return(t=(t||0)%360)<0?t+360:t}function Zr(t){return Math.max(0,Math.min(1,t||0))}function Qr(t,e,r){return 255*(t<60?e+(r-e)*t/60:t<180?r:t<240?e+(r-e)*(240-t)/60:e)}yr(xr,Or,{copy(t){return Object.assign(new this.constructor,this,t)},displayable(){return this.rgb().displayable()},hex:zr,formatHex:zr,formatHex8:function(){return this.rgb().formatHex8()},formatHsl:function(){return Wr(this).formatHsl()},formatRgb:Fr,toString:Fr}),yr(Dr,Hr,wr(xr,{brighter(t){return t=null==t?kr:Math.pow(kr,t),new Dr(this.r*t,this.g*t,this.b*t,this.opacity)},darker(t){return t=null==t?$r:Math.pow($r,t),new Dr(this.r*t,this.g*t,this.b*t,this.opacity)},rgb(){return this},clamp(){return new Dr(Vr(this.r),Vr(this.g),Vr(this.b),Br(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:Lr,formatHex:Lr,formatHex8:function(){return`#${Kr(this.r)}${Kr(this.g)}${Kr(this.b)}${Kr(255*(isNaN(this.opacity)?1:this.opacity))}`},formatRgb:jr,toString:jr})),yr(Gr,(function(t,e,r,n){return 1===arguments.length?Wr(t):new Gr(t,e,r,null==n?1:n)}),wr(xr,{brighter(t){return t=null==t?kr:Math.pow(kr,t),new Gr(this.h,this.s,this.l*t,this.opacity)},darker(t){return t=null==t?$r:Math.pow($r,t),new Gr(this.h,this.s,this.l*t,this.opacity)},rgb(){var t=this.h%360+360*(this.h<0),e=isNaN(t)||isNaN(this.s)?0:this.s,r=this.l,n=r+(r<.5?r:1-r)*e,i=2*r-n;return new Dr(Qr(t>=240?t-240:t+120,i,n),Qr(t,i,n),Qr(t<120?t+240:t-120,i,n),this.opacity)},clamp(){return new Gr(Yr(this.h),Zr(this.s),Zr(this.l),Br(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const t=Br(this.opacity);return`${1===t?"hsl(":"hsla("}${Yr(this.h)}, ${100*Zr(this.s)}%, ${100*Zr(this.l)}%${1===t?")":`, ${t})`}`}}));var Jr=t=>()=>t;function tn(t){return 1==(t=+t)?en:function(e,r){return r-e?function(t,e,r){return t=Math.pow(t,r),e=Math.pow(e,r)-t,r=1/r,function(n){return Math.pow(t+n*e,r)}}(e,r,t):Jr(isNaN(e)?r:e)}}function en(t,e){var r=e-t;return r?function(t,e){return function(r){return t+r*e}}(t,r):Jr(isNaN(t)?e:t)}var rn=function t(e){var r=tn(e);function n(t,e){var n=r((t=Hr(t)).r,(e=Hr(e)).r),i=r(t.g,e.g),s=r(t.b,e.b),a=en(t.opacity,e.opacity);return function(e){return t.r=n(e),t.g=i(e),t.b=s(e),t.opacity=a(e),t+""}}return n.gamma=t,n}(1);function nn(t,e){e||(e=[]);var r,n=t?Math.min(e.length,t.length):0,i=e.slice();return function(s){for(r=0;r<n;++r)i[r]=t[r]*(1-s)+e[r]*s;return i}}function sn(t,e){var r,n=e?e.length:0,i=t?Math.min(n,t.length):0,s=new Array(i),a=new Array(n);for(r=0;r<i;++r)s[r]=dn(t[r],e[r]);for(;r<n;++r)a[r]=e[r];return function(t){for(r=0;r<i;++r)a[r]=s[r](t);return a}}function an(t,e){var r=new Date;return t=+t,e=+e,function(n){return r.setTime(t*(1-n)+e*n),r}}function on(t,e){return t=+t,e=+e,function(r){return t*(1-r)+e*r}}function ln(t,e){var r,n={},i={};for(r in null!==t&&"object"==typeof t||(t={}),null!==e&&"object"==typeof e||(e={}),e)r in t?n[r]=dn(t[r],e[r]):i[r]=e[r];return function(t){for(r in n)i[r]=n[r](t);return i}}var cn=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,hn=new RegExp(cn.source,"g");function un(t,e){var r,n,i,s=cn.lastIndex=hn.lastIndex=0,a=-1,o=[],l=[];for(t+="",e+="";(r=cn.exec(t))&&(n=hn.exec(e));)(i=n.index)>s&&(i=e.slice(s,i),o[a]?o[a]+=i:o[++a]=i),(r=r[0])===(n=n[0])?o[a]?o[a]+=n:o[++a]=n:(o[++a]=null,l.push({i:a,x:on(r,n)})),s=hn.lastIndex;return s<e.length&&(i=e.slice(s),o[a]?o[a]+=i:o[++a]=i),o.length<2?l[0]?function(t){return function(e){return t(e)+""}}(l[0].x):function(t){return function(){return t}}(e):(e=l.length,function(t){for(var r,n=0;n<e;++n)o[(r=l[n]).i]=r.x(t);return o.join("")})}function dn(t,e){var r,n=typeof e;return null==e||"boolean"===n?Jr(e):("number"===n?on:"string"===n?(r=Or(e))?(e=r,rn):un:e instanceof Or?rn:e instanceof Date?an:function(t){return ArrayBuffer.isView(t)&&!(t instanceof DataView)}(e)?nn:Array.isArray(e)?sn:"function"!=typeof e.valueOf&&"function"!=typeof e.toString||isNaN(e)?ln:on)(t,e)}function fn(t,e){return t=+t,e=+e,function(r){return Math.round(t*(1-r)+e*r)}}var pn,mn=180/Math.PI,bn={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function gn(t,e,r,n,i,s){var a,o,l;return(a=Math.sqrt(t*t+e*e))&&(t/=a,e/=a),(l=t*r+e*n)&&(r-=t*l,n-=e*l),(o=Math.sqrt(r*r+n*n))&&(r/=o,n/=o,l/=o),t*n<e*r&&(t=-t,e=-e,l=-l,a=-a),{translateX:i,translateY:s,rotate:Math.atan2(e,t)*mn,skewX:Math.atan(l)*mn,scaleX:a,scaleY:o}}function vn(t,e,r,n){function i(t){return t.length?t.pop()+" ":""}return function(s,a){var o=[],l=[];return s=t(s),a=t(a),function(t,n,i,s,a,o){if(t!==i||n!==s){var l=a.push("translate(",null,e,null,r);o.push({i:l-4,x:on(t,i)},{i:l-2,x:on(n,s)})}else(i||s)&&a.push("translate("+i+e+s+r)}(s.translateX,s.translateY,a.translateX,a.translateY,o,l),function(t,e,r,s){t!==e?(t-e>180?e+=360:e-t>180&&(t+=360),s.push({i:r.push(i(r)+"rotate(",null,n)-2,x:on(t,e)})):e&&r.push(i(r)+"rotate("+e+n)}(s.rotate,a.rotate,o,l),function(t,e,r,s){t!==e?s.push({i:r.push(i(r)+"skewX(",null,n)-2,x:on(t,e)}):e&&r.push(i(r)+"skewX("+e+n)}(s.skewX,a.skewX,o,l),function(t,e,r,n,s,a){if(t!==r||e!==n){var o=s.push(i(s)+"scale(",null,",",null,")");a.push({i:o-4,x:on(t,r)},{i:o-2,x:on(e,n)})}else 1===r&&1===n||s.push(i(s)+"scale("+r+","+n+")")}(s.scaleX,s.scaleY,a.scaleX,a.scaleY,o,l),s=a=null,function(t){for(var e,r=-1,n=l.length;++r<n;)o[(e=l[r]).i]=e.x(t);return o.join("")}}}var yn,wn,xn=vn((function(t){const e=new("function"==typeof DOMMatrix?DOMMatrix:WebKitCSSMatrix)(t+"");return e.isIdentity?bn:gn(e.a,e.b,e.c,e.d,e.e,e.f)}),"px, ","px)","deg)"),$n=vn((function(t){return null==t?bn:(pn||(pn=document.createElementNS("http://www.w3.org/2000/svg","g")),pn.setAttribute("transform",t),(t=pn.transform.baseVal.consolidate())?gn((t=t.matrix).a,t.b,t.c,t.d,t.e,t.f):bn)}),", ",")",")"),kn=0,_n=0,Sn=0,An=1e3,En=0,Mn=0,Tn=0,Cn="object"==typeof performance&&performance.now?performance:Date,Nn="object"==typeof window&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(t){setTimeout(t,17)};function Rn(){return Mn||(Nn(Pn),Mn=Cn.now()+Tn)}function Pn(){Mn=0}function qn(){this._call=this._time=this._next=null}function zn(t,e,r){var n=new qn;return n.restart(t,e,r),n}function Fn(){Mn=(En=Cn.now())+Tn,kn=_n=0;try{!function(){Rn(),++kn;for(var t,e=yn;e;)(t=Mn-e._time)>=0&&e._call.call(void 0,t),e=e._next;--kn}()}finally{kn=0,function(){var t,e,r=yn,n=1/0;for(;r;)r._call?(n>r._time&&(n=r._time),t=r,r=r._next):(e=r._next,r._next=null,r=t?t._next=e:yn=e);wn=t,Un(n)}(),Mn=0}}function On(){var t=Cn.now(),e=t-En;e>An&&(Tn-=e,En=t)}function Un(t){kn||(_n&&(_n=clearTimeout(_n)),t-Mn>24?(t<1/0&&(_n=setTimeout(Fn,t-Cn.now()-Tn)),Sn&&(Sn=clearInterval(Sn))):(Sn||(En=Cn.now(),Sn=setInterval(On,An)),kn=1,Nn(Fn)))}function In(t,e,r){var n=new qn;return e=null==e?0:+e,n.restart((r=>{n.stop(),t(r+e)}),e,r),n}qn.prototype=zn.prototype={constructor:qn,restart:function(t,e,r){if("function"!=typeof t)throw new TypeError("callback is not a function");r=(null==r?Rn():+r)+(null==e?0:+e),this._next||wn===this||(wn?wn._next=this:yn=this,wn=this),this._call=t,this._time=r,Un()},stop:function(){this._call&&(this._call=null,this._time=1/0,Un())}};var Hn=Bt("start","end","cancel","interrupt"),Dn=[],Ln=0,jn=1,Bn=2,Vn=3,Kn=4,Xn=5,Wn=6;function Gn(t,e,r,n,i,s){var a=t.__transition;if(a){if(r in a)return}else t.__transition={};!function(t,e,r){var n,i=t.__transition;function s(t){r.state=jn,r.timer.restart(a,r.delay,r.time),r.delay<=t&&a(t-r.delay)}function a(s){var c,h,u,d;if(r.state!==jn)return l();for(c in i)if((d=i[c]).name===r.name){if(d.state===Vn)return In(a);d.state===Kn?(d.state=Wn,d.timer.stop(),d.on.call("interrupt",t,t.__data__,d.index,d.group),delete i[c]):+c<e&&(d.state=Wn,d.timer.stop(),d.on.call("cancel",t,t.__data__,d.index,d.group),delete i[c])}if(In((function(){r.state===Vn&&(r.state=Kn,r.timer.restart(o,r.delay,r.time),o(s))})),r.state=Bn,r.on.call("start",t,t.__data__,r.index,r.group),r.state===Bn){for(r.state=Vn,n=new Array(u=r.tween.length),c=0,h=-1;c<u;++c)(d=r.tween[c].value.call(t,t.__data__,r.index,r.group))&&(n[++h]=d);n.length=h+1}}function o(e){for(var i=e<r.duration?r.ease.call(null,e/r.duration):(r.timer.restart(l),r.state=Xn,1),s=-1,a=n.length;++s<a;)n[s].call(t,i);r.state===Xn&&(r.on.call("end",t,t.__data__,r.index,r.group),l())}function l(){for(var n in r.state=Wn,r.timer.stop(),delete i[e],i)return;delete t.__transition}i[e]=r,r.timer=zn(s,0,r.time)}(t,r,{name:e,index:n,group:i,on:Hn,tween:Dn,time:s.time,delay:s.delay,duration:s.duration,ease:s.ease,timer:null,state:Ln})}function Yn(t,e){var r=Qn(t,e);if(r.state>Ln)throw new Error("too late; already scheduled");return r}function Zn(t,e){var r=Qn(t,e);if(r.state>Vn)throw new Error("too late; already running");return r}function Qn(t,e){var r=t.__transition;if(!r||!(r=r[e]))throw new Error("transition not found");return r}function Jn(t,e){var r,n;return function(){var i=Zn(this,t),s=i.tween;if(s!==r)for(var a=0,o=(n=r=s).length;a<o;++a)if(n[a].name===e){(n=n.slice()).splice(a,1);break}i.tween=n}}function ti(t,e,r){var n,i;if("function"!=typeof r)throw new Error;return function(){var s=Zn(this,t),a=s.tween;if(a!==n){i=(n=a).slice();for(var o={name:e,value:r},l=0,c=i.length;l<c;++l)if(i[l].name===e){i[l]=o;break}l===c&&i.push(o)}s.tween=i}}function ei(t,e,r){var n=t._id;return t.each((function(){var t=Zn(this,n);(t.value||(t.value={}))[e]=r.apply(this,arguments)})),function(t){return Qn(t,n).value[e]}}function ri(t,e){var r;return("number"==typeof e?on:e instanceof Or?rn:(r=Or(e))?(e=r,rn):un)(t,e)}function ni(t){return function(){this.removeAttribute(t)}}function ii(t){return function(){this.removeAttributeNS(t.space,t.local)}}function si(t,e,r){var n,i,s=r+"";return function(){var a=this.getAttribute(t);return a===s?null:a===n?i:i=e(n=a,r)}}function ai(t,e,r){var n,i,s=r+"";return function(){var a=this.getAttributeNS(t.space,t.local);return a===s?null:a===n?i:i=e(n=a,r)}}function oi(t,e,r){var n,i,s;return function(){var a,o,l=r(this);if(null!=l)return(a=this.getAttribute(t))===(o=l+"")?null:a===n&&o===i?s:(i=o,s=e(n=a,l));this.removeAttribute(t)}}function li(t,e,r){var n,i,s;return function(){var a,o,l=r(this);if(null!=l)return(a=this.getAttributeNS(t.space,t.local))===(o=l+"")?null:a===n&&o===i?s:(i=o,s=e(n=a,l));this.removeAttributeNS(t.space,t.local)}}function ci(t,e){var r,n;function i(){var i=e.apply(this,arguments);return i!==n&&(r=(n=i)&&function(t,e){return function(r){this.setAttributeNS(t.space,t.local,e.call(this,r))}}(t,i)),r}return i._value=e,i}function hi(t,e){var r,n;function i(){var i=e.apply(this,arguments);return i!==n&&(r=(n=i)&&function(t,e){return function(r){this.setAttribute(t,e.call(this,r))}}(t,i)),r}return i._value=e,i}function ui(t,e){return function(){Yn(this,t).delay=+e.apply(this,arguments)}}function di(t,e){return e=+e,function(){Yn(this,t).delay=e}}function fi(t,e){return function(){Zn(this,t).duration=+e.apply(this,arguments)}}function pi(t,e){return e=+e,function(){Zn(this,t).duration=e}}var mi=sr.prototype.constructor;function bi(t){return function(){this.style.removeProperty(t)}}var gi=0;function vi(t,e,r,n){this._groups=t,this._parents=e,this._name=r,this._id=n}function yi(){return++gi}var wi=sr.prototype;vi.prototype={constructor:vi,select:function(t){var e=this._name,r=this._id;"function"!=typeof t&&(t=ee(t));for(var n=this._groups,i=n.length,s=new Array(i),a=0;a<i;++a)for(var o,l,c=n[a],h=c.length,u=s[a]=new Array(h),d=0;d<h;++d)(o=c[d])&&(l=t.call(o,o.__data__,d,c))&&("__data__"in o&&(l.__data__=o.__data__),u[d]=l,Gn(u[d],e,r,d,u,Qn(o,r)));return new vi(s,this._parents,e,r)},selectAll:function(t){var e=this._name,r=this._id;"function"!=typeof t&&(t=ne(t));for(var n=this._groups,i=n.length,s=[],a=[],o=0;o<i;++o)for(var l,c=n[o],h=c.length,u=0;u<h;++u)if(l=c[u]){for(var d,f=t.call(l,l.__data__,u,c),p=Qn(l,r),m=0,b=f.length;m<b;++m)(d=f[m])&&Gn(d,e,r,m,f,p);s.push(f),a.push(l)}return new vi(s,a,e,r)},selectChild:wi.selectChild,selectChildren:wi.selectChildren,filter:function(t){"function"!=typeof t&&(t=se(t));for(var e=this._groups,r=e.length,n=new Array(r),i=0;i<r;++i)for(var s,a=e[i],o=a.length,l=n[i]=[],c=0;c<o;++c)(s=a[c])&&t.call(s,s.__data__,c,a)&&l.push(s);return new vi(n,this._parents,this._name,this._id)},merge:function(t){if(t._id!==this._id)throw new Error;for(var e=this._groups,r=t._groups,n=e.length,i=r.length,s=Math.min(n,i),a=new Array(n),o=0;o<s;++o)for(var l,c=e[o],h=r[o],u=c.length,d=a[o]=new Array(u),f=0;f<u;++f)(l=c[f]||h[f])&&(d[f]=l);for(;o<n;++o)a[o]=e[o];return new vi(a,this._parents,this._name,this._id)},selection:function(){return new mi(this._groups,this._parents)},transition:function(){for(var t=this._name,e=this._id,r=yi(),n=this._groups,i=n.length,s=0;s<i;++s)for(var a,o=n[s],l=o.length,c=0;c<l;++c)if(a=o[c]){var h=Qn(a,e);Gn(a,t,r,c,o,{time:h.time+h.delay+h.duration,delay:0,duration:h.duration,ease:h.ease})}return new vi(n,this._parents,t,r)},call:wi.call,nodes:wi.nodes,node:wi.node,size:wi.size,empty:wi.empty,each:wi.each,on:function(t,e){var r=this._id;return arguments.length<2?Qn(this.node(),r).on.on(t):this.each(function(t,e,r){var n,i,s=function(t){return(t+"").trim().split(/^|\s+/).every((function(t){var e=t.indexOf(".");return e>=0&&(t=t.slice(0,e)),!t||"start"===t}))}(e)?Yn:Zn;return function(){var a=s(this,t),o=a.on;o!==n&&(i=(n=o).copy()).on(e,r),a.on=i}}(r,t,e))},attr:function(t,e){var r=Yt(t),n="transform"===r?$n:ri;return this.attrTween(t,"function"==typeof e?(r.local?li:oi)(r,n,ei(this,"attr."+t,e)):null==e?(r.local?ii:ni)(r):(r.local?ai:si)(r,n,e))},attrTween:function(t,e){var r="attr."+t;if(arguments.length<2)return(r=this.tween(r))&&r._value;if(null==e)return this.tween(r,null);if("function"!=typeof e)throw new Error;var n=Yt(t);return this.tween(r,(n.local?ci:hi)(n,e))},style:function(t,e,r){var n="transform"==(t+="")?xn:ri;return null==e?this.styleTween(t,function(t,e){var r,n,i;return function(){var s=Me(this,t),a=(this.style.removeProperty(t),Me(this,t));return s===a?null:s===r&&a===n?i:i=e(r=s,n=a)}}(t,n)).on("end.style."+t,bi(t)):"function"==typeof e?this.styleTween(t,function(t,e,r){var n,i,s;return function(){var a=Me(this,t),o=r(this),l=o+"";return null==o&&(this.style.removeProperty(t),l=o=Me(this,t)),a===l?null:a===n&&l===i?s:(i=l,s=e(n=a,o))}}(t,n,ei(this,"style."+t,e))).each(function(t,e){var r,n,i,s,a="style."+e,o="end."+a;return function(){var l=Zn(this,t),c=l.on,h=null==l.value[a]?s||(s=bi(e)):void 0;c===r&&i===h||(n=(r=c).copy()).on(o,i=h),l.on=n}}(this._id,t)):this.styleTween(t,function(t,e,r){var n,i,s=r+"";return function(){var a=Me(this,t);return a===s?null:a===n?i:i=e(n=a,r)}}(t,n,e),r).on("end.style."+t,null)},styleTween:function(t,e,r){var n="style."+(t+="");if(arguments.length<2)return(n=this.tween(n))&&n._value;if(null==e)return this.tween(n,null);if("function"!=typeof e)throw new Error;return this.tween(n,function(t,e,r){var n,i;function s(){var s=e.apply(this,arguments);return s!==i&&(n=(i=s)&&function(t,e,r){return function(n){this.style.setProperty(t,e.call(this,n),r)}}(t,s,r)),n}return s._value=e,s}(t,e,null==r?"":r))},text:function(t){return this.tween("text","function"==typeof t?function(t){return function(){var e=t(this);this.textContent=null==e?"":e}}(ei(this,"text",t)):function(t){return function(){this.textContent=t}}(null==t?"":t+""))},textTween:function(t){var e="text";if(arguments.length<1)return(e=this.tween(e))&&e._value;if(null==t)return this.tween(e,null);if("function"!=typeof t)throw new Error;return this.tween(e,function(t){var e,r;function n(){var n=t.apply(this,arguments);return n!==r&&(e=(r=n)&&function(t){return function(e){this.textContent=t.call(this,e)}}(n)),e}return n._value=t,n}(t))},remove:function(){return this.on("end.remove",function(t){return function(){var e=this.parentNode;for(var r in this.__transition)if(+r!==t)return;e&&e.removeChild(this)}}(this._id))},tween:function(t,e){var r=this._id;if(t+="",arguments.length<2){for(var n,i=Qn(this.node(),r).tween,s=0,a=i.length;s<a;++s)if((n=i[s]).name===t)return n.value;return null}return this.each((null==e?Jn:ti)(r,t,e))},delay:function(t){var e=this._id;return arguments.length?this.each(("function"==typeof t?ui:di)(e,t)):Qn(this.node(),e).delay},duration:function(t){var e=this._id;return arguments.length?this.each(("function"==typeof t?fi:pi)(e,t)):Qn(this.node(),e).duration},ease:function(t){var e=this._id;return arguments.length?this.each(function(t,e){if("function"!=typeof e)throw new Error;return function(){Zn(this,t).ease=e}}(e,t)):Qn(this.node(),e).ease},easeVarying:function(t){if("function"!=typeof t)throw new Error;return this.each(function(t,e){return function(){var r=e.apply(this,arguments);if("function"!=typeof r)throw new Error;Zn(this,t).ease=r}}(this._id,t))},end:function(){var t,e,r=this,n=r._id,i=r.size();return new Promise((function(s,a){var o={value:a},l={value:function(){0==--i&&s()}};r.each((function(){var r=Zn(this,n),i=r.on;i!==t&&((e=(t=i).copy())._.cancel.push(o),e._.interrupt.push(o),e._.end.push(l)),r.on=e})),0===i&&s()}))},[Symbol.iterator]:wi[Symbol.iterator]};const xi=t=>+t;function $i(t){return t*t*t}function ki(t){return--t*t*t+1}var _i={time:null,delay:0,duration:250,ease:function(t){return((t*=2)<=1?t*t*t:(t-=2)*t*t+2)/2}};function Si(t,e){for(var r;!(r=t.__transition)||!(r=r[e]);)if(!(t=t.parentNode))throw new Error(`transition ${e} not found`);return r}sr.prototype.interrupt=function(t){return this.each((function(){!function(t,e){var r,n,i,s=t.__transition,a=!0;if(s){for(i in e=null==e?null:e+"",s)(r=s[i]).name===e?(n=r.state>Bn&&r.state<Xn,r.state=Wn,r.timer.stop(),r.on.call(n?"interrupt":"cancel",t,t.__data__,r.index,r.group),delete s[i]):a=!1;a&&delete t.__transition}}(this,t)}))},sr.prototype.transition=function(t){var e,r;t instanceof vi?(e=t._id,t=t._name):(e=yi(),(r=_i).time=Rn(),t=null==t?null:t+"");for(var n=this._groups,i=n.length,s=0;s<i;++s)for(var a,o=n[s],l=o.length,c=0;c<l;++c)(a=o[c])&&Gn(a,t,e,c,o,r||Si(a,e));return new vi(n,this._parents,t,e)};const Ai=Math.PI,Ei=2*Ai,Mi=1e-6,Ti=Ei-Mi;function Ci(t){this._+=t[0];for(let e=1,r=t.length;e<r;++e)this._+=arguments[e]+t[e]}class Ni{constructor(t){this._x0=this._y0=this._x1=this._y1=null,this._="",this._append=null==t?Ci:function(t){let e=Math.floor(t);if(!(e>=0))throw new Error(`invalid digits: ${t}`);if(e>15)return Ci;const r=10**e;return function(t){this._+=t[0];for(let e=1,n=t.length;e<n;++e)this._+=Math.round(arguments[e]*r)/r+t[e]}}(t)}moveTo(t,e){this._append`M${this._x0=this._x1=+t},${this._y0=this._y1=+e}`}closePath(){null!==this._x1&&(this._x1=this._x0,this._y1=this._y0,this._append`Z`)}lineTo(t,e){this._append`L${this._x1=+t},${this._y1=+e}`}quadraticCurveTo(t,e,r,n){this._append`Q${+t},${+e},${this._x1=+r},${this._y1=+n}`}bezierCurveTo(t,e,r,n,i,s){this._append`C${+t},${+e},${+r},${+n},${this._x1=+i},${this._y1=+s}`}arcTo(t,e,r,n,i){if(t=+t,e=+e,r=+r,n=+n,(i=+i)<0)throw new Error(`negative radius: ${i}`);let s=this._x1,a=this._y1,o=r-t,l=n-e,c=s-t,h=a-e,u=c*c+h*h;if(null===this._x1)this._append`M${this._x1=t},${this._y1=e}`;else if(u>Mi)if(Math.abs(h*o-l*c)>Mi&&i){let d=r-s,f=n-a,p=o*o+l*l,m=d*d+f*f,b=Math.sqrt(p),g=Math.sqrt(u),v=i*Math.tan((Ai-Math.acos((p+u-m)/(2*b*g)))/2),y=v/g,w=v/b;Math.abs(y-1)>Mi&&this._append`L${t+y*c},${e+y*h}`,this._append`A${i},${i},0,0,${+(h*d>c*f)},${this._x1=t+w*o},${this._y1=e+w*l}`}else this._append`L${this._x1=t},${this._y1=e}`;else;}arc(t,e,r,n,i,s){if(t=+t,e=+e,s=!!s,(r=+r)<0)throw new Error(`negative radius: ${r}`);let a=r*Math.cos(n),o=r*Math.sin(n),l=t+a,c=e+o,h=1^s,u=s?n-i:i-n;null===this._x1?this._append`M${l},${c}`:(Math.abs(this._x1-l)>Mi||Math.abs(this._y1-c)>Mi)&&this._append`L${l},${c}`,r&&(u<0&&(u=u%Ei+Ei),u>Ti?this._append`A${r},${r},0,1,${h},${t-a},${e-o}A${r},${r},0,1,${h},${this._x1=l},${this._y1=c}`:u>Mi&&this._append`A${r},${r},0,${+(u>=Ai)},${h},${this._x1=t+r*Math.cos(i)},${this._y1=e+r*Math.sin(i)}`)}rect(t,e,r,n){this._append`M${this._x0=this._x1=+t},${this._y0=this._y1=+e}h${r=+r}v${+n}h${-r}Z`}toString(){return this._}}var Ri=Array.prototype.slice;function Pi(t,e){return t-e}var qi=t=>()=>t;function zi(t,e){for(var r,n=-1,i=e.length;++n<i;)if(r=Fi(t,e[n]))return r;return 0}function Fi(t,e){for(var r=e[0],n=e[1],i=-1,s=0,a=t.length,o=a-1;s<a;o=s++){var l=t[s],c=l[0],h=l[1],u=t[o],d=u[0],f=u[1];if(Oi(l,u,e))return 0;h>n!=f>n&&r<(d-c)*(n-h)/(f-h)+c&&(i=-i)}return i}function Oi(t,e,r){var n;return function(t,e,r){return(e[0]-t[0])*(r[1]-t[1])==(r[0]-t[0])*(e[1]-t[1])}(t,e,r)&&function(t,e,r){return t<=e&&e<=r||r<=e&&e<=t}(t[n=+(t[0]===e[0])],r[n],e[n])}function Ui(){}var Ii=[[],[[[1,1.5],[.5,1]]],[[[1.5,1],[1,1.5]]],[[[1.5,1],[.5,1]]],[[[1,.5],[1.5,1]]],[[[1,1.5],[.5,1]],[[1,.5],[1.5,1]]],[[[1,.5],[1,1.5]]],[[[1,.5],[.5,1]]],[[[.5,1],[1,.5]]],[[[1,1.5],[1,.5]]],[[[.5,1],[1,.5]],[[1.5,1],[1,1.5]]],[[[1.5,1],[1,.5]]],[[[.5,1],[1.5,1]]],[[[1,1.5],[1.5,1]]],[[[.5,1],[1,1.5]]],[]];function Hi(){var t=1,e=1,r=Et,n=o;function i(t){var e=r(t);if(Array.isArray(e))e=e.slice().sort(Pi);else{const r=mt(t,Di);for(e=_t(...At(r[0],r[1],e),e);e[e.length-1]>=r[1];)e.pop();for(;e[1]<r[0];)e.shift()}return e.map((e=>s(t,e)))}function s(r,i){const s=null==i?NaN:+i;if(isNaN(s))throw new Error(`invalid value: ${i}`);var o=[],l=[];return function(r,n,i){var s,o,l,c,h,u,d=new Array,f=new Array;s=o=-1,c=Li(r[0],n),Ii[c<<1].forEach(p);for(;++s<t-1;)l=c,c=Li(r[s+1],n),Ii[l|c<<1].forEach(p);Ii[c<<0].forEach(p);for(;++o<e-1;){for(s=-1,c=Li(r[o*t+t],n),h=Li(r[o*t],n),Ii[c<<1|h<<2].forEach(p);++s<t-1;)l=c,c=Li(r[o*t+t+s+1],n),u=h,h=Li(r[o*t+s+1],n),Ii[l|c<<1|h<<2|u<<3].forEach(p);Ii[c|h<<3].forEach(p)}s=-1,h=r[o*t]>=n,Ii[h<<2].forEach(p);for(;++s<t-1;)u=h,h=Li(r[o*t+s+1],n),Ii[h<<2|u<<3].forEach(p);function p(t){var e,r,n=[t[0][0]+s,t[0][1]+o],l=[t[1][0]+s,t[1][1]+o],c=a(n),h=a(l);(e=f[c])?(r=d[h])?(delete f[e.end],delete d[r.start],e===r?(e.ring.push(l),i(e.ring)):d[e.start]=f[r.end]={start:e.start,end:r.end,ring:e.ring.concat(r.ring)}):(delete f[e.end],e.ring.push(l),f[e.end=h]=e):(e=d[h])?(r=f[c])?(delete d[e.start],delete f[r.end],e===r?(e.ring.push(l),i(e.ring)):d[r.start]=f[e.end]={start:r.start,end:e.end,ring:r.ring.concat(e.ring)}):(delete d[e.start],e.ring.unshift(n),d[e.start=c]=e):d[c]=f[h]={start:c,end:h,ring:[n,l]}}Ii[h<<3].forEach(p)}(r,s,(function(t){n(t,r,s),function(t){for(var e=0,r=t.length,n=t[r-1][1]*t[0][0]-t[r-1][0]*t[0][1];++e<r;)n+=t[e-1][1]*t[e][0]-t[e-1][0]*t[e][1];return n}(t)>0?o.push([t]):l.push(t)})),l.forEach((function(t){for(var e,r=0,n=o.length;r<n;++r)if(-1!==zi((e=o[r])[0],t))return void e.push(t)})),{type:"MultiPolygon",value:i,coordinates:o}}function a(e){return 2*e[0]+e[1]*(t+1)*4}function o(r,n,i){r.forEach((function(r){var s=r[0],a=r[1],o=0|s,l=0|a,c=ji(n[l*t+o]);s>0&&s<t&&o===s&&(r[0]=Bi(s,ji(n[l*t+o-1]),c,i)),a>0&&a<e&&l===a&&(r[1]=Bi(a,ji(n[(l-1)*t+o]),c,i))}))}return i.contour=s,i.size=function(r){if(!arguments.length)return[t,e];var n=Math.floor(r[0]),s=Math.floor(r[1]);if(!(n>=0&&s>=0))throw new Error("invalid size");return t=n,e=s,i},i.thresholds=function(t){return arguments.length?(r="function"==typeof t?t:Array.isArray(t)?qi(Ri.call(t)):qi(t),i):r},i.smooth=function(t){return arguments.length?(n=t?o:Ui,i):n===o},i}function Di(t){return isFinite(t)?t:NaN}function Li(t,e){return null!=t&&+t>=e}function ji(t){return null==t||isNaN(t=+t)?-1/0:t}function Bi(t,e,r,n){const i=n-e,s=r-e,a=isFinite(i)||isFinite(s)?i/s:Math.sign(i)/Math.sign(s);return isNaN(a)?t:t+a-.5}function Vi(t,e){if((r=(t=e?t.toExponential(e-1):t.toExponential()).indexOf("e"))<0)return null;var r,n=t.slice(0,r);return[n.length>1?n[0]+n.slice(2):n,+t.slice(r+1)]}function Ki(t){return(t=Vi(Math.abs(t)))?t[1]:NaN}var Xi,Wi=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function Gi(t){if(!(e=Wi.exec(t)))throw new Error("invalid format: "+t);var e;return new Yi({fill:e[1],align:e[2],sign:e[3],symbol:e[4],zero:e[5],width:e[6],comma:e[7],precision:e[8]&&e[8].slice(1),trim:e[9],type:e[10]})}function Yi(t){this.fill=void 0===t.fill?" ":t.fill+"",this.align=void 0===t.align?">":t.align+"",this.sign=void 0===t.sign?"-":t.sign+"",this.symbol=void 0===t.symbol?"":t.symbol+"",this.zero=!!t.zero,this.width=void 0===t.width?void 0:+t.width,this.comma=!!t.comma,this.precision=void 0===t.precision?void 0:+t.precision,this.trim=!!t.trim,this.type=void 0===t.type?"":t.type+""}function Zi(t,e){var r=Vi(t,e);if(!r)return t+"";var n=r[0],i=r[1];return i<0?"0."+new Array(-i).join("0")+n:n.length>i+1?n.slice(0,i+1)+"."+n.slice(i+1):n+new Array(i-n.length+2).join("0")}Gi.prototype=Yi.prototype,Yi.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(void 0===this.width?"":Math.max(1,0|this.width))+(this.comma?",":"")+(void 0===this.precision?"":"."+Math.max(0,0|this.precision))+(this.trim?"~":"")+this.type};var Qi={"%":(t,e)=>(100*t).toFixed(e),b:t=>Math.round(t).toString(2),c:t=>t+"",d:function(t){return Math.abs(t=Math.round(t))>=1e21?t.toLocaleString("en").replace(/,/g,""):t.toString(10)},e:(t,e)=>t.toExponential(e),f:(t,e)=>t.toFixed(e),g:(t,e)=>t.toPrecision(e),o:t=>Math.round(t).toString(8),p:(t,e)=>Zi(100*t,e),r:Zi,s:function(t,e){var r=Vi(t,e);if(!r)return t+"";var n=r[0],i=r[1],s=i-(Xi=3*Math.max(-8,Math.min(8,Math.floor(i/3))))+1,a=n.length;return s===a?n:s>a?n+new Array(s-a+1).join("0"):s>0?n.slice(0,s)+"."+n.slice(s):"0."+new Array(1-s).join("0")+Vi(t,Math.max(0,e+s-1))[0]},X:t=>Math.round(t).toString(16).toUpperCase(),x:t=>Math.round(t).toString(16)};function Ji(t){return t}var ts,es,rs,ns=Array.prototype.map,is=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function ss(t){var e,r,n=void 0===t.grouping||void 0===t.thousands?Ji:(e=ns.call(t.grouping,Number),r=t.thousands+"",function(t,n){for(var i=t.length,s=[],a=0,o=e[0],l=0;i>0&&o>0&&(l+o+1>n&&(o=Math.max(1,n-l)),s.push(t.substring(i-=o,i+o)),!((l+=o+1)>n));)o=e[a=(a+1)%e.length];return s.reverse().join(r)}),i=void 0===t.currency?"":t.currency[0]+"",s=void 0===t.currency?"":t.currency[1]+"",a=void 0===t.decimal?".":t.decimal+"",o=void 0===t.numerals?Ji:function(t){return function(e){return e.replace(/[0-9]/g,(function(e){return t[+e]}))}}(ns.call(t.numerals,String)),l=void 0===t.percent?"%":t.percent+"",c=void 0===t.minus?"−":t.minus+"",h=void 0===t.nan?"NaN":t.nan+"";function u(t){var e=(t=Gi(t)).fill,r=t.align,u=t.sign,d=t.symbol,f=t.zero,p=t.width,m=t.comma,b=t.precision,g=t.trim,v=t.type;"n"===v?(m=!0,v="g"):Qi[v]||(void 0===b&&(b=12),g=!0,v="g"),(f||"0"===e&&"="===r)&&(f=!0,e="0",r="=");var y="$"===d?i:"#"===d&&/[boxX]/.test(v)?"0"+v.toLowerCase():"",w="$"===d?s:/[%p]/.test(v)?l:"",x=Qi[v],$=/[defgprs%]/.test(v);function k(t){var i,s,l,d=y,k=w;if("c"===v)k=x(t)+k,t="";else{var _=(t=+t)<0||1/t<0;if(t=isNaN(t)?h:x(Math.abs(t),b),g&&(t=function(t){t:for(var e,r=t.length,n=1,i=-1;n<r;++n)switch(t[n]){case".":i=e=n;break;case"0":0===i&&(i=n),e=n;break;default:if(!+t[n])break t;i>0&&(i=0)}return i>0?t.slice(0,i)+t.slice(e+1):t}(t)),_&&0==+t&&"+"!==u&&(_=!1),d=(_?"("===u?u:c:"-"===u||"("===u?"":u)+d,k=("s"===v?is[8+Xi/3]:"")+k+(_&&"("===u?")":""),$)for(i=-1,s=t.length;++i<s;)if(48>(l=t.charCodeAt(i))||l>57){k=(46===l?a+t.slice(i+1):t.slice(i))+k,t=t.slice(0,i);break}}m&&!f&&(t=n(t,1/0));var S=d.length+t.length+k.length,A=S<p?new Array(p-S+1).join(e):"";switch(m&&f&&(t=n(A+t,A.length?p-k.length:1/0),A=""),r){case"<":t=d+t+k+A;break;case"=":t=d+A+t+k;break;case"^":t=A.slice(0,S=A.length>>1)+d+t+k+A.slice(S);break;default:t=A+d+t+k}return o(t)}return b=void 0===b?6:/[gprs]/.test(v)?Math.max(1,Math.min(21,b)):Math.max(0,Math.min(20,b)),k.toString=function(){return t+""},k}return{format:u,formatPrefix:function(t,e){var r=u(((t=Gi(t)).type="f",t)),n=3*Math.max(-8,Math.min(8,Math.floor(Ki(e)/3))),i=Math.pow(10,-n),s=is[8+n/3];return function(t){return r(i*t)+s}}}}ts=ss({thousands:",",grouping:[3],currency:["$",""]}),es=ts.format,rs=ts.formatPrefix;var as=1e-6,os=Math.PI,ls=2*os,cs=180/os,hs=os/180,us=Math.abs,ds=Math.cos,fs=Math.sin,ps=Math.sqrt;function ms(){}function bs(t,e){t&&vs.hasOwnProperty(t.type)&&vs[t.type](t,e)}var gs={Feature:function(t,e){bs(t.geometry,e)},FeatureCollection:function(t,e){for(var r=t.features,n=-1,i=r.length;++n<i;)bs(r[n].geometry,e)}},vs={Sphere:function(t,e){e.sphere()},Point:function(t,e){t=t.coordinates,e.point(t[0],t[1],t[2])},MultiPoint:function(t,e){for(var r=t.coordinates,n=-1,i=r.length;++n<i;)t=r[n],e.point(t[0],t[1],t[2])},LineString:function(t,e){ys(t.coordinates,e,0)},MultiLineString:function(t,e){for(var r=t.coordinates,n=-1,i=r.length;++n<i;)ys(r[n],e,0)},Polygon:function(t,e){ws(t.coordinates,e)},MultiPolygon:function(t,e){for(var r=t.coordinates,n=-1,i=r.length;++n<i;)ws(r[n],e)},GeometryCollection:function(t,e){for(var r=t.geometries,n=-1,i=r.length;++n<i;)bs(r[n],e)}};function ys(t,e,r){var n,i=-1,s=t.length-r;for(e.lineStart();++i<s;)n=t[i],e.point(n[0],n[1],n[2]);e.lineEnd()}function ws(t,e){var r=-1,n=t.length;for(e.polygonStart();++r<n;)ys(t[r],e,1);e.polygonEnd()}function xs(t,e){t&&gs.hasOwnProperty(t.type)?gs[t.type](t,e):bs(t,e)}function $s(t,e,r,n){this.x=t,this.z=e,this.o=r,this.e=n,this.v=!1,this.n=this.p=null}function ks(t,e,r,n,i){var s,a,o=[],l=[];if(t.forEach((function(t){if(!((e=t.length-1)<=0)){var e,r,n=t[0],a=t[e];if(function(t,e){return us(t[0]-e[0])<as&&us(t[1]-e[1])<as}(n,a)){if(!n[2]&&!a[2]){for(i.lineStart(),s=0;s<e;++s)i.point((n=t[s])[0],n[1]);return void i.lineEnd()}a[0]+=2*as}o.push(r=new $s(n,t,null,!0)),l.push(r.o=new $s(n,null,r,!1)),o.push(r=new $s(a,t,null,!1)),l.push(r.o=new $s(a,null,r,!0))}})),o.length){for(l.sort(e),_s(o),_s(l),s=0,a=l.length;s<a;++s)l[s].e=r=!r;for(var c,h,u=o[0];;){for(var d=u,f=!0;d.v;)if((d=d.n)===u)return;c=d.z,i.lineStart();do{if(d.v=d.o.v=!0,d.e){if(f)for(s=0,a=c.length;s<a;++s)i.point((h=c[s])[0],h[1]);else n(d.x,d.n.x,1,i);d=d.n}else{if(f)for(c=d.p.z,s=c.length-1;s>=0;--s)i.point((h=c[s])[0],h[1]);else n(d.x,d.p.x,-1,i);d=d.p}c=(d=d.o).z,f=!f}while(!d.v);i.lineEnd()}}}function _s(t){if(e=t.length){for(var e,r,n=0,i=t[0];++n<e;)i.n=r=t[n],r.p=i,i=r;i.n=r=t[0],r.p=i}}var Ss=1e9,As=-Ss;function Es(t,e,r,n){function i(i,s){return t<=i&&i<=r&&e<=s&&s<=n}function s(i,s,o,c){var h=0,u=0;if(null==i||(h=a(i,o))!==(u=a(s,o))||l(i,s)<0^o>0)do{c.point(0===h||3===h?t:r,h>1?n:e)}while((h=(h+o+4)%4)!==u);else c.point(s[0],s[1])}function a(n,i){return us(n[0]-t)<as?i>0?0:3:us(n[0]-r)<as?i>0?2:1:us(n[1]-e)<as?i>0?1:0:i>0?3:2}function o(t,e){return l(t.x,e.x)}function l(t,e){var r=a(t,1),n=a(e,1);return r!==n?r-n:0===r?e[1]-t[1]:1===r?t[0]-e[0]:2===r?t[1]-e[1]:e[0]-t[0]}return function(a){var l,c,h,u,d,f,p,m,b,g,v,y=a,w=function(){var t,e=[];return{point:function(e,r,n){t.push([e,r,n])},lineStart:function(){e.push(t=[])},lineEnd:ms,rejoin:function(){e.length>1&&e.push(e.pop().concat(e.shift()))},result:function(){var r=e;return e=[],t=null,r}}}(),x={point:$,lineStart:function(){x.point=k,c&&c.push(h=[]);g=!0,b=!1,p=m=NaN},lineEnd:function(){l&&(k(u,d),f&&b&&w.rejoin(),l.push(w.result()));x.point=$,b&&y.lineEnd()},polygonStart:function(){y=w,l=[],c=[],v=!0},polygonEnd:function(){var e=function(){for(var e=0,r=0,i=c.length;r<i;++r)for(var s,a,o=c[r],l=1,h=o.length,u=o[0],d=u[0],f=u[1];l<h;++l)s=d,a=f,d=(u=o[l])[0],f=u[1],a<=n?f>n&&(d-s)*(n-a)>(f-a)*(t-s)&&++e:f<=n&&(d-s)*(n-a)<(f-a)*(t-s)&&--e;return e}(),r=v&&e,i=(u=l,l=Array.from(function*(t){for(const e of t)yield*e}(u))).length;var u;(r||i)&&(a.polygonStart(),r&&(a.lineStart(),s(null,null,1,a),a.lineEnd()),i&&ks(l,o,e,s,a),a.polygonEnd());y=a,l=c=h=null}};function $(t,e){i(t,e)&&y.point(t,e)}function k(s,a){var o=i(s,a);if(c&&h.push([s,a]),g)u=s,d=a,f=o,g=!1,o&&(y.lineStart(),y.point(s,a));else if(o&&b)y.point(s,a);else{var l=[p=Math.max(As,Math.min(Ss,p)),m=Math.max(As,Math.min(Ss,m))],w=[s=Math.max(As,Math.min(Ss,s)),a=Math.max(As,Math.min(Ss,a))];!function(t,e,r,n,i,s){var a,o=t[0],l=t[1],c=0,h=1,u=e[0]-o,d=e[1]-l;if(a=r-o,u||!(a>0)){if(a/=u,u<0){if(a<c)return;a<h&&(h=a)}else if(u>0){if(a>h)return;a>c&&(c=a)}if(a=i-o,u||!(a<0)){if(a/=u,u<0){if(a>h)return;a>c&&(c=a)}else if(u>0){if(a<c)return;a<h&&(h=a)}if(a=n-l,d||!(a>0)){if(a/=d,d<0){if(a<c)return;a<h&&(h=a)}else if(d>0){if(a>h)return;a>c&&(c=a)}if(a=s-l,d||!(a<0)){if(a/=d,d<0){if(a>h)return;a>c&&(c=a)}else if(d>0){if(a<c)return;a<h&&(h=a)}return c>0&&(t[0]=o+c*u,t[1]=l+c*d),h<1&&(e[0]=o+h*u,e[1]=l+h*d),!0}}}}}(l,w,t,e,r,n)?o&&(y.lineStart(),y.point(s,a),v=!1):(b||(y.lineStart(),y.point(l[0],l[1])),y.point(w[0],w[1]),o||y.lineEnd(),v=!1)}p=s,m=a,b=o}return x}}var Ms,Ts,Cs,Ns,Rs=t=>t,Ps=new bt,qs=new bt,zs={point:ms,lineStart:ms,lineEnd:ms,polygonStart:function(){zs.lineStart=Fs,zs.lineEnd=Is},polygonEnd:function(){zs.lineStart=zs.lineEnd=zs.point=ms,Ps.add(us(qs)),qs=new bt},result:function(){var t=Ps/2;return Ps=new bt,t}};function Fs(){zs.point=Os}function Os(t,e){zs.point=Us,Ms=Cs=t,Ts=Ns=e}function Us(t,e){qs.add(Ns*t-Cs*e),Cs=t,Ns=e}function Is(){Us(Ms,Ts)}var Hs=zs,Ds=1/0,Ls=Ds,js=-Ds,Bs=js,Vs={point:function(t,e){t<Ds&&(Ds=t);t>js&&(js=t);e<Ls&&(Ls=e);e>Bs&&(Bs=e)},lineStart:ms,lineEnd:ms,polygonStart:ms,polygonEnd:ms,result:function(){var t=[[Ds,Ls],[js,Bs]];return js=Bs=-(Ls=Ds=1/0),t}};var Ks,Xs,Ws,Gs,Ys=Vs,Zs=0,Qs=0,Js=0,ta=0,ea=0,ra=0,na=0,ia=0,sa=0,aa={point:oa,lineStart:la,lineEnd:ua,polygonStart:function(){aa.lineStart=da,aa.lineEnd=fa},polygonEnd:function(){aa.point=oa,aa.lineStart=la,aa.lineEnd=ua},result:function(){var t=sa?[na/sa,ia/sa]:ra?[ta/ra,ea/ra]:Js?[Zs/Js,Qs/Js]:[NaN,NaN];return Zs=Qs=Js=ta=ea=ra=na=ia=sa=0,t}};function oa(t,e){Zs+=t,Qs+=e,++Js}function la(){aa.point=ca}function ca(t,e){aa.point=ha,oa(Ws=t,Gs=e)}function ha(t,e){var r=t-Ws,n=e-Gs,i=ps(r*r+n*n);ta+=i*(Ws+t)/2,ea+=i*(Gs+e)/2,ra+=i,oa(Ws=t,Gs=e)}function ua(){aa.point=oa}function da(){aa.point=pa}function fa(){ma(Ks,Xs)}function pa(t,e){aa.point=ma,oa(Ks=Ws=t,Xs=Gs=e)}function ma(t,e){var r=t-Ws,n=e-Gs,i=ps(r*r+n*n);ta+=i*(Ws+t)/2,ea+=i*(Gs+e)/2,ra+=i,na+=(i=Gs*t-Ws*e)*(Ws+t),ia+=i*(Gs+e),sa+=3*i,oa(Ws=t,Gs=e)}var ba=aa;function ga(t){this._context=t}ga.prototype={_radius:4.5,pointRadius:function(t){return this._radius=t,this},polygonStart:function(){this._line=0},polygonEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){0===this._line&&this._context.closePath(),this._point=NaN},point:function(t,e){switch(this._point){case 0:this._context.moveTo(t,e),this._point=1;break;case 1:this._context.lineTo(t,e);break;default:this._context.moveTo(t+this._radius,e),this._context.arc(t,e,this._radius,0,ls)}},result:ms};var va,ya,wa,xa,$a,ka=new bt,_a={point:ms,lineStart:function(){_a.point=Sa},lineEnd:function(){va&&Aa(ya,wa),_a.point=ms},polygonStart:function(){va=!0},polygonEnd:function(){va=null},result:function(){var t=+ka;return ka=new bt,t}};function Sa(t,e){_a.point=Aa,ya=xa=t,wa=$a=e}function Aa(t,e){xa-=t,$a-=e,ka.add(ps(xa*xa+$a*$a)),xa=t,$a=e}var Ea=_a;let Ma,Ta,Ca,Na;class Ra{constructor(t){this._append=null==t?Pa:function(t){const e=Math.floor(t);if(!(e>=0))throw new RangeError(`invalid digits: ${t}`);if(e>15)return Pa;if(e!==Ma){const t=10**e;Ma=e,Ta=function(e){let r=1;this._+=e[0];for(const n=e.length;r<n;++r)this._+=Math.round(arguments[r]*t)/t+e[r]}}return Ta}(t),this._radius=4.5,this._=""}pointRadius(t){return this._radius=+t,this}polygonStart(){this._line=0}polygonEnd(){this._line=NaN}lineStart(){this._point=0}lineEnd(){0===this._line&&(this._+="Z"),this._point=NaN}point(t,e){switch(this._point){case 0:this._append`M${t},${e}`,this._point=1;break;case 1:this._append`L${t},${e}`;break;default:if(this._append`M${t},${e}`,this._radius!==Ca||this._append!==Ta){const t=this._radius,e=this._;this._="",this._append`m0,${t}a${t},${t} 0 1,1 0,${-2*t}a${t},${t} 0 1,1 0,${2*t}z`,Ca=t,Ta=this._append,Na=this._,this._=e}this._+=Na}}result(){const t=this._;return this._="",t.length?t:null}}function Pa(t){let e=1;this._+=t[0];for(const r=t.length;e<r;++e)this._+=arguments[e]+t[e]}function qa(t,e){let r,n,i=3,s=4.5;function a(t){return t&&("function"==typeof s&&n.pointRadius(+s.apply(this,arguments)),xs(t,r(n))),n.result()}return a.area=function(t){return xs(t,r(Hs)),Hs.result()},a.measure=function(t){return xs(t,r(Ea)),Ea.result()},a.bounds=function(t){return xs(t,r(Ys)),Ys.result()},a.centroid=function(t){return xs(t,r(ba)),ba.result()},a.projection=function(e){return arguments.length?(r=null==e?(t=null,Rs):(t=e).stream,a):t},a.context=function(t){return arguments.length?(n=null==t?(e=null,new Ra(i)):new ga(e=t),"function"!=typeof s&&n.pointRadius(s),a):e},a.pointRadius=function(t){return arguments.length?(s="function"==typeof t?t:(n.pointRadius(+t),+t),a):s},a.digits=function(t){if(!arguments.length)return i;if(null==t)i=null;else{const e=Math.floor(t);if(!(e>=0))throw new RangeError(`invalid digits: ${t}`);i=e}return null===e&&(n=new Ra(i)),a},a.projection(t).digits(i).context(e)}function za(){}function Fa(t,e,r){var n=t.clipExtent&&t.clipExtent();return t.scale(150).translate([0,0]),null!=n&&t.clipExtent(null),xs(r,t.stream(Ys)),e(Ys.result()),null!=n&&t.clipExtent(n),t}function Oa(t,e,r){return Fa(t,(function(r){var n=e[1][0]-e[0][0],i=e[1][1]-e[0][1],s=Math.min(n/(r[1][0]-r[0][0]),i/(r[1][1]-r[0][1])),a=+e[0][0]+(n-s*(r[1][0]+r[0][0]))/2,o=+e[0][1]+(i-s*(r[1][1]+r[0][1]))/2;t.scale(150*s).translate([a,o])}),r)}function Ua(){var t,e,r,n,i,s,a,o,l=1,c=0,h=0,u=1,d=1,f=0,p=null,m=1,b=1,g=(o={point:function(t,e){var r=w([t,e]);this.stream.point(r[0],r[1])}},function(t){var e=new za;for(var r in o)e[r]=o[r];return e.stream=t,e}),v=Rs;function y(){return m=l*u,b=l*d,s=a=null,w}function w(r){var n=r[0]*m,i=r[1]*b;if(f){var s=i*t-n*e;n=n*t+i*e,i=s}return[n+c,i+h]}return w.invert=function(r){var n=r[0]-c,i=r[1]-h;if(f){var s=i*t+n*e;n=n*t-i*e,i=s}return[n/m,i/b]},w.stream=function(t){return s&&a===t?s:s=g(v(a=t))},w.postclip=function(t){return arguments.length?(v=t,p=r=n=i=null,y()):v},w.clipExtent=function(t){return arguments.length?(v=null==t?(p=r=n=i=null,Rs):Es(p=+t[0][0],r=+t[0][1],n=+t[1][0],i=+t[1][1]),y()):null==p?null:[[p,r],[n,i]]},w.scale=function(t){return arguments.length?(l=+t,y()):l},w.translate=function(t){return arguments.length?(c=+t[0],h=+t[1],y()):[c,h]},w.angle=function(r){return arguments.length?(e=fs(f=r%360*hs),t=ds(f),y()):f*cs},w.reflectX=function(t){return arguments.length?(u=t?-1:1,y()):u<0},w.reflectY=function(t){return arguments.length?(d=t?-1:1,y()):d<0},w.fitExtent=function(t,e){return Oa(w,t,e)},w.fitSize=function(t,e){return function(t,e,r){return Oa(t,[[0,0],e],r)}(w,t,e)},w.fitWidth=function(t,e){return function(t,e,r){return Fa(t,(function(r){var n=+e,i=n/(r[1][0]-r[0][0]),s=(n-i*(r[1][0]+r[0][0]))/2,a=-i*r[0][1];t.scale(150*i).translate([s,a])}),r)}(w,t,e)},w.fitHeight=function(t,e){return function(t,e,r){return Fa(t,(function(r){var n=+e,i=n/(r[1][1]-r[0][1]),s=-i*r[0][0],a=(n-i*(r[1][1]+r[0][1]))/2;t.scale(150*i).translate([s,a])}),r)}(w,t,e)},w}function Ia(t,e){switch(arguments.length){case 0:break;case 1:this.range(t);break;default:this.range(e).domain(t)}return this}function Ha(t){return+t}za.prototype={constructor:za,point:function(t,e){this.stream.point(t,e)},sphere:function(){this.stream.sphere()},lineStart:function(){this.stream.lineStart()},lineEnd:function(){this.stream.lineEnd()},polygonStart:function(){this.stream.polygonStart()},polygonEnd:function(){this.stream.polygonEnd()}};var Da=[0,1];function La(t){return t}function ja(t,e){return(e-=t=+t)?function(r){return(r-t)/e}:function(t){return function(){return t}}(isNaN(e)?NaN:.5)}function Ba(t,e,r){var n=t[0],i=t[1],s=e[0],a=e[1];return i<n?(n=ja(i,n),s=r(a,s)):(n=ja(n,i),s=r(s,a)),function(t){return s(n(t))}}function Va(t,e,r){var n=Math.min(t.length,e.length)-1,i=new Array(n),s=new Array(n),a=-1;for(t[n]<t[0]&&(t=t.slice().reverse(),e=e.slice().reverse());++a<n;)i[a]=ja(t[a],t[a+1]),s[a]=r(e[a],e[a+1]);return function(e){var r=pt(t,e,1,n)-1;return s[r](i[r](e))}}function Ka(){var t,e,r,n,i,s,a=Da,o=Da,l=dn,c=La;function h(){var t=Math.min(a.length,o.length);return c!==La&&(c=function(t,e){var r;return t>e&&(r=t,t=e,e=r),function(r){return Math.max(t,Math.min(e,r))}}(a[0],a[t-1])),n=t>2?Va:Ba,i=s=null,u}function u(e){return null==e||isNaN(e=+e)?r:(i||(i=n(a.map(t),o,l)))(t(c(e)))}return u.invert=function(r){return c(e((s||(s=n(o,a.map(t),on)))(r)))},u.domain=function(t){return arguments.length?(a=Array.from(t,Ha),h()):a.slice()},u.range=function(t){return arguments.length?(o=Array.from(t),h()):o.slice()},u.rangeRound=function(t){return o=Array.from(t),l=fn,h()},u.clamp=function(t){return arguments.length?(c=!!t||La,h()):c!==La},u.interpolate=function(t){return arguments.length?(l=t,h()):l},u.unknown=function(t){return arguments.length?(r=t,u):r},function(r,n){return t=r,e=n,h()}}function Xa(t,e,r,n){var i,s=function(t,e,r){r=+r;const n=(e=+e)<(t=+t),i=n?St(e,t,r):St(t,e,r);return(n?-1:1)*(i<0?1/-i:i)}(t,e,r);switch((n=Gi(null==n?",f":n)).type){case"s":var a=Math.max(Math.abs(t),Math.abs(e));return null!=n.precision||isNaN(i=function(t,e){return Math.max(0,3*Math.max(-8,Math.min(8,Math.floor(Ki(e)/3)))-Ki(Math.abs(t)))}(s,a))||(n.precision=i),rs(n,a);case"":case"e":case"g":case"p":case"r":null!=n.precision||isNaN(i=function(t,e){return t=Math.abs(t),e=Math.abs(e)-t,Math.max(0,Ki(e)-Ki(t))+1}(s,Math.max(Math.abs(t),Math.abs(e))))||(n.precision=i-("e"===n.type));break;case"f":case"%":null!=n.precision||isNaN(i=function(t){return Math.max(0,-Ki(Math.abs(t)))}(s))||(n.precision=i-2*("%"===n.type))}return es(n)}function Wa(){var t=Ka()(La,La);return t.copy=function(){return e=t,Wa().domain(e.domain()).range(e.range()).interpolate(e.interpolate()).clamp(e.clamp()).unknown(e.unknown());var e},Ia.apply(t,arguments),function(t){var e=t.domain;return t.ticks=function(t){var r=e();return _t(r[0],r[r.length-1],null==t?10:t)},t.tickFormat=function(t,r){var n=e();return Xa(n[0],n[n.length-1],null==t?10:t,r)},t.nice=function(r){null==r&&(r=10);var n,i,s=e(),a=0,o=s.length-1,l=s[a],c=s[o],h=10;for(c<l&&(i=l,l=c,c=i,i=a,a=o,o=i);h-- >0;){if((i=St(l,c,r))===n)return s[a]=l,s[o]=c,e(s);if(i>0)l=Math.floor(l/i)*i,c=Math.ceil(c/i)*i;else{if(!(i<0))break;l=Math.ceil(l*i)/i,c=Math.floor(c*i)/i}n=i}return t},t}(t)}var Ga=function(t){for(var e=t.length/6|0,r=new Array(e),n=0;n<e;)r[n]="#"+t.slice(6*n,6*++n);return r}("e41a1c377eb84daf4a984ea3ff7f00ffff33a65628f781bf999999");function Ya(t){return function(){return t}}function Za(t){this._context=t}function Qa(t){return new Za(t)}function Ja(t){return t[0]}function to(t){return t[1]}function eo(t,e){var r=Ya(!0),n=null,i=Qa,s=null,a=function(t){let e=3;return t.digits=function(r){if(!arguments.length)return e;if(null==r)e=null;else{const t=Math.floor(r);if(!(t>=0))throw new RangeError(`invalid digits: ${r}`);e=t}return t},()=>new Ni(e)}(o);function o(o){var l,c,h,u=(o=function(t){return"object"==typeof t&&"length"in t?t:Array.from(t)}(o)).length,d=!1;for(null==n&&(s=i(h=a())),l=0;l<=u;++l)!(l<u&&r(c=o[l],l,o))===d&&((d=!d)?s.lineStart():s.lineEnd()),d&&s.point(+t(c,l,o),+e(c,l,o));if(h)return s=null,h+""||null}return t="function"==typeof t?t:void 0===t?Ja:Ya(t),e="function"==typeof e?e:void 0===e?to:Ya(e),o.x=function(e){return arguments.length?(t="function"==typeof e?e:Ya(+e),o):t},o.y=function(t){return arguments.length?(e="function"==typeof t?t:Ya(+t),o):e},o.defined=function(t){return arguments.length?(r="function"==typeof t?t:Ya(!!t),o):r},o.curve=function(t){return arguments.length?(i=t,null!=n&&(s=i(n)),o):i},o.context=function(t){return arguments.length?(null==t?n=s=null:s=i(n=t),o):n},o}function ro(t,e,r){this.k=t,this.x=e,this.y=r}Za.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;default:this._context.lineTo(t,e)}}},ro.prototype={constructor:ro,scale:function(t){return 1===t?this:new ro(this.k*t,this.x,this.y)},translate:function(t,e){return 0===t&0===e?this:new ro(this.k,this.x+this.k*t,this.y+this.k*e)},apply:function(t){return[t[0]*this.k+this.x,t[1]*this.k+this.y]},applyX:function(t){return t*this.k+this.x},applyY:function(t){return t*this.k+this.y},invert:function(t){return[(t[0]-this.x)/this.k,(t[1]-this.y)/this.k]},invertX:function(t){return(t-this.x)/this.k},invertY:function(t){return(t-this.y)/this.k},rescaleX:function(t){return t.copy().domain(t.range().map(this.invertX,this).map(t.invert,t))},rescaleY:function(t){return t.copy().domain(t.range().map(this.invertY,this).map(t.invert,t))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}},ro.prototype;class no extends ot{getComputedStyleValue(t){return getComputedStyle(this).getPropertyValue(t).trim()}firstUpdated(t){super.firstUpdated(t),ar(this.renderRoot.host).classed("keyboard",!0).on("mousemove.keyboard touchstart.keyboard",(t=>{ar(t.currentTarget.renderRoot.host).classed("keyboard",!1).on("mousemove.keyboard touchstart.keyboard",null)})).on("keydown.keyboard",(t=>{ar(t.currentTarget.renderRoot.host).classed("keyboard",!0).on("keydown.keyboard mousemove.keyboard touchstart.keyboard",null)}))}static get greys(){const t="#999999",e={white:"#ffffff"};return e.light75=rn(t,"#ffffff")(.75),e.light50=rn(t,"#ffffff")(.5),e.light25=rn(t,"#ffffff")(.25),e.grey=t,e.dark25=rn(t,"#000000")(.25),e.dark50=rn(t,"#000000")(.5),e.dark75=rn(t,"#000000")(.75),e.black="#000000",e}static get shadows(){return{elevations:[0,2,4,8,16],baselineColor:"#000000",baselineColorString:"0, 0, 0",inverseBaselineColor:"#FFFFFF",inverseBaselineColorString:"255, 255, 255",opacityUmbra:.2,opacityPenumbra:.14,opacityAmbient:.12,opacityBoost:.2,mapUmbra:{0:{x:0,y:0,b:0,s:0},2:{x:0,y:3,b:1,s:-2},4:{x:0,y:2,b:4,s:-1},8:{x:0,y:5,b:5,s:-3},16:{x:0,y:8,b:10,s:-5}},mapPenumbra:{0:{x:0,y:0,b:0,s:0},2:{x:0,y:2,b:2,s:0},4:{x:0,y:4,b:5,s:0},8:{x:0,y:8,b:10,s:1},16:{x:0,y:16,b:24,s:2}},mapAmbient:{0:{x:0,y:0,b:0,s:0},2:{x:0,y:1,b:5,s:0},4:{x:0,y:1,b:10,s:0},8:{x:0,y:3,b:14,s:2},16:{x:0,y:6,b:30,s:5}}}}static cssBoxShadow(t,e=!1,r=!1){const n=this.shadows.opacityUmbra+this.shadows.opacityBoost,i=this.shadows.opacityPenumbra+this.shadows.opacityBoost,s=this.shadows.opacityAmbient+this.shadows.opacityBoost,a=r?`rgba(${this.shadows.inverseBaselineColorString}, ${n})`:`rgba(${this.shadows.baselineColorString}, ${n})`,o=r?`rgba(${this.shadows.inverseBaselineColorString}, ${i})`:`rgba(${this.shadows.baselineColorString}, ${i})`,l=r?`rgba(${this.shadows.inverseBaselineColorString}, ${s})`:`rgba(${this.shadows.baselineColorString}, ${s})`,c=this.shadows.mapUmbra[t],h=this.shadows.mapPenumbra[t],u=this.shadows.mapAmbient[t];return`${e?`${-c.y}px ${c.y/2}px ${c.b}px ${c.s}px`:`${c.y/2}px ${c.y}px ${c.b}px ${c.s}px`} ${a}, ${e?`${-h.y}px ${h.y/2}px ${h.b}px ${h.s}px`:`${h.y/2}px ${h.y}px ${h.b}px ${h.s}px`} ${o}, ${e?`${-u.y}px ${u.y/2}px ${u.b}px ${u.s}px`:`${u.y/2}px ${u.y}px ${u.b}px ${u.s}px`} ${l}`}static get svgDefs(){const t=no.shadows;return`\n <defs>\n ${t.elevations.map((e=>`\n <filter id=shadow-${e} filterUnits="userSpaceOnUse" x="-100%" y="-100%" width="200%" height="200%">\n <feComponentTransfer in="SourceAlpha" result="solid">\n <feFuncA type="table" tableValues="0 1 1"/>\n </feComponentTransfer>\n <feOffset in="solid" result="offU" dx=${t.mapUmbra[e].y/2} dy=${t.mapUmbra[e].y} />\n <feOffset in="solid" result="offP" dx=${t.mapPenumbra[e].y/2} dy=${t.mapPenumbra[e].y} />\n <feOffset in="solid" result="offA" dx=${t.mapAmbient[e].y/2} dy=${t.mapAmbient[e].y} />\n ${0===t.mapUmbra[e].s?"":`<feMorphology in="offU" result="spreadU" operator=${t.mapUmbra[e].s>0?"dilate":"erode"} radius=${Math.abs(t.mapUmbra[e].s)} />`}\n ${0===t.mapPenumbra[e].s?"":`<feMorphology in="offP" result="spreadP" operator=${t.mapPenumbra[e].s>0?"dilate":"erode"} radius=${Math.abs(t.mapPenumbra[e].s)} />`}\n ${0===t.mapAmbient[e].s?"":`<feMorphology in="offA" result="spreadA" operator=${t.mapAmbient[e].s>0?"dilate":"erode"} radius=${Math.abs(t.mapAmbient[e].s)} />`}\n <feGaussianBlur in=${0===t.mapUmbra[e].s?"offU":"spreadU"} result="blurU" stdDeviation=${t.mapUmbra[e].b/2} />\n <feGaussianBlur in=${0===t.mapPenumbra[e].s?"offP":"spreadP"} result="blurP" stdDeviation=${t.mapPenumbra[e].b/2} />\n <feGaussianBlur in=${0===t.mapAmbient[e].s?"offA":"spreadA"} result="blurA" stdDeviation=${t.mapAmbient[e].b/2} />\n <feFlood in="SourceGraphic" result="opU" flood-color=${t.baselineColor} flood-opacity=${t.opacityUmbra+t.opacityBoost} />\n <feFlood in="SourceGraphic" result="opP" flood-color=${t.baselineColor} flood-opacity=${t.opacityPenumbra+t.opacityBoost} />\n <feFlood in="SourceGraphic" result="opA" flood-color=${t.baselineColor} flood-opacity=${t.opacityAmbient+t.opacityBoost} />\n <feComposite in="opU" in2="blurU" result="shU" operator="in" />\n <feComposite in="opP" in2="blurP" result="shP" operator="in" />\n <feComposite in="opA" in2="blurA" result="shA" operator="in" />\n <feMorphology in="solid" result="smaller" operator="erode" radius="1" />\n <feComposite in="shU" in2="smaller" result="finalU" operator="out" />\n <feComposite in="shP" in2="smaller" result="finalP" operator="out" />\n <feComposite in="shA" in2="smaller" result="finalA" operator="out" />\n <feMerge>\n <feMergeNode in="finalU" />\n <feMergeNode in="finalP" />\n <feMergeNode in="finalA" />\n <feMergeNode in="SourceGraphic" />\n </feMerge>\n </filter>`))}\n </defs>\n `}static get svgFilters(){const t=no.shadows,e=t.elevations.map((e=>B`
24
24
  <filter id=${`shadow-${e}`} x="-250%" y="-250%" width="600%" height="600%">
25
25
  <feComponentTransfer in="SourceAlpha" result="solid">
26
26
  <feFuncA type="table" tableValues="0 1 1"/>
@@ -1009,7 +1009,7 @@ const io=t=>t??K;customElements.define("decidables-slider",class extends no{stat
1009
1009
  }
1010
1010
  `]}render(){return j`
1011
1011
  ${lo.svgFilters}
1012
- `}update(t){if(super.update(t),this.alignState(),Number.isNaN(this.width)||Number.isNaN(this.height)||Number.isNaN(this.rem))return;const e=this.width,r=this.height,n=Math.min(e,r),i=2*this.rem,s=3*this.rem,a=3*this.rem,o=n-(i+s),l=n-(a+2*this.rem),c=parseInt(this.getComputedStyleValue("---transition-duration"),10),h=Wa().domain(this.zRoc?[-3,3]:[0,1]).range([0,l]);this.xScale=h;const u=Wa().domain(this.zRoc?[3,-3]:[1,0]).range([0,o]);this.yScale=u;const d=vr().subject(((t,e)=>({x:this.xScale(this.zRoc?po.far2Zfar(e.far):e.far),y:this.yScale(this.zRoc?po.hr2Zhr(e.hr):e.hr)}))).on("start",(t=>{ar(t.currentTarget).classed("dragging",!0)})).on("drag",((t,e)=>{this.drag=!0;const r=this.zRoc?po.zfar2Far(this.xScale.invert(t.x)):this.xScale.invert(t.x),n=this.zRoc?po.zhr2Hr(this.yScale.invert(t.y)):this.yScale.invert(t.y);e.far=r<.001?.001:r>.999?.999:r,e.hr=n<=.001?.001:n>=.999?.999:n,"default"===e.name&&(this.far=e.far,this.hr=e.hr),this.alignState(),this.requestUpdate(),this.dispatchEvent(new CustomEvent("roc-point-change",{detail:{name:e.name,far:e.far,hr:e.hr,d:e.d,c:e.c,s:e.s,label:e.label},bubbles:!0}))})).on("end",(t=>{ar(t.currentTarget).classed("dragging",!1)})),f=eo().x((t=>h(this.zRoc?po.far2Zfar(t.far):t.far))).y((t=>u(this.zRoc?po.hr2Zhr(t.hr):t.hr))),p=ar(this.renderRoot).selectAll(".main").data([{width:this.width,height:this.height,rem:this.rem}]),m=p.enter().append("svg").classed("main",!0),b=m.merge(p).attr("viewBox",`0 0 ${n} ${n}`),g=m.append("g").classed("plot",!0),v=b.select(".plot").attr("transform",`translate(${a}, ${i})`);g.append("clipPath").attr("id","clip-roc-space").append("rect"),v.select("clipPath rect").attr("height",o+1).attr("width",l+1);const y=g.append("g").classed("underlayer",!0),w=v.select(".underlayer");if(y.append("rect").classed("background",!0),w.select(".background").attr("height",o).attr("width",l),this.firstUpdate||t.has("contour")||t.has("zRoc")||t.has("width")||t.has("height")||t.has("rem")||t.has("s"))if(void 0!==this.contour){const t=100,e=[];for(let r=.5,n=0;r<t;r+=1)for(let i=.5;i<t;i+=1,n+=1){const s=this.zRoc?po.zhr2Hr(i/t*6-3):i/t,a=this.zRoc?po.zfar2Far(6*(1-r/t)-3):1-r/t;e[n]="bias"===this.contour?po.hrFar2C(s,a,this.s):"sensitivity"===this.contour?po.hrFar2D(s,a,this.s):"accuracy"===this.contour?po.hrFar2Acc(s,a):null}const r="bias"===this.contour?Mt(-3,3,.25):"sensitivity"===this.contour?Mt(-6,6,.5):"accuracy"===this.contour?Mt(0,1,.05):null,n=Hi().size([t,t]).thresholds(r),i=this.getComputedStyleValue("bias"===this.contour?"---color-element-background":"sensitivity"===this.contour?"---color-d":"accuracy"===this.contour?"---color-acc-dark":null),s=this.getComputedStyleValue("bias"===this.contour?"---color-c":"sensitivity"===this.contour||"accuracy"===this.contour?"---color-element-background":null),a=Wa().domain(mt(r)).interpolate((()=>rn(i,s))),o=w.selectAll(".plot-contour").data([this.contour]),h=o.enter().append("g").classed("plot-contour",!0).merge(o).selectAll(".contour").data(n(e));h.enter().append("path").classed("contour",!0).merge(h).transition().duration(2*c).ease(ki).attr("d",qa(Ia().scale(l/t))).attr("fill",(t=>a(t.value))),h.exit().remove();const u=w.selectAll(".title-contour").data([this.contour]);u.enter().append("text").classed("title-contour",!0).attr("text-anchor","middle").merge(u).classed("math-var","bias"===this.contour||"sensitivity"===this.contour).attr("transform","bias"===this.contour||"sensitivity"===this.contour?`translate(${l+1.25*this.rem}, ${this.rem})`:"accuracy"===this.contour?`translate(${l+1.125*this.rem}, ${this.rem})`:null).text("bias"===this.contour?"c":"sensitivity"===this.contour?"d′":"accuracy"===this.contour?"Acc":null);const d=100,f=[];for(let e=.5,r=0;e<d;e+=1,r+=4)f[r]="bias"===this.contour?-(e/t*6-3):"sensitivity"===this.contour?e/t*12-6:"accuracy"===this.contour?e/t:null,f[r+1]=f[r],f[r+2]=f[r],f[r+3]=f[r];const p=Hi().size([4,d]).thresholds(r),m=Wa().domain("bias"===this.contour?[3,-3]:"sensitivity"===this.contour?[6,-6]:"accuracy"===this.contour?[1,0]:null).range([0,10*this.rem]),b=w.selectAll(".legend-contour").data([this.contour]),g=b.enter().append("g").classed("legend-contour",!0),v=g.merge(b).attr("transform","bias"===this.contour||"sensitivity"===this.contour?`translate(${l+1.25*this.rem}, ${1.5*this.rem})`:"accuracy"===this.contour?`translate(${l+1.5*this.rem}, ${1.5*this.rem})`:null);b.exit().remove(),g.append("g").classed("axis-contour",!0),v.select(".axis-contour").call(Lt(m).ticks(7).tickSize(0)).attr("font-size",null).attr("font-family",null);const y=v.selectAll(".contour").data(p(f));y.enter().append("path").classed("contour",!0).merge(y).attr("d",qa(Ia().scale(10*this.rem/d))).attr("fill",(t=>a(t.value))),y.exit().remove()}else{w.selectAll(".plot-contour").data([]).exit().remove();w.selectAll(".title-contour").data([]).exit().remove();w.selectAll(".legend-contour").data([]).exit().remove()}y.append("g").classed("axis-x",!0);w.select(".axis-x").attr("transform",`translate(0, ${o})`).transition().duration(2*c).ease(ki).call(Dt(h)).attr("font-size",null).attr("font-family",null).selectAll("line, path").attr("stroke",null);const x=y.append("text").classed("title-x",!0).attr("text-anchor","middle");x.append("tspan").classed("z math-var",!0),x.append("tspan").classed("name",!0);const $=w.select(".title-x").attr("transform",`translate(${l/2}, ${o+2.25*this.rem})`);$.select("tspan.z").text(this.zRoc?"z":""),$.select("tspan.name").text(this.zRoc?"(False Alarm Rate)":"False Alarm Rate"),y.append("g").classed("axis-y",!0);w.select(".axis-y").transition().duration(2*c).ease(ki).call(Lt(u)).attr("font-size",null).attr("font-family",null).selectAll("line, path").attr("stroke",null);const k=y.append("text").classed("title-y",!0).attr("text-anchor","middle");k.append("tspan").classed("z math-var",!0),k.append("tspan").classed("name",!0);const _=w.select(".title-y").attr("transform",`translate(${-2*this.rem}, ${o/2})rotate(-90)`);_.select("tspan.z").text(this.zRoc?"z":""),_.select("tspan.name").text(this.zRoc?"(Hit Rate)":"Hit Rate"),y.append("line").classed("diagonal",!0),w.select(".diagonal").attr("x1",this.zRoc?h(-3):h(0)).attr("y1",this.zRoc?u(-3):u(0)).attr("x2",this.zRoc?h(3):h(1)).attr("y2",this.zRoc?u(3):u(1)),g.append("g").classed("content",!0);const S=v.select(".content"),A=S.selectAll(".curve-iso-d").data(this.isoDArray,(t=>t.name)),E=A.enter().append("path").classed("curve-iso-d",!0).attr("clip-path","url(#clip-roc-space)").merge(A);this.firstUpdate||t.has("zRoc")?E.transition().duration(this.drag?0:2*c).ease(ki).attr("d",(t=>f(Mt(h.range()[0],h.range()[1]+1,1).map((e=>({far:this.zRoc?po.zfar2Far(h.invert(e)):h.invert(e),hr:this.zRoc?po.dFar2Hr(t.d,po.zfar2Far(h.invert(e)),t.s):po.dFar2Hr(t.d,h.invert(e),t.s)})))))):this.sdt?E.transition().duration(this.drag?0:c).ease(ki).attrTween("d",((t,e,r)=>{const n=r[e];n.hr=void 0,n.far=void 0;const i=dn(void 0!==n.d?n.d:t.d,t.d),s=dn(void 0!==n.s?n.s:t.s,t.s);return t=>{n.d=i(t),n.s=s(t);const e=Mt(h.range()[0],h.range()[1]+1,1).map((t=>({far:this.zRoc?po.zfar2Far(h.invert(t)):h.invert(t),hr:this.zRoc?po.dFar2Hr(n.d,po.zfar2Far(h.invert(t)),n.s):po.dFar2Hr(n.d,h.invert(t),n.s)})));return f(e)}})):E.transition().duration(this.drag?0:c).ease(ki).attrTween("d",((t,e,r)=>{const n=r[e];n.d=void 0,n.s=void 0;const i=dn(void 0!==n.hr?n.hr:t.hr,t.hr),s=dn(void 0!==n.far?n.far:t.far,t.far);return e=>{n.hr=i(e),n.far=s(e);const r=Mt(h.range()[0],h.range()[1]+1,1).map((e=>({far:this.zRoc?po.zfar2Far(h.invert(e)):h.invert(e),hr:this.zRoc?po.dFar2Hr(po.hrFar2D(n.hr,n.far,t.s),po.zfar2Far(h.invert(e)),t.s):po.dFar2Hr(po.hrFar2D(n.hr,n.far,t.s),h.invert(e),t.s)})));return f(r)}})),A.exit().remove();const M=S.selectAll(".curve-iso-c").data(this.isoCArray,(t=>t.name)),T=M.enter().append("path").classed("curve-iso-c",!0).attr("clip-path","url(#clip-roc-space)").merge(M);this.firstUpdate||t.has("zRoc")?T.transition().duration(this.drag?0:2*c).ease(ki).attr("d",(t=>f(Mt(h.range()[0],h.range()[1]+1,1).map((e=>({far:this.zRoc?po.zfar2Far(h.invert(e)):h.invert(e),hr:this.zRoc?po.cFar2Hr(t.c,po.zfar2Far(h.invert(e)),t.s):po.cFar2Hr(t.c,h.invert(e),t.s)})))))):this.sdt?T.transition().duration(this.drag?0:c).ease(ki).attrTween("d",((t,e,r)=>{const n=r[e];n.hr=void 0,n.far=void 0;const i=dn(void 0!==n.c?n.c:t.c,t.c),s=dn(void 0!==n.s?n.s:t.s,t.s);return t=>{n.c=i(t),n.s=s(t);const e=Mt(h.range()[0],h.range()[1]+1,1).map((t=>({far:this.zRoc?po.zfar2Far(h.invert(t)):h.invert(t),hr:this.zRoc?po.cFar2Hr(n.c,po.zfar2Far(h.invert(t)),n.s):po.cFar2Hr(n.c,h.invert(t),n.s)})));return f(e)}})):T.transition().duration(this.drag?0:c).ease(ki).attrTween("d",((t,e,r)=>{const n=r[e];n.c=void 0,n.s=void 0;const i=dn(void 0!==n.hr?n.hr:t.hr,t.hr),s=dn(void 0!==n.far?n.far:t.far,t.far);return e=>{n.hr=i(e),n.far=s(e);const r=Mt(h.range()[0],h.range()[1]+1,1).map((e=>({far:this.zRoc?po.zfar2Far(h.invert(e)):h.invert(e),hr:this.zRoc?po.cFar2Hr(po.hrFar2C(n.hr,n.far,t.s),po.zfar2Far(h.invert(e)),t.s):po.cFar2Hr(po.hrFar2C(n.hr,n.far,t.s),h.invert(e),t.s)})));return f(r)}})),M.exit().remove();const C=S.selectAll(".point").data(this.pointArray,(t=>t.name)),N=C.enter().append("g").classed("point",!0);N.append("circle").classed("circle",!0),N.append("text").classed("label",!0);const R=N.merge(C);R.select("text").text((t=>t.label)),(this.firstUpdate||t.has("interactive"))&&(this.interactive?R.attr("tabindex",0).classed("interactive",!0).call(d).on("keydown",((t,e)=>{if(["ArrowUp","ArrowDown","ArrowRight","ArrowLeft"].includes(t.key)){let r=this.zRoc?po.hr2Zhr(e.hr):e.hr,n=this.zRoc?po.far2Zfar(e.far):e.far;switch(t.key){case"ArrowUp":r+=this.zRoc?t.shiftKey?.05:.25:t.shiftKey?.01:.05;break;case"ArrowDown":r-=this.zRoc?t.shiftKey?.05:.25:t.shiftKey?.01:.05;break;case"ArrowRight":n+=this.zRoc?t.shiftKey?.05:.25:t.shiftKey?.01:.05;break;case"ArrowLeft":n-=this.zRoc?t.shiftKey?.05:.25:t.shiftKey?.01:.05}r=this.zRoc?po.zhr2Hr(r):r,n=this.zRoc?po.zfar2Far(n):n,r=r<.001?.001:r>.999?.999:r,n=n<.001?.001:n>.999?.999:n,r===e.hr&&n===e.far||(e.hr=r,e.far=n,"default"===e.name&&(this.hr=e.hr,this.far=e.far),this.alignState(),this.requestUpdate(),this.dispatchEvent(new CustomEvent("roc-point-change",{detail:{name:e.name,far:e.far,hr:e.hr,d:e.d,c:e.c,s:e.s,label:e.label},bubbles:!0}))),t.preventDefault()}})):R.attr("tabindex",null).classed("interactive",!1).on("drag",null).on("keydown",null)),this.firstUpdate||t.has("zRoc")?R.transition().duration(this.drag?0:2*c).ease(ki).attr("transform",((t,e,r)=>{const n=r[e];return n.d=void 0,n.c=void 0,n.s=void 0,`translate(\n ${h(this.zRoc?po.far2Zfar(t.far):t.far)},\n ${u(this.zRoc?po.hr2Zhr(t.hr):t.hr)}\n )`})):this.sdt?R.transition().duration(this.drag?0:c).ease(ki).attrTween("transform",((t,e,r)=>{const n=r[e],i=dn(void 0!==n.d?n.d:t.d,t.d),s=dn(void 0!==n.c?n.c:t.c,t.c),a=dn(void 0!==n.s?n.s:t.s,t.s);return t=>(n.d=i(t),n.c=s(t),n.s=a(t),`translate(\n ${h(this.zRoc?po.far2Zfar(po.dC2Far(n.d,n.c,n.s)):po.dC2Far(n.d,n.c,n.s))},\n ${u(this.zRoc?po.hr2Zhr(po.dC2Hr(n.d,n.c,n.s)):po.dC2Hr(n.d,n.c,n.s))}\n )`)})):R.transition().duration(this.drag?0:c).ease(ki).attr("transform",((t,e,r)=>{const n=r[e];return n.d=void 0,n.c=void 0,n.s=void 0,`translate(\n ${h(this.zRoc?po.far2Zfar(t.far):t.far)},\n ${u(this.zRoc?po.hr2Zhr(t.hr):t.hr)}\n )`})),C.exit().remove(),this.drag=!1,this.sdt=!1,this.firstUpdate=!1}}customElements.define("roc-space",mo);class bo extends lo{static get properties(){return{trials:{attribute:"trials",type:Number,reflect:!0},duration:{attribute:"duration",type:Number,reflect:!0},coherence:{attribute:"coherence",type:Number,reflect:!0},payoff:{attribute:"payoff",type:Number,reflect:!0},color:{attribute:"color",type:String,reflect:!0},zRoc:{attribute:"z-roc",type:Boolean,reflect:!0},run:{attribute:"run",type:Boolean,reflect:!0},pause:{attribute:"pause",type:Boolean,reflect:!0},reset:{attribute:"reset",type:Boolean,reflect:!0},state:{attribute:!1,type:String,reflect:!1}}}constructor(){super(),this.trials=void 0,this.duration=void 0,this.coherence=void 0,this.payoff=void 0,this.colors=["none","accuracy","stimulus","response","outcome","all"],this.color=void 0,this.zRoc=void 0,this.run=!1,this.pause=!1,this.reset=!1,this.states=["resetted","running","paused","ended"],this.state="resetted"}setTrials(t){this.trials=t.target.value,this.dispatchEvent(new CustomEvent("detectable-control-trials",{detail:{trials:this.trials},bubbles:!0}))}setDuration(t){this.duration=t.target.value,this.dispatchEvent(new CustomEvent("detectable-control-duration",{detail:{duration:this.duration},bubbles:!0}))}setCoherence(t){this.coherence=t.target.value,this.dispatchEvent(new CustomEvent("detectable-control-coherence",{detail:{coherence:this.coherence},bubbles:!0}))}setPayoff(t){this.payoff=t.target.value,this.dispatchEvent(new CustomEvent("detectable-control-payoff",{detail:{payoff:this.payoff},bubbles:!0}))}chooseColor(t){this.color=t.target.value,this.dispatchEvent(new CustomEvent("detectable-control-color",{detail:{color:this.color},bubbles:!0}))}flipZRoc(t){this.zRoc=t.target.checked,this.dispatchEvent(new CustomEvent("detectable-control-z-roc",{detail:{zRoc:this.zRoc},bubbles:!0}))}doRun(){this.state="running",this.dispatchEvent(new CustomEvent("detectable-control-run",{detail:{},bubbles:!0}))}doPause(){this.state="paused",this.dispatchEvent(new CustomEvent("detectable-control-pause",{detail:{},bubbles:!0}))}doReset(){this.state="resetted",this.dispatchEvent(new CustomEvent("detectable-control-reset",{detail:{},bubbles:!0}))}complete(){this.state="ended"}static get styles(){return[super.styles,a`
1012
+ `}willUpdate(){this.alignState()}update(t){if(super.update(t),Number.isNaN(this.width)||Number.isNaN(this.height)||Number.isNaN(this.rem))return;const e=this.width,r=this.height,n=Math.min(e,r),i=2*this.rem,s=3*this.rem,a=3*this.rem,o=n-(i+s),l=n-(a+2*this.rem),c=parseInt(this.getComputedStyleValue("---transition-duration"),10),h=Wa().domain(this.zRoc?[-3,3]:[0,1]).range([0,l]);this.xScale=h;const u=Wa().domain(this.zRoc?[3,-3]:[1,0]).range([0,o]);this.yScale=u;const d=vr().subject(((t,e)=>({x:this.xScale(this.zRoc?po.far2Zfar(e.far):e.far),y:this.yScale(this.zRoc?po.hr2Zhr(e.hr):e.hr)}))).on("start",(t=>{ar(t.currentTarget).classed("dragging",!0)})).on("drag",((t,e)=>{this.drag=!0;const r=this.zRoc?po.zfar2Far(this.xScale.invert(t.x)):this.xScale.invert(t.x),n=this.zRoc?po.zhr2Hr(this.yScale.invert(t.y)):this.yScale.invert(t.y);e.far=r<.001?.001:r>.999?.999:r,e.hr=n<=.001?.001:n>=.999?.999:n,"default"===e.name&&(this.far=e.far,this.hr=e.hr),this.alignState(),this.requestUpdate(),this.dispatchEvent(new CustomEvent("roc-point-change",{detail:{name:e.name,far:e.far,hr:e.hr,d:e.d,c:e.c,s:e.s,label:e.label},bubbles:!0}))})).on("end",(t=>{ar(t.currentTarget).classed("dragging",!1)})),f=eo().x((t=>h(this.zRoc?po.far2Zfar(t.far):t.far))).y((t=>u(this.zRoc?po.hr2Zhr(t.hr):t.hr))),p=ar(this.renderRoot).selectAll(".main").data([{width:this.width,height:this.height,rem:this.rem}]),m=p.enter().append("svg").classed("main",!0),b=m.merge(p).attr("viewBox",`0 0 ${n} ${n}`),g=m.append("g").classed("plot",!0),v=b.select(".plot").attr("transform",`translate(${a}, ${i})`);g.append("clipPath").attr("id","clip-roc-space").append("rect"),v.select("clipPath rect").attr("height",o+1).attr("width",l+1);const y=g.append("g").classed("underlayer",!0),w=v.select(".underlayer");if(y.append("rect").classed("background",!0),w.select(".background").attr("height",o).attr("width",l),this.firstUpdate||t.has("contour")||t.has("zRoc")||t.has("width")||t.has("height")||t.has("rem")||t.has("s"))if(void 0!==this.contour){const t=100,e=[];for(let r=.5,n=0;r<t;r+=1)for(let i=.5;i<t;i+=1,n+=1){const s=this.zRoc?po.zhr2Hr(i/t*6-3):i/t,a=this.zRoc?po.zfar2Far(6*(1-r/t)-3):1-r/t;e[n]="bias"===this.contour?po.hrFar2C(s,a,this.s):"sensitivity"===this.contour?po.hrFar2D(s,a,this.s):"accuracy"===this.contour?po.hrFar2Acc(s,a):null}const r="bias"===this.contour?Mt(-3,3,.25):"sensitivity"===this.contour?Mt(-6,6,.5):"accuracy"===this.contour?Mt(0,1,.05):null,n=Hi().size([t,t]).thresholds(r),i=this.getComputedStyleValue("bias"===this.contour?"---color-element-background":"sensitivity"===this.contour?"---color-d":"accuracy"===this.contour?"---color-acc-dark":null),s=this.getComputedStyleValue("bias"===this.contour?"---color-c":"sensitivity"===this.contour||"accuracy"===this.contour?"---color-element-background":null),a=Wa().domain(mt(r)).interpolate((()=>rn(i,s))),o=w.selectAll(".plot-contour").data([this.contour]),h=o.enter().append("g").classed("plot-contour",!0).merge(o).selectAll(".contour").data(n(e));h.enter().append("path").classed("contour",!0).merge(h).transition().duration(2*c).ease(ki).attr("d",qa(Ua().scale(l/t))).attr("fill",(t=>a(t.value))),h.exit().remove();const u=w.selectAll(".title-contour").data([this.contour]);u.enter().append("text").classed("title-contour",!0).attr("text-anchor","middle").merge(u).classed("math-var","bias"===this.contour||"sensitivity"===this.contour).attr("transform","bias"===this.contour||"sensitivity"===this.contour?`translate(${l+1.25*this.rem}, ${this.rem})`:"accuracy"===this.contour?`translate(${l+1.125*this.rem}, ${this.rem})`:null).text("bias"===this.contour?"c":"sensitivity"===this.contour?"d′":"accuracy"===this.contour?"Acc":null);const d=100,f=[];for(let e=.5,r=0;e<d;e+=1,r+=4)f[r]="bias"===this.contour?-(e/t*6-3):"sensitivity"===this.contour?e/t*12-6:"accuracy"===this.contour?e/t:null,f[r+1]=f[r],f[r+2]=f[r],f[r+3]=f[r];const p=Hi().size([4,d]).thresholds(r),m=Wa().domain("bias"===this.contour?[3,-3]:"sensitivity"===this.contour?[6,-6]:"accuracy"===this.contour?[1,0]:null).range([0,10*this.rem]),b=w.selectAll(".legend-contour").data([this.contour]),g=b.enter().append("g").classed("legend-contour",!0),v=g.merge(b).attr("transform","bias"===this.contour||"sensitivity"===this.contour?`translate(${l+1.25*this.rem}, ${1.5*this.rem})`:"accuracy"===this.contour?`translate(${l+1.5*this.rem}, ${1.5*this.rem})`:null);b.exit().remove(),g.append("g").classed("axis-contour",!0),v.select(".axis-contour").call(Lt(m).ticks(7).tickSize(0)).attr("font-size",null).attr("font-family",null);const y=v.selectAll(".contour").data(p(f));y.enter().append("path").classed("contour",!0).merge(y).attr("d",qa(Ua().scale(10*this.rem/d))).attr("fill",(t=>a(t.value))),y.exit().remove()}else{w.selectAll(".plot-contour").data([]).exit().remove();w.selectAll(".title-contour").data([]).exit().remove();w.selectAll(".legend-contour").data([]).exit().remove()}y.append("g").classed("axis-x",!0);w.select(".axis-x").attr("transform",`translate(0, ${o})`).transition().duration(2*c).ease(ki).call(Dt(h)).attr("font-size",null).attr("font-family",null).selectAll("line, path").attr("stroke",null);const x=y.append("text").classed("title-x",!0).attr("text-anchor","middle");x.append("tspan").classed("z math-var",!0),x.append("tspan").classed("name",!0);const $=w.select(".title-x").attr("transform",`translate(${l/2}, ${o+2.25*this.rem})`);$.select("tspan.z").text(this.zRoc?"z":""),$.select("tspan.name").text(this.zRoc?"(False Alarm Rate)":"False Alarm Rate"),y.append("g").classed("axis-y",!0);w.select(".axis-y").transition().duration(2*c).ease(ki).call(Lt(u)).attr("font-size",null).attr("font-family",null).selectAll("line, path").attr("stroke",null);const k=y.append("text").classed("title-y",!0).attr("text-anchor","middle");k.append("tspan").classed("z math-var",!0),k.append("tspan").classed("name",!0);const _=w.select(".title-y").attr("transform",`translate(${-2*this.rem}, ${o/2})rotate(-90)`);_.select("tspan.z").text(this.zRoc?"z":""),_.select("tspan.name").text(this.zRoc?"(Hit Rate)":"Hit Rate"),y.append("line").classed("diagonal",!0),w.select(".diagonal").attr("x1",this.zRoc?h(-3):h(0)).attr("y1",this.zRoc?u(-3):u(0)).attr("x2",this.zRoc?h(3):h(1)).attr("y2",this.zRoc?u(3):u(1)),g.append("g").classed("content",!0);const S=v.select(".content"),A=S.selectAll(".curve-iso-d").data(this.isoDArray,(t=>t.name)),E=A.enter().append("path").classed("curve-iso-d",!0).attr("clip-path","url(#clip-roc-space)").merge(A);this.firstUpdate||t.has("zRoc")?E.transition().duration(this.drag?0:2*c).ease(ki).attr("d",(t=>f(Mt(h.range()[0],h.range()[1]+1,1).map((e=>({far:this.zRoc?po.zfar2Far(h.invert(e)):h.invert(e),hr:this.zRoc?po.dFar2Hr(t.d,po.zfar2Far(h.invert(e)),t.s):po.dFar2Hr(t.d,h.invert(e),t.s)})))))):this.sdt?E.transition().duration(this.drag?0:c).ease(ki).attrTween("d",((t,e,r)=>{const n=r[e];n.hr=void 0,n.far=void 0;const i=dn(void 0!==n.d?n.d:t.d,t.d),s=dn(void 0!==n.s?n.s:t.s,t.s);return t=>{n.d=i(t),n.s=s(t);const e=Mt(h.range()[0],h.range()[1]+1,1).map((t=>({far:this.zRoc?po.zfar2Far(h.invert(t)):h.invert(t),hr:this.zRoc?po.dFar2Hr(n.d,po.zfar2Far(h.invert(t)),n.s):po.dFar2Hr(n.d,h.invert(t),n.s)})));return f(e)}})):E.transition().duration(this.drag?0:c).ease(ki).attrTween("d",((t,e,r)=>{const n=r[e];n.d=void 0,n.s=void 0;const i=dn(void 0!==n.hr?n.hr:t.hr,t.hr),s=dn(void 0!==n.far?n.far:t.far,t.far);return e=>{n.hr=i(e),n.far=s(e);const r=Mt(h.range()[0],h.range()[1]+1,1).map((e=>({far:this.zRoc?po.zfar2Far(h.invert(e)):h.invert(e),hr:this.zRoc?po.dFar2Hr(po.hrFar2D(n.hr,n.far,t.s),po.zfar2Far(h.invert(e)),t.s):po.dFar2Hr(po.hrFar2D(n.hr,n.far,t.s),h.invert(e),t.s)})));return f(r)}})),A.exit().remove();const M=S.selectAll(".curve-iso-c").data(this.isoCArray,(t=>t.name)),T=M.enter().append("path").classed("curve-iso-c",!0).attr("clip-path","url(#clip-roc-space)").merge(M);this.firstUpdate||t.has("zRoc")?T.transition().duration(this.drag?0:2*c).ease(ki).attr("d",(t=>f(Mt(h.range()[0],h.range()[1]+1,1).map((e=>({far:this.zRoc?po.zfar2Far(h.invert(e)):h.invert(e),hr:this.zRoc?po.cFar2Hr(t.c,po.zfar2Far(h.invert(e)),t.s):po.cFar2Hr(t.c,h.invert(e),t.s)})))))):this.sdt?T.transition().duration(this.drag?0:c).ease(ki).attrTween("d",((t,e,r)=>{const n=r[e];n.hr=void 0,n.far=void 0;const i=dn(void 0!==n.c?n.c:t.c,t.c),s=dn(void 0!==n.s?n.s:t.s,t.s);return t=>{n.c=i(t),n.s=s(t);const e=Mt(h.range()[0],h.range()[1]+1,1).map((t=>({far:this.zRoc?po.zfar2Far(h.invert(t)):h.invert(t),hr:this.zRoc?po.cFar2Hr(n.c,po.zfar2Far(h.invert(t)),n.s):po.cFar2Hr(n.c,h.invert(t),n.s)})));return f(e)}})):T.transition().duration(this.drag?0:c).ease(ki).attrTween("d",((t,e,r)=>{const n=r[e];n.c=void 0,n.s=void 0;const i=dn(void 0!==n.hr?n.hr:t.hr,t.hr),s=dn(void 0!==n.far?n.far:t.far,t.far);return e=>{n.hr=i(e),n.far=s(e);const r=Mt(h.range()[0],h.range()[1]+1,1).map((e=>({far:this.zRoc?po.zfar2Far(h.invert(e)):h.invert(e),hr:this.zRoc?po.cFar2Hr(po.hrFar2C(n.hr,n.far,t.s),po.zfar2Far(h.invert(e)),t.s):po.cFar2Hr(po.hrFar2C(n.hr,n.far,t.s),h.invert(e),t.s)})));return f(r)}})),M.exit().remove();const C=S.selectAll(".point").data(this.pointArray,(t=>t.name)),N=C.enter().append("g").classed("point",!0);N.append("circle").classed("circle",!0),N.append("text").classed("label",!0);const R=N.merge(C);R.select("text").text((t=>t.label)),(this.firstUpdate||t.has("interactive"))&&(this.interactive?R.attr("tabindex",0).classed("interactive",!0).call(d).on("keydown",((t,e)=>{if(["ArrowUp","ArrowDown","ArrowRight","ArrowLeft"].includes(t.key)){let r=this.zRoc?po.hr2Zhr(e.hr):e.hr,n=this.zRoc?po.far2Zfar(e.far):e.far;switch(t.key){case"ArrowUp":r+=this.zRoc?t.shiftKey?.05:.25:t.shiftKey?.01:.05;break;case"ArrowDown":r-=this.zRoc?t.shiftKey?.05:.25:t.shiftKey?.01:.05;break;case"ArrowRight":n+=this.zRoc?t.shiftKey?.05:.25:t.shiftKey?.01:.05;break;case"ArrowLeft":n-=this.zRoc?t.shiftKey?.05:.25:t.shiftKey?.01:.05}r=this.zRoc?po.zhr2Hr(r):r,n=this.zRoc?po.zfar2Far(n):n,r=r<.001?.001:r>.999?.999:r,n=n<.001?.001:n>.999?.999:n,r===e.hr&&n===e.far||(e.hr=r,e.far=n,"default"===e.name&&(this.hr=e.hr,this.far=e.far),this.alignState(),this.requestUpdate(),this.dispatchEvent(new CustomEvent("roc-point-change",{detail:{name:e.name,far:e.far,hr:e.hr,d:e.d,c:e.c,s:e.s,label:e.label},bubbles:!0}))),t.preventDefault()}})):R.attr("tabindex",null).classed("interactive",!1).on("drag",null).on("keydown",null)),this.firstUpdate||t.has("zRoc")?R.transition().duration(this.drag?0:2*c).ease(ki).attr("transform",((t,e,r)=>{const n=r[e];return n.d=void 0,n.c=void 0,n.s=void 0,`translate(\n ${h(this.zRoc?po.far2Zfar(t.far):t.far)},\n ${u(this.zRoc?po.hr2Zhr(t.hr):t.hr)}\n )`})):this.sdt?R.transition().duration(this.drag?0:c).ease(ki).attrTween("transform",((t,e,r)=>{const n=r[e],i=dn(void 0!==n.d?n.d:t.d,t.d),s=dn(void 0!==n.c?n.c:t.c,t.c),a=dn(void 0!==n.s?n.s:t.s,t.s);return t=>(n.d=i(t),n.c=s(t),n.s=a(t),`translate(\n ${h(this.zRoc?po.far2Zfar(po.dC2Far(n.d,n.c,n.s)):po.dC2Far(n.d,n.c,n.s))},\n ${u(this.zRoc?po.hr2Zhr(po.dC2Hr(n.d,n.c,n.s)):po.dC2Hr(n.d,n.c,n.s))}\n )`)})):R.transition().duration(this.drag?0:c).ease(ki).attr("transform",((t,e,r)=>{const n=r[e];return n.d=void 0,n.c=void 0,n.s=void 0,`translate(\n ${h(this.zRoc?po.far2Zfar(t.far):t.far)},\n ${u(this.zRoc?po.hr2Zhr(t.hr):t.hr)}\n )`})),C.exit().remove(),this.drag=!1,this.sdt=!1,this.firstUpdate=!1}}customElements.define("roc-space",mo);class bo extends lo{static get properties(){return{trials:{attribute:"trials",type:Number,reflect:!0},duration:{attribute:"duration",type:Number,reflect:!0},coherence:{attribute:"coherence",type:Number,reflect:!0},payoff:{attribute:"payoff",type:Number,reflect:!0},color:{attribute:"color",type:String,reflect:!0},zRoc:{attribute:"z-roc",type:Boolean,reflect:!0},run:{attribute:"run",type:Boolean,reflect:!0},pause:{attribute:"pause",type:Boolean,reflect:!0},reset:{attribute:"reset",type:Boolean,reflect:!0},state:{attribute:!1,type:String,reflect:!1}}}constructor(){super(),this.trials=void 0,this.duration=void 0,this.coherence=void 0,this.payoff=void 0,this.colors=["none","accuracy","stimulus","response","outcome","all"],this.color=void 0,this.zRoc=void 0,this.run=!1,this.pause=!1,this.reset=!1,this.states=["resetted","running","paused","ended"],this.state="resetted"}setTrials(t){this.trials=t.target.value,this.dispatchEvent(new CustomEvent("detectable-control-trials",{detail:{trials:this.trials},bubbles:!0}))}setDuration(t){this.duration=t.target.value,this.dispatchEvent(new CustomEvent("detectable-control-duration",{detail:{duration:this.duration},bubbles:!0}))}setCoherence(t){this.coherence=t.target.value,this.dispatchEvent(new CustomEvent("detectable-control-coherence",{detail:{coherence:this.coherence},bubbles:!0}))}setPayoff(t){this.payoff=t.target.value,this.dispatchEvent(new CustomEvent("detectable-control-payoff",{detail:{payoff:this.payoff},bubbles:!0}))}chooseColor(t){this.color=t.target.value,this.dispatchEvent(new CustomEvent("detectable-control-color",{detail:{color:this.color},bubbles:!0}))}flipZRoc(t){this.zRoc=t.target.checked,this.dispatchEvent(new CustomEvent("detectable-control-z-roc",{detail:{zRoc:this.zRoc},bubbles:!0}))}doRun(){this.state="running",this.dispatchEvent(new CustomEvent("detectable-control-run",{detail:{},bubbles:!0}))}doPause(){this.state="paused",this.dispatchEvent(new CustomEvent("detectable-control-pause",{detail:{},bubbles:!0}))}doReset(){this.state="resetted",this.dispatchEvent(new CustomEvent("detectable-control-reset",{detail:{},bubbles:!0}))}complete(){this.state="ended"}static get styles(){return[super.styles,a`
1013
1013
  :host {
1014
1014
  display: inline-block;
1015
1015
  }
@@ -1310,7 +1310,7 @@ const io=t=>t??K;customElements.define("decidables-slider",class extends no{stat
1310
1310
  }
1311
1311
  `]}render(){return j`
1312
1312
  ${lo.svgFilters}
1313
- `}sendEvent(){this.dispatchEvent(new CustomEvent("sdt-model-change",{detail:{d:this.d,c:this.c,s:this.s,far:this.far,hr:this.hr,h:this.h,m:this.m,fa:this.fa,cr:this.cr},bubbles:!0}))}update(t){if(super.update(t),this.alignState(),Number.isNaN(this.width)||Number.isNaN(this.height)||Number.isNaN(this.rem))return;const e=this.width,r=this.height;let n,i;e/r>1.8?(i=r,n=1.8*i):(n=e,i=n/1.8);const s=2*this.rem,a=3*this.rem,o=3*this.rem,l=i-(s+a),c=n-(o+(this.histogram&&this.distributions?3:.75)*this.rem),h=parseInt(this.getComputedStyleValue("---transition-duration"),10),u=Wa().domain([-3,3]).range([0,c]),d=Wa().domain([.5,0]).range([0,l]),f=u(this.binWidth)-u(0),p=Wa().domain([l/f,0]).range([0,l]),m=vr().subject((()=>({x:u(this.l),y:0}))).on("start",(t=>{ar(t.currentTarget).classed("dragging",!0)})).on("drag",(t=>{this.drag=!0;let e=u.invert(t.x);e=e<u.domain()[0]?u.domain()[0]:e>u.domain()[1]?u.domain()[1]:e,this.c=po.l2C(e,this.s),this.alignState(),this.sendEvent()})).on("end",(t=>{ar(t.currentTarget).classed("dragging",!1)})),b=vr().subject((()=>({x:u(this.muN),y:0}))).on("start",(t=>{ar(t.currentTarget).classed("dragging",!0)})).on("drag",(t=>{this.drag=!0;let e=u.invert(t.x);e=e<u.domain()[0]?u.domain()[0]:e>u.domain()[1]?u.domain()[1]:e,this.d=po.muN2D(e,this.s),this.alignState(),this.sendEvent()})).on("end",(t=>{ar(t.currentTarget).classed("dragging",!1)})),g=vr().subject((()=>({x:u(this.muS),y:d(this.hS)}))).on("start",((t,e)=>{ar(t.currentTarget).classed("dragging",!0),e.startX=t.x,e.startY=t.y,e.startHS=this.hS,e.startMuS=this.muS})).on("drag",((t,e)=>{this.drag=!0;let r=this.muS;this.interactive&&(r=u.invert(t.x),r=r<u.domain()[0]?u.domain()[0]:r>u.domain()[1]?u.domain()[1]:r);let n=this.hS;this.unequal&&(n=d.invert(t.y),n=n<.01?.01:n>d.domain()[0]?d.domain()[0]:n),this.interactive&&this.unequal&&t.sourceEvent.shiftKey&&(Math.abs(t.x-e.startX)>Math.abs(t.y-e.startY)?n=e.startHS:r=e.startMuS),this.unequal&&(this.s=po.h2S(n),this.c=po.l2C(this.l,this.s)),this.d=po.muS2D(r,this.s),this.alignState(),this.sendEvent()})).on("end",(t=>{ar(t.currentTarget).classed("dragging",!1)})),v=eo().x((t=>u(t.e))).y((t=>d(t.p))),y=ar(this.renderRoot).selectAll(".main").data([{width:this.width,height:this.height,rem:this.rem}]),w=y.enter().append("svg").classed("main",!0),x=w.merge(y).attr("viewBox",`0 0 ${n} ${i}`),$=w.append("g").classed("plot",!0),k=x.select(".plot").attr("transform",`translate(${o}, ${s})`),_=$.append("g").classed("underlayer",!0),S=k.select(".underlayer");_.append("rect").classed("background",!0),S.select(".background").attr("height",l).attr("width",c),_.append("g").classed("axis-x",!0);S.select(".axis-x").attr("transform",`translate(0, ${l})`).call(Dt(u)).attr("font-size",null).attr("font-family",null).selectAll("line, path").attr("stroke",null),_.append("text").classed("title-x",!0).attr("text-anchor","middle").text("Evidence"),S.select(".title-x").attr("transform",`translate(${c/2}, ${l+2.25*this.rem})`);const A=S.selectAll(".axis-y").data(this.distributions?[{}]:[]);A.enter().append("g").classed("axis-y",!0).merge(A).call(Lt(d).ticks(5)).attr("font-size",null).attr("font-family",null).selectAll("line, path").attr("stroke",null),A.exit().remove();const E=S.selectAll(".title-y").data(this.distributions?[{}]:[]);E.enter().append("text").classed("title-y",!0).attr("text-anchor","middle").text("Probability").merge(E).attr("transform",`translate(${-2*this.rem}, ${l/2})rotate(-90)`),E.exit().remove();const M=S.selectAll(".axis-y2").data(this.histogram?[{}]:[]);var T;M.enter().append("g").classed("axis-y2",!0).merge(M).attr("transform",this.distributions?`translate(${c}, 0)`:"").call(this.distributions?(T=p,Ht(Nt,T)).ticks(10):Lt(p).ticks(10)).attr("font-size",null).attr("font-family",null).selectAll("line, path").attr("stroke",null),M.exit().remove();const C=S.selectAll(".title-y2").data(this.histogram?[{}]:[]);C.enter().append("text").classed("title-y2",!0).attr("text-anchor","middle").text("Count").merge(C).attr("transform",this.distributions?`translate(${c+1.5*this.rem}, ${l/2})rotate(90)`:`translate(${-1.5*this.rem}, ${l/2})rotate(-90)`),C.exit().remove(),$.append("g").classed("content",!0);const N=k.select(".content"),R=N.selectAll(".signal-noise").data(this.distributions?[{}]:[]),P=R.enter().append("g").classed("signal-noise",!0),q=P.merge(R);R.exit().remove();const z=P.append("g").classed("noise",!0),F=q.selectAll(".noise").attr("tabindex",this.interactive?0:null).classed("interactive",this.interactive).on("keydown",this.interactive?t=>{if(["ArrowRight","ArrowLeft"].includes(t.key)){let e=this.muN;switch(t.key){case"ArrowRight":e+=t.shiftKey?.01:.1;break;case"ArrowLeft":e-=t.shiftKey?.01:.1}e=e<u.domain()[0]?u.domain()[0]:e>u.domain()[1]?u.domain()[1]:e,e!==this.muN&&(this.d=po.muN2D(e,this.s),this.alignState(),this.sendEvent()),t.preventDefault()}}:null);(this.firstUpdate||t.has("interactive"))&&(this.interactive?F.call(b):F.on(".drag",null)),z.append("path").classed("curve-cr",!0),F.select(".curve-cr").transition().duration(this.drag?0:h).ease(ki).attrTween("d",((t,e,r)=>{const n=r[e],i=dn(void 0!==n.d?n.d:this.d,this.d),s=dn(void 0!==n.c?n.c:this.c,this.c),a=dn(void 0!==n.s?n.s:this.s,this.s);return t=>{n.d=i(t),n.c=s(t),n.s=a(t);const e=Mt(u.domain()[0],po.c2L(n.c,n.s),.05).map((t=>({e:t,p:fo.normal.pdf(t,po.d2MuN(n.d,n.s),1)})));return e.push({e:po.c2L(n.c,n.s),p:fo.normal.pdf(po.c2L(n.c,n.s),po.d2MuN(n.d,n.s),1)}),e.push({e:po.c2L(n.c,n.s),p:0}),e.push({e:u.domain()[0],p:0}),v(e)}})),z.append("path").classed("curve-fa",!0),F.select(".curve-fa").transition().duration(this.drag?0:h).ease(ki).attrTween("d",((t,e,r)=>{const n=r[e],i=dn(void 0!==n.d?n.d:this.d,this.d),s=dn(void 0!==n.c?n.c:this.c,this.c),a=dn(void 0!==n.s?n.s:this.s,this.s);return t=>{n.d=i(t),n.c=s(t),n.s=a(t);const e=Mt(po.c2L(n.c,n.s),u.domain()[1],.05).map((t=>({e:t,p:fo.normal.pdf(t,po.d2MuN(n.d,n.s),1)})));return e.push({e:u.domain()[1],p:fo.normal.pdf(u.domain()[1],po.d2MuN(n.d,n.s),1)}),e.push({e:u.domain()[1],p:0}),e.push({e:po.c2L(n.c,n.s),p:0}),v(e)}})),z.append("path").classed("curve-noise",!0),F.select(".curve-noise").transition().duration(this.drag?0:h).ease(ki).attrTween("d",((t,e,r)=>{const n=r[e],i=dn(void 0!==n.d?n.d:this.d,this.d),s=dn(void 0!==n.s?n.s:this.s,this.s);return t=>{n.d=i(t),n.s=s(t);const e=Mt(u.domain()[0],u.domain()[1],.05).map((t=>({e:t,p:fo.normal.pdf(t,po.d2MuN(n.d,n.s),1)})));return e.push({e:u.domain()[1],p:fo.normal.pdf(u.domain()[1],po.d2MuN(n.d,n.s),1)}),v(e)}}));const O=P.append("g").classed("signal",!0),I=q.selectAll(".signal").attr("tabindex",this.interactive||this.unequal?0:null).classed("interactive",this.interactive).classed("unequal",this.unequal).on("keydown.sensitivity",this.interactive?t=>{if(["ArrowRight","ArrowLeft"].includes(t.key)){let e=this.muS;switch(t.key){case"ArrowRight":e+=t.shiftKey?.01:.1;break;case"ArrowLeft":e-=t.shiftKey?.01:.1}e=e<u.domain()[0]?u.domain()[0]:e>u.domain()[1]?u.domain()[1]:e,e!==this.muS&&(this.d=po.muS2D(e,this.s),this.alignState(),this.sendEvent()),t.preventDefault()}}:null).on("keydown.variance",this.unequal?t=>{if(["ArrowUp","ArrowDown"].includes(t.key)){let e=this.hS;switch(t.key){case"ArrowUp":e+=t.shiftKey?.002:.02;break;case"ArrowDown":e-=t.shiftKey?.002:.02}e=e<.01?.01:e>d.domain()[0]?d.domain()[0]:e,e!==this.hS&&(this.s=po.h2S(e),this.d=po.muN2D(this.muN,this.s),this.c=po.l2C(this.l,this.s),this.alignState(),this.sendEvent()),t.preventDefault()}}:null);(this.firstUpdate||t.has("interactive")||t.has("unequal"))&&(this.interactive||this.unequal?I.call(g):I.on(".drag",null)),O.append("path").classed("curve-m",!0),I.select(".curve-m").transition().duration(this.drag?0:h).ease(ki).attrTween("d",((t,e,r)=>{const n=r[e],i=dn(void 0!==n.d?n.d:this.d,this.d),s=dn(void 0!==n.c?n.c:this.c,this.c),a=dn(void 0!==n.s?n.s:this.s,this.s);return t=>{n.d=i(t),n.c=s(t),n.s=a(t);const e=Mt(u.domain()[0],po.c2L(n.c,n.s),.05).map((t=>({e:t,p:fo.normal.pdf(t,po.d2MuS(n.d,n.s),n.s)})));return e.push({e:po.c2L(n.c,n.s),p:fo.normal.pdf(po.c2L(n.c,n.s),po.d2MuS(n.d,n.s),n.s)}),e.push({e:po.c2L(n.c,n.s),p:0}),e.push({e:u.domain()[0],p:0}),v(e)}})),O.append("path").classed("curve-h",!0),I.select(".curve-h").transition().duration(this.drag?0:h).ease(ki).attrTween("d",((t,e,r)=>{const n=r[e],i=dn(void 0!==n.d?n.d:this.d,this.d),s=dn(void 0!==n.c?n.c:this.c,this.c),a=dn(void 0!==n.s?n.s:this.s,this.s);return t=>{n.d=i(t),n.c=s(t),n.s=a(t);const e=Mt(po.c2L(n.c,n.s),u.domain()[1],.05).map((t=>({e:t,p:fo.normal.pdf(t,po.d2MuS(n.d,n.s),n.s)})));return e.push({e:u.domain()[1],p:fo.normal.pdf(u.domain()[1],po.d2MuS(n.d,n.s),n.s)}),e.push({e:u.domain()[1],p:0}),e.push({e:po.c2L(n.c,n.s),p:0}),v(e)}})),O.append("path").classed("curve-signal",!0),I.select(".curve-signal").transition().duration(this.drag?0:h).ease(ki).attrTween("d",((t,e,r)=>{const n=r[e],i=dn(void 0!==n.d?n.d:this.d,this.d),s=dn(void 0!==n.s?n.s:this.s,this.s);return t=>{n.d=i(t),n.s=s(t);const e=Mt(u.domain()[0],u.domain()[1],.05).map((t=>({e:t,p:fo.normal.pdf(t,po.d2MuS(n.d,n.s),n.s)})));return e.push({e:u.domain()[1],p:fo.normal.pdf(u.domain()[1],po.d2MuS(n.d,n.s),n.s)}),v(e)}}));const U=N.selectAll(".measure-d").data(this.sensitivity?[{}]:[]),H=U.enter().append("g").classed("measure-d",!0);H.append("line").classed("line",!0),H.append("line").classed("cap-left",!0),H.append("line").classed("cap-right",!0);const D=H.append("text").classed("label",!0);D.append("tspan").classed("d math-var",!0).text("d′"),D.append("tspan").classed("equals",!0).text(" = "),D.append("tspan").classed("value",!0);const L=H.merge(U);L.select(".line").transition().duration(this.drag?0:h).ease(ki).attr("x1",u(this.muN)).attr("y1",d(.43)).attr("x2",u(this.muS)).attr("y2",d(.43)),L.select(".cap-left").transition().duration(this.drag?0:h).ease(ki).attr("x1",u(this.muN)).attr("y1",d(.43)+5).attr("x2",u(this.muN)).attr("y2",d(.43)-5),L.select(".cap-right").transition().duration(this.drag?0:h).ease(ki).attr("x1",u(this.muS)).attr("y1",d(.43)+5).attr("x2",u(this.muS)).attr("y2",d(.43)-5);L.select(".label").transition().duration(this.drag?0:h).ease(ki).attr("x",u(this.muN>this.muS?this.muN:this.muS)+5).attr("y",d(.43)+3).select(".value").tween("text",((t,e,r)=>{const n=r[e],i=dn(void 0!==n.d?n.d:this.d,this.d);return t=>{n.d=i(t),ar(n).text(es(".3")(n.d))}})),U.exit().remove();const j=N.selectAll(".measure-c").data(this.bias?[{}]:[]),B=j.enter().append("g").classed("measure-c",!0);B.append("line").classed("line",!0),B.append("line").classed("cap-zero",!0);const V=B.append("text").classed("label",!0);V.append("tspan").classed("c math-var",!0).text("c"),V.append("tspan").classed("equals",!0).text(" = "),V.append("tspan").classed("value",!0);const K=B.merge(j);K.select(".line").transition().duration(this.drag?0:h).ease(ki).attr("x1",u(this.l)).attr("y1",d(.47)).attr("x2",u(0)).attr("y2",d(.47)),K.select(".cap-zero").transition().duration(this.drag?0:h).ease(ki).attr("x1",u(0)).attr("y1",d(.47)+5).attr("x2",u(0)).attr("y2",d(.47)-5);K.select(".label").transition().duration(this.drag?0:h).ease(ki).attr("x",u(0)+(this.l<0?5:-5)).attr("y",d(.47)+3).attr("text-anchor",this.c<0?"start":"end").select(".value").tween("text",((t,e,r)=>{const n=r[e],i=dn(void 0!==n.c?n.c:this.c,this.c);return t=>{n.c=i(t),ar(n).text(es(".3")(n.c))}})),j.exit().remove();const X=N.selectAll(".measure-s").data(this.variance?[{}]:[]),W=X.enter().append("g").classed("measure-s",!0);W.append("line").classed("line",!0),W.append("line").classed("cap-left",!0),W.append("line").classed("cap-right",!0);const G=W.append("text").classed("label",!0);G.append("tspan").classed("s math-var",!0).text("σ"),G.append("tspan").classed("equals",!0).text(" = "),G.append("tspan").classed("value",!0);const Y=W.merge(X);Y.select(".line").transition().duration(this.drag?0:h).ease(ki).attr("x1",u(this.muS-this.s)).attr("y1",d(fo.normal.pdf(this.s,0,this.s))+10/this.s).attr("x2",u(this.muS+this.s)).attr("y2",d(fo.normal.pdf(this.s,0,this.s))+10/this.s),Y.select(".cap-left").transition().duration(this.drag?0:h).ease(ki).attr("x1",u(this.muS-this.s)).attr("y1",d(fo.normal.pdf(this.s,0,this.s))+10/this.s+5).attr("x2",u(this.muS-this.s)).attr("y2",d(fo.normal.pdf(this.s,0,this.s))+10/this.s-5),Y.select(".cap-right").transition().duration(this.drag?0:h).ease(ki).attr("x1",u(this.muS+this.s)).attr("y1",d(fo.normal.pdf(this.s,0,this.s))+10/this.s+5).attr("x2",u(this.muS+this.s)).attr("y2",d(fo.normal.pdf(this.s,0,this.s))+10/this.s-5);Y.select(".label").transition().duration(this.drag?0:h).ease(ki).attr("x",u(this.muS)).attr("y",d(fo.normal.pdf(this.s,0,this.s))+10/this.s-3).select(".value").tween("text",((t,e,r)=>{const n=r[e],i=dn(void 0!==n.s?n.s:this.s,this.s);return t=>{n.s=i(t),ar(n).text(es(".3")(n.s))}})),X.exit().remove();const Z=N.selectAll(".threshold").data(this.threshold?[{}]:[]),Q=Z.enter().append("g").classed("threshold",!0);Q.append("line").classed("line",!0),Q.append("circle").classed("handle",!0);const J=Q.merge(Z).attr("tabindex",this.interactive?0:null).classed("interactive",this.interactive);(this.firstUpdate||t.has("interactive"))&&(this.interactive?J.call(m).on("keydown",(t=>{if(["ArrowRight","ArrowLeft"].includes(t.key)){let e=this.l;switch(t.key){case"ArrowRight":e+=t.shiftKey?.01:.1;break;case"ArrowLeft":e-=t.shiftKey?.01:.1}e=e<u.domain()[0]?u.domain()[0]:e>u.domain()[1]?u.domain()[1]:e,e!==this.l&&(this.c=po.l2C(e,this.s),this.alignState(),this.sendEvent()),t.preventDefault()}})):J.on("drag",null).on("keydown",null)),J.select(".line").transition().duration(this.drag?0:h).ease(ki).attr("x1",u(this.l)).attr("y1",d(0)).attr("x2",u(this.l)).attr("y2",d(.54)),J.select(".handle").transition().duration(this.drag?0:h).ease(ki).attr("cx",u(this.l)).attr("cy",d(.54)),Z.exit().remove();const tt=N.selectAll(".histogram").data(this.histogram?[{}]:[]),et=tt.enter().append("g").classed("histogram",!0).merge(tt);if(tt.exit().remove(),this.histogram){const t=function(){var t=gt,e=mt,r=Et;function n(n){Array.isArray(n)||(n=Array.from(n));var i,s,a,o=n.length,l=new Array(o);for(i=0;i<o;++i)l[i]=t(n[i],i,n);var c=e(l),h=c[0],u=c[1],d=r(l,h,u);if(!Array.isArray(d)){const t=u,r=+d;if(e===mt&&([h,u]=At(h,u,r)),(d=_t(h,u,r))[0]<=h&&(a=St(h,u,r)),d[d.length-1]>=u)if(t>=u&&e===mt){const t=St(h,u,r);isFinite(t)&&(t>0?u=(Math.floor(u/t)+1)*t:t<0&&(u=(Math.ceil(u*-t)+1)/-t))}else d.pop()}for(var f=d.length,p=0,m=f;d[p]<=h;)++p;for(;d[m-1]>u;)--m;(p||m<f)&&(d=d.slice(p,m),f=m-p);var b,g=new Array(f+1);for(i=0;i<=f;++i)(b=g[i]=[]).x0=i>0?d[i-1]:h,b.x1=i<f?d[i]:u;if(isFinite(a)){if(a>0)for(i=0;i<o;++i)null!=(s=l[i])&&h<=s&&s<=u&&g[Math.min(f,Math.floor((s-h)/a))].push(n[i]);else if(a<0)for(i=0;i<o;++i)if(null!=(s=l[i])&&h<=s&&s<=u){const t=Math.floor((h-s)*a);g[Math.min(f,t+(d[t]<=s))].push(n[i])}}else for(i=0;i<o;++i)null!=(s=l[i])&&h<=s&&s<=u&&g[pt(d,s,0,f)].push(n[i]);return g}return n.value=function(e){return arguments.length?(t="function"==typeof e?e:yt(e),n):t},n.domain=function(t){return arguments.length?(e="function"==typeof t?t:yt([t[0],t[1]]),n):e},n.thresholds=function(t){return arguments.length?(r="function"==typeof t?t:yt(Array.isArray(t)?vt.call(t):t),n):r},n}().value((t=>t.trueEvidence)).domain(u.domain()).thresholds(Mt(this.binRange[0],this.binRange[1],this.binWidth)),e=t(this.trials);let r=-1,n=-1;for(let t=0;t<e.length;t+=1)for(let i=0;i<e[t].length;i+=1)e[t][i].binValue=e[t].x0,e[t][i].binCount=i,0===t&&(r=i),t===e.length-1&&(n=i);for(let t=0;t<this.trials.length;t+=1)this.trials[t].trueEvidence<this.binRange[0]&&(r+=1,this.trials[t].binCount=r,this.trials[t].binValue=e[0].x0),this.trials[t].trueEvidence>this.binRange[1]&&(n+=1,this.trials[t].binCount=n,this.trials[t].binValue=e[e.length-1].x0);const i=et.selectAll(".trial").data(this.trials,(t=>t.trial)),s=i.enter().append("rect").attr("stroke-width",3).attr("data-new-trial-ease-time",0).attr("stroke",this.getComputedStyleValue("---color-acc")).attr("fill",this.getComputedStyleValue("---color-acc-light")).merge(i).attr("class",(t=>`trial ${t.outcome}`)).attr("width",f-3).attr("height",f-3),a=s.filter((t=>t.new&&!t.paused));if(!a.empty()){const t=a.attr("data-new-trial-ease-time"),e=e=>Wa().domain([0,1]).range([t,1])(e),r=e=>r=>Wa().domain([e(t),1]).range([0,1])(e(r));a.transition("new").duration((e=>Math.floor((.75*e.duration+.25*e.wait)*(1-t)))).ease(e).attr("data-new-trial-ease-time",1).attrTween("stroke",((t,e,n)=>{const i=n[e],s=rn(i.getAttribute("stroke"),"stimulus"===this.color?"present"===t.signal?this.getComputedStyleValue("---color-hr"):this.getComputedStyleValue("---color-far"):"response"===this.color?this.getComputedStyleValue(`---color-${t.response}`):"outcome"===this.color?this.getComputedStyleValue(`---color-${t.outcome}`):this.getComputedStyleValue("---color-acc"));return t=>s(r($i)(t))})).attrTween("fill",((t,e,n)=>{const i=n[e],s=rn(i.getAttribute("fill"),"stimulus"===this.color?"present"===t.signal?this.getComputedStyleValue("---color-hr-light"):this.getComputedStyleValue("---color-far-light"):"response"===this.color?this.getComputedStyleValue(`---color-${t.response}-light`):"outcome"===this.color?this.getComputedStyleValue(`---color-${t.outcome}-light`):this.getComputedStyleValue("---color-acc-light"));return t=>s(r($i)(t))})).attrTween("x",((t,e,n)=>{const i=dn(n[e].getAttribute("x"),u(t.binValue)+1.5);return t=>i(r(ki)(t))})).attrTween("y",((t,e,n)=>{const i=dn(n[e].getAttribute("y"),d(0)+1.5-(t.binCount+1)*f);return t=>i(r($i)(t))})).on("end",((t,e,r)=>{r[e].removeAttribute("data-new-trial-ease-time"),t.new=!1,this.alignTrial(t),this.dispatchEvent(new CustomEvent("detectable-response",{detail:{stimulus:t.signal,response:t.response,outcome:t.outcome,h:this.h,m:this.m,fa:this.fa,cr:this.cr,nr:0},bubbles:!0}))}))}const o=s.filter((t=>t.new&&t.paused));if(!o.empty()){const t=o.attr("data-new-trial-ease-time");o.transition().duration(h).ease(ki).attr("x",(e=>dn(0,u(e.binValue)+1.5)(ki(t)))).attr("y",(e=>dn(0,d(0)+1.5-(e.binCount+1)*f)($i(t)))).attr("stroke",(e=>rn(this.getComputedStyleValue("---color-acc"),"stimulus"===this.color?"present"===e.signal?this.getComputedStyleValue("---color-hr"):this.getComputedStyleValue("---color-far"):"response"===this.color?this.getComputedStyleValue(`---color-${e.response}`):"outcome"===this.color?this.getComputedStyleValue(`---color-${e.outcome}`):this.getComputedStyleValue("---color-acc"))($i(t)))).attr("fill",(e=>rn(this.getComputedStyleValue("---color-acc-light"),"stimulus"===this.color?"present"===e.signal?this.getComputedStyleValue("---color-hr-light"):this.getComputedStyleValue("---color-far-light"):"response"===this.color?this.getComputedStyleValue(`---color-${e.response}-light`):"outcome"===this.color?this.getComputedStyleValue(`---color-${e.outcome}-light`):this.getComputedStyleValue("---color-acc-light"))($i(t))))}s.filter((t=>!t.new)).transition().duration(h).ease(ki).attr("x",(t=>u(t.binValue)+1.5)).attr("y",(t=>d(0)+1.5-(t.binCount+1)*f)).attr("stroke",(t=>"stimulus"===this.color?"present"===t.signal?this.getComputedStyleValue("---color-hr"):this.getComputedStyleValue("---color-far"):"response"===this.color?this.getComputedStyleValue(`---color-${t.response}`):"outcome"===this.color?this.getComputedStyleValue(`---color-${t.outcome}`):this.getComputedStyleValue("---color-acc"))).attr("fill",(t=>"stimulus"===this.color?"present"===t.signal?this.getComputedStyleValue("---color-hr-light"):this.getComputedStyleValue("---color-far-light"):"response"===this.color?this.getComputedStyleValue(`---color-${t.response}-light`):"outcome"===this.color?this.getComputedStyleValue(`---color-${t.outcome}-light`):this.getComputedStyleValue("---color-acc-light"))),i.exit().transition().duration(h).ease(xi).attrTween("stroke",((t,e,r)=>{const n=r[e],i=rn(n.getAttribute("stroke"),this.getComputedStyleValue("---color-acc"));return t=>i($i(t))})).attrTween("fill",((t,e,r)=>{const n=r[e],i=rn(n.getAttribute("fill"),this.getComputedStyleValue("---color-acc-light"));return t=>i($i(t))})).attrTween("x",((t,e,r)=>{const n=dn(r[e].getAttribute("x"),0);return t=>n($i(t))})).attrTween("y",((t,e,r)=>{const n=dn(r[e].getAttribute("y"),0);return t=>n(ki(t))})).remove()}const rt=$.append("g").classed("overlayer",!0),nt=k.select(".overlayer");rt.append("rect").classed("background",!0),nt.select(".background").attr("height",l).attr("width",c),this.drag=!1,this.firstUpdate=!1}pauseTrial(){const t=ar(this.renderRoot).select(".trial[data-new-trial-ease-time]");t.interrupt("new"),t.datum((t=>(t.paused=!0,t)))}resumeTrial(){ar(this.renderRoot).select(".trial[data-new-trial-ease-time]").datum((t=>(t.paused=!1,t))),this.requestUpdate()}}customElements.define("sdt-model",go);class vo extends lo{static get properties(){return{feedback:{attribute:"feedback",type:String,reflect:!0},trial:{attribute:"trial",type:Boolean,reflect:!0},payoff:{attribute:"payoff",type:String,reflect:!0},hPayoff:{attribute:"hit-payoff",type:Number,reflect:!0},mPayoff:{attribute:"miss-payoff",type:Number,reflect:!0},faPayoff:{attribute:"false-alarm-payoff",type:Number,reflect:!0},crPayoff:{attribute:"correct-rejection-payoff",type:Number,reflect:!0},nrPayoff:{attribute:"no-response-payoff",type:Number,reflect:!0},state:{attribute:!1,type:String,reflect:!1},trialCount:{attribute:!1,type:Number,reflect:!1},trialTotal:{attribute:!1,type:Number,reflect:!1}}}constructor(){super(),this.feedbacks=["none","accuracy","outcome"],this.feedback="outcome",this.trial=!1,this.payoffs=["none","trial","total"],this.payoff="none",this.hPayoff=0,this.mPayoff=0,this.crPayoff=0,this.faPayoff=0,this.nrPayoff=0,this.states=["off","waiting","feedback"],this.state="off",this.trialCount=0,this.trialTotal=0,this.signals=["present","absent"],this.signal=void 0,this.responses=["present","absent"],this.response=void 0,this.outcomes=["h","m","fa","cr","nr"],this.outcome=void 0,this.accuracies=["c","e","nr"],this.accuracy=void 0,this.h=0,this.m=0,this.cr=0,this.fa=0,this.c=0,this.e=0,this.nr=0}get trialPayoff(){switch(this.outcome){case"h":return this.hPayoff;case"m":return this.mPayoff;case"fa":return this.faPayoff;case"cr":return this.crPayoff;case"nr":return this.nrPayoff;default:return}}get totalPayoff(){return this.h*this.hPayoff+this.m*this.mPayoff+this.cr*this.crPayoff+this.fa*this.faPayoff+this.nr*this.nrPayoff}start(t,e){this.trialCount=e,this.state="waiting",this.signal=t,this.response=void 0,this.outcome=void 0}stop(){this.state="feedback",void 0===this.response&&(this.outcome="nr",this.nr+=1,this.accuracy="nr")}present(){this.responded("present")}absent(){this.responded("absent")}responded(t){this.state="feedback",this.response=t,"present"===this.signal&&"present"===this.response?(this.outcome="h",this.h+=1,this.accuracy="c",this.c+=1):"present"===this.signal&&"absent"===this.response?(this.outcome="m",this.m+=1,this.accuracy="e",this.e+=1):"absent"===this.signal&&"present"===this.response?(this.outcome="fa",this.fa+=1,this.accuracy="e",this.e+=1):"absent"===this.signal&&"absent"===this.response&&(this.outcome="cr",this.cr+=1,this.accuracy="c",this.c+=1),this.dispatchEvent(new CustomEvent("detectable-response",{detail:{trial:this.trialCount,signal:this.signal,response:this.response,outcome:this.outcome,payoff:this.trialPayoff,h:this.h,m:this.m,fa:this.fa,cr:this.cr,nr:this.nr,totalPayoff:this.totalPayoff},bubbles:!0}))}reset(){this.state="off",this.trialCount=0,this.signal=void 0,this.response=void 0,this.outcome=void 0,this.accuracy=void 0,this.h=0,this.m=0,this.cr=0,this.fa=0,this.nr=0,this.c=0,this.e=0}static get styles(){return[super.styles,a`
1313
+ `}sendEvent(){this.dispatchEvent(new CustomEvent("sdt-model-change",{detail:{d:this.d,c:this.c,s:this.s,far:this.far,hr:this.hr,h:this.h,m:this.m,fa:this.fa,cr:this.cr},bubbles:!0}))}willUpdate(){this.alignState()}update(t){if(super.update(t),Number.isNaN(this.width)||Number.isNaN(this.height)||Number.isNaN(this.rem))return;const e=this.width,r=this.height;let n,i;e/r>1.8?(i=r,n=1.8*i):(n=e,i=n/1.8);const s=2*this.rem,a=3*this.rem,o=3*this.rem,l=i-(s+a),c=n-(o+(this.histogram&&this.distributions?3:.75)*this.rem),h=parseInt(this.getComputedStyleValue("---transition-duration"),10),u=Wa().domain([-3,3]).range([0,c]),d=Wa().domain([.5,0]).range([0,l]),f=u(this.binWidth)-u(0),p=Wa().domain([l/f,0]).range([0,l]),m=vr().subject((()=>({x:u(this.l),y:0}))).on("start",(t=>{ar(t.currentTarget).classed("dragging",!0)})).on("drag",(t=>{this.drag=!0;let e=u.invert(t.x);e=e<u.domain()[0]?u.domain()[0]:e>u.domain()[1]?u.domain()[1]:e,this.c=po.l2C(e,this.s),this.alignState(),this.sendEvent()})).on("end",(t=>{ar(t.currentTarget).classed("dragging",!1)})),b=vr().subject((()=>({x:u(this.muN),y:0}))).on("start",(t=>{ar(t.currentTarget).classed("dragging",!0)})).on("drag",(t=>{this.drag=!0;let e=u.invert(t.x);e=e<u.domain()[0]?u.domain()[0]:e>u.domain()[1]?u.domain()[1]:e,this.d=po.muN2D(e,this.s),this.alignState(),this.sendEvent()})).on("end",(t=>{ar(t.currentTarget).classed("dragging",!1)})),g=vr().subject((()=>({x:u(this.muS),y:d(this.hS)}))).on("start",((t,e)=>{ar(t.currentTarget).classed("dragging",!0),e.startX=t.x,e.startY=t.y,e.startHS=this.hS,e.startMuS=this.muS})).on("drag",((t,e)=>{this.drag=!0;let r=this.muS;this.interactive&&(r=u.invert(t.x),r=r<u.domain()[0]?u.domain()[0]:r>u.domain()[1]?u.domain()[1]:r);let n=this.hS;this.unequal&&(n=d.invert(t.y),n=n<.01?.01:n>d.domain()[0]?d.domain()[0]:n),this.interactive&&this.unequal&&t.sourceEvent.shiftKey&&(Math.abs(t.x-e.startX)>Math.abs(t.y-e.startY)?n=e.startHS:r=e.startMuS),this.unequal&&(this.s=po.h2S(n),this.c=po.l2C(this.l,this.s)),this.d=po.muS2D(r,this.s),this.alignState(),this.sendEvent()})).on("end",(t=>{ar(t.currentTarget).classed("dragging",!1)})),v=eo().x((t=>u(t.e))).y((t=>d(t.p))),y=ar(this.renderRoot).selectAll(".main").data([{width:this.width,height:this.height,rem:this.rem}]),w=y.enter().append("svg").classed("main",!0),x=w.merge(y).attr("viewBox",`0 0 ${n} ${i}`),$=w.append("g").classed("plot",!0),k=x.select(".plot").attr("transform",`translate(${o}, ${s})`),_=$.append("g").classed("underlayer",!0),S=k.select(".underlayer");_.append("rect").classed("background",!0),S.select(".background").attr("height",l).attr("width",c),_.append("g").classed("axis-x",!0);S.select(".axis-x").attr("transform",`translate(0, ${l})`).call(Dt(u)).attr("font-size",null).attr("font-family",null).selectAll("line, path").attr("stroke",null),_.append("text").classed("title-x",!0).attr("text-anchor","middle").text("Evidence"),S.select(".title-x").attr("transform",`translate(${c/2}, ${l+2.25*this.rem})`);const A=S.selectAll(".axis-y").data(this.distributions?[{}]:[]);A.enter().append("g").classed("axis-y",!0).merge(A).call(Lt(d).ticks(5)).attr("font-size",null).attr("font-family",null).selectAll("line, path").attr("stroke",null),A.exit().remove();const E=S.selectAll(".title-y").data(this.distributions?[{}]:[]);E.enter().append("text").classed("title-y",!0).attr("text-anchor","middle").text("Probability").merge(E).attr("transform",`translate(${-2*this.rem}, ${l/2})rotate(-90)`),E.exit().remove();const M=S.selectAll(".axis-y2").data(this.histogram?[{}]:[]);var T;M.enter().append("g").classed("axis-y2",!0).merge(M).attr("transform",this.distributions?`translate(${c}, 0)`:"").call(this.distributions?(T=p,Ht(Nt,T)).ticks(10):Lt(p).ticks(10)).attr("font-size",null).attr("font-family",null).selectAll("line, path").attr("stroke",null),M.exit().remove();const C=S.selectAll(".title-y2").data(this.histogram?[{}]:[]);C.enter().append("text").classed("title-y2",!0).attr("text-anchor","middle").text("Count").merge(C).attr("transform",this.distributions?`translate(${c+1.5*this.rem}, ${l/2})rotate(90)`:`translate(${-1.5*this.rem}, ${l/2})rotate(-90)`),C.exit().remove(),$.append("g").classed("content",!0);const N=k.select(".content"),R=N.selectAll(".signal-noise").data(this.distributions?[{}]:[]),P=R.enter().append("g").classed("signal-noise",!0),q=P.merge(R);R.exit().remove();const z=P.append("g").classed("noise",!0),F=q.selectAll(".noise").attr("tabindex",this.interactive?0:null).classed("interactive",this.interactive).on("keydown",this.interactive?t=>{if(["ArrowRight","ArrowLeft"].includes(t.key)){let e=this.muN;switch(t.key){case"ArrowRight":e+=t.shiftKey?.01:.1;break;case"ArrowLeft":e-=t.shiftKey?.01:.1}e=e<u.domain()[0]?u.domain()[0]:e>u.domain()[1]?u.domain()[1]:e,e!==this.muN&&(this.d=po.muN2D(e,this.s),this.alignState(),this.sendEvent()),t.preventDefault()}}:null);(this.firstUpdate||t.has("interactive"))&&(this.interactive?F.call(b):F.on(".drag",null)),z.append("path").classed("curve-cr",!0),F.select(".curve-cr").transition().duration(this.drag?0:h).ease(ki).attrTween("d",((t,e,r)=>{const n=r[e],i=dn(void 0!==n.d?n.d:this.d,this.d),s=dn(void 0!==n.c?n.c:this.c,this.c),a=dn(void 0!==n.s?n.s:this.s,this.s);return t=>{n.d=i(t),n.c=s(t),n.s=a(t);const e=Mt(u.domain()[0],po.c2L(n.c,n.s),.05).map((t=>({e:t,p:fo.normal.pdf(t,po.d2MuN(n.d,n.s),1)})));return e.push({e:po.c2L(n.c,n.s),p:fo.normal.pdf(po.c2L(n.c,n.s),po.d2MuN(n.d,n.s),1)}),e.push({e:po.c2L(n.c,n.s),p:0}),e.push({e:u.domain()[0],p:0}),v(e)}})),z.append("path").classed("curve-fa",!0),F.select(".curve-fa").transition().duration(this.drag?0:h).ease(ki).attrTween("d",((t,e,r)=>{const n=r[e],i=dn(void 0!==n.d?n.d:this.d,this.d),s=dn(void 0!==n.c?n.c:this.c,this.c),a=dn(void 0!==n.s?n.s:this.s,this.s);return t=>{n.d=i(t),n.c=s(t),n.s=a(t);const e=Mt(po.c2L(n.c,n.s),u.domain()[1],.05).map((t=>({e:t,p:fo.normal.pdf(t,po.d2MuN(n.d,n.s),1)})));return e.push({e:u.domain()[1],p:fo.normal.pdf(u.domain()[1],po.d2MuN(n.d,n.s),1)}),e.push({e:u.domain()[1],p:0}),e.push({e:po.c2L(n.c,n.s),p:0}),v(e)}})),z.append("path").classed("curve-noise",!0),F.select(".curve-noise").transition().duration(this.drag?0:h).ease(ki).attrTween("d",((t,e,r)=>{const n=r[e],i=dn(void 0!==n.d?n.d:this.d,this.d),s=dn(void 0!==n.s?n.s:this.s,this.s);return t=>{n.d=i(t),n.s=s(t);const e=Mt(u.domain()[0],u.domain()[1],.05).map((t=>({e:t,p:fo.normal.pdf(t,po.d2MuN(n.d,n.s),1)})));return e.push({e:u.domain()[1],p:fo.normal.pdf(u.domain()[1],po.d2MuN(n.d,n.s),1)}),v(e)}}));const O=P.append("g").classed("signal",!0),U=q.selectAll(".signal").attr("tabindex",this.interactive||this.unequal?0:null).classed("interactive",this.interactive).classed("unequal",this.unequal).on("keydown.sensitivity",this.interactive?t=>{if(["ArrowRight","ArrowLeft"].includes(t.key)){let e=this.muS;switch(t.key){case"ArrowRight":e+=t.shiftKey?.01:.1;break;case"ArrowLeft":e-=t.shiftKey?.01:.1}e=e<u.domain()[0]?u.domain()[0]:e>u.domain()[1]?u.domain()[1]:e,e!==this.muS&&(this.d=po.muS2D(e,this.s),this.alignState(),this.sendEvent()),t.preventDefault()}}:null).on("keydown.variance",this.unequal?t=>{if(["ArrowUp","ArrowDown"].includes(t.key)){let e=this.hS;switch(t.key){case"ArrowUp":e+=t.shiftKey?.002:.02;break;case"ArrowDown":e-=t.shiftKey?.002:.02}e=e<.01?.01:e>d.domain()[0]?d.domain()[0]:e,e!==this.hS&&(this.s=po.h2S(e),this.d=po.muN2D(this.muN,this.s),this.c=po.l2C(this.l,this.s),this.alignState(),this.sendEvent()),t.preventDefault()}}:null);(this.firstUpdate||t.has("interactive")||t.has("unequal"))&&(this.interactive||this.unequal?U.call(g):U.on(".drag",null)),O.append("path").classed("curve-m",!0),U.select(".curve-m").transition().duration(this.drag?0:h).ease(ki).attrTween("d",((t,e,r)=>{const n=r[e],i=dn(void 0!==n.d?n.d:this.d,this.d),s=dn(void 0!==n.c?n.c:this.c,this.c),a=dn(void 0!==n.s?n.s:this.s,this.s);return t=>{n.d=i(t),n.c=s(t),n.s=a(t);const e=Mt(u.domain()[0],po.c2L(n.c,n.s),.05).map((t=>({e:t,p:fo.normal.pdf(t,po.d2MuS(n.d,n.s),n.s)})));return e.push({e:po.c2L(n.c,n.s),p:fo.normal.pdf(po.c2L(n.c,n.s),po.d2MuS(n.d,n.s),n.s)}),e.push({e:po.c2L(n.c,n.s),p:0}),e.push({e:u.domain()[0],p:0}),v(e)}})),O.append("path").classed("curve-h",!0),U.select(".curve-h").transition().duration(this.drag?0:h).ease(ki).attrTween("d",((t,e,r)=>{const n=r[e],i=dn(void 0!==n.d?n.d:this.d,this.d),s=dn(void 0!==n.c?n.c:this.c,this.c),a=dn(void 0!==n.s?n.s:this.s,this.s);return t=>{n.d=i(t),n.c=s(t),n.s=a(t);const e=Mt(po.c2L(n.c,n.s),u.domain()[1],.05).map((t=>({e:t,p:fo.normal.pdf(t,po.d2MuS(n.d,n.s),n.s)})));return e.push({e:u.domain()[1],p:fo.normal.pdf(u.domain()[1],po.d2MuS(n.d,n.s),n.s)}),e.push({e:u.domain()[1],p:0}),e.push({e:po.c2L(n.c,n.s),p:0}),v(e)}})),O.append("path").classed("curve-signal",!0),U.select(".curve-signal").transition().duration(this.drag?0:h).ease(ki).attrTween("d",((t,e,r)=>{const n=r[e],i=dn(void 0!==n.d?n.d:this.d,this.d),s=dn(void 0!==n.s?n.s:this.s,this.s);return t=>{n.d=i(t),n.s=s(t);const e=Mt(u.domain()[0],u.domain()[1],.05).map((t=>({e:t,p:fo.normal.pdf(t,po.d2MuS(n.d,n.s),n.s)})));return e.push({e:u.domain()[1],p:fo.normal.pdf(u.domain()[1],po.d2MuS(n.d,n.s),n.s)}),v(e)}}));const I=N.selectAll(".measure-d").data(this.sensitivity?[{}]:[]),H=I.enter().append("g").classed("measure-d",!0);H.append("line").classed("line",!0),H.append("line").classed("cap-left",!0),H.append("line").classed("cap-right",!0);const D=H.append("text").classed("label",!0);D.append("tspan").classed("d math-var",!0).text("d′"),D.append("tspan").classed("equals",!0).text(" = "),D.append("tspan").classed("value",!0);const L=H.merge(I);L.select(".line").transition().duration(this.drag?0:h).ease(ki).attr("x1",u(this.muN)).attr("y1",d(.43)).attr("x2",u(this.muS)).attr("y2",d(.43)),L.select(".cap-left").transition().duration(this.drag?0:h).ease(ki).attr("x1",u(this.muN)).attr("y1",d(.43)+5).attr("x2",u(this.muN)).attr("y2",d(.43)-5),L.select(".cap-right").transition().duration(this.drag?0:h).ease(ki).attr("x1",u(this.muS)).attr("y1",d(.43)+5).attr("x2",u(this.muS)).attr("y2",d(.43)-5);L.select(".label").transition().duration(this.drag?0:h).ease(ki).attr("x",u(this.muN>this.muS?this.muN:this.muS)+5).attr("y",d(.43)+3).select(".value").tween("text",((t,e,r)=>{const n=r[e],i=dn(void 0!==n.d?n.d:this.d,this.d);return t=>{n.d=i(t),ar(n).text(es(".3")(n.d))}})),I.exit().remove();const j=N.selectAll(".measure-c").data(this.bias?[{}]:[]),B=j.enter().append("g").classed("measure-c",!0);B.append("line").classed("line",!0),B.append("line").classed("cap-zero",!0);const V=B.append("text").classed("label",!0);V.append("tspan").classed("c math-var",!0).text("c"),V.append("tspan").classed("equals",!0).text(" = "),V.append("tspan").classed("value",!0);const K=B.merge(j);K.select(".line").transition().duration(this.drag?0:h).ease(ki).attr("x1",u(this.l)).attr("y1",d(.47)).attr("x2",u(0)).attr("y2",d(.47)),K.select(".cap-zero").transition().duration(this.drag?0:h).ease(ki).attr("x1",u(0)).attr("y1",d(.47)+5).attr("x2",u(0)).attr("y2",d(.47)-5);K.select(".label").transition().duration(this.drag?0:h).ease(ki).attr("x",u(0)+(this.l<0?5:-5)).attr("y",d(.47)+3).attr("text-anchor",this.c<0?"start":"end").select(".value").tween("text",((t,e,r)=>{const n=r[e],i=dn(void 0!==n.c?n.c:this.c,this.c);return t=>{n.c=i(t),ar(n).text(es(".3")(n.c))}})),j.exit().remove();const X=N.selectAll(".measure-s").data(this.variance?[{}]:[]),W=X.enter().append("g").classed("measure-s",!0);W.append("line").classed("line",!0),W.append("line").classed("cap-left",!0),W.append("line").classed("cap-right",!0);const G=W.append("text").classed("label",!0);G.append("tspan").classed("s math-var",!0).text("σ"),G.append("tspan").classed("equals",!0).text(" = "),G.append("tspan").classed("value",!0);const Y=W.merge(X);Y.select(".line").transition().duration(this.drag?0:h).ease(ki).attr("x1",u(this.muS-this.s)).attr("y1",d(fo.normal.pdf(this.s,0,this.s))+10/this.s).attr("x2",u(this.muS+this.s)).attr("y2",d(fo.normal.pdf(this.s,0,this.s))+10/this.s),Y.select(".cap-left").transition().duration(this.drag?0:h).ease(ki).attr("x1",u(this.muS-this.s)).attr("y1",d(fo.normal.pdf(this.s,0,this.s))+10/this.s+5).attr("x2",u(this.muS-this.s)).attr("y2",d(fo.normal.pdf(this.s,0,this.s))+10/this.s-5),Y.select(".cap-right").transition().duration(this.drag?0:h).ease(ki).attr("x1",u(this.muS+this.s)).attr("y1",d(fo.normal.pdf(this.s,0,this.s))+10/this.s+5).attr("x2",u(this.muS+this.s)).attr("y2",d(fo.normal.pdf(this.s,0,this.s))+10/this.s-5);Y.select(".label").transition().duration(this.drag?0:h).ease(ki).attr("x",u(this.muS)).attr("y",d(fo.normal.pdf(this.s,0,this.s))+10/this.s-3).select(".value").tween("text",((t,e,r)=>{const n=r[e],i=dn(void 0!==n.s?n.s:this.s,this.s);return t=>{n.s=i(t),ar(n).text(es(".3")(n.s))}})),X.exit().remove();const Z=N.selectAll(".threshold").data(this.threshold?[{}]:[]),Q=Z.enter().append("g").classed("threshold",!0);Q.append("line").classed("line",!0),Q.append("circle").classed("handle",!0);const J=Q.merge(Z).attr("tabindex",this.interactive?0:null).classed("interactive",this.interactive);(this.firstUpdate||t.has("interactive"))&&(this.interactive?J.call(m).on("keydown",(t=>{if(["ArrowRight","ArrowLeft"].includes(t.key)){let e=this.l;switch(t.key){case"ArrowRight":e+=t.shiftKey?.01:.1;break;case"ArrowLeft":e-=t.shiftKey?.01:.1}e=e<u.domain()[0]?u.domain()[0]:e>u.domain()[1]?u.domain()[1]:e,e!==this.l&&(this.c=po.l2C(e,this.s),this.alignState(),this.sendEvent()),t.preventDefault()}})):J.on("drag",null).on("keydown",null)),J.select(".line").transition().duration(this.drag?0:h).ease(ki).attr("x1",u(this.l)).attr("y1",d(0)).attr("x2",u(this.l)).attr("y2",d(.54)),J.select(".handle").transition().duration(this.drag?0:h).ease(ki).attr("cx",u(this.l)).attr("cy",d(.54)),Z.exit().remove();const tt=N.selectAll(".histogram").data(this.histogram?[{}]:[]),et=tt.enter().append("g").classed("histogram",!0).merge(tt);if(tt.exit().remove(),this.histogram){const t=function(){var t=gt,e=mt,r=Et;function n(n){Array.isArray(n)||(n=Array.from(n));var i,s,a,o=n.length,l=new Array(o);for(i=0;i<o;++i)l[i]=t(n[i],i,n);var c=e(l),h=c[0],u=c[1],d=r(l,h,u);if(!Array.isArray(d)){const t=u,r=+d;if(e===mt&&([h,u]=At(h,u,r)),(d=_t(h,u,r))[0]<=h&&(a=St(h,u,r)),d[d.length-1]>=u)if(t>=u&&e===mt){const t=St(h,u,r);isFinite(t)&&(t>0?u=(Math.floor(u/t)+1)*t:t<0&&(u=(Math.ceil(u*-t)+1)/-t))}else d.pop()}for(var f=d.length,p=0,m=f;d[p]<=h;)++p;for(;d[m-1]>u;)--m;(p||m<f)&&(d=d.slice(p,m),f=m-p);var b,g=new Array(f+1);for(i=0;i<=f;++i)(b=g[i]=[]).x0=i>0?d[i-1]:h,b.x1=i<f?d[i]:u;if(isFinite(a)){if(a>0)for(i=0;i<o;++i)null!=(s=l[i])&&h<=s&&s<=u&&g[Math.min(f,Math.floor((s-h)/a))].push(n[i]);else if(a<0)for(i=0;i<o;++i)if(null!=(s=l[i])&&h<=s&&s<=u){const t=Math.floor((h-s)*a);g[Math.min(f,t+(d[t]<=s))].push(n[i])}}else for(i=0;i<o;++i)null!=(s=l[i])&&h<=s&&s<=u&&g[pt(d,s,0,f)].push(n[i]);return g}return n.value=function(e){return arguments.length?(t="function"==typeof e?e:yt(e),n):t},n.domain=function(t){return arguments.length?(e="function"==typeof t?t:yt([t[0],t[1]]),n):e},n.thresholds=function(t){return arguments.length?(r="function"==typeof t?t:yt(Array.isArray(t)?vt.call(t):t),n):r},n}().value((t=>t.trueEvidence)).domain(u.domain()).thresholds(Mt(this.binRange[0],this.binRange[1],this.binWidth)),e=t(this.trials);let r=-1,n=-1;for(let t=0;t<e.length;t+=1)for(let i=0;i<e[t].length;i+=1)e[t][i].binValue=e[t].x0,e[t][i].binCount=i,0===t&&(r=i),t===e.length-1&&(n=i);for(let t=0;t<this.trials.length;t+=1)this.trials[t].trueEvidence<this.binRange[0]&&(r+=1,this.trials[t].binCount=r,this.trials[t].binValue=e[0].x0),this.trials[t].trueEvidence>this.binRange[1]&&(n+=1,this.trials[t].binCount=n,this.trials[t].binValue=e[e.length-1].x0);const i=et.selectAll(".trial").data(this.trials,(t=>t.trial)),s=i.enter().append("rect").attr("stroke-width",3).attr("data-new-trial-ease-time",0).attr("stroke",this.getComputedStyleValue("---color-acc")).attr("fill",this.getComputedStyleValue("---color-acc-light")).merge(i).attr("class",(t=>`trial ${t.outcome}`)).attr("width",f-3).attr("height",f-3),a=s.filter((t=>t.new&&!t.paused));if(!a.empty()){const t=a.attr("data-new-trial-ease-time"),e=e=>Wa().domain([0,1]).range([t,1])(e),r=e=>r=>Wa().domain([e(t),1]).range([0,1])(e(r));a.transition("new").duration((e=>Math.floor((.75*e.duration+.25*e.wait)*(1-t)))).ease(e).attr("data-new-trial-ease-time",1).attrTween("stroke",((t,e,n)=>{const i=n[e],s=rn(i.getAttribute("stroke"),"stimulus"===this.color?"present"===t.signal?this.getComputedStyleValue("---color-hr"):this.getComputedStyleValue("---color-far"):"response"===this.color?this.getComputedStyleValue(`---color-${t.response}`):"outcome"===this.color?this.getComputedStyleValue(`---color-${t.outcome}`):this.getComputedStyleValue("---color-acc"));return t=>s(r($i)(t))})).attrTween("fill",((t,e,n)=>{const i=n[e],s=rn(i.getAttribute("fill"),"stimulus"===this.color?"present"===t.signal?this.getComputedStyleValue("---color-hr-light"):this.getComputedStyleValue("---color-far-light"):"response"===this.color?this.getComputedStyleValue(`---color-${t.response}-light`):"outcome"===this.color?this.getComputedStyleValue(`---color-${t.outcome}-light`):this.getComputedStyleValue("---color-acc-light"));return t=>s(r($i)(t))})).attrTween("x",((t,e,n)=>{const i=dn(n[e].getAttribute("x"),u(t.binValue)+1.5);return t=>i(r(ki)(t))})).attrTween("y",((t,e,n)=>{const i=dn(n[e].getAttribute("y"),d(0)+1.5-(t.binCount+1)*f);return t=>i(r($i)(t))})).on("end",((t,e,r)=>{r[e].removeAttribute("data-new-trial-ease-time"),t.new=!1,this.alignTrial(t),this.dispatchEvent(new CustomEvent("detectable-response",{detail:{stimulus:t.signal,response:t.response,outcome:t.outcome,h:this.h,m:this.m,fa:this.fa,cr:this.cr,nr:0},bubbles:!0}))}))}const o=s.filter((t=>t.new&&t.paused));if(!o.empty()){const t=o.attr("data-new-trial-ease-time");o.transition().duration(h).ease(ki).attr("x",(e=>dn(0,u(e.binValue)+1.5)(ki(t)))).attr("y",(e=>dn(0,d(0)+1.5-(e.binCount+1)*f)($i(t)))).attr("stroke",(e=>rn(this.getComputedStyleValue("---color-acc"),"stimulus"===this.color?"present"===e.signal?this.getComputedStyleValue("---color-hr"):this.getComputedStyleValue("---color-far"):"response"===this.color?this.getComputedStyleValue(`---color-${e.response}`):"outcome"===this.color?this.getComputedStyleValue(`---color-${e.outcome}`):this.getComputedStyleValue("---color-acc"))($i(t)))).attr("fill",(e=>rn(this.getComputedStyleValue("---color-acc-light"),"stimulus"===this.color?"present"===e.signal?this.getComputedStyleValue("---color-hr-light"):this.getComputedStyleValue("---color-far-light"):"response"===this.color?this.getComputedStyleValue(`---color-${e.response}-light`):"outcome"===this.color?this.getComputedStyleValue(`---color-${e.outcome}-light`):this.getComputedStyleValue("---color-acc-light"))($i(t))))}s.filter((t=>!t.new)).transition().duration(h).ease(ki).attr("x",(t=>u(t.binValue)+1.5)).attr("y",(t=>d(0)+1.5-(t.binCount+1)*f)).attr("stroke",(t=>"stimulus"===this.color?"present"===t.signal?this.getComputedStyleValue("---color-hr"):this.getComputedStyleValue("---color-far"):"response"===this.color?this.getComputedStyleValue(`---color-${t.response}`):"outcome"===this.color?this.getComputedStyleValue(`---color-${t.outcome}`):this.getComputedStyleValue("---color-acc"))).attr("fill",(t=>"stimulus"===this.color?"present"===t.signal?this.getComputedStyleValue("---color-hr-light"):this.getComputedStyleValue("---color-far-light"):"response"===this.color?this.getComputedStyleValue(`---color-${t.response}-light`):"outcome"===this.color?this.getComputedStyleValue(`---color-${t.outcome}-light`):this.getComputedStyleValue("---color-acc-light"))),i.exit().transition().duration(h).ease(xi).attrTween("stroke",((t,e,r)=>{const n=r[e],i=rn(n.getAttribute("stroke"),this.getComputedStyleValue("---color-acc"));return t=>i($i(t))})).attrTween("fill",((t,e,r)=>{const n=r[e],i=rn(n.getAttribute("fill"),this.getComputedStyleValue("---color-acc-light"));return t=>i($i(t))})).attrTween("x",((t,e,r)=>{const n=dn(r[e].getAttribute("x"),0);return t=>n($i(t))})).attrTween("y",((t,e,r)=>{const n=dn(r[e].getAttribute("y"),0);return t=>n(ki(t))})).remove()}const rt=$.append("g").classed("overlayer",!0),nt=k.select(".overlayer");rt.append("rect").classed("background",!0),nt.select(".background").attr("height",l).attr("width",c),this.drag=!1,this.firstUpdate=!1}pauseTrial(){const t=ar(this.renderRoot).select(".trial[data-new-trial-ease-time]");t.interrupt("new"),t.datum((t=>(t.paused=!0,t)))}resumeTrial(){ar(this.renderRoot).select(".trial[data-new-trial-ease-time]").datum((t=>(t.paused=!1,t))),this.requestUpdate()}}customElements.define("sdt-model",go);class vo extends lo{static get properties(){return{feedback:{attribute:"feedback",type:String,reflect:!0},trial:{attribute:"trial",type:Boolean,reflect:!0},payoff:{attribute:"payoff",type:String,reflect:!0},hPayoff:{attribute:"hit-payoff",type:Number,reflect:!0},mPayoff:{attribute:"miss-payoff",type:Number,reflect:!0},faPayoff:{attribute:"false-alarm-payoff",type:Number,reflect:!0},crPayoff:{attribute:"correct-rejection-payoff",type:Number,reflect:!0},nrPayoff:{attribute:"no-response-payoff",type:Number,reflect:!0},state:{attribute:!1,type:String,reflect:!1},trialCount:{attribute:!1,type:Number,reflect:!1},trialTotal:{attribute:!1,type:Number,reflect:!1}}}constructor(){super(),this.feedbacks=["none","accuracy","outcome"],this.feedback="outcome",this.trial=!1,this.payoffs=["none","trial","total"],this.payoff="none",this.hPayoff=0,this.mPayoff=0,this.crPayoff=0,this.faPayoff=0,this.nrPayoff=0,this.states=["off","waiting","feedback"],this.state="off",this.trialCount=0,this.trialTotal=0,this.signals=["present","absent"],this.signal=void 0,this.responses=["present","absent"],this.response=void 0,this.outcomes=["h","m","fa","cr","nr"],this.outcome=void 0,this.accuracies=["c","e","nr"],this.accuracy=void 0,this.h=0,this.m=0,this.cr=0,this.fa=0,this.c=0,this.e=0,this.nr=0}get trialPayoff(){switch(this.outcome){case"h":return this.hPayoff;case"m":return this.mPayoff;case"fa":return this.faPayoff;case"cr":return this.crPayoff;case"nr":return this.nrPayoff;default:return}}get totalPayoff(){return this.h*this.hPayoff+this.m*this.mPayoff+this.cr*this.crPayoff+this.fa*this.faPayoff+this.nr*this.nrPayoff}start(t,e){this.trialCount=e,this.state="waiting",this.signal=t,this.response=void 0,this.outcome=void 0}stop(){this.state="feedback",void 0===this.response&&(this.outcome="nr",this.nr+=1,this.accuracy="nr")}present(){this.responded("present")}absent(){this.responded("absent")}responded(t){this.state="feedback",this.response=t,"present"===this.signal&&"present"===this.response?(this.outcome="h",this.h+=1,this.accuracy="c",this.c+=1):"present"===this.signal&&"absent"===this.response?(this.outcome="m",this.m+=1,this.accuracy="e",this.e+=1):"absent"===this.signal&&"present"===this.response?(this.outcome="fa",this.fa+=1,this.accuracy="e",this.e+=1):"absent"===this.signal&&"absent"===this.response&&(this.outcome="cr",this.cr+=1,this.accuracy="c",this.c+=1),this.dispatchEvent(new CustomEvent("detectable-response",{detail:{trial:this.trialCount,signal:this.signal,response:this.response,outcome:this.outcome,payoff:this.trialPayoff,h:this.h,m:this.m,fa:this.fa,cr:this.cr,nr:this.nr,totalPayoff:this.totalPayoff},bubbles:!0}))}reset(){this.state="off",this.trialCount=0,this.signal=void 0,this.response=void 0,this.outcome=void 0,this.accuracy=void 0,this.h=0,this.m=0,this.cr=0,this.fa=0,this.nr=0,this.c=0,this.e=0}static get styles(){return[super.styles,a`
1314
1314
  :host {
1315
1315
  display: inline-block;
1316
1316
  }
@@ -1452,7 +1452,7 @@ const io=t=>t??K;customElements.define("decidables-slider",class extends no{stat
1452
1452
  <span class="label">Total: </span><span class="value">${e(this.totalPayoff)}</span>
1453
1453
  </div>`:j``}
1454
1454
  </div>`:j``}
1455
- </div>`}}customElements.define("detectable-response",vo);class yo extends lo{static get properties(){return{numeric:{attribute:"numeric",type:Boolean,reflect:!0},summary:{attribute:"summary",converter:ao,reflect:!0},color:{attribute:"color",type:String,reflect:!0},h:{attribute:"hits",type:Number,reflect:!0},m:{attribute:"misses",type:Number,reflect:!0},fa:{attribute:"false-alarms",type:Number,reflect:!0},cr:{attribute:"correct-rejections",type:Number,reflect:!0},payoff:{attribute:"payoff",type:Boolean,reflect:!0},hPayoff:{attribute:"hit-payoff",type:Number,reflect:!0},mPayoff:{attribute:"miss-payoff",type:Number,reflect:!0},faPayoff:{attribute:"false-alarm-payoff",type:Number,reflect:!0},crPayoff:{attribute:"correct-rejection-payoff",type:Number,reflect:!0},far:{attribute:!1,type:Number,reflect:!1},hr:{attribute:!1,type:Number,reflect:!1},acc:{attribute:!1,type:Number,reflect:!1},ppv:{attribute:!1,type:Number,reflect:!1},fomr:{attribute:!1,type:Number,reflect:!1}}}constructor(){super(),this.numeric=!1,this.summaries=["stimulusRates","responseRates","accuracy"],this.summary=new Set,this.colors=["none","accuracy","stimulus","response","outcome","all"],this.color="all",this.h=40,this.m=60,this.fa=75,this.cr=25,this.alignState(),this.payoff=!1,this.hPayoff=void 0,this.mPayoff=void 0,this.crPayoff=void 0,this.faPayoff=void 0}alignState(){this.hr=po.hM2Hr(this.h,this.m),this.far=po.faCr2Far(this.fa,this.cr),this.acc=po.hMFaCr2Acc(this.h,this.m,this.fa,this.cr),this.ppv=po.hFa2Ppv(this.h,this.fa),this.fomr=po.mCr2Fomr(this.m,this.cr)}sendEvent(){this.dispatchEvent(new CustomEvent("detectable-table-change",{detail:{h:this.h,m:this.m,hr:this.hr,fa:this.fa,cr:this.cr,far:this.far,acc:this.acc,ppv:this.ppv,fomr:this.fomr},bubbles:!0}))}hInput(t){this.h=parseInt(t.target.value,10),this.alignState(),this.sendEvent()}mInput(t){this.m=parseInt(t.target.value,10),this.alignState(),this.sendEvent()}faInput(t){this.fa=parseInt(t.target.value,10),this.alignState(),this.sendEvent()}crInput(t){this.cr=parseInt(t.target.value,10),this.alignState(),this.sendEvent()}hrInput(t){const e=parseFloat(t.target.value),r=this.h+this.m;this.h=Math.round(e*r),this.m=r-this.h,this.alignState(),this.sendEvent()}farInput(t){const e=parseFloat(t.target.value),r=this.fa+this.cr;this.fa=Math.round(e*r),this.cr=r-this.fa,this.alignState(),this.sendEvent()}accInput(t){const e=parseFloat(t.target.value),r=this.h+this.m,n=this.fa+this.cr,i=(this.hr+this.far-1)/2;let s=i+e,a=1+i-e;a>1&&(a=1,s=a+2*e-1),a<0&&(a=0,s=a+2*e-1),s>1&&(s=1,a=s-2*e+1),s<0&&(s=0,a=s-2*e+1),this.h=Math.round(s*r),this.m=r-this.h,this.fa=Math.round(a*n),this.cr=n-this.fa,this.alignState(),this.sendEvent()}ppvInput(t){const e=parseFloat(t.target.value),r=this.h+this.fa;this.h=Math.round(e*r),this.fa=r-this.h,this.alignState(),this.sendEvent()}fomrInput(t){const e=parseFloat(t.target.value),r=this.m+this.cr;this.m=Math.round(e*r),this.cr=r-this.m,this.alignState(),this.sendEvent()}static get styles(){return[super.styles,a`
1455
+ </div>`}}customElements.define("detectable-response",vo);class yo extends lo{static get properties(){return{numeric:{attribute:"numeric",type:Boolean,reflect:!0},summary:{attribute:"summary",converter:ao,reflect:!0},color:{attribute:"color",type:String,reflect:!0},h:{attribute:"hits",type:Number,reflect:!0},m:{attribute:"misses",type:Number,reflect:!0},fa:{attribute:"false-alarms",type:Number,reflect:!0},cr:{attribute:"correct-rejections",type:Number,reflect:!0},payoff:{attribute:"payoff",type:Boolean,reflect:!0},hPayoff:{attribute:"hit-payoff",type:Number,reflect:!0},mPayoff:{attribute:"miss-payoff",type:Number,reflect:!0},faPayoff:{attribute:"false-alarm-payoff",type:Number,reflect:!0},crPayoff:{attribute:"correct-rejection-payoff",type:Number,reflect:!0},far:{attribute:!1,type:Number,reflect:!1},hr:{attribute:!1,type:Number,reflect:!1},acc:{attribute:!1,type:Number,reflect:!1},ppv:{attribute:!1,type:Number,reflect:!1},fomr:{attribute:!1,type:Number,reflect:!1}}}constructor(){super(),this.numeric=!1,this.summaries=["stimulusRates","responseRates","accuracy"],this.summary=new Set,this.colors=["none","accuracy","stimulus","response","outcome","all"],this.color="all",this.payoff=!1,this.hPayoff=void 0,this.mPayoff=void 0,this.crPayoff=void 0,this.faPayoff=void 0,this.h=40,this.m=60,this.fa=75,this.cr=25,this.alignState()}alignState(){this.hr=po.hM2Hr(this.h,this.m),this.far=po.faCr2Far(this.fa,this.cr),this.acc=po.hMFaCr2Acc(this.h,this.m,this.fa,this.cr),this.ppv=po.hFa2Ppv(this.h,this.fa),this.fomr=po.mCr2Fomr(this.m,this.cr)}sendEvent(){this.dispatchEvent(new CustomEvent("detectable-table-change",{detail:{h:this.h,m:this.m,hr:this.hr,fa:this.fa,cr:this.cr,far:this.far,acc:this.acc,ppv:this.ppv,fomr:this.fomr},bubbles:!0}))}hInput(t){this.h=parseInt(t.target.value,10),this.alignState(),this.sendEvent()}mInput(t){this.m=parseInt(t.target.value,10),this.alignState(),this.sendEvent()}faInput(t){this.fa=parseInt(t.target.value,10),this.alignState(),this.sendEvent()}crInput(t){this.cr=parseInt(t.target.value,10),this.alignState(),this.sendEvent()}hrInput(t){const e=parseFloat(t.target.value),r=this.h+this.m;this.h=Math.round(e*r),this.m=r-this.h,this.alignState(),this.sendEvent()}farInput(t){const e=parseFloat(t.target.value),r=this.fa+this.cr;this.fa=Math.round(e*r),this.cr=r-this.fa,this.alignState(),this.sendEvent()}accInput(t){const e=parseFloat(t.target.value),r=this.h+this.m,n=this.fa+this.cr,i=(this.hr+this.far-1)/2;let s=i+e,a=1+i-e;a>1&&(a=1,s=a+2*e-1),a<0&&(a=0,s=a+2*e-1),s>1&&(s=1,a=s-2*e+1),s<0&&(s=0,a=s-2*e+1),this.h=Math.round(s*r),this.m=r-this.h,this.fa=Math.round(a*n),this.cr=n-this.fa,this.alignState(),this.sendEvent()}ppvInput(t){const e=parseFloat(t.target.value),r=this.h+this.fa;this.h=Math.round(e*r),this.fa=r-this.h,this.alignState(),this.sendEvent()}fomrInput(t){const e=parseFloat(t.target.value),r=this.m+this.cr;this.m=Math.round(e*r),this.cr=r-this.m,this.alignState(),this.sendEvent()}static get styles(){return[super.styles,a`
1456
1456
  :host {
1457
1457
  display: inline-block;
1458
1458
  }
@@ -1635,7 +1635,7 @@ const io=t=>t??K;customElements.define("decidables-slider",class extends no{stat
1635
1635
  :host([color="none"]) .acc {
1636
1636
  background: var(---color-element-background);
1637
1637
  }
1638
- `]}render(){const t=new Intl.NumberFormat("en-US",{style:"currency",currency:"USD",minimumFractionDigits:0,maximumFractionDigits:0}),e=e=>t.formatToParts(e).map((({type:t,value:e})=>"minusSign"===t?"−":e)).reduce(((t,e)=>t+e));let r,n,i,s,a,o,l,c,h;return this.alignState(),this.numeric?(r=j`
1638
+ `]}willUpdate(){this.alignState()}render(){const t=new Intl.NumberFormat("en-US",{style:"currency",currency:"USD",minimumFractionDigits:0,maximumFractionDigits:0}),e=e=>t.formatToParts(e).map((({type:t,value:e})=>"minusSign"===t?"−":e)).reduce(((t,e)=>t+e));let r,n,i,s,a,o,l,c,h;return this.numeric?(r=j`
1639
1639
  <decidables-spinner ?disabled=${!this.interactive} min="0" .value="${this.h}" @input=${this.hInput.bind(this)}>
1640
1640
  <span>Hits</span>
1641
1641
  ${this.payoff?j`<span class="payoff">${e(this.hPayoff)}</span>`:j``}
@@ -1872,7 +1872,7 @@ const io=t=>t??K;customElements.define("decidables-slider",class extends no{stat
1872
1872
  .s {
1873
1873
  background: var(---color-s-light);
1874
1874
  }
1875
- `]}}class xo extends wo{static get properties(){return{unequal:{attribute:"unequal",type:Boolean,reflect:!0},d:{attribute:"d",type:Number,reflect:!0},c:{attribute:"c",type:Number,reflect:!0},s:{attribute:"s",type:Number,reflect:!0},far:{attribute:!1,type:Number,reflect:!1}}}constructor(){super(),this.unequal=!1,this.d=0,this.c=0,this.s=1,this.alignState()}alignState(){this.far=po.dC2Far(this.d,this.c,this.s)}sendEvent(){this.dispatchEvent(new CustomEvent("sdt-equation-dc2far-change",{detail:{d:this.d,c:this.c,s:this.s,far:this.far},bubbles:!0}))}dInput(t){this.d=parseFloat(t.target.value),this.alignState(),this.sendEvent()}cInput(t){this.c=parseFloat(t.target.value),this.alignState(),this.sendEvent()}sInput(t){this.s=parseFloat(t.target.value),this.alignState(),this.sendEvent()}render(){let t,e,r,n,i;return this.alignState(),this.numeric?(t=j`
1875
+ `]}}class xo extends wo{static get properties(){return{unequal:{attribute:"unequal",type:Boolean,reflect:!0},d:{attribute:"d",type:Number,reflect:!0},c:{attribute:"c",type:Number,reflect:!0},s:{attribute:"s",type:Number,reflect:!0},far:{attribute:!1,type:Number,reflect:!1}}}constructor(){super(),this.unequal=!1,this.d=0,this.c=0,this.s=1,this.alignState()}alignState(){this.far=po.dC2Far(this.d,this.c,this.s)}sendEvent(){this.dispatchEvent(new CustomEvent("sdt-equation-dc2far-change",{detail:{d:this.d,c:this.c,s:this.s,far:this.far},bubbles:!0}))}dInput(t){this.d=parseFloat(t.target.value),this.alignState(),this.sendEvent()}cInput(t){this.c=parseFloat(t.target.value),this.alignState(),this.sendEvent()}sInput(t){this.s=parseFloat(t.target.value),this.alignState(),this.sendEvent()}willUpdate(){this.alignState()}render(){let t,e,r,n,i;return this.numeric?(t=j`
1876
1876
  <decidables-spinner class="d bottom" ?disabled=${!this.interactive} step=".001" .value="${this.d}" @input=${this.dInput.bind(this)}>
1877
1877
  <var class="math-var">d′</var>
1878
1878
  </decidables-spinner>
@@ -1936,7 +1936,7 @@ const io=t=>t??K;customElements.define("decidables-slider",class extends no{stat
1936
1936
  ${i}
1937
1937
  </tbody>
1938
1938
  </table>
1939
- </div>`}}customElements.define("sdt-equation-dc2far",xo);class $o extends wo{static get properties(){return{unequal:{attribute:"unequal",type:Boolean,reflect:!0},d:{attribute:"d",type:Number,reflect:!0},c:{attribute:"c",type:Number,reflect:!0},s:{attribute:"s",type:Number,reflect:!0},hr:{attribute:!1,type:Number,reflect:!1}}}constructor(){super(),this.unequal=!1,this.d=0,this.c=0,this.s=1,this.alignState()}alignState(){this.hr=po.dC2Hr(this.d,this.c,this.s)}sendEvent(){this.dispatchEvent(new CustomEvent("sdt-equation-dc2hr-change",{detail:{d:this.d,c:this.c,s:this.s,hr:this.hr},bubbles:!0}))}dInput(t){this.d=parseFloat(t.target.value),this.alignState(),this.sendEvent()}cInput(t){this.c=parseFloat(t.target.value),this.alignState(),this.sendEvent()}sInput(t){this.s=parseFloat(t.target.value),this.alignState(),this.sendEvent()}render(){let t,e,r,n,i;return this.alignState(),this.numeric?(t=j`
1939
+ </div>`}}customElements.define("sdt-equation-dc2far",xo);class $o extends wo{static get properties(){return{unequal:{attribute:"unequal",type:Boolean,reflect:!0},d:{attribute:"d",type:Number,reflect:!0},c:{attribute:"c",type:Number,reflect:!0},s:{attribute:"s",type:Number,reflect:!0},hr:{attribute:!1,type:Number,reflect:!1}}}constructor(){super(),this.unequal=!1,this.d=0,this.c=0,this.s=1,this.alignState()}alignState(){this.hr=po.dC2Hr(this.d,this.c,this.s)}sendEvent(){this.dispatchEvent(new CustomEvent("sdt-equation-dc2hr-change",{detail:{d:this.d,c:this.c,s:this.s,hr:this.hr},bubbles:!0}))}dInput(t){this.d=parseFloat(t.target.value),this.alignState(),this.sendEvent()}cInput(t){this.c=parseFloat(t.target.value),this.alignState(),this.sendEvent()}sInput(t){this.s=parseFloat(t.target.value),this.alignState(),this.sendEvent()}willUpdate(){this.alignState()}render(){let t,e,r,n,i;return this.numeric?(t=j`
1940
1940
  <decidables-spinner class="d bottom" ?disabled=${!this.interactive} step=".001" .value="${this.d}" @input=${this.dInput.bind(this)}>
1941
1941
  <var class="math-var">d′</var>
1942
1942
  </decidables-spinner>
@@ -2009,7 +2009,7 @@ const io=t=>t??K;customElements.define("decidables-slider",class extends no{stat
2009
2009
  ${i}
2010
2010
  </tbody>
2011
2011
  </table>
2012
- </div>`}}customElements.define("sdt-equation-dc2hr",$o);class ko extends wo{static get properties(){return{fa:{attribute:"false-alarms",type:Number,reflect:!0},cr:{attribute:"correct-rejections",type:Number,reflect:!0},far:{attribute:!1,type:Number,reflect:!1}}}constructor(){super(),this.fa=0,this.cr=0,this.alignState()}alignState(){this.far=po.faCr2Far(this.fa,this.cr)}sendEvent(){this.dispatchEvent(new CustomEvent("sdt-equation-facr2far-change",{detail:{fa:this.fa,cr:this.cr,far:this.far},bubbles:!0}))}faInput(t){this.fa=parseInt(t.target.value,10),this.alignState(),this.sendEvent()}crInput(t){this.cr=parseInt(t.target.value,10),this.alignState(),this.sendEvent()}render(){let t,e,r;return this.alignState(),this.numeric?(t=j`
2012
+ </div>`}}customElements.define("sdt-equation-dc2hr",$o);class ko extends wo{static get properties(){return{fa:{attribute:"false-alarms",type:Number,reflect:!0},cr:{attribute:"correct-rejections",type:Number,reflect:!0},far:{attribute:!1,type:Number,reflect:!1}}}constructor(){super(),this.fa=0,this.cr=0,this.alignState()}alignState(){this.far=po.faCr2Far(this.fa,this.cr)}sendEvent(){this.dispatchEvent(new CustomEvent("sdt-equation-facr2far-change",{detail:{fa:this.fa,cr:this.cr,far:this.far},bubbles:!0}))}faInput(t){this.fa=parseInt(t.target.value,10),this.alignState(),this.sendEvent()}crInput(t){this.cr=parseInt(t.target.value,10),this.alignState(),this.sendEvent()}willUpdate(){this.alignState()}render(){let t,e,r;return this.numeric?(t=j`
2013
2013
  <decidables-spinner class="fa" ?disabled=${!this.interactive} min="0" .value="${this.fa}" @input=${this.faInput.bind(this)}>
2014
2014
  <var>False Alarms</var>
2015
2015
  </decidables-spinner>
@@ -2040,7 +2040,7 @@ const io=t=>t??K;customElements.define("decidables-slider",class extends no{stat
2040
2040
  </tr>
2041
2041
  </tbody>
2042
2042
  </table>
2043
- </div>`}}customElements.define("sdt-equation-facr2far",ko);class _o extends wo{static get properties(){return{h:{attribute:"hits",type:Number,reflect:!0},fa:{attribute:"false-alarms",type:Number,reflect:!0},ppv:{attribute:!1,type:Number,reflect:!1}}}constructor(){super(),this.h=0,this.fa=0,this.alignState()}alignState(){this.ppv=po.hFa2Ppv(this.h,this.fa)}sendEvent(){this.dispatchEvent(new CustomEvent("sdt-equation-hfa2ppv-change",{detail:{h:this.h,fa:this.fa,ppv:this.ppv},bubbles:!0}))}hInput(t){this.h=parseInt(t.target.value,10),this.alignState(),this.sendEvent()}faInput(t){this.fa=parseInt(t.target.value,10),this.alignState(),this.sendEvent()}render(){let t,e,r;return this.alignState(),this.numeric?(t=j`
2043
+ </div>`}}customElements.define("sdt-equation-facr2far",ko);class _o extends wo{static get properties(){return{h:{attribute:"hits",type:Number,reflect:!0},fa:{attribute:"false-alarms",type:Number,reflect:!0},ppv:{attribute:!1,type:Number,reflect:!1}}}constructor(){super(),this.h=0,this.fa=0,this.alignState()}alignState(){this.ppv=po.hFa2Ppv(this.h,this.fa)}sendEvent(){this.dispatchEvent(new CustomEvent("sdt-equation-hfa2ppv-change",{detail:{h:this.h,fa:this.fa,ppv:this.ppv},bubbles:!0}))}hInput(t){this.h=parseInt(t.target.value,10),this.alignState(),this.sendEvent()}faInput(t){this.fa=parseInt(t.target.value,10),this.alignState(),this.sendEvent()}willUpdate(){this.alignState()}render(){let t,e,r;return this.numeric?(t=j`
2044
2044
  <decidables-spinner class="h" ?disabled=${!this.interactive} min="0" .value="${this.h}" @input=${this.hInput.bind(this)}>
2045
2045
  <var>Hits</var>
2046
2046
  </decidables-spinner>
@@ -2072,7 +2072,7 @@ const io=t=>t??K;customElements.define("decidables-slider",class extends no{stat
2072
2072
  </tbody>
2073
2073
  </table>
2074
2074
  </div>
2075
- `}}customElements.define("sdt-equation-hfa2ppv",_o);class So extends wo{static get properties(){return{h:{attribute:"hits",type:Number,reflect:!0},m:{attribute:"misses",type:Number,reflect:!0},hr:{attribute:!1,type:Number,reflect:!1}}}constructor(){super(),this.h=0,this.m=0,this.alignState()}alignState(){this.hr=po.hM2Hr(this.h,this.m)}sendEvent(){this.dispatchEvent(new CustomEvent("sdt-equation-hm2hr-change",{detail:{h:this.h,m:this.m,hr:this.hr},bubbles:!0}))}hInput(t){this.h=parseInt(t.target.value,10),this.alignState(),this.sendEvent()}mInput(t){this.m=parseInt(t.target.value,10),this.alignState(),this.sendEvent()}render(){let t,e,r;return this.alignState(),this.numeric?(t=j`
2075
+ `}}customElements.define("sdt-equation-hfa2ppv",_o);class So extends wo{static get properties(){return{h:{attribute:"hits",type:Number,reflect:!0},m:{attribute:"misses",type:Number,reflect:!0},hr:{attribute:!1,type:Number,reflect:!1}}}constructor(){super(),this.h=0,this.m=0,this.alignState()}alignState(){this.hr=po.hM2Hr(this.h,this.m)}sendEvent(){this.dispatchEvent(new CustomEvent("sdt-equation-hm2hr-change",{detail:{h:this.h,m:this.m,hr:this.hr},bubbles:!0}))}hInput(t){this.h=parseInt(t.target.value,10),this.alignState(),this.sendEvent()}mInput(t){this.m=parseInt(t.target.value,10),this.alignState(),this.sendEvent()}willUpdate(){this.alignState()}render(){let t,e,r;return this.numeric?(t=j`
2076
2076
  <decidables-spinner class="h" ?disabled=${!this.interactive} min="0" .value="${this.h}" @input=${this.hInput.bind(this)}>
2077
2077
  <var>Hits</var>
2078
2078
  </decidables-spinner>
@@ -2104,7 +2104,7 @@ const io=t=>t??K;customElements.define("decidables-slider",class extends no{stat
2104
2104
  </tbody>
2105
2105
  </table>
2106
2106
  </div>
2107
- `}}customElements.define("sdt-equation-hm2hr",So);class Ao extends wo{static get properties(){return{h:{attribute:"hits",type:Number,reflect:!0},m:{attribute:"misses",type:Number,reflect:!0},fa:{attribute:"false-alarms",type:Number,reflect:!0},cr:{attribute:"correct-rejections",type:Number,reflect:!0},acc:{attribute:!1,type:Number,reflect:!1}}}constructor(){super(),this.h=0,this.m=0,this.fa=0,this.cr=0,this.alignState()}alignState(){this.acc=po.hMFaCr2Acc(this.h,this.m,this.fa,this.cr)}sendEvent(){this.dispatchEvent(new CustomEvent("sdt-equation-hmfacr2acc-change",{detail:{h:this.h,m:this.m,fa:this.fa,cr:this.cr,acc:this.acc},bubbles:!0}))}hInput(t){this.h=parseInt(t.target.value,10),this.alignState(),this.sendEvent()}mInput(t){this.m=parseInt(t.target.value,10),this.alignState(),this.sendEvent()}faInput(t){this.fa=parseInt(t.target.value,10),this.alignState(),this.sendEvent()}crInput(t){this.cr=parseInt(t.target.value,10),this.alignState(),this.sendEvent()}render(){let t,e,r,n,i;return this.alignState(),this.numeric?(t=j`
2107
+ `}}customElements.define("sdt-equation-hm2hr",So);class Ao extends wo{static get properties(){return{h:{attribute:"hits",type:Number,reflect:!0},m:{attribute:"misses",type:Number,reflect:!0},fa:{attribute:"false-alarms",type:Number,reflect:!0},cr:{attribute:"correct-rejections",type:Number,reflect:!0},acc:{attribute:!1,type:Number,reflect:!1}}}constructor(){super(),this.h=0,this.m=0,this.fa=0,this.cr=0,this.alignState()}alignState(){this.acc=po.hMFaCr2Acc(this.h,this.m,this.fa,this.cr)}sendEvent(){this.dispatchEvent(new CustomEvent("sdt-equation-hmfacr2acc-change",{detail:{h:this.h,m:this.m,fa:this.fa,cr:this.cr,acc:this.acc},bubbles:!0}))}hInput(t){this.h=parseInt(t.target.value,10),this.alignState(),this.sendEvent()}mInput(t){this.m=parseInt(t.target.value,10),this.alignState(),this.sendEvent()}faInput(t){this.fa=parseInt(t.target.value,10),this.alignState(),this.sendEvent()}crInput(t){this.cr=parseInt(t.target.value,10),this.alignState(),this.sendEvent()}willUpdate(){this.alignState()}render(){let t,e,r,n,i;return this.numeric?(t=j`
2108
2108
  <decidables-spinner class="h" ?disabled=${!this.interactive} min="0" .value="${this.h}" @input=${this.hInput.bind(this)}>
2109
2109
  <var>Hits</var>
2110
2110
  </decidables-spinner>
@@ -2143,7 +2143,7 @@ const io=t=>t??K;customElements.define("decidables-slider",class extends no{stat
2143
2143
  </tr>
2144
2144
  </tbody>
2145
2145
  </table>
2146
- </div>`}}customElements.define("sdt-equation-hmfacr2acc",Ao);class Eo extends wo{static get properties(){return{unequal:{attribute:"unequal",type:Boolean,reflect:!0},hr:{attribute:"hit-rate",type:Number,reflect:!0},far:{attribute:"false-alarm-rate",type:Number,reflect:!0},s:{attribute:"s",type:Number,reflect:!0},c:{attribute:!1,type:Number,reflect:!1}}}constructor(){super(),this.unequal=!1,this.hr=0,this.far=0,this.s=1,this.alignState()}alignState(){this.c=po.hrFar2C(this.hr,this.far,this.s)}sendEvent(){this.dispatchEvent(new CustomEvent("sdt-equation-hrfar2c-change",{detail:{hr:this.hr,far:this.far,s:this.s,c:this.c},bubbles:!0}))}hrInput(t){this.hr=parseFloat(t.target.value),this.alignState(),this.sendEvent()}farInput(t){this.far=parseFloat(t.target.value),this.alignState(),this.sendEvent()}sInput(t){this.s=parseFloat(t.target.value),this.alignState(),this.sendEvent()}render(){let t,e,r,n,i;return this.alignState(),this.numeric?(t=j`
2146
+ </div>`}}customElements.define("sdt-equation-hmfacr2acc",Ao);class Eo extends wo{static get properties(){return{unequal:{attribute:"unequal",type:Boolean,reflect:!0},hr:{attribute:"hit-rate",type:Number,reflect:!0},far:{attribute:"false-alarm-rate",type:Number,reflect:!0},s:{attribute:"s",type:Number,reflect:!0},c:{attribute:!1,type:Number,reflect:!1}}}constructor(){super(),this.unequal=!1,this.hr=0,this.far=0,this.s=1,this.alignState()}alignState(){this.c=po.hrFar2C(this.hr,this.far,this.s)}sendEvent(){this.dispatchEvent(new CustomEvent("sdt-equation-hrfar2c-change",{detail:{hr:this.hr,far:this.far,s:this.s,c:this.c},bubbles:!0}))}hrInput(t){this.hr=parseFloat(t.target.value),this.alignState(),this.sendEvent()}farInput(t){this.far=parseFloat(t.target.value),this.alignState(),this.sendEvent()}sInput(t){this.s=parseFloat(t.target.value),this.alignState(),this.sendEvent()}willUpdate(){this.alignState()}render(){let t,e,r,n,i;return this.numeric?(t=j`
2147
2147
  <decidables-spinner class="hr bottom" ?disabled=${!this.interactive} min="0" max="1" step=".001" .value="${this.hr}" @input=${this.hrInput.bind(this)}>
2148
2148
  <var>Hit Rate</var>
2149
2149
  </decidables-spinner>
@@ -2204,7 +2204,7 @@ const io=t=>t??K;customElements.define("decidables-slider",class extends no{stat
2204
2204
  ${i}
2205
2205
  </tbody>
2206
2206
  </table>
2207
- </div>`}}customElements.define("sdt-equation-hrfar2c",Eo);class Mo extends wo{static get properties(){return{unequal:{attribute:"unequal",type:Boolean,reflect:!0},hr:{attribute:"hit-rate",type:Number,reflect:!0},far:{attribute:"false-alarm-rate",type:Number,reflect:!0},s:{attribute:"s",type:Number,reflect:!0},d:{attribute:!1,type:Number,reflect:!1}}}constructor(){super(),this.unequal=!1,this.hr=0,this.far=0,this.s=1,this.alignState()}alignState(){this.d=po.hrFar2D(this.hr,this.far,this.s)}sendEvent(){this.dispatchEvent(new CustomEvent("sdt-equation-hrfar2d-change",{detail:{hr:this.hr,far:this.far,s:this.s,d:this.d},bubbles:!0}))}hrInput(t){this.hr=parseFloat(t.target.value),this.alignState(),this.sendEvent()}farInput(t){this.far=parseFloat(t.target.value),this.alignState(),this.sendEvent()}sInput(t){this.s=parseFloat(t.target.value),this.alignState(),this.sendEvent()}render(){let t,e,r,n,i;return this.alignState(),this.numeric?(t=j`
2207
+ </div>`}}customElements.define("sdt-equation-hrfar2c",Eo);class Mo extends wo{static get properties(){return{unequal:{attribute:"unequal",type:Boolean,reflect:!0},hr:{attribute:"hit-rate",type:Number,reflect:!0},far:{attribute:"false-alarm-rate",type:Number,reflect:!0},s:{attribute:"s",type:Number,reflect:!0},d:{attribute:!1,type:Number,reflect:!1}}}constructor(){super(),this.unequal=!1,this.hr=0,this.far=0,this.s=1,this.alignState()}alignState(){this.d=po.hrFar2D(this.hr,this.far,this.s)}sendEvent(){this.dispatchEvent(new CustomEvent("sdt-equation-hrfar2d-change",{detail:{hr:this.hr,far:this.far,s:this.s,d:this.d},bubbles:!0}))}hrInput(t){this.hr=parseFloat(t.target.value),this.alignState(),this.sendEvent()}farInput(t){this.far=parseFloat(t.target.value),this.alignState(),this.sendEvent()}sInput(t){this.s=parseFloat(t.target.value),this.alignState(),this.sendEvent()}willUpdate(){this.alignState()}render(){let t,e,r,n,i;return this.numeric?(t=j`
2208
2208
  <decidables-spinner class="hr bottom" ?disabled=${!this.interactive} min="0" max="1" step=".001" .value="${this.hr}" @input=${this.hrInput.bind(this)}>
2209
2209
  <var>Hit Rate</var>
2210
2210
  </decidables-spinner>
@@ -2248,7 +2248,7 @@ const io=t=>t??K;customElements.define("decidables-slider",class extends no{stat
2248
2248
  ${i}
2249
2249
  </tbody>
2250
2250
  </table>
2251
- </div>`}}customElements.define("sdt-equation-hrfar2d",Mo);class To extends wo{static get properties(){return{m:{attribute:"misses",type:Number,reflect:!0},cr:{attribute:"correct-rejections",type:Number,reflect:!0},fomr:{attribute:!1,type:Number,reflect:!1}}}constructor(){super(),this.m=0,this.cr=0,this.alignState()}alignState(){this.fomr=po.mCr2Fomr(this.m,this.cr)}sendEvent(){this.dispatchEvent(new CustomEvent("sdt-equation-mcr2fomr-change",{detail:{m:this.m,cr:this.cr,fomr:this.fomr},bubbles:!0}))}mInput(t){this.m=parseInt(t.target.value,10),this.alignState(),this.sendEvent()}crInput(t){this.cr=parseInt(t.target.value,10),this.alignState(),this.sendEvent()}render(){let t,e,r;return this.alignState(),this.numeric?(t=j`
2251
+ </div>`}}customElements.define("sdt-equation-hrfar2d",Mo);class To extends wo{static get properties(){return{m:{attribute:"misses",type:Number,reflect:!0},cr:{attribute:"correct-rejections",type:Number,reflect:!0},fomr:{attribute:!1,type:Number,reflect:!1}}}constructor(){super(),this.m=0,this.cr=0,this.alignState()}alignState(){this.fomr=po.mCr2Fomr(this.m,this.cr)}sendEvent(){this.dispatchEvent(new CustomEvent("sdt-equation-mcr2fomr-change",{detail:{m:this.m,cr:this.cr,fomr:this.fomr},bubbles:!0}))}mInput(t){this.m=parseInt(t.target.value,10),this.alignState(),this.sendEvent()}crInput(t){this.cr=parseInt(t.target.value,10),this.alignState(),this.sendEvent()}willUpdate(){this.alignState()}render(){let t,e,r;return this.numeric?(t=j`
2252
2252
  <decidables-spinner class="m" ?disabled=${!this.interactive} min="0" .value="${this.m}" @input=${this.mInput.bind(this)}>
2253
2253
  <var>Misses</var>
2254
2254
  </decidables-spinner>
@@ -2329,5 +2329,5 @@ const io=t=>t??K;customElements.define("decidables-slider",class extends no{stat
2329
2329
  <div class="body">
2330
2330
  <slot>Empty!</slot>
2331
2331
  </div>
2332
- </div>`}}customElements.define("sdt-example",Co);class No extends Co{firstUpdated(){this.one={},this.one.h=95,this.one.m=5,this.one.fa=35,this.one.cr=65,this.one.hr=po.hM2Hr(this.one.h,this.one.m),this.one.far=po.faCr2Far(this.one.fa,this.one.cr),this.one.d=po.hrFar2D(this.one.hr,this.one.far),this.one.c=po.hrFar2C(this.one.hr,this.one.far),this.two={},this.two.h=40,this.two.m=60,this.two.fa=20,this.two.cr=80,this.two.hr=po.hM2Hr(this.two.h,this.two.m),this.two.far=po.faCr2Far(this.two.fa,this.two.cr),this.two.d=po.hrFar2D(this.two.hr,this.two.far),this.two.c=po.hrFar2C(this.two.hr,this.two.far),this.detectableTableOne=this.querySelector("detectable-table:nth-of-type(1)"),this.detectableTableTwo=this.querySelector("detectable-table:nth-of-type(2)"),this.rocSpace=this.querySelector("roc-space"),this.sdtModelOne=this.querySelector("sdt-model:nth-of-type(1)"),this.sdtModelTwo=this.querySelector("sdt-model:nth-of-type(2)"),this.detectableTableOne&&(this.detectableTableOne.h=this.one.h,this.detectableTableOne.m=this.one.m,this.detectableTableOne.fa=this.one.fa,this.detectableTableOne.cr=this.one.cr,this.detectableTableOne.addEventListener("detectable-table-change",(t=>{this.rocSpace&&this.rocSpace.set(t.detail.hr,t.detail.far,"default","↑"),this.sdtModelOne&&(this.sdtModelOne.d=po.hrFar2D(t.detail.hr,t.detail.far),this.sdtModelOne.c=po.hrFar2C(t.detail.hr,t.detail.far))}))),this.detectableTableTwo&&(this.detectableTableTwo.h=this.two.h,this.detectableTableTwo.m=this.two.m,this.detectableTableTwo.fa=this.two.fa,this.detectableTableTwo.cr=this.two.cr,this.detectableTableTwo.addEventListener("detectable-table-change",(t=>{this.rocSpace&&this.rocSpace.set(t.detail.hr,t.detail.far,"two","↓"),this.sdtModelTwo&&(this.sdtModelTwo.d=po.hrFar2D(t.detail.hr,t.detail.far),this.sdtModelTwo.c=po.hrFar2C(t.detail.hr,t.detail.far))}))),this.rocSpace&&(this.rocSpace.set(this.one.hr,this.one.far,"default","↑"),this.rocSpace.set(this.two.hr,this.two.far,"two","↓"),this.rocSpace.addEventListener("roc-point-change",(t=>{if("default"===t.detail.name&&this.sdtModelOne?(this.sdtModelOne.d=t.detail.d,this.sdtModelOne.c=t.detail.c):"two"===t.detail.name&&this.sdtModelTwo&&(this.sdtModelTwo.d=t.detail.d,this.sdtModelTwo.c=t.detail.c),"default"===t.detail.name&&this.detectableTableOne){const e=Math.round((this.detectableTableOne.h+this.detectableTableOne.m)*t.detail.hr),r=this.detectableTableOne.h+this.detectableTableOne.m-e,n=Math.round((this.detectableTableOne.fa+this.detectableTableOne.cr)*t.detail.far),i=this.detectableTableOne.fa+this.detectableTableOne.cr-n;this.detectableTableOne.h=e,this.detectableTableOne.m=r,this.detectableTableOne.fa=n,this.detectableTableOne.cr=i}else if("two"===t.detail.name&&this.detectableTableTwo){const e=Math.round((this.detectableTableTwo.h+this.detectableTableTwo.m)*t.detail.hr),r=this.detectableTableTwo.h+this.detectableTableTwo.m-e,n=Math.round((this.detectableTableTwo.fa+this.detectableTableTwo.cr)*t.detail.far),i=this.detectableTableTwo.fa+this.detectableTableTwo.cr-n;this.detectableTableTwo.h=e,this.detectableTableTwo.m=r,this.detectableTableTwo.fa=n,this.detectableTableTwo.cr=i}}))),this.sdtModelOne&&(this.sdtModelOne.d=this.one.d,this.sdtModelOne.c=this.one.c,this.sdtModelOne.addEventListener("sdt-model-change",(t=>{if(this.rocSpace&&this.rocSpace.setWithSDT(t.detail.d,t.detail.c,"default","↑"),this.detectableTableOne){const e=Math.round((this.detectableTableOne.h+this.detectableTableOne.m)*t.detail.hr),r=this.detectableTableOne.h+this.detectableTableOne.m-e,n=Math.round((this.detectableTableOne.fa+this.detectableTableOne.cr)*t.detail.far),i=this.detectableTableOne.fa+this.detectableTableOne.cr-n;this.detectableTableOne.h=e,this.detectableTableOne.m=r,this.detectableTableOne.fa=n,this.detectableTableOne.cr=i}}))),this.sdtModelTwo&&(this.sdtModelTwo.d=this.two.d,this.sdtModelTwo.c=this.two.c,this.sdtModelTwo.addEventListener("sdt-model-change",(t=>{if(this.rocSpace&&this.rocSpace.setWithSDT(t.detail.d,t.detail.c,"two","↓"),this.detectableTableTwo){const e=Math.round((this.detectableTableTwo.h+this.detectableTableTwo.m)*t.detail.hr),r=this.detectableTableTwo.h+this.detectableTableTwo.m-e,n=Math.round((this.detectableTableTwo.fa+this.detectableTableTwo.cr)*t.detail.far),i=this.detectableTableTwo.fa+this.detectableTableTwo.cr-n;this.detectableTableTwo.h=e,this.detectableTableTwo.m=r,this.detectableTableTwo.fa=n,this.detectableTableTwo.cr=i}})))}}customElements.define("sdt-example-double-interactive",No);class Ro extends Co{firstUpdated(){this.count=1,this.detectableControl=this.querySelector("detectable-control"),this.rdkTask=this.querySelector("rdk-task"),this.detectableResponse=this.querySelector("detectable-response"),this.detectableTable=this.querySelector("detectable-table"),this.rocSpace=this.querySelector("roc-space"),this.sdtModel=this.querySelector("sdt-model"),this.rocSpace&&this.rocSpace.hasAttribute("history")&&this.rocSpace.set(.5,.5,"default",this.count),this.detectableControl&&this.detectableControl.hasAttribute("trials")&&this.detectableControl.addEventListener("detectable-control-trials",(t=>{this.rdkTask&&(this.rdkTask.trials=t.detail.trials),this.detectableResponse&&(this.detectableResponse.trialTotal=t.detail.trials)})),this.detectableControl&&this.detectableControl.hasAttribute("duration")&&this.detectableControl.addEventListener("detectable-control-duration",(t=>{this.rdkTask&&(this.rdkTask.duration=t.detail.duration,this.rdkTask.wait=t.detail.duration,this.rdkTask.iti=t.detail.duration)})),this.detectableControl&&this.detectableControl.hasAttribute("coherence")&&this.detectableControl.addEventListener("detectable-control-coherence",(t=>{this.rdkTask&&(this.rdkTask.coherence=t.detail.coherence)})),this.detectableControl&&this.detectableControl.hasAttribute("payoff")&&this.detectableControl.addEventListener("detectable-control-payoff",(t=>{this.detectableResponse&&(this.detectableResponse.hPayoff=t.detail.payoff,this.detectableResponse.mPayoff=0-t.detail.payoff,this.detectableResponse.faPayoff=0-(100-t.detail.payoff),this.detectableResponse.crPayoff=100-t.detail.payoff),this.detectableTable&&(this.detectableTable.hPayoff=t.detail.payoff,this.detectableTable.mPayoff=0-t.detail.payoff,this.detectableTable.faPayoff=0-(100-t.detail.payoff),this.detectableTable.crPayoff=100-t.detail.payoff)})),this.detectableControl&&this.detectableControl.hasAttribute("run")&&this.detectableControl.addEventListener("detectable-control-run",(()=>{this.rdkTask&&(this.rdkTask.running=!0)})),this.detectableControl&&this.detectableControl.hasAttribute("pause")&&this.detectableControl.addEventListener("detectable-control-pause",(()=>{this.rdkTask&&(this.rdkTask.running=!1)})),this.detectableControl&&this.detectableControl.hasAttribute("reset")&&this.detectableControl.addEventListener("detectable-control-reset",(()=>{this.rdkTask&&this.rdkTask.reset(),this.detectableResponse&&this.detectableResponse.reset(),this.detectableTable&&(this.detectableTable.h=0,this.detectableTable.m=0,this.detectableTable.fa=0,this.detectableTable.cr=0),this.rocSpace&&(this.rocSpace.hasAttribute("history")?(this.count+=1,this.rocSpace.set(.5,.5,`point${this.count}`,this.count)):(this.rocSpace.hr=.5,this.rocSpace.far=.5)),this.sdtModel&&(this.sdtModel.d=0,this.sdtModel.c=0)})),this.rdkTask&&this.detectableResponse&&(this.detectableResponse.trialTotal=this.rdkTask.trials),this.rdkTask&&this.rdkTask.addEventListener("rdk-trial-start",(t=>{this.detectableResponse&&this.detectableResponse.start(t.detail.signal,t.detail.trial)})),this.rdkTask&&this.rdkTask.addEventListener("rdk-trial-end",(()=>{this.detectableResponse&&this.detectableResponse.stop()})),this.rdkTask&&this.rdkTask.addEventListener("rdk-block-end",(()=>{this.detectableControl&&this.detectableControl.complete()})),this.detectableResponse&&this.detectableResponse.addEventListener("detectable-response",(t=>{this.detectableTable&&(this.detectableTable.h=t.detail.h,this.detectableTable.m=t.detail.m,this.detectableTable.fa=t.detail.fa,this.detectableTable.cr=t.detail.cr);const e=po.hM2Hr(t.detail.h+1,t.detail.m+1),r=po.faCr2Far(t.detail.fa+1,t.detail.cr+1);this.rocSpace&&(this.rocSpace.hasAttribute("history")?this.rocSpace.set(e,r,1===this.count?"default":`point${this.count}`,this.count):(this.rocSpace.hr=e,this.rocSpace.far=r)),this.sdtModel&&(this.sdtModel.d=po.hrFar2D(e,r),this.sdtModel.c=po.hrFar2C(e,r))}))}}customElements.define("sdt-example-human",Ro);class Po extends Co{firstUpdated(){this.detectableControl=this.querySelector("detectable-control"),this.detectableTable=this.querySelector("detectable-table"),this.rocSpace=this.querySelector("roc-space"),this.sdtModel=this.querySelector("sdt-model"),this.rocSpaces=this.querySelectorAll("roc-space"),this.detectableControl&&this.detectableControl.hasAttribute("color")&&this.detectableControl.addEventListener("detectable-control-color",(t=>{this.sdtModel&&(this.sdtModel.color=t.detail.color),this.detectableTable&&(this.detectableTable.color=t.detail.color)})),this.detectableControl&&this.detectableControl.addEventListener("detectable-control-z-roc",(t=>{this.rocSpaces.length>0&&this.rocSpaces.forEach((e=>{e.zRoc=t.detail.zRoc}))})),this.detectableTable&&(this.rocSpace&&(this.rocSpace.hr=po.hM2Hr(this.detectableTable.h,this.detectableTable.m),this.rocSpace.far=po.faCr2Far(this.detectableTable.fa,this.detectableTable.cr)),this.sdtModel&&(this.sdtModel.d=po.hrFar2D(po.hM2Hr(this.detectableTable.h,this.detectableTable.m),po.faCr2Far(this.detectableTable.fa,this.detectableTable.cr),this.sdtModel.s),this.sdtModel.c=po.hrFar2C(po.hM2Hr(this.detectableTable.h,this.detectableTable.m),po.faCr2Far(this.detectableTable.fa,this.detectableTable.cr),this.sdtModel.s)),this.detectableTable.addEventListener("detectable-table-change",(t=>{this.rocSpace&&(this.rocSpace.far=t.detail.far,this.rocSpace.hr=t.detail.hr),this.sdtModel&&(this.sdtModel.d=po.hrFar2D(t.detail.hr,t.detail.far,this.sdtModel.s),this.sdtModel.c=po.hrFar2C(t.detail.hr,t.detail.far,this.sdtModel.s))}))),this.rocSpace&&(this.sdtModel&&!this.detectableTable&&(this.sdtModel.d=po.hrFar2D(this.rocSpace.hr,this.rocSpace.far,this.rocSpace.s),this.sdtModel.c=po.hrFar2C(this.rocSpace.hr,this.rocSpace.far,this.rocSpace.s),this.sdtModel.s=this.rocSpace.s),this.rocSpace.addEventListener("roc-point-change",(t=>{if(this.sdtModel&&(this.sdtModel.d=t.detail.d,this.sdtModel.c=t.detail.c,this.sdtModel.s=t.detail.s),this.detectableTable){const e=Math.round((this.detectableTable.h+this.detectableTable.m)*t.detail.hr),r=this.detectableTable.h+this.detectableTable.m-e,n=Math.round((this.detectableTable.fa+this.detectableTable.cr)*t.detail.far),i=this.detectableTable.fa+this.detectableTable.cr-n;this.detectableTable.h=e,this.detectableTable.m=r,this.detectableTable.fa=n,this.detectableTable.cr=i}}))),this.sdtModel&&this.sdtModel.addEventListener("sdt-model-change",(t=>{if(this.rocSpaces.length>0&&this.rocSpaces.forEach((e=>{e.setWithSDT(t.detail.d,t.detail.c,"default","",t.detail.s)})),this.detectableTable){const e=Math.round((this.detectableTable.h+this.detectableTable.m)*t.detail.hr),r=this.detectableTable.h+this.detectableTable.m-e,n=Math.round((this.detectableTable.fa+this.detectableTable.cr)*t.detail.far),i=this.detectableTable.fa+this.detectableTable.cr-n;this.detectableTable.h=e,this.detectableTable.m=r,this.detectableTable.fa=n,this.detectableTable.cr=i}}))}}customElements.define("sdt-example-interactive",Po);class qo extends Co{firstUpdated(){this.count=1,this.detectableControl=this.querySelector("detectable-control"),this.rdkTask=this.querySelector("rdk-task"),this.sdtModel=this.querySelector("sdt-model"),this.detectableResponse=this.querySelector("detectable-response"),this.detectableTable=this.querySelector("detectable-table"),this.rocSpace=this.querySelector("roc-space"),this.detectableControl&&this.detectableControl.hasAttribute("color")&&this.detectableControl.addEventListener("detectable-control-color",(t=>{this.sdtModel&&(this.sdtModel.color=t.detail.color),this.detectableTable&&(this.detectableTable.color=t.detail.color)})),this.detectableControl&&this.detectableControl.hasAttribute("duration")&&this.detectableControl.addEventListener("detectable-control-duration",(t=>{this.rdkTask&&(this.rdkTask.duration=t.detail.duration,this.rdkTask.wait=t.detail.duration,this.rdkTask.iti=t.detail.duration)})),this.detectableControl&&this.detectableControl.hasAttribute("trials")&&this.detectableControl.addEventListener("detectable-control-trials",(t=>{this.rdkTask&&(this.rdkTask.trials=t.detail.trials),this.detectableResponse&&(this.detectableResponse.trialTotal=t.detail.trials)})),this.detectableControl&&this.detectableControl.hasAttribute("coherence")&&this.detectableControl.addEventListener("detectable-control-coherence",(t=>{this.rdkTask&&(this.rdkTask.coherence=t.detail.coherence)})),this.detectableControl&&this.detectableControl.hasAttribute("run")&&this.detectableControl.addEventListener("detectable-control-run",(()=>{this.rdkTask&&(this.rdkTask.running=!0),this.sdtModel&&this.sdtModel.resumeTrial()})),this.detectableControl&&this.detectableControl.hasAttribute("pause")&&this.detectableControl.addEventListener("detectable-control-pause",(()=>{this.rdkTask&&(this.rdkTask.running=!1),this.sdtModel&&this.sdtModel.pauseTrial()})),this.detectableControl&&this.detectableControl.hasAttribute("reset")&&this.detectableControl.addEventListener("detectable-control-reset",(()=>{this.rdkTask&&this.rdkTask.reset(),this.detectableResponse&&this.detectableResponse.reset(),this.sdtModel&&this.sdtModel.reset(),this.detectableTable&&(this.detectableTable.h=0,this.detectableTable.m=0,this.detectableTable.fa=0,this.detectableTable.cr=0),this.rocSpace&&(this.rocSpace.hasAttribute("history")?(this.count+=1,this.rocSpace.set(.5,.5,`point${this.count}`,"",1)):(this.rocSpace.hr=.5,this.rocSpace.far=.5))})),this.rdkTask&&this.detectableResponse&&(this.detectableResponse.trialTotal=this.rdkTask.trials),this.rdkTask&&this.rdkTask.addEventListener("rdk-trial-start",(t=>{this.detectableResponse&&this.detectableResponse.start(t.detail.signal,t.detail.trial),this.sdtModel&&this.sdtModel.trial(t.detail.trial,t.detail.signal,t.detail.duration,t.detail.wait,t.detail.iti)})),this.rdkTask&&this.rdkTask.addEventListener("rdk-trial-middle",(()=>{})),this.rdkTask&&this.rdkTask.addEventListener("rdk-trial-end",(()=>{this.detectableResponse&&this.detectableResponse.stop()})),this.rdkTask&&this.rdkTask.addEventListener("rdk-block-end",(()=>{this.detectableControl&&this.detectableControl.complete()})),this.sdtModel&&this.sdtModel.addEventListener("detectable-response",(t=>{this.detectableResponse&&this.detectableResponse.responded(t.detail.response),this.detectableTable&&(this.detectableTable.h=t.detail.h,this.detectableTable.m=t.detail.m,this.detectableTable.fa=t.detail.fa,this.detectableTable.cr=t.detail.cr),this.rocSpace&&(this.rocSpace.hr=po.hM2Hr(t.detail.h,t.detail.m),this.rocSpace.far=po.faCr2Far(t.detail.fa,t.detail.cr))})),this.sdtModel&&this.sdtModel.addEventListener("sdt-model-change",(t=>{this.detectableTable&&(this.detectableTable.h=t.detail.h,this.detectableTable.m=t.detail.m,this.detectableTable.fa=t.detail.fa,this.detectableTable.cr=t.detail.cr),this.rocSpace&&(this.rocSpace.hr=po.hM2Hr(t.detail.h,t.detail.m),this.rocSpace.far=po.faCr2Far(t.detail.fa,t.detail.cr))}))}}customElements.define("sdt-example-model",qo);class zo extends Co{static get properties(){return{variable:{attribute:"variable",type:String,reflect:!0},values:{attribute:"values",converter:so,reflect:!0}}}constructor(){super(),this.variables=["d","c"],this.variable="d",this.values=[0,1]}firstUpdated(){this.detectableControl=this.querySelector("detectable-control"),this.rocSpace=this.querySelector("roc-space"),this.sdtModel=this.querySelector("sdt-model"),this.detectableControl&&this.detectableControl.addEventListener("detectable-control-z-roc",(t=>{this.rocSpace.zRoc=t.detail.zRoc})),this.rocSpace&&(this.rocSpace.setWithSDT(1,0,"default","",1),"d"===this.variable?this.values.forEach(((t,e)=>{this.rocSpace.setWithSDT(t,this.sdtModel.c,`point${e}`,e+1,this.sdtModel.s)})):"c"===this.variable&&this.values.forEach(((t,e)=>{this.rocSpace.setWithSDT(this.sdtModel.d,t,`point${e}`,e+1,this.sdtModel.s)}))),this.sdtModel&&this.sdtModel.addEventListener("sdt-model-change",(t=>{this.rocSpace&&(this.rocSpace.setWithSDT(t.detail.d,t.detail.c,"default","",t.detail.s),"d"===this.variable?this.values.forEach(((e,r)=>{this.rocSpace.setWithSDT(e,t.detail.c,`point${r}`,r+1,t.detail.s)})):"c"===this.variable&&this.values.forEach(((e,r)=>{this.rocSpace.setWithSDT(t.detail.d,e,`point${r}`,r+1,t.detail.s)})))}))}}customElements.define("sdt-example-multiple",zo);class Fo extends Co{firstUpdated(){this.detectableControl=this.querySelector("detectable-control"),this.rocSpace=this.querySelector("roc-space"),this.sdtModel=this.querySelector("sdt-model"),this.detectableControl&&this.detectableControl.addEventListener("detectable-control-z-roc",(t=>{this.rocSpace.zRoc=t.detail.zRoc})),this.rocSpace&&(this.rocSpace.setWithSDT(1,0,"default","",1),Mt(-1.5,1.6,.5).forEach(((t,e)=>{this.rocSpace.setWithSDT(this.sdtModel.d,t,`point${e}`,"",this.sdtModel.s)}))),this.sdtModel&&this.sdtModel.addEventListener("sdt-model-change",(t=>{this.rocSpace&&Mt(-1.5,1.6,.5).forEach(((e,r)=>{this.rocSpace.setWithSDT(t.detail.d,e,`point${r}`,"",t.detail.s)}))}))}}customElements.define("sdt-example-unequal",Fo);export{bo as DetectableControl,lo as DetectableElement,vo as DetectableResponse,yo as DetectableTable,co as RDKTask,mo as ROCSpace,xo as SDTEquationDC2Far,$o as SDTEquationDC2Hr,ko as SDTEquationFaCr2Far,_o as SDTEquationHFa2Ppv,So as SDTEquationHM2Hr,Ao as SDTEquationHMFaCr2Acc,Eo as SDTEquationHrFar2C,Mo as SDTEquationHrFar2D,To as SDTEquationMCr2Fomr,No as SDTExampleDoubleInteractive,Ro as SDTExampleHuman,Po as SDTExampleInteractive,qo as SDTExampleModel,zo as SDTExampleMultiple,Fo as SDTExampleUnequal,go as SDTModel};
2332
+ </div>`}}customElements.define("sdt-example",Co);class No extends Co{connectedCallback(){super.connectedCallback(),this.one={},this.one.h=95,this.one.m=5,this.one.fa=35,this.one.cr=65,this.one.hr=po.hM2Hr(this.one.h,this.one.m),this.one.far=po.faCr2Far(this.one.fa,this.one.cr),this.one.d=po.hrFar2D(this.one.hr,this.one.far),this.one.c=po.hrFar2C(this.one.hr,this.one.far),this.two={},this.two.h=40,this.two.m=60,this.two.fa=20,this.two.cr=80,this.two.hr=po.hM2Hr(this.two.h,this.two.m),this.two.far=po.faCr2Far(this.two.fa,this.two.cr),this.two.d=po.hrFar2D(this.two.hr,this.two.far),this.two.c=po.hrFar2C(this.two.hr,this.two.far),this.detectableTableOne=this.querySelector("detectable-table:nth-of-type(1)"),this.detectableTableTwo=this.querySelector("detectable-table:nth-of-type(2)"),this.rocSpace=this.querySelector("roc-space"),this.sdtModelOne=this.querySelector("sdt-model:nth-of-type(1)"),this.sdtModelTwo=this.querySelector("sdt-model:nth-of-type(2)"),this.detectableTableOne&&(this.detectableTableOne.h=this.one.h,this.detectableTableOne.m=this.one.m,this.detectableTableOne.fa=this.one.fa,this.detectableTableOne.cr=this.one.cr,this.detectableTableOne.addEventListener("detectable-table-change",(t=>{this.rocSpace&&this.rocSpace.set(t.detail.hr,t.detail.far,"default","↑"),this.sdtModelOne&&(this.sdtModelOne.d=po.hrFar2D(t.detail.hr,t.detail.far),this.sdtModelOne.c=po.hrFar2C(t.detail.hr,t.detail.far))}))),this.detectableTableTwo&&(this.detectableTableTwo.h=this.two.h,this.detectableTableTwo.m=this.two.m,this.detectableTableTwo.fa=this.two.fa,this.detectableTableTwo.cr=this.two.cr,this.detectableTableTwo.addEventListener("detectable-table-change",(t=>{this.rocSpace&&this.rocSpace.set(t.detail.hr,t.detail.far,"two","↓"),this.sdtModelTwo&&(this.sdtModelTwo.d=po.hrFar2D(t.detail.hr,t.detail.far),this.sdtModelTwo.c=po.hrFar2C(t.detail.hr,t.detail.far))}))),this.rocSpace&&(this.rocSpace.set(this.one.hr,this.one.far,"default","↑"),this.rocSpace.set(this.two.hr,this.two.far,"two","↓"),this.rocSpace.addEventListener("roc-point-change",(t=>{if("default"===t.detail.name&&this.sdtModelOne?(this.sdtModelOne.d=t.detail.d,this.sdtModelOne.c=t.detail.c):"two"===t.detail.name&&this.sdtModelTwo&&(this.sdtModelTwo.d=t.detail.d,this.sdtModelTwo.c=t.detail.c),"default"===t.detail.name&&this.detectableTableOne){const e=Math.round((this.detectableTableOne.h+this.detectableTableOne.m)*t.detail.hr),r=this.detectableTableOne.h+this.detectableTableOne.m-e,n=Math.round((this.detectableTableOne.fa+this.detectableTableOne.cr)*t.detail.far),i=this.detectableTableOne.fa+this.detectableTableOne.cr-n;this.detectableTableOne.h=e,this.detectableTableOne.m=r,this.detectableTableOne.fa=n,this.detectableTableOne.cr=i}else if("two"===t.detail.name&&this.detectableTableTwo){const e=Math.round((this.detectableTableTwo.h+this.detectableTableTwo.m)*t.detail.hr),r=this.detectableTableTwo.h+this.detectableTableTwo.m-e,n=Math.round((this.detectableTableTwo.fa+this.detectableTableTwo.cr)*t.detail.far),i=this.detectableTableTwo.fa+this.detectableTableTwo.cr-n;this.detectableTableTwo.h=e,this.detectableTableTwo.m=r,this.detectableTableTwo.fa=n,this.detectableTableTwo.cr=i}}))),this.sdtModelOne&&(this.sdtModelOne.d=this.one.d,this.sdtModelOne.c=this.one.c,this.sdtModelOne.addEventListener("sdt-model-change",(t=>{if(this.rocSpace&&this.rocSpace.setWithSDT(t.detail.d,t.detail.c,"default","↑"),this.detectableTableOne){const e=Math.round((this.detectableTableOne.h+this.detectableTableOne.m)*t.detail.hr),r=this.detectableTableOne.h+this.detectableTableOne.m-e,n=Math.round((this.detectableTableOne.fa+this.detectableTableOne.cr)*t.detail.far),i=this.detectableTableOne.fa+this.detectableTableOne.cr-n;this.detectableTableOne.h=e,this.detectableTableOne.m=r,this.detectableTableOne.fa=n,this.detectableTableOne.cr=i}}))),this.sdtModelTwo&&(this.sdtModelTwo.d=this.two.d,this.sdtModelTwo.c=this.two.c,this.sdtModelTwo.addEventListener("sdt-model-change",(t=>{if(this.rocSpace&&this.rocSpace.setWithSDT(t.detail.d,t.detail.c,"two","↓"),this.detectableTableTwo){const e=Math.round((this.detectableTableTwo.h+this.detectableTableTwo.m)*t.detail.hr),r=this.detectableTableTwo.h+this.detectableTableTwo.m-e,n=Math.round((this.detectableTableTwo.fa+this.detectableTableTwo.cr)*t.detail.far),i=this.detectableTableTwo.fa+this.detectableTableTwo.cr-n;this.detectableTableTwo.h=e,this.detectableTableTwo.m=r,this.detectableTableTwo.fa=n,this.detectableTableTwo.cr=i}})))}}customElements.define("sdt-example-double-interactive",No);class Ro extends Co{connectedCallback(){super.connectedCallback(),this.count=1,this.detectableControl=this.querySelector("detectable-control"),this.rdkTask=this.querySelector("rdk-task"),this.detectableResponse=this.querySelector("detectable-response"),this.detectableTable=this.querySelector("detectable-table"),this.rocSpace=this.querySelector("roc-space"),this.sdtModel=this.querySelector("sdt-model"),this.rocSpace&&this.rocSpace.hasAttribute("history")&&this.rocSpace.set(.5,.5,"default",this.count),this.detectableControl&&this.detectableControl.hasAttribute("trials")&&this.detectableControl.addEventListener("detectable-control-trials",(t=>{this.rdkTask&&(this.rdkTask.trials=t.detail.trials),this.detectableResponse&&(this.detectableResponse.trialTotal=t.detail.trials)})),this.detectableControl&&this.detectableControl.hasAttribute("duration")&&this.detectableControl.addEventListener("detectable-control-duration",(t=>{this.rdkTask&&(this.rdkTask.duration=t.detail.duration,this.rdkTask.wait=t.detail.duration,this.rdkTask.iti=t.detail.duration)})),this.detectableControl&&this.detectableControl.hasAttribute("coherence")&&this.detectableControl.addEventListener("detectable-control-coherence",(t=>{this.rdkTask&&(this.rdkTask.coherence=t.detail.coherence)})),this.detectableControl&&this.detectableControl.hasAttribute("payoff")&&this.detectableControl.addEventListener("detectable-control-payoff",(t=>{this.detectableResponse&&(this.detectableResponse.hPayoff=t.detail.payoff,this.detectableResponse.mPayoff=0-t.detail.payoff,this.detectableResponse.faPayoff=0-(100-t.detail.payoff),this.detectableResponse.crPayoff=100-t.detail.payoff),this.detectableTable&&(this.detectableTable.hPayoff=t.detail.payoff,this.detectableTable.mPayoff=0-t.detail.payoff,this.detectableTable.faPayoff=0-(100-t.detail.payoff),this.detectableTable.crPayoff=100-t.detail.payoff)})),this.detectableControl&&this.detectableControl.hasAttribute("run")&&this.detectableControl.addEventListener("detectable-control-run",(()=>{this.rdkTask&&(this.rdkTask.running=!0)})),this.detectableControl&&this.detectableControl.hasAttribute("pause")&&this.detectableControl.addEventListener("detectable-control-pause",(()=>{this.rdkTask&&(this.rdkTask.running=!1)})),this.detectableControl&&this.detectableControl.hasAttribute("reset")&&this.detectableControl.addEventListener("detectable-control-reset",(()=>{this.rdkTask&&this.rdkTask.reset(),this.detectableResponse&&this.detectableResponse.reset(),this.detectableTable&&(this.detectableTable.h=0,this.detectableTable.m=0,this.detectableTable.fa=0,this.detectableTable.cr=0),this.rocSpace&&(this.rocSpace.hasAttribute("history")?(this.count+=1,this.rocSpace.set(.5,.5,`point${this.count}`,this.count)):(this.rocSpace.hr=.5,this.rocSpace.far=.5)),this.sdtModel&&(this.sdtModel.d=0,this.sdtModel.c=0)})),this.rdkTask&&this.detectableResponse&&(this.detectableResponse.trialTotal=this.rdkTask.trials),this.rdkTask&&this.rdkTask.addEventListener("rdk-trial-start",(t=>{this.detectableResponse&&this.detectableResponse.start(t.detail.signal,t.detail.trial)})),this.rdkTask&&this.rdkTask.addEventListener("rdk-trial-end",(()=>{this.detectableResponse&&this.detectableResponse.stop()})),this.rdkTask&&this.rdkTask.addEventListener("rdk-block-end",(()=>{this.detectableControl&&this.detectableControl.complete()})),this.detectableResponse&&this.detectableResponse.addEventListener("detectable-response",(t=>{this.detectableTable&&(this.detectableTable.h=t.detail.h,this.detectableTable.m=t.detail.m,this.detectableTable.fa=t.detail.fa,this.detectableTable.cr=t.detail.cr);const e=po.hM2Hr(t.detail.h+1,t.detail.m+1),r=po.faCr2Far(t.detail.fa+1,t.detail.cr+1);this.rocSpace&&(this.rocSpace.hasAttribute("history")?this.rocSpace.set(e,r,1===this.count?"default":`point${this.count}`,this.count):(this.rocSpace.hr=e,this.rocSpace.far=r)),this.sdtModel&&(this.sdtModel.d=po.hrFar2D(e,r),this.sdtModel.c=po.hrFar2C(e,r))}))}}customElements.define("sdt-example-human",Ro);class Po extends Co{connectedCallback(){super.connectedCallback(),this.detectableControl=this.querySelector("detectable-control"),this.detectableTable=this.querySelector("detectable-table"),this.rocSpace=this.querySelector("roc-space"),this.sdtModel=this.querySelector("sdt-model"),this.rocSpaces=this.querySelectorAll("roc-space"),this.detectableControl&&this.detectableControl.hasAttribute("color")&&this.detectableControl.addEventListener("detectable-control-color",(t=>{this.sdtModel&&(this.sdtModel.color=t.detail.color),this.detectableTable&&(this.detectableTable.color=t.detail.color)})),this.detectableControl&&this.detectableControl.addEventListener("detectable-control-z-roc",(t=>{this.rocSpaces.length>0&&this.rocSpaces.forEach((e=>{e.zRoc=t.detail.zRoc}))})),this.detectableTable&&(this.rocSpace&&(this.rocSpace.hr=po.hM2Hr(this.detectableTable.h,this.detectableTable.m),this.rocSpace.far=po.faCr2Far(this.detectableTable.fa,this.detectableTable.cr)),this.sdtModel&&(this.sdtModel.d=po.hrFar2D(po.hM2Hr(this.detectableTable.h,this.detectableTable.m),po.faCr2Far(this.detectableTable.fa,this.detectableTable.cr),this.sdtModel.s),this.sdtModel.c=po.hrFar2C(po.hM2Hr(this.detectableTable.h,this.detectableTable.m),po.faCr2Far(this.detectableTable.fa,this.detectableTable.cr),this.sdtModel.s)),this.detectableTable.addEventListener("detectable-table-change",(t=>{this.rocSpace&&(this.rocSpace.far=t.detail.far,this.rocSpace.hr=t.detail.hr),this.sdtModel&&(this.sdtModel.d=po.hrFar2D(t.detail.hr,t.detail.far,this.sdtModel.s),this.sdtModel.c=po.hrFar2C(t.detail.hr,t.detail.far,this.sdtModel.s))}))),this.rocSpace&&(this.sdtModel&&!this.detectableTable&&(this.sdtModel.d=po.hrFar2D(this.rocSpace.hr,this.rocSpace.far,this.rocSpace.s),this.sdtModel.c=po.hrFar2C(this.rocSpace.hr,this.rocSpace.far,this.rocSpace.s),this.sdtModel.s=this.rocSpace.s),this.rocSpace.addEventListener("roc-point-change",(t=>{if(this.sdtModel&&(this.sdtModel.d=t.detail.d,this.sdtModel.c=t.detail.c,this.sdtModel.s=t.detail.s),this.detectableTable){const e=Math.round((this.detectableTable.h+this.detectableTable.m)*t.detail.hr),r=this.detectableTable.h+this.detectableTable.m-e,n=Math.round((this.detectableTable.fa+this.detectableTable.cr)*t.detail.far),i=this.detectableTable.fa+this.detectableTable.cr-n;this.detectableTable.h=e,this.detectableTable.m=r,this.detectableTable.fa=n,this.detectableTable.cr=i}}))),this.sdtModel&&this.sdtModel.addEventListener("sdt-model-change",(t=>{if(this.rocSpaces.length>0&&this.rocSpaces.forEach((e=>{e.setWithSDT(t.detail.d,t.detail.c,"default","",t.detail.s)})),this.detectableTable){const e=Math.round((this.detectableTable.h+this.detectableTable.m)*t.detail.hr),r=this.detectableTable.h+this.detectableTable.m-e,n=Math.round((this.detectableTable.fa+this.detectableTable.cr)*t.detail.far),i=this.detectableTable.fa+this.detectableTable.cr-n;this.detectableTable.h=e,this.detectableTable.m=r,this.detectableTable.fa=n,this.detectableTable.cr=i}}))}}customElements.define("sdt-example-interactive",Po);class qo extends Co{connectedCallback(){super.connectedCallback(),this.count=1,this.detectableControl=this.querySelector("detectable-control"),this.rdkTask=this.querySelector("rdk-task"),this.sdtModel=this.querySelector("sdt-model"),this.detectableResponse=this.querySelector("detectable-response"),this.detectableTable=this.querySelector("detectable-table"),this.rocSpace=this.querySelector("roc-space"),this.detectableControl&&this.detectableControl.hasAttribute("color")&&this.detectableControl.addEventListener("detectable-control-color",(t=>{this.sdtModel&&(this.sdtModel.color=t.detail.color),this.detectableTable&&(this.detectableTable.color=t.detail.color)})),this.detectableControl&&this.detectableControl.hasAttribute("duration")&&this.detectableControl.addEventListener("detectable-control-duration",(t=>{this.rdkTask&&(this.rdkTask.duration=t.detail.duration,this.rdkTask.wait=t.detail.duration,this.rdkTask.iti=t.detail.duration)})),this.detectableControl&&this.detectableControl.hasAttribute("trials")&&this.detectableControl.addEventListener("detectable-control-trials",(t=>{this.rdkTask&&(this.rdkTask.trials=t.detail.trials),this.detectableResponse&&(this.detectableResponse.trialTotal=t.detail.trials)})),this.detectableControl&&this.detectableControl.hasAttribute("coherence")&&this.detectableControl.addEventListener("detectable-control-coherence",(t=>{this.rdkTask&&(this.rdkTask.coherence=t.detail.coherence)})),this.detectableControl&&this.detectableControl.hasAttribute("run")&&this.detectableControl.addEventListener("detectable-control-run",(()=>{this.rdkTask&&(this.rdkTask.running=!0),this.sdtModel&&this.sdtModel.resumeTrial()})),this.detectableControl&&this.detectableControl.hasAttribute("pause")&&this.detectableControl.addEventListener("detectable-control-pause",(()=>{this.rdkTask&&(this.rdkTask.running=!1),this.sdtModel&&this.sdtModel.pauseTrial()})),this.detectableControl&&this.detectableControl.hasAttribute("reset")&&this.detectableControl.addEventListener("detectable-control-reset",(()=>{this.rdkTask&&this.rdkTask.reset(),this.detectableResponse&&this.detectableResponse.reset(),this.sdtModel&&this.sdtModel.reset(),this.detectableTable&&(this.detectableTable.h=0,this.detectableTable.m=0,this.detectableTable.fa=0,this.detectableTable.cr=0),this.rocSpace&&(this.rocSpace.hasAttribute("history")?(this.count+=1,this.rocSpace.set(.5,.5,`point${this.count}`,"",1)):(this.rocSpace.hr=.5,this.rocSpace.far=.5))})),this.rdkTask&&this.detectableResponse&&(this.detectableResponse.trialTotal=this.rdkTask.trials),this.rdkTask&&this.rdkTask.addEventListener("rdk-trial-start",(t=>{this.detectableResponse&&this.detectableResponse.start(t.detail.signal,t.detail.trial),this.sdtModel&&this.sdtModel.trial(t.detail.trial,t.detail.signal,t.detail.duration,t.detail.wait,t.detail.iti)})),this.rdkTask&&this.rdkTask.addEventListener("rdk-trial-middle",(()=>{})),this.rdkTask&&this.rdkTask.addEventListener("rdk-trial-end",(()=>{this.detectableResponse&&this.detectableResponse.stop()})),this.rdkTask&&this.rdkTask.addEventListener("rdk-block-end",(()=>{this.detectableControl&&this.detectableControl.complete()})),this.sdtModel&&this.sdtModel.addEventListener("detectable-response",(t=>{this.detectableResponse&&this.detectableResponse.responded(t.detail.response),this.detectableTable&&(this.detectableTable.h=t.detail.h,this.detectableTable.m=t.detail.m,this.detectableTable.fa=t.detail.fa,this.detectableTable.cr=t.detail.cr),this.rocSpace&&(this.rocSpace.hr=po.hM2Hr(t.detail.h,t.detail.m),this.rocSpace.far=po.faCr2Far(t.detail.fa,t.detail.cr))})),this.sdtModel&&this.sdtModel.addEventListener("sdt-model-change",(t=>{this.detectableTable&&(this.detectableTable.h=t.detail.h,this.detectableTable.m=t.detail.m,this.detectableTable.fa=t.detail.fa,this.detectableTable.cr=t.detail.cr),this.rocSpace&&(this.rocSpace.hr=po.hM2Hr(t.detail.h,t.detail.m),this.rocSpace.far=po.faCr2Far(t.detail.fa,t.detail.cr))}))}}customElements.define("sdt-example-model",qo);class zo extends Co{static get properties(){return{variable:{attribute:"variable",type:String,reflect:!0},values:{attribute:"values",converter:so,reflect:!0}}}constructor(){super(),this.variables=["d","c"],this.variable="d",this.values=[0,1]}connectedCallback(){super.connectedCallback(),this.detectableControl=this.querySelector("detectable-control"),this.rocSpace=this.querySelector("roc-space"),this.sdtModel=this.querySelector("sdt-model"),this.detectableControl&&this.detectableControl.addEventListener("detectable-control-z-roc",(t=>{this.rocSpace.zRoc=t.detail.zRoc})),this.rocSpace&&(this.rocSpace.setWithSDT(1,0,"default","",1),"d"===this.variable?this.values.forEach(((t,e)=>{this.rocSpace.setWithSDT(t,this.sdtModel.c,`point${e}`,e+1,this.sdtModel.s)})):"c"===this.variable&&this.values.forEach(((t,e)=>{this.rocSpace.setWithSDT(this.sdtModel.d,t,`point${e}`,e+1,this.sdtModel.s)}))),this.sdtModel&&this.sdtModel.addEventListener("sdt-model-change",(t=>{this.rocSpace&&(this.rocSpace.setWithSDT(t.detail.d,t.detail.c,"default","",t.detail.s),"d"===this.variable?this.values.forEach(((e,r)=>{this.rocSpace.setWithSDT(e,t.detail.c,`point${r}`,r+1,t.detail.s)})):"c"===this.variable&&this.values.forEach(((e,r)=>{this.rocSpace.setWithSDT(t.detail.d,e,`point${r}`,r+1,t.detail.s)})))}))}}customElements.define("sdt-example-multiple",zo);class Fo extends Co{connectedCallback(){super.connectedCallback(),this.detectableControl=this.querySelector("detectable-control"),this.rocSpace=this.querySelector("roc-space"),this.sdtModel=this.querySelector("sdt-model"),this.detectableControl&&this.detectableControl.addEventListener("detectable-control-z-roc",(t=>{this.rocSpace.zRoc=t.detail.zRoc})),this.rocSpace&&(this.rocSpace.setWithSDT(1,0,"default","",1),Mt(-1.5,1.6,.5).forEach(((t,e)=>{this.rocSpace.setWithSDT(this.sdtModel.d,t,`point${e}`,"",this.sdtModel.s)}))),this.sdtModel&&this.sdtModel.addEventListener("sdt-model-change",(t=>{this.rocSpace&&Mt(-1.5,1.6,.5).forEach(((e,r)=>{this.rocSpace.setWithSDT(t.detail.d,e,`point${r}`,"",t.detail.s)}))}))}}customElements.define("sdt-example-unequal",Fo);export{bo as DetectableControl,lo as DetectableElement,vo as DetectableResponse,yo as DetectableTable,co as RDKTask,mo as ROCSpace,xo as SDTEquationDC2Far,$o as SDTEquationDC2Hr,ko as SDTEquationFaCr2Far,_o as SDTEquationHFa2Ppv,So as SDTEquationHM2Hr,Ao as SDTEquationHMFaCr2Acc,Eo as SDTEquationHrFar2C,Mo as SDTEquationHrFar2D,To as SDTEquationMCr2Fomr,No as SDTExampleDoubleInteractive,Ro as SDTExampleHuman,Po as SDTExampleInteractive,qo as SDTExampleModel,zo as SDTExampleMultiple,Fo as SDTExampleUnequal,go as SDTModel};
2333
2333
  //# sourceMappingURL=detectableElements.esm.min.js.map