diff --git "a/dist/distill.bundle.js" "b/dist/distill.bundle.js" --- "a/dist/distill.bundle.js" +++ "b/dist/distill.bundle.js" @@ -1,2 +1,2 @@ -(()=>{var n={792:(n,t,e)=>{var i,r;function o(n){var t="function"==typeof Map?new Map:void 0;return o=function(n){if(null===n||!function(n){try{return-1!==Function.toString.call(n).indexOf("[native code]")}catch(t){return"function"==typeof n}}(n))return n;if("function"!=typeof n)throw new TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(n))return t.get(n);t.set(n,e)}function e(){return function(n,t,e){if(l())return Reflect.construct.apply(null,arguments);var i=[null];i.push.apply(i,t);var r=new(n.bind.apply(n,i));return e&&p(r,e.prototype),r}(n,arguments,d(this).constructor)}return e.prototype=Object.create(n.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),p(e,n)},o(n)}function a(n,t){var e="undefined"!=typeof Symbol&&n[Symbol.iterator]||n["@@iterator"];if(!e){if(Array.isArray(n)||(e=w(n))||t&&n&&"number"==typeof n.length){e&&(n=e);var i=0,r=function(){};return{s:r,n:function(){return i>=n.length?{done:!0}:{done:!1,value:n[i++]}},e:function(n){throw n},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,a=!0,s=!1;return{s:function(){e=e.call(n)},n:function(){var n=e.next();return a=n.done,n},e:function(n){s=!0,o=n},f:function(){try{a||null==e.return||e.return()}finally{if(s)throw o}}}}function s(n,t,e){return t=d(t),function(n,t){if(t&&("object"==f(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(n){if(void 0===n)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return n}(n)}(n,l()?Reflect.construct(t,e||[],d(n).constructor):t.apply(n,e))}function l(){try{var n=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(n){}return(l=function(){return!!n})()}function u(n,t,e,i){var r=c(d(1&i?n.prototype:n),t,e);return 2&i&&"function"==typeof r?function(n){return r.apply(e,n)}:r}function c(){return c="undefined"!=typeof Reflect&&Reflect.get?Reflect.get.bind():function(n,t,e){var i=function(n,t){for(;!{}.hasOwnProperty.call(n,t)&&null!==(n=d(n)););return n}(n,t);if(i){var r=Object.getOwnPropertyDescriptor(i,t);return r.get?r.get.call(arguments.length<3?n:e):r.value}},c.apply(null,arguments)}function d(n){return d=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(n){return n.__proto__||Object.getPrototypeOf(n)},d(n)}function h(n,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");n.prototype=Object.create(t&&t.prototype,{constructor:{value:n,writable:!0,configurable:!0}}),Object.defineProperty(n,"prototype",{writable:!1}),t&&p(n,t)}function p(n,t){return p=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(n,t){return n.__proto__=t,n},p(n,t)}function f(n){return f="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(n){return typeof n}:function(n){return n&&"function"==typeof Symbol&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n},f(n)}function g(n,t){if(!(n instanceof t))throw new TypeError("Cannot call a class as a function")}function m(n,t){for(var e=0;en.length)&&(t=n.length);for(var e=0,i=Array(t);e2?this.authors[0].lastName+", et al.":2===this.authors.length?this.authors[0].lastName+" & "+this.authors[1].lastName:1===this.authors.length?this.authors[0].lastName:void 0}},{key:"bibtexAuthors",get:function(){return this.authors.map((function(n){return n.lastName+", "+n.firstName})).join(" and ")}},{key:"slug",get:function(){var n="";return this.authors.length&&(n+=this.authors[0].lastName.toLowerCase(),n+=this.publishedYear,n+=this.title.split(" ")[0].toLowerCase()),n||"Untitled"}},{key:"bibliographyEntries",get:function(){var n=this;return new Map(this.citations.map((function(t){return[t,n.bibliography.get(t)]})))}},{key:"bibliography",get:function(){return this._bibliography},set:function(n){n instanceof Map?this._bibliography=n:"object"===f(n)&&(this._bibliography=function(n){var t=new Map;for(var e in n)n.hasOwnProperty(e)&&t.set(e,n[e]);return t}(n))}},{key:"assignToObject",value:function(n){Object.assign(n,this),n.bibliography=function(n){return Array.from(n).reduce((function(n,t){var e,i,r,o=v(t,2),a=o[0],s=o[1];return Object.assign(n,(e={},r=s,(i=y(i=a))in e?Object.defineProperty(e,i,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[i]=r,e))}),{})}(this.bibliographyEntries),n.url=this.url,n.doi=this.doi,n.githubUrl=this.githubUrl,n.previewURL=this.previewURL,this.publishedDate&&(n.volume=this.volume,n.issue=this.issue,n.publishedDateRFC=this.publishedDateRFC,n.publishedYear=this.publishedYear,n.publishedMonth=this.publishedMonth,n.publishedDay=this.publishedDay,n.publishedMonthPadded=this.publishedMonthPadded,n.publishedDayPadded=this.publishedDayPadded),this.updatedDate&&(n.updatedDateRFC=this.updatedDateRFC),n.concatenatedAuthors=this.concatenatedAuthors,n.bibtexAuthors=this.bibtexAuthors,n.slug=this.slug}}],[{key:"fromObject",value:function(t){var e=new n;return Object.assign(e,t),e}}])}(),d=function(n){return function(n){function t(){var n;g(this,t),n=s(this,t);var e={childList:!0,characterData:!0,subtree:!0},i=new MutationObserver((function(){i.disconnect(),n.renderIfPossible(),i.observe(n,e)}));return i.observe(n,e),n}return h(t,n),b(t,[{key:"connectedCallback",value:function(){u(t,"connectedCallback",this,3)([]),this.renderIfPossible()}},{key:"renderIfPossible",value:function(){this.textContent&&this.root&&this.renderContent()}},{key:"renderContent",value:function(){console.error("Your class ".concat(this.constructor.name," must provide a custom renderContent() method!"))}}])}(n)},p=function(n,t){var e=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];return function(i){var r=document.createElement("template");return r.innerHTML=t,e&&"ShadyCSS"in window&&ShadyCSS.prepareTemplate(r,n),function(t){function i(){var n;return g(this,i),(n=s(this,i)).clone=document.importNode(r.content,!0),e&&(n.attachShadow({mode:"open"}),n.shadowRoot.appendChild(n.clone)),n}return h(i,t),b(i,[{key:"connectedCallback",value:function(){this.hasAttribute("distill-prerendered")||(e?"ShadyCSS"in window&&ShadyCSS.styleElement(this):this.insertBefore(this.clone,this.firstChild))}},{key:"root",get:function(){return e?this.shadowRoot:this}},{key:"$",value:function(n){return this.root.querySelector(n)}},{key:"$$",value:function(n){return this.root.querySelectorAll(n)}}],[{key:"is",get:function(){return n}}])}(i)}},m='/*\n * Copyright 2018 The Distill Template Authors\n *\n * Licensed under the Apache License, Version 2.0 (the "License");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an "AS IS" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nspan.katex-display {\n text-align: left;\n padding: 8px 0 8px 0;\n margin: 0.5em 0 0.5em 1em;\n}\n\nspan.katex {\n -webkit-font-smoothing: antialiased;\n color: rgba(0, 0, 0, 0.8);\n font-size: 1.18em;\n}\n',k=function(n,t,e){for(var i=e,r=0,o=n.length;i',E=function(n){function t(){return g(this,t),s(this,t,arguments)}return h(t,n),b(t,[{key:"options",get:function(){var n={displayMode:this.hasAttribute("block")};return Object.assign(n,t.katexOptions)}},{key:"connectedCallback",value:function(){u(t,"connectedCallback",this,3)([]),t.katexAdded||t.addKatex()}},{key:"renderContent",value:function(){if("undefined"!=typeof katex){var n=this.root.querySelector("#katex-container");katex.render(this.textContent,n,this.options)}}}],[{key:"katexOptions",get:function(){return t._katexOptions||(t._katexOptions={delimiters:[{left:"$$",right:"$$",display:!1}]}),t._katexOptions},set:function(n){t._katexOptions=n,t.katexOptions.delimiters&&(t.katexAdded?t.katexLoadedCallback():t.addKatex())}},{key:"katexLoadedCallback",value:function(){var n,e=a(document.querySelectorAll("d-math"));try{for(e.s();!(n=e.n()).done;)n.value.renderContent()}catch(n){e.e(n)}finally{e.f()}t.katexOptions.delimiters&&function(n,t){if(!n)throw new Error("No element provided to render");var e=Object.assign({},_,t),i=e.delimiters.flatMap((function(n){return[n.left,n.right]}));e.mightHaveMath=function(n){return i.some((function(t){return-1!==n.indexOf(t)}))},T(n,e)}(document.body,t.katexOptions)}},{key:"addKatex",value:function(){document.head.insertAdjacentHTML("beforeend",A);var n=document.createElement("script");n.src="https://distill.pub/third-party/katex/katex.min.js",n.async=!0,n.onload=t.katexLoadedCallback,n.crossorigin="anonymous",document.head.appendChild(n),t.katexAdded=!0}}])}(d(p("d-math","\n".concat(A,"\n\n\n"))(HTMLElement)));function C(){var n,t,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:document,i=new Set,r=a(e.querySelectorAll("d-cite"));try{for(r.s();!(n=r.n()).done;){var o,s=n.value,l=a((s.getAttribute("key")||s.getAttribute("bibtex-key")).split(",").map((function(n){return n.trim()})));try{for(l.s();!(o=l.n()).done;){var u=o.value;i.add(u)}}catch(n){l.e(n)}finally{l.f()}}}catch(n){r.e(n)}finally{r.f()}return function(n){if(Array.isArray(n))return x(n)}(t=i)||function(n){if("undefined"!=typeof Symbol&&null!=n[Symbol.iterator]||null!=n["@@iterator"])return Array.from(n)}(t)||w(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function N(n,t,e,i){if(null==n.author)return"";var r=n.author.split(" and "),o=r.map((function(n){if(-1!=(n=n.trim()).indexOf(","))var e=n.split(",")[0].trim(),i=n.split(",")[1];else-1!=n.indexOf(" ")?(e=n.split(" ").slice(-1)[0].trim(),i=n.split(" ").slice(0,-1).join(" ")):e=n.trim();var r="";return null!=i&&(r=(r=i.trim().split(" ").map((function(n){return n.trim()[0]}))).join(".")+"."),t.replace("${F}",i).replace("${L}",e).replace("${I}",r).trim()}));return r.length>1?o.slice(0,r.length-1).join(e)+((i||e)+o[r.length-1]):o[0]}function L(n){var t=n.journal||n.booktitle||"";if("volume"in n){var e=n.issue||n.number;e=null!=e?"("+e+")":"",t+=", Vol "+n.volume+e}return"pages"in n&&(t+=", pp. "+n.pages),""!=t&&(t+=". "),"publisher"in n&&"."!=(t+=n.publisher)[t.length-1]&&(t+="."),t}function O(n){if("url"in n){var t=n.url,e=/arxiv\.org\/abs\/([0-9\.]*)/.exec(t);if(null!=e&&(t="http://arxiv.org/pdf/".concat(e[1],".pdf")),".pdf"==t.slice(-4))var i="PDF";else".html"==t.slice(-5)&&(i="HTML");return'  [').concat(i||"link","]")}return""}function D(n,t){return"doi"in n?"".concat(t?"
":"",' DOI: ').concat(n.doi,""):""}function I(n,t){if(n){var e=function(n){return''+n.title+" "}(n);return e+=O(n)+"
",n.author&&(e+=N(n,"${L}, ${I}",", "," and "),(n.year||n.date)&&(e+=", ")),n.year||n.date?e+=(n.year||n.date)+". ":e+=". ",(e+=L(n))+D(n)}return"?"}function R(n){if(n){var t="";t+=""+n.title+"",t+=O(n),t+="
";var e=N(n,"${I} ${L}",", ")+".",i=L(n).trim()+" "+n.year+". "+D(n,!0);return(e+i).length"+i,t}return"?"}function F(){return-1!==["interactive","complete"].indexOf(document.readyState)}function U(n){var t=n.firstElementChild;if(t){if("json"==t.getAttribute("type").split("/")[1]){var e=t.textContent;return function(n){var t,e=a(n.authors);try{for(e.s();!(t=e.n()).done;){var i=t.value,r=Boolean(i.affiliation),o=Boolean(i.affiliations);if(r)if(o)console.warn("Author ".concat(i.author,' has both old-style ("affiliation" & "affiliationURL") and new style ("affiliations") affiliation information!'));else{var s={name:i.affiliation};i.affiliationURL&&(s.url=i.affiliationURL),i.affiliations=[s]}}}catch(n){e.e(n)}finally{e.f()}return n}(JSON.parse(e))}console.error("Distill only supports JSON frontmatter tags anymore; no more YAML.")}else console.error("You added a frontmatter tag but did not provide a script tag with front matter data in it. Please take a look at our templates.");return{}}E.katexAdded=!1,E.inlineMathRendered=!1,window.DMath=E;var P=function(n){function t(){var n;g(this,t),n=s(this,t);return new MutationObserver((function(t){var e,i=a(t);try{for(i.s();!(e=i.n()).done;){var r=e.value;if("SCRIPT"===r.target.nodeName||"characterData"===r.type){var o=U(n);n.notify(o)}}}catch(n){i.e(n)}finally{i.f()}})).observe(n,{childList:!0,characterData:!0,subtree:!0}),n}return h(t,n),b(t,[{key:"notify",value:function(n){var t=new CustomEvent("onFrontMatterChanged",{detail:n,bubbles:!0});document.dispatchEvent(t)}}],[{key:"is",get:function(){return"d-front-matter"}}])}(o(HTMLElement));var H=new c,j={frontMatter:H,waitingOn:{bibliography:[],citations:[]},listeners:{onCiteKeyCreated:function(n){var t=v(n.detail,2),e=t[0],i=t[1];if(H.citationsCollected)if(H.bibliographyParsed){var r=i.map((function(n){return H.citations.indexOf(n)}));e.numbers=r;var o=i.map((function(n){return H.bibliography.get(n)}));e.entries=o}else j.waitingOn.bibliography.push((function(){return j.listeners.onCiteKeyCreated(n)}));else j.waitingOn.citations.push((function(){return j.listeners.onCiteKeyCreated(n)}))},onCiteKeyChanged:function(){H.citations=C(),H.citationsCollected=!0;var n,t=a(j.waitingOn.citations.slice());try{for(t.s();!(n=t.n()).done;)(0,n.value)()}catch(n){t.e(n)}finally{t.f()}var e=document.querySelector("d-citation-list"),i=new Map(H.citations.map((function(n){return[n,H.bibliography.get(n)]})));e.citations=i;var r,o=a(document.querySelectorAll("d-cite"));try{for(o.s();!(r=o.n()).done;){var s=r.value;console.log(s);var l=s.keys,u=l.map((function(n){return H.citations.indexOf(n)}));s.numbers=u;var c=l.map((function(n){return H.bibliography.get(n)}));s.entries=c}}catch(n){o.e(n)}finally{o.f()}},onCiteKeyRemoved:function(n){j.listeners.onCiteKeyChanged(n)},onBibliographyChanged:function(n){var t=document.querySelector("d-citation-list"),e=n.detail;H.bibliography=e,H.bibliographyParsed=!0;var i,r=a(j.waitingOn.bibliography.slice());try{for(r.s();!(i=r.n()).done;)(0,i.value)()}catch(n){r.e(n)}finally{r.f()}if(H.citationsCollected)if(t.hasAttribute("distill-prerendered"))console.debug("Citation list was prerendered; not updating it.");else{var o=new Map(H.citations.map((function(n){return[n,H.bibliography.get(n)]})));t.citations=o}else j.waitingOn.citations.push((function(){j.listeners.onBibliographyChanged({target:n.target,detail:n.detail})}))},onFootnoteChanged:function(){var n=document.querySelector("d-footnote-list");if(n){var t=document.querySelectorAll("d-footnote");n.footnotes=t}},onFrontMatterChanged:function(n){var t,e,i=n.detail;e=i,(t=H).title=e.title,e.published&&(e.published instanceof Date?t.publishedDate=e.published:e.published.constructor===String&&(t.publishedDate=new Date(e.published))),e.publishedDate&&(e.publishedDate instanceof Date?t.publishedDate=e.publishedDate:e.publishedDate.constructor===String?t.publishedDate=new Date(e.publishedDate):console.error("Don't know what to do with published date: "+e.publishedDate)),t.description=e.description,t.authors=e.authors.map((function(n){return new l(n)})),t.katex=e.katex,t.password=e.password,e.doi&&(t.doi=e.doi);var r=document.querySelector("d-interstitial");if(r&&(void 0!==H.password?r.password=H.password:r.parentElement.removeChild(r)),!document.body.hasAttribute("distill-prerendered")&&F()){!function(n,t){var e=n.body,i=e.querySelector("d-article");if(i){var r=n.querySelector("d-byline");r||(t.authors?(r=n.createElement("d-byline"),e.insertBefore(r,i)):console.warn("No authors found in front matter; please add them before submission!"));var o=n.querySelector("d-title");o||(o=n.createElement("d-title"),e.insertBefore(o,r));var a=o.querySelector("h1");a||((a=n.createElement("h1")).textContent=t.title,o.insertBefore(a,o.firstChild));var s=void 0!==t.password,l=e.querySelector("d-interstitial");if(s&&!l){var u="undefined"!=typeof window,c=u&&window.location.hostname.includes("localhost");u&&c||((l=n.createElement("d-interstitial")).password=t.password,e.insertBefore(l,e.firstChild))}else!s&&l&&l.parentElement.removeChild(this);var d=n.querySelector("d-appendix");d||(d=n.createElement("d-appendix"),n.body.appendChild(d));var h=n.querySelector("d-footnote-list");h||(h=n.createElement("d-footnote-list"),d.appendChild(h));var p=n.querySelector("d-citation-list");p||(p=n.createElement("d-citation-list"),d.appendChild(p))}else console.warn("No d-article tag found; skipping adding optional components!")}(document,H);var o=document.querySelector("distill-appendix");o&&(o.frontMatter=H);var a=document.querySelector("d-byline");a&&(a.frontMatter=H),i.katex&&(E.katexOptions=i.katex)}},DOMContentLoaded:function(){if(j.loaded)console.warn("Controller received DOMContentLoaded but was already loaded!");else if(F()){j.loaded=!0,console.debug("Runlevel 4: Controller running DOMContentLoaded");var n=document.querySelector("d-front-matter");if(n){var t=U(n);j.listeners.onFrontMatterChanged({detail:t})}H.citations=C(),H.citationsCollected=!0;var e,i=a(j.waitingOn.citations.slice());try{for(i.s();!(e=i.n()).done;)(0,e.value)()}catch(n){i.e(n)}finally{i.f()}if(H.bibliographyParsed){var r,o=a(j.waitingOn.bibliography.slice());try{for(o.s();!(r=o.n()).done;)(0,r.value)()}catch(n){o.e(n)}finally{o.f()}}var s=document.querySelector("d-footnote-list");if(s){var l=document.querySelectorAll("d-footnote");s.footnotes=l}}else console.warn("Controller received DOMContentLoaded at document.readyState: "+document.readyState+"!")}}},z='/*\n * Copyright 2018 The Distill Template Authors\n *\n * Licensed under the Apache License, Version 2.0 (the "License");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an "AS IS" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nhtml {\n font-size: 14px;\n\tline-height: 1.6em;\n /* font-family: "Libre Franklin", "Helvetica Neue", sans-serif; */\n font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", Arial, sans-serif;\n /*, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";*/\n text-size-adjust: 100%;\n -ms-text-size-adjust: 100%;\n -webkit-text-size-adjust: 100%;\n}\n\n@media(min-width: 768px) {\n html {\n font-size: 16px;\n }\n}\n\nbody {\n margin: 0;\n}\n\na {\n color: #004276;\n}\n\nfigure {\n margin: 0;\n}\n\ntable {\n\tborder-collapse: collapse;\n\tborder-spacing: 0;\n}\n\ntable th {\n\ttext-align: left;\n}\n\ntable thead {\n border-bottom: 1px solid rgba(0, 0, 0, 0.05);\n}\n\ntable thead th {\n padding-bottom: 0.5em;\n}\n\ntable tbody :first-child td {\n padding-top: 0.5em;\n}\n\npre {\n overflow: auto;\n max-width: 100%;\n}\n\np {\n margin-top: 0;\n margin-bottom: 1em;\n}\n\nsup, sub {\n vertical-align: baseline;\n position: relative;\n top: -0.4em;\n line-height: 1em;\n}\n\nsub {\n top: 0.4em;\n}\n\n.kicker,\n.marker {\n font-size: 15px;\n font-weight: 600;\n color: rgba(0, 0, 0, 0.5);\n}\n\n\n/* Headline */\n\n@media(min-width: 1024px) {\n d-title h1 span {\n display: block;\n }\n}\n\n/* Figure */\n\nfigure {\n position: relative;\n margin-bottom: 2.5em;\n margin-top: 1.5em;\n}\n\nfigcaption+figure {\n\n}\n\nfigure img {\n width: 100%;\n}\n\nfigure svg text,\nfigure svg tspan {\n}\n\nfigcaption,\n.figcaption {\n color: rgba(0, 0, 0, 0.6);\n font-size: 12px;\n line-height: 1.5em;\n}\n\n@media(min-width: 1024px) {\nfigcaption,\n.figcaption {\n font-size: 13px;\n }\n}\n\nfigure.external img {\n background: white;\n border: 1px solid rgba(0, 0, 0, 0.1);\n box-shadow: 0 1px 8px rgba(0, 0, 0, 0.1);\n padding: 18px;\n box-sizing: border-box;\n}\n\nfigcaption a {\n color: rgba(0, 0, 0, 0.6);\n}\n\nfigcaption b,\nfigcaption strong, {\n font-weight: 600;\n color: rgba(0, 0, 0, 1.0);\n}\n/*\n * Copyright 2018 The Distill Template Authors\n *\n * Licensed under the Apache License, Version 2.0 (the "License");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an "AS IS" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n@supports not (display: grid) {\n .base-grid,\n distill-header,\n d-title,\n d-abstract,\n d-article,\n d-appendix,\n distill-appendix,\n d-byline,\n d-footnote-list,\n d-citation-list,\n distill-footer {\n display: block;\n padding: 8px;\n }\n}\n\n.base-grid,\ndistill-header,\nd-title,\nd-abstract,\nd-article,\nd-appendix,\ndistill-appendix,\nd-byline,\nd-footnote-list,\nd-citation-list,\ndistill-footer {\n display: grid;\n justify-items: stretch;\n grid-template-columns: [screen-start] 8px [page-start kicker-start text-start gutter-start middle-start] 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr [text-end page-end gutter-end kicker-end middle-end] 8px [screen-end];\n grid-column-gap: 8px;\n}\n\n.grid {\n display: grid;\n grid-column-gap: 8px;\n}\n\n@media(min-width: 768px) {\n .base-grid,\n distill-header,\n d-title,\n d-abstract,\n d-article,\n d-appendix,\n distill-appendix,\n d-byline,\n d-footnote-list,\n d-citation-list,\n distill-footer {\n grid-template-columns: [screen-start] 1fr [page-start kicker-start middle-start text-start] 45px 45px 45px 45px 45px 45px 45px 45px [ kicker-end text-end gutter-start] 45px [middle-end] 45px [page-end gutter-end] 1fr [screen-end];\n grid-column-gap: 16px;\n }\n\n .grid {\n grid-column-gap: 16px;\n }\n}\n\n@media(min-width: 1000px) {\n .base-grid,\n distill-header,\n d-title,\n d-abstract,\n d-article,\n d-appendix,\n distill-appendix,\n d-byline,\n d-footnote-list,\n d-citation-list,\n distill-footer {\n grid-template-columns: [screen-start] 1fr [page-start kicker-start] 50px [middle-start] 50px [text-start kicker-end] 50px 50px 50px 50px 50px 50px 50px 50px [text-end gutter-start] 50px [middle-end] 50px [page-end gutter-end] 1fr [screen-end];\n grid-column-gap: 16px;\n }\n\n .grid {\n grid-column-gap: 16px;\n }\n}\n\n@media(min-width: 1180px) {\n .base-grid,\n distill-header,\n d-title,\n d-abstract,\n d-article,\n d-appendix,\n distill-appendix,\n d-byline,\n d-footnote-list,\n d-citation-list,\n distill-footer {\n grid-template-columns: [screen-start] 1fr [page-start kicker-start] 60px [middle-start] 60px [text-start kicker-end] 60px 60px 60px 60px 60px 60px 60px 60px [text-end gutter-start] 60px [middle-end] 60px [page-end gutter-end] 1fr [screen-end];\n grid-column-gap: 32px;\n }\n\n .grid {\n grid-column-gap: 32px;\n }\n}\n\n\n\n\n.base-grid {\n grid-column: screen;\n}\n\n/* .l-body,\nd-article > * {\n grid-column: text;\n}\n\n.l-page,\nd-title > *,\nd-figure {\n grid-column: page;\n} */\n\n.l-gutter {\n grid-column: gutter;\n}\n\n.l-text,\n.l-body {\n grid-column: text;\n}\n\n.l-page {\n grid-column: page;\n}\n\n.l-body-outset {\n grid-column: middle;\n}\n\n.l-page-outset {\n grid-column: page;\n}\n\n.l-screen {\n grid-column: screen;\n}\n\n.l-screen-inset {\n grid-column: screen;\n padding-left: 16px;\n padding-left: 16px;\n}\n\n\n/* Aside */\n\nd-article aside {\n grid-column: gutter;\n font-size: 12px;\n line-height: 1.6em;\n color: rgba(0, 0, 0, 0.6)\n}\n\n@media(min-width: 768px) {\n aside {\n grid-column: gutter;\n }\n\n .side {\n grid-column: gutter;\n }\n}\n/*\n * Copyright 2018 The Distill Template Authors\n *\n * Licensed under the Apache License, Version 2.0 (the "License");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an "AS IS" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nd-title {\n padding: 2rem 0 1.5rem;\n contain: layout style;\n overflow-x: hidden;\n}\n\n@media(min-width: 768px) {\n d-title {\n padding: 4rem 0 1.5rem;\n }\n}\n\nd-title h1 {\n grid-column: text;\n font-size: 40px;\n font-weight: 700;\n line-height: 1.1em;\n margin: 0 0 0.5rem;\n}\n\n@media(min-width: 768px) {\n d-title h1 {\n font-size: 50px;\n }\n}\n\nd-title p {\n font-weight: 300;\n font-size: 1.2rem;\n line-height: 1.55em;\n grid-column: text;\n}\n\nd-title .status {\n margin-top: 0px;\n font-size: 12px;\n color: #009688;\n opacity: 0.8;\n grid-column: kicker;\n}\n\nd-title .status span {\n line-height: 1;\n display: inline-block;\n padding: 6px 0;\n border-bottom: 1px solid #80cbc4;\n font-size: 11px;\n text-transform: uppercase;\n}\n/*\n * Copyright 2018 The Distill Template Authors\n *\n * Licensed under the Apache License, Version 2.0 (the "License");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an "AS IS" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nd-byline {\n contain: style;\n overflow: hidden;\n border-top: 1px solid rgba(0, 0, 0, 0.1);\n font-size: 0.8rem;\n line-height: 1.8em;\n padding: 1.5rem 0;\n min-height: 1.8em;\n}\n\n\nd-byline .byline {\n grid-template-columns: 1fr 1fr;\n grid-column: text;\n}\n\n@media(min-width: 768px) {\n d-byline .byline {\n grid-template-columns: 1fr 1fr 1fr 1fr;\n }\n}\n\nd-byline .authors-affiliations {\n grid-column-end: span 2;\n grid-template-columns: 1fr 1fr;\n margin-bottom: 1em;\n}\n\n@media(min-width: 768px) {\n d-byline .authors-affiliations {\n margin-bottom: 0;\n }\n}\n\nd-byline h3 {\n font-size: 0.6rem;\n font-weight: 400;\n color: rgba(0, 0, 0, 0.5);\n margin: 0;\n text-transform: uppercase;\n}\n\nd-byline p {\n margin: 0;\n}\n\nd-byline a,\nd-article d-byline a {\n color: rgba(0, 0, 0, 0.8);\n text-decoration: none;\n border-bottom: none;\n}\n\nd-article d-byline a:hover {\n text-decoration: underline;\n border-bottom: none;\n}\n\nd-byline p.author {\n font-weight: 500;\n}\n\nd-byline .affiliations {\n\n}\n/*\n * Copyright 2018 The Distill Template Authors\n *\n * Licensed under the Apache License, Version 2.0 (the "License");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an "AS IS" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nd-article {\n contain: layout style;\n overflow-x: hidden;\n border-top: 1px solid rgba(0, 0, 0, 0.1);\n padding-top: 2rem;\n color: rgba(0, 0, 0, 0.8);\n}\n\nd-article > * {\n grid-column: text;\n}\n\n@media(min-width: 768px) {\n d-article {\n font-size: 16px;\n }\n}\n\n@media(min-width: 1024px) {\n d-article {\n font-size: 1.06rem;\n line-height: 1.7em;\n }\n}\n\n\n/* H2 */\n\n\nd-article .marker {\n text-decoration: none;\n border: none;\n counter-reset: section;\n grid-column: kicker;\n line-height: 1.7em;\n}\n\nd-article .marker:hover {\n border: none;\n}\n\nd-article .marker span {\n padding: 0 3px 4px;\n border-bottom: 1px solid rgba(0, 0, 0, 0.2);\n position: relative;\n top: 4px;\n}\n\nd-article .marker:hover span {\n color: rgba(0, 0, 0, 0.7);\n border-bottom: 1px solid rgba(0, 0, 0, 0.7);\n}\n\nd-article h2 {\n font-weight: 600;\n font-size: 24px;\n line-height: 1.25em;\n margin: 2rem 0 1.5rem 0;\n border-bottom: 1px solid rgba(0, 0, 0, 0.1);\n padding-bottom: 1rem;\n}\n\n@media(min-width: 1024px) {\n d-article h2 {\n font-size: 36px;\n }\n}\n\n/* H3 */\n\nd-article h3 {\n font-weight: 700;\n font-size: 18px;\n line-height: 1.4em;\n margin-bottom: 1em;\n margin-top: 2em;\n}\n\n@media(min-width: 1024px) {\n d-article h3 {\n font-size: 20px;\n }\n}\n\n/* H4 */\n\nd-article h4 {\n font-weight: 600;\n text-transform: uppercase;\n font-size: 14px;\n line-height: 1.4em;\n}\n\nd-article a {\n color: inherit;\n}\n\nd-article p,\nd-article ul,\nd-article ol,\nd-article blockquote {\n margin-top: 0;\n margin-bottom: 1em;\n margin-left: 0;\n margin-right: 0;\n}\n\nd-article blockquote {\n border-left: 2px solid rgba(0, 0, 0, 0.2);\n padding-left: 2em;\n font-style: italic;\n color: rgba(0, 0, 0, 0.6);\n}\n\nd-article a {\n border-bottom: 1px solid rgba(0, 0, 0, 0.4);\n text-decoration: none;\n}\n\nd-article a:hover {\n border-bottom: 1px solid rgba(0, 0, 0, 0.8);\n}\n\nd-article .link {\n text-decoration: underline;\n cursor: pointer;\n}\n\nd-article ul,\nd-article ol {\n padding-left: 24px;\n}\n\nd-article li {\n margin-bottom: 0.2em;\n margin-left: 0;\n padding-left: 0;\n}\n\nd-article li:last-child {\n margin-bottom: 0;\n}\n\nd-article pre {\n font-size: 14px;\n margin-bottom: 20px;\n}\n\nd-article hr {\n grid-column: screen;\n width: 100%;\n border: none;\n border-bottom: 1px solid rgba(0, 0, 0, 0.1);\n margin-top: 60px;\n margin-bottom: 60px;\n}\n\nd-article section {\n margin-top: 60px;\n margin-bottom: 60px;\n}\n\nd-article span.equation-mimic {\n font-family: georgia;\n font-size: 115%;\n font-style: italic;\n}\n\nd-article > d-code,\nd-article section > d-code {\n display: block;\n}\n\nd-article > d-math[block],\nd-article section > d-math[block] {\n display: block;\n}\n\n@media (max-width: 768px) {\n d-article > d-code,\n d-article section > d-code,\n d-article > d-math[block],\n d-article section > d-math[block] {\n overflow-x: scroll;\n -ms-overflow-style: none; // IE 10+\n overflow: -moz-scrollbars-none; // Firefox\n }\n\n d-article > d-code::-webkit-scrollbar,\n d-article section > d-code::-webkit-scrollbar,\n d-article > d-math[block]::-webkit-scrollbar,\n d-article section > d-math[block]::-webkit-scrollbar {\n display: none; // Safari and Chrome\n }\n}\n\nd-article .citation {\n color: #668;\n cursor: pointer;\n}\n\nd-include {\n width: auto;\n display: block;\n}\n\nd-figure {\n contain: layout style;\n}\n\n/* KaTeX */\n\n.katex, .katex-prerendered {\n contain: style;\n display: inline-block;\n}\n\n/* Tables */\n\nd-article table {\n border-collapse: collapse;\n margin-bottom: 1.5rem;\n border-bottom: 1px solid rgba(0, 0, 0, 0.2);\n}\n\nd-article table th {\n border-bottom: 1px solid rgba(0, 0, 0, 0.2);\n}\n\nd-article table td {\n border-bottom: 1px solid rgba(0, 0, 0, 0.05);\n}\n\nd-article table tr:last-of-type td {\n border-bottom: none;\n}\n\nd-article table th,\nd-article table td {\n font-size: 15px;\n padding: 2px 8px;\n}\n\nd-article table tbody :first-child td {\n padding-top: 2px;\n}\n'+m+'/*\n * Copyright 2018 The Distill Template Authors\n *\n * Licensed under the Apache License, Version 2.0 (the "License");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an "AS IS" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n@media print {\n\n @page {\n size: 8in 11in;\n @bottom-right {\n content: counter(page) " of " counter(pages);\n }\n }\n\n html {\n /* no general margins -- CSS Grid takes care of those */\n }\n\n p, code {\n page-break-inside: avoid;\n }\n\n h2, h3 {\n page-break-after: avoid;\n }\n\n d-header {\n visibility: hidden;\n }\n\n d-footer {\n display: none!important;\n }\n\n}\n';function $(n,t){console.debug("Runlevel 0: Polyfill required: "+n.name);var e=document.createElement("script");e.src=n.url,e.async=!1,t&&(e.onload=function(){t(n)}),e.onerror=function(){new Error("Runlevel 0: Polyfills failed to load script "+n.name)},document.head.appendChild(e)}var q=[{name:"WebComponents",support:function(){return"customElements"in window&&"attachShadow"in Element.prototype&&"getRootNode"in Element.prototype&&"content"in document.createElement("template")&&"Promise"in window&&"from"in Array},url:"https://distill.pub/third-party/polyfills/webcomponents-lite.js"},{name:"IntersectionObserver",support:function(){return"IntersectionObserver"in window&&"IntersectionObserverEntry"in window},url:"https://distill.pub/third-party/polyfills/intersection-observer.js"}],B=function(){function n(){g(this,n)}return b(n,null,[{key:"browserSupportsAllFeatures",value:function(){return q.every((function(n){return n.support()}))}},{key:"load",value:function(t){var e,i=function(e){e.loaded=!0,console.debug("Runlevel 0: Polyfill has finished loading: "+e.name),n.neededPolyfills.every((function(n){return n.loaded}))&&(console.debug("Runlevel 0: All required polyfills have finished loading."),console.debug("Runlevel 0->1."),window.distillRunlevel=1,t())},r=a(n.neededPolyfills);try{for(r.s();!(e=r.n()).done;)$(e.value,i)}catch(n){r.e(n)}finally{r.f()}}},{key:"neededPolyfills",get:function(){return n._neededPolyfills||(n._neededPolyfills=q.filter((function(n){return!n.support()}))),n._neededPolyfills}}])}();var Y=function(n){function t(){return g(this,t),s(this,t,arguments)}return h(t,n),b(t)}(p("d-abstract","\n\n\n\n"))(HTMLElement)),W=function(n){function t(){return g(this,t),s(this,t,arguments)}return h(t,n),b(t)}(p("d-appendix","\n\n\n",!1)(HTMLElement)),G=/^\s*$/,V=function(n){function t(){var n;return g(this,t),n=s(this,t),new MutationObserver((function(n){var t,e=a(n);try{for(e.s();!(t=e.n()).done;){var i,r=a(t.value.addedNodes);try{for(r.s();!(i=r.n()).done;){var o=i.value;if("#text"===o.nodeName){var s=o.nodeValue;if(!G.test(s)){console.warn("Use of unwrapped text in distill articles is discouraged as it breaks layout! Please wrap any text in a or

tag. We found the following text: "+s);var l=document.createElement("span");l.innerHTML=o.nodeValue,o.parentNode.insertBefore(l,o),o.parentNode.removeChild(o)}}}}catch(n){r.e(n)}finally{r.f()}}}catch(n){e.e(n)}finally{e.f()}})).observe(n,{childList:!0}),n}return h(t,n),b(t,null,[{key:"is",get:function(){return"d-article"}}])}(o(HTMLElement)),K="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:void 0!==e.g?e.g:"undefined"!=typeof self?self:{};function X(n,t){return n(t={exports:{}},t.exports),t.exports}var Z=X((function(n,t){!function(n){function t(){this.months=["jan","feb","mar","apr","may","jun","jul","aug","sep","oct","nov","dec"],this.notKey=[",","{","}"," ","="],this.pos=0,this.input="",this.entries=new Array,this.currentEntry="",this.setInput=function(n){this.input=n},this.getEntries=function(){return this.entries},this.isWhitespace=function(n){return" "==n||"\r"==n||"\t"==n||"\n"==n},this.match=function(n,t){if(null!=t&&null!=t||(t=!0),this.skipWhitespace(t),this.input.substring(this.pos,this.pos+n.length)!=n)throw"Token mismatch, expected "+n+", found "+this.input.substring(this.pos);this.pos+=n.length,this.skipWhitespace(t)},this.tryMatch=function(n,t){return null!=t&&null!=t||(t=!0),this.skipWhitespace(t),this.input.substring(this.pos,this.pos+n.length)==n},this.matchAt=function(){for(;this.input.length>this.pos&&"@"!=this.input[this.pos];)this.pos++;return"@"==this.input[this.pos]},this.skipWhitespace=function(n){for(;this.isWhitespace(this.input[this.pos]);)this.pos++;if("%"==this.input[this.pos]&&1==n){for(;"\n"!=this.input[this.pos];)this.pos++;this.skipWhitespace(n)}},this.value_braces=function(){var n=0;this.match("{",!1);for(var t=this.pos,e=!1;;){if(!e)if("}"==this.input[this.pos]){if(!(n>0)){var i=this.pos;return this.match("}",!1),this.input.substring(t,i)}n--}else if("{"==this.input[this.pos])n++;else if(this.pos>=this.input.length-1)throw"Unterminated value";e="\\"==this.input[this.pos]&&0==e,this.pos++}},this.value_comment=function(){for(var n="",t=0;!this.tryMatch("}",!1)||0!=t;){if(n+=this.input[this.pos],"{"==this.input[this.pos]&&t++,"}"==this.input[this.pos]&&t--,this.pos>=this.input.length-1)throw"Unterminated value:"+this.input.substring(start);this.pos++}return n},this.value_quotes=function(){this.match('"',!1);for(var n=this.pos,t=!1;;){if(!t){if('"'==this.input[this.pos]){var e=this.pos;return this.match('"',!1),this.input.substring(n,e)}if(this.pos>=this.input.length-1)throw"Unterminated value:"+this.input.substring(n)}t="\\"==this.input[this.pos]&&0==t,this.pos++}},this.single_value=function(){var n=this.pos;if(this.tryMatch("{"))return this.value_braces();if(this.tryMatch('"'))return this.value_quotes();var t=this.key();if(t.match("^[0-9]+$"))return t;if(this.months.indexOf(t.toLowerCase())>=0)return t.toLowerCase();throw"Value expected:"+this.input.substring(n)+" for key: "+t},this.value=function(){var n=[];for(n.push(this.single_value());this.tryMatch("#");)this.match("#"),n.push(this.single_value());return n.join("")},this.key=function(){for(var n=this.pos;;){if(this.pos>=this.input.length)throw"Runaway key";if(this.notKey.indexOf(this.input[this.pos])>=0)return this.input.substring(n,this.pos);this.pos++}},this.key_equals_value=function(){var n=this.key();if(this.tryMatch("="))return this.match("="),[n,this.value()];throw"... = value expected, equals sign missing:"+this.input.substring(this.pos)},this.key_value_list=function(){var n=this.key_equals_value();for(this.currentEntry.entryTags={},this.currentEntry.entryTags[n[0]]=n[1];this.tryMatch(",")&&(this.match(","),!this.tryMatch("}"));)n=this.key_equals_value(),this.currentEntry.entryTags[n[0]]=n[1]},this.entry_body=function(n){this.currentEntry={},this.currentEntry.citationKey=this.key(),this.currentEntry.entryType=n.substring(1),this.match(","),this.key_value_list(),this.entries.push(this.currentEntry)},this.directive=function(){return this.match("@"),"@"+this.key()},this.preamble=function(){this.currentEntry={},this.currentEntry.entryType="PREAMBLE",this.currentEntry.entry=this.value_comment(),this.entries.push(this.currentEntry)},this.comment=function(){this.currentEntry={},this.currentEntry.entryType="COMMENT",this.currentEntry.entry=this.value_comment(),this.entries.push(this.currentEntry)},this.entry=function(n){this.entry_body(n)},this.bibtex=function(){for(;this.matchAt();){var n=this.directive();this.match("{"),"@STRING"==n?this.string():"@PREAMBLE"==n?this.preamble():"@COMMENT"==n?this.comment():this.entry(n),this.match("}")}}}n.toJSON=function(n){var e=new t;return e.setInput(n),e.bibtex(),e.entries},n.toBibtex=function(n){var t="";for(var e in n){if(t+="@"+n[e].entryType,t+="{",n[e].citationKey&&(t+=n[e].citationKey+", "),n[e].entry&&(t+=n[e].entry),n[e].entryTags){var i="";for(var r in n[e].entryTags)0!=i.length&&(i+=", "),i+=r+"= {"+n[e].entryTags[r]+"}";t+=i}t+="}\n\n"}return t}}(t)}));function Q(n){return n.replace(/[\t\n ]+/g," ").replace(/{\\["^`.'acu~Hvs]( )?([a-zA-Z])}/g,(function(n,t,e){return e})).replace(/{\\([a-zA-Z])}/g,(function(n,t){return t}))}function J(n){var t,e=new Map,i=a(Z.toJSON(n));try{for(i.s();!(t=i.n()).done;){for(var r=t.value,o=0,s=Object.entries(r.entryTags);o

\n

Authors

\n
\n '.concat(n.authors.map((function(t,e){return'\n \n '.concat(t.personalURL?'\n ').concat(t.name)+(e+1":'\n '.concat(t.name)+(e+1","\n \n ")})).join(""),'\n
\n
\n \n
\n

Published

\n
May 31, 2024
\n
\n \n')}(n)}}],[{key:"is",get:function(){return"d-byline"}}])}(o(HTMLElement)),en=function(n){function t(){var n;return g(this,t),(n=s(this,t))._numbers=[],n._entries=[],n}return h(t,n),b(t,[{key:"connectedCallback",value:function(){var n=this;this.outerSpan=this.root.querySelector("#citation-"),this.innerSpan=this.root.querySelector(".citation-number"),this.hoverBox=this.root.querySelector("d-hover-box"),window.customElements.whenDefined("d-hover-box").then((function(){n.hoverBox.listen(n)})),this.numbers&&this.displayNumbers(this.numbers),this.entries&&this.displayEntries(this.entries)}},{key:"attributeChangedCallback",value:function(n,t,e){var i=t?"onCiteKeyChanged":"onCiteKeyCreated",r=e.split(",").map((function(n){return n.trim()})),o=new CustomEvent(i,{detail:[this,r],bubbles:!0});document.dispatchEvent(o)}},{key:"key",get:function(){return this.getAttribute("key")||this.getAttribute("bibtex-key")},set:function(n){this.setAttribute("key",n)}},{key:"keys",get:function(){var n=this.key.split(",");return console.log(n),n}},{key:"numbers",get:function(){return this._numbers},set:function(n){this._numbers=n,this.displayNumbers(n)}},{key:"displayNumbers",value:function(n){if(this.innerSpan){var t="["+n.map((function(n){return-1==n?"?":n+1+""})).join(", ")+"]";this.innerSpan.textContent=t}}},{key:"entries",get:function(){return this._entries},set:function(n){this._entries=n,this.displayEntries(n)}},{key:"displayEntries",value:function(n){this.hoverBox&&(this.hoverBox.innerHTML="
    \n ".concat(n.map(R).map((function(n){return"
  • ".concat(n,"
  • ")})).join("\n"),"\n
"))}}],[{key:"observedAttributes",get:function(){return["key","bibtex-key"]}}])}(p("d-cite",'\n\n\n\n\n
\n \n
\n')(HTMLElement));var rn=function(n){function t(){return g(this,t),s(this,t,arguments)}return h(t,n),b(t,[{key:"connectedCallback",value:function(){this.hasAttribute("distill-prerendered")||(this.style.display="none")}},{key:"citations",set:function(n){!function(n,t){var e=arguments.length>2&&void 0!==arguments[2]?arguments[2]:document;if(t.size>0){n.style.display="";var i=n.querySelector(".references");if(i)i.innerHTML="";else{var r=e.createElement("style");r.innerHTML="\nd-citation-list {\n contain: style;\n}\n\nd-citation-list .references {\n grid-column: text;\n}\n\nd-citation-list .references .title {\n font-weight: 500;\n}\n",n.appendChild(r);var o=e.createElement("h3");o.id="references",o.textContent="References",n.appendChild(o),(i=e.createElement("ol")).id="references-list",i.className="references",n.appendChild(i)}var s,l=a(t);try{for(l.s();!(s=l.n()).done;){var u=v(s.value,2),c=u[0],d=u[1],h=e.createElement("li");h.id=c,h.innerHTML=I(d),i.appendChild(h)}}catch(n){l.e(n)}finally{l.f()}}else n.style.display="none"}(this,n)}}],[{key:"is",get:function(){return"d-citation-list"}}])}(o(HTMLElement)),on=X((function(n){var t=function(n){var t=/\blang(?:uage)?-([\w-]+)\b/i,e=0,i={manual:n.Prism&&n.Prism.manual,disableWorkerMessageHandler:n.Prism&&n.Prism.disableWorkerMessageHandler,util:{encode:function n(t){return t instanceof r?new r(t.type,n(t.content),t.alias):Array.isArray(t)?t.map(n):t.replace(/&/g,"&").replace(/n.length)return;if(!(M instanceof r)){var T=1;if(y&&k!=t.tail.prev){if(g.lastIndex=S,!(N=g.exec(n)))break;var _=N.index+(b&&N[1]?N[1].length:0),A=N.index+N[0].length,E=S;for(E+=k.value.length;_>=E;)E+=(k=k.next).value.length;if(S=E-=k.value.length,k.value instanceof r)continue;for(var C=k;C!==t.tail&&(E1&&o(n,t,e,k.prev,S,!0,h+","+f),c)break}else if(c)break}}}}}function a(){var n={value:null,prev:null,next:null},t={value:null,prev:n,next:null};n.next=t,this.head=n,this.tail=t,this.length=0}function s(n,t,e){var i=t.next,r={value:e,prev:t,next:i};return t.next=r,i.prev=r,n.length++,r}function l(n,t,e){for(var i=t.next,r=0;r"+o.content+""},!n.document)return n.addEventListener?(i.disableWorkerMessageHandler||n.addEventListener("message",(function(t){var e=JSON.parse(t.data),r=e.language,o=e.code,a=e.immediateClose;n.postMessage(i.highlight(o,i.languages[r],r)),a&&n.close()}),!1),i):i;var u=i.util.currentScript();function c(){i.manual||i.highlightAll()}if(u&&(i.filename=u.src,u.hasAttribute("data-manual")&&(i.manual=!0)),!i.manual){var d=document.readyState;"loading"===d||"interactive"===d&&u&&u.defer?document.addEventListener("DOMContentLoaded",c):window.requestAnimationFrame?window.requestAnimationFrame(c):window.setTimeout(c,16)}return i}("undefined"!=typeof window?window:"undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?self:{});n.exports&&(n.exports=t),void 0!==K&&(K.Prism=t),t.languages.markup={comment://,prolog:/<\?[\s\S]+?\?>/,doctype:{pattern:/"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:(?!)*\]\s*)?>/i,greedy:!0},cdata://i,tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/i,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/i,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/i,inside:{punctuation:[/^=/,{pattern:/^(\s*)["']|["']$/,lookbehind:!0}]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:/&#?[\da-z]{1,8};/i},t.languages.markup.tag.inside["attr-value"].inside.entity=t.languages.markup.entity,t.hooks.add("wrap",(function(n){"entity"===n.type&&(n.attributes.title=n.content.replace(/&/,"&"))})),Object.defineProperty(t.languages.markup.tag,"addInlined",{value:function(n,e){var i={};i["language-"+e]={pattern:/(^$)/i,lookbehind:!0,inside:t.languages[e]},i.cdata=/^$/i;var r={"included-cdata":{pattern://i,inside:i}};r["language-"+e]={pattern:/[\s\S]+/,inside:t.languages[e]};var o={};o[n]={pattern:RegExp(/(<__[\s\S]*?>)(?:\s*|[\s\S])*?(?=<\/__>)/.source.replace(/__/g,(function(){return n})),"i"),lookbehind:!0,greedy:!0,inside:r},t.languages.insertBefore("markup","cdata",o)}}),t.languages.xml=t.languages.extend("markup",{}),t.languages.html=t.languages.markup,t.languages.mathml=t.languages.markup,t.languages.svg=t.languages.markup,function(n){var t=/("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/;n.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:/@[\w-]+[\s\S]*?(?:;|(?=\s*\{))/,inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\((?!\s*\))\s*)(?:[^()]|\((?:[^()]|\([^()]*\))*\))+?(?=\s*\))/,lookbehind:!0,alias:"selector"}}},url:{pattern:RegExp("url\\((?:"+t.source+"|[^\n\r()]*)\\)","i"),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/}},selector:RegExp("[^{}\\s](?:[^{};\"']|"+t.source+")*?(?=\\s*\\{)"),string:{pattern:t,greedy:!0},property:/[-_a-z\xA0-\uFFFF][-\w\xA0-\uFFFF]*(?=\s*:)/i,important:/!important\b/i,function:/[-a-z0-9]+(?=\()/i,punctuation:/[(){};:,]/},n.languages.css.atrule.inside.rest=n.languages.css;var e=n.languages.markup;e&&(e.tag.addInlined("style","css"),n.languages.insertBefore("inside","attr-value",{"style-attr":{pattern:/\s*style=("|')(?:\\[\s\S]|(?!\1)[^\\])*\1/i,inside:{"attr-name":{pattern:/^\s*style/i,inside:e.tag.inside},punctuation:/^\s*=\s*['"]|['"]\s*$/,"attr-value":{pattern:/.+/i,inside:n.languages.css}},alias:"language-css"}},e.tag))}(t),t.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/(\b(?:class|interface|extends|implements|trait|instanceof|new)\s+|\bcatch\s+\()[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:if|else|while|do|for|return|in|instanceof|function|new|try|throw|catch|finally|null|break|continue)\b/,boolean:/\b(?:true|false)\b/,function:/\w+(?=\()/,number:/\b0x[\da-f]+\b|(?:\b\d+\.?\d*|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/},t.languages.javascript=t.languages.extend("clike",{"class-name":[t.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])[_$A-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\.(?:prototype|constructor))/,lookbehind:!0}],keyword:[{pattern:/((?:^|})\s*)(?:catch|finally)\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],number:/\b(?:(?:0[xX](?:[\dA-Fa-f](?:_[\dA-Fa-f])?)+|0[bB](?:[01](?:_[01])?)+|0[oO](?:[0-7](?:_[0-7])?)+)n?|(?:\d(?:_\d)?)+n|NaN|Infinity)\b|(?:\b(?:\d(?:_\d)?)+\.?(?:\d(?:_\d)?)*|\B\.(?:\d(?:_\d)?)+)(?:[Ee][+-]?(?:\d(?:_\d)?)+)?/,function:/#?[_$a-zA-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,operator:/--|\+\+|\*\*=?|=>|&&|\|\||[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?[.?]?|[~:]/}),t.languages.javascript["class-name"][0].pattern=/(\b(?:class|interface|extends|implements|instanceof|new)\s+)[\w.\\]+/,t.languages.insertBefore("javascript","keyword",{regex:{pattern:/((?:^|[^$\w\xA0-\uFFFF."'\])\s])\s*)\/(?:\[(?:[^\]\\\r\n]|\\.)*]|\\.|[^/\\\[\r\n])+\/[gimyus]{0,6}(?=(?:\s|\/\*[\s\S]*?\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/,lookbehind:!0,greedy:!0},"function-variable":{pattern:/#?[_$a-zA-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|[_$a-zA-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+[_$A-Za-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*)?\s*\(\s*)(?!\s)(?:[^()]|\([^()]*\))+?(?=\s*\))/,lookbehind:!0,inside:t.languages.javascript},{pattern:/[_$a-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*=>)/i,inside:t.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()]|\([^()]*\))+?(?=\s*\)\s*=>)/,lookbehind:!0,inside:t.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:[_$A-Za-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*\s*)\(\s*)(?!\s)(?:[^()]|\([^()]*\))+?(?=\s*\)\s*\{)/,lookbehind:!0,inside:t.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),t.languages.insertBefore("javascript","string",{"template-string":{pattern:/`(?:\\[\s\S]|\${(?:[^{}]|{(?:[^{}]|{[^}]*})*})+}|(?!\${)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\${(?:[^{}]|{(?:[^{}]|{[^}]*})*})+}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\${|}$/,alias:"punctuation"},rest:t.languages.javascript}},string:/[\s\S]+/}}}),t.languages.markup&&t.languages.markup.tag.addInlined("script","javascript"),t.languages.js=t.languages.javascript,"undefined"!=typeof self&&self.Prism&&self.document&&document.querySelector&&(self.Prism.fileHighlight=function(n){n=n||document;var e={js:"javascript",py:"python",rb:"ruby",ps1:"powershell",psm1:"powershell",sh:"bash",bat:"batch",h:"c",tex:"latex"};Array.prototype.slice.call(n.querySelectorAll("pre[data-src]")).forEach((function(n){if(!n.hasAttribute("data-src-loaded")){for(var i,r=n.getAttribute("data-src"),o=n,a=/\blang(?:uage)?-([\w-]+)\b/i;o&&!a.test(o.className);)o=o.parentNode;if(o&&(i=(n.className.match(a)||[,""])[1]),!i){var s=(r.match(/\.(\w+)$/)||[,""])[1];i=e[s]||s}var l=document.createElement("code");l.className="language-"+i,n.textContent="",l.textContent="Loading…",n.appendChild(l);var u=new XMLHttpRequest;u.open("GET",r,!0),u.onreadystatechange=function(){4==u.readyState&&(u.status<400&&u.responseText?(l.textContent=u.responseText,t.highlightElement(l),n.setAttribute("data-src-loaded","")):u.status>=400?l.textContent="✖ Error "+u.status+" while fetching file: "+u.statusText:l.textContent="✖ Error: File does not exist or is empty")},u.send(null)}}))},document.addEventListener("DOMContentLoaded",(function(){self.Prism.fileHighlight()})))}));Prism.languages.python={comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0},"string-interpolation":{pattern:/(?:f|rf|fr)(?:("""|''')[\s\S]+?\1|("|')(?:\\.|(?!\2)[^\\\r\n])*\2)/i,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^{])(?:{{)*){(?!{)(?:[^{}]|{(?!{)(?:[^{}]|{(?!{)(?:[^{}])+})+})+}/,lookbehind:!0,inside:{"format-spec":{pattern:/(:)[^:(){}]+(?=}$)/,lookbehind:!0},"conversion-option":{pattern:/![sra](?=[:}]$)/,alias:"punctuation"},rest:null}},string:/[\s\S]+/}},"triple-quoted-string":{pattern:/(?:[rub]|rb|br)?("""|''')[\s\S]+?\1/i,greedy:!0,alias:"string"},string:{pattern:/(?:[rub]|rb|br)?("|')(?:\\.|(?!\1)[^\\\r\n])*\1/i,greedy:!0},function:{pattern:/((?:^|\s)def[ \t]+)[a-zA-Z_]\w*(?=\s*\()/g,lookbehind:!0},"class-name":{pattern:/(\bclass\s+)\w+/i,lookbehind:!0},decorator:{pattern:/(^\s*)@\w+(?:\.\w+)*/im,lookbehind:!0,alias:["annotation","punctuation"],inside:{punctuation:/\./}},keyword:/\b(?:and|as|assert|async|await|break|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|nonlocal|not|or|pass|print|raise|return|try|while|with|yield)\b/,builtin:/\b(?:__import__|abs|all|any|apply|ascii|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|memoryview|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\b/,boolean:/\b(?:True|False|None)\b/,number:/(?:\b(?=\d)|\B(?=\.))(?:0[bo])?(?:(?:\d|0x[\da-f])[\da-f]*\.?\d*|\.\d+)(?:e[+-]?\d+)?j?\b/i,operator:/[-+%=]=?|!=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]/,punctuation:/[{}[\];(),.:]/},Prism.languages.python["string-interpolation"].inside.interpolation.inside.rest=Prism.languages.python,Prism.languages.py=Prism.languages.python,Prism.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/(\b(?:class|interface|extends|implements|trait|instanceof|new)\s+|\bcatch\s+\()[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:if|else|while|do|for|return|in|instanceof|function|new|try|throw|catch|finally|null|break|continue)\b/,boolean:/\b(?:true|false)\b/,function:/\w+(?=\()/,number:/\b0x[\da-f]+\b|(?:\b\d+\.?\d*|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/},Prism.languages.lua={comment:/^#!.+|--(?:\[(=*)\[[\s\S]*?\]\1\]|.*)/m,string:{pattern:/(["'])(?:(?!\1)[^\\\r\n]|\\z(?:\r\n|\s)|\\(?:\r\n|[\s\S]))*\1|\[(=*)\[[\s\S]*?\]\2\]/,greedy:!0},number:/\b0x[a-f\d]+\.?[a-f\d]*(?:p[+-]?\d+)?\b|\b\d+(?:\.\B|\.?\d*(?:e[+-]?\d+)?\b)|\B\.\d+(?:e[+-]?\d+)?\b/i,keyword:/\b(?:and|break|do|else|elseif|end|false|for|function|goto|if|in|local|nil|not|or|repeat|return|then|true|until|while)\b/,function:/(?!\d)\w+(?=\s*(?:[({]))/,operator:[/[-+*%^&|#]|\/\/?|<[<=]?|>[>=]?|[=~]=?/,{pattern:/(^|[^.])\.\.(?!\.)/,lookbehind:!0}],punctuation:/[\[\](){},;]|\.+|:+/},function(n){var t="\\b(?:BASH|BASHOPTS|BASH_ALIASES|BASH_ARGC|BASH_ARGV|BASH_CMDS|BASH_COMPLETION_COMPAT_DIR|BASH_LINENO|BASH_REMATCH|BASH_SOURCE|BASH_VERSINFO|BASH_VERSION|COLORTERM|COLUMNS|COMP_WORDBREAKS|DBUS_SESSION_BUS_ADDRESS|DEFAULTS_PATH|DESKTOP_SESSION|DIRSTACK|DISPLAY|EUID|GDMSESSION|GDM_LANG|GNOME_KEYRING_CONTROL|GNOME_KEYRING_PID|GPG_AGENT_INFO|GROUPS|HISTCONTROL|HISTFILE|HISTFILESIZE|HISTSIZE|HOME|HOSTNAME|HOSTTYPE|IFS|INSTANCE|JOB|LANG|LANGUAGE|LC_ADDRESS|LC_ALL|LC_IDENTIFICATION|LC_MEASUREMENT|LC_MONETARY|LC_NAME|LC_NUMERIC|LC_PAPER|LC_TELEPHONE|LC_TIME|LESSCLOSE|LESSOPEN|LINES|LOGNAME|LS_COLORS|MACHTYPE|MAILCHECK|MANDATORY_PATH|NO_AT_BRIDGE|OLDPWD|OPTERR|OPTIND|ORBIT_SOCKETDIR|OSTYPE|PAPERSIZE|PATH|PIPESTATUS|PPID|PS1|PS2|PS3|PS4|PWD|RANDOM|REPLY|SECONDS|SELINUX_INIT|SESSION|SESSIONTYPE|SESSION_MANAGER|SHELL|SHELLOPTS|SHLVL|SSH_AUTH_SOCK|TERM|UID|UPSTART_EVENTS|UPSTART_INSTANCE|UPSTART_JOB|UPSTART_SESSION|USER|WINDOWID|XAUTHORITY|XDG_CONFIG_DIRS|XDG_CURRENT_DESKTOP|XDG_DATA_DIRS|XDG_GREETER_DATA_DIR|XDG_MENU_PREFIX|XDG_RUNTIME_DIR|XDG_SEAT|XDG_SEAT_PATH|XDG_SESSION_DESKTOP|XDG_SESSION_ID|XDG_SESSION_PATH|XDG_SESSION_TYPE|XDG_VTNR|XMODIFIERS)\\b",e={environment:{pattern:RegExp("\\$"+t),alias:"constant"},variable:[{pattern:/\$?\(\([\s\S]+?\)\)/,greedy:!0,inside:{variable:[{pattern:/(^\$\(\([\s\S]+)\)\)/,lookbehind:!0},/^\$\(\(/],number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+\.?\d*|\B\.\d+)(?:[Ee]-?\d+)?/,operator:/--?|-=|\+\+?|\+=|!=?|~|\*\*?|\*=|\/=?|%=?|<<=?|>>=?|<=?|>=?|==?|&&?|&=|\^=?|\|\|?|\|=|\?|:/,punctuation:/\(\(?|\)\)?|,|;/}},{pattern:/\$\((?:\([^)]+\)|[^()])+\)|`[^`]+`/,greedy:!0,inside:{variable:/^\$\(|^`|\)$|`$/}},{pattern:/\$\{[^}]+\}/,greedy:!0,inside:{operator:/:[-=?+]?|[!\/]|##?|%%?|\^\^?|,,?/,punctuation:/[\[\]]/,environment:{pattern:RegExp("(\\{)"+t),lookbehind:!0,alias:"constant"}}},/\$(?:\w+|[#?*!@$])/],entity:/\\(?:[abceEfnrtv\\"]|O?[0-7]{1,3}|x[0-9a-fA-F]{1,2}|u[0-9a-fA-F]{4}|U[0-9a-fA-F]{8})/};n.languages.bash={shebang:{pattern:/^#!\s*\/.*/,alias:"important"},comment:{pattern:/(^|[^"{\\$])#.*/,lookbehind:!0},"function-name":[{pattern:/(\bfunction\s+)\w+(?=(?:\s*\(?:\s*\))?\s*\{)/,lookbehind:!0,alias:"function"},{pattern:/\b\w+(?=\s*\(\s*\)\s*\{)/,alias:"function"}],"for-or-select":{pattern:/(\b(?:for|select)\s+)\w+(?=\s+in\s)/,alias:"variable",lookbehind:!0},"assign-left":{pattern:/(^|[\s;|&]|[<>]\()\w+(?=\+?=)/,inside:{environment:{pattern:RegExp("(^|[\\s;|&]|[<>]\\()"+t),lookbehind:!0,alias:"constant"}},alias:"variable",lookbehind:!0},string:[{pattern:/((?:^|[^<])<<-?\s*)(\w+?)\s*(?:\r?\n|\r)[\s\S]*?(?:\r?\n|\r)\2/,lookbehind:!0,greedy:!0,inside:e},{pattern:/((?:^|[^<])<<-?\s*)(["'])(\w+)\2\s*(?:\r?\n|\r)[\s\S]*?(?:\r?\n|\r)\3/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\](?:\\\\)*)(["'])(?:\\[\s\S]|\$\([^)]+\)|`[^`]+`|(?!\2)[^\\])*\2/,lookbehind:!0,greedy:!0,inside:e}],environment:{pattern:RegExp("\\$?"+t),alias:"constant"},variable:e.variable,function:{pattern:/(^|[\s;|&]|[<>]\()(?:add|apropos|apt|aptitude|apt-cache|apt-get|aspell|automysqlbackup|awk|basename|bash|bc|bconsole|bg|bzip2|cal|cat|cfdisk|chgrp|chkconfig|chmod|chown|chroot|cksum|clear|cmp|column|comm|cp|cron|crontab|csplit|curl|cut|date|dc|dd|ddrescue|debootstrap|df|diff|diff3|dig|dir|dircolors|dirname|dirs|dmesg|du|egrep|eject|env|ethtool|expand|expect|expr|fdformat|fdisk|fg|fgrep|file|find|fmt|fold|format|free|fsck|ftp|fuser|gawk|git|gparted|grep|groupadd|groupdel|groupmod|groups|grub-mkconfig|gzip|halt|head|hg|history|host|hostname|htop|iconv|id|ifconfig|ifdown|ifup|import|install|ip|jobs|join|kill|killall|less|link|ln|locate|logname|logrotate|look|lpc|lpr|lprint|lprintd|lprintq|lprm|ls|lsof|lynx|make|man|mc|mdadm|mkconfig|mkdir|mke2fs|mkfifo|mkfs|mkisofs|mknod|mkswap|mmv|more|most|mount|mtools|mtr|mutt|mv|nano|nc|netstat|nice|nl|nohup|notify-send|npm|nslookup|op|open|parted|passwd|paste|pathchk|ping|pkill|pnpm|popd|pr|printcap|printenv|ps|pushd|pv|quota|quotacheck|quotactl|ram|rar|rcp|reboot|remsync|rename|renice|rev|rm|rmdir|rpm|rsync|scp|screen|sdiff|sed|sendmail|seq|service|sftp|sh|shellcheck|shuf|shutdown|sleep|slocate|sort|split|ssh|stat|strace|su|sudo|sum|suspend|swapon|sync|tac|tail|tar|tee|time|timeout|top|touch|tr|traceroute|tsort|tty|umount|uname|unexpand|uniq|units|unrar|unshar|unzip|update-grub|uptime|useradd|userdel|usermod|users|uudecode|uuencode|v|vdir|vi|vim|virsh|vmstat|wait|watch|wc|wget|whereis|which|who|whoami|write|xargs|xdg-open|yarn|yes|zenity|zip|zsh|zypper)(?=$|[)\s;|&])/,lookbehind:!0},keyword:{pattern:/(^|[\s;|&]|[<>]\()(?:if|then|else|elif|fi|for|while|in|case|esac|function|select|do|done|until)(?=$|[)\s;|&])/,lookbehind:!0},builtin:{pattern:/(^|[\s;|&]|[<>]\()(?:\.|:|break|cd|continue|eval|exec|exit|export|getopts|hash|pwd|readonly|return|shift|test|times|trap|umask|unset|alias|bind|builtin|caller|command|declare|echo|enable|help|let|local|logout|mapfile|printf|read|readarray|source|type|typeset|ulimit|unalias|set|shopt)(?=$|[)\s;|&])/,lookbehind:!0,alias:"class-name"},boolean:{pattern:/(^|[\s;|&]|[<>]\()(?:true|false)(?=$|[)\s;|&])/,lookbehind:!0},"file-descriptor":{pattern:/\B&\d\b/,alias:"important"},operator:{pattern:/\d?<>|>\||\+=|==?|!=?|=~|<<[<-]?|[&\d]?>>|\d?[<>]&?|&[>&]?|\|[&|]?|<=?|>=?/,inside:{"file-descriptor":{pattern:/^\d/,alias:"important"}}},punctuation:/\$?\(\(?|\)\)?|\.\.|[{}[\];\\]/,number:{pattern:/(^|\s)(?:[1-9]\d*|0)(?:[.,]\d+)?\b/,lookbehind:!0}};for(var i=["comment","function-name","for-or-select","assign-left","string","environment","function","keyword","builtin","boolean","file-descriptor","operator","punctuation","number"],r=e.variable[1].inside,o=0;o(?:>=?|=)?|<(?:<=?|=|-)?|:=|\.\.\./,number:/(?:\b0x[a-f\d]+|(?:\b\d+\.?\d*|\B\.\d+)(?:e[-+]?\d+)?)i?/i,string:{pattern:/(["'`])(?:\\[\s\S]|(?!\1)[^\\])*\1/,greedy:!0}}),delete Prism.languages.go["class-name"],function(n){var t=/(?:\\.|[^\\\n\r]|(?:\n|\r\n?)(?!\n|\r\n?))/.source;function e(n,e){return n=n.replace(//g,(function(){return t})),e&&(n=n+"|"+n.replace(/_/g,"\\*")),RegExp(/((?:^|[^\\])(?:\\{2})*)/.source+"(?:"+n+")")}var i=/(?:\\.|``.+?``|`[^`\r\n]+`|[^\\|\r\n`])+/.source,r=/\|?__(?:\|__)+\|?(?:(?:\n|\r\n?)|$)/.source.replace(/__/g,(function(){return i})),o=/\|?[ \t]*:?-{3,}:?[ \t]*(?:\|[ \t]*:?-{3,}:?[ \t]*)+\|?(?:\n|\r\n?)/.source;n.languages.markdown=n.languages.extend("markup",{}),n.languages.insertBefore("markdown","prolog",{blockquote:{pattern:/^>(?:[\t ]*>)*/m,alias:"punctuation"},table:{pattern:RegExp("^"+r+o+"(?:"+r+")*","m"),inside:{"table-data-rows":{pattern:RegExp("^("+r+o+")(?:"+r+")*$"),lookbehind:!0,inside:{"table-data":{pattern:RegExp(i),inside:n.languages.markdown},punctuation:/\|/}},"table-line":{pattern:RegExp("^("+r+")"+o+"$"),lookbehind:!0,inside:{punctuation:/\||:?-{3,}:?/}},"table-header-row":{pattern:RegExp("^"+r+"$"),inside:{"table-header":{pattern:RegExp(i),alias:"important",inside:n.languages.markdown},punctuation:/\|/}}}},code:[{pattern:/((?:^|\n)[ \t]*\n|(?:^|\r\n?)[ \t]*\r\n?)(?: {4}|\t).+(?:(?:\n|\r\n?)(?: {4}|\t).+)*/,lookbehind:!0,alias:"keyword"},{pattern:/``.+?``|`[^`\r\n]+`/,alias:"keyword"},{pattern:/^```[\s\S]*?^```$/m,greedy:!0,inside:{"code-block":{pattern:/^(```.*(?:\n|\r\n?))[\s\S]+?(?=(?:\n|\r\n?)^```$)/m,lookbehind:!0},"code-language":{pattern:/^(```).+/,lookbehind:!0},punctuation:/```/}}],title:[{pattern:/\S.*(?:\n|\r\n?)(?:==+|--+)(?=[ \t]*$)/m,alias:"important",inside:{punctuation:/==+$|--+$/}},{pattern:/(^\s*)#+.+/m,lookbehind:!0,alias:"important",inside:{punctuation:/^#+|#+$/}}],hr:{pattern:/(^\s*)([*-])(?:[\t ]*\2){2,}(?=\s*$)/m,lookbehind:!0,alias:"punctuation"},list:{pattern:/(^\s*)(?:[*+-]|\d+\.)(?=[\t ].)/m,lookbehind:!0,alias:"punctuation"},"url-reference":{pattern:/!?\[[^\]]+\]:[\t ]+(?:\S+|<(?:\\.|[^>\\])+>)(?:[\t ]+(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\)))?/,inside:{variable:{pattern:/^(!?\[)[^\]]+/,lookbehind:!0},string:/(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\))$/,punctuation:/^[\[\]!:]|[<>]/},alias:"url"},bold:{pattern:e(/__(?:(?!_)|_(?:(?!_))+_)+__/.source,!0),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^..)[\s\S]+(?=..$)/,lookbehind:!0,inside:{}},punctuation:/\*\*|__/}},italic:{pattern:e(/_(?:(?!_)|__(?:(?!_))+__)+_/.source,!0),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^.)[\s\S]+(?=.$)/,lookbehind:!0,inside:{}},punctuation:/[*_]/}},strike:{pattern:e(/(~~?)(?:(?!~))+?\2/.source,!1),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^~~?)[\s\S]+(?=\1$)/,lookbehind:!0,inside:{}},punctuation:/~~?/}},url:{pattern:e(/!?\[(?:(?!\]))+\](?:\([^\s)]+(?:[\t ]+"(?:\\.|[^"\\])*")?\)| ?\[(?:(?!\]))+\])/.source,!1),lookbehind:!0,greedy:!0,inside:{variable:{pattern:/(\[)[^\]]+(?=\]$)/,lookbehind:!0},content:{pattern:/(^!?\[)[^\]]+(?=\])/,lookbehind:!0,inside:{}},string:{pattern:/"(?:\\.|[^"\\])*"(?=\)$)/}}}}),["url","bold","italic","strike"].forEach((function(t){["url","bold","italic","strike"].forEach((function(e){t!==e&&(n.languages.markdown[t].inside.content.inside[e]=n.languages.markdown[e])}))})),n.hooks.add("after-tokenize",(function(n){"markdown"!==n.language&&"md"!==n.language||function n(t){if(t&&"string"!=typeof t)for(var e=0,i=t.length;e]?|<(?:<=?|[=:])?|>(?:=|>>?=?)?|==?=?|[~≠≤≥]/,punctuation:/[{}[\];(),.:]/,constant:/\b(?:(?:NaN|Inf)(?:16|32|64)?)\b/};var an=function(n){function t(){return g(this,t),s(this,t,arguments)}return h(t,n),b(t,[{key:"renderContent",value:function(){if(this.languageName=this.getAttribute("language"),this.languageName){var n=on.languages[this.languageName];if(null!=n){var t=this.textContent,e=this.shadowRoot.querySelector("#code-container");if(this.hasAttribute("block")){var i=(t=t.replace(/\n/,"")).match(/\s*/);if(t=(t=t.replace(new RegExp("\n"+i,"g"),"\n")).trim(),e.parentNode instanceof ShadowRoot){var r=document.createElement("pre");this.shadowRoot.removeChild(e),r.appendChild(e),this.shadowRoot.appendChild(r)}}e.className="language-".concat(this.languageName),e.innerHTML=on.highlight(t,n)}else console.warn('Distill does not yet support highlighting your code block in "'.concat(this.languageName,"'."))}else console.warn('You need to provide a language attribute to your block to let us know how to highlight your code; e.g.:\n zeros = np.zeros(shape).')}}])}(d(p("d-code","\n\n\n\n\n'))(HTMLElement))),sn=function(n){function t(){var n;g(this,t),n=s(this,t);return new MutationObserver(n.notify).observe(n,{childList:!0,characterData:!0,subtree:!0}),n}return h(t,n),b(t,[{key:"notify",value:function(){var n=new CustomEvent("onFootnoteChanged",{detail:this,bubbles:!0});document.dispatchEvent(n)}},{key:"connectedCallback",value:function(){var n=this;this.hoverBox=this.root.querySelector("d-hover-box"),window.customElements.whenDefined("d-hover-box").then((function(){n.hoverBox.listen(n)})),t.currentFootnoteId+=1;var e=t.currentFootnoteId.toString();this.root.host.id="d-footnote-"+e;var i="dt-fn-hover-box-"+e;this.hoverBox.id=i;var r=this.root.querySelector("#fn-");r.setAttribute("id","fn-"+e),r.setAttribute("data-hover-ref",i),r.textContent=e}}])}(p("d-footnote",'\n\n\n\n
\n \n
\n
\n\n\n \n\n\n')(HTMLElement));sn.currentFootnoteId=0;var ln=function(n){function t(){return g(this,t),s(this,t,arguments)}return h(t,n),b(t,[{key:"connectedCallback",value:function(){u(t,"connectedCallback",this,3)([]),this.list=this.root.querySelector("ol"),this.root.style.display="none"}},{key:"footnotes",set:function(n){if(this.list.innerHTML="",n.length){this.root.style.display="";var t,e=a(n);try{for(e.s();!(t=e.n()).done;){var i=t.value,r=document.createElement("li");r.id=i.id+"-listing",r.innerHTML=i.innerHTML;var o=document.createElement("a");o.setAttribute("class","footnote-backlink"),o.setAttribute("target","_self"),o.textContent="[↩]",o.href="#"+i.id,r.appendChild(o),this.list.appendChild(r)}}catch(n){e.e(n)}finally{e.f()}}else this.root.style.display="none"}}])}(p("d-footnote-list","\n\n\n

Footnotes

\n
    \n",!1)(HTMLElement)),un=function(n){function t(){return g(this,t),s(this,t)}return h(t,n),b(t,[{key:"connectedCallback",value:function(){}},{key:"listen",value:function(n){this.bindDivEvents(this),this.bindTriggerEvents(n)}},{key:"bindDivEvents",value:function(n){var t=this;n.addEventListener("mouseover",(function(){t.visible||t.showAtNode(n),t.stopTimeout()})),n.addEventListener("mouseout",(function(){t.extendTimeout(500)})),n.addEventListener("touchstart",(function(n){n.stopPropagation()}),{passive:!0}),document.body.addEventListener("touchstart",(function(){t.hide()}),{passive:!0})}},{key:"bindTriggerEvents",value:function(n){var t=this;n.addEventListener("mouseover",(function(){t.visible||t.showAtNode(n),t.stopTimeout()})),n.addEventListener("mouseout",(function(){t.extendTimeout(300)})),n.addEventListener("touchstart",(function(e){t.visible?t.hide():t.showAtNode(n),e.stopPropagation()}),{passive:!0})}},{key:"show",value:function(n){this.visible=!0,this.style.display="block",this.style.top=Math.round(n[1]+10)+"px"}},{key:"showAtNode",value:function(n){var t=n.getBoundingClientRect();this.show([n.offsetLeft+t.width,n.offsetTop+t.height])}},{key:"hide",value:function(){this.visible=!1,this.style.display="none",this.stopTimeout()}},{key:"stopTimeout",value:function(){this.timeout&&clearTimeout(this.timeout)}},{key:"extendTimeout",value:function(n){var t=this;this.stopTimeout(),this.timeout=setTimeout((function(){t.hide()}),n)}}])}(p("d-hover-box",'\n\n\n
    \n
    \n \n
    \n
    \n')(HTMLElement)),cn=function(n){function t(){return g(this,t),s(this,t,arguments)}return h(t,n),b(t,null,[{key:"is",get:function(){return"d-title"}}])}(o(HTMLElement)),dn=function(n){function t(){return g(this,t),s(this,t,arguments)}return h(t,n),b(t)}(p("d-references","\n\n",!1)(HTMLElement)),hn=function(n){function t(){return g(this,t),s(this,t,arguments)}return h(t,n),b(t,[{key:"connectedCallback",value:function(){var n=this;this.getAttribute("prerendered")||(window.onload=function(){var t=document.querySelector("d-article").querySelectorAll("h2, h3");!function(n,t){var e,i='\n \n \n

    Table of contents

    \n
      ',r=a(t);try{for(r.s();!(e=r.n()).done;){var o=e.value,s="D-TITLE"==o.parentElement.tagName,l=o.getAttribute("no-toc");if(!s&&!l){var u=o.textContent,c='
    • '+u+"
    • ";"H3"==o.tagName?c="
        "+c+"
      ":c+="
      ",i+=c}}}catch(n){r.e(n)}finally{r.f()}i+="
    ",n.innerHTML=i}(n,t)})}}],[{key:"is",get:function(){return"d-toc"}}])}(o(HTMLElement));var pn=function(n){function t(){var n;return g(this,t),(n=s(this,t))._ready=!1,n._onscreen=!1,n._offscreen=!0,n}return h(t,n),b(t,[{key:"connectedCallback",value:function(){this.loadsWhileScrolling=this.hasAttribute("loadsWhileScrolling"),t.marginObserver.observe(this),t.directObserver.observe(this)}},{key:"disconnectedCallback",value:function(){t.marginObserver.unobserve(this),t.directObserver.unobserve(this)}},{key:"addEventListener",value:function(n,e){u(t,"addEventListener",this,3)([n,e]),"ready"===n&&-1!==t.readyQueue.indexOf(this)&&(this._ready=!1,t.runReadyQueue()),"onscreen"===n&&this.onscreen()}},{key:"ready",value:function(){this._ready=!0,t.marginObserver.unobserve(this);var n=new CustomEvent("ready");this.dispatchEvent(n)}},{key:"onscreen",value:function(){this._onscreen=!0,this._offscreen=!1;var n=new CustomEvent("onscreen");this.dispatchEvent(n)}},{key:"offscreen",value:function(){this._onscreen=!1,this._offscreen=!0;var n=new CustomEvent("offscreen");this.dispatchEvent(n)}}],[{key:"is",get:function(){return"d-figure"}},{key:"readyQueue",get:function(){return t._readyQueue||(t._readyQueue=[]),t._readyQueue}},{key:"addToReadyQueue",value:function(n){-1===t.readyQueue.indexOf(n)&&(t.readyQueue.push(n),t.runReadyQueue())}},{key:"runReadyQueue",value:function(){var n=t.readyQueue.sort((function(n,t){return n._seenOnScreen-t._seenOnScreen})).filter((function(n){return!n._ready})).pop();n&&(n.ready(),requestAnimationFrame(t.runReadyQueue))}},{key:"marginObserver",get:function(){if(!t._marginObserver){var n=window.innerHeight,e=Math.floor(2*n),i={rootMargin:e+"px 0px "+e+"px 0px",threshold:.01},r=t.didObserveMarginIntersection,o=new IntersectionObserver(r,i);t._marginObserver=o}return t._marginObserver}},{key:"didObserveMarginIntersection",value:function(n){var e,i=a(n);try{for(i.s();!(e=i.n()).done;){var r=e.value,o=r.target;r.isIntersecting&&!o._ready&&t.addToReadyQueue(o)}}catch(n){i.e(n)}finally{i.f()}}},{key:"directObserver",get:function(){return t._directObserver||(t._directObserver=new IntersectionObserver(t.didObserveDirectIntersection,{rootMargin:"0px",threshold:[0,1]})),t._directObserver}},{key:"didObserveDirectIntersection",value:function(n){var t,e=a(n);try{for(e.s();!(t=e.n()).done;){var i=t.value,r=i.target;i.isIntersecting?(r._seenOnScreen=new Date,r._offscreen&&r.onscreen()):r._onscreen&&r.offscreen()}}catch(n){e.e(n)}finally{e.f()}}}])}(o(HTMLElement));if("undefined"!=typeof window){var fn;pn.isScrolling=!1;window.addEventListener("scroll",(function(){pn.isScrolling=!0,clearTimeout(fn),fn=setTimeout((function(){pn.isScrolling=!1,pn.runReadyQueue()}),500)}),!0)}var gn=function(n){function t(){return g(this,t),s(this,t,arguments)}return h(t,n),b(t,[{key:"connectedCallback",value:function(){var n=this;this.shouldRemoveSelf()?this.parentElement.removeChild(this):this.root.querySelector("#interstitial-password-input").oninput=function(t){return n.passwordChanged(t)}}},{key:"passwordChanged",value:function(n){n.target.value===this.password&&(console.log("Correct password entered."),this.parentElement.removeChild(this),"undefined"!=typeof Storage&&(console.log("Saved that correct password was entered."),localStorage.setItem(this.localStorageIdentifier(),"true")))}},{key:"shouldRemoveSelf",value:function(){return window&&"distill.pub"===window.location.hostname?(console.warn("Interstitial found on production, hiding it."),!0):"undefined"!=typeof Storage&&"true"===localStorage.getItem(this.localStorageIdentifier())&&(console.log("Loaded that correct password was entered before; skipping interstitial."),!0)}},{key:"localStorageIdentifier",value:function(){return"distill-drafts"+(window?window.location.pathname:"-")+"interstitial-password-correct"}}])}(p("d-interstitial",'\n\n\n
    \n
    \n

    This article is in review.

    \n

    Do not share this URL or the contents of this article. Thank you!

    \n \n

    Enter the password we shared with you as part of the review process to view the article.

    \n
    \n
    \n')(HTMLElement));function mn(n,t){return nt?1:n>=t?0:NaN}var bn,yn,vn=(bn=mn,1===bn.length&&(yn=bn,bn=function(n,t){return mn(yn(n),t)}),{left:function(n,t,e,i){for(null==e&&(e=0),null==i&&(i=n.length);e>>1;bn(n[r],t)<0?e=r+1:i=r}return e},right:function(n,t,e,i){for(null==e&&(e=0),null==i&&(i=n.length);e>>1;bn(n[r],t)>0?i=r:e=r+1}return e}}).right;var wn=Math.sqrt(50),xn=Math.sqrt(10),kn=Math.sqrt(2);function Sn(n,t,e){var i=(t-n)/Math.max(0,e),r=Math.floor(Math.log(i)/Math.LN10),o=i/Math.pow(10,r);return r>=0?(o>=wn?10:o>=xn?5:o>=kn?2:1)*Math.pow(10,r):-Math.pow(10,-r)/(o>=wn?10:o>=xn?5:o>=kn?2:1)}function Mn(n,t){switch(arguments.length){case 0:break;case 1:this.range(n);break;default:this.range(t).domain(n)}return this}function Tn(n,t,e){n.prototype=t.prototype=e,e.constructor=n}function _n(n,t){var e=Object.create(n.prototype);for(var i in t)e[i]=t[i];return e}function An(){}var En=.7,Cn=1/En,Nn="\\s*([+-]?\\d+)\\s*",Ln="\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)\\s*",On="\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)%\\s*",Dn=/^#([0-9a-f]{3,8})$/,In=new RegExp("^rgb\\("+[Nn,Nn,Nn]+"\\)$"),Rn=new RegExp("^rgb\\("+[On,On,On]+"\\)$"),Fn=new RegExp("^rgba\\("+[Nn,Nn,Nn,Ln]+"\\)$"),Un=new RegExp("^rgba\\("+[On,On,On,Ln]+"\\)$"),Pn=new RegExp("^hsl\\("+[Ln,On,On]+"\\)$"),Hn=new RegExp("^hsla\\("+[Ln,On,On,Ln]+"\\)$"),jn={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 zn(){return this.rgb().formatHex()}function $n(){return this.rgb().formatRgb()}function qn(n){var t,e;return n=(n+"").trim().toLowerCase(),(t=Dn.exec(n))?(e=t[1].length,t=parseInt(t[1],16),6===e?Bn(t):3===e?new Vn(t>>8&15|t>>4&240,t>>4&15|240&t,(15&t)<<4|15&t,1):8===e?Yn(t>>24&255,t>>16&255,t>>8&255,(255&t)/255):4===e?Yn(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|240&t,((15&t)<<4|15&t)/255):null):(t=In.exec(n))?new Vn(t[1],t[2],t[3],1):(t=Rn.exec(n))?new Vn(255*t[1]/100,255*t[2]/100,255*t[3]/100,1):(t=Fn.exec(n))?Yn(t[1],t[2],t[3],t[4]):(t=Un.exec(n))?Yn(255*t[1]/100,255*t[2]/100,255*t[3]/100,t[4]):(t=Pn.exec(n))?Qn(t[1],t[2]/100,t[3]/100,1):(t=Hn.exec(n))?Qn(t[1],t[2]/100,t[3]/100,t[4]):jn.hasOwnProperty(n)?Bn(jn[n]):"transparent"===n?new Vn(NaN,NaN,NaN,0):null}function Bn(n){return new Vn(n>>16&255,n>>8&255,255&n,1)}function Yn(n,t,e,i){return i<=0&&(n=t=e=NaN),new Vn(n,t,e,i)}function Wn(n){return n instanceof An||(n=qn(n)),n?new Vn((n=n.rgb()).r,n.g,n.b,n.opacity):new Vn}function Gn(n,t,e,i){return 1===arguments.length?Wn(n):new Vn(n,t,e,null==i?1:i)}function Vn(n,t,e,i){this.r=+n,this.g=+t,this.b=+e,this.opacity=+i}function Kn(){return"#"+Zn(this.r)+Zn(this.g)+Zn(this.b)}function Xn(){var n=this.opacity;return(1===(n=isNaN(n)?1:Math.max(0,Math.min(1,n)))?"rgb(":"rgba(")+Math.max(0,Math.min(255,Math.round(this.r)||0))+", "+Math.max(0,Math.min(255,Math.round(this.g)||0))+", "+Math.max(0,Math.min(255,Math.round(this.b)||0))+(1===n?")":", "+n+")")}function Zn(n){return((n=Math.max(0,Math.min(255,Math.round(n)||0)))<16?"0":"")+n.toString(16)}function Qn(n,t,e,i){return i<=0?n=t=e=NaN:e<=0||e>=1?n=t=NaN:t<=0&&(n=NaN),new nt(n,t,e,i)}function Jn(n){if(n instanceof nt)return new nt(n.h,n.s,n.l,n.opacity);if(n instanceof An||(n=qn(n)),!n)return new nt;if(n instanceof nt)return n;var t=(n=n.rgb()).r/255,e=n.g/255,i=n.b/255,r=Math.min(t,e,i),o=Math.max(t,e,i),a=NaN,s=o-r,l=(o+r)/2;return s?(a=t===o?(e-i)/s+6*(e0&&l<1?0:a,new nt(a,s,l,n.opacity)}function nt(n,t,e,i){this.h=+n,this.s=+t,this.l=+e,this.opacity=+i}function tt(n,t,e){return 255*(n<60?t+(e-t)*n/60:n<180?e:n<240?t+(e-t)*(240-n)/60:t)}Tn(An,qn,{copy:function(n){return Object.assign(new this.constructor,this,n)},displayable:function(){return this.rgb().displayable()},hex:zn,formatHex:zn,formatHsl:function(){return Jn(this).formatHsl()},formatRgb:$n,toString:$n}),Tn(Vn,Gn,_n(An,{brighter:function(n){return n=null==n?Cn:Math.pow(Cn,n),new Vn(this.r*n,this.g*n,this.b*n,this.opacity)},darker:function(n){return n=null==n?En:Math.pow(En,n),new Vn(this.r*n,this.g*n,this.b*n,this.opacity)},rgb:function(){return this},displayable:function(){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:Kn,formatHex:Kn,formatRgb:Xn,toString:Xn})),Tn(nt,(function(n,t,e,i){return 1===arguments.length?Jn(n):new nt(n,t,e,null==i?1:i)}),_n(An,{brighter:function(n){return n=null==n?Cn:Math.pow(Cn,n),new nt(this.h,this.s,this.l*n,this.opacity)},darker:function(n){return n=null==n?En:Math.pow(En,n),new nt(this.h,this.s,this.l*n,this.opacity)},rgb:function(){var n=this.h%360+360*(this.h<0),t=isNaN(n)||isNaN(this.s)?0:this.s,e=this.l,i=e+(e<.5?e:1-e)*t,r=2*e-i;return new Vn(tt(n>=240?n-240:n+120,r,i),tt(n,r,i),tt(n<120?n+240:n-120,r,i),this.opacity)},displayable:function(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl:function(){var n=this.opacity;return(1===(n=isNaN(n)?1:Math.max(0,Math.min(1,n)))?"hsl(":"hsla(")+(this.h||0)+", "+100*(this.s||0)+"%, "+100*(this.l||0)+"%"+(1===n?")":", "+n+")")}}));var et=Math.PI/180,it=180/Math.PI,rt=.96422,ot=.82521,at=4/29,st=6/29,lt=3*st*st,ut=st*st*st;function ct(n){if(n instanceof dt)return new dt(n.l,n.a,n.b,n.opacity);if(n instanceof mt)return bt(n);n instanceof Vn||(n=Wn(n));var t,e,i=gt(n.r),r=gt(n.g),o=gt(n.b),a=ht((.2225045*i+.7168786*r+.0606169*o)/1);return i===r&&r===o?t=e=a:(t=ht((.4360747*i+.3850649*r+.1430804*o)/rt),e=ht((.0139322*i+.0971045*r+.7141733*o)/ot)),new dt(116*a-16,500*(t-a),200*(a-e),n.opacity)}function dt(n,t,e,i){this.l=+n,this.a=+t,this.b=+e,this.opacity=+i}function ht(n){return n>ut?Math.pow(n,1/3):n/lt+at}function pt(n){return n>st?n*n*n:lt*(n-at)}function ft(n){return 255*(n<=.0031308?12.92*n:1.055*Math.pow(n,1/2.4)-.055)}function gt(n){return(n/=255)<=.04045?n/12.92:Math.pow((n+.055)/1.055,2.4)}function mt(n,t,e,i){this.h=+n,this.c=+t,this.l=+e,this.opacity=+i}function bt(n){if(isNaN(n.h))return new dt(n.l,0,0,n.opacity);var t=n.h*et;return new dt(n.l,Math.cos(t)*n.c,Math.sin(t)*n.c,n.opacity)}Tn(dt,(function(n,t,e,i){return 1===arguments.length?ct(n):new dt(n,t,e,null==i?1:i)}),_n(An,{brighter:function(n){return new dt(this.l+18*(null==n?1:n),this.a,this.b,this.opacity)},darker:function(n){return new dt(this.l-18*(null==n?1:n),this.a,this.b,this.opacity)},rgb:function(){var n=(this.l+16)/116,t=isNaN(this.a)?n:n+this.a/500,e=isNaN(this.b)?n:n-this.b/200;return new Vn(ft(3.1338561*(t=rt*pt(t))-1.6168667*(n=1*pt(n))-.4906146*(e=ot*pt(e))),ft(-.9787684*t+1.9161415*n+.033454*e),ft(.0719453*t-.2289914*n+1.4052427*e),this.opacity)}})),Tn(mt,(function(n,t,e,i){return 1===arguments.length?function(n){if(n instanceof mt)return new mt(n.h,n.c,n.l,n.opacity);if(n instanceof dt||(n=ct(n)),0===n.a&&0===n.b)return new mt(NaN,0o&&(r=t.slice(o,r),s[a]?s[a]+=r:s[++a]=r),(e=e[0])===(i=i[0])?s[a]?s[a]+=i:s[++a]=i:(s[++a]=null,l.push({i:a,x:It(e,i)})),o=Ut.lastIndex;return ot&&(e=n,n=t,t=e),u=function(e){return Math.max(n,Math.min(t,e))}),i=l>2?Wt:Yt,r=o=null,d}function d(t){return isNaN(t=+t)?e:(r||(r=i(a.map(n),s,l)))(n(u(t)))}return d.invert=function(e){return u(t((o||(o=i(s,a.map(n),It)))(e)))},d.domain=function(n){return arguments.length?(a=Array.from(n,zt),c()):a.slice()},d.range=function(n){return arguments.length?(s=Array.from(n),c()):s.slice()},d.rangeRound=function(n){return s=Array.from(n),l=jt,c()},d.clamp=function(n){return arguments.length?(u=!!n||qt,c()):u!==qt},d.interpolate=function(n){return arguments.length?(l=n,c()):l},d.unknown=function(n){return arguments.length?(e=n,d):e},function(e,i){return n=e,t=i,c()}}function Vt(n,t){if((e=(n=t?n.toExponential(t-1):n.toExponential()).indexOf("e"))<0)return null;var e,i=n.slice(0,e);return[i.length>1?i[0]+i.slice(2):i,+n.slice(e+1)]}function Kt(n){return(n=Vt(Math.abs(n)))?n[1]:NaN}var Xt,Zt=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function Qt(n){if(!(t=Zt.exec(n)))throw new Error("invalid format: "+n);var t;return new Jt({fill:t[1],align:t[2],sign:t[3],symbol:t[4],zero:t[5],width:t[6],comma:t[7],precision:t[8]&&t[8].slice(1),trim:t[9],type:t[10]})}function Jt(n){this.fill=void 0===n.fill?" ":n.fill+"",this.align=void 0===n.align?">":n.align+"",this.sign=void 0===n.sign?"-":n.sign+"",this.symbol=void 0===n.symbol?"":n.symbol+"",this.zero=!!n.zero,this.width=void 0===n.width?void 0:+n.width,this.comma=!!n.comma,this.precision=void 0===n.precision?void 0:+n.precision,this.trim=!!n.trim,this.type=void 0===n.type?"":n.type+""}function ne(n,t){var e=Vt(n,t);if(!e)return n+"";var i=e[0],r=e[1];return r<0?"0."+new Array(-r).join("0")+i:i.length>r+1?i.slice(0,r+1)+"."+i.slice(r+1):i+new Array(r-i.length+2).join("0")}Qt.prototype=Jt.prototype,Jt.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 te={"%":function(n,t){return(100*n).toFixed(t)},b:function(n){return Math.round(n).toString(2)},c:function(n){return n+""},d:function(n){return Math.round(n).toString(10)},e:function(n,t){return n.toExponential(t)},f:function(n,t){return n.toFixed(t)},g:function(n,t){return n.toPrecision(t)},o:function(n){return Math.round(n).toString(8)},p:function(n,t){return ne(100*n,t)},r:ne,s:function(n,t){var e=Vt(n,t);if(!e)return n+"";var i=e[0],r=e[1],o=r-(Xt=3*Math.max(-8,Math.min(8,Math.floor(r/3))))+1,a=i.length;return o===a?i:o>a?i+new Array(o-a+1).join("0"):o>0?i.slice(0,o)+"."+i.slice(o):"0."+new Array(1-o).join("0")+Vt(n,Math.max(0,t+o-1))[0]},X:function(n){return Math.round(n).toString(16).toUpperCase()},x:function(n){return Math.round(n).toString(16)}};function ee(n){return n}var ie,re,oe,ae=Array.prototype.map,se=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function le(n){var t,e,i=void 0===n.grouping||void 0===n.thousands?ee:(t=ae.call(n.grouping,Number),e=n.thousands+"",function(n,i){for(var r=n.length,o=[],a=0,s=t[0],l=0;r>0&&s>0&&(l+s+1>i&&(s=Math.max(1,i-l)),o.push(n.substring(r-=s,r+s)),!((l+=s+1)>i));)s=t[a=(a+1)%t.length];return o.reverse().join(e)}),r=void 0===n.currency?"":n.currency[0]+"",o=void 0===n.currency?"":n.currency[1]+"",a=void 0===n.decimal?".":n.decimal+"",s=void 0===n.numerals?ee:function(n){return function(t){return t.replace(/[0-9]/g,(function(t){return n[+t]}))}}(ae.call(n.numerals,String)),l=void 0===n.percent?"%":n.percent+"",u=void 0===n.minus?"-":n.minus+"",c=void 0===n.nan?"NaN":n.nan+"";function d(n){var t=(n=Qt(n)).fill,e=n.align,d=n.sign,h=n.symbol,p=n.zero,f=n.width,g=n.comma,m=n.precision,b=n.trim,y=n.type;"n"===y?(g=!0,y="g"):te[y]||(void 0===m&&(m=12),b=!0,y="g"),(p||"0"===t&&"="===e)&&(p=!0,t="0",e="=");var v="$"===h?r:"#"===h&&/[boxX]/.test(y)?"0"+y.toLowerCase():"",w="$"===h?o:/[%p]/.test(y)?l:"",x=te[y],k=/[defgprs%]/.test(y);function S(n){var r,o,l,h=v,S=w;if("c"===y)S=x(n)+S,n="";else{var M=(n=+n)<0||1/n<0;if(n=isNaN(n)?c:x(Math.abs(n),m),b&&(n=function(n){n:for(var t,e=n.length,i=1,r=-1;i0&&(r=0)}return r>0?n.slice(0,r)+n.slice(t+1):n}(n)),M&&0==+n&&"+"!==d&&(M=!1),h=(M?"("===d?d:u:"-"===d||"("===d?"":d)+h,S=("s"===y?se[8+Xt/3]:"")+S+(M&&"("===d?")":""),k)for(r=-1,o=n.length;++r(l=n.charCodeAt(r))||l>57){S=(46===l?a+n.slice(r+1):n.slice(r))+S,n=n.slice(0,r);break}}g&&!p&&(n=i(n,1/0));var T=h.length+n.length+S.length,_=T>1)+h+n+S+_.slice(T);break;default:n=_+h+n+S}return s(n)}return m=void 0===m?6:/[gprs]/.test(y)?Math.max(1,Math.min(21,m)):Math.max(0,Math.min(20,m)),S.toString=function(){return n+""},S}return{format:d,formatPrefix:function(n,t){var e=d(((n=Qt(n)).type="f",n)),i=3*Math.max(-8,Math.min(8,Math.floor(Kt(t)/3))),r=Math.pow(10,-i),o=se[8+i/3];return function(n){return e(r*n)+o}}}}function ue(n,t,e,i){var r,o=function(n,t,e){var i=Math.abs(t-n)/Math.max(0,e),r=Math.pow(10,Math.floor(Math.log(i)/Math.LN10)),o=i/r;return o>=wn?r*=10:o>=xn?r*=5:o>=kn&&(r*=2),t0)return[n];if((i=t0)for(n=Math.ceil(n/a),t=Math.floor(t/a),o=new Array(r=Math.ceil(t-n+1));++s0?i=Sn(s=Math.floor(s/i)*i,l=Math.ceil(l/i)*i,e):i<0&&(i=Sn(s=Math.ceil(s*i)/i,l=Math.floor(l*i)/i,e)),i>0?(r[o]=Math.floor(s/i)*i,r[a]=Math.ceil(l/i)*i,t(r)):i<0&&(r[o]=Math.ceil(s*i)/i,r[a]=Math.floor(l*i)/i,t(r)),n},n}function de(){var n=Gt()(qt,qt);return n.copy=function(){return t=n,de().domain(t.domain()).range(t.range()).interpolate(t.interpolate()).clamp(t.clamp()).unknown(t.unknown());var t},Mn.apply(n,arguments),ce(n)}ie=le({decimal:".",thousands:",",grouping:[3],currency:["$",""],minus:"-"}),re=ie.format,oe=ie.formatPrefix;var he=new Date,pe=new Date;function fe(n,t,e,i){function r(t){return n(t=0===arguments.length?new Date:new Date(+t)),t}return r.floor=function(t){return n(t=new Date(+t)),t},r.ceil=function(e){return n(e=new Date(e-1)),t(e,1),n(e),e},r.round=function(n){var t=r(n),e=r.ceil(n);return n-t0))return s;do{s.push(a=new Date(+e)),t(e,o),n(e)}while(a=t)for(;n(t),!e(t);)t.setTime(t-1)}),(function(n,i){if(n>=n)if(i<0)for(;++i<=0;)for(;t(n,-1),!e(n););else for(;--i>=0;)for(;t(n,1),!e(n););}))},e&&(r.count=function(t,i){return he.setTime(+t),pe.setTime(+i),n(he),n(pe),Math.floor(e(he,pe))},r.every=function(n){return n=Math.floor(n),isFinite(n)&&n>0?n>1?r.filter(i?function(t){return i(t)%n==0}:function(t){return r.count(0,t)%n==0}):r:null}),r}var ge=fe((function(){}),(function(n,t){n.setTime(+n+t)}),(function(n,t){return t-n}));ge.every=function(n){return n=Math.floor(n),isFinite(n)&&n>0?n>1?fe((function(t){t.setTime(Math.floor(t/n)*n)}),(function(t,e){t.setTime(+t+e*n)}),(function(t,e){return(e-t)/n})):ge:null};var me=1e3,be=6e4,ye=36e5,ve=864e5,we=6048e5,xe=(fe((function(n){n.setTime(n-n.getMilliseconds())}),(function(n,t){n.setTime(+n+t*me)}),(function(n,t){return(t-n)/me}),(function(n){return n.getUTCSeconds()})),fe((function(n){n.setTime(n-n.getMilliseconds()-n.getSeconds()*me)}),(function(n,t){n.setTime(+n+t*be)}),(function(n,t){return(t-n)/be}),(function(n){return n.getMinutes()})),fe((function(n){n.setTime(n-n.getMilliseconds()-n.getSeconds()*me-n.getMinutes()*be)}),(function(n,t){n.setTime(+n+t*ye)}),(function(n,t){return(t-n)/ye}),(function(n){return n.getHours()})),fe((function(n){n.setHours(0,0,0,0)}),(function(n,t){n.setDate(n.getDate()+t)}),(function(n,t){return(t-n-(t.getTimezoneOffset()-n.getTimezoneOffset())*be)/ve}),(function(n){return n.getDate()-1})));function ke(n){return fe((function(t){t.setDate(t.getDate()-(t.getDay()+7-n)%7),t.setHours(0,0,0,0)}),(function(n,t){n.setDate(n.getDate()+7*t)}),(function(n,t){return(t-n-(t.getTimezoneOffset()-n.getTimezoneOffset())*be)/we}))}var Se=ke(0),Me=ke(1),Te=(ke(2),ke(3),ke(4)),_e=(ke(5),ke(6),fe((function(n){n.setDate(1),n.setHours(0,0,0,0)}),(function(n,t){n.setMonth(n.getMonth()+t)}),(function(n,t){return t.getMonth()-n.getMonth()+12*(t.getFullYear()-n.getFullYear())}),(function(n){return n.getMonth()})),fe((function(n){n.setMonth(0,1),n.setHours(0,0,0,0)}),(function(n,t){n.setFullYear(n.getFullYear()+t)}),(function(n,t){return t.getFullYear()-n.getFullYear()}),(function(n){return n.getFullYear()})));_e.every=function(n){return isFinite(n=Math.floor(n))&&n>0?fe((function(t){t.setFullYear(Math.floor(t.getFullYear()/n)*n),t.setMonth(0,1),t.setHours(0,0,0,0)}),(function(t,e){t.setFullYear(t.getFullYear()+e*n)})):null},fe((function(n){n.setUTCSeconds(0,0)}),(function(n,t){n.setTime(+n+t*be)}),(function(n,t){return(t-n)/be}),(function(n){return n.getUTCMinutes()})),fe((function(n){n.setUTCMinutes(0,0,0)}),(function(n,t){n.setTime(+n+t*ye)}),(function(n,t){return(t-n)/ye}),(function(n){return n.getUTCHours()}));var Ae=fe((function(n){n.setUTCHours(0,0,0,0)}),(function(n,t){n.setUTCDate(n.getUTCDate()+t)}),(function(n,t){return(t-n)/ve}),(function(n){return n.getUTCDate()-1}));function Ee(n){return fe((function(t){t.setUTCDate(t.getUTCDate()-(t.getUTCDay()+7-n)%7),t.setUTCHours(0,0,0,0)}),(function(n,t){n.setUTCDate(n.getUTCDate()+7*t)}),(function(n,t){return(t-n)/we}))}var Ce=Ee(0),Ne=Ee(1),Le=(Ee(2),Ee(3),Ee(4)),Oe=(Ee(5),Ee(6),fe((function(n){n.setUTCDate(1),n.setUTCHours(0,0,0,0)}),(function(n,t){n.setUTCMonth(n.getUTCMonth()+t)}),(function(n,t){return t.getUTCMonth()-n.getUTCMonth()+12*(t.getUTCFullYear()-n.getUTCFullYear())}),(function(n){return n.getUTCMonth()})),fe((function(n){n.setUTCMonth(0,1),n.setUTCHours(0,0,0,0)}),(function(n,t){n.setUTCFullYear(n.getUTCFullYear()+t)}),(function(n,t){return t.getUTCFullYear()-n.getUTCFullYear()}),(function(n){return n.getUTCFullYear()})));function De(n){if(0<=n.y&&n.y<100){var t=new Date(-1,n.m,n.d,n.H,n.M,n.S,n.L);return t.setFullYear(n.y),t}return new Date(n.y,n.m,n.d,n.H,n.M,n.S,n.L)}function Ie(n){if(0<=n.y&&n.y<100){var t=new Date(Date.UTC(-1,n.m,n.d,n.H,n.M,n.S,n.L));return t.setUTCFullYear(n.y),t}return new Date(Date.UTC(n.y,n.m,n.d,n.H,n.M,n.S,n.L))}function Re(n,t,e){return{y:n,m:t,d:e,H:0,M:0,S:0,L:0}}Oe.every=function(n){return isFinite(n=Math.floor(n))&&n>0?fe((function(t){t.setUTCFullYear(Math.floor(t.getUTCFullYear()/n)*n),t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)}),(function(t,e){t.setUTCFullYear(t.getUTCFullYear()+e*n)})):null};var Fe,Ue,Pe,He={"-":"",_:" ",0:"0"},je=/^\s*\d+/,ze=/^%/,$e=/[\\^$*+?|[\]().{}]/g;function qe(n,t,e){var i=n<0?"-":"",r=(i?-n:n)+"",o=r.length;return i+(o68?1900:2e3),e+i[0].length):-1}function ni(n,t,e){var i=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(t.slice(e,e+6));return i?(n.Z=i[1]?0:-(i[2]+(i[3]||"00")),e+i[0].length):-1}function ti(n,t,e){var i=je.exec(t.slice(e,e+1));return i?(n.q=3*i[0]-3,e+i[0].length):-1}function ei(n,t,e){var i=je.exec(t.slice(e,e+2));return i?(n.m=i[0]-1,e+i[0].length):-1}function ii(n,t,e){var i=je.exec(t.slice(e,e+2));return i?(n.d=+i[0],e+i[0].length):-1}function ri(n,t,e){var i=je.exec(t.slice(e,e+3));return i?(n.m=0,n.d=+i[0],e+i[0].length):-1}function oi(n,t,e){var i=je.exec(t.slice(e,e+2));return i?(n.H=+i[0],e+i[0].length):-1}function ai(n,t,e){var i=je.exec(t.slice(e,e+2));return i?(n.M=+i[0],e+i[0].length):-1}function si(n,t,e){var i=je.exec(t.slice(e,e+2));return i?(n.S=+i[0],e+i[0].length):-1}function li(n,t,e){var i=je.exec(t.slice(e,e+3));return i?(n.L=+i[0],e+i[0].length):-1}function ui(n,t,e){var i=je.exec(t.slice(e,e+6));return i?(n.L=Math.floor(i[0]/1e3),e+i[0].length):-1}function ci(n,t,e){var i=ze.exec(t.slice(e,e+1));return i?e+i[0].length:-1}function di(n,t,e){var i=je.exec(t.slice(e));return i?(n.Q=+i[0],e+i[0].length):-1}function hi(n,t,e){var i=je.exec(t.slice(e));return i?(n.s=+i[0],e+i[0].length):-1}function pi(n,t){return qe(n.getDate(),t,2)}function fi(n,t){return qe(n.getHours(),t,2)}function gi(n,t){return qe(n.getHours()%12||12,t,2)}function mi(n,t){return qe(1+xe.count(_e(n),n),t,3)}function bi(n,t){return qe(n.getMilliseconds(),t,3)}function yi(n,t){return bi(n,t)+"000"}function vi(n,t){return qe(n.getMonth()+1,t,2)}function wi(n,t){return qe(n.getMinutes(),t,2)}function xi(n,t){return qe(n.getSeconds(),t,2)}function ki(n){var t=n.getDay();return 0===t?7:t}function Si(n,t){return qe(Se.count(_e(n)-1,n),t,2)}function Mi(n,t){var e=n.getDay();return n=e>=4||0===e?Te(n):Te.ceil(n),qe(Te.count(_e(n),n)+(4===_e(n).getDay()),t,2)}function Ti(n){return n.getDay()}function _i(n,t){return qe(Me.count(_e(n)-1,n),t,2)}function Ai(n,t){return qe(n.getFullYear()%100,t,2)}function Ei(n,t){return qe(n.getFullYear()%1e4,t,4)}function Ci(n){var t=n.getTimezoneOffset();return(t>0?"-":(t*=-1,"+"))+qe(t/60|0,"0",2)+qe(t%60,"0",2)}function Ni(n,t){return qe(n.getUTCDate(),t,2)}function Li(n,t){return qe(n.getUTCHours(),t,2)}function Oi(n,t){return qe(n.getUTCHours()%12||12,t,2)}function Di(n,t){return qe(1+Ae.count(Oe(n),n),t,3)}function Ii(n,t){return qe(n.getUTCMilliseconds(),t,3)}function Ri(n,t){return Ii(n,t)+"000"}function Fi(n,t){return qe(n.getUTCMonth()+1,t,2)}function Ui(n,t){return qe(n.getUTCMinutes(),t,2)}function Pi(n,t){return qe(n.getUTCSeconds(),t,2)}function Hi(n){var t=n.getUTCDay();return 0===t?7:t}function ji(n,t){return qe(Ce.count(Oe(n)-1,n),t,2)}function zi(n,t){var e=n.getUTCDay();return n=e>=4||0===e?Le(n):Le.ceil(n),qe(Le.count(Oe(n),n)+(4===Oe(n).getUTCDay()),t,2)}function $i(n){return n.getUTCDay()}function qi(n,t){return qe(Ne.count(Oe(n)-1,n),t,2)}function Bi(n,t){return qe(n.getUTCFullYear()%100,t,2)}function Yi(n,t){return qe(n.getUTCFullYear()%1e4,t,4)}function Wi(){return"+0000"}function Gi(){return"%"}function Vi(n){return+n}function Ki(n){return Math.floor(+n/1e3)}!function(n){(Fe=function(n){var t=n.dateTime,e=n.date,i=n.time,r=n.periods,o=n.days,a=n.shortDays,s=n.months,l=n.shortMonths,u=Ye(r),c=We(r),d=Ye(o),h=We(o),p=Ye(a),f=We(a),g=Ye(s),m=We(s),b=Ye(l),y=We(l),v={a:function(n){return a[n.getDay()]},A:function(n){return o[n.getDay()]},b:function(n){return l[n.getMonth()]},B:function(n){return s[n.getMonth()]},c:null,d:pi,e:pi,f:yi,H:fi,I:gi,j:mi,L:bi,m:vi,M:wi,p:function(n){return r[+(n.getHours()>=12)]},q:function(n){return 1+~~(n.getMonth()/3)},Q:Vi,s:Ki,S:xi,u:ki,U:Si,V:Mi,w:Ti,W:_i,x:null,X:null,y:Ai,Y:Ei,Z:Ci,"%":Gi},w={a:function(n){return a[n.getUTCDay()]},A:function(n){return o[n.getUTCDay()]},b:function(n){return l[n.getUTCMonth()]},B:function(n){return s[n.getUTCMonth()]},c:null,d:Ni,e:Ni,f:Ri,H:Li,I:Oi,j:Di,L:Ii,m:Fi,M:Ui,p:function(n){return r[+(n.getUTCHours()>=12)]},q:function(n){return 1+~~(n.getUTCMonth()/3)},Q:Vi,s:Ki,S:Pi,u:Hi,U:ji,V:zi,w:$i,W:qi,x:null,X:null,y:Bi,Y:Yi,Z:Wi,"%":Gi},x={a:function(n,t,e){var i=p.exec(t.slice(e));return i?(n.w=f[i[0].toLowerCase()],e+i[0].length):-1},A:function(n,t,e){var i=d.exec(t.slice(e));return i?(n.w=h[i[0].toLowerCase()],e+i[0].length):-1},b:function(n,t,e){var i=b.exec(t.slice(e));return i?(n.m=y[i[0].toLowerCase()],e+i[0].length):-1},B:function(n,t,e){var i=g.exec(t.slice(e));return i?(n.m=m[i[0].toLowerCase()],e+i[0].length):-1},c:function(n,e,i){return M(n,t,e,i)},d:ii,e:ii,f:ui,H:oi,I:oi,j:ri,L:li,m:ei,M:ai,p:function(n,t,e){var i=u.exec(t.slice(e));return i?(n.p=c[i[0].toLowerCase()],e+i[0].length):-1},q:ti,Q:di,s:hi,S:si,u:Ve,U:Ke,V:Xe,w:Ge,W:Ze,x:function(n,t,i){return M(n,e,t,i)},X:function(n,t,e){return M(n,i,t,e)},y:Je,Y:Qe,Z:ni,"%":ci};function k(n,t){return function(e){var i,r,o,a=[],s=-1,l=0,u=n.length;for(e instanceof Date||(e=new Date(+e));++s53)return null;"w"in o||(o.w=1),"Z"in o?(r=(i=Ie(Re(o.y,0,1))).getUTCDay(),i=r>4||0===r?Ne.ceil(i):Ne(i),i=Ae.offset(i,7*(o.V-1)),o.y=i.getUTCFullYear(),o.m=i.getUTCMonth(),o.d=i.getUTCDate()+(o.w+6)%7):(r=(i=De(Re(o.y,0,1))).getDay(),i=r>4||0===r?Me.ceil(i):Me(i),i=xe.offset(i,7*(o.V-1)),o.y=i.getFullYear(),o.m=i.getMonth(),o.d=i.getDate()+(o.w+6)%7)}else("W"in o||"U"in o)&&("w"in o||(o.w="u"in o?o.u%7:"W"in o?1:0),r="Z"in o?Ie(Re(o.y,0,1)).getUTCDay():De(Re(o.y,0,1)).getDay(),o.m=0,o.d="W"in o?(o.w+6)%7+7*o.W-(r+5)%7:o.w+7*o.U-(r+6)%7);return"Z"in o?(o.H+=o.Z/100|0,o.M+=o.Z%100,Ie(o)):De(o)}}function M(n,t,e,i){for(var r,o,a=0,s=t.length,l=e.length;a=l)return-1;if(37===(r=t.charCodeAt(a++))){if(r=t.charAt(a++),!(o=x[r in He?t.charAt(a++):r])||(i=o(n,e,i))<0)return-1}else if(r!=e.charCodeAt(i++))return-1}return i}return v.x=k(e,v),v.X=k(i,v),v.c=k(t,v),w.x=k(e,w),w.X=k(i,w),w.c=k(t,w),{format:function(n){var t=k(n+="",v);return t.toString=function(){return n},t},parse:function(n){var t=S(n+="",!1);return t.toString=function(){return n},t},utcFormat:function(n){var t=k(n+="",w);return t.toString=function(){return n},t},utcParse:function(n){var t=S(n+="",!0);return t.toString=function(){return n},t}}}(n)).format,Fe.parse,Ue=Fe.utcFormat,Pe=Fe.utcParse}({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});var Xi="%Y-%m-%dT%H:%M:%S.%LZ";Date.prototype.toISOString||Ue(Xi),+new Date("2000-01-01T00:00:00.000Z")||Pe(Xi);var Zi={value:function(){}};function Qi(){for(var n,t=0,e=arguments.length,i={};t=0&&(t=n.slice(e+1),n=n.slice(0,e)),n&&!i.hasOwnProperty(n))throw new Error("unknown type: "+n);return{type:n,name:t}}))),a=-1,s=o.length;if(!(arguments.length<2)){if(null!=t&&"function"!=typeof t)throw new Error("invalid callback: "+t);for(;++a0)for(var e,i,r=new Array(e),o=0;o=0&&"xmlns"!==(t=n.slice(0,e))&&(n=n.slice(e+1)),ir.hasOwnProperty(t)?{space:ir[t],local:n}:n}function or(n){return function(){var t=this.ownerDocument,e=this.namespaceURI;return e===er&&t.documentElement.namespaceURI===er?t.createElement(n):t.createElementNS(e,n)}}function ar(n){return function(){return this.ownerDocument.createElementNS(n.space,n.local)}}function sr(n){var t=rr(n);return(t.local?ar:or)(t)}function lr(){}function ur(n){return null==n?lr:function(){return this.querySelector(n)}}function cr(){return[]}function dr(n){return new Array(n.length)}function hr(n,t){this.ownerDocument=n.ownerDocument,this.namespaceURI=n.namespaceURI,this._next=null,this._parent=n,this.__data__=t}hr.prototype={constructor:hr,appendChild:function(n){return this._parent.insertBefore(n,this._next)},insertBefore:function(n,t){return this._parent.insertBefore(n,t)},querySelector:function(n){return this._parent.querySelector(n)},querySelectorAll:function(n){return this._parent.querySelectorAll(n)}};function pr(n,t,e,i,r,o){for(var a,s=0,l=t.length,u=o.length;st?1:n>=t?0:NaN}function mr(n){return function(){this.removeAttribute(n)}}function br(n){return function(){this.removeAttributeNS(n.space,n.local)}}function yr(n,t){return function(){this.setAttribute(n,t)}}function vr(n,t){return function(){this.setAttributeNS(n.space,n.local,t)}}function wr(n,t){return function(){var e=t.apply(this,arguments);null==e?this.removeAttribute(n):this.setAttribute(n,e)}}function xr(n,t){return function(){var e=t.apply(this,arguments);null==e?this.removeAttributeNS(n.space,n.local):this.setAttributeNS(n.space,n.local,e)}}function kr(n){return n.ownerDocument&&n.ownerDocument.defaultView||n.document&&n||n.defaultView}function Sr(n){return function(){this.style.removeProperty(n)}}function Mr(n,t,e){return function(){this.style.setProperty(n,t,e)}}function Tr(n,t,e){return function(){var i=t.apply(this,arguments);null==i?this.style.removeProperty(n):this.style.setProperty(n,i,e)}}function _r(n){return function(){delete this[n]}}function Ar(n,t){return function(){this[n]=t}}function Er(n,t){return function(){var e=t.apply(this,arguments);null==e?delete this[n]:this[n]=e}}function Cr(n){return n.trim().split(/^|\s+/)}function Nr(n){return n.classList||new Lr(n)}function Lr(n){this._node=n,this._names=Cr(n.getAttribute("class")||"")}function Or(n,t){for(var e=Nr(n),i=-1,r=t.length;++i=0&&(this._names.splice(t,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(n){return this._names.indexOf(n)>=0}};var Kr={},Xr=null;function Zr(n,t,e){return n=Qr(n,t,e),function(t){var e=t.relatedTarget;e&&(e===this||8&e.compareDocumentPosition(this))||n.call(this,t)}}function Qr(n,t,e){return function(i){var r=Xr;Xr=i;try{n.call(this,this.__data__,t,e)}finally{Xr=r}}}function Jr(n){return function(){var t=this.__on;if(t){for(var e,i=0,r=-1,o=t.length;id}l.mouse("drag")}function g(){so(Xr.view).on("mousemove.drag mouseup.drag",null),function(n,t){var e=n.document.documentElement,i=so(n).on("dragstart.drag",null);t&&(i.on("click.drag",fo,!0),setTimeout((function(){i.on("click.drag",null)}),0)),"onselectstart"in e?i.on("selectstart.drag",null):(e.style.MozUserSelect=e.__noselect,delete e.__noselect)}(Xr.view,e),fo(),l.mouse("end")}function m(){if(r.apply(this,arguments)){var n,t,e=Xr.changedTouches,i=o.apply(this,arguments),a=e.length;for(n=0;n=x&&(x=w+1);!(v=b[x])&&++x=0;)(i=r[o])&&(a&&4^i.compareDocumentPosition(a)&&a.parentNode.insertBefore(i,a),a=i);return this},sort:function(n){function t(t,e){return t&&e?n(t.__data__,e.__data__):!t-!e}n||(n=gr);for(var e=this._groups,i=e.length,r=new Array(i),o=0;o1?this.each((null==t?Sr:"function"==typeof t?Tr:Mr)(n,t,null==e?"":e)):function(n,t){return n.style.getPropertyValue(t)||kr(n).getComputedStyle(n,null).getPropertyValue(t)}(this.node(),n)},property:function(n,t){return arguments.length>1?this.each((null==t?_r:"function"==typeof t?Er:Ar)(n,t)):this.node()[n]},classed:function(n,t){var e=Cr(n+"");if(arguments.length<2){for(var i=Nr(this.node()),r=-1,o=e.length;++r=0&&(t=n.slice(e+1),n=n.slice(0,e)),{type:n,name:t}}))}(n+""),a=o.length;if(!(arguments.length<2)){for(s=t?no:Jr,null==e&&(e=!1),i=0;i\n :host {\n position: relative;\n display: inline-block;\n }\n\n :host(:focus) {\n outline: none;\n }\n\n .background {\n padding: 9px 0;\n color: white;\n position: relative;\n }\n\n .track {\n height: 3px;\n width: 100%;\n border-radius: 2px;\n background-color: hsla(0, 0%, 0%, 0.2);\n }\n\n .track-fill {\n position: absolute;\n top: 9px;\n height: 3px;\n border-radius: 4px;\n background-color: hsl(24, 100%, 50%);\n }\n\n .knob-container {\n position: absolute;\n top: 10px;\n }\n\n .knob {\n position: absolute;\n top: -6px;\n left: -6px;\n width: 13px;\n height: 13px;\n background-color: hsl(24, 100%, 50%);\n border-radius: 50%;\n transition-property: transform;\n transition-duration: 0.18s;\n transition-timing-function: ease;\n }\n .mousedown .knob {\n transform: scale(1.5);\n }\n\n .knob-highlight {\n position: absolute;\n top: -6px;\n left: -6px;\n width: 13px;\n height: 13px;\n background-color: hsla(0, 0%, 0%, 0.1);\n border-radius: 50%;\n transition-property: transform;\n transition-duration: 0.18s;\n transition-timing-function: ease;\n }\n\n .focus .knob-highlight {\n transform: scale(2);\n }\n\n .ticks {\n position: absolute;\n top: 16px;\n height: 4px;\n width: 100%;\n z-index: -1;\n }\n\n .ticks .tick {\n position: absolute;\n height: 100%;\n border-left: 1px solid hsla(0, 0%, 0%, 0.2);\n }\n\n\n\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n"),So=37,Mo=38,To=39,_o=40,Ao=33,Eo=34,Co=35,No=36,Lo=function(n){function t(){return g(this,t),s(this,t,arguments)}return h(t,n),b(t,[{key:"connectedCallback",value:function(){var n=this;this.connected=!0,this.setAttribute("role","slider"),this.hasAttribute("tabindex")||this.setAttribute("tabindex",0),this.mouseEvent=!1,this.knob=this.root.querySelector(".knob-container"),this.background=this.root.querySelector(".background"),this.trackFill=this.root.querySelector(".track-fill"),this.track=this.root.querySelector(".track"),this.min=this.min?this.min:0,this.max=this.max?this.max:100,this.scale=de().domain([this.min,this.max]).range([0,1]).clamp(!0),this.origin=void 0!==this.origin?this.origin:this.min,this.step=this.step?this.step:1,this.update(this.value?this.value:0),this.ticks=!!this.ticks&&this.ticks,this.renderTicks(),this.drag=xo().container(this.background).on("start",(function(){n.mouseEvent=!0,n.background.classList.add("mousedown"),n.changeValue=n.value,n.dragUpdate()})).on("drag",(function(){n.dragUpdate()})).on("end",(function(){n.mouseEvent=!1,n.background.classList.remove("mousedown"),n.dragUpdate(),n.changeValue!==n.value&&n.dispatchChange(),n.changeValue=n.value})),this.drag(so(this.background)),this.addEventListener("focusin",(function(){n.mouseEvent||n.background.classList.add("focus")})),this.addEventListener("focusout",(function(){n.background.classList.remove("focus")})),this.addEventListener("keydown",this.onKeyDown)}},{key:"attributeChangedCallback",value:function(n,t,e){isNaN(e)||null==e||("min"==n&&(this.min=+e,this.setAttribute("aria-valuemin",this.min)),"max"==n&&(this.max=+e,this.setAttribute("aria-valuemax",this.max)),"value"==n&&this.update(+e),"origin"==n&&(this.origin=+e),"step"==n&&e>0&&(this.step=+e),"ticks"==n&&(this.ticks=""===e||e))}},{key:"onKeyDown",value:function(n){this.changeValue=this.value;var t=!1;switch(n.keyCode){case So:case _o:this.update(this.value-this.step),t=!0;break;case To:case Mo:this.update(this.value+this.step),t=!0;break;case Ao:case Eo:this.update(this.value+10*this.step),t=!0;break;case No:this.update(this.min),t=!0;break;case Co:this.update(this.max),t=!0}t&&(this.background.classList.add("focus"),n.preventDefault(),n.stopPropagation(),this.changeValue!==this.value&&this.dispatchChange())}},{key:"validateValueRange",value:function(n,t,e){return Math.max(Math.min(t,e),n)}},{key:"quantizeValue",value:function(n,t){return Math.round(n/t)*t}},{key:"dragUpdate",value:function(){var n=this.background.getBoundingClientRect(),t=Xr.x,e=n.width;this.update(this.scale.invert(t/e))}},{key:"update",value:function(n){var t=n;"any"!==this.step&&(t=this.quantizeValue(n,this.step)),t=this.validateValueRange(this.min,this.max,t),this.connected&&(this.knob.style.left=100*this.scale(t)+"%",this.trackFill.style.width=100*this.scale(this.min+Math.abs(t-this.origin))+"%",this.trackFill.style.left=100*this.scale(Math.min(t,this.origin))+"%"),this.value!==t&&(this.value=t,this.setAttribute("aria-valuenow",this.value),this.dispatchInput())}},{key:"dispatchChange",value:function(){var n=new Event("change");this.dispatchEvent(n,{})}},{key:"dispatchInput",value:function(){var n=new Event("input");this.dispatchEvent(n,{})}},{key:"renderTicks",value:function(){var n=this,t=this.root.querySelector(".ticks");!1!==this.ticks?(this.ticks>0?this.scale.ticks(this.ticks):"any"===this.step?this.scale.ticks():function(n,t,e){n=+n,t=+t,e=(r=arguments.length)<2?(t=n,n=0,1):r<3?1:+e;for(var i=-1,r=0|Math.max(0,Math.ceil((t-n)/e)),o=new Array(r);++i\n \n\n',Do=function(n){function t(){return g(this,t),s(this,t,arguments)}return h(t,n),b(t)}(p("distill-header",'\n\n\n'),!1)(HTMLElement));var Io=function(n){function t(){return g(this,t),s(this,t,arguments)}return h(t,n),b(t,[{key:"frontMatter",set:function(n){this.innerHTML=function(n){var t="\n\n";void 0!==n.githubUrl&&(t+='\n

    Updates and Corrections

    \n

    ',n.githubCompareUpdatesUrl&&(t+='View all changes to this article since it was first published.')),t+='\n If you see mistakes or want to suggest changes, please create an issue on GitHub.

    \n '));var e=n.journal;return void 0!==e&&"Distill"===e.title&&(t+='\n

    Reuse

    \n

    Diagrams and text are licensed under Creative Commons Attribution CC-BY 4.0 with the source available on GitHub, unless noted otherwise. The figures that have been reused from other sources don’t fall under this license and can be recognized by a note in their caption: “Figure from …”.

    \n ')),void 0!==n.publishedDate&&(t+='\n

    Citation

    \n

    For attribution in academic contexts, please cite this work as

    \n
    '.concat(n.concatenatedAuthors,', "').concat(n.title,'", Distill, ').concat(n.publishedYear,'.
    \n

    BibTeX citation

    \n
    ').concat(function(n){return"@article{".concat(n.slug,",\n  author = {").concat(n.bibtexAuthors,"},\n  title = {").concat(n.title,"},\n  journal = {").concat(n.journal.title,"},\n  year = {").concat(n.publishedYear,"},\n  note = {").concat(n.url,"},\n  doi = {").concat(n.doi,"}\n}")}(n),"
    \n ")),t}(n)}}],[{key:"is",get:function(){return"distill-appendix"}}])}(o(HTMLElement)),Ro=function(n){function t(){return g(this,t),s(this,t,arguments)}return h(t,n),b(t)}(p("distill-footer",'\n\n\n
    \n\n is dedicated to clear explanations of machine learning\n\n \n\n
    \n\n'))(HTMLElement));window.distill={runlevel:0,initialize:function(){if(window.distill.runlevel<1)throw new Error("Insufficient Runlevel for Distill Template!");if("distill"in window&&window.distill.templateIsLoading)throw new Error("Runlevel 1: Distill Template is getting loaded more than once, aborting!");window.distill.templateIsLoading=!0,console.debug("Runlevel 1: Distill Template has started loading."),function(n){var t="distill-prerendered-styles";if(!n.getElementById(t)){var e=n.createElement("style");e.id=t,e.type="text/css";var i=n.createTextNode(z);e.appendChild(i);var r=n.head.querySelector("script");n.head.insertBefore(e,r)}}(document),console.debug("Runlevel 1: Static Distill styles have been added."),console.debug("Runlevel 1->2."),window.distill.runlevel+=1;for(var n=0,t=Object.entries(j.listeners);n3."),window.distill.runlevel+=1;var o=[Y,W,V,nn,tn,en,rn,an,sn,ln,P,un,cn,E,dn,hn,pn,Lo,gn],s=[Do,Io,Ro];if(window.distill.runlevel<2)throw new Error("Insufficient Runlevel for adding custom elements!");var l,u=a(o.concat(s));try{for(u.s();!(l=u.n()).done;){var c=l.value;console.debug("Runlevel 2: Registering custom element: "+c.is),customElements.define(c.is,c)}}catch(n){u.e(n)}finally{u.f()}console.debug("Runlevel 3: Distill Template finished registering custom elements."),console.debug("Runlevel 3->4."),window.distill.runlevel+=1,F()&&j.listeners.DOMContentLoaded(),console.debug("Runlevel 4: Distill Template initialisation complete."),window.distill.templateIsLoading=!1,window.distill.templateHasLoaded=!0},templateIsLoading:!1},B.browserSupportsAllFeatures()?(console.debug("Runlevel 0: No need for polyfills."),console.debug("Runlevel 0->1."),window.distill.runlevel+=1,window.distill.initialize()):(console.debug("Runlevel 0: Distill Template is loading polyfills."),B.load(window.distill.initialize))},void 0===(r=i.call(t,e,t,n))||(n.exports=r)}},t={};function e(i){var r=t[i];if(void 0!==r)return r.exports;var o=t[i]={exports:{}};return n[i](o,o.exports,e),o.exports}e.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(n){if("object"==typeof window)return window}}(),e(792)})(); +(()=>{var n={792:(n,t,e)=>{var i,r;function o(n){var t="function"==typeof Map?new Map:void 0;return o=function(n){if(null===n||!function(n){try{return-1!==Function.toString.call(n).indexOf("[native code]")}catch(t){return"function"==typeof n}}(n))return n;if("function"!=typeof n)throw new TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(n))return t.get(n);t.set(n,e)}function e(){return function(n,t,e){if(l())return Reflect.construct.apply(null,arguments);var i=[null];i.push.apply(i,t);var r=new(n.bind.apply(n,i));return e&&p(r,e.prototype),r}(n,arguments,d(this).constructor)}return e.prototype=Object.create(n.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),p(e,n)},o(n)}function a(n,t){var e="undefined"!=typeof Symbol&&n[Symbol.iterator]||n["@@iterator"];if(!e){if(Array.isArray(n)||(e=w(n))||t&&n&&"number"==typeof n.length){e&&(n=e);var i=0,r=function(){};return{s:r,n:function(){return i>=n.length?{done:!0}:{done:!1,value:n[i++]}},e:function(n){throw n},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,a=!0,s=!1;return{s:function(){e=e.call(n)},n:function(){var n=e.next();return a=n.done,n},e:function(n){s=!0,o=n},f:function(){try{a||null==e.return||e.return()}finally{if(s)throw o}}}}function s(n,t,e){return t=d(t),function(n,t){if(t&&("object"==f(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(n){if(void 0===n)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return n}(n)}(n,l()?Reflect.construct(t,e||[],d(n).constructor):t.apply(n,e))}function l(){try{var n=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(n){}return(l=function(){return!!n})()}function u(n,t,e,i){var r=c(d(1&i?n.prototype:n),t,e);return 2&i&&"function"==typeof r?function(n){return r.apply(e,n)}:r}function c(){return c="undefined"!=typeof Reflect&&Reflect.get?Reflect.get.bind():function(n,t,e){var i=function(n,t){for(;!{}.hasOwnProperty.call(n,t)&&null!==(n=d(n)););return n}(n,t);if(i){var r=Object.getOwnPropertyDescriptor(i,t);return r.get?r.get.call(arguments.length<3?n:e):r.value}},c.apply(null,arguments)}function d(n){return d=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(n){return n.__proto__||Object.getPrototypeOf(n)},d(n)}function h(n,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");n.prototype=Object.create(t&&t.prototype,{constructor:{value:n,writable:!0,configurable:!0}}),Object.defineProperty(n,"prototype",{writable:!1}),t&&p(n,t)}function p(n,t){return p=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(n,t){return n.__proto__=t,n},p(n,t)}function f(n){return f="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(n){return typeof n}:function(n){return n&&"function"==typeof Symbol&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n},f(n)}function g(n,t){if(!(n instanceof t))throw new TypeError("Cannot call a class as a function")}function m(n,t){for(var e=0;en.length)&&(t=n.length);for(var e=0,i=Array(t);e2?this.authors[0].lastName+", et al.":2===this.authors.length?this.authors[0].lastName+" & "+this.authors[1].lastName:1===this.authors.length?this.authors[0].lastName:void 0}},{key:"bibtexAuthors",get:function(){return this.authors.map((function(n){return n.lastName+", "+n.firstName})).join(" and ")}},{key:"slug",get:function(){var n="";return this.authors.length&&(n+=this.authors[0].lastName.toLowerCase(),n+=this.publishedYear,n+=this.title.split(" ")[0].toLowerCase()),n||"Untitled"}},{key:"bibliographyEntries",get:function(){var n=this;return new Map(this.citations.map((function(t){return[t,n.bibliography.get(t)]})))}},{key:"bibliography",get:function(){return this._bibliography},set:function(n){n instanceof Map?this._bibliography=n:"object"===f(n)&&(this._bibliography=function(n){var t=new Map;for(var e in n)n.hasOwnProperty(e)&&t.set(e,n[e]);return t}(n))}},{key:"assignToObject",value:function(n){Object.assign(n,this),n.bibliography=function(n){return Array.from(n).reduce((function(n,t){var e,i,r,o=v(t,2),a=o[0],s=o[1];return Object.assign(n,(e={},r=s,(i=y(i=a))in e?Object.defineProperty(e,i,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[i]=r,e))}),{})}(this.bibliographyEntries),n.url=this.url,n.doi=this.doi,n.githubUrl=this.githubUrl,n.previewURL=this.previewURL,this.publishedDate&&(n.volume=this.volume,n.issue=this.issue,n.publishedDateRFC=this.publishedDateRFC,n.publishedYear=this.publishedYear,n.publishedMonth=this.publishedMonth,n.publishedDay=this.publishedDay,n.publishedMonthPadded=this.publishedMonthPadded,n.publishedDayPadded=this.publishedDayPadded),this.updatedDate&&(n.updatedDateRFC=this.updatedDateRFC),n.concatenatedAuthors=this.concatenatedAuthors,n.bibtexAuthors=this.bibtexAuthors,n.slug=this.slug}}],[{key:"fromObject",value:function(t){var e=new n;return Object.assign(e,t),e}}])}(),d=function(n){return function(n){function t(){var n;g(this,t),n=s(this,t);var e={childList:!0,characterData:!0,subtree:!0},i=new MutationObserver((function(){i.disconnect(),n.renderIfPossible(),i.observe(n,e)}));return i.observe(n,e),n}return h(t,n),b(t,[{key:"connectedCallback",value:function(){u(t,"connectedCallback",this,3)([]),this.renderIfPossible()}},{key:"renderIfPossible",value:function(){this.textContent&&this.root&&this.renderContent()}},{key:"renderContent",value:function(){console.error("Your class ".concat(this.constructor.name," must provide a custom renderContent() method!"))}}])}(n)},p=function(n,t){var e=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];return function(i){var r=document.createElement("template");return r.innerHTML=t,e&&"ShadyCSS"in window&&ShadyCSS.prepareTemplate(r,n),function(t){function i(){var n;return g(this,i),(n=s(this,i)).clone=document.importNode(r.content,!0),e&&(n.attachShadow({mode:"open"}),n.shadowRoot.appendChild(n.clone)),n}return h(i,t),b(i,[{key:"connectedCallback",value:function(){this.hasAttribute("distill-prerendered")||(e?"ShadyCSS"in window&&ShadyCSS.styleElement(this):this.insertBefore(this.clone,this.firstChild))}},{key:"root",get:function(){return e?this.shadowRoot:this}},{key:"$",value:function(n){return this.root.querySelector(n)}},{key:"$$",value:function(n){return this.root.querySelectorAll(n)}}],[{key:"is",get:function(){return n}}])}(i)}},m='/*\n * Copyright 2018 The Distill Template Authors\n *\n * Licensed under the Apache License, Version 2.0 (the "License");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an "AS IS" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nspan.katex-display {\n text-align: left;\n padding: 8px 0 8px 0;\n margin: 0.5em 0 0.5em 1em;\n}\n\nspan.katex {\n -webkit-font-smoothing: antialiased;\n color: rgba(0, 0, 0, 0.8);\n font-size: 1.18em;\n}\n',k=function(n,t,e){for(var i=e,r=0,o=n.length;i',E=function(n){function t(){return g(this,t),s(this,t,arguments)}return h(t,n),b(t,[{key:"options",get:function(){var n={displayMode:this.hasAttribute("block")};return Object.assign(n,t.katexOptions)}},{key:"connectedCallback",value:function(){u(t,"connectedCallback",this,3)([]),t.katexAdded||t.addKatex()}},{key:"renderContent",value:function(){if("undefined"!=typeof katex){var n=this.root.querySelector("#katex-container");katex.render(this.textContent,n,this.options)}}}],[{key:"katexOptions",get:function(){return t._katexOptions||(t._katexOptions={delimiters:[{left:"$$",right:"$$",display:!1}]}),t._katexOptions},set:function(n){t._katexOptions=n,t.katexOptions.delimiters&&(t.katexAdded?t.katexLoadedCallback():t.addKatex())}},{key:"katexLoadedCallback",value:function(){var n,e=a(document.querySelectorAll("d-math"));try{for(e.s();!(n=e.n()).done;)n.value.renderContent()}catch(n){e.e(n)}finally{e.f()}t.katexOptions.delimiters&&function(n,t){if(!n)throw new Error("No element provided to render");var e=Object.assign({},_,t),i=e.delimiters.flatMap((function(n){return[n.left,n.right]}));e.mightHaveMath=function(n){return i.some((function(t){return-1!==n.indexOf(t)}))},T(n,e)}(document.body,t.katexOptions)}},{key:"addKatex",value:function(){document.head.insertAdjacentHTML("beforeend",A);var n=document.createElement("script");n.src="https://distill.pub/third-party/katex/katex.min.js",n.async=!0,n.onload=t.katexLoadedCallback,n.crossorigin="anonymous",document.head.appendChild(n),t.katexAdded=!0}}])}(d(p("d-math","\n".concat(A,"\n\n\n"))(HTMLElement)));function C(){var n,t,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:document,i=new Set,r=a(e.querySelectorAll("d-cite"));try{for(r.s();!(n=r.n()).done;){var o,s=n.value,l=a((s.getAttribute("key")||s.getAttribute("bibtex-key")).split(",").map((function(n){return n.trim()})));try{for(l.s();!(o=l.n()).done;){var u=o.value;i.add(u)}}catch(n){l.e(n)}finally{l.f()}}}catch(n){r.e(n)}finally{r.f()}return function(n){if(Array.isArray(n))return x(n)}(t=i)||function(n){if("undefined"!=typeof Symbol&&null!=n[Symbol.iterator]||null!=n["@@iterator"])return Array.from(n)}(t)||w(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function N(n,t,e,i){if(null==n.author)return"";var r=n.author.split(" and "),o=r.map((function(n){if(-1!=(n=n.trim()).indexOf(","))var e=n.split(",")[0].trim(),i=n.split(",")[1];else-1!=n.indexOf(" ")?(e=n.split(" ").slice(-1)[0].trim(),i=n.split(" ").slice(0,-1).join(" ")):e=n.trim();var r="";return null!=i&&(r=(r=i.trim().split(" ").map((function(n){return n.trim()[0]}))).join(".")+"."),t.replace("${F}",i).replace("${L}",e).replace("${I}",r).trim()}));return r.length>1?o.slice(0,r.length-1).join(e)+((i||e)+o[r.length-1]):o[0]}function L(n){var t=n.journal||n.booktitle||"";if("volume"in n){var e=n.issue||n.number;e=null!=e?"("+e+")":"",t+=", Vol "+n.volume+e}return"pages"in n&&(t+=", pp. "+n.pages),""!=t&&(t+=". "),"publisher"in n&&"."!=(t+=n.publisher)[t.length-1]&&(t+="."),t}function O(n){if("url"in n){var t=n.url,e=/arxiv\.org\/abs\/([0-9\.]*)/.exec(t);if(null!=e&&(t="http://arxiv.org/pdf/".concat(e[1],".pdf")),".pdf"==t.slice(-4))var i="PDF";else".html"==t.slice(-5)&&(i="HTML");return'  [').concat(i||"link","]")}return""}function D(n,t){return"doi"in n?"".concat(t?"
    ":"",' DOI: ').concat(n.doi,""):""}function I(n,t){if(n){var e=function(n){return''+n.title+" "}(n);return e+=O(n)+"
    ",n.author&&(e+=N(n,"${L}, ${I}",", "," and "),(n.year||n.date)&&(e+=", ")),n.year||n.date?e+=(n.year||n.date)+". ":e+=". ",(e+=L(n))+D(n)}return"?"}function F(n){if(n){var t="";t+=""+n.title+"",t+=O(n),t+="
    ";var e=N(n,"${I} ${L}",", ")+".",i=L(n).trim()+" "+n.year+". "+D(n,!0);return(e+i).length"+i,t}return"?"}function R(){return-1!==["interactive","complete"].indexOf(document.readyState)}function U(n){var t=n.firstElementChild;if(t){if("json"==t.getAttribute("type").split("/")[1]){var e=t.textContent;return function(n){var t,e=a(n.authors);try{for(e.s();!(t=e.n()).done;){var i=t.value,r=Boolean(i.affiliation),o=Boolean(i.affiliations);if(r)if(o)console.warn("Author ".concat(i.author,' has both old-style ("affiliation" & "affiliationURL") and new style ("affiliations") affiliation information!'));else{var s={name:i.affiliation};i.affiliationURL&&(s.url=i.affiliationURL),i.affiliations=[s]}}}catch(n){e.e(n)}finally{e.f()}return n}(JSON.parse(e))}console.error("Distill only supports JSON frontmatter tags anymore; no more YAML.")}else console.error("You added a frontmatter tag but did not provide a script tag with front matter data in it. Please take a look at our templates.");return{}}E.katexAdded=!1,E.inlineMathRendered=!1,window.DMath=E;var P=function(n){function t(){var n;g(this,t),n=s(this,t);return new MutationObserver((function(t){var e,i=a(t);try{for(i.s();!(e=i.n()).done;){var r=e.value;if("SCRIPT"===r.target.nodeName||"characterData"===r.type){var o=U(n);n.notify(o)}}}catch(n){i.e(n)}finally{i.f()}})).observe(n,{childList:!0,characterData:!0,subtree:!0}),n}return h(t,n),b(t,[{key:"notify",value:function(n){var t=new CustomEvent("onFrontMatterChanged",{detail:n,bubbles:!0});document.dispatchEvent(t)}}],[{key:"is",get:function(){return"d-front-matter"}}])}(o(HTMLElement));var H=new c,j={frontMatter:H,waitingOn:{bibliography:[],citations:[]},listeners:{onCiteKeyCreated:function(n){var t=v(n.detail,2),e=t[0],i=t[1];if(H.citationsCollected)if(H.bibliographyParsed){var r=i.map((function(n){return H.citations.indexOf(n)}));e.numbers=r;var o=i.map((function(n){return H.bibliography.get(n)}));e.entries=o}else j.waitingOn.bibliography.push((function(){return j.listeners.onCiteKeyCreated(n)}));else j.waitingOn.citations.push((function(){return j.listeners.onCiteKeyCreated(n)}))},onCiteKeyChanged:function(){H.citations=C(),H.citationsCollected=!0;var n,t=a(j.waitingOn.citations.slice());try{for(t.s();!(n=t.n()).done;)(0,n.value)()}catch(n){t.e(n)}finally{t.f()}var e=document.querySelector("d-citation-list"),i=new Map(H.citations.map((function(n){return[n,H.bibliography.get(n)]})));e.citations=i;var r,o=a(document.querySelectorAll("d-cite"));try{for(o.s();!(r=o.n()).done;){var s=r.value;console.log(s);var l=s.keys,u=l.map((function(n){return H.citations.indexOf(n)}));s.numbers=u;var c=l.map((function(n){return H.bibliography.get(n)}));s.entries=c}}catch(n){o.e(n)}finally{o.f()}},onCiteKeyRemoved:function(n){j.listeners.onCiteKeyChanged(n)},onBibliographyChanged:function(n){var t=document.querySelector("d-citation-list"),e=n.detail;H.bibliography=e,H.bibliographyParsed=!0;var i,r=a(j.waitingOn.bibliography.slice());try{for(r.s();!(i=r.n()).done;)(0,i.value)()}catch(n){r.e(n)}finally{r.f()}if(H.citationsCollected)if(t.hasAttribute("distill-prerendered"))console.debug("Citation list was prerendered; not updating it.");else{var o=new Map(H.citations.map((function(n){return[n,H.bibliography.get(n)]})));t.citations=o}else j.waitingOn.citations.push((function(){j.listeners.onBibliographyChanged({target:n.target,detail:n.detail})}))},onFootnoteChanged:function(){var n=document.querySelector("d-footnote-list");if(n){var t=document.querySelectorAll("d-footnote");n.footnotes=t}},onFrontMatterChanged:function(n){var t,e,i=n.detail;e=i,(t=H).title=e.title,e.published&&(e.published instanceof Date?t.publishedDate=e.published:e.published.constructor===String&&(t.publishedDate=new Date(e.published))),e.publishedDate&&(e.publishedDate instanceof Date?t.publishedDate=e.publishedDate:e.publishedDate.constructor===String?t.publishedDate=new Date(e.publishedDate):console.error("Don't know what to do with published date: "+e.publishedDate)),t.description=e.description,t.authors=e.authors.map((function(n){return new l(n)})),t.katex=e.katex,t.password=e.password,e.doi&&(t.doi=e.doi);var r=document.querySelector("d-interstitial");if(r&&(void 0!==H.password?r.password=H.password:r.parentElement.removeChild(r)),!document.body.hasAttribute("distill-prerendered")&&R()){!function(n,t){var e=n.body,i=e.querySelector("d-article");if(i){var r=n.querySelector("d-byline");r||(t.authors?(r=n.createElement("d-byline"),e.insertBefore(r,i)):console.warn("No authors found in front matter; please add them before submission!"));var o=n.querySelector("d-title");o||(o=n.createElement("d-title"),e.insertBefore(o,r));var a=o.querySelector("h1");a||((a=n.createElement("h1")).textContent=t.title,o.insertBefore(a,o.firstChild));var s=void 0!==t.password,l=e.querySelector("d-interstitial");if(s&&!l){var u="undefined"!=typeof window,c=u&&window.location.hostname.includes("localhost");u&&c||((l=n.createElement("d-interstitial")).password=t.password,e.insertBefore(l,e.firstChild))}else!s&&l&&l.parentElement.removeChild(this);var d=n.querySelector("d-appendix");d||(d=n.createElement("d-appendix"),n.body.appendChild(d));var h=n.querySelector("d-footnote-list");h||(h=n.createElement("d-footnote-list"),d.appendChild(h));var p=n.querySelector("d-citation-list");p||(p=n.createElement("d-citation-list"),d.appendChild(p))}else console.warn("No d-article tag found; skipping adding optional components!")}(document,H);var o=document.querySelector("distill-appendix");o&&(o.frontMatter=H);var a=document.querySelector("d-byline");a&&(a.frontMatter=H),i.katex&&(E.katexOptions=i.katex)}},DOMContentLoaded:function(){if(j.loaded)console.warn("Controller received DOMContentLoaded but was already loaded!");else if(R()){j.loaded=!0,console.debug("Runlevel 4: Controller running DOMContentLoaded");var n=document.querySelector("d-front-matter");if(n){var t=U(n);j.listeners.onFrontMatterChanged({detail:t})}H.citations=C(),H.citationsCollected=!0;var e,i=a(j.waitingOn.citations.slice());try{for(i.s();!(e=i.n()).done;)(0,e.value)()}catch(n){i.e(n)}finally{i.f()}if(H.bibliographyParsed){var r,o=a(j.waitingOn.bibliography.slice());try{for(o.s();!(r=o.n()).done;)(0,r.value)()}catch(n){o.e(n)}finally{o.f()}}var s=document.querySelector("d-footnote-list");if(s){var l=document.querySelectorAll("d-footnote");s.footnotes=l}}else console.warn("Controller received DOMContentLoaded at document.readyState: "+document.readyState+"!")}}},z='/*\n * Copyright 2018 The Distill Template Authors\n *\n * Licensed under the Apache License, Version 2.0 (the "License");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an "AS IS" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nhtml {\n font-size: 14px;\n\tline-height: 1.6em;\n /* font-family: "Libre Franklin", "Helvetica Neue", sans-serif; */\n font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", Arial, sans-serif;\n /*, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";*/\n text-size-adjust: 100%;\n -ms-text-size-adjust: 100%;\n -webkit-text-size-adjust: 100%;\n}\n\n@media(min-width: 768px) {\n html {\n font-size: 16px;\n }\n}\n\nbody {\n margin: 0;\n}\n\na {\n color: #004276;\n}\n\nfigure {\n margin: 0;\n}\n\ntable {\n\tborder-collapse: collapse;\n\tborder-spacing: 0;\n}\n\ntable th {\n\ttext-align: left;\n}\n\ntable thead {\n border-bottom: 1px solid rgba(0, 0, 0, 0.05);\n}\n\ntable thead th {\n padding-bottom: 0.5em;\n}\n\ntable tbody :first-child td {\n padding-top: 0.5em;\n}\n\npre {\n overflow: auto;\n max-width: 100%;\n}\n\np {\n margin-top: 0;\n margin-bottom: 1em;\n}\n\nsup, sub {\n vertical-align: baseline;\n position: relative;\n top: -0.4em;\n line-height: 1em;\n}\n\nsub {\n top: 0.4em;\n}\n\n.kicker,\n.marker {\n font-size: 15px;\n font-weight: 600;\n color: rgba(0, 0, 0, 0.5);\n}\n\n\n/* Headline */\n\n@media(min-width: 1024px) {\n d-title h1 span {\n display: block;\n }\n}\n\n/* Figure */\n\nfigure {\n position: relative;\n margin-bottom: 2.5em;\n margin-top: 1.5em;\n}\n\nfigcaption+figure {\n\n}\n\nfigure img {\n width: 100%;\n}\n\nfigure svg text,\nfigure svg tspan {\n}\n\nfigcaption,\n.figcaption {\n color: rgba(0, 0, 0, 0.6);\n font-size: 12px;\n line-height: 1.5em;\n}\n\n@media(min-width: 1024px) {\nfigcaption,\n.figcaption {\n font-size: 13px;\n }\n}\n\nfigure.external img {\n background: white;\n border: 1px solid rgba(0, 0, 0, 0.1);\n box-shadow: 0 1px 8px rgba(0, 0, 0, 0.1);\n padding: 18px;\n box-sizing: border-box;\n}\n\nfigcaption a {\n color: rgba(0, 0, 0, 0.6);\n}\n\nfigcaption b,\nfigcaption strong, {\n font-weight: 600;\n color: rgba(0, 0, 0, 1.0);\n}\n/*\n * Copyright 2018 The Distill Template Authors\n *\n * Licensed under the Apache License, Version 2.0 (the "License");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an "AS IS" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n@supports not (display: grid) {\n .base-grid,\n distill-header,\n d-title,\n d-abstract,\n d-article,\n d-appendix,\n distill-appendix,\n d-byline,\n d-footnote-list,\n d-citation-list,\n distill-footer {\n display: block;\n padding: 8px;\n }\n}\n\n.base-grid,\ndistill-header,\nd-title,\nd-abstract,\nd-article,\nd-appendix,\ndistill-appendix,\nd-byline,\nd-footnote-list,\nd-citation-list,\ndistill-footer {\n display: grid;\n justify-items: stretch;\n grid-template-columns: [screen-start] 8px [page-start kicker-start text-start gutter-start middle-start] 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr [text-end page-end gutter-end kicker-end middle-end] 8px [screen-end];\n grid-column-gap: 8px;\n}\n\n.grid {\n display: grid;\n grid-column-gap: 8px;\n}\n\n@media(min-width: 768px) {\n .base-grid,\n distill-header,\n d-title,\n d-abstract,\n d-article,\n d-appendix,\n distill-appendix,\n d-byline,\n d-footnote-list,\n d-citation-list,\n distill-footer {\n grid-template-columns: [screen-start] 1fr [page-start kicker-start middle-start text-start] 45px 45px 45px 45px 45px 45px 45px 45px [ kicker-end text-end gutter-start] 45px [middle-end] 45px [page-end gutter-end] 1fr [screen-end];\n grid-column-gap: 16px;\n }\n\n .grid {\n grid-column-gap: 16px;\n }\n}\n\n@media(min-width: 1000px) {\n .base-grid,\n distill-header,\n d-title,\n d-abstract,\n d-article,\n d-appendix,\n distill-appendix,\n d-byline,\n d-footnote-list,\n d-citation-list,\n distill-footer {\n grid-template-columns: [screen-start] 1fr [page-start kicker-start] 50px [middle-start] 50px [text-start kicker-end] 50px 50px 50px 50px 50px 50px 50px 50px [text-end gutter-start] 50px [middle-end] 50px [page-end gutter-end] 1fr [screen-end];\n grid-column-gap: 16px;\n }\n\n .grid {\n grid-column-gap: 16px;\n }\n}\n\n@media(min-width: 1180px) {\n .base-grid,\n distill-header,\n d-title,\n d-abstract,\n d-article,\n d-appendix,\n distill-appendix,\n d-byline,\n d-footnote-list,\n d-citation-list,\n distill-footer {\n grid-template-columns: [screen-start] 1fr [page-start kicker-start] 60px [middle-start] 60px [text-start kicker-end] 60px 60px 60px 60px 60px 60px 60px 60px [text-end gutter-start] 60px [middle-end] 60px [page-end gutter-end] 1fr [screen-end];\n grid-column-gap: 32px;\n }\n\n .grid {\n grid-column-gap: 32px;\n }\n}\n\n\n\n\n.base-grid {\n grid-column: screen;\n}\n\n/* .l-body,\nd-article > * {\n grid-column: text;\n}\n\n.l-page,\nd-title > *,\nd-figure {\n grid-column: page;\n} */\n\n.l-gutter {\n grid-column: gutter;\n}\n\n.l-text,\n.l-body {\n grid-column: text;\n}\n\n.l-page {\n grid-column: page;\n}\n\n.l-body-outset {\n grid-column: middle;\n}\n\n.l-page-outset {\n grid-column: page;\n}\n\n.l-screen {\n grid-column: screen;\n}\n\n.l-screen-inset {\n grid-column: screen;\n padding-left: 16px;\n padding-left: 16px;\n}\n\n\n/* Aside */\n\nd-article aside {\n grid-column: gutter;\n font-size: 12px;\n line-height: 1.6em;\n color: rgba(0, 0, 0, 0.6)\n}\n\n@media(min-width: 768px) {\n aside {\n grid-column: gutter;\n }\n\n .side {\n grid-column: gutter;\n }\n}\n/*\n * Copyright 2018 The Distill Template Authors\n *\n * Licensed under the Apache License, Version 2.0 (the "License");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an "AS IS" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nd-title {\n padding: 2rem 0 1.5rem;\n contain: layout style;\n overflow-x: hidden;\n}\n\n@media(min-width: 768px) {\n d-title {\n padding: 4rem 0 1.5rem;\n }\n}\n\nd-title h1 {\n grid-column: text;\n font-size: 40px;\n font-weight: 700;\n line-height: 1.1em;\n margin: 0 0 0.5rem;\n}\n\n@media(min-width: 768px) {\n d-title h1 {\n font-size: 50px;\n }\n}\n\nd-title p {\n font-weight: 300;\n font-size: 1.2rem;\n line-height: 1.55em;\n grid-column: text;\n}\n\nd-title .status {\n margin-top: 0px;\n font-size: 12px;\n color: #009688;\n opacity: 0.8;\n grid-column: kicker;\n}\n\nd-title .status span {\n line-height: 1;\n display: inline-block;\n padding: 6px 0;\n border-bottom: 1px solid #80cbc4;\n font-size: 11px;\n text-transform: uppercase;\n}\n/*\n * Copyright 2018 The Distill Template Authors\n *\n * Licensed under the Apache License, Version 2.0 (the "License");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an "AS IS" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nd-byline {\n contain: style;\n overflow: hidden;\n border-top: 1px solid rgba(0, 0, 0, 0.1);\n font-size: 0.8rem;\n line-height: 1.8em;\n padding: 1.5rem 0;\n min-height: 1.8em;\n}\n\n\nd-byline .byline {\n grid-template-columns: 1fr 1fr;\n grid-column: text;\n}\n\n@media(min-width: 768px) {\n d-byline .byline {\n grid-template-columns: 1fr 1fr 1fr 1fr;\n }\n}\n\nd-byline .authors-affiliations {\n grid-column-end: span 2;\n grid-template-columns: 1fr 1fr;\n margin-bottom: 1em;\n}\n\n@media(min-width: 768px) {\n d-byline .authors-affiliations {\n margin-bottom: 0;\n }\n}\n\nd-byline h3 {\n font-size: 0.6rem;\n font-weight: 400;\n color: rgba(0, 0, 0, 0.5);\n margin: 0;\n text-transform: uppercase;\n}\n\nd-byline p {\n margin: 0;\n}\n\nd-byline a,\nd-article d-byline a {\n color: rgba(0, 0, 0, 0.8);\n text-decoration: none;\n border-bottom: none;\n}\n\nd-article d-byline a:hover {\n text-decoration: underline;\n border-bottom: none;\n}\n\nd-byline p.author {\n font-weight: 500;\n}\n\nd-byline .affiliations {\n\n}\n/*\n * Copyright 2018 The Distill Template Authors\n *\n * Licensed under the Apache License, Version 2.0 (the "License");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an "AS IS" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nd-article {\n contain: layout style;\n overflow-x: hidden;\n border-top: 1px solid rgba(0, 0, 0, 0.1);\n padding-top: 2rem;\n color: rgba(0, 0, 0, 0.8);\n}\n\nd-article > * {\n grid-column: text;\n}\n\n@media(min-width: 768px) {\n d-article {\n font-size: 16px;\n }\n}\n\n@media(min-width: 1024px) {\n d-article {\n font-size: 1.06rem;\n line-height: 1.7em;\n }\n}\n\n\n/* H2 */\n\n\nd-article .marker {\n text-decoration: none;\n border: none;\n counter-reset: section;\n grid-column: kicker;\n line-height: 1.7em;\n}\n\nd-article .marker:hover {\n border: none;\n}\n\nd-article .marker span {\n padding: 0 3px 4px;\n border-bottom: 1px solid rgba(0, 0, 0, 0.2);\n position: relative;\n top: 4px;\n}\n\nd-article .marker:hover span {\n color: rgba(0, 0, 0, 0.7);\n border-bottom: 1px solid rgba(0, 0, 0, 0.7);\n}\n\nd-article h2 {\n font-weight: 600;\n font-size: 24px;\n line-height: 1.25em;\n margin: 2rem 0 1.5rem 0;\n border-bottom: 1px solid rgba(0, 0, 0, 0.1);\n padding-bottom: 1rem;\n}\n\n@media(min-width: 1024px) {\n d-article h2 {\n font-size: 36px;\n }\n}\n\n/* H3 */\n\nd-article h3 {\n font-weight: 700;\n font-size: 18px;\n line-height: 1.4em;\n margin-bottom: 1em;\n margin-top: 2em;\n}\n\n@media(min-width: 1024px) {\n d-article h3 {\n font-size: 20px;\n }\n}\n\n/* H4 */\n\nd-article h4 {\n font-weight: 600;\n text-transform: uppercase;\n font-size: 14px;\n line-height: 1.4em;\n}\n\nd-article a {\n color: inherit;\n}\n\nd-article p,\nd-article ul,\nd-article ol,\nd-article blockquote {\n margin-top: 0;\n margin-bottom: 1em;\n margin-left: 0;\n margin-right: 0;\n}\n\nd-article blockquote {\n border-left: 2px solid rgba(0, 0, 0, 0.2);\n padding-left: 2em;\n font-style: italic;\n color: rgba(0, 0, 0, 0.6);\n}\n\nd-article a {\n border-bottom: 1px solid rgba(0, 0, 0, 0.4);\n text-decoration: none;\n}\n\nd-article a:hover {\n border-bottom: 1px solid rgba(0, 0, 0, 0.8);\n}\n\nd-article .link {\n text-decoration: underline;\n cursor: pointer;\n}\n\nd-article ul,\nd-article ol {\n padding-left: 24px;\n}\n\nd-article li {\n margin-bottom: 0.2em;\n margin-left: 0;\n padding-left: 0;\n}\n\nd-article li:last-child {\n margin-bottom: 0;\n}\n\nd-article pre {\n font-size: 14px;\n margin-bottom: 20px;\n}\n\nd-article hr {\n grid-column: screen;\n width: 100%;\n border: none;\n border-bottom: 1px solid rgba(0, 0, 0, 0.1);\n margin-top: 60px;\n margin-bottom: 60px;\n}\n\nd-article section {\n margin-top: 60px;\n margin-bottom: 60px;\n}\n\nd-article span.equation-mimic {\n font-family: georgia;\n font-size: 115%;\n font-style: italic;\n}\n\nd-article > d-code,\nd-article section > d-code {\n display: block;\n}\n\nd-article > d-math[block],\nd-article section > d-math[block] {\n display: block;\n}\n\n@media (max-width: 768px) {\n d-article > d-code,\n d-article section > d-code,\n d-article > d-math[block],\n d-article section > d-math[block] {\n overflow-x: scroll;\n -ms-overflow-style: none; // IE 10+\n overflow: -moz-scrollbars-none; // Firefox\n }\n\n d-article > d-code::-webkit-scrollbar,\n d-article section > d-code::-webkit-scrollbar,\n d-article > d-math[block]::-webkit-scrollbar,\n d-article section > d-math[block]::-webkit-scrollbar {\n display: none; // Safari and Chrome\n }\n}\n\nd-article .citation {\n color: #668;\n cursor: pointer;\n}\n\nd-include {\n width: auto;\n display: block;\n}\n\nd-figure {\n contain: layout style;\n}\n\n/* KaTeX */\n\n.katex, .katex-prerendered {\n contain: style;\n display: inline-block;\n}\n\n/* Tables */\n\nd-article table {\n border-collapse: collapse;\n margin-bottom: 1.5rem;\n border-bottom: 1px solid rgba(0, 0, 0, 0.2);\n}\n\nd-article table th {\n border-bottom: 1px solid rgba(0, 0, 0, 0.2);\n}\n\nd-article table td {\n border-bottom: 1px solid rgba(0, 0, 0, 0.05);\n}\n\nd-article table tr:last-of-type td {\n border-bottom: none;\n}\n\nd-article table th,\nd-article table td {\n font-size: 15px;\n padding: 2px 8px;\n}\n\nd-article table tbody :first-child td {\n padding-top: 2px;\n}\n'+m+'/*\n * Copyright 2018 The Distill Template Authors\n *\n * Licensed under the Apache License, Version 2.0 (the "License");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an "AS IS" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n@media print {\n\n @page {\n size: 8in 11in;\n @bottom-right {\n content: counter(page) " of " counter(pages);\n }\n }\n\n html {\n /* no general margins -- CSS Grid takes care of those */\n }\n\n p, code {\n page-break-inside: avoid;\n }\n\n h2, h3 {\n page-break-after: avoid;\n }\n\n d-header {\n visibility: hidden;\n }\n\n d-footer {\n display: none!important;\n }\n\n}\n';function $(n,t){console.debug("Runlevel 0: Polyfill required: "+n.name);var e=document.createElement("script");e.src=n.url,e.async=!1,t&&(e.onload=function(){t(n)}),e.onerror=function(){new Error("Runlevel 0: Polyfills failed to load script "+n.name)},document.head.appendChild(e)}var q=[{name:"WebComponents",support:function(){return"customElements"in window&&"attachShadow"in Element.prototype&&"getRootNode"in Element.prototype&&"content"in document.createElement("template")&&"Promise"in window&&"from"in Array},url:"https://distill.pub/third-party/polyfills/webcomponents-lite.js"},{name:"IntersectionObserver",support:function(){return"IntersectionObserver"in window&&"IntersectionObserverEntry"in window},url:"https://distill.pub/third-party/polyfills/intersection-observer.js"}],B=function(){function n(){g(this,n)}return b(n,null,[{key:"browserSupportsAllFeatures",value:function(){return q.every((function(n){return n.support()}))}},{key:"load",value:function(t){var e,i=function(e){e.loaded=!0,console.debug("Runlevel 0: Polyfill has finished loading: "+e.name),n.neededPolyfills.every((function(n){return n.loaded}))&&(console.debug("Runlevel 0: All required polyfills have finished loading."),console.debug("Runlevel 0->1."),window.distillRunlevel=1,t())},r=a(n.neededPolyfills);try{for(r.s();!(e=r.n()).done;)$(e.value,i)}catch(n){r.e(n)}finally{r.f()}}},{key:"neededPolyfills",get:function(){return n._neededPolyfills||(n._neededPolyfills=q.filter((function(n){return!n.support()}))),n._neededPolyfills}}])}();var Y=function(n){function t(){return g(this,t),s(this,t,arguments)}return h(t,n),b(t)}(p("d-abstract","\n\n\n\n"))(HTMLElement)),W=function(n){function t(){return g(this,t),s(this,t,arguments)}return h(t,n),b(t)}(p("d-appendix","\n\n\n",!1)(HTMLElement)),G=/^\s*$/,V=function(n){function t(){var n;return g(this,t),n=s(this,t),new MutationObserver((function(n){var t,e=a(n);try{for(e.s();!(t=e.n()).done;){var i,r=a(t.value.addedNodes);try{for(r.s();!(i=r.n()).done;){var o=i.value;if("#text"===o.nodeName){var s=o.nodeValue;if(!G.test(s)){console.warn("Use of unwrapped text in distill articles is discouraged as it breaks layout! Please wrap any text in a or

    tag. We found the following text: "+s);var l=document.createElement("span");l.innerHTML=o.nodeValue,o.parentNode.insertBefore(l,o),o.parentNode.removeChild(o)}}}}catch(n){r.e(n)}finally{r.f()}}}catch(n){e.e(n)}finally{e.f()}})).observe(n,{childList:!0}),n}return h(t,n),b(t,null,[{key:"is",get:function(){return"d-article"}}])}(o(HTMLElement)),K="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:void 0!==e.g?e.g:"undefined"!=typeof self?self:{};function X(n,t){return n(t={exports:{}},t.exports),t.exports}var Z=X((function(n,t){!function(n){function t(){this.months=["jan","feb","mar","apr","may","jun","jul","aug","sep","oct","nov","dec"],this.notKey=[",","{","}"," ","="],this.pos=0,this.input="",this.entries=new Array,this.currentEntry="",this.setInput=function(n){this.input=n},this.getEntries=function(){return this.entries},this.isWhitespace=function(n){return" "==n||"\r"==n||"\t"==n||"\n"==n},this.match=function(n,t){if(null!=t&&null!=t||(t=!0),this.skipWhitespace(t),this.input.substring(this.pos,this.pos+n.length)!=n)throw"Token mismatch, expected "+n+", found "+this.input.substring(this.pos);this.pos+=n.length,this.skipWhitespace(t)},this.tryMatch=function(n,t){return null!=t&&null!=t||(t=!0),this.skipWhitespace(t),this.input.substring(this.pos,this.pos+n.length)==n},this.matchAt=function(){for(;this.input.length>this.pos&&"@"!=this.input[this.pos];)this.pos++;return"@"==this.input[this.pos]},this.skipWhitespace=function(n){for(;this.isWhitespace(this.input[this.pos]);)this.pos++;if("%"==this.input[this.pos]&&1==n){for(;"\n"!=this.input[this.pos];)this.pos++;this.skipWhitespace(n)}},this.value_braces=function(){var n=0;this.match("{",!1);for(var t=this.pos,e=!1;;){if(!e)if("}"==this.input[this.pos]){if(!(n>0)){var i=this.pos;return this.match("}",!1),this.input.substring(t,i)}n--}else if("{"==this.input[this.pos])n++;else if(this.pos>=this.input.length-1)throw"Unterminated value";e="\\"==this.input[this.pos]&&0==e,this.pos++}},this.value_comment=function(){for(var n="",t=0;!this.tryMatch("}",!1)||0!=t;){if(n+=this.input[this.pos],"{"==this.input[this.pos]&&t++,"}"==this.input[this.pos]&&t--,this.pos>=this.input.length-1)throw"Unterminated value:"+this.input.substring(start);this.pos++}return n},this.value_quotes=function(){this.match('"',!1);for(var n=this.pos,t=!1;;){if(!t){if('"'==this.input[this.pos]){var e=this.pos;return this.match('"',!1),this.input.substring(n,e)}if(this.pos>=this.input.length-1)throw"Unterminated value:"+this.input.substring(n)}t="\\"==this.input[this.pos]&&0==t,this.pos++}},this.single_value=function(){var n=this.pos;if(this.tryMatch("{"))return this.value_braces();if(this.tryMatch('"'))return this.value_quotes();var t=this.key();if(t.match("^[0-9]+$"))return t;if(this.months.indexOf(t.toLowerCase())>=0)return t.toLowerCase();throw"Value expected:"+this.input.substring(n)+" for key: "+t},this.value=function(){var n=[];for(n.push(this.single_value());this.tryMatch("#");)this.match("#"),n.push(this.single_value());return n.join("")},this.key=function(){for(var n=this.pos;;){if(this.pos>=this.input.length)throw"Runaway key";if(this.notKey.indexOf(this.input[this.pos])>=0)return this.input.substring(n,this.pos);this.pos++}},this.key_equals_value=function(){var n=this.key();if(this.tryMatch("="))return this.match("="),[n,this.value()];throw"... = value expected, equals sign missing:"+this.input.substring(this.pos)},this.key_value_list=function(){var n=this.key_equals_value();for(this.currentEntry.entryTags={},this.currentEntry.entryTags[n[0]]=n[1];this.tryMatch(",")&&(this.match(","),!this.tryMatch("}"));)n=this.key_equals_value(),this.currentEntry.entryTags[n[0]]=n[1]},this.entry_body=function(n){this.currentEntry={},this.currentEntry.citationKey=this.key(),this.currentEntry.entryType=n.substring(1),this.match(","),this.key_value_list(),this.entries.push(this.currentEntry)},this.directive=function(){return this.match("@"),"@"+this.key()},this.preamble=function(){this.currentEntry={},this.currentEntry.entryType="PREAMBLE",this.currentEntry.entry=this.value_comment(),this.entries.push(this.currentEntry)},this.comment=function(){this.currentEntry={},this.currentEntry.entryType="COMMENT",this.currentEntry.entry=this.value_comment(),this.entries.push(this.currentEntry)},this.entry=function(n){this.entry_body(n)},this.bibtex=function(){for(;this.matchAt();){var n=this.directive();this.match("{"),"@STRING"==n?this.string():"@PREAMBLE"==n?this.preamble():"@COMMENT"==n?this.comment():this.entry(n),this.match("}")}}}n.toJSON=function(n){var e=new t;return e.setInput(n),e.bibtex(),e.entries},n.toBibtex=function(n){var t="";for(var e in n){if(t+="@"+n[e].entryType,t+="{",n[e].citationKey&&(t+=n[e].citationKey+", "),n[e].entry&&(t+=n[e].entry),n[e].entryTags){var i="";for(var r in n[e].entryTags)0!=i.length&&(i+=", "),i+=r+"= {"+n[e].entryTags[r]+"}";t+=i}t+="}\n\n"}return t}}(t)}));function Q(n){return n.replace(/[\t\n ]+/g," ").replace(/{\\["^`.'acu~Hvs]( )?([a-zA-Z])}/g,(function(n,t,e){return e})).replace(/{\\([a-zA-Z])}/g,(function(n,t){return t}))}function J(n){var t,e=new Map,i=a(Z.toJSON(n));try{for(i.s();!(t=i.n()).done;){for(var r=t.value,o=0,s=Object.entries(r.entryTags);o

    \n

    Authors

    \n
    \n '.concat(n.authors.map((function(t,e){return'\n \n '.concat(t.personalURL?'\n ').concat(t.name)+(e+1":'\n '.concat(t.name)+(e+1","\n \n ")})).join(""),'\n
    \n
    \n \n
    \n

    Published

    \n
    Feb 19, 2025
    \n
    \n \n')}(n)}}],[{key:"is",get:function(){return"d-byline"}}])}(o(HTMLElement)),en=function(n){function t(){var n;return g(this,t),(n=s(this,t))._numbers=[],n._entries=[],n}return h(t,n),b(t,[{key:"connectedCallback",value:function(){var n=this;this.outerSpan=this.root.querySelector("#citation-"),this.innerSpan=this.root.querySelector(".citation-number"),this.hoverBox=this.root.querySelector("d-hover-box"),window.customElements.whenDefined("d-hover-box").then((function(){n.hoverBox.listen(n)})),this.numbers&&this.displayNumbers(this.numbers),this.entries&&this.displayEntries(this.entries)}},{key:"attributeChangedCallback",value:function(n,t,e){var i=t?"onCiteKeyChanged":"onCiteKeyCreated",r=e.split(",").map((function(n){return n.trim()})),o=new CustomEvent(i,{detail:[this,r],bubbles:!0});document.dispatchEvent(o)}},{key:"key",get:function(){return this.getAttribute("key")||this.getAttribute("bibtex-key")},set:function(n){this.setAttribute("key",n)}},{key:"keys",get:function(){var n=this.key.split(",");return console.log(n),n}},{key:"numbers",get:function(){return this._numbers},set:function(n){this._numbers=n,this.displayNumbers(n)}},{key:"displayNumbers",value:function(n){if(this.innerSpan){var t="["+n.map((function(n){return-1==n?"?":n+1+""})).join(", ")+"]";this.innerSpan.textContent=t}}},{key:"entries",get:function(){return this._entries},set:function(n){this._entries=n,this.displayEntries(n)}},{key:"displayEntries",value:function(n){this.hoverBox&&(this.hoverBox.innerHTML="
      \n ".concat(n.map(F).map((function(n){return"
    • ".concat(n,"
    • ")})).join("\n"),"\n
    "))}}],[{key:"observedAttributes",get:function(){return["key","bibtex-key"]}}])}(p("d-cite",'\n\n\n\n\n
    \n \n
    \n')(HTMLElement));var rn=function(n){function t(){return g(this,t),s(this,t,arguments)}return h(t,n),b(t,[{key:"connectedCallback",value:function(){this.hasAttribute("distill-prerendered")||(this.style.display="none")}},{key:"citations",set:function(n){!function(n,t){var e=arguments.length>2&&void 0!==arguments[2]?arguments[2]:document;if(t.size>0){n.style.display="";var i=n.querySelector(".references");if(i)i.innerHTML="";else{var r=e.createElement("style");r.innerHTML="\nd-citation-list {\n contain: style;\n}\n\nd-citation-list .references {\n grid-column: text;\n}\n\nd-citation-list .references .title {\n font-weight: 500;\n}\n",n.appendChild(r);var o=e.createElement("h3");o.id="references",o.textContent="References",n.appendChild(o),(i=e.createElement("ol")).id="references-list",i.className="references",n.appendChild(i)}var s,l=a(t);try{for(l.s();!(s=l.n()).done;){var u=v(s.value,2),c=u[0],d=u[1],h=e.createElement("li");h.id=c,h.innerHTML=I(d),i.appendChild(h)}}catch(n){l.e(n)}finally{l.f()}}else n.style.display="none"}(this,n)}}],[{key:"is",get:function(){return"d-citation-list"}}])}(o(HTMLElement)),on=X((function(n){var t=function(n){var t=/\blang(?:uage)?-([\w-]+)\b/i,e=0,i={manual:n.Prism&&n.Prism.manual,disableWorkerMessageHandler:n.Prism&&n.Prism.disableWorkerMessageHandler,util:{encode:function n(t){return t instanceof r?new r(t.type,n(t.content),t.alias):Array.isArray(t)?t.map(n):t.replace(/&/g,"&").replace(/n.length)return;if(!(M instanceof r)){var T=1;if(y&&k!=t.tail.prev){if(g.lastIndex=S,!(N=g.exec(n)))break;var _=N.index+(b&&N[1]?N[1].length:0),A=N.index+N[0].length,E=S;for(E+=k.value.length;_>=E;)E+=(k=k.next).value.length;if(S=E-=k.value.length,k.value instanceof r)continue;for(var C=k;C!==t.tail&&(E1&&o(n,t,e,k.prev,S,!0,h+","+f),c)break}else if(c)break}}}}}function a(){var n={value:null,prev:null,next:null},t={value:null,prev:n,next:null};n.next=t,this.head=n,this.tail=t,this.length=0}function s(n,t,e){var i=t.next,r={value:e,prev:t,next:i};return t.next=r,i.prev=r,n.length++,r}function l(n,t,e){for(var i=t.next,r=0;r"+o.content+""},!n.document)return n.addEventListener?(i.disableWorkerMessageHandler||n.addEventListener("message",(function(t){var e=JSON.parse(t.data),r=e.language,o=e.code,a=e.immediateClose;n.postMessage(i.highlight(o,i.languages[r],r)),a&&n.close()}),!1),i):i;var u=i.util.currentScript();function c(){i.manual||i.highlightAll()}if(u&&(i.filename=u.src,u.hasAttribute("data-manual")&&(i.manual=!0)),!i.manual){var d=document.readyState;"loading"===d||"interactive"===d&&u&&u.defer?document.addEventListener("DOMContentLoaded",c):window.requestAnimationFrame?window.requestAnimationFrame(c):window.setTimeout(c,16)}return i}("undefined"!=typeof window?window:"undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?self:{});n.exports&&(n.exports=t),void 0!==K&&(K.Prism=t),t.languages.markup={comment://,prolog:/<\?[\s\S]+?\?>/,doctype:{pattern:/"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:(?!)*\]\s*)?>/i,greedy:!0},cdata://i,tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/i,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/i,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/i,inside:{punctuation:[/^=/,{pattern:/^(\s*)["']|["']$/,lookbehind:!0}]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:/&#?[\da-z]{1,8};/i},t.languages.markup.tag.inside["attr-value"].inside.entity=t.languages.markup.entity,t.hooks.add("wrap",(function(n){"entity"===n.type&&(n.attributes.title=n.content.replace(/&/,"&"))})),Object.defineProperty(t.languages.markup.tag,"addInlined",{value:function(n,e){var i={};i["language-"+e]={pattern:/(^$)/i,lookbehind:!0,inside:t.languages[e]},i.cdata=/^$/i;var r={"included-cdata":{pattern://i,inside:i}};r["language-"+e]={pattern:/[\s\S]+/,inside:t.languages[e]};var o={};o[n]={pattern:RegExp(/(<__[\s\S]*?>)(?:\s*|[\s\S])*?(?=<\/__>)/.source.replace(/__/g,(function(){return n})),"i"),lookbehind:!0,greedy:!0,inside:r},t.languages.insertBefore("markup","cdata",o)}}),t.languages.xml=t.languages.extend("markup",{}),t.languages.html=t.languages.markup,t.languages.mathml=t.languages.markup,t.languages.svg=t.languages.markup,function(n){var t=/("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/;n.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:/@[\w-]+[\s\S]*?(?:;|(?=\s*\{))/,inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\((?!\s*\))\s*)(?:[^()]|\((?:[^()]|\([^()]*\))*\))+?(?=\s*\))/,lookbehind:!0,alias:"selector"}}},url:{pattern:RegExp("url\\((?:"+t.source+"|[^\n\r()]*)\\)","i"),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/}},selector:RegExp("[^{}\\s](?:[^{};\"']|"+t.source+")*?(?=\\s*\\{)"),string:{pattern:t,greedy:!0},property:/[-_a-z\xA0-\uFFFF][-\w\xA0-\uFFFF]*(?=\s*:)/i,important:/!important\b/i,function:/[-a-z0-9]+(?=\()/i,punctuation:/[(){};:,]/},n.languages.css.atrule.inside.rest=n.languages.css;var e=n.languages.markup;e&&(e.tag.addInlined("style","css"),n.languages.insertBefore("inside","attr-value",{"style-attr":{pattern:/\s*style=("|')(?:\\[\s\S]|(?!\1)[^\\])*\1/i,inside:{"attr-name":{pattern:/^\s*style/i,inside:e.tag.inside},punctuation:/^\s*=\s*['"]|['"]\s*$/,"attr-value":{pattern:/.+/i,inside:n.languages.css}},alias:"language-css"}},e.tag))}(t),t.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/(\b(?:class|interface|extends|implements|trait|instanceof|new)\s+|\bcatch\s+\()[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:if|else|while|do|for|return|in|instanceof|function|new|try|throw|catch|finally|null|break|continue)\b/,boolean:/\b(?:true|false)\b/,function:/\w+(?=\()/,number:/\b0x[\da-f]+\b|(?:\b\d+\.?\d*|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/},t.languages.javascript=t.languages.extend("clike",{"class-name":[t.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])[_$A-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\.(?:prototype|constructor))/,lookbehind:!0}],keyword:[{pattern:/((?:^|})\s*)(?:catch|finally)\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],number:/\b(?:(?:0[xX](?:[\dA-Fa-f](?:_[\dA-Fa-f])?)+|0[bB](?:[01](?:_[01])?)+|0[oO](?:[0-7](?:_[0-7])?)+)n?|(?:\d(?:_\d)?)+n|NaN|Infinity)\b|(?:\b(?:\d(?:_\d)?)+\.?(?:\d(?:_\d)?)*|\B\.(?:\d(?:_\d)?)+)(?:[Ee][+-]?(?:\d(?:_\d)?)+)?/,function:/#?[_$a-zA-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,operator:/--|\+\+|\*\*=?|=>|&&|\|\||[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?[.?]?|[~:]/}),t.languages.javascript["class-name"][0].pattern=/(\b(?:class|interface|extends|implements|instanceof|new)\s+)[\w.\\]+/,t.languages.insertBefore("javascript","keyword",{regex:{pattern:/((?:^|[^$\w\xA0-\uFFFF."'\])\s])\s*)\/(?:\[(?:[^\]\\\r\n]|\\.)*]|\\.|[^/\\\[\r\n])+\/[gimyus]{0,6}(?=(?:\s|\/\*[\s\S]*?\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/,lookbehind:!0,greedy:!0},"function-variable":{pattern:/#?[_$a-zA-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|[_$a-zA-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+[_$A-Za-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*)?\s*\(\s*)(?!\s)(?:[^()]|\([^()]*\))+?(?=\s*\))/,lookbehind:!0,inside:t.languages.javascript},{pattern:/[_$a-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*=>)/i,inside:t.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()]|\([^()]*\))+?(?=\s*\)\s*=>)/,lookbehind:!0,inside:t.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:[_$A-Za-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*\s*)\(\s*)(?!\s)(?:[^()]|\([^()]*\))+?(?=\s*\)\s*\{)/,lookbehind:!0,inside:t.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),t.languages.insertBefore("javascript","string",{"template-string":{pattern:/`(?:\\[\s\S]|\${(?:[^{}]|{(?:[^{}]|{[^}]*})*})+}|(?!\${)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\${(?:[^{}]|{(?:[^{}]|{[^}]*})*})+}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\${|}$/,alias:"punctuation"},rest:t.languages.javascript}},string:/[\s\S]+/}}}),t.languages.markup&&t.languages.markup.tag.addInlined("script","javascript"),t.languages.js=t.languages.javascript,"undefined"!=typeof self&&self.Prism&&self.document&&document.querySelector&&(self.Prism.fileHighlight=function(n){n=n||document;var e={js:"javascript",py:"python",rb:"ruby",ps1:"powershell",psm1:"powershell",sh:"bash",bat:"batch",h:"c",tex:"latex"};Array.prototype.slice.call(n.querySelectorAll("pre[data-src]")).forEach((function(n){if(!n.hasAttribute("data-src-loaded")){for(var i,r=n.getAttribute("data-src"),o=n,a=/\blang(?:uage)?-([\w-]+)\b/i;o&&!a.test(o.className);)o=o.parentNode;if(o&&(i=(n.className.match(a)||[,""])[1]),!i){var s=(r.match(/\.(\w+)$/)||[,""])[1];i=e[s]||s}var l=document.createElement("code");l.className="language-"+i,n.textContent="",l.textContent="Loading…",n.appendChild(l);var u=new XMLHttpRequest;u.open("GET",r,!0),u.onreadystatechange=function(){4==u.readyState&&(u.status<400&&u.responseText?(l.textContent=u.responseText,t.highlightElement(l),n.setAttribute("data-src-loaded","")):u.status>=400?l.textContent="✖ Error "+u.status+" while fetching file: "+u.statusText:l.textContent="✖ Error: File does not exist or is empty")},u.send(null)}}))},document.addEventListener("DOMContentLoaded",(function(){self.Prism.fileHighlight()})))}));Prism.languages.python={comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0},"string-interpolation":{pattern:/(?:f|rf|fr)(?:("""|''')[\s\S]+?\1|("|')(?:\\.|(?!\2)[^\\\r\n])*\2)/i,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^{])(?:{{)*){(?!{)(?:[^{}]|{(?!{)(?:[^{}]|{(?!{)(?:[^{}])+})+})+}/,lookbehind:!0,inside:{"format-spec":{pattern:/(:)[^:(){}]+(?=}$)/,lookbehind:!0},"conversion-option":{pattern:/![sra](?=[:}]$)/,alias:"punctuation"},rest:null}},string:/[\s\S]+/}},"triple-quoted-string":{pattern:/(?:[rub]|rb|br)?("""|''')[\s\S]+?\1/i,greedy:!0,alias:"string"},string:{pattern:/(?:[rub]|rb|br)?("|')(?:\\.|(?!\1)[^\\\r\n])*\1/i,greedy:!0},function:{pattern:/((?:^|\s)def[ \t]+)[a-zA-Z_]\w*(?=\s*\()/g,lookbehind:!0},"class-name":{pattern:/(\bclass\s+)\w+/i,lookbehind:!0},decorator:{pattern:/(^\s*)@\w+(?:\.\w+)*/im,lookbehind:!0,alias:["annotation","punctuation"],inside:{punctuation:/\./}},keyword:/\b(?:and|as|assert|async|await|break|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|nonlocal|not|or|pass|print|raise|return|try|while|with|yield)\b/,builtin:/\b(?:__import__|abs|all|any|apply|ascii|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|memoryview|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\b/,boolean:/\b(?:True|False|None)\b/,number:/(?:\b(?=\d)|\B(?=\.))(?:0[bo])?(?:(?:\d|0x[\da-f])[\da-f]*\.?\d*|\.\d+)(?:e[+-]?\d+)?j?\b/i,operator:/[-+%=]=?|!=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]/,punctuation:/[{}[\];(),.:]/},Prism.languages.python["string-interpolation"].inside.interpolation.inside.rest=Prism.languages.python,Prism.languages.py=Prism.languages.python,Prism.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/(\b(?:class|interface|extends|implements|trait|instanceof|new)\s+|\bcatch\s+\()[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:if|else|while|do|for|return|in|instanceof|function|new|try|throw|catch|finally|null|break|continue)\b/,boolean:/\b(?:true|false)\b/,function:/\w+(?=\()/,number:/\b0x[\da-f]+\b|(?:\b\d+\.?\d*|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/},Prism.languages.lua={comment:/^#!.+|--(?:\[(=*)\[[\s\S]*?\]\1\]|.*)/m,string:{pattern:/(["'])(?:(?!\1)[^\\\r\n]|\\z(?:\r\n|\s)|\\(?:\r\n|[\s\S]))*\1|\[(=*)\[[\s\S]*?\]\2\]/,greedy:!0},number:/\b0x[a-f\d]+\.?[a-f\d]*(?:p[+-]?\d+)?\b|\b\d+(?:\.\B|\.?\d*(?:e[+-]?\d+)?\b)|\B\.\d+(?:e[+-]?\d+)?\b/i,keyword:/\b(?:and|break|do|else|elseif|end|false|for|function|goto|if|in|local|nil|not|or|repeat|return|then|true|until|while)\b/,function:/(?!\d)\w+(?=\s*(?:[({]))/,operator:[/[-+*%^&|#]|\/\/?|<[<=]?|>[>=]?|[=~]=?/,{pattern:/(^|[^.])\.\.(?!\.)/,lookbehind:!0}],punctuation:/[\[\](){},;]|\.+|:+/},function(n){var t="\\b(?:BASH|BASHOPTS|BASH_ALIASES|BASH_ARGC|BASH_ARGV|BASH_CMDS|BASH_COMPLETION_COMPAT_DIR|BASH_LINENO|BASH_REMATCH|BASH_SOURCE|BASH_VERSINFO|BASH_VERSION|COLORTERM|COLUMNS|COMP_WORDBREAKS|DBUS_SESSION_BUS_ADDRESS|DEFAULTS_PATH|DESKTOP_SESSION|DIRSTACK|DISPLAY|EUID|GDMSESSION|GDM_LANG|GNOME_KEYRING_CONTROL|GNOME_KEYRING_PID|GPG_AGENT_INFO|GROUPS|HISTCONTROL|HISTFILE|HISTFILESIZE|HISTSIZE|HOME|HOSTNAME|HOSTTYPE|IFS|INSTANCE|JOB|LANG|LANGUAGE|LC_ADDRESS|LC_ALL|LC_IDENTIFICATION|LC_MEASUREMENT|LC_MONETARY|LC_NAME|LC_NUMERIC|LC_PAPER|LC_TELEPHONE|LC_TIME|LESSCLOSE|LESSOPEN|LINES|LOGNAME|LS_COLORS|MACHTYPE|MAILCHECK|MANDATORY_PATH|NO_AT_BRIDGE|OLDPWD|OPTERR|OPTIND|ORBIT_SOCKETDIR|OSTYPE|PAPERSIZE|PATH|PIPESTATUS|PPID|PS1|PS2|PS3|PS4|PWD|RANDOM|REPLY|SECONDS|SELINUX_INIT|SESSION|SESSIONTYPE|SESSION_MANAGER|SHELL|SHELLOPTS|SHLVL|SSH_AUTH_SOCK|TERM|UID|UPSTART_EVENTS|UPSTART_INSTANCE|UPSTART_JOB|UPSTART_SESSION|USER|WINDOWID|XAUTHORITY|XDG_CONFIG_DIRS|XDG_CURRENT_DESKTOP|XDG_DATA_DIRS|XDG_GREETER_DATA_DIR|XDG_MENU_PREFIX|XDG_RUNTIME_DIR|XDG_SEAT|XDG_SEAT_PATH|XDG_SESSION_DESKTOP|XDG_SESSION_ID|XDG_SESSION_PATH|XDG_SESSION_TYPE|XDG_VTNR|XMODIFIERS)\\b",e={environment:{pattern:RegExp("\\$"+t),alias:"constant"},variable:[{pattern:/\$?\(\([\s\S]+?\)\)/,greedy:!0,inside:{variable:[{pattern:/(^\$\(\([\s\S]+)\)\)/,lookbehind:!0},/^\$\(\(/],number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+\.?\d*|\B\.\d+)(?:[Ee]-?\d+)?/,operator:/--?|-=|\+\+?|\+=|!=?|~|\*\*?|\*=|\/=?|%=?|<<=?|>>=?|<=?|>=?|==?|&&?|&=|\^=?|\|\|?|\|=|\?|:/,punctuation:/\(\(?|\)\)?|,|;/}},{pattern:/\$\((?:\([^)]+\)|[^()])+\)|`[^`]+`/,greedy:!0,inside:{variable:/^\$\(|^`|\)$|`$/}},{pattern:/\$\{[^}]+\}/,greedy:!0,inside:{operator:/:[-=?+]?|[!\/]|##?|%%?|\^\^?|,,?/,punctuation:/[\[\]]/,environment:{pattern:RegExp("(\\{)"+t),lookbehind:!0,alias:"constant"}}},/\$(?:\w+|[#?*!@$])/],entity:/\\(?:[abceEfnrtv\\"]|O?[0-7]{1,3}|x[0-9a-fA-F]{1,2}|u[0-9a-fA-F]{4}|U[0-9a-fA-F]{8})/};n.languages.bash={shebang:{pattern:/^#!\s*\/.*/,alias:"important"},comment:{pattern:/(^|[^"{\\$])#.*/,lookbehind:!0},"function-name":[{pattern:/(\bfunction\s+)\w+(?=(?:\s*\(?:\s*\))?\s*\{)/,lookbehind:!0,alias:"function"},{pattern:/\b\w+(?=\s*\(\s*\)\s*\{)/,alias:"function"}],"for-or-select":{pattern:/(\b(?:for|select)\s+)\w+(?=\s+in\s)/,alias:"variable",lookbehind:!0},"assign-left":{pattern:/(^|[\s;|&]|[<>]\()\w+(?=\+?=)/,inside:{environment:{pattern:RegExp("(^|[\\s;|&]|[<>]\\()"+t),lookbehind:!0,alias:"constant"}},alias:"variable",lookbehind:!0},string:[{pattern:/((?:^|[^<])<<-?\s*)(\w+?)\s*(?:\r?\n|\r)[\s\S]*?(?:\r?\n|\r)\2/,lookbehind:!0,greedy:!0,inside:e},{pattern:/((?:^|[^<])<<-?\s*)(["'])(\w+)\2\s*(?:\r?\n|\r)[\s\S]*?(?:\r?\n|\r)\3/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\](?:\\\\)*)(["'])(?:\\[\s\S]|\$\([^)]+\)|`[^`]+`|(?!\2)[^\\])*\2/,lookbehind:!0,greedy:!0,inside:e}],environment:{pattern:RegExp("\\$?"+t),alias:"constant"},variable:e.variable,function:{pattern:/(^|[\s;|&]|[<>]\()(?:add|apropos|apt|aptitude|apt-cache|apt-get|aspell|automysqlbackup|awk|basename|bash|bc|bconsole|bg|bzip2|cal|cat|cfdisk|chgrp|chkconfig|chmod|chown|chroot|cksum|clear|cmp|column|comm|cp|cron|crontab|csplit|curl|cut|date|dc|dd|ddrescue|debootstrap|df|diff|diff3|dig|dir|dircolors|dirname|dirs|dmesg|du|egrep|eject|env|ethtool|expand|expect|expr|fdformat|fdisk|fg|fgrep|file|find|fmt|fold|format|free|fsck|ftp|fuser|gawk|git|gparted|grep|groupadd|groupdel|groupmod|groups|grub-mkconfig|gzip|halt|head|hg|history|host|hostname|htop|iconv|id|ifconfig|ifdown|ifup|import|install|ip|jobs|join|kill|killall|less|link|ln|locate|logname|logrotate|look|lpc|lpr|lprint|lprintd|lprintq|lprm|ls|lsof|lynx|make|man|mc|mdadm|mkconfig|mkdir|mke2fs|mkfifo|mkfs|mkisofs|mknod|mkswap|mmv|more|most|mount|mtools|mtr|mutt|mv|nano|nc|netstat|nice|nl|nohup|notify-send|npm|nslookup|op|open|parted|passwd|paste|pathchk|ping|pkill|pnpm|popd|pr|printcap|printenv|ps|pushd|pv|quota|quotacheck|quotactl|ram|rar|rcp|reboot|remsync|rename|renice|rev|rm|rmdir|rpm|rsync|scp|screen|sdiff|sed|sendmail|seq|service|sftp|sh|shellcheck|shuf|shutdown|sleep|slocate|sort|split|ssh|stat|strace|su|sudo|sum|suspend|swapon|sync|tac|tail|tar|tee|time|timeout|top|touch|tr|traceroute|tsort|tty|umount|uname|unexpand|uniq|units|unrar|unshar|unzip|update-grub|uptime|useradd|userdel|usermod|users|uudecode|uuencode|v|vdir|vi|vim|virsh|vmstat|wait|watch|wc|wget|whereis|which|who|whoami|write|xargs|xdg-open|yarn|yes|zenity|zip|zsh|zypper)(?=$|[)\s;|&])/,lookbehind:!0},keyword:{pattern:/(^|[\s;|&]|[<>]\()(?:if|then|else|elif|fi|for|while|in|case|esac|function|select|do|done|until)(?=$|[)\s;|&])/,lookbehind:!0},builtin:{pattern:/(^|[\s;|&]|[<>]\()(?:\.|:|break|cd|continue|eval|exec|exit|export|getopts|hash|pwd|readonly|return|shift|test|times|trap|umask|unset|alias|bind|builtin|caller|command|declare|echo|enable|help|let|local|logout|mapfile|printf|read|readarray|source|type|typeset|ulimit|unalias|set|shopt)(?=$|[)\s;|&])/,lookbehind:!0,alias:"class-name"},boolean:{pattern:/(^|[\s;|&]|[<>]\()(?:true|false)(?=$|[)\s;|&])/,lookbehind:!0},"file-descriptor":{pattern:/\B&\d\b/,alias:"important"},operator:{pattern:/\d?<>|>\||\+=|==?|!=?|=~|<<[<-]?|[&\d]?>>|\d?[<>]&?|&[>&]?|\|[&|]?|<=?|>=?/,inside:{"file-descriptor":{pattern:/^\d/,alias:"important"}}},punctuation:/\$?\(\(?|\)\)?|\.\.|[{}[\];\\]/,number:{pattern:/(^|\s)(?:[1-9]\d*|0)(?:[.,]\d+)?\b/,lookbehind:!0}};for(var i=["comment","function-name","for-or-select","assign-left","string","environment","function","keyword","builtin","boolean","file-descriptor","operator","punctuation","number"],r=e.variable[1].inside,o=0;o(?:>=?|=)?|<(?:<=?|=|-)?|:=|\.\.\./,number:/(?:\b0x[a-f\d]+|(?:\b\d+\.?\d*|\B\.\d+)(?:e[-+]?\d+)?)i?/i,string:{pattern:/(["'`])(?:\\[\s\S]|(?!\1)[^\\])*\1/,greedy:!0}}),delete Prism.languages.go["class-name"],function(n){var t=/(?:\\.|[^\\\n\r]|(?:\n|\r\n?)(?!\n|\r\n?))/.source;function e(n,e){return n=n.replace(//g,(function(){return t})),e&&(n=n+"|"+n.replace(/_/g,"\\*")),RegExp(/((?:^|[^\\])(?:\\{2})*)/.source+"(?:"+n+")")}var i=/(?:\\.|``.+?``|`[^`\r\n]+`|[^\\|\r\n`])+/.source,r=/\|?__(?:\|__)+\|?(?:(?:\n|\r\n?)|$)/.source.replace(/__/g,(function(){return i})),o=/\|?[ \t]*:?-{3,}:?[ \t]*(?:\|[ \t]*:?-{3,}:?[ \t]*)+\|?(?:\n|\r\n?)/.source;n.languages.markdown=n.languages.extend("markup",{}),n.languages.insertBefore("markdown","prolog",{blockquote:{pattern:/^>(?:[\t ]*>)*/m,alias:"punctuation"},table:{pattern:RegExp("^"+r+o+"(?:"+r+")*","m"),inside:{"table-data-rows":{pattern:RegExp("^("+r+o+")(?:"+r+")*$"),lookbehind:!0,inside:{"table-data":{pattern:RegExp(i),inside:n.languages.markdown},punctuation:/\|/}},"table-line":{pattern:RegExp("^("+r+")"+o+"$"),lookbehind:!0,inside:{punctuation:/\||:?-{3,}:?/}},"table-header-row":{pattern:RegExp("^"+r+"$"),inside:{"table-header":{pattern:RegExp(i),alias:"important",inside:n.languages.markdown},punctuation:/\|/}}}},code:[{pattern:/((?:^|\n)[ \t]*\n|(?:^|\r\n?)[ \t]*\r\n?)(?: {4}|\t).+(?:(?:\n|\r\n?)(?: {4}|\t).+)*/,lookbehind:!0,alias:"keyword"},{pattern:/``.+?``|`[^`\r\n]+`/,alias:"keyword"},{pattern:/^```[\s\S]*?^```$/m,greedy:!0,inside:{"code-block":{pattern:/^(```.*(?:\n|\r\n?))[\s\S]+?(?=(?:\n|\r\n?)^```$)/m,lookbehind:!0},"code-language":{pattern:/^(```).+/,lookbehind:!0},punctuation:/```/}}],title:[{pattern:/\S.*(?:\n|\r\n?)(?:==+|--+)(?=[ \t]*$)/m,alias:"important",inside:{punctuation:/==+$|--+$/}},{pattern:/(^\s*)#+.+/m,lookbehind:!0,alias:"important",inside:{punctuation:/^#+|#+$/}}],hr:{pattern:/(^\s*)([*-])(?:[\t ]*\2){2,}(?=\s*$)/m,lookbehind:!0,alias:"punctuation"},list:{pattern:/(^\s*)(?:[*+-]|\d+\.)(?=[\t ].)/m,lookbehind:!0,alias:"punctuation"},"url-reference":{pattern:/!?\[[^\]]+\]:[\t ]+(?:\S+|<(?:\\.|[^>\\])+>)(?:[\t ]+(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\)))?/,inside:{variable:{pattern:/^(!?\[)[^\]]+/,lookbehind:!0},string:/(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\))$/,punctuation:/^[\[\]!:]|[<>]/},alias:"url"},bold:{pattern:e(/__(?:(?!_)|_(?:(?!_))+_)+__/.source,!0),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^..)[\s\S]+(?=..$)/,lookbehind:!0,inside:{}},punctuation:/\*\*|__/}},italic:{pattern:e(/_(?:(?!_)|__(?:(?!_))+__)+_/.source,!0),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^.)[\s\S]+(?=.$)/,lookbehind:!0,inside:{}},punctuation:/[*_]/}},strike:{pattern:e(/(~~?)(?:(?!~))+?\2/.source,!1),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^~~?)[\s\S]+(?=\1$)/,lookbehind:!0,inside:{}},punctuation:/~~?/}},url:{pattern:e(/!?\[(?:(?!\]))+\](?:\([^\s)]+(?:[\t ]+"(?:\\.|[^"\\])*")?\)| ?\[(?:(?!\]))+\])/.source,!1),lookbehind:!0,greedy:!0,inside:{variable:{pattern:/(\[)[^\]]+(?=\]$)/,lookbehind:!0},content:{pattern:/(^!?\[)[^\]]+(?=\])/,lookbehind:!0,inside:{}},string:{pattern:/"(?:\\.|[^"\\])*"(?=\)$)/}}}}),["url","bold","italic","strike"].forEach((function(t){["url","bold","italic","strike"].forEach((function(e){t!==e&&(n.languages.markdown[t].inside.content.inside[e]=n.languages.markdown[e])}))})),n.hooks.add("after-tokenize",(function(n){"markdown"!==n.language&&"md"!==n.language||function n(t){if(t&&"string"!=typeof t)for(var e=0,i=t.length;e]?|<(?:<=?|[=:])?|>(?:=|>>?=?)?|==?=?|[~≠≤≥]/,punctuation:/[{}[\];(),.:]/,constant:/\b(?:(?:NaN|Inf)(?:16|32|64)?)\b/};var an=function(n){function t(){return g(this,t),s(this,t,arguments)}return h(t,n),b(t,[{key:"renderContent",value:function(){if(this.languageName=this.getAttribute("language"),this.languageName){var n=on.languages[this.languageName];if(null!=n){var t=this.textContent,e=this.shadowRoot.querySelector("#code-container");if(this.hasAttribute("block")){var i=(t=t.replace(/\n/,"")).match(/\s*/);if(t=(t=t.replace(new RegExp("\n"+i,"g"),"\n")).trim(),e.parentNode instanceof ShadowRoot){var r=document.createElement("pre");this.shadowRoot.removeChild(e),r.appendChild(e),this.shadowRoot.appendChild(r)}}e.className="language-".concat(this.languageName),e.innerHTML=on.highlight(t,n)}else console.warn('Distill does not yet support highlighting your code block in "'.concat(this.languageName,"'."))}else console.warn('You need to provide a language attribute to your block to let us know how to highlight your code; e.g.:\n zeros = np.zeros(shape).')}}])}(d(p("d-code","\n\n\n\n\n'))(HTMLElement))),sn=function(n){function t(){var n;g(this,t),n=s(this,t);return new MutationObserver(n.notify).observe(n,{childList:!0,characterData:!0,subtree:!0}),n}return h(t,n),b(t,[{key:"notify",value:function(){var n=new CustomEvent("onFootnoteChanged",{detail:this,bubbles:!0});document.dispatchEvent(n)}},{key:"connectedCallback",value:function(){var n=this;this.hoverBox=this.root.querySelector("d-hover-box"),window.customElements.whenDefined("d-hover-box").then((function(){n.hoverBox.listen(n)})),t.currentFootnoteId+=1;var e=t.currentFootnoteId.toString();this.root.host.id="d-footnote-"+e;var i="dt-fn-hover-box-"+e;this.hoverBox.id=i;var r=this.root.querySelector("#fn-");r.setAttribute("id","fn-"+e),r.setAttribute("data-hover-ref",i),r.textContent=e}}])}(p("d-footnote",'\n\n\n\n
    \n \n
    \n
    \n\n\n \n\n\n')(HTMLElement));sn.currentFootnoteId=0;var ln=function(n){function t(){return g(this,t),s(this,t,arguments)}return h(t,n),b(t,[{key:"connectedCallback",value:function(){u(t,"connectedCallback",this,3)([]),this.list=this.root.querySelector("ol"),this.root.style.display="none"}},{key:"footnotes",set:function(n){if(this.list.innerHTML="",n.length){this.root.style.display="";var t,e=a(n);try{for(e.s();!(t=e.n()).done;){var i=t.value,r=document.createElement("li");r.id=i.id+"-listing",r.innerHTML=i.innerHTML;var o=document.createElement("a");o.setAttribute("class","footnote-backlink"),o.setAttribute("target","_self"),o.textContent="[↩]",o.href="#"+i.id,r.appendChild(o),this.list.appendChild(r)}}catch(n){e.e(n)}finally{e.f()}}else this.root.style.display="none"}}])}(p("d-footnote-list","\n\n\n

    Footnotes

    \n
      \n",!1)(HTMLElement)),un=function(n){function t(){return g(this,t),s(this,t)}return h(t,n),b(t,[{key:"connectedCallback",value:function(){}},{key:"listen",value:function(n){this.bindDivEvents(this),this.bindTriggerEvents(n)}},{key:"bindDivEvents",value:function(n){var t=this;n.addEventListener("mouseover",(function(){t.visible||t.showAtNode(n),t.stopTimeout()})),n.addEventListener("mouseout",(function(){t.extendTimeout(500)})),n.addEventListener("touchstart",(function(n){n.stopPropagation()}),{passive:!0}),document.body.addEventListener("touchstart",(function(){t.hide()}),{passive:!0})}},{key:"bindTriggerEvents",value:function(n){var t=this;n.addEventListener("mouseover",(function(){t.visible||t.showAtNode(n),t.stopTimeout()})),n.addEventListener("mouseout",(function(){t.extendTimeout(300)})),n.addEventListener("touchstart",(function(e){t.visible?t.hide():t.showAtNode(n),e.stopPropagation()}),{passive:!0})}},{key:"show",value:function(n){this.visible=!0,this.style.display="block",this.style.top=Math.round(n[1]+10)+"px"}},{key:"showAtNode",value:function(n){var t=n.getBoundingClientRect();this.show([n.offsetLeft+t.width,n.offsetTop+t.height])}},{key:"hide",value:function(){this.visible=!1,this.style.display="none",this.stopTimeout()}},{key:"stopTimeout",value:function(){this.timeout&&clearTimeout(this.timeout)}},{key:"extendTimeout",value:function(n){var t=this;this.stopTimeout(),this.timeout=setTimeout((function(){t.hide()}),n)}}])}(p("d-hover-box",'\n\n\n
      \n
      \n \n
      \n
      \n')(HTMLElement)),cn=function(n){function t(){return g(this,t),s(this,t,arguments)}return h(t,n),b(t,null,[{key:"is",get:function(){return"d-title"}}])}(o(HTMLElement)),dn=function(n){function t(){return g(this,t),s(this,t,arguments)}return h(t,n),b(t)}(p("d-references","\n\n",!1)(HTMLElement)),hn=function(n){function t(){return g(this,t),s(this,t,arguments)}return h(t,n),b(t,[{key:"connectedCallback",value:function(){var n=this;this.getAttribute("prerendered")||(window.onload=function(){var t=document.querySelector("d-article").querySelectorAll("h2, h3");!function(n,t){var e,i='\n \n \n

      Table of contents

      \n
        ',r=a(t);try{for(r.s();!(e=r.n()).done;){var o=e.value,s="D-TITLE"==o.parentElement.tagName,l=o.getAttribute("no-toc");if(!s&&!l){var u=o.textContent,c='
      • '+u+"
      • ";"H3"==o.tagName?c="
          "+c+"
        ":c+="
        ",i+=c}}}catch(n){r.e(n)}finally{r.f()}i+="
      ",n.innerHTML=i}(n,t)})}}],[{key:"is",get:function(){return"d-toc"}}])}(o(HTMLElement));var pn=function(n){function t(){var n;return g(this,t),(n=s(this,t))._ready=!1,n._onscreen=!1,n._offscreen=!0,n}return h(t,n),b(t,[{key:"connectedCallback",value:function(){this.loadsWhileScrolling=this.hasAttribute("loadsWhileScrolling"),t.marginObserver.observe(this),t.directObserver.observe(this)}},{key:"disconnectedCallback",value:function(){t.marginObserver.unobserve(this),t.directObserver.unobserve(this)}},{key:"addEventListener",value:function(n,e){u(t,"addEventListener",this,3)([n,e]),"ready"===n&&-1!==t.readyQueue.indexOf(this)&&(this._ready=!1,t.runReadyQueue()),"onscreen"===n&&this.onscreen()}},{key:"ready",value:function(){this._ready=!0,t.marginObserver.unobserve(this);var n=new CustomEvent("ready");this.dispatchEvent(n)}},{key:"onscreen",value:function(){this._onscreen=!0,this._offscreen=!1;var n=new CustomEvent("onscreen");this.dispatchEvent(n)}},{key:"offscreen",value:function(){this._onscreen=!1,this._offscreen=!0;var n=new CustomEvent("offscreen");this.dispatchEvent(n)}}],[{key:"is",get:function(){return"d-figure"}},{key:"readyQueue",get:function(){return t._readyQueue||(t._readyQueue=[]),t._readyQueue}},{key:"addToReadyQueue",value:function(n){-1===t.readyQueue.indexOf(n)&&(t.readyQueue.push(n),t.runReadyQueue())}},{key:"runReadyQueue",value:function(){var n=t.readyQueue.sort((function(n,t){return n._seenOnScreen-t._seenOnScreen})).filter((function(n){return!n._ready})).pop();n&&(n.ready(),requestAnimationFrame(t.runReadyQueue))}},{key:"marginObserver",get:function(){if(!t._marginObserver){var n=window.innerHeight,e=Math.floor(2*n),i={rootMargin:e+"px 0px "+e+"px 0px",threshold:.01},r=t.didObserveMarginIntersection,o=new IntersectionObserver(r,i);t._marginObserver=o}return t._marginObserver}},{key:"didObserveMarginIntersection",value:function(n){var e,i=a(n);try{for(i.s();!(e=i.n()).done;){var r=e.value,o=r.target;r.isIntersecting&&!o._ready&&t.addToReadyQueue(o)}}catch(n){i.e(n)}finally{i.f()}}},{key:"directObserver",get:function(){return t._directObserver||(t._directObserver=new IntersectionObserver(t.didObserveDirectIntersection,{rootMargin:"0px",threshold:[0,1]})),t._directObserver}},{key:"didObserveDirectIntersection",value:function(n){var t,e=a(n);try{for(e.s();!(t=e.n()).done;){var i=t.value,r=i.target;i.isIntersecting?(r._seenOnScreen=new Date,r._offscreen&&r.onscreen()):r._onscreen&&r.offscreen()}}catch(n){e.e(n)}finally{e.f()}}}])}(o(HTMLElement));if("undefined"!=typeof window){var fn;pn.isScrolling=!1;window.addEventListener("scroll",(function(){pn.isScrolling=!0,clearTimeout(fn),fn=setTimeout((function(){pn.isScrolling=!1,pn.runReadyQueue()}),500)}),!0)}var gn=function(n){function t(){return g(this,t),s(this,t,arguments)}return h(t,n),b(t,[{key:"connectedCallback",value:function(){var n=this;this.shouldRemoveSelf()?this.parentElement.removeChild(this):this.root.querySelector("#interstitial-password-input").oninput=function(t){return n.passwordChanged(t)}}},{key:"passwordChanged",value:function(n){n.target.value===this.password&&(console.log("Correct password entered."),this.parentElement.removeChild(this),"undefined"!=typeof Storage&&(console.log("Saved that correct password was entered."),localStorage.setItem(this.localStorageIdentifier(),"true")))}},{key:"shouldRemoveSelf",value:function(){return window&&"distill.pub"===window.location.hostname?(console.warn("Interstitial found on production, hiding it."),!0):"undefined"!=typeof Storage&&"true"===localStorage.getItem(this.localStorageIdentifier())&&(console.log("Loaded that correct password was entered before; skipping interstitial."),!0)}},{key:"localStorageIdentifier",value:function(){return"distill-drafts"+(window?window.location.pathname:"-")+"interstitial-password-correct"}}])}(p("d-interstitial",'\n\n\n
      \n
      \n

      This article is in review.

      \n

      Do not share this URL or the contents of this article. Thank you!

      \n \n

      Enter the password we shared with you as part of the review process to view the article.

      \n
      \n
      \n')(HTMLElement));function mn(n,t){return nt?1:n>=t?0:NaN}var bn,yn,vn=(bn=mn,1===bn.length&&(yn=bn,bn=function(n,t){return mn(yn(n),t)}),{left:function(n,t,e,i){for(null==e&&(e=0),null==i&&(i=n.length);e>>1;bn(n[r],t)<0?e=r+1:i=r}return e},right:function(n,t,e,i){for(null==e&&(e=0),null==i&&(i=n.length);e>>1;bn(n[r],t)>0?i=r:e=r+1}return e}}).right;var wn=Math.sqrt(50),xn=Math.sqrt(10),kn=Math.sqrt(2);function Sn(n,t,e){var i=(t-n)/Math.max(0,e),r=Math.floor(Math.log(i)/Math.LN10),o=i/Math.pow(10,r);return r>=0?(o>=wn?10:o>=xn?5:o>=kn?2:1)*Math.pow(10,r):-Math.pow(10,-r)/(o>=wn?10:o>=xn?5:o>=kn?2:1)}function Mn(n,t){switch(arguments.length){case 0:break;case 1:this.range(n);break;default:this.range(t).domain(n)}return this}function Tn(n,t,e){n.prototype=t.prototype=e,e.constructor=n}function _n(n,t){var e=Object.create(n.prototype);for(var i in t)e[i]=t[i];return e}function An(){}var En=.7,Cn=1/En,Nn="\\s*([+-]?\\d+)\\s*",Ln="\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)\\s*",On="\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)%\\s*",Dn=/^#([0-9a-f]{3,8})$/,In=new RegExp("^rgb\\("+[Nn,Nn,Nn]+"\\)$"),Fn=new RegExp("^rgb\\("+[On,On,On]+"\\)$"),Rn=new RegExp("^rgba\\("+[Nn,Nn,Nn,Ln]+"\\)$"),Un=new RegExp("^rgba\\("+[On,On,On,Ln]+"\\)$"),Pn=new RegExp("^hsl\\("+[Ln,On,On]+"\\)$"),Hn=new RegExp("^hsla\\("+[Ln,On,On,Ln]+"\\)$"),jn={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 zn(){return this.rgb().formatHex()}function $n(){return this.rgb().formatRgb()}function qn(n){var t,e;return n=(n+"").trim().toLowerCase(),(t=Dn.exec(n))?(e=t[1].length,t=parseInt(t[1],16),6===e?Bn(t):3===e?new Vn(t>>8&15|t>>4&240,t>>4&15|240&t,(15&t)<<4|15&t,1):8===e?Yn(t>>24&255,t>>16&255,t>>8&255,(255&t)/255):4===e?Yn(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|240&t,((15&t)<<4|15&t)/255):null):(t=In.exec(n))?new Vn(t[1],t[2],t[3],1):(t=Fn.exec(n))?new Vn(255*t[1]/100,255*t[2]/100,255*t[3]/100,1):(t=Rn.exec(n))?Yn(t[1],t[2],t[3],t[4]):(t=Un.exec(n))?Yn(255*t[1]/100,255*t[2]/100,255*t[3]/100,t[4]):(t=Pn.exec(n))?Qn(t[1],t[2]/100,t[3]/100,1):(t=Hn.exec(n))?Qn(t[1],t[2]/100,t[3]/100,t[4]):jn.hasOwnProperty(n)?Bn(jn[n]):"transparent"===n?new Vn(NaN,NaN,NaN,0):null}function Bn(n){return new Vn(n>>16&255,n>>8&255,255&n,1)}function Yn(n,t,e,i){return i<=0&&(n=t=e=NaN),new Vn(n,t,e,i)}function Wn(n){return n instanceof An||(n=qn(n)),n?new Vn((n=n.rgb()).r,n.g,n.b,n.opacity):new Vn}function Gn(n,t,e,i){return 1===arguments.length?Wn(n):new Vn(n,t,e,null==i?1:i)}function Vn(n,t,e,i){this.r=+n,this.g=+t,this.b=+e,this.opacity=+i}function Kn(){return"#"+Zn(this.r)+Zn(this.g)+Zn(this.b)}function Xn(){var n=this.opacity;return(1===(n=isNaN(n)?1:Math.max(0,Math.min(1,n)))?"rgb(":"rgba(")+Math.max(0,Math.min(255,Math.round(this.r)||0))+", "+Math.max(0,Math.min(255,Math.round(this.g)||0))+", "+Math.max(0,Math.min(255,Math.round(this.b)||0))+(1===n?")":", "+n+")")}function Zn(n){return((n=Math.max(0,Math.min(255,Math.round(n)||0)))<16?"0":"")+n.toString(16)}function Qn(n,t,e,i){return i<=0?n=t=e=NaN:e<=0||e>=1?n=t=NaN:t<=0&&(n=NaN),new nt(n,t,e,i)}function Jn(n){if(n instanceof nt)return new nt(n.h,n.s,n.l,n.opacity);if(n instanceof An||(n=qn(n)),!n)return new nt;if(n instanceof nt)return n;var t=(n=n.rgb()).r/255,e=n.g/255,i=n.b/255,r=Math.min(t,e,i),o=Math.max(t,e,i),a=NaN,s=o-r,l=(o+r)/2;return s?(a=t===o?(e-i)/s+6*(e0&&l<1?0:a,new nt(a,s,l,n.opacity)}function nt(n,t,e,i){this.h=+n,this.s=+t,this.l=+e,this.opacity=+i}function tt(n,t,e){return 255*(n<60?t+(e-t)*n/60:n<180?e:n<240?t+(e-t)*(240-n)/60:t)}Tn(An,qn,{copy:function(n){return Object.assign(new this.constructor,this,n)},displayable:function(){return this.rgb().displayable()},hex:zn,formatHex:zn,formatHsl:function(){return Jn(this).formatHsl()},formatRgb:$n,toString:$n}),Tn(Vn,Gn,_n(An,{brighter:function(n){return n=null==n?Cn:Math.pow(Cn,n),new Vn(this.r*n,this.g*n,this.b*n,this.opacity)},darker:function(n){return n=null==n?En:Math.pow(En,n),new Vn(this.r*n,this.g*n,this.b*n,this.opacity)},rgb:function(){return this},displayable:function(){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:Kn,formatHex:Kn,formatRgb:Xn,toString:Xn})),Tn(nt,(function(n,t,e,i){return 1===arguments.length?Jn(n):new nt(n,t,e,null==i?1:i)}),_n(An,{brighter:function(n){return n=null==n?Cn:Math.pow(Cn,n),new nt(this.h,this.s,this.l*n,this.opacity)},darker:function(n){return n=null==n?En:Math.pow(En,n),new nt(this.h,this.s,this.l*n,this.opacity)},rgb:function(){var n=this.h%360+360*(this.h<0),t=isNaN(n)||isNaN(this.s)?0:this.s,e=this.l,i=e+(e<.5?e:1-e)*t,r=2*e-i;return new Vn(tt(n>=240?n-240:n+120,r,i),tt(n,r,i),tt(n<120?n+240:n-120,r,i),this.opacity)},displayable:function(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl:function(){var n=this.opacity;return(1===(n=isNaN(n)?1:Math.max(0,Math.min(1,n)))?"hsl(":"hsla(")+(this.h||0)+", "+100*(this.s||0)+"%, "+100*(this.l||0)+"%"+(1===n?")":", "+n+")")}}));var et=Math.PI/180,it=180/Math.PI,rt=.96422,ot=.82521,at=4/29,st=6/29,lt=3*st*st,ut=st*st*st;function ct(n){if(n instanceof dt)return new dt(n.l,n.a,n.b,n.opacity);if(n instanceof mt)return bt(n);n instanceof Vn||(n=Wn(n));var t,e,i=gt(n.r),r=gt(n.g),o=gt(n.b),a=ht((.2225045*i+.7168786*r+.0606169*o)/1);return i===r&&r===o?t=e=a:(t=ht((.4360747*i+.3850649*r+.1430804*o)/rt),e=ht((.0139322*i+.0971045*r+.7141733*o)/ot)),new dt(116*a-16,500*(t-a),200*(a-e),n.opacity)}function dt(n,t,e,i){this.l=+n,this.a=+t,this.b=+e,this.opacity=+i}function ht(n){return n>ut?Math.pow(n,1/3):n/lt+at}function pt(n){return n>st?n*n*n:lt*(n-at)}function ft(n){return 255*(n<=.0031308?12.92*n:1.055*Math.pow(n,1/2.4)-.055)}function gt(n){return(n/=255)<=.04045?n/12.92:Math.pow((n+.055)/1.055,2.4)}function mt(n,t,e,i){this.h=+n,this.c=+t,this.l=+e,this.opacity=+i}function bt(n){if(isNaN(n.h))return new dt(n.l,0,0,n.opacity);var t=n.h*et;return new dt(n.l,Math.cos(t)*n.c,Math.sin(t)*n.c,n.opacity)}Tn(dt,(function(n,t,e,i){return 1===arguments.length?ct(n):new dt(n,t,e,null==i?1:i)}),_n(An,{brighter:function(n){return new dt(this.l+18*(null==n?1:n),this.a,this.b,this.opacity)},darker:function(n){return new dt(this.l-18*(null==n?1:n),this.a,this.b,this.opacity)},rgb:function(){var n=(this.l+16)/116,t=isNaN(this.a)?n:n+this.a/500,e=isNaN(this.b)?n:n-this.b/200;return new Vn(ft(3.1338561*(t=rt*pt(t))-1.6168667*(n=1*pt(n))-.4906146*(e=ot*pt(e))),ft(-.9787684*t+1.9161415*n+.033454*e),ft(.0719453*t-.2289914*n+1.4052427*e),this.opacity)}})),Tn(mt,(function(n,t,e,i){return 1===arguments.length?function(n){if(n instanceof mt)return new mt(n.h,n.c,n.l,n.opacity);if(n instanceof dt||(n=ct(n)),0===n.a&&0===n.b)return new mt(NaN,0o&&(r=t.slice(o,r),s[a]?s[a]+=r:s[++a]=r),(e=e[0])===(i=i[0])?s[a]?s[a]+=i:s[++a]=i:(s[++a]=null,l.push({i:a,x:It(e,i)})),o=Ut.lastIndex;return ot&&(e=n,n=t,t=e),u=function(e){return Math.max(n,Math.min(t,e))}),i=l>2?Wt:Yt,r=o=null,d}function d(t){return isNaN(t=+t)?e:(r||(r=i(a.map(n),s,l)))(n(u(t)))}return d.invert=function(e){return u(t((o||(o=i(s,a.map(n),It)))(e)))},d.domain=function(n){return arguments.length?(a=Array.from(n,zt),c()):a.slice()},d.range=function(n){return arguments.length?(s=Array.from(n),c()):s.slice()},d.rangeRound=function(n){return s=Array.from(n),l=jt,c()},d.clamp=function(n){return arguments.length?(u=!!n||qt,c()):u!==qt},d.interpolate=function(n){return arguments.length?(l=n,c()):l},d.unknown=function(n){return arguments.length?(e=n,d):e},function(e,i){return n=e,t=i,c()}}function Vt(n,t){if((e=(n=t?n.toExponential(t-1):n.toExponential()).indexOf("e"))<0)return null;var e,i=n.slice(0,e);return[i.length>1?i[0]+i.slice(2):i,+n.slice(e+1)]}function Kt(n){return(n=Vt(Math.abs(n)))?n[1]:NaN}var Xt,Zt=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function Qt(n){if(!(t=Zt.exec(n)))throw new Error("invalid format: "+n);var t;return new Jt({fill:t[1],align:t[2],sign:t[3],symbol:t[4],zero:t[5],width:t[6],comma:t[7],precision:t[8]&&t[8].slice(1),trim:t[9],type:t[10]})}function Jt(n){this.fill=void 0===n.fill?" ":n.fill+"",this.align=void 0===n.align?">":n.align+"",this.sign=void 0===n.sign?"-":n.sign+"",this.symbol=void 0===n.symbol?"":n.symbol+"",this.zero=!!n.zero,this.width=void 0===n.width?void 0:+n.width,this.comma=!!n.comma,this.precision=void 0===n.precision?void 0:+n.precision,this.trim=!!n.trim,this.type=void 0===n.type?"":n.type+""}function ne(n,t){var e=Vt(n,t);if(!e)return n+"";var i=e[0],r=e[1];return r<0?"0."+new Array(-r).join("0")+i:i.length>r+1?i.slice(0,r+1)+"."+i.slice(r+1):i+new Array(r-i.length+2).join("0")}Qt.prototype=Jt.prototype,Jt.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 te={"%":function(n,t){return(100*n).toFixed(t)},b:function(n){return Math.round(n).toString(2)},c:function(n){return n+""},d:function(n){return Math.round(n).toString(10)},e:function(n,t){return n.toExponential(t)},f:function(n,t){return n.toFixed(t)},g:function(n,t){return n.toPrecision(t)},o:function(n){return Math.round(n).toString(8)},p:function(n,t){return ne(100*n,t)},r:ne,s:function(n,t){var e=Vt(n,t);if(!e)return n+"";var i=e[0],r=e[1],o=r-(Xt=3*Math.max(-8,Math.min(8,Math.floor(r/3))))+1,a=i.length;return o===a?i:o>a?i+new Array(o-a+1).join("0"):o>0?i.slice(0,o)+"."+i.slice(o):"0."+new Array(1-o).join("0")+Vt(n,Math.max(0,t+o-1))[0]},X:function(n){return Math.round(n).toString(16).toUpperCase()},x:function(n){return Math.round(n).toString(16)}};function ee(n){return n}var ie,re,oe,ae=Array.prototype.map,se=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function le(n){var t,e,i=void 0===n.grouping||void 0===n.thousands?ee:(t=ae.call(n.grouping,Number),e=n.thousands+"",function(n,i){for(var r=n.length,o=[],a=0,s=t[0],l=0;r>0&&s>0&&(l+s+1>i&&(s=Math.max(1,i-l)),o.push(n.substring(r-=s,r+s)),!((l+=s+1)>i));)s=t[a=(a+1)%t.length];return o.reverse().join(e)}),r=void 0===n.currency?"":n.currency[0]+"",o=void 0===n.currency?"":n.currency[1]+"",a=void 0===n.decimal?".":n.decimal+"",s=void 0===n.numerals?ee:function(n){return function(t){return t.replace(/[0-9]/g,(function(t){return n[+t]}))}}(ae.call(n.numerals,String)),l=void 0===n.percent?"%":n.percent+"",u=void 0===n.minus?"-":n.minus+"",c=void 0===n.nan?"NaN":n.nan+"";function d(n){var t=(n=Qt(n)).fill,e=n.align,d=n.sign,h=n.symbol,p=n.zero,f=n.width,g=n.comma,m=n.precision,b=n.trim,y=n.type;"n"===y?(g=!0,y="g"):te[y]||(void 0===m&&(m=12),b=!0,y="g"),(p||"0"===t&&"="===e)&&(p=!0,t="0",e="=");var v="$"===h?r:"#"===h&&/[boxX]/.test(y)?"0"+y.toLowerCase():"",w="$"===h?o:/[%p]/.test(y)?l:"",x=te[y],k=/[defgprs%]/.test(y);function S(n){var r,o,l,h=v,S=w;if("c"===y)S=x(n)+S,n="";else{var M=(n=+n)<0||1/n<0;if(n=isNaN(n)?c:x(Math.abs(n),m),b&&(n=function(n){n:for(var t,e=n.length,i=1,r=-1;i0&&(r=0)}return r>0?n.slice(0,r)+n.slice(t+1):n}(n)),M&&0==+n&&"+"!==d&&(M=!1),h=(M?"("===d?d:u:"-"===d||"("===d?"":d)+h,S=("s"===y?se[8+Xt/3]:"")+S+(M&&"("===d?")":""),k)for(r=-1,o=n.length;++r(l=n.charCodeAt(r))||l>57){S=(46===l?a+n.slice(r+1):n.slice(r))+S,n=n.slice(0,r);break}}g&&!p&&(n=i(n,1/0));var T=h.length+n.length+S.length,_=T>1)+h+n+S+_.slice(T);break;default:n=_+h+n+S}return s(n)}return m=void 0===m?6:/[gprs]/.test(y)?Math.max(1,Math.min(21,m)):Math.max(0,Math.min(20,m)),S.toString=function(){return n+""},S}return{format:d,formatPrefix:function(n,t){var e=d(((n=Qt(n)).type="f",n)),i=3*Math.max(-8,Math.min(8,Math.floor(Kt(t)/3))),r=Math.pow(10,-i),o=se[8+i/3];return function(n){return e(r*n)+o}}}}function ue(n,t,e,i){var r,o=function(n,t,e){var i=Math.abs(t-n)/Math.max(0,e),r=Math.pow(10,Math.floor(Math.log(i)/Math.LN10)),o=i/r;return o>=wn?r*=10:o>=xn?r*=5:o>=kn&&(r*=2),t0)return[n];if((i=t0)for(n=Math.ceil(n/a),t=Math.floor(t/a),o=new Array(r=Math.ceil(t-n+1));++s0?i=Sn(s=Math.floor(s/i)*i,l=Math.ceil(l/i)*i,e):i<0&&(i=Sn(s=Math.ceil(s*i)/i,l=Math.floor(l*i)/i,e)),i>0?(r[o]=Math.floor(s/i)*i,r[a]=Math.ceil(l/i)*i,t(r)):i<0&&(r[o]=Math.ceil(s*i)/i,r[a]=Math.floor(l*i)/i,t(r)),n},n}function de(){var n=Gt()(qt,qt);return n.copy=function(){return t=n,de().domain(t.domain()).range(t.range()).interpolate(t.interpolate()).clamp(t.clamp()).unknown(t.unknown());var t},Mn.apply(n,arguments),ce(n)}ie=le({decimal:".",thousands:",",grouping:[3],currency:["$",""],minus:"-"}),re=ie.format,oe=ie.formatPrefix;var he=new Date,pe=new Date;function fe(n,t,e,i){function r(t){return n(t=0===arguments.length?new Date:new Date(+t)),t}return r.floor=function(t){return n(t=new Date(+t)),t},r.ceil=function(e){return n(e=new Date(e-1)),t(e,1),n(e),e},r.round=function(n){var t=r(n),e=r.ceil(n);return n-t0))return s;do{s.push(a=new Date(+e)),t(e,o),n(e)}while(a=t)for(;n(t),!e(t);)t.setTime(t-1)}),(function(n,i){if(n>=n)if(i<0)for(;++i<=0;)for(;t(n,-1),!e(n););else for(;--i>=0;)for(;t(n,1),!e(n););}))},e&&(r.count=function(t,i){return he.setTime(+t),pe.setTime(+i),n(he),n(pe),Math.floor(e(he,pe))},r.every=function(n){return n=Math.floor(n),isFinite(n)&&n>0?n>1?r.filter(i?function(t){return i(t)%n==0}:function(t){return r.count(0,t)%n==0}):r:null}),r}var ge=fe((function(){}),(function(n,t){n.setTime(+n+t)}),(function(n,t){return t-n}));ge.every=function(n){return n=Math.floor(n),isFinite(n)&&n>0?n>1?fe((function(t){t.setTime(Math.floor(t/n)*n)}),(function(t,e){t.setTime(+t+e*n)}),(function(t,e){return(e-t)/n})):ge:null};var me=1e3,be=6e4,ye=36e5,ve=864e5,we=6048e5,xe=(fe((function(n){n.setTime(n-n.getMilliseconds())}),(function(n,t){n.setTime(+n+t*me)}),(function(n,t){return(t-n)/me}),(function(n){return n.getUTCSeconds()})),fe((function(n){n.setTime(n-n.getMilliseconds()-n.getSeconds()*me)}),(function(n,t){n.setTime(+n+t*be)}),(function(n,t){return(t-n)/be}),(function(n){return n.getMinutes()})),fe((function(n){n.setTime(n-n.getMilliseconds()-n.getSeconds()*me-n.getMinutes()*be)}),(function(n,t){n.setTime(+n+t*ye)}),(function(n,t){return(t-n)/ye}),(function(n){return n.getHours()})),fe((function(n){n.setHours(0,0,0,0)}),(function(n,t){n.setDate(n.getDate()+t)}),(function(n,t){return(t-n-(t.getTimezoneOffset()-n.getTimezoneOffset())*be)/ve}),(function(n){return n.getDate()-1})));function ke(n){return fe((function(t){t.setDate(t.getDate()-(t.getDay()+7-n)%7),t.setHours(0,0,0,0)}),(function(n,t){n.setDate(n.getDate()+7*t)}),(function(n,t){return(t-n-(t.getTimezoneOffset()-n.getTimezoneOffset())*be)/we}))}var Se=ke(0),Me=ke(1),Te=(ke(2),ke(3),ke(4)),_e=(ke(5),ke(6),fe((function(n){n.setDate(1),n.setHours(0,0,0,0)}),(function(n,t){n.setMonth(n.getMonth()+t)}),(function(n,t){return t.getMonth()-n.getMonth()+12*(t.getFullYear()-n.getFullYear())}),(function(n){return n.getMonth()})),fe((function(n){n.setMonth(0,1),n.setHours(0,0,0,0)}),(function(n,t){n.setFullYear(n.getFullYear()+t)}),(function(n,t){return t.getFullYear()-n.getFullYear()}),(function(n){return n.getFullYear()})));_e.every=function(n){return isFinite(n=Math.floor(n))&&n>0?fe((function(t){t.setFullYear(Math.floor(t.getFullYear()/n)*n),t.setMonth(0,1),t.setHours(0,0,0,0)}),(function(t,e){t.setFullYear(t.getFullYear()+e*n)})):null},fe((function(n){n.setUTCSeconds(0,0)}),(function(n,t){n.setTime(+n+t*be)}),(function(n,t){return(t-n)/be}),(function(n){return n.getUTCMinutes()})),fe((function(n){n.setUTCMinutes(0,0,0)}),(function(n,t){n.setTime(+n+t*ye)}),(function(n,t){return(t-n)/ye}),(function(n){return n.getUTCHours()}));var Ae=fe((function(n){n.setUTCHours(0,0,0,0)}),(function(n,t){n.setUTCDate(n.getUTCDate()+t)}),(function(n,t){return(t-n)/ve}),(function(n){return n.getUTCDate()-1}));function Ee(n){return fe((function(t){t.setUTCDate(t.getUTCDate()-(t.getUTCDay()+7-n)%7),t.setUTCHours(0,0,0,0)}),(function(n,t){n.setUTCDate(n.getUTCDate()+7*t)}),(function(n,t){return(t-n)/we}))}var Ce=Ee(0),Ne=Ee(1),Le=(Ee(2),Ee(3),Ee(4)),Oe=(Ee(5),Ee(6),fe((function(n){n.setUTCDate(1),n.setUTCHours(0,0,0,0)}),(function(n,t){n.setUTCMonth(n.getUTCMonth()+t)}),(function(n,t){return t.getUTCMonth()-n.getUTCMonth()+12*(t.getUTCFullYear()-n.getUTCFullYear())}),(function(n){return n.getUTCMonth()})),fe((function(n){n.setUTCMonth(0,1),n.setUTCHours(0,0,0,0)}),(function(n,t){n.setUTCFullYear(n.getUTCFullYear()+t)}),(function(n,t){return t.getUTCFullYear()-n.getUTCFullYear()}),(function(n){return n.getUTCFullYear()})));function De(n){if(0<=n.y&&n.y<100){var t=new Date(-1,n.m,n.d,n.H,n.M,n.S,n.L);return t.setFullYear(n.y),t}return new Date(n.y,n.m,n.d,n.H,n.M,n.S,n.L)}function Ie(n){if(0<=n.y&&n.y<100){var t=new Date(Date.UTC(-1,n.m,n.d,n.H,n.M,n.S,n.L));return t.setUTCFullYear(n.y),t}return new Date(Date.UTC(n.y,n.m,n.d,n.H,n.M,n.S,n.L))}function Fe(n,t,e){return{y:n,m:t,d:e,H:0,M:0,S:0,L:0}}Oe.every=function(n){return isFinite(n=Math.floor(n))&&n>0?fe((function(t){t.setUTCFullYear(Math.floor(t.getUTCFullYear()/n)*n),t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)}),(function(t,e){t.setUTCFullYear(t.getUTCFullYear()+e*n)})):null};var Re,Ue,Pe,He={"-":"",_:" ",0:"0"},je=/^\s*\d+/,ze=/^%/,$e=/[\\^$*+?|[\]().{}]/g;function qe(n,t,e){var i=n<0?"-":"",r=(i?-n:n)+"",o=r.length;return i+(o68?1900:2e3),e+i[0].length):-1}function ni(n,t,e){var i=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(t.slice(e,e+6));return i?(n.Z=i[1]?0:-(i[2]+(i[3]||"00")),e+i[0].length):-1}function ti(n,t,e){var i=je.exec(t.slice(e,e+1));return i?(n.q=3*i[0]-3,e+i[0].length):-1}function ei(n,t,e){var i=je.exec(t.slice(e,e+2));return i?(n.m=i[0]-1,e+i[0].length):-1}function ii(n,t,e){var i=je.exec(t.slice(e,e+2));return i?(n.d=+i[0],e+i[0].length):-1}function ri(n,t,e){var i=je.exec(t.slice(e,e+3));return i?(n.m=0,n.d=+i[0],e+i[0].length):-1}function oi(n,t,e){var i=je.exec(t.slice(e,e+2));return i?(n.H=+i[0],e+i[0].length):-1}function ai(n,t,e){var i=je.exec(t.slice(e,e+2));return i?(n.M=+i[0],e+i[0].length):-1}function si(n,t,e){var i=je.exec(t.slice(e,e+2));return i?(n.S=+i[0],e+i[0].length):-1}function li(n,t,e){var i=je.exec(t.slice(e,e+3));return i?(n.L=+i[0],e+i[0].length):-1}function ui(n,t,e){var i=je.exec(t.slice(e,e+6));return i?(n.L=Math.floor(i[0]/1e3),e+i[0].length):-1}function ci(n,t,e){var i=ze.exec(t.slice(e,e+1));return i?e+i[0].length:-1}function di(n,t,e){var i=je.exec(t.slice(e));return i?(n.Q=+i[0],e+i[0].length):-1}function hi(n,t,e){var i=je.exec(t.slice(e));return i?(n.s=+i[0],e+i[0].length):-1}function pi(n,t){return qe(n.getDate(),t,2)}function fi(n,t){return qe(n.getHours(),t,2)}function gi(n,t){return qe(n.getHours()%12||12,t,2)}function mi(n,t){return qe(1+xe.count(_e(n),n),t,3)}function bi(n,t){return qe(n.getMilliseconds(),t,3)}function yi(n,t){return bi(n,t)+"000"}function vi(n,t){return qe(n.getMonth()+1,t,2)}function wi(n,t){return qe(n.getMinutes(),t,2)}function xi(n,t){return qe(n.getSeconds(),t,2)}function ki(n){var t=n.getDay();return 0===t?7:t}function Si(n,t){return qe(Se.count(_e(n)-1,n),t,2)}function Mi(n,t){var e=n.getDay();return n=e>=4||0===e?Te(n):Te.ceil(n),qe(Te.count(_e(n),n)+(4===_e(n).getDay()),t,2)}function Ti(n){return n.getDay()}function _i(n,t){return qe(Me.count(_e(n)-1,n),t,2)}function Ai(n,t){return qe(n.getFullYear()%100,t,2)}function Ei(n,t){return qe(n.getFullYear()%1e4,t,4)}function Ci(n){var t=n.getTimezoneOffset();return(t>0?"-":(t*=-1,"+"))+qe(t/60|0,"0",2)+qe(t%60,"0",2)}function Ni(n,t){return qe(n.getUTCDate(),t,2)}function Li(n,t){return qe(n.getUTCHours(),t,2)}function Oi(n,t){return qe(n.getUTCHours()%12||12,t,2)}function Di(n,t){return qe(1+Ae.count(Oe(n),n),t,3)}function Ii(n,t){return qe(n.getUTCMilliseconds(),t,3)}function Fi(n,t){return Ii(n,t)+"000"}function Ri(n,t){return qe(n.getUTCMonth()+1,t,2)}function Ui(n,t){return qe(n.getUTCMinutes(),t,2)}function Pi(n,t){return qe(n.getUTCSeconds(),t,2)}function Hi(n){var t=n.getUTCDay();return 0===t?7:t}function ji(n,t){return qe(Ce.count(Oe(n)-1,n),t,2)}function zi(n,t){var e=n.getUTCDay();return n=e>=4||0===e?Le(n):Le.ceil(n),qe(Le.count(Oe(n),n)+(4===Oe(n).getUTCDay()),t,2)}function $i(n){return n.getUTCDay()}function qi(n,t){return qe(Ne.count(Oe(n)-1,n),t,2)}function Bi(n,t){return qe(n.getUTCFullYear()%100,t,2)}function Yi(n,t){return qe(n.getUTCFullYear()%1e4,t,4)}function Wi(){return"+0000"}function Gi(){return"%"}function Vi(n){return+n}function Ki(n){return Math.floor(+n/1e3)}!function(n){(Re=function(n){var t=n.dateTime,e=n.date,i=n.time,r=n.periods,o=n.days,a=n.shortDays,s=n.months,l=n.shortMonths,u=Ye(r),c=We(r),d=Ye(o),h=We(o),p=Ye(a),f=We(a),g=Ye(s),m=We(s),b=Ye(l),y=We(l),v={a:function(n){return a[n.getDay()]},A:function(n){return o[n.getDay()]},b:function(n){return l[n.getMonth()]},B:function(n){return s[n.getMonth()]},c:null,d:pi,e:pi,f:yi,H:fi,I:gi,j:mi,L:bi,m:vi,M:wi,p:function(n){return r[+(n.getHours()>=12)]},q:function(n){return 1+~~(n.getMonth()/3)},Q:Vi,s:Ki,S:xi,u:ki,U:Si,V:Mi,w:Ti,W:_i,x:null,X:null,y:Ai,Y:Ei,Z:Ci,"%":Gi},w={a:function(n){return a[n.getUTCDay()]},A:function(n){return o[n.getUTCDay()]},b:function(n){return l[n.getUTCMonth()]},B:function(n){return s[n.getUTCMonth()]},c:null,d:Ni,e:Ni,f:Fi,H:Li,I:Oi,j:Di,L:Ii,m:Ri,M:Ui,p:function(n){return r[+(n.getUTCHours()>=12)]},q:function(n){return 1+~~(n.getUTCMonth()/3)},Q:Vi,s:Ki,S:Pi,u:Hi,U:ji,V:zi,w:$i,W:qi,x:null,X:null,y:Bi,Y:Yi,Z:Wi,"%":Gi},x={a:function(n,t,e){var i=p.exec(t.slice(e));return i?(n.w=f[i[0].toLowerCase()],e+i[0].length):-1},A:function(n,t,e){var i=d.exec(t.slice(e));return i?(n.w=h[i[0].toLowerCase()],e+i[0].length):-1},b:function(n,t,e){var i=b.exec(t.slice(e));return i?(n.m=y[i[0].toLowerCase()],e+i[0].length):-1},B:function(n,t,e){var i=g.exec(t.slice(e));return i?(n.m=m[i[0].toLowerCase()],e+i[0].length):-1},c:function(n,e,i){return M(n,t,e,i)},d:ii,e:ii,f:ui,H:oi,I:oi,j:ri,L:li,m:ei,M:ai,p:function(n,t,e){var i=u.exec(t.slice(e));return i?(n.p=c[i[0].toLowerCase()],e+i[0].length):-1},q:ti,Q:di,s:hi,S:si,u:Ve,U:Ke,V:Xe,w:Ge,W:Ze,x:function(n,t,i){return M(n,e,t,i)},X:function(n,t,e){return M(n,i,t,e)},y:Je,Y:Qe,Z:ni,"%":ci};function k(n,t){return function(e){var i,r,o,a=[],s=-1,l=0,u=n.length;for(e instanceof Date||(e=new Date(+e));++s53)return null;"w"in o||(o.w=1),"Z"in o?(r=(i=Ie(Fe(o.y,0,1))).getUTCDay(),i=r>4||0===r?Ne.ceil(i):Ne(i),i=Ae.offset(i,7*(o.V-1)),o.y=i.getUTCFullYear(),o.m=i.getUTCMonth(),o.d=i.getUTCDate()+(o.w+6)%7):(r=(i=De(Fe(o.y,0,1))).getDay(),i=r>4||0===r?Me.ceil(i):Me(i),i=xe.offset(i,7*(o.V-1)),o.y=i.getFullYear(),o.m=i.getMonth(),o.d=i.getDate()+(o.w+6)%7)}else("W"in o||"U"in o)&&("w"in o||(o.w="u"in o?o.u%7:"W"in o?1:0),r="Z"in o?Ie(Fe(o.y,0,1)).getUTCDay():De(Fe(o.y,0,1)).getDay(),o.m=0,o.d="W"in o?(o.w+6)%7+7*o.W-(r+5)%7:o.w+7*o.U-(r+6)%7);return"Z"in o?(o.H+=o.Z/100|0,o.M+=o.Z%100,Ie(o)):De(o)}}function M(n,t,e,i){for(var r,o,a=0,s=t.length,l=e.length;a=l)return-1;if(37===(r=t.charCodeAt(a++))){if(r=t.charAt(a++),!(o=x[r in He?t.charAt(a++):r])||(i=o(n,e,i))<0)return-1}else if(r!=e.charCodeAt(i++))return-1}return i}return v.x=k(e,v),v.X=k(i,v),v.c=k(t,v),w.x=k(e,w),w.X=k(i,w),w.c=k(t,w),{format:function(n){var t=k(n+="",v);return t.toString=function(){return n},t},parse:function(n){var t=S(n+="",!1);return t.toString=function(){return n},t},utcFormat:function(n){var t=k(n+="",w);return t.toString=function(){return n},t},utcParse:function(n){var t=S(n+="",!0);return t.toString=function(){return n},t}}}(n)).format,Re.parse,Ue=Re.utcFormat,Pe=Re.utcParse}({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});var Xi="%Y-%m-%dT%H:%M:%S.%LZ";Date.prototype.toISOString||Ue(Xi),+new Date("2000-01-01T00:00:00.000Z")||Pe(Xi);var Zi={value:function(){}};function Qi(){for(var n,t=0,e=arguments.length,i={};t=0&&(t=n.slice(e+1),n=n.slice(0,e)),n&&!i.hasOwnProperty(n))throw new Error("unknown type: "+n);return{type:n,name:t}}))),a=-1,s=o.length;if(!(arguments.length<2)){if(null!=t&&"function"!=typeof t)throw new Error("invalid callback: "+t);for(;++a0)for(var e,i,r=new Array(e),o=0;o=0&&"xmlns"!==(t=n.slice(0,e))&&(n=n.slice(e+1)),ir.hasOwnProperty(t)?{space:ir[t],local:n}:n}function or(n){return function(){var t=this.ownerDocument,e=this.namespaceURI;return e===er&&t.documentElement.namespaceURI===er?t.createElement(n):t.createElementNS(e,n)}}function ar(n){return function(){return this.ownerDocument.createElementNS(n.space,n.local)}}function sr(n){var t=rr(n);return(t.local?ar:or)(t)}function lr(){}function ur(n){return null==n?lr:function(){return this.querySelector(n)}}function cr(){return[]}function dr(n){return new Array(n.length)}function hr(n,t){this.ownerDocument=n.ownerDocument,this.namespaceURI=n.namespaceURI,this._next=null,this._parent=n,this.__data__=t}hr.prototype={constructor:hr,appendChild:function(n){return this._parent.insertBefore(n,this._next)},insertBefore:function(n,t){return this._parent.insertBefore(n,t)},querySelector:function(n){return this._parent.querySelector(n)},querySelectorAll:function(n){return this._parent.querySelectorAll(n)}};function pr(n,t,e,i,r,o){for(var a,s=0,l=t.length,u=o.length;st?1:n>=t?0:NaN}function mr(n){return function(){this.removeAttribute(n)}}function br(n){return function(){this.removeAttributeNS(n.space,n.local)}}function yr(n,t){return function(){this.setAttribute(n,t)}}function vr(n,t){return function(){this.setAttributeNS(n.space,n.local,t)}}function wr(n,t){return function(){var e=t.apply(this,arguments);null==e?this.removeAttribute(n):this.setAttribute(n,e)}}function xr(n,t){return function(){var e=t.apply(this,arguments);null==e?this.removeAttributeNS(n.space,n.local):this.setAttributeNS(n.space,n.local,e)}}function kr(n){return n.ownerDocument&&n.ownerDocument.defaultView||n.document&&n||n.defaultView}function Sr(n){return function(){this.style.removeProperty(n)}}function Mr(n,t,e){return function(){this.style.setProperty(n,t,e)}}function Tr(n,t,e){return function(){var i=t.apply(this,arguments);null==i?this.style.removeProperty(n):this.style.setProperty(n,i,e)}}function _r(n){return function(){delete this[n]}}function Ar(n,t){return function(){this[n]=t}}function Er(n,t){return function(){var e=t.apply(this,arguments);null==e?delete this[n]:this[n]=e}}function Cr(n){return n.trim().split(/^|\s+/)}function Nr(n){return n.classList||new Lr(n)}function Lr(n){this._node=n,this._names=Cr(n.getAttribute("class")||"")}function Or(n,t){for(var e=Nr(n),i=-1,r=t.length;++i=0&&(this._names.splice(t,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(n){return this._names.indexOf(n)>=0}};var Kr={},Xr=null;function Zr(n,t,e){return n=Qr(n,t,e),function(t){var e=t.relatedTarget;e&&(e===this||8&e.compareDocumentPosition(this))||n.call(this,t)}}function Qr(n,t,e){return function(i){var r=Xr;Xr=i;try{n.call(this,this.__data__,t,e)}finally{Xr=r}}}function Jr(n){return function(){var t=this.__on;if(t){for(var e,i=0,r=-1,o=t.length;id}l.mouse("drag")}function g(){so(Xr.view).on("mousemove.drag mouseup.drag",null),function(n,t){var e=n.document.documentElement,i=so(n).on("dragstart.drag",null);t&&(i.on("click.drag",fo,!0),setTimeout((function(){i.on("click.drag",null)}),0)),"onselectstart"in e?i.on("selectstart.drag",null):(e.style.MozUserSelect=e.__noselect,delete e.__noselect)}(Xr.view,e),fo(),l.mouse("end")}function m(){if(r.apply(this,arguments)){var n,t,e=Xr.changedTouches,i=o.apply(this,arguments),a=e.length;for(n=0;n=x&&(x=w+1);!(v=b[x])&&++x=0;)(i=r[o])&&(a&&4^i.compareDocumentPosition(a)&&a.parentNode.insertBefore(i,a),a=i);return this},sort:function(n){function t(t,e){return t&&e?n(t.__data__,e.__data__):!t-!e}n||(n=gr);for(var e=this._groups,i=e.length,r=new Array(i),o=0;o1?this.each((null==t?Sr:"function"==typeof t?Tr:Mr)(n,t,null==e?"":e)):function(n,t){return n.style.getPropertyValue(t)||kr(n).getComputedStyle(n,null).getPropertyValue(t)}(this.node(),n)},property:function(n,t){return arguments.length>1?this.each((null==t?_r:"function"==typeof t?Er:Ar)(n,t)):this.node()[n]},classed:function(n,t){var e=Cr(n+"");if(arguments.length<2){for(var i=Nr(this.node()),r=-1,o=e.length;++r=0&&(t=n.slice(e+1),n=n.slice(0,e)),{type:n,name:t}}))}(n+""),a=o.length;if(!(arguments.length<2)){for(s=t?no:Jr,null==e&&(e=!1),i=0;i\n :host {\n position: relative;\n display: inline-block;\n }\n\n :host(:focus) {\n outline: none;\n }\n\n .background {\n padding: 9px 0;\n color: white;\n position: relative;\n }\n\n .track {\n height: 3px;\n width: 100%;\n border-radius: 2px;\n background-color: hsla(0, 0%, 0%, 0.2);\n }\n\n .track-fill {\n position: absolute;\n top: 9px;\n height: 3px;\n border-radius: 4px;\n background-color: hsl(24, 100%, 50%);\n }\n\n .knob-container {\n position: absolute;\n top: 10px;\n }\n\n .knob {\n position: absolute;\n top: -6px;\n left: -6px;\n width: 13px;\n height: 13px;\n background-color: hsl(24, 100%, 50%);\n border-radius: 50%;\n transition-property: transform;\n transition-duration: 0.18s;\n transition-timing-function: ease;\n }\n .mousedown .knob {\n transform: scale(1.5);\n }\n\n .knob-highlight {\n position: absolute;\n top: -6px;\n left: -6px;\n width: 13px;\n height: 13px;\n background-color: hsla(0, 0%, 0%, 0.1);\n border-radius: 50%;\n transition-property: transform;\n transition-duration: 0.18s;\n transition-timing-function: ease;\n }\n\n .focus .knob-highlight {\n transform: scale(2);\n }\n\n .ticks {\n position: absolute;\n top: 16px;\n height: 4px;\n width: 100%;\n z-index: -1;\n }\n\n .ticks .tick {\n position: absolute;\n height: 100%;\n border-left: 1px solid hsla(0, 0%, 0%, 0.2);\n }\n\n\n\n
      \n
      \n
      \n
      \n
      \n
      \n
      \n
      \n
      \n"),So=37,Mo=38,To=39,_o=40,Ao=33,Eo=34,Co=35,No=36,Lo=function(n){function t(){return g(this,t),s(this,t,arguments)}return h(t,n),b(t,[{key:"connectedCallback",value:function(){var n=this;this.connected=!0,this.setAttribute("role","slider"),this.hasAttribute("tabindex")||this.setAttribute("tabindex",0),this.mouseEvent=!1,this.knob=this.root.querySelector(".knob-container"),this.background=this.root.querySelector(".background"),this.trackFill=this.root.querySelector(".track-fill"),this.track=this.root.querySelector(".track"),this.min=this.min?this.min:0,this.max=this.max?this.max:100,this.scale=de().domain([this.min,this.max]).range([0,1]).clamp(!0),this.origin=void 0!==this.origin?this.origin:this.min,this.step=this.step?this.step:1,this.update(this.value?this.value:0),this.ticks=!!this.ticks&&this.ticks,this.renderTicks(),this.drag=xo().container(this.background).on("start",(function(){n.mouseEvent=!0,n.background.classList.add("mousedown"),n.changeValue=n.value,n.dragUpdate()})).on("drag",(function(){n.dragUpdate()})).on("end",(function(){n.mouseEvent=!1,n.background.classList.remove("mousedown"),n.dragUpdate(),n.changeValue!==n.value&&n.dispatchChange(),n.changeValue=n.value})),this.drag(so(this.background)),this.addEventListener("focusin",(function(){n.mouseEvent||n.background.classList.add("focus")})),this.addEventListener("focusout",(function(){n.background.classList.remove("focus")})),this.addEventListener("keydown",this.onKeyDown)}},{key:"attributeChangedCallback",value:function(n,t,e){isNaN(e)||null==e||("min"==n&&(this.min=+e,this.setAttribute("aria-valuemin",this.min)),"max"==n&&(this.max=+e,this.setAttribute("aria-valuemax",this.max)),"value"==n&&this.update(+e),"origin"==n&&(this.origin=+e),"step"==n&&e>0&&(this.step=+e),"ticks"==n&&(this.ticks=""===e||e))}},{key:"onKeyDown",value:function(n){this.changeValue=this.value;var t=!1;switch(n.keyCode){case So:case _o:this.update(this.value-this.step),t=!0;break;case To:case Mo:this.update(this.value+this.step),t=!0;break;case Ao:case Eo:this.update(this.value+10*this.step),t=!0;break;case No:this.update(this.min),t=!0;break;case Co:this.update(this.max),t=!0}t&&(this.background.classList.add("focus"),n.preventDefault(),n.stopPropagation(),this.changeValue!==this.value&&this.dispatchChange())}},{key:"validateValueRange",value:function(n,t,e){return Math.max(Math.min(t,e),n)}},{key:"quantizeValue",value:function(n,t){return Math.round(n/t)*t}},{key:"dragUpdate",value:function(){var n=this.background.getBoundingClientRect(),t=Xr.x,e=n.width;this.update(this.scale.invert(t/e))}},{key:"update",value:function(n){var t=n;"any"!==this.step&&(t=this.quantizeValue(n,this.step)),t=this.validateValueRange(this.min,this.max,t),this.connected&&(this.knob.style.left=100*this.scale(t)+"%",this.trackFill.style.width=100*this.scale(this.min+Math.abs(t-this.origin))+"%",this.trackFill.style.left=100*this.scale(Math.min(t,this.origin))+"%"),this.value!==t&&(this.value=t,this.setAttribute("aria-valuenow",this.value),this.dispatchInput())}},{key:"dispatchChange",value:function(){var n=new Event("change");this.dispatchEvent(n,{})}},{key:"dispatchInput",value:function(){var n=new Event("input");this.dispatchEvent(n,{})}},{key:"renderTicks",value:function(){var n=this,t=this.root.querySelector(".ticks");!1!==this.ticks?(this.ticks>0?this.scale.ticks(this.ticks):"any"===this.step?this.scale.ticks():function(n,t,e){n=+n,t=+t,e=(r=arguments.length)<2?(t=n,n=0,1):r<3?1:+e;for(var i=-1,r=0|Math.max(0,Math.ceil((t-n)/e)),o=new Array(r);++i\n \n\n',Do=function(n){function t(){return g(this,t),s(this,t,arguments)}return h(t,n),b(t)}(p("distill-header",'\n\n\n'),!1)(HTMLElement));var Io=function(n){function t(){return g(this,t),s(this,t,arguments)}return h(t,n),b(t,[{key:"frontMatter",set:function(n){this.innerHTML=function(n){var t="\n\n";void 0!==n.githubUrl&&(t+='\n

      Updates and Corrections

      \n

      ',n.githubCompareUpdatesUrl&&(t+='View all changes to this article since it was first published.')),t+='\n If you see mistakes or want to suggest changes, please create an issue on GitHub.

      \n '));var e=n.journal;return void 0!==e&&"Distill"===e.title&&(t+='\n

      Reuse

      \n

      Diagrams and text are licensed under Creative Commons Attribution CC-BY 4.0 with the source available on GitHub, unless noted otherwise. The figures that have been reused from other sources don’t fall under this license and can be recognized by a note in their caption: “Figure from …”.

      \n ')),void 0!==n.publishedDate&&(t+='\n

      Citation

      \n

      For attribution in academic contexts, please cite this work as

      \n
      '.concat(n.concatenatedAuthors,', "').concat(n.title,'", Distill, ').concat(n.publishedYear,'.
      \n

      BibTeX citation

      \n
      ').concat(function(n){return"@article{".concat(n.slug,",\n  author = {").concat(n.bibtexAuthors,"},\n  title = {").concat(n.title,"},\n  journal = {").concat(n.journal.title,"},\n  year = {").concat(n.publishedYear,"},\n  note = {").concat(n.url,"},\n  doi = {").concat(n.doi,"}\n}")}(n),"
      \n ")),t}(n)}}],[{key:"is",get:function(){return"distill-appendix"}}])}(o(HTMLElement)),Fo=function(n){function t(){return g(this,t),s(this,t,arguments)}return h(t,n),b(t)}(p("distill-footer",'\n\n\n
      \n\n is dedicated to clear explanations of machine learning\n\n \n\n
      \n\n'))(HTMLElement));window.distill={runlevel:0,initialize:function(){if(window.distill.runlevel<1)throw new Error("Insufficient Runlevel for Distill Template!");if("distill"in window&&window.distill.templateIsLoading)throw new Error("Runlevel 1: Distill Template is getting loaded more than once, aborting!");window.distill.templateIsLoading=!0,console.debug("Runlevel 1: Distill Template has started loading."),function(n){var t="distill-prerendered-styles";if(!n.getElementById(t)){var e=n.createElement("style");e.id=t,e.type="text/css";var i=n.createTextNode(z);e.appendChild(i);var r=n.head.querySelector("script");n.head.insertBefore(e,r)}}(document),console.debug("Runlevel 1: Static Distill styles have been added."),console.debug("Runlevel 1->2."),window.distill.runlevel+=1;for(var n=0,t=Object.entries(j.listeners);n3."),window.distill.runlevel+=1;var o=[Y,W,V,nn,tn,en,rn,an,sn,ln,P,un,cn,E,dn,hn,pn,Lo,gn],s=[Do,Io,Fo];if(window.distill.runlevel<2)throw new Error("Insufficient Runlevel for adding custom elements!");var l,u=a(o.concat(s));try{for(u.s();!(l=u.n()).done;){var c=l.value;console.debug("Runlevel 2: Registering custom element: "+c.is),customElements.define(c.is,c)}}catch(n){u.e(n)}finally{u.f()}console.debug("Runlevel 3: Distill Template finished registering custom elements."),console.debug("Runlevel 3->4."),window.distill.runlevel+=1,R()&&j.listeners.DOMContentLoaded(),console.debug("Runlevel 4: Distill Template initialisation complete."),window.distill.templateIsLoading=!1,window.distill.templateHasLoaded=!0},templateIsLoading:!1},B.browserSupportsAllFeatures()?(console.debug("Runlevel 0: No need for polyfills."),console.debug("Runlevel 0->1."),window.distill.runlevel+=1,window.distill.initialize()):(console.debug("Runlevel 0: Distill Template is loading polyfills."),B.load(window.distill.initialize))},void 0===(r=i.call(t,e,t,n))||(n.exports=r)}},t={};function e(i){var r=t[i];if(void 0!==r)return r.exports;var o=t[i]={exports:{}};return n[i](o,o.exports,e),o.exports}e.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(n){if("object"==typeof window)return window}}(),e(792)})(); //# sourceMappingURL=distill.bundle.js.map \ No newline at end of file