@decidables/accumulable-elements 0.1.3 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +20 -0
- package/README.md +72 -33
- package/lib/accumulableElements.esm.js +587 -282
- package/lib/accumulableElements.esm.js.map +1 -1
- package/lib/accumulableElements.esm.min.js +298 -121
- package/lib/accumulableElements.esm.min.js.map +1 -1
- package/lib/accumulableElements.umd.js +587 -282
- package/lib/accumulableElements.umd.js.map +1 -1
- package/lib/accumulableElements.umd.min.js +298 -121
- package/lib/accumulableElements.umd.min.js.map +1 -1
- package/package.json +4 -4
- package/src/components/accumulable-control.js +4 -4
- package/src/components/accumulable-response.js +6 -24
- package/src/components/ddm-fit-worker.js +2 -2
- package/src/components/ddm-fit.js +6 -4
- package/src/components/ddm-model.js +130 -62
- package/src/components/ddm-parameters.js +61 -4
- package/src/equations/azv2pc.js +35 -8
- package/src/equations/azvt02m.js +44 -10
- package/src/examples/human.js +156 -71
- package/src/examples/interactive.js +39 -9
- package/src/examples/model.js +95 -93
|
@@ -8,19 +8,19 @@ const t=globalThis,e=t.ShadowRoot&&(void 0===t.ShadyCSS||t.ShadyCSS.nativeShadow
|
|
|
8
8
|
* @license
|
|
9
9
|
* Copyright 2017 Google LLC
|
|
10
10
|
* SPDX-License-Identifier: BSD-3-Clause
|
|
11
|
-
*/,{is:l,defineProperty:c,getOwnPropertyDescriptor:d,getOwnPropertyNames:
|
|
11
|
+
*/,{is:l,defineProperty:c,getOwnPropertyDescriptor:d,getOwnPropertyNames:u,getOwnPropertySymbols:h,getPrototypeOf:g}=Object,p=globalThis,m=p.trustedTypes,b=m?m.emptyScript:"",Q=p.reactiveElementPolyfillSupport,y=(t,e)=>t,U={toAttribute(t,e){switch(e){case Boolean:t=t?b:null;break;case Object:case Array:t=null==t?t:JSON.stringify(t)}return t},fromAttribute(t,e){let i=t;switch(e){case Boolean:i=null!==t;break;case Number:i=null===t?null:Number(t);break;case Object:case Array:try{i=JSON.parse(t)}catch(t){i=null}}return i}},B=(t,e)=>!l(t,e),F={attribute:!0,type:String,converter:U,reflect:!1,hasChanged:B};Symbol.metadata??=Symbol("metadata"),p.litPropertyMetadata??=new WeakMap;let I=class extends HTMLElement{static addInitializer(t){this._$Ei(),(this.l??=[]).push(t)}static get observedAttributes(){return this.finalize(),this._$Eh&&[...this._$Eh.keys()]}static createProperty(t,e=F){if(e.state&&(e.attribute=!1),this._$Ei(),this.elementProperties.set(t,e),!e.noAccessor){const i=Symbol(),s=this.getPropertyDescriptor(t,i,e);void 0!==s&&c(this.prototype,t,s)}}static getPropertyDescriptor(t,e,i){const{get:s,set:r}=d(this.prototype,t)??{get(){return this[e]},set(t){this[e]=t}};return{get(){return s?.call(this)},set(e){const a=s?.call(this);r.call(this,e),this.requestUpdate(t,a,i)},configurable:!0,enumerable:!0}}static getPropertyOptions(t){return this.elementProperties.get(t)??F}static _$Ei(){if(this.hasOwnProperty(y("elementProperties")))return;const t=g(this);t.finalize(),void 0!==t.l&&(this.l=[...t.l]),this.elementProperties=new Map(t.elementProperties)}static finalize(){if(this.hasOwnProperty(y("finalized")))return;if(this.finalized=!0,this._$Ei(),this.hasOwnProperty(y("properties"))){const t=this.properties,e=[...u(t),...h(t)];for(const i of e)this.createProperty(i,t[i])}const t=this[Symbol.metadata];if(null!==t){const e=litPropertyMetadata.get(t);if(void 0!==e)for(const[t,i]of e)this.elementProperties.set(t,i)}this._$Eh=new Map;for(const[t,e]of this.elementProperties){const i=this._$Eu(t,e);void 0!==i&&this._$Eh.set(i,t)}this.elementStyles=this.finalizeStyles(this.styles)}static finalizeStyles(t){const e=[];if(Array.isArray(t)){const i=new Set(t.flat(1/0).reverse());for(const t of i)e.unshift(o(t))}else void 0!==t&&e.push(o(t));return e}static _$Eu(t,e){const i=e.attribute;return!1===i?void 0:"string"==typeof i?i:"string"==typeof t?t.toLowerCase():void 0}constructor(){super(),this._$Ep=void 0,this.isUpdatePending=!1,this.hasUpdated=!1,this._$Em=null,this._$Ev()}_$Ev(){this._$ES=new Promise((t=>this.enableUpdating=t)),this._$AL=new Map,this._$E_(),this.requestUpdate(),this.constructor.l?.forEach((t=>t(this)))}addController(t){(this._$EO??=new Set).add(t),void 0!==this.renderRoot&&this.isConnected&&t.hostConnected?.()}removeController(t){this._$EO?.delete(t)}_$E_(){const t=new Map,e=this.constructor.elementProperties;for(const i of e.keys())this.hasOwnProperty(i)&&(t.set(i,this[i]),delete this[i]);t.size>0&&(this._$Ep=t)}createRenderRoot(){const i=this.shadowRoot??this.attachShadow(this.constructor.shadowRootOptions);return((i,s)=>{if(e)i.adoptedStyleSheets=s.map((t=>t instanceof CSSStyleSheet?t:t.styleSheet));else for(const e of s){const s=document.createElement("style"),r=t.litNonce;void 0!==r&&s.setAttribute("nonce",r),s.textContent=e.cssText,i.appendChild(s)}})(i,this.constructor.elementStyles),i}connectedCallback(){this.renderRoot??=this.createRenderRoot(),this.enableUpdating(!0),this._$EO?.forEach((t=>t.hostConnected?.()))}enableUpdating(t){}disconnectedCallback(){this._$EO?.forEach((t=>t.hostDisconnected?.()))}attributeChangedCallback(t,e,i){this._$AK(t,i)}_$EC(t,e){const i=this.constructor.elementProperties.get(t),s=this.constructor._$Eu(t,i);if(void 0!==s&&!0===i.reflect){const r=(void 0!==i.converter?.toAttribute?i.converter:U).toAttribute(e,i.type);this._$Em=t,null==r?this.removeAttribute(s):this.setAttribute(s,r),this._$Em=null}}_$AK(t,e){const i=this.constructor,s=i._$Eh.get(t);if(void 0!==s&&this._$Em!==s){const t=i.getPropertyOptions(s),r="function"==typeof t.converter?{fromAttribute:t.converter}:void 0!==t.converter?.fromAttribute?t.converter:U;this._$Em=s,this[s]=r.fromAttribute(e,t.type),this._$Em=null}}requestUpdate(t,e,i){if(void 0!==t){if(i??=this.constructor.getPropertyOptions(t),!(i.hasChanged??B)(this[t],e))return;this.P(t,e,i)}!1===this.isUpdatePending&&(this._$ES=this._$ET())}P(t,e,i){this._$AL.has(t)||this._$AL.set(t,e),!0===i.reflect&&this._$Em!==t&&(this._$Ej??=new Set).add(t)}async _$ET(){this.isUpdatePending=!0;try{await this._$ES}catch(t){Promise.reject(t)}const t=this.scheduleUpdate();return null!=t&&await t,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){if(!this.isUpdatePending)return;if(!this.hasUpdated){if(this.renderRoot??=this.createRenderRoot(),this._$Ep){for(const[t,e]of this._$Ep)this[t]=e;this._$Ep=void 0}const t=this.constructor.elementProperties;if(t.size>0)for(const[e,i]of t)!0!==i.wrapped||this._$AL.has(e)||void 0===this[e]||this.P(e,this[e],i)}let t=!1;const e=this._$AL;try{t=this.shouldUpdate(e),t?(this.willUpdate(e),this._$EO?.forEach((t=>t.hostUpdate?.())),this.update(e)):this._$EU()}catch(e){throw t=!1,this._$EU(),e}t&&this._$AE(e)}willUpdate(t){}_$AE(t){this._$EO?.forEach((t=>t.hostUpdated?.())),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(t)),this.updated(t)}_$EU(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$ES}shouldUpdate(t){return!0}update(t){this._$Ej&&=this._$Ej.forEach((t=>this._$EC(t,this[t]))),this._$EU()}updated(t){}firstUpdated(t){}};I.elementStyles=[],I.shadowRootOptions={mode:"open"},I[y("elementProperties")]=new Map,I[y("finalized")]=new Map,Q?.({ReactiveElement:I}),(p.reactiveElementVersions??=[]).push("2.0.4");
|
|
12
12
|
/**
|
|
13
13
|
* @license
|
|
14
14
|
* Copyright 2017 Google LLC
|
|
15
15
|
* SPDX-License-Identifier: BSD-3-Clause
|
|
16
16
|
*/
|
|
17
|
-
const
|
|
17
|
+
const f=globalThis,C=f.trustedTypes,v=C?C.createPolicy("lit-html",{createHTML:t=>t}):void 0,A="$lit$",x=`lit$${Math.random().toFixed(9).slice(2)}$`,E="?"+x,R=`<${E}>`,N=document,S=()=>N.createComment(""),L=t=>null===t||"object"!=typeof t&&"function"!=typeof t,w=Array.isArray,D="[ \t\n\f\r]",M=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,k=/-->/g,T=/>/g,V=RegExp(`>|${D}(?:([^\\s"'>=/]+)(${D}*=${D}*(?:[^ \t\n\f\r"'\`<>=]|("|')|))|$)`,"g"),$=/'/g,H=/"/g,z=/^(?:script|style|textarea|title)$/i,G=t=>(e,...i)=>({_$litType$:t,strings:e,values:i}),Y=G(1),X=G(2),J=Symbol.for("lit-noChange"),W=Symbol.for("lit-nothing"),_=new WeakMap,K=N.createTreeWalker(N,129);function P(t,e){if(!w(t)||!t.hasOwnProperty("raw"))throw Error("invalid template strings array");return void 0!==v?v.createHTML(e):e}const Z=(t,e)=>{const i=t.length-1,s=[];let r,a=2===e?"<svg>":3===e?"<math>":"",n=M;for(let e=0;e<i;e++){const i=t[e];let o,l,c=-1,d=0;for(;d<i.length&&(n.lastIndex=d,l=n.exec(i),null!==l);)d=n.lastIndex,n===M?"!--"===l[1]?n=k:void 0!==l[1]?n=T:void 0!==l[2]?(z.test(l[2])&&(r=RegExp("</"+l[2],"g")),n=V):void 0!==l[3]&&(n=V):n===V?">"===l[0]?(n=r??M,c=-1):void 0===l[1]?c=-2:(c=n.lastIndex-l[2].length,o=l[1],n=void 0===l[3]?V:'"'===l[3]?H:$):n===H||n===$?n=V:n===k||n===T?n=M:(n=V,r=void 0);const u=n===V&&t[e+1].startsWith("/>")?" ":"";a+=n===M?i+R:c>=0?(s.push(o),i.slice(0,c)+A+i.slice(c)+x+u):i+x+(-2===c?e:u)}return[P(t,a+(t[i]||"<?>")+(2===e?"</svg>":3===e?"</math>":"")),s]};class O{constructor({strings:t,_$litType$:e},i){let s;this.parts=[];let r=0,a=0;const n=t.length-1,o=this.parts,[l,c]=Z(t,e);if(this.el=O.createElement(l,i),K.currentNode=this.el.content,2===e||3===e){const t=this.el.content.firstChild;t.replaceWith(...t.childNodes)}for(;null!==(s=K.nextNode())&&o.length<n;){if(1===s.nodeType){if(s.hasAttributes())for(const t of s.getAttributeNames())if(t.endsWith(A)){const e=c[a++],i=s.getAttribute(t).split(x),n=/([.?@])?(.*)/.exec(e);o.push({type:1,index:r,name:n[2],strings:i,ctor:"."===n[1]?it:"?"===n[1]?st:"@"===n[1]?rt:et}),s.removeAttribute(t)}else t.startsWith(x)&&(o.push({type:6,index:r}),s.removeAttribute(t));if(z.test(s.tagName)){const t=s.textContent.split(x),e=t.length-1;if(e>0){s.textContent=C?C.emptyScript:"";for(let i=0;i<e;i++)s.append(t[i],S()),K.nextNode(),o.push({type:2,index:++r});s.append(t[e],S())}}}else if(8===s.nodeType)if(s.data===E)o.push({type:2,index:r});else{let t=-1;for(;-1!==(t=s.data.indexOf(x,t+1));)o.push({type:7,index:r}),t+=x.length-1}r++}}static createElement(t,e){const i=N.createElement("template");return i.innerHTML=t,i}}function j(t,e,i=t,s){if(e===J)return e;let r=void 0!==s?i._$Co?.[s]:i._$Cl;const a=L(e)?void 0:e._$litDirective$;return r?.constructor!==a&&(r?._$AO?.(!1),void 0===a?r=void 0:(r=new a(t),r._$AT(t,i,s)),void 0!==s?(i._$Co??=[])[s]=r:i._$Cl=r),void 0!==r&&(e=j(t,r._$AS(t,e.values),r,s)),e}class q{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:i}=this._$AD,s=(t?.creationScope??N).importNode(e,!0);K.currentNode=s;let r=K.nextNode(),a=0,n=0,o=i[0];for(;void 0!==o;){if(a===o.index){let e;2===o.type?e=new tt(r,r.nextSibling,this,t):1===o.type?e=new o.ctor(r,o.name,o.strings,this,t):6===o.type&&(e=new at(r,this,t)),this._$AV.push(e),o=i[++n]}a!==o?.index&&(r=K.nextNode(),a++)}return K.currentNode=N,s}p(t){let e=0;for(const i of this._$AV)void 0!==i&&(void 0!==i.strings?(i._$AI(t,i,e),e+=i.strings.length-2):i._$AI(t[e])),e++}}class tt{get _$AU(){return this._$AM?._$AU??this._$Cv}constructor(t,e,i,s){this.type=2,this._$AH=W,this._$AN=void 0,this._$AA=t,this._$AB=e,this._$AM=i,this.options=s,this._$Cv=s?.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=j(this,t,e),L(t)?t===W||null==t||""===t?(this._$AH!==W&&this._$AR(),this._$AH=W):t!==this._$AH&&t!==J&&this._(t):void 0!==t._$litType$?this.$(t):void 0!==t.nodeType?this.T(t):(t=>w(t)||"function"==typeof t?.[Symbol.iterator])(t)?this.k(t):this._(t)}O(t){return this._$AA.parentNode.insertBefore(t,this._$AB)}T(t){this._$AH!==t&&(this._$AR(),this._$AH=this.O(t))}_(t){this._$AH!==W&&L(this._$AH)?this._$AA.nextSibling.data=t:this.T(N.createTextNode(t)),this._$AH=t}$(t){const{values:e,_$litType$:i}=t,s="number"==typeof i?this._$AC(t):(void 0===i.el&&(i.el=O.createElement(P(i.h,i.h[0]),this.options)),i);if(this._$AH?._$AD===s)this._$AH.p(e);else{const t=new q(s,this),i=t.u(this.options);t.p(e),this.T(i),this._$AH=t}}_$AC(t){let e=_.get(t.strings);return void 0===e&&_.set(t.strings,e=new O(t)),e}k(t){w(this._$AH)||(this._$AH=[],this._$AR());const e=this._$AH;let i,s=0;for(const r of t)s===e.length?e.push(i=new tt(this.O(S()),this.O(S()),this,this.options)):i=e[s],i._$AI(r),s++;s<e.length&&(this._$AR(i&&i._$AB.nextSibling,s),e.length=s)}_$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,i,s,r){this.type=1,this._$AH=W,this._$AN=void 0,this.element=t,this.name=e,this._$AM=s,this.options=r,i.length>2||""!==i[0]||""!==i[1]?(this._$AH=Array(i.length-1).fill(new String),this.strings=i):this._$AH=W}_$AI(t,e=this,i,s){const r=this.strings;let a=!1;if(void 0===r)t=j(this,t,e,0),a=!L(t)||t!==this._$AH&&t!==J,a&&(this._$AH=t);else{const s=t;let n,o;for(t=r[0],n=0;n<r.length-1;n++)o=j(this,s[i+n],e,n),o===J&&(o=this._$AH[n]),a||=!L(o)||o!==this._$AH[n],o===W?t=W:t!==W&&(t+=(o??"")+r[n+1]),this._$AH[n]=o}a&&!s&&this.j(t)}j(t){t===W?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,t??"")}}class it extends et{constructor(){super(...arguments),this.type=3}j(t){this.element[this.name]=t===W?void 0:t}}class st extends et{constructor(){super(...arguments),this.type=4}j(t){this.element.toggleAttribute(this.name,!!t&&t!==W)}}class rt extends et{constructor(t,e,i,s,r){super(t,e,i,s,r),this.type=5}_$AI(t,e=this){if((t=j(this,t,e,0)??W)===J)return;const i=this._$AH,s=t===W&&i!==W||t.capture!==i.capture||t.once!==i.once||t.passive!==i.passive,r=t!==W&&(i===W||s);s&&this.element.removeEventListener(this.name,this,i),r&&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 at{constructor(t,e,i){this.element=t,this.type=6,this._$AN=void 0,this._$AM=e,this.options=i}get _$AU(){return this._$AM._$AU}_$AI(t){j(this,t)}}const nt=f.litHtmlPolyfillSupport;nt?.(O,tt),(f.litHtmlVersions??=[]).push("3.2.1");
|
|
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 U{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,i)=>{const s=i?.renderBefore??e;let r=s._$litPart$;if(void 0===r){const t=i?.renderBefore??null;s._$litPart$=r=new tt(e.insertBefore(w(),t),t,void 0,i??{})}return r._$AI(t),r})(e,this.renderRoot,this.renderOptions)}connectedCallback(){super.connectedCallback(),this._$Do?.setConnected(!0)}disconnectedCallback(){super.disconnectedCallback(),this._$Do?.setConnected(!1)}render(){return _}}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 dt(t,e){return null==t||null==e?NaN:e<t?-1:e>t?1:e>=t?0:NaN}function ht(t){let e,i,s;function r(t,s,r=0,a=t.length){if(r<a){if(0!==e(s,s))return a;do{const e=r+a>>>1;i(t[e],s)<0?r=e+1:a=e}while(r<a)}return r}return 2!==t.length?(e=ct,i=(e,i)=>ct(t(e),i),s=(e,i)=>t(e)-i):(e=t===ct||t===dt?t:ut,i=t,s=t),{left:r,center:function(t,e,i=0,a=t.length){const n=r(t,e,i,a-1);return n>i&&s(t[n-1],e)>-s(t[n],e)?n-1:n},right:function(t,s,r=0,a=t.length){if(r<a){if(0!==e(s,s))return a;do{const e=r+a>>>1;i(t[e],s)<=0?r=e+1:a=e}while(r<a)}return r}}}function ut(){return 0}lt?.({LitElement:ot}),(globalThis.litElementVersions??=[]).push("4.1.1");const gt=ht(ct).right;ht((function(t){return null===t?NaN:+t})).center;const pt=Math.sqrt(50),mt=Math.sqrt(10),bt=Math.sqrt(2);function yt(t,e,i){const s=(e-t)/Math.max(0,i),r=Math.floor(Math.log10(s)),a=s/Math.pow(10,r),n=a>=pt?10:a>=mt?5:a>=bt?2:1;let o,l,c;return r<0?(c=Math.pow(10,-r)/n,o=Math.round(t*c),l=Math.round(e*c),o/c<t&&++o,l/c>e&&--l,c=-c):(c=Math.pow(10,r)*n,o=Math.round(t/c),l=Math.round(e/c),o*c<t&&++o,l*c>e&&--l),l<o&&.5<=i&&i<2?yt(t,e,2*i):[o,l,c]}function Qt(t,e,i){return yt(t=+t,e=+e,i=+i)[2]}function Bt(t){return t}var ft=1,It=2,Ut=3,Ft=4,Ct=1e-6;function vt(t){return"translate("+t+",0)"}function xt(t){return"translate(0,"+t+")"}function At(t){return e=>+t(e)}function Et(t,e){return e=Math.max(0,t.bandwidth()-2*e)/2,t.round()&&(e=Math.round(e)),i=>+t(i)+e}function Rt(){return!this.__axis}function Nt(t,e){var i=[],s=null,r=null,a=6,n=6,o=3,l="undefined"!=typeof window&&window.devicePixelRatio>1?0:.5,c=t===ft||t===Ft?-1:1,d=t===Ft||t===It?"x":"y",h=t===ft||t===Ut?vt:xt;function u(u){var g=null==s?e.ticks?e.ticks.apply(e,i):e.domain():s,p=null==r?e.tickFormat?e.tickFormat.apply(e,i):Bt:r,m=Math.max(a,0)+o,b=e.range(),y=+b[0]+l,Q=+b[b.length-1]+l,B=(e.bandwidth?Et:At)(e.copy(),l),f=u.selection?u.selection():u,I=f.selectAll(".domain").data([null]),U=f.selectAll(".tick").data(g,e).order(),F=U.exit(),C=U.enter().append("g").attr("class","tick"),v=U.select("line"),x=U.select("text");I=I.merge(I.enter().insert("path",".tick").attr("class","domain").attr("stroke","currentColor")),U=U.merge(C),v=v.merge(C.append("line").attr("stroke","currentColor").attr(d+"2",c*a)),x=x.merge(C.append("text").attr("fill","currentColor").attr(d,c*m).attr("dy",t===ft?"0em":t===Ut?"0.71em":"0.32em")),u!==f&&(I=I.transition(u),U=U.transition(u),v=v.transition(u),x=x.transition(u),F=F.transition(u).attr("opacity",Ct).attr("transform",(function(t){return isFinite(t=B(t))?h(t+l):this.getAttribute("transform")})),C.attr("opacity",Ct).attr("transform",(function(t){var e=this.parentNode.__axis;return h((e&&isFinite(e=e(t))?e:B(t))+l)}))),F.remove(),I.attr("d",t===Ft||t===It?n?"M"+c*n+","+y+"H"+l+"V"+Q+"H"+c*n:"M"+l+","+y+"V"+Q:n?"M"+y+","+c*n+"V"+l+"H"+Q+"V"+c*n:"M"+y+","+l+"H"+Q),U.attr("opacity",1).attr("transform",(function(t){return h(B(t)+l)})),v.attr(d+"2",c*a),x.attr(d,c*m).text(p),f.filter(Rt).attr("fill","none").attr("font-size",10).attr("font-family","sans-serif").attr("text-anchor",t===It?"start":t===Ft?"end":"middle"),f.each((function(){this.__axis=B}))}return u.scale=function(t){return arguments.length?(e=t,u):e},u.ticks=function(){return i=Array.from(arguments),u},u.tickArguments=function(t){return arguments.length?(i=null==t?[]:Array.from(t),u):i.slice()},u.tickValues=function(t){return arguments.length?(s=null==t?null:Array.from(t),u):s&&s.slice()},u.tickFormat=function(t){return arguments.length?(r=t,u):r},u.tickSize=function(t){return arguments.length?(a=n=+t,u):a},u.tickSizeInner=function(t){return arguments.length?(a=+t,u):a},u.tickSizeOuter=function(t){return arguments.length?(n=+t,u):n},u.tickPadding=function(t){return arguments.length?(o=+t,u):o},u.offset=function(t){return arguments.length?(l=+t,u):l},u}function wt(t){return Nt(Ft,t)}var Lt={value:()=>{}};function St(){for(var t,e=0,i=arguments.length,s={};e<i;++e){if(!(t=arguments[e]+"")||t in s||/[\s.]/.test(t))throw new Error("illegal type: "+t);s[t]=[]}return new Dt(s)}function Dt(t){this._=t}function Mt(t,e){for(var i,s=0,r=t.length;s<r;++s)if((i=t[s]).name===e)return i.value}function kt(t,e,i){for(var s=0,r=t.length;s<r;++s)if(t[s].name===e){t[s]=Lt,t=t.slice(0,s).concat(t.slice(s+1));break}return null!=i&&t.push({name:e,value:i}),t}Dt.prototype=St.prototype={constructor:Dt,on:function(t,e){var i,s,r=this._,a=(s=r,(t+"").trim().split(/^|\s+/).map((function(t){var e="",i=t.indexOf(".");if(i>=0&&(e=t.slice(i+1),t=t.slice(0,i)),t&&!s.hasOwnProperty(t))throw new Error("unknown type: "+t);return{type:t,name:e}}))),n=-1,o=a.length;if(!(arguments.length<2)){if(null!=e&&"function"!=typeof e)throw new Error("invalid callback: "+e);for(;++n<o;)if(i=(t=a[n]).type)r[i]=kt(r[i],t.name,e);else if(null==e)for(i in r)r[i]=kt(r[i],t.name,null);return this}for(;++n<o;)if((i=(t=a[n]).type)&&(i=Mt(r[i],t.name)))return i},copy:function(){var t={},e=this._;for(var i in e)t[i]=e[i].slice();return new Dt(t)},call:function(t,e){if((i=arguments.length-2)>0)for(var i,s,r=new Array(i),a=0;a<i;++a)r[a]=arguments[a+2];if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(a=0,i=(s=this._[t]).length;a<i;++a)s[a].value.apply(e,r)},apply:function(t,e,i){if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(var s=this._[t],r=0,a=s.length;r<a;++r)s[r].value.apply(e,i)}};var Tt="http://www.w3.org/1999/xhtml",Ht={svg:"http://www.w3.org/2000/svg",xhtml:Tt,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function $t(t){var e=t+="",i=e.indexOf(":");return i>=0&&"xmlns"!==(e=t.slice(0,i))&&(t=t.slice(i+1)),Ht.hasOwnProperty(e)?{space:Ht[e],local:t}:t}function Vt(t){return function(){var e=this.ownerDocument,i=this.namespaceURI;return i===Tt&&e.documentElement.namespaceURI===Tt?e.createElement(t):e.createElementNS(i,t)}}function Gt(t){return function(){return this.ownerDocument.createElementNS(t.space,t.local)}}function zt(t){var e=$t(t);return(e.local?Gt:Vt)(e)}function Wt(){}function Yt(t){return null==t?Wt:function(){return this.querySelector(t)}}function _t(){return[]}function Jt(t){return null==t?_t:function(){return this.querySelectorAll(t)}}function Kt(t){return function(){return function(t){return null==t?[]:Array.isArray(t)?t:Array.from(t)}(t.apply(this,arguments))}}function Xt(t){return function(){return this.matches(t)}}function Zt(t){return function(e){return e.matches(t)}}var Pt=Array.prototype.find;function Ot(){return this.firstElementChild}var jt=Array.prototype.filter;function qt(){return Array.from(this.children)}function te(t){return new Array(t.length)}function ee(t,e){this.ownerDocument=t.ownerDocument,this.namespaceURI=t.namespaceURI,this._next=null,this._parent=t,this.__data__=e}function ie(t,e,i,s,r,a){for(var n,o=0,l=e.length,c=a.length;o<c;++o)(n=e[o])?(n.__data__=a[o],s[o]=n):i[o]=new ee(t,a[o]);for(;o<l;++o)(n=e[o])&&(r[o]=n)}function se(t,e,i,s,r,a,n){var o,l,c,d=new Map,h=e.length,u=a.length,g=new Array(h);for(o=0;o<h;++o)(l=e[o])&&(g[o]=c=n.call(l,l.__data__,o,e)+"",d.has(c)?r[o]=l:d.set(c,l));for(o=0;o<u;++o)c=n.call(t,a[o],o,a)+"",(l=d.get(c))?(s[o]=l,l.__data__=a[o],d.delete(c)):i[o]=new ee(t,a[o]);for(o=0;o<h;++o)(l=e[o])&&d.get(g[o])===l&&(r[o]=l)}function re(t){return t.__data__}function ae(t){return"object"==typeof t&&"length"in t?t:Array.from(t)}function ne(t,e){return t<e?-1:t>e?1:t>=e?0:NaN}function oe(t){return function(){this.removeAttribute(t)}}function le(t){return function(){this.removeAttributeNS(t.space,t.local)}}function ce(t,e){return function(){this.setAttribute(t,e)}}function de(t,e){return function(){this.setAttributeNS(t.space,t.local,e)}}function he(t,e){return function(){var i=e.apply(this,arguments);null==i?this.removeAttribute(t):this.setAttribute(t,i)}}function ue(t,e){return function(){var i=e.apply(this,arguments);null==i?this.removeAttributeNS(t.space,t.local):this.setAttributeNS(t.space,t.local,i)}}function ge(t){return t.ownerDocument&&t.ownerDocument.defaultView||t.document&&t||t.defaultView}function pe(t){return function(){this.style.removeProperty(t)}}function me(t,e,i){return function(){this.style.setProperty(t,e,i)}}function be(t,e,i){return function(){var s=e.apply(this,arguments);null==s?this.style.removeProperty(t):this.style.setProperty(t,s,i)}}function ye(t,e){return t.style.getPropertyValue(e)||ge(t).getComputedStyle(t,null).getPropertyValue(e)}function Qe(t){return function(){delete this[t]}}function Be(t,e){return function(){this[t]=e}}function fe(t,e){return function(){var i=e.apply(this,arguments);null==i?delete this[t]:this[t]=i}}function Ie(t){return t.trim().split(/^|\s+/)}function Ue(t){return t.classList||new Fe(t)}function Fe(t){this._node=t,this._names=Ie(t.getAttribute("class")||"")}function Ce(t,e){for(var i=Ue(t),s=-1,r=e.length;++s<r;)i.add(e[s])}function ve(t,e){for(var i=Ue(t),s=-1,r=e.length;++s<r;)i.remove(e[s])}function xe(t){return function(){Ce(this,t)}}function Ae(t){return function(){ve(this,t)}}function Ee(t,e){return function(){(e.apply(this,arguments)?Ce:ve)(this,t)}}function Re(){this.textContent=""}function Ne(t){return function(){this.textContent=t}}function we(t){return function(){var e=t.apply(this,arguments);this.textContent=null==e?"":e}}function Le(){this.innerHTML=""}function Se(t){return function(){this.innerHTML=t}}function De(t){return function(){var e=t.apply(this,arguments);this.innerHTML=null==e?"":e}}function Me(){this.nextSibling&&this.parentNode.appendChild(this)}function ke(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function Te(){return null}function He(){var t=this.parentNode;t&&t.removeChild(this)}function $e(){var t=this.cloneNode(!1),e=this.parentNode;return e?e.insertBefore(t,this.nextSibling):t}function Ve(){var t=this.cloneNode(!0),e=this.parentNode;return e?e.insertBefore(t,this.nextSibling):t}function Ge(t){return function(){var e=this.__on;if(e){for(var i,s=0,r=-1,a=e.length;s<a;++s)i=e[s],t.type&&i.type!==t.type||i.name!==t.name?e[++r]=i:this.removeEventListener(i.type,i.listener,i.options);++r?e.length=r:delete this.__on}}}function ze(t,e,i){return function(){var s,r=this.__on,a=function(t){return function(e){t.call(this,e,this.__data__)}}(e);if(r)for(var n=0,o=r.length;n<o;++n)if((s=r[n]).type===t.type&&s.name===t.name)return this.removeEventListener(s.type,s.listener,s.options),this.addEventListener(s.type,s.listener=a,s.options=i),void(s.value=e);this.addEventListener(t.type,a,i),s={type:t.type,name:t.name,value:e,listener:a,options:i},r?r.push(s):this.__on=[s]}}function We(t,e,i){var s=ge(t),r=s.CustomEvent;"function"==typeof r?r=new r(e,i):(r=s.document.createEvent("Event"),i?(r.initEvent(e,i.bubbles,i.cancelable),r.detail=i.detail):r.initEvent(e,!1,!1)),t.dispatchEvent(r)}function Ye(t,e){return function(){return We(this,t,e)}}function _e(t,e){return function(){return We(this,t,e.apply(this,arguments))}}ee.prototype={constructor:ee,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)}},Fe.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 Je=[null];function Ke(t,e){this._groups=t,this._parents=e}function Xe(){return new Ke([[document.documentElement]],Je)}function Ze(t){return"string"==typeof t?new Ke([[document.querySelector(t)]],[document.documentElement]):new Ke([[t]],Je)}Ke.prototype=Xe.prototype={constructor:Ke,select:function(t){"function"!=typeof t&&(t=Yt(t));for(var e=this._groups,i=e.length,s=new Array(i),r=0;r<i;++r)for(var a,n,o=e[r],l=o.length,c=s[r]=new Array(l),d=0;d<l;++d)(a=o[d])&&(n=t.call(a,a.__data__,d,o))&&("__data__"in a&&(n.__data__=a.__data__),c[d]=n);return new Ke(s,this._parents)},selectAll:function(t){t="function"==typeof t?Kt(t):Jt(t);for(var e=this._groups,i=e.length,s=[],r=[],a=0;a<i;++a)for(var n,o=e[a],l=o.length,c=0;c<l;++c)(n=o[c])&&(s.push(t.call(n,n.__data__,c,o)),r.push(n));return new Ke(s,r)},selectChild:function(t){return this.select(null==t?Ot:function(t){return function(){return Pt.call(this.children,t)}}("function"==typeof t?t:Zt(t)))},selectChildren:function(t){return this.selectAll(null==t?qt:function(t){return function(){return jt.call(this.children,t)}}("function"==typeof t?t:Zt(t)))},filter:function(t){"function"!=typeof t&&(t=Xt(t));for(var e=this._groups,i=e.length,s=new Array(i),r=0;r<i;++r)for(var a,n=e[r],o=n.length,l=s[r]=[],c=0;c<o;++c)(a=n[c])&&t.call(a,a.__data__,c,n)&&l.push(a);return new Ke(s,this._parents)},data:function(t,e){if(!arguments.length)return Array.from(this,re);var i=e?se:ie,s=this._parents,r=this._groups;"function"!=typeof t&&(t=function(t){return function(){return t}}(t));for(var a=r.length,n=new Array(a),o=new Array(a),l=new Array(a),c=0;c<a;++c){var d=s[c],h=r[c],u=h.length,g=ae(t.call(d,d&&d.__data__,c,s)),p=g.length,m=o[c]=new Array(p),b=n[c]=new Array(p);i(d,h,m,b,l[c]=new Array(u),g,e);for(var y,Q,B=0,f=0;B<p;++B)if(y=m[B]){for(B>=f&&(f=B+1);!(Q=b[f])&&++f<p;);y._next=Q||null}}return(n=new Ke(n,s))._enter=o,n._exit=l,n},enter:function(){return new Ke(this._enter||this._groups.map(te),this._parents)},exit:function(){return new Ke(this._exit||this._groups.map(te),this._parents)},join:function(t,e,i){var s=this.enter(),r=this,a=this.exit();return"function"==typeof t?(s=t(s))&&(s=s.selection()):s=s.append(t+""),null!=e&&(r=e(r))&&(r=r.selection()),null==i?a.remove():i(a),s&&r?s.merge(r).order():r},merge:function(t){for(var e=t.selection?t.selection():t,i=this._groups,s=e._groups,r=i.length,a=s.length,n=Math.min(r,a),o=new Array(r),l=0;l<n;++l)for(var c,d=i[l],h=s[l],u=d.length,g=o[l]=new Array(u),p=0;p<u;++p)(c=d[p]||h[p])&&(g[p]=c);for(;l<r;++l)o[l]=i[l];return new Ke(o,this._parents)},selection:function(){return this},order:function(){for(var t=this._groups,e=-1,i=t.length;++e<i;)for(var s,r=t[e],a=r.length-1,n=r[a];--a>=0;)(s=r[a])&&(n&&4^s.compareDocumentPosition(n)&&n.parentNode.insertBefore(s,n),n=s);return this},sort:function(t){function e(e,i){return e&&i?t(e.__data__,i.__data__):!e-!i}t||(t=ne);for(var i=this._groups,s=i.length,r=new Array(s),a=0;a<s;++a){for(var n,o=i[a],l=o.length,c=r[a]=new Array(l),d=0;d<l;++d)(n=o[d])&&(c[d]=n);c.sort(e)}return new Ke(r,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,i=t.length;e<i;++e)for(var s=t[e],r=0,a=s.length;r<a;++r){var n=s[r];if(n)return n}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,i=0,s=e.length;i<s;++i)for(var r,a=e[i],n=0,o=a.length;n<o;++n)(r=a[n])&&t.call(r,r.__data__,n,a);return this},attr:function(t,e){var i=$t(t);if(arguments.length<2){var s=this.node();return i.local?s.getAttributeNS(i.space,i.local):s.getAttribute(i)}return this.each((null==e?i.local?le:oe:"function"==typeof e?i.local?ue:he:i.local?de:ce)(i,e))},style:function(t,e,i){return arguments.length>1?this.each((null==e?pe:"function"==typeof e?be:me)(t,e,null==i?"":i)):ye(this.node(),t)},property:function(t,e){return arguments.length>1?this.each((null==e?Qe:"function"==typeof e?fe:Be)(t,e)):this.node()[t]},classed:function(t,e){var i=Ie(t+"");if(arguments.length<2){for(var s=Ue(this.node()),r=-1,a=i.length;++r<a;)if(!s.contains(i[r]))return!1;return!0}return this.each(("function"==typeof e?Ee:e?xe:Ae)(i,e))},text:function(t){return arguments.length?this.each(null==t?Re:("function"==typeof t?we:Ne)(t)):this.node().textContent},html:function(t){return arguments.length?this.each(null==t?Le:("function"==typeof t?De:Se)(t)):this.node().innerHTML},raise:function(){return this.each(Me)},lower:function(){return this.each(ke)},append:function(t){var e="function"==typeof t?t:zt(t);return this.select((function(){return this.appendChild(e.apply(this,arguments))}))},insert:function(t,e){var i="function"==typeof t?t:zt(t),s=null==e?Te:"function"==typeof e?e:Yt(e);return this.select((function(){return this.insertBefore(i.apply(this,arguments),s.apply(this,arguments)||null)}))},remove:function(){return this.each(He)},clone:function(t){return this.select(t?Ve:$e)},datum:function(t){return arguments.length?this.property("__data__",t):this.node().__data__},on:function(t,e,i){var s,r,a=function(t){return t.trim().split(/^|\s+/).map((function(t){var e="",i=t.indexOf(".");return i>=0&&(e=t.slice(i+1),t=t.slice(0,i)),{type:t,name:e}}))}(t+""),n=a.length;if(!(arguments.length<2)){for(o=e?ze:Ge,s=0;s<n;++s)this.each(o(a[s],e,i));return this}var o=this.node().__on;if(o)for(var l,c=0,d=o.length;c<d;++c)for(s=0,l=o[c];s<n;++s)if((r=a[s]).type===l.type&&r.name===l.name)return l.value},dispatch:function(t,e){return this.each(("function"==typeof e?_e:Ye)(t,e))},[Symbol.iterator]:function*(){for(var t=this._groups,e=0,i=t.length;e<i;++e)for(var s,r=t[e],a=0,n=r.length;a<n;++a)(s=r[a])&&(yield s)}};var Pe=0;function Oe(){return new je}function je(){this._="@"+(++Pe).toString(36)}function qe(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 i=e.ownerSVGElement||e;if(i.createSVGPoint){var s=i.createSVGPoint();return s.x=t.clientX,s.y=t.clientY,[(s=s.matrixTransform(e.getScreenCTM().inverse())).x,s.y]}if(e.getBoundingClientRect){var r=e.getBoundingClientRect();return[t.clientX-r.left-e.clientLeft,t.clientY-r.top-e.clientTop]}}return[t.pageX,t.pageY]}je.prototype=Oe.prototype={constructor:je,get:function(t){for(var e=this._;!(e in t);)if(!(t=t.parentNode))return;return t[e]},set:function(t,e){return t[this._]=e},remove:function(t){return this._ in t&&delete t[this._]},toString:function(){return this._}};const ti={passive:!1},ei={capture:!0,passive:!1};function ii(t){t.stopImmediatePropagation()}function si(t){t.preventDefault(),t.stopImmediatePropagation()}var ri=t=>()=>t;function ai(t,{sourceEvent:e,subject:i,target:s,identifier:r,active:a,x:n,y:o,dx:l,dy:c,dispatch:d}){Object.defineProperties(this,{type:{value:t,enumerable:!0,configurable:!0},sourceEvent:{value:e,enumerable:!0,configurable:!0},subject:{value:i,enumerable:!0,configurable:!0},target:{value:s,enumerable:!0,configurable:!0},identifier:{value:r,enumerable:!0,configurable:!0},active:{value:a,enumerable:!0,configurable:!0},x:{value:n,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:d}})}function ni(t){return!t.ctrlKey&&!t.button}function oi(){return this.parentNode}function li(t,e){return null==e?{x:t.x,y:t.y}:e}function ci(){return navigator.maxTouchPoints||"ontouchstart"in this}function di(){var t,e,i,s,r=ni,a=oi,n=li,o=ci,l={},c=St("start","drag","end"),d=0,h=0;function u(t){t.on("mousedown.drag",g).filter(o).on("touchstart.drag",b).on("touchmove.drag",y,ti).on("touchend.drag touchcancel.drag",Q).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function g(n,o){if(!s&&r.call(this,n,o)){var l=B(this,a.call(this,n,o),n,o,"mouse");l&&(Ze(n.view).on("mousemove.drag",p,ei).on("mouseup.drag",m,ei),function(t){var e=t.document.documentElement,i=Ze(t).on("dragstart.drag",si,ei);"onselectstart"in e?i.on("selectstart.drag",si,ei):(e.__noselect=e.style.MozUserSelect,e.style.MozUserSelect="none")}(n.view),ii(n),i=!1,t=n.clientX,e=n.clientY,l("start",n))}}function p(s){if(si(s),!i){var r=s.clientX-t,a=s.clientY-e;i=r*r+a*a>h}l.mouse("drag",s)}function m(t){Ze(t.view).on("mousemove.drag mouseup.drag",null),function(t,e){var i=t.document.documentElement,s=Ze(t).on("dragstart.drag",null);e&&(s.on("click.drag",si,ei),setTimeout((function(){s.on("click.drag",null)}),0)),"onselectstart"in i?s.on("selectstart.drag",null):(i.style.MozUserSelect=i.__noselect,delete i.__noselect)}(t.view,i),si(t),l.mouse("end",t)}function b(t,e){if(r.call(this,t,e)){var i,s,n=t.changedTouches,o=a.call(this,t,e),l=n.length;for(i=0;i<l;++i)(s=B(this,o,t,e,n[i].identifier,n[i]))&&(ii(t),s("start",t,n[i]))}}function y(t){var e,i,s=t.changedTouches,r=s.length;for(e=0;e<r;++e)(i=l[s[e].identifier])&&(si(t),i("drag",t,s[e]))}function Q(t){var e,i,r=t.changedTouches,a=r.length;for(s&&clearTimeout(s),s=setTimeout((function(){s=null}),500),e=0;e<a;++e)(i=l[r[e].identifier])&&(ii(t),i("end",t,r[e]))}function B(t,e,i,s,r,a){var o,h,g,p=c.copy(),m=qe(a||i,e);if(null!=(g=n.call(t,new ai("beforestart",{sourceEvent:i,target:u,identifier:r,active:d,x:m[0],y:m[1],dx:0,dy:0,dispatch:p}),s)))return o=g.x-m[0]||0,h=g.y-m[1]||0,function i(a,n,c){var b,y=m;switch(a){case"start":l[r]=i,b=d++;break;case"end":delete l[r],--d;case"drag":m=qe(c||n,e),b=d}p.call(a,t,new ai(a,{sourceEvent:n,subject:g,target:u,identifier:r,active:b,x:m[0]+o,y:m[1]+h,dx:m[0]-y[0],dy:m[1]-y[1],dispatch:p}),s)}}return u.filter=function(t){return arguments.length?(r="function"==typeof t?t:ri(!!t),u):r},u.container=function(t){return arguments.length?(a="function"==typeof t?t:ri(t),u):a},u.subject=function(t){return arguments.length?(n="function"==typeof t?t:ri(t),u):n},u.touchable=function(t){return arguments.length?(o="function"==typeof t?t:ri(!!t),u):o},u.on=function(){var t=c.on.apply(c,arguments);return t===c?u:t},u.clickDistance=function(t){return arguments.length?(h=(t=+t)*t,u):Math.sqrt(h)},u}function hi(t,e,i){t.prototype=e.prototype=i,i.constructor=t}function ui(t,e){var i=Object.create(t.prototype);for(var s in e)i[s]=e[s];return i}function gi(){}ai.prototype.on=function(){var t=this._.on.apply(this._,arguments);return t===this._?this:t};var pi=.7,mi=1/pi,bi="\\s*([+-]?\\d+)\\s*",yi="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",Qi="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",Bi=/^#([0-9a-f]{3,8})$/,fi=new RegExp(`^rgb\\(${bi},${bi},${bi}\\)$`),Ii=new RegExp(`^rgb\\(${Qi},${Qi},${Qi}\\)$`),Ui=new RegExp(`^rgba\\(${bi},${bi},${bi},${yi}\\)$`),Fi=new RegExp(`^rgba\\(${Qi},${Qi},${Qi},${yi}\\)$`),Ci=new RegExp(`^hsl\\(${yi},${Qi},${Qi}\\)$`),vi=new RegExp(`^hsla\\(${yi},${Qi},${Qi},${yi}\\)$`),xi={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 Ai(){return this.rgb().formatHex()}function Ei(){return this.rgb().formatRgb()}function Ri(t){var e,i;return t=(t+"").trim().toLowerCase(),(e=Bi.exec(t))?(i=e[1].length,e=parseInt(e[1],16),6===i?Ni(e):3===i?new Si(e>>8&15|e>>4&240,e>>4&15|240&e,(15&e)<<4|15&e,1):8===i?wi(e>>24&255,e>>16&255,e>>8&255,(255&e)/255):4===i?wi(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=fi.exec(t))?new Si(e[1],e[2],e[3],1):(e=Ii.exec(t))?new Si(255*e[1]/100,255*e[2]/100,255*e[3]/100,1):(e=Ui.exec(t))?wi(e[1],e[2],e[3],e[4]):(e=Fi.exec(t))?wi(255*e[1]/100,255*e[2]/100,255*e[3]/100,e[4]):(e=Ci.exec(t))?$i(e[1],e[2]/100,e[3]/100,1):(e=vi.exec(t))?$i(e[1],e[2]/100,e[3]/100,e[4]):xi.hasOwnProperty(t)?Ni(xi[t]):"transparent"===t?new Si(NaN,NaN,NaN,0):null}function Ni(t){return new Si(t>>16&255,t>>8&255,255&t,1)}function wi(t,e,i,s){return s<=0&&(t=e=i=NaN),new Si(t,e,i,s)}function Li(t,e,i,s){return 1===arguments.length?function(t){return t instanceof gi||(t=Ri(t)),t?new Si((t=t.rgb()).r,t.g,t.b,t.opacity):new Si}(t):new Si(t,e,i,null==s?1:s)}function Si(t,e,i,s){this.r=+t,this.g=+e,this.b=+i,this.opacity=+s}function Di(){return`#${Hi(this.r)}${Hi(this.g)}${Hi(this.b)}`}function Mi(){const t=ki(this.opacity);return`${1===t?"rgb(":"rgba("}${Ti(this.r)}, ${Ti(this.g)}, ${Ti(this.b)}${1===t?")":`, ${t})`}`}function ki(t){return isNaN(t)?1:Math.max(0,Math.min(1,t))}function Ti(t){return Math.max(0,Math.min(255,Math.round(t)||0))}function Hi(t){return((t=Ti(t))<16?"0":"")+t.toString(16)}function $i(t,e,i,s){return s<=0?t=e=i=NaN:i<=0||i>=1?t=e=NaN:e<=0&&(t=NaN),new Gi(t,e,i,s)}function Vi(t){if(t instanceof Gi)return new Gi(t.h,t.s,t.l,t.opacity);if(t instanceof gi||(t=Ri(t)),!t)return new Gi;if(t instanceof Gi)return t;var e=(t=t.rgb()).r/255,i=t.g/255,s=t.b/255,r=Math.min(e,i,s),a=Math.max(e,i,s),n=NaN,o=a-r,l=(a+r)/2;return o?(n=e===a?(i-s)/o+6*(i<s):i===a?(s-e)/o+2:(e-i)/o+4,o/=l<.5?a+r:2-a-r,n*=60):o=l>0&&l<1?0:n,new Gi(n,o,l,t.opacity)}function Gi(t,e,i,s){this.h=+t,this.s=+e,this.l=+i,this.opacity=+s}function zi(t){return(t=(t||0)%360)<0?t+360:t}function Wi(t){return Math.max(0,Math.min(1,t||0))}function Yi(t,e,i){return 255*(t<60?e+(i-e)*t/60:t<180?i:t<240?e+(i-e)*(240-t)/60:e)}hi(gi,Ri,{copy(t){return Object.assign(new this.constructor,this,t)},displayable(){return this.rgb().displayable()},hex:Ai,formatHex:Ai,formatHex8:function(){return this.rgb().formatHex8()},formatHsl:function(){return Vi(this).formatHsl()},formatRgb:Ei,toString:Ei}),hi(Si,Li,ui(gi,{brighter(t){return t=null==t?mi:Math.pow(mi,t),new Si(this.r*t,this.g*t,this.b*t,this.opacity)},darker(t){return t=null==t?pi:Math.pow(pi,t),new Si(this.r*t,this.g*t,this.b*t,this.opacity)},rgb(){return this},clamp(){return new Si(Ti(this.r),Ti(this.g),Ti(this.b),ki(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:Di,formatHex:Di,formatHex8:function(){return`#${Hi(this.r)}${Hi(this.g)}${Hi(this.b)}${Hi(255*(isNaN(this.opacity)?1:this.opacity))}`},formatRgb:Mi,toString:Mi})),hi(Gi,(function(t,e,i,s){return 1===arguments.length?Vi(t):new Gi(t,e,i,null==s?1:s)}),ui(gi,{brighter(t){return t=null==t?mi:Math.pow(mi,t),new Gi(this.h,this.s,this.l*t,this.opacity)},darker(t){return t=null==t?pi:Math.pow(pi,t),new Gi(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,i=this.l,s=i+(i<.5?i:1-i)*e,r=2*i-s;return new Si(Yi(t>=240?t-240:t+120,r,s),Yi(t,r,s),Yi(t<120?t+240:t-120,r,s),this.opacity)},clamp(){return new Gi(zi(this.h),Wi(this.s),Wi(this.l),ki(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=ki(this.opacity);return`${1===t?"hsl(":"hsla("}${zi(this.h)}, ${100*Wi(this.s)}%, ${100*Wi(this.l)}%${1===t?")":`, ${t})`}`}}));var _i=t=>()=>t;function Ji(t){return 1==(t=+t)?Ki:function(e,i){return i-e?function(t,e,i){return t=Math.pow(t,i),e=Math.pow(e,i)-t,i=1/i,function(s){return Math.pow(t+s*e,i)}}(e,i,t):_i(isNaN(e)?i:e)}}function Ki(t,e){var i=e-t;return i?function(t,e){return function(i){return t+i*e}}(t,i):_i(isNaN(t)?e:t)}var Xi=function t(e){var i=Ji(e);function s(t,e){var s=i((t=Li(t)).r,(e=Li(e)).r),r=i(t.g,e.g),a=i(t.b,e.b),n=Ki(t.opacity,e.opacity);return function(e){return t.r=s(e),t.g=r(e),t.b=a(e),t.opacity=n(e),t+""}}return s.gamma=t,s}(1);function Zi(t,e){e||(e=[]);var i,s=t?Math.min(e.length,t.length):0,r=e.slice();return function(a){for(i=0;i<s;++i)r[i]=t[i]*(1-a)+e[i]*a;return r}}function Pi(t,e){var i,s=e?e.length:0,r=t?Math.min(s,t.length):0,a=new Array(r),n=new Array(s);for(i=0;i<r;++i)a[i]=ss(t[i],e[i]);for(;i<s;++i)n[i]=e[i];return function(t){for(i=0;i<r;++i)n[i]=a[i](t);return n}}function Oi(t,e){var i=new Date;return t=+t,e=+e,function(s){return i.setTime(t*(1-s)+e*s),i}}function ji(t,e){return t=+t,e=+e,function(i){return t*(1-i)+e*i}}function qi(t,e){var i,s={},r={};for(i in null!==t&&"object"==typeof t||(t={}),null!==e&&"object"==typeof e||(e={}),e)i in t?s[i]=ss(t[i],e[i]):r[i]=e[i];return function(t){for(i in s)r[i]=s[i](t);return r}}var ts=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,es=new RegExp(ts.source,"g");function is(t,e){var i,s,r,a=ts.lastIndex=es.lastIndex=0,n=-1,o=[],l=[];for(t+="",e+="";(i=ts.exec(t))&&(s=es.exec(e));)(r=s.index)>a&&(r=e.slice(a,r),o[n]?o[n]+=r:o[++n]=r),(i=i[0])===(s=s[0])?o[n]?o[n]+=s:o[++n]=s:(o[++n]=null,l.push({i:n,x:ji(i,s)})),a=es.lastIndex;return a<e.length&&(r=e.slice(a),o[n]?o[n]+=r:o[++n]=r),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 i,s=0;s<e;++s)o[(i=l[s]).i]=i.x(t);return o.join("")})}function ss(t,e){var i,s=typeof e;return null==e||"boolean"===s?_i(e):("number"===s?ji:"string"===s?(i=Ri(e))?(e=i,Xi):is:e instanceof Ri?Xi:e instanceof Date?Oi:function(t){return ArrayBuffer.isView(t)&&!(t instanceof DataView)}(e)?Zi:Array.isArray(e)?Pi:"function"!=typeof e.valueOf&&"function"!=typeof e.toString||isNaN(e)?qi:ji)(t,e)}function rs(t,e){return t=+t,e=+e,function(i){return Math.round(t*(1-i)+e*i)}}var as,ns=180/Math.PI,os={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function ls(t,e,i,s,r,a){var n,o,l;return(n=Math.sqrt(t*t+e*e))&&(t/=n,e/=n),(l=t*i+e*s)&&(i-=t*l,s-=e*l),(o=Math.sqrt(i*i+s*s))&&(i/=o,s/=o,l/=o),t*s<e*i&&(t=-t,e=-e,l=-l,n=-n),{translateX:r,translateY:a,rotate:Math.atan2(e,t)*ns,skewX:Math.atan(l)*ns,scaleX:n,scaleY:o}}function cs(t,e,i,s){function r(t){return t.length?t.pop()+" ":""}return function(a,n){var o=[],l=[];return a=t(a),n=t(n),function(t,s,r,a,n,o){if(t!==r||s!==a){var l=n.push("translate(",null,e,null,i);o.push({i:l-4,x:ji(t,r)},{i:l-2,x:ji(s,a)})}else(r||a)&&n.push("translate("+r+e+a+i)}(a.translateX,a.translateY,n.translateX,n.translateY,o,l),function(t,e,i,a){t!==e?(t-e>180?e+=360:e-t>180&&(t+=360),a.push({i:i.push(r(i)+"rotate(",null,s)-2,x:ji(t,e)})):e&&i.push(r(i)+"rotate("+e+s)}(a.rotate,n.rotate,o,l),function(t,e,i,a){t!==e?a.push({i:i.push(r(i)+"skewX(",null,s)-2,x:ji(t,e)}):e&&i.push(r(i)+"skewX("+e+s)}(a.skewX,n.skewX,o,l),function(t,e,i,s,a,n){if(t!==i||e!==s){var o=a.push(r(a)+"scale(",null,",",null,")");n.push({i:o-4,x:ji(t,i)},{i:o-2,x:ji(e,s)})}else 1===i&&1===s||a.push(r(a)+"scale("+i+","+s+")")}(a.scaleX,a.scaleY,n.scaleX,n.scaleY,o,l),a=n=null,function(t){for(var e,i=-1,s=l.length;++i<s;)o[(e=l[i]).i]=e.x(t);return o.join("")}}}var ds,hs,us=cs((function(t){const e=new("function"==typeof DOMMatrix?DOMMatrix:WebKitCSSMatrix)(t+"");return e.isIdentity?os:ls(e.a,e.b,e.c,e.d,e.e,e.f)}),"px, ","px)","deg)"),gs=cs((function(t){return null==t?os:(as||(as=document.createElementNS("http://www.w3.org/2000/svg","g")),as.setAttribute("transform",t),(t=as.transform.baseVal.consolidate())?ls((t=t.matrix).a,t.b,t.c,t.d,t.e,t.f):os)}),", ",")",")"),ps=0,ms=0,bs=0,ys=1e3,Qs=0,Bs=0,fs=0,Is="object"==typeof performance&&performance.now?performance:Date,Us="object"==typeof window&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(t){setTimeout(t,17)};function Fs(){return Bs||(Us(Cs),Bs=Is.now()+fs)}function Cs(){Bs=0}function vs(){this._call=this._time=this._next=null}function xs(t,e,i){var s=new vs;return s.restart(t,e,i),s}function As(){Bs=(Qs=Is.now())+fs,ps=ms=0;try{!function(){Fs(),++ps;for(var t,e=ds;e;)(t=Bs-e._time)>=0&&e._call.call(void 0,t),e=e._next;--ps}()}finally{ps=0,function(){var t,e,i=ds,s=1/0;for(;i;)i._call?(s>i._time&&(s=i._time),t=i,i=i._next):(e=i._next,i._next=null,i=t?t._next=e:ds=e);hs=t,Rs(s)}(),Bs=0}}function Es(){var t=Is.now(),e=t-Qs;e>ys&&(fs-=e,Qs=t)}function Rs(t){ps||(ms&&(ms=clearTimeout(ms)),t-Bs>24?(t<1/0&&(ms=setTimeout(As,t-Is.now()-fs)),bs&&(bs=clearInterval(bs))):(bs||(Qs=Is.now(),bs=setInterval(Es,ys)),ps=1,Us(As)))}function Ns(t,e,i){var s=new vs;return e=null==e?0:+e,s.restart((i=>{s.stop(),t(i+e)}),e,i),s}vs.prototype=xs.prototype={constructor:vs,restart:function(t,e,i){if("function"!=typeof t)throw new TypeError("callback is not a function");i=(null==i?Fs():+i)+(null==e?0:+e),this._next||hs===this||(hs?hs._next=this:ds=this,hs=this),this._call=t,this._time=i,Rs()},stop:function(){this._call&&(this._call=null,this._time=1/0,Rs())}};var ws=St("start","end","cancel","interrupt"),Ls=[],Ss=0,Ds=1,Ms=2,ks=3,Ts=4,Hs=5,$s=6;function Vs(t,e,i,s,r,a){var n=t.__transition;if(n){if(i in n)return}else t.__transition={};!function(t,e,i){var s,r=t.__transition;function a(t){i.state=Ds,i.timer.restart(n,i.delay,i.time),i.delay<=t&&n(t-i.delay)}function n(a){var c,d,h,u;if(i.state!==Ds)return l();for(c in r)if((u=r[c]).name===i.name){if(u.state===ks)return Ns(n);u.state===Ts?(u.state=$s,u.timer.stop(),u.on.call("interrupt",t,t.__data__,u.index,u.group),delete r[c]):+c<e&&(u.state=$s,u.timer.stop(),u.on.call("cancel",t,t.__data__,u.index,u.group),delete r[c])}if(Ns((function(){i.state===ks&&(i.state=Ts,i.timer.restart(o,i.delay,i.time),o(a))})),i.state=Ms,i.on.call("start",t,t.__data__,i.index,i.group),i.state===Ms){for(i.state=ks,s=new Array(h=i.tween.length),c=0,d=-1;c<h;++c)(u=i.tween[c].value.call(t,t.__data__,i.index,i.group))&&(s[++d]=u);s.length=d+1}}function o(e){for(var r=e<i.duration?i.ease.call(null,e/i.duration):(i.timer.restart(l),i.state=Hs,1),a=-1,n=s.length;++a<n;)s[a].call(t,r);i.state===Hs&&(i.on.call("end",t,t.__data__,i.index,i.group),l())}function l(){for(var s in i.state=$s,i.timer.stop(),delete r[e],r)return;delete t.__transition}r[e]=i,i.timer=xs(a,0,i.time)}(t,i,{name:e,index:s,group:r,on:ws,tween:Ls,time:a.time,delay:a.delay,duration:a.duration,ease:a.ease,timer:null,state:Ss})}function Gs(t,e){var i=Ws(t,e);if(i.state>Ss)throw new Error("too late; already scheduled");return i}function zs(t,e){var i=Ws(t,e);if(i.state>ks)throw new Error("too late; already running");return i}function Ws(t,e){var i=t.__transition;if(!i||!(i=i[e]))throw new Error("transition not found");return i}function Ys(t,e){var i,s;return function(){var r=zs(this,t),a=r.tween;if(a!==i)for(var n=0,o=(s=i=a).length;n<o;++n)if(s[n].name===e){(s=s.slice()).splice(n,1);break}r.tween=s}}function _s(t,e,i){var s,r;if("function"!=typeof i)throw new Error;return function(){var a=zs(this,t),n=a.tween;if(n!==s){r=(s=n).slice();for(var o={name:e,value:i},l=0,c=r.length;l<c;++l)if(r[l].name===e){r[l]=o;break}l===c&&r.push(o)}a.tween=r}}function Js(t,e,i){var s=t._id;return t.each((function(){var t=zs(this,s);(t.value||(t.value={}))[e]=i.apply(this,arguments)})),function(t){return Ws(t,s).value[e]}}function Ks(t,e){var i;return("number"==typeof e?ji:e instanceof Ri?Xi:(i=Ri(e))?(e=i,Xi):is)(t,e)}function Xs(t){return function(){this.removeAttribute(t)}}function Zs(t){return function(){this.removeAttributeNS(t.space,t.local)}}function Ps(t,e,i){var s,r,a=i+"";return function(){var n=this.getAttribute(t);return n===a?null:n===s?r:r=e(s=n,i)}}function Os(t,e,i){var s,r,a=i+"";return function(){var n=this.getAttributeNS(t.space,t.local);return n===a?null:n===s?r:r=e(s=n,i)}}function js(t,e,i){var s,r,a;return function(){var n,o,l=i(this);if(null!=l)return(n=this.getAttribute(t))===(o=l+"")?null:n===s&&o===r?a:(r=o,a=e(s=n,l));this.removeAttribute(t)}}function qs(t,e,i){var s,r,a;return function(){var n,o,l=i(this);if(null!=l)return(n=this.getAttributeNS(t.space,t.local))===(o=l+"")?null:n===s&&o===r?a:(r=o,a=e(s=n,l));this.removeAttributeNS(t.space,t.local)}}function tr(t,e){var i,s;function r(){var r=e.apply(this,arguments);return r!==s&&(i=(s=r)&&function(t,e){return function(i){this.setAttributeNS(t.space,t.local,e.call(this,i))}}(t,r)),i}return r._value=e,r}function er(t,e){var i,s;function r(){var r=e.apply(this,arguments);return r!==s&&(i=(s=r)&&function(t,e){return function(i){this.setAttribute(t,e.call(this,i))}}(t,r)),i}return r._value=e,r}function ir(t,e){return function(){Gs(this,t).delay=+e.apply(this,arguments)}}function sr(t,e){return e=+e,function(){Gs(this,t).delay=e}}function rr(t,e){return function(){zs(this,t).duration=+e.apply(this,arguments)}}function ar(t,e){return e=+e,function(){zs(this,t).duration=e}}var nr=Xe.prototype.constructor;function or(t){return function(){this.style.removeProperty(t)}}var lr=0;function cr(t,e,i,s){this._groups=t,this._parents=e,this._name=i,this._id=s}function dr(){return++lr}var hr=Xe.prototype;cr.prototype={constructor:cr,select:function(t){var e=this._name,i=this._id;"function"!=typeof t&&(t=Yt(t));for(var s=this._groups,r=s.length,a=new Array(r),n=0;n<r;++n)for(var o,l,c=s[n],d=c.length,h=a[n]=new Array(d),u=0;u<d;++u)(o=c[u])&&(l=t.call(o,o.__data__,u,c))&&("__data__"in o&&(l.__data__=o.__data__),h[u]=l,Vs(h[u],e,i,u,h,Ws(o,i)));return new cr(a,this._parents,e,i)},selectAll:function(t){var e=this._name,i=this._id;"function"!=typeof t&&(t=Jt(t));for(var s=this._groups,r=s.length,a=[],n=[],o=0;o<r;++o)for(var l,c=s[o],d=c.length,h=0;h<d;++h)if(l=c[h]){for(var u,g=t.call(l,l.__data__,h,c),p=Ws(l,i),m=0,b=g.length;m<b;++m)(u=g[m])&&Vs(u,e,i,m,g,p);a.push(g),n.push(l)}return new cr(a,n,e,i)},selectChild:hr.selectChild,selectChildren:hr.selectChildren,filter:function(t){"function"!=typeof t&&(t=Xt(t));for(var e=this._groups,i=e.length,s=new Array(i),r=0;r<i;++r)for(var a,n=e[r],o=n.length,l=s[r]=[],c=0;c<o;++c)(a=n[c])&&t.call(a,a.__data__,c,n)&&l.push(a);return new cr(s,this._parents,this._name,this._id)},merge:function(t){if(t._id!==this._id)throw new Error;for(var e=this._groups,i=t._groups,s=e.length,r=i.length,a=Math.min(s,r),n=new Array(s),o=0;o<a;++o)for(var l,c=e[o],d=i[o],h=c.length,u=n[o]=new Array(h),g=0;g<h;++g)(l=c[g]||d[g])&&(u[g]=l);for(;o<s;++o)n[o]=e[o];return new cr(n,this._parents,this._name,this._id)},selection:function(){return new nr(this._groups,this._parents)},transition:function(){for(var t=this._name,e=this._id,i=dr(),s=this._groups,r=s.length,a=0;a<r;++a)for(var n,o=s[a],l=o.length,c=0;c<l;++c)if(n=o[c]){var d=Ws(n,e);Vs(n,t,i,c,o,{time:d.time+d.delay+d.duration,delay:0,duration:d.duration,ease:d.ease})}return new cr(s,this._parents,t,i)},call:hr.call,nodes:hr.nodes,node:hr.node,size:hr.size,empty:hr.empty,each:hr.each,on:function(t,e){var i=this._id;return arguments.length<2?Ws(this.node(),i).on.on(t):this.each(function(t,e,i){var s,r,a=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)?Gs:zs;return function(){var n=a(this,t),o=n.on;o!==s&&(r=(s=o).copy()).on(e,i),n.on=r}}(i,t,e))},attr:function(t,e){var i=$t(t),s="transform"===i?gs:Ks;return this.attrTween(t,"function"==typeof e?(i.local?qs:js)(i,s,Js(this,"attr."+t,e)):null==e?(i.local?Zs:Xs)(i):(i.local?Os:Ps)(i,s,e))},attrTween:function(t,e){var i="attr."+t;if(arguments.length<2)return(i=this.tween(i))&&i._value;if(null==e)return this.tween(i,null);if("function"!=typeof e)throw new Error;var s=$t(t);return this.tween(i,(s.local?tr:er)(s,e))},style:function(t,e,i){var s="transform"==(t+="")?us:Ks;return null==e?this.styleTween(t,function(t,e){var i,s,r;return function(){var a=ye(this,t),n=(this.style.removeProperty(t),ye(this,t));return a===n?null:a===i&&n===s?r:r=e(i=a,s=n)}}(t,s)).on("end.style."+t,or(t)):"function"==typeof e?this.styleTween(t,function(t,e,i){var s,r,a;return function(){var n=ye(this,t),o=i(this),l=o+"";return null==o&&(this.style.removeProperty(t),l=o=ye(this,t)),n===l?null:n===s&&l===r?a:(r=l,a=e(s=n,o))}}(t,s,Js(this,"style."+t,e))).each(function(t,e){var i,s,r,a,n="style."+e,o="end."+n;return function(){var l=zs(this,t),c=l.on,d=null==l.value[n]?a||(a=or(e)):void 0;c===i&&r===d||(s=(i=c).copy()).on(o,r=d),l.on=s}}(this._id,t)):this.styleTween(t,function(t,e,i){var s,r,a=i+"";return function(){var n=ye(this,t);return n===a?null:n===s?r:r=e(s=n,i)}}(t,s,e),i).on("end.style."+t,null)},styleTween:function(t,e,i){var s="style."+(t+="");if(arguments.length<2)return(s=this.tween(s))&&s._value;if(null==e)return this.tween(s,null);if("function"!=typeof e)throw new Error;return this.tween(s,function(t,e,i){var s,r;function a(){var a=e.apply(this,arguments);return a!==r&&(s=(r=a)&&function(t,e,i){return function(s){this.style.setProperty(t,e.call(this,s),i)}}(t,a,i)),s}return a._value=e,a}(t,e,null==i?"":i))},text:function(t){return this.tween("text","function"==typeof t?function(t){return function(){var e=t(this);this.textContent=null==e?"":e}}(Js(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,i;function s(){var s=t.apply(this,arguments);return s!==i&&(e=(i=s)&&function(t){return function(e){this.textContent=t.call(this,e)}}(s)),e}return s._value=t,s}(t))},remove:function(){return this.on("end.remove",function(t){return function(){var e=this.parentNode;for(var i in this.__transition)if(+i!==t)return;e&&e.removeChild(this)}}(this._id))},tween:function(t,e){var i=this._id;if(t+="",arguments.length<2){for(var s,r=Ws(this.node(),i).tween,a=0,n=r.length;a<n;++a)if((s=r[a]).name===t)return s.value;return null}return this.each((null==e?Ys:_s)(i,t,e))},delay:function(t){var e=this._id;return arguments.length?this.each(("function"==typeof t?ir:sr)(e,t)):Ws(this.node(),e).delay},duration:function(t){var e=this._id;return arguments.length?this.each(("function"==typeof t?rr:ar)(e,t)):Ws(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(){zs(this,t).ease=e}}(e,t)):Ws(this.node(),e).ease},easeVarying:function(t){if("function"!=typeof t)throw new Error;return this.each(function(t,e){return function(){var i=e.apply(this,arguments);if("function"!=typeof i)throw new Error;zs(this,t).ease=i}}(this._id,t))},end:function(){var t,e,i=this,s=i._id,r=i.size();return new Promise((function(a,n){var o={value:n},l={value:function(){0==--r&&a()}};i.each((function(){var i=zs(this,s),r=i.on;r!==t&&((e=(t=r).copy())._.cancel.push(o),e._.interrupt.push(o),e._.end.push(l)),i.on=e})),0===r&&a()}))},[Symbol.iterator]:hr[Symbol.iterator]};const ur=t=>+t;function gr(t){return--t*t*t+1}var pr={time:null,delay:0,duration:250,ease:function(t){return((t*=2)<=1?t*t*t:(t-=2)*t*t+2)/2}};function mr(t,e){for(var i;!(i=t.__transition)||!(i=i[e]);)if(!(t=t.parentNode))throw new Error(`transition ${e} not found`);return i}Xe.prototype.interrupt=function(t){return this.each((function(){!function(t,e){var i,s,r,a=t.__transition,n=!0;if(a){for(r in e=null==e?null:e+"",a)(i=a[r]).name===e?(s=i.state>Ms&&i.state<Hs,i.state=$s,i.timer.stop(),i.on.call(s?"interrupt":"cancel",t,t.__data__,i.index,i.group),delete a[r]):n=!1;n&&delete t.__transition}}(this,t)}))},Xe.prototype.transition=function(t){var e,i;t instanceof cr?(e=t._id,t=t._name):(e=dr(),(i=pr).time=Fs(),t=null==t?null:t+"");for(var s=this._groups,r=s.length,a=0;a<r;++a)for(var n,o=s[a],l=o.length,c=0;c<l;++c)(n=o[c])&&Vs(n,t,e,c,o,i||mr(n,e));return new cr(s,this._parents,t,e)};const br=Math.PI,yr=2*br,Qr=1e-6,Br=yr-Qr;function fr(t){this._+=t[0];for(let e=1,i=t.length;e<i;++e)this._+=arguments[e]+t[e]}class Ir{constructor(t){this._x0=this._y0=this._x1=this._y1=null,this._="",this._append=null==t?fr:function(t){let e=Math.floor(t);if(!(e>=0))throw new Error(`invalid digits: ${t}`);if(e>15)return fr;const i=10**e;return function(t){this._+=t[0];for(let e=1,s=t.length;e<s;++e)this._+=Math.round(arguments[e]*i)/i+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,i,s){this._append`Q${+t},${+e},${this._x1=+i},${this._y1=+s}`}bezierCurveTo(t,e,i,s,r,a){this._append`C${+t},${+e},${+i},${+s},${this._x1=+r},${this._y1=+a}`}arcTo(t,e,i,s,r){if(t=+t,e=+e,i=+i,s=+s,(r=+r)<0)throw new Error(`negative radius: ${r}`);let a=this._x1,n=this._y1,o=i-t,l=s-e,c=a-t,d=n-e,h=c*c+d*d;if(null===this._x1)this._append`M${this._x1=t},${this._y1=e}`;else if(h>Qr)if(Math.abs(d*o-l*c)>Qr&&r){let u=i-a,g=s-n,p=o*o+l*l,m=u*u+g*g,b=Math.sqrt(p),y=Math.sqrt(h),Q=r*Math.tan((br-Math.acos((p+h-m)/(2*b*y)))/2),B=Q/y,f=Q/b;Math.abs(B-1)>Qr&&this._append`L${t+B*c},${e+B*d}`,this._append`A${r},${r},0,0,${+(d*u>c*g)},${this._x1=t+f*o},${this._y1=e+f*l}`}else this._append`L${this._x1=t},${this._y1=e}`;else;}arc(t,e,i,s,r,a){if(t=+t,e=+e,a=!!a,(i=+i)<0)throw new Error(`negative radius: ${i}`);let n=i*Math.cos(s),o=i*Math.sin(s),l=t+n,c=e+o,d=1^a,h=a?s-r:r-s;null===this._x1?this._append`M${l},${c}`:(Math.abs(this._x1-l)>Qr||Math.abs(this._y1-c)>Qr)&&this._append`L${l},${c}`,i&&(h<0&&(h=h%yr+yr),h>Br?this._append`A${i},${i},0,1,${d},${t-n},${e-o}A${i},${i},0,1,${d},${this._x1=l},${this._y1=c}`:h>Qr&&this._append`A${i},${i},0,${+(h>=br)},${d},${this._x1=t+i*Math.cos(r)},${this._y1=e+i*Math.sin(r)}`)}rect(t,e,i,s){this._append`M${this._x0=this._x1=+t},${this._y0=this._y1=+e}h${i=+i}v${+s}h${-i}Z`}toString(){return this._}}function Ur(t,e){if((i=(t=e?t.toExponential(e-1):t.toExponential()).indexOf("e"))<0)return null;var i,s=t.slice(0,i);return[s.length>1?s[0]+s.slice(2):s,+t.slice(i+1)]}function Fr(t){return(t=Ur(Math.abs(t)))?t[1]:NaN}var Cr,vr=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function xr(t){if(!(e=vr.exec(t)))throw new Error("invalid format: "+t);var e;return new Ar({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 Ar(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 Er(t,e){var i=Ur(t,e);if(!i)return t+"";var s=i[0],r=i[1];return r<0?"0."+new Array(-r).join("0")+s:s.length>r+1?s.slice(0,r+1)+"."+s.slice(r+1):s+new Array(r-s.length+2).join("0")}xr.prototype=Ar.prototype,Ar.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 Rr={"%":(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)=>Er(100*t,e),r:Er,s:function(t,e){var i=Ur(t,e);if(!i)return t+"";var s=i[0],r=i[1],a=r-(Cr=3*Math.max(-8,Math.min(8,Math.floor(r/3))))+1,n=s.length;return a===n?s:a>n?s+new Array(a-n+1).join("0"):a>0?s.slice(0,a)+"."+s.slice(a):"0."+new Array(1-a).join("0")+Ur(t,Math.max(0,e+a-1))[0]},X:t=>Math.round(t).toString(16).toUpperCase(),x:t=>Math.round(t).toString(16)};function Nr(t){return t}var wr,Lr,Sr,Dr=Array.prototype.map,Mr=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function kr(t){var e,i,s=void 0===t.grouping||void 0===t.thousands?Nr:(e=Dr.call(t.grouping,Number),i=t.thousands+"",function(t,s){for(var r=t.length,a=[],n=0,o=e[0],l=0;r>0&&o>0&&(l+o+1>s&&(o=Math.max(1,s-l)),a.push(t.substring(r-=o,r+o)),!((l+=o+1)>s));)o=e[n=(n+1)%e.length];return a.reverse().join(i)}),r=void 0===t.currency?"":t.currency[0]+"",a=void 0===t.currency?"":t.currency[1]+"",n=void 0===t.decimal?".":t.decimal+"",o=void 0===t.numerals?Nr:function(t){return function(e){return e.replace(/[0-9]/g,(function(e){return t[+e]}))}}(Dr.call(t.numerals,String)),l=void 0===t.percent?"%":t.percent+"",c=void 0===t.minus?"−":t.minus+"",d=void 0===t.nan?"NaN":t.nan+"";function h(t){var e=(t=xr(t)).fill,i=t.align,h=t.sign,u=t.symbol,g=t.zero,p=t.width,m=t.comma,b=t.precision,y=t.trim,Q=t.type;"n"===Q?(m=!0,Q="g"):Rr[Q]||(void 0===b&&(b=12),y=!0,Q="g"),(g||"0"===e&&"="===i)&&(g=!0,e="0",i="=");var B="$"===u?r:"#"===u&&/[boxX]/.test(Q)?"0"+Q.toLowerCase():"",f="$"===u?a:/[%p]/.test(Q)?l:"",I=Rr[Q],U=/[defgprs%]/.test(Q);function F(t){var r,a,l,u=B,F=f;if("c"===Q)F=I(t)+F,t="";else{var C=(t=+t)<0||1/t<0;if(t=isNaN(t)?d:I(Math.abs(t),b),y&&(t=function(t){t:for(var e,i=t.length,s=1,r=-1;s<i;++s)switch(t[s]){case".":r=e=s;break;case"0":0===r&&(r=s),e=s;break;default:if(!+t[s])break t;r>0&&(r=0)}return r>0?t.slice(0,r)+t.slice(e+1):t}(t)),C&&0==+t&&"+"!==h&&(C=!1),u=(C?"("===h?h:c:"-"===h||"("===h?"":h)+u,F=("s"===Q?Mr[8+Cr/3]:"")+F+(C&&"("===h?")":""),U)for(r=-1,a=t.length;++r<a;)if(48>(l=t.charCodeAt(r))||l>57){F=(46===l?n+t.slice(r+1):t.slice(r))+F,t=t.slice(0,r);break}}m&&!g&&(t=s(t,1/0));var v=u.length+t.length+F.length,x=v<p?new Array(p-v+1).join(e):"";switch(m&&g&&(t=s(x+t,x.length?p-F.length:1/0),x=""),i){case"<":t=u+t+F+x;break;case"=":t=u+x+t+F;break;case"^":t=x.slice(0,v=x.length>>1)+u+t+F+x.slice(v);break;default:t=x+u+t+F}return o(t)}return b=void 0===b?6:/[gprs]/.test(Q)?Math.max(1,Math.min(21,b)):Math.max(0,Math.min(20,b)),F.toString=function(){return t+""},F}return{format:h,formatPrefix:function(t,e){var i=h(((t=xr(t)).type="f",t)),s=3*Math.max(-8,Math.min(8,Math.floor(Fr(e)/3))),r=Math.pow(10,-s),a=Mr[8+s/3];return function(t){return i(r*t)+a}}}}wr=kr({thousands:",",grouping:[3],currency:["$",""]}),Lr=wr.format,Sr=wr.formatPrefix;var Tr=Math.random,Hr=function t(e){function i(t,i){return t=null==t?0:+t,i=null==i?1:+i,1===arguments.length?(i=t,t=0):i-=t,function(){return e()*i+t}}return i.source=t,i}(Tr),$r=function t(e){function i(t,i){var s,r;return t=null==t?0:+t,i=null==i?1:+i,function(){var a;if(null!=s)a=s,s=null;else do{s=2*e()-1,a=2*e()-1,r=s*s+a*a}while(!r||r>1);return t+i*a*Math.sqrt(-2*Math.log(r)/r)}}return i.source=t,i}(Tr);const Vr=1/4294967296;function Gr(t=Math.random()){let e=0|(0<=t&&t<1?t/Vr:Math.abs(t));return()=>(e=1664525*e+1013904223|0,Vr*(e>>>0))}function zr(t,e){switch(arguments.length){case 0:break;case 1:this.range(t);break;default:this.range(e).domain(t)}return this}function Wr(t){return+t}var Yr=[0,1];function _r(t){return t}function Jr(t,e){return(e-=t=+t)?function(i){return(i-t)/e}:function(t){return function(){return t}}(isNaN(e)?NaN:.5)}function Kr(t,e,i){var s=t[0],r=t[1],a=e[0],n=e[1];return r<s?(s=Jr(r,s),a=i(n,a)):(s=Jr(s,r),a=i(a,n)),function(t){return a(s(t))}}function Xr(t,e,i){var s=Math.min(t.length,e.length)-1,r=new Array(s),a=new Array(s),n=-1;for(t[s]<t[0]&&(t=t.slice().reverse(),e=e.slice().reverse());++n<s;)r[n]=Jr(t[n],t[n+1]),a[n]=i(e[n],e[n+1]);return function(e){var i=gt(t,e,1,s)-1;return a[i](r[i](e))}}function Zr(){var t,e,i,s,r,a,n=Yr,o=Yr,l=ss,c=_r;function d(){var t=Math.min(n.length,o.length);return c!==_r&&(c=function(t,e){var i;return t>e&&(i=t,t=e,e=i),function(i){return Math.max(t,Math.min(e,i))}}(n[0],n[t-1])),s=t>2?Xr:Kr,r=a=null,h}function h(e){return null==e||isNaN(e=+e)?i:(r||(r=s(n.map(t),o,l)))(t(c(e)))}return h.invert=function(i){return c(e((a||(a=s(o,n.map(t),ji)))(i)))},h.domain=function(t){return arguments.length?(n=Array.from(t,Wr),d()):n.slice()},h.range=function(t){return arguments.length?(o=Array.from(t),d()):o.slice()},h.rangeRound=function(t){return o=Array.from(t),l=rs,d()},h.clamp=function(t){return arguments.length?(c=!!t||_r,d()):c!==_r},h.interpolate=function(t){return arguments.length?(l=t,d()):l},h.unknown=function(t){return arguments.length?(i=t,h):i},function(i,s){return t=i,e=s,d()}}function Pr(t,e,i,s){var r,a=function(t,e,i){i=+i;const s=(e=+e)<(t=+t),r=s?Qt(e,t,i):Qt(t,e,i);return(s?-1:1)*(r<0?1/-r:r)}(t,e,i);switch((s=xr(null==s?",f":s)).type){case"s":var n=Math.max(Math.abs(t),Math.abs(e));return null!=s.precision||isNaN(r=function(t,e){return Math.max(0,3*Math.max(-8,Math.min(8,Math.floor(Fr(e)/3)))-Fr(Math.abs(t)))}(a,n))||(s.precision=r),Sr(s,n);case"":case"e":case"g":case"p":case"r":null!=s.precision||isNaN(r=function(t,e){return t=Math.abs(t),e=Math.abs(e)-t,Math.max(0,Fr(e)-Fr(t))+1}(a,Math.max(Math.abs(t),Math.abs(e))))||(s.precision=r-("e"===s.type));break;case"f":case"%":null!=s.precision||isNaN(r=function(t){return Math.max(0,-Fr(Math.abs(t)))}(a))||(s.precision=r-2*("%"===s.type))}return Lr(s)}function Or(t){var e=t.domain;return t.ticks=function(t){var i=e();return function(t,e,i){if(!((i=+i)>0))return[];if((t=+t)==(e=+e))return[t];const s=e<t,[r,a,n]=s?yt(e,t,i):yt(t,e,i);if(!(a>=r))return[];const o=a-r+1,l=new Array(o);if(s)if(n<0)for(let t=0;t<o;++t)l[t]=(a-t)/-n;else for(let t=0;t<o;++t)l[t]=(a-t)*n;else if(n<0)for(let t=0;t<o;++t)l[t]=(r+t)/-n;else for(let t=0;t<o;++t)l[t]=(r+t)*n;return l}(i[0],i[i.length-1],null==t?10:t)},t.tickFormat=function(t,i){var s=e();return Pr(s[0],s[s.length-1],null==t?10:t,i)},t.nice=function(i){null==i&&(i=10);var s,r,a=e(),n=0,o=a.length-1,l=a[n],c=a[o],d=10;for(c<l&&(r=l,l=c,c=r,r=n,n=o,o=r);d-- >0;){if((r=Qt(l,c,i))===s)return a[n]=l,a[o]=c,e(a);if(r>0)l=Math.floor(l/r)*r,c=Math.ceil(c/r)*r;else{if(!(r<0))break;l=Math.ceil(l*r)/r,c=Math.floor(c*r)/r}s=r}return t},t}function jr(){var t=Zr()(_r,_r);return t.copy=function(){return e=t,jr().domain(e.domain()).range(e.range()).interpolate(e.interpolate()).clamp(e.clamp()).unknown(e.unknown());var e},zr.apply(t,arguments),Or(t)}var qr=function(t){for(var e=t.length/6|0,i=new Array(e),s=0;s<e;)i[s]="#"+t.slice(6*s,6*++s);return i}("e41a1c377eb84daf4a984ea3ff7f00ffff33a65628f781bf999999");function ta(t){return function(){return t}}function ea(t){this._context=t}function ia(t){return new ea(t)}function sa(t){return t[0]}function ra(t){return t[1]}function aa(t,e){var i=ta(!0),s=null,r=ia,a=null,n=function(t){let e=3;return t.digits=function(i){if(!arguments.length)return e;if(null==i)e=null;else{const t=Math.floor(i);if(!(t>=0))throw new RangeError(`invalid digits: ${i}`);e=t}return t},()=>new Ir(e)}(o);function o(o){var l,c,d,h=(o=function(t){return"object"==typeof t&&"length"in t?t:Array.from(t)}(o)).length,u=!1;for(null==s&&(a=r(d=n())),l=0;l<=h;++l)!(l<h&&i(c=o[l],l,o))===u&&((u=!u)?a.lineStart():a.lineEnd()),u&&a.point(+t(c,l,o),+e(c,l,o));if(d)return a=null,d+""||null}return t="function"==typeof t?t:void 0===t?sa:ta(t),e="function"==typeof e?e:void 0===e?ra:ta(e),o.x=function(e){return arguments.length?(t="function"==typeof e?e:ta(+e),o):t},o.y=function(t){return arguments.length?(e="function"==typeof t?t:ta(+t),o):e},o.defined=function(t){return arguments.length?(i="function"==typeof t?t:ta(!!t),o):i},o.curve=function(t){return arguments.length?(r=t,null!=s&&(a=r(s)),o):r},o.context=function(t){return arguments.length?(null==t?s=a=null:a=r(s=t),o):s},o}function na(t,e,i){this.k=t,this.x=e,this.y=i}ea.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)}}},na.prototype={constructor:na,scale:function(t){return 1===t?this:new na(this.k*t,this.x,this.y)},translate:function(t,e){return 0===t&0===e?this:new na(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+")"}},na.prototype;class oa extends ot{getComputedStyleValue(t){return getComputedStyle(this).getPropertyValue(t).trim()}firstUpdated(t){super.firstUpdated(t),Ze(this.renderRoot.host).classed("keyboard",!0).on("mousemove.keyboard touchstart.keyboard",(t=>{Ze(t.currentTarget.renderRoot.host).classed("keyboard",!1).on("mousemove.keyboard touchstart.keyboard",null)})).on("keydown.keyboard",(t=>{Ze(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=Xi(t,"#ffffff")(.75),e.light50=Xi(t,"#ffffff")(.5),e.light25=Xi(t,"#ffffff")(.25),e.grey=t,e.dark25=Xi(t,"#000000")(.25),e.dark50=Xi(t,"#000000")(.5),e.dark75=Xi(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,i=!1){const s=this.shadows.opacityUmbra+this.shadows.opacityBoost,r=this.shadows.opacityPenumbra+this.shadows.opacityBoost,a=this.shadows.opacityAmbient+this.shadows.opacityBoost,n=i?`rgba(${this.shadows.inverseBaselineColorString}, ${s})`:`rgba(${this.shadows.baselineColorString}, ${s})`,o=i?`rgba(${this.shadows.inverseBaselineColorString}, ${r})`:`rgba(${this.shadows.baselineColorString}, ${r})`,l=i?`rgba(${this.shadows.inverseBaselineColorString}, ${a})`:`rgba(${this.shadows.baselineColorString}, ${a})`,c=this.shadows.mapUmbra[t],d=this.shadows.mapPenumbra[t],h=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`} ${n}, ${e?`${-d.y}px ${d.y/2}px ${d.b}px ${d.s}px`:`${d.y/2}px ${d.y}px ${d.b}px ${d.s}px`} ${o}, ${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`} ${l}`}static get svgDefs(){const t=oa.shadows,e=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>`));return`\n <defs>\n ${e}\n </defs>\n `}static get svgFilters(){const t=oa.shadows,e=t.elevations.map((e=>Y`
|
|
23
|
+
class ot extends I{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,i)=>{const s=i?.renderBefore??e;let r=s._$litPart$;if(void 0===r){const t=i?.renderBefore??null;s._$litPart$=r=new tt(e.insertBefore(S(),t),t,void 0,i??{})}return r._$AI(t),r})(e,this.renderRoot,this.renderOptions)}connectedCallback(){super.connectedCallback(),this._$Do?.setConnected(!0)}disconnectedCallback(){super.disconnectedCallback(),this._$Do?.setConnected(!1)}render(){return J}}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 dt(t,e){return null==t||null==e?NaN:e<t?-1:e>t?1:e>=t?0:NaN}function ut(t){let e,i,s;function r(t,s,r=0,a=t.length){if(r<a){if(0!==e(s,s))return a;do{const e=r+a>>>1;i(t[e],s)<0?r=e+1:a=e}while(r<a)}return r}return 2!==t.length?(e=ct,i=(e,i)=>ct(t(e),i),s=(e,i)=>t(e)-i):(e=t===ct||t===dt?t:ht,i=t,s=t),{left:r,center:function(t,e,i=0,a=t.length){const n=r(t,e,i,a-1);return n>i&&s(t[n-1],e)>-s(t[n],e)?n-1:n},right:function(t,s,r=0,a=t.length){if(r<a){if(0!==e(s,s))return a;do{const e=r+a>>>1;i(t[e],s)<=0?r=e+1:a=e}while(r<a)}return r}}}function ht(){return 0}lt?.({LitElement:ot}),(globalThis.litElementVersions??=[]).push("4.1.1");const gt=ut(ct).right;ut((function(t){return null===t?NaN:+t})).center;const pt=Math.sqrt(50),mt=Math.sqrt(10),bt=Math.sqrt(2);function Qt(t,e,i){const s=(e-t)/Math.max(0,i),r=Math.floor(Math.log10(s)),a=s/Math.pow(10,r),n=a>=pt?10:a>=mt?5:a>=bt?2:1;let o,l,c;return r<0?(c=Math.pow(10,-r)/n,o=Math.round(t*c),l=Math.round(e*c),o/c<t&&++o,l/c>e&&--l,c=-c):(c=Math.pow(10,r)*n,o=Math.round(t/c),l=Math.round(e/c),o*c<t&&++o,l*c>e&&--l),l<o&&.5<=i&&i<2?Qt(t,e,2*i):[o,l,c]}function yt(t,e,i){return Qt(t=+t,e=+e,i=+i)[2]}function Ut(t){return t}var Bt=1e-6;function Ft(t){return"translate("+t+",0)"}function It(t){return"translate(0,"+t+")"}function ft(t){return e=>+t(e)}function Ct(t,e){return e=Math.max(0,t.bandwidth()-2*e)/2,t.round()&&(e=Math.round(e)),i=>+t(i)+e}function vt(){return!this.__axis}function At(t,e){var i=[],s=null,r=null,a=6,n=6,o=3,l="undefined"!=typeof window&&window.devicePixelRatio>1?0:.5,c=1===t||4===t?-1:1,d=4===t||2===t?"x":"y",u=1===t||3===t?Ft:It;function h(h){var g=null==s?e.ticks?e.ticks.apply(e,i):e.domain():s,p=null==r?e.tickFormat?e.tickFormat.apply(e,i):Ut:r,m=Math.max(a,0)+o,b=e.range(),Q=+b[0]+l,y=+b[b.length-1]+l,U=(e.bandwidth?Ct:ft)(e.copy(),l),B=h.selection?h.selection():h,F=B.selectAll(".domain").data([null]),I=B.selectAll(".tick").data(g,e).order(),f=I.exit(),C=I.enter().append("g").attr("class","tick"),v=I.select("line"),A=I.select("text");F=F.merge(F.enter().insert("path",".tick").attr("class","domain").attr("stroke","currentColor")),I=I.merge(C),v=v.merge(C.append("line").attr("stroke","currentColor").attr(d+"2",c*a)),A=A.merge(C.append("text").attr("fill","currentColor").attr(d,c*m).attr("dy",1===t?"0em":3===t?"0.71em":"0.32em")),h!==B&&(F=F.transition(h),I=I.transition(h),v=v.transition(h),A=A.transition(h),f=f.transition(h).attr("opacity",Bt).attr("transform",(function(t){return isFinite(t=U(t))?u(t+l):this.getAttribute("transform")})),C.attr("opacity",Bt).attr("transform",(function(t){var e=this.parentNode.__axis;return u((e&&isFinite(e=e(t))?e:U(t))+l)}))),f.remove(),F.attr("d",4===t||2===t?n?"M"+c*n+","+Q+"H"+l+"V"+y+"H"+c*n:"M"+l+","+Q+"V"+y:n?"M"+Q+","+c*n+"V"+l+"H"+y+"V"+c*n:"M"+Q+","+l+"H"+y),I.attr("opacity",1).attr("transform",(function(t){return u(U(t)+l)})),v.attr(d+"2",c*a),A.attr(d,c*m).text(p),B.filter(vt).attr("fill","none").attr("font-size",10).attr("font-family","sans-serif").attr("text-anchor",2===t?"start":4===t?"end":"middle"),B.each((function(){this.__axis=U}))}return h.scale=function(t){return arguments.length?(e=t,h):e},h.ticks=function(){return i=Array.from(arguments),h},h.tickArguments=function(t){return arguments.length?(i=null==t?[]:Array.from(t),h):i.slice()},h.tickValues=function(t){return arguments.length?(s=null==t?null:Array.from(t),h):s&&s.slice()},h.tickFormat=function(t){return arguments.length?(r=t,h):r},h.tickSize=function(t){return arguments.length?(a=n=+t,h):a},h.tickSizeInner=function(t){return arguments.length?(a=+t,h):a},h.tickSizeOuter=function(t){return arguments.length?(n=+t,h):n},h.tickPadding=function(t){return arguments.length?(o=+t,h):o},h.offset=function(t){return arguments.length?(l=+t,h):l},h}function xt(t){return At(4,t)}var Et={value:()=>{}};function Rt(){for(var t,e=0,i=arguments.length,s={};e<i;++e){if(!(t=arguments[e]+"")||t in s||/[\s.]/.test(t))throw new Error("illegal type: "+t);s[t]=[]}return new Nt(s)}function Nt(t){this._=t}function St(t,e){for(var i,s=0,r=t.length;s<r;++s)if((i=t[s]).name===e)return i.value}function Lt(t,e,i){for(var s=0,r=t.length;s<r;++s)if(t[s].name===e){t[s]=Et,t=t.slice(0,s).concat(t.slice(s+1));break}return null!=i&&t.push({name:e,value:i}),t}Nt.prototype=Rt.prototype={constructor:Nt,on:function(t,e){var i,s,r=this._,a=(s=r,(t+"").trim().split(/^|\s+/).map((function(t){var e="",i=t.indexOf(".");if(i>=0&&(e=t.slice(i+1),t=t.slice(0,i)),t&&!s.hasOwnProperty(t))throw new Error("unknown type: "+t);return{type:t,name:e}}))),n=-1,o=a.length;if(!(arguments.length<2)){if(null!=e&&"function"!=typeof e)throw new Error("invalid callback: "+e);for(;++n<o;)if(i=(t=a[n]).type)r[i]=Lt(r[i],t.name,e);else if(null==e)for(i in r)r[i]=Lt(r[i],t.name,null);return this}for(;++n<o;)if((i=(t=a[n]).type)&&(i=St(r[i],t.name)))return i},copy:function(){var t={},e=this._;for(var i in e)t[i]=e[i].slice();return new Nt(t)},call:function(t,e){if((i=arguments.length-2)>0)for(var i,s,r=new Array(i),a=0;a<i;++a)r[a]=arguments[a+2];if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(a=0,i=(s=this._[t]).length;a<i;++a)s[a].value.apply(e,r)},apply:function(t,e,i){if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(var s=this._[t],r=0,a=s.length;r<a;++r)s[r].value.apply(e,i)}};var wt="http://www.w3.org/1999/xhtml",Dt={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 Mt(t){var e=t+="",i=e.indexOf(":");return i>=0&&"xmlns"!==(e=t.slice(0,i))&&(t=t.slice(i+1)),Dt.hasOwnProperty(e)?{space:Dt[e],local:t}:t}function kt(t){return function(){var e=this.ownerDocument,i=this.namespaceURI;return i===wt&&e.documentElement.namespaceURI===wt?e.createElement(t):e.createElementNS(i,t)}}function Tt(t){return function(){return this.ownerDocument.createElementNS(t.space,t.local)}}function Vt(t){var e=Mt(t);return(e.local?Tt:kt)(e)}function $t(){}function Ht(t){return null==t?$t:function(){return this.querySelector(t)}}function zt(){return[]}function Gt(t){return null==t?zt:function(){return this.querySelectorAll(t)}}function Yt(t){return function(){return function(t){return null==t?[]:Array.isArray(t)?t:Array.from(t)}(t.apply(this,arguments))}}function Xt(t){return function(){return this.matches(t)}}function Jt(t){return function(e){return e.matches(t)}}var Wt=Array.prototype.find;function _t(){return this.firstElementChild}var Kt=Array.prototype.filter;function Pt(){return Array.from(this.children)}function Zt(t){return new Array(t.length)}function Ot(t,e){this.ownerDocument=t.ownerDocument,this.namespaceURI=t.namespaceURI,this._next=null,this._parent=t,this.__data__=e}function jt(t,e,i,s,r,a){for(var n,o=0,l=e.length,c=a.length;o<c;++o)(n=e[o])?(n.__data__=a[o],s[o]=n):i[o]=new Ot(t,a[o]);for(;o<l;++o)(n=e[o])&&(r[o]=n)}function qt(t,e,i,s,r,a,n){var o,l,c,d=new Map,u=e.length,h=a.length,g=new Array(u);for(o=0;o<u;++o)(l=e[o])&&(g[o]=c=n.call(l,l.__data__,o,e)+"",d.has(c)?r[o]=l:d.set(c,l));for(o=0;o<h;++o)c=n.call(t,a[o],o,a)+"",(l=d.get(c))?(s[o]=l,l.__data__=a[o],d.delete(c)):i[o]=new Ot(t,a[o]);for(o=0;o<u;++o)(l=e[o])&&d.get(g[o])===l&&(r[o]=l)}function te(t){return t.__data__}function ee(t){return"object"==typeof t&&"length"in t?t:Array.from(t)}function ie(t,e){return t<e?-1:t>e?1:t>=e?0:NaN}function se(t){return function(){this.removeAttribute(t)}}function re(t){return function(){this.removeAttributeNS(t.space,t.local)}}function ae(t,e){return function(){this.setAttribute(t,e)}}function ne(t,e){return function(){this.setAttributeNS(t.space,t.local,e)}}function oe(t,e){return function(){var i=e.apply(this,arguments);null==i?this.removeAttribute(t):this.setAttribute(t,i)}}function le(t,e){return function(){var i=e.apply(this,arguments);null==i?this.removeAttributeNS(t.space,t.local):this.setAttributeNS(t.space,t.local,i)}}function ce(t){return t.ownerDocument&&t.ownerDocument.defaultView||t.document&&t||t.defaultView}function de(t){return function(){this.style.removeProperty(t)}}function ue(t,e,i){return function(){this.style.setProperty(t,e,i)}}function he(t,e,i){return function(){var s=e.apply(this,arguments);null==s?this.style.removeProperty(t):this.style.setProperty(t,s,i)}}function ge(t,e){return t.style.getPropertyValue(e)||ce(t).getComputedStyle(t,null).getPropertyValue(e)}function pe(t){return function(){delete this[t]}}function me(t,e){return function(){this[t]=e}}function be(t,e){return function(){var i=e.apply(this,arguments);null==i?delete this[t]:this[t]=i}}function Qe(t){return t.trim().split(/^|\s+/)}function ye(t){return t.classList||new Ue(t)}function Ue(t){this._node=t,this._names=Qe(t.getAttribute("class")||"")}function Be(t,e){for(var i=ye(t),s=-1,r=e.length;++s<r;)i.add(e[s])}function Fe(t,e){for(var i=ye(t),s=-1,r=e.length;++s<r;)i.remove(e[s])}function Ie(t){return function(){Be(this,t)}}function fe(t){return function(){Fe(this,t)}}function Ce(t,e){return function(){(e.apply(this,arguments)?Be:Fe)(this,t)}}function ve(){this.textContent=""}function Ae(t){return function(){this.textContent=t}}function xe(t){return function(){var e=t.apply(this,arguments);this.textContent=null==e?"":e}}function Ee(){this.innerHTML=""}function Re(t){return function(){this.innerHTML=t}}function Ne(t){return function(){var e=t.apply(this,arguments);this.innerHTML=null==e?"":e}}function Se(){this.nextSibling&&this.parentNode.appendChild(this)}function Le(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function we(){return null}function De(){var t=this.parentNode;t&&t.removeChild(this)}function Me(){var t=this.cloneNode(!1),e=this.parentNode;return e?e.insertBefore(t,this.nextSibling):t}function ke(){var t=this.cloneNode(!0),e=this.parentNode;return e?e.insertBefore(t,this.nextSibling):t}function Te(t){return function(){var e=this.__on;if(e){for(var i,s=0,r=-1,a=e.length;s<a;++s)i=e[s],t.type&&i.type!==t.type||i.name!==t.name?e[++r]=i:this.removeEventListener(i.type,i.listener,i.options);++r?e.length=r:delete this.__on}}}function Ve(t,e,i){return function(){var s,r=this.__on,a=function(t){return function(e){t.call(this,e,this.__data__)}}(e);if(r)for(var n=0,o=r.length;n<o;++n)if((s=r[n]).type===t.type&&s.name===t.name)return this.removeEventListener(s.type,s.listener,s.options),this.addEventListener(s.type,s.listener=a,s.options=i),void(s.value=e);this.addEventListener(t.type,a,i),s={type:t.type,name:t.name,value:e,listener:a,options:i},r?r.push(s):this.__on=[s]}}function $e(t,e,i){var s=ce(t),r=s.CustomEvent;"function"==typeof r?r=new r(e,i):(r=s.document.createEvent("Event"),i?(r.initEvent(e,i.bubbles,i.cancelable),r.detail=i.detail):r.initEvent(e,!1,!1)),t.dispatchEvent(r)}function He(t,e){return function(){return $e(this,t,e)}}function ze(t,e){return function(){return $e(this,t,e.apply(this,arguments))}}Ot.prototype={constructor:Ot,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)}},Ue.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 Ge=[null];function Ye(t,e){this._groups=t,this._parents=e}function Xe(){return new Ye([[document.documentElement]],Ge)}function Je(t){return"string"==typeof t?new Ye([[document.querySelector(t)]],[document.documentElement]):new Ye([[t]],Ge)}Ye.prototype=Xe.prototype={constructor:Ye,select:function(t){"function"!=typeof t&&(t=Ht(t));for(var e=this._groups,i=e.length,s=new Array(i),r=0;r<i;++r)for(var a,n,o=e[r],l=o.length,c=s[r]=new Array(l),d=0;d<l;++d)(a=o[d])&&(n=t.call(a,a.__data__,d,o))&&("__data__"in a&&(n.__data__=a.__data__),c[d]=n);return new Ye(s,this._parents)},selectAll:function(t){t="function"==typeof t?Yt(t):Gt(t);for(var e=this._groups,i=e.length,s=[],r=[],a=0;a<i;++a)for(var n,o=e[a],l=o.length,c=0;c<l;++c)(n=o[c])&&(s.push(t.call(n,n.__data__,c,o)),r.push(n));return new Ye(s,r)},selectChild:function(t){return this.select(null==t?_t:function(t){return function(){return Wt.call(this.children,t)}}("function"==typeof t?t:Jt(t)))},selectChildren:function(t){return this.selectAll(null==t?Pt:function(t){return function(){return Kt.call(this.children,t)}}("function"==typeof t?t:Jt(t)))},filter:function(t){"function"!=typeof t&&(t=Xt(t));for(var e=this._groups,i=e.length,s=new Array(i),r=0;r<i;++r)for(var a,n=e[r],o=n.length,l=s[r]=[],c=0;c<o;++c)(a=n[c])&&t.call(a,a.__data__,c,n)&&l.push(a);return new Ye(s,this._parents)},data:function(t,e){if(!arguments.length)return Array.from(this,te);var i=e?qt:jt,s=this._parents,r=this._groups;"function"!=typeof t&&(t=function(t){return function(){return t}}(t));for(var a=r.length,n=new Array(a),o=new Array(a),l=new Array(a),c=0;c<a;++c){var d=s[c],u=r[c],h=u.length,g=ee(t.call(d,d&&d.__data__,c,s)),p=g.length,m=o[c]=new Array(p),b=n[c]=new Array(p);i(d,u,m,b,l[c]=new Array(h),g,e);for(var Q,y,U=0,B=0;U<p;++U)if(Q=m[U]){for(U>=B&&(B=U+1);!(y=b[B])&&++B<p;);Q._next=y||null}}return(n=new Ye(n,s))._enter=o,n._exit=l,n},enter:function(){return new Ye(this._enter||this._groups.map(Zt),this._parents)},exit:function(){return new Ye(this._exit||this._groups.map(Zt),this._parents)},join:function(t,e,i){var s=this.enter(),r=this,a=this.exit();return"function"==typeof t?(s=t(s))&&(s=s.selection()):s=s.append(t+""),null!=e&&(r=e(r))&&(r=r.selection()),null==i?a.remove():i(a),s&&r?s.merge(r).order():r},merge:function(t){for(var e=t.selection?t.selection():t,i=this._groups,s=e._groups,r=i.length,a=s.length,n=Math.min(r,a),o=new Array(r),l=0;l<n;++l)for(var c,d=i[l],u=s[l],h=d.length,g=o[l]=new Array(h),p=0;p<h;++p)(c=d[p]||u[p])&&(g[p]=c);for(;l<r;++l)o[l]=i[l];return new Ye(o,this._parents)},selection:function(){return this},order:function(){for(var t=this._groups,e=-1,i=t.length;++e<i;)for(var s,r=t[e],a=r.length-1,n=r[a];--a>=0;)(s=r[a])&&(n&&4^s.compareDocumentPosition(n)&&n.parentNode.insertBefore(s,n),n=s);return this},sort:function(t){function e(e,i){return e&&i?t(e.__data__,i.__data__):!e-!i}t||(t=ie);for(var i=this._groups,s=i.length,r=new Array(s),a=0;a<s;++a){for(var n,o=i[a],l=o.length,c=r[a]=new Array(l),d=0;d<l;++d)(n=o[d])&&(c[d]=n);c.sort(e)}return new Ye(r,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,i=t.length;e<i;++e)for(var s=t[e],r=0,a=s.length;r<a;++r){var n=s[r];if(n)return n}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,i=0,s=e.length;i<s;++i)for(var r,a=e[i],n=0,o=a.length;n<o;++n)(r=a[n])&&t.call(r,r.__data__,n,a);return this},attr:function(t,e){var i=Mt(t);if(arguments.length<2){var s=this.node();return i.local?s.getAttributeNS(i.space,i.local):s.getAttribute(i)}return this.each((null==e?i.local?re:se:"function"==typeof e?i.local?le:oe:i.local?ne:ae)(i,e))},style:function(t,e,i){return arguments.length>1?this.each((null==e?de:"function"==typeof e?he:ue)(t,e,null==i?"":i)):ge(this.node(),t)},property:function(t,e){return arguments.length>1?this.each((null==e?pe:"function"==typeof e?be:me)(t,e)):this.node()[t]},classed:function(t,e){var i=Qe(t+"");if(arguments.length<2){for(var s=ye(this.node()),r=-1,a=i.length;++r<a;)if(!s.contains(i[r]))return!1;return!0}return this.each(("function"==typeof e?Ce:e?Ie:fe)(i,e))},text:function(t){return arguments.length?this.each(null==t?ve:("function"==typeof t?xe:Ae)(t)):this.node().textContent},html:function(t){return arguments.length?this.each(null==t?Ee:("function"==typeof t?Ne:Re)(t)):this.node().innerHTML},raise:function(){return this.each(Se)},lower:function(){return this.each(Le)},append:function(t){var e="function"==typeof t?t:Vt(t);return this.select((function(){return this.appendChild(e.apply(this,arguments))}))},insert:function(t,e){var i="function"==typeof t?t:Vt(t),s=null==e?we:"function"==typeof e?e:Ht(e);return this.select((function(){return this.insertBefore(i.apply(this,arguments),s.apply(this,arguments)||null)}))},remove:function(){return this.each(De)},clone:function(t){return this.select(t?ke:Me)},datum:function(t){return arguments.length?this.property("__data__",t):this.node().__data__},on:function(t,e,i){var s,r,a=function(t){return t.trim().split(/^|\s+/).map((function(t){var e="",i=t.indexOf(".");return i>=0&&(e=t.slice(i+1),t=t.slice(0,i)),{type:t,name:e}}))}(t+""),n=a.length;if(!(arguments.length<2)){for(o=e?Ve:Te,s=0;s<n;++s)this.each(o(a[s],e,i));return this}var o=this.node().__on;if(o)for(var l,c=0,d=o.length;c<d;++c)for(s=0,l=o[c];s<n;++s)if((r=a[s]).type===l.type&&r.name===l.name)return l.value},dispatch:function(t,e){return this.each(("function"==typeof e?ze:He)(t,e))},[Symbol.iterator]:function*(){for(var t=this._groups,e=0,i=t.length;e<i;++e)for(var s,r=t[e],a=0,n=r.length;a<n;++a)(s=r[a])&&(yield s)}};var We=0;function _e(){return new Ke}function Ke(){this._="@"+(++We).toString(36)}function Pe(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 i=e.ownerSVGElement||e;if(i.createSVGPoint){var s=i.createSVGPoint();return s.x=t.clientX,s.y=t.clientY,[(s=s.matrixTransform(e.getScreenCTM().inverse())).x,s.y]}if(e.getBoundingClientRect){var r=e.getBoundingClientRect();return[t.clientX-r.left-e.clientLeft,t.clientY-r.top-e.clientTop]}}return[t.pageX,t.pageY]}Ke.prototype=_e.prototype={constructor:Ke,get:function(t){for(var e=this._;!(e in t);)if(!(t=t.parentNode))return;return t[e]},set:function(t,e){return t[this._]=e},remove:function(t){return this._ in t&&delete t[this._]},toString:function(){return this._}};const Ze={passive:!1},Oe={capture:!0,passive:!1};function je(t){t.stopImmediatePropagation()}function qe(t){t.preventDefault(),t.stopImmediatePropagation()}var ti=t=>()=>t;function ei(t,{sourceEvent:e,subject:i,target:s,identifier:r,active:a,x:n,y:o,dx:l,dy:c,dispatch:d}){Object.defineProperties(this,{type:{value:t,enumerable:!0,configurable:!0},sourceEvent:{value:e,enumerable:!0,configurable:!0},subject:{value:i,enumerable:!0,configurable:!0},target:{value:s,enumerable:!0,configurable:!0},identifier:{value:r,enumerable:!0,configurable:!0},active:{value:a,enumerable:!0,configurable:!0},x:{value:n,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:d}})}function ii(t){return!t.ctrlKey&&!t.button}function si(){return this.parentNode}function ri(t,e){return null==e?{x:t.x,y:t.y}:e}function ai(){return navigator.maxTouchPoints||"ontouchstart"in this}function ni(){var t,e,i,s,r=ii,a=si,n=ri,o=ai,l={},c=Rt("start","drag","end"),d=0,u=0;function h(t){t.on("mousedown.drag",g).filter(o).on("touchstart.drag",b).on("touchmove.drag",Q,Ze).on("touchend.drag touchcancel.drag",y).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function g(n,o){if(!s&&r.call(this,n,o)){var l=U(this,a.call(this,n,o),n,o,"mouse");l&&(Je(n.view).on("mousemove.drag",p,Oe).on("mouseup.drag",m,Oe),function(t){var e=t.document.documentElement,i=Je(t).on("dragstart.drag",qe,Oe);"onselectstart"in e?i.on("selectstart.drag",qe,Oe):(e.__noselect=e.style.MozUserSelect,e.style.MozUserSelect="none")}(n.view),je(n),i=!1,t=n.clientX,e=n.clientY,l("start",n))}}function p(s){if(qe(s),!i){var r=s.clientX-t,a=s.clientY-e;i=r*r+a*a>u}l.mouse("drag",s)}function m(t){Je(t.view).on("mousemove.drag mouseup.drag",null),function(t,e){var i=t.document.documentElement,s=Je(t).on("dragstart.drag",null);e&&(s.on("click.drag",qe,Oe),setTimeout((function(){s.on("click.drag",null)}),0)),"onselectstart"in i?s.on("selectstart.drag",null):(i.style.MozUserSelect=i.__noselect,delete i.__noselect)}(t.view,i),qe(t),l.mouse("end",t)}function b(t,e){if(r.call(this,t,e)){var i,s,n=t.changedTouches,o=a.call(this,t,e),l=n.length;for(i=0;i<l;++i)(s=U(this,o,t,e,n[i].identifier,n[i]))&&(je(t),s("start",t,n[i]))}}function Q(t){var e,i,s=t.changedTouches,r=s.length;for(e=0;e<r;++e)(i=l[s[e].identifier])&&(qe(t),i("drag",t,s[e]))}function y(t){var e,i,r=t.changedTouches,a=r.length;for(s&&clearTimeout(s),s=setTimeout((function(){s=null}),500),e=0;e<a;++e)(i=l[r[e].identifier])&&(je(t),i("end",t,r[e]))}function U(t,e,i,s,r,a){var o,u,g,p=c.copy(),m=Pe(a||i,e);if(null!=(g=n.call(t,new ei("beforestart",{sourceEvent:i,target:h,identifier:r,active:d,x:m[0],y:m[1],dx:0,dy:0,dispatch:p}),s)))return o=g.x-m[0]||0,u=g.y-m[1]||0,function i(a,n,c){var b,Q=m;switch(a){case"start":l[r]=i,b=d++;break;case"end":delete l[r],--d;case"drag":m=Pe(c||n,e),b=d}p.call(a,t,new ei(a,{sourceEvent:n,subject:g,target:h,identifier:r,active:b,x:m[0]+o,y:m[1]+u,dx:m[0]-Q[0],dy:m[1]-Q[1],dispatch:p}),s)}}return h.filter=function(t){return arguments.length?(r="function"==typeof t?t:ti(!!t),h):r},h.container=function(t){return arguments.length?(a="function"==typeof t?t:ti(t),h):a},h.subject=function(t){return arguments.length?(n="function"==typeof t?t:ti(t),h):n},h.touchable=function(t){return arguments.length?(o="function"==typeof t?t:ti(!!t),h):o},h.on=function(){var t=c.on.apply(c,arguments);return t===c?h:t},h.clickDistance=function(t){return arguments.length?(u=(t=+t)*t,h):Math.sqrt(u)},h}function oi(t,e,i){t.prototype=e.prototype=i,i.constructor=t}function li(t,e){var i=Object.create(t.prototype);for(var s in e)i[s]=e[s];return i}function ci(){}ei.prototype.on=function(){var t=this._.on.apply(this._,arguments);return t===this._?this:t};var di=.7,ui=1/di,hi="\\s*([+-]?\\d+)\\s*",gi="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",pi="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",mi=/^#([0-9a-f]{3,8})$/,bi=new RegExp(`^rgb\\(${hi},${hi},${hi}\\)$`),Qi=new RegExp(`^rgb\\(${pi},${pi},${pi}\\)$`),yi=new RegExp(`^rgba\\(${hi},${hi},${hi},${gi}\\)$`),Ui=new RegExp(`^rgba\\(${pi},${pi},${pi},${gi}\\)$`),Bi=new RegExp(`^hsl\\(${gi},${pi},${pi}\\)$`),Fi=new RegExp(`^hsla\\(${gi},${pi},${pi},${gi}\\)$`),Ii={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 fi(){return this.rgb().formatHex()}function Ci(){return this.rgb().formatRgb()}function vi(t){var e,i;return t=(t+"").trim().toLowerCase(),(e=mi.exec(t))?(i=e[1].length,e=parseInt(e[1],16),6===i?Ai(e):3===i?new Ri(e>>8&15|e>>4&240,e>>4&15|240&e,(15&e)<<4|15&e,1):8===i?xi(e>>24&255,e>>16&255,e>>8&255,(255&e)/255):4===i?xi(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=bi.exec(t))?new Ri(e[1],e[2],e[3],1):(e=Qi.exec(t))?new Ri(255*e[1]/100,255*e[2]/100,255*e[3]/100,1):(e=yi.exec(t))?xi(e[1],e[2],e[3],e[4]):(e=Ui.exec(t))?xi(255*e[1]/100,255*e[2]/100,255*e[3]/100,e[4]):(e=Bi.exec(t))?Mi(e[1],e[2]/100,e[3]/100,1):(e=Fi.exec(t))?Mi(e[1],e[2]/100,e[3]/100,e[4]):Ii.hasOwnProperty(t)?Ai(Ii[t]):"transparent"===t?new Ri(NaN,NaN,NaN,0):null}function Ai(t){return new Ri(t>>16&255,t>>8&255,255&t,1)}function xi(t,e,i,s){return s<=0&&(t=e=i=NaN),new Ri(t,e,i,s)}function Ei(t,e,i,s){return 1===arguments.length?function(t){return t instanceof ci||(t=vi(t)),t?new Ri((t=t.rgb()).r,t.g,t.b,t.opacity):new Ri}(t):new Ri(t,e,i,null==s?1:s)}function Ri(t,e,i,s){this.r=+t,this.g=+e,this.b=+i,this.opacity=+s}function Ni(){return`#${Di(this.r)}${Di(this.g)}${Di(this.b)}`}function Si(){const t=Li(this.opacity);return`${1===t?"rgb(":"rgba("}${wi(this.r)}, ${wi(this.g)}, ${wi(this.b)}${1===t?")":`, ${t})`}`}function Li(t){return isNaN(t)?1:Math.max(0,Math.min(1,t))}function wi(t){return Math.max(0,Math.min(255,Math.round(t)||0))}function Di(t){return((t=wi(t))<16?"0":"")+t.toString(16)}function Mi(t,e,i,s){return s<=0?t=e=i=NaN:i<=0||i>=1?t=e=NaN:e<=0&&(t=NaN),new Ti(t,e,i,s)}function ki(t){if(t instanceof Ti)return new Ti(t.h,t.s,t.l,t.opacity);if(t instanceof ci||(t=vi(t)),!t)return new Ti;if(t instanceof Ti)return t;var e=(t=t.rgb()).r/255,i=t.g/255,s=t.b/255,r=Math.min(e,i,s),a=Math.max(e,i,s),n=NaN,o=a-r,l=(a+r)/2;return o?(n=e===a?(i-s)/o+6*(i<s):i===a?(s-e)/o+2:(e-i)/o+4,o/=l<.5?a+r:2-a-r,n*=60):o=l>0&&l<1?0:n,new Ti(n,o,l,t.opacity)}function Ti(t,e,i,s){this.h=+t,this.s=+e,this.l=+i,this.opacity=+s}function Vi(t){return(t=(t||0)%360)<0?t+360:t}function $i(t){return Math.max(0,Math.min(1,t||0))}function Hi(t,e,i){return 255*(t<60?e+(i-e)*t/60:t<180?i:t<240?e+(i-e)*(240-t)/60:e)}oi(ci,vi,{copy(t){return Object.assign(new this.constructor,this,t)},displayable(){return this.rgb().displayable()},hex:fi,formatHex:fi,formatHex8:function(){return this.rgb().formatHex8()},formatHsl:function(){return ki(this).formatHsl()},formatRgb:Ci,toString:Ci}),oi(Ri,Ei,li(ci,{brighter(t){return t=null==t?ui:Math.pow(ui,t),new Ri(this.r*t,this.g*t,this.b*t,this.opacity)},darker(t){return t=null==t?di:Math.pow(di,t),new Ri(this.r*t,this.g*t,this.b*t,this.opacity)},rgb(){return this},clamp(){return new Ri(wi(this.r),wi(this.g),wi(this.b),Li(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:Ni,formatHex:Ni,formatHex8:function(){return`#${Di(this.r)}${Di(this.g)}${Di(this.b)}${Di(255*(isNaN(this.opacity)?1:this.opacity))}`},formatRgb:Si,toString:Si})),oi(Ti,(function(t,e,i,s){return 1===arguments.length?ki(t):new Ti(t,e,i,null==s?1:s)}),li(ci,{brighter(t){return t=null==t?ui:Math.pow(ui,t),new Ti(this.h,this.s,this.l*t,this.opacity)},darker(t){return t=null==t?di:Math.pow(di,t),new Ti(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,i=this.l,s=i+(i<.5?i:1-i)*e,r=2*i-s;return new Ri(Hi(t>=240?t-240:t+120,r,s),Hi(t,r,s),Hi(t<120?t+240:t-120,r,s),this.opacity)},clamp(){return new Ti(Vi(this.h),$i(this.s),$i(this.l),Li(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=Li(this.opacity);return`${1===t?"hsl(":"hsla("}${Vi(this.h)}, ${100*$i(this.s)}%, ${100*$i(this.l)}%${1===t?")":`, ${t})`}`}}));var zi=t=>()=>t;function Gi(t){return 1==(t=+t)?Yi:function(e,i){return i-e?function(t,e,i){return t=Math.pow(t,i),e=Math.pow(e,i)-t,i=1/i,function(s){return Math.pow(t+s*e,i)}}(e,i,t):zi(isNaN(e)?i:e)}}function Yi(t,e){var i=e-t;return i?function(t,e){return function(i){return t+i*e}}(t,i):zi(isNaN(t)?e:t)}var Xi=function t(e){var i=Gi(e);function s(t,e){var s=i((t=Ei(t)).r,(e=Ei(e)).r),r=i(t.g,e.g),a=i(t.b,e.b),n=Yi(t.opacity,e.opacity);return function(e){return t.r=s(e),t.g=r(e),t.b=a(e),t.opacity=n(e),t+""}}return s.gamma=t,s}(1);function Ji(t,e){e||(e=[]);var i,s=t?Math.min(e.length,t.length):0,r=e.slice();return function(a){for(i=0;i<s;++i)r[i]=t[i]*(1-a)+e[i]*a;return r}}function Wi(t,e){var i,s=e?e.length:0,r=t?Math.min(s,t.length):0,a=new Array(r),n=new Array(s);for(i=0;i<r;++i)a[i]=qi(t[i],e[i]);for(;i<s;++i)n[i]=e[i];return function(t){for(i=0;i<r;++i)n[i]=a[i](t);return n}}function _i(t,e){var i=new Date;return t=+t,e=+e,function(s){return i.setTime(t*(1-s)+e*s),i}}function Ki(t,e){return t=+t,e=+e,function(i){return t*(1-i)+e*i}}function Pi(t,e){var i,s={},r={};for(i in null!==t&&"object"==typeof t||(t={}),null!==e&&"object"==typeof e||(e={}),e)i in t?s[i]=qi(t[i],e[i]):r[i]=e[i];return function(t){for(i in s)r[i]=s[i](t);return r}}var Zi=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,Oi=new RegExp(Zi.source,"g");function ji(t,e){var i,s,r,a=Zi.lastIndex=Oi.lastIndex=0,n=-1,o=[],l=[];for(t+="",e+="";(i=Zi.exec(t))&&(s=Oi.exec(e));)(r=s.index)>a&&(r=e.slice(a,r),o[n]?o[n]+=r:o[++n]=r),(i=i[0])===(s=s[0])?o[n]?o[n]+=s:o[++n]=s:(o[++n]=null,l.push({i:n,x:Ki(i,s)})),a=Oi.lastIndex;return a<e.length&&(r=e.slice(a),o[n]?o[n]+=r:o[++n]=r),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 i,s=0;s<e;++s)o[(i=l[s]).i]=i.x(t);return o.join("")})}function qi(t,e){var i,s=typeof e;return null==e||"boolean"===s?zi(e):("number"===s?Ki:"string"===s?(i=vi(e))?(e=i,Xi):ji:e instanceof vi?Xi:e instanceof Date?_i:function(t){return ArrayBuffer.isView(t)&&!(t instanceof DataView)}(e)?Ji:Array.isArray(e)?Wi:"function"!=typeof e.valueOf&&"function"!=typeof e.toString||isNaN(e)?Pi:Ki)(t,e)}function ts(t,e){return t=+t,e=+e,function(i){return Math.round(t*(1-i)+e*i)}}var es,is=180/Math.PI,ss={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function rs(t,e,i,s,r,a){var n,o,l;return(n=Math.sqrt(t*t+e*e))&&(t/=n,e/=n),(l=t*i+e*s)&&(i-=t*l,s-=e*l),(o=Math.sqrt(i*i+s*s))&&(i/=o,s/=o,l/=o),t*s<e*i&&(t=-t,e=-e,l=-l,n=-n),{translateX:r,translateY:a,rotate:Math.atan2(e,t)*is,skewX:Math.atan(l)*is,scaleX:n,scaleY:o}}function as(t,e,i,s){function r(t){return t.length?t.pop()+" ":""}return function(a,n){var o=[],l=[];return a=t(a),n=t(n),function(t,s,r,a,n,o){if(t!==r||s!==a){var l=n.push("translate(",null,e,null,i);o.push({i:l-4,x:Ki(t,r)},{i:l-2,x:Ki(s,a)})}else(r||a)&&n.push("translate("+r+e+a+i)}(a.translateX,a.translateY,n.translateX,n.translateY,o,l),function(t,e,i,a){t!==e?(t-e>180?e+=360:e-t>180&&(t+=360),a.push({i:i.push(r(i)+"rotate(",null,s)-2,x:Ki(t,e)})):e&&i.push(r(i)+"rotate("+e+s)}(a.rotate,n.rotate,o,l),function(t,e,i,a){t!==e?a.push({i:i.push(r(i)+"skewX(",null,s)-2,x:Ki(t,e)}):e&&i.push(r(i)+"skewX("+e+s)}(a.skewX,n.skewX,o,l),function(t,e,i,s,a,n){if(t!==i||e!==s){var o=a.push(r(a)+"scale(",null,",",null,")");n.push({i:o-4,x:Ki(t,i)},{i:o-2,x:Ki(e,s)})}else 1===i&&1===s||a.push(r(a)+"scale("+i+","+s+")")}(a.scaleX,a.scaleY,n.scaleX,n.scaleY,o,l),a=n=null,function(t){for(var e,i=-1,s=l.length;++i<s;)o[(e=l[i]).i]=e.x(t);return o.join("")}}}var ns,os,ls=as((function(t){const e=new("function"==typeof DOMMatrix?DOMMatrix:WebKitCSSMatrix)(t+"");return e.isIdentity?ss:rs(e.a,e.b,e.c,e.d,e.e,e.f)}),"px, ","px)","deg)"),cs=as((function(t){return null==t?ss:(es||(es=document.createElementNS("http://www.w3.org/2000/svg","g")),es.setAttribute("transform",t),(t=es.transform.baseVal.consolidate())?rs((t=t.matrix).a,t.b,t.c,t.d,t.e,t.f):ss)}),", ",")",")"),ds=0,us=0,hs=0,gs=0,ps=0,ms=0,bs="object"==typeof performance&&performance.now?performance:Date,Qs="object"==typeof window&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(t){setTimeout(t,17)};function ys(){return ps||(Qs(Us),ps=bs.now()+ms)}function Us(){ps=0}function Bs(){this._call=this._time=this._next=null}function Fs(t,e,i){var s=new Bs;return s.restart(t,e,i),s}function Is(){ps=(gs=bs.now())+ms,ds=us=0;try{!function(){ys(),++ds;for(var t,e=ns;e;)(t=ps-e._time)>=0&&e._call.call(void 0,t),e=e._next;--ds}()}finally{ds=0,function(){var t,e,i=ns,s=1/0;for(;i;)i._call?(s>i._time&&(s=i._time),t=i,i=i._next):(e=i._next,i._next=null,i=t?t._next=e:ns=e);os=t,Cs(s)}(),ps=0}}function fs(){var t=bs.now(),e=t-gs;e>1e3&&(ms-=e,gs=t)}function Cs(t){ds||(us&&(us=clearTimeout(us)),t-ps>24?(t<1/0&&(us=setTimeout(Is,t-bs.now()-ms)),hs&&(hs=clearInterval(hs))):(hs||(gs=bs.now(),hs=setInterval(fs,1e3)),ds=1,Qs(Is)))}function vs(t,e,i){var s=new Bs;return e=null==e?0:+e,s.restart((i=>{s.stop(),t(i+e)}),e,i),s}Bs.prototype=Fs.prototype={constructor:Bs,restart:function(t,e,i){if("function"!=typeof t)throw new TypeError("callback is not a function");i=(null==i?ys():+i)+(null==e?0:+e),this._next||os===this||(os?os._next=this:ns=this,os=this),this._call=t,this._time=i,Cs()},stop:function(){this._call&&(this._call=null,this._time=1/0,Cs())}};var As=Rt("start","end","cancel","interrupt"),xs=[];function Es(t,e,i,s,r,a){var n=t.__transition;if(n){if(i in n)return}else t.__transition={};!function(t,e,i){var s,r=t.__transition;function a(t){i.state=1,i.timer.restart(n,i.delay,i.time),i.delay<=t&&n(t-i.delay)}function n(a){var c,d,u,h;if(1!==i.state)return l();for(c in r)if((h=r[c]).name===i.name){if(3===h.state)return vs(n);4===h.state?(h.state=6,h.timer.stop(),h.on.call("interrupt",t,t.__data__,h.index,h.group),delete r[c]):+c<e&&(h.state=6,h.timer.stop(),h.on.call("cancel",t,t.__data__,h.index,h.group),delete r[c])}if(vs((function(){3===i.state&&(i.state=4,i.timer.restart(o,i.delay,i.time),o(a))})),i.state=2,i.on.call("start",t,t.__data__,i.index,i.group),2===i.state){for(i.state=3,s=new Array(u=i.tween.length),c=0,d=-1;c<u;++c)(h=i.tween[c].value.call(t,t.__data__,i.index,i.group))&&(s[++d]=h);s.length=d+1}}function o(e){for(var r=e<i.duration?i.ease.call(null,e/i.duration):(i.timer.restart(l),i.state=5,1),a=-1,n=s.length;++a<n;)s[a].call(t,r);5===i.state&&(i.on.call("end",t,t.__data__,i.index,i.group),l())}function l(){for(var s in i.state=6,i.timer.stop(),delete r[e],r)return;delete t.__transition}r[e]=i,i.timer=Fs(a,0,i.time)}(t,i,{name:e,index:s,group:r,on:As,tween:xs,time:a.time,delay:a.delay,duration:a.duration,ease:a.ease,timer:null,state:0})}function Rs(t,e){var i=Ss(t,e);if(i.state>0)throw new Error("too late; already scheduled");return i}function Ns(t,e){var i=Ss(t,e);if(i.state>3)throw new Error("too late; already running");return i}function Ss(t,e){var i=t.__transition;if(!i||!(i=i[e]))throw new Error("transition not found");return i}function Ls(t,e){var i,s;return function(){var r=Ns(this,t),a=r.tween;if(a!==i)for(var n=0,o=(s=i=a).length;n<o;++n)if(s[n].name===e){(s=s.slice()).splice(n,1);break}r.tween=s}}function ws(t,e,i){var s,r;if("function"!=typeof i)throw new Error;return function(){var a=Ns(this,t),n=a.tween;if(n!==s){r=(s=n).slice();for(var o={name:e,value:i},l=0,c=r.length;l<c;++l)if(r[l].name===e){r[l]=o;break}l===c&&r.push(o)}a.tween=r}}function Ds(t,e,i){var s=t._id;return t.each((function(){var t=Ns(this,s);(t.value||(t.value={}))[e]=i.apply(this,arguments)})),function(t){return Ss(t,s).value[e]}}function Ms(t,e){var i;return("number"==typeof e?Ki:e instanceof vi?Xi:(i=vi(e))?(e=i,Xi):ji)(t,e)}function ks(t){return function(){this.removeAttribute(t)}}function Ts(t){return function(){this.removeAttributeNS(t.space,t.local)}}function Vs(t,e,i){var s,r,a=i+"";return function(){var n=this.getAttribute(t);return n===a?null:n===s?r:r=e(s=n,i)}}function $s(t,e,i){var s,r,a=i+"";return function(){var n=this.getAttributeNS(t.space,t.local);return n===a?null:n===s?r:r=e(s=n,i)}}function Hs(t,e,i){var s,r,a;return function(){var n,o,l=i(this);if(null!=l)return(n=this.getAttribute(t))===(o=l+"")?null:n===s&&o===r?a:(r=o,a=e(s=n,l));this.removeAttribute(t)}}function zs(t,e,i){var s,r,a;return function(){var n,o,l=i(this);if(null!=l)return(n=this.getAttributeNS(t.space,t.local))===(o=l+"")?null:n===s&&o===r?a:(r=o,a=e(s=n,l));this.removeAttributeNS(t.space,t.local)}}function Gs(t,e){var i,s;function r(){var r=e.apply(this,arguments);return r!==s&&(i=(s=r)&&function(t,e){return function(i){this.setAttributeNS(t.space,t.local,e.call(this,i))}}(t,r)),i}return r._value=e,r}function Ys(t,e){var i,s;function r(){var r=e.apply(this,arguments);return r!==s&&(i=(s=r)&&function(t,e){return function(i){this.setAttribute(t,e.call(this,i))}}(t,r)),i}return r._value=e,r}function Xs(t,e){return function(){Rs(this,t).delay=+e.apply(this,arguments)}}function Js(t,e){return e=+e,function(){Rs(this,t).delay=e}}function Ws(t,e){return function(){Ns(this,t).duration=+e.apply(this,arguments)}}function _s(t,e){return e=+e,function(){Ns(this,t).duration=e}}var Ks=Xe.prototype.constructor;function Ps(t){return function(){this.style.removeProperty(t)}}var Zs=0;function Os(t,e,i,s){this._groups=t,this._parents=e,this._name=i,this._id=s}function js(){return++Zs}var qs=Xe.prototype;Os.prototype={constructor:Os,select:function(t){var e=this._name,i=this._id;"function"!=typeof t&&(t=Ht(t));for(var s=this._groups,r=s.length,a=new Array(r),n=0;n<r;++n)for(var o,l,c=s[n],d=c.length,u=a[n]=new Array(d),h=0;h<d;++h)(o=c[h])&&(l=t.call(o,o.__data__,h,c))&&("__data__"in o&&(l.__data__=o.__data__),u[h]=l,Es(u[h],e,i,h,u,Ss(o,i)));return new Os(a,this._parents,e,i)},selectAll:function(t){var e=this._name,i=this._id;"function"!=typeof t&&(t=Gt(t));for(var s=this._groups,r=s.length,a=[],n=[],o=0;o<r;++o)for(var l,c=s[o],d=c.length,u=0;u<d;++u)if(l=c[u]){for(var h,g=t.call(l,l.__data__,u,c),p=Ss(l,i),m=0,b=g.length;m<b;++m)(h=g[m])&&Es(h,e,i,m,g,p);a.push(g),n.push(l)}return new Os(a,n,e,i)},selectChild:qs.selectChild,selectChildren:qs.selectChildren,filter:function(t){"function"!=typeof t&&(t=Xt(t));for(var e=this._groups,i=e.length,s=new Array(i),r=0;r<i;++r)for(var a,n=e[r],o=n.length,l=s[r]=[],c=0;c<o;++c)(a=n[c])&&t.call(a,a.__data__,c,n)&&l.push(a);return new Os(s,this._parents,this._name,this._id)},merge:function(t){if(t._id!==this._id)throw new Error;for(var e=this._groups,i=t._groups,s=e.length,r=i.length,a=Math.min(s,r),n=new Array(s),o=0;o<a;++o)for(var l,c=e[o],d=i[o],u=c.length,h=n[o]=new Array(u),g=0;g<u;++g)(l=c[g]||d[g])&&(h[g]=l);for(;o<s;++o)n[o]=e[o];return new Os(n,this._parents,this._name,this._id)},selection:function(){return new Ks(this._groups,this._parents)},transition:function(){for(var t=this._name,e=this._id,i=js(),s=this._groups,r=s.length,a=0;a<r;++a)for(var n,o=s[a],l=o.length,c=0;c<l;++c)if(n=o[c]){var d=Ss(n,e);Es(n,t,i,c,o,{time:d.time+d.delay+d.duration,delay:0,duration:d.duration,ease:d.ease})}return new Os(s,this._parents,t,i)},call:qs.call,nodes:qs.nodes,node:qs.node,size:qs.size,empty:qs.empty,each:qs.each,on:function(t,e){var i=this._id;return arguments.length<2?Ss(this.node(),i).on.on(t):this.each(function(t,e,i){var s,r,a=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)?Rs:Ns;return function(){var n=a(this,t),o=n.on;o!==s&&(r=(s=o).copy()).on(e,i),n.on=r}}(i,t,e))},attr:function(t,e){var i=Mt(t),s="transform"===i?cs:Ms;return this.attrTween(t,"function"==typeof e?(i.local?zs:Hs)(i,s,Ds(this,"attr."+t,e)):null==e?(i.local?Ts:ks)(i):(i.local?$s:Vs)(i,s,e))},attrTween:function(t,e){var i="attr."+t;if(arguments.length<2)return(i=this.tween(i))&&i._value;if(null==e)return this.tween(i,null);if("function"!=typeof e)throw new Error;var s=Mt(t);return this.tween(i,(s.local?Gs:Ys)(s,e))},style:function(t,e,i){var s="transform"==(t+="")?ls:Ms;return null==e?this.styleTween(t,function(t,e){var i,s,r;return function(){var a=ge(this,t),n=(this.style.removeProperty(t),ge(this,t));return a===n?null:a===i&&n===s?r:r=e(i=a,s=n)}}(t,s)).on("end.style."+t,Ps(t)):"function"==typeof e?this.styleTween(t,function(t,e,i){var s,r,a;return function(){var n=ge(this,t),o=i(this),l=o+"";return null==o&&(this.style.removeProperty(t),l=o=ge(this,t)),n===l?null:n===s&&l===r?a:(r=l,a=e(s=n,o))}}(t,s,Ds(this,"style."+t,e))).each(function(t,e){var i,s,r,a,n="style."+e,o="end."+n;return function(){var l=Ns(this,t),c=l.on,d=null==l.value[n]?a||(a=Ps(e)):void 0;c===i&&r===d||(s=(i=c).copy()).on(o,r=d),l.on=s}}(this._id,t)):this.styleTween(t,function(t,e,i){var s,r,a=i+"";return function(){var n=ge(this,t);return n===a?null:n===s?r:r=e(s=n,i)}}(t,s,e),i).on("end.style."+t,null)},styleTween:function(t,e,i){var s="style."+(t+="");if(arguments.length<2)return(s=this.tween(s))&&s._value;if(null==e)return this.tween(s,null);if("function"!=typeof e)throw new Error;return this.tween(s,function(t,e,i){var s,r;function a(){var a=e.apply(this,arguments);return a!==r&&(s=(r=a)&&function(t,e,i){return function(s){this.style.setProperty(t,e.call(this,s),i)}}(t,a,i)),s}return a._value=e,a}(t,e,null==i?"":i))},text:function(t){return this.tween("text","function"==typeof t?function(t){return function(){var e=t(this);this.textContent=null==e?"":e}}(Ds(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,i;function s(){var s=t.apply(this,arguments);return s!==i&&(e=(i=s)&&function(t){return function(e){this.textContent=t.call(this,e)}}(s)),e}return s._value=t,s}(t))},remove:function(){return this.on("end.remove",function(t){return function(){var e=this.parentNode;for(var i in this.__transition)if(+i!==t)return;e&&e.removeChild(this)}}(this._id))},tween:function(t,e){var i=this._id;if(t+="",arguments.length<2){for(var s,r=Ss(this.node(),i).tween,a=0,n=r.length;a<n;++a)if((s=r[a]).name===t)return s.value;return null}return this.each((null==e?Ls:ws)(i,t,e))},delay:function(t){var e=this._id;return arguments.length?this.each(("function"==typeof t?Xs:Js)(e,t)):Ss(this.node(),e).delay},duration:function(t){var e=this._id;return arguments.length?this.each(("function"==typeof t?Ws:_s)(e,t)):Ss(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(){Ns(this,t).ease=e}}(e,t)):Ss(this.node(),e).ease},easeVarying:function(t){if("function"!=typeof t)throw new Error;return this.each(function(t,e){return function(){var i=e.apply(this,arguments);if("function"!=typeof i)throw new Error;Ns(this,t).ease=i}}(this._id,t))},end:function(){var t,e,i=this,s=i._id,r=i.size();return new Promise((function(a,n){var o={value:n},l={value:function(){0==--r&&a()}};i.each((function(){var i=Ns(this,s),r=i.on;r!==t&&((e=(t=r).copy())._.cancel.push(o),e._.interrupt.push(o),e._.end.push(l)),i.on=e})),0===r&&a()}))},[Symbol.iterator]:qs[Symbol.iterator]};const tr=t=>+t;function er(t){return--t*t*t+1}var ir={time:null,delay:0,duration:250,ease:function(t){return((t*=2)<=1?t*t*t:(t-=2)*t*t+2)/2}};function sr(t,e){for(var i;!(i=t.__transition)||!(i=i[e]);)if(!(t=t.parentNode))throw new Error(`transition ${e} not found`);return i}Xe.prototype.interrupt=function(t){return this.each((function(){!function(t,e){var i,s,r,a=t.__transition,n=!0;if(a){for(r in e=null==e?null:e+"",a)(i=a[r]).name===e?(s=i.state>2&&i.state<5,i.state=6,i.timer.stop(),i.on.call(s?"interrupt":"cancel",t,t.__data__,i.index,i.group),delete a[r]):n=!1;n&&delete t.__transition}}(this,t)}))},Xe.prototype.transition=function(t){var e,i;t instanceof Os?(e=t._id,t=t._name):(e=js(),(i=ir).time=ys(),t=null==t?null:t+"");for(var s=this._groups,r=s.length,a=0;a<r;++a)for(var n,o=s[a],l=o.length,c=0;c<l;++c)(n=o[c])&&Es(n,t,e,c,o,i||sr(n,e));return new Os(s,this._parents,t,e)};const rr=Math.PI,ar=2*rr,nr=1e-6,or=ar-nr;function lr(t){this._+=t[0];for(let e=1,i=t.length;e<i;++e)this._+=arguments[e]+t[e]}class cr{constructor(t){this._x0=this._y0=this._x1=this._y1=null,this._="",this._append=null==t?lr:function(t){let e=Math.floor(t);if(!(e>=0))throw new Error(`invalid digits: ${t}`);if(e>15)return lr;const i=10**e;return function(t){this._+=t[0];for(let e=1,s=t.length;e<s;++e)this._+=Math.round(arguments[e]*i)/i+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,i,s){this._append`Q${+t},${+e},${this._x1=+i},${this._y1=+s}`}bezierCurveTo(t,e,i,s,r,a){this._append`C${+t},${+e},${+i},${+s},${this._x1=+r},${this._y1=+a}`}arcTo(t,e,i,s,r){if(t=+t,e=+e,i=+i,s=+s,(r=+r)<0)throw new Error(`negative radius: ${r}`);let a=this._x1,n=this._y1,o=i-t,l=s-e,c=a-t,d=n-e,u=c*c+d*d;if(null===this._x1)this._append`M${this._x1=t},${this._y1=e}`;else if(u>nr)if(Math.abs(d*o-l*c)>nr&&r){let h=i-a,g=s-n,p=o*o+l*l,m=h*h+g*g,b=Math.sqrt(p),Q=Math.sqrt(u),y=r*Math.tan((rr-Math.acos((p+u-m)/(2*b*Q)))/2),U=y/Q,B=y/b;Math.abs(U-1)>nr&&this._append`L${t+U*c},${e+U*d}`,this._append`A${r},${r},0,0,${+(d*h>c*g)},${this._x1=t+B*o},${this._y1=e+B*l}`}else this._append`L${this._x1=t},${this._y1=e}`;else;}arc(t,e,i,s,r,a){if(t=+t,e=+e,a=!!a,(i=+i)<0)throw new Error(`negative radius: ${i}`);let n=i*Math.cos(s),o=i*Math.sin(s),l=t+n,c=e+o,d=1^a,u=a?s-r:r-s;null===this._x1?this._append`M${l},${c}`:(Math.abs(this._x1-l)>nr||Math.abs(this._y1-c)>nr)&&this._append`L${l},${c}`,i&&(u<0&&(u=u%ar+ar),u>or?this._append`A${i},${i},0,1,${d},${t-n},${e-o}A${i},${i},0,1,${d},${this._x1=l},${this._y1=c}`:u>nr&&this._append`A${i},${i},0,${+(u>=rr)},${d},${this._x1=t+i*Math.cos(r)},${this._y1=e+i*Math.sin(r)}`)}rect(t,e,i,s){this._append`M${this._x0=this._x1=+t},${this._y0=this._y1=+e}h${i=+i}v${+s}h${-i}Z`}toString(){return this._}}function dr(t,e){if((i=(t=e?t.toExponential(e-1):t.toExponential()).indexOf("e"))<0)return null;var i,s=t.slice(0,i);return[s.length>1?s[0]+s.slice(2):s,+t.slice(i+1)]}function ur(t){return(t=dr(Math.abs(t)))?t[1]:NaN}var hr,gr=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function pr(t){if(!(e=gr.exec(t)))throw new Error("invalid format: "+t);var e;return new mr({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 mr(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 br(t,e){var i=dr(t,e);if(!i)return t+"";var s=i[0],r=i[1];return r<0?"0."+new Array(-r).join("0")+s:s.length>r+1?s.slice(0,r+1)+"."+s.slice(r+1):s+new Array(r-s.length+2).join("0")}pr.prototype=mr.prototype,mr.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 Qr={"%":(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)=>br(100*t,e),r:br,s:function(t,e){var i=dr(t,e);if(!i)return t+"";var s=i[0],r=i[1],a=r-(hr=3*Math.max(-8,Math.min(8,Math.floor(r/3))))+1,n=s.length;return a===n?s:a>n?s+new Array(a-n+1).join("0"):a>0?s.slice(0,a)+"."+s.slice(a):"0."+new Array(1-a).join("0")+dr(t,Math.max(0,e+a-1))[0]},X:t=>Math.round(t).toString(16).toUpperCase(),x:t=>Math.round(t).toString(16)};function yr(t){return t}var Ur,Br,Fr,Ir=Array.prototype.map,fr=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function Cr(t){var e,i,s=void 0===t.grouping||void 0===t.thousands?yr:(e=Ir.call(t.grouping,Number),i=t.thousands+"",function(t,s){for(var r=t.length,a=[],n=0,o=e[0],l=0;r>0&&o>0&&(l+o+1>s&&(o=Math.max(1,s-l)),a.push(t.substring(r-=o,r+o)),!((l+=o+1)>s));)o=e[n=(n+1)%e.length];return a.reverse().join(i)}),r=void 0===t.currency?"":t.currency[0]+"",a=void 0===t.currency?"":t.currency[1]+"",n=void 0===t.decimal?".":t.decimal+"",o=void 0===t.numerals?yr:function(t){return function(e){return e.replace(/[0-9]/g,(function(e){return t[+e]}))}}(Ir.call(t.numerals,String)),l=void 0===t.percent?"%":t.percent+"",c=void 0===t.minus?"−":t.minus+"",d=void 0===t.nan?"NaN":t.nan+"";function u(t){var e=(t=pr(t)).fill,i=t.align,u=t.sign,h=t.symbol,g=t.zero,p=t.width,m=t.comma,b=t.precision,Q=t.trim,y=t.type;"n"===y?(m=!0,y="g"):Qr[y]||(void 0===b&&(b=12),Q=!0,y="g"),(g||"0"===e&&"="===i)&&(g=!0,e="0",i="=");var U="$"===h?r:"#"===h&&/[boxX]/.test(y)?"0"+y.toLowerCase():"",B="$"===h?a:/[%p]/.test(y)?l:"",F=Qr[y],I=/[defgprs%]/.test(y);function f(t){var r,a,l,h=U,f=B;if("c"===y)f=F(t)+f,t="";else{var C=(t=+t)<0||1/t<0;if(t=isNaN(t)?d:F(Math.abs(t),b),Q&&(t=function(t){t:for(var e,i=t.length,s=1,r=-1;s<i;++s)switch(t[s]){case".":r=e=s;break;case"0":0===r&&(r=s),e=s;break;default:if(!+t[s])break t;r>0&&(r=0)}return r>0?t.slice(0,r)+t.slice(e+1):t}(t)),C&&0==+t&&"+"!==u&&(C=!1),h=(C?"("===u?u:c:"-"===u||"("===u?"":u)+h,f=("s"===y?fr[8+hr/3]:"")+f+(C&&"("===u?")":""),I)for(r=-1,a=t.length;++r<a;)if(48>(l=t.charCodeAt(r))||l>57){f=(46===l?n+t.slice(r+1):t.slice(r))+f,t=t.slice(0,r);break}}m&&!g&&(t=s(t,1/0));var v=h.length+t.length+f.length,A=v<p?new Array(p-v+1).join(e):"";switch(m&&g&&(t=s(A+t,A.length?p-f.length:1/0),A=""),i){case"<":t=h+t+f+A;break;case"=":t=h+A+t+f;break;case"^":t=A.slice(0,v=A.length>>1)+h+t+f+A.slice(v);break;default:t=A+h+t+f}return o(t)}return b=void 0===b?6:/[gprs]/.test(y)?Math.max(1,Math.min(21,b)):Math.max(0,Math.min(20,b)),f.toString=function(){return t+""},f}return{format:u,formatPrefix:function(t,e){var i=u(((t=pr(t)).type="f",t)),s=3*Math.max(-8,Math.min(8,Math.floor(ur(e)/3))),r=Math.pow(10,-s),a=fr[8+s/3];return function(t){return i(r*t)+a}}}}Ur=Cr({thousands:",",grouping:[3],currency:["$",""]}),Br=Ur.format,Fr=Ur.formatPrefix;var vr=Math.random,Ar=function t(e){function i(t,i){return t=null==t?0:+t,i=null==i?1:+i,1===arguments.length?(i=t,t=0):i-=t,function(){return e()*i+t}}return i.source=t,i}(vr),xr=function t(e){function i(t,i){var s,r;return t=null==t?0:+t,i=null==i?1:+i,function(){var a;if(null!=s)a=s,s=null;else do{s=2*e()-1,a=2*e()-1,r=s*s+a*a}while(!r||r>1);return t+i*a*Math.sqrt(-2*Math.log(r)/r)}}return i.source=t,i}(vr);const Er=1/4294967296;function Rr(t=Math.random()){let e=0|(0<=t&&t<1?t/Er:Math.abs(t));return()=>(e=1664525*e+1013904223|0,Er*(e>>>0))}function Nr(t,e){switch(arguments.length){case 0:break;case 1:this.range(t);break;default:this.range(e).domain(t)}return this}function Sr(t){return+t}var Lr=[0,1];function wr(t){return t}function Dr(t,e){return(e-=t=+t)?function(i){return(i-t)/e}:function(t){return function(){return t}}(isNaN(e)?NaN:.5)}function Mr(t,e,i){var s=t[0],r=t[1],a=e[0],n=e[1];return r<s?(s=Dr(r,s),a=i(n,a)):(s=Dr(s,r),a=i(a,n)),function(t){return a(s(t))}}function kr(t,e,i){var s=Math.min(t.length,e.length)-1,r=new Array(s),a=new Array(s),n=-1;for(t[s]<t[0]&&(t=t.slice().reverse(),e=e.slice().reverse());++n<s;)r[n]=Dr(t[n],t[n+1]),a[n]=i(e[n],e[n+1]);return function(e){var i=gt(t,e,1,s)-1;return a[i](r[i](e))}}function Tr(){var t,e,i,s,r,a,n=Lr,o=Lr,l=qi,c=wr;function d(){var t=Math.min(n.length,o.length);return c!==wr&&(c=function(t,e){var i;return t>e&&(i=t,t=e,e=i),function(i){return Math.max(t,Math.min(e,i))}}(n[0],n[t-1])),s=t>2?kr:Mr,r=a=null,u}function u(e){return null==e||isNaN(e=+e)?i:(r||(r=s(n.map(t),o,l)))(t(c(e)))}return u.invert=function(i){return c(e((a||(a=s(o,n.map(t),Ki)))(i)))},u.domain=function(t){return arguments.length?(n=Array.from(t,Sr),d()):n.slice()},u.range=function(t){return arguments.length?(o=Array.from(t),d()):o.slice()},u.rangeRound=function(t){return o=Array.from(t),l=ts,d()},u.clamp=function(t){return arguments.length?(c=!!t||wr,d()):c!==wr},u.interpolate=function(t){return arguments.length?(l=t,d()):l},u.unknown=function(t){return arguments.length?(i=t,u):i},function(i,s){return t=i,e=s,d()}}function Vr(t,e,i,s){var r,a=function(t,e,i){i=+i;const s=(e=+e)<(t=+t),r=s?yt(e,t,i):yt(t,e,i);return(s?-1:1)*(r<0?1/-r:r)}(t,e,i);switch((s=pr(null==s?",f":s)).type){case"s":var n=Math.max(Math.abs(t),Math.abs(e));return null!=s.precision||isNaN(r=function(t,e){return Math.max(0,3*Math.max(-8,Math.min(8,Math.floor(ur(e)/3)))-ur(Math.abs(t)))}(a,n))||(s.precision=r),Fr(s,n);case"":case"e":case"g":case"p":case"r":null!=s.precision||isNaN(r=function(t,e){return t=Math.abs(t),e=Math.abs(e)-t,Math.max(0,ur(e)-ur(t))+1}(a,Math.max(Math.abs(t),Math.abs(e))))||(s.precision=r-("e"===s.type));break;case"f":case"%":null!=s.precision||isNaN(r=function(t){return Math.max(0,-ur(Math.abs(t)))}(a))||(s.precision=r-2*("%"===s.type))}return Br(s)}function $r(t){var e=t.domain;return t.ticks=function(t){var i=e();return function(t,e,i){if(!((i=+i)>0))return[];if((t=+t)==(e=+e))return[t];const s=e<t,[r,a,n]=s?Qt(e,t,i):Qt(t,e,i);if(!(a>=r))return[];const o=a-r+1,l=new Array(o);if(s)if(n<0)for(let t=0;t<o;++t)l[t]=(a-t)/-n;else for(let t=0;t<o;++t)l[t]=(a-t)*n;else if(n<0)for(let t=0;t<o;++t)l[t]=(r+t)/-n;else for(let t=0;t<o;++t)l[t]=(r+t)*n;return l}(i[0],i[i.length-1],null==t?10:t)},t.tickFormat=function(t,i){var s=e();return Vr(s[0],s[s.length-1],null==t?10:t,i)},t.nice=function(i){null==i&&(i=10);var s,r,a=e(),n=0,o=a.length-1,l=a[n],c=a[o],d=10;for(c<l&&(r=l,l=c,c=r,r=n,n=o,o=r);d-- >0;){if((r=yt(l,c,i))===s)return a[n]=l,a[o]=c,e(a);if(r>0)l=Math.floor(l/r)*r,c=Math.ceil(c/r)*r;else{if(!(r<0))break;l=Math.ceil(l*r)/r,c=Math.floor(c*r)/r}s=r}return t},t}function Hr(){var t=Tr()(wr,wr);return t.copy=function(){return e=t,Hr().domain(e.domain()).range(e.range()).interpolate(e.interpolate()).clamp(e.clamp()).unknown(e.unknown());var e},Nr.apply(t,arguments),$r(t)}var zr=function(t){for(var e=t.length/6|0,i=new Array(e),s=0;s<e;)i[s]="#"+t.slice(6*s,6*++s);return i}("e41a1c377eb84daf4a984ea3ff7f00ffff33a65628f781bf999999");function Gr(t){return function(){return t}}function Yr(t){this._context=t}function Xr(t){return new Yr(t)}function Jr(t){return t[0]}function Wr(t){return t[1]}function _r(t,e){var i=Gr(!0),s=null,r=Xr,a=null,n=function(t){let e=3;return t.digits=function(i){if(!arguments.length)return e;if(null==i)e=null;else{const t=Math.floor(i);if(!(t>=0))throw new RangeError(`invalid digits: ${i}`);e=t}return t},()=>new cr(e)}(o);function o(o){var l,c,d,u=(o=function(t){return"object"==typeof t&&"length"in t?t:Array.from(t)}(o)).length,h=!1;for(null==s&&(a=r(d=n())),l=0;l<=u;++l)!(l<u&&i(c=o[l],l,o))===h&&((h=!h)?a.lineStart():a.lineEnd()),h&&a.point(+t(c,l,o),+e(c,l,o));if(d)return a=null,d+""||null}return t="function"==typeof t?t:void 0===t?Jr:Gr(t),e="function"==typeof e?e:void 0===e?Wr:Gr(e),o.x=function(e){return arguments.length?(t="function"==typeof e?e:Gr(+e),o):t},o.y=function(t){return arguments.length?(e="function"==typeof t?t:Gr(+t),o):e},o.defined=function(t){return arguments.length?(i="function"==typeof t?t:Gr(!!t),o):i},o.curve=function(t){return arguments.length?(r=t,null!=s&&(a=r(s)),o):r},o.context=function(t){return arguments.length?(null==t?s=a=null:a=r(s=t),o):s},o}function Kr(t,e,i){this.k=t,this.x=e,this.y=i}Yr.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)}}},Kr.prototype={constructor:Kr,scale:function(t){return 1===t?this:new Kr(this.k*t,this.x,this.y)},translate:function(t,e){return 0===t&0===e?this:new Kr(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+")"}},Kr.prototype;class Pr extends ot{getComputedStyleValue(t){return getComputedStyle(this).getPropertyValue(t).trim()}firstUpdated(t){super.firstUpdated(t),Je(this.renderRoot.host).classed("keyboard",!0).on("mousemove.keyboard touchstart.keyboard",(t=>{Je(t.currentTarget.renderRoot.host).classed("keyboard",!1).on("mousemove.keyboard touchstart.keyboard",null)})).on("keydown.keyboard",(t=>{Je(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=Xi(t,"#ffffff")(.75),e.light50=Xi(t,"#ffffff")(.5),e.light25=Xi(t,"#ffffff")(.25),e.grey=t,e.dark25=Xi(t,"#000000")(.25),e.dark50=Xi(t,"#000000")(.5),e.dark75=Xi(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,i=!1){const s=this.shadows.opacityUmbra+this.shadows.opacityBoost,r=this.shadows.opacityPenumbra+this.shadows.opacityBoost,a=this.shadows.opacityAmbient+this.shadows.opacityBoost,n=i?`rgba(${this.shadows.inverseBaselineColorString}, ${s})`:`rgba(${this.shadows.baselineColorString}, ${s})`,o=i?`rgba(${this.shadows.inverseBaselineColorString}, ${r})`:`rgba(${this.shadows.baselineColorString}, ${r})`,l=i?`rgba(${this.shadows.inverseBaselineColorString}, ${a})`:`rgba(${this.shadows.baselineColorString}, ${a})`,c=this.shadows.mapUmbra[t],d=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`} ${n}, ${e?`${-d.y}px ${d.y/2}px ${d.b}px ${d.s}px`:`${d.y/2}px ${d.y}px ${d.b}px ${d.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=Pr.shadows,e=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>`));return`\n <defs>\n ${e}\n </defs>\n `}static get svgFilters(){const t=Pr.shadows,e=t.elevations.map((e=>X`
|
|
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"/>
|
|
@@ -28,9 +28,9 @@ class ot extends U{constructor(){super(...arguments),this.renderOptions={host:th
|
|
|
28
28
|
<feOffset in="solid" result="offU" dx=${t.mapUmbra[e].y/2} dy=${t.mapUmbra[e].y} />
|
|
29
29
|
<feOffset in="solid" result="offP" dx=${t.mapPenumbra[e].y/2} dy=${t.mapPenumbra[e].y} />
|
|
30
30
|
<feOffset in="solid" result="offA" dx=${t.mapAmbient[e].y/2} dy=${t.mapAmbient[e].y} />
|
|
31
|
-
${0===t.mapUmbra[e].s?
|
|
32
|
-
${0===t.mapPenumbra[e].s?
|
|
33
|
-
${0===t.mapAmbient[e].s?
|
|
31
|
+
${0===t.mapUmbra[e].s?X``:X`<feMorphology in="offU" result="spreadU" operator=${t.mapUmbra[e].s>0?"dilate":"erode"} radius=${Math.abs(t.mapUmbra[e].s)} />`}
|
|
32
|
+
${0===t.mapPenumbra[e].s?X``:X`<feMorphology in="offP" result="spreadP" operator=${t.mapPenumbra[e].s>0?"dilate":"erode"} radius=${Math.abs(t.mapPenumbra[e].s)} />`}
|
|
33
|
+
${0===t.mapAmbient[e].s?X``:X`<feMorphology in="offA" result="spreadA" operator=${t.mapAmbient[e].s>0?"dilate":"erode"} radius=${Math.abs(t.mapAmbient[e].s)} />`}
|
|
34
34
|
<feGaussianBlur in=${0===t.mapUmbra[e].s?"offU":"spreadU"} result="blurU" stdDeviation=${t.mapUmbra[e].b/2} />
|
|
35
35
|
<feGaussianBlur in=${0===t.mapPenumbra[e].s?"offP":"spreadP"} result="blurP" stdDeviation=${t.mapPenumbra[e].b/2} />
|
|
36
36
|
<feGaussianBlur in=${0===t.mapAmbient[e].s?"offA":"spreadA"} result="blurA" stdDeviation=${t.mapAmbient[e].b/2} />
|
|
@@ -50,7 +50,7 @@ class ot extends U{constructor(){super(...arguments),this.renderOptions={host:th
|
|
|
50
50
|
<feMergeNode in="finalA" />
|
|
51
51
|
<feMergeNode in="SourceGraphic" />
|
|
52
52
|
</feMerge>
|
|
53
|
-
</filter>`));return
|
|
53
|
+
</filter>`));return X`
|
|
54
54
|
<svg class="defs">
|
|
55
55
|
<defs>
|
|
56
56
|
${e}
|
|
@@ -113,8 +113,11 @@ class ot extends U{constructor(){super(...arguments),this.renderOptions={host:th
|
|
|
113
113
|
width: 0;
|
|
114
114
|
height: 0;
|
|
115
115
|
}
|
|
116
|
-
`}}customElements.define("decidables-button",class extends
|
|
116
|
+
`}}customElements.define("decidables-button",class extends Pr{static get properties(){return{disabled:{attribute:"disabled",type:Boolean,reflect:!0}}}constructor(){super(),this.disabled=!1}static get styles(){return[super.styles,n`
|
|
117
117
|
:host {
|
|
118
|
+
---decidables-button-background-color-disabled: var(--decidables-button-background-color, var(---color-element-disabled));
|
|
119
|
+
---decidables-button-background-color-enabled: var(--decidables-button-background-color, var(---color-element-enabled));
|
|
120
|
+
|
|
118
121
|
margin: 0.25rem;
|
|
119
122
|
}
|
|
120
123
|
|
|
@@ -134,7 +137,7 @@ class ot extends U{constructor(){super(...arguments),this.renderOptions={host:th
|
|
|
134
137
|
}
|
|
135
138
|
|
|
136
139
|
button:disabled {
|
|
137
|
-
background-color: var(
|
|
140
|
+
background-color: var(---decidables-button-background-color-disabled);
|
|
138
141
|
outline: none;
|
|
139
142
|
box-shadow: none;
|
|
140
143
|
}
|
|
@@ -142,7 +145,7 @@ class ot extends U{constructor(){super(...arguments),this.renderOptions={host:th
|
|
|
142
145
|
button:enabled {
|
|
143
146
|
cursor: pointer;
|
|
144
147
|
|
|
145
|
-
background-color: var(
|
|
148
|
+
background-color: var(---decidables-button-background-color-enabled);
|
|
146
149
|
outline: none;
|
|
147
150
|
box-shadow: var(---shadow-2);
|
|
148
151
|
}
|
|
@@ -166,7 +169,7 @@ class ot extends U{constructor(){super(...arguments),this.renderOptions={host:th
|
|
|
166
169
|
outline: none;
|
|
167
170
|
box-shadow: var(---shadow-8);
|
|
168
171
|
}
|
|
169
|
-
`]}render(){return
|
|
172
|
+
`]}render(){return Y`
|
|
170
173
|
<button ?disabled=${this.disabled}>
|
|
171
174
|
<slot></slot>
|
|
172
175
|
</button>
|
|
@@ -176,8 +179,12 @@ class ot extends U{constructor(){super(...arguments),this.renderOptions={host:th
|
|
|
176
179
|
* Copyright 2018 Google LLC
|
|
177
180
|
* SPDX-License-Identifier: BSD-3-Clause
|
|
178
181
|
*/
|
|
179
|
-
const
|
|
182
|
+
const Zr=t=>t??W;customElements.define("decidables-slider",class extends Pr{static get properties(){return{disabled:{attribute:"disabled",type:Boolean,reflect:!0},scale:{attribute:"scale",type:Boolean,reflect:!0},max:{attribute:"max",type:Number,reflect:!0},min:{attribute:"min",type:Number,reflect:!0},step:{attribute:"step",type:Number,reflect:!0},value:{attribute:"value",type:Number,reflect:!0},nonlinear:{attribute:!1,type:Boolean,reflect:!1}}}constructor(){super(),this.disabled=!1,this.scale=!1,this.max=void 0,this.min=void 0,this.step=void 0,this.value=void 0,this.nonlinear=!1,this.rangeMax=void 0,this.rangeMin=void 0,this.rangeStep=void 0,this.rangeValue=void 0,this.toRange=void 0,this.fromRange=void 0}nonlinearRange(t,e,i){this.nonlinear=t,this.toRange=t?e:void 0,this.fromRange=t?i:void 0}rangeChanged(t){this.value=this.nonlinear?this.fromRange(t.target.value):t.target.value,this.dispatchEvent(new CustomEvent("change",{detail:{value:this.value},bubbles:!0}))}rangeInputted(t){this.value=this.nonlinear?this.fromRange(t.target.value):t.target.value}spinnerInputted(t){this.value=t.target.value}willUpdate(){this.rangeMax=void 0===this.max?void 0:this.nonlinear?this.toRange(this.max):this.max,this.rangeMin=void 0===this.min?void 0:this.nonlinear?this.toRange(this.min):this.min,this.rangeStep=void 0===this.step?void 0:this.nonlinear?"any":this.step,this.rangeValue=void 0===this.value?void 0:this.nonlinear?this.toRange(this.value):this.value}static get styles(){return[super.styles,n`
|
|
180
183
|
:host {
|
|
184
|
+
---decidables-slider-background-color: var(--decidables-slider-background-color, var(---color-element-disabled));
|
|
185
|
+
---decidables-slider-color: var(--decidables-slider-color, var(---color-element-enabled));
|
|
186
|
+
---decidables-spinner-background-color: var(--decidables-slider-background-color, none);
|
|
187
|
+
|
|
181
188
|
---shadow-2-rotate: var(--shadow-2-rotate, ${a(this.cssBoxShadow(2,!0,!1))});
|
|
182
189
|
---shadow-4-rotate: var(--shadow-4-rotate, ${a(this.cssBoxShadow(4,!0,!1))});
|
|
183
190
|
---shadow-8-rotate: var(--shadow-8-rotate, ${a(this.cssBoxShadow(8,!0,!1))});
|
|
@@ -195,7 +202,10 @@ const la=t=>t??J;customElements.define("decidables-slider",class extends oa{stat
|
|
|
195
202
|
}
|
|
196
203
|
|
|
197
204
|
.range {
|
|
198
|
-
|
|
205
|
+
position: relative;
|
|
206
|
+
display: flex;
|
|
207
|
+
|
|
208
|
+
flex-direction: row;
|
|
199
209
|
|
|
200
210
|
width: 3.5rem;
|
|
201
211
|
height: 4.75rem;
|
|
@@ -206,6 +216,8 @@ const la=t=>t??J;customElements.define("decidables-slider",class extends oa{stat
|
|
|
206
216
|
--decidables-spinner-input-width: 3.5rem;
|
|
207
217
|
|
|
208
218
|
margin: 0 0.25rem 0.25rem;
|
|
219
|
+
|
|
220
|
+
background: var(---decidables-spinner-background-color);
|
|
209
221
|
}
|
|
210
222
|
|
|
211
223
|
/* Adapted from http://danielstern.ca/range.css/#/ */
|
|
@@ -244,14 +256,14 @@ const la=t=>t??J;customElements.define("decidables-slider",class extends oa{stat
|
|
|
244
256
|
width: 100%;
|
|
245
257
|
height: 4px;
|
|
246
258
|
|
|
247
|
-
background: var(---
|
|
259
|
+
background: var(---decidables-slider-background-color);
|
|
248
260
|
border: 0;
|
|
249
261
|
border-radius: 2px;
|
|
250
262
|
box-shadow: none;
|
|
251
263
|
}
|
|
252
264
|
|
|
253
265
|
input[type=range]:focus::-webkit-slider-runnable-track {
|
|
254
|
-
background: var(---
|
|
266
|
+
background: var(---decidables-slider-background-color);
|
|
255
267
|
}
|
|
256
268
|
|
|
257
269
|
/* stylelint-disable-next-line no-descending-specificity */ /* stylelint ERROR */
|
|
@@ -259,7 +271,7 @@ const la=t=>t??J;customElements.define("decidables-slider",class extends oa{stat
|
|
|
259
271
|
width: 100%;
|
|
260
272
|
height: 4px;
|
|
261
273
|
|
|
262
|
-
background: var(---
|
|
274
|
+
background: var(---decidables-slider-background-color);
|
|
263
275
|
border: 0;
|
|
264
276
|
border-radius: 2px;
|
|
265
277
|
box-shadow: none;
|
|
@@ -279,7 +291,7 @@ const la=t=>t??J;customElements.define("decidables-slider",class extends oa{stat
|
|
|
279
291
|
/* stylelint-disable-next-line no-descending-specificity */ /* stylelint ERROR */
|
|
280
292
|
input[type=range]::-ms-fill-lower {
|
|
281
293
|
background: #cccccc;
|
|
282
|
-
/* background: var(---
|
|
294
|
+
/* background: var(---decidables-slider-background-color); */
|
|
283
295
|
border: 0;
|
|
284
296
|
border-radius: 2px;
|
|
285
297
|
box-shadow: none;
|
|
@@ -288,7 +300,7 @@ const la=t=>t??J;customElements.define("decidables-slider",class extends oa{stat
|
|
|
288
300
|
/* stylelint-disable-next-line no-descending-specificity */ /* stylelint ERROR */
|
|
289
301
|
input[type=range]::-ms-fill-upper {
|
|
290
302
|
background: #cccccc;
|
|
291
|
-
/* background: var(---
|
|
303
|
+
/* background: var(---decidables-slider-background-color); */
|
|
292
304
|
border: 0;
|
|
293
305
|
border-radius: 2px;
|
|
294
306
|
box-shadow: none;
|
|
@@ -296,12 +308,12 @@ const la=t=>t??J;customElements.define("decidables-slider",class extends oa{stat
|
|
|
296
308
|
|
|
297
309
|
/* stylelint-disable-next-line no-descending-specificity */ /* stylelint ERROR */
|
|
298
310
|
input[type=range]:focus::-ms-fill-lower {
|
|
299
|
-
background: var(---
|
|
311
|
+
background: var(---decidables-slider-background-color);
|
|
300
312
|
}
|
|
301
313
|
|
|
302
314
|
/* stylelint-disable-next-line no-descending-specificity */ /* stylelint ERROR */
|
|
303
315
|
input[type=range]:focus::-ms-fill-upper {
|
|
304
|
-
background: var(---
|
|
316
|
+
background: var(---decidables-slider-background-color);
|
|
305
317
|
}
|
|
306
318
|
|
|
307
319
|
/* Thumb */
|
|
@@ -319,12 +331,12 @@ const la=t=>t??J;customElements.define("decidables-slider",class extends oa{stat
|
|
|
319
331
|
}
|
|
320
332
|
|
|
321
333
|
input[type=range]:disabled::-webkit-slider-thumb {
|
|
322
|
-
background: var(---
|
|
334
|
+
background: var(---decidables-slider-background-color);
|
|
323
335
|
box-shadow: none;
|
|
324
336
|
}
|
|
325
337
|
|
|
326
338
|
input[type=range]:enabled::-webkit-slider-thumb {
|
|
327
|
-
background: var(---
|
|
339
|
+
background: var(---decidables-slider-color);
|
|
328
340
|
box-shadow: var(---shadow-2-rotate);
|
|
329
341
|
}
|
|
330
342
|
|
|
@@ -355,13 +367,13 @@ const la=t=>t??J;customElements.define("decidables-slider",class extends oa{stat
|
|
|
355
367
|
|
|
356
368
|
/* stylelint-disable-next-line no-descending-specificity */ /* stylelint ERROR */
|
|
357
369
|
input[type=range]:disabled::-moz-range-thumb {
|
|
358
|
-
background: var(---
|
|
370
|
+
background: var(---decidables-slider-background-color);
|
|
359
371
|
box-shadow: none;
|
|
360
372
|
}
|
|
361
373
|
|
|
362
374
|
/* stylelint-disable-next-line no-descending-specificity */ /* stylelint ERROR */
|
|
363
375
|
input[type=range]:enabled::-moz-range-thumb {
|
|
364
|
-
background: var(---
|
|
376
|
+
background: var(---decidables-slider-color);
|
|
365
377
|
box-shadow: var(---shadow-2-rotate);
|
|
366
378
|
}
|
|
367
379
|
|
|
@@ -398,13 +410,13 @@ const la=t=>t??J;customElements.define("decidables-slider",class extends oa{stat
|
|
|
398
410
|
|
|
399
411
|
/* stylelint-disable-next-line no-descending-specificity */ /* stylelint ERROR */
|
|
400
412
|
input[type=range]:disabled::-ms-thumb {
|
|
401
|
-
background: var(---
|
|
413
|
+
background: var(---decidables-slider-background-color);
|
|
402
414
|
box-shadow: none;
|
|
403
415
|
}
|
|
404
416
|
|
|
405
417
|
/* stylelint-disable-next-line no-descending-specificity */ /* stylelint ERROR */
|
|
406
418
|
input[type=range]:enabled::-ms-thumb {
|
|
407
|
-
background: var(---
|
|
419
|
+
background: var(---decidables-slider-color);
|
|
408
420
|
box-shadow: var(---shadow-2-rotate);
|
|
409
421
|
}
|
|
410
422
|
|
|
@@ -426,15 +438,48 @@ const la=t=>t??J;customElements.define("decidables-slider",class extends oa{stat
|
|
|
426
438
|
:host(.keyboard) input[type=range]:enabled:focus:active::-ms-thumb {
|
|
427
439
|
box-shadow: var(---shadow-8-rotate);
|
|
428
440
|
}
|
|
429
|
-
|
|
441
|
+
|
|
442
|
+
datalist {
|
|
443
|
+
position: absolute;
|
|
444
|
+
left: 2rem;
|
|
445
|
+
z-index: -1;
|
|
446
|
+
display: flex;
|
|
447
|
+
|
|
448
|
+
flex-direction: column;
|
|
449
|
+
|
|
450
|
+
align-items: flex-start;
|
|
451
|
+
justify-content: space-between;
|
|
452
|
+
|
|
453
|
+
height: 4.75rem;
|
|
454
|
+
|
|
455
|
+
font-size: 0.75rem;
|
|
456
|
+
}
|
|
457
|
+
|
|
458
|
+
option {
|
|
459
|
+
padding: 0;
|
|
460
|
+
|
|
461
|
+
line-height: 0.8;
|
|
462
|
+
min-block-size: 0;
|
|
463
|
+
}
|
|
464
|
+
|
|
465
|
+
option::before {
|
|
466
|
+
content: "– ";
|
|
467
|
+
}
|
|
468
|
+
`]}render(){return Y`
|
|
430
469
|
<label for="slider">
|
|
431
470
|
<slot></slot>
|
|
432
471
|
</label>
|
|
433
472
|
<div class="range">
|
|
434
|
-
<input ?disabled=${this.disabled} type="range" id="slider" min=${
|
|
473
|
+
<input ?disabled=${this.disabled} type="range" id="slider" min=${Zr(this.rangeMin)} max=${Zr(this.rangeMax)} step=${Zr(this.rangeStep)} .value=${this.rangeValue} @change=${this.rangeChanged.bind(this)} @input=${this.rangeInputted.bind(this)}>
|
|
474
|
+
${this.scale?Y`
|
|
475
|
+
<datalist id="ticks">
|
|
476
|
+
<option value=${Zr(this.rangeMax)} label=${Zr(this.max)}></option>
|
|
477
|
+
<option value=${Zr(this.rangeMin)} label=${Zr(this.min)}></option>
|
|
478
|
+
</datalist>
|
|
479
|
+
`:Y``}
|
|
435
480
|
</div>
|
|
436
|
-
<decidables-spinner ?disabled=${this.disabled} min=${
|
|
437
|
-
`}});customElements.define("decidables-spinner",class extends
|
|
481
|
+
<decidables-spinner ?disabled=${this.disabled} min=${Zr(this.min)} max=${Zr(this.max)} step=${Zr(this.step)} .value=${this.value} @input=${this.spinnerInputted.bind(this)}></decidables-spinner>
|
|
482
|
+
`}});customElements.define("decidables-spinner",class extends Pr{static get properties(){return{disabled:{attribute:"disabled",type:Boolean,reflect:!0},max:{attribute:"max",type:Number,reflect:!0},min:{attribute:"min",type:Number,reflect:!0},step:{attribute:"step",type:Number,reflect:!0},value:{attribute:"value",type:Number,reflect:!0}}}constructor(){super(),this.disabled=!1,this.max=void 0,this.min=void 0,this.step=void 0,this.value=void 0}inputted(t){this.value=t.target.value}static get styles(){return[super.styles,n`
|
|
438
483
|
:host {
|
|
439
484
|
---decidables-spinner-font-size: var(--decidables-spinner-font-size, 1.125rem);
|
|
440
485
|
---decidables-spinner-input-width: var(--decidables-spinner-input-width, 4rem);
|
|
@@ -528,12 +573,12 @@ const la=t=>t??J;customElements.define("decidables-slider",class extends oa{stat
|
|
|
528
573
|
margin: 0;
|
|
529
574
|
-webkit-appearance: none; /* stylelint-disable-line property-no-vendor-prefix */
|
|
530
575
|
}
|
|
531
|
-
`]}render(){return
|
|
576
|
+
`]}render(){return Y`
|
|
532
577
|
<label>
|
|
533
578
|
<slot></slot>
|
|
534
|
-
<input ?disabled=${this.disabled} type="number" min=${
|
|
579
|
+
<input ?disabled=${this.disabled} type="number" min=${Zr(this.min)} max=${Zr(this.max)} step=${Zr(this.step)} .value=${this.value} @input=${this.inputted.bind(this)}>
|
|
535
580
|
</label>
|
|
536
|
-
`}});customElements.define("decidables-switch",class extends
|
|
581
|
+
`}});customElements.define("decidables-switch",class extends Pr{static get properties(){return{checked:{attribute:"checked",type:Boolean,reflect:!0},disabled:{attribute:"disabled",type:Boolean,reflect:!0}}}constructor(){super(),this.checked=!1,this.disabled=!1}changed(t){this.checked=t.target.checked,this.dispatchEvent(new CustomEvent("change",{detail:{checked:this.checked},bubbles:!0}))}static get styles(){return[super.styles,n`
|
|
537
582
|
:host {
|
|
538
583
|
display: flex;
|
|
539
584
|
|
|
@@ -653,7 +698,7 @@ const la=t=>t??J;customElements.define("decidables-slider",class extends oa{stat
|
|
|
653
698
|
box-shadow: var(---shadow-8);
|
|
654
699
|
}
|
|
655
700
|
/* stylelint-enable selector-max-compound-selectors */
|
|
656
|
-
`]}render(){return
|
|
701
|
+
`]}render(){return Y`
|
|
657
702
|
<input type="checkbox" id="switch" ?checked=${this.checked} ?disabled=${this.disabled} @change=${this.changed.bind(this)}>
|
|
658
703
|
<label for="switch">
|
|
659
704
|
<slot name="off-label"></slot>
|
|
@@ -661,7 +706,7 @@ const la=t=>t??J;customElements.define("decidables-slider",class extends oa{stat
|
|
|
661
706
|
<label for="switch">
|
|
662
707
|
<slot></slot>
|
|
663
708
|
</label>
|
|
664
|
-
`}});customElements.define("decidables-toggle",class extends
|
|
709
|
+
`}});customElements.define("decidables-toggle",class extends Pr{static get properties(){return{disabled:{attribute:"disabled",type:Boolean,reflect:!0}}}constructor(){super(),this.disabled=!1}static get styles(){return[super.styles,n`
|
|
665
710
|
fieldset {
|
|
666
711
|
display: flex;
|
|
667
712
|
|
|
@@ -678,12 +723,12 @@ const la=t=>t??J;customElements.define("decidables-slider",class extends oa{stat
|
|
|
678
723
|
legend {
|
|
679
724
|
text-align: center;
|
|
680
725
|
}
|
|
681
|
-
`]}render(){return
|
|
726
|
+
`]}render(){return Y`
|
|
682
727
|
<fieldset ?disabled=${this.disabled}>
|
|
683
728
|
<legend><slot name="label"></slot></legend>
|
|
684
729
|
<slot></slot>
|
|
685
730
|
</fieldset>
|
|
686
|
-
`}});function
|
|
731
|
+
`}});function Or(t){return class extends t{static get properties(){return{width:{attribute:!1,type:Number,reflect:!1},height:{attribute:!1,type:Number,reflect:!1},rem:{attribute:!1,type:Number,reflect:!1}}}constructor(){super(),this.width=NaN,this.height=NaN,this.rem=NaN}getDimensions(){this.width=parseFloat(this.getComputedStyleValue("width"),10),this.height=parseFloat(this.getComputedStyleValue("height"),10),this.rem=parseFloat(getComputedStyle(document.documentElement).getPropertyValue("font-size"),10)}connectedCallback(){super.connectedCallback(),this.resizeObserver=new ResizeObserver(this.getDimensions.bind(this)),this.resizeObserver.observe(this)}disconnectedCallback(){this.resizeObserver.unobserve(this),super.disconnectedCallback()}}}customElements.define("decidables-toggle-option",class extends Pr{static get properties(){return{checked:{attribute:"checked",type:Boolean,reflect:!0},disabled:{attribute:"disabled",type:Boolean,reflect:!0},name:{attribute:"name",type:String,reflect:!0},value:{attribute:"value",type:String,reflect:!0}}}constructor(){super(),this.checked=!1,this.disabled=!1,this.name=void 0,this.value=void 0}changed(t){this.checked=t.target.checked,this.dispatchEvent(new CustomEvent("change",{detail:{checked:this.checked,value:this.value},bubbles:!0}))}static get styles(){return[super.styles,n`
|
|
687
732
|
:host {
|
|
688
733
|
display: flex;
|
|
689
734
|
}
|
|
@@ -776,23 +821,23 @@ const la=t=>t??J;customElements.define("decidables-slider",class extends oa{stat
|
|
|
776
821
|
outline: none;
|
|
777
822
|
box-shadow: var(---shadow-8);
|
|
778
823
|
}
|
|
779
|
-
`]}render(){return
|
|
824
|
+
`]}render(){return Y`
|
|
780
825
|
<input type="radio" id="toggle-option" name=${this.name} value=${this.value} .checked=${this.checked} @change=${this.changed.bind(this)}>
|
|
781
826
|
<label for="toggle-option">
|
|
782
827
|
<slot></slot>
|
|
783
828
|
</label>
|
|
784
|
-
`}});class
|
|
829
|
+
`}});class jr extends Pr{static get properties(){return{interactive:{attribute:"interactive",type:Boolean,reflect:!0}}}constructor(){super(),this.interactive=!1}static get colors(){return{a:zr[0],z:zr[1],v:zr[4],t0:zr[7],s:zr[8],left:"#f032e6",right:"#10dbc9",correct:zr[2],error:zr[3],nr:"#cccccc"}}static get lights(){return Object.keys(jr.colors).reduce(((t,e)=>(t[e]=Xi(jr.colors[e],"#ffffff")(.5),t)),{})}static get darks(){return Object.keys(jr.colors).reduce(((t,e)=>(t[e]=Xi(jr.colors[e],"#000000")(.5),t)),{})}static get styles(){return[super.styles,n`
|
|
785
830
|
:host {
|
|
786
831
|
/* Declare base colors */
|
|
787
|
-
${a(Object.keys(
|
|
832
|
+
${a(Object.keys(jr.colors).map((t=>`---color-${t}: var(--color-${t}, ${this.colors[t]});`)).join("\n"))}
|
|
788
833
|
|
|
789
834
|
/* Declare light colors */
|
|
790
|
-
${a(Object.keys(
|
|
835
|
+
${a(Object.keys(jr.colors).map((t=>`---color-${t}-light: var(--color-${t}-light, ${this.lights[t]});`)).join("\n"))}
|
|
791
836
|
|
|
792
837
|
/* Declare dark colors */
|
|
793
|
-
${a(Object.keys(
|
|
838
|
+
${a(Object.keys(jr.colors).map((t=>`---color-${t}-dark: var(--color-${t}-dark, ${this.darks[t]});`)).join("\n"))}
|
|
794
839
|
}
|
|
795
|
-
`]}}class
|
|
840
|
+
`]}}class qr extends jr{static get properties(){return{trials:{attribute:"trials",type:Number,reflect:!0},resample:{attribute:"resample",type:Boolean,reflect:!0},duration:{attribute:"duration",type:Number,reflect:!0},coherence:{attribute:"coherence",type:Number,reflect:!0},color:{attribute:"color",type:String,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.resample=!1,this.duration=void 0,this.coherence=void 0,this.colors=["none","measure","outcome","all"],this.color=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("accumulable-control-trials",{detail:{trials:this.trials},bubbles:!0}))}doResample(){this.dispatchEvent(new CustomEvent("accumulable-control-resample",{detail:{},bubbles:!0}))}setDuration(t){this.duration=t.target.value,this.dispatchEvent(new CustomEvent("accumulable-control-duration",{detail:{duration:this.duration},bubbles:!0}))}setCoherence(t){this.coherence=t.target.value,this.dispatchEvent(new CustomEvent("accumulable-control-coherence",{detail:{coherence:this.coherence},bubbles:!0}))}chooseColor(t){this.color=t.target.value,this.dispatchEvent(new CustomEvent("accumulable-control-color",{detail:{color:this.color},bubbles:!0}))}doRun(){this.state="running",this.dispatchEvent(new CustomEvent("accumulable-control-run",{detail:{},bubbles:!0}))}doPause(){this.state="paused",this.dispatchEvent(new CustomEvent("accumulable-control-pause",{detail:{},bubbles:!0}))}doReset(){this.state="resetted",this.dispatchEvent(new CustomEvent("accumulable-control-reset",{detail:{},bubbles:!0}))}complete(){this.state="ended"}static get styles(){return[super.styles,n`
|
|
796
841
|
:host {
|
|
797
842
|
display: inline-block;
|
|
798
843
|
}
|
|
@@ -814,17 +859,17 @@ const la=t=>t??J;customElements.define("decidables-slider",class extends oa{stat
|
|
|
814
859
|
align-items: stretch;
|
|
815
860
|
justify-content: center;
|
|
816
861
|
}
|
|
817
|
-
`]}render(){return
|
|
862
|
+
`]}render(){return Y`
|
|
818
863
|
<div class="holder">
|
|
819
|
-
${this.trials?
|
|
820
|
-
${this.resample?
|
|
864
|
+
${null!=this.trials?Y`<decidables-slider class="trials" min="1" max="100" step="1" .value=${this.trials} @change=${this.setTrials.bind(this)} @input=${this.setTrials.bind(this)}>Trials</decidables-slider>`:Y``}
|
|
865
|
+
${this.resample?Y`
|
|
821
866
|
<div class="buttons">
|
|
822
|
-
${this.resample?
|
|
867
|
+
${this.resample?Y`<decidables-button name="resample" @click=${this.doResample.bind(this)}>Resample</decidables-button>`:Y``}
|
|
823
868
|
</div>
|
|
824
|
-
`:
|
|
825
|
-
${this.duration?
|
|
826
|
-
${this.coherence?
|
|
827
|
-
${
|
|
869
|
+
`:Y``}
|
|
870
|
+
${null!=this.duration?Y`<decidables-slider class="duration" min="10" max="2000" step="10" .value=${this.duration} @change=${this.setDuration.bind(this)} @input=${this.setDuration.bind(this)}>Duration</decidables-slider>`:Y``}
|
|
871
|
+
${null!=this.coherence?Y`<decidables-slider class="coherence" min="0" max="1" step=".01" .value=${this.coherence} @change=${this.setCoherence.bind(this)} @input=${this.setCoherence.bind(this)}>Coherence</decidables-slider>`:Y``}
|
|
872
|
+
${null!=this.color?Y`
|
|
828
873
|
<decidables-toggle class="color" @change=${this.chooseColor.bind(this)}>
|
|
829
874
|
<span slot="label">Emphasis</span>
|
|
830
875
|
<decidables-toggle-option name="toggle" value="none" ?checked=${"none"===this.color}>None</decidables-toggle-option>
|
|
@@ -832,15 +877,15 @@ const la=t=>t??J;customElements.define("decidables-slider",class extends oa{stat
|
|
|
832
877
|
<decidables-toggle-option name="toggle" value="outcome" ?checked=${"outcome"===this.color}>Outcome</decidables-toggle-option>
|
|
833
878
|
<decidables-toggle-option name="toggle" value="all" ?checked=${"all"===this.color}>All</decidables-toggle-option>
|
|
834
879
|
</decidables-toggle>
|
|
835
|
-
`:
|
|
836
|
-
${this.run||this.pause||this.reset?
|
|
880
|
+
`:Y``}
|
|
881
|
+
${this.run||this.pause||this.reset?Y`
|
|
837
882
|
<div class="buttons">
|
|
838
|
-
${this.run?
|
|
839
|
-
${this.pause?
|
|
840
|
-
${this.reset?
|
|
883
|
+
${this.run?Y`<decidables-button name="run" ?disabled=${"running"===this.state||"ended"===this.state} @click=${this.doRun.bind(this)}>Run</decidables-button>`:Y``}
|
|
884
|
+
${this.pause?Y`<decidables-button name="pause" ?disabled=${"running"!==this.state} @click=${this.doPause.bind(this)}>Pause</decidables-button>`:Y``}
|
|
885
|
+
${this.reset?Y`<decidables-button name="reset" ?disabled=${"resetted"===this.state} @click=${this.doReset.bind(this)}>Reset</decidables-button>`:Y``}
|
|
841
886
|
</div>
|
|
842
|
-
`:
|
|
843
|
-
</div>`}}customElements.define("accumulable-control",
|
|
887
|
+
`:Y``}
|
|
888
|
+
</div>`}}customElements.define("accumulable-control",qr);class ta{static s={DEFAULT:1};static a={DEFAULT:1.2,MIN:.01,MAX:2,STEP:.01,JUMP:.1};static z={DEFAULT:.55,MIN:.01,MAX:.99,STEP:.01,JUMP:.1};static v={DEFAULT:1.5,MIN:.01,MAX:5,STEP:.01,JUMP:.1};static t0={DEFAULT:150,MIN:0,MAX:500,STEP:1,JUMP:10};static trials2stats(t){const e={},i=t.reduce(((t,e)=>{switch(e.outcome){case"correct":t.correctCount+=1,t.correctRTSum+=e.rt;break;case"error":t.errorCount+=1,t.errorRTSum+=e.rt;break;case"nr":t.nrCount+=1}return t}),{correctCount:0,errorCount:0,nrCount:0,correctRTSum:0,errorRTSum:0});e.correctCount=i.correctCount,e.errorCount=i.errorCount,e.nrCount=i.nrCount,e.accuracy=i.correctCount/(i.correctCount+i.errorCount+i.nrCount),e.correctMeanRT=i.correctRTSum/i.correctCount,e.errorMeanRT=i.errorRTSum/i.errorCount,e.meanRT=(i.correctRTSum+i.errorRTSum)/(i.correctCount+i.errorCount);const s=t.reduce(((t,i)=>{switch(i.outcome){case"correct":t.ss+=(i.rt-e.meanRT)**2,t.correctSS+=(i.rt-e.correctMeanRT)**2;break;case"error":t.ss+=(i.rt-e.meanRT)**2,t.errorSS+=(i.rt-e.errorMeanRT)**2}return t}),{ss:0,correctSS:0,errorSS:0});return e.correctSDRT=e.correctCount>1?Math.sqrt(s.correctSS/(e.correctCount-1)):NaN,e.errorSDRT=e.errorCount>1?Math.sqrt(s.errorSS/(e.errorCount-1)):NaN,e.sdRT=e.correctCount+e.errorCount>1?Math.sqrt(s.ss/(e.correctCount+e.errorCount-1)):NaN,e}static azv2pE(t,e,i,s=ta.s.DEFAULT){const r=t*e,a=Math.exp(-2*i*t/s**2);return(a-Math.exp(-2*i*r/s**2))/(a-1)}static azv2pC(t,e,i,s=ta.s.DEFAULT){return ta.azv2pE(t,1-e,-i,s)}static azvt02m(t,e,i,s,r=ta.s.DEFAULT){const a=t*e,n=Math.exp(-2*i*t/r**2)-1;return s+1e3*(-a/i+t/i*((Math.exp(-2*i*a/r**2)-1)/n))}static azv2sd(t,e,i,s=ta.s.DEFAULT){const r=t*e,a=Math.exp(-2*i*t/s**2)-1,n=Math.exp(-2*i*r/s**2)-1,o=(-i*t**2*(n+4)*n/a**2+((-3*i*t**2+4*i*r*t+s**2*t)*n+4*i*r*t)/a-s**2*r)/i**3;return 1e3*Math.sqrt(o)}static azvt02mE(t,e,i,s,r=ta.s.DEFAULT){function a(t,e){return Math.exp(2*i*e/r**2)-Math.exp(2*i*t/r**2)}const n=t*e;return s+1e3*((n*(a(n-t,t)+a(0,n))+2*t*a(n,0))/(i*a(n,t)*a(-t,0)))}static azv2sdE(t,e,i,s=ta.s.DEFAULT){function r(t,e){return Math.exp(2*i*e/s**2)-Math.exp(2*i*t/s**2)}const a=t*e,n=-2*t*r(0,a)*(2*i*t*r(a,2*t)+s**2*r(0,t)*r(a,t))*Math.exp(2*i*t/s**2)/(i**3*r(0,t)**2*r(a,t)**2)+(4*i*a*(2*t-a)*Math.exp(2*i*(a+t)/s**2)+a*s**2*r(2*a,2*t))/(i**3*r(a,t)**2);return 1e3*Math.sqrt(n)}static azvt02mC(t,e,i,s,r=ta.s.DEFAULT){return ta.azvt02mE(t,1-e,-i,s,r)}static azv2sdC(t,e,i,s=ta.s.DEFAULT){return ta.azv2sdE(t,1-e,-i,s)}static tazv2gE(t,e,i,s,r=ta.s.DEFAULT){if(!t)return 0;const a=e*i,n=Math.PI*r**2/e**2*Math.exp(-a*s/r**2);let o=0,l=0,c=0;do{o+=1,l=o*Math.sin(Math.PI*a*o/e)*Math.exp(-.5*(s**2/r**2+Math.PI**2*o**2*r**2/e**2)*t),c+=l}while(o<200);return n*c}static tazv2gC(t,e,i,s,r=ta.s.DEFAULT){return ta.tazv2gE(t,e,1-i,-s,r)}static data2ez({accuracy:t,sdRT:e,meanRT:i,s:s}){function r(t){return Math.log(t/(1-t))}const a=(e/1e3)**2,n=i/1e3,o=s**2,l=r(t),c=l*(l*t**2-l*t+t-.5)/a,d=function(t){return t>0?1:0===t?0:-1}(t-.5)*s*c**(1/4),u=o*r(t)/d,h=-d*u/o,g=u/(2*d)*(1-Math.exp(h))/(1+Math.exp(h));return{v:d,a:u,t0:1e3*(n?n-g:null),s:s}}static data2ez2(){throw new Error("data2ez2 is not implemented!")}}class ea extends jr{static get properties(){return{feedback:{attribute:"feedback",type:Boolean,reflect:!0},trial:{attribute:"trial",type:Boolean,reflect:!0},payoff:{attribute:"payoff",type:String,reflect:!0},correctPayoff:{attribute:"correct-payoff",type:Number,reflect:!0},errorPayoff:{attribute:"error-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.feedback=!1,this.trial=!1,this.payoffs=["none","trial","total"],this.payoff="none",this.correctPayoff=0,this.errorPayoff=0,this.nrPayoff=0,this.states=["off","waiting","feedback"],this.state="off",this.trialCount=0,this.trialTotal=0,this.signals=["left","right"],this.signal=void 0,this.responses=["left","right"],this.response=void 0,this.outcomes=["correct","error","nr"],this.outcome=void 0,this.startTime=void 0,this.rt=void 0,this.data={},this.trials=[],this.alignState()}get trialPayoff(){switch(this.outcome){case"correct":return this.correctPayoff;case"error":return this.errorPayoff;case"nr":return this.nrPayoff;default:return}}get totalPayoff(){return this.data.correctCount*this.correctPayoff+this.data.errorCount*this.errorPayoff+this.data.nrCount*this.nrPayoff}alignState(){this.data=ta.trials2stats(this.trials)}start(t,e){this.startTime=Date.now(),this.trialCount=e,this.state="waiting",this.signal=t,this.response=void 0,this.outcome=void 0,this.rt=void 0}stop(){this.state="feedback",void 0===this.response&&(this.outcome="nr",this.rt=void 0,this.trials.push({trial:this.trialCount,rt:this.rt,signal:this.signal,response:this.response,outcome:this.outcome,payoff:this.trialPayoff}),this.alignState())}left(){this.responded("left")}right(){this.responded("right")}responded(t){this.rt=Date.now()-this.startTime,this.state="feedback",this.response=t,this.signal===this.response?this.outcome="correct":this.signal!==this.response&&(this.outcome="error"),this.trials.push({trial:this.trialCount,rt:this.rt,signal:this.signal,response:this.response,outcome:this.outcome,payoff:this.trialPayoff}),this.alignState(),this.dispatchEvent(new CustomEvent("accumulable-response",{detail:{trial:this.trialCount,rt:this.rt,signal:this.signal,response:this.response,outcome:this.outcome,payoff:this.trialPayoff,data:this.data,totalPayoff:this.totalPayoff},bubbles:!0}))}reset(){this.state="off",this.trialCount=0,this.rt=void 0,this.signal=void 0,this.response=void 0,this.outcome=void 0,this.trials=[],this.alignState()}keydown(t){"waiting"===this.state&&("ArrowLeft"===t.key?(this.responded("left"),t.preventDefault()):"ArrowRight"===t.key&&(this.responded("right"),t.preventDefault()))}connectedCallback(){super.connectedCallback(),window.addEventListener("keydown",this.keydown.bind(this))}disconnectedCallback(){window.removeEventListener("keydown",this.keydown.bind(this)),super.disconnectedCallback()}static get styles(){return[super.styles,n`
|
|
844
889
|
:host {
|
|
845
890
|
display: inline-block;
|
|
846
891
|
}
|
|
@@ -948,29 +993,29 @@ const la=t=>t??J;customElements.define("decidables-slider",class extends oa{stat
|
|
|
948
993
|
.total .label {
|
|
949
994
|
font-weight: 600;
|
|
950
995
|
}
|
|
951
|
-
`]}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));return
|
|
996
|
+
`]}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));return Y`
|
|
952
997
|
<div class="holder">
|
|
953
998
|
<div class="responses">
|
|
954
999
|
<decidables-button name="left" class=${"response "+("feedback"===this.state&&"left"===this.response?"selected":"waiting"===this.state?"waiting":"")} ?disabled=${"waiting"!==this.state||!0!==this.interactive} @click=${this.left.bind(this)}>Left</decidables-button>
|
|
955
1000
|
<decidables-button name="right" class=${"response "+("feedback"===this.state&&"right"===this.response?"selected":"waiting"===this.state?"waiting":"")} ?disabled=${"waiting"!==this.state||!0!==this.interactive} @click=${this.right.bind(this)}>Right</decidables-button>
|
|
956
1001
|
</div>
|
|
957
|
-
${this.trial||this.feedback||"total"===this.payoff?
|
|
1002
|
+
${this.trial||this.feedback||"total"===this.payoff?Y`
|
|
958
1003
|
<div class="feedbacks">
|
|
959
|
-
${this.trial?
|
|
1004
|
+
${this.trial?Y`
|
|
960
1005
|
<div class="trial">
|
|
961
1006
|
<span class="label">Trial: </span><span class="count">${this.trialCount}</span><span class="of"> of </span><span class="total">${this.trialTotal}</span>
|
|
962
|
-
</div>`:
|
|
963
|
-
${this.feedback?
|
|
1007
|
+
</div>`:Y``}
|
|
1008
|
+
${this.feedback?Y`
|
|
964
1009
|
<div class=${`feedback ${"feedback"===this.state&&this.feedback?this.outcome:""}`}>
|
|
965
|
-
${"feedback"===this.state&&this.feedback?"correct"===this.outcome?
|
|
966
|
-
${"feedback"!==this.state||"trial"!==this.payoff&&"total"!==this.payoff?
|
|
967
|
-
</div>`:
|
|
968
|
-
${"total"===this.payoff?
|
|
1010
|
+
${"feedback"===this.state&&this.feedback?"correct"===this.outcome?Y`<span class="outcome">Correct</span>`:"error"===this.outcome?Y`<span class="outcome">Error</span>`:Y`<span class="outcome">No<br>Response</span>`:""}
|
|
1011
|
+
${"feedback"!==this.state||"trial"!==this.payoff&&"total"!==this.payoff?Y``:Y`<span class="payoff">${e(this.trialPayoff)}</span>`}
|
|
1012
|
+
</div>`:Y``}
|
|
1013
|
+
${"total"===this.payoff?Y`
|
|
969
1014
|
<div class="total">
|
|
970
1015
|
<span class="label">Total: </span><span class="value">${e(this.totalPayoff)}</span>
|
|
971
|
-
</div>`:
|
|
972
|
-
</div>`:
|
|
973
|
-
</div>`}}customElements.define("accumulable-response",
|
|
1016
|
+
</div>`:Y``}
|
|
1017
|
+
</div>`:Y``}
|
|
1018
|
+
</div>`}}customElements.define("accumulable-response",ea);class ia extends jr{static get properties(){return{numeric:{attribute:"numeric",type:Boolean,reflect:!0},summary:{attribute:"summary",type:Boolean,reflect:!0},color:{attribute:"color",type:String,reflect:!0},correctCount:{attribute:"correct-count",type:Number,reflect:!0},errorCount:{attribute:"error-count",type:Number,reflect:!0},nrCount:{attribute:"nr-count",type:Number,reflect:!0},accuracy:{attribute:"accuracy",type:Number,reflect:!0},correctMeanRT:{attribute:"correct-mean-rt",type:Number,reflect:!0},errorMeanRT:{attribute:"error-mean-rt",type:Number,reflect:!0},meanRT:{attribute:"mean-rt",type:Number,reflect:!0},correctSDRT:{attribute:"correct-sd-rt",type:Number,reflect:!0},errorSDRT:{attribute:"error-sd-rt",type:Number,reflect:!0},sdRT:{attribute:"sd-rt",type:Number,reflect:!0},payoff:{attribute:"payoff",type:Boolean,reflect:!0},correctPayoff:{attribute:"correct-payoff",type:Number,reflect:!0},errorPayoff:{attribute:"error-payoff",type:Number,reflect:!0},nrPayoff:{attribute:"no-response-payoff",type:Number,reflect:!0}}}constructor(){super(),this.numeric=!1,this.summary=!1,this.colors=["none","measure","outcome","all"],this.color="all",this.payoff=!1,this.correctPayoff=void 0,this.errorPayoff=void 0,this.nrPayoff=void 0,this.correctCount=NaN,this.errorCount=NaN,this.nrCount=NaN,this.accuracy=NaN,this.correctMeanRT=NaN,this.errorMeanRT=NaN,this.meanRT=NaN,this.correctSDRT=NaN,this.errorSDRT=NaN,this.sdRT=NaN}sendEvent(){this.dispatchEvent(new CustomEvent("accumulable-table-change",{detail:{correctCount:this.correctCount,errorCount:this.errorCount,nrCount:this.nrCount,accuracy:this.accuracy,correctMeanRT:this.correctMeanRT,errorMeanRT:this.errorMeanRT,meanRT:this.meanRT,correctSDRT:this.correctSDRT,errorSDRT:this.errorSDRT,sdRT:this.sdRT},bubbles:!0}))}correctCountInput(t){this.correctCount=parseInt(t.target.value,10),this.sendEvent()}errorCountInput(t){this.errorCount=parseInt(t.target.value,10),this.sendEvent()}accuracyInput(t){this.accuracy=parseFloat(t.target.value),this.sendEvent()}correctMeanRTInput(t){this.correctMeanRT=parseFloat(t.target.value),this.sendEvent()}errorMeanRTInput(t){this.errorMeanRT=parseFloat(t.target.value),this.sendEvent()}meanRTInput(t){this.meanRT=parseFloat(t.target.value),this.sendEvent()}correctSDRTInput(t){this.correctSDRT=parseFloat(t.target.value),this.sendEvent()}errorSDRTInput(t){this.errorSDRT=parseFloat(t.target.value),this.sendEvent()}sdRTInput(t){this.sdRT=parseFloat(t.target.value),this.sendEvent()}static get styles(){return[super.styles,n`
|
|
974
1019
|
:host {
|
|
975
1020
|
display: inline-block;
|
|
976
1021
|
}
|
|
@@ -1119,47 +1164,47 @@ const la=t=>t??J;customElements.define("decidables-slider",class extends oa{stat
|
|
|
1119
1164
|
:host([color="none"]) .td-summary {
|
|
1120
1165
|
background: var(---color-element-background);
|
|
1121
1166
|
}
|
|
1122
|
-
`]}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 i,s,r,a,n,o,l,c,d;return this.numeric?(i=
|
|
1167
|
+
`]}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 i,s,r,a,n,o,l,c,d;return this.numeric?(i=Y`
|
|
1123
1168
|
<decidables-spinner ?disabled=${!this.interactive} min="0" .value="${+this.correctCount}" @input=${this.correctCountInput.bind(this)}>
|
|
1124
1169
|
<span>Correct Count</span>
|
|
1125
|
-
${this.payoff?
|
|
1170
|
+
${this.payoff?Y`<span class="payoff">${e(this.correctPayoff)}</span>`:Y``}
|
|
1126
1171
|
</decidables-spinner>
|
|
1127
|
-
`,s=
|
|
1172
|
+
`,s=Y`
|
|
1128
1173
|
<decidables-spinner ?disabled=${!this.interactive} min="0" .value="${+this.errorCount}" @input=${this.errorCountInput.bind(this)}>
|
|
1129
1174
|
<span>Error Count</span>
|
|
1130
|
-
${this.payoff?
|
|
1175
|
+
${this.payoff?Y`<span class="payoff">${e(this.errorPayoff)}</span>`:Y``}
|
|
1131
1176
|
</decidables-spinner>
|
|
1132
|
-
`,r=
|
|
1177
|
+
`,r=Y`
|
|
1133
1178
|
<decidables-spinner ?disabled=${!this.interactive} min="0" max="1" step=".01" .value="${+this.accuracy.toFixed(2)}" @input=${this.accuracyInput.bind(this)}>
|
|
1134
1179
|
<span>Accuracy</span>
|
|
1135
1180
|
</decidables-spinner>
|
|
1136
|
-
`,a=
|
|
1181
|
+
`,a=Y`
|
|
1137
1182
|
<decidables-spinner ?disabled=${!this.interactive} min="0" .value="${+this.correctMeanRT.toFixed(0)}" @input=${this.correctMeanRTInput.bind(this)}>
|
|
1138
1183
|
<span>Correct Mean RT</span>
|
|
1139
1184
|
</decidables-spinner>
|
|
1140
|
-
`,n=
|
|
1185
|
+
`,n=Y`
|
|
1141
1186
|
<decidables-spinner ?disabled=${!this.interactive} min="0" .value="${+this.errorMeanRT.toFixed(0)}" @input=${this.errorMeanRTInput.bind(this)}>
|
|
1142
1187
|
<span>Error Mean RT</span>
|
|
1143
1188
|
</decidables-spinner>
|
|
1144
|
-
`,o=
|
|
1189
|
+
`,o=Y`
|
|
1145
1190
|
<decidables-spinner ?disabled=${!this.interactive} min="0" .value="${+this.meanRT.toFixed(0)}" @input=${this.meanRTInput.bind(this)}>
|
|
1146
1191
|
<span>Mean RT</span>
|
|
1147
1192
|
</decidables-spinner>
|
|
1148
|
-
`,l=
|
|
1193
|
+
`,l=Y`
|
|
1149
1194
|
<decidables-spinner ?disabled=${!this.interactive} min="0" .value="${+this.correctSDRT.toFixed(0)}" @input=${this.correctSDRTInput.bind(this)}>
|
|
1150
1195
|
<span>Correct SD RT</span>
|
|
1151
1196
|
</decidables-spinner>
|
|
1152
|
-
`,c=
|
|
1197
|
+
`,c=Y`
|
|
1153
1198
|
<decidables-spinner ?disabled=${!this.interactive} min="0" .value="${+this.errorSDRT.toFixed(0)}" @input=${this.errorSDRTInput.bind(this)}>
|
|
1154
1199
|
<span>Error SD RT</span>
|
|
1155
1200
|
</decidables-spinner>
|
|
1156
|
-
`,d=
|
|
1201
|
+
`,d=Y`
|
|
1157
1202
|
<decidables-spinner ?disabled=${!this.interactive} min="0" .value="${+this.sdRT.toFixed(0)}" @input=${this.sdRTInput.bind(this)}>
|
|
1158
1203
|
<span>SD RT</span>
|
|
1159
1204
|
</decidables-spinner>
|
|
1160
|
-
`):(i=
|
|
1161
|
-
${this.payoff?
|
|
1162
|
-
${this.payoff?
|
|
1205
|
+
`):(i=Y`<span>Correct Count</span>
|
|
1206
|
+
${this.payoff?Y`<span class="payoff">${e(this.correctPayoff)}</span>`:Y``}`,s=Y`<span>Error Count</span>
|
|
1207
|
+
${this.payoff?Y`<span class="payoff">${e(this.errorPayoff)}</span>`:Y``}`,r=Y`<span>Accuracy</span>`,a=Y`<span>Correct Mean RT</span>`,n=Y`<span>Error Mean RT</span>`,o=Y`<span>Mean RT</span>`,l=Y`<span>Correct SD RT</span>`,c=Y`<span>Error SD RT</span>`,d=Y`<span>SD RT</span>`),Y`
|
|
1163
1208
|
<table class=${this.numeric?"numeric":""}>
|
|
1164
1209
|
<thead>
|
|
1165
1210
|
<tr>
|
|
@@ -1175,10 +1220,10 @@ const la=t=>t??J;customElements.define("decidables-slider",class extends oa{stat
|
|
|
1175
1220
|
<th class="th th-sub" scope="col">
|
|
1176
1221
|
Error
|
|
1177
1222
|
</th>
|
|
1178
|
-
${this.summary?
|
|
1223
|
+
${this.summary?Y`
|
|
1179
1224
|
<th class="th th-main" scope="col">
|
|
1180
1225
|
Overall
|
|
1181
|
-
</th>`:
|
|
1226
|
+
</th>`:Y``}
|
|
1182
1227
|
</tr>
|
|
1183
1228
|
</thead>
|
|
1184
1229
|
<tbody>
|
|
@@ -1192,10 +1237,10 @@ const la=t=>t??J;customElements.define("decidables-slider",class extends oa{stat
|
|
|
1192
1237
|
<td class="td td-data error count">
|
|
1193
1238
|
${s}
|
|
1194
1239
|
</td>
|
|
1195
|
-
${this.summary?
|
|
1240
|
+
${this.summary?Y`
|
|
1196
1241
|
<td class="td td-summary overall proportion-correct">
|
|
1197
1242
|
${r}
|
|
1198
|
-
</td>`:
|
|
1243
|
+
</td>`:Y``}
|
|
1199
1244
|
</tr>
|
|
1200
1245
|
<tr>
|
|
1201
1246
|
<th class="th th-sub th-left" scope="row">
|
|
@@ -1207,10 +1252,10 @@ const la=t=>t??J;customElements.define("decidables-slider",class extends oa{stat
|
|
|
1207
1252
|
<td class="td td-data error mean-rt">
|
|
1208
1253
|
${n}
|
|
1209
1254
|
</td>
|
|
1210
|
-
${this.summary?
|
|
1255
|
+
${this.summary?Y`
|
|
1211
1256
|
<td class="td td-summary overall mean-rt">
|
|
1212
1257
|
${o}
|
|
1213
|
-
</td>`:
|
|
1258
|
+
</td>`:Y``}
|
|
1214
1259
|
</tr>
|
|
1215
1260
|
<tr>
|
|
1216
1261
|
<th class="th th-sub th-left" scope="row">
|
|
@@ -1222,17 +1267,17 @@ const la=t=>t??J;customElements.define("decidables-slider",class extends oa{stat
|
|
|
1222
1267
|
<td class="td td-data error sd-rt">
|
|
1223
1268
|
${c}
|
|
1224
1269
|
</td>
|
|
1225
|
-
${this.summary?
|
|
1270
|
+
${this.summary?Y`
|
|
1226
1271
|
<td class="td td-summary overall sd-rt">
|
|
1227
1272
|
${d}
|
|
1228
|
-
</td>`:
|
|
1273
|
+
</td>`:Y``}
|
|
1229
1274
|
</tr>
|
|
1230
1275
|
</tbody>
|
|
1231
|
-
</table>`}}function ma(t,e,i){var s=e,r=function(t,e){return atob(t)}(t),a=r.indexOf("\n",10)+1,n=r.substring(a)+"//# sourceMappingURL="+s,o=new Blob([n],{type:"application/javascript"});return URL.createObjectURL(o)}function ba(t,e,i){var s;return function(i){return s=s||ma(t,e),new Worker(s,i)}}customElements.define("accumulable-table",pa);var ya=ba("Lyogcm9sbHVwLXBsdWdpbi13ZWItd29ya2VyLWxvYWRlciAqLwooZnVuY3Rpb24gKCkgewogICd1c2Ugc3RyaWN0JzsKCiAgLyoKICAgIERETU1hdGggU3RhdGljIENsYXNzIC0gTm90IGludGVuZGVkIGZvciBpbnN0YW50aWF0aW9uIQoKICAgIE1vZGVsIHBhcmFtZXRlcnM6CiAgICAgIGEgPSBib3VuZGFyeSBzZXBhcmF0aW9uCiAgICAgIHogPSBzdGFydGluZyBwb2ludCBhcyBhIHByb3BvcnRpb24gb2YgYQogICAgICB2ID0gZHJpZnQgcmF0ZSAocGVyIHNlY29uZCkKICAgICAgdDAgPSBub24tZGVjaXNpb24gdGltZSAoaW4gbWlsbGlzZWNvbmRzKQogICAgICBzID0gd2l0aGluLXRyaWFsIHZhcmlhYmlsaXR5IGluIGRyaWZ0IHJhdGUgKHNeMiA9IGluZmluaXRlc2ltYWwgdmFyaWFuY2UpCgogICAgICB6UHJpbWUgPSBzdGFydGluZyBwb2ludCBvbiBhIDAtdG8tYSBzY2FsZSAodHlwaWNhbGx5IHVzZWQgaW4gcHVibGlzaGVkIGVxdWF0aW9ucykKCiAgICBCZWhhdmlvcmFsIHZhcmlhYmxlczoKICAgICAgcEUgPSBwcm9wb3J0aW9uIG9mIGVycm9yIHRyaWFscwogICAgICBwQyA9IHByb3BvcnRpb24gb2YgY29ycmVjdCB0cmlhbHMKICAgICAgbSA9IG1lYW4gb2Ygb3ZlcmFsbCBSVHMgKGluIG1pbGxpc2Vjb25kcykKICAgICAgbUUgPSBtZWFuIG9mIGVycm9yIFJUcyAoaW4gbWlsbGlzZWNvbmRzKQogICAgICBtQyA9IG1lYW4gY29ycmVjdCBSVHMgKGluIG1pbGxpc2Vjb25kcykKICAgICAgc2QgPSBzdGFuZGFyZCBkZXZpYXRpb24gb2Ygb3ZlcmFsbCBSVHMgKGluIG1pbGxpc2Vjb25kcykKICAgICAgc2RFID0gc3RhbmRhcmQgZGV2aWF0aW9uIG9mIGVycm9yIFJUcyAoaW4gbWlsbGlzZWNvbmRzKQogICAgICBzZEMgPSBzdGFuZGFyZCBkZXZpYXRpb24gb2YgY29ycmVjdCBSVHMgKGluIG1pbGxpc2Vjb25kcykKCiAgICBFcXVhdGlvbnM6CiAgICAgIFByb2JhYmlsaXR5IG9mIGNvcnJlY3QgYW5kIGVycm9yIHJlc3BvbnNlcyAoQWxleGFuZHJvd2ljeiwgMjAyMCkKICAgICAgTWVhbiBvZiBvdmVyYWxsLCBlcnJvciwgYW5kIGNvcnJlY3QgUlRzIChHcmFzbWFuIGV0IGFsLiwgMjAwOSkKICAgICAgU3RhbmRhcmQgZGV2aWF0aW9uIG9mIG92ZXJhbGwsIGVycm9yLCBhbmQgY29ycmVjdCBSVHMgKEdyYXNtYW4gZXQgYWwuLCAyMDA5KQogICAgICBEZW5zaXR5IG9mIGVycm9yIGFuZCBjb3JyZWN0IFJUIGRpc3RyaWJ1dGlvbnMgKEFsZXhhbmRyb3dpY3osIDIwMjApCiAgICAgIEVaLWRpZmZ1c2lvbiBtb2RlbCAoV2FnZW5tYWtlcnMgZXQgYWwuLCAyMDA3KQogICovCiAgY2xhc3MgRERNTWF0aCB7CiAgICBzdGF0aWMgcyA9IDE7CgogICAgLy8gQ2FsY3VsYXRlIGEgYnVuY2ggb2Ygc3RhdGlzdGljcyBmb3IgYW4gYXJyYXkgb2YgdHJpYWxzCiAgICBzdGF0aWMgdHJpYWxzMnN0YXRzKHRyaWFscykgewogICAgICBjb25zdCBzdGF0cyA9IHt9OwoKICAgICAgLy8gRmlyc3Qtb3JkZXIgc3VtcwogICAgICBjb25zdCBzdW1zID0gdHJpYWxzLnJlZHVjZSgoYWNjdW11bGF0b3IsIHRyaWFsKSA9PiB7CiAgICAgICAgc3dpdGNoICh0cmlhbC5vdXRjb21lKSB7CiAgICAgICAgICBjYXNlICdjb3JyZWN0JzoKICAgICAgICAgICAgYWNjdW11bGF0b3IuY29ycmVjdENvdW50ICs9IDE7CiAgICAgICAgICAgIGFjY3VtdWxhdG9yLmNvcnJlY3RSVFN1bSArPSB0cmlhbC5ydDsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICBjYXNlICdlcnJvcic6CiAgICAgICAgICAgIGFjY3VtdWxhdG9yLmVycm9yQ291bnQgKz0gMTsKICAgICAgICAgICAgYWNjdW11bGF0b3IuZXJyb3JSVFN1bSArPSB0cmlhbC5ydDsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICBjYXNlICducic6CiAgICAgICAgICAgIGFjY3VtdWxhdG9yLm5yQ291bnQgKz0gMTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAvLyBOby1vcAogICAgICAgIH0KICAgICAgICByZXR1cm4gYWNjdW11bGF0b3I7CiAgICAgIH0sIHsKICAgICAgICBjb3JyZWN0Q291bnQ6IDAsCiAgICAgICAgZXJyb3JDb3VudDogMCwKICAgICAgICBuckNvdW50OiAwLAogICAgICAgIGNvcnJlY3RSVFN1bTogMCwKICAgICAgICBlcnJvclJUU3VtOiAwCiAgICAgIH0pOwoKICAgICAgLy8gRmlyc3Qtb3JkZXIgc3RhdHMKICAgICAgc3RhdHMuY29ycmVjdENvdW50ID0gc3Vtcy5jb3JyZWN0Q291bnQ7CiAgICAgIHN0YXRzLmVycm9yQ291bnQgPSBzdW1zLmVycm9yQ291bnQ7CiAgICAgIHN0YXRzLm5yQ291bnQgPSBzdW1zLm5yQ291bnQ7CiAgICAgIHN0YXRzLmFjY3VyYWN5ID0gc3Vtcy5jb3JyZWN0Q291bnQgLyAoc3Vtcy5jb3JyZWN0Q291bnQgKyBzdW1zLmVycm9yQ291bnQgKyBzdW1zLm5yQ291bnQpOwogICAgICBzdGF0cy5jb3JyZWN0TWVhblJUID0gc3Vtcy5jb3JyZWN0UlRTdW0gLyBzdW1zLmNvcnJlY3RDb3VudDsKICAgICAgc3RhdHMuZXJyb3JNZWFuUlQgPSBzdW1zLmVycm9yUlRTdW0gLyBzdW1zLmVycm9yQ291bnQ7CiAgICAgIHN0YXRzLm1lYW5SVCA9IChzdW1zLmNvcnJlY3RSVFN1bSArIHN1bXMuZXJyb3JSVFN1bSkgLyAoc3Vtcy5jb3JyZWN0Q291bnQgKyBzdW1zLmVycm9yQ291bnQpOwoKICAgICAgLy8gU2Vjb25kLW9yZGVyIHN1bXMKICAgICAgY29uc3Qgc3VtczIgPSB0cmlhbHMucmVkdWNlKChhY2N1bXVsYXRvciwgdHJpYWwpID0+IHsKICAgICAgICBzd2l0Y2ggKHRyaWFsLm91dGNvbWUpIHsKICAgICAgICAgIGNhc2UgJ2NvcnJlY3QnOgogICAgICAgICAgICBhY2N1bXVsYXRvci5zcyArPSAodHJpYWwucnQgLSBzdGF0cy5tZWFuUlQpICoqIDI7CiAgICAgICAgICAgIGFjY3VtdWxhdG9yLmNvcnJlY3RTUyArPSAodHJpYWwucnQgLSBzdGF0cy5jb3JyZWN0TWVhblJUKSAqKiAyOwogICAgICAgICAgICBicmVhazsKICAgICAgICAgIGNhc2UgJ2Vycm9yJzoKICAgICAgICAgICAgYWNjdW11bGF0b3Iuc3MgKz0gKHRyaWFsLnJ0IC0gc3RhdHMubWVhblJUKSAqKiAyOwogICAgICAgICAgICBhY2N1bXVsYXRvci5lcnJvclNTICs9ICh0cmlhbC5ydCAtIHN0YXRzLmVycm9yTWVhblJUKSAqKiAyOwogICAgICAgICAgICBicmVhazsKICAgICAgICAgIC8vIE5vLW9wCiAgICAgICAgfQogICAgICAgIHJldHVybiBhY2N1bXVsYXRvcjsKICAgICAgfSwgewogICAgICAgIHNzOiAwLAogICAgICAgIGNvcnJlY3RTUzogMCwKICAgICAgICBlcnJvclNTOiAwCiAgICAgIH0pOwoKICAgICAgLy8gU2Vjb25kLW9yZGVyIHN0YXRzCiAgICAgIHN0YXRzLmNvcnJlY3RTRFJUID0gc3RhdHMuY29ycmVjdENvdW50ID4gMSA/IE1hdGguc3FydChzdW1zMi5jb3JyZWN0U1MgLyAoc3RhdHMuY29ycmVjdENvdW50IC0gMSkpIDogTmFOOwogICAgICBzdGF0cy5lcnJvclNEUlQgPSBzdGF0cy5lcnJvckNvdW50ID4gMSA/IE1hdGguc3FydChzdW1zMi5lcnJvclNTIC8gKHN0YXRzLmVycm9yQ291bnQgLSAxKSkgOiBOYU47CiAgICAgIHN0YXRzLnNkUlQgPSBzdGF0cy5jb3JyZWN0Q291bnQgKyBzdGF0cy5lcnJvckNvdW50ID4gMSA/IE1hdGguc3FydChzdW1zMi5zcyAvIChzdGF0cy5jb3JyZWN0Q291bnQgKyBzdGF0cy5lcnJvckNvdW50IC0gMSkpIDogTmFOOwogICAgICByZXR1cm4gc3RhdHM7CiAgICB9CgogICAgLy8gUHJvYmFiaWxpdHkgb2YgYW4gRXJyb3IgUmVzcG9uc2UKICAgIHN0YXRpYyBhenYycEUoYSwgeiwgdiwgcyA9IERETU1hdGgucykgewogICAgICBjb25zdCB6UHJpbWUgPSBhICogejsKICAgICAgY29uc3QgQSA9IE1hdGguZXhwKC0yICogdiAqIGEgLyBzICoqIDIpOwogICAgICBjb25zdCBaID0gTWF0aC5leHAoLTIgKiB2ICogelByaW1lIC8gcyAqKiAyKTsKICAgICAgcmV0dXJuIChBIC0gWikgLyAoQSAtIDEpOwogICAgfQoKICAgIC8vIFByb2JhYmlsaXR5IG9mIGEgQ29ycmVjdCBSZXNwb25zZQogICAgc3RhdGljIGF6djJwQyhhLCB6LCB2LCBzID0gRERNTWF0aC5zKSB7CiAgICAgIHJldHVybiBERE1NYXRoLmF6djJwRShhLCAxIC0geiwgLXYsIHMpOwogICAgfQoKICAgIC8vIE1lYW4gT3ZlcmFsbCBSVAogICAgLy8gRXF1YXRpb24gNSAoR3Jhc21hbiBldCBhbC4sIDIwMDkpCiAgICBzdGF0aWMgYXp2dDAybShhLCB6LCB2LCB0MCwgcyA9IERETU1hdGgucykgewogICAgICBjb25zdCB6UHJpbWUgPSBhICogejsKICAgICAgY29uc3QgQSA9IE1hdGguZXhwKC0yICogdiAqIGEgLyBzICoqIDIpIC0gMTsKICAgICAgY29uc3QgWiA9IE1hdGguZXhwKC0yICogdiAqIHpQcmltZSAvIHMgKiogMikgLSAxOwogICAgICBjb25zdCBtZWFuID0gLSh6UHJpbWUgLyB2KSArIGEgLyB2ICogKFogLyBBKTsKICAgICAgcmV0dXJuIHQwICsgbWVhbiAqIDEwMDA7CiAgICB9CgogICAgLy8gU0QgT3ZlcmFsbCBSVAogICAgLy8gRXF1YXRpb24gNiAoR3Jhc21hbiBldCBhbC4sIDIwMDkpCiAgICBzdGF0aWMgYXp2MnNkKGEsIHosIHYsIHMgPSBERE1NYXRoLnMpIHsKICAgICAgY29uc3QgelByaW1lID0gYSAqIHo7CiAgICAgIGNvbnN0IEEgPSBNYXRoLmV4cCgtMiAqIHYgKiBhIC8gcyAqKiAyKSAtIDE7CiAgICAgIGNvbnN0IFogPSBNYXRoLmV4cCgtMiAqIHYgKiB6UHJpbWUgLyBzICoqIDIpIC0gMTsKICAgICAgY29uc3QgdmFyaWFuY2UgPSAoLXYgKiBhICoqIDIgKiAoWiArIDQpICogWiAvIEEgKiogMiArICgoLTMgKiB2ICogYSAqKiAyICsgNCAqIHYgKiB6UHJpbWUgKiBhICsgcyAqKiAyICogYSkgKiBaICsgNCAqIHYgKiB6UHJpbWUgKiBhKSAvIEEgLSBzICoqIDIgKiB6UHJpbWUpIC8gdiAqKiAzOwogICAgICByZXR1cm4gTWF0aC5zcXJ0KHZhcmlhbmNlKSAqIDEwMDA7CiAgICB9CgogICAgLy8gTWVhbiBFcnJvciBSVAogICAgLy8gRXF1YXRpb24gMTMgKEdyYXNtYW4gZXQgYWwuLCAyMDA5KQogICAgc3RhdGljIGF6dnQwMm1FKGEsIHosIHYsIHQwLCBzID0gRERNTWF0aC5zKSB7CiAgICAgIGZ1bmN0aW9uIHBoaSh4LCB5KSB7CiAgICAgICAgcmV0dXJuIE1hdGguZXhwKDIgKiB2ICogeSAvIHMgKiogMikgLSBNYXRoLmV4cCgyICogdiAqIHggLyBzICoqIDIpOwogICAgICB9CiAgICAgIGNvbnN0IHpQcmltZSA9IGEgKiB6OwogICAgICBjb25zdCBtZWFuID0gKHpQcmltZSAqIChwaGkoelByaW1lIC0gYSwgYSkgKyBwaGkoMCwgelByaW1lKSkgKyAyICogYSAqIHBoaSh6UHJpbWUsIDApKSAvICh2ICogcGhpKHpQcmltZSwgYSkgKiBwaGkoLWEsIDApKTsKICAgICAgcmV0dXJuIHQwICsgbWVhbiAqIDEwMDA7CiAgICB9CgogICAgLy8gU0QgRXJyb3IgUlQKICAgIC8vIEVxdWF0aW9uIDE0IChHcmFzbWFuIGV0IGFsLiwgMjAwOSkKICAgIHN0YXRpYyBhenYyc2RFKGEsIHosIHYsIHMgPSBERE1NYXRoLnMpIHsKICAgICAgZnVuY3Rpb24gcGhpKHgsIHkpIHsKICAgICAgICByZXR1cm4gTWF0aC5leHAoMiAqIHYgKiB5IC8gcyAqKiAyKSAtIE1hdGguZXhwKDIgKiB2ICogeCAvIHMgKiogMik7CiAgICAgIH0KICAgICAgY29uc3QgelByaW1lID0gYSAqIHo7CiAgICAgIGNvbnN0IHZhcmlhbmNlID0gLTIgKiBhICogcGhpKDAsIHpQcmltZSkgKiAoMiAqIHYgKiBhICogcGhpKHpQcmltZSwgMiAqIGEpICsgcyAqKiAyICogcGhpKDAsIGEpICogcGhpKHpQcmltZSwgYSkpICogTWF0aC5leHAoMiAqIHYgKiBhIC8gcyAqKiAyKSAvICh2ICoqIDMgKiBwaGkoMCwgYSkgKiogMiAqIHBoaSh6UHJpbWUsIGEpICoqIDIpICsgKDQgKiB2ICogelByaW1lICogKDIgKiBhIC0gelByaW1lKSAqIE1hdGguZXhwKDIgKiB2ICogKHpQcmltZSArIGEpIC8gcyAqKiAyKSArIHpQcmltZSAqIHMgKiogMiAqIHBoaSgyICogelByaW1lLCAyICogYSkpIC8gKHYgKiogMyAqIHBoaSh6UHJpbWUsIGEpICoqIDIpOwogICAgICByZXR1cm4gTWF0aC5zcXJ0KHZhcmlhbmNlKSAqIDEwMDA7CiAgICB9CgogICAgLy8gTWVhbiBDb3JyZWN0IFJUCiAgICBzdGF0aWMgYXp2dDAybUMoYSwgeiwgdiwgdDAsIHMgPSBERE1NYXRoLnMpIHsKICAgICAgcmV0dXJuIERETU1hdGguYXp2dDAybUUoYSwgMSAtIHosIC12LCB0MCwgcyk7CiAgICB9CgogICAgLy8gU0QgQ29ycmVjdCBSVAogICAgc3RhdGljIGF6djJzZEMoYSwgeiwgdiwgcyA9IERETU1hdGgucykgewogICAgICByZXR1cm4gRERNTWF0aC5henYyc2RFKGEsIDEgLSB6LCAtdiwgcyk7CiAgICB9CgogICAgLy8gRGVuc2l0eSBvZiBFcnJvciBSVAogICAgc3RhdGljIHRhenYyZ0UodCwgYSwgeiwgdiwgcyA9IERETU1hdGgucykgewogICAgICBpZiAoIXQpIHJldHVybiAwOwogICAgICBjb25zdCB6UHJpbWUgPSBhICogejsKICAgICAgY29uc3QgYmFzZSA9IE1hdGguUEkgKiBzICoqIDIgLyBhICoqIDIgKiBNYXRoLmV4cCgtelByaW1lICogdiAvIHMgKiogMik7CiAgICAgIGxldCBrID0gMDsKICAgICAgbGV0IHRlcm0gPSAwOwogICAgICBsZXQgc3VtID0gMDsKICAgICAgZG8gewogICAgICAgIGsgKz0gMTsKICAgICAgICB0ZXJtID0gayAqIE1hdGguc2luKE1hdGguUEkgKiB6UHJpbWUgKiBrIC8gYSkgKiBNYXRoLmV4cCgtMC41ICogKHYgKiogMiAvIHMgKiogMiArIE1hdGguUEkgKiogMiAqIGsgKiogMiAqIHMgKiogMiAvIGEgKiogMikgKiB0KTsKICAgICAgICBzdW0gKz0gdGVybTsKICAgICAgfSB3aGlsZSAoayA8IDIwMCk7IC8vID8/IEhBQ0sKCiAgICAgIHJldHVybiBiYXNlICogc3VtOwogICAgfQoKICAgIC8vIERlbnNpdHkgb2YgQ29ycmVjdCBSVAogICAgc3RhdGljIHRhenYyZ0ModCwgYSwgeiwgdiwgcyA9IERETU1hdGgucykgewogICAgICByZXR1cm4gRERNTWF0aC50YXp2MmdFKHQsIGEsIDEgLSB6LCAtdiwgcyk7CiAgICB9CgogICAgLy8gQWRhcHRlZCBmcm9tIGh0dHBzOi8vcmFvdWwuc29jc2NpLnV2YS5ubC9FWjIvRVoyX25ldy5odG1sCiAgICAvLyBFWi1mdW5jdGlvbiBmb3Igc3RhcnRpbmcgdmFsdWVzCiAgICAvLyBpbnB1dDogb2JqIC0gT2JqZWN0IHdpdGggcHJvcGVydGllcwogICAgLy8gICAgcEMgLSBQcm9wb3J0aW9uIGNvcnJlY3QKICAgIC8vICAgIHNkIC0gc2FtcGxlIHN0YW5kYXJkIGRldmlhdGlvbiBvZiB0aGUgUlQncyBpbiBtcwogICAgLy8gICAgbSAtIHNhbXBsZSBtZWFuIG9mIHRoZSBSVCdzIGluIG1zCiAgICAvLyAgICBzIC0gZGlmZnVzaW9uIHN0YW5kYXJkIGRldmlhdGlvbgogICAgLy8gcmV0dXJuczogT2JqZWN0IHdpdGggcHJvcGVydGllcyB2LCBhLCBhbmQgdDAsIGNvbnRhaW5pbmcgRVotZXN0aW1hdGVzIG9mIHRoZXNlIHBhcmFtZXRlcnMKICAgIHN0YXRpYyBkYXRhMmV6KHsKICAgICAgYWNjdXJhY3k6IHBDLAogICAgICBzZFJUOiBzZCwKICAgICAgbWVhblJUOiBtLAogICAgICBzCiAgICB9KSB7CiAgICAgIGZ1bmN0aW9uIHNpZ24ocikgewogICAgICAgIHJldHVybiByID4gMCA/IDEgOiByID09PSAwID8gMCA6IC0xOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIGxvZ2l0KHApIHsKICAgICAgICByZXR1cm4gTWF0aC5sb2cocCAvICgxIC0gcCkpOwogICAgICB9CiAgICAgIGNvbnN0IHZydCA9IChzZCAvIDEwMDApICoqIDI7CiAgICAgIGNvbnN0IG1ydCA9IG0gLyAxMDAwOwogICAgICBjb25zdCBzMiA9IHMgKiogMjsKICAgICAgY29uc3QgbCA9IGxvZ2l0KHBDKTsKICAgICAgY29uc3QgeCA9IGwgKiAobCAqIHBDICoqIDIgLSBsICogcEMgKyBwQyAtIDAuNSkgLyB2cnQ7CiAgICAgIGNvbnN0IHYgPSBzaWduKHBDIC0gMC41KSAqIHMgKiB4ICoqICgxIC8gNCk7CiAgICAgIGNvbnN0IGEgPSBzMiAqIGxvZ2l0KHBDKSAvIHY7CiAgICAgIGNvbnN0IHkgPSAtdiAqIGEgLyBzMjsKICAgICAgY29uc3QgbWR0ID0gYSAvICgyICogdikgKiAoMSAtIE1hdGguZXhwKHkpKSAvICgxICsgTWF0aC5leHAoeSkpOwogICAgICBjb25zdCB0MCA9IG1ydCA/IG1ydCAtIG1kdCA6IG51bGw7IC8vIGNvbXB1dGUgVGVyIG9ubHkgaWYgTVJUIHdhcyBwcm92aWRlZAoKICAgICAgY29uc3QgdDBQcmltZSA9IHQwICogMTAwMDsKICAgICAgcmV0dXJuIHsKICAgICAgICB2LAogICAgICAgIGEsCiAgICAgICAgdDA6IHQwUHJpbWUsCiAgICAgICAgcwogICAgICB9OwogICAgfQogICAgc3RhdGljIGRhdGEyZXoyKCkgewogICAgICB0aHJvdyBuZXcgRXJyb3IoJ2RhdGEyZXoyIGlzIG5vdCBpbXBsZW1lbnRlZCEnKTsKICAgIH0KICB9CgogIC8vIEludGVybmFsIGRlcGVuZGVuY2llcwoKICAvKiBlc2xpbnQgbm8tcmVzdHJpY3RlZC1nbG9iYWxzOiBbIm9mZiIsICJzZWxmIl0gKi8KCiAgc2VsZi5vbm1lc3NhZ2UgPSBldmVudCA9PiB7CiAgICBjb25zdCBwYXJhbXMgPSBERE1NYXRoLmRhdGEyZXooewogICAgICAuLi5ldmVudC5kYXRhLAogICAgICBzOiBERE1NYXRoLnMKICAgIH0pOwoKICAgIC8vICMjIyMjIEFyYml0cmFyeSBkZWZhdWx0IHZhbHVlcyEhIQogICAgY29uc3QgYSA9ICFpc05hTihwYXJhbXMuYSkgPyBwYXJhbXMuYSA6IDEuNTsKICAgIGNvbnN0IHogPSAhaXNOYU4ocGFyYW1zLnopID8gcGFyYW1zLnogOiAwLjU7CiAgICBjb25zdCB2ID0gIWlzTmFOKHBhcmFtcy52KSA/IHBhcmFtcy52IDogMC4xOwogICAgY29uc3QgdDAgPSAhaXNOYU4ocGFyYW1zLnQwKSA/IHBhcmFtcy50MCA6IDEwMDsKICAgIGNvbnN0IHMgPSAhaXNOYU4ocGFyYW1zLnMpID8gcGFyYW1zLnMgOiBERE1NYXRoLnM7CiAgICBjb25zdCBwcmVkaWN0ZWQgPSB7CiAgICAgIGFjY3VyYWN5OiBERE1NYXRoLmF6djJwQyhhLCB6LCB2KSwKICAgICAgY29ycmVjdE1lYW5SVDogRERNTWF0aC5henZ0MDJtQyhhLCB6LCB2LCB0MCksCiAgICAgIGVycm9yTWVhblJUOiBERE1NYXRoLmF6dnQwMm1FKGEsIHosIHYsIHQwKSwKICAgICAgbWVhblJUOiBERE1NYXRoLmF6dnQwMm0oYSwgeiwgdiwgdDApLAogICAgICBjb3JyZWN0U0RSVDogRERNTWF0aC5henYyc2RDKGEsIHosIHYpLAogICAgICBlcnJvclNEUlQ6IERETU1hdGguYXp2MnNkRShhLCB6LCB2KSwKICAgICAgc2RSVDogRERNTWF0aC5henYyc2QoYSwgeiwgdikKICAgIH07CiAgICBzZWxmLnBvc3RNZXNzYWdlKHsKICAgICAgcGFyYW1zOiB7CiAgICAgICAgYSwKICAgICAgICB6LAogICAgICAgIHYsCiAgICAgICAgdDAsCiAgICAgICAgcwogICAgICB9LAogICAgICBwcmVkaWN0ZWQKICAgIH0pOwogIH07Cgp9KSgpOwovLyMgc291cmNlTWFwcGluZ1VSTD1kZG0tZml0LXdvcmtlci5qcy5tYXAKCg==","data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGRtLWZpdC13b3JrZXIuanMiLCJzb3VyY2VzIjpbIi4uL2FjY3VtdWxhYmxlLW1hdGgvc3JjL2RkbS1tYXRoLmpzIiwiLi4vYWNjdW11bGFibGUtbWF0aC9zcmMvaW5kZXguanMiLCJzcmMvY29tcG9uZW50cy9kZG0tZml0LXdvcmtlci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcbi8qXG4gIERETU1hdGggU3RhdGljIENsYXNzIC0gTm90IGludGVuZGVkIGZvciBpbnN0YW50aWF0aW9uIVxuXG4gIE1vZGVsIHBhcmFtZXRlcnM6XG4gICAgYSA9IGJvdW5kYXJ5IHNlcGFyYXRpb25cbiAgICB6ID0gc3RhcnRpbmcgcG9pbnQgYXMgYSBwcm9wb3J0aW9uIG9mIGFcbiAgICB2ID0gZHJpZnQgcmF0ZSAocGVyIHNlY29uZClcbiAgICB0MCA9IG5vbi1kZWNpc2lvbiB0aW1lIChpbiBtaWxsaXNlY29uZHMpXG4gICAgcyA9IHdpdGhpbi10cmlhbCB2YXJpYWJpbGl0eSBpbiBkcmlmdCByYXRlIChzXjIgPSBpbmZpbml0ZXNpbWFsIHZhcmlhbmNlKVxuXG4gICAgelByaW1lID0gc3RhcnRpbmcgcG9pbnQgb24gYSAwLXRvLWEgc2NhbGUgKHR5cGljYWxseSB1c2VkIGluIHB1Ymxpc2hlZCBlcXVhdGlvbnMpXG5cbiAgQmVoYXZpb3JhbCB2YXJpYWJsZXM6XG4gICAgcEUgPSBwcm9wb3J0aW9uIG9mIGVycm9yIHRyaWFsc1xuICAgIHBDID0gcHJvcG9ydGlvbiBvZiBjb3JyZWN0IHRyaWFsc1xuICAgIG0gPSBtZWFuIG9mIG92ZXJhbGwgUlRzIChpbiBtaWxsaXNlY29uZHMpXG4gICAgbUUgPSBtZWFuIG9mIGVycm9yIFJUcyAoaW4gbWlsbGlzZWNvbmRzKVxuICAgIG1DID0gbWVhbiBjb3JyZWN0IFJUcyAoaW4gbWlsbGlzZWNvbmRzKVxuICAgIHNkID0gc3RhbmRhcmQgZGV2aWF0aW9uIG9mIG92ZXJhbGwgUlRzIChpbiBtaWxsaXNlY29uZHMpXG4gICAgc2RFID0gc3RhbmRhcmQgZGV2aWF0aW9uIG9mIGVycm9yIFJUcyAoaW4gbWlsbGlzZWNvbmRzKVxuICAgIHNkQyA9IHN0YW5kYXJkIGRldmlhdGlvbiBvZiBjb3JyZWN0IFJUcyAoaW4gbWlsbGlzZWNvbmRzKVxuXG4gIEVxdWF0aW9uczpcbiAgICBQcm9iYWJpbGl0eSBvZiBjb3JyZWN0IGFuZCBlcnJvciByZXNwb25zZXMgKEFsZXhhbmRyb3dpY3osIDIwMjApXG4gICAgTWVhbiBvZiBvdmVyYWxsLCBlcnJvciwgYW5kIGNvcnJlY3QgUlRzIChHcmFzbWFuIGV0IGFsLiwgMjAwOSlcbiAgICBTdGFuZGFyZCBkZXZpYXRpb24gb2Ygb3ZlcmFsbCwgZXJyb3IsIGFuZCBjb3JyZWN0IFJUcyAoR3Jhc21hbiBldCBhbC4sIDIwMDkpXG4gICAgRGVuc2l0eSBvZiBlcnJvciBhbmQgY29ycmVjdCBSVCBkaXN0cmlidXRpb25zIChBbGV4YW5kcm93aWN6LCAyMDIwKVxuICAgIEVaLWRpZmZ1c2lvbiBtb2RlbCAoV2FnZW5tYWtlcnMgZXQgYWwuLCAyMDA3KVxuKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIERETU1hdGgge1xuICBzdGF0aWMgcyA9IDE7XG5cbiAgLy8gQ2FsY3VsYXRlIGEgYnVuY2ggb2Ygc3RhdGlzdGljcyBmb3IgYW4gYXJyYXkgb2YgdHJpYWxzXG4gIHN0YXRpYyB0cmlhbHMyc3RhdHModHJpYWxzKSB7XG4gICAgY29uc3Qgc3RhdHMgPSB7fTtcblxuICAgIC8vIEZpcnN0LW9yZGVyIHN1bXNcbiAgICBjb25zdCBzdW1zID0gdHJpYWxzLnJlZHVjZShcbiAgICAgIChhY2N1bXVsYXRvciwgdHJpYWwpID0+IHtcbiAgICAgICAgc3dpdGNoICh0cmlhbC5vdXRjb21lKSB7XG4gICAgICAgICAgY2FzZSAnY29ycmVjdCc6XG4gICAgICAgICAgICBhY2N1bXVsYXRvci5jb3JyZWN0Q291bnQgKz0gMTtcbiAgICAgICAgICAgIGFjY3VtdWxhdG9yLmNvcnJlY3RSVFN1bSArPSB0cmlhbC5ydDtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgJ2Vycm9yJzpcbiAgICAgICAgICAgIGFjY3VtdWxhdG9yLmVycm9yQ291bnQgKz0gMTtcbiAgICAgICAgICAgIGFjY3VtdWxhdG9yLmVycm9yUlRTdW0gKz0gdHJpYWwucnQ7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlICducic6XG4gICAgICAgICAgICBhY2N1bXVsYXRvci5uckNvdW50ICs9IDE7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgLy8gTm8tb3BcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYWNjdW11bGF0b3I7XG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjb3JyZWN0Q291bnQ6IDAsXG4gICAgICAgIGVycm9yQ291bnQ6IDAsXG4gICAgICAgIG5yQ291bnQ6IDAsXG5cbiAgICAgICAgY29ycmVjdFJUU3VtOiAwLFxuICAgICAgICBlcnJvclJUU3VtOiAwLFxuICAgICAgfSxcbiAgICApO1xuXG4gICAgLy8gRmlyc3Qtb3JkZXIgc3RhdHNcbiAgICBzdGF0cy5jb3JyZWN0Q291bnQgPSBzdW1zLmNvcnJlY3RDb3VudDtcbiAgICBzdGF0cy5lcnJvckNvdW50ID0gc3Vtcy5lcnJvckNvdW50O1xuICAgIHN0YXRzLm5yQ291bnQgPSBzdW1zLm5yQ291bnQ7XG4gICAgc3RhdHMuYWNjdXJhY3kgPSBzdW1zLmNvcnJlY3RDb3VudCAvIChzdW1zLmNvcnJlY3RDb3VudCArIHN1bXMuZXJyb3JDb3VudCArIHN1bXMubnJDb3VudCk7XG5cbiAgICBzdGF0cy5jb3JyZWN0TWVhblJUID0gc3Vtcy5jb3JyZWN0UlRTdW0gLyBzdW1zLmNvcnJlY3RDb3VudDtcbiAgICBzdGF0cy5lcnJvck1lYW5SVCA9IHN1bXMuZXJyb3JSVFN1bSAvIHN1bXMuZXJyb3JDb3VudDtcbiAgICBzdGF0cy5tZWFuUlQgPSAoc3Vtcy5jb3JyZWN0UlRTdW0gKyBzdW1zLmVycm9yUlRTdW0pIC8gKHN1bXMuY29ycmVjdENvdW50ICsgc3Vtcy5lcnJvckNvdW50KTtcblxuICAgIC8vIFNlY29uZC1vcmRlciBzdW1zXG4gICAgY29uc3Qgc3VtczIgPSB0cmlhbHMucmVkdWNlKFxuICAgICAgKGFjY3VtdWxhdG9yLCB0cmlhbCkgPT4ge1xuICAgICAgICBzd2l0Y2ggKHRyaWFsLm91dGNvbWUpIHtcbiAgICAgICAgICBjYXNlICdjb3JyZWN0JzpcbiAgICAgICAgICAgIGFjY3VtdWxhdG9yLnNzICs9ICh0cmlhbC5ydCAtIHN0YXRzLm1lYW5SVCkgKiogMjtcbiAgICAgICAgICAgIGFjY3VtdWxhdG9yLmNvcnJlY3RTUyArPSAodHJpYWwucnQgLSBzdGF0cy5jb3JyZWN0TWVhblJUKSAqKiAyO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAnZXJyb3InOlxuICAgICAgICAgICAgYWNjdW11bGF0b3Iuc3MgKz0gKHRyaWFsLnJ0IC0gc3RhdHMubWVhblJUKSAqKiAyO1xuICAgICAgICAgICAgYWNjdW11bGF0b3IuZXJyb3JTUyArPSAodHJpYWwucnQgLSBzdGF0cy5lcnJvck1lYW5SVCkgKiogMjtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAvLyBOby1vcFxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBhY2N1bXVsYXRvcjtcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHNzOiAwLFxuICAgICAgICBjb3JyZWN0U1M6IDAsXG4gICAgICAgIGVycm9yU1M6IDAsXG4gICAgICB9LFxuICAgICk7XG5cbiAgICAvLyBTZWNvbmQtb3JkZXIgc3RhdHNcbiAgICBzdGF0cy5jb3JyZWN0U0RSVCA9IChzdGF0cy5jb3JyZWN0Q291bnQgPiAxKVxuICAgICAgPyBNYXRoLnNxcnQoc3VtczIuY29ycmVjdFNTIC8gKHN0YXRzLmNvcnJlY3RDb3VudCAtIDEpKVxuICAgICAgOiBOYU47XG4gICAgc3RhdHMuZXJyb3JTRFJUID0gKHN0YXRzLmVycm9yQ291bnQgPiAxKVxuICAgICAgPyBNYXRoLnNxcnQoc3VtczIuZXJyb3JTUyAvIChzdGF0cy5lcnJvckNvdW50IC0gMSkpXG4gICAgICA6IE5hTjtcbiAgICBzdGF0cy5zZFJUID0gKHN0YXRzLmNvcnJlY3RDb3VudCArIHN0YXRzLmVycm9yQ291bnQgPiAxKVxuICAgICAgPyBNYXRoLnNxcnQoc3VtczIuc3MgLyAoc3RhdHMuY29ycmVjdENvdW50ICsgc3RhdHMuZXJyb3JDb3VudCAtIDEpKVxuICAgICAgOiBOYU47XG5cbiAgICByZXR1cm4gc3RhdHM7XG4gIH1cblxuICAvLyBQcm9iYWJpbGl0eSBvZiBhbiBFcnJvciBSZXNwb25zZVxuICBzdGF0aWMgYXp2MnBFKGEsIHosIHYsIHMgPSBERE1NYXRoLnMpIHtcbiAgICBjb25zdCB6UHJpbWUgPSBhICogejtcblxuICAgIGNvbnN0IEEgPSBNYXRoLmV4cCgoLTIgKiB2ICogYSkgLyBzICoqIDIpO1xuICAgIGNvbnN0IFogPSBNYXRoLmV4cCgoLTIgKiB2ICogelByaW1lKSAvIHMgKiogMik7XG5cbiAgICByZXR1cm4gKEEgLSBaKSAvIChBIC0gMSk7XG4gIH1cblxuICAvLyBQcm9iYWJpbGl0eSBvZiBhIENvcnJlY3QgUmVzcG9uc2VcbiAgc3RhdGljIGF6djJwQyhhLCB6LCB2LCBzID0gRERNTWF0aC5zKSB7XG4gICAgcmV0dXJuIERETU1hdGguYXp2MnBFKGEsIDEgLSB6LCAtdiwgcyk7XG4gIH1cblxuICAvLyBNZWFuIE92ZXJhbGwgUlRcbiAgLy8gRXF1YXRpb24gNSAoR3Jhc21hbiBldCBhbC4sIDIwMDkpXG4gIHN0YXRpYyBhenZ0MDJtKGEsIHosIHYsIHQwLCBzID0gRERNTWF0aC5zKSB7XG4gICAgY29uc3QgelByaW1lID0gYSAqIHo7XG4gICAgY29uc3QgQSA9IE1hdGguZXhwKCgtMiAqIHYgKiBhKSAvIHMgKiogMikgLSAxO1xuICAgIGNvbnN0IFogPSBNYXRoLmV4cCgoLTIgKiB2ICogelByaW1lKSAvIHMgKiogMikgLSAxO1xuXG4gICAgY29uc3QgbWVhbiA9IC0oelByaW1lIC8gdikgKyAoYSAvIHYpICogKFogLyBBKTtcbiAgICByZXR1cm4gdDAgKyBtZWFuICogMTAwMDtcbiAgfVxuXG4gIC8vIFNEIE92ZXJhbGwgUlRcbiAgLy8gRXF1YXRpb24gNiAoR3Jhc21hbiBldCBhbC4sIDIwMDkpXG4gIHN0YXRpYyBhenYyc2QoYSwgeiwgdiwgcyA9IERETU1hdGgucykge1xuICAgIGNvbnN0IHpQcmltZSA9IGEgKiB6O1xuICAgIGNvbnN0IEEgPSBNYXRoLmV4cCgoLTIgKiB2ICogYSkgLyBzICoqIDIpIC0gMTtcbiAgICBjb25zdCBaID0gTWF0aC5leHAoKC0yICogdiAqIHpQcmltZSkgLyBzICoqIDIpIC0gMTtcblxuICAgIGNvbnN0IHZhcmlhbmNlID0gKFxuICAgICAgKFxuICAgICAgICAoLXYgKiBhICoqIDIgKiAoWiArIDQpICogWikgLyBBICoqIDJcbiAgICAgICkgKyAoXG4gICAgICAgICgoLTMgKiB2ICogYSAqKiAyICsgNCAqIHYgKiB6UHJpbWUgKiBhICsgcyAqKiAyICogYSkgKiBaICsgNCAqIHYgKiB6UHJpbWUgKiBhKSAvIEFcbiAgICAgICkgLSAoXG4gICAgICAgIHMgKiogMiAqIHpQcmltZVxuICAgICAgKVxuICAgICkgLyB2ICoqIDM7XG5cbiAgICByZXR1cm4gTWF0aC5zcXJ0KHZhcmlhbmNlKSAqIDEwMDA7XG4gIH1cblxuICAvLyBNZWFuIEVycm9yIFJUXG4gIC8vIEVxdWF0aW9uIDEzIChHcmFzbWFuIGV0IGFsLiwgMjAwOSlcbiAgc3RhdGljIGF6dnQwMm1FKGEsIHosIHYsIHQwLCBzID0gRERNTWF0aC5zKSB7XG4gICAgZnVuY3Rpb24gcGhpKHgsIHkpIHtcbiAgICAgIHJldHVybiBNYXRoLmV4cCgoMiAqIHYgKiB5KSAvIChzICoqIDIpKSAtIE1hdGguZXhwKCgyICogdiAqIHgpIC8gKHMgKiogMikpO1xuICAgIH1cbiAgICBjb25zdCB6UHJpbWUgPSBhICogejtcblxuICAgIGNvbnN0IG1lYW4gPSAoelByaW1lICogKHBoaSh6UHJpbWUgLSBhLCBhKSArIHBoaSgwLCB6UHJpbWUpKSArIDIgKiBhICogcGhpKHpQcmltZSwgMCkpXG4gICAgICAvICh2ICogcGhpKHpQcmltZSwgYSkgKiBwaGkoLWEsIDApKTtcbiAgICByZXR1cm4gdDAgKyBtZWFuICogMTAwMDtcbiAgfVxuXG4gIC8vIFNEIEVycm9yIFJUXG4gIC8vIEVxdWF0aW9uIDE0IChHcmFzbWFuIGV0IGFsLiwgMjAwOSlcbiAgc3RhdGljIGF6djJzZEUoYSwgeiwgdiwgcyA9IERETU1hdGgucykge1xuICAgIGZ1bmN0aW9uIHBoaSh4LCB5KSB7XG4gICAgICByZXR1cm4gTWF0aC5leHAoKDIgKiB2ICogeSkgLyAocyAqKiAyKSkgLSBNYXRoLmV4cCgoMiAqIHYgKiB4KSAvIChzICoqIDIpKTtcbiAgICB9XG4gICAgY29uc3QgelByaW1lID0gYSAqIHo7XG5cbiAgICBjb25zdCB2YXJpYW5jZSA9IChcbiAgICAgIChcbiAgICAgICAgLTIgKiBhICogcGhpKDAsIHpQcmltZSlcbiAgICAgICAgKiAoKDIgKiB2ICogYSAqIHBoaSh6UHJpbWUsIDIgKiBhKSkgKyAocyAqKiAyICogcGhpKDAsIGEpICogcGhpKHpQcmltZSwgYSkpKVxuICAgICAgICAqIE1hdGguZXhwKCgyICogdiAqIGEpIC8gcyAqKiAyKVxuICAgICAgKSAvIChcbiAgICAgICAgdiAqKiAzICogcGhpKDAsIGEpICoqIDIgKiBwaGkoelByaW1lLCBhKSAqKiAyXG4gICAgICApXG4gICAgKSArIChcbiAgICAgIChcbiAgICAgICAgNCAqIHYgKiB6UHJpbWUgKiAoMiAqIGEgLSB6UHJpbWUpICogTWF0aC5leHAoKDIgKiB2ICogKHpQcmltZSArIGEpKSAvIHMgKiogMilcbiAgICAgICAgKyB6UHJpbWUgKiBzICoqIDIgKiBwaGkoMiAqIHpQcmltZSwgMiAqIGEpXG4gICAgICApIC8gKFxuICAgICAgICB2ICoqIDMgKiBwaGkoelByaW1lLCBhKSAqKiAyXG4gICAgICApXG4gICAgKTtcblxuICAgIHJldHVybiBNYXRoLnNxcnQodmFyaWFuY2UpICogMTAwMDtcbiAgfVxuXG4gIC8vIE1lYW4gQ29ycmVjdCBSVFxuICBzdGF0aWMgYXp2dDAybUMoYSwgeiwgdiwgdDAsIHMgPSBERE1NYXRoLnMpIHtcbiAgICByZXR1cm4gRERNTWF0aC5henZ0MDJtRShhLCAxIC0geiwgLXYsIHQwLCBzKTtcbiAgfVxuXG4gIC8vIFNEIENvcnJlY3QgUlRcbiAgc3RhdGljIGF6djJzZEMoYSwgeiwgdiwgcyA9IERETU1hdGgucykge1xuICAgIHJldHVybiBERE1NYXRoLmF6djJzZEUoYSwgMSAtIHosIC12LCBzKTtcbiAgfVxuXG4gIC8vIERlbnNpdHkgb2YgRXJyb3IgUlRcbiAgc3RhdGljIHRhenYyZ0UodCwgYSwgeiwgdiwgcyA9IERETU1hdGgucykge1xuICAgIGlmICghdCkgcmV0dXJuIDA7XG5cbiAgICBjb25zdCB6UHJpbWUgPSBhICogejtcbiAgICBjb25zdCBiYXNlID0gKChNYXRoLlBJICogcyAqKiAyKSAvIGEgKiogMikgKiBNYXRoLmV4cCgoLXpQcmltZSAqIHYpIC8gcyAqKiAyKTtcblxuICAgIGxldCBrID0gMDtcbiAgICBsZXQgdGVybSA9IDA7XG4gICAgbGV0IHN1bSA9IDA7XG4gICAgZG8ge1xuICAgICAgayArPSAxO1xuXG4gICAgICB0ZXJtID0ga1xuICAgICAgICAqIE1hdGguc2luKChNYXRoLlBJICogelByaW1lICogaykgLyBhKVxuICAgICAgICAqIE1hdGguZXhwKC0wLjUgKiAoKHYgKiogMiAvIHMgKiogMikgKyAoKE1hdGguUEkgKiogMiAqIGsgKiogMiAqIHMgKiogMikgLyBhICoqIDIpKSAqIHQpO1xuXG4gICAgICBzdW0gKz0gdGVybTtcbiAgICB9IHdoaWxlIChrIDwgMjAwKTsgLy8gPz8gSEFDS1xuXG4gICAgcmV0dXJuIGJhc2UgKiBzdW07XG4gIH1cblxuICAvLyBEZW5zaXR5IG9mIENvcnJlY3QgUlRcbiAgc3RhdGljIHRhenYyZ0ModCwgYSwgeiwgdiwgcyA9IERETU1hdGgucykge1xuICAgIHJldHVybiBERE1NYXRoLnRhenYyZ0UodCwgYSwgMSAtIHosIC12LCBzKTtcbiAgfVxuXG4gIC8vIEFkYXB0ZWQgZnJvbSBodHRwczovL3Jhb3VsLnNvY3NjaS51dmEubmwvRVoyL0VaMl9uZXcuaHRtbFxuICAvLyBFWi1mdW5jdGlvbiBmb3Igc3RhcnRpbmcgdmFsdWVzXG4gIC8vIGlucHV0OiBvYmogLSBPYmplY3Qgd2l0aCBwcm9wZXJ0aWVzXG4gIC8vICAgIHBDIC0gUHJvcG9ydGlvbiBjb3JyZWN0XG4gIC8vICAgIHNkIC0gc2FtcGxlIHN0YW5kYXJkIGRldmlhdGlvbiBvZiB0aGUgUlQncyBpbiBtc1xuICAvLyAgICBtIC0gc2FtcGxlIG1lYW4gb2YgdGhlIFJUJ3MgaW4gbXNcbiAgLy8gICAgcyAtIGRpZmZ1c2lvbiBzdGFuZGFyZCBkZXZpYXRpb25cbiAgLy8gcmV0dXJuczogT2JqZWN0IHdpdGggcHJvcGVydGllcyB2LCBhLCBhbmQgdDAsIGNvbnRhaW5pbmcgRVotZXN0aW1hdGVzIG9mIHRoZXNlIHBhcmFtZXRlcnNcbiAgc3RhdGljIGRhdGEyZXooe1xuICAgIGFjY3VyYWN5OiBwQyxcbiAgICBzZFJUOiBzZCxcbiAgICBtZWFuUlQ6IG0sXG4gICAgcyxcbiAgfSkge1xuICAgIGZ1bmN0aW9uIHNpZ24ocikge1xuICAgICAgcmV0dXJuICgociA+IDApID8gMSA6ICgociA9PT0gMCkgPyAwIDogLTEpKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBsb2dpdChwKSB7XG4gICAgICByZXR1cm4gTWF0aC5sb2cocCAvICgxIC0gcCkpO1xuICAgIH1cblxuICAgIGNvbnN0IHZydCA9IChzZCAvIDEwMDApICoqIDI7XG4gICAgY29uc3QgbXJ0ID0gbSAvIDEwMDA7XG5cbiAgICBjb25zdCBzMiA9IHMgKiogMjtcbiAgICBjb25zdCBsID0gbG9naXQocEMpO1xuICAgIGNvbnN0IHggPSAobCAqIChsICogcEMgKiogMiAtIGwgKiBwQyArIHBDIC0gMC41KSkgLyB2cnQ7XG4gICAgY29uc3QgdiA9IHNpZ24ocEMgLSAwLjUpICogcyAqIHggKiogKDEgLyA0KTtcbiAgICBjb25zdCBhID0gKHMyICogbG9naXQocEMpKSAvIHY7XG4gICAgY29uc3QgeSA9ICgtdiAqIGEpIC8gczI7XG4gICAgY29uc3QgbWR0ID0gKChhIC8gKDIgKiB2KSkgKiAoMSAtIE1hdGguZXhwKHkpKSkgLyAoMSArIE1hdGguZXhwKHkpKTtcbiAgICBjb25zdCB0MCA9IChtcnQgPyBtcnQgLSBtZHQgOiBudWxsKTsgLy8gY29tcHV0ZSBUZXIgb25seSBpZiBNUlQgd2FzIHByb3ZpZGVkXG5cbiAgICBjb25zdCB0MFByaW1lID0gdDAgKiAxMDAwO1xuICAgIHJldHVybiB7XG4gICAgICB2LFxuICAgICAgYSxcbiAgICAgIHQwOiB0MFByaW1lLFxuICAgICAgcyxcbiAgICB9O1xuICB9XG5cbiAgc3RhdGljIGRhdGEyZXoyKCkge1xuICAgIHRocm93IG5ldyBFcnJvcignZGF0YTJlejIgaXMgbm90IGltcGxlbWVudGVkIScpO1xuICB9XG59XG4iLCJcbi8vIEludGVybmFsIGRlcGVuZGVuY2llc1xuaW1wb3J0IERETU1hdGggZnJvbSAnLi9kZG0tbWF0aCc7XG5cbmV4cG9ydCBkZWZhdWx0IERETU1hdGg7XG4iLCIvKiBlc2xpbnQgbm8tcmVzdHJpY3RlZC1nbG9iYWxzOiBbXCJvZmZcIiwgXCJzZWxmXCJdICovXG5cbmltcG9ydCBERE1NYXRoIGZyb20gJ0BkZWNpZGFibGVzL2FjY3VtdWxhYmxlLW1hdGgnO1xuXG5zZWxmLm9ubWVzc2FnZSA9IChldmVudCkgPT4ge1xuICBjb25zdCBwYXJhbXMgPSBERE1NYXRoLmRhdGEyZXooey4uLmV2ZW50LmRhdGEsIHM6IERETU1hdGguc30pO1xuXG4gIC8vICMjIyMjIEFyYml0cmFyeSBkZWZhdWx0IHZhbHVlcyEhIVxuICBjb25zdCBhID0gIWlzTmFOKHBhcmFtcy5hKSA/IHBhcmFtcy5hIDogMS41O1xuICBjb25zdCB6ID0gIWlzTmFOKHBhcmFtcy56KSA/IHBhcmFtcy56IDogMC41O1xuICBjb25zdCB2ID0gIWlzTmFOKHBhcmFtcy52KSA/IHBhcmFtcy52IDogMC4xO1xuICBjb25zdCB0MCA9ICFpc05hTihwYXJhbXMudDApID8gcGFyYW1zLnQwIDogMTAwO1xuICBjb25zdCBzID0gIWlzTmFOKHBhcmFtcy5zKSA/IHBhcmFtcy5zIDogRERNTWF0aC5zO1xuXG4gIGNvbnN0IHByZWRpY3RlZCA9IHtcbiAgICBhY2N1cmFjeTogRERNTWF0aC5henYycEMoYSwgeiwgdiksXG4gICAgY29ycmVjdE1lYW5SVDogRERNTWF0aC5henZ0MDJtQyhhLCB6LCB2LCB0MCksXG4gICAgZXJyb3JNZWFuUlQ6IERETU1hdGguYXp2dDAybUUoYSwgeiwgdiwgdDApLFxuICAgIG1lYW5SVDogRERNTWF0aC5henZ0MDJtKGEsIHosIHYsIHQwKSxcbiAgICBjb3JyZWN0U0RSVDogRERNTWF0aC5henYyc2RDKGEsIHosIHYpLFxuICAgIGVycm9yU0RSVDogRERNTWF0aC5henYyc2RFKGEsIHosIHYpLFxuICAgIHNkUlQ6IERETU1hdGguYXp2MnNkKGEsIHosIHYpLFxuICB9O1xuXG4gIHNlbGYucG9zdE1lc3NhZ2Uoe1xuICAgIHBhcmFtczoge1xuICAgICAgYSwgeiwgdiwgdDAsIHMsXG4gICAgfSxcbiAgICBwcmVkaWN0ZWQsXG4gIH0pO1xufTtcbiJdLCJuYW1lcyI6WyJERE1NYXRoIiwicyIsInRyaWFsczJzdGF0cyIsInRyaWFscyIsInN0YXRzIiwic3VtcyIsInJlZHVjZSIsImFjY3VtdWxhdG9yIiwidHJpYWwiLCJvdXRjb21lIiwiY29ycmVjdENvdW50IiwiY29ycmVjdFJUU3VtIiwicnQiLCJlcnJvckNvdW50IiwiZXJyb3JSVFN1bSIsIm5yQ291bnQiLCJhY2N1cmFjeSIsImNvcnJlY3RNZWFuUlQiLCJlcnJvck1lYW5SVCIsIm1lYW5SVCIsInN1bXMyIiwic3MiLCJjb3JyZWN0U1MiLCJlcnJvclNTIiwiY29ycmVjdFNEUlQiLCJNYXRoIiwic3FydCIsIk5hTiIsImVycm9yU0RSVCIsInNkUlQiLCJhenYycEUiLCJhIiwieiIsInYiLCJ6UHJpbWUiLCJBIiwiZXhwIiwiWiIsImF6djJwQyIsImF6dnQwMm0iLCJ0MCIsIm1lYW4iLCJhenYyc2QiLCJ2YXJpYW5jZSIsImF6dnQwMm1FIiwicGhpIiwieCIsInkiLCJhenYyc2RFIiwiYXp2dDAybUMiLCJhenYyc2RDIiwidGF6djJnRSIsInQiLCJiYXNlIiwiUEkiLCJrIiwidGVybSIsInN1bSIsInNpbiIsInRhenYyZ0MiLCJkYXRhMmV6IiwicEMiLCJzZCIsIm0iLCJzaWduIiwiciIsImxvZ2l0IiwicCIsImxvZyIsInZydCIsIm1ydCIsInMyIiwibCIsIm1kdCIsInQwUHJpbWUiLCJkYXRhMmV6MiIsIkVycm9yIiwic2VsZiIsIm9ubWVzc2FnZSIsImV2ZW50IiwicGFyYW1zIiwiZGF0YSIsImlzTmFOIiwicHJlZGljdGVkIiwicG9zdE1lc3NhZ2UiXSwibWFwcGluZ3MiOiI7OztFQUNBO0VBQ0E7O0VBRUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztFQUVBOztFQUVBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7RUFFQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNlLE1BQU1BLE9BQU8sQ0FBQztJQUMzQixPQUFPQyxDQUFDLEdBQUcsQ0FBQzs7RUFFWjtJQUNBLE9BQU9DLFlBQVlBLENBQUNDLE1BQU0sRUFBRTtNQUMxQixNQUFNQyxLQUFLLEdBQUcsRUFBRTs7RUFFaEI7TUFDQSxNQUFNQyxJQUFJLEdBQUdGLE1BQU0sQ0FBQ0csTUFBTSxDQUN4QixDQUFDQyxXQUFXLEVBQUVDLEtBQUssS0FBSztRQUN0QixRQUFRQSxLQUFLLENBQUNDLE9BQU87RUFDbkIsUUFBQSxLQUFLLFNBQVM7WUFDWkYsV0FBVyxDQUFDRyxZQUFZLElBQUksQ0FBQztFQUM3QkgsVUFBQUEsV0FBVyxDQUFDSSxZQUFZLElBQUlILEtBQUssQ0FBQ0ksRUFBRTtF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");class Qa extends da{static get properties(){return{}}constructor(){super(),this.a=1.2,this.z=.35,this.v=1.5,this.t0=150,this.observed={},this.predicted={},this.working=!1,this.queued=!1,this.worker=new ya,this.worker.onmessage=t=>{this.working=!1,this.predicted=t.data.predicted,this.a=t.data.params.a,this.z=t.data.params.z,this.v=t.data.params.v,this.t0=t.data.params.t0,this.requestUpdate(),this.dispatchEvent(new CustomEvent("ddm-fit-update",{detail:{a:this.a,z:this.z,v:this.v,t0:this.t0},bubbles:!0})),this.queued&&this.fit()},this.fit()}fit(){this.working?this.queued=!0:(this.worker.postMessage(this.observed),this.working=!0,this.queued=!1)}clear(){this.observed={},this.fit()}set(t){this.observed=structuredClone(t),this.fit()}static get styles(){return[super.styles,n`
|
|
1276
|
+
</table>`}}function sa(t,e,i){var s=e,r=function(t){return atob(t)}(t),a=r.indexOf("\n",10)+1,n=r.substring(a)+"//# sourceMappingURL="+s,o=new Blob([n],{type:"application/javascript"});return URL.createObjectURL(o)}function ra(t,e,i){var s;return function(i){return s=s||sa(t,e),new Worker(s,i)}}customElements.define("accumulable-table",ia);var aa=ra("Lyogcm9sbHVwLXBsdWdpbi13ZWItd29ya2VyLWxvYWRlciAqLwooZnVuY3Rpb24gKCkgewogICd1c2Ugc3RyaWN0JzsKCiAgLyoKICAgIERETU1hdGggU3RhdGljIENsYXNzIC0gTm90IGludGVuZGVkIGZvciBpbnN0YW50aWF0aW9uIQoKICAgIE1vZGVsIHBhcmFtZXRlcnM6CiAgICAgIGEgPSBib3VuZGFyeSBzZXBhcmF0aW9uIFswLCBJbmZpbml0eSkKICAgICAgeiA9IHN0YXJ0aW5nIHBvaW50IGFzIGEgcHJvcG9ydGlvbiBvZiBhICgwLCAxKQogICAgICB2ID0gZHJpZnQgcmF0ZSAocGVyIHNlY29uZCkgKC1JbmZpbml0eSwgSW5maW5pdHkpCiAgICAgIHQwID0gbm9uLWRlY2lzaW9uIHRpbWUgKGluIG1pbGxpc2Vjb25kcykgKDAsIEluZmluaXR5KQogICAgICBzID0gd2l0aGluLXRyaWFsIHZhcmlhYmlsaXR5IGluIGRyaWZ0IHJhdGUgKHNeMiA9IGluZmluaXRlc2ltYWwgdmFyaWFuY2UpIFswLCBJbmZpbml0eSkKCiAgICAgIHpQcmltZSA9IHN0YXJ0aW5nIHBvaW50IG9uIGEgMC10by1hIHNjYWxlICh0eXBpY2FsbHkgdXNlZCBpbiBwdWJsaXNoZWQgZXF1YXRpb25zKSBbMCwgSW5maW5pdHkpCgogICAgQmVoYXZpb3JhbCB2YXJpYWJsZXM6CiAgICAgIHBFID0gcHJvcG9ydGlvbiBvZiBlcnJvciB0cmlhbHMKICAgICAgcEMgPSBwcm9wb3J0aW9uIG9mIGNvcnJlY3QgdHJpYWxzCiAgICAgIG0gPSBtZWFuIG9mIG92ZXJhbGwgUlRzIChpbiBtaWxsaXNlY29uZHMpCiAgICAgIG1FID0gbWVhbiBvZiBlcnJvciBSVHMgKGluIG1pbGxpc2Vjb25kcykKICAgICAgbUMgPSBtZWFuIGNvcnJlY3QgUlRzIChpbiBtaWxsaXNlY29uZHMpCiAgICAgIHNkID0gc3RhbmRhcmQgZGV2aWF0aW9uIG9mIG92ZXJhbGwgUlRzIChpbiBtaWxsaXNlY29uZHMpCiAgICAgIHNkRSA9IHN0YW5kYXJkIGRldmlhdGlvbiBvZiBlcnJvciBSVHMgKGluIG1pbGxpc2Vjb25kcykKICAgICAgc2RDID0gc3RhbmRhcmQgZGV2aWF0aW9uIG9mIGNvcnJlY3QgUlRzIChpbiBtaWxsaXNlY29uZHMpCgogICAgRXF1YXRpb25zOgogICAgICBQcm9iYWJpbGl0eSBvZiBjb3JyZWN0IGFuZCBlcnJvciByZXNwb25zZXMgKEFsZXhhbmRyb3dpY3osIDIwMjApCiAgICAgIE1lYW4gb2Ygb3ZlcmFsbCwgZXJyb3IsIGFuZCBjb3JyZWN0IFJUcyAoR3Jhc21hbiBldCBhbC4sIDIwMDkpCiAgICAgIFN0YW5kYXJkIGRldmlhdGlvbiBvZiBvdmVyYWxsLCBlcnJvciwgYW5kIGNvcnJlY3QgUlRzIChHcmFzbWFuIGV0IGFsLiwgMjAwOSkKICAgICAgRGVuc2l0eSBvZiBlcnJvciBhbmQgY29ycmVjdCBSVCBkaXN0cmlidXRpb25zIChBbGV4YW5kcm93aWN6LCAyMDIwKQogICAgICBFWi1kaWZmdXNpb24gbW9kZWwgKFdhZ2VubWFrZXJzIGV0IGFsLiwgMjAwNykKICAqLwogIGNsYXNzIERETU1hdGggewogICAgc3RhdGljIHMgPSB7CiAgICAgIERFRkFVTFQ6IDEKICAgIH07CiAgICBzdGF0aWMgYSA9IHsKICAgICAgREVGQVVMVDogMS4yLAogICAgICBNSU46IDAuMDEsCiAgICAgIE1BWDogMi4wLAogICAgICBTVEVQOiAwLjAxLAogICAgICBKVU1QOiAwLjEKICAgIH07CiAgICBzdGF0aWMgeiA9IHsKICAgICAgREVGQVVMVDogMC41NSwKICAgICAgTUlOOiAwLjAxLAogICAgICBNQVg6IDAuOTksCiAgICAgIFNURVA6IDAuMDEsCiAgICAgIEpVTVA6IDAuMQogICAgfTsKICAgIHN0YXRpYyB2ID0gewogICAgICBERUZBVUxUOiAxLjUsCiAgICAgIE1JTjogMC4wMSwKICAgICAgTUFYOiA1LjAsCiAgICAgIFNURVA6IDAuMDEsCiAgICAgIEpVTVA6IDAuMQogICAgfTsKICAgIHN0YXRpYyB0MCA9IHsKICAgICAgREVGQVVMVDogMTUwLAogICAgICBNSU46IDAsCiAgICAgIE1BWDogNTAwLAogICAgICBTVEVQOiAxLAogICAgICBKVU1QOiAxMAogICAgfTsKCiAgICAvLyBDYWxjdWxhdGUgYSBidW5jaCBvZiBzdGF0aXN0aWNzIGZvciBhbiBhcnJheSBvZiB0cmlhbHMKICAgIHN0YXRpYyB0cmlhbHMyc3RhdHModHJpYWxzKSB7CiAgICAgIGNvbnN0IHN0YXRzID0ge307CgogICAgICAvLyBGaXJzdC1vcmRlciBzdW1zCiAgICAgIGNvbnN0IHN1bXMgPSB0cmlhbHMucmVkdWNlKChhY2N1bXVsYXRvciwgdHJpYWwpID0+IHsKICAgICAgICBzd2l0Y2ggKHRyaWFsLm91dGNvbWUpIHsKICAgICAgICAgIGNhc2UgJ2NvcnJlY3QnOgogICAgICAgICAgICBhY2N1bXVsYXRvci5jb3JyZWN0Q291bnQgKz0gMTsKICAgICAgICAgICAgYWNjdW11bGF0b3IuY29ycmVjdFJUU3VtICs9IHRyaWFsLnJ0OwogICAgICAgICAgICBicmVhazsKICAgICAgICAgIGNhc2UgJ2Vycm9yJzoKICAgICAgICAgICAgYWNjdW11bGF0b3IuZXJyb3JDb3VudCArPSAxOwogICAgICAgICAgICBhY2N1bXVsYXRvci5lcnJvclJUU3VtICs9IHRyaWFsLnJ0OwogICAgICAgICAgICBicmVhazsKICAgICAgICAgIGNhc2UgJ25yJzoKICAgICAgICAgICAgYWNjdW11bGF0b3IubnJDb3VudCArPSAxOwogICAgICAgICAgICBicmVhazsKICAgICAgICAgIC8vIE5vLW9wCiAgICAgICAgfQogICAgICAgIHJldHVybiBhY2N1bXVsYXRvcjsKICAgICAgfSwgewogICAgICAgIGNvcnJlY3RDb3VudDogMCwKICAgICAgICBlcnJvckNvdW50OiAwLAogICAgICAgIG5yQ291bnQ6IDAsCiAgICAgICAgY29ycmVjdFJUU3VtOiAwLAogICAgICAgIGVycm9yUlRTdW06IDAKICAgICAgfSk7CgogICAgICAvLyBGaXJzdC1vcmRlciBzdGF0cwogICAgICBzdGF0cy5jb3JyZWN0Q291bnQgPSBzdW1zLmNvcnJlY3RDb3VudDsKICAgICAgc3RhdHMuZXJyb3JDb3VudCA9IHN1bXMuZXJyb3JDb3VudDsKICAgICAgc3RhdHMubnJDb3VudCA9IHN1bXMubnJDb3VudDsKICAgICAgc3RhdHMuYWNjdXJhY3kgPSBzdW1zLmNvcnJlY3RDb3VudCAvIChzdW1zLmNvcnJlY3RDb3VudCArIHN1bXMuZXJyb3JDb3VudCArIHN1bXMubnJDb3VudCk7CiAgICAgIHN0YXRzLmNvcnJlY3RNZWFuUlQgPSBzdW1zLmNvcnJlY3RSVFN1bSAvIHN1bXMuY29ycmVjdENvdW50OwogICAgICBzdGF0cy5lcnJvck1lYW5SVCA9IHN1bXMuZXJyb3JSVFN1bSAvIHN1bXMuZXJyb3JDb3VudDsKICAgICAgc3RhdHMubWVhblJUID0gKHN1bXMuY29ycmVjdFJUU3VtICsgc3Vtcy5lcnJvclJUU3VtKSAvIChzdW1zLmNvcnJlY3RDb3VudCArIHN1bXMuZXJyb3JDb3VudCk7CgogICAgICAvLyBTZWNvbmQtb3JkZXIgc3VtcwogICAgICBjb25zdCBzdW1zMiA9IHRyaWFscy5yZWR1Y2UoKGFjY3VtdWxhdG9yLCB0cmlhbCkgPT4gewogICAgICAgIHN3aXRjaCAodHJpYWwub3V0Y29tZSkgewogICAgICAgICAgY2FzZSAnY29ycmVjdCc6CiAgICAgICAgICAgIGFjY3VtdWxhdG9yLnNzICs9ICh0cmlhbC5ydCAtIHN0YXRzLm1lYW5SVCkgKiogMjsKICAgICAgICAgICAgYWNjdW11bGF0b3IuY29ycmVjdFNTICs9ICh0cmlhbC5ydCAtIHN0YXRzLmNvcnJlY3RNZWFuUlQpICoqIDI7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSAnZXJyb3InOgogICAgICAgICAgICBhY2N1bXVsYXRvci5zcyArPSAodHJpYWwucnQgLSBzdGF0cy5tZWFuUlQpICoqIDI7CiAgICAgICAgICAgIGFjY3VtdWxhdG9yLmVycm9yU1MgKz0gKHRyaWFsLnJ0IC0gc3RhdHMuZXJyb3JNZWFuUlQpICoqIDI7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgLy8gTm8tb3AKICAgICAgICB9CiAgICAgICAgcmV0dXJuIGFjY3VtdWxhdG9yOwogICAgICB9LCB7CiAgICAgICAgc3M6IDAsCiAgICAgICAgY29ycmVjdFNTOiAwLAogICAgICAgIGVycm9yU1M6IDAKICAgICAgfSk7CgogICAgICAvLyBTZWNvbmQtb3JkZXIgc3RhdHMKICAgICAgc3RhdHMuY29ycmVjdFNEUlQgPSBzdGF0cy5jb3JyZWN0Q291bnQgPiAxID8gTWF0aC5zcXJ0KHN1bXMyLmNvcnJlY3RTUyAvIChzdGF0cy5jb3JyZWN0Q291bnQgLSAxKSkgOiBOYU47CiAgICAgIHN0YXRzLmVycm9yU0RSVCA9IHN0YXRzLmVycm9yQ291bnQgPiAxID8gTWF0aC5zcXJ0KHN1bXMyLmVycm9yU1MgLyAoc3RhdHMuZXJyb3JDb3VudCAtIDEpKSA6IE5hTjsKICAgICAgc3RhdHMuc2RSVCA9IHN0YXRzLmNvcnJlY3RDb3VudCArIHN0YXRzLmVycm9yQ291bnQgPiAxID8gTWF0aC5zcXJ0KHN1bXMyLnNzIC8gKHN0YXRzLmNvcnJlY3RDb3VudCArIHN0YXRzLmVycm9yQ291bnQgLSAxKSkgOiBOYU47CiAgICAgIHJldHVybiBzdGF0czsKICAgIH0KCiAgICAvLyBQcm9iYWJpbGl0eSBvZiBhbiBFcnJvciBSZXNwb25zZQogICAgc3RhdGljIGF6djJwRShhLCB6LCB2LCBzID0gRERNTWF0aC5zLkRFRkFVTFQpIHsKICAgICAgY29uc3QgelByaW1lID0gYSAqIHo7CiAgICAgIGNvbnN0IEEgPSBNYXRoLmV4cCgtMiAqIHYgKiBhIC8gcyAqKiAyKTsKICAgICAgY29uc3QgWiA9IE1hdGguZXhwKC0yICogdiAqIHpQcmltZSAvIHMgKiogMik7CiAgICAgIHJldHVybiAoQSAtIFopIC8gKEEgLSAxKTsKICAgIH0KCiAgICAvLyBQcm9iYWJpbGl0eSBvZiBhIENvcnJlY3QgUmVzcG9uc2UKICAgIHN0YXRpYyBhenYycEMoYSwgeiwgdiwgcyA9IERETU1hdGgucy5ERUZBVUxUKSB7CiAgICAgIHJldHVybiBERE1NYXRoLmF6djJwRShhLCAxIC0geiwgLXYsIHMpOwogICAgfQoKICAgIC8vIE1lYW4gT3ZlcmFsbCBSVAogICAgLy8gRXF1YXRpb24gNSAoR3Jhc21hbiBldCBhbC4sIDIwMDkpCiAgICBzdGF0aWMgYXp2dDAybShhLCB6LCB2LCB0MCwgcyA9IERETU1hdGgucy5ERUZBVUxUKSB7CiAgICAgIGNvbnN0IHpQcmltZSA9IGEgKiB6OwogICAgICBjb25zdCBBID0gTWF0aC5leHAoLTIgKiB2ICogYSAvIHMgKiogMikgLSAxOwogICAgICBjb25zdCBaID0gTWF0aC5leHAoLTIgKiB2ICogelByaW1lIC8gcyAqKiAyKSAtIDE7CiAgICAgIGNvbnN0IG1lYW4gPSAtKHpQcmltZSAvIHYpICsgYSAvIHYgKiAoWiAvIEEpOwogICAgICByZXR1cm4gdDAgKyBtZWFuICogMTAwMDsKICAgIH0KCiAgICAvLyBTRCBPdmVyYWxsIFJUCiAgICAvLyBFcXVhdGlvbiA2IChHcmFzbWFuIGV0IGFsLiwgMjAwOSkKICAgIHN0YXRpYyBhenYyc2QoYSwgeiwgdiwgcyA9IERETU1hdGgucy5ERUZBVUxUKSB7CiAgICAgIGNvbnN0IHpQcmltZSA9IGEgKiB6OwogICAgICBjb25zdCBBID0gTWF0aC5leHAoLTIgKiB2ICogYSAvIHMgKiogMikgLSAxOwogICAgICBjb25zdCBaID0gTWF0aC5leHAoLTIgKiB2ICogelByaW1lIC8gcyAqKiAyKSAtIDE7CiAgICAgIGNvbnN0IHZhcmlhbmNlID0gKC12ICogYSAqKiAyICogKFogKyA0KSAqIFogLyBBICoqIDIgKyAoKC0zICogdiAqIGEgKiogMiArIDQgKiB2ICogelByaW1lICogYSArIHMgKiogMiAqIGEpICogWiArIDQgKiB2ICogelByaW1lICogYSkgLyBBIC0gcyAqKiAyICogelByaW1lKSAvIHYgKiogMzsKICAgICAgcmV0dXJuIE1hdGguc3FydCh2YXJpYW5jZSkgKiAxMDAwOwogICAgfQoKICAgIC8vIE1lYW4gRXJyb3IgUlQKICAgIC8vIEVxdWF0aW9uIDEzIChHcmFzbWFuIGV0IGFsLiwgMjAwOSkKICAgIHN0YXRpYyBhenZ0MDJtRShhLCB6LCB2LCB0MCwgcyA9IERETU1hdGgucy5ERUZBVUxUKSB7CiAgICAgIGZ1bmN0aW9uIHBoaSh4LCB5KSB7CiAgICAgICAgcmV0dXJuIE1hdGguZXhwKDIgKiB2ICogeSAvIHMgKiogMikgLSBNYXRoLmV4cCgyICogdiAqIHggLyBzICoqIDIpOwogICAgICB9CiAgICAgIGNvbnN0IHpQcmltZSA9IGEgKiB6OwogICAgICBjb25zdCBtZWFuID0gKHpQcmltZSAqIChwaGkoelByaW1lIC0gYSwgYSkgKyBwaGkoMCwgelByaW1lKSkgKyAyICogYSAqIHBoaSh6UHJpbWUsIDApKSAvICh2ICogcGhpKHpQcmltZSwgYSkgKiBwaGkoLWEsIDApKTsKICAgICAgcmV0dXJuIHQwICsgbWVhbiAqIDEwMDA7CiAgICB9CgogICAgLy8gU0QgRXJyb3IgUlQKICAgIC8vIEVxdWF0aW9uIDE0IChHcmFzbWFuIGV0IGFsLiwgMjAwOSkKICAgIHN0YXRpYyBhenYyc2RFKGEsIHosIHYsIHMgPSBERE1NYXRoLnMuREVGQVVMVCkgewogICAgICBmdW5jdGlvbiBwaGkoeCwgeSkgewogICAgICAgIHJldHVybiBNYXRoLmV4cCgyICogdiAqIHkgLyBzICoqIDIpIC0gTWF0aC5leHAoMiAqIHYgKiB4IC8gcyAqKiAyKTsKICAgICAgfQogICAgICBjb25zdCB6UHJpbWUgPSBhICogejsKICAgICAgY29uc3QgdmFyaWFuY2UgPSAtMiAqIGEgKiBwaGkoMCwgelByaW1lKSAqICgyICogdiAqIGEgKiBwaGkoelByaW1lLCAyICogYSkgKyBzICoqIDIgKiBwaGkoMCwgYSkgKiBwaGkoelByaW1lLCBhKSkgKiBNYXRoLmV4cCgyICogdiAqIGEgLyBzICoqIDIpIC8gKHYgKiogMyAqIHBoaSgwLCBhKSAqKiAyICogcGhpKHpQcmltZSwgYSkgKiogMikgKyAoNCAqIHYgKiB6UHJpbWUgKiAoMiAqIGEgLSB6UHJpbWUpICogTWF0aC5leHAoMiAqIHYgKiAoelByaW1lICsgYSkgLyBzICoqIDIpICsgelByaW1lICogcyAqKiAyICogcGhpKDIgKiB6UHJpbWUsIDIgKiBhKSkgLyAodiAqKiAzICogcGhpKHpQcmltZSwgYSkgKiogMik7CiAgICAgIHJldHVybiBNYXRoLnNxcnQodmFyaWFuY2UpICogMTAwMDsKICAgIH0KCiAgICAvLyBNZWFuIENvcnJlY3QgUlQKICAgIHN0YXRpYyBhenZ0MDJtQyhhLCB6LCB2LCB0MCwgcyA9IERETU1hdGgucy5ERUZBVUxUKSB7CiAgICAgIHJldHVybiBERE1NYXRoLmF6dnQwMm1FKGEsIDEgLSB6LCAtdiwgdDAsIHMpOwogICAgfQoKICAgIC8vIFNEIENvcnJlY3QgUlQKICAgIHN0YXRpYyBhenYyc2RDKGEsIHosIHYsIHMgPSBERE1NYXRoLnMuREVGQVVMVCkgewogICAgICByZXR1cm4gRERNTWF0aC5henYyc2RFKGEsIDEgLSB6LCAtdiwgcyk7CiAgICB9CgogICAgLy8gRGVuc2l0eSBvZiBFcnJvciBSVAogICAgc3RhdGljIHRhenYyZ0UodCwgYSwgeiwgdiwgcyA9IERETU1hdGgucy5ERUZBVUxUKSB7CiAgICAgIGlmICghdCkgcmV0dXJuIDA7CiAgICAgIGNvbnN0IHpQcmltZSA9IGEgKiB6OwogICAgICBjb25zdCBiYXNlID0gTWF0aC5QSSAqIHMgKiogMiAvIGEgKiogMiAqIE1hdGguZXhwKC16UHJpbWUgKiB2IC8gcyAqKiAyKTsKICAgICAgbGV0IGsgPSAwOwogICAgICBsZXQgdGVybSA9IDA7CiAgICAgIGxldCBzdW0gPSAwOwogICAgICBkbyB7CiAgICAgICAgayArPSAxOwogICAgICAgIHRlcm0gPSBrICogTWF0aC5zaW4oTWF0aC5QSSAqIHpQcmltZSAqIGsgLyBhKSAqIE1hdGguZXhwKC0wLjUgKiAodiAqKiAyIC8gcyAqKiAyICsgTWF0aC5QSSAqKiAyICogayAqKiAyICogcyAqKiAyIC8gYSAqKiAyKSAqIHQpOwogICAgICAgIHN1bSArPSB0ZXJtOwogICAgICB9IHdoaWxlIChrIDwgMjAwKTsgLy8gPz8gSEFDSwoKICAgICAgcmV0dXJuIGJhc2UgKiBzdW07CiAgICB9CgogICAgLy8gRGVuc2l0eSBvZiBDb3JyZWN0IFJUCiAgICBzdGF0aWMgdGF6djJnQyh0LCBhLCB6LCB2LCBzID0gRERNTWF0aC5zLkRFRkFVTFQpIHsKICAgICAgcmV0dXJuIERETU1hdGgudGF6djJnRSh0LCBhLCAxIC0geiwgLXYsIHMpOwogICAgfQoKICAgIC8vIEFkYXB0ZWQgZnJvbSBodHRwczovL3Jhb3VsLnNvY3NjaS51dmEubmwvRVoyL0VaMl9uZXcuaHRtbAogICAgLy8gRVotZnVuY3Rpb24gZm9yIHN0YXJ0aW5nIHZhbHVlcwogICAgLy8gaW5wdXQ6IG9iaiAtIE9iamVjdCB3aXRoIHByb3BlcnRpZXMKICAgIC8vICAgIHBDIC0gUHJvcG9ydGlvbiBjb3JyZWN0CiAgICAvLyAgICBzZCAtIHNhbXBsZSBzdGFuZGFyZCBkZXZpYXRpb24gb2YgdGhlIFJUJ3MgaW4gbXMKICAgIC8vICAgIG0gLSBzYW1wbGUgbWVhbiBvZiB0aGUgUlQncyBpbiBtcwogICAgLy8gICAgcyAtIGRpZmZ1c2lvbiBzdGFuZGFyZCBkZXZpYXRpb24KICAgIC8vIHJldHVybnM6IE9iamVjdCB3aXRoIHByb3BlcnRpZXMgdiwgYSwgYW5kIHQwLCBjb250YWluaW5nIEVaLWVzdGltYXRlcyBvZiB0aGVzZSBwYXJhbWV0ZXJzCiAgICBzdGF0aWMgZGF0YTJleih7CiAgICAgIGFjY3VyYWN5OiBwQywKICAgICAgc2RSVDogc2QsCiAgICAgIG1lYW5SVDogbSwKICAgICAgcwogICAgfSkgewogICAgICBmdW5jdGlvbiBzaWduKHIpIHsKICAgICAgICByZXR1cm4gciA+IDAgPyAxIDogciA9PT0gMCA/IDAgOiAtMTsKICAgICAgfQogICAgICBmdW5jdGlvbiBsb2dpdChwKSB7CiAgICAgICAgcmV0dXJuIE1hdGgubG9nKHAgLyAoMSAtIHApKTsKICAgICAgfQogICAgICBjb25zdCB2cnQgPSAoc2QgLyAxMDAwKSAqKiAyOwogICAgICBjb25zdCBtcnQgPSBtIC8gMTAwMDsKICAgICAgY29uc3QgczIgPSBzICoqIDI7CiAgICAgIGNvbnN0IGwgPSBsb2dpdChwQyk7CiAgICAgIGNvbnN0IHggPSBsICogKGwgKiBwQyAqKiAyIC0gbCAqIHBDICsgcEMgLSAwLjUpIC8gdnJ0OwogICAgICBjb25zdCB2ID0gc2lnbihwQyAtIDAuNSkgKiBzICogeCAqKiAoMSAvIDQpOwogICAgICBjb25zdCBhID0gczIgKiBsb2dpdChwQykgLyB2OwogICAgICBjb25zdCB5ID0gLXYgKiBhIC8gczI7CiAgICAgIGNvbnN0IG1kdCA9IGEgLyAoMiAqIHYpICogKDEgLSBNYXRoLmV4cCh5KSkgLyAoMSArIE1hdGguZXhwKHkpKTsKICAgICAgY29uc3QgdDAgPSBtcnQgPyBtcnQgLSBtZHQgOiBudWxsOyAvLyBjb21wdXRlIFRlciBvbmx5IGlmIE1SVCB3YXMgcHJvdmlkZWQKCiAgICAgIGNvbnN0IHQwUHJpbWUgPSB0MCAqIDEwMDA7CiAgICAgIHJldHVybiB7CiAgICAgICAgdiwKICAgICAgICBhLAogICAgICAgIHQwOiB0MFByaW1lLAogICAgICAgIHMKICAgICAgfTsKICAgIH0KICAgIHN0YXRpYyBkYXRhMmV6MigpIHsKICAgICAgdGhyb3cgbmV3IEVycm9yKCdkYXRhMmV6MiBpcyBub3QgaW1wbGVtZW50ZWQhJyk7CiAgICB9CiAgfQoKICAvLyBJbnRlcm5hbCBkZXBlbmRlbmNpZXMKCiAgLyogZXNsaW50IG5vLXJlc3RyaWN0ZWQtZ2xvYmFsczogWyJvZmYiLCAic2VsZiJdICovCgogIHNlbGYub25tZXNzYWdlID0gZXZlbnQgPT4gewogICAgY29uc3QgcGFyYW1zID0gRERNTWF0aC5kYXRhMmV6KHsKICAgICAgLi4uZXZlbnQuZGF0YSwKICAgICAgczogRERNTWF0aC5zLkRFRkFVTFQKICAgIH0pOwoKICAgIC8vICMjIyMjIEFyYml0cmFyeSBkZWZhdWx0IHZhbHVlcyEhIQogICAgY29uc3QgYSA9ICFpc05hTihwYXJhbXMuYSkgPyBwYXJhbXMuYSA6IDEuNTsKICAgIGNvbnN0IHogPSAhaXNOYU4ocGFyYW1zLnopID8gcGFyYW1zLnogOiAwLjU7CiAgICBjb25zdCB2ID0gIWlzTmFOKHBhcmFtcy52KSA/IHBhcmFtcy52IDogMC4xOwogICAgY29uc3QgdDAgPSAhaXNOYU4ocGFyYW1zLnQwKSA/IHBhcmFtcy50MCA6IDEwMDsKICAgIGNvbnN0IHMgPSAhaXNOYU4ocGFyYW1zLnMpID8gcGFyYW1zLnMgOiBERE1NYXRoLnMuREVGQVVMVDsKICAgIGNvbnN0IHByZWRpY3RlZCA9IHsKICAgICAgYWNjdXJhY3k6IERETU1hdGguYXp2MnBDKGEsIHosIHYpLAogICAgICBjb3JyZWN0TWVhblJUOiBERE1NYXRoLmF6dnQwMm1DKGEsIHosIHYsIHQwKSwKICAgICAgZXJyb3JNZWFuUlQ6IERETU1hdGguYXp2dDAybUUoYSwgeiwgdiwgdDApLAogICAgICBtZWFuUlQ6IERETU1hdGguYXp2dDAybShhLCB6LCB2LCB0MCksCiAgICAgIGNvcnJlY3RTRFJUOiBERE1NYXRoLmF6djJzZEMoYSwgeiwgdiksCiAgICAgIGVycm9yU0RSVDogRERNTWF0aC5henYyc2RFKGEsIHosIHYpLAogICAgICBzZFJUOiBERE1NYXRoLmF6djJzZChhLCB6LCB2KQogICAgfTsKICAgIHNlbGYucG9zdE1lc3NhZ2UoewogICAgICBwYXJhbXM6IHsKICAgICAgICBhLAogICAgICAgIHosCiAgICAgICAgdiwKICAgICAgICB0MCwKICAgICAgICBzCiAgICAgIH0sCiAgICAgIHByZWRpY3RlZAogICAgfSk7CiAgfTsKCn0pKCk7Ci8vIyBzb3VyY2VNYXBwaW5nVVJMPWRkbS1maXQtd29ya2VyLmpzLm1hcAoK","data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGRtLWZpdC13b3JrZXIuanMiLCJzb3VyY2VzIjpbIi4uL2FjY3VtdWxhYmxlLW1hdGgvc3JjL2RkbS1tYXRoLmpzIiwiLi4vYWNjdW11bGFibGUtbWF0aC9zcmMvaW5kZXguanMiLCJzcmMvY29tcG9uZW50cy9kZG0tZml0LXdvcmtlci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcbi8qXG4gIERETU1hdGggU3RhdGljIENsYXNzIC0gTm90IGludGVuZGVkIGZvciBpbnN0YW50aWF0aW9uIVxuXG4gIE1vZGVsIHBhcmFtZXRlcnM6XG4gICAgYSA9IGJvdW5kYXJ5IHNlcGFyYXRpb24gWzAsIEluZmluaXR5KVxuICAgIHogPSBzdGFydGluZyBwb2ludCBhcyBhIHByb3BvcnRpb24gb2YgYSAoMCwgMSlcbiAgICB2ID0gZHJpZnQgcmF0ZSAocGVyIHNlY29uZCkgKC1JbmZpbml0eSwgSW5maW5pdHkpXG4gICAgdDAgPSBub24tZGVjaXNpb24gdGltZSAoaW4gbWlsbGlzZWNvbmRzKSAoMCwgSW5maW5pdHkpXG4gICAgcyA9IHdpdGhpbi10cmlhbCB2YXJpYWJpbGl0eSBpbiBkcmlmdCByYXRlIChzXjIgPSBpbmZpbml0ZXNpbWFsIHZhcmlhbmNlKSBbMCwgSW5maW5pdHkpXG5cbiAgICB6UHJpbWUgPSBzdGFydGluZyBwb2ludCBvbiBhIDAtdG8tYSBzY2FsZSAodHlwaWNhbGx5IHVzZWQgaW4gcHVibGlzaGVkIGVxdWF0aW9ucykgWzAsIEluZmluaXR5KVxuXG4gIEJlaGF2aW9yYWwgdmFyaWFibGVzOlxuICAgIHBFID0gcHJvcG9ydGlvbiBvZiBlcnJvciB0cmlhbHNcbiAgICBwQyA9IHByb3BvcnRpb24gb2YgY29ycmVjdCB0cmlhbHNcbiAgICBtID0gbWVhbiBvZiBvdmVyYWxsIFJUcyAoaW4gbWlsbGlzZWNvbmRzKVxuICAgIG1FID0gbWVhbiBvZiBlcnJvciBSVHMgKGluIG1pbGxpc2Vjb25kcylcbiAgICBtQyA9IG1lYW4gY29ycmVjdCBSVHMgKGluIG1pbGxpc2Vjb25kcylcbiAgICBzZCA9IHN0YW5kYXJkIGRldmlhdGlvbiBvZiBvdmVyYWxsIFJUcyAoaW4gbWlsbGlzZWNvbmRzKVxuICAgIHNkRSA9IHN0YW5kYXJkIGRldmlhdGlvbiBvZiBlcnJvciBSVHMgKGluIG1pbGxpc2Vjb25kcylcbiAgICBzZEMgPSBzdGFuZGFyZCBkZXZpYXRpb24gb2YgY29ycmVjdCBSVHMgKGluIG1pbGxpc2Vjb25kcylcblxuICBFcXVhdGlvbnM6XG4gICAgUHJvYmFiaWxpdHkgb2YgY29ycmVjdCBhbmQgZXJyb3IgcmVzcG9uc2VzIChBbGV4YW5kcm93aWN6LCAyMDIwKVxuICAgIE1lYW4gb2Ygb3ZlcmFsbCwgZXJyb3IsIGFuZCBjb3JyZWN0IFJUcyAoR3Jhc21hbiBldCBhbC4sIDIwMDkpXG4gICAgU3RhbmRhcmQgZGV2aWF0aW9uIG9mIG92ZXJhbGwsIGVycm9yLCBhbmQgY29ycmVjdCBSVHMgKEdyYXNtYW4gZXQgYWwuLCAyMDA5KVxuICAgIERlbnNpdHkgb2YgZXJyb3IgYW5kIGNvcnJlY3QgUlQgZGlzdHJpYnV0aW9ucyAoQWxleGFuZHJvd2ljeiwgMjAyMClcbiAgICBFWi1kaWZmdXNpb24gbW9kZWwgKFdhZ2VubWFrZXJzIGV0IGFsLiwgMjAwNylcbiovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBERE1NYXRoIHtcbiAgc3RhdGljIHMgPSB7XG4gICAgREVGQVVMVDogMSxcbiAgfTtcblxuICBzdGF0aWMgYSA9IHtcbiAgICBERUZBVUxUOiAxLjIsXG4gICAgTUlOOiAwLjAxLFxuICAgIE1BWDogMi4wLFxuICAgIFNURVA6IDAuMDEsXG4gICAgSlVNUDogMC4xLFxuICB9O1xuXG4gIHN0YXRpYyB6ID0ge1xuICAgIERFRkFVTFQ6IDAuNTUsXG4gICAgTUlOOiAwLjAxLFxuICAgIE1BWDogMC45OSxcbiAgICBTVEVQOiAwLjAxLFxuICAgIEpVTVA6IDAuMSxcbiAgfTtcblxuICBzdGF0aWMgdiA9IHtcbiAgICBERUZBVUxUOiAxLjUsXG4gICAgTUlOOiAwLjAxLFxuICAgIE1BWDogNS4wLFxuICAgIFNURVA6IDAuMDEsXG4gICAgSlVNUDogMC4xLFxuICB9O1xuXG4gIHN0YXRpYyB0MCA9IHtcbiAgICBERUZBVUxUOiAxNTAsXG4gICAgTUlOOiAwLFxuICAgIE1BWDogNTAwLFxuICAgIFNURVA6IDEsXG4gICAgSlVNUDogMTAsXG4gIH07XG5cbiAgLy8gQ2FsY3VsYXRlIGEgYnVuY2ggb2Ygc3RhdGlzdGljcyBmb3IgYW4gYXJyYXkgb2YgdHJpYWxzXG4gIHN0YXRpYyB0cmlhbHMyc3RhdHModHJpYWxzKSB7XG4gICAgY29uc3Qgc3RhdHMgPSB7fTtcblxuICAgIC8vIEZpcnN0LW9yZGVyIHN1bXNcbiAgICBjb25zdCBzdW1zID0gdHJpYWxzLnJlZHVjZShcbiAgICAgIChhY2N1bXVsYXRvciwgdHJpYWwpID0+IHtcbiAgICAgICAgc3dpdGNoICh0cmlhbC5vdXRjb21lKSB7XG4gICAgICAgICAgY2FzZSAnY29ycmVjdCc6XG4gICAgICAgICAgICBhY2N1bXVsYXRvci5jb3JyZWN0Q291bnQgKz0gMTtcbiAgICAgICAgICAgIGFjY3VtdWxhdG9yLmNvcnJlY3RSVFN1bSArPSB0cmlhbC5ydDtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgJ2Vycm9yJzpcbiAgICAgICAgICAgIGFjY3VtdWxhdG9yLmVycm9yQ291bnQgKz0gMTtcbiAgICAgICAgICAgIGFjY3VtdWxhdG9yLmVycm9yUlRTdW0gKz0gdHJpYWwucnQ7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlICducic6XG4gICAgICAgICAgICBhY2N1bXVsYXRvci5uckNvdW50ICs9IDE7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgLy8gTm8tb3BcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYWNjdW11bGF0b3I7XG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjb3JyZWN0Q291bnQ6IDAsXG4gICAgICAgIGVycm9yQ291bnQ6IDAsXG4gICAgICAgIG5yQ291bnQ6IDAsXG5cbiAgICAgICAgY29ycmVjdFJUU3VtOiAwLFxuICAgICAgICBlcnJvclJUU3VtOiAwLFxuICAgICAgfSxcbiAgICApO1xuXG4gICAgLy8gRmlyc3Qtb3JkZXIgc3RhdHNcbiAgICBzdGF0cy5jb3JyZWN0Q291bnQgPSBzdW1zLmNvcnJlY3RDb3VudDtcbiAgICBzdGF0cy5lcnJvckNvdW50ID0gc3Vtcy5lcnJvckNvdW50O1xuICAgIHN0YXRzLm5yQ291bnQgPSBzdW1zLm5yQ291bnQ7XG4gICAgc3RhdHMuYWNjdXJhY3kgPSBzdW1zLmNvcnJlY3RDb3VudCAvIChzdW1zLmNvcnJlY3RDb3VudCArIHN1bXMuZXJyb3JDb3VudCArIHN1bXMubnJDb3VudCk7XG5cbiAgICBzdGF0cy5jb3JyZWN0TWVhblJUID0gc3Vtcy5jb3JyZWN0UlRTdW0gLyBzdW1zLmNvcnJlY3RDb3VudDtcbiAgICBzdGF0cy5lcnJvck1lYW5SVCA9IHN1bXMuZXJyb3JSVFN1bSAvIHN1bXMuZXJyb3JDb3VudDtcbiAgICBzdGF0cy5tZWFuUlQgPSAoc3Vtcy5jb3JyZWN0UlRTdW0gKyBzdW1zLmVycm9yUlRTdW0pIC8gKHN1bXMuY29ycmVjdENvdW50ICsgc3Vtcy5lcnJvckNvdW50KTtcblxuICAgIC8vIFNlY29uZC1vcmRlciBzdW1zXG4gICAgY29uc3Qgc3VtczIgPSB0cmlhbHMucmVkdWNlKFxuICAgICAgKGFjY3VtdWxhdG9yLCB0cmlhbCkgPT4ge1xuICAgICAgICBzd2l0Y2ggKHRyaWFsLm91dGNvbWUpIHtcbiAgICAgICAgICBjYXNlICdjb3JyZWN0JzpcbiAgICAgICAgICAgIGFjY3VtdWxhdG9yLnNzICs9ICh0cmlhbC5ydCAtIHN0YXRzLm1lYW5SVCkgKiogMjtcbiAgICAgICAgICAgIGFjY3VtdWxhdG9yLmNvcnJlY3RTUyArPSAodHJpYWwucnQgLSBzdGF0cy5jb3JyZWN0TWVhblJUKSAqKiAyO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAnZXJyb3InOlxuICAgICAgICAgICAgYWNjdW11bGF0b3Iuc3MgKz0gKHRyaWFsLnJ0IC0gc3RhdHMubWVhblJUKSAqKiAyO1xuICAgICAgICAgICAgYWNjdW11bGF0b3IuZXJyb3JTUyArPSAodHJpYWwucnQgLSBzdGF0cy5lcnJvck1lYW5SVCkgKiogMjtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAvLyBOby1vcFxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBhY2N1bXVsYXRvcjtcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHNzOiAwLFxuICAgICAgICBjb3JyZWN0U1M6IDAsXG4gICAgICAgIGVycm9yU1M6IDAsXG4gICAgICB9LFxuICAgICk7XG5cbiAgICAvLyBTZWNvbmQtb3JkZXIgc3RhdHNcbiAgICBzdGF0cy5jb3JyZWN0U0RSVCA9IChzdGF0cy5jb3JyZWN0Q291bnQgPiAxKVxuICAgICAgPyBNYXRoLnNxcnQoc3VtczIuY29ycmVjdFNTIC8gKHN0YXRzLmNvcnJlY3RDb3VudCAtIDEpKVxuICAgICAgOiBOYU47XG4gICAgc3RhdHMuZXJyb3JTRFJUID0gKHN0YXRzLmVycm9yQ291bnQgPiAxKVxuICAgICAgPyBNYXRoLnNxcnQoc3VtczIuZXJyb3JTUyAvIChzdGF0cy5lcnJvckNvdW50IC0gMSkpXG4gICAgICA6IE5hTjtcbiAgICBzdGF0cy5zZFJUID0gKHN0YXRzLmNvcnJlY3RDb3VudCArIHN0YXRzLmVycm9yQ291bnQgPiAxKVxuICAgICAgPyBNYXRoLnNxcnQoc3VtczIuc3MgLyAoc3RhdHMuY29ycmVjdENvdW50ICsgc3RhdHMuZXJyb3JDb3VudCAtIDEpKVxuICAgICAgOiBOYU47XG5cbiAgICByZXR1cm4gc3RhdHM7XG4gIH1cblxuICAvLyBQcm9iYWJpbGl0eSBvZiBhbiBFcnJvciBSZXNwb25zZVxuICBzdGF0aWMgYXp2MnBFKGEsIHosIHYsIHMgPSBERE1NYXRoLnMuREVGQVVMVCkge1xuICAgIGNvbnN0IHpQcmltZSA9IGEgKiB6O1xuXG4gICAgY29uc3QgQSA9IE1hdGguZXhwKCgtMiAqIHYgKiBhKSAvIHMgKiogMik7XG4gICAgY29uc3QgWiA9IE1hdGguZXhwKCgtMiAqIHYgKiB6UHJpbWUpIC8gcyAqKiAyKTtcblxuICAgIHJldHVybiAoQSAtIFopIC8gKEEgLSAxKTtcbiAgfVxuXG4gIC8vIFByb2JhYmlsaXR5IG9mIGEgQ29ycmVjdCBSZXNwb25zZVxuICBzdGF0aWMgYXp2MnBDKGEsIHosIHYsIHMgPSBERE1NYXRoLnMuREVGQVVMVCkge1xuICAgIHJldHVybiBERE1NYXRoLmF6djJwRShhLCAxIC0geiwgLXYsIHMpO1xuICB9XG5cbiAgLy8gTWVhbiBPdmVyYWxsIFJUXG4gIC8vIEVxdWF0aW9uIDUgKEdyYXNtYW4gZXQgYWwuLCAyMDA5KVxuICBzdGF0aWMgYXp2dDAybShhLCB6LCB2LCB0MCwgcyA9IERETU1hdGgucy5ERUZBVUxUKSB7XG4gICAgY29uc3QgelByaW1lID0gYSAqIHo7XG4gICAgY29uc3QgQSA9IE1hdGguZXhwKCgtMiAqIHYgKiBhKSAvIHMgKiogMikgLSAxO1xuICAgIGNvbnN0IFogPSBNYXRoLmV4cCgoLTIgKiB2ICogelByaW1lKSAvIHMgKiogMikgLSAxO1xuXG4gICAgY29uc3QgbWVhbiA9IC0oelByaW1lIC8gdikgKyAoYSAvIHYpICogKFogLyBBKTtcbiAgICByZXR1cm4gdDAgKyBtZWFuICogMTAwMDtcbiAgfVxuXG4gIC8vIFNEIE92ZXJhbGwgUlRcbiAgLy8gRXF1YXRpb24gNiAoR3Jhc21hbiBldCBhbC4sIDIwMDkpXG4gIHN0YXRpYyBhenYyc2QoYSwgeiwgdiwgcyA9IERETU1hdGgucy5ERUZBVUxUKSB7XG4gICAgY29uc3QgelByaW1lID0gYSAqIHo7XG4gICAgY29uc3QgQSA9IE1hdGguZXhwKCgtMiAqIHYgKiBhKSAvIHMgKiogMikgLSAxO1xuICAgIGNvbnN0IFogPSBNYXRoLmV4cCgoLTIgKiB2ICogelByaW1lKSAvIHMgKiogMikgLSAxO1xuXG4gICAgY29uc3QgdmFyaWFuY2UgPSAoXG4gICAgICAoXG4gICAgICAgICgtdiAqIGEgKiogMiAqIChaICsgNCkgKiBaKSAvIEEgKiogMlxuICAgICAgKSArIChcbiAgICAgICAgKCgtMyAqIHYgKiBhICoqIDIgKyA0ICogdiAqIHpQcmltZSAqIGEgKyBzICoqIDIgKiBhKSAqIFogKyA0ICogdiAqIHpQcmltZSAqIGEpIC8gQVxuICAgICAgKSAtIChcbiAgICAgICAgcyAqKiAyICogelByaW1lXG4gICAgICApXG4gICAgKSAvIHYgKiogMztcblxuICAgIHJldHVybiBNYXRoLnNxcnQodmFyaWFuY2UpICogMTAwMDtcbiAgfVxuXG4gIC8vIE1lYW4gRXJyb3IgUlRcbiAgLy8gRXF1YXRpb24gMTMgKEdyYXNtYW4gZXQgYWwuLCAyMDA5KVxuICBzdGF0aWMgYXp2dDAybUUoYSwgeiwgdiwgdDAsIHMgPSBERE1NYXRoLnMuREVGQVVMVCkge1xuICAgIGZ1bmN0aW9uIHBoaSh4LCB5KSB7XG4gICAgICByZXR1cm4gTWF0aC5leHAoKDIgKiB2ICogeSkgLyAocyAqKiAyKSkgLSBNYXRoLmV4cCgoMiAqIHYgKiB4KSAvIChzICoqIDIpKTtcbiAgICB9XG4gICAgY29uc3QgelByaW1lID0gYSAqIHo7XG5cbiAgICBjb25zdCBtZWFuID0gKHpQcmltZSAqIChwaGkoelByaW1lIC0gYSwgYSkgKyBwaGkoMCwgelByaW1lKSkgKyAyICogYSAqIHBoaSh6UHJpbWUsIDApKVxuICAgICAgLyAodiAqIHBoaSh6UHJpbWUsIGEpICogcGhpKC1hLCAwKSk7XG4gICAgcmV0dXJuIHQwICsgbWVhbiAqIDEwMDA7XG4gIH1cblxuICAvLyBTRCBFcnJvciBSVFxuICAvLyBFcXVhdGlvbiAxNCAoR3Jhc21hbiBldCBhbC4sIDIwMDkpXG4gIHN0YXRpYyBhenYyc2RFKGEsIHosIHYsIHMgPSBERE1NYXRoLnMuREVGQVVMVCkge1xuICAgIGZ1bmN0aW9uIHBoaSh4LCB5KSB7XG4gICAgICByZXR1cm4gTWF0aC5leHAoKDIgKiB2ICogeSkgLyAocyAqKiAyKSkgLSBNYXRoLmV4cCgoMiAqIHYgKiB4KSAvIChzICoqIDIpKTtcbiAgICB9XG4gICAgY29uc3QgelByaW1lID0gYSAqIHo7XG5cbiAgICBjb25zdCB2YXJpYW5jZSA9IChcbiAgICAgIChcbiAgICAgICAgLTIgKiBhICogcGhpKDAsIHpQcmltZSlcbiAgICAgICAgKiAoKDIgKiB2ICogYSAqIHBoaSh6UHJpbWUsIDIgKiBhKSkgKyAocyAqKiAyICogcGhpKDAsIGEpICogcGhpKHpQcmltZSwgYSkpKVxuICAgICAgICAqIE1hdGguZXhwKCgyICogdiAqIGEpIC8gcyAqKiAyKVxuICAgICAgKSAvIChcbiAgICAgICAgdiAqKiAzICogcGhpKDAsIGEpICoqIDIgKiBwaGkoelByaW1lLCBhKSAqKiAyXG4gICAgICApXG4gICAgKSArIChcbiAgICAgIChcbiAgICAgICAgNCAqIHYgKiB6UHJpbWUgKiAoMiAqIGEgLSB6UHJpbWUpICogTWF0aC5leHAoKDIgKiB2ICogKHpQcmltZSArIGEpKSAvIHMgKiogMilcbiAgICAgICAgKyB6UHJpbWUgKiBzICoqIDIgKiBwaGkoMiAqIHpQcmltZSwgMiAqIGEpXG4gICAgICApIC8gKFxuICAgICAgICB2ICoqIDMgKiBwaGkoelByaW1lLCBhKSAqKiAyXG4gICAgICApXG4gICAgKTtcblxuICAgIHJldHVybiBNYXRoLnNxcnQodmFyaWFuY2UpICogMTAwMDtcbiAgfVxuXG4gIC8vIE1lYW4gQ29ycmVjdCBSVFxuICBzdGF0aWMgYXp2dDAybUMoYSwgeiwgdiwgdDAsIHMgPSBERE1NYXRoLnMuREVGQVVMVCkge1xuICAgIHJldHVybiBERE1NYXRoLmF6dnQwMm1FKGEsIDEgLSB6LCAtdiwgdDAsIHMpO1xuICB9XG5cbiAgLy8gU0QgQ29ycmVjdCBSVFxuICBzdGF0aWMgYXp2MnNkQyhhLCB6LCB2LCBzID0gRERNTWF0aC5zLkRFRkFVTFQpIHtcbiAgICByZXR1cm4gRERNTWF0aC5henYyc2RFKGEsIDEgLSB6LCAtdiwgcyk7XG4gIH1cblxuICAvLyBEZW5zaXR5IG9mIEVycm9yIFJUXG4gIHN0YXRpYyB0YXp2MmdFKHQsIGEsIHosIHYsIHMgPSBERE1NYXRoLnMuREVGQVVMVCkge1xuICAgIGlmICghdCkgcmV0dXJuIDA7XG5cbiAgICBjb25zdCB6UHJpbWUgPSBhICogejtcbiAgICBjb25zdCBiYXNlID0gKChNYXRoLlBJICogcyAqKiAyKSAvIGEgKiogMikgKiBNYXRoLmV4cCgoLXpQcmltZSAqIHYpIC8gcyAqKiAyKTtcblxuICAgIGxldCBrID0gMDtcbiAgICBsZXQgdGVybSA9IDA7XG4gICAgbGV0IHN1bSA9IDA7XG4gICAgZG8ge1xuICAgICAgayArPSAxO1xuXG4gICAgICB0ZXJtID0ga1xuICAgICAgICAqIE1hdGguc2luKChNYXRoLlBJICogelByaW1lICogaykgLyBhKVxuICAgICAgICAqIE1hdGguZXhwKC0wLjUgKiAoKHYgKiogMiAvIHMgKiogMikgKyAoKE1hdGguUEkgKiogMiAqIGsgKiogMiAqIHMgKiogMikgLyBhICoqIDIpKSAqIHQpO1xuXG4gICAgICBzdW0gKz0gdGVybTtcbiAgICB9IHdoaWxlIChrIDwgMjAwKTsgLy8gPz8gSEFDS1xuXG4gICAgcmV0dXJuIGJhc2UgKiBzdW07XG4gIH1cblxuICAvLyBEZW5zaXR5IG9mIENvcnJlY3QgUlRcbiAgc3RhdGljIHRhenYyZ0ModCwgYSwgeiwgdiwgcyA9IERETU1hdGgucy5ERUZBVUxUKSB7XG4gICAgcmV0dXJuIERETU1hdGgudGF6djJnRSh0LCBhLCAxIC0geiwgLXYsIHMpO1xuICB9XG5cbiAgLy8gQWRhcHRlZCBmcm9tIGh0dHBzOi8vcmFvdWwuc29jc2NpLnV2YS5ubC9FWjIvRVoyX25ldy5odG1sXG4gIC8vIEVaLWZ1bmN0aW9uIGZvciBzdGFydGluZyB2YWx1ZXNcbiAgLy8gaW5wdXQ6IG9iaiAtIE9iamVjdCB3aXRoIHByb3BlcnRpZXNcbiAgLy8gICAgcEMgLSBQcm9wb3J0aW9uIGNvcnJlY3RcbiAgLy8gICAgc2QgLSBzYW1wbGUgc3RhbmRhcmQgZGV2aWF0aW9uIG9mIHRoZSBSVCdzIGluIG1zXG4gIC8vICAgIG0gLSBzYW1wbGUgbWVhbiBvZiB0aGUgUlQncyBpbiBtc1xuICAvLyAgICBzIC0gZGlmZnVzaW9uIHN0YW5kYXJkIGRldmlhdGlvblxuICAvLyByZXR1cm5zOiBPYmplY3Qgd2l0aCBwcm9wZXJ0aWVzIHYsIGEsIGFuZCB0MCwgY29udGFpbmluZyBFWi1lc3RpbWF0ZXMgb2YgdGhlc2UgcGFyYW1ldGVyc1xuICBzdGF0aWMgZGF0YTJleih7XG4gICAgYWNjdXJhY3k6IHBDLFxuICAgIHNkUlQ6IHNkLFxuICAgIG1lYW5SVDogbSxcbiAgICBzLFxuICB9KSB7XG4gICAgZnVuY3Rpb24gc2lnbihyKSB7XG4gICAgICByZXR1cm4gKChyID4gMCkgPyAxIDogKChyID09PSAwKSA/IDAgOiAtMSkpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGxvZ2l0KHApIHtcbiAgICAgIHJldHVybiBNYXRoLmxvZyhwIC8gKDEgLSBwKSk7XG4gICAgfVxuXG4gICAgY29uc3QgdnJ0ID0gKHNkIC8gMTAwMCkgKiogMjtcbiAgICBjb25zdCBtcnQgPSBtIC8gMTAwMDtcblxuICAgIGNvbnN0IHMyID0gcyAqKiAyO1xuICAgIGNvbnN0IGwgPSBsb2dpdChwQyk7XG4gICAgY29uc3QgeCA9IChsICogKGwgKiBwQyAqKiAyIC0gbCAqIHBDICsgcEMgLSAwLjUpKSAvIHZydDtcbiAgICBjb25zdCB2ID0gc2lnbihwQyAtIDAuNSkgKiBzICogeCAqKiAoMSAvIDQpO1xuICAgIGNvbnN0IGEgPSAoczIgKiBsb2dpdChwQykpIC8gdjtcbiAgICBjb25zdCB5ID0gKC12ICogYSkgLyBzMjtcbiAgICBjb25zdCBtZHQgPSAoKGEgLyAoMiAqIHYpKSAqICgxIC0gTWF0aC5leHAoeSkpKSAvICgxICsgTWF0aC5leHAoeSkpO1xuICAgIGNvbnN0IHQwID0gKG1ydCA/IG1ydCAtIG1kdCA6IG51bGwpOyAvLyBjb21wdXRlIFRlciBvbmx5IGlmIE1SVCB3YXMgcHJvdmlkZWRcblxuICAgIGNvbnN0IHQwUHJpbWUgPSB0MCAqIDEwMDA7XG4gICAgcmV0dXJuIHtcbiAgICAgIHYsXG4gICAgICBhLFxuICAgICAgdDA6IHQwUHJpbWUsXG4gICAgICBzLFxuICAgIH07XG4gIH1cblxuICBzdGF0aWMgZGF0YTJlejIoKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdkYXRhMmV6MiBpcyBub3QgaW1wbGVtZW50ZWQhJyk7XG4gIH1cbn1cbiIsIlxuLy8gSW50ZXJuYWwgZGVwZW5kZW5jaWVzXG5pbXBvcnQgRERNTWF0aCBmcm9tICcuL2RkbS1tYXRoJztcblxuZXhwb3J0IGRlZmF1bHQgRERNTWF0aDtcbiIsIi8qIGVzbGludCBuby1yZXN0cmljdGVkLWdsb2JhbHM6IFtcIm9mZlwiLCBcInNlbGZcIl0gKi9cblxuaW1wb3J0IERETU1hdGggZnJvbSAnQGRlY2lkYWJsZXMvYWNjdW11bGFibGUtbWF0aCc7XG5cbnNlbGYub25tZXNzYWdlID0gKGV2ZW50KSA9PiB7XG4gIGNvbnN0IHBhcmFtcyA9IERETU1hdGguZGF0YTJleih7Li4uZXZlbnQuZGF0YSwgczogRERNTWF0aC5zLkRFRkFVTFR9KTtcblxuICAvLyAjIyMjIyBBcmJpdHJhcnkgZGVmYXVsdCB2YWx1ZXMhISFcbiAgY29uc3QgYSA9ICFpc05hTihwYXJhbXMuYSkgPyBwYXJhbXMuYSA6IDEuNTtcbiAgY29uc3QgeiA9ICFpc05hTihwYXJhbXMueikgPyBwYXJhbXMueiA6IDAuNTtcbiAgY29uc3QgdiA9ICFpc05hTihwYXJhbXMudikgPyBwYXJhbXMudiA6IDAuMTtcbiAgY29uc3QgdDAgPSAhaXNOYU4ocGFyYW1zLnQwKSA/IHBhcmFtcy50MCA6IDEwMDtcbiAgY29uc3QgcyA9ICFpc05hTihwYXJhbXMucykgPyBwYXJhbXMucyA6IERETU1hdGgucy5ERUZBVUxUO1xuXG4gIGNvbnN0IHByZWRpY3RlZCA9IHtcbiAgICBhY2N1cmFjeTogRERNTWF0aC5henYycEMoYSwgeiwgdiksXG4gICAgY29ycmVjdE1lYW5SVDogRERNTWF0aC5henZ0MDJtQyhhLCB6LCB2LCB0MCksXG4gICAgZXJyb3JNZWFuUlQ6IERETU1hdGguYXp2dDAybUUoYSwgeiwgdiwgdDApLFxuICAgIG1lYW5SVDogRERNTWF0aC5henZ0MDJtKGEsIHosIHYsIHQwKSxcbiAgICBjb3JyZWN0U0RSVDogRERNTWF0aC5henYyc2RDKGEsIHosIHYpLFxuICAgIGVycm9yU0RSVDogRERNTWF0aC5henYyc2RFKGEsIHosIHYpLFxuICAgIHNkUlQ6IERETU1hdGguYXp2MnNkKGEsIHosIHYpLFxuICB9O1xuXG4gIHNlbGYucG9zdE1lc3NhZ2Uoe1xuICAgIHBhcmFtczoge1xuICAgICAgYSwgeiwgdiwgdDAsIHMsXG4gICAgfSxcbiAgICBwcmVkaWN0ZWQsXG4gIH0pO1xufTtcbiJdLCJuYW1lcyI6WyJERE1NYXRoIiwicyIsIkRFRkFVTFQiLCJhIiwiTUlOIiwiTUFYIiwiU1RFUCIsIkpVTVAiLCJ6IiwidiIsInQwIiwidHJpYWxzMnN0YXRzIiwidHJpYWxzIiwic3RhdHMiLCJzdW1zIiwicmVkdWNlIiwiYWNjdW11bGF0b3IiLCJ0cmlhbCIsIm91dGNvbWUiLCJjb3JyZWN0Q291bnQiLCJjb3JyZWN0UlRTdW0iLCJydCIsImVycm9yQ291bnQiLCJlcnJvclJUU3VtIiwibnJDb3VudCIsImFjY3VyYWN5IiwiY29ycmVjdE1lYW5SVCIsImVycm9yTWVhblJUIiwibWVhblJUIiwic3VtczIiLCJzcyIsImNvcnJlY3RTUyIsImVycm9yU1MiLCJjb3JyZWN0U0RSVCIsIk1hdGgiLCJzcXJ0IiwiTmFOIiwiZXJyb3JTRFJUIiwic2RSVCIsImF6djJwRSIsInpQcmltZSIsIkEiLCJleHAiLCJaIiwiYXp2MnBDIiwiYXp2dDAybSIsIm1lYW4iLCJhenYyc2QiLCJ2YXJpYW5jZSIsImF6dnQwMm1FIiwicGhpIiwieCIsInkiLCJhenYyc2RFIiwiYXp2dDAybUMiLCJhenYyc2RDIiwidGF6djJnRSIsInQiLCJiYXNlIiwiUEkiLCJrIiwidGVybSIsInN1bSIsInNpbiIsInRhenYyZ0MiLCJkYXRhMmV6IiwicEMiLCJzZCIsIm0iLCJzaWduIiwiciIsImxvZ2l0IiwicCIsImxvZyIsInZydCIsIm1ydCIsInMyIiwibCIsIm1kdCIsInQwUHJpbWUiLCJkYXRhMmV6MiIsIkVycm9yIiwic2VsZiIsIm9ubWVzc2FnZSIsImV2ZW50IiwicGFyYW1zIiwiZGF0YSIsImlzTmFOIiwicHJlZGljdGVkIiwicG9zdE1lc3NhZ2UiXSwibWFwcGluZ3MiOiI7OztFQUNBO0VBQ0E7O0VBRUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztFQUVBOztFQUVBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7RUFFQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNlLE1BQU1BLE9BQU8sQ0FBQztFQUMzQixFQUFBLE9BQU9DLENBQUMsR0FBRztFQUNUQyxJQUFBQSxPQUFPLEVBQUU7S0FDVjtFQUVELEVBQUEsT0FBT0MsQ0FBQyxHQUFHO0VBQ1RELElBQUFBLE9BQU8sRUFBRSxHQUFHO0VBQ1pFLElBQUFBLEdBQUcsRUFBRSxJQUFJO0VBQ1RDLElBQUFBLEdBQUcsRUFBRSxHQUFHO0VBQ1JDLElBQUFBLElBQUksRUFBRSxJQUFJO0VBQ1ZDLElBQUFBLElBQUksRUFBRTtLQUNQO0VBRUQsRUFBQSxPQUFPQyxDQUFDLEdBQUc7RUFDVE4sSUFBQUEsT0FBTyxFQUFFLElBQUk7RUFDYkUsSUFBQUEsR0FBRyxFQUFFLElBQUk7RUFDVEMsSUFBQUEsR0FBRyxFQUFFLElBQUk7RUFDVEMsSUFBQUEsSUFBSSxFQUFFLElBQUk7RUFDVkMsSUFBQUEsSUFBSSxFQUFFO0tBQ1A7RUFFRCxFQUFBLE9BQU9FLENBQUMsR0FBRztFQUNUUCxJQUFBQSxPQUFPLEVBQUUsR0FBRztFQUNaRSxJQUFBQSxHQUFHLEVBQUUsSUFBSTtFQUNUQyxJQUFBQSxHQUFHLEVBQUUsR0FBRztFQUNSQyxJQUFBQSxJQUFJLEVBQUUsSUFBSTtFQUNWQyxJQUFBQSxJQUFJLEVBQUU7S0FDUDtFQUVE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");class na extends jr{static get properties(){return{}}constructor(){super(),this.a=ta.a.DEFAULT,this.z=ta.z.DEFAULT,this.v=ta.v.DEFAULT,this.t0=ta.t0.DEFAULT,this.observed={},this.predicted={},this.working=!1,this.queued=!1,this.worker=new aa,this.worker.onmessage=t=>{this.working=!1,this.predicted=t.data.predicted,this.a=t.data.params.a,this.z=t.data.params.z,this.v=t.data.params.v,this.t0=t.data.params.t0,this.requestUpdate(),this.dispatchEvent(new CustomEvent("ddm-fit-update",{detail:{a:this.a,z:this.z,v:this.v,t0:this.t0},bubbles:!0})),this.queued&&this.fit()},this.fit()}fit(){this.working?this.queued=!0:(this.worker.postMessage(this.observed),this.working=!0,this.queued=!1)}clear(){this.observed={},this.fit()}set(t){this.observed=structuredClone(t),this.fit()}static get styles(){return[super.styles,n`
|
|
1232
1277
|
:host {
|
|
1233
1278
|
display: inline-block;
|
|
1234
1279
|
}
|
|
1235
|
-
`]}render(){return
|
|
1280
|
+
`]}render(){return Y`
|
|
1236
1281
|
<div>
|
|
1237
1282
|
<div><b>Observed:</b>
|
|
1238
1283
|
<br/>Accuracy = ${this.observed.accuracy?.toFixed(2)},
|
|
@@ -1259,7 +1304,7 @@ const la=t=>t??J;customElements.define("decidables-slider",class extends oa{stat
|
|
|
1259
1304
|
SD RT = ${this.predicted.sdRT?.toFixed(0)},
|
|
1260
1305
|
</div>
|
|
1261
1306
|
</div>
|
|
1262
|
-
`}}customElements.define("ddm-fit",
|
|
1307
|
+
`}}customElements.define("ddm-fit",na);class oa extends jr{static get properties(){return{a:{attribute:"boundary-separation",type:Number,reflect:!0},z:{attribute:"starting-point",type:Number,reflect:!0},v:{attribute:"drift-rate",type:Number,reflect:!0},t0:{attribute:"nondecision-time",type:Number,reflect:!0}}}constructor(){super(),this.a=void 0,this.z=void 0,this.v=void 0,this.t0=void 0}setBoundarySeparation(t){this.a=+t.target.value,this.dispatchEvent(new CustomEvent("ddm-parameters-a",{detail:{a:this.a},bubbles:!0}))}setStartingPoint(t){this.z=+t.target.value,this.dispatchEvent(new CustomEvent("ddm-parameters-z",{detail:{z:this.z},bubbles:!0}))}setDriftRate(t){this.v=+t.target.value,this.dispatchEvent(new CustomEvent("ddm-parameters-v",{detail:{v:this.v},bubbles:!0}))}setNondecisionTime(t){this.t0=+t.target.value,this.dispatchEvent(new CustomEvent("ddm-parameters-t0",{detail:{t0:this.t0},bubbles:!0}))}static get styles(){return[super.styles,n`
|
|
1263
1308
|
:host {
|
|
1264
1309
|
display: inline-block;
|
|
1265
1310
|
}
|
|
@@ -1281,13 +1326,69 @@ const la=t=>t??J;customElements.define("decidables-slider",class extends oa{stat
|
|
|
1281
1326
|
decidables-slider div {
|
|
1282
1327
|
margin-bottom: 0.25rem;
|
|
1283
1328
|
}
|
|
1284
|
-
|
|
1329
|
+
|
|
1330
|
+
.a {
|
|
1331
|
+
--decidables-slider-background-color: var(---color-a-light);
|
|
1332
|
+
--decidables-slider-color: var(---color-a);
|
|
1333
|
+
}
|
|
1334
|
+
|
|
1335
|
+
.z {
|
|
1336
|
+
--decidables-slider-background-color: var(---color-z-light);
|
|
1337
|
+
--decidables-slider-color: var(---color-z);
|
|
1338
|
+
}
|
|
1339
|
+
|
|
1340
|
+
.v {
|
|
1341
|
+
--decidables-slider-background-color: var(---color-v-light);
|
|
1342
|
+
--decidables-slider-color: var(---color-v);
|
|
1343
|
+
}
|
|
1344
|
+
|
|
1345
|
+
.t0 {
|
|
1346
|
+
--decidables-slider-background-color: var(---color-t0-light);
|
|
1347
|
+
--decidables-slider-color: var(---color-t0);
|
|
1348
|
+
}
|
|
1349
|
+
`]}render(){return Y`
|
|
1285
1350
|
<div class="holder">
|
|
1286
|
-
${null!=this.a?
|
|
1287
|
-
|
|
1288
|
-
|
|
1289
|
-
|
|
1290
|
-
|
|
1351
|
+
${null!=this.a?Y`<decidables-slider class="a"
|
|
1352
|
+
?disabled=${!this.interactive}
|
|
1353
|
+
scale
|
|
1354
|
+
min=${ta.a.MIN}
|
|
1355
|
+
max=${ta.a.MAX}
|
|
1356
|
+
step=${ta.a.STEP}
|
|
1357
|
+
.value=${+this.a.toFixed(2)}
|
|
1358
|
+
@change=${this.setBoundarySeparation.bind(this)}
|
|
1359
|
+
@input=${this.setBoundarySeparation.bind(this)}
|
|
1360
|
+
><div>Boundary Separation<br><span class="math-var">a</span></div></decidables-slider>`:Y``}
|
|
1361
|
+
${null!=this.z?Y`<decidables-slider class="z"
|
|
1362
|
+
?disabled=${!this.interactive}
|
|
1363
|
+
scale
|
|
1364
|
+
min=${ta.z.MIN}
|
|
1365
|
+
max=${ta.z.MAX}
|
|
1366
|
+
step=${ta.z.STEP}
|
|
1367
|
+
.value=${+this.z.toFixed(2)}
|
|
1368
|
+
@change=${this.setStartingPoint.bind(this)}
|
|
1369
|
+
@input=${this.setStartingPoint.bind(this)}
|
|
1370
|
+
><div>Starting Point<br><span class="math-var">z</span></div></decidables-slider>`:Y``}
|
|
1371
|
+
${null!=this.v?Y`<decidables-slider class="v"
|
|
1372
|
+
?disabled=${!this.interactive}
|
|
1373
|
+
scale
|
|
1374
|
+
min=${ta.v.MIN}
|
|
1375
|
+
max=${ta.v.MAX}
|
|
1376
|
+
step=${ta.v.STEP}
|
|
1377
|
+
.value=${+this.v.toFixed(2)}
|
|
1378
|
+
@change=${this.setDriftRate.bind(this)}
|
|
1379
|
+
@input=${this.setDriftRate.bind(this)}
|
|
1380
|
+
><div>Drift Rate<br><span class="math-var">v</span></div></decidables-slider>`:Y``}
|
|
1381
|
+
${null!=this.t0?Y`<decidables-slider class="t0"
|
|
1382
|
+
?disabled=${!this.interactive}
|
|
1383
|
+
scale
|
|
1384
|
+
min=${ta.t0.MIN}
|
|
1385
|
+
max=${ta.t0.MAX}
|
|
1386
|
+
step=${ta.t0.STEP}
|
|
1387
|
+
.value=${+this.t0.toFixed(0)}
|
|
1388
|
+
@change=${this.setNondecisionTime.bind(this)}
|
|
1389
|
+
@input=${this.setNondecisionTime.bind(this)}
|
|
1390
|
+
><div>Nondecision Time<br><span class="math-var">t₀</span></div></decidables-slider>`:Y``}
|
|
1391
|
+
</div>`}}customElements.define("ddm-parameters",oa);class la extends(Or(jr)){static get properties(){return{measures:{attribute:"measures",type:Boolean,reflect:!0},means:{attribute:"means",type:Boolean,reflect:!0},sds:{attribute:"sds",type:Boolean,reflect:!0},human:{attribute:"human",type:Boolean,reflect:!0},trials:{attribute:"trials",type:Number,reflect:!0},seed:{attribute:"seed",type:Number,reflect:!0},a:{attribute:"boundary-separation",type:Number,reflect:!0},z:{attribute:"starting-point",type:Number,reflect:!0},v:{attribute:"drift-rate",type:Number,reflect:!0},t0:{attribute:"nondecision-time",type:Number,reflect:!0}}}constructor(){super(),this.firstUpdate=!0,this.drag=!1,this.scale={time:{min:0,max:1e3,step:1,round:Math.round},evidence:{min:-1,max:1,step:.01,round:Math.round},density:{min:0,max:10,step:.01,round:Math.round}},this.measures=!1,this.means=!1,this.sds=!1,this.resample(),this.human=!1,this.trials=10,this.a=ta.a.DEFAULT,this.z=ta.z.DEFAULT,this.v=ta.v.DEFAULT,this.t0=ta.t0.DEFAULT,this.precision=.005,this.random=null,this.bounds=null,this.startingPoint=null,this.data={},this.model={},this.animate=!1,this.paused=!1,this.alignState()}clear(){this.trials=0,this.data.trials=[]}trial(t={}){this.trials+=1,this.human?this.data.trials.push(t):this.animate=!0}pauseTrial(){Je(this.renderRoot).select(".path[data-new-trial-ease-time]").interrupt("new").select(".curve").interrupt("new"),this.paused=!0}resumeTrial(){this.paused=!1,this.requestUpdate()}resample(){this.seed=Ar(0,1)()}alignPath(t,e,i,s,r){const a=xr.source(Rr(t))(0,this.precision**.5),n=-e/2,o=e/2,l=e*i-e/2,c=s*this.precision,d=[];for(d.push({t:r,e:l});d.at(-1).e>n&&d.at(-1).e<o;)d.push({t:d.at(-1).t+1e3*this.precision,e:d.at(-1).e+c+ta.s.DEFAULT*a()});return d}alignCorrectDistribution(t,e,i,s){const r=ta.azv2pC(t,e,i),a=[{t:0,d:0},{t:this.t0,d:0}];for(let n=this.scale.time.min;n<=this.scale.time.max-s;n+=this.scale.time.step)n>0&&a.push({t:s+n,d:ta.tazv2gC(n/1e3,t,e,i)/r});return a}alignErrorDistribution(t,e,i,s){const r=ta.azv2pE(t,e,i),a=[{t:0,d:0},{t:this.t0,d:0}];for(let n=this.scale.time.min;n<=this.scale.time.max-s;n+=this.scale.time.step)n>0&&a.push({t:s+n,d:ta.tazv2gE(n/1e3,t,e,i)/r});return a}alignState(){this.random=Ar.source(Rr(this.seed))(0,1),this.bounds={lower:-this.a/2,upper:this.a/2},this.startingPoint=this.a*this.z-this.a/2,this.human?this.trials=this.data.trials.length:this.data.trials=Array.from({length:this.trials},((t,e)=>{const i=this.random()/1e3*997,s=this.animate&&e===this.trials-1,r=this.alignPath(i,this.a,this.z,this.v,this.t0),a=r.at(-1).e<=this.bounds.lower?"error":r.at(-1).e>=this.bounds.upper?"correct":"nr",n="error"===a?r.at(-2).t+(this.bounds.lower-r.at(-2).e)/(r.at(-1).e-r.at(-2).e)*(1e3*this.precision):"correct"===a?r.at(-2).t+(this.bounds.upper-r.at(-2).e)/(r.at(-1).e-r.at(-2).e)*(1e3*this.precision):null;return{index:e,seed:i,path:r,rt:n,outcome:a,animate:s}}));const t=ta.trials2stats(this.data.trials.filter((t=>!t.animate)));this.data={...this.data,...t},this.model.accuracy=ta.azv2pC(this.a,this.z,this.v),this.model.correctMeanRT=ta.azvt02mC(this.a,this.z,this.v,this.t0),this.model.errorMeanRT=ta.azvt02mE(this.a,this.z,this.v,this.t0),this.model.correctSDRT=ta.azv2sdC(this.a,this.z,this.v),this.model.errorSDRT=ta.azv2sdE(this.a,this.z,this.v),this.model.correctDist=this.alignCorrectDistribution(this.a,this.z,this.v,this.t0),this.model.errorDist=this.alignErrorDistribution(this.a,this.z,this.v,this.t0),this.dispatchEvent(new CustomEvent("ddm-model-output",{detail:{data:this.data,model:this.model},bubbles:!0}))}static get styles(){return[super.styles,n`
|
|
1291
1392
|
:host {
|
|
1292
1393
|
display: inline-block;
|
|
1293
1394
|
|
|
@@ -1473,10 +1574,25 @@ const la=t=>t??J;customElements.define("decidables-slider",class extends oa{stat
|
|
|
1473
1574
|
|
|
1474
1575
|
.t0z .point {
|
|
1475
1576
|
fill: var(---color-element-emphasis);
|
|
1577
|
+
stroke-width: 0;
|
|
1476
1578
|
|
|
1477
1579
|
r: 6px;
|
|
1478
1580
|
}
|
|
1479
1581
|
|
|
1582
|
+
/* Make larger targets for touch users */
|
|
1583
|
+
.interactive .touch {
|
|
1584
|
+
stroke: #000000;
|
|
1585
|
+
stroke-dasharray: none;
|
|
1586
|
+
stroke-opacity: 0;
|
|
1587
|
+
}
|
|
1588
|
+
|
|
1589
|
+
@media (pointer: coarse) {
|
|
1590
|
+
.interactive .touch {
|
|
1591
|
+
stroke-linecap: round;
|
|
1592
|
+
stroke-width: 12;
|
|
1593
|
+
}
|
|
1594
|
+
}
|
|
1595
|
+
|
|
1480
1596
|
.measure {
|
|
1481
1597
|
stroke-width: 2;
|
|
1482
1598
|
}
|
|
@@ -1568,7 +1684,7 @@ const la=t=>t??J;customElements.define("decidables-slider",class extends oa{stat
|
|
|
1568
1684
|
.rt-label.error text {
|
|
1569
1685
|
dominant-baseline: hanging;
|
|
1570
1686
|
}
|
|
1571
|
-
`]}render(){return W``}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,i=this.height;let s,r;e/i>1.5?(r=i,s=1.5*r):(s=e,r=s/1.5);const a=1*this.rem,n=3*this.rem,o=3.75*this.rem,l=3.25*this.rem,c=r-(a+n),d=s-(o+l),h=.75*this.rem,u=.5*c,g=.25*c-h,p=.75*this.rem,m=.9*d,b=.1*d-p,y=parseInt(this.getComputedStyleValue("---transition-duration"),10),Q=jr().domain([this.scale.time.min,this.scale.time.max]).range([0,m]),B=jr().domain([this.scale.evidence.min,this.scale.evidence.max]).range([u,0]),f=jr().domain([this.scale.density.min,this.scale.density.max]).range([g,0]),I=jr().domain([this.scale.density.min,this.scale.density.max]).range([0,g]),U=jr().domain([0,1]).range([0,c]),F=di().subject(((t,e)=>({x:Q(e.t0),y:B(e.startingPoint)}))).on("start",(t=>{Ze(t.currentTarget).classed("dragging",!0)})).on("drag",(t=>{this.drag=!0;const e=!!t.sourceEvent.shiftKey&&(Math.abs(t.x-t.subject.x)>Math.abs(t.y-t.subject.y)?"t0":"z");let i=Q.invert(t.x),s=(B.invert(t.y)+this.a/2)/this.a;i="z"===e?Q.invert(t.subject.x):i<0?0:i>500?500:i,s="t0"===e?(B.invert(t.subject.y)+this.a/2)/this.a:s<.01?.01:s>.99?.99:s,this.t0=i,this.z=s,this.alignState(),this.dispatchEvent(new CustomEvent("ddm-model-t0",{detail:{t0:this.t0},bubbles:!0})),this.dispatchEvent(new CustomEvent("ddm-model-z",{detail:{z:this.z},bubbles:!0}))})).on("end",(t=>{Ze(t.currentTarget).classed("dragging",!1),this.drag=!1})),C=di().on("start",(t=>{Ze(t.currentTarget).classed("dragging",!0)})).on("drag",(t=>{this.drag=!0;let e=(B.invert(t.y)-this.startingPoint)/(Q.invert(t.x)-this.t0)*1e3;e=e<.01?.01:e>5?5:e,this.v=e,this.alignState(),this.dispatchEvent(new CustomEvent("ddm-model-v",{detail:{v:this.v},bubbles:!0}))})).on("end",(t=>{Ze(t.currentTarget).classed("dragging",!1),this.drag=!1})),v=di().subject(((t,e)=>({x:0,y:B(e.value)}))).on("start",(t=>{Ze(t.currentTarget).classed("dragging",!0)})).on("drag",((t,e)=>{this.drag=!0;let i=B.invert(t.y);i=i<this.scale.evidence.min?this.scale.evidence.min:i>this.scale.evidence.max?this.scale.evidence.max:"upper"===e.bound&&i<.005?.005:"lower"===e.bound&&i>-.005?-.005:i,this.a=Math.abs(2*i),this.alignState(),this.dispatchEvent(new CustomEvent("ddm-model-a",{detail:{a:this.a},bubbles:!0}))})).on("end",(t=>{Ze(t.currentTarget).classed("dragging",!1),this.drag=!1})),x=aa().x((t=>Q(t.t))).y((t=>B(t.e))),A=aa().x((t=>Q(t.t))).y((t=>f(t.d))),E=aa().x((t=>Q(t.t))).y((t=>I(t.d))),R=Ze(this.renderRoot).selectAll(".main").data([{width:this.width,height:this.height,rem:this.rem}]),N=R.enter().append("svg").classed("main",!0).html(da.svgDefs),w=N.append("defs");w.append("marker").attr("id","measure-arrow").attr("orient","auto-start-reverse").attr("markerUnits","userSpaceOnUse").attr("viewBox","-5 -5 10 10").attr("refX","2").attr("refY","0").attr("markerWidth","10").attr("markerHeight","10").append("path").attr("stroke","context-stroke").attr("fill","context-stroke").attr("d","M -3 -3 l 6 3 l -6 3 z"),w.append("marker").attr("id","model-sd-cap").attr("orient","auto-start-reverse").attr("markerUnits","userSpaceOnUse").attr("viewBox","-5 -5 10 10").attr("refX","0").attr("refY","0").attr("markerWidth","10").attr("markerHeight","10").append("path").attr("stroke","context-stroke").attr("fill","context-stroke").attr("stroke-width","2").attr("d","M 0 -4 l 0 8"),w.append("marker").attr("id","data-sd-cap").attr("orient","auto-start-reverse").attr("markerUnits","userSpaceOnUse").attr("viewBox","-5 -5 10 10").attr("refX","0").attr("refY","0").attr("markerWidth","10").attr("markerHeight","10").append("path").attr("stroke","context-stroke").attr("fill","context-stroke").attr("stroke-width","2").attr("d","M 0 -3 l 0 6");const L=w.append("linearGradient").attr("id","path-animate").attr("gradientUnits","userSpaceOnUse").attr("color-interpolation","linearRGB").attr("x1","0").attr("x2","0").attr("y1",B(this.bounds.upper)).attr("y2",B(this.bounds.lower));L.append("stop").classed("stop-0",!0).attr("offset","0%"),L.append("stop").classed("stop-100",!0).attr("offset","100%");const S=N.merge(R).attr("viewBox",`0 0 ${s} ${r}`),D=S.selectAll(".plot.density").data([{outcome:"correct",data:{meanRT:this.data.correctMeanRT,sdRT:this.data.correctSDRT},model:{meanRT:this.model.correctMeanRT,sdRT:this.model.correctSDRT,dist:this.model.correctDist},densityScale:f,densityLine:A,alignDistribution:this.alignCorrectDistribution.bind(this)},{outcome:"error",data:{meanRT:this.data.errorMeanRT,sdRT:this.data.errorSDRT},model:{meanRT:this.model.errorMeanRT,sdRT:this.model.errorSDRT,dist:this.model.errorDist},densityScale:I,densityLine:E,alignDistribution:this.alignErrorDistribution.bind(this)}]),M=N.append("g").classed("plot evidence",!0),k=D.enter().append("g").attr("class",(t=>`plot density ${t.outcome}`)),T=N.append("g").classed("plot accuracy",!0),H=S.select(".plot.evidence").attr("transform",`translate(${o}, ${a+g+h})`),$=k.merge(D).attr("transform",(t=>`translate(${o}, ${"correct"===t.outcome?a:a+g+u+2*h})`)),V=S.select(".plot.accuracy").attr("transform",`translate(${o+m+p}, ${a})`);M.append("clipPath").attr("id","clip-evidence").append("rect"),H.select("clipPath rect").attr("y",B(this.bounds.upper)).attr("height",B(this.bounds.lower)-B(this.bounds.upper)+1).attr("width",m+1);const G=M.append("g").classed("underlayer",!0),z=k.append("g").classed("underlayer",!0),W=T.append("g").classed("underlayer",!0),Y=H.select(".underlayer"),_=$.select(".underlayer"),J=V.select(".underlayer");M.append("g").classed("content",!0).append("g").classed("paths",!0);const K=k.append("g").classed("content",!0);T.append("g").classed("content",!0);const X=H.select(".content"),Z=$.select(".content"),P=V.select(".content");M.append("g").classed("overlayer",!0),k.append("g").classed("overlayer",!0),T.append("g").classed("overlayer",!0);const O=H.select(".overlayer"),j=$.select(".overlayer");G.append("rect").classed("background",!0),z.append("rect").classed("background",!0),Y.select(".background").transition().duration(this.drag?0:y).ease(gr).attr("y",B(this.bounds.upper)).attr("height",B(this.bounds.lower)-B(this.bounds.upper)).attr("width",m),_.select(".background").transition().duration(y).ease(gr).attr("height",g).attr("width",m),z.filter((t=>"error"===t.outcome)).append("g").classed("axis time",!0);const q=_.filter((t=>"error"===t.outcome)).select(".axis.time").attr("transform",`translate(0, ${g+.25*this.rem})`);var tt;q.transition().duration(y).ease(gr).call((tt=Q,Nt(Ut,tt))).attr("font-size",null).attr("font-family",null).selectAll("line, path").attr("stroke",null);const et=z.filter((t=>"error"===t.outcome)).append("text").classed("title time",!0).attr("text-anchor","middle");et.append("tspan").classed("name",!0).text("Time (ms)"),_.filter((t=>"error"===t.outcome)).select(".title.time").transition().duration(y).ease(gr).attr("transform",`translate(${m/2}, ${g+2.5*this.rem})`),G.append("g").classed("axis evidence",!0),z.append("g").attr("class",(t=>`axis density ${t.outcome}`)),W.append("g").classed("axis accuracy",!0);const it=Y.select(".axis.evidence").attr("transform",`translate(${-.25*this.rem}, 0)`),st=_.select(".axis.density").attr("transform",`translate(${-.25*this.rem}, 0)`),rt=J.select(".axis.accuracy").attr("transform",`translate(${b+.25*this.rem}, 0)`),at=it.transition().duration(y).ease(gr).call(wt(B)).attr("font-size",null).attr("font-family",null),nt=st.transition().duration(y).ease(gr).each(((t,e,i)=>{wt(t.densityScale).ticks(2)(Ze(i[e]))})).attr("font-size",null).attr("font-family",null),ot=rt.transition().duration(y).ease(gr).call(function(t){return Nt(It,t)}(U)).attr("font-size",null).attr("font-family",null);at.selectAll("line, path").attr("stroke",null),nt.selectAll("line, path").attr("stroke",null),ot.selectAll("line, path").attr("stroke",null);const lt=G.append("text").classed("title evidence",!0).attr("text-anchor","middle"),ct=z.append("text").attr("class",(t=>`title density ${t.outcome}`)).attr("text-anchor","middle"),dt=W.append("text").classed("title accuracy",!0).attr("text-anchor","middle");lt.append("tspan").classed("name",!0).text("Evidence"),ct.append("tspan").classed("name",!0).text("Density"),dt.append("tspan").classed("name",!0).text("Accuracy"),Y.select(".title.evidence").transition().duration(y).ease(gr).attr("transform",`translate(${-2.5*this.rem}, ${u/2})rotate(-90)`),_.select(".title.density").transition().duration(y).ease(gr).attr("transform",`translate(${-2.5*this.rem}, ${g/2})rotate(-90)`),J.select(".title.accuracy").transition().duration(y).ease(gr).attr("transform",`translate(${b+2.25*this.rem}, ${c/2})rotate(90)`);const ht=X.select(".paths").selectAll(".path").data(this.data.trials.filter((t=>void 0!==t.path))),ut=Oe(),gt=ht.enter().append("g").classed("path",!0).attr("data-new-trial-ease-time",0).on("pointerenter",((t,e)=>{if(!this.drag){Ze(t.currentTarget).classed("highlight",!0).raise();const i=O.append("g").classed(`rt-label ${e.outcome}`,!0),s=i.append("rect"),r=i.append("text").text(`RT = ${e.rt.toFixed()}`).attr("x",Q(e.rt)).attr("y","correct"===e.outcome?B(this.bounds.upper)-.25*this.rem:B(this.bounds.lower)+.125*this.rem).node().getBBox();s.attr("x",r.x-.125*this.rem).attr("y",r.y+.125*this.rem).attr("width",r.width+.25*this.rem).attr("height",r.height-.25*this.rem),ut.set(t.currentTarget,i)}})).on("pointerout",((t,e)=>{this.drag||(Ze(t.currentTarget).classed("highlight",!1).lower(),t.currentTarget.parentNode.insertBefore(t.currentTarget,t.currentTarget.parentNode.children[e.index]),ut.get(t.currentTarget).remove())}));gt.append("path").classed("curve",!0).attr("clip-path","url(#clip-evidence)").attr("pathLength",1).attr("stroke-dashoffset",1);const pt=gt.merge(ht).attr("class",(t=>`path ${t.outcome}`));pt.select(".curve").transition().duration(this.drag?0:y).ease(gr).attr("stroke",(t=>this.getComputedStyleValue(`---color-${t.outcome}`))).attrTween("d",((t,e,i)=>{const s=i[e],r=ss(void 0!==s.a?s.a:this.a,this.a),a=ss(void 0!==s.z?s.z:this.z,this.z),n=ss(void 0!==s.v?s.v:this.v,this.v),o=ss(void 0!==s.t0?s.t0:this.t0,this.t0);return e=>{s.a=r(e),s.z=a(e),s.v=n(e),s.t0=o(e);const i=this.alignPath(t.seed,s.a,s.z,s.v,s.t0);return x(i)}}));const mt=pt.filter((t=>t.animate&&!this.paused));if(!mt.empty()){const t=mt.attr("data-new-trial-ease-time"),e=e=>jr().domain([0,1]).range([t,1])(e),i=e=>i=>jr().domain([e(t),1]).range([0,1])(e(i));mt.classed("animate",!0).select(".curve").attr("stroke-dasharray",1),mt.transition("new").duration((e=>Math.floor(1.5*e.rt*(1-t)))).ease(e).attr("data-new-trial-ease-time",1).select(".curve").attrTween("stroke-dashoffset",((t,e,s)=>{const r=ss(s[e].getAttribute("stroke-dashoffset"),0);return t=>r(i(ur)(t))})).on("end",((t,e,i)=>{Ze(i[e].parentElement).classed("animate",!1).attr("data-new-trial-ease-time",null),t.animate=!1,this.animate=!1,this.alignState(),this.requestUpdate(),this.dispatchEvent(new CustomEvent("accumulable-response",{detail:{outcome:t.outcome,data:this.data,model:this.model},bubbles:!0}))}))}const bt=pt.filter((t=>t.animate&&this.paused));if(!bt.empty()){const t=bt.attr("data-new-trial-ease-time");bt.classed("animate",!0).select(".curve").attr("stroke-dasharray",1).attr("stroke-dashoffset",(()=>ss(1,0)(ur(t))))}pt.filter((t=>!t.animate)).attr("data-new-trial-ease-time",null),ht.exit().remove();const yt=K.append("g").attr("class",(t=>`dist ${t.outcome}`));yt.append("path").classed("curve",!0),Z.select(".dist").select(".curve").transition().duration(this.drag?0:y).ease(gr).attrTween("d",((t,e,i)=>{const s=i[e],r=ss(void 0!==s.a?s.a:this.a,this.a),a=ss(void 0!==s.z?s.z:this.z,this.z),n=ss(void 0!==s.v?s.v:this.v,this.v),o=ss(void 0!==s.t0?s.t0:this.t0,this.t0);return e=>{s.a=r(e),s.z=a(e),s.v=n(e),s.t0=o(e);const i=t.alignDistribution(s.a,s.z,s.v,s.t0);return t.densityLine(i)}}));const Qt=X.selectAll(".rt").data(this.data.trials),Bt=Qt.enter().append("g");Bt.append("line").classed("mark",!0).attr("x1",(t=>Q(t.rt))).attr("x2",(t=>Q(t.rt))).attr("y1",(t=>"correct"===t.outcome?B(1)-.125*this.rem:B(-1)+.125*this.rem)).attr("y2",(t=>"correct"===t.outcome?B(1)-.675*this.rem:B(-1)+.675*this.rem));const ft=Bt.merge(Qt).attr("class",(t=>`rt ${t.outcome}`));ft.filter((t=>!t.animate)).select(".mark").transition().duration(this.drag?0:y).ease(gr).attr("stroke",(t=>this.getComputedStyleValue(`---color-${t.outcome}`))).attr("x1",(t=>Q(t.rt))).attr("x2",(t=>Q(t.rt))).attr("y1",(t=>"correct"===t.outcome?B(1)-.125*this.rem:B(-1)+.125*this.rem)).attr("y2",(t=>"correct"===t.outcome?B(1)-.675*this.rem:B(-1)+.675*this.rem)),Qt.exit().remove();const Ft=P.selectAll(".accuracy.model").data([this.model.accuracy,1-this.model.accuracy]),Ct=Ft.enter().append("g").attr("class",((t,e)=>"accuracy model "+(0===e?"correct":"error")));Ct.append("rect").classed("bar",!0).attr("x",0),Ct.merge(Ft).select("rect").transition().duration(this.drag?0:y).ease(gr).attr("y",((t,e)=>U(0===e?0:1-t))).attr("width",b).attr("height",(t=>U(t))),Ft.exit().remove();const vt=P.selectAll(".accuracy.data").data(Number.isNaN(this.data.accuracy)?[]:[this.data.accuracy]),xt=vt.enter().append("g").classed("accuracy data",!0);xt.append("line").classed("mark",!0);const At=xt.merge(vt).attr("class",(t=>"accuracy data "+(t<this.model.accuracy.correct?"correct":"error")));At.select(".mark").transition().duration(this.drag?0:y).ease(gr).attr("x1",0+.25*this.rem).attr("x2",b-.25*this.rem).attr("y1",(t=>U(t)-1)).attr("y2",(t=>U(t)-1)),vt.exit().remove();const Et=O.selectAll(".boundary").data([{bound:"upper",value:this.bounds.upper},{bound:"lower",value:this.bounds.lower}]),Rt=Et.enter().append("g").attr("class",((t,e)=>"boundary "+(0===e?"correct":"error")));Rt.append("line").classed("line",!0);const Lt=Rt.merge(Et).attr("tabindex",this.interactive?0:null).classed("interactive",this.interactive).on("keydown",this.interactive?(t,e)=>{if(["ArrowUp","ArrowDown"].includes(t.key)){let i=this.a;switch(t.key){case"ArrowUp":i+="upper"===e.bound?t.shiftKey?.01:.1:t.shiftKey?-.01:-.1;break;case"ArrowDown":i+="upper"===e.bound?t.shiftKey?-.01:-.1:t.shiftKey?.01:.1}i=i<.01?.01:i>2*this.scale.evidence.max?2*this.scale.evidence.max:i,this.a=i,this.alignState(),this.dispatchEvent(new CustomEvent("ddm-model-a",{detail:{a:this.a},bubbles:!0})),t.preventDefault()}}:null);(this.firstUpdate||t.has("interactive"))&&(this.interactive?Lt.call(v):Lt.on(".drag",null)),Lt.select(".line").transition().duration(this.drag?0:y).ease(gr).attr("x1",Q(this.scale.time.min)).attr("x2",Q(this.scale.time.max)).attr("y1",(t=>B(t.value))).attr("y2",(t=>B(t.value))),Et.exit().remove();const St=O.selectAll(".drift").data([{v:this.v,t0:this.t0,startingPoint:this.startingPoint}]),Dt=St.enter().append("g").classed("drift",!0);Dt.append("line").classed("line",!0),Dt.append("path").classed("arrow",!0);const Mt=Dt.merge(St).attr("tabindex",this.interactive?0:null).classed("interactive",this.interactive).on("keydown",this.interactive?t=>{if(["ArrowUp","ArrowDown"].includes(t.key)){let e=this.v;switch(t.key){case"ArrowUp":e+=t.shiftKey?.01:.1;break;case"ArrowDown":e-=t.shiftKey?.01:.1}e=e<.01?.01:e>5?5:e,this.v=e,this.alignState(),this.dispatchEvent(new CustomEvent("ddm-model-v",{detail:{v:this.v},bubbles:!0})),t.preventDefault()}}:null);(this.firstUpdate||t.has("interactive"))&&(this.interactive?Mt.call(C):Mt.on(".drag",null));const kt=(B(0)-B(1))/(Q(1)-Q(0));Mt.transition().duration(this.drag?0:y).ease(gr).attr("transform",(t=>`translate(${Q(t.t0)}, ${B(t.startingPoint)})\n rotate(${-Math.atan(t.v/1e3*kt)*(180/Math.PI)})`)),Mt.select(".line").attr("x2",Q(200)),Mt.select(".arrow").attr("d",`\n M ${Q(200)-.5*this.rem},${.5*-this.rem}\n l ${.5*this.rem},${.5*this.rem}\n l ${.5*-this.rem},${.5*this.rem}\n `),St.exit().remove();const Tt=O.selectAll(".t0z").data([{t0:this.t0,startingPoint:this.startingPoint}]),Ht=Tt.enter().append("g").classed("t0z",!0);Ht.append("line").classed("line",!0),Ht.append("circle").classed("point",!0);const $t=Ht.merge(Tt).attr("tabindex",this.interactive?0:null).classed("interactive",this.interactive).on("keydown",this.interactive?t=>{if(["ArrowUp","ArrowDown"].includes(t.key)){let e=this.z;switch(t.key){case"ArrowUp":e+=t.shiftKey?.01:.1;break;case"ArrowDown":e-=t.shiftKey?.01:.1}e=e<.01?.01:e>.99?.99:e,this.z=e,this.alignState(),this.dispatchEvent(new CustomEvent("ddm-model-z",{detail:{z:this.z},bubbles:!0})),t.preventDefault()}if(["ArrowLeft","ArrowRight"].includes(t.key)){let e=this.t0;switch(t.key){case"ArrowRight":e+=t.shiftKey?1:10;break;case"ArrowLeft":e-=t.shiftKey?1:10}e=e<0?0:e>500?500:e,this.t0=e,this.alignState(),this.dispatchEvent(new CustomEvent("ddm-model-t0",{detail:{t0:this.t0},bubbles:!0})),t.preventDefault()}}:null);(this.firstUpdate||t.has("interactive"))&&(this.interactive?$t.call(F):$t.on(".drag",null)),$t.select(".line").transition().duration(this.drag?0:y).ease(gr).attr("x1",Q(0)).attr("x2",(t=>Q(t.t0))).attr("y1",(t=>B(t.startingPoint))).attr("y2",(t=>B(t.startingPoint))),$t.select(".point").transition().duration(this.drag?0:y).ease(gr).attr("cx",(t=>Q(t.t0))).attr("cy",(t=>B(t.startingPoint))),Tt.exit().remove();const Vt=O.selectAll(".measure.a").data(this.measures?[this.a]:[]),Gt=Vt.enter().append("g").classed("measure a",!0);Gt.append("line").classed("line",!0).attr("marker-start","url(#measure-arrow)").attr("marker-end","url(#measure-arrow)");const zt=Gt.append("text").classed("label",!0);zt.append("tspan").classed("a math-var",!0).text("a"),zt.append("tspan").classed("equals",!0).text(" = "),zt.append("tspan").classed("value",!0);const Wt=Gt.merge(Vt);Wt.select(".line").transition().duration(this.drag?0:y).ease(gr).attr("x1",Q(this.scale.time.max)-.75*this.rem).attr("y1",B(this.bounds.upper)+2).attr("x2",Q(this.scale.time.max)-.75*this.rem).attr("y2",B(this.bounds.lower)-2);Wt.select(".label").transition().duration(this.drag?0:y).ease(gr).attr("x",Q(this.scale.time.max)).attr("y",B(this.bounds.upper)-.25*this.rem).select(".value").text(Lr(".2f")(this.a)),Vt.exit().remove();const Yt=O.selectAll(".measure.z").data(this.measures?[this.z]:[]),_t=Yt.enter().append("g").classed("measure z",!0);_t.append("line").classed("line",!0).attr("marker-start","url(#measure-arrow)").attr("marker-end","url(#measure-arrow)");const Jt=_t.append("text").classed("label",!0);Jt.append("tspan").classed("z math-var",!0).text("z"),Jt.append("tspan").classed("equals",!0).text(" = "),Jt.append("tspan").classed("value",!0);const Kt=_t.merge(Yt);Kt.select(".line").transition().duration(this.drag?0:y).ease(gr).attr("x1",Q(this.scale.time.min)+.75*this.rem).attr("y1",B(this.startingPoint)+2).attr("x2",Q(this.scale.time.min)+.75*this.rem).attr("y2",B(this.bounds.lower)-2);Kt.select(".label").transition().duration(this.drag?0:y).ease(gr).attr("x",Q(this.scale.time.min)).attr("y",B(this.bounds.lower)+.125*this.rem).select(".value").text(Lr(".0%")(this.z)),Yt.exit().remove();const Xt=O.selectAll(".measure.v").data(this.measures?[this.v]:[]),Zt=Xt.enter().append("g").classed("measure v",!0);Zt.append("path").classed("line",!0).attr("marker-start","url(#measure-arrow)").attr("marker-end","url(#measure-arrow)");const Pt=Zt.append("text").classed("label",!0);Pt.append("tspan").classed("v math-var",!0).text("v"),Pt.append("tspan").classed("equals",!0).text(" = "),Pt.append("tspan").classed("value",!0);const Ot=Math.atan(this.v/1e3*kt),jt=Q(200)-Q(0)+.75*this.rem,qt=Math.cos(Ot)*jt,te=Math.sin(Ot)*jt,ee=Zt.merge(Xt);ee.select(".line").transition().duration(this.drag?0:y).ease(gr).attr("d",`\n M ${Q(this.t0+200)+.75*this.rem}, ${B(this.startingPoint)}\n A ${Q(200)-Q(0)} ${Q(200)-Q(0)} 0 0 0 ${Q(this.t0)+qt} ${B(this.startingPoint)-te}\n `);ee.select(".label").transition().duration(this.drag?0:y).ease(gr).attr("x",Q(this.t0+200)+.5*this.rem).attr("y",B(this.bounds.upper)-.25*this.rem).select(".value").text(Lr(".2f")(this.v)),Xt.exit().remove();const ie=O.selectAll(".measure.t0").data(this.measures?[this.t0]:[]),se=ie.enter().append("g").classed("measure t0",!0);se.append("line").classed("line",!0).attr("marker-start","url(#measure-arrow)").attr("marker-end","url(#measure-arrow)");const re=se.append("text").classed("label",!0);re.append("tspan").classed("t0 math-var",!0).text("t₀"),re.append("tspan").classed("equals",!0).text(" = "),re.append("tspan").classed("value",!0);const ae=se.merge(ie);ae.select(".line").transition().duration(this.drag?0:y).ease(gr).attr("x1",Q(0)+2).attr("y1",B(this.startingPoint)-.75*this.rem).attr("x2",Q(this.t0)-2).attr("y2",B(this.startingPoint)-.75*this.rem);ae.select(".label").transition().duration(this.drag?0:y).ease(gr).attr("x",Q(this.t0)+.25*this.rem).attr("y",B(this.bounds.upper)-.25*this.rem).select(".value").text(Lr("d")(this.t0)),ie.exit().remove();const ne=j.selectAll(".model.mean").data((t=>this.means?[t]:[])),oe=ne.enter().append("g").attr("class",(t=>`model mean ${t.outcome}`));oe.append("line").classed("indicator",!0);oe.merge(ne).select(".indicator").transition().duration(this.drag?0:y).ease(gr).attr("x1",(t=>Q(t.model.meanRT))).attr("x2",(t=>Q(t.model.meanRT))).attr("y1",(t=>t.densityScale(this.scale.density.min))).attr("y2",(t=>t.densityScale(this.scale.density.max))),ne.exit().remove();const le=j.selectAll(".data.mean").data((t=>this.means&&!Number.isNaN(t.data.meanRT)?[t]:[])),ce=le.enter().append("g").attr("class",(t=>`data mean ${t.outcome}`));ce.append("line").classed("indicator",!0).attr("y1",(t=>t.densityScale(0)+("correct"===t.outcome?.125:-.125)*this.rem)).attr("y2",(t=>t.densityScale(0)+("correct"===t.outcome?.675:-.675)*this.rem));ce.merge(le).select(".indicator").transition().duration(this.drag?0:y).ease(gr).attr("x1",(t=>Q(t.data.meanRT))).attr("x2",(t=>Q(t.data.meanRT))).attr("y1",(t=>t.densityScale(0)+("correct"===t.outcome?.125:-.125)*this.rem)).attr("y2",(t=>t.densityScale(0)+("correct"===t.outcome?.675:-.675)*this.rem)),le.exit().select(".indicator").transition().duration(this.drag?0:y).ease(gr).attr("x1",0).attr("x2",0).on("end",((t,e,i)=>{Ze(i[e].parentElement).remove()}));const de=j.selectAll(".model.sd").data((t=>this.sds?[t]:[])),he=de.enter().append("g").attr("class",(t=>`model sd ${t.outcome}`));he.append("line").classed("indicator",!0).attr("marker-start","url(#model-sd-cap)").attr("marker-end","url(#model-sd-cap)");he.merge(de).select(".indicator").transition().duration(this.drag?0:y).ease(gr).attr("x1",(t=>Q(t.model.meanRT-t.model.sdRT/2))).attr("x2",(t=>Q(t.model.meanRT+t.model.sdRT/2))).attr("y1",(t=>t.densityScale(5))).attr("y2",(t=>t.densityScale(5))),de.exit().remove();const ue=j.selectAll(".data.sd").data((t=>!this.sds||Number.isNaN(t.data.meanRT)||Number.isNaN(t.data.sdRT)?[]:[t])),ge=ue.enter().append("g").attr("class",(t=>`data sd ${t.outcome}`));ge.append("line").classed("indicator",!0).attr("marker-start","url(#data-sd-cap)").attr("marker-end","url(#data-sd-cap)").attr("y1",(t=>t.densityScale(0)+("correct"===t.outcome?.375:-.375)*this.rem)).attr("y2",(t=>t.densityScale(0)+("correct"===t.outcome?.375:-.375)*this.rem));ge.merge(ue).select(".indicator").transition().duration(this.drag?0:y).ease(gr).attr("x1",(t=>Q(t.data.meanRT-t.data.sdRT/2))).attr("x2",(t=>Q(t.data.meanRT+t.data.sdRT/2))).attr("y1",(t=>t.densityScale(0)+("correct"===t.outcome?.375:-.375)*this.rem)).attr("y2",(t=>t.densityScale(0)+("correct"===t.outcome?.375:-.375)*this.rem)),ue.exit().select(".indicator").transition().duration(this.drag?0:y).ease(gr).attr("x1",0).attr("x2",0).on("end",((t,e,i)=>{Ze(i[e].parentElement).remove()})),this.firstUpdate=!1}}customElements.define("ddm-model",fa);class Ia extends(ca(da)){static get properties(){return{coherence:{attribute:"coherence",type:Number,reflect:!0},count:{attribute:"count",type:Number,reflect:!0},probability:{attribute:"probability",type:Number,reflect:!0},duration:{attribute:"duration",type:Number,reflect:!0},wait:{attribute:"wait",type:Number,reflect:!0},iti:{attribute:"iti",type:Number,reflect:!0},trials:{attribute:"trials",type:Number,reflect:!0},running:{attribute:"running",type:Boolean,reflect:!0},lifetime:{attribute:!1,type:Number,reflect:!1},speed:{attribute:!1,type:Number,reflect:!1}}}constructor(){super(),this.coherence=.5,this.count=100,this.probability=.5,this.duration=2e3,this.wait=2e3,this.iti=2e3,this.trials=5,this.running=!1,this.lifetime=400,this.speed=50,this.firstUpdate=!0,this.COHERENT=0,this.RANDOM=1,this.dots=[[],[]],this.trial=0,this.states=["resetted","iti","stimulus","wait","ended"],this.state="resetted",this.baseTime=0,this.pauseTime=0,this.startTime=0,this.lastTime=0,this.LEFT=180,this.RIGHT=0,this.currentDirection=void 0,this.signals=["left","right"],this.signal=void 0,this.runner=void 0,this.xScale=void 0,this.yScale=void 0}static get styles(){return[super.styles,n`
|
|
1687
|
+
`]}render(){return Y``}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,i=this.height;let s,r;e/i>1.5?(r=i,s=1.5*r):(s=e,r=s/1.5);const a=1*this.rem,n=3*this.rem,o=3.75*this.rem,l=3.25*this.rem,c=r-(a+n),d=s-(o+l),u=.75*this.rem,h=.5*c,g=.25*c-u,p=.75*this.rem,m=.9*d,b=.1*d-p,Q=parseInt(this.getComputedStyleValue("---transition-duration"),10),y=Hr().domain([this.scale.time.min,this.scale.time.max]).range([0,m]),U=Hr().domain([this.scale.evidence.min,this.scale.evidence.max]).range([h,0]),B=Hr().domain([this.scale.density.min,this.scale.density.max]).range([g,0]),F=Hr().domain([this.scale.density.min,this.scale.density.max]).range([0,g]),I=Hr().domain([0,1]).range([0,c]),f=ni().subject(((t,e)=>({x:y(e.t0),y:U(e.startingPoint)}))).on("start",(t=>{Je(t.currentTarget).classed("dragging",!0)})).on("drag",(t=>{this.drag=!0;const e=!!t.sourceEvent.shiftKey&&(Math.abs(t.x-t.subject.x)>Math.abs(t.y-t.subject.y)?"t0":"z");let i=y.invert(t.x),s=(U.invert(t.y)+this.a/2)/this.a;i="z"===e?y.invert(t.subject.x):i<ta.t0.MIN?ta.t0.MIN:i>ta.t0.MAX?ta.t0.MAX:i,s="t0"===e?(U.invert(t.subject.y)+this.a/2)/this.a:s<ta.z.MIN?ta.z.MIN:s>ta.z.MAX?ta.z.MAX:s,this.t0=i,this.z=s,this.alignState(),this.dispatchEvent(new CustomEvent("ddm-model-t0",{detail:{t0:this.t0},bubbles:!0})),this.dispatchEvent(new CustomEvent("ddm-model-z",{detail:{z:this.z},bubbles:!0}))})).on("end",(t=>{Je(t.currentTarget).classed("dragging",!1),this.drag=!1})),C=ni().on("start",(t=>{Je(t.currentTarget).classed("dragging",!0)})).on("drag",(t=>{this.drag=!0;let e=(U.invert(t.y)-this.startingPoint)/(y.invert(t.x)-this.t0)*1e3;e=e<ta.v.MIN?ta.v.MIN:e>ta.v.MAX?ta.v.MAX:e,this.v=e,this.alignState(),this.dispatchEvent(new CustomEvent("ddm-model-v",{detail:{v:this.v},bubbles:!0}))})).on("end",(t=>{Je(t.currentTarget).classed("dragging",!1),this.drag=!1})),v=ni().subject(((t,e)=>({x:0,y:U(e.value)}))).on("start",(t=>{Je(t.currentTarget).classed("dragging",!0)})).on("drag",(t=>{this.drag=!0;const e=U.invert(t.y);let i=Math.abs(2*e);i=i<ta.a.MIN?ta.a.MIN:i>ta.a.MAX?ta.a.MAX:i,this.a=i,this.alignState(),this.dispatchEvent(new CustomEvent("ddm-model-a",{detail:{a:this.a},bubbles:!0}))})).on("end",(t=>{Je(t.currentTarget).classed("dragging",!1),this.drag=!1})),A=_r().x((t=>y(t.t))).y((t=>U(t.e))),x=_r().x((t=>y(t.t))).y((t=>B(t.d))),E=_r().x((t=>y(t.t))).y((t=>F(t.d))),R=Je(this.renderRoot).selectAll(".main").data([{width:this.width,height:this.height,rem:this.rem}]),N=R.enter().append("svg").classed("main",!0).html(jr.svgDefs),S=N.append("defs");S.append("marker").attr("id","measure-arrow").attr("orient","auto-start-reverse").attr("markerUnits","userSpaceOnUse").attr("viewBox","-5 -5 10 10").attr("refX","2").attr("refY","0").attr("markerWidth","10").attr("markerHeight","10").append("path").attr("stroke","context-stroke").attr("fill","context-stroke").attr("d","M -3 -3 l 6 3 l -6 3 z"),S.append("marker").attr("id","model-sd-cap").attr("orient","auto-start-reverse").attr("markerUnits","userSpaceOnUse").attr("viewBox","-5 -5 10 10").attr("refX","0").attr("refY","0").attr("markerWidth","10").attr("markerHeight","10").append("path").attr("stroke","context-stroke").attr("fill","context-stroke").attr("stroke-width","2").attr("d","M 0 -4 l 0 8"),S.append("marker").attr("id","data-sd-cap").attr("orient","auto-start-reverse").attr("markerUnits","userSpaceOnUse").attr("viewBox","-5 -5 10 10").attr("refX","0").attr("refY","0").attr("markerWidth","10").attr("markerHeight","10").append("path").attr("stroke","context-stroke").attr("fill","context-stroke").attr("stroke-width","2").attr("d","M 0 -3 l 0 6");const L=S.append("linearGradient").attr("id","path-animate").attr("gradientUnits","userSpaceOnUse").attr("color-interpolation","linearRGB").attr("x1","0").attr("x2","0").attr("y1",U(this.bounds.upper)).attr("y2",U(this.bounds.lower));L.append("stop").classed("stop-0",!0).attr("offset","0%"),L.append("stop").classed("stop-100",!0).attr("offset","100%");const w=N.merge(R).attr("viewBox",`0 0 ${s} ${r}`),D=w.selectAll(".plot.density").data([{outcome:"correct",data:{meanRT:this.data.correctMeanRT,sdRT:this.data.correctSDRT},model:{meanRT:this.model.correctMeanRT,sdRT:this.model.correctSDRT,dist:this.model.correctDist},densityScale:B,densityLine:x,alignDistribution:this.alignCorrectDistribution.bind(this)},{outcome:"error",data:{meanRT:this.data.errorMeanRT,sdRT:this.data.errorSDRT},model:{meanRT:this.model.errorMeanRT,sdRT:this.model.errorSDRT,dist:this.model.errorDist},densityScale:F,densityLine:E,alignDistribution:this.alignErrorDistribution.bind(this)}]),M=N.append("g").classed("plot evidence",!0),k=D.enter().append("g").attr("class",(t=>`plot density ${t.outcome}`)),T=N.append("g").classed("plot accuracy",!0),V=w.select(".plot.evidence").attr("transform",`translate(${o}, ${a+g+u})`),$=k.merge(D).attr("transform",(t=>`translate(${o}, ${"correct"===t.outcome?a:a+g+h+2*u})`)),H=w.select(".plot.accuracy").attr("transform",`translate(${o+m+p}, ${a})`);M.append("clipPath").attr("id","clip-evidence").append("rect"),V.select("clipPath rect").attr("y",U(this.bounds.upper)).attr("height",U(this.bounds.lower)-U(this.bounds.upper)+1).attr("width",m+1);const z=M.append("g").classed("underlayer",!0),G=k.append("g").classed("underlayer",!0),Y=T.append("g").classed("underlayer",!0),X=V.select(".underlayer"),J=$.select(".underlayer"),W=H.select(".underlayer");M.append("g").classed("content",!0).append("g").classed("paths",!0);const _=k.append("g").classed("content",!0);T.append("g").classed("content",!0);const K=V.select(".content"),P=$.select(".content"),Z=H.select(".content");M.append("g").classed("overlayer",!0),k.append("g").classed("overlayer",!0),T.append("g").classed("overlayer",!0);const O=V.select(".overlayer"),j=$.select(".overlayer");z.append("rect").classed("background",!0),G.append("rect").classed("background",!0),X.select(".background").transition().duration(this.drag?0:Q).ease(er).attr("y",U(this.bounds.upper)).attr("height",U(this.bounds.lower)-U(this.bounds.upper)).attr("width",m),J.select(".background").transition().duration(Q).ease(er).attr("height",g).attr("width",m),G.filter((t=>"error"===t.outcome)).append("g").classed("axis time",!0);const q=J.filter((t=>"error"===t.outcome)).select(".axis.time").attr("transform",`translate(0, ${g+.25*this.rem})`);var tt;q.transition().duration(Q).ease(er).call((tt=y,At(3,tt))).attr("font-size",null).attr("font-family",null).selectAll("line, path").attr("stroke",null);const et=G.filter((t=>"error"===t.outcome)).append("text").classed("title time",!0).attr("text-anchor","middle");et.append("tspan").classed("name",!0).text("Time (ms)"),J.filter((t=>"error"===t.outcome)).select(".title.time").transition().duration(Q).ease(er).attr("transform",`translate(${m/2}, ${g+2.5*this.rem})`),z.append("g").classed("axis evidence",!0),G.append("g").attr("class",(t=>`axis density ${t.outcome}`)),Y.append("g").classed("axis accuracy",!0);const it=X.select(".axis.evidence").attr("transform",`translate(${-.25*this.rem}, 0)`),st=J.select(".axis.density").attr("transform",`translate(${-.25*this.rem}, 0)`),rt=W.select(".axis.accuracy").attr("transform",`translate(${b+.25*this.rem}, 0)`),at=it.transition().duration(Q).ease(er).call(xt(U)).attr("font-size",null).attr("font-family",null),nt=st.transition().duration(Q).ease(er).each(((t,e,i)=>{xt(t.densityScale).ticks(2)(Je(i[e]))})).attr("font-size",null).attr("font-family",null),ot=rt.transition().duration(Q).ease(er).call(function(t){return At(2,t)}(I)).attr("font-size",null).attr("font-family",null);at.selectAll("line, path").attr("stroke",null),nt.selectAll("line, path").attr("stroke",null),ot.selectAll("line, path").attr("stroke",null);const lt=z.append("text").classed("title evidence",!0).attr("text-anchor","middle"),ct=G.append("text").attr("class",(t=>`title density ${t.outcome}`)).attr("text-anchor","middle"),dt=Y.append("text").classed("title accuracy",!0).attr("text-anchor","middle");lt.append("tspan").classed("name",!0).text("Evidence"),ct.append("tspan").classed("name",!0).text("Density"),dt.append("tspan").classed("name",!0).text("Accuracy"),X.select(".title.evidence").transition().duration(Q).ease(er).attr("transform",`translate(${-2.5*this.rem}, ${h/2})rotate(-90)`),J.select(".title.density").transition().duration(Q).ease(er).attr("transform",`translate(${-2.5*this.rem}, ${g/2})rotate(-90)`),W.select(".title.accuracy").transition().duration(Q).ease(er).attr("transform",`translate(${b+2.25*this.rem}, ${c/2})rotate(90)`);const ut=K.select(".paths").selectAll(".path").data(this.data.trials.filter((t=>void 0!==t.path))),ht=_e(),gt=ut.enter().append("g").classed("path",!0).attr("data-new-trial-ease-time",0).on("pointerenter",((t,e)=>{if(!this.drag){Je(t.currentTarget).classed("highlight",!0).raise();const i=O.append("g").classed(`rt-label ${e.outcome}`,!0),s=i.append("rect"),r=i.append("text").text(`RT = ${e.rt.toFixed()}`).attr("x",y(e.rt)).attr("y","correct"===e.outcome?U(this.bounds.upper)-.25*this.rem:U(this.bounds.lower)+.125*this.rem).node().getBBox();s.attr("x",r.x-.125*this.rem).attr("y",r.y+.125*this.rem).attr("width",r.width+.25*this.rem).attr("height",r.height-.25*this.rem),ht.set(t.currentTarget,i)}})).on("pointerout",((t,e)=>{this.drag||(Je(t.currentTarget).classed("highlight",!1).lower(),t.currentTarget.parentNode.insertBefore(t.currentTarget,t.currentTarget.parentNode.children[e.index]),ht.get(t.currentTarget).remove())}));gt.append("path").classed("curve",!0).attr("clip-path","url(#clip-evidence)").attr("pathLength",1).attr("stroke-dashoffset",1);const pt=gt.merge(ut).attr("class",(t=>`path ${t.outcome}`));pt.select(".curve").transition().duration(this.drag?0:Q).ease(er).attr("stroke",(t=>this.getComputedStyleValue(`---color-${t.outcome}`))).attrTween("d",((t,e,i)=>{const s=i[e],r=qi(void 0!==s.a?s.a:this.a,this.a),a=qi(void 0!==s.z?s.z:this.z,this.z),n=qi(void 0!==s.v?s.v:this.v,this.v),o=qi(void 0!==s.t0?s.t0:this.t0,this.t0);return e=>{s.a=r(e),s.z=a(e),s.v=n(e),s.t0=o(e);const i=this.alignPath(t.seed,s.a,s.z,s.v,s.t0);return A(i)}}));const mt=pt.filter((t=>t.animate&&!this.paused));if(!mt.empty()){const t=mt.attr("data-new-trial-ease-time"),e=e=>Hr().domain([0,1]).range([t,1])(e),i=e=>i=>Hr().domain([e(t),1]).range([0,1])(e(i));mt.classed("animate",!0).select(".curve").attr("stroke-dasharray",1),mt.transition("new").duration((e=>Math.floor(1.5*e.rt*(1-t)))).ease(e).attr("data-new-trial-ease-time",1).select(".curve").attrTween("stroke-dashoffset",((t,e,s)=>{const r=qi(s[e].getAttribute("stroke-dashoffset"),0);return t=>r(i(tr)(t))})).on("end",((t,e,i)=>{Je(i[e].parentElement).classed("animate",!1).attr("data-new-trial-ease-time",null),t.animate=!1,this.animate=!1,this.alignState(),this.requestUpdate(),this.dispatchEvent(new CustomEvent("accumulable-response",{detail:{outcome:t.outcome,data:this.data,model:this.model},bubbles:!0}))}))}const bt=pt.filter((t=>t.animate&&this.paused));if(!bt.empty()){const t=bt.attr("data-new-trial-ease-time");bt.classed("animate",!0).select(".curve").attr("stroke-dasharray",1).attr("stroke-dashoffset",(()=>qi(1,0)(tr(t))))}pt.filter((t=>!t.animate)).attr("data-new-trial-ease-time",null),ut.exit().remove();const Qt=_.append("g").attr("class",(t=>`dist ${t.outcome}`));Qt.append("path").classed("curve",!0),P.select(".dist").select(".curve").transition().duration(this.drag?0:Q).ease(er).attrTween("d",((t,e,i)=>{const s=i[e],r=qi(void 0!==s.a?s.a:this.a,this.a),a=qi(void 0!==s.z?s.z:this.z,this.z),n=qi(void 0!==s.v?s.v:this.v,this.v),o=qi(void 0!==s.t0?s.t0:this.t0,this.t0);return e=>{s.a=r(e),s.z=a(e),s.v=n(e),s.t0=o(e);const i=t.alignDistribution(s.a,s.z,s.v,s.t0);return t.densityLine(i)}}));const yt=K.selectAll(".rt").data(this.data.trials),Ut=yt.enter().append("g");Ut.append("line").classed("mark",!0).attr("x1",(t=>y(t.rt))).attr("x2",(t=>y(t.rt))).attr("y1",(t=>"correct"===t.outcome?U(1)-.125*this.rem:U(-1)+.125*this.rem)).attr("y2",(t=>"correct"===t.outcome?U(1)-.675*this.rem:U(-1)+.675*this.rem));const Bt=Ut.merge(yt).attr("class",(t=>`rt ${t.outcome}`));Bt.filter((t=>!t.animate)).select(".mark").transition().duration(this.drag?0:Q).ease(er).attr("stroke",(t=>this.getComputedStyleValue(`---color-${t.outcome}`))).attr("x1",(t=>y(t.rt))).attr("x2",(t=>y(t.rt))).attr("y1",(t=>"correct"===t.outcome?U(1)-.125*this.rem:U(-1)+.125*this.rem)).attr("y2",(t=>"correct"===t.outcome?U(1)-.675*this.rem:U(-1)+.675*this.rem)),yt.exit().remove();const Ft=Z.selectAll(".accuracy.model").data([this.model.accuracy,1-this.model.accuracy]),It=Ft.enter().append("g").attr("class",((t,e)=>"accuracy model "+(0===e?"correct":"error")));It.append("rect").classed("bar",!0).attr("x",0),It.merge(Ft).select("rect").transition().duration(this.drag?0:Q).ease(er).attr("y",((t,e)=>I(0===e?0:1-t))).attr("width",b).attr("height",(t=>I(t))),Ft.exit().remove();const ft=Z.selectAll(".accuracy.data").data(Number.isNaN(this.data.accuracy)?[]:[this.data.accuracy]),Ct=ft.enter().append("g").classed("accuracy data",!0);Ct.append("line").classed("mark",!0);const vt=Ct.merge(ft).attr("class",(t=>"accuracy data "+(t<this.model.accuracy.correct?"correct":"error")));vt.select(".mark").transition().duration(this.drag?0:Q).ease(er).attr("x1",0+.25*this.rem).attr("x2",b-.25*this.rem).attr("y1",(t=>I(t)-1)).attr("y2",(t=>I(t)-1)),ft.exit().remove();const Et=O.selectAll(".boundary").data([{bound:"upper",value:this.bounds.upper},{bound:"lower",value:this.bounds.lower}]),Rt=Et.enter().append("g").attr("class",((t,e)=>"boundary "+(0===e?"correct":"error")));Rt.append("line").classed("line",!0),Rt.append("line").classed("line touch",!0);const Nt=Rt.merge(Et).attr("tabindex",this.interactive?0:null).classed("interactive",this.interactive).on("keydown",this.interactive?(t,e)=>{if(["ArrowUp","ArrowDown"].includes(t.key)){let{a:i}=this;switch(t.key){case"ArrowUp":i+="upper"===e.bound?t.shiftKey?ta.a.STEP:ta.a.JUMP:t.shiftKey?-.01:-.1;break;case"ArrowDown":i+="upper"===e.bound?t.shiftKey?-.01:-.1:t.shiftKey?ta.a.STEP:ta.a.JUMP}i=i<ta.a.MIN?ta.a.MIN:i>ta.a.MAX?ta.a.MAX:i,this.a=i,this.alignState(),this.dispatchEvent(new CustomEvent("ddm-model-a",{detail:{a:this.a},bubbles:!0})),t.preventDefault()}}:null);(this.firstUpdate||t.has("interactive"))&&(this.interactive?Nt.call(v):Nt.on(".drag",null)),Nt.select(".line").transition().duration(this.drag?0:Q).ease(er).attr("x1",y(this.scale.time.min)).attr("x2",y(this.scale.time.max)).attr("y1",(t=>U(t.value))).attr("y2",(t=>U(t.value))),Nt.select(".line.touch").transition().duration(this.drag?0:Q).ease(er).attr("x1",y(this.scale.time.min)).attr("x2",y(this.scale.time.max)).attr("y1",(t=>U(t.value))).attr("y2",(t=>U(t.value))),Et.exit().remove();const St=O.selectAll(".drift").data([{v:this.v,t0:this.t0,startingPoint:this.startingPoint}]),Lt=St.enter().append("g").classed("drift",!0);Lt.append("line").classed("line",!0),Lt.append("line").classed("line touch",!0),Lt.append("path").classed("arrow",!0),Lt.append("path").classed("arrow touch",!0);const wt=Lt.merge(St).attr("tabindex",this.interactive?0:null).classed("interactive",this.interactive).on("keydown",this.interactive?t=>{if(["ArrowUp","ArrowDown"].includes(t.key)){let{v:e}=this;switch(t.key){case"ArrowUp":e+=t.shiftKey?ta.v.STEP:ta.v.JUMP;break;case"ArrowDown":e-=t.shiftKey?ta.v.STEP:ta.v.JUMP}e=e<ta.v.MIN?ta.v.MIN:e>ta.v.MAX?ta.v.MAX:e,this.v=e,this.alignState(),this.dispatchEvent(new CustomEvent("ddm-model-v",{detail:{v:this.v},bubbles:!0})),t.preventDefault()}}:null);(this.firstUpdate||t.has("interactive"))&&(this.interactive?wt.call(C):wt.on(".drag",null));const Dt=(U(0)-U(1))/(y(1)-y(0));wt.transition().duration(this.drag?0:Q).ease(er).attr("transform",(t=>`translate(${y(t.t0)}, ${U(t.startingPoint)})\n rotate(${-Math.atan(t.v/1e3*Dt)*(180/Math.PI)})`)),wt.select(".line").attr("x2",y(200)),wt.select(".line.touch").attr("x2",y(200)),wt.select(".arrow").attr("d",`\n M ${y(200)-.5*this.rem},${.5*-this.rem}\n l ${.5*this.rem},${.5*this.rem}\n l ${.5*-this.rem},${.5*this.rem}\n `),wt.select(".arrow.touch").attr("d",`\n M ${y(200)-.5*this.rem},${.5*-this.rem}\n l ${.5*this.rem},${.5*this.rem}\n l ${.5*-this.rem},${.5*this.rem}\n `),St.exit().remove();const Mt=O.selectAll(".t0z").data([{t0:this.t0,startingPoint:this.startingPoint}]),kt=Mt.enter().append("g").classed("t0z",!0);kt.append("line").classed("line",!0),kt.append("line").classed("line touch",!0),kt.append("circle").classed("point touch",!0);const Tt=kt.merge(Mt).attr("tabindex",this.interactive?0:null).classed("interactive",this.interactive).on("keydown",this.interactive?t=>{if(["ArrowUp","ArrowDown"].includes(t.key)){let{z:e}=this;switch(t.key){case"ArrowUp":e+=t.shiftKey?ta.z.STEP:ta.z.JUMP;break;case"ArrowDown":e-=t.shiftKey?ta.z.STEP:ta.z.JUMP}e=e<ta.z.MIN?ta.z.MIN:e>ta.z.MAX?ta.z.MAX:e,this.z=e,this.alignState(),this.dispatchEvent(new CustomEvent("ddm-model-z",{detail:{z:this.z},bubbles:!0})),t.preventDefault()}if(["ArrowLeft","ArrowRight"].includes(t.key)){let e=this.t0;switch(t.key){case"ArrowRight":e+=t.shiftKey?ta.t0.STEP:ta.t0.JUMP;break;case"ArrowLeft":e-=t.shiftKey?ta.t0.STEP:ta.t0.JUMP}e=e<ta.t0.MIN?ta.t0.MIN:e>ta.t0.MAX?ta.t0.MAX:e,this.t0=e,this.alignState(),this.dispatchEvent(new CustomEvent("ddm-model-t0",{detail:{t0:this.t0},bubbles:!0})),t.preventDefault()}}:null);(this.firstUpdate||t.has("interactive"))&&(this.interactive?Tt.call(f):Tt.on(".drag",null)),Tt.select(".line").transition().duration(this.drag?0:Q).ease(er).attr("x1",y(0)).attr("x2",(t=>y(t.t0))).attr("y1",(t=>U(t.startingPoint))).attr("y2",(t=>U(t.startingPoint))),Tt.select(".line.touch").transition().duration(this.drag?0:Q).ease(er).attr("x1",y(0)).attr("x2",(t=>y(t.t0))).attr("y1",(t=>U(t.startingPoint))).attr("y2",(t=>U(t.startingPoint))),Tt.select(".point").transition().duration(this.drag?0:Q).ease(er).attr("cx",(t=>y(t.t0))).attr("cy",(t=>U(t.startingPoint))),Mt.exit().remove();const Vt=O.selectAll(".measure.a").data(this.measures?[this.a]:[]),$t=Vt.enter().append("g").classed("measure a",!0);$t.append("line").classed("line",!0).attr("marker-start","url(#measure-arrow)").attr("marker-end","url(#measure-arrow)");const Ht=$t.append("text").classed("label",!0);Ht.append("tspan").classed("a math-var",!0).text("a"),Ht.append("tspan").classed("equals",!0).text(" = "),Ht.append("tspan").classed("value",!0);const zt=$t.merge(Vt);zt.select(".line").transition().duration(this.drag?0:Q).ease(er).attr("x1",y(this.scale.time.max)-.75*this.rem).attr("y1",U(this.bounds.upper)+2).attr("x2",y(this.scale.time.max)-.75*this.rem).attr("y2",U(this.bounds.lower)-2);zt.select(".label").transition().duration(this.drag?0:Q).ease(er).attr("x",y(this.scale.time.max)).attr("y",U(this.bounds.upper)-.25*this.rem).select(".value").text(Br(".2f")(this.a)),Vt.exit().remove();const Gt=O.selectAll(".measure.z").data(this.measures?[this.z]:[]),Yt=Gt.enter().append("g").classed("measure z",!0);Yt.append("line").classed("line",!0).attr("marker-start","url(#measure-arrow)").attr("marker-end","url(#measure-arrow)");const Xt=Yt.append("text").classed("label",!0);Xt.append("tspan").classed("z math-var",!0).text("z"),Xt.append("tspan").classed("equals",!0).text(" = "),Xt.append("tspan").classed("value",!0);const Jt=Yt.merge(Gt);Jt.select(".line").transition().duration(this.drag?0:Q).ease(er).attr("x1",y(this.scale.time.min)+.75*this.rem).attr("y1",U(this.startingPoint)+2).attr("x2",y(this.scale.time.min)+.75*this.rem).attr("y2",U(this.bounds.lower)-2);Jt.select(".label").transition().duration(this.drag?0:Q).ease(er).attr("x",y(this.scale.time.min)).attr("y",U(this.bounds.lower)+.125*this.rem).select(".value").text(Br(".0%")(this.z)),Gt.exit().remove();const Wt=O.selectAll(".measure.v").data(this.measures?[this.v]:[]),_t=Wt.enter().append("g").classed("measure v",!0);_t.append("path").classed("line",!0).attr("marker-start","url(#measure-arrow)").attr("marker-end","url(#measure-arrow)");const Kt=_t.append("text").classed("label",!0);Kt.append("tspan").classed("v math-var",!0).text("v"),Kt.append("tspan").classed("equals",!0).text(" = "),Kt.append("tspan").classed("value",!0);const Pt=Math.atan(this.v/1e3*Dt),Zt=y(200)-y(0)+.75*this.rem,Ot=Math.cos(Pt)*Zt,jt=Math.sin(Pt)*Zt,qt=_t.merge(Wt);qt.select(".line").transition().duration(this.drag?0:Q).ease(er).attr("d",`\n M ${y(this.t0+200)+.75*this.rem}, ${U(this.startingPoint)}\n A ${y(200)-y(0)} ${y(200)-y(0)} 0 0 0 ${y(this.t0)+Ot} ${U(this.startingPoint)-jt}\n `);qt.select(".label").transition().duration(this.drag?0:Q).ease(er).attr("x",y(this.t0+200)+.5*this.rem).attr("y",U(this.bounds.upper)-.25*this.rem).select(".value").text(Br(".2f")(this.v)),Wt.exit().remove();const te=O.selectAll(".measure.t0").data(this.measures?[this.t0]:[]),ee=te.enter().append("g").classed("measure t0",!0);ee.append("line").classed("line",!0).attr("marker-start","url(#measure-arrow)").attr("marker-end","url(#measure-arrow)");const ie=ee.append("text").classed("label",!0);ie.append("tspan").classed("t0 math-var",!0).text("t₀"),ie.append("tspan").classed("equals",!0).text(" = "),ie.append("tspan").classed("value",!0);const se=ee.merge(te);se.select(".line").transition().duration(this.drag?0:Q).ease(er).attr("x1",y(0)+2).attr("y1",U(this.startingPoint)-.75*this.rem).attr("x2",y(this.t0)-2).attr("y2",U(this.startingPoint)-.75*this.rem);se.select(".label").transition().duration(this.drag?0:Q).ease(er).attr("x",y(this.t0)+.25*this.rem).attr("y",U(this.bounds.upper)-.25*this.rem).select(".value").text(Br("d")(this.t0)),te.exit().remove();const re=j.selectAll(".model.mean").data((t=>this.means?[t]:[])),ae=re.enter().append("g").attr("class",(t=>`model mean ${t.outcome}`));ae.append("line").classed("indicator",!0);ae.merge(re).select(".indicator").transition().duration(this.drag?0:Q).ease(er).attr("x1",(t=>y(t.model.meanRT))).attr("x2",(t=>y(t.model.meanRT))).attr("y1",(t=>t.densityScale(this.scale.density.min))).attr("y2",(t=>t.densityScale(this.scale.density.max))),re.exit().remove();const ne=j.selectAll(".data.mean").data((t=>this.means&&!Number.isNaN(t.data.meanRT)?[t]:[])),oe=ne.enter().append("g").attr("class",(t=>`data mean ${t.outcome}`));oe.append("line").classed("indicator",!0).attr("y1",(t=>t.densityScale(0)+("correct"===t.outcome?.125:-.125)*this.rem)).attr("y2",(t=>t.densityScale(0)+("correct"===t.outcome?.675:-.675)*this.rem));oe.merge(ne).select(".indicator").transition().duration(this.drag?0:Q).ease(er).attr("x1",(t=>y(t.data.meanRT))).attr("x2",(t=>y(t.data.meanRT))).attr("y1",(t=>t.densityScale(0)+("correct"===t.outcome?.125:-.125)*this.rem)).attr("y2",(t=>t.densityScale(0)+("correct"===t.outcome?.675:-.675)*this.rem)),ne.exit().select(".indicator").transition().duration(this.drag?0:Q).ease(er).attr("x1",0).attr("x2",0).on("end",((t,e,i)=>{Je(i[e].parentElement).remove()}));const le=j.selectAll(".model.sd").data((t=>this.sds?[t]:[])),ce=le.enter().append("g").attr("class",(t=>`model sd ${t.outcome}`));ce.append("line").classed("indicator",!0).attr("marker-start","url(#model-sd-cap)").attr("marker-end","url(#model-sd-cap)");ce.merge(le).select(".indicator").transition().duration(this.drag?0:Q).ease(er).attr("x1",(t=>y(t.model.meanRT-t.model.sdRT/2))).attr("x2",(t=>y(t.model.meanRT+t.model.sdRT/2))).attr("y1",(t=>t.densityScale(5))).attr("y2",(t=>t.densityScale(5))),le.exit().remove();const de=j.selectAll(".data.sd").data((t=>!this.sds||Number.isNaN(t.data.meanRT)||Number.isNaN(t.data.sdRT)?[]:[t])),ue=de.enter().append("g").attr("class",(t=>`data sd ${t.outcome}`));ue.append("line").classed("indicator",!0).attr("marker-start","url(#data-sd-cap)").attr("marker-end","url(#data-sd-cap)").attr("y1",(t=>t.densityScale(0)+("correct"===t.outcome?.375:-.375)*this.rem)).attr("y2",(t=>t.densityScale(0)+("correct"===t.outcome?.375:-.375)*this.rem));ue.merge(de).select(".indicator").transition().duration(this.drag?0:Q).ease(er).attr("x1",(t=>y(t.data.meanRT-t.data.sdRT/2))).attr("x2",(t=>y(t.data.meanRT+t.data.sdRT/2))).attr("y1",(t=>t.densityScale(0)+("correct"===t.outcome?.375:-.375)*this.rem)).attr("y2",(t=>t.densityScale(0)+("correct"===t.outcome?.375:-.375)*this.rem)),de.exit().select(".indicator").transition().duration(this.drag?0:Q).ease(er).attr("x1",0).attr("x2",0).on("end",((t,e,i)=>{Je(i[e].parentElement).remove()})),this.firstUpdate=!1}}customElements.define("ddm-model",la);class ca extends(Or(jr)){static get properties(){return{coherence:{attribute:"coherence",type:Number,reflect:!0},count:{attribute:"count",type:Number,reflect:!0},probability:{attribute:"probability",type:Number,reflect:!0},duration:{attribute:"duration",type:Number,reflect:!0},wait:{attribute:"wait",type:Number,reflect:!0},iti:{attribute:"iti",type:Number,reflect:!0},trials:{attribute:"trials",type:Number,reflect:!0},running:{attribute:"running",type:Boolean,reflect:!0},lifetime:{attribute:!1,type:Number,reflect:!1},speed:{attribute:!1,type:Number,reflect:!1}}}constructor(){super(),this.coherence=.5,this.count=100,this.probability=.5,this.duration=2e3,this.wait=2e3,this.iti=2e3,this.trials=5,this.running=!1,this.lifetime=400,this.speed=50,this.firstUpdate=!0,this.COHERENT=0,this.RANDOM=1,this.dots=[[],[]],this.trial=0,this.states=["resetted","iti","stimulus","wait","ended"],this.state="resetted",this.baseTime=0,this.pauseTime=0,this.startTime=0,this.lastTime=0,this.LEFT=180,this.RIGHT=0,this.currentDirection=void 0,this.signals=["left","right"],this.signal=void 0,this.runner=void 0,this.xScale=void 0,this.yScale=void 0}static get styles(){return[super.styles,n`
|
|
1572
1688
|
:host {
|
|
1573
1689
|
display: inline-block;
|
|
1574
1690
|
|
|
@@ -1613,7 +1729,7 @@ const la=t=>t??J;customElements.define("decidables-slider",class extends oa{stat
|
|
|
1613
1729
|
font-size: 1.75rem;
|
|
1614
1730
|
font-weight: 600;
|
|
1615
1731
|
}
|
|
1616
|
-
`]}render(){return
|
|
1732
|
+
`]}render(){return Y``}update(t){if(super.update(t),Number.isNaN(this.width)||Number.isNaN(this.height)||Number.isNaN(this.rem))return;const e=this.width,i=this.height,s=Math.min(e,i),r=.25*this.rem,a=.25*this.rem,n=.25*this.rem,o=s-(r+a),l=s-(n+.25*this.rem);this.xScale=Hr().domain([-1,1]).range([0,l]),this.yScale=Hr().domain([1,-1]).range([0,o]);const c=Je(this.renderRoot).selectAll(".main").data([{width:this.width,height:this.height,rem:this.rem}]),d=c.enter().append("svg").classed("main",!0),u=d.merge(c).attr("viewBox",`0 0 ${s} ${s}`);d.append("clipPath").attr("id","clip-rdk-task").append("circle"),u.select("clipPath circle").attr("cx",this.xScale(0)).attr("cy",this.yScale(0)).attr("r",this.xScale(1)-this.xScale(0));const h=d.append("g").classed("plot",!0),g=u.select(".plot").attr("transform",`translate(${n}, ${r})`),p=h.append("g").classed("underlayer",!0),m=g.select(".underlayer");p.append("circle").classed("background",!0),m.select(".background").attr("cx",this.xScale(0)).attr("cy",this.yScale(0)).attr("r",this.xScale(1)-this.xScale(0)),h.append("g").classed("content",!0).attr("clip-path","url(#clip-rdk-task)");g.select(".content").selectAll(".dots").data([[],[]]).enter().append("g").classed("dots",!0).classed("coherent",((t,e)=>e===this.COHERENT)).classed("random",((t,e)=>e===this.RANDOM));const b=h.append("g").classed("overlayer",!0),Q=g.select(".overlayer");b.append("circle").classed("outline",!0),Q.select(".outline").attr("cx",this.xScale(0)).attr("cy",this.yScale(0)).attr("r",this.xScale(1)-this.yScale(0)),(this.firstUpdate||t.has("running"))&&(this.running?(this.pauseTime&&(this.baseTime+=ys()-this.pauseTime,this.pauseTime=0),this.runner=function(t,e,i){var s=new Bs,r=e;return s._restart=s.restart,s.restart=function(t,e,i){e=+e,i=null==i?ys():+i,s._restart((function a(n){n+=r,s._restart(a,r+=e,i),t(n)}),e,i)},s.restart(t,e,i),s}(this.run.bind(this),20)):void 0!==this.runner&&(this.runner.stop(),this.pauseTime=ys())),this.firstUpdate=!1}reset(){void 0!==this.runner&&this.runner.stop(),this.running=!1,this.trial=0,this.state="resetted",this.baseTime=0,this.pauseTime=0,this.startTime=0,this.lastTime=0,this.signal=void 0,this.currentDirection=void 0;const t=Je(this.renderRoot).select(".content").selectAll(".dots").data([[],[]]).selectAll(".dot").data((t=>t));t.exit().remove();Je(this.renderRoot).select(".content").selectAll(".fixation").data([]).exit().remove();Je(this.renderRoot).select(".content").selectAll(".query").data([]).exit().remove()}run(){const t=ys(),e=this.baseTime?t-this.baseTime:0,i=this.baseTime?e-this.startTime:0,s=this.baseTime?e-this.lastTime:0;this.lastTime=e;let r=!1;if("resetted"===this.state?(this.state="iti",this.baseTime=t,this.startTime=0,this.dispatchEvent(new CustomEvent("rdk-block-start",{detail:{trials:this.trials},bubbles:!0}))):"iti"===this.state&&i>=this.iti?(r=!0,this.trial+=1,this.state="stimulus",this.startTime=e,this.signal=Math.random()<this.probability?"left":"right",this.currentDirection="left"===this.signal?this.LEFT:this.RIGHT,this.dispatchEvent(new CustomEvent("rdk-trial-start",{detail:{trials:this.trials,duration:this.duration,wait:this.wait,iti:this.iti,trial:this.trial,signal:this.signal},bubbles:!0}))):"stimulus"===this.state&&i>=this.duration?(this.state="wait",this.startTime=e,this.dispatchEvent(new CustomEvent("rdk-trial-middle",{detail:{trials:this.trials,duration:this.duration,wait:this.wait,iti:this.iti,trial:this.trial,signal:this.signal},bubbles:!0}))):"wait"===this.state&&i>=this.wait&&(this.dispatchEvent(new CustomEvent("rdk-trial-end",{detail:{trials:this.trials,duration:this.duration,wait:this.wait,iti:this.iti,trial:this.trial,signal:this.signal},bubbles:!0})),this.trial>=this.trials?(this.runner.stop(),this.running=!1,this.state="ended",this.baseTime=0,this.pauseTime=0,this.startTime=0,this.lastTime=0,this.signal=void 0,this.currentDirection=void 0,this.dispatchEvent(new CustomEvent("rdk-block-end",{detail:{trials:this.trial},bubbles:!0}))):(this.state="iti",this.startTime=e)),"stimulus"===this.state){this.dots[this.COHERENT].length=Math.round(this.count*this.coherence),this.dots[this.RANDOM].length=this.count-this.dots[this.COHERENT].length;for(let t=0;t<this.dots.length;t+=1)for(let i=0;i<this.dots[t].length;i+=1){const a=void 0===this.dots[t][i];a&&(this.dots[t][i]={});const n=this.dots[t][i];if(r||a){n.direction=t===this.RANDOM?360*Math.random():this.currentDirection,n.birth=e-Math.floor(Math.random()*this.lifetime);const i=2*Math.random()*Math.PI,s=Math.sqrt(Math.random());n.x=this.xScale(s*Math.cos(i)),n.y=this.yScale(s*Math.sin(i))}else if(e>n.birth+this.lifetime){n.birth+=this.lifetime,n.direction=t===this.RANDOM?360*Math.random():this.currentDirection;const e=2*Math.random()*Math.PI,i=Math.sqrt(Math.random());n.x=this.xScale(i*Math.cos(e)),n.y=this.yScale(i*Math.sin(e))}else{t===this.COHERENT&&(n.direction=this.currentDirection);const e=n.direction*(Math.PI/180);n.dx=this.speed*(s/1e3)*Math.cos(e),n.dy=this.speed*(s/1e3)*Math.sin(e),n.x+=n.dx,n.y+=n.dy;(n.x-this.xScale(0))**2+(n.y-this.yScale(0))**2>(this.xScale(1)-this.xScale(0))**2&&(n.x=-(n.x-this.xScale(0))+this.xScale(0),n.y=-(n.y-this.yScale(0))+this.yScale(0))}}}const a=Je(this.renderRoot).select(".content").selectAll(".fixation").data("iti"===this.state?[!0]:[]),n=a.enter().append("g").classed("fixation",!0);n.append("line").attr("x1",this.xScale(-.1)).attr("y1",this.xScale(0)).attr("x2",this.xScale(.1)).attr("y2",this.xScale(0)),n.append("line").attr("x1",this.xScale(0)).attr("y1",this.xScale(-.1)).attr("x2",this.xScale(0)).attr("y2",this.xScale(.1)),a.exit().remove();const o=Je(this.renderRoot).select(".content").selectAll(".dots").data("stimulus"===this.state?this.dots:[[],[]]).selectAll(".dot").data((t=>t));o.enter().append("circle").classed("dot",!0).merge(o).attr("cx",(t=>t.x)).attr("cy",(t=>t.y)),o.exit().remove();const l=Je(this.renderRoot).select(".content").selectAll(".query").data("wait"===this.state?[!0]:[]);l.enter().append("g").classed("query",!0).append("text").attr("x",this.xScale(0)).attr("y",this.xScale(0)).attr("text-anchor","middle").attr("alignment-baseline","middle").text("?"),l.exit().remove()}}customElements.define("rdk-2afc-task",ca);class da extends jr{static get properties(){return{numeric:{attribute:"numeric",type:Boolean,reflect:!0}}}constructor(){super(),this.numeric=!1}static get styles(){return[super.styles,n`
|
|
1617
1733
|
:host {
|
|
1618
1734
|
display: block;
|
|
1619
1735
|
|
|
@@ -1775,17 +1891,44 @@ const la=t=>t??J;customElements.define("decidables-slider",class extends oa{stat
|
|
|
1775
1891
|
.s {
|
|
1776
1892
|
background: var(---color-s-light);
|
|
1777
1893
|
}
|
|
1778
|
-
`]}}class
|
|
1894
|
+
`]}}class ua extends da{static get properties(){return{a:{attribute:"boundary-separation",type:Number,reflect:!0},z:{attribute:"starting-point",type:Number,reflect:!0},v:{attribute:"drift-rate",type:Number,reflect:!0},accuracy:{attribute:!1,type:Number,reflect:!1}}}constructor(){super(),this.a=ta.a.DEFAULT,this.z=ta.z.DEFAULT,this.v=ta.v.DEFAULT,this.alignState()}alignState(){this.accuracy=ta.azv2pC(this.a,this.z,this.v)}sendEvent(){this.dispatchEvent(new CustomEvent("ddm-equation-azv2pc-change",{detail:{a:this.a,z:this.z,v:this.v,accuracy:this.accuracy},bubbles:!0}))}aInput(t){this.a=parseFloat(t.target.value),this.alignState(),this.sendEvent()}zInput(t){this.z=parseFloat(t.target.value),this.alignState(),this.sendEvent()}vInput(t){this.v=parseFloat(t.target.value),this.alignState(),this.sendEvent()}willUpdate(){this.alignState()}render(){let t,e,i,s,r;this.numeric?(t=Y`<decidables-spinner class="a bottom"
|
|
1895
|
+
?disabled=${!this.interactive}
|
|
1896
|
+
min=${ta.a.MIN}
|
|
1897
|
+
max=${ta.a.MAX}
|
|
1898
|
+
step=${ta.a.STEP}
|
|
1899
|
+
.value=${this.a}
|
|
1900
|
+
@input=${this.aInput.bind(this)}
|
|
1901
|
+
>
|
|
1779
1902
|
<var class="math-var">a</var>
|
|
1780
|
-
</decidables-spinner>`,e=
|
|
1903
|
+
</decidables-spinner>`,e=Y`<decidables-spinner class="z bottom"
|
|
1904
|
+
?disabled=${!this.interactive}
|
|
1905
|
+
min=${ta.z.MIN}
|
|
1906
|
+
max=${ta.z.MAX}
|
|
1907
|
+
step=${ta.z.STEP}
|
|
1908
|
+
.value=${this.z}
|
|
1909
|
+
@input=${this.zInput.bind(this)}
|
|
1910
|
+
>
|
|
1781
1911
|
<var class="math-var">z</var>
|
|
1782
|
-
</decidables-spinner>`,i=
|
|
1912
|
+
</decidables-spinner>`,i=Y`<decidables-spinner class="v bottom"
|
|
1913
|
+
?disabled=${!this.interactive}
|
|
1914
|
+
min=${ta.v.MIN}
|
|
1915
|
+
max=${ta.v.MAX}
|
|
1916
|
+
step=${ta.v.STEP}
|
|
1917
|
+
.value=${this.v}
|
|
1918
|
+
@input=${this.vInput.bind(this)}
|
|
1919
|
+
>
|
|
1783
1920
|
<var class="math-var">v</var>
|
|
1784
|
-
</decidables-spinner>`,s=
|
|
1921
|
+
</decidables-spinner>`,s=Y`<decidables-spinner class="s bottom"
|
|
1922
|
+
disabled
|
|
1923
|
+
.value=${ta.s.DEFAULT}
|
|
1924
|
+
>
|
|
1785
1925
|
<var class="math-var">s</var>
|
|
1786
|
-
</decidables-spinner>`,r=
|
|
1926
|
+
</decidables-spinner>`,r=Y`<decidables-spinner class="accuracy bottom"
|
|
1927
|
+
disabled
|
|
1928
|
+
.value=${+this.accuracy.toFixed(2)}
|
|
1929
|
+
>
|
|
1787
1930
|
<var>Accuracy</var>
|
|
1788
|
-
</decidables-spinner>`):(t=
|
|
1931
|
+
</decidables-spinner>`):(t=Y`<var class="math-var a">a</var>`,e=Y`<var class="math-var z">z</var>`,i=Y`<var class="math-var v">v</var>`,s=Y`<var class="math-var s">s</var>`,r=Y`<var class="accuracy">Accuracy</var>`);const a=Y`
|
|
1789
1932
|
<tr>
|
|
1790
1933
|
<td rowspan="2">
|
|
1791
1934
|
${r}<span class="equals">=</span>
|
|
@@ -1802,26 +1945,60 @@ const la=t=>t??J;customElements.define("decidables-slider",class extends oa{stat
|
|
|
1802
1945
|
<span class="minus">−</span>
|
|
1803
1946
|
1
|
|
1804
1947
|
</td>
|
|
1805
|
-
</tr>`;return
|
|
1948
|
+
</tr>`;return Y`
|
|
1806
1949
|
<div class="holder">
|
|
1807
1950
|
<table class="equation">
|
|
1808
1951
|
<tbody>
|
|
1809
1952
|
${a}
|
|
1810
1953
|
</tbody>
|
|
1811
1954
|
</table>
|
|
1812
|
-
</div>`}}customElements.define("ddm-equation-azv2pc",
|
|
1955
|
+
</div>`}}customElements.define("ddm-equation-azv2pc",ua);class ha extends da{static get properties(){return{a:{attribute:"boundary-separation",type:Number,reflect:!0},z:{attribute:"starting-point",type:Number,reflect:!0},v:{attribute:"drift-rate",type:Number,reflect:!0},t0:{attribute:"nondecision-time",type:Number,reflect:!0},meanRT:{attribute:!1,type:Number,reflect:!1}}}constructor(){super(),this.a=ta.a.DEFAULT,this.z=ta.z.DEFAULT,this.v=ta.v.DEFAULT,this.t0=ta.t0.DEFAULT,this.alignState()}alignState(){this.meanRT=ta.azvt02m(this.a,this.z,this.v,this.t0)}sendEvent(){this.dispatchEvent(new CustomEvent("ddm-equation-azvt02m-change",{detail:{a:this.a,z:this.z,v:this.v,t0:this.t0,meanRT:this.meanRT},bubbles:!0}))}aInput(t){this.a=parseFloat(t.target.value),this.alignState(),this.sendEvent()}zInput(t){this.z=parseFloat(t.target.value),this.alignState(),this.sendEvent()}vInput(t){this.v=parseFloat(t.target.value),this.alignState(),this.sendEvent()}t0Input(t){this.t0=parseFloat(t.target.value),this.alignState(),this.sendEvent()}willUpdate(){this.alignState()}render(){let t,e,i,s,r,a;this.numeric?(t=Y`<decidables-spinner class="a bottom"
|
|
1956
|
+
?disabled=${!this.interactive}
|
|
1957
|
+
min=${ta.a.MIN}
|
|
1958
|
+
max=${ta.a.MAX}
|
|
1959
|
+
step=${ta.a.STEP}
|
|
1960
|
+
.value=${this.a}
|
|
1961
|
+
@input=${this.aInput.bind(this)}
|
|
1962
|
+
>
|
|
1813
1963
|
<var class="math-var">a</var>
|
|
1814
|
-
</decidables-spinner>`,e=
|
|
1964
|
+
</decidables-spinner>`,e=Y`<decidables-spinner class="z bottom"
|
|
1965
|
+
?disabled=${!this.interactive}
|
|
1966
|
+
min=${ta.z.MIN}
|
|
1967
|
+
max=${ta.z.MAX}
|
|
1968
|
+
step=${ta.z.STEP}
|
|
1969
|
+
.value=${this.z}
|
|
1970
|
+
@input=${this.zInput.bind(this)}
|
|
1971
|
+
>
|
|
1815
1972
|
<var class="math-var">z</var>
|
|
1816
|
-
</decidables-spinner>`,i=
|
|
1973
|
+
</decidables-spinner>`,i=Y`<decidables-spinner class="v bottom"
|
|
1974
|
+
?disabled=${!this.interactive}
|
|
1975
|
+
min=${ta.v.MIN}
|
|
1976
|
+
max=${ta.v.MAX}
|
|
1977
|
+
step=${ta.v.STEP}
|
|
1978
|
+
.value=${this.v}
|
|
1979
|
+
@input=${this.vInput.bind(this)}
|
|
1980
|
+
>
|
|
1817
1981
|
<var class="math-var">v</var>
|
|
1818
|
-
</decidables-spinner>`,s=
|
|
1982
|
+
</decidables-spinner>`,s=Y`<decidables-spinner class="t0 bottom"
|
|
1983
|
+
?disabled=${!this.interactive}
|
|
1984
|
+
min=${ta.t0.MIN}
|
|
1985
|
+
max=${ta.t0.MAX}
|
|
1986
|
+
step=${ta.t0.STEP}
|
|
1987
|
+
.value=${this.t0}
|
|
1988
|
+
@input=${this.t0Input.bind(this)}
|
|
1989
|
+
>
|
|
1819
1990
|
<var class="math-var">t<sub>0</sub></var>
|
|
1820
|
-
</decidables-spinner>`,r=
|
|
1991
|
+
</decidables-spinner>`,r=Y`<decidables-spinner class="s bottom"
|
|
1992
|
+
disabled
|
|
1993
|
+
.value=${ta.s.DEFAULT}
|
|
1994
|
+
>
|
|
1821
1995
|
<var class="math-var">s</var>
|
|
1822
|
-
</decidables-spinner>`,a=
|
|
1996
|
+
</decidables-spinner>`,a=Y`<decidables-spinner class="mean-rt bottom"
|
|
1997
|
+
disabled
|
|
1998
|
+
.value=${+this.meanRT.toFixed(0)}
|
|
1999
|
+
>
|
|
1823
2000
|
<var>Mean RT</var>
|
|
1824
|
-
</decidables-spinner>`):(t=
|
|
2001
|
+
</decidables-spinner>`):(t=Y`<var class="math-var a">a</var>`,e=Y`<var class="math-var z">z</var>`,i=Y`<var class="math-var v">v</var>`,s=Y`<var class="math-var t0">t<sub>0</sub></var>`,r=Y`<var class="math-var s">s</var>`,a=Y`<var class="mean-rt">Mean RT</var>`);const n=Y`
|
|
1825
2002
|
<tr>
|
|
1826
2003
|
<td rowspan="2">
|
|
1827
2004
|
${a}<span class="equals">=</span>
|
|
@@ -1856,14 +2033,14 @@ const la=t=>t??J;customElements.define("decidables-slider",class extends oa{stat
|
|
|
1856
2033
|
<span class="minus">−</span>
|
|
1857
2034
|
1
|
|
1858
2035
|
</td>
|
|
1859
|
-
</tr>`;return
|
|
2036
|
+
</tr>`;return Y`
|
|
1860
2037
|
<div class="holder">
|
|
1861
2038
|
<table class="equation">
|
|
1862
2039
|
<tbody>
|
|
1863
2040
|
${n}
|
|
1864
2041
|
</tbody>
|
|
1865
2042
|
</table>
|
|
1866
|
-
</div>`}}customElements.define("ddm-equation-azvt02m",
|
|
2043
|
+
</div>`}}customElements.define("ddm-equation-azvt02m",ha);class ga extends jr{static get styles(){return[super.styles,n`
|
|
1867
2044
|
:host {
|
|
1868
2045
|
---border: var(--border, 1px solid var(---color-border));
|
|
1869
2046
|
display: inline-block;
|
|
@@ -1908,10 +2085,10 @@ const la=t=>t??J;customElements.define("decidables-slider",class extends oa{stat
|
|
|
1908
2085
|
/* .body ::slotted(rdk-task) {
|
|
1909
2086
|
margin-left: 0;
|
|
1910
2087
|
} */
|
|
1911
|
-
`]}render(){return
|
|
2088
|
+
`]}render(){return Y`
|
|
1912
2089
|
<div class="holder">
|
|
1913
2090
|
<div class="body">
|
|
1914
2091
|
<slot>Empty!</slot>
|
|
1915
2092
|
</div>
|
|
1916
|
-
</div>`}}customElements.define("ddm-example",va);class xa extends va{constructor(){super(),this.trialCount=0}connectedCallback(){super.connectedCallback(),this.accumulableControl=this.querySelector("accumulable-control"),this.rdkTask=this.querySelector("rdk-2afc-task"),this.accumulableResponse=this.querySelector("accumulable-response"),this.accumulableTable=this.querySelector("accumulable-table"),this.ddmParameters=this.querySelector("ddm-parameters"),this.ddmModel=this.querySelector("ddm-model"),this.ddmFit=this.querySelector("ddm-fit"),this.ddmModel.clear(),this.accumulableControl&&this.accumulableControl.hasAttribute("trials")&&this.accumulableControl.addEventListener("accumulable-control-trials",(t=>{this.rdkTask&&(this.rdkTask.trials=t.detail.trials),this.accumulableResponse&&(this.accumulableResponse.trialTotal=t.detail.trials)})),this.accumulableControl&&this.accumulableControl.hasAttribute("duration")&&this.accumulableControl.addEventListener("accumulable-control-duration",(t=>{this.rdkTask&&(this.rdkTask.duration=t.detail.duration,this.rdkTask.wait=t.detail.duration,this.rdkTask.iti=t.detail.duration)})),this.accumulableControl&&this.accumulableControl.hasAttribute("coherence")&&this.accumulableControl.addEventListener("accumulable-control-coherence",(t=>{this.rdkTask&&(this.rdkTask.coherence=t.detail.coherence)})),this.accumulableControl&&this.accumulableControl.hasAttribute("color")&&this.accumulableControl.addEventListener("accumulable-control-color",(t=>{this.accumulableTable&&(this.accumulableTable.color=t.detail.color)})),this.accumulableControl&&this.accumulableControl.hasAttribute("run")&&this.accumulableControl.addEventListener("accumulable-control-run",(()=>{this.rdkTask&&(this.rdkTask.running=!0)})),this.accumulableControl&&this.accumulableControl.hasAttribute("pause")&&this.accumulableControl.addEventListener("accumulable-control-pause",(()=>{this.rdkTask&&(this.rdkTask.running=!1)})),this.accumulableControl&&this.accumulableControl.hasAttribute("reset")&&this.accumulableControl.addEventListener("accumulable-control-reset",(()=>{this.rdkTask&&this.rdkTask.reset(),this.accumulableResponse&&this.accumulableResponse.reset(),this.accumulableTable&&(this.accumulableTable.correctCount=NaN,this.accumulableTable.errorCount=NaN,this.accumulableTable.nrCount=NaN,this.accumulableTable.accuracy=NaN,this.accumulableTable.correctMeanRT=NaN,this.accumulableTable.errorMeanRT=NaN,this.accumulableTable.meanRT=NaN,this.accumulableTable.correctSDRT=NaN,this.accumulableTable.errorSDRT=NaN,this.accumulableTable.sdRT=NaN),this.ddmModel&&this.ddmModel.clear(),this.ddmFit&&this.ddmFit.clear()})),this.rdkTask&&this.accumulableResponse&&(this.accumulableResponse.trialTotal=this.rdkTask.trials),this.rdkTask&&this.rdkTask.addEventListener("rdk-trial-start",(t=>{this.accumulableResponse&&this.accumulableResponse.start(t.detail.signal,t.detail.trial)})),this.rdkTask&&this.rdkTask.addEventListener("rdk-trial-end",(()=>{this.accumulableResponse&&this.accumulableResponse.stop()})),this.rdkTask&&this.rdkTask.addEventListener("rdk-block-end",(()=>{this.accumulableControl&&this.accumulableControl.complete()})),this.accumulableResponse&&this.accumulableResponse.addEventListener("accumulable-response",(t=>{this.accumulableTable&&(this.accumulableTable.correctCount=t.detail.correctCount,this.accumulableTable.errorCount=t.detail.errorCount,this.accumulableTable.nrCount=t.detail.nrCount,this.accumulableTable.accuracy=t.detail.accuracy,this.accumulableTable.correctMeanRT=t.detail.correctMeanRT,this.accumulableTable.errorMeanRT=t.detail.errorMeanRT,this.accumulableTable.meanRT=t.detail.meanRT,this.accumulableTable.correctSDRT=t.detail.correctSDRT,this.accumulableTable.errorSDRT=t.detail.errorSDRT,this.accumulableTable.sdRT=t.detail.sdRT),this.ddmModel&&this.ddmModel.trial({index:t.detail.trial,rt:t.detail.rt,outcome:t.detail.outcome}),this.ddmFit&&this.ddmFit.set({accuracy:t.detail.accuracy,correctMeanRT:t.detail.correctMeanRT,errorMeanRT:t.detail.errorMeanRT,meanRT:t.detail.meanRT,correctSDRT:t.detail.correctSDRT,errorSDRT:t.detail.errorSDRT,sdRT:t.detail.sdRT})})),this.ddmFit&&this.ddmFit.addEventListener("ddm-fit-update",(t=>{this.ddmParameters&&(this.ddmParameters.a=t.detail.a,this.ddmParameters.z=.5,this.ddmParameters.v=t.detail.v,this.ddmParameters.t0=t.detail.t0),this.ddmModel&&(this.ddmModel.a=t.detail.a,this.ddmModel.z=.5,this.ddmModel.v=t.detail.v,this.ddmModel.t0=t.detail.t0)}))}}customElements.define("ddm-example-human",xa);class Aa extends va{static get properties(){return{trials:{attribute:"trials",type:Number,reflect:!0},a:{attribute:"boundary-separation",type:Number,reflect:!0},z:{attribute:"starting-point",type:Number,reflect:!0},v:{attribute:"drift-rate",type:Number,reflect:!0},t0:{attribute:"nondecision-time",type:Number,reflect:!0}}}constructor(){super(),this.trials=10,this.a=1.2,this.z=.35,this.v=1.5,this.t0=150,this.accumulableControl=null,this.accumulableTable=null,this.ddmParameters=null,this.ddmModel=null,this.data=void 0,this.model=void 0}connectedCallback(){super.connectedCallback(),this.accumulableControl=this.querySelector("accumulable-control"),this.accumulableTable=this.querySelector("accumulable-table"),this.ddmParameters=this.querySelector("ddm-parameters"),this.ddmModel=this.querySelector("ddm-model"),this.accumulableControl&&(this.accumulableControl.addEventListener("accumulable-control-resample",(()=>{this.ddmModel?.resample(),this.requestUpdate()})),this.accumulableControl.addEventListener("accumulable-control-trials",(t=>{this.trials=t.detail.trials}))),this.ddmParameters&&(this.ddmParameters.addEventListener("ddm-parameters-a",(t=>{this.a=t.detail.a})),this.ddmParameters.addEventListener("ddm-parameters-z",(t=>{this.z=t.detail.z})),this.ddmParameters.addEventListener("ddm-parameters-v",(t=>{this.v=t.detail.v})),this.ddmParameters.addEventListener("ddm-parameters-t0",(t=>{this.t0=t.detail.t0}))),this.ddmModel&&(this.ddmModel.addEventListener("ddm-model-a",(t=>{this.a=t.detail.a})),this.ddmModel.addEventListener("ddm-model-z",(t=>{this.z=t.detail.z})),this.ddmModel.addEventListener("ddm-model-v",(t=>{this.v=t.detail.v})),this.ddmModel.addEventListener("ddm-model-t0",(t=>{this.t0=t.detail.t0})),this.ddmModel.addEventListener("ddm-model-output",(t=>{this.data=t.detail.data,this.model=t.detail.model,this.requestUpdate()}))),this.requestUpdate()}update(t){super.update(t),this.accumulableControl&&(this.accumulableControl.trials=this.trials),this.accumulableTable&&this.data&&(this.accumulableTable.correctCount=this.data.correctCount,this.accumulableTable.errorCount=this.data.errorCount,this.accumulableTable.nrCount=this.data.nrCount,this.accumulableTable.accuracy=this.data.accuracy,this.accumulableTable.correctMeanRT=this.data.correctMeanRT,this.accumulableTable.errorMeanRT=this.data.errorMeanRT,this.accumulableTable.meanRT=this.data.meanRT,this.accumulableTable.correctSDRT=this.data.correctSDRT,this.accumulableTable.errorSDRT=this.data.errorSDRT,this.accumulableTable.sdRT=this.data.sdRT),this.ddmParameters&&(this.ddmParameters.a=this.a,this.ddmParameters.z=this.z,this.ddmParameters.v=this.v,this.ddmParameters.t0=this.t0),this.ddmModel&&(this.ddmModel.trials=this.trials,this.ddmModel.a=+this.a,this.ddmModel.z=+this.z,this.ddmModel.v=+this.v,this.ddmModel.t0=+this.t0)}}customElements.define("ddm-example-interactive",Aa);class Ea extends va{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},color:{attribute:"color",type:String,reflect:!0},a:{attribute:"boundary-separation",type:Number,reflect:!0},z:{attribute:"starting-point",type:Number,reflect:!0},v:{attribute:"drift-rate",type:Number,reflect:!0},t0:{attribute:"nondecision-time",type:Number,reflect:!0}}}constructor(){super(),this.trials=10,this.duration=2e3,this.coherence=.5,this.colors=["none","measure","outcome","all"],this.color="outcome",this.a=1.2,this.z=.35,this.v=1.5,this.t0=150,this.accumulableControl=null,this.rdkTask=null,this.ddmParameters=null,this.ddmModel=null,this.accumulableResponse=null,this.accumulableTable=null,this.trialCount=0,this.signals=["left","right"],this.signal=void 0,this.data=void 0,this.model=void 0}connectedCallback(){super.connectedCallback(),this.accumulableControl=this.querySelector("accumulable-control"),this.rdkTask=this.querySelector("rdk-2afc-task"),this.ddmParameters=this.querySelector("ddm-parameters"),this.ddmModel=this.querySelector("ddm-model"),this.accumulableResponse=this.querySelector("accumulable-response"),this.accumulableTable=this.querySelector("accumulable-table"),this.accumulableControl&&(this.accumulableControl.hasAttribute("trials")&&this.accumulableControl.addEventListener("accumulable-control-trials",(t=>{this.trials=t.detail.trials})),this.accumulableControl.hasAttribute("duration")&&this.accumulableControl.addEventListener("accumulable-control-duration",(t=>{this.duration=t.detail.duration})),this.accumulableControl.hasAttribute("color")&&this.accumulableControl.addEventListener("accumulable-control-color",(t=>{this.color=t.detail.color})),this.accumulableControl.hasAttribute("run")&&this.accumulableControl.addEventListener("accumulable-control-run",(()=>{this.rdkTask&&(this.rdkTask.running=!0),this.ddmModel&&this.ddmModel.resumeTrial()})),this.accumulableControl.hasAttribute("pause")&&this.accumulableControl.addEventListener("accumulable-control-pause",(()=>{this.rdkTask&&(this.rdkTask.running=!1),this.ddmModel&&this.ddmModel.pauseTrial()})),this.accumulableControl.hasAttribute("reset")&&this.accumulableControl.addEventListener("accumulable-control-reset",(()=>{this.trialCount=0,this.signal=void 0,this.rdkTask&&this.rdkTask.reset(),this.ddmModel&&(this.ddmModel.trials=this.trialCount),this.accumulableResponse&&this.accumulableResponse.reset(),this.accumulableTable}))),this.rdkTask&&(this.rdkTask.addEventListener("rdk-trial-start",(t=>{this.signal=t.detail.signal,this.accumulableResponse&&this.accumulableResponse.start(t.detail.signal,t.detail.trial),this.ddmModel&&(this.trialCount+=1,this.ddmModel.trial())})),this.rdkTask.addEventListener("rdk-trial-end",(()=>{this.signal=void 0,this.accumulableResponse&&this.accumulableResponse.stop()})),this.rdkTask.addEventListener("rdk-block-end",(()=>{this.accumulableControl&&this.accumulableControl.complete()}))),this.ddmParameters&&(this.ddmParameters.addEventListener("ddm-parameters-a",(t=>{this.a=t.detail.a})),this.ddmParameters.addEventListener("ddm-parameters-z",(t=>{this.z=t.detail.z})),this.ddmParameters.addEventListener("ddm-parameters-v",(t=>{this.v=t.detail.v})),this.ddmParameters.addEventListener("ddm-parameters-t0",(t=>{this.t0=t.detail.t0}))),this.ddmModel&&(this.ddmModel.addEventListener("ddm-model-a",(t=>{this.a=t.detail.a})),this.ddmModel.addEventListener("ddm-model-z",(t=>{this.z=t.detail.z})),this.ddmModel.addEventListener("ddm-model-v",(t=>{this.v=t.detail.v})),this.ddmModel.addEventListener("ddm-model-t0",(t=>{this.t0=t.detail.t0})),this.ddmModel.addEventListener("ddm-model-output",(t=>{this.data=t.detail.data,this.model=t.detail.model,this.requestUpdate()})),this.ddmModel&&this.ddmModel.addEventListener("accumulable-response",(t=>{if(this.accumulableResponse){const e="correct"===t.detail.outcome?this.signal:"left"===this.signal?"right":"left";this.accumulableResponse.responded(e)}this.data=t.detail.data,this.model=t.detail.model,this.requestUpdate()}))),this.requestUpdate()}update(t){super.update(t),this.trialCount>this.trials&&(this.trialCount=this.trials),this.accumulableControl&&(this.accumulableControl.trials=this.trials,this.accumulableControl.duration=this.duration,this.accumulableControl.coherence=this.coherence,this.accumulableControl.color=this.color),this.rdkTask&&(this.rdkTask.trials=this.trials,this.rdkTask.duration=this.duration,this.rdkTask.coherence=this.coherence),this.ddmParameters&&(this.ddmParameters.a=this.a,this.ddmParameters.z=this.z,this.ddmParameters.v=this.v,this.ddmParameters.t0=this.t0),this.ddmModel&&(this.ddmModel.trials=this.trialCount,this.ddmModel.a=+this.a,this.ddmModel.z=+this.z,this.ddmModel.v=+this.v,this.ddmModel.t0=+this.t0),this.accumulableResponse&&(this.accumulableResponse.trialTotal=this.trials),this.accumulableTable&&(this.accumulableTable.color=this.color),this.accumulableTable&&this.data&&(this.accumulableTable.correctCount=this.data.correctCount,this.accumulableTable.errorCount=this.data.errorCount,this.accumulableTable.nrCount=this.data.nrCount,this.accumulableTable.accuracy=this.data.accuracy,this.accumulableTable.correctMeanRT=this.data.correctMeanRT,this.accumulableTable.errorMeanRT=this.data.errorMeanRT,this.accumulableTable.meanRT=this.data.meanRT,this.accumulableTable.correctSDRT=this.data.correctSDRT,this.accumulableTable.errorSDRT=this.data.errorSDRT,this.accumulableTable.sdRT=this.data.sdRT)}}customElements.define("ddm-example-model",Ea);export{ha as AccumulableControl,da as AccumulableElement,ga as AccumulableResponse,pa as AccumulableTable,Fa as DDMEquationAZV2PC,Ca as DDMEquationAZVT02M,xa as DDMExampleHuman,Aa as DDMExampleInteractive,Ea as DDMExampleModel,Qa as DDMFit,fa as DDMModel,Ba as DDMParameters,Ia as RDK2AFCTask};
|
|
2093
|
+
</div>`}}customElements.define("ddm-example",ga);class pa extends ga{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},color:{attribute:"color",type:String,reflect:!0},a:{attribute:!1,type:Number,reflect:!1},z:{attribute:!1,type:Number,reflect:!1},v:{attribute:!1,type:Number,reflect:!1},t0:{attribute:!1,type:Number,reflect:!1}}}constructor(){super(),this.trials=10,this.duration=2e3,this.coherence=.5,this.colors=["none","measure","outcome","all"],this.color="outcome",this.a=ta.a.DEFAULT,this.z=ta.z.DEFAULT,this.v=ta.v.DEFAULT,this.t0=ta.t0.DEFAULT,this.accumulableControl=null,this.rdkTask=null,this.accumulableResponse=null,this.accumulableTable=null,this.ddmParameters=null,this.ddmModel=null,this.ddmFit=null,this.data=void 0}connectedCallback(){super.connectedCallback(),this.accumulableControl=this.querySelector("accumulable-control"),this.rdkTask=this.querySelector("rdk-2afc-task"),this.accumulableResponse=this.querySelector("accumulable-response"),this.accumulableTable=this.querySelector("accumulable-table"),this.ddmParameters=this.querySelector("ddm-parameters"),this.ddmModel=this.querySelector("ddm-model"),this.ddmFit=this.querySelector("ddm-fit"),this.ddmModel.clear(),this.accumulableControl&&(this.accumulableControl.addEventListener("accumulable-control-trials",(t=>{this.trials=t.detail.trials})),this.accumulableControl.addEventListener("accumulable-control-duration",(t=>{this.duration=t.detail.duration})),this.accumulableControl.addEventListener("accumulable-control-coherence",(t=>{this.coherence=t.detail.coherence})),this.accumulableControl.addEventListener("accumulable-control-color",(t=>{this.color=t.detail.color})),this.accumulableControl.addEventListener("accumulable-control-run",(()=>{this.rdkTask&&(this.rdkTask.running=!0)})),this.accumulableControl.addEventListener("accumulable-control-pause",(()=>{this.rdkTask&&(this.rdkTask.running=!1)})),this.accumulableControl.addEventListener("accumulable-control-reset",(()=>{this.rdkTask&&this.rdkTask.reset(),this.accumulableResponse&&this.accumulableResponse.reset(),this.accumulableTable&&(this.accumulableTable.correctCount=NaN,this.accumulableTable.errorCount=NaN,this.accumulableTable.nrCount=NaN,this.accumulableTable.accuracy=NaN,this.accumulableTable.correctMeanRT=NaN,this.accumulableTable.errorMeanRT=NaN,this.accumulableTable.meanRT=NaN,this.accumulableTable.correctSDRT=NaN,this.accumulableTable.errorSDRT=NaN,this.accumulableTable.sdRT=NaN),this.ddmModel&&this.ddmModel.clear(),this.ddmFit&&this.ddmFit.clear()}))),this.rdkTask&&this.rdkTask.addEventListener("rdk-trial-start",(t=>{this.accumulableResponse&&this.accumulableResponse.start(t.detail.signal,t.detail.trial)})),this.rdkTask&&this.rdkTask.addEventListener("rdk-trial-end",(()=>{this.accumulableResponse&&this.accumulableResponse.stop()})),this.rdkTask&&this.rdkTask.addEventListener("rdk-block-end",(()=>{this.accumulableControl&&this.accumulableControl.complete()})),this.accumulableResponse&&this.accumulableResponse.addEventListener("accumulable-response",(t=>{this.data=t.detail.data,this.ddmModel&&this.ddmModel.trial({index:t.detail.trial,rt:t.detail.rt,outcome:t.detail.outcome}),this.ddmFit&&this.ddmFit.set({accuracy:t.detail.data.accuracy,correctMeanRT:t.detail.data.correctMeanRT,errorMeanRT:t.detail.data.errorMeanRT,meanRT:t.detail.data.meanRT,correctSDRT:t.detail.data.correctSDRT,errorSDRT:t.detail.data.errorSDRT,sdRT:t.detail.data.sdRT}),this.requestUpdate()})),this.ddmFit&&this.ddmFit.addEventListener("ddm-fit-update",(t=>{this.a=t.detail.a,this.z=.5,this.v=t.detail.v,this.t0=t.detail.t0}))}update(t){super.update(t),this.accumulableControl&&(this.accumulableControl.trials=null!=this.accumulableControl.trials?this.trials:void 0,this.accumulableControl.duration=null!=this.accumulableControl.duration?this.duration:void 0,this.accumulableControl.coherence=null!=this.accumulableControl.coherence?this.coherence:void 0,this.accumulableControl.color=null!=this.accumulableControl.color?this.color:void 0),this.rdkTask&&(this.rdkTask.trials=this.trials,this.rdkTask.duration=this.duration,this.rdkTask.wait=this.duration,this.rdkTask.iti=this.duration,this.rdkTask.coherence=this.coherence),this.ddmParameters&&(this.ddmParameters.a=null!=this.ddmParameters.a?this.a:void 0,this.ddmParameters.z=null!=this.ddmParameters.z?this.z:void 0,this.ddmParameters.v=null!=this.ddmParameters.a?this.v:void 0,this.ddmParameters.t0=null!=this.ddmParameters.t0?this.t0:void 0),this.ddmModel&&(this.ddmModel.a=+this.a,this.ddmModel.z=+this.z,this.ddmModel.v=+this.v,this.ddmModel.t0=+this.t0),this.accumulableResponse&&(this.accumulableResponse.trialTotal=this.trials),this.accumulableTable&&(this.accumulableTable.color=this.color),this.accumulableTable&&this.data&&(this.accumulableTable.correctCount=this.data.correctCount,this.accumulableTable.errorCount=this.data.errorCount,this.accumulableTable.nrCount=this.data.nrCount,this.accumulableTable.accuracy=this.data.accuracy,this.accumulableTable.correctMeanRT=this.data.correctMeanRT,this.accumulableTable.errorMeanRT=this.data.errorMeanRT,this.accumulableTable.meanRT=this.data.meanRT,this.accumulableTable.correctSDRT=this.data.correctSDRT,this.accumulableTable.errorSDRT=this.data.errorSDRT,this.accumulableTable.sdRT=this.data.sdRT)}}customElements.define("ddm-example-human",pa);class ma extends ga{static get properties(){return{trials:{attribute:"trials",type:Number,reflect:!0},color:{attribute:"color",type:String,reflect:!0},a:{attribute:"boundary-separation",type:Number,reflect:!0},z:{attribute:"starting-point",type:Number,reflect:!0},v:{attribute:"drift-rate",type:Number,reflect:!0},t0:{attribute:"nondecision-time",type:Number,reflect:!0}}}constructor(){super(),this.trials=10,this.colors=["none","measure","outcome","all"],this.color="outcome",this.a=ta.a.DEFAULT,this.z=ta.z.DEFAULT,this.v=ta.v.DEFAULT,this.t0=ta.t0.DEFAULT,this.accumulableControl=null,this.accumulableTable=null,this.ddmParameters=null,this.ddmModel=null,this.data=void 0,this.model=void 0}connectedCallback(){super.connectedCallback(),this.accumulableControl=this.querySelector("accumulable-control"),this.accumulableTable=this.querySelector("accumulable-table"),this.ddmParameters=this.querySelector("ddm-parameters"),this.ddmModel=this.querySelector("ddm-model"),this.accumulableControl&&(this.accumulableControl.addEventListener("accumulable-control-resample",(()=>{this.ddmModel?.resample(),this.requestUpdate()})),this.accumulableControl.addEventListener("accumulable-control-trials",(t=>{this.trials=t.detail.trials})),this.accumulableControl.addEventListener("accumulable-control-color",(t=>{this.color=t.detail.color}))),this.ddmParameters&&(this.ddmParameters.addEventListener("ddm-parameters-a",(t=>{this.a=t.detail.a})),this.ddmParameters.addEventListener("ddm-parameters-z",(t=>{this.z=t.detail.z})),this.ddmParameters.addEventListener("ddm-parameters-v",(t=>{this.v=t.detail.v})),this.ddmParameters.addEventListener("ddm-parameters-t0",(t=>{this.t0=t.detail.t0}))),this.ddmModel&&(this.ddmModel.addEventListener("ddm-model-a",(t=>{this.a=t.detail.a})),this.ddmModel.addEventListener("ddm-model-z",(t=>{this.z=t.detail.z})),this.ddmModel.addEventListener("ddm-model-v",(t=>{this.v=t.detail.v})),this.ddmModel.addEventListener("ddm-model-t0",(t=>{this.t0=t.detail.t0})),this.ddmModel.addEventListener("ddm-model-output",(t=>{this.data=t.detail.data,this.model=t.detail.model,this.requestUpdate()}))),this.requestUpdate()}update(t){super.update(t),this.accumulableControl&&(this.accumulableControl.trials=null!=this.accumulableControl.trials?this.trials:void 0,this.accumulableControl.color=null!=this.accumulableControl.color?this.color:void 0),this.accumulableTable&&(this.accumulableTable.color=this.color),this.accumulableTable&&this.data&&(this.accumulableTable.correctCount=this.data.correctCount,this.accumulableTable.errorCount=this.data.errorCount,this.accumulableTable.nrCount=this.data.nrCount,this.accumulableTable.accuracy=this.data.accuracy,this.accumulableTable.correctMeanRT=this.data.correctMeanRT,this.accumulableTable.errorMeanRT=this.data.errorMeanRT,this.accumulableTable.meanRT=this.data.meanRT,this.accumulableTable.correctSDRT=this.data.correctSDRT,this.accumulableTable.errorSDRT=this.data.errorSDRT,this.accumulableTable.sdRT=this.data.sdRT),this.ddmParameters&&(this.ddmParameters.a=null!=this.ddmParameters.a?this.a:void 0,this.ddmParameters.z=null!=this.ddmParameters.z?this.z:void 0,this.ddmParameters.v=null!=this.ddmParameters.a?this.v:void 0,this.ddmParameters.t0=null!=this.ddmParameters.t0?this.t0:void 0),this.ddmModel&&(this.ddmModel.trials=this.trials,this.ddmModel.a=+this.a,this.ddmModel.z=+this.z,this.ddmModel.v=+this.v,this.ddmModel.t0=+this.t0)}}customElements.define("ddm-example-interactive",ma);class ba extends ga{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},color:{attribute:"color",type:String,reflect:!0},a:{attribute:"boundary-separation",type:Number,reflect:!0},z:{attribute:"starting-point",type:Number,reflect:!0},v:{attribute:"drift-rate",type:Number,reflect:!0},t0:{attribute:"nondecision-time",type:Number,reflect:!0}}}constructor(){super(),this.trials=10,this.duration=2e3,this.coherence=.5,this.colors=["none","measure","outcome","all"],this.color="outcome",this.a=ta.a.DEFAULT,this.z=ta.z.DEFAULT,this.v=ta.v.DEFAULT,this.t0=ta.t0.DEFAULT,this.accumulableControl=null,this.rdkTask=null,this.ddmParameters=null,this.ddmModel=null,this.accumulableResponse=null,this.accumulableTable=null,this.trialCount=0,this.signals=["left","right"],this.signal=void 0,this.data=void 0,this.model=void 0}connectedCallback(){super.connectedCallback(),this.accumulableControl=this.querySelector("accumulable-control"),this.rdkTask=this.querySelector("rdk-2afc-task"),this.ddmParameters=this.querySelector("ddm-parameters"),this.ddmModel=this.querySelector("ddm-model"),this.accumulableResponse=this.querySelector("accumulable-response"),this.accumulableTable=this.querySelector("accumulable-table"),this.accumulableControl&&(this.accumulableControl.addEventListener("accumulable-control-trials",(t=>{this.trials=t.detail.trials})),this.accumulableControl.addEventListener("accumulable-control-duration",(t=>{this.duration=t.detail.duration})),this.accumulableControl.addEventListener("accumulable-control-color",(t=>{this.color=t.detail.color})),this.accumulableControl.addEventListener("accumulable-control-run",(()=>{this.rdkTask&&(this.rdkTask.running=!0),this.ddmModel&&this.ddmModel.resumeTrial()})),this.accumulableControl.addEventListener("accumulable-control-pause",(()=>{this.rdkTask&&(this.rdkTask.running=!1),this.ddmModel&&this.ddmModel.pauseTrial()})),this.accumulableControl.addEventListener("accumulable-control-reset",(()=>{this.trialCount=0,this.signal=void 0,this.rdkTask&&this.rdkTask.reset(),this.ddmModel&&(this.ddmModel.trials=this.trialCount),this.accumulableResponse&&this.accumulableResponse.reset(),this.accumulableTable}))),this.rdkTask&&(this.rdkTask.addEventListener("rdk-trial-start",(t=>{this.signal=t.detail.signal,this.accumulableResponse&&this.accumulableResponse.start(t.detail.signal,t.detail.trial),this.ddmModel&&(this.trialCount+=1,this.ddmModel.trial())})),this.rdkTask.addEventListener("rdk-trial-end",(()=>{this.signal=void 0,this.accumulableResponse&&this.accumulableResponse.stop()})),this.rdkTask.addEventListener("rdk-block-end",(()=>{this.accumulableControl&&this.accumulableControl.complete()}))),this.ddmParameters&&(this.ddmParameters.addEventListener("ddm-parameters-a",(t=>{this.a=t.detail.a})),this.ddmParameters.addEventListener("ddm-parameters-z",(t=>{this.z=t.detail.z})),this.ddmParameters.addEventListener("ddm-parameters-v",(t=>{this.v=t.detail.v})),this.ddmParameters.addEventListener("ddm-parameters-t0",(t=>{this.t0=t.detail.t0}))),this.ddmModel&&(this.ddmModel.addEventListener("ddm-model-a",(t=>{this.a=t.detail.a})),this.ddmModel.addEventListener("ddm-model-z",(t=>{this.z=t.detail.z})),this.ddmModel.addEventListener("ddm-model-v",(t=>{this.v=t.detail.v})),this.ddmModel.addEventListener("ddm-model-t0",(t=>{this.t0=t.detail.t0})),this.ddmModel.addEventListener("ddm-model-output",(t=>{this.data=t.detail.data,this.model=t.detail.model,this.requestUpdate()})),this.ddmModel.addEventListener("accumulable-response",(t=>{if(this.accumulableResponse){const e="correct"===t.detail.outcome?this.signal:"left"===this.signal?"right":"left";this.accumulableResponse.responded(e)}this.data=t.detail.data,this.model=t.detail.model,this.requestUpdate()}))),this.requestUpdate()}update(t){super.update(t),this.trialCount>this.trials&&(this.trialCount=this.trials),this.accumulableControl&&(this.accumulableControl.trials=null!=this.accumulableControl.trials?this.trials:void 0,this.accumulableControl.duration=null!=this.accumulableControl.duration?this.duration:void 0,this.accumulableControl.coherence=null!=this.accumulableControl.coherence?this.coherence:void 0,this.accumulableControl.color=null!=this.accumulableControl.color?this.color:void 0),this.rdkTask&&(this.rdkTask.trials=this.trials,this.rdkTask.duration=this.duration,this.rdkTask.coherence=this.coherence),this.ddmParameters&&(this.ddmParameters.a=null!=this.ddmParameters.a?this.a:void 0,this.ddmParameters.z=null!=this.ddmParameters.z?this.z:void 0,this.ddmParameters.v=null!=this.ddmParameters.a?this.v:void 0,this.ddmParameters.t0=null!=this.ddmParameters.t0?this.t0:void 0),this.ddmModel&&(this.ddmModel.trials=this.trialCount,this.ddmModel.a=+this.a,this.ddmModel.z=+this.z,this.ddmModel.v=+this.v,this.ddmModel.t0=+this.t0),this.accumulableResponse&&(this.accumulableResponse.trialTotal=this.trials),this.accumulableTable&&(this.accumulableTable.color=this.color),this.accumulableTable&&this.data&&(this.accumulableTable.correctCount=this.data.correctCount,this.accumulableTable.errorCount=this.data.errorCount,this.accumulableTable.nrCount=this.data.nrCount,this.accumulableTable.accuracy=this.data.accuracy,this.accumulableTable.correctMeanRT=this.data.correctMeanRT,this.accumulableTable.errorMeanRT=this.data.errorMeanRT,this.accumulableTable.meanRT=this.data.meanRT,this.accumulableTable.correctSDRT=this.data.correctSDRT,this.accumulableTable.errorSDRT=this.data.errorSDRT,this.accumulableTable.sdRT=this.data.sdRT)}}customElements.define("ddm-example-model",ba);export{qr as AccumulableControl,jr as AccumulableElement,ea as AccumulableResponse,ia as AccumulableTable,ua as DDMEquationAZV2PC,ha as DDMEquationAZVT02M,pa as DDMExampleHuman,ma as DDMExampleInteractive,ba as DDMExampleModel,na as DDMFit,la as DDMModel,oa as DDMParameters,ca as RDK2AFCTask};
|
|
1917
2094
|
//# sourceMappingURL=accumulableElements.esm.min.js.map
|