summaryrefslogtreecommitdiff
path: root/assets/js/distillpub/template.v2.js.map
diff options
context:
space:
mode:
Diffstat (limited to 'assets/js/distillpub/template.v2.js.map')
-rw-r--r--assets/js/distillpub/template.v2.js.map1
1 files changed, 1 insertions, 0 deletions
diff --git a/assets/js/distillpub/template.v2.js.map b/assets/js/distillpub/template.v2.js.map
new file mode 100644
index 0000000..e342ef3
--- /dev/null
+++ b/assets/js/distillpub/template.v2.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"template.v2.js","sources":["../src/front-matter.js","../src/mixins/mutating.js","../src/mixins/template.js","../src/helpers/katex-auto-render.js","../src/components/d-math.js","../src/helpers/citation.js","../src/helpers/domContentLoaded.js","../src/components/d-front-matter.js","../src/transforms/optional-components.js","../src/controller.js","../src/styles/styles.js","../src/helpers/polyfills.js","../src/helpers/layout.js","../src/components/d-abstract.js","../src/components/d-appendix.js","../src/components/d-article.js","../node_modules/bibtex-parse-js/bibtexParse.js","../src/helpers/bibtex.js","../src/components/d-bibliography.js","../src/components/d-byline.js","../src/components/d-cite.js","../src/components/d-citation-list.js","../node_modules/prismjs/prism.js","../node_modules/prismjs/components/prism-python.js","../node_modules/prismjs/components/prism-clike.js","../node_modules/prismjs/components/prism-lua.js","../node_modules/prismjs/components/prism-bash.js","../node_modules/prismjs/components/prism-go.js","../node_modules/prismjs/components/prism-markdown.js","../node_modules/prismjs/components/prism-julia.js","../src/components/d-code.js","../src/components/d-footnote.js","../src/components/d-footnote-list.js","../src/components/d-hover-box.js","../src/components/d-title.js","../src/components/d-references.js","../src/components/d-toc.js","../src/components/d-figure.js","../src/components/d-interstitial.js","../node_modules/d3-array/src/ascending.js","../node_modules/d3-array/src/bisector.js","../node_modules/d3-array/src/bisect.js","../node_modules/d3-array/src/range.js","../node_modules/d3-array/src/ticks.js","../node_modules/d3-scale/src/init.js","../node_modules/d3-color/src/define.js","../node_modules/d3-color/src/color.js","../node_modules/d3-color/src/math.js","../node_modules/d3-color/src/lab.js","../node_modules/d3-color/src/cubehelix.js","../node_modules/d3-interpolate/src/constant.js","../node_modules/d3-interpolate/src/color.js","../node_modules/d3-interpolate/src/rgb.js","../node_modules/d3-interpolate/src/numberArray.js","../node_modules/d3-interpolate/src/array.js","../node_modules/d3-interpolate/src/date.js","../node_modules/d3-interpolate/src/number.js","../node_modules/d3-interpolate/src/object.js","../node_modules/d3-interpolate/src/string.js","../node_modules/d3-interpolate/src/value.js","../node_modules/d3-interpolate/src/round.js","../node_modules/d3-scale/src/constant.js","../node_modules/d3-scale/src/number.js","../node_modules/d3-scale/src/continuous.js","../node_modules/d3-format/src/formatDecimal.js","../node_modules/d3-format/src/exponent.js","../node_modules/d3-format/src/formatGroup.js","../node_modules/d3-format/src/formatNumerals.js","../node_modules/d3-format/src/formatSpecifier.js","../node_modules/d3-format/src/formatTrim.js","../node_modules/d3-format/src/formatPrefixAuto.js","../node_modules/d3-format/src/formatRounded.js","../node_modules/d3-format/src/formatTypes.js","../node_modules/d3-format/src/identity.js","../node_modules/d3-format/src/locale.js","../node_modules/d3-format/src/defaultLocale.js","../node_modules/d3-format/src/precisionFixed.js","../node_modules/d3-format/src/precisionPrefix.js","../node_modules/d3-format/src/precisionRound.js","../node_modules/d3-scale/src/tickFormat.js","../node_modules/d3-scale/src/linear.js","../node_modules/d3-time/src/interval.js","../node_modules/d3-time/src/millisecond.js","../node_modules/d3-time/src/duration.js","../node_modules/d3-time/src/second.js","../node_modules/d3-time/src/minute.js","../node_modules/d3-time/src/hour.js","../node_modules/d3-time/src/day.js","../node_modules/d3-time/src/week.js","../node_modules/d3-time/src/month.js","../node_modules/d3-time/src/year.js","../node_modules/d3-time/src/utcMinute.js","../node_modules/d3-time/src/utcHour.js","../node_modules/d3-time/src/utcDay.js","../node_modules/d3-time/src/utcWeek.js","../node_modules/d3-time/src/utcMonth.js","../node_modules/d3-time/src/utcYear.js","../node_modules/d3-time-format/src/locale.js","../node_modules/d3-time-format/src/defaultLocale.js","../node_modules/d3-time-format/src/isoFormat.js","../node_modules/d3-time-format/src/isoParse.js","../node_modules/d3-dispatch/src/dispatch.js","../node_modules/d3-selection/src/namespaces.js","../node_modules/d3-selection/src/namespace.js","../node_modules/d3-selection/src/creator.js","../node_modules/d3-selection/src/selector.js","../node_modules/d3-selection/src/selection/select.js","../node_modules/d3-selection/src/selectorAll.js","../node_modules/d3-selection/src/selection/selectAll.js","../node_modules/d3-selection/src/matcher.js","../node_modules/d3-selection/src/selection/filter.js","../node_modules/d3-selection/src/selection/sparse.js","../node_modules/d3-selection/src/selection/enter.js","../node_modules/d3-selection/src/constant.js","../node_modules/d3-selection/src/selection/data.js","../node_modules/d3-selection/src/selection/exit.js","../node_modules/d3-selection/src/selection/join.js","../node_modules/d3-selection/src/selection/merge.js","../node_modules/d3-selection/src/selection/order.js","../node_modules/d3-selection/src/selection/sort.js","../node_modules/d3-selection/src/selection/call.js","../node_modules/d3-selection/src/selection/nodes.js","../node_modules/d3-selection/src/selection/node.js","../node_modules/d3-selection/src/selection/size.js","../node_modules/d3-selection/src/selection/empty.js","../node_modules/d3-selection/src/selection/each.js","../node_modules/d3-selection/src/selection/attr.js","../node_modules/d3-selection/src/window.js","../node_modules/d3-selection/src/selection/style.js","../node_modules/d3-selection/src/selection/property.js","../node_modules/d3-selection/src/selection/classed.js","../node_modules/d3-selection/src/selection/text.js","../node_modules/d3-selection/src/selection/html.js","../node_modules/d3-selection/src/selection/raise.js","../node_modules/d3-selection/src/selection/lower.js","../node_modules/d3-selection/src/selection/append.js","../node_modules/d3-selection/src/selection/insert.js","../node_modules/d3-selection/src/selection/remove.js","../node_modules/d3-selection/src/selection/clone.js","../node_modules/d3-selection/src/selection/datum.js","../node_modules/d3-selection/src/selection/on.js","../node_modules/d3-selection/src/selection/dispatch.js","../node_modules/d3-selection/src/selection/index.js","../node_modules/d3-selection/src/select.js","../node_modules/d3-selection/src/sourceEvent.js","../node_modules/d3-selection/src/point.js","../node_modules/d3-selection/src/mouse.js","../node_modules/d3-selection/src/touch.js","../node_modules/d3-drag/src/noevent.js","../node_modules/d3-drag/src/nodrag.js","../node_modules/d3-drag/src/constant.js","../node_modules/d3-drag/src/event.js","../node_modules/d3-drag/src/drag.js","../src/ui/d-slider.js","../src/distill-components/distill-header-template.js","../src/distill-components/distill-header.js","../src/distill-components/distill-appendix.js","../src/distill-components/distill-footer-template.js","../src/distill-components/distill-footer.js","../src/components.js"],"sourcesContent":["// 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\nconst days = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];\nconst months = ['Jan.', 'Feb.', 'March', 'April', 'May', 'June', 'July', 'Aug.', 'Sept.', 'Oct.', 'Nov.', 'Dec.'];\nconst zeroPad = n => n < 10 ? '0' + n : n;\n\nconst RFC = function(date) {\n const day = days[date.getDay()].substring(0, 3);\n const paddedDate = zeroPad(date.getDate());\n const month = months[date.getMonth()].substring(0,3);\n const year = date.getFullYear().toString();\n const hours = date.getUTCHours().toString();\n const minutes = date.getUTCMinutes().toString();\n const seconds = date.getUTCSeconds().toString();\n return `${day}, ${paddedDate} ${month} ${year} ${hours}:${minutes}:${seconds} Z`;\n};\n\nconst objectFromMap = function(map) {\n const object = Array.from(map).reduce((object, [key, value]) => (\n Object.assign(object, { [key]: value }) // Be careful! Maps can have non-String keys; object literals can't.\n ), {});\n return object;\n};\n\nconst mapFromObject = function(object) {\n const map = new Map();\n for (var property in object) {\n if (object.hasOwnProperty(property)) {\n map.set(property, object[property]);\n }\n }\n return map;\n};\n\nclass Author {\n\n // constructor(name='', personalURL='', affiliation='', affiliationURL='') {\n // this.name = name; // 'Chris Olah'\n // this.personalURL = personalURL; // 'https://colah.github.io'\n // this.affiliation = affiliation; // 'Google Brain'\n // this.affiliationURL = affiliationURL; // 'https://g.co/brain'\n // }\n\n constructor(object) {\n this.name = object.author; // 'Chris Olah'\n this.personalURL = object.authorURL; // 'https://colah.github.io'\n this.affiliation = object.affiliation; // 'Google Brain'\n this.affiliationURL = object.affiliationURL; // 'https://g.co/brain'\n this.affiliations = object.affiliations || []; // new-style affiliations\n }\n\n // 'Chris'\n get firstName() {\n const names = this.name.split(' ');\n return names.slice(0, names.length - 1).join(' ');\n }\n\n // 'Olah'\n get lastName() {\n const names = this.name.split(' ');\n return names[names.length -1];\n }\n}\n\nexport function mergeFromYMLFrontmatter(target, source) {\n target.title = source.title;\n if (source.published) {\n if (source.published instanceof Date) {\n target.publishedDate = source.published;\n } else if (source.published.constructor === String) {\n target.publishedDate = new Date(source.published);\n }\n }\n if (source.publishedDate) {\n if (source.publishedDate instanceof Date) {\n target.publishedDate = source.publishedDate;\n } else if (source.publishedDate.constructor === String) {\n target.publishedDate = new Date(source.publishedDate);\n } else {\n console.error('Don\\'t know what to do with published date: ' + source.publishedDate);\n }\n }\n target.description = source.description;\n target.authors = source.authors.map( (authorObject) => new Author(authorObject));\n target.katex = source.katex;\n target.password = source.password;\n if (source.doi) {\n target.doi = source.doi;\n }\n}\n\nexport class FrontMatter {\n constructor() {\n this.title = 'unnamed article'; // 'Attention and Augmented Recurrent Neural Networks'\n this.description = ''; // 'A visual overview of neural attention...'\n this.authors = []; // Array of Author(s)\n\n this.bibliography = new Map();\n this.bibliographyParsed = false;\n // {\n // 'gregor2015draw': {\n // 'title': 'DRAW: A recurrent neural network for image generation',\n // 'author': 'Gregor, Karol and Danihelka, Ivo and Graves, Alex and Rezende, Danilo Jimenez and Wierstra, Daan',\n // 'journal': 'arXiv preprint arXiv:1502.04623',\n // 'year': '2015',\n // 'url': 'https://arxiv.org/pdf/1502.04623.pdf',\n // 'type': 'article'\n // },\n // }\n\n // Citation keys should be listed in the order that they are appear in the document.\n // Each key refers to a key in the bibliography dictionary.\n this.citations = []; // [ 'gregor2015draw', 'mercier2011humans' ]\n this.citationsCollected = false;\n\n //\n // Assigned from posts.csv\n //\n\n // publishedDate: 2016-09-08T07:00:00.000Z,\n // tags: [ 'rnn' ],\n // distillPath: '2016/augmented-rnns',\n // githubPath: 'distillpub/post--augmented-rnns',\n // doiSuffix: 1,\n\n //\n // Assigned from journal\n //\n this.journal = {};\n // journal: {\n // 'title': 'Distill',\n // 'full_title': 'Distill',\n // 'abbrev_title': 'Distill',\n // 'url': 'http://distill.pub',\n // 'doi': '10.23915/distill',\n // 'publisherName': 'Distill Working Group',\n // 'publisherEmail': 'admin@distill.pub',\n // 'issn': '2476-0757',\n // 'editors': [...],\n // 'committee': [...]\n // }\n // volume: 1,\n // issue: 9,\n\n this.katex = {};\n\n //\n // Assigned from publishing process\n //\n\n // githubCompareUpdatesUrl: 'https://github.com/distillpub/post--augmented-rnns/compare/1596e094d8943d2dc0ea445d92071129c6419c59...3bd9209e0c24d020f87cf6152dcecc6017cbc193',\n // updatedDate: 2017-03-21T07:13:16.000Z,\n // doi: '10.23915/distill.00001',\n this.doi = undefined;\n this.publishedDate = undefined;\n }\n\n // Example:\n // title: Demo Title Attention and Augmented Recurrent Neural Networks\n // published: Jan 10, 2017\n // authors:\n // - Chris Olah:\n // - Shan Carter: http://shancarter.com\n // affiliations:\n // - Google Brain:\n // - Google Brain: http://g.co/brain\n\n //\n // Computed Properties\n //\n\n // 'http://distill.pub/2016/augmented-rnns',\n set url(value) {\n this._url = value;\n }\n get url() {\n if (this._url) {\n return this._url;\n } else if (this.distillPath && this.journal.url) {\n return this.journal.url + '/' + this.distillPath;\n } else if (this.journal.url) {\n return this.journal.url;\n }\n }\n\n // 'https://github.com/distillpub/post--augmented-rnns',\n get githubUrl() {\n if (this.githubPath) {\n return 'https://github.com/' + this.githubPath;\n } else {\n return undefined;\n }\n }\n\n // TODO resolve differences in naming of URL/Url/url.\n // 'http://distill.pub/2016/augmented-rnns/thumbnail.jpg',\n set previewURL(value) {\n this._previewURL = value;\n }\n get previewURL() {\n return this._previewURL ? this._previewURL : this.url + '/thumbnail.jpg';\n }\n\n // 'Thu, 08 Sep 2016 00:00:00 -0700',\n get publishedDateRFC() {\n return RFC(this.publishedDate);\n }\n\n // 'Thu, 08 Sep 2016 00:00:00 -0700',\n get updatedDateRFC() {\n return RFC(this.updatedDate);\n }\n\n // 2016,\n get publishedYear() {\n return this.publishedDate.getFullYear();\n }\n\n // 'Sept',\n get publishedMonth() {\n return months[this.publishedDate.getMonth()];\n }\n\n // 8,\n get publishedDay() {\n return this.publishedDate.getDate();\n }\n\n // '09',\n get publishedMonthPadded() {\n return zeroPad(this.publishedDate.getMonth() + 1);\n }\n\n // '08',\n get publishedDayPadded() {\n return zeroPad(this.publishedDate.getDate());\n }\n\n get publishedISODateOnly() {\n return this.publishedDate.toISOString().split('T')[0];\n }\n\n get volume() {\n const volume = this.publishedYear - 2015;\n if (volume < 1) {\n throw new Error('Invalid publish date detected during computing volume');\n }\n return volume;\n }\n\n get issue() {\n return this.publishedDate.getMonth() + 1;\n }\n\n // 'Olah & Carter',\n get concatenatedAuthors() {\n if (this.authors.length > 2) {\n return this.authors[0].lastName + ', et al.';\n } else if (this.authors.length === 2) {\n return this.authors[0].lastName + ' & ' + this.authors[1].lastName;\n } else if (this.authors.length === 1) {\n return this.authors[0].lastName;\n }\n }\n\n // 'Olah, Chris and Carter, Shan',\n get bibtexAuthors() {\n return this.authors.map(author => {\n return author.lastName + ', ' + author.firstName;\n }).join(' and ');\n }\n\n // 'olah2016attention'\n get slug() {\n let slug = '';\n if (this.authors.length) {\n slug += this.authors[0].lastName.toLowerCase();\n slug += this.publishedYear;\n slug += this.title.split(' ')[0].toLowerCase();\n }\n return slug || 'Untitled';\n }\n\n get bibliographyEntries() {\n return new Map(this.citations.map( citationKey => {\n const entry = this.bibliography.get(citationKey);\n return [citationKey, entry];\n }));\n }\n\n set bibliography(bibliography) {\n if (bibliography instanceof Map) {\n this._bibliography = bibliography;\n } else if (typeof bibliography === 'object') {\n this._bibliography = mapFromObject(bibliography);\n }\n }\n\n get bibliography() {\n return this._bibliography;\n }\n\n static fromObject(source) {\n const frontMatter = new FrontMatter();\n Object.assign(frontMatter, source);\n return frontMatter;\n }\n\n assignToObject(target) {\n Object.assign(target, this);\n target.bibliography = objectFromMap(this.bibliographyEntries);\n target.url = this.url;\n target.doi = this.doi;\n target.githubUrl = this.githubUrl;\n target.previewURL = this.previewURL;\n if (this.publishedDate) {\n target.volume = this.volume;\n target.issue = this.issue;\n target.publishedDateRFC = this.publishedDateRFC;\n target.publishedYear = this.publishedYear;\n target.publishedMonth = this.publishedMonth;\n target.publishedDay = this.publishedDay;\n target.publishedMonthPadded = this.publishedMonthPadded;\n target.publishedDayPadded = this.publishedDayPadded;\n }\n if (this.updatedDate) {\n target.updatedDateRFC = this.updatedDateRFC;\n }\n target.concatenatedAuthors = this.concatenatedAuthors;\n target.bibtexAuthors = this.bibtexAuthors;\n target.slug = this.slug;\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\nexport const Mutating = (superclass) => {\n return class extends superclass {\n\n constructor() {\n super();\n\n // set up mutation observer\n const options = {childList: true, characterData: true, subtree: true};\n const observer = new MutationObserver( () => {\n observer.disconnect();\n this.renderIfPossible();\n observer.observe(this, options);\n });\n\n // ...and listen for changes\n observer.observe(this, options);\n }\n\n connectedCallback() {\n super.connectedCallback();\n\n this.renderIfPossible();\n }\n\n // potential TODO: check if this is enough for all our usecases\n // maybe provide a custom function to tell if we have enough information to render\n renderIfPossible() {\n if (this.textContent && this.root) {\n this.renderContent();\n }\n }\n\n renderContent() {\n console.error(`Your class ${this.constructor.name} must provide a custom renderContent() method!` );\n }\n\n }; // end class\n}; // end mixin function\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/*global ShadyCSS*/\n\nexport const Template = (name, templateString, useShadow = true) => {\n\n return (superclass) => {\n\n const template = document.createElement('template');\n template.innerHTML = templateString;\n\n if (useShadow && 'ShadyCSS' in window) {\n ShadyCSS.prepareTemplate(template, name);\n }\n\n return class extends superclass {\n\n static get is() { return name; }\n\n constructor() {\n super();\n\n this.clone = document.importNode(template.content, true);\n if (useShadow) {\n this.attachShadow({mode: 'open'});\n this.shadowRoot.appendChild(this.clone);\n }\n }\n\n connectedCallback() {\n if (this.hasAttribute('distill-prerendered')) {\n return;\n }\n if (useShadow) {\n if ('ShadyCSS' in window) {\n ShadyCSS.styleElement(this);\n }\n } else {\n this.insertBefore(this.clone, this.firstChild);\n }\n }\n\n get root() {\n if (useShadow) {\n return this.shadowRoot;\n } else {\n return this;\n }\n }\n\n /* TODO: Are we using these? Should we even? */\n $(query) {\n return this.root.querySelector(query);\n }\n\n $$(query) {\n return this.root.querySelectorAll(query);\n }\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// This is a straight concatenation of code from KaTeX's contrib folder,\n// but we aren't using some of their helpers that don't work well outside a browser environment.\n\n/*global katex */\n\nconst findEndOfMath = function(delimiter, text, startIndex) {\n // Adapted from\n // https://github.com/Khan/perseus/blob/master/src/perseus-markdown.jsx\n let index = startIndex;\n let braceLevel = 0;\n\n const delimLength = delimiter.length;\n\n while (index < text.length) {\n const character = text[index];\n\n if (\n braceLevel <= 0 &&\n text.slice(index, index + delimLength) === delimiter\n ) {\n return index;\n } else if (character === \"\\\\\") {\n index++;\n } else if (character === \"{\") {\n braceLevel++;\n } else if (character === \"}\") {\n braceLevel--;\n }\n\n index++;\n }\n\n return -1;\n};\n\nconst splitAtDelimiters = function(startData, leftDelim, rightDelim, display) {\n const finalData = [];\n\n for (let i = 0; i < startData.length; i++) {\n if (startData[i].type === \"text\") {\n const text = startData[i].data;\n\n let lookingForLeft = true;\n let currIndex = 0;\n let nextIndex;\n\n nextIndex = text.indexOf(leftDelim);\n if (nextIndex !== -1) {\n currIndex = nextIndex;\n finalData.push({\n type: \"text\",\n data: text.slice(0, currIndex)\n });\n lookingForLeft = false;\n }\n\n while (true) {\n // eslint-disable-line no-constant-condition\n if (lookingForLeft) {\n nextIndex = text.indexOf(leftDelim, currIndex);\n if (nextIndex === -1) {\n break;\n }\n\n finalData.push({\n type: \"text\",\n data: text.slice(currIndex, nextIndex)\n });\n\n currIndex = nextIndex;\n } else {\n nextIndex = findEndOfMath(\n rightDelim,\n text,\n currIndex + leftDelim.length\n );\n if (nextIndex === -1) {\n break;\n }\n\n finalData.push({\n type: \"math\",\n data: text.slice(currIndex + leftDelim.length, nextIndex),\n rawData: text.slice(currIndex, nextIndex + rightDelim.length),\n display: display\n });\n\n currIndex = nextIndex + rightDelim.length;\n }\n\n lookingForLeft = !lookingForLeft;\n }\n\n finalData.push({\n type: \"text\",\n data: text.slice(currIndex)\n });\n } else {\n finalData.push(startData[i]);\n }\n }\n\n return finalData;\n};\n\nconst splitWithDelimiters = function(text, delimiters) {\n let data = [{ type: \"text\", data: text }];\n for (let i = 0; i < delimiters.length; i++) {\n const delimiter = delimiters[i];\n data = splitAtDelimiters(\n data,\n delimiter.left,\n delimiter.right,\n delimiter.display || false\n );\n }\n return data;\n};\n\n/* Note: optionsCopy is mutated by this method. If it is ever exposed in the\n * API, we should copy it before mutating.\n */\nconst renderMathInText = function(text, optionsCopy) {\n const data = splitWithDelimiters(text, optionsCopy.delimiters);\n const fragment = document.createDocumentFragment();\n\n for (let i = 0; i < data.length; i++) {\n if (data[i].type === \"text\") {\n fragment.appendChild(document.createTextNode(data[i].data));\n } else {\n const tag = document.createElement(\"d-math\");\n const math = data[i].data;\n // Override any display mode defined in the settings with that\n // defined by the text itself\n optionsCopy.displayMode = data[i].display;\n try {\n tag.textContent = math;\n if (optionsCopy.displayMode) {\n tag.setAttribute(\"block\", \"\");\n }\n } catch (e) {\n if (!(e instanceof katex.ParseError)) {\n throw e;\n }\n optionsCopy.errorCallback(\n \"KaTeX auto-render: Failed to parse `\" + data[i].data + \"` with \",\n e\n );\n fragment.appendChild(document.createTextNode(data[i].rawData));\n continue;\n }\n fragment.appendChild(tag);\n }\n }\n\n return fragment;\n};\n\nconst renderElem = function(elem, optionsCopy) {\n for (let i = 0; i < elem.childNodes.length; i++) {\n const childNode = elem.childNodes[i];\n if (childNode.nodeType === 3) {\n // Text node\n const text = childNode.textContent;\n if (optionsCopy.mightHaveMath(text)) {\n const frag = renderMathInText(text, optionsCopy);\n i += frag.childNodes.length - 1;\n elem.replaceChild(frag, childNode);\n }\n } else if (childNode.nodeType === 1) {\n // Element node\n const shouldRender =\n optionsCopy.ignoredTags.indexOf(childNode.nodeName.toLowerCase()) ===\n -1;\n\n if (shouldRender) {\n renderElem(childNode, optionsCopy);\n }\n }\n // Otherwise, it's something else, and ignore it.\n }\n};\n\nconst defaultAutoRenderOptions = {\n delimiters: [\n { left: \"$$\", right: \"$$\", display: true },\n { left: \"\\\\[\", right: \"\\\\]\", display: true },\n { left: \"\\\\(\", right: \"\\\\)\", display: false }\n // LaTeX uses this, but it ruins the display of normal `$` in text:\n // {left: '$', right: '$', display: false},\n ],\n\n ignoredTags: [\n \"script\",\n \"noscript\",\n \"style\",\n \"textarea\",\n \"pre\",\n \"code\",\n \"svg\"\n ],\n\n errorCallback: function(msg, err) {\n console.error(msg, err);\n }\n};\n\nexport const renderMathInElement = function(elem, options) {\n if (!elem) {\n throw new Error(\"No element provided to render\");\n }\n\n const optionsCopy = Object.assign({}, defaultAutoRenderOptions, options);\n const delimiterStrings = optionsCopy.delimiters.flatMap(d => [\n d.left,\n d.right\n ]);\n const mightHaveMath = text =>\n delimiterStrings.some(d => text.indexOf(d) !== -1);\n optionsCopy.mightHaveMath = mightHaveMath;\n renderElem(elem, optionsCopy);\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/*global katex */\nimport { Mutating } from '../mixins/mutating.js';\nimport { Template } from '../mixins/template.js';\n\nimport style from '../styles/d-math.css';\n\n// attaches renderMathInElement to window\nimport { renderMathInElement } from '../helpers/katex-auto-render';\n\nexport const katexJSURL = 'https://distill.pub/third-party/katex/katex.min.js';\nexport const katexCSSTag = '<link rel=\"stylesheet\" href=\"https://distill.pub/third-party/katex/katex.min.css\" crossorigin=\"anonymous\">';\n\nconst T = Template('d-math', `\n${katexCSSTag}\n<style>\n\n:host {\n display: inline-block;\n contain: style;\n}\n\n:host([block]) {\n display: block;\n}\n\n${style}\n</style>\n<span id='katex-container'></span>\n`);\n\n// DMath, not Math, because that would conflict with the JS built-in\nexport class DMath extends Mutating(T(HTMLElement)) {\n\n static set katexOptions(options) {\n DMath._katexOptions = options;\n if (DMath.katexOptions.delimiters) {\n if (!DMath.katexAdded) {\n DMath.addKatex();\n } else {\n DMath.katexLoadedCallback();\n }\n }\n }\n\n static get katexOptions() {\n if (!DMath._katexOptions) {\n DMath._katexOptions = {\n delimiters: [ { 'left':'$$', 'right':'$$', 'display': false } ]\n };\n }\n return DMath._katexOptions;\n }\n\n static katexLoadedCallback() {\n // render all d-math tags\n const mathTags = document.querySelectorAll('d-math');\n for (const mathTag of mathTags) {\n mathTag.renderContent();\n }\n // transform inline delimited math to d-math tags\n if (DMath.katexOptions.delimiters) {\n renderMathInElement(document.body, DMath.katexOptions);\n }\n }\n\n static addKatex() {\n // css tag can use this convenience function\n document.head.insertAdjacentHTML('beforeend', katexCSSTag);\n // script tag has to be created to work properly\n const scriptTag = document.createElement('script');\n scriptTag.src = katexJSURL;\n scriptTag.async = true;\n scriptTag.onload = DMath.katexLoadedCallback;\n scriptTag.crossorigin = 'anonymous';\n document.head.appendChild(scriptTag);\n\n DMath.katexAdded = true;\n }\n\n get options() {\n const localOptions = { displayMode: this.hasAttribute('block') };\n return Object.assign(localOptions, DMath.katexOptions);\n }\n\n connectedCallback() {\n super.connectedCallback();\n if (!DMath.katexAdded) {\n DMath.addKatex();\n }\n }\n\n renderContent() {\n if (typeof katex !== 'undefined') {\n const container = this.root.querySelector('#katex-container');\n katex.render(this.textContent, container, this.options);\n }\n }\n\n}\n\nDMath.katexAdded = false;\nDMath.inlineMathRendered = false;\nwindow.DMath = DMath; // TODO: check if this can be removed, or if we should expose a distill global\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\nexport function collect_citations(dom = document) {\n const citations = new Set();\n const citeTags = dom.querySelectorAll(\"d-cite\");\n for (const tag of citeTags) {\n const keyString = tag.getAttribute(\"key\") || tag.getAttribute(\"bibtex-key\");\n const keys = keyString.split(\",\").map(k => k.trim());\n for (const key of keys) {\n citations.add(key);\n }\n }\n return [...citations];\n}\n\nexport function inline_cite_short(keys) {\n function cite_string(key) {\n if (key in data.bibliography) {\n var n = data.citations.indexOf(key) + 1;\n return \"\" + n;\n } else {\n return \"?\";\n }\n }\n return \"[\" + keys.map(cite_string).join(\", \") + \"]\";\n}\n\nexport function inline_cite_long(keys) {\n function cite_string(key) {\n if (key in data.bibliography) {\n var ent = data.bibliography[key];\n var names = ent.author.split(\" and \");\n names = names.map(name => name.split(\",\")[0].trim());\n var year = ent.year;\n if (names.length == 1) return names[0] + \", \" + year;\n if (names.length == 2) return names[0] + \" & \" + names[1] + \", \" + year;\n if (names.length > 2) return names[0] + \", et al., \" + year;\n } else {\n return \"?\";\n }\n }\n return keys.map(cite_string).join(\", \");\n}\n\nfunction author_string(ent, template, sep, finalSep) {\n if (ent.author == null) {\n return \"\";\n }\n var names = ent.author.split(\" and \");\n let name_strings = names.map(name => {\n name = name.trim();\n if (name.indexOf(\",\") != -1) {\n var last = name.split(\",\")[0].trim();\n var firsts = name.split(\",\")[1];\n } else if (name.indexOf(\" \") != -1) {\n var last = name\n .split(\" \")\n .slice(-1)[0]\n .trim();\n var firsts = name\n .split(\" \")\n .slice(0, -1)\n .join(\" \");\n } else {\n var last = name.trim();\n }\n var initials = \"\";\n if (firsts != undefined) {\n initials = firsts\n .trim()\n .split(\" \")\n .map(s => s.trim()[0]);\n initials = initials.join(\".\") + \".\";\n }\n return template\n .replace(\"${F}\", firsts)\n .replace(\"${L}\", last)\n .replace(\"${I}\", initials)\n .trim(); // in case one of first or last was empty\n });\n if (names.length > 1) {\n var str = name_strings.slice(0, names.length - 1).join(sep);\n str += (finalSep || sep) + name_strings[names.length - 1];\n return str;\n } else {\n return name_strings[0];\n }\n}\n\nfunction venue_string(ent) {\n var cite = ent.journal || ent.booktitle || \"\";\n if (\"volume\" in ent) {\n var issue = ent.issue || ent.number;\n issue = issue != undefined ? \"(\" + issue + \")\" : \"\";\n cite += \", Vol \" + ent.volume + issue;\n }\n if (\"pages\" in ent) {\n cite += \", pp. \" + ent.pages;\n }\n if (cite != \"\") cite += \". \";\n if (\"publisher\" in ent) {\n cite += ent.publisher;\n if (cite[cite.length - 1] != \".\") cite += \".\";\n }\n return cite;\n}\n\nfunction link_string(ent) {\n if (\"url\" in ent) {\n var url = ent.url;\n var arxiv_match = /arxiv\\.org\\/abs\\/([0-9\\.]*)/.exec(url);\n if (arxiv_match != null) {\n url = `http://arxiv.org/pdf/${arxiv_match[1]}.pdf`;\n }\n\n if (url.slice(-4) == \".pdf\") {\n var label = \"PDF\";\n } else if (url.slice(-5) == \".html\") {\n var label = \"HTML\";\n }\n return ` &ensp;<a href=\"${url}\">[${label || \"link\"}]</a>`;\n } /* else if (\"doi\" in ent){\n return ` &ensp;<a href=\"https://doi.org/${ent.doi}\" >[DOI]</a>`;\n }*/ else {\n return \"\";\n }\n}\nfunction doi_string(ent, new_line) {\n if (\"doi\" in ent) {\n return `${new_line ? \"<br>\" : \"\"} <a href=\"https://doi.org/${\n ent.doi\n }\" style=\"text-decoration:inherit;\">DOI: ${ent.doi}</a>`;\n } else {\n return \"\";\n }\n}\n\nfunction title_string(ent) {\n return '<span class=\"title\">' + ent.title + \"</span> \";\n}\n\nexport function bibliography_cite(ent, fancy) {\n if (ent) {\n var cite = title_string(ent);\n cite += link_string(ent) + \"<br>\";\n if (ent.author) {\n cite += author_string(ent, \"${L}, ${I}\", \", \", \" and \");\n if (ent.year || ent.date) {\n cite += \", \";\n }\n }\n if (ent.year || ent.date) {\n cite += (ent.year || ent.date) + \". \";\n } else {\n cite += \". \";\n }\n cite += venue_string(ent);\n cite += doi_string(ent);\n return cite;\n /*var cite = author_string(ent, \"${L}, ${I}\", \", \", \" and \");\n if (ent.year || ent.date){\n cite += \", \" + (ent.year || ent.date) + \". \"\n } else {\n cite += \". \"\n }\n cite += \"<b>\" + ent.title + \"</b>. \";\n cite += venue_string(ent);\n cite += doi_string(ent);\n cite += link_string(ent);\n return cite*/\n } else {\n return \"?\";\n }\n}\n\nexport function hover_cite(ent) {\n if (ent) {\n var cite = \"\";\n cite += \"<strong>\" + ent.title + \"</strong>\";\n cite += link_string(ent);\n cite += \"<br>\";\n\n var a_str = author_string(ent, \"${I} ${L}\", \", \") + \".\";\n var v_str =\n venue_string(ent).trim() + \" \" + ent.year + \". \" + doi_string(ent, true);\n\n if ((a_str + v_str).length < Math.min(40, ent.title.length)) {\n cite += a_str + \" \" + v_str;\n } else {\n cite += a_str + \"<br>\" + v_str;\n }\n return cite;\n } else {\n return \"?\";\n }\n}\n\n//https://scholar.google.com/scholar?q=allintitle%3ADocument+author%3Aolah\nfunction get_GS_URL(ent) {\n if (ent) {\n var names = ent.author.split(\" and \");\n names = names.map(name => name.split(\",\")[0].trim());\n var title = ent.title.split(\" \"); //.replace(/[,:]/, \"\")\n var url = \"http://search.labs.crossref.org/dois?\"; //\"\"https://scholar.google.com/scholar?\"\n url += uris({ q: names.join(\" \") + \" \" + title.join(\" \") });\n }\n}\n","export function domContentLoaded() {\n return ['interactive', 'complete'].indexOf(document.readyState) !== -1;\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\nexport function _moveLegacyAffiliationFormatIntoArray(frontMatter) {\n // authors used to have propoerties \"affiliation\" and \"affiliationURL\".\n // We now encourage using an array for affiliations containing objects with\n // properties \"name\" and \"url\".\n for (let author of frontMatter.authors) {\n const hasOldStyle = Boolean(author.affiliation)\n const hasNewStyle = Boolean(author.affiliations)\n if (!hasOldStyle) continue;\n if (hasNewStyle) {\n console.warn(`Author ${author.author} has both old-style (\"affiliation\" & \"affiliationURL\") and new style (\"affiliations\") affiliation information!`)\n } else {\n let newAffiliation = {\n \"name\": author.affiliation\n }\n if (author.affiliationURL) newAffiliation.url = author.affiliationURL;\n author.affiliations = [newAffiliation];\n }\n }\n return frontMatter\n}\n\nexport function parseFrontmatter(element) {\n const scriptTag = element.firstElementChild;\n if (scriptTag) {\n const type = scriptTag.getAttribute('type');\n if (type.split('/')[1] == 'json') {\n const content = scriptTag.textContent;\n const parsed = JSON.parse(content);\n return _moveLegacyAffiliationFormatIntoArray(parsed);\n } else {\n console.error('Distill only supports JSON frontmatter tags anymore; no more YAML.');\n }\n } else {\n 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.');\n }\n return {};\n}\n\nexport class FrontMatter extends HTMLElement {\n\n static get is() { return 'd-front-matter'; }\n\n constructor() {\n super();\n\n const options = {childList: true, characterData: true, subtree: true};\n const observer = new MutationObserver( (entries) => {\n for (const entry of entries) {\n if (entry.target.nodeName === 'SCRIPT' || entry.type === 'characterData') {\n const data = parseFrontmatter(this);\n this.notify(data);\n }\n }\n });\n observer.observe(this, options);\n }\n\n notify(data) {\n const options = { detail: data, bubbles: true };\n const event = new CustomEvent('onFrontMatterChanged', options);\n document.dispatchEvent(event);\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// no appendix -> add appendix\n// title in front, no h1 -> add it\n// no title in front, h1 -> read and put into frontMatter\n// footnote -> footnote list\n// break up bib\n// if citation, no bib-list -> add citation-list\n\n// if authors, no byline -> add byline\n\nexport default function(dom, data) {\n const body = dom.body;\n const article = body.querySelector('d-article');\n\n // If we don't have an article tag, something weird is going on—giving up.\n if (!article) {\n console.warn('No d-article tag found; skipping adding optional components!');\n return;\n }\n\n let byline = dom.querySelector('d-byline');\n if (!byline) {\n if (data.authors) {\n byline = dom.createElement('d-byline');\n body.insertBefore(byline, article);\n } else {\n console.warn('No authors found in front matter; please add them before submission!');\n }\n }\n\n let title = dom.querySelector('d-title');\n if (!title) {\n title = dom.createElement('d-title');\n body.insertBefore(title, byline);\n }\n\n let h1 = title.querySelector('h1');\n if (!h1) {\n h1 = dom.createElement('h1');\n h1.textContent = data.title;\n title.insertBefore(h1, title.firstChild);\n }\n\n const hasPassword = typeof data.password !== 'undefined';\n let interstitial = body.querySelector('d-interstitial');\n if (hasPassword && !interstitial) {\n const inBrowser = typeof window !== 'undefined';\n const onLocalhost = inBrowser && window.location.hostname.includes('localhost');\n if (!inBrowser || !onLocalhost) {\n interstitial = dom.createElement('d-interstitial');\n interstitial.password = data.password;\n body.insertBefore(interstitial, body.firstChild);\n }\n } else if (!hasPassword && interstitial) {\n interstitial.parentElement.removeChild(this);\n }\n\n let appendix = dom.querySelector('d-appendix');\n if (!appendix) {\n appendix = dom.createElement('d-appendix');\n dom.body.appendChild(appendix);\n }\n\n let footnoteList = dom.querySelector('d-footnote-list');\n if (!footnoteList) {\n footnoteList = dom.createElement('d-footnote-list');\n appendix.appendChild(footnoteList);\n }\n\n let citationList = dom.querySelector('d-citation-list');\n if (!citationList) {\n citationList = dom.createElement('d-citation-list');\n appendix.appendChild(citationList);\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\nimport { FrontMatter, mergeFromYMLFrontmatter } from \"./front-matter\";\nimport { DMath } from \"./components/d-math\";\nimport { collect_citations } from \"./helpers/citation.js\";\nimport { domContentLoaded } from \"./helpers/domContentLoaded.js\";\nimport { parseFrontmatter } from \"./components/d-front-matter\";\nimport optionalComponents from \"./transforms/optional-components\";\n\nconst frontMatter = new FrontMatter();\n\nexport const Controller = {\n frontMatter: frontMatter,\n waitingOn: {\n bibliography: [],\n citations: []\n },\n listeners: {\n onCiteKeyCreated(event) {\n const [citeTag, keys] = event.detail;\n\n // ensure we have citations\n if (!frontMatter.citationsCollected) {\n // console.debug('onCiteKeyCreated, but unresolved dependency (\"citations\"). Enqueing.');\n Controller.waitingOn.citations.push(() =>\n Controller.listeners.onCiteKeyCreated(event)\n );\n return;\n }\n\n // ensure we have a loaded bibliography\n if (!frontMatter.bibliographyParsed) {\n // console.debug('onCiteKeyCreated, but unresolved dependency (\"bibliography\"). Enqueing.');\n Controller.waitingOn.bibliography.push(() =>\n Controller.listeners.onCiteKeyCreated(event)\n );\n return;\n }\n\n const numbers = keys.map(key => frontMatter.citations.indexOf(key));\n citeTag.numbers = numbers;\n const entries = keys.map(key => frontMatter.bibliography.get(key));\n citeTag.entries = entries;\n },\n\n onCiteKeyChanged() {\n // const [citeTag, keys] = event.detail;\n\n // update citations\n frontMatter.citations = collect_citations();\n frontMatter.citationsCollected = true;\n for (const waitingCallback of Controller.waitingOn.citations.slice()) {\n waitingCallback();\n }\n\n // update bibliography\n const citationListTag = document.querySelector(\"d-citation-list\");\n const bibliographyEntries = new Map(\n frontMatter.citations.map(citationKey => {\n return [citationKey, frontMatter.bibliography.get(citationKey)];\n })\n );\n citationListTag.citations = bibliographyEntries;\n\n const citeTags = document.querySelectorAll(\"d-cite\");\n for (const citeTag of citeTags) {\n console.log(citeTag);\n const keys = citeTag.keys;\n const numbers = keys.map(key => frontMatter.citations.indexOf(key));\n citeTag.numbers = numbers;\n const entries = keys.map(key => frontMatter.bibliography.get(key));\n citeTag.entries = entries;\n }\n },\n\n onCiteKeyRemoved(event) {\n Controller.listeners.onCiteKeyChanged(event);\n },\n\n onBibliographyChanged(event) {\n const citationListTag = document.querySelector(\"d-citation-list\");\n\n const bibliography = event.detail;\n\n frontMatter.bibliography = bibliography;\n frontMatter.bibliographyParsed = true;\n for (const waitingCallback of Controller.waitingOn.bibliography.slice()) {\n waitingCallback();\n }\n\n // ensure we have citations\n if (!frontMatter.citationsCollected) {\n Controller.waitingOn.citations.push(function() {\n Controller.listeners.onBibliographyChanged({\n target: event.target,\n detail: event.detail\n });\n });\n return;\n }\n\n if (citationListTag.hasAttribute(\"distill-prerendered\")) {\n console.debug(\"Citation list was prerendered; not updating it.\");\n } else {\n const entries = new Map(\n frontMatter.citations.map(citationKey => {\n return [citationKey, frontMatter.bibliography.get(citationKey)];\n })\n );\n citationListTag.citations = entries;\n }\n },\n\n onFootnoteChanged() {\n // const footnote = event.detail;\n //TODO: optimize to only update current footnote\n const footnotesList = document.querySelector(\"d-footnote-list\");\n if (footnotesList) {\n const footnotes = document.querySelectorAll(\"d-footnote\");\n footnotesList.footnotes = footnotes;\n }\n },\n\n onFrontMatterChanged(event) {\n const data = event.detail;\n mergeFromYMLFrontmatter(frontMatter, data);\n\n const interstitial = document.querySelector(\"d-interstitial\");\n if (interstitial) {\n if (typeof frontMatter.password !== \"undefined\") {\n interstitial.password = frontMatter.password;\n } else {\n interstitial.parentElement.removeChild(interstitial);\n }\n }\n\n const prerendered = document.body.hasAttribute(\"distill-prerendered\");\n if (!prerendered && domContentLoaded()) {\n optionalComponents(document, frontMatter);\n\n const appendix = document.querySelector(\"distill-appendix\");\n if (appendix) {\n appendix.frontMatter = frontMatter;\n }\n\n const byline = document.querySelector(\"d-byline\");\n if (byline) {\n byline.frontMatter = frontMatter;\n }\n\n if (data.katex) {\n DMath.katexOptions = data.katex;\n }\n }\n },\n\n DOMContentLoaded() {\n if (Controller.loaded) {\n console.warn(\n \"Controller received DOMContentLoaded but was already loaded!\"\n );\n return;\n } else if (!domContentLoaded()) {\n console.warn(\n \"Controller received DOMContentLoaded at document.readyState: \" +\n document.readyState +\n \"!\"\n );\n return;\n } else {\n Controller.loaded = true;\n console.debug(\"Runlevel 4: Controller running DOMContentLoaded\");\n }\n\n const frontMatterTag = document.querySelector(\"d-front-matter\");\n if (frontMatterTag) {\n const data = parseFrontmatter(frontMatterTag);\n Controller.listeners.onFrontMatterChanged({ detail: data });\n }\n\n // Resolving \"citations\" dependency due to initial DOM load\n frontMatter.citations = collect_citations();\n frontMatter.citationsCollected = true;\n for (const waitingCallback of Controller.waitingOn.citations.slice()) {\n waitingCallback();\n }\n\n if (frontMatter.bibliographyParsed) {\n for (const waitingCallback of Controller.waitingOn.bibliography.slice()) {\n waitingCallback();\n }\n }\n\n const footnotesList = document.querySelector(\"d-footnote-list\");\n if (footnotesList) {\n const footnotes = document.querySelectorAll(\"d-footnote\");\n footnotesList.footnotes = footnotes;\n }\n }\n } // listeners\n}; // Controller\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\nimport base from './styles-base.css';\nimport layout from './styles-layout.css';\nimport print from './styles-print.css';\nimport byline from './d-byline.css';\nimport article from './d-article.css';\nimport title from './d-title.css';\nimport math from './d-math.css';\n\nexport const styles = base + layout + title + byline + article + math + print;\n\nexport function makeStyleTag(dom) {\n\n const styleTagId = 'distill-prerendered-styles';\n const prerenderedTag = dom.getElementById(styleTagId);\n if (!prerenderedTag) {\n const styleTag = dom.createElement('style');\n styleTag.id = styleTagId;\n styleTag.type = 'text/css';\n const cssTextTag = dom.createTextNode(styles);\n styleTag.appendChild(cssTextTag);\n const firstScriptTag = dom.head.querySelector('script');\n dom.head.insertBefore(styleTag, firstScriptTag);\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\nexport function addPolyfill(polyfill, polyfillLoadedCallback) {\n console.debug('Runlevel 0: Polyfill required: ' + polyfill.name);\n const script = document.createElement('script');\n script.src = polyfill.url;\n script.async = false;\n if (polyfillLoadedCallback) {\n script.onload = function() { polyfillLoadedCallback(polyfill); };\n }\n script.onerror = function() {\n new Error('Runlevel 0: Polyfills failed to load script ' + polyfill.name);\n };\n document.head.appendChild(script);\n}\n\nexport const polyfills = [\n {\n name: 'WebComponents',\n support: function() {\n return 'customElements' in window &&\n 'attachShadow' in Element.prototype &&\n 'getRootNode' in Element.prototype &&\n 'content' in document.createElement('template') &&\n 'Promise' in window &&\n 'from' in Array;\n },\n url: 'https://distill.pub/third-party/polyfills/webcomponents-lite.js'\n }, {\n name: 'IntersectionObserver',\n support: function() {\n return 'IntersectionObserver' in window &&\n 'IntersectionObserverEntry' in window;\n },\n url: 'https://distill.pub/third-party/polyfills/intersection-observer.js'\n },\n];\n\nexport class Polyfills {\n\n static browserSupportsAllFeatures() {\n return polyfills.every((poly) => poly.support());\n }\n\n static load(callback) {\n // Define an intermediate callback that checks if all is loaded.\n const polyfillLoaded = function(polyfill) {\n polyfill.loaded = true;\n console.debug('Runlevel 0: Polyfill has finished loading: ' + polyfill.name);\n // console.debug(window[polyfill.name]);\n if (Polyfills.neededPolyfills.every((poly) => poly.loaded)) {\n console.debug('Runlevel 0: All required polyfills have finished loading.');\n console.debug('Runlevel 0->1.');\n window.distillRunlevel = 1;\n callback();\n }\n };\n // Add polyfill script tags\n for (const polyfill of Polyfills.neededPolyfills) {\n addPolyfill(polyfill, polyfillLoaded);\n }\n }\n\n static get neededPolyfills() {\n if (!Polyfills._neededPolyfills) {\n Polyfills._neededPolyfills = polyfills.filter((poly) => !poly.support());\n }\n return Polyfills._neededPolyfills;\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// const marginSmall = 16;\n// const marginLarge = 3 * marginSmall;\n// const margin = marginSmall + marginLarge;\n// const gutter = marginSmall;\n// const outsetAmount = margin / 2;\n// const numCols = 4;\n// const numGutters = numCols - 1;\n// const columnWidth = (768 - 2 * marginLarge - numGutters * gutter) / numCols;\n//\n// const screenwidth = 768;\n// const pageWidth = screenwidth - 2 * marginLarge;\n// const bodyWidth = pageWidth - columnWidth - gutter;\n\nexport function body(selector) {\n return `${selector} {\n grid-column: left / text;\n }\n `;\n}\n\nexport function page(selector) {\n return `${selector} {\n grid-column: left / page;\n }\n `;\n}\n\nexport function screen(selector) {\n return `${selector} {\n grid-column: start / end;\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\nimport { Template } from '../mixins/template';\nimport { body } from '../helpers/layout';\n\nconst T = Template('d-abstract', `\n<style>\n :host {\n font-size: 1.25rem;\n line-height: 1.6em;\n color: rgba(0, 0, 0, 0.7);\n -webkit-font-smoothing: antialiased;\n }\n\n ::slotted(p) {\n margin-top: 0;\n margin-bottom: 1em;\n grid-column: text-start / middle-end;\n }\n ${body('d-abstract')}\n</style>\n\n<slot></slot>\n`);\n\nexport class Abstract extends T(HTMLElement) {\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\nimport { Template } from '../mixins/template';\n\nconst T = Template('d-appendix', `\n<style>\n\nd-appendix {\n contain: layout style;\n font-size: 0.8em;\n line-height: 1.7em;\n margin-top: 60px;\n margin-bottom: 0;\n border-top: 1px solid rgba(0, 0, 0, 0.1);\n color: rgba(0,0,0,0.5);\n padding-top: 60px;\n padding-bottom: 48px;\n}\n\nd-appendix h3 {\n grid-column: page-start / text-start;\n font-size: 15px;\n font-weight: 500;\n margin-top: 1em;\n margin-bottom: 0;\n color: rgba(0,0,0,0.65);\n}\n\nd-appendix h3 + * {\n margin-top: 1em;\n}\n\nd-appendix ol {\n padding: 0 0 0 15px;\n}\n\n@media (min-width: 768px) {\n d-appendix ol {\n padding: 0 0 0 30px;\n margin-left: -30px;\n }\n}\n\nd-appendix li {\n margin-bottom: 1em;\n}\n\nd-appendix a {\n color: rgba(0, 0, 0, 0.6);\n}\n\nd-appendix > * {\n grid-column: text;\n}\n\nd-appendix > d-footnote-list,\nd-appendix > d-citation-list,\nd-appendix > distill-appendix {\n grid-column: screen;\n}\n\n</style>\n\n`, false);\n\nexport class Appendix extends T(HTMLElement) {\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// import { Template } from '../mixins/template';\n// import { Controller } from '../controller';\n\nconst isOnlyWhitespace = /^\\s*$/;\n\nexport class Article extends HTMLElement {\n static get is() { return 'd-article'; }\n\n constructor() {\n super();\n\n new MutationObserver( (mutations) => {\n for (const mutation of mutations) {\n for (const addedNode of mutation.addedNodes) {\n switch (addedNode.nodeName) {\n case '#text': { // usually text nodes are only linebreaks.\n const text = addedNode.nodeValue;\n if (!isOnlyWhitespace.test(text)) {\n console.warn('Use of unwrapped text in distill articles is discouraged as it breaks layout! Please wrap any text in a <span> or <p> tag. We found the following text: ' + text);\n const wrapper = document.createElement('span');\n wrapper.innerHTML = addedNode.nodeValue;\n addedNode.parentNode.insertBefore(wrapper, addedNode);\n addedNode.parentNode.removeChild(addedNode);\n }\n } break;\n }\n }\n }\n }).observe(this, {childList: true});\n }\n\n}\n","/* start bibtexParse 0.0.22 */\n\n//Original work by Henrik Muehe (c) 2010\n//\n//CommonJS port by Mikola Lysenko 2013\n//\n//Port to Browser lib by ORCID / RCPETERS\n//\n//Issues:\n//no comment handling within strings\n//no string concatenation\n//no variable values yet\n//Grammar implemented here:\n//bibtex -> (string | preamble | comment | entry)*;\n//string -> '@STRING' '{' key_equals_value '}';\n//preamble -> '@PREAMBLE' '{' value '}';\n//comment -> '@COMMENT' '{' value '}';\n//entry -> '@' key '{' key ',' key_value_list '}';\n//key_value_list -> key_equals_value (',' key_equals_value)*;\n//key_equals_value -> key '=' value;\n//value -> value_quotes | value_braces | key;\n//value_quotes -> '\"' .*? '\"'; // not quite\n//value_braces -> '{' .*? '\"'; // not quite\n(function(exports) {\n\n function BibtexParser() {\n \n this.months = [\"jan\", \"feb\", \"mar\", \"apr\", \"may\", \"jun\", \"jul\", \"aug\", \"sep\", \"oct\", \"nov\", \"dec\"];\n this.notKey = [',','{','}',' ','='];\n this.pos = 0;\n this.input = \"\";\n this.entries = new Array();\n\n this.currentEntry = \"\";\n\n this.setInput = function(t) {\n this.input = t;\n };\n\n this.getEntries = function() {\n return this.entries;\n };\n\n this.isWhitespace = function(s) {\n return (s == ' ' || s == '\\r' || s == '\\t' || s == '\\n');\n };\n\n this.match = function(s, canCommentOut) {\n if (canCommentOut == undefined || canCommentOut == null)\n canCommentOut = true;\n this.skipWhitespace(canCommentOut);\n if (this.input.substring(this.pos, this.pos + s.length) == s) {\n this.pos += s.length;\n } else {\n throw \"Token mismatch, expected \" + s + \", found \"\n + this.input.substring(this.pos);\n };\n this.skipWhitespace(canCommentOut);\n };\n\n this.tryMatch = function(s, canCommentOut) {\n if (canCommentOut == undefined || canCommentOut == null)\n canCommentOut = true;\n this.skipWhitespace(canCommentOut);\n if (this.input.substring(this.pos, this.pos + s.length) == s) {\n return true;\n } else {\n return false;\n };\n this.skipWhitespace(canCommentOut);\n };\n\n /* when search for a match all text can be ignored, not just white space */\n this.matchAt = function() {\n while (this.input.length > this.pos && this.input[this.pos] != '@') {\n this.pos++;\n };\n\n if (this.input[this.pos] == '@') {\n return true;\n };\n return false;\n };\n\n this.skipWhitespace = function(canCommentOut) {\n while (this.isWhitespace(this.input[this.pos])) {\n this.pos++;\n };\n if (this.input[this.pos] == \"%\" && canCommentOut == true) {\n while (this.input[this.pos] != \"\\n\") {\n this.pos++;\n };\n this.skipWhitespace(canCommentOut);\n };\n };\n\n this.value_braces = function() {\n var bracecount = 0;\n this.match(\"{\", false);\n var start = this.pos;\n var escaped = false;\n while (true) {\n if (!escaped) {\n if (this.input[this.pos] == '}') {\n if (bracecount > 0) {\n bracecount--;\n } else {\n var end = this.pos;\n this.match(\"}\", false);\n return this.input.substring(start, end);\n };\n } else if (this.input[this.pos] == '{') {\n bracecount++;\n } else if (this.pos >= this.input.length - 1) {\n throw \"Unterminated value\";\n };\n };\n if (this.input[this.pos] == '\\\\' && escaped == false)\n escaped = true;\n else\n escaped = false;\n this.pos++;\n };\n };\n\n this.value_comment = function() {\n var str = '';\n var brcktCnt = 0;\n while (!(this.tryMatch(\"}\", false) && brcktCnt == 0)) {\n str = str + this.input[this.pos];\n if (this.input[this.pos] == '{')\n brcktCnt++;\n if (this.input[this.pos] == '}')\n brcktCnt--;\n if (this.pos >= this.input.length - 1) {\n throw \"Unterminated value:\" + this.input.substring(start);\n };\n this.pos++;\n };\n return str;\n };\n\n this.value_quotes = function() {\n this.match('\"', false);\n var start = this.pos;\n var escaped = false;\n while (true) {\n if (!escaped) {\n if (this.input[this.pos] == '\"') {\n var end = this.pos;\n this.match('\"', false);\n return this.input.substring(start, end);\n } else if (this.pos >= this.input.length - 1) {\n throw \"Unterminated value:\" + this.input.substring(start);\n };\n }\n if (this.input[this.pos] == '\\\\' && escaped == false)\n escaped = true;\n else\n escaped = false;\n this.pos++;\n };\n };\n\n this.single_value = function() {\n var start = this.pos;\n if (this.tryMatch(\"{\")) {\n return this.value_braces();\n } else if (this.tryMatch('\"')) {\n return this.value_quotes();\n } else {\n var k = this.key();\n if (k.match(\"^[0-9]+$\"))\n return k;\n else if (this.months.indexOf(k.toLowerCase()) >= 0)\n return k.toLowerCase();\n else\n throw \"Value expected:\" + this.input.substring(start) + ' for key: ' + k;\n \n };\n };\n\n this.value = function() {\n var values = [];\n values.push(this.single_value());\n while (this.tryMatch(\"#\")) {\n this.match(\"#\");\n values.push(this.single_value());\n };\n return values.join(\"\");\n };\n\n this.key = function() {\n var start = this.pos;\n while (true) {\n if (this.pos >= this.input.length) {\n throw \"Runaway key\";\n };\n // а-яА-Я is Cyrillic\n //console.log(this.input[this.pos]);\n if (this.notKey.indexOf(this.input[this.pos]) >= 0) {\n return this.input.substring(start, this.pos);\n } else {\n this.pos++;\n \n };\n };\n };\n\n this.key_equals_value = function() {\n var key = this.key();\n if (this.tryMatch(\"=\")) {\n this.match(\"=\");\n var val = this.value();\n return [ key, val ];\n } else {\n throw \"... = value expected, equals sign missing:\"\n + this.input.substring(this.pos);\n };\n };\n\n this.key_value_list = function() {\n var kv = this.key_equals_value();\n this.currentEntry['entryTags'] = {};\n this.currentEntry['entryTags'][kv[0]] = kv[1];\n while (this.tryMatch(\",\")) {\n this.match(\",\");\n // fixes problems with commas at the end of a list\n if (this.tryMatch(\"}\")) {\n break;\n }\n ;\n kv = this.key_equals_value();\n this.currentEntry['entryTags'][kv[0]] = kv[1];\n };\n };\n\n this.entry_body = function(d) {\n this.currentEntry = {};\n this.currentEntry['citationKey'] = this.key();\n this.currentEntry['entryType'] = d.substring(1);\n this.match(\",\");\n this.key_value_list();\n this.entries.push(this.currentEntry);\n };\n\n this.directive = function() {\n this.match(\"@\");\n return \"@\" + this.key();\n };\n\n this.preamble = function() {\n this.currentEntry = {};\n this.currentEntry['entryType'] = 'PREAMBLE';\n this.currentEntry['entry'] = this.value_comment();\n this.entries.push(this.currentEntry);\n };\n\n this.comment = function() {\n this.currentEntry = {};\n this.currentEntry['entryType'] = 'COMMENT';\n this.currentEntry['entry'] = this.value_comment();\n this.entries.push(this.currentEntry);\n };\n\n this.entry = function(d) {\n this.entry_body(d);\n };\n\n this.bibtex = function() {\n while (this.matchAt()) {\n var d = this.directive();\n this.match(\"{\");\n if (d == \"@STRING\") {\n this.string();\n } else if (d == \"@PREAMBLE\") {\n this.preamble();\n } else if (d == \"@COMMENT\") {\n this.comment();\n } else {\n this.entry(d);\n }\n this.match(\"}\");\n };\n };\n };\n \n exports.toJSON = function(bibtex) {\n var b = new BibtexParser();\n b.setInput(bibtex);\n b.bibtex();\n return b.entries;\n };\n\n /* added during hackathon don't hate on me */\n exports.toBibtex = function(json) {\n var out = '';\n for ( var i in json) {\n out += \"@\" + json[i].entryType;\n out += '{';\n if (json[i].citationKey)\n out += json[i].citationKey + ', ';\n if (json[i].entry)\n out += json[i].entry ;\n if (json[i].entryTags) {\n var tags = '';\n for (var jdx in json[i].entryTags) {\n if (tags.length != 0)\n tags += ', ';\n tags += jdx + '= {' + json[i].entryTags[jdx] + '}';\n }\n out += tags;\n }\n out += '}\\n\\n';\n }\n return out;\n \n };\n\n})(typeof exports === 'undefined' ? this['bibtexParse'] = {} : exports);\n\n/* end bibtexParse */\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\nimport bibtexParse from 'bibtex-parse-js';\n\nfunction normalizeTag(string) {\n return string\n .replace(/[\\t\\n ]+/g, ' ')\n .replace(/{\\\\[\"^`.'acu~Hvs]( )?([a-zA-Z])}/g, (full, x, char) => char)\n .replace(/{\\\\([a-zA-Z])}/g, (full, char) => char);\n}\n\nexport function parseBibtex(bibtex) {\n const bibliography = new Map();\n const parsedEntries = bibtexParse.toJSON(bibtex);\n for (const entry of parsedEntries) {\n // normalize tags; note entryTags is an object, not Map\n for (const [key, value] of Object.entries(entry.entryTags)) {\n entry.entryTags[key.toLowerCase()] = normalizeTag(value);\n }\n entry.entryTags.type = entry.entryType;\n // add to bibliography\n bibliography.set(entry.citationKey, entry.entryTags);\n }\n return bibliography;\n}\n\nexport function serializeFrontmatterToBibtex(frontMatter) {\n return `@article{${frontMatter.slug},\n author = {${frontMatter.bibtexAuthors}},\n title = {${frontMatter.title}},\n journal = {${frontMatter.journal.title}},\n year = {${frontMatter.publishedYear}},\n note = {${frontMatter.url}},\n doi = {${frontMatter.doi}}\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\nimport { parseBibtex } from '../helpers/bibtex';\n\nexport function parseBibliography(element) {\n const scriptTag = element.firstElementChild;\n if (scriptTag && scriptTag.tagName === 'SCRIPT') {\n if (scriptTag.type == 'text/bibtex') {\n const bibtex = element.firstElementChild.textContent;\n return parseBibtex(bibtex);\n } else if (scriptTag.type == 'text/json') {\n return new Map(JSON.parse(scriptTag.textContent));\n } else {\n console.warn('Unsupported bibliography script tag type: ' + scriptTag.type);\n }\n } else {\n console.warn('Bibliography did not have any script tag.');\n }\n}\n\nexport class Bibliography extends HTMLElement {\n\n static get is() { return 'd-bibliography'; }\n\n constructor() {\n super();\n\n // set up mutation observer\n const options = {childList: true, characterData: true, subtree: true};\n const observer = new MutationObserver( (entries) => {\n for (const entry of entries) {\n if (entry.target.nodeName === 'SCRIPT' || entry.type === 'characterData') {\n this.parseIfPossible();\n }\n }\n });\n observer.observe(this, options);\n }\n\n connectedCallback() {\n requestAnimationFrame(() => {\n this.parseIfPossible();\n });\n }\n\n parseIfPossible() {\n const scriptTag = this.querySelector('script');\n if (!scriptTag) return;\n if (scriptTag.type == 'text/bibtex') {\n const newBibtex = scriptTag.textContent;\n if (this.bibtex !== newBibtex) {\n this.bibtex = newBibtex;\n const bibliography = parseBibtex(this.bibtex);\n this.notify(bibliography);\n }\n } else if (scriptTag.type == 'text/json') {\n const bibliography = new Map(JSON.parse(scriptTag.textContent));\n this.notify(bibliography);\n } else {\n console.warn('Unsupported bibliography script tag type: ' + scriptTag.type);\n }\n }\n\n notify(bibliography) {\n const options = { detail: bibliography, bubbles: true };\n const event = new CustomEvent('onBibliographyChanged', options);\n this.dispatchEvent(event);\n }\n\n /* observe 'src' attribute */\n\n static get observedAttributes() {\n return ['src'];\n }\n\n receivedBibtex(event) {\n const bibliography = parseBibtex(event.target.response);\n this.notify(bibliography);\n }\n\n attributeChangedCallback(name, oldValue, newValue) {\n var oReq = new XMLHttpRequest();\n oReq.onload = (e) => this.receivedBibtex(e);\n oReq.onerror = () => console.warn(`Could not load Bibtex! (tried ${newValue})`);\n oReq.responseType = 'text';\n oReq.open('GET', newValue, true);\n oReq.send();\n }\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// import style from '../styles/d-byline.css';\n\nexport function bylineTemplate(frontMatter) {\n return `\n <div class=\"byline grid\">\n <div class=\"authors-affiliations grid\">\n <h3>Authors</h3>\n <h3>Affiliations</h3>\n ${frontMatter.authors.map(author => `\n <p class=\"author\">\n ${author.personalURL ? `\n <a class=\"name\" href=\"${author.personalURL}\">${author.name}</a>` : `\n <span class=\"name\">${author.name}</span>`}\n </p>\n <p class=\"affiliation\">\n ${author.affiliations.map(affiliation =>\n affiliation.url ? `<a class=\"affiliation\" href=\"${affiliation.url}\">${affiliation.name}</a>` : `<span class=\"affiliation\">${affiliation.name}</span>`\n ).join(', ')}\n </p>\n `).join('')}\n </div>\n <div>\n <h3>Published</h3>\n ${frontMatter.publishedDate ? `\n <p>${frontMatter.publishedMonth} ${frontMatter.publishedDay}, ${frontMatter.publishedYear}</p> ` : `\n <p><em>Not published yet.</em></p>`}\n </div>\n </div>\n`;\n}\n\nexport class Byline extends HTMLElement {\n\n static get is() { return 'd-byline'; }\n\n set frontMatter(frontMatter) {\n this.innerHTML = bylineTemplate(frontMatter);\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\nimport { Template } from \"../mixins/template\";\nimport { hover_cite, bibliography_cite } from \"../helpers/citation\";\n\nconst T = Template(\n \"d-cite\",\n `\n<style>\n\n:host {\n display: inline-block;\n}\n\n.citation {\n color: hsla(206, 90%, 20%, 0.7);\n}\n\n.citation-number {\n cursor: default;\n white-space: nowrap;\n font-family: -apple-system, BlinkMacSystemFont, \"Roboto\", Helvetica, sans-serif;\n font-size: 75%;\n color: hsla(206, 90%, 20%, 0.7);\n display: inline-block;\n line-height: 1.1em;\n text-align: center;\n position: relative;\n top: -2px;\n margin: 0 2px;\n}\n\nfigcaption .citation-number {\n font-size: 11px;\n font-weight: normal;\n top: -2px;\n line-height: 1em;\n}\n\nul {\n margin: 0;\n padding: 0;\n list-style-type: none;\n}\n\nul li {\n padding: 15px 10px 15px 10px;\n border-bottom: 1px solid rgba(0,0,0,0.1)\n}\n\nul li:last-of-type {\n border-bottom: none;\n}\n\n</style>\n\n<d-hover-box id=\"hover-box\"></d-hover-box>\n\n<div id=\"citation-\" class=\"citation\">\n <span class=\"citation-number\"></span>\n</div>\n`\n);\n\nexport class Cite extends T(HTMLElement) {\n /* Lifecycle */\n constructor() {\n super();\n this._numbers = [];\n this._entries = [];\n }\n\n connectedCallback() {\n this.outerSpan = this.root.querySelector(\"#citation-\");\n this.innerSpan = this.root.querySelector(\".citation-number\");\n this.hoverBox = this.root.querySelector(\"d-hover-box\");\n window.customElements.whenDefined(\"d-hover-box\").then(() => {\n this.hoverBox.listen(this);\n });\n // in case this component got connected after values were set\n if (this.numbers) {\n this.displayNumbers(this.numbers);\n }\n if (this.entries) {\n this.displayEntries(this.entries);\n }\n }\n\n //TODO This causes an infinite loop on firefox with polyfills.\n // This is only needed for interactive editing so no priority.\n // disconnectedCallback() {\n // const options = { detail: [this, this.keys], bubbles: true };\n // const event = new CustomEvent('onCiteKeyRemoved', options);\n // document.dispatchEvent(event);\n // }\n\n /* observe 'key' attribute */\n\n static get observedAttributes() {\n return [\"key\", \"bibtex-key\"];\n }\n\n attributeChangedCallback(name, oldValue, newValue) {\n const eventName = oldValue ? \"onCiteKeyChanged\" : \"onCiteKeyCreated\";\n const keys = newValue.split(\",\").map(k => k.trim());\n const options = { detail: [this, keys], bubbles: true };\n const event = new CustomEvent(eventName, options);\n document.dispatchEvent(event);\n }\n\n set key(value) {\n this.setAttribute(\"key\", value);\n }\n\n get key() {\n return this.getAttribute(\"key\") || this.getAttribute(\"bibtex-key\");\n }\n\n get keys() {\n const result = this.key.split(\",\");\n console.log(result);\n return result;\n }\n\n /* Setters & Rendering */\n\n set numbers(numbers) {\n this._numbers = numbers;\n this.displayNumbers(numbers);\n }\n\n get numbers() {\n return this._numbers;\n }\n\n displayNumbers(numbers) {\n if (!this.innerSpan) return;\n const numberStrings = numbers.map(index => {\n return index == -1 ? \"?\" : index + 1 + \"\";\n });\n const textContent = \"[\" + numberStrings.join(\", \") + \"]\";\n this.innerSpan.textContent = textContent;\n }\n\n set entries(entries) {\n this._entries = entries;\n this.displayEntries(entries);\n }\n\n get entries() {\n return this._entries;\n }\n\n displayEntries(entries) {\n if (!this.hoverBox) return;\n this.hoverBox.innerHTML = `<ul>\n ${entries\n .map(hover_cite)\n .map(html => `<li>${html}</li>`)\n .join(\"\\n\")}\n </ul>`;\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\nimport { bibliography_cite } from '../helpers/citation';\n\nconst styles = `\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\nexport function renderCitationList(element, entries, dom=document) {\n if (entries.size > 0) {\n element.style.display = '';\n let list = element.querySelector('.references');\n if (list) {\n list.innerHTML = '';\n } else {\n const stylesTag = dom.createElement('style');\n stylesTag.innerHTML = styles;\n element.appendChild(stylesTag);\n\n const heading = dom.createElement('h3');\n heading.id = 'references';\n heading.textContent = 'References';\n element.appendChild(heading);\n\n list = dom.createElement('ol');\n list.id = 'references-list';\n list.className = 'references';\n element.appendChild(list);\n }\n\n for (const [key, entry] of entries) {\n const listItem = dom.createElement('li');\n listItem.id = key;\n listItem.innerHTML = bibliography_cite(entry);\n list.appendChild(listItem);\n }\n } else {\n element.style.display = 'none';\n }\n}\n\nexport class CitationList extends HTMLElement {\n\n static get is() { return 'd-citation-list'; }\n\n connectedCallback() {\n if (!this.hasAttribute('distill-prerendered')) {\n this.style.display = 'none';\n }\n }\n\n set citations(citations) {\n renderCitationList(this, citations);\n }\n\n}\n","\n/* **********************************************\n Begin prism-core.js\n********************************************** */\n\nvar _self = (typeof window !== 'undefined')\n\t? window // if in browser\n\t: (\n\t\t(typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope)\n\t\t? self // if in worker\n\t\t: {} // if in node js\n\t);\n\n/**\n * Prism: Lightweight, robust, elegant syntax highlighting\n * MIT license http://www.opensource.org/licenses/mit-license.php/\n * @author Lea Verou http://lea.verou.me\n */\n\nvar Prism = (function (_self){\n\n// Private helper vars\nvar lang = /\\blang(?:uage)?-([\\w-]+)\\b/i;\nvar uniqueId = 0;\n\n\nvar _ = {\n\tmanual: _self.Prism && _self.Prism.manual,\n\tdisableWorkerMessageHandler: _self.Prism && _self.Prism.disableWorkerMessageHandler,\n\tutil: {\n\t\tencode: function encode(tokens) {\n\t\t\tif (tokens instanceof Token) {\n\t\t\t\treturn new Token(tokens.type, encode(tokens.content), tokens.alias);\n\t\t\t} else if (Array.isArray(tokens)) {\n\t\t\t\treturn tokens.map(encode);\n\t\t\t} else {\n\t\t\t\treturn tokens.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/\\u00a0/g, ' ');\n\t\t\t}\n\t\t},\n\n\t\ttype: function (o) {\n\t\t\treturn Object.prototype.toString.call(o).slice(8, -1);\n\t\t},\n\n\t\tobjId: function (obj) {\n\t\t\tif (!obj['__id']) {\n\t\t\t\tObject.defineProperty(obj, '__id', { value: ++uniqueId });\n\t\t\t}\n\t\t\treturn obj['__id'];\n\t\t},\n\n\t\t// Deep clone a language definition (e.g. to extend it)\n\t\tclone: function deepClone(o, visited) {\n\t\t\tvar clone, id, type = _.util.type(o);\n\t\t\tvisited = visited || {};\n\n\t\t\tswitch (type) {\n\t\t\t\tcase 'Object':\n\t\t\t\t\tid = _.util.objId(o);\n\t\t\t\t\tif (visited[id]) {\n\t\t\t\t\t\treturn visited[id];\n\t\t\t\t\t}\n\t\t\t\t\tclone = {};\n\t\t\t\t\tvisited[id] = clone;\n\n\t\t\t\t\tfor (var key in o) {\n\t\t\t\t\t\tif (o.hasOwnProperty(key)) {\n\t\t\t\t\t\t\tclone[key] = deepClone(o[key], visited);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn clone;\n\n\t\t\t\tcase 'Array':\n\t\t\t\t\tid = _.util.objId(o);\n\t\t\t\t\tif (visited[id]) {\n\t\t\t\t\t\treturn visited[id];\n\t\t\t\t\t}\n\t\t\t\t\tclone = [];\n\t\t\t\t\tvisited[id] = clone;\n\n\t\t\t\t\to.forEach(function (v, i) {\n\t\t\t\t\t\tclone[i] = deepClone(v, visited);\n\t\t\t\t\t});\n\n\t\t\t\t\treturn clone;\n\n\t\t\t\tdefault:\n\t\t\t\t\treturn o;\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Returns the Prism language of the given element set by a `language-xxxx` or `lang-xxxx` class.\n\t\t *\n\t\t * If no language is set for the element or the element is `null` or `undefined`, `none` will be returned.\n\t\t *\n\t\t * @param {Element} element\n\t\t * @returns {string}\n\t\t */\n\t\tgetLanguage: function (element) {\n\t\t\twhile (element && !lang.test(element.className)) {\n\t\t\t\telement = element.parentElement;\n\t\t\t}\n\t\t\tif (element) {\n\t\t\t\treturn (element.className.match(lang) || [, 'none'])[1].toLowerCase();\n\t\t\t}\n\t\t\treturn 'none';\n\t\t},\n\n\t\t/**\n\t\t * Returns the script element that is currently executing.\n\t\t *\n\t\t * This does __not__ work for line script element.\n\t\t *\n\t\t * @returns {HTMLScriptElement | null}\n\t\t */\n\t\tcurrentScript: function () {\n\t\t\tif (typeof document === 'undefined') {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\tif ('currentScript' in document) {\n\t\t\t\treturn document.currentScript;\n\t\t\t}\n\n\t\t\t// IE11 workaround\n\t\t\t// we'll get the src of the current script by parsing IE11's error stack trace\n\t\t\t// this will not work for inline scripts\n\n\t\t\ttry {\n\t\t\t\tthrow new Error();\n\t\t\t} catch (err) {\n\t\t\t\t// Get file src url from stack. Specifically works with the format of stack traces in IE.\n\t\t\t\t// A stack will look like this:\n\t\t\t\t//\n\t\t\t\t// Error\n\t\t\t\t// at _.util.currentScript (http://localhost/components/prism-core.js:119:5)\n\t\t\t\t// at Global code (http://localhost/components/prism-core.js:606:1)\n\n\t\t\t\tvar src = (/at [^(\\r\\n]*\\((.*):.+:.+\\)$/i.exec(err.stack) || [])[1];\n\t\t\t\tif (src) {\n\t\t\t\t\tvar scripts = document.getElementsByTagName('script');\n\t\t\t\t\tfor (var i in scripts) {\n\t\t\t\t\t\tif (scripts[i].src == src) {\n\t\t\t\t\t\t\treturn scripts[i];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn null;\n\t\t\t}\n\t\t}\n\t},\n\n\tlanguages: {\n\t\textend: function (id, redef) {\n\t\t\tvar lang = _.util.clone(_.languages[id]);\n\n\t\t\tfor (var key in redef) {\n\t\t\t\tlang[key] = redef[key];\n\t\t\t}\n\n\t\t\treturn lang;\n\t\t},\n\n\t\t/**\n\t\t * Insert a token before another token in a language literal\n\t\t * As this needs to recreate the object (we cannot actually insert before keys in object literals),\n\t\t * we cannot just provide an object, we need an object and a key.\n\t\t * @param inside The key (or language id) of the parent\n\t\t * @param before The key to insert before.\n\t\t * @param insert Object with the key/value pairs to insert\n\t\t * @param root The object that contains `inside`. If equal to Prism.languages, it can be omitted.\n\t\t */\n\t\tinsertBefore: function (inside, before, insert, root) {\n\t\t\troot = root || _.languages;\n\t\t\tvar grammar = root[inside];\n\t\t\tvar ret = {};\n\n\t\t\tfor (var token in grammar) {\n\t\t\t\tif (grammar.hasOwnProperty(token)) {\n\n\t\t\t\t\tif (token == before) {\n\t\t\t\t\t\tfor (var newToken in insert) {\n\t\t\t\t\t\t\tif (insert.hasOwnProperty(newToken)) {\n\t\t\t\t\t\t\t\tret[newToken] = insert[newToken];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Do not insert token which also occur in insert. See #1525\n\t\t\t\t\tif (!insert.hasOwnProperty(token)) {\n\t\t\t\t\t\tret[token] = grammar[token];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tvar old = root[inside];\n\t\t\troot[inside] = ret;\n\n\t\t\t// Update references in other language definitions\n\t\t\t_.languages.DFS(_.languages, function(key, value) {\n\t\t\t\tif (value === old && key != inside) {\n\t\t\t\t\tthis[key] = ret;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\treturn ret;\n\t\t},\n\n\t\t// Traverse a language definition with Depth First Search\n\t\tDFS: function DFS(o, callback, type, visited) {\n\t\t\tvisited = visited || {};\n\n\t\t\tvar objId = _.util.objId;\n\n\t\t\tfor (var i in o) {\n\t\t\t\tif (o.hasOwnProperty(i)) {\n\t\t\t\t\tcallback.call(o, i, o[i], type || i);\n\n\t\t\t\t\tvar property = o[i],\n\t\t\t\t\t propertyType = _.util.type(property);\n\n\t\t\t\t\tif (propertyType === 'Object' && !visited[objId(property)]) {\n\t\t\t\t\t\tvisited[objId(property)] = true;\n\t\t\t\t\t\tDFS(property, callback, null, visited);\n\t\t\t\t\t}\n\t\t\t\t\telse if (propertyType === 'Array' && !visited[objId(property)]) {\n\t\t\t\t\t\tvisited[objId(property)] = true;\n\t\t\t\t\t\tDFS(property, callback, i, visited);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\tplugins: {},\n\n\thighlightAll: function(async, callback) {\n\t\t_.highlightAllUnder(document, async, callback);\n\t},\n\n\thighlightAllUnder: function(container, async, callback) {\n\t\tvar env = {\n\t\t\tcallback: callback,\n\t\t\tcontainer: container,\n\t\t\tselector: 'code[class*=\"language-\"], [class*=\"language-\"] code, code[class*=\"lang-\"], [class*=\"lang-\"] code'\n\t\t};\n\n\t\t_.hooks.run('before-highlightall', env);\n\n\t\tenv.elements = Array.prototype.slice.apply(env.container.querySelectorAll(env.selector));\n\n\t\t_.hooks.run('before-all-elements-highlight', env);\n\n\t\tfor (var i = 0, element; element = env.elements[i++];) {\n\t\t\t_.highlightElement(element, async === true, env.callback);\n\t\t}\n\t},\n\n\thighlightElement: function(element, async, callback) {\n\t\t// Find language\n\t\tvar language = _.util.getLanguage(element);\n\t\tvar grammar = _.languages[language];\n\n\t\t// Set language on the element, if not present\n\t\telement.className = element.className.replace(lang, '').replace(/\\s+/g, ' ') + ' language-' + language;\n\n\t\t// Set language on the parent, for styling\n\t\tvar parent = element.parentNode;\n\t\tif (parent && parent.nodeName.toLowerCase() === 'pre') {\n\t\t\tparent.className = parent.className.replace(lang, '').replace(/\\s+/g, ' ') + ' language-' + language;\n\t\t}\n\n\t\tvar code = element.textContent;\n\n\t\tvar env = {\n\t\t\telement: element,\n\t\t\tlanguage: language,\n\t\t\tgrammar: grammar,\n\t\t\tcode: code\n\t\t};\n\n\t\tfunction insertHighlightedCode(highlightedCode) {\n\t\t\tenv.highlightedCode = highlightedCode;\n\n\t\t\t_.hooks.run('before-insert', env);\n\n\t\t\tenv.element.innerHTML = env.highlightedCode;\n\n\t\t\t_.hooks.run('after-highlight', env);\n\t\t\t_.hooks.run('complete', env);\n\t\t\tcallback && callback.call(env.element);\n\t\t}\n\n\t\t_.hooks.run('before-sanity-check', env);\n\n\t\tif (!env.code) {\n\t\t\t_.hooks.run('complete', env);\n\t\t\tcallback && callback.call(env.element);\n\t\t\treturn;\n\t\t}\n\n\t\t_.hooks.run('before-highlight', env);\n\n\t\tif (!env.grammar) {\n\t\t\tinsertHighlightedCode(_.util.encode(env.code));\n\t\t\treturn;\n\t\t}\n\n\t\tif (async && _self.Worker) {\n\t\t\tvar worker = new Worker(_.filename);\n\n\t\t\tworker.onmessage = function(evt) {\n\t\t\t\tinsertHighlightedCode(evt.data);\n\t\t\t};\n\n\t\t\tworker.postMessage(JSON.stringify({\n\t\t\t\tlanguage: env.language,\n\t\t\t\tcode: env.code,\n\t\t\t\timmediateClose: true\n\t\t\t}));\n\t\t}\n\t\telse {\n\t\t\tinsertHighlightedCode(_.highlight(env.code, env.grammar, env.language));\n\t\t}\n\t},\n\n\thighlight: function (text, grammar, language) {\n\t\tvar env = {\n\t\t\tcode: text,\n\t\t\tgrammar: grammar,\n\t\t\tlanguage: language\n\t\t};\n\t\t_.hooks.run('before-tokenize', env);\n\t\tenv.tokens = _.tokenize(env.code, env.grammar);\n\t\t_.hooks.run('after-tokenize', env);\n\t\treturn Token.stringify(_.util.encode(env.tokens), env.language);\n\t},\n\n\ttokenize: function(text, grammar) {\n\t\tvar rest = grammar.rest;\n\t\tif (rest) {\n\t\t\tfor (var token in rest) {\n\t\t\t\tgrammar[token] = rest[token];\n\t\t\t}\n\n\t\t\tdelete grammar.rest;\n\t\t}\n\n\t\tvar tokenList = new LinkedList();\n\t\taddAfter(tokenList, tokenList.head, text);\n\n\t\tmatchGrammar(text, tokenList, grammar, tokenList.head, 0);\n\n\t\treturn toArray(tokenList);\n\t},\n\n\thooks: {\n\t\tall: {},\n\n\t\tadd: function (name, callback) {\n\t\t\tvar hooks = _.hooks.all;\n\n\t\t\thooks[name] = hooks[name] || [];\n\n\t\t\thooks[name].push(callback);\n\t\t},\n\n\t\trun: function (name, env) {\n\t\t\tvar callbacks = _.hooks.all[name];\n\n\t\t\tif (!callbacks || !callbacks.length) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tfor (var i=0, callback; callback = callbacks[i++];) {\n\t\t\t\tcallback(env);\n\t\t\t}\n\t\t}\n\t},\n\n\tToken: Token\n};\n\n_self.Prism = _;\n\nfunction Token(type, content, alias, matchedStr, greedy) {\n\tthis.type = type;\n\tthis.content = content;\n\tthis.alias = alias;\n\t// Copy of the full string this token was created from\n\tthis.length = (matchedStr || '').length|0;\n\tthis.greedy = !!greedy;\n}\n\nToken.stringify = function stringify(o, language) {\n\tif (typeof o == 'string') {\n\t\treturn o;\n\t}\n\tif (Array.isArray(o)) {\n\t\tvar s = '';\n\t\to.forEach(function (e) {\n\t\t\ts += stringify(e, language);\n\t\t});\n\t\treturn s;\n\t}\n\n\tvar env = {\n\t\ttype: o.type,\n\t\tcontent: stringify(o.content, language),\n\t\ttag: 'span',\n\t\tclasses: ['token', o.type],\n\t\tattributes: {},\n\t\tlanguage: language\n\t};\n\n\tvar aliases = o.alias;\n\tif (aliases) {\n\t\tif (Array.isArray(aliases)) {\n\t\t\tArray.prototype.push.apply(env.classes, aliases);\n\t\t} else {\n\t\t\tenv.classes.push(aliases);\n\t\t}\n\t}\n\n\t_.hooks.run('wrap', env);\n\n\tvar attributes = '';\n\tfor (var name in env.attributes) {\n\t\tattributes += ' ' + name + '=\"' + (env.attributes[name] || '').replace(/\"/g, '&quot;') + '\"';\n\t}\n\n\treturn '<' + env.tag + ' class=\"' + env.classes.join(' ') + '\"' + attributes + '>' + env.content + '</' + env.tag + '>';\n};\n\n/**\n * @param {string} text\n * @param {LinkedList<string | Token>} tokenList\n * @param {any} grammar\n * @param {LinkedListNode<string | Token>} startNode\n * @param {number} startPos\n * @param {boolean} [oneshot=false]\n * @param {string} [target]\n */\nfunction matchGrammar(text, tokenList, grammar, startNode, startPos, oneshot, target) {\n\tfor (var token in grammar) {\n\t\tif (!grammar.hasOwnProperty(token) || !grammar[token]) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tvar patterns = grammar[token];\n\t\tpatterns = Array.isArray(patterns) ? patterns : [patterns];\n\n\t\tfor (var j = 0; j < patterns.length; ++j) {\n\t\t\tif (target && target == token + ',' + j) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar pattern = patterns[j],\n\t\t\t\tinside = pattern.inside,\n\t\t\t\tlookbehind = !!pattern.lookbehind,\n\t\t\t\tgreedy = !!pattern.greedy,\n\t\t\t\tlookbehindLength = 0,\n\t\t\t\talias = pattern.alias;\n\n\t\t\tif (greedy && !pattern.pattern.global) {\n\t\t\t\t// Without the global flag, lastIndex won't work\n\t\t\t\tvar flags = pattern.pattern.toString().match(/[imsuy]*$/)[0];\n\t\t\t\tpattern.pattern = RegExp(pattern.pattern.source, flags + 'g');\n\t\t\t}\n\n\t\t\tpattern = pattern.pattern || pattern;\n\n\t\t\tfor ( // iterate the token list and keep track of the current token/string position\n\t\t\t\tvar currentNode = startNode.next, pos = startPos;\n\t\t\t\tcurrentNode !== tokenList.tail;\n\t\t\t\tpos += currentNode.value.length, currentNode = currentNode.next\n\t\t\t) {\n\n\t\t\t\tvar str = currentNode.value;\n\n\t\t\t\tif (tokenList.length > text.length) {\n\t\t\t\t\t// Something went terribly wrong, ABORT, ABORT!\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (str instanceof Token) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tvar removeCount = 1; // this is the to parameter of removeBetween\n\n\t\t\t\tif (greedy && currentNode != tokenList.tail.prev) {\n\t\t\t\t\tpattern.lastIndex = pos;\n\t\t\t\t\tvar match = pattern.exec(text);\n\t\t\t\t\tif (!match) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tvar from = match.index + (lookbehind && match[1] ? match[1].length : 0);\n\t\t\t\t\tvar to = match.index + match[0].length;\n\t\t\t\t\tvar p = pos;\n\n\t\t\t\t\t// find the node that contains the match\n\t\t\t\t\tp += currentNode.value.length;\n\t\t\t\t\twhile (from >= p) {\n\t\t\t\t\t\tcurrentNode = currentNode.next;\n\t\t\t\t\t\tp += currentNode.value.length;\n\t\t\t\t\t}\n\t\t\t\t\t// adjust pos (and p)\n\t\t\t\t\tp -= currentNode.value.length;\n\t\t\t\t\tpos = p;\n\n\t\t\t\t\t// the current node is a Token, then the match starts inside another Token, which is invalid\n\t\t\t\t\tif (currentNode.value instanceof Token) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\t// find the last node which is affected by this match\n\t\t\t\t\tfor (\n\t\t\t\t\t\tvar k = currentNode;\n\t\t\t\t\t\tk !== tokenList.tail && (p < to || (typeof k.value === 'string' && !k.prev.value.greedy));\n\t\t\t\t\t\tk = k.next\n\t\t\t\t\t) {\n\t\t\t\t\t\tremoveCount++;\n\t\t\t\t\t\tp += k.value.length;\n\t\t\t\t\t}\n\t\t\t\t\tremoveCount--;\n\n\t\t\t\t\t// replace with the new match\n\t\t\t\t\tstr = text.slice(pos, p);\n\t\t\t\t\tmatch.index -= pos;\n\t\t\t\t} else {\n\t\t\t\t\tpattern.lastIndex = 0;\n\n\t\t\t\t\tvar match = pattern.exec(str);\n\t\t\t\t}\n\n\t\t\t\tif (!match) {\n\t\t\t\t\tif (oneshot) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tif (lookbehind) {\n\t\t\t\t\tlookbehindLength = match[1] ? match[1].length : 0;\n\t\t\t\t}\n\n\t\t\t\tvar from = match.index + lookbehindLength,\n\t\t\t\t\tmatch = match[0].slice(lookbehindLength),\n\t\t\t\t\tto = from + match.length,\n\t\t\t\t\tbefore = str.slice(0, from),\n\t\t\t\t\tafter = str.slice(to);\n\n\t\t\t\tvar removeFrom = currentNode.prev;\n\n\t\t\t\tif (before) {\n\t\t\t\t\tremoveFrom = addAfter(tokenList, removeFrom, before);\n\t\t\t\t\tpos += before.length;\n\t\t\t\t}\n\n\t\t\t\tremoveRange(tokenList, removeFrom, removeCount);\n\n\t\t\t\tvar wrapped = new Token(token, inside ? _.tokenize(match, inside) : match, alias, match, greedy);\n\t\t\t\tcurrentNode = addAfter(tokenList, removeFrom, wrapped);\n\n\t\t\t\tif (after) {\n\t\t\t\t\taddAfter(tokenList, currentNode, after);\n\t\t\t\t}\n\n\n\t\t\t\tif (removeCount > 1)\n\t\t\t\t\tmatchGrammar(text, tokenList, grammar, currentNode.prev, pos, true, token + ',' + j);\n\n\t\t\t\tif (oneshot)\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n}\n\n/**\n * @typedef LinkedListNode\n * @property {T} value\n * @property {LinkedListNode<T> | null} prev The previous node.\n * @property {LinkedListNode<T> | null} next The next node.\n * @template T\n */\n\n/**\n * @template T\n */\nfunction LinkedList() {\n\t/** @type {LinkedListNode<T>} */\n\tvar head = { value: null, prev: null, next: null };\n\t/** @type {LinkedListNode<T>} */\n\tvar tail = { value: null, prev: head, next: null };\n\thead.next = tail;\n\n\t/** @type {LinkedListNode<T>} */\n\tthis.head = head;\n\t/** @type {LinkedListNode<T>} */\n\tthis.tail = tail;\n\tthis.length = 0;\n}\n\n/**\n * Adds a new node with the given value to the list.\n * @param {LinkedList<T>} list\n * @param {LinkedListNode<T>} node\n * @param {T} value\n * @returns {LinkedListNode<T>} The added node.\n * @template T\n */\nfunction addAfter(list, node, value) {\n\t// assumes that node != list.tail && values.length >= 0\n\tvar next = node.next;\n\n\tvar newNode = { value: value, prev: node, next: next };\n\tnode.next = newNode;\n\tnext.prev = newNode;\n\tlist.length++;\n\n\treturn newNode;\n}\n/**\n * Removes `count` nodes after the given node. The given node will not be removed.\n * @param {LinkedList<T>} list\n * @param {LinkedListNode<T>} node\n * @param {number} count\n * @template T\n */\nfunction removeRange(list, node, count) {\n\tvar next = node.next;\n\tfor (var i = 0; i < count && next !== list.tail; i++) {\n\t\tnext = next.next;\n\t}\n\tnode.next = next;\n\tnext.prev = node;\n\tlist.length -= i;\n}\n/**\n * @param {LinkedList<T>} list\n * @returns {T[]}\n * @template T\n */\nfunction toArray(list) {\n\tvar array = [];\n\tvar node = list.head.next;\n\twhile (node !== list.tail) {\n\t\tarray.push(node.value);\n\t\tnode = node.next;\n\t}\n\treturn array;\n}\n\n\nif (!_self.document) {\n\tif (!_self.addEventListener) {\n\t\t// in Node.js\n\t\treturn _;\n\t}\n\n\tif (!_.disableWorkerMessageHandler) {\n\t\t// In worker\n\t\t_self.addEventListener('message', function (evt) {\n\t\t\tvar message = JSON.parse(evt.data),\n\t\t\t\tlang = message.language,\n\t\t\t\tcode = message.code,\n\t\t\t\timmediateClose = message.immediateClose;\n\n\t\t\t_self.postMessage(_.highlight(code, _.languages[lang], lang));\n\t\t\tif (immediateClose) {\n\t\t\t\t_self.close();\n\t\t\t}\n\t\t}, false);\n\t}\n\n\treturn _;\n}\n\n//Get current script and highlight\nvar script = _.util.currentScript();\n\nif (script) {\n\t_.filename = script.src;\n\n\tif (script.hasAttribute('data-manual')) {\n\t\t_.manual = true;\n\t}\n}\n\nfunction highlightAutomaticallyCallback() {\n\tif (!_.manual) {\n\t\t_.highlightAll();\n\t}\n}\n\nif (!_.manual) {\n\t// If the document state is \"loading\", then we'll use DOMContentLoaded.\n\t// If the document state is \"interactive\" and the prism.js script is deferred, then we'll also use the\n\t// DOMContentLoaded event because there might be some plugins or languages which have also been deferred and they\n\t// might take longer one animation frame to execute which can create a race condition where only some plugins have\n\t// been loaded when Prism.highlightAll() is executed, depending on how fast resources are loaded.\n\t// See https://github.com/PrismJS/prism/issues/2102\n\tvar readyState = document.readyState;\n\tif (readyState === 'loading' || readyState === 'interactive' && script && script.defer) {\n\t\tdocument.addEventListener('DOMContentLoaded', highlightAutomaticallyCallback);\n\t} else {\n\t\tif (window.requestAnimationFrame) {\n\t\t\twindow.requestAnimationFrame(highlightAutomaticallyCallback);\n\t\t} else {\n\t\t\twindow.setTimeout(highlightAutomaticallyCallback, 16);\n\t\t}\n\t}\n}\n\nreturn _;\n\n})(_self);\n\nif (typeof module !== 'undefined' && module.exports) {\n\tmodule.exports = Prism;\n}\n\n// hack for components to work correctly in node.js\nif (typeof global !== 'undefined') {\n\tglobal.Prism = Prism;\n}\n\n\n/* **********************************************\n Begin prism-markup.js\n********************************************** */\n\nPrism.languages.markup = {\n\t'comment': /<!--[\\s\\S]*?-->/,\n\t'prolog': /<\\?[\\s\\S]+?\\?>/,\n\t'doctype': {\n\t\tpattern: /<!DOCTYPE(?:[^>\"'[\\]]|\"[^\"]*\"|'[^']*')+(?:\\[(?:(?!<!--)[^\"'\\]]|\"[^\"]*\"|'[^']*'|<!--[\\s\\S]*?-->)*\\]\\s*)?>/i,\n\t\tgreedy: true\n\t},\n\t'cdata': /<!\\[CDATA\\[[\\s\\S]*?]]>/i,\n\t'tag': {\n\t\tpattern: /<\\/?(?!\\d)[^\\s>\\/=$<%]+(?:\\s(?:\\s*[^\\s>\\/=]+(?:\\s*=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\">=]+(?=[\\s>]))|(?=[\\s/>])))+)?\\s*\\/?>/i,\n\t\tgreedy: true,\n\t\tinside: {\n\t\t\t'tag': {\n\t\t\t\tpattern: /^<\\/?[^\\s>\\/]+/i,\n\t\t\t\tinside: {\n\t\t\t\t\t'punctuation': /^<\\/?/,\n\t\t\t\t\t'namespace': /^[^\\s>\\/:]+:/\n\t\t\t\t}\n\t\t\t},\n\t\t\t'attr-value': {\n\t\t\t\tpattern: /=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\">=]+)/i,\n\t\t\t\tinside: {\n\t\t\t\t\t'punctuation': [\n\t\t\t\t\t\t/^=/,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tpattern: /^(\\s*)[\"']|[\"']$/,\n\t\t\t\t\t\t\tlookbehind: true\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t},\n\t\t\t'punctuation': /\\/?>/,\n\t\t\t'attr-name': {\n\t\t\t\tpattern: /[^\\s>\\/]+/,\n\t\t\t\tinside: {\n\t\t\t\t\t'namespace': /^[^\\s>\\/:]+:/\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\t},\n\t'entity': /&#?[\\da-z]{1,8};/i\n};\n\nPrism.languages.markup['tag'].inside['attr-value'].inside['entity'] =\n\tPrism.languages.markup['entity'];\n\n// Plugin to make entity title show the real entity, idea by Roman Komarov\nPrism.hooks.add('wrap', function(env) {\n\n\tif (env.type === 'entity') {\n\t\tenv.attributes['title'] = env.content.replace(/&amp;/, '&');\n\t}\n});\n\nObject.defineProperty(Prism.languages.markup.tag, 'addInlined', {\n\t/**\n\t * Adds an inlined language to markup.\n\t *\n\t * An example of an inlined language is CSS with `<style>` tags.\n\t *\n\t * @param {string} tagName The name of the tag that contains the inlined language. This name will be treated as\n\t * case insensitive.\n\t * @param {string} lang The language key.\n\t * @example\n\t * addInlined('style', 'css');\n\t */\n\tvalue: function addInlined(tagName, lang) {\n\t\tvar includedCdataInside = {};\n\t\tincludedCdataInside['language-' + lang] = {\n\t\t\tpattern: /(^<!\\[CDATA\\[)[\\s\\S]+?(?=\\]\\]>$)/i,\n\t\t\tlookbehind: true,\n\t\t\tinside: Prism.languages[lang]\n\t\t};\n\t\tincludedCdataInside['cdata'] = /^<!\\[CDATA\\[|\\]\\]>$/i;\n\n\t\tvar inside = {\n\t\t\t'included-cdata': {\n\t\t\t\tpattern: /<!\\[CDATA\\[[\\s\\S]*?\\]\\]>/i,\n\t\t\t\tinside: includedCdataInside\n\t\t\t}\n\t\t};\n\t\tinside['language-' + lang] = {\n\t\t\tpattern: /[\\s\\S]+/,\n\t\t\tinside: Prism.languages[lang]\n\t\t};\n\n\t\tvar def = {};\n\t\tdef[tagName] = {\n\t\t\tpattern: RegExp(/(<__[\\s\\S]*?>)(?:<!\\[CDATA\\[[\\s\\S]*?\\]\\]>\\s*|[\\s\\S])*?(?=<\\/__>)/.source.replace(/__/g, function () { return tagName; }), 'i'),\n\t\t\tlookbehind: true,\n\t\t\tgreedy: true,\n\t\t\tinside: inside\n\t\t};\n\n\t\tPrism.languages.insertBefore('markup', 'cdata', def);\n\t}\n});\n\nPrism.languages.xml = Prism.languages.extend('markup', {});\nPrism.languages.html = Prism.languages.markup;\nPrism.languages.mathml = Prism.languages.markup;\nPrism.languages.svg = Prism.languages.markup;\n\n\n/* **********************************************\n Begin prism-css.js\n********************************************** */\n\n(function (Prism) {\n\n\tvar string = /(\"|')(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/;\n\n\tPrism.languages.css = {\n\t\t'comment': /\\/\\*[\\s\\S]*?\\*\\//,\n\t\t'atrule': {\n\t\t\tpattern: /@[\\w-]+[\\s\\S]*?(?:;|(?=\\s*\\{))/,\n\t\t\tinside: {\n\t\t\t\t'rule': /^@[\\w-]+/,\n\t\t\t\t'selector-function-argument': {\n\t\t\t\t\tpattern: /(\\bselector\\s*\\((?!\\s*\\))\\s*)(?:[^()]|\\((?:[^()]|\\([^()]*\\))*\\))+?(?=\\s*\\))/,\n\t\t\t\t\tlookbehind: true,\n\t\t\t\t\talias: 'selector'\n\t\t\t\t}\n\t\t\t\t// See rest below\n\t\t\t}\n\t\t},\n\t\t'url': {\n\t\t\tpattern: RegExp('url\\\\((?:' + string.source + '|[^\\n\\r()]*)\\\\)', 'i'),\n\t\t\tgreedy: true,\n\t\t\tinside: {\n\t\t\t\t'function': /^url/i,\n\t\t\t\t'punctuation': /^\\(|\\)$/\n\t\t\t}\n\t\t},\n\t\t'selector': RegExp('[^{}\\\\s](?:[^{};\"\\']|' + string.source + ')*?(?=\\\\s*\\\\{)'),\n\t\t'string': {\n\t\t\tpattern: string,\n\t\t\tgreedy: true\n\t\t},\n\t\t'property': /[-_a-z\\xA0-\\uFFFF][-\\w\\xA0-\\uFFFF]*(?=\\s*:)/i,\n\t\t'important': /!important\\b/i,\n\t\t'function': /[-a-z0-9]+(?=\\()/i,\n\t\t'punctuation': /[(){};:,]/\n\t};\n\n\tPrism.languages.css['atrule'].inside.rest = Prism.languages.css;\n\n\tvar markup = Prism.languages.markup;\n\tif (markup) {\n\t\tmarkup.tag.addInlined('style', 'css');\n\n\t\tPrism.languages.insertBefore('inside', 'attr-value', {\n\t\t\t'style-attr': {\n\t\t\t\tpattern: /\\s*style=(\"|')(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1/i,\n\t\t\t\tinside: {\n\t\t\t\t\t'attr-name': {\n\t\t\t\t\t\tpattern: /^\\s*style/i,\n\t\t\t\t\t\tinside: markup.tag.inside\n\t\t\t\t\t},\n\t\t\t\t\t'punctuation': /^\\s*=\\s*['\"]|['\"]\\s*$/,\n\t\t\t\t\t'attr-value': {\n\t\t\t\t\t\tpattern: /.+/i,\n\t\t\t\t\t\tinside: Prism.languages.css\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\talias: 'language-css'\n\t\t\t}\n\t\t}, markup.tag);\n\t}\n\n}(Prism));\n\n\n/* **********************************************\n Begin prism-clike.js\n********************************************** */\n\nPrism.languages.clike = {\n\t'comment': [\n\t\t{\n\t\t\tpattern: /(^|[^\\\\])\\/\\*[\\s\\S]*?(?:\\*\\/|$)/,\n\t\t\tlookbehind: true\n\t\t},\n\t\t{\n\t\t\tpattern: /(^|[^\\\\:])\\/\\/.*/,\n\t\t\tlookbehind: true,\n\t\t\tgreedy: true\n\t\t}\n\t],\n\t'string': {\n\t\tpattern: /([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/,\n\t\tgreedy: true\n\t},\n\t'class-name': {\n\t\tpattern: /(\\b(?:class|interface|extends|implements|trait|instanceof|new)\\s+|\\bcatch\\s+\\()[\\w.\\\\]+/i,\n\t\tlookbehind: true,\n\t\tinside: {\n\t\t\t'punctuation': /[.\\\\]/\n\t\t}\n\t},\n\t'keyword': /\\b(?:if|else|while|do|for|return|in|instanceof|function|new|try|throw|catch|finally|null|break|continue)\\b/,\n\t'boolean': /\\b(?:true|false)\\b/,\n\t'function': /\\w+(?=\\()/,\n\t'number': /\\b0x[\\da-f]+\\b|(?:\\b\\d+\\.?\\d*|\\B\\.\\d+)(?:e[+-]?\\d+)?/i,\n\t'operator': /[<>]=?|[!=]=?=?|--?|\\+\\+?|&&?|\\|\\|?|[?*/~^%]/,\n\t'punctuation': /[{}[\\];(),.:]/\n};\n\n\n/* **********************************************\n Begin prism-javascript.js\n********************************************** */\n\nPrism.languages.javascript = Prism.languages.extend('clike', {\n\t'class-name': [\n\t\tPrism.languages.clike['class-name'],\n\t\t{\n\t\t\tpattern: /(^|[^$\\w\\xA0-\\uFFFF])[_$A-Z\\xA0-\\uFFFF][$\\w\\xA0-\\uFFFF]*(?=\\.(?:prototype|constructor))/,\n\t\t\tlookbehind: true\n\t\t}\n\t],\n\t'keyword': [\n\t\t{\n\t\t\tpattern: /((?:^|})\\s*)(?:catch|finally)\\b/,\n\t\t\tlookbehind: true\n\t\t},\n\t\t{\n\t\t\tpattern: /(^|[^.]|\\.\\.\\.\\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/,\n\t\t\tlookbehind: true\n\t\t},\n\t],\n\t'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)?)+)?/,\n\t// Allow for all non-ASCII characters (See http://stackoverflow.com/a/2008444)\n\t'function': /#?[_$a-zA-Z\\xA0-\\uFFFF][$\\w\\xA0-\\uFFFF]*(?=\\s*(?:\\.\\s*(?:apply|bind|call)\\s*)?\\()/,\n\t'operator': /--|\\+\\+|\\*\\*=?|=>|&&|\\|\\||[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\\.{3}|\\?[.?]?|[~:]/\n});\n\nPrism.languages.javascript['class-name'][0].pattern = /(\\b(?:class|interface|extends|implements|instanceof|new)\\s+)[\\w.\\\\]+/;\n\nPrism.languages.insertBefore('javascript', 'keyword', {\n\t'regex': {\n\t\tpattern: /((?:^|[^$\\w\\xA0-\\uFFFF.\"'\\])\\s])\\s*)\\/(?:\\[(?:[^\\]\\\\\\r\\n]|\\\\.)*]|\\\\.|[^/\\\\\\[\\r\\n])+\\/[gimyus]{0,6}(?=(?:\\s|\\/\\*[\\s\\S]*?\\*\\/)*(?:$|[\\r\\n,.;:})\\]]|\\/\\/))/,\n\t\tlookbehind: true,\n\t\tgreedy: true\n\t},\n\t// This must be declared before keyword because we use \"function\" inside the look-forward\n\t'function-variable': {\n\t\tpattern: /#?[_$a-zA-Z\\xA0-\\uFFFF][$\\w\\xA0-\\uFFFF]*(?=\\s*[=:]\\s*(?:async\\s*)?(?:\\bfunction\\b|(?:\\((?:[^()]|\\([^()]*\\))*\\)|[_$a-zA-Z\\xA0-\\uFFFF][$\\w\\xA0-\\uFFFF]*)\\s*=>))/,\n\t\talias: 'function'\n\t},\n\t'parameter': [\n\t\t{\n\t\t\tpattern: /(function(?:\\s+[_$A-Za-z\\xA0-\\uFFFF][$\\w\\xA0-\\uFFFF]*)?\\s*\\(\\s*)(?!\\s)(?:[^()]|\\([^()]*\\))+?(?=\\s*\\))/,\n\t\t\tlookbehind: true,\n\t\t\tinside: Prism.languages.javascript\n\t\t},\n\t\t{\n\t\t\tpattern: /[_$a-z\\xA0-\\uFFFF][$\\w\\xA0-\\uFFFF]*(?=\\s*=>)/i,\n\t\t\tinside: Prism.languages.javascript\n\t\t},\n\t\t{\n\t\t\tpattern: /(\\(\\s*)(?!\\s)(?:[^()]|\\([^()]*\\))+?(?=\\s*\\)\\s*=>)/,\n\t\t\tlookbehind: true,\n\t\t\tinside: Prism.languages.javascript\n\t\t},\n\t\t{\n\t\t\tpattern: /((?:\\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*\\{)/,\n\t\t\tlookbehind: true,\n\t\t\tinside: Prism.languages.javascript\n\t\t}\n\t],\n\t'constant': /\\b[A-Z](?:[A-Z_]|\\dx?)*\\b/\n});\n\nPrism.languages.insertBefore('javascript', 'string', {\n\t'template-string': {\n\t\tpattern: /`(?:\\\\[\\s\\S]|\\${(?:[^{}]|{(?:[^{}]|{[^}]*})*})+}|(?!\\${)[^\\\\`])*`/,\n\t\tgreedy: true,\n\t\tinside: {\n\t\t\t'template-punctuation': {\n\t\t\t\tpattern: /^`|`$/,\n\t\t\t\talias: 'string'\n\t\t\t},\n\t\t\t'interpolation': {\n\t\t\t\tpattern: /((?:^|[^\\\\])(?:\\\\{2})*)\\${(?:[^{}]|{(?:[^{}]|{[^}]*})*})+}/,\n\t\t\t\tlookbehind: true,\n\t\t\t\tinside: {\n\t\t\t\t\t'interpolation-punctuation': {\n\t\t\t\t\t\tpattern: /^\\${|}$/,\n\t\t\t\t\t\talias: 'punctuation'\n\t\t\t\t\t},\n\t\t\t\t\trest: Prism.languages.javascript\n\t\t\t\t}\n\t\t\t},\n\t\t\t'string': /[\\s\\S]+/\n\t\t}\n\t}\n});\n\nif (Prism.languages.markup) {\n\tPrism.languages.markup.tag.addInlined('script', 'javascript');\n}\n\nPrism.languages.js = Prism.languages.javascript;\n\n\n/* **********************************************\n Begin prism-file-highlight.js\n********************************************** */\n\n(function () {\n\tif (typeof self === 'undefined' || !self.Prism || !self.document || !document.querySelector) {\n\t\treturn;\n\t}\n\n\t/**\n\t * @param {Element} [container=document]\n\t */\n\tself.Prism.fileHighlight = function(container) {\n\t\tcontainer = container || document;\n\n\t\tvar Extensions = {\n\t\t\t'js': 'javascript',\n\t\t\t'py': 'python',\n\t\t\t'rb': 'ruby',\n\t\t\t'ps1': 'powershell',\n\t\t\t'psm1': 'powershell',\n\t\t\t'sh': 'bash',\n\t\t\t'bat': 'batch',\n\t\t\t'h': 'c',\n\t\t\t'tex': 'latex'\n\t\t};\n\n\t\tArray.prototype.slice.call(container.querySelectorAll('pre[data-src]')).forEach(function (pre) {\n\t\t\t// ignore if already loaded\n\t\t\tif (pre.hasAttribute('data-src-loaded')) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// load current\n\t\t\tvar src = pre.getAttribute('data-src');\n\n\t\t\tvar language, parent = pre;\n\t\t\tvar lang = /\\blang(?:uage)?-([\\w-]+)\\b/i;\n\t\t\twhile (parent && !lang.test(parent.className)) {\n\t\t\t\tparent = parent.parentNode;\n\t\t\t}\n\n\t\t\tif (parent) {\n\t\t\t\tlanguage = (pre.className.match(lang) || [, ''])[1];\n\t\t\t}\n\n\t\t\tif (!language) {\n\t\t\t\tvar extension = (src.match(/\\.(\\w+)$/) || [, ''])[1];\n\t\t\t\tlanguage = Extensions[extension] || extension;\n\t\t\t}\n\n\t\t\tvar code = document.createElement('code');\n\t\t\tcode.className = 'language-' + language;\n\n\t\t\tpre.textContent = '';\n\n\t\t\tcode.textContent = 'Loading…';\n\n\t\t\tpre.appendChild(code);\n\n\t\t\tvar xhr = new XMLHttpRequest();\n\n\t\t\txhr.open('GET', src, true);\n\n\t\t\txhr.onreadystatechange = function () {\n\t\t\t\tif (xhr.readyState == 4) {\n\n\t\t\t\t\tif (xhr.status < 400 && xhr.responseText) {\n\t\t\t\t\t\tcode.textContent = xhr.responseText;\n\n\t\t\t\t\t\tPrism.highlightElement(code);\n\t\t\t\t\t\t// mark as loaded\n\t\t\t\t\t\tpre.setAttribute('data-src-loaded', '');\n\t\t\t\t\t}\n\t\t\t\t\telse if (xhr.status >= 400) {\n\t\t\t\t\t\tcode.textContent = '✖ Error ' + xhr.status + ' while fetching file: ' + xhr.statusText;\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tcode.textContent = '✖ Error: File does not exist or is empty';\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t};\n\n\t\t\txhr.send(null);\n\t\t});\n\t};\n\n\tdocument.addEventListener('DOMContentLoaded', function () {\n\t\t// execute inside handler, for dropping Event as argument\n\t\tself.Prism.fileHighlight();\n\t});\n\n})();\n","Prism.languages.python = {\n\t'comment': {\n\t\tpattern: /(^|[^\\\\])#.*/,\n\t\tlookbehind: true\n\t},\n\t'string-interpolation': {\n\t\tpattern: /(?:f|rf|fr)(?:(\"\"\"|''')[\\s\\S]+?\\1|(\"|')(?:\\\\.|(?!\\2)[^\\\\\\r\\n])*\\2)/i,\n\t\tgreedy: true,\n\t\tinside: {\n\t\t\t'interpolation': {\n\t\t\t\t// \"{\" <expression> <optional \"!s\", \"!r\", or \"!a\"> <optional \":\" format specifier> \"}\"\n\t\t\t\tpattern: /((?:^|[^{])(?:{{)*){(?!{)(?:[^{}]|{(?!{)(?:[^{}]|{(?!{)(?:[^{}])+})+})+}/,\n\t\t\t\tlookbehind: true,\n\t\t\t\tinside: {\n\t\t\t\t\t'format-spec': {\n\t\t\t\t\t\tpattern: /(:)[^:(){}]+(?=}$)/,\n\t\t\t\t\t\tlookbehind: true\n\t\t\t\t\t},\n\t\t\t\t\t'conversion-option': {\n\t\t\t\t\t\tpattern: /![sra](?=[:}]$)/,\n\t\t\t\t\t\talias: 'punctuation'\n\t\t\t\t\t},\n\t\t\t\t\trest: null\n\t\t\t\t}\n\t\t\t},\n\t\t\t'string': /[\\s\\S]+/\n\t\t}\n\t},\n\t'triple-quoted-string': {\n\t\tpattern: /(?:[rub]|rb|br)?(\"\"\"|''')[\\s\\S]+?\\1/i,\n\t\tgreedy: true,\n\t\talias: 'string'\n\t},\n\t'string': {\n\t\tpattern: /(?:[rub]|rb|br)?(\"|')(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/i,\n\t\tgreedy: true\n\t},\n\t'function': {\n\t\tpattern: /((?:^|\\s)def[ \\t]+)[a-zA-Z_]\\w*(?=\\s*\\()/g,\n\t\tlookbehind: true\n\t},\n\t'class-name': {\n\t\tpattern: /(\\bclass\\s+)\\w+/i,\n\t\tlookbehind: true\n\t},\n\t'decorator': {\n\t\tpattern: /(^\\s*)@\\w+(?:\\.\\w+)*/im,\n\t\tlookbehind: true,\n\t\talias: ['annotation', 'punctuation'],\n\t\tinside: {\n\t\t\t'punctuation': /\\./\n\t\t}\n\t},\n\t'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/,\n\t'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/,\n\t'boolean': /\\b(?:True|False|None)\\b/,\n\t'number': /(?:\\b(?=\\d)|\\B(?=\\.))(?:0[bo])?(?:(?:\\d|0x[\\da-f])[\\da-f]*\\.?\\d*|\\.\\d+)(?:e[+-]?\\d+)?j?\\b/i,\n\t'operator': /[-+%=]=?|!=|\\*\\*?=?|\\/\\/?=?|<[<=>]?|>[=>]?|[&|^~]/,\n\t'punctuation': /[{}[\\];(),.:]/\n};\n\nPrism.languages.python['string-interpolation'].inside['interpolation'].inside.rest = Prism.languages.python;\n\nPrism.languages.py = Prism.languages.python;\n","Prism.languages.clike = {\n\t'comment': [\n\t\t{\n\t\t\tpattern: /(^|[^\\\\])\\/\\*[\\s\\S]*?(?:\\*\\/|$)/,\n\t\t\tlookbehind: true\n\t\t},\n\t\t{\n\t\t\tpattern: /(^|[^\\\\:])\\/\\/.*/,\n\t\t\tlookbehind: true,\n\t\t\tgreedy: true\n\t\t}\n\t],\n\t'string': {\n\t\tpattern: /([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/,\n\t\tgreedy: true\n\t},\n\t'class-name': {\n\t\tpattern: /(\\b(?:class|interface|extends|implements|trait|instanceof|new)\\s+|\\bcatch\\s+\\()[\\w.\\\\]+/i,\n\t\tlookbehind: true,\n\t\tinside: {\n\t\t\t'punctuation': /[.\\\\]/\n\t\t}\n\t},\n\t'keyword': /\\b(?:if|else|while|do|for|return|in|instanceof|function|new|try|throw|catch|finally|null|break|continue)\\b/,\n\t'boolean': /\\b(?:true|false)\\b/,\n\t'function': /\\w+(?=\\()/,\n\t'number': /\\b0x[\\da-f]+\\b|(?:\\b\\d+\\.?\\d*|\\B\\.\\d+)(?:e[+-]?\\d+)?/i,\n\t'operator': /[<>]=?|[!=]=?=?|--?|\\+\\+?|&&?|\\|\\|?|[?*/~^%]/,\n\t'punctuation': /[{}[\\];(),.:]/\n};\n","Prism.languages.lua = {\n\t'comment': /^#!.+|--(?:\\[(=*)\\[[\\s\\S]*?\\]\\1\\]|.*)/m,\n\t// \\z may be used to skip the following space\n\t'string': {\n\t\tpattern: /([\"'])(?:(?!\\1)[^\\\\\\r\\n]|\\\\z(?:\\r\\n|\\s)|\\\\(?:\\r\\n|[\\s\\S]))*\\1|\\[(=*)\\[[\\s\\S]*?\\]\\2\\]/,\n\t\tgreedy: true\n\t},\n\t'number': /\\b0x[a-f\\d]+\\.?[a-f\\d]*(?:p[+-]?\\d+)?\\b|\\b\\d+(?:\\.\\B|\\.?\\d*(?:e[+-]?\\d+)?\\b)|\\B\\.\\d+(?:e[+-]?\\d+)?\\b/i,\n\t'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/,\n\t'function': /(?!\\d)\\w+(?=\\s*(?:[({]))/,\n\t'operator': [\n\t\t/[-+*%^&|#]|\\/\\/?|<[<=]?|>[>=]?|[=~]=?/,\n\t\t{\n\t\t\t// Match \"..\" but don't break \"...\"\n\t\t\tpattern: /(^|[^.])\\.\\.(?!\\.)/,\n\t\t\tlookbehind: true\n\t\t}\n\t],\n\t'punctuation': /[\\[\\](){},;]|\\.+|:+/\n};","(function(Prism) {\n\t// $ set | grep '^[A-Z][^[:space:]]*=' | cut -d= -f1 | tr '\\n' '|'\n\t// + LC_ALL, RANDOM, REPLY, SECONDS.\n\t// + make sure PS1..4 are here as they are not always set,\n\t// - some useless things.\n\tvar envVars = '\\\\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';\n\tvar insideString = {\n\t\t'environment': {\n\t\t\tpattern: RegExp(\"\\\\$\" + envVars),\n\t\t\talias: 'constant'\n\t\t},\n\t\t'variable': [\n\t\t\t// [0]: Arithmetic Environment\n\t\t\t{\n\t\t\t\tpattern: /\\$?\\(\\([\\s\\S]+?\\)\\)/,\n\t\t\t\tgreedy: true,\n\t\t\t\tinside: {\n\t\t\t\t\t// If there is a $ sign at the beginning highlight $(( and )) as variable\n\t\t\t\t\t'variable': [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tpattern: /(^\\$\\(\\([\\s\\S]+)\\)\\)/,\n\t\t\t\t\t\t\tlookbehind: true\n\t\t\t\t\t\t},\n\t\t\t\t\t\t/^\\$\\(\\(/\n\t\t\t\t\t],\n\t\t\t\t\t'number': /\\b0x[\\dA-Fa-f]+\\b|(?:\\b\\d+\\.?\\d*|\\B\\.\\d+)(?:[Ee]-?\\d+)?/,\n\t\t\t\t\t// Operators according to https://www.gnu.org/software/bash/manual/bashref.html#Shell-Arithmetic\n\t\t\t\t\t'operator': /--?|-=|\\+\\+?|\\+=|!=?|~|\\*\\*?|\\*=|\\/=?|%=?|<<=?|>>=?|<=?|>=?|==?|&&?|&=|\\^=?|\\|\\|?|\\|=|\\?|:/,\n\t\t\t\t\t// If there is no $ sign at the beginning highlight (( and )) as punctuation\n\t\t\t\t\t'punctuation': /\\(\\(?|\\)\\)?|,|;/\n\t\t\t\t}\n\t\t\t},\n\t\t\t// [1]: Command Substitution\n\t\t\t{\n\t\t\t\tpattern: /\\$\\((?:\\([^)]+\\)|[^()])+\\)|`[^`]+`/,\n\t\t\t\tgreedy: true,\n\t\t\t\tinside: {\n\t\t\t\t\t'variable': /^\\$\\(|^`|\\)$|`$/\n\t\t\t\t}\n\t\t\t},\n\t\t\t// [2]: Brace expansion\n\t\t\t{\n\t\t\t\tpattern: /\\$\\{[^}]+\\}/,\n\t\t\t\tgreedy: true,\n\t\t\t\tinside: {\n\t\t\t\t\t'operator': /:[-=?+]?|[!\\/]|##?|%%?|\\^\\^?|,,?/,\n\t\t\t\t\t'punctuation': /[\\[\\]]/,\n\t\t\t\t\t'environment': {\n\t\t\t\t\t\tpattern: RegExp(\"(\\\\{)\" + envVars),\n\t\t\t\t\t\tlookbehind: true,\n\t\t\t\t\t\talias: 'constant'\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\t/\\$(?:\\w+|[#?*!@$])/\n\t\t],\n\t\t// Escape sequences from echo and printf's manuals, and escaped quotes.\n\t\t'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\t};\n\n\tPrism.languages.bash = {\n\t\t'shebang': {\n\t\t\tpattern: /^#!\\s*\\/.*/,\n\t\t\talias: 'important'\n\t\t},\n\t\t'comment': {\n\t\t\tpattern: /(^|[^\"{\\\\$])#.*/,\n\t\t\tlookbehind: true\n\t\t},\n\t\t'function-name': [\n\t\t\t// a) function foo {\n\t\t\t// b) foo() {\n\t\t\t// c) function foo() {\n\t\t\t// but not “foo {”\n\t\t\t{\n\t\t\t\t// a) and c)\n\t\t\t\tpattern: /(\\bfunction\\s+)\\w+(?=(?:\\s*\\(?:\\s*\\))?\\s*\\{)/,\n\t\t\t\tlookbehind: true,\n\t\t\t\talias: 'function'\n\t\t\t},\n\t\t\t{\n\t\t\t\t// b)\n\t\t\t\tpattern: /\\b\\w+(?=\\s*\\(\\s*\\)\\s*\\{)/,\n\t\t\t\talias: 'function'\n\t\t\t}\n\t\t],\n\t\t// Highlight variable names as variables in for and select beginnings.\n\t\t'for-or-select': {\n\t\t\tpattern: /(\\b(?:for|select)\\s+)\\w+(?=\\s+in\\s)/,\n\t\t\talias: 'variable',\n\t\t\tlookbehind: true\n\t\t},\n\t\t// Highlight variable names as variables in the left-hand part\n\t\t// of assignments (“=” and “+=”).\n\t\t'assign-left': {\n\t\t\tpattern: /(^|[\\s;|&]|[<>]\\()\\w+(?=\\+?=)/,\n\t\t\tinside: {\n\t\t\t\t'environment': {\n\t\t\t\t\tpattern: RegExp(\"(^|[\\\\s;|&]|[<>]\\\\()\" + envVars),\n\t\t\t\t\tlookbehind: true,\n\t\t\t\t\talias: 'constant'\n\t\t\t\t}\n\t\t\t},\n\t\t\talias: 'variable',\n\t\t\tlookbehind: true\n\t\t},\n\t\t'string': [\n\t\t\t// Support for Here-documents https://en.wikipedia.org/wiki/Here_document\n\t\t\t{\n\t\t\t\tpattern: /((?:^|[^<])<<-?\\s*)(\\w+?)\\s*(?:\\r?\\n|\\r)[\\s\\S]*?(?:\\r?\\n|\\r)\\2/,\n\t\t\t\tlookbehind: true,\n\t\t\t\tgreedy: true,\n\t\t\t\tinside: insideString\n\t\t\t},\n\t\t\t// Here-document with quotes around the tag\n\t\t\t// → No expansion (so no “inside”).\n\t\t\t{\n\t\t\t\tpattern: /((?:^|[^<])<<-?\\s*)([\"'])(\\w+)\\2\\s*(?:\\r?\\n|\\r)[\\s\\S]*?(?:\\r?\\n|\\r)\\3/,\n\t\t\t\tlookbehind: true,\n\t\t\t\tgreedy: true\n\t\t\t},\n\t\t\t// “Normal” string\n\t\t\t{\n\t\t\t\tpattern: /(^|[^\\\\](?:\\\\\\\\)*)([\"'])(?:\\\\[\\s\\S]|\\$\\([^)]+\\)|`[^`]+`|(?!\\2)[^\\\\])*\\2/,\n\t\t\t\tlookbehind: true,\n\t\t\t\tgreedy: true,\n\t\t\t\tinside: insideString\n\t\t\t}\n\t\t],\n\t\t'environment': {\n\t\t\tpattern: RegExp(\"\\\\$?\" + envVars),\n\t\t\talias: 'constant'\n\t\t},\n\t\t'variable': insideString.variable,\n\t\t'function': {\n\t\t\tpattern: /(^|[\\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;|&])/,\n\t\t\tlookbehind: true\n\t\t},\n\t\t'keyword': {\n\t\t\tpattern: /(^|[\\s;|&]|[<>]\\()(?:if|then|else|elif|fi|for|while|in|case|esac|function|select|do|done|until)(?=$|[)\\s;|&])/,\n\t\t\tlookbehind: true\n\t\t},\n\t\t// https://www.gnu.org/software/bash/manual/html_node/Shell-Builtin-Commands.html\n\t\t'builtin': {\n\t\t\tpattern: /(^|[\\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;|&])/,\n\t\t\tlookbehind: true,\n\t\t\t// Alias added to make those easier to distinguish from strings.\n\t\t\talias: 'class-name'\n\t\t},\n\t\t'boolean': {\n\t\t\tpattern: /(^|[\\s;|&]|[<>]\\()(?:true|false)(?=$|[)\\s;|&])/,\n\t\t\tlookbehind: true\n\t\t},\n\t\t'file-descriptor': {\n\t\t\tpattern: /\\B&\\d\\b/,\n\t\t\talias: 'important'\n\t\t},\n\t\t'operator': {\n\t\t\t// Lots of redirections here, but not just that.\n\t\t\tpattern: /\\d?<>|>\\||\\+=|==?|!=?|=~|<<[<-]?|[&\\d]?>>|\\d?[<>]&?|&[>&]?|\\|[&|]?|<=?|>=?/,\n\t\t\tinside: {\n\t\t\t\t'file-descriptor': {\n\t\t\t\t\tpattern: /^\\d/,\n\t\t\t\t\talias: 'important'\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t'punctuation': /\\$?\\(\\(?|\\)\\)?|\\.\\.|[{}[\\];\\\\]/,\n\t\t'number': {\n\t\t\tpattern: /(^|\\s)(?:[1-9]\\d*|0)(?:[.,]\\d+)?\\b/,\n\t\t\tlookbehind: true\n\t\t}\n\t};\n\n\t/* Patterns in command substitution. */\n\tvar toBeCopied = [\n\t\t'comment',\n\t\t'function-name',\n\t\t'for-or-select',\n\t\t'assign-left',\n\t\t'string',\n\t\t'environment',\n\t\t'function',\n\t\t'keyword',\n\t\t'builtin',\n\t\t'boolean',\n\t\t'file-descriptor',\n\t\t'operator',\n\t\t'punctuation',\n\t\t'number'\n\t];\n\tvar inside = insideString.variable[1].inside;\n\tfor(var i = 0; i < toBeCopied.length; i++) {\n\t\tinside[toBeCopied[i]] = Prism.languages.bash[toBeCopied[i]];\n\t}\n\n\tPrism.languages.shell = Prism.languages.bash;\n})(Prism);\n","Prism.languages.go = Prism.languages.extend('clike', {\n\t'keyword': /\\b(?:break|case|chan|const|continue|default|defer|else|fallthrough|for|func|go(?:to)?|if|import|interface|map|package|range|return|select|struct|switch|type|var)\\b/,\n\t'builtin': /\\b(?:bool|byte|complex(?:64|128)|error|float(?:32|64)|rune|string|u?int(?:8|16|32|64)?|uintptr|append|cap|close|complex|copy|delete|imag|len|make|new|panic|print(?:ln)?|real|recover)\\b/,\n\t'boolean': /\\b(?:_|iota|nil|true|false)\\b/,\n\t'operator': /[*\\/%^!=]=?|\\+[=+]?|-[=-]?|\\|[=|]?|&(?:=|&|\\^=?)?|>(?:>=?|=)?|<(?:<=?|=|-)?|:=|\\.\\.\\./,\n\t'number': /(?:\\b0x[a-f\\d]+|(?:\\b\\d+\\.?\\d*|\\B\\.\\d+)(?:e[-+]?\\d+)?)i?/i,\n\t'string': {\n\t\tpattern: /([\"'`])(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1/,\n\t\tgreedy: true\n\t}\n});\ndelete Prism.languages.go['class-name'];\n","(function (Prism) {\n\n\t// Allow only one line break\n\tvar inner = /(?:\\\\.|[^\\\\\\n\\r]|(?:\\n|\\r\\n?)(?!\\n|\\r\\n?))/.source;\n\n\t/**\n\t * This function is intended for the creation of the bold or italic pattern.\n\t *\n\t * This also adds a lookbehind group to the given pattern to ensure that the pattern is not backslash-escaped.\n\t *\n\t * _Note:_ Keep in mind that this adds a capturing group.\n\t *\n\t * @param {string} pattern\n\t * @param {boolean} starAlternative Whether to also add an alternative where all `_`s are replaced with `*`s.\n\t * @returns {RegExp}\n\t */\n\tfunction createInline(pattern, starAlternative) {\n\t\tpattern = pattern.replace(/<inner>/g, function () { return inner; });\n\t\tif (starAlternative) {\n\t\t\tpattern = pattern + '|' + pattern.replace(/_/g, '\\\\*');\n\t\t}\n\t\treturn RegExp(/((?:^|[^\\\\])(?:\\\\{2})*)/.source + '(?:' + pattern + ')');\n\t}\n\n\n\tvar tableCell = /(?:\\\\.|``.+?``|`[^`\\r\\n]+`|[^\\\\|\\r\\n`])+/.source;\n\tvar tableRow = /\\|?__(?:\\|__)+\\|?(?:(?:\\n|\\r\\n?)|$)/.source.replace(/__/g, function () { return tableCell; });\n\tvar tableLine = /\\|?[ \\t]*:?-{3,}:?[ \\t]*(?:\\|[ \\t]*:?-{3,}:?[ \\t]*)+\\|?(?:\\n|\\r\\n?)/.source;\n\n\n\tPrism.languages.markdown = Prism.languages.extend('markup', {});\n\tPrism.languages.insertBefore('markdown', 'prolog', {\n\t\t'blockquote': {\n\t\t\t// > ...\n\t\t\tpattern: /^>(?:[\\t ]*>)*/m,\n\t\t\talias: 'punctuation'\n\t\t},\n\t\t'table': {\n\t\t\tpattern: RegExp('^' + tableRow + tableLine + '(?:' + tableRow + ')*', 'm'),\n\t\t\tinside: {\n\t\t\t\t'table-data-rows': {\n\t\t\t\t\tpattern: RegExp('^(' + tableRow + tableLine + ')(?:' + tableRow + ')*$'),\n\t\t\t\t\tlookbehind: true,\n\t\t\t\t\tinside: {\n\t\t\t\t\t\t'table-data': {\n\t\t\t\t\t\t\tpattern: RegExp(tableCell),\n\t\t\t\t\t\t\tinside: Prism.languages.markdown\n\t\t\t\t\t\t},\n\t\t\t\t\t\t'punctuation': /\\|/\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t'table-line': {\n\t\t\t\t\tpattern: RegExp('^(' + tableRow + ')' + tableLine + '$'),\n\t\t\t\t\tlookbehind: true,\n\t\t\t\t\tinside: {\n\t\t\t\t\t\t'punctuation': /\\||:?-{3,}:?/\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t'table-header-row': {\n\t\t\t\t\tpattern: RegExp('^' + tableRow + '$'),\n\t\t\t\t\tinside: {\n\t\t\t\t\t\t'table-header': {\n\t\t\t\t\t\t\tpattern: RegExp(tableCell),\n\t\t\t\t\t\t\talias: 'important',\n\t\t\t\t\t\t\tinside: Prism.languages.markdown\n\t\t\t\t\t\t},\n\t\t\t\t\t\t'punctuation': /\\|/\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t'code': [\n\t\t\t{\n\t\t\t\t// Prefixed by 4 spaces or 1 tab and preceded by an empty line\n\t\t\t\tpattern: /((?:^|\\n)[ \\t]*\\n|(?:^|\\r\\n?)[ \\t]*\\r\\n?)(?: {4}|\\t).+(?:(?:\\n|\\r\\n?)(?: {4}|\\t).+)*/,\n\t\t\t\tlookbehind: true,\n\t\t\t\talias: 'keyword'\n\t\t\t},\n\t\t\t{\n\t\t\t\t// `code`\n\t\t\t\t// ``code``\n\t\t\t\tpattern: /``.+?``|`[^`\\r\\n]+`/,\n\t\t\t\talias: 'keyword'\n\t\t\t},\n\t\t\t{\n\t\t\t\t// ```optional language\n\t\t\t\t// code block\n\t\t\t\t// ```\n\t\t\t\tpattern: /^```[\\s\\S]*?^```$/m,\n\t\t\t\tgreedy: true,\n\t\t\t\tinside: {\n\t\t\t\t\t'code-block': {\n\t\t\t\t\t\tpattern: /^(```.*(?:\\n|\\r\\n?))[\\s\\S]+?(?=(?:\\n|\\r\\n?)^```$)/m,\n\t\t\t\t\t\tlookbehind: true\n\t\t\t\t\t},\n\t\t\t\t\t'code-language': {\n\t\t\t\t\t\tpattern: /^(```).+/,\n\t\t\t\t\t\tlookbehind: true\n\t\t\t\t\t},\n\t\t\t\t\t'punctuation': /```/\n\t\t\t\t}\n\t\t\t}\n\t\t],\n\t\t'title': [\n\t\t\t{\n\t\t\t\t// title 1\n\t\t\t\t// =======\n\n\t\t\t\t// title 2\n\t\t\t\t// -------\n\t\t\t\tpattern: /\\S.*(?:\\n|\\r\\n?)(?:==+|--+)(?=[ \\t]*$)/m,\n\t\t\t\talias: 'important',\n\t\t\t\tinside: {\n\t\t\t\t\tpunctuation: /==+$|--+$/\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\t// # title 1\n\t\t\t\t// ###### title 6\n\t\t\t\tpattern: /(^\\s*)#+.+/m,\n\t\t\t\tlookbehind: true,\n\t\t\t\talias: 'important',\n\t\t\t\tinside: {\n\t\t\t\t\tpunctuation: /^#+|#+$/\n\t\t\t\t}\n\t\t\t}\n\t\t],\n\t\t'hr': {\n\t\t\t// ***\n\t\t\t// ---\n\t\t\t// * * *\n\t\t\t// -----------\n\t\t\tpattern: /(^\\s*)([*-])(?:[\\t ]*\\2){2,}(?=\\s*$)/m,\n\t\t\tlookbehind: true,\n\t\t\talias: 'punctuation'\n\t\t},\n\t\t'list': {\n\t\t\t// * item\n\t\t\t// + item\n\t\t\t// - item\n\t\t\t// 1. item\n\t\t\tpattern: /(^\\s*)(?:[*+-]|\\d+\\.)(?=[\\t ].)/m,\n\t\t\tlookbehind: true,\n\t\t\talias: 'punctuation'\n\t\t},\n\t\t'url-reference': {\n\t\t\t// [id]: http://example.com \"Optional title\"\n\t\t\t// [id]: http://example.com 'Optional title'\n\t\t\t// [id]: http://example.com (Optional title)\n\t\t\t// [id]: <http://example.com> \"Optional title\"\n\t\t\tpattern: /!?\\[[^\\]]+\\]:[\\t ]+(?:\\S+|<(?:\\\\.|[^>\\\\])+>)(?:[\\t ]+(?:\"(?:\\\\.|[^\"\\\\])*\"|'(?:\\\\.|[^'\\\\])*'|\\((?:\\\\.|[^)\\\\])*\\)))?/,\n\t\t\tinside: {\n\t\t\t\t'variable': {\n\t\t\t\t\tpattern: /^(!?\\[)[^\\]]+/,\n\t\t\t\t\tlookbehind: true\n\t\t\t\t},\n\t\t\t\t'string': /(?:\"(?:\\\\.|[^\"\\\\])*\"|'(?:\\\\.|[^'\\\\])*'|\\((?:\\\\.|[^)\\\\])*\\))$/,\n\t\t\t\t'punctuation': /^[\\[\\]!:]|[<>]/\n\t\t\t},\n\t\t\talias: 'url'\n\t\t},\n\t\t'bold': {\n\t\t\t// **strong**\n\t\t\t// __strong__\n\n\t\t\t// allow one nested instance of italic text using the same delimiter\n\t\t\tpattern: createInline(/__(?:(?!_)<inner>|_(?:(?!_)<inner>)+_)+__/.source, true),\n\t\t\tlookbehind: true,\n\t\t\tgreedy: true,\n\t\t\tinside: {\n\t\t\t\t'content': {\n\t\t\t\t\tpattern: /(^..)[\\s\\S]+(?=..$)/,\n\t\t\t\t\tlookbehind: true,\n\t\t\t\t\tinside: {} // see below\n\t\t\t\t},\n\t\t\t\t'punctuation': /\\*\\*|__/\n\t\t\t}\n\t\t},\n\t\t'italic': {\n\t\t\t// *em*\n\t\t\t// _em_\n\n\t\t\t// allow one nested instance of bold text using the same delimiter\n\t\t\tpattern: createInline(/_(?:(?!_)<inner>|__(?:(?!_)<inner>)+__)+_/.source, true),\n\t\t\tlookbehind: true,\n\t\t\tgreedy: true,\n\t\t\tinside: {\n\t\t\t\t'content': {\n\t\t\t\t\tpattern: /(^.)[\\s\\S]+(?=.$)/,\n\t\t\t\t\tlookbehind: true,\n\t\t\t\t\tinside: {} // see below\n\t\t\t\t},\n\t\t\t\t'punctuation': /[*_]/\n\t\t\t}\n\t\t},\n\t\t'strike': {\n\t\t\t// ~~strike through~~\n\t\t\t// ~strike~\n\t\t\tpattern: createInline(/(~~?)(?:(?!~)<inner>)+?\\2/.source, false),\n\t\t\tlookbehind: true,\n\t\t\tgreedy: true,\n\t\t\tinside: {\n\t\t\t\t'content': {\n\t\t\t\t\tpattern: /(^~~?)[\\s\\S]+(?=\\1$)/,\n\t\t\t\t\tlookbehind: true,\n\t\t\t\t\tinside: {} // see below\n\t\t\t\t},\n\t\t\t\t'punctuation': /~~?/\n\t\t\t}\n\t\t},\n\t\t'url': {\n\t\t\t// [example](http://example.com \"Optional title\")\n\t\t\t// [example][id]\n\t\t\t// [example] [id]\n\t\t\tpattern: createInline(/!?\\[(?:(?!\\])<inner>)+\\](?:\\([^\\s)]+(?:[\\t ]+\"(?:\\\\.|[^\"\\\\])*\")?\\)| ?\\[(?:(?!\\])<inner>)+\\])/.source, false),\n\t\t\tlookbehind: true,\n\t\t\tgreedy: true,\n\t\t\tinside: {\n\t\t\t\t'variable': {\n\t\t\t\t\tpattern: /(\\[)[^\\]]+(?=\\]$)/,\n\t\t\t\t\tlookbehind: true\n\t\t\t\t},\n\t\t\t\t'content': {\n\t\t\t\t\tpattern: /(^!?\\[)[^\\]]+(?=\\])/,\n\t\t\t\t\tlookbehind: true,\n\t\t\t\t\tinside: {} // see below\n\t\t\t\t},\n\t\t\t\t'string': {\n\t\t\t\t\tpattern: /\"(?:\\\\.|[^\"\\\\])*\"(?=\\)$)/\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n\n\t['url', 'bold', 'italic', 'strike'].forEach(function (token) {\n\t\t['url', 'bold', 'italic', 'strike'].forEach(function (inside) {\n\t\t\tif (token !== inside) {\n\t\t\t\tPrism.languages.markdown[token].inside.content.inside[inside] = Prism.languages.markdown[inside];\n\t\t\t}\n\t\t});\n\t});\n\n\tPrism.hooks.add('after-tokenize', function (env) {\n\t\tif (env.language !== 'markdown' && env.language !== 'md') {\n\t\t\treturn;\n\t\t}\n\n\t\tfunction walkTokens(tokens) {\n\t\t\tif (!tokens || typeof tokens === 'string') {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tfor (var i = 0, l = tokens.length; i < l; i++) {\n\t\t\t\tvar token = tokens[i];\n\n\t\t\t\tif (token.type !== 'code') {\n\t\t\t\t\twalkTokens(token.content);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t/*\n\t\t\t\t * Add the correct `language-xxxx` class to this code block. Keep in mind that the `code-language` token\n\t\t\t\t * is optional. But the grammar is defined so that there is only one case we have to handle:\n\t\t\t\t *\n\t\t\t\t * token.content = [\n\t\t\t\t * <span class=\"punctuation\">```</span>,\n\t\t\t\t * <span class=\"code-language\">xxxx</span>,\n\t\t\t\t * '\\n', // exactly one new lines (\\r or \\n or \\r\\n)\n\t\t\t\t * <span class=\"code-block\">...</span>,\n\t\t\t\t * '\\n', // exactly one new lines again\n\t\t\t\t * <span class=\"punctuation\">```</span>\n\t\t\t\t * ];\n\t\t\t\t */\n\n\t\t\t\tvar codeLang = token.content[1];\n\t\t\t\tvar codeBlock = token.content[3];\n\n\t\t\t\tif (codeLang && codeBlock &&\n\t\t\t\t\tcodeLang.type === 'code-language' && codeBlock.type === 'code-block' &&\n\t\t\t\t\ttypeof codeLang.content === 'string') {\n\n\t\t\t\t\t// this might be a language that Prism does not support\n\n\t\t\t\t\t// do some replacements to support C++, C#, and F#\n\t\t\t\t\tvar lang = codeLang.content.replace(/\\b#/g, 'sharp').replace(/\\b\\+\\+/g, 'pp')\n\t\t\t\t\t// only use the first word\n\t\t\t\t\tlang = (/[a-z][\\w-]*/i.exec(lang) || [''])[0].toLowerCase();\n\t\t\t\t\tvar alias = 'language-' + lang;\n\n\t\t\t\t\t// add alias\n\t\t\t\t\tif (!codeBlock.alias) {\n\t\t\t\t\t\tcodeBlock.alias = [alias];\n\t\t\t\t\t} else if (typeof codeBlock.alias === 'string') {\n\t\t\t\t\t\tcodeBlock.alias = [codeBlock.alias, alias];\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcodeBlock.alias.push(alias);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\twalkTokens(env.tokens);\n\t});\n\n\tPrism.hooks.add('wrap', function (env) {\n\t\tif (env.type !== 'code-block') {\n\t\t\treturn;\n\t\t}\n\n\t\tvar codeLang = '';\n\t\tfor (var i = 0, l = env.classes.length; i < l; i++) {\n\t\t\tvar cls = env.classes[i];\n\t\t\tvar match = /language-(.+)/.exec(cls);\n\t\t\tif (match) {\n\t\t\t\tcodeLang = match[1];\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\tvar grammar = Prism.languages[codeLang];\n\n\t\tif (!grammar) {\n\t\t\tif (codeLang && codeLang !== 'none' && Prism.plugins.autoloader) {\n\t\t\t\tvar id = 'md-' + new Date().valueOf() + '-' + Math.floor(Math.random() * 1e16);\n\t\t\t\tenv.attributes['id'] = id;\n\n\t\t\t\tPrism.plugins.autoloader.loadLanguages(codeLang, function () {\n\t\t\t\t\tvar ele = document.getElementById(id);\n\t\t\t\t\tif (ele) {\n\t\t\t\t\t\tele.innerHTML = Prism.highlight(ele.textContent, Prism.languages[codeLang], codeLang);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t} else {\n\t\t\t// reverse Prism.util.encode\n\t\t\tvar code = env.content.replace(/&lt;/g, '<').replace(/&amp;/g, '&');\n\n\t\t\tenv.content = Prism.highlight(code, grammar, codeLang);\n\t\t}\n\t});\n\n\tPrism.languages.md = Prism.languages.markdown;\n\n}(Prism));\n","Prism.languages.julia= {\n\t'comment': {\n\t\tpattern: /(^|[^\\\\])#.*/,\n\t\tlookbehind: true\n\t},\n\t'string': /(\"\"\"|''')[\\s\\S]+?\\1|(\"|')(?:\\\\.|(?!\\2)[^\\\\\\r\\n])*\\2/,\n\t'keyword' : /\\b(?:abstract|baremodule|begin|bitstype|break|catch|ccall|const|continue|do|else|elseif|end|export|finally|for|function|global|if|immutable|import|importall|in|let|local|macro|module|print|println|quote|return|struct|try|type|typealias|using|while)\\b/,\n\t'boolean' : /\\b(?:true|false)\\b/,\n\t'number' : /(?:\\b(?=\\d)|\\B(?=\\.))(?:0[box])?(?:[\\da-f]+\\.?\\d*|\\.\\d+)(?:[efp][+-]?\\d+)?j?/i,\n\t'operator': /[-+*^%÷&$\\\\]=?|\\/[\\/=]?|!=?=?|\\|[=>]?|<(?:<=?|[=:])?|>(?:=|>>?=?)?|==?=?|[~≠≤≥]/,\n\t'punctuation' : /[{}[\\];(),.:]/,\n\t'constant': /\\b(?:(?:NaN|Inf)(?:16|32|64)?)\\b/\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\nimport Prism from 'prismjs';\nimport 'prismjs/components/prism-python';\nimport 'prismjs/components/prism-clike';\nimport 'prismjs/components/prism-python';\nimport 'prismjs/components/prism-clike';\nimport 'prismjs/components/prism-lua';\nimport 'prismjs/components/prism-bash';\nimport 'prismjs/components/prism-go';\nimport 'prismjs/components/prism-markdown';\nimport 'prismjs/components/prism-julia';\nimport css from 'prismjs/themes/prism.css';\n\nimport { Template } from '../mixins/template.js';\nimport { Mutating } from '../mixins/mutating.js';\n\nconst T = Template('d-code', `\n<style>\n\ncode {\n white-space: nowrap;\n background: rgba(0, 0, 0, 0.04);\n border-radius: 2px;\n padding: 4px 7px;\n font-size: 15px;\n color: rgba(0, 0, 0, 0.6);\n}\n\npre code {\n display: block;\n border-left: 2px solid rgba(0, 0, 0, .1);\n padding: 0 0 0 36px;\n}\n\n${css}\n</style>\n\n<code id=\"code-container\"></code>\n\n`);\n\nexport class Code extends Mutating(T(HTMLElement)) {\n\n renderContent() {\n\n // check if language can be highlighted\n this.languageName = this.getAttribute('language');\n if (!this.languageName) {\n console.warn('You need to provide a language attribute to your <d-code> block to let us know how to highlight your code; e.g.:\\n <d-code language=\"python\">zeros = np.zeros(shape)</d-code>.');\n return;\n }\n const language = Prism.languages[this.languageName];\n if (language == undefined) {\n console.warn(`Distill does not yet support highlighting your code block in \"${this.languageName}'.`);\n return;\n }\n\n let content = this.textContent;\n const codeTag = this.shadowRoot.querySelector('#code-container');\n\n if (this.hasAttribute('block')) {\n // normalize the tab indents\n content = content.replace(/\\n/, '');\n const tabs = content.match(/\\s*/);\n content = content.replace(new RegExp('\\n' + tabs, 'g'), '\\n');\n content = content.trim();\n // wrap code block in pre tag if needed\n if (codeTag.parentNode instanceof ShadowRoot) {\n const preTag = document.createElement('pre');\n this.shadowRoot.removeChild(codeTag);\n preTag.appendChild(codeTag);\n this.shadowRoot.appendChild(preTag);\n }\n\n }\n\n codeTag.className = `language-${this.languageName}`;\n codeTag.innerHTML = Prism.highlight(content, language);\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\nimport { Template } from '../mixins/template.js';\n\nconst T = Template('d-footnote', `\n<style>\n\nd-math[block] {\n display: block;\n}\n\n:host {\n\n}\n\nsup {\n line-height: 1em;\n font-size: 0.75em;\n position: relative;\n top: -.5em;\n vertical-align: baseline;\n}\n\nspan {\n color: hsla(206, 90%, 20%, 0.7);\n cursor: default;\n}\n\n.footnote-container {\n padding: 10px;\n}\n\n</style>\n\n<d-hover-box>\n <div class=\"footnote-container\">\n <slot id=\"slot\"></slot>\n </div>\n</d-hover-box>\n\n<sup>\n <span id=\"fn-\" data-hover-ref=\"\"></span>\n</sup>\n\n`);\n\nexport class Footnote extends T(HTMLElement) {\n\n constructor() {\n super();\n\n const options = {childList: true, characterData: true, subtree: true};\n const observer = new MutationObserver(this.notify);\n observer.observe(this, options);\n }\n\n notify() {\n const options = { detail: this, bubbles: true };\n const event = new CustomEvent('onFootnoteChanged', options);\n document.dispatchEvent(event);\n }\n\n connectedCallback() {\n // listen and notify about changes to slotted content\n // const slot = this.shadowRoot.querySelector('#slot');\n // console.warn(slot.textContent);\n // slot.addEventListener('slotchange', this.notify);\n this.hoverBox = this.root.querySelector('d-hover-box');\n window.customElements.whenDefined('d-hover-box').then(() => {\n this.hoverBox.listen(this);\n });\n // create numeric ID\n Footnote.currentFootnoteId += 1;\n const IdString = Footnote.currentFootnoteId.toString();\n this.root.host.id = 'd-footnote-' + IdString;\n\n // set up hidden hover box\n const id = 'dt-fn-hover-box-' + IdString;\n this.hoverBox.id = id\n\n // set up visible footnote marker\n const span = this.root.querySelector('#fn-');\n span.setAttribute('id', 'fn-' + IdString);\n span.setAttribute('data-hover-ref', id);\n span.textContent = IdString;\n }\n\n}\n\nFootnote.currentFootnoteId = 0;\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\nimport { Template } from '../mixins/template';\n\nconst T = Template('d-footnote-list', `\n<style>\n\nd-footnote-list {\n contain: layout style;\n}\n\nd-footnote-list > * {\n grid-column: text;\n}\n\nd-footnote-list a.footnote-backlink {\n color: rgba(0,0,0,0.3);\n padding-left: 0.5em;\n}\n\n</style>\n\n<h3>Footnotes</h3>\n<ol></ol>\n`, false);\n\nexport class FootnoteList extends T(HTMLElement) {\n\n connectedCallback() {\n super.connectedCallback();\n\n this.list = this.root.querySelector('ol');\n // footnotes list is initially hidden\n this.root.style.display = 'none';\n // look through document and register existing footnotes\n // Store.subscribeTo('footnotes', (footnote) => {\n // this.renderFootnote(footnote);\n // });\n }\n\n // TODO: could optimize this to accept individual footnotes?\n set footnotes(footnotes) {\n this.list.innerHTML = '';\n if (footnotes.length) {\n // ensure footnote list is visible\n this.root.style.display = '';\n\n for (const footnote of footnotes) {\n // construct and append list item to show footnote\n const listItem = document.createElement('li');\n listItem.id = footnote.id + '-listing';\n listItem.innerHTML = footnote.innerHTML;\n\n const backlink = document.createElement('a');\n backlink.setAttribute('class', 'footnote-backlink');\n backlink.textContent = '[↩]';\n backlink.href = '#' + footnote.id;\n\n listItem.appendChild(backlink);\n this.list.appendChild(listItem);\n }\n } else {\n // ensure footnote list is invisible\n this.root.style.display = 'none';\n }\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\nimport { Template } from '../mixins/template.js';\n\nconst T = Template('d-hover-box', `\n<style>\n\n:host {\n position: absolute;\n width: 100%;\n left: 0px;\n z-index: 10000;\n display: none;\n white-space: normal\n}\n\n.container {\n position: relative;\n width: 704px;\n max-width: 100vw;\n margin: 0 auto;\n}\n\n.panel {\n position: absolute;\n font-size: 1rem;\n line-height: 1.5em;\n top: 0;\n left: 0;\n width: 100%;\n border: 1px solid rgba(0, 0, 0, 0.1);\n background-color: rgba(250, 250, 250, 0.95);\n box-shadow: 0 0 7px rgba(0, 0, 0, 0.1);\n border-radius: 4px;\n box-sizing: border-box;\n\n backdrop-filter: blur(2px);\n -webkit-backdrop-filter: blur(2px);\n}\n\n</style>\n\n<div class=\"container\">\n <div class=\"panel\">\n <slot></slot>\n </div>\n</div>\n`);\n\nexport class HoverBox extends T(HTMLElement) {\n\n constructor() {\n super();\n }\n\n connectedCallback() {\n\n }\n\n listen(element) {\n // console.log(element)\n this.bindDivEvents(this);\n this.bindTriggerEvents(element);\n // this.style.display = \"block\";\n }\n\n bindDivEvents(element) {\n // For mice, same behavior as hovering on links\n element.addEventListener('mouseover', () => {\n if (!this.visible) this.showAtNode(element);\n this.stopTimeout();\n });\n element.addEventListener('mouseout', () => {\n this.extendTimeout(500);\n });\n // Don't trigger body touchstart event when touching within box\n element.addEventListener('touchstart', (event) => {\n event.stopPropagation();\n }, {passive: true});\n // Close box when touching outside box\n document.body.addEventListener('touchstart', () => {\n this.hide();\n }, {passive: true});\n }\n\n bindTriggerEvents(node) {\n node.addEventListener('mouseover', () => {\n if (!this.visible) {\n this.showAtNode(node);\n }\n this.stopTimeout();\n });\n\n node.addEventListener('mouseout', () => {\n this.extendTimeout(300);\n });\n\n node.addEventListener('touchstart', (event) => {\n if (this.visible) {\n this.hide();\n } else {\n this.showAtNode(node);\n }\n // Don't trigger body touchstart event when touching link\n event.stopPropagation();\n }, {passive: true});\n }\n\n show(position) {\n this.visible = true;\n this.style.display = 'block';\n // 10px extra offset from element\n this.style.top = Math.round(position[1] + 10) + 'px';\n }\n\n showAtNode(node) {\n // https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/offsetTop\n const bbox = node.getBoundingClientRect();\n this.show([node.offsetLeft + bbox.width, node.offsetTop + bbox.height]);\n }\n\n hide() {\n this.visible = false;\n this.style.display = 'none';\n this.stopTimeout();\n }\n\n stopTimeout() {\n if (this.timeout) {\n clearTimeout(this.timeout);\n }\n }\n\n extendTimeout(time) {\n this.stopTimeout();\n this.timeout = setTimeout(() => {\n this.hide();\n }, time);\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\nexport class Title extends HTMLElement {\n static get is() { return 'd-title'; }\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\nimport { Template } from '../mixins/template';\n\nconst T = Template('d-references', `\n<style>\nd-references {\n display: block;\n}\n</style>\n`, false);\n\nexport class References extends T(HTMLElement) {\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\nexport class TOC extends HTMLElement {\n\n static get is() { return 'd-toc'; }\n\n connectedCallback() {\n if (!this.getAttribute('prerendered')) {\n window.onload = () => {\n const article = document.querySelector('d-article');\n const headings = article.querySelectorAll('h2, h3');\n renderTOC(this, headings);\n };\n }\n }\n\n}\n\nexport function renderTOC(element, headings) {\n\n let ToC =`\n <style>\n\n d-toc {\n contain: layout style;\n display: block;\n }\n\n d-toc ul {\n padding-left: 0;\n }\n\n d-toc ul > ul {\n padding-left: 24px;\n }\n\n d-toc a {\n border-bottom: none;\n text-decoration: none;\n }\n\n </style>\n <nav role=\"navigation\" class=\"table-of-contents\"></nav>\n <h2>Table of contents</h2>\n <ul>`;\n\n for (const el of headings) {\n // should element be included in TOC?\n const isInTitle = el.parentElement.tagName == 'D-TITLE';\n const isException = el.getAttribute('no-toc');\n if (isInTitle || isException) continue;\n // create TOC entry\n const title = el.textContent;\n const link = '#' + el.getAttribute('id');\n\n let newLine = '<li>' + '<a href=\"' + link + '\">' + title + '</a>' + '</li>';\n if (el.tagName == 'H3') {\n newLine = '<ul>' + newLine + '</ul>';\n } else {\n newLine += '<br>';\n }\n ToC += newLine;\n\n }\n\n ToC += '</ul></nav>';\n element.innerHTML = ToC;\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// Figure\n//\n// d-figure provides a state-machine of visibility events:\n//\n// scroll out of view\n// +----------------+\n// *do work here* | |\n// +----------------+ +-+---------+ +-v---------+\n// | ready +----> onscreen | | offscreen |\n// +----------------+ +---------^-+ +---------+-+\n// | |\n// +----------------+\n// scroll into view\n//\n\nexport class Figure extends HTMLElement {\n\n static get is() { return 'd-figure'; }\n\n static get readyQueue() {\n if (!Figure._readyQueue) {\n Figure._readyQueue = [];\n }\n return Figure._readyQueue;\n }\n\n static addToReadyQueue(figure) {\n if (Figure.readyQueue.indexOf(figure) === -1) {\n Figure.readyQueue.push(figure);\n Figure.runReadyQueue();\n }\n }\n\n static runReadyQueue() {\n // console.log(\"Checking to run readyQueue, length: \" + Figure.readyQueue.length + \", scrolling: \" + Figure.isScrolling);\n // if (Figure.isScrolling) return;\n // console.log(\"Running ready Queue\");\n const figure = Figure.readyQueue\n .sort((a,b) => a._seenOnScreen - b._seenOnScreen )\n .filter((figure) => !figure._ready)\n .pop();\n if (figure) {\n figure.ready();\n requestAnimationFrame(Figure.runReadyQueue);\n }\n\n }\n\n constructor() {\n super();\n // debugger\n this._ready = false;\n this._onscreen = false;\n this._offscreen = true;\n }\n\n connectedCallback() {\n this.loadsWhileScrolling = this.hasAttribute('loadsWhileScrolling');\n Figure.marginObserver.observe(this);\n Figure.directObserver.observe(this);\n }\n\n disconnectedCallback() {\n Figure.marginObserver.unobserve(this);\n Figure.directObserver.unobserve(this);\n }\n\n // We use two separate observers:\n // One with an extra 1000px margin to warn if the viewpoint gets close,\n // And one for the actual on/off screen events\n\n static get marginObserver() {\n if (!Figure._marginObserver) {\n // if (!('IntersectionObserver' in window)) {\n // throw new Error('no interscetionobbserver!');\n // }\n const viewportHeight = window.innerHeight;\n const margin = Math.floor(2 * viewportHeight);\n const options = {rootMargin: margin + 'px 0px ' + margin + 'px 0px', threshold: 0.01};\n const callback = Figure.didObserveMarginIntersection;\n const observer = new IntersectionObserver(callback, options);\n Figure._marginObserver = observer;\n }\n return Figure._marginObserver;\n }\n\n static didObserveMarginIntersection(entries) {\n for (const entry of entries) {\n const figure = entry.target;\n if (entry.isIntersecting && !figure._ready) {\n Figure.addToReadyQueue(figure);\n }\n }\n }\n\n static get directObserver() {\n if (!Figure._directObserver) {\n Figure._directObserver = new IntersectionObserver(\n Figure.didObserveDirectIntersection, {\n rootMargin: '0px', threshold: [0, 1.0],\n }\n );\n }\n return Figure._directObserver;\n }\n\n static didObserveDirectIntersection(entries) {\n for (const entry of entries) {\n const figure = entry.target;\n if (entry.isIntersecting) {\n figure._seenOnScreen = new Date();\n // if (!figure._ready) { figure.ready(); }\n if (figure._offscreen) { figure.onscreen(); }\n } else {\n if (figure._onscreen) { figure.offscreen(); }\n }\n }\n }\n\n // Notify listeners that registered late, too:\n\n addEventListener(eventName, callback) {\n super.addEventListener(eventName, callback);\n // if we had already dispatched something while presumingly no one was listening, we do so again\n // debugger\n if (eventName === 'ready') {\n if (Figure.readyQueue.indexOf(this) !== -1) {\n this._ready = false;\n Figure.runReadyQueue();\n }\n }\n if (eventName === 'onscreen') {\n this.onscreen();\n }\n }\n\n // Custom Events\n\n ready() {\n // debugger\n this._ready = true;\n Figure.marginObserver.unobserve(this);\n const event = new CustomEvent('ready');\n this.dispatchEvent(event);\n }\n\n onscreen() {\n this._onscreen = true;\n this._offscreen = false;\n const event = new CustomEvent('onscreen');\n this.dispatchEvent(event);\n }\n\n offscreen() {\n this._onscreen = false;\n this._offscreen = true;\n const event = new CustomEvent('offscreen');\n this.dispatchEvent(event);\n }\n\n}\n\nif (typeof window !== 'undefined') {\n\n Figure.isScrolling = false;\n let timeout;\n const resetTimer = () => {\n Figure.isScrolling = true;\n clearTimeout(timeout);\n timeout = setTimeout(() => {\n Figure.isScrolling = false;\n Figure.runReadyQueue();\n }, 500);\n };\n window.addEventListener('scroll', resetTimer, true);\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\nimport { Template } from '../mixins/template';\n\n// This overlay is not secure.\n// It is only meant as a social deterrent.\n\nconst productionHostname = 'distill.pub';\nconst T = Template('d-interstitial', `\n<style>\n\n.overlay {\n position: fixed;\n width: 100%;\n height: 100%;\n top: 0;\n left: 0;\n background: white;\n\n opacity: 1;\n visibility: visible;\n\n display: flex;\n flex-flow: column;\n justify-content: center;\n z-index: 2147483647 /* MaxInt32 */\n\n}\n\n.container {\n position: relative;\n margin-left: auto;\n margin-right: auto;\n max-width: 420px;\n padding: 2em;\n}\n\nh1 {\n text-decoration: underline;\n text-decoration-color: hsl(0,100%,40%);\n -webkit-text-decoration-color: hsl(0,100%,40%);\n margin-bottom: 1em;\n line-height: 1.5em;\n}\n\ninput[type=\"password\"] {\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n -webkit-box-shadow: none;\n -moz-box-shadow: none;\n box-shadow: none;\n -webkit-border-radius: none;\n -moz-border-radius: none;\n -ms-border-radius: none;\n -o-border-radius: none;\n border-radius: none;\n outline: none;\n\n font-size: 18px;\n background: none;\n width: 25%;\n padding: 10px;\n border: none;\n border-bottom: solid 2px #999;\n transition: border .3s;\n}\n\ninput[type=\"password\"]:focus {\n border-bottom: solid 2px #333;\n}\n\ninput[type=\"password\"].wrong {\n border-bottom: solid 2px hsl(0,100%,40%);\n}\n\np small {\n color: #888;\n}\n\n.logo {\n position: relative;\n font-size: 1.5em;\n margin-bottom: 3em;\n}\n\n.logo svg {\n width: 36px;\n position: relative;\n top: 6px;\n margin-right: 2px;\n}\n\n.logo svg path {\n fill: none;\n stroke: black;\n stroke-width: 2px;\n}\n\n</style>\n\n<div class=\"overlay\">\n <div class=\"container\">\n <h1>This article is in review.</h1>\n <p>Do not share this URL or the contents of this article. Thank you!</p>\n <input id=\"interstitial-password-input\" type=\"password\" name=\"password\" autofocus/>\n <p><small>Enter the password we shared with you as part of the review process to view the article.</small></p>\n </div>\n</div>\n`);\n\nexport class Interstitial extends T(HTMLElement) {\n\n connectedCallback() {\n if (this.shouldRemoveSelf()) {\n this.parentElement.removeChild(this);\n } else {\n const passwordInput = this.root.querySelector('#interstitial-password-input');\n passwordInput.oninput = (event) => this.passwordChanged(event);\n }\n }\n\n passwordChanged(event) {\n const entered = event.target.value;\n if (entered === this.password) {\n console.log('Correct password entered.');\n this.parentElement.removeChild(this);\n if (typeof(Storage) !== 'undefined') {\n console.log('Saved that correct password was entered.');\n localStorage.setItem(this.localStorageIdentifier(), 'true');\n }\n }\n }\n\n shouldRemoveSelf() {\n // should never be visible in production\n if (window && window.location.hostname === productionHostname) {\n console.warn('Interstitial found on production, hiding it.');\n return true\n }\n // should only have to enter password once\n if (typeof(Storage) !== 'undefined') {\n if (localStorage.getItem(this.localStorageIdentifier()) === 'true') {\n console.log('Loaded that correct password was entered before; skipping interstitial.');\n return true;\n }\n }\n // otherwise, leave visible\n return false;\n }\n\n localStorageIdentifier() {\n const prefix = 'distill-drafts'\n const suffix = 'interstitial-password-correct';\n return prefix + (window ? window.location.pathname : '-') + suffix\n }\n\n}\n","export default function(a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n","import ascending from \"./ascending.js\";\n\nexport default function(compare) {\n if (compare.length === 1) compare = ascendingComparator(compare);\n return {\n left: function(a, x, lo, hi) {\n if (lo == null) lo = 0;\n if (hi == null) hi = a.length;\n while (lo < hi) {\n var mid = lo + hi >>> 1;\n if (compare(a[mid], x) < 0) lo = mid + 1;\n else hi = mid;\n }\n return lo;\n },\n right: function(a, x, lo, hi) {\n if (lo == null) lo = 0;\n if (hi == null) hi = a.length;\n while (lo < hi) {\n var mid = lo + hi >>> 1;\n if (compare(a[mid], x) > 0) hi = mid;\n else lo = mid + 1;\n }\n return lo;\n }\n };\n}\n\nfunction ascendingComparator(f) {\n return function(d, x) {\n return ascending(f(d), x);\n };\n}\n","import ascending from \"./ascending.js\";\nimport bisector from \"./bisector.js\";\n\nvar ascendingBisect = bisector(ascending);\nexport var bisectRight = ascendingBisect.right;\nexport var bisectLeft = ascendingBisect.left;\nexport default bisectRight;\n","export default function(start, stop, step) {\n start = +start, stop = +stop, step = (n = arguments.length) < 2 ? (stop = start, start = 0, 1) : n < 3 ? 1 : +step;\n\n var i = -1,\n n = Math.max(0, Math.ceil((stop - start) / step)) | 0,\n range = new Array(n);\n\n while (++i < n) {\n range[i] = start + i * step;\n }\n\n return range;\n}\n","var e10 = Math.sqrt(50),\n e5 = Math.sqrt(10),\n e2 = Math.sqrt(2);\n\nexport default function(start, stop, count) {\n var reverse,\n i = -1,\n n,\n ticks,\n step;\n\n stop = +stop, start = +start, count = +count;\n if (start === stop && count > 0) return [start];\n if (reverse = stop < start) n = start, start = stop, stop = n;\n if ((step = tickIncrement(start, stop, count)) === 0 || !isFinite(step)) return [];\n\n if (step > 0) {\n start = Math.ceil(start / step);\n stop = Math.floor(stop / step);\n ticks = new Array(n = Math.ceil(stop - start + 1));\n while (++i < n) ticks[i] = (start + i) * step;\n } else {\n start = Math.floor(start * step);\n stop = Math.ceil(stop * step);\n ticks = new Array(n = Math.ceil(start - stop + 1));\n while (++i < n) ticks[i] = (start - i) / step;\n }\n\n if (reverse) ticks.reverse();\n\n return ticks;\n}\n\nexport function tickIncrement(start, stop, count) {\n var step = (stop - start) / Math.max(0, count),\n power = Math.floor(Math.log(step) / Math.LN10),\n error = step / Math.pow(10, power);\n return power >= 0\n ? (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1) * Math.pow(10, power)\n : -Math.pow(10, -power) / (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1);\n}\n\nexport function tickStep(start, stop, count) {\n var step0 = Math.abs(stop - start) / Math.max(0, count),\n step1 = Math.pow(10, Math.floor(Math.log(step0) / Math.LN10)),\n error = step0 / step1;\n if (error >= e10) step1 *= 10;\n else if (error >= e5) step1 *= 5;\n else if (error >= e2) step1 *= 2;\n return stop < start ? -step1 : step1;\n}\n","export function initRange(domain, range) {\n switch (arguments.length) {\n case 0: break;\n case 1: this.range(domain); break;\n default: this.range(range).domain(domain); break;\n }\n return this;\n}\n\nexport function initInterpolator(domain, interpolator) {\n switch (arguments.length) {\n case 0: break;\n case 1: {\n if (typeof domain === \"function\") this.interpolator(domain);\n else this.range(domain);\n break;\n }\n default: {\n this.domain(domain);\n if (typeof interpolator === \"function\") this.interpolator(interpolator);\n else this.range(interpolator);\n break;\n }\n }\n return this;\n}\n","export default function(constructor, factory, prototype) {\n constructor.prototype = factory.prototype = prototype;\n prototype.constructor = constructor;\n}\n\nexport function extend(parent, definition) {\n var prototype = Object.create(parent.prototype);\n for (var key in definition) prototype[key] = definition[key];\n return prototype;\n}\n","import define, {extend} from \"./define.js\";\n\nexport function Color() {}\n\nexport var darker = 0.7;\nexport var brighter = 1 / darker;\n\nvar reI = \"\\\\s*([+-]?\\\\d+)\\\\s*\",\n reN = \"\\\\s*([+-]?\\\\d*\\\\.?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*\",\n reP = \"\\\\s*([+-]?\\\\d*\\\\.?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*\",\n reHex = /^#([0-9a-f]{3,8})$/,\n reRgbInteger = new RegExp(\"^rgb\\\\(\" + [reI, reI, reI] + \"\\\\)$\"),\n reRgbPercent = new RegExp(\"^rgb\\\\(\" + [reP, reP, reP] + \"\\\\)$\"),\n reRgbaInteger = new RegExp(\"^rgba\\\\(\" + [reI, reI, reI, reN] + \"\\\\)$\"),\n reRgbaPercent = new RegExp(\"^rgba\\\\(\" + [reP, reP, reP, reN] + \"\\\\)$\"),\n reHslPercent = new RegExp(\"^hsl\\\\(\" + [reN, reP, reP] + \"\\\\)$\"),\n reHslaPercent = new RegExp(\"^hsla\\\\(\" + [reN, reP, reP, reN] + \"\\\\)$\");\n\nvar named = {\n aliceblue: 0xf0f8ff,\n antiquewhite: 0xfaebd7,\n aqua: 0x00ffff,\n aquamarine: 0x7fffd4,\n azure: 0xf0ffff,\n beige: 0xf5f5dc,\n bisque: 0xffe4c4,\n black: 0x000000,\n blanchedalmond: 0xffebcd,\n blue: 0x0000ff,\n blueviolet: 0x8a2be2,\n brown: 0xa52a2a,\n burlywood: 0xdeb887,\n cadetblue: 0x5f9ea0,\n chartreuse: 0x7fff00,\n chocolate: 0xd2691e,\n coral: 0xff7f50,\n cornflowerblue: 0x6495ed,\n cornsilk: 0xfff8dc,\n crimson: 0xdc143c,\n cyan: 0x00ffff,\n darkblue: 0x00008b,\n darkcyan: 0x008b8b,\n darkgoldenrod: 0xb8860b,\n darkgray: 0xa9a9a9,\n darkgreen: 0x006400,\n darkgrey: 0xa9a9a9,\n darkkhaki: 0xbdb76b,\n darkmagenta: 0x8b008b,\n darkolivegreen: 0x556b2f,\n darkorange: 0xff8c00,\n darkorchid: 0x9932cc,\n darkred: 0x8b0000,\n darksalmon: 0xe9967a,\n darkseagreen: 0x8fbc8f,\n darkslateblue: 0x483d8b,\n darkslategray: 0x2f4f4f,\n darkslategrey: 0x2f4f4f,\n darkturquoise: 0x00ced1,\n darkviolet: 0x9400d3,\n deeppink: 0xff1493,\n deepskyblue: 0x00bfff,\n dimgray: 0x696969,\n dimgrey: 0x696969,\n dodgerblue: 0x1e90ff,\n firebrick: 0xb22222,\n floralwhite: 0xfffaf0,\n forestgreen: 0x228b22,\n fuchsia: 0xff00ff,\n gainsboro: 0xdcdcdc,\n ghostwhite: 0xf8f8ff,\n gold: 0xffd700,\n goldenrod: 0xdaa520,\n gray: 0x808080,\n green: 0x008000,\n greenyellow: 0xadff2f,\n grey: 0x808080,\n honeydew: 0xf0fff0,\n hotpink: 0xff69b4,\n indianred: 0xcd5c5c,\n indigo: 0x4b0082,\n ivory: 0xfffff0,\n khaki: 0xf0e68c,\n lavender: 0xe6e6fa,\n lavenderblush: 0xfff0f5,\n lawngreen: 0x7cfc00,\n lemonchiffon: 0xfffacd,\n lightblue: 0xadd8e6,\n lightcoral: 0xf08080,\n lightcyan: 0xe0ffff,\n lightgoldenrodyellow: 0xfafad2,\n lightgray: 0xd3d3d3,\n lightgreen: 0x90ee90,\n lightgrey: 0xd3d3d3,\n lightpink: 0xffb6c1,\n lightsalmon: 0xffa07a,\n lightseagreen: 0x20b2aa,\n lightskyblue: 0x87cefa,\n lightslategray: 0x778899,\n lightslategrey: 0x778899,\n lightsteelblue: 0xb0c4de,\n lightyellow: 0xffffe0,\n lime: 0x00ff00,\n limegreen: 0x32cd32,\n linen: 0xfaf0e6,\n magenta: 0xff00ff,\n maroon: 0x800000,\n mediumaquamarine: 0x66cdaa,\n mediumblue: 0x0000cd,\n mediumorchid: 0xba55d3,\n mediumpurple: 0x9370db,\n mediumseagreen: 0x3cb371,\n mediumslateblue: 0x7b68ee,\n mediumspringgreen: 0x00fa9a,\n mediumturquoise: 0x48d1cc,\n mediumvioletred: 0xc71585,\n midnightblue: 0x191970,\n mintcream: 0xf5fffa,\n mistyrose: 0xffe4e1,\n moccasin: 0xffe4b5,\n navajowhite: 0xffdead,\n navy: 0x000080,\n oldlace: 0xfdf5e6,\n olive: 0x808000,\n olivedrab: 0x6b8e23,\n orange: 0xffa500,\n orangered: 0xff4500,\n orchid: 0xda70d6,\n palegoldenrod: 0xeee8aa,\n palegreen: 0x98fb98,\n paleturquoise: 0xafeeee,\n palevioletred: 0xdb7093,\n papayawhip: 0xffefd5,\n peachpuff: 0xffdab9,\n peru: 0xcd853f,\n pink: 0xffc0cb,\n plum: 0xdda0dd,\n powderblue: 0xb0e0e6,\n purple: 0x800080,\n rebeccapurple: 0x663399,\n red: 0xff0000,\n rosybrown: 0xbc8f8f,\n royalblue: 0x4169e1,\n saddlebrown: 0x8b4513,\n salmon: 0xfa8072,\n sandybrown: 0xf4a460,\n seagreen: 0x2e8b57,\n seashell: 0xfff5ee,\n sienna: 0xa0522d,\n silver: 0xc0c0c0,\n skyblue: 0x87ceeb,\n slateblue: 0x6a5acd,\n slategray: 0x708090,\n slategrey: 0x708090,\n snow: 0xfffafa,\n springgreen: 0x00ff7f,\n steelblue: 0x4682b4,\n tan: 0xd2b48c,\n teal: 0x008080,\n thistle: 0xd8bfd8,\n tomato: 0xff6347,\n turquoise: 0x40e0d0,\n violet: 0xee82ee,\n wheat: 0xf5deb3,\n white: 0xffffff,\n whitesmoke: 0xf5f5f5,\n yellow: 0xffff00,\n yellowgreen: 0x9acd32\n};\n\ndefine(Color, color, {\n copy: function(channels) {\n return Object.assign(new this.constructor, this, channels);\n },\n displayable: function() {\n return this.rgb().displayable();\n },\n hex: color_formatHex, // Deprecated! Use color.formatHex.\n formatHex: color_formatHex,\n formatHsl: color_formatHsl,\n formatRgb: color_formatRgb,\n toString: color_formatRgb\n});\n\nfunction color_formatHex() {\n return this.rgb().formatHex();\n}\n\nfunction color_formatHsl() {\n return hslConvert(this).formatHsl();\n}\n\nfunction color_formatRgb() {\n return this.rgb().formatRgb();\n}\n\nexport default function color(format) {\n var m, l;\n format = (format + \"\").trim().toLowerCase();\n return (m = reHex.exec(format)) ? (l = m[1].length, m = parseInt(m[1], 16), l === 6 ? rgbn(m) // #ff0000\n : l === 3 ? new Rgb((m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), ((m & 0xf) << 4) | (m & 0xf), 1) // #f00\n : l === 8 ? rgba(m >> 24 & 0xff, m >> 16 & 0xff, m >> 8 & 0xff, (m & 0xff) / 0xff) // #ff000000\n : l === 4 ? rgba((m >> 12 & 0xf) | (m >> 8 & 0xf0), (m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), (((m & 0xf) << 4) | (m & 0xf)) / 0xff) // #f000\n : null) // invalid hex\n : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0)\n : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) // rgb(100%, 0%, 0%)\n : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1)\n : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1)\n : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%)\n : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1)\n : named.hasOwnProperty(format) ? rgbn(named[format]) // eslint-disable-line no-prototype-builtins\n : format === \"transparent\" ? new Rgb(NaN, NaN, NaN, 0)\n : null;\n}\n\nfunction rgbn(n) {\n return new Rgb(n >> 16 & 0xff, n >> 8 & 0xff, n & 0xff, 1);\n}\n\nfunction rgba(r, g, b, a) {\n if (a <= 0) r = g = b = NaN;\n return new Rgb(r, g, b, a);\n}\n\nexport function rgbConvert(o) {\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Rgb;\n o = o.rgb();\n return new Rgb(o.r, o.g, o.b, o.opacity);\n}\n\nexport function rgb(r, g, b, opacity) {\n return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);\n}\n\nexport function Rgb(r, g, b, opacity) {\n this.r = +r;\n this.g = +g;\n this.b = +b;\n this.opacity = +opacity;\n}\n\ndefine(Rgb, rgb, extend(Color, {\n brighter: function(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n darker: function(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n rgb: function() {\n return this;\n },\n displayable: function() {\n return (-0.5 <= this.r && this.r < 255.5)\n && (-0.5 <= this.g && this.g < 255.5)\n && (-0.5 <= this.b && this.b < 255.5)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n hex: rgb_formatHex, // Deprecated! Use color.formatHex.\n formatHex: rgb_formatHex,\n formatRgb: rgb_formatRgb,\n toString: rgb_formatRgb\n}));\n\nfunction rgb_formatHex() {\n return \"#\" + hex(this.r) + hex(this.g) + hex(this.b);\n}\n\nfunction rgb_formatRgb() {\n var a = this.opacity; a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));\n return (a === 1 ? \"rgb(\" : \"rgba(\")\n + Math.max(0, Math.min(255, Math.round(this.r) || 0)) + \", \"\n + Math.max(0, Math.min(255, Math.round(this.g) || 0)) + \", \"\n + Math.max(0, Math.min(255, Math.round(this.b) || 0))\n + (a === 1 ? \")\" : \", \" + a + \")\");\n}\n\nfunction hex(value) {\n value = Math.max(0, Math.min(255, Math.round(value) || 0));\n return (value < 16 ? \"0\" : \"\") + value.toString(16);\n}\n\nfunction hsla(h, s, l, a) {\n if (a <= 0) h = s = l = NaN;\n else if (l <= 0 || l >= 1) h = s = NaN;\n else if (s <= 0) h = NaN;\n return new Hsl(h, s, l, a);\n}\n\nexport function hslConvert(o) {\n if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Hsl;\n if (o instanceof Hsl) return o;\n o = o.rgb();\n var r = o.r / 255,\n g = o.g / 255,\n b = o.b / 255,\n min = Math.min(r, g, b),\n max = Math.max(r, g, b),\n h = NaN,\n s = max - min,\n l = (max + min) / 2;\n if (s) {\n if (r === max) h = (g - b) / s + (g < b) * 6;\n else if (g === max) h = (b - r) / s + 2;\n else h = (r - g) / s + 4;\n s /= l < 0.5 ? max + min : 2 - max - min;\n h *= 60;\n } else {\n s = l > 0 && l < 1 ? 0 : h;\n }\n return new Hsl(h, s, l, o.opacity);\n}\n\nexport function hsl(h, s, l, opacity) {\n return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity);\n}\n\nfunction Hsl(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\n\ndefine(Hsl, hsl, extend(Color, {\n brighter: function(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n darker: function(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n rgb: function() {\n var h = this.h % 360 + (this.h < 0) * 360,\n s = isNaN(h) || isNaN(this.s) ? 0 : this.s,\n l = this.l,\n m2 = l + (l < 0.5 ? l : 1 - l) * s,\n m1 = 2 * l - m2;\n return new Rgb(\n hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2),\n hsl2rgb(h, m1, m2),\n hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2),\n this.opacity\n );\n },\n displayable: function() {\n return (0 <= this.s && this.s <= 1 || isNaN(this.s))\n && (0 <= this.l && this.l <= 1)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n formatHsl: function() {\n var a = this.opacity; a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));\n return (a === 1 ? \"hsl(\" : \"hsla(\")\n + (this.h || 0) + \", \"\n + (this.s || 0) * 100 + \"%, \"\n + (this.l || 0) * 100 + \"%\"\n + (a === 1 ? \")\" : \", \" + a + \")\");\n }\n}));\n\n/* From FvD 13.37, CSS Color Module Level 3 */\nfunction hsl2rgb(h, m1, m2) {\n return (h < 60 ? m1 + (m2 - m1) * h / 60\n : h < 180 ? m2\n : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60\n : m1) * 255;\n}\n","export var deg2rad = Math.PI / 180;\nexport var rad2deg = 180 / Math.PI;\n","import define, {extend} from \"./define.js\";\nimport {Color, rgbConvert, Rgb} from \"./color.js\";\nimport {deg2rad, rad2deg} from \"./math.js\";\n\n// https://observablehq.com/@mbostock/lab-and-rgb\nvar K = 18,\n Xn = 0.96422,\n Yn = 1,\n Zn = 0.82521,\n t0 = 4 / 29,\n t1 = 6 / 29,\n t2 = 3 * t1 * t1,\n t3 = t1 * t1 * t1;\n\nfunction labConvert(o) {\n if (o instanceof Lab) return new Lab(o.l, o.a, o.b, o.opacity);\n if (o instanceof Hcl) return hcl2lab(o);\n if (!(o instanceof Rgb)) o = rgbConvert(o);\n var r = rgb2lrgb(o.r),\n g = rgb2lrgb(o.g),\n b = rgb2lrgb(o.b),\n y = xyz2lab((0.2225045 * r + 0.7168786 * g + 0.0606169 * b) / Yn), x, z;\n if (r === g && g === b) x = z = y; else {\n x = xyz2lab((0.4360747 * r + 0.3850649 * g + 0.1430804 * b) / Xn);\n z = xyz2lab((0.0139322 * r + 0.0971045 * g + 0.7141733 * b) / Zn);\n }\n return new Lab(116 * y - 16, 500 * (x - y), 200 * (y - z), o.opacity);\n}\n\nexport function gray(l, opacity) {\n return new Lab(l, 0, 0, opacity == null ? 1 : opacity);\n}\n\nexport default function lab(l, a, b, opacity) {\n return arguments.length === 1 ? labConvert(l) : new Lab(l, a, b, opacity == null ? 1 : opacity);\n}\n\nexport function Lab(l, a, b, opacity) {\n this.l = +l;\n this.a = +a;\n this.b = +b;\n this.opacity = +opacity;\n}\n\ndefine(Lab, lab, extend(Color, {\n brighter: function(k) {\n return new Lab(this.l + K * (k == null ? 1 : k), this.a, this.b, this.opacity);\n },\n darker: function(k) {\n return new Lab(this.l - K * (k == null ? 1 : k), this.a, this.b, this.opacity);\n },\n rgb: function() {\n var y = (this.l + 16) / 116,\n x = isNaN(this.a) ? y : y + this.a / 500,\n z = isNaN(this.b) ? y : y - this.b / 200;\n x = Xn * lab2xyz(x);\n y = Yn * lab2xyz(y);\n z = Zn * lab2xyz(z);\n return new Rgb(\n lrgb2rgb( 3.1338561 * x - 1.6168667 * y - 0.4906146 * z),\n lrgb2rgb(-0.9787684 * x + 1.9161415 * y + 0.0334540 * z),\n lrgb2rgb( 0.0719453 * x - 0.2289914 * y + 1.4052427 * z),\n this.opacity\n );\n }\n}));\n\nfunction xyz2lab(t) {\n return t > t3 ? Math.pow(t, 1 / 3) : t / t2 + t0;\n}\n\nfunction lab2xyz(t) {\n return t > t1 ? t * t * t : t2 * (t - t0);\n}\n\nfunction lrgb2rgb(x) {\n return 255 * (x <= 0.0031308 ? 12.92 * x : 1.055 * Math.pow(x, 1 / 2.4) - 0.055);\n}\n\nfunction rgb2lrgb(x) {\n return (x /= 255) <= 0.04045 ? x / 12.92 : Math.pow((x + 0.055) / 1.055, 2.4);\n}\n\nfunction hclConvert(o) {\n if (o instanceof Hcl) return new Hcl(o.h, o.c, o.l, o.opacity);\n if (!(o instanceof Lab)) o = labConvert(o);\n if (o.a === 0 && o.b === 0) return new Hcl(NaN, 0 < o.l && o.l < 100 ? 0 : NaN, o.l, o.opacity);\n var h = Math.atan2(o.b, o.a) * rad2deg;\n return new Hcl(h < 0 ? h + 360 : h, Math.sqrt(o.a * o.a + o.b * o.b), o.l, o.opacity);\n}\n\nexport function lch(l, c, h, opacity) {\n return arguments.length === 1 ? hclConvert(l) : new Hcl(h, c, l, opacity == null ? 1 : opacity);\n}\n\nexport function hcl(h, c, l, opacity) {\n return arguments.length === 1 ? hclConvert(h) : new Hcl(h, c, l, opacity == null ? 1 : opacity);\n}\n\nexport function Hcl(h, c, l, opacity) {\n this.h = +h;\n this.c = +c;\n this.l = +l;\n this.opacity = +opacity;\n}\n\nfunction hcl2lab(o) {\n if (isNaN(o.h)) return new Lab(o.l, 0, 0, o.opacity);\n var h = o.h * deg2rad;\n return new Lab(o.l, Math.cos(h) * o.c, Math.sin(h) * o.c, o.opacity);\n}\n\ndefine(Hcl, hcl, extend(Color, {\n brighter: function(k) {\n return new Hcl(this.h, this.c, this.l + K * (k == null ? 1 : k), this.opacity);\n },\n darker: function(k) {\n return new Hcl(this.h, this.c, this.l - K * (k == null ? 1 : k), this.opacity);\n },\n rgb: function() {\n return hcl2lab(this).rgb();\n }\n}));\n","import define, {extend} from \"./define.js\";\nimport {Color, rgbConvert, Rgb, darker, brighter} from \"./color.js\";\nimport {deg2rad, rad2deg} from \"./math.js\";\n\nvar A = -0.14861,\n B = +1.78277,\n C = -0.29227,\n D = -0.90649,\n E = +1.97294,\n ED = E * D,\n EB = E * B,\n BC_DA = B * C - D * A;\n\nfunction cubehelixConvert(o) {\n if (o instanceof Cubehelix) return new Cubehelix(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Rgb)) o = rgbConvert(o);\n var r = o.r / 255,\n g = o.g / 255,\n b = o.b / 255,\n l = (BC_DA * b + ED * r - EB * g) / (BC_DA + ED - EB),\n bl = b - l,\n k = (E * (g - l) - C * bl) / D,\n s = Math.sqrt(k * k + bl * bl) / (E * l * (1 - l)), // NaN if l=0 or l=1\n h = s ? Math.atan2(k, bl) * rad2deg - 120 : NaN;\n return new Cubehelix(h < 0 ? h + 360 : h, s, l, o.opacity);\n}\n\nexport default function cubehelix(h, s, l, opacity) {\n return arguments.length === 1 ? cubehelixConvert(h) : new Cubehelix(h, s, l, opacity == null ? 1 : opacity);\n}\n\nexport function Cubehelix(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\n\ndefine(Cubehelix, cubehelix, extend(Color, {\n brighter: function(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Cubehelix(this.h, this.s, this.l * k, this.opacity);\n },\n darker: function(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Cubehelix(this.h, this.s, this.l * k, this.opacity);\n },\n rgb: function() {\n var h = isNaN(this.h) ? 0 : (this.h + 120) * deg2rad,\n l = +this.l,\n a = isNaN(this.s) ? 0 : this.s * l * (1 - l),\n cosh = Math.cos(h),\n sinh = Math.sin(h);\n return new Rgb(\n 255 * (l + a * (A * cosh + B * sinh)),\n 255 * (l + a * (C * cosh + D * sinh)),\n 255 * (l + a * (E * cosh)),\n this.opacity\n );\n }\n}));\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","import constant from \"./constant.js\";\n\nfunction linear(a, d) {\n return function(t) {\n return a + t * d;\n };\n}\n\nfunction exponential(a, b, y) {\n return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function(t) {\n return Math.pow(a + t * b, y);\n };\n}\n\nexport function hue(a, b) {\n var d = b - a;\n return d ? linear(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : constant(isNaN(a) ? b : a);\n}\n\nexport function gamma(y) {\n return (y = +y) === 1 ? nogamma : function(a, b) {\n return b - a ? exponential(a, b, y) : constant(isNaN(a) ? b : a);\n };\n}\n\nexport default function nogamma(a, b) {\n var d = b - a;\n return d ? linear(a, d) : constant(isNaN(a) ? b : a);\n}\n","import {rgb as colorRgb} from \"d3-color\";\nimport basis from \"./basis.js\";\nimport basisClosed from \"./basisClosed.js\";\nimport nogamma, {gamma} from \"./color.js\";\n\nexport default (function rgbGamma(y) {\n var color = gamma(y);\n\n function rgb(start, end) {\n var r = color((start = colorRgb(start)).r, (end = colorRgb(end)).r),\n g = color(start.g, end.g),\n b = color(start.b, end.b),\n opacity = nogamma(start.opacity, end.opacity);\n return function(t) {\n start.r = r(t);\n start.g = g(t);\n start.b = b(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n\n rgb.gamma = rgbGamma;\n\n return rgb;\n})(1);\n\nfunction rgbSpline(spline) {\n return function(colors) {\n var n = colors.length,\n r = new Array(n),\n g = new Array(n),\n b = new Array(n),\n i, color;\n for (i = 0; i < n; ++i) {\n color = colorRgb(colors[i]);\n r[i] = color.r || 0;\n g[i] = color.g || 0;\n b[i] = color.b || 0;\n }\n r = spline(r);\n g = spline(g);\n b = spline(b);\n color.opacity = 1;\n return function(t) {\n color.r = r(t);\n color.g = g(t);\n color.b = b(t);\n return color + \"\";\n };\n };\n}\n\nexport var rgbBasis = rgbSpline(basis);\nexport var rgbBasisClosed = rgbSpline(basisClosed);\n","export default function(a, b) {\n if (!b) b = [];\n var n = a ? Math.min(b.length, a.length) : 0,\n c = b.slice(),\n i;\n return function(t) {\n for (i = 0; i < n; ++i) c[i] = a[i] * (1 - t) + b[i] * t;\n return c;\n };\n}\n\nexport function isNumberArray(x) {\n return ArrayBuffer.isView(x) && !(x instanceof DataView);\n}\n","import value from \"./value.js\";\nimport numberArray, {isNumberArray} from \"./numberArray.js\";\n\nexport default function(a, b) {\n return (isNumberArray(b) ? numberArray : genericArray)(a, b);\n}\n\nexport function genericArray(a, b) {\n var nb = b ? b.length : 0,\n na = a ? Math.min(nb, a.length) : 0,\n x = new Array(na),\n c = new Array(nb),\n i;\n\n for (i = 0; i < na; ++i) x[i] = value(a[i], b[i]);\n for (; i < nb; ++i) c[i] = b[i];\n\n return function(t) {\n for (i = 0; i < na; ++i) c[i] = x[i](t);\n return c;\n };\n}\n","export default function(a, b) {\n var d = new Date;\n return a = +a, b = +b, function(t) {\n return d.setTime(a * (1 - t) + b * t), d;\n };\n}\n","export default function(a, b) {\n return a = +a, b = +b, function(t) {\n return a * (1 - t) + b * t;\n };\n}\n","import value from \"./value.js\";\n\nexport default function(a, b) {\n var i = {},\n c = {},\n k;\n\n if (a === null || typeof a !== \"object\") a = {};\n if (b === null || typeof b !== \"object\") b = {};\n\n for (k in b) {\n if (k in a) {\n i[k] = value(a[k], b[k]);\n } else {\n c[k] = b[k];\n }\n }\n\n return function(t) {\n for (k in i) c[k] = i[k](t);\n return c;\n };\n}\n","import number from \"./number.js\";\n\nvar reA = /[-+]?(?:\\d+\\.?\\d*|\\.?\\d+)(?:[eE][-+]?\\d+)?/g,\n reB = new RegExp(reA.source, \"g\");\n\nfunction zero(b) {\n return function() {\n return b;\n };\n}\n\nfunction one(b) {\n return function(t) {\n return b(t) + \"\";\n };\n}\n\nexport default function(a, b) {\n var bi = reA.lastIndex = reB.lastIndex = 0, // scan index for next number in b\n am, // current match in a\n bm, // current match in b\n bs, // string preceding current number in b, if any\n i = -1, // index in s\n s = [], // string constants and placeholders\n q = []; // number interpolators\n\n // Coerce inputs to strings.\n a = a + \"\", b = b + \"\";\n\n // Interpolate pairs of numbers in a & b.\n while ((am = reA.exec(a))\n && (bm = reB.exec(b))) {\n if ((bs = bm.index) > bi) { // a string precedes the next number in b\n bs = b.slice(bi, bs);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n if ((am = am[0]) === (bm = bm[0])) { // numbers in a & b match\n if (s[i]) s[i] += bm; // coalesce with previous string\n else s[++i] = bm;\n } else { // interpolate non-matching numbers\n s[++i] = null;\n q.push({i: i, x: number(am, bm)});\n }\n bi = reB.lastIndex;\n }\n\n // Add remains of b.\n if (bi < b.length) {\n bs = b.slice(bi);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n\n // Special optimization for only a single match.\n // Otherwise, interpolate each of the numbers and rejoin the string.\n return s.length < 2 ? (q[0]\n ? one(q[0].x)\n : zero(b))\n : (b = q.length, function(t) {\n for (var i = 0, o; i < b; ++i) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n });\n}\n","import {color} from \"d3-color\";\nimport rgb from \"./rgb.js\";\nimport {genericArray} from \"./array.js\";\nimport date from \"./date.js\";\nimport number from \"./number.js\";\nimport object from \"./object.js\";\nimport string from \"./string.js\";\nimport constant from \"./constant.js\";\nimport numberArray, {isNumberArray} from \"./numberArray.js\";\n\nexport default function(a, b) {\n var t = typeof b, c;\n return b == null || t === \"boolean\" ? constant(b)\n : (t === \"number\" ? number\n : t === \"string\" ? ((c = color(b)) ? (b = c, rgb) : string)\n : b instanceof color ? rgb\n : b instanceof Date ? date\n : isNumberArray(b) ? numberArray\n : Array.isArray(b) ? genericArray\n : typeof b.valueOf !== \"function\" && typeof b.toString !== \"function\" || isNaN(b) ? object\n : number)(a, b);\n}\n","export default function(a, b) {\n return a = +a, b = +b, function(t) {\n return Math.round(a * (1 - t) + b * t);\n };\n}\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","export default function(x) {\n return +x;\n}\n","import {bisect} from \"d3-array\";\nimport {interpolate as interpolateValue, interpolateNumber, interpolateRound} from \"d3-interpolate\";\nimport constant from \"./constant.js\";\nimport number from \"./number.js\";\n\nvar unit = [0, 1];\n\nexport function identity(x) {\n return x;\n}\n\nfunction normalize(a, b) {\n return (b -= (a = +a))\n ? function(x) { return (x - a) / b; }\n : constant(isNaN(b) ? NaN : 0.5);\n}\n\nfunction clamper(a, b) {\n var t;\n if (a > b) t = a, a = b, b = t;\n return function(x) { return Math.max(a, Math.min(b, x)); };\n}\n\n// normalize(a, b)(x) takes a domain value x in [a,b] and returns the corresponding parameter t in [0,1].\n// interpolate(a, b)(t) takes a parameter t in [0,1] and returns the corresponding range value x in [a,b].\nfunction bimap(domain, range, interpolate) {\n var d0 = domain[0], d1 = domain[1], r0 = range[0], r1 = range[1];\n if (d1 < d0) d0 = normalize(d1, d0), r0 = interpolate(r1, r0);\n else d0 = normalize(d0, d1), r0 = interpolate(r0, r1);\n return function(x) { return r0(d0(x)); };\n}\n\nfunction polymap(domain, range, interpolate) {\n var j = Math.min(domain.length, range.length) - 1,\n d = new Array(j),\n r = new Array(j),\n i = -1;\n\n // Reverse descending domains.\n if (domain[j] < domain[0]) {\n domain = domain.slice().reverse();\n range = range.slice().reverse();\n }\n\n while (++i < j) {\n d[i] = normalize(domain[i], domain[i + 1]);\n r[i] = interpolate(range[i], range[i + 1]);\n }\n\n return function(x) {\n var i = bisect(domain, x, 1, j) - 1;\n return r[i](d[i](x));\n };\n}\n\nexport function copy(source, target) {\n return target\n .domain(source.domain())\n .range(source.range())\n .interpolate(source.interpolate())\n .clamp(source.clamp())\n .unknown(source.unknown());\n}\n\nexport function transformer() {\n var domain = unit,\n range = unit,\n interpolate = interpolateValue,\n transform,\n untransform,\n unknown,\n clamp = identity,\n piecewise,\n output,\n input;\n\n function rescale() {\n var n = Math.min(domain.length, range.length);\n if (clamp !== identity) clamp = clamper(domain[0], domain[n - 1]);\n piecewise = n > 2 ? polymap : bimap;\n output = input = null;\n return scale;\n }\n\n function scale(x) {\n return isNaN(x = +x) ? unknown : (output || (output = piecewise(domain.map(transform), range, interpolate)))(transform(clamp(x)));\n }\n\n scale.invert = function(y) {\n return clamp(untransform((input || (input = piecewise(range, domain.map(transform), interpolateNumber)))(y)));\n };\n\n scale.domain = function(_) {\n return arguments.length ? (domain = Array.from(_, number), rescale()) : domain.slice();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = Array.from(_), rescale()) : range.slice();\n };\n\n scale.rangeRound = function(_) {\n return range = Array.from(_), interpolate = interpolateRound, rescale();\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (clamp = _ ? true : identity, rescale()) : clamp !== identity;\n };\n\n scale.interpolate = function(_) {\n return arguments.length ? (interpolate = _, rescale()) : interpolate;\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n return function(t, u) {\n transform = t, untransform = u;\n return rescale();\n };\n}\n\nexport default function continuous() {\n return transformer()(identity, identity);\n}\n","// Computes the decimal coefficient and exponent of the specified number x with\n// significant digits p, where x is positive and p is in [1, 21] or undefined.\n// For example, formatDecimal(1.23) returns [\"123\", 0].\nexport default function(x, p) {\n if ((i = (x = p ? x.toExponential(p - 1) : x.toExponential()).indexOf(\"e\")) < 0) return null; // NaN, ±Infinity\n var i, coefficient = x.slice(0, i);\n\n // The string returned by toExponential either has the form \\d\\.\\d+e[-+]\\d+\n // (e.g., 1.2e+3) or the form \\de[-+]\\d+ (e.g., 1e+3).\n return [\n coefficient.length > 1 ? coefficient[0] + coefficient.slice(2) : coefficient,\n +x.slice(i + 1)\n ];\n}\n","import formatDecimal from \"./formatDecimal.js\";\n\nexport default function(x) {\n return x = formatDecimal(Math.abs(x)), x ? x[1] : NaN;\n}\n","export default function(grouping, thousands) {\n return function(value, width) {\n var i = value.length,\n t = [],\n j = 0,\n g = grouping[0],\n length = 0;\n\n while (i > 0 && g > 0) {\n if (length + g + 1 > width) g = Math.max(1, width - length);\n t.push(value.substring(i -= g, i + g));\n if ((length += g + 1) > width) break;\n g = grouping[j = (j + 1) % grouping.length];\n }\n\n return t.reverse().join(thousands);\n };\n}\n","export default function(numerals) {\n return function(value) {\n return value.replace(/[0-9]/g, function(i) {\n return numerals[+i];\n });\n };\n}\n","// [[fill]align][sign][symbol][0][width][,][.precision][~][type]\nvar re = /^(?:(.)?([<>=^]))?([+\\-( ])?([$#])?(0)?(\\d+)?(,)?(\\.\\d+)?(~)?([a-z%])?$/i;\n\nexport default function formatSpecifier(specifier) {\n if (!(match = re.exec(specifier))) throw new Error(\"invalid format: \" + specifier);\n var match;\n return new FormatSpecifier({\n fill: match[1],\n align: match[2],\n sign: match[3],\n symbol: match[4],\n zero: match[5],\n width: match[6],\n comma: match[7],\n precision: match[8] && match[8].slice(1),\n trim: match[9],\n type: match[10]\n });\n}\n\nformatSpecifier.prototype = FormatSpecifier.prototype; // instanceof\n\nexport function FormatSpecifier(specifier) {\n this.fill = specifier.fill === undefined ? \" \" : specifier.fill + \"\";\n this.align = specifier.align === undefined ? \">\" : specifier.align + \"\";\n this.sign = specifier.sign === undefined ? \"-\" : specifier.sign + \"\";\n this.symbol = specifier.symbol === undefined ? \"\" : specifier.symbol + \"\";\n this.zero = !!specifier.zero;\n this.width = specifier.width === undefined ? undefined : +specifier.width;\n this.comma = !!specifier.comma;\n this.precision = specifier.precision === undefined ? undefined : +specifier.precision;\n this.trim = !!specifier.trim;\n this.type = specifier.type === undefined ? \"\" : specifier.type + \"\";\n}\n\nFormatSpecifier.prototype.toString = function() {\n return this.fill\n + this.align\n + this.sign\n + this.symbol\n + (this.zero ? \"0\" : \"\")\n + (this.width === undefined ? \"\" : Math.max(1, this.width | 0))\n + (this.comma ? \",\" : \"\")\n + (this.precision === undefined ? \"\" : \".\" + Math.max(0, this.precision | 0))\n + (this.trim ? \"~\" : \"\")\n + this.type;\n};\n","// Trims insignificant zeros, e.g., replaces 1.2000k with 1.2k.\nexport default function(s) {\n out: for (var n = s.length, i = 1, i0 = -1, i1; i < n; ++i) {\n switch (s[i]) {\n case \".\": i0 = i1 = i; break;\n case \"0\": if (i0 === 0) i0 = i; i1 = i; break;\n default: if (!+s[i]) break out; if (i0 > 0) i0 = 0; break;\n }\n }\n return i0 > 0 ? s.slice(0, i0) + s.slice(i1 + 1) : s;\n}\n","import formatDecimal from \"./formatDecimal.js\";\n\nexport var prefixExponent;\n\nexport default function(x, p) {\n var d = formatDecimal(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1],\n i = exponent - (prefixExponent = Math.max(-8, Math.min(8, Math.floor(exponent / 3))) * 3) + 1,\n n = coefficient.length;\n return i === n ? coefficient\n : i > n ? coefficient + new Array(i - n + 1).join(\"0\")\n : i > 0 ? coefficient.slice(0, i) + \".\" + coefficient.slice(i)\n : \"0.\" + new Array(1 - i).join(\"0\") + formatDecimal(x, Math.max(0, p + i - 1))[0]; // less than 1y!\n}\n","import formatDecimal from \"./formatDecimal.js\";\n\nexport default function(x, p) {\n var d = formatDecimal(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1];\n return exponent < 0 ? \"0.\" + new Array(-exponent).join(\"0\") + coefficient\n : coefficient.length > exponent + 1 ? coefficient.slice(0, exponent + 1) + \".\" + coefficient.slice(exponent + 1)\n : coefficient + new Array(exponent - coefficient.length + 2).join(\"0\");\n}\n","import formatPrefixAuto from \"./formatPrefixAuto.js\";\nimport formatRounded from \"./formatRounded.js\";\n\nexport default {\n \"%\": function(x, p) { return (x * 100).toFixed(p); },\n \"b\": function(x) { return Math.round(x).toString(2); },\n \"c\": function(x) { return x + \"\"; },\n \"d\": function(x) { return Math.round(x).toString(10); },\n \"e\": function(x, p) { return x.toExponential(p); },\n \"f\": function(x, p) { return x.toFixed(p); },\n \"g\": function(x, p) { return x.toPrecision(p); },\n \"o\": function(x) { return Math.round(x).toString(8); },\n \"p\": function(x, p) { return formatRounded(x * 100, p); },\n \"r\": formatRounded,\n \"s\": formatPrefixAuto,\n \"X\": function(x) { return Math.round(x).toString(16).toUpperCase(); },\n \"x\": function(x) { return Math.round(x).toString(16); }\n};\n","export default function(x) {\n return x;\n}\n","import exponent from \"./exponent.js\";\nimport formatGroup from \"./formatGroup.js\";\nimport formatNumerals from \"./formatNumerals.js\";\nimport formatSpecifier from \"./formatSpecifier.js\";\nimport formatTrim from \"./formatTrim.js\";\nimport formatTypes from \"./formatTypes.js\";\nimport {prefixExponent} from \"./formatPrefixAuto.js\";\nimport identity from \"./identity.js\";\n\nvar map = Array.prototype.map,\n prefixes = [\"y\",\"z\",\"a\",\"f\",\"p\",\"n\",\"µ\",\"m\",\"\",\"k\",\"M\",\"G\",\"T\",\"P\",\"E\",\"Z\",\"Y\"];\n\nexport default function(locale) {\n var group = locale.grouping === undefined || locale.thousands === undefined ? identity : formatGroup(map.call(locale.grouping, Number), locale.thousands + \"\"),\n currencyPrefix = locale.currency === undefined ? \"\" : locale.currency[0] + \"\",\n currencySuffix = locale.currency === undefined ? \"\" : locale.currency[1] + \"\",\n decimal = locale.decimal === undefined ? \".\" : locale.decimal + \"\",\n numerals = locale.numerals === undefined ? identity : formatNumerals(map.call(locale.numerals, String)),\n percent = locale.percent === undefined ? \"%\" : locale.percent + \"\",\n minus = locale.minus === undefined ? \"-\" : locale.minus + \"\",\n nan = locale.nan === undefined ? \"NaN\" : locale.nan + \"\";\n\n function newFormat(specifier) {\n specifier = formatSpecifier(specifier);\n\n var fill = specifier.fill,\n align = specifier.align,\n sign = specifier.sign,\n symbol = specifier.symbol,\n zero = specifier.zero,\n width = specifier.width,\n comma = specifier.comma,\n precision = specifier.precision,\n trim = specifier.trim,\n type = specifier.type;\n\n // The \"n\" type is an alias for \",g\".\n if (type === \"n\") comma = true, type = \"g\";\n\n // The \"\" type, and any invalid type, is an alias for \".12~g\".\n else if (!formatTypes[type]) precision === undefined && (precision = 12), trim = true, type = \"g\";\n\n // If zero fill is specified, padding goes after sign and before digits.\n if (zero || (fill === \"0\" && align === \"=\")) zero = true, fill = \"0\", align = \"=\";\n\n // Compute the prefix and suffix.\n // For SI-prefix, the suffix is lazily computed.\n var prefix = symbol === \"$\" ? currencyPrefix : symbol === \"#\" && /[boxX]/.test(type) ? \"0\" + type.toLowerCase() : \"\",\n suffix = symbol === \"$\" ? currencySuffix : /[%p]/.test(type) ? percent : \"\";\n\n // What format function should we use?\n // Is this an integer type?\n // Can this type generate exponential notation?\n var formatType = formatTypes[type],\n maybeSuffix = /[defgprs%]/.test(type);\n\n // Set the default precision if not specified,\n // or clamp the specified precision to the supported range.\n // For significant precision, it must be in [1, 21].\n // For fixed precision, it must be in [0, 20].\n precision = precision === undefined ? 6\n : /[gprs]/.test(type) ? Math.max(1, Math.min(21, precision))\n : Math.max(0, Math.min(20, precision));\n\n function format(value) {\n var valuePrefix = prefix,\n valueSuffix = suffix,\n i, n, c;\n\n if (type === \"c\") {\n valueSuffix = formatType(value) + valueSuffix;\n value = \"\";\n } else {\n value = +value;\n\n // Determine the sign. -0 is not less than 0, but 1 / -0 is!\n var valueNegative = value < 0 || 1 / value < 0;\n\n // Perform the initial formatting.\n value = isNaN(value) ? nan : formatType(Math.abs(value), precision);\n\n // Trim insignificant zeros.\n if (trim) value = formatTrim(value);\n\n // If a negative value rounds to zero after formatting, and no explicit positive sign is requested, hide the sign.\n if (valueNegative && +value === 0 && sign !== \"+\") valueNegative = false;\n\n // Compute the prefix and suffix.\n valuePrefix = (valueNegative ? (sign === \"(\" ? sign : minus) : sign === \"-\" || sign === \"(\" ? \"\" : sign) + valuePrefix;\n valueSuffix = (type === \"s\" ? prefixes[8 + prefixExponent / 3] : \"\") + valueSuffix + (valueNegative && sign === \"(\" ? \")\" : \"\");\n\n // Break the formatted value into the integer “value” part that can be\n // grouped, and fractional or exponential “suffix” part that is not.\n if (maybeSuffix) {\n i = -1, n = value.length;\n while (++i < n) {\n if (c = value.charCodeAt(i), 48 > c || c > 57) {\n valueSuffix = (c === 46 ? decimal + value.slice(i + 1) : value.slice(i)) + valueSuffix;\n value = value.slice(0, i);\n break;\n }\n }\n }\n }\n\n // If the fill character is not \"0\", grouping is applied before padding.\n if (comma && !zero) value = group(value, Infinity);\n\n // Compute the padding.\n var length = valuePrefix.length + value.length + valueSuffix.length,\n padding = length < width ? new Array(width - length + 1).join(fill) : \"\";\n\n // If the fill character is \"0\", grouping is applied after padding.\n if (comma && zero) value = group(padding + value, padding.length ? width - valueSuffix.length : Infinity), padding = \"\";\n\n // Reconstruct the final output based on the desired alignment.\n switch (align) {\n case \"<\": value = valuePrefix + value + valueSuffix + padding; break;\n case \"=\": value = valuePrefix + padding + value + valueSuffix; break;\n case \"^\": value = padding.slice(0, length = padding.length >> 1) + valuePrefix + value + valueSuffix + padding.slice(length); break;\n default: value = padding + valuePrefix + value + valueSuffix; break;\n }\n\n return numerals(value);\n }\n\n format.toString = function() {\n return specifier + \"\";\n };\n\n return format;\n }\n\n function formatPrefix(specifier, value) {\n var f = newFormat((specifier = formatSpecifier(specifier), specifier.type = \"f\", specifier)),\n e = Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3,\n k = Math.pow(10, -e),\n prefix = prefixes[8 + e / 3];\n return function(value) {\n return f(k * value) + prefix;\n };\n }\n\n return {\n format: newFormat,\n formatPrefix: formatPrefix\n };\n}\n","import formatLocale from \"./locale.js\";\n\nvar locale;\nexport var format;\nexport var formatPrefix;\n\ndefaultLocale({\n decimal: \".\",\n thousands: \",\",\n grouping: [3],\n currency: [\"$\", \"\"],\n minus: \"-\"\n});\n\nexport default function defaultLocale(definition) {\n locale = formatLocale(definition);\n format = locale.format;\n formatPrefix = locale.formatPrefix;\n return locale;\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step) {\n return Math.max(0, -exponent(Math.abs(step)));\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step, value) {\n return Math.max(0, Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3 - exponent(Math.abs(step)));\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step, max) {\n step = Math.abs(step), max = Math.abs(max) - step;\n return Math.max(0, exponent(max) - exponent(step)) + 1;\n}\n","import {tickStep} from \"d3-array\";\nimport {format, formatPrefix, formatSpecifier, precisionFixed, precisionPrefix, precisionRound} from \"d3-format\";\n\nexport default function(start, stop, count, specifier) {\n var step = tickStep(start, stop, count),\n precision;\n specifier = formatSpecifier(specifier == null ? \",f\" : specifier);\n switch (specifier.type) {\n case \"s\": {\n var value = Math.max(Math.abs(start), Math.abs(stop));\n if (specifier.precision == null && !isNaN(precision = precisionPrefix(step, value))) specifier.precision = precision;\n return formatPrefix(specifier, value);\n }\n case \"\":\n case \"e\":\n case \"g\":\n case \"p\":\n case \"r\": {\n if (specifier.precision == null && !isNaN(precision = precisionRound(step, Math.max(Math.abs(start), Math.abs(stop))))) specifier.precision = precision - (specifier.type === \"e\");\n break;\n }\n case \"f\":\n case \"%\": {\n if (specifier.precision == null && !isNaN(precision = precisionFixed(step))) specifier.precision = precision - (specifier.type === \"%\") * 2;\n break;\n }\n }\n return format(specifier);\n}\n","import {ticks, tickIncrement} from \"d3-array\";\nimport continuous, {copy} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\nimport tickFormat from \"./tickFormat.js\";\n\nexport function linearish(scale) {\n var domain = scale.domain;\n\n scale.ticks = function(count) {\n var d = domain();\n return ticks(d[0], d[d.length - 1], count == null ? 10 : count);\n };\n\n scale.tickFormat = function(count, specifier) {\n var d = domain();\n return tickFormat(d[0], d[d.length - 1], count == null ? 10 : count, specifier);\n };\n\n scale.nice = function(count) {\n if (count == null) count = 10;\n\n var d = domain(),\n i0 = 0,\n i1 = d.length - 1,\n start = d[i0],\n stop = d[i1],\n step;\n\n if (stop < start) {\n step = start, start = stop, stop = step;\n step = i0, i0 = i1, i1 = step;\n }\n\n step = tickIncrement(start, stop, count);\n\n if (step > 0) {\n start = Math.floor(start / step) * step;\n stop = Math.ceil(stop / step) * step;\n step = tickIncrement(start, stop, count);\n } else if (step < 0) {\n start = Math.ceil(start * step) / step;\n stop = Math.floor(stop * step) / step;\n step = tickIncrement(start, stop, count);\n }\n\n if (step > 0) {\n d[i0] = Math.floor(start / step) * step;\n d[i1] = Math.ceil(stop / step) * step;\n domain(d);\n } else if (step < 0) {\n d[i0] = Math.ceil(start * step) / step;\n d[i1] = Math.floor(stop * step) / step;\n domain(d);\n }\n\n return scale;\n };\n\n return scale;\n}\n\nexport default function linear() {\n var scale = continuous();\n\n scale.copy = function() {\n return copy(scale, linear());\n };\n\n initRange.apply(scale, arguments);\n\n return linearish(scale);\n}\n","var t0 = new Date,\n t1 = new Date;\n\nexport default function newInterval(floori, offseti, count, field) {\n\n function interval(date) {\n return floori(date = arguments.length === 0 ? new Date : new Date(+date)), date;\n }\n\n interval.floor = function(date) {\n return floori(date = new Date(+date)), date;\n };\n\n interval.ceil = function(date) {\n return floori(date = new Date(date - 1)), offseti(date, 1), floori(date), date;\n };\n\n interval.round = function(date) {\n var d0 = interval(date),\n d1 = interval.ceil(date);\n return date - d0 < d1 - date ? d0 : d1;\n };\n\n interval.offset = function(date, step) {\n return offseti(date = new Date(+date), step == null ? 1 : Math.floor(step)), date;\n };\n\n interval.range = function(start, stop, step) {\n var range = [], previous;\n start = interval.ceil(start);\n step = step == null ? 1 : Math.floor(step);\n if (!(start < stop) || !(step > 0)) return range; // also handles Invalid Date\n do range.push(previous = new Date(+start)), offseti(start, step), floori(start);\n while (previous < start && start < stop);\n return range;\n };\n\n interval.filter = function(test) {\n return newInterval(function(date) {\n if (date >= date) while (floori(date), !test(date)) date.setTime(date - 1);\n }, function(date, step) {\n if (date >= date) {\n if (step < 0) while (++step <= 0) {\n while (offseti(date, -1), !test(date)) {} // eslint-disable-line no-empty\n } else while (--step >= 0) {\n while (offseti(date, +1), !test(date)) {} // eslint-disable-line no-empty\n }\n }\n });\n };\n\n if (count) {\n interval.count = function(start, end) {\n t0.setTime(+start), t1.setTime(+end);\n floori(t0), floori(t1);\n return Math.floor(count(t0, t1));\n };\n\n interval.every = function(step) {\n step = Math.floor(step);\n return !isFinite(step) || !(step > 0) ? null\n : !(step > 1) ? interval\n : interval.filter(field\n ? function(d) { return field(d) % step === 0; }\n : function(d) { return interval.count(0, d) % step === 0; });\n };\n }\n\n return interval;\n}\n","import interval from \"./interval.js\";\n\nvar millisecond = interval(function() {\n // noop\n}, function(date, step) {\n date.setTime(+date + step);\n}, function(start, end) {\n return end - start;\n});\n\n// An optimized implementation for this simple case.\nmillisecond.every = function(k) {\n k = Math.floor(k);\n if (!isFinite(k) || !(k > 0)) return null;\n if (!(k > 1)) return millisecond;\n return interval(function(date) {\n date.setTime(Math.floor(date / k) * k);\n }, function(date, step) {\n date.setTime(+date + step * k);\n }, function(start, end) {\n return (end - start) / k;\n });\n};\n\nexport default millisecond;\nexport var milliseconds = millisecond.range;\n","export var durationSecond = 1e3;\nexport var durationMinute = 6e4;\nexport var durationHour = 36e5;\nexport var durationDay = 864e5;\nexport var durationWeek = 6048e5;\n","import interval from \"./interval.js\";\nimport {durationSecond} from \"./duration.js\";\n\nvar second = interval(function(date) {\n date.setTime(date - date.getMilliseconds());\n}, function(date, step) {\n date.setTime(+date + step * durationSecond);\n}, function(start, end) {\n return (end - start) / durationSecond;\n}, function(date) {\n return date.getUTCSeconds();\n});\n\nexport default second;\nexport var seconds = second.range;\n","import interval from \"./interval.js\";\nimport {durationMinute, durationSecond} from \"./duration.js\";\n\nvar minute = interval(function(date) {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond);\n}, function(date, step) {\n date.setTime(+date + step * durationMinute);\n}, function(start, end) {\n return (end - start) / durationMinute;\n}, function(date) {\n return date.getMinutes();\n});\n\nexport default minute;\nexport var minutes = minute.range;\n","import interval from \"./interval.js\";\nimport {durationHour, durationMinute, durationSecond} from \"./duration.js\";\n\nvar hour = interval(function(date) {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond - date.getMinutes() * durationMinute);\n}, function(date, step) {\n date.setTime(+date + step * durationHour);\n}, function(start, end) {\n return (end - start) / durationHour;\n}, function(date) {\n return date.getHours();\n});\n\nexport default hour;\nexport var hours = hour.range;\n","import interval from \"./interval.js\";\nimport {durationDay, durationMinute} from \"./duration.js\";\n\nvar day = interval(function(date) {\n date.setHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setDate(date.getDate() + step);\n}, function(start, end) {\n return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationDay;\n}, function(date) {\n return date.getDate() - 1;\n});\n\nexport default day;\nexport var days = day.range;\n","import interval from \"./interval.js\";\nimport {durationMinute, durationWeek} from \"./duration.js\";\n\nfunction weekday(i) {\n return interval(function(date) {\n date.setDate(date.getDate() - (date.getDay() + 7 - i) % 7);\n date.setHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setDate(date.getDate() + step * 7);\n }, function(start, end) {\n return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationWeek;\n });\n}\n\nexport var sunday = weekday(0);\nexport var monday = weekday(1);\nexport var tuesday = weekday(2);\nexport var wednesday = weekday(3);\nexport var thursday = weekday(4);\nexport var friday = weekday(5);\nexport var saturday = weekday(6);\n\nexport var sundays = sunday.range;\nexport var mondays = monday.range;\nexport var tuesdays = tuesday.range;\nexport var wednesdays = wednesday.range;\nexport var thursdays = thursday.range;\nexport var fridays = friday.range;\nexport var saturdays = saturday.range;\n","import interval from \"./interval.js\";\n\nvar month = interval(function(date) {\n date.setDate(1);\n date.setHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setMonth(date.getMonth() + step);\n}, function(start, end) {\n return end.getMonth() - start.getMonth() + (end.getFullYear() - start.getFullYear()) * 12;\n}, function(date) {\n return date.getMonth();\n});\n\nexport default month;\nexport var months = month.range;\n","import interval from \"./interval.js\";\n\nvar year = interval(function(date) {\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setFullYear(date.getFullYear() + step);\n}, function(start, end) {\n return end.getFullYear() - start.getFullYear();\n}, function(date) {\n return date.getFullYear();\n});\n\n// An optimized implementation for this simple case.\nyear.every = function(k) {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : interval(function(date) {\n date.setFullYear(Math.floor(date.getFullYear() / k) * k);\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setFullYear(date.getFullYear() + step * k);\n });\n};\n\nexport default year;\nexport var years = year.range;\n","import interval from \"./interval.js\";\nimport {durationMinute} from \"./duration.js\";\n\nvar utcMinute = interval(function(date) {\n date.setUTCSeconds(0, 0);\n}, function(date, step) {\n date.setTime(+date + step * durationMinute);\n}, function(start, end) {\n return (end - start) / durationMinute;\n}, function(date) {\n return date.getUTCMinutes();\n});\n\nexport default utcMinute;\nexport var utcMinutes = utcMinute.range;\n","import interval from \"./interval.js\";\nimport {durationHour} from \"./duration.js\";\n\nvar utcHour = interval(function(date) {\n date.setUTCMinutes(0, 0, 0);\n}, function(date, step) {\n date.setTime(+date + step * durationHour);\n}, function(start, end) {\n return (end - start) / durationHour;\n}, function(date) {\n return date.getUTCHours();\n});\n\nexport default utcHour;\nexport var utcHours = utcHour.range;\n","import interval from \"./interval.js\";\nimport {durationDay} from \"./duration.js\";\n\nvar utcDay = interval(function(date) {\n date.setUTCHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setUTCDate(date.getUTCDate() + step);\n}, function(start, end) {\n return (end - start) / durationDay;\n}, function(date) {\n return date.getUTCDate() - 1;\n});\n\nexport default utcDay;\nexport var utcDays = utcDay.range;\n","import interval from \"./interval.js\";\nimport {durationWeek} from \"./duration.js\";\n\nfunction utcWeekday(i) {\n return interval(function(date) {\n date.setUTCDate(date.getUTCDate() - (date.getUTCDay() + 7 - i) % 7);\n date.setUTCHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setUTCDate(date.getUTCDate() + step * 7);\n }, function(start, end) {\n return (end - start) / durationWeek;\n });\n}\n\nexport var utcSunday = utcWeekday(0);\nexport var utcMonday = utcWeekday(1);\nexport var utcTuesday = utcWeekday(2);\nexport var utcWednesday = utcWeekday(3);\nexport var utcThursday = utcWeekday(4);\nexport var utcFriday = utcWeekday(5);\nexport var utcSaturday = utcWeekday(6);\n\nexport var utcSundays = utcSunday.range;\nexport var utcMondays = utcMonday.range;\nexport var utcTuesdays = utcTuesday.range;\nexport var utcWednesdays = utcWednesday.range;\nexport var utcThursdays = utcThursday.range;\nexport var utcFridays = utcFriday.range;\nexport var utcSaturdays = utcSaturday.range;\n","import interval from \"./interval.js\";\n\nvar utcMonth = interval(function(date) {\n date.setUTCDate(1);\n date.setUTCHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setUTCMonth(date.getUTCMonth() + step);\n}, function(start, end) {\n return end.getUTCMonth() - start.getUTCMonth() + (end.getUTCFullYear() - start.getUTCFullYear()) * 12;\n}, function(date) {\n return date.getUTCMonth();\n});\n\nexport default utcMonth;\nexport var utcMonths = utcMonth.range;\n","import interval from \"./interval.js\";\n\nvar utcYear = interval(function(date) {\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setUTCFullYear(date.getUTCFullYear() + step);\n}, function(start, end) {\n return end.getUTCFullYear() - start.getUTCFullYear();\n}, function(date) {\n return date.getUTCFullYear();\n});\n\n// An optimized implementation for this simple case.\nutcYear.every = function(k) {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : interval(function(date) {\n date.setUTCFullYear(Math.floor(date.getUTCFullYear() / k) * k);\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setUTCFullYear(date.getUTCFullYear() + step * k);\n });\n};\n\nexport default utcYear;\nexport var utcYears = utcYear.range;\n","import {\n timeDay,\n timeSunday,\n timeMonday,\n timeThursday,\n timeYear,\n utcDay,\n utcSunday,\n utcMonday,\n utcThursday,\n utcYear\n} from \"d3-time\";\n\nfunction localDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(-1, d.m, d.d, d.H, d.M, d.S, d.L);\n date.setFullYear(d.y);\n return date;\n }\n return new Date(d.y, d.m, d.d, d.H, d.M, d.S, d.L);\n}\n\nfunction utcDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(Date.UTC(-1, d.m, d.d, d.H, d.M, d.S, d.L));\n date.setUTCFullYear(d.y);\n return date;\n }\n return new Date(Date.UTC(d.y, d.m, d.d, d.H, d.M, d.S, d.L));\n}\n\nfunction newDate(y, m, d) {\n return {y: y, m: m, d: d, H: 0, M: 0, S: 0, L: 0};\n}\n\nexport default function formatLocale(locale) {\n var locale_dateTime = locale.dateTime,\n locale_date = locale.date,\n locale_time = locale.time,\n locale_periods = locale.periods,\n locale_weekdays = locale.days,\n locale_shortWeekdays = locale.shortDays,\n locale_months = locale.months,\n locale_shortMonths = locale.shortMonths;\n\n var periodRe = formatRe(locale_periods),\n periodLookup = formatLookup(locale_periods),\n weekdayRe = formatRe(locale_weekdays),\n weekdayLookup = formatLookup(locale_weekdays),\n shortWeekdayRe = formatRe(locale_shortWeekdays),\n shortWeekdayLookup = formatLookup(locale_shortWeekdays),\n monthRe = formatRe(locale_months),\n monthLookup = formatLookup(locale_months),\n shortMonthRe = formatRe(locale_shortMonths),\n shortMonthLookup = formatLookup(locale_shortMonths);\n\n var formats = {\n \"a\": formatShortWeekday,\n \"A\": formatWeekday,\n \"b\": formatShortMonth,\n \"B\": formatMonth,\n \"c\": null,\n \"d\": formatDayOfMonth,\n \"e\": formatDayOfMonth,\n \"f\": formatMicroseconds,\n \"H\": formatHour24,\n \"I\": formatHour12,\n \"j\": formatDayOfYear,\n \"L\": formatMilliseconds,\n \"m\": formatMonthNumber,\n \"M\": formatMinutes,\n \"p\": formatPeriod,\n \"q\": formatQuarter,\n \"Q\": formatUnixTimestamp,\n \"s\": formatUnixTimestampSeconds,\n \"S\": formatSeconds,\n \"u\": formatWeekdayNumberMonday,\n \"U\": formatWeekNumberSunday,\n \"V\": formatWeekNumberISO,\n \"w\": formatWeekdayNumberSunday,\n \"W\": formatWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatYear,\n \"Y\": formatFullYear,\n \"Z\": formatZone,\n \"%\": formatLiteralPercent\n };\n\n var utcFormats = {\n \"a\": formatUTCShortWeekday,\n \"A\": formatUTCWeekday,\n \"b\": formatUTCShortMonth,\n \"B\": formatUTCMonth,\n \"c\": null,\n \"d\": formatUTCDayOfMonth,\n \"e\": formatUTCDayOfMonth,\n \"f\": formatUTCMicroseconds,\n \"H\": formatUTCHour24,\n \"I\": formatUTCHour12,\n \"j\": formatUTCDayOfYear,\n \"L\": formatUTCMilliseconds,\n \"m\": formatUTCMonthNumber,\n \"M\": formatUTCMinutes,\n \"p\": formatUTCPeriod,\n \"q\": formatUTCQuarter,\n \"Q\": formatUnixTimestamp,\n \"s\": formatUnixTimestampSeconds,\n \"S\": formatUTCSeconds,\n \"u\": formatUTCWeekdayNumberMonday,\n \"U\": formatUTCWeekNumberSunday,\n \"V\": formatUTCWeekNumberISO,\n \"w\": formatUTCWeekdayNumberSunday,\n \"W\": formatUTCWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatUTCYear,\n \"Y\": formatUTCFullYear,\n \"Z\": formatUTCZone,\n \"%\": formatLiteralPercent\n };\n\n var parses = {\n \"a\": parseShortWeekday,\n \"A\": parseWeekday,\n \"b\": parseShortMonth,\n \"B\": parseMonth,\n \"c\": parseLocaleDateTime,\n \"d\": parseDayOfMonth,\n \"e\": parseDayOfMonth,\n \"f\": parseMicroseconds,\n \"H\": parseHour24,\n \"I\": parseHour24,\n \"j\": parseDayOfYear,\n \"L\": parseMilliseconds,\n \"m\": parseMonthNumber,\n \"M\": parseMinutes,\n \"p\": parsePeriod,\n \"q\": parseQuarter,\n \"Q\": parseUnixTimestamp,\n \"s\": parseUnixTimestampSeconds,\n \"S\": parseSeconds,\n \"u\": parseWeekdayNumberMonday,\n \"U\": parseWeekNumberSunday,\n \"V\": parseWeekNumberISO,\n \"w\": parseWeekdayNumberSunday,\n \"W\": parseWeekNumberMonday,\n \"x\": parseLocaleDate,\n \"X\": parseLocaleTime,\n \"y\": parseYear,\n \"Y\": parseFullYear,\n \"Z\": parseZone,\n \"%\": parseLiteralPercent\n };\n\n // These recursive directive definitions must be deferred.\n formats.x = newFormat(locale_date, formats);\n formats.X = newFormat(locale_time, formats);\n formats.c = newFormat(locale_dateTime, formats);\n utcFormats.x = newFormat(locale_date, utcFormats);\n utcFormats.X = newFormat(locale_time, utcFormats);\n utcFormats.c = newFormat(locale_dateTime, utcFormats);\n\n function newFormat(specifier, formats) {\n return function(date) {\n var string = [],\n i = -1,\n j = 0,\n n = specifier.length,\n c,\n pad,\n format;\n\n if (!(date instanceof Date)) date = new Date(+date);\n\n while (++i < n) {\n if (specifier.charCodeAt(i) === 37) {\n string.push(specifier.slice(j, i));\n if ((pad = pads[c = specifier.charAt(++i)]) != null) c = specifier.charAt(++i);\n else pad = c === \"e\" ? \" \" : \"0\";\n if (format = formats[c]) c = format(date, pad);\n string.push(c);\n j = i + 1;\n }\n }\n\n string.push(specifier.slice(j, i));\n return string.join(\"\");\n };\n }\n\n function newParse(specifier, Z) {\n return function(string) {\n var d = newDate(1900, undefined, 1),\n i = parseSpecifier(d, specifier, string += \"\", 0),\n week, day;\n if (i != string.length) return null;\n\n // If a UNIX timestamp is specified, return it.\n if (\"Q\" in d) return new Date(d.Q);\n if (\"s\" in d) return new Date(d.s * 1000 + (\"L\" in d ? d.L : 0));\n\n // If this is utcParse, never use the local timezone.\n if (Z && !(\"Z\" in d)) d.Z = 0;\n\n // The am-pm flag is 0 for AM, and 1 for PM.\n if (\"p\" in d) d.H = d.H % 12 + d.p * 12;\n\n // If the month was not specified, inherit from the quarter.\n if (d.m === undefined) d.m = \"q\" in d ? d.q : 0;\n\n // Convert day-of-week and week-of-year to day-of-year.\n if (\"V\" in d) {\n if (d.V < 1 || d.V > 53) return null;\n if (!(\"w\" in d)) d.w = 1;\n if (\"Z\" in d) {\n week = utcDate(newDate(d.y, 0, 1)), day = week.getUTCDay();\n week = day > 4 || day === 0 ? utcMonday.ceil(week) : utcMonday(week);\n week = utcDay.offset(week, (d.V - 1) * 7);\n d.y = week.getUTCFullYear();\n d.m = week.getUTCMonth();\n d.d = week.getUTCDate() + (d.w + 6) % 7;\n } else {\n week = localDate(newDate(d.y, 0, 1)), day = week.getDay();\n week = day > 4 || day === 0 ? timeMonday.ceil(week) : timeMonday(week);\n week = timeDay.offset(week, (d.V - 1) * 7);\n d.y = week.getFullYear();\n d.m = week.getMonth();\n d.d = week.getDate() + (d.w + 6) % 7;\n }\n } else if (\"W\" in d || \"U\" in d) {\n if (!(\"w\" in d)) d.w = \"u\" in d ? d.u % 7 : \"W\" in d ? 1 : 0;\n day = \"Z\" in d ? utcDate(newDate(d.y, 0, 1)).getUTCDay() : localDate(newDate(d.y, 0, 1)).getDay();\n d.m = 0;\n d.d = \"W\" in d ? (d.w + 6) % 7 + d.W * 7 - (day + 5) % 7 : d.w + d.U * 7 - (day + 6) % 7;\n }\n\n // If a time zone is specified, all fields are interpreted as UTC and then\n // offset according to the specified time zone.\n if (\"Z\" in d) {\n d.H += d.Z / 100 | 0;\n d.M += d.Z % 100;\n return utcDate(d);\n }\n\n // Otherwise, all fields are in local time.\n return localDate(d);\n };\n }\n\n function parseSpecifier(d, specifier, string, j) {\n var i = 0,\n n = specifier.length,\n m = string.length,\n c,\n parse;\n\n while (i < n) {\n if (j >= m) return -1;\n c = specifier.charCodeAt(i++);\n if (c === 37) {\n c = specifier.charAt(i++);\n parse = parses[c in pads ? specifier.charAt(i++) : c];\n if (!parse || ((j = parse(d, string, j)) < 0)) return -1;\n } else if (c != string.charCodeAt(j++)) {\n return -1;\n }\n }\n\n return j;\n }\n\n function parsePeriod(d, string, i) {\n var n = periodRe.exec(string.slice(i));\n return n ? (d.p = periodLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseShortWeekday(d, string, i) {\n var n = shortWeekdayRe.exec(string.slice(i));\n return n ? (d.w = shortWeekdayLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseWeekday(d, string, i) {\n var n = weekdayRe.exec(string.slice(i));\n return n ? (d.w = weekdayLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseShortMonth(d, string, i) {\n var n = shortMonthRe.exec(string.slice(i));\n return n ? (d.m = shortMonthLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseMonth(d, string, i) {\n var n = monthRe.exec(string.slice(i));\n return n ? (d.m = monthLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseLocaleDateTime(d, string, i) {\n return parseSpecifier(d, locale_dateTime, string, i);\n }\n\n function parseLocaleDate(d, string, i) {\n return parseSpecifier(d, locale_date, string, i);\n }\n\n function parseLocaleTime(d, string, i) {\n return parseSpecifier(d, locale_time, string, i);\n }\n\n function formatShortWeekday(d) {\n return locale_shortWeekdays[d.getDay()];\n }\n\n function formatWeekday(d) {\n return locale_weekdays[d.getDay()];\n }\n\n function formatShortMonth(d) {\n return locale_shortMonths[d.getMonth()];\n }\n\n function formatMonth(d) {\n return locale_months[d.getMonth()];\n }\n\n function formatPeriod(d) {\n return locale_periods[+(d.getHours() >= 12)];\n }\n\n function formatQuarter(d) {\n return 1 + ~~(d.getMonth() / 3);\n }\n\n function formatUTCShortWeekday(d) {\n return locale_shortWeekdays[d.getUTCDay()];\n }\n\n function formatUTCWeekday(d) {\n return locale_weekdays[d.getUTCDay()];\n }\n\n function formatUTCShortMonth(d) {\n return locale_shortMonths[d.getUTCMonth()];\n }\n\n function formatUTCMonth(d) {\n return locale_months[d.getUTCMonth()];\n }\n\n function formatUTCPeriod(d) {\n return locale_periods[+(d.getUTCHours() >= 12)];\n }\n\n function formatUTCQuarter(d) {\n return 1 + ~~(d.getUTCMonth() / 3);\n }\n\n return {\n format: function(specifier) {\n var f = newFormat(specifier += \"\", formats);\n f.toString = function() { return specifier; };\n return f;\n },\n parse: function(specifier) {\n var p = newParse(specifier += \"\", false);\n p.toString = function() { return specifier; };\n return p;\n },\n utcFormat: function(specifier) {\n var f = newFormat(specifier += \"\", utcFormats);\n f.toString = function() { return specifier; };\n return f;\n },\n utcParse: function(specifier) {\n var p = newParse(specifier += \"\", true);\n p.toString = function() { return specifier; };\n return p;\n }\n };\n}\n\nvar pads = {\"-\": \"\", \"_\": \" \", \"0\": \"0\"},\n numberRe = /^\\s*\\d+/, // note: ignores next directive\n percentRe = /^%/,\n requoteRe = /[\\\\^$*+?|[\\]().{}]/g;\n\nfunction pad(value, fill, width) {\n var sign = value < 0 ? \"-\" : \"\",\n string = (sign ? -value : value) + \"\",\n length = string.length;\n return sign + (length < width ? new Array(width - length + 1).join(fill) + string : string);\n}\n\nfunction requote(s) {\n return s.replace(requoteRe, \"\\\\$&\");\n}\n\nfunction formatRe(names) {\n return new RegExp(\"^(?:\" + names.map(requote).join(\"|\") + \")\", \"i\");\n}\n\nfunction formatLookup(names) {\n var map = {}, i = -1, n = names.length;\n while (++i < n) map[names[i].toLowerCase()] = i;\n return map;\n}\n\nfunction parseWeekdayNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.w = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekdayNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.u = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.U = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberISO(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.V = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.W = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseFullYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 4));\n return n ? (d.y = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.y = +n[0] + (+n[0] > 68 ? 1900 : 2000), i + n[0].length) : -1;\n}\n\nfunction parseZone(d, string, i) {\n var n = /^(Z)|([+-]\\d\\d)(?::?(\\d\\d))?/.exec(string.slice(i, i + 6));\n return n ? (d.Z = n[1] ? 0 : -(n[2] + (n[3] || \"00\")), i + n[0].length) : -1;\n}\n\nfunction parseQuarter(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.q = n[0] * 3 - 3, i + n[0].length) : -1;\n}\n\nfunction parseMonthNumber(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.m = n[0] - 1, i + n[0].length) : -1;\n}\n\nfunction parseDayOfMonth(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseDayOfYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.m = 0, d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseHour24(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.H = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMinutes(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.M = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.S = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMilliseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.L = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMicroseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 6));\n return n ? (d.L = Math.floor(n[0] / 1000), i + n[0].length) : -1;\n}\n\nfunction parseLiteralPercent(d, string, i) {\n var n = percentRe.exec(string.slice(i, i + 1));\n return n ? i + n[0].length : -1;\n}\n\nfunction parseUnixTimestamp(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.Q = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseUnixTimestampSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.s = +n[0], i + n[0].length) : -1;\n}\n\nfunction formatDayOfMonth(d, p) {\n return pad(d.getDate(), p, 2);\n}\n\nfunction formatHour24(d, p) {\n return pad(d.getHours(), p, 2);\n}\n\nfunction formatHour12(d, p) {\n return pad(d.getHours() % 12 || 12, p, 2);\n}\n\nfunction formatDayOfYear(d, p) {\n return pad(1 + timeDay.count(timeYear(d), d), p, 3);\n}\n\nfunction formatMilliseconds(d, p) {\n return pad(d.getMilliseconds(), p, 3);\n}\n\nfunction formatMicroseconds(d, p) {\n return formatMilliseconds(d, p) + \"000\";\n}\n\nfunction formatMonthNumber(d, p) {\n return pad(d.getMonth() + 1, p, 2);\n}\n\nfunction formatMinutes(d, p) {\n return pad(d.getMinutes(), p, 2);\n}\n\nfunction formatSeconds(d, p) {\n return pad(d.getSeconds(), p, 2);\n}\n\nfunction formatWeekdayNumberMonday(d) {\n var day = d.getDay();\n return day === 0 ? 7 : day;\n}\n\nfunction formatWeekNumberSunday(d, p) {\n return pad(timeSunday.count(timeYear(d) - 1, d), p, 2);\n}\n\nfunction formatWeekNumberISO(d, p) {\n var day = d.getDay();\n d = (day >= 4 || day === 0) ? timeThursday(d) : timeThursday.ceil(d);\n return pad(timeThursday.count(timeYear(d), d) + (timeYear(d).getDay() === 4), p, 2);\n}\n\nfunction formatWeekdayNumberSunday(d) {\n return d.getDay();\n}\n\nfunction formatWeekNumberMonday(d, p) {\n return pad(timeMonday.count(timeYear(d) - 1, d), p, 2);\n}\n\nfunction formatYear(d, p) {\n return pad(d.getFullYear() % 100, p, 2);\n}\n\nfunction formatFullYear(d, p) {\n return pad(d.getFullYear() % 10000, p, 4);\n}\n\nfunction formatZone(d) {\n var z = d.getTimezoneOffset();\n return (z > 0 ? \"-\" : (z *= -1, \"+\"))\n + pad(z / 60 | 0, \"0\", 2)\n + pad(z % 60, \"0\", 2);\n}\n\nfunction formatUTCDayOfMonth(d, p) {\n return pad(d.getUTCDate(), p, 2);\n}\n\nfunction formatUTCHour24(d, p) {\n return pad(d.getUTCHours(), p, 2);\n}\n\nfunction formatUTCHour12(d, p) {\n return pad(d.getUTCHours() % 12 || 12, p, 2);\n}\n\nfunction formatUTCDayOfYear(d, p) {\n return pad(1 + utcDay.count(utcYear(d), d), p, 3);\n}\n\nfunction formatUTCMilliseconds(d, p) {\n return pad(d.getUTCMilliseconds(), p, 3);\n}\n\nfunction formatUTCMicroseconds(d, p) {\n return formatUTCMilliseconds(d, p) + \"000\";\n}\n\nfunction formatUTCMonthNumber(d, p) {\n return pad(d.getUTCMonth() + 1, p, 2);\n}\n\nfunction formatUTCMinutes(d, p) {\n return pad(d.getUTCMinutes(), p, 2);\n}\n\nfunction formatUTCSeconds(d, p) {\n return pad(d.getUTCSeconds(), p, 2);\n}\n\nfunction formatUTCWeekdayNumberMonday(d) {\n var dow = d.getUTCDay();\n return dow === 0 ? 7 : dow;\n}\n\nfunction formatUTCWeekNumberSunday(d, p) {\n return pad(utcSunday.count(utcYear(d) - 1, d), p, 2);\n}\n\nfunction formatUTCWeekNumberISO(d, p) {\n var day = d.getUTCDay();\n d = (day >= 4 || day === 0) ? utcThursday(d) : utcThursday.ceil(d);\n return pad(utcThursday.count(utcYear(d), d) + (utcYear(d).getUTCDay() === 4), p, 2);\n}\n\nfunction formatUTCWeekdayNumberSunday(d) {\n return d.getUTCDay();\n}\n\nfunction formatUTCWeekNumberMonday(d, p) {\n return pad(utcMonday.count(utcYear(d) - 1, d), p, 2);\n}\n\nfunction formatUTCYear(d, p) {\n return pad(d.getUTCFullYear() % 100, p, 2);\n}\n\nfunction formatUTCFullYear(d, p) {\n return pad(d.getUTCFullYear() % 10000, p, 4);\n}\n\nfunction formatUTCZone() {\n return \"+0000\";\n}\n\nfunction formatLiteralPercent() {\n return \"%\";\n}\n\nfunction formatUnixTimestamp(d) {\n return +d;\n}\n\nfunction formatUnixTimestampSeconds(d) {\n return Math.floor(+d / 1000);\n}\n","import formatLocale from \"./locale.js\";\n\nvar locale;\nexport var timeFormat;\nexport var timeParse;\nexport var utcFormat;\nexport var utcParse;\n\ndefaultLocale({\n dateTime: \"%x, %X\",\n date: \"%-m/%-d/%Y\",\n time: \"%-I:%M:%S %p\",\n periods: [\"AM\", \"PM\"],\n days: [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"],\n shortDays: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n months: [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"],\n shortMonths: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"]\n});\n\nexport default function defaultLocale(definition) {\n locale = formatLocale(definition);\n timeFormat = locale.format;\n timeParse = locale.parse;\n utcFormat = locale.utcFormat;\n utcParse = locale.utcParse;\n return locale;\n}\n","import {utcFormat} from \"./defaultLocale.js\";\n\nexport var isoSpecifier = \"%Y-%m-%dT%H:%M:%S.%LZ\";\n\nfunction formatIsoNative(date) {\n return date.toISOString();\n}\n\nvar formatIso = Date.prototype.toISOString\n ? formatIsoNative\n : utcFormat(isoSpecifier);\n\nexport default formatIso;\n","import {isoSpecifier} from \"./isoFormat.js\";\nimport {utcParse} from \"./defaultLocale.js\";\n\nfunction parseIsoNative(string) {\n var date = new Date(string);\n return isNaN(date) ? null : date;\n}\n\nvar parseIso = +new Date(\"2000-01-01T00:00:00.000Z\")\n ? parseIsoNative\n : utcParse(isoSpecifier);\n\nexport default parseIso;\n","var noop = {value: function() {}};\n\nfunction dispatch() {\n for (var i = 0, n = arguments.length, _ = {}, t; i < n; ++i) {\n if (!(t = arguments[i] + \"\") || (t in _) || /[\\s.]/.test(t)) throw new Error(\"illegal type: \" + t);\n _[t] = [];\n }\n return new Dispatch(_);\n}\n\nfunction Dispatch(_) {\n this._ = _;\n}\n\nfunction parseTypenames(typenames, types) {\n return typenames.trim().split(/^|\\s+/).map(function(t) {\n var name = \"\", i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n if (t && !types.hasOwnProperty(t)) throw new Error(\"unknown type: \" + t);\n return {type: t, name: name};\n });\n}\n\nDispatch.prototype = dispatch.prototype = {\n constructor: Dispatch,\n on: function(typename, callback) {\n var _ = this._,\n T = parseTypenames(typename + \"\", _),\n t,\n i = -1,\n n = T.length;\n\n // If no callback was specified, return the callback of the given type and name.\n if (arguments.length < 2) {\n while (++i < n) if ((t = (typename = T[i]).type) && (t = get(_[t], typename.name))) return t;\n return;\n }\n\n // If a type was specified, set the callback for the given type and name.\n // Otherwise, if a null callback was specified, remove callbacks of the given name.\n if (callback != null && typeof callback !== \"function\") throw new Error(\"invalid callback: \" + callback);\n while (++i < n) {\n if (t = (typename = T[i]).type) _[t] = set(_[t], typename.name, callback);\n else if (callback == null) for (t in _) _[t] = set(_[t], typename.name, null);\n }\n\n return this;\n },\n copy: function() {\n var copy = {}, _ = this._;\n for (var t in _) copy[t] = _[t].slice();\n return new Dispatch(copy);\n },\n call: function(type, that) {\n if ((n = arguments.length - 2) > 0) for (var args = new Array(n), i = 0, n, t; i < n; ++i) args[i] = arguments[i + 2];\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n for (t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n },\n apply: function(type, that, args) {\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n for (var t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n }\n};\n\nfunction get(type, name) {\n for (var i = 0, n = type.length, c; i < n; ++i) {\n if ((c = type[i]).name === name) {\n return c.value;\n }\n }\n}\n\nfunction set(type, name, callback) {\n for (var i = 0, n = type.length; i < n; ++i) {\n if (type[i].name === name) {\n type[i] = noop, type = type.slice(0, i).concat(type.slice(i + 1));\n break;\n }\n }\n if (callback != null) type.push({name: name, value: callback});\n return type;\n}\n\nexport default dispatch;\n","export var xhtml = \"http://www.w3.org/1999/xhtml\";\n\nexport default {\n svg: \"http://www.w3.org/2000/svg\",\n xhtml: xhtml,\n xlink: \"http://www.w3.org/1999/xlink\",\n xml: \"http://www.w3.org/XML/1998/namespace\",\n xmlns: \"http://www.w3.org/2000/xmlns/\"\n};\n","import namespaces from \"./namespaces\";\n\nexport default function(name) {\n var prefix = name += \"\", i = prefix.indexOf(\":\");\n if (i >= 0 && (prefix = name.slice(0, i)) !== \"xmlns\") name = name.slice(i + 1);\n return namespaces.hasOwnProperty(prefix) ? {space: namespaces[prefix], local: name} : name;\n}\n","import namespace from \"./namespace\";\nimport {xhtml} from \"./namespaces\";\n\nfunction creatorInherit(name) {\n return function() {\n var document = this.ownerDocument,\n uri = this.namespaceURI;\n return uri === xhtml && document.documentElement.namespaceURI === xhtml\n ? document.createElement(name)\n : document.createElementNS(uri, name);\n };\n}\n\nfunction creatorFixed(fullname) {\n return function() {\n return this.ownerDocument.createElementNS(fullname.space, fullname.local);\n };\n}\n\nexport default function(name) {\n var fullname = namespace(name);\n return (fullname.local\n ? creatorFixed\n : creatorInherit)(fullname);\n}\n","function none() {}\n\nexport default function(selector) {\n return selector == null ? none : function() {\n return this.querySelector(selector);\n };\n}\n","import {Selection} from \"./index\";\nimport selector from \"../selector\";\n\nexport default function(select) {\n if (typeof select !== \"function\") select = selector(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n subgroup[i] = subnode;\n }\n }\n }\n\n return new Selection(subgroups, this._parents);\n}\n","function empty() {\n return [];\n}\n\nexport default function(selector) {\n return selector == null ? empty : function() {\n return this.querySelectorAll(selector);\n };\n}\n","import {Selection} from \"./index\";\nimport selectorAll from \"../selectorAll\";\n\nexport default function(select) {\n if (typeof select !== \"function\") select = selectorAll(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n subgroups.push(select.call(node, node.__data__, i, group));\n parents.push(node);\n }\n }\n }\n\n return new Selection(subgroups, parents);\n}\n","export default function(selector) {\n return function() {\n return this.matches(selector);\n };\n}\n","import {Selection} from \"./index\";\nimport matcher from \"../matcher\";\n\nexport default function(match) {\n if (typeof match !== \"function\") match = matcher(match);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n subgroup.push(node);\n }\n }\n }\n\n return new Selection(subgroups, this._parents);\n}\n","export default function(update) {\n return new Array(update.length);\n}\n","import sparse from \"./sparse\";\nimport {Selection} from \"./index\";\n\nexport default function() {\n return new Selection(this._enter || this._groups.map(sparse), this._parents);\n}\n\nexport function EnterNode(parent, datum) {\n this.ownerDocument = parent.ownerDocument;\n this.namespaceURI = parent.namespaceURI;\n this._next = null;\n this._parent = parent;\n this.__data__ = datum;\n}\n\nEnterNode.prototype = {\n constructor: EnterNode,\n appendChild: function(child) { return this._parent.insertBefore(child, this._next); },\n insertBefore: function(child, next) { return this._parent.insertBefore(child, next); },\n querySelector: function(selector) { return this._parent.querySelector(selector); },\n querySelectorAll: function(selector) { return this._parent.querySelectorAll(selector); }\n};\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","import {Selection} from \"./index\";\nimport {EnterNode} from \"./enter\";\nimport constant from \"../constant\";\n\nvar keyPrefix = \"$\"; // Protect against keys like “__proto__”.\n\nfunction bindIndex(parent, group, enter, update, exit, data) {\n var i = 0,\n node,\n groupLength = group.length,\n dataLength = data.length;\n\n // Put any non-null nodes that fit into update.\n // Put any null nodes into enter.\n // Put any remaining data into enter.\n for (; i < dataLength; ++i) {\n if (node = group[i]) {\n node.__data__ = data[i];\n update[i] = node;\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n }\n\n // Put any non-null nodes that don’t fit into exit.\n for (; i < groupLength; ++i) {\n if (node = group[i]) {\n exit[i] = node;\n }\n }\n}\n\nfunction bindKey(parent, group, enter, update, exit, data, key) {\n var i,\n node,\n nodeByKeyValue = {},\n groupLength = group.length,\n dataLength = data.length,\n keyValues = new Array(groupLength),\n keyValue;\n\n // Compute the key for each node.\n // If multiple nodes have the same key, the duplicates are added to exit.\n for (i = 0; i < groupLength; ++i) {\n if (node = group[i]) {\n keyValues[i] = keyValue = keyPrefix + key.call(node, node.__data__, i, group);\n if (keyValue in nodeByKeyValue) {\n exit[i] = node;\n } else {\n nodeByKeyValue[keyValue] = node;\n }\n }\n }\n\n // Compute the key for each datum.\n // If there a node associated with this key, join and add it to update.\n // If there is not (or the key is a duplicate), add it to enter.\n for (i = 0; i < dataLength; ++i) {\n keyValue = keyPrefix + key.call(parent, data[i], i, data);\n if (node = nodeByKeyValue[keyValue]) {\n update[i] = node;\n node.__data__ = data[i];\n nodeByKeyValue[keyValue] = null;\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n }\n\n // Add any remaining nodes that were not bound to data to exit.\n for (i = 0; i < groupLength; ++i) {\n if ((node = group[i]) && (nodeByKeyValue[keyValues[i]] === node)) {\n exit[i] = node;\n }\n }\n}\n\nexport default function(value, key) {\n if (!value) {\n data = new Array(this.size()), j = -1;\n this.each(function(d) { data[++j] = d; });\n return data;\n }\n\n var bind = key ? bindKey : bindIndex,\n parents = this._parents,\n groups = this._groups;\n\n if (typeof value !== \"function\") value = constant(value);\n\n for (var m = groups.length, update = new Array(m), enter = new Array(m), exit = new Array(m), j = 0; j < m; ++j) {\n var parent = parents[j],\n group = groups[j],\n groupLength = group.length,\n data = value.call(parent, parent && parent.__data__, j, parents),\n dataLength = data.length,\n enterGroup = enter[j] = new Array(dataLength),\n updateGroup = update[j] = new Array(dataLength),\n exitGroup = exit[j] = new Array(groupLength);\n\n bind(parent, group, enterGroup, updateGroup, exitGroup, data, key);\n\n // Now connect the enter nodes to their following update node, such that\n // appendChild can insert the materialized enter node before this node,\n // rather than at the end of the parent node.\n for (var i0 = 0, i1 = 0, previous, next; i0 < dataLength; ++i0) {\n if (previous = enterGroup[i0]) {\n if (i0 >= i1) i1 = i0 + 1;\n while (!(next = updateGroup[i1]) && ++i1 < dataLength);\n previous._next = next || null;\n }\n }\n }\n\n update = new Selection(update, parents);\n update._enter = enter;\n update._exit = exit;\n return update;\n}\n","import sparse from \"./sparse\";\nimport {Selection} from \"./index\";\n\nexport default function() {\n return new Selection(this._exit || this._groups.map(sparse), this._parents);\n}\n","export default function(onenter, onupdate, onexit) {\n var enter = this.enter(), update = this, exit = this.exit();\n enter = typeof onenter === \"function\" ? onenter(enter) : enter.append(onenter + \"\");\n if (onupdate != null) update = onupdate(update);\n if (onexit == null) exit.remove(); else onexit(exit);\n return enter && update ? enter.merge(update).order() : update;\n}\n","import {Selection} from \"./index\";\n\nexport default function(selection) {\n\n for (var groups0 = this._groups, groups1 = selection._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n\n return new Selection(merges, this._parents);\n}\n","export default function() {\n\n for (var groups = this._groups, j = -1, m = groups.length; ++j < m;) {\n for (var group = groups[j], i = group.length - 1, next = group[i], node; --i >= 0;) {\n if (node = group[i]) {\n if (next && node.compareDocumentPosition(next) ^ 4) next.parentNode.insertBefore(node, next);\n next = node;\n }\n }\n }\n\n return this;\n}\n","import {Selection} from \"./index\";\n\nexport default function(compare) {\n if (!compare) compare = ascending;\n\n function compareNode(a, b) {\n return a && b ? compare(a.__data__, b.__data__) : !a - !b;\n }\n\n for (var groups = this._groups, m = groups.length, sortgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, sortgroup = sortgroups[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n sortgroup[i] = node;\n }\n }\n sortgroup.sort(compareNode);\n }\n\n return new Selection(sortgroups, this._parents).order();\n}\n\nfunction ascending(a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n","export default function() {\n var callback = arguments[0];\n arguments[0] = this;\n callback.apply(null, arguments);\n return this;\n}\n","export default function() {\n var nodes = new Array(this.size()), i = -1;\n this.each(function() { nodes[++i] = this; });\n return nodes;\n}\n","export default function() {\n\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length; i < n; ++i) {\n var node = group[i];\n if (node) return node;\n }\n }\n\n return null;\n}\n","export default function() {\n var size = 0;\n this.each(function() { ++size; });\n return size;\n}\n","export default function() {\n return !this.node();\n}\n","export default function(callback) {\n\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {\n if (node = group[i]) callback.call(node, node.__data__, i, group);\n }\n }\n\n return this;\n}\n","import namespace from \"../namespace\";\n\nfunction attrRemove(name) {\n return function() {\n this.removeAttribute(name);\n };\n}\n\nfunction attrRemoveNS(fullname) {\n return function() {\n this.removeAttributeNS(fullname.space, fullname.local);\n };\n}\n\nfunction attrConstant(name, value) {\n return function() {\n this.setAttribute(name, value);\n };\n}\n\nfunction attrConstantNS(fullname, value) {\n return function() {\n this.setAttributeNS(fullname.space, fullname.local, value);\n };\n}\n\nfunction attrFunction(name, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttribute(name);\n else this.setAttribute(name, v);\n };\n}\n\nfunction attrFunctionNS(fullname, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttributeNS(fullname.space, fullname.local);\n else this.setAttributeNS(fullname.space, fullname.local, v);\n };\n}\n\nexport default function(name, value) {\n var fullname = namespace(name);\n\n if (arguments.length < 2) {\n var node = this.node();\n return fullname.local\n ? node.getAttributeNS(fullname.space, fullname.local)\n : node.getAttribute(fullname);\n }\n\n return this.each((value == null\n ? (fullname.local ? attrRemoveNS : attrRemove) : (typeof value === \"function\"\n ? (fullname.local ? attrFunctionNS : attrFunction)\n : (fullname.local ? attrConstantNS : attrConstant)))(fullname, value));\n}\n","export default function(node) {\n return (node.ownerDocument && node.ownerDocument.defaultView) // node is a Node\n || (node.document && node) // node is a Window\n || node.defaultView; // node is a Document\n}\n","import defaultView from \"../window\";\n\nfunction styleRemove(name) {\n return function() {\n this.style.removeProperty(name);\n };\n}\n\nfunction styleConstant(name, value, priority) {\n return function() {\n this.style.setProperty(name, value, priority);\n };\n}\n\nfunction styleFunction(name, value, priority) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.style.removeProperty(name);\n else this.style.setProperty(name, v, priority);\n };\n}\n\nexport default function(name, value, priority) {\n return arguments.length > 1\n ? this.each((value == null\n ? styleRemove : typeof value === \"function\"\n ? styleFunction\n : styleConstant)(name, value, priority == null ? \"\" : priority))\n : styleValue(this.node(), name);\n}\n\nexport function styleValue(node, name) {\n return node.style.getPropertyValue(name)\n || defaultView(node).getComputedStyle(node, null).getPropertyValue(name);\n}\n","function propertyRemove(name) {\n return function() {\n delete this[name];\n };\n}\n\nfunction propertyConstant(name, value) {\n return function() {\n this[name] = value;\n };\n}\n\nfunction propertyFunction(name, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) delete this[name];\n else this[name] = v;\n };\n}\n\nexport default function(name, value) {\n return arguments.length > 1\n ? this.each((value == null\n ? propertyRemove : typeof value === \"function\"\n ? propertyFunction\n : propertyConstant)(name, value))\n : this.node()[name];\n}\n","function classArray(string) {\n return string.trim().split(/^|\\s+/);\n}\n\nfunction classList(node) {\n return node.classList || new ClassList(node);\n}\n\nfunction ClassList(node) {\n this._node = node;\n this._names = classArray(node.getAttribute(\"class\") || \"\");\n}\n\nClassList.prototype = {\n add: function(name) {\n var i = this._names.indexOf(name);\n if (i < 0) {\n this._names.push(name);\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n remove: function(name) {\n var i = this._names.indexOf(name);\n if (i >= 0) {\n this._names.splice(i, 1);\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n contains: function(name) {\n return this._names.indexOf(name) >= 0;\n }\n};\n\nfunction classedAdd(node, names) {\n var list = classList(node), i = -1, n = names.length;\n while (++i < n) list.add(names[i]);\n}\n\nfunction classedRemove(node, names) {\n var list = classList(node), i = -1, n = names.length;\n while (++i < n) list.remove(names[i]);\n}\n\nfunction classedTrue(names) {\n return function() {\n classedAdd(this, names);\n };\n}\n\nfunction classedFalse(names) {\n return function() {\n classedRemove(this, names);\n };\n}\n\nfunction classedFunction(names, value) {\n return function() {\n (value.apply(this, arguments) ? classedAdd : classedRemove)(this, names);\n };\n}\n\nexport default function(name, value) {\n var names = classArray(name + \"\");\n\n if (arguments.length < 2) {\n var list = classList(this.node()), i = -1, n = names.length;\n while (++i < n) if (!list.contains(names[i])) return false;\n return true;\n }\n\n return this.each((typeof value === \"function\"\n ? classedFunction : value\n ? classedTrue\n : classedFalse)(names, value));\n}\n","function textRemove() {\n this.textContent = \"\";\n}\n\nfunction textConstant(value) {\n return function() {\n this.textContent = value;\n };\n}\n\nfunction textFunction(value) {\n return function() {\n var v = value.apply(this, arguments);\n this.textContent = v == null ? \"\" : v;\n };\n}\n\nexport default function(value) {\n return arguments.length\n ? this.each(value == null\n ? textRemove : (typeof value === \"function\"\n ? textFunction\n : textConstant)(value))\n : this.node().textContent;\n}\n","function htmlRemove() {\n this.innerHTML = \"\";\n}\n\nfunction htmlConstant(value) {\n return function() {\n this.innerHTML = value;\n };\n}\n\nfunction htmlFunction(value) {\n return function() {\n var v = value.apply(this, arguments);\n this.innerHTML = v == null ? \"\" : v;\n };\n}\n\nexport default function(value) {\n return arguments.length\n ? this.each(value == null\n ? htmlRemove : (typeof value === \"function\"\n ? htmlFunction\n : htmlConstant)(value))\n : this.node().innerHTML;\n}\n","function raise() {\n if (this.nextSibling) this.parentNode.appendChild(this);\n}\n\nexport default function() {\n return this.each(raise);\n}\n","function lower() {\n if (this.previousSibling) this.parentNode.insertBefore(this, this.parentNode.firstChild);\n}\n\nexport default function() {\n return this.each(lower);\n}\n","import creator from \"../creator\";\n\nexport default function(name) {\n var create = typeof name === \"function\" ? name : creator(name);\n return this.select(function() {\n return this.appendChild(create.apply(this, arguments));\n });\n}\n","import creator from \"../creator\";\nimport selector from \"../selector\";\n\nfunction constantNull() {\n return null;\n}\n\nexport default function(name, before) {\n var create = typeof name === \"function\" ? name : creator(name),\n select = before == null ? constantNull : typeof before === \"function\" ? before : selector(before);\n return this.select(function() {\n return this.insertBefore(create.apply(this, arguments), select.apply(this, arguments) || null);\n });\n}\n","function remove() {\n var parent = this.parentNode;\n if (parent) parent.removeChild(this);\n}\n\nexport default function() {\n return this.each(remove);\n}\n","function selection_cloneShallow() {\n var clone = this.cloneNode(false), parent = this.parentNode;\n return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\n\nfunction selection_cloneDeep() {\n var clone = this.cloneNode(true), parent = this.parentNode;\n return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\n\nexport default function(deep) {\n return this.select(deep ? selection_cloneDeep : selection_cloneShallow);\n}\n","export default function(value) {\n return arguments.length\n ? this.property(\"__data__\", value)\n : this.node().__data__;\n}\n","var filterEvents = {};\n\nexport var event = null;\n\nif (typeof document !== \"undefined\") {\n var element = document.documentElement;\n if (!(\"onmouseenter\" in element)) {\n filterEvents = {mouseenter: \"mouseover\", mouseleave: \"mouseout\"};\n }\n}\n\nfunction filterContextListener(listener, index, group) {\n listener = contextListener(listener, index, group);\n return function(event) {\n var related = event.relatedTarget;\n if (!related || (related !== this && !(related.compareDocumentPosition(this) & 8))) {\n listener.call(this, event);\n }\n };\n}\n\nfunction contextListener(listener, index, group) {\n return function(event1) {\n var event0 = event; // Events can be reentrant (e.g., focus).\n event = event1;\n try {\n listener.call(this, this.__data__, index, group);\n } finally {\n event = event0;\n }\n };\n}\n\nfunction parseTypenames(typenames) {\n return typenames.trim().split(/^|\\s+/).map(function(t) {\n var name = \"\", i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n return {type: t, name: name};\n });\n}\n\nfunction onRemove(typename) {\n return function() {\n var on = this.__on;\n if (!on) return;\n for (var j = 0, i = -1, m = on.length, o; j < m; ++j) {\n if (o = on[j], (!typename.type || o.type === typename.type) && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.capture);\n } else {\n on[++i] = o;\n }\n }\n if (++i) on.length = i;\n else delete this.__on;\n };\n}\n\nfunction onAdd(typename, value, capture) {\n var wrap = filterEvents.hasOwnProperty(typename.type) ? filterContextListener : contextListener;\n return function(d, i, group) {\n var on = this.__on, o, listener = wrap(value, i, group);\n if (on) for (var j = 0, m = on.length; j < m; ++j) {\n if ((o = on[j]).type === typename.type && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.capture);\n this.addEventListener(o.type, o.listener = listener, o.capture = capture);\n o.value = value;\n return;\n }\n }\n this.addEventListener(typename.type, listener, capture);\n o = {type: typename.type, name: typename.name, value: value, listener: listener, capture: capture};\n if (!on) this.__on = [o];\n else on.push(o);\n };\n}\n\nexport default function(typename, value, capture) {\n var typenames = parseTypenames(typename + \"\"), i, n = typenames.length, t;\n\n if (arguments.length < 2) {\n var on = this.node().__on;\n if (on) for (var j = 0, m = on.length, o; j < m; ++j) {\n for (i = 0, o = on[j]; i < n; ++i) {\n if ((t = typenames[i]).type === o.type && t.name === o.name) {\n return o.value;\n }\n }\n }\n return;\n }\n\n on = value ? onAdd : onRemove;\n if (capture == null) capture = false;\n for (i = 0; i < n; ++i) this.each(on(typenames[i], value, capture));\n return this;\n}\n\nexport function customEvent(event1, listener, that, args) {\n var event0 = event;\n event1.sourceEvent = event;\n event = event1;\n try {\n return listener.apply(that, args);\n } finally {\n event = event0;\n }\n}\n","import defaultView from \"../window\";\n\nfunction dispatchEvent(node, type, params) {\n var window = defaultView(node),\n event = window.CustomEvent;\n\n if (typeof event === \"function\") {\n event = new event(type, params);\n } else {\n event = window.document.createEvent(\"Event\");\n if (params) event.initEvent(type, params.bubbles, params.cancelable), event.detail = params.detail;\n else event.initEvent(type, false, false);\n }\n\n node.dispatchEvent(event);\n}\n\nfunction dispatchConstant(type, params) {\n return function() {\n return dispatchEvent(this, type, params);\n };\n}\n\nfunction dispatchFunction(type, params) {\n return function() {\n return dispatchEvent(this, type, params.apply(this, arguments));\n };\n}\n\nexport default function(type, params) {\n return this.each((typeof params === \"function\"\n ? dispatchFunction\n : dispatchConstant)(type, params));\n}\n","import selection_select from \"./select\";\nimport selection_selectAll from \"./selectAll\";\nimport selection_filter from \"./filter\";\nimport selection_data from \"./data\";\nimport selection_enter from \"./enter\";\nimport selection_exit from \"./exit\";\nimport selection_join from \"./join\";\nimport selection_merge from \"./merge\";\nimport selection_order from \"./order\";\nimport selection_sort from \"./sort\";\nimport selection_call from \"./call\";\nimport selection_nodes from \"./nodes\";\nimport selection_node from \"./node\";\nimport selection_size from \"./size\";\nimport selection_empty from \"./empty\";\nimport selection_each from \"./each\";\nimport selection_attr from \"./attr\";\nimport selection_style from \"./style\";\nimport selection_property from \"./property\";\nimport selection_classed from \"./classed\";\nimport selection_text from \"./text\";\nimport selection_html from \"./html\";\nimport selection_raise from \"./raise\";\nimport selection_lower from \"./lower\";\nimport selection_append from \"./append\";\nimport selection_insert from \"./insert\";\nimport selection_remove from \"./remove\";\nimport selection_clone from \"./clone\";\nimport selection_datum from \"./datum\";\nimport selection_on from \"./on\";\nimport selection_dispatch from \"./dispatch\";\n\nexport var root = [null];\n\nexport function Selection(groups, parents) {\n this._groups = groups;\n this._parents = parents;\n}\n\nfunction selection() {\n return new Selection([[document.documentElement]], root);\n}\n\nSelection.prototype = selection.prototype = {\n constructor: Selection,\n select: selection_select,\n selectAll: selection_selectAll,\n filter: selection_filter,\n data: selection_data,\n enter: selection_enter,\n exit: selection_exit,\n join: selection_join,\n merge: selection_merge,\n order: selection_order,\n sort: selection_sort,\n call: selection_call,\n nodes: selection_nodes,\n node: selection_node,\n size: selection_size,\n empty: selection_empty,\n each: selection_each,\n attr: selection_attr,\n style: selection_style,\n property: selection_property,\n classed: selection_classed,\n text: selection_text,\n html: selection_html,\n raise: selection_raise,\n lower: selection_lower,\n append: selection_append,\n insert: selection_insert,\n remove: selection_remove,\n clone: selection_clone,\n datum: selection_datum,\n on: selection_on,\n dispatch: selection_dispatch\n};\n\nexport default selection;\n","import {Selection, root} from \"./selection/index\";\n\nexport default function(selector) {\n return typeof selector === \"string\"\n ? new Selection([[document.querySelector(selector)]], [document.documentElement])\n : new Selection([[selector]], root);\n}\n","import {event} from \"./selection/on\";\n\nexport default function() {\n var current = event, source;\n while (source = current.sourceEvent) current = source;\n return current;\n}\n","export default function(node, event) {\n var svg = node.ownerSVGElement || node;\n\n if (svg.createSVGPoint) {\n var point = svg.createSVGPoint();\n point.x = event.clientX, point.y = event.clientY;\n point = point.matrixTransform(node.getScreenCTM().inverse());\n return [point.x, point.y];\n }\n\n var rect = node.getBoundingClientRect();\n return [event.clientX - rect.left - node.clientLeft, event.clientY - rect.top - node.clientTop];\n}\n","import sourceEvent from \"./sourceEvent\";\nimport point from \"./point\";\n\nexport default function(node) {\n var event = sourceEvent();\n if (event.changedTouches) event = event.changedTouches[0];\n return point(node, event);\n}\n","import sourceEvent from \"./sourceEvent\";\nimport point from \"./point\";\n\nexport default function(node, touches, identifier) {\n if (arguments.length < 3) identifier = touches, touches = sourceEvent().changedTouches;\n\n for (var i = 0, n = touches ? touches.length : 0, touch; i < n; ++i) {\n if ((touch = touches[i]).identifier === identifier) {\n return point(node, touch);\n }\n }\n\n return null;\n}\n","import {event} from \"d3-selection\";\n\nexport function nopropagation() {\n event.stopImmediatePropagation();\n}\n\nexport default function() {\n event.preventDefault();\n event.stopImmediatePropagation();\n}\n","import {select} from \"d3-selection\";\nimport noevent from \"./noevent.js\";\n\nexport default function(view) {\n var root = view.document.documentElement,\n selection = select(view).on(\"dragstart.drag\", noevent, true);\n if (\"onselectstart\" in root) {\n selection.on(\"selectstart.drag\", noevent, true);\n } else {\n root.__noselect = root.style.MozUserSelect;\n root.style.MozUserSelect = \"none\";\n }\n}\n\nexport function yesdrag(view, noclick) {\n var root = view.document.documentElement,\n selection = select(view).on(\"dragstart.drag\", null);\n if (noclick) {\n selection.on(\"click.drag\", noevent, true);\n setTimeout(function() { selection.on(\"click.drag\", null); }, 0);\n }\n if (\"onselectstart\" in root) {\n selection.on(\"selectstart.drag\", null);\n } else {\n root.style.MozUserSelect = root.__noselect;\n delete root.__noselect;\n }\n}\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","export default function DragEvent(target, type, subject, id, active, x, y, dx, dy, dispatch) {\n this.target = target;\n this.type = type;\n this.subject = subject;\n this.identifier = id;\n this.active = active;\n this.x = x;\n this.y = y;\n this.dx = dx;\n this.dy = dy;\n this._ = dispatch;\n}\n\nDragEvent.prototype.on = function() {\n var value = this._.on.apply(this._, arguments);\n return value === this._ ? this : value;\n};\n","import {dispatch} from \"d3-dispatch\";\nimport {event, customEvent, select, mouse, touch} from \"d3-selection\";\nimport nodrag, {yesdrag} from \"./nodrag.js\";\nimport noevent, {nopropagation} from \"./noevent.js\";\nimport constant from \"./constant.js\";\nimport DragEvent from \"./event.js\";\n\n// Ignore right-click, since that should open the context menu.\nfunction defaultFilter() {\n return !event.ctrlKey && !event.button;\n}\n\nfunction defaultContainer() {\n return this.parentNode;\n}\n\nfunction defaultSubject(d) {\n return d == null ? {x: event.x, y: event.y} : d;\n}\n\nfunction defaultTouchable() {\n return navigator.maxTouchPoints || (\"ontouchstart\" in this);\n}\n\nexport default function() {\n var filter = defaultFilter,\n container = defaultContainer,\n subject = defaultSubject,\n touchable = defaultTouchable,\n gestures = {},\n listeners = dispatch(\"start\", \"drag\", \"end\"),\n active = 0,\n mousedownx,\n mousedowny,\n mousemoving,\n touchending,\n clickDistance2 = 0;\n\n function drag(selection) {\n selection\n .on(\"mousedown.drag\", mousedowned)\n .filter(touchable)\n .on(\"touchstart.drag\", touchstarted)\n .on(\"touchmove.drag\", touchmoved)\n .on(\"touchend.drag touchcancel.drag\", touchended)\n .style(\"touch-action\", \"none\")\n .style(\"-webkit-tap-highlight-color\", \"rgba(0,0,0,0)\");\n }\n\n function mousedowned() {\n if (touchending || !filter.apply(this, arguments)) return;\n var gesture = beforestart(\"mouse\", container.apply(this, arguments), mouse, this, arguments);\n if (!gesture) return;\n select(event.view).on(\"mousemove.drag\", mousemoved, true).on(\"mouseup.drag\", mouseupped, true);\n nodrag(event.view);\n nopropagation();\n mousemoving = false;\n mousedownx = event.clientX;\n mousedowny = event.clientY;\n gesture(\"start\");\n }\n\n function mousemoved() {\n noevent();\n if (!mousemoving) {\n var dx = event.clientX - mousedownx, dy = event.clientY - mousedowny;\n mousemoving = dx * dx + dy * dy > clickDistance2;\n }\n gestures.mouse(\"drag\");\n }\n\n function mouseupped() {\n select(event.view).on(\"mousemove.drag mouseup.drag\", null);\n yesdrag(event.view, mousemoving);\n noevent();\n gestures.mouse(\"end\");\n }\n\n function touchstarted() {\n if (!filter.apply(this, arguments)) return;\n var touches = event.changedTouches,\n c = container.apply(this, arguments),\n n = touches.length, i, gesture;\n\n for (i = 0; i < n; ++i) {\n if (gesture = beforestart(touches[i].identifier, c, touch, this, arguments)) {\n nopropagation();\n gesture(\"start\");\n }\n }\n }\n\n function touchmoved() {\n var touches = event.changedTouches,\n n = touches.length, i, gesture;\n\n for (i = 0; i < n; ++i) {\n if (gesture = gestures[touches[i].identifier]) {\n noevent();\n gesture(\"drag\");\n }\n }\n }\n\n function touchended() {\n var touches = event.changedTouches,\n n = touches.length, i, gesture;\n\n if (touchending) clearTimeout(touchending);\n touchending = setTimeout(function() { touchending = null; }, 500); // Ghost clicks are delayed!\n for (i = 0; i < n; ++i) {\n if (gesture = gestures[touches[i].identifier]) {\n nopropagation();\n gesture(\"end\");\n }\n }\n }\n\n function beforestart(id, container, point, that, args) {\n var p = point(container, id), s, dx, dy,\n sublisteners = listeners.copy();\n\n if (!customEvent(new DragEvent(drag, \"beforestart\", s, id, active, p[0], p[1], 0, 0, sublisteners), function() {\n if ((event.subject = s = subject.apply(that, args)) == null) return false;\n dx = s.x - p[0] || 0;\n dy = s.y - p[1] || 0;\n return true;\n })) return;\n\n return function gesture(type) {\n var p0 = p, n;\n switch (type) {\n case \"start\": gestures[id] = gesture, n = active++; break;\n case \"end\": delete gestures[id], --active; // nobreak\n case \"drag\": p = point(container, id), n = active; break;\n }\n customEvent(new DragEvent(drag, type, s, id, n, p[0] + dx, p[1] + dy, p[0] - p0[0], p[1] - p0[1], sublisteners), sublisteners.apply, sublisteners, [type, that, args]);\n };\n }\n\n drag.filter = function(_) {\n return arguments.length ? (filter = typeof _ === \"function\" ? _ : constant(!!_), drag) : filter;\n };\n\n drag.container = function(_) {\n return arguments.length ? (container = typeof _ === \"function\" ? _ : constant(_), drag) : container;\n };\n\n drag.subject = function(_) {\n return arguments.length ? (subject = typeof _ === \"function\" ? _ : constant(_), drag) : subject;\n };\n\n drag.touchable = function(_) {\n return arguments.length ? (touchable = typeof _ === \"function\" ? _ : constant(!!_), drag) : touchable;\n };\n\n drag.on = function() {\n var value = listeners.on.apply(listeners, arguments);\n return value === listeners ? drag : value;\n };\n\n drag.clickDistance = function(_) {\n return arguments.length ? (clickDistance2 = (_ = +_) * _, drag) : Math.sqrt(clickDistance2);\n };\n\n return drag;\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\nimport { Template } from '../mixins/template';\nimport { scaleLinear } from 'd3-scale';\nimport { range } from 'd3-array';\nimport { drag } from 'd3-drag';\nimport { select, event as currentEvent } from 'd3-selection';\n\nconst T = Template('d-slider', `\n<style>\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</style>\n\n <div class='background'>\n <div class='track'></div>\n <div class='track-fill'></div>\n <div class='knob-container'>\n <div class='knob-highlight'></div>\n <div class='knob'></div>\n </div>\n <div class='ticks'></div>\n </div>\n`);\n\n// ARIA\n// If the slider has a visible label, it is referenced by aria-labelledby on the slider element. Otherwise, the slider element has a label provided by aria-label.\n// If the slider is vertically oriented, it has aria-orientation set to vertical. The default value of aria-orientation for a slider is horizontal.\n\nconst keyCodes = {\n left: 37,\n up: 38,\n right: 39,\n down: 40,\n pageUp: 33,\n pageDown: 34,\n end: 35,\n home: 36\n};\n\nexport class Slider extends T(HTMLElement) {\n\n\n connectedCallback() {\n this.connected = true;\n this.setAttribute('role', 'slider');\n // Makes the element tab-able.\n if (!this.hasAttribute('tabindex')) { this.setAttribute('tabindex', 0); }\n\n // Keeps track of keyboard vs. mouse interactions for focus rings\n this.mouseEvent = false;\n\n // Handles to shadow DOM elements\n this.knob = this.root.querySelector('.knob-container');\n this.background = this.root.querySelector('.background');\n this.trackFill = this.root.querySelector('.track-fill');\n this.track = this.root.querySelector('.track');\n\n // Default values for attributes\n this.min = this.min ? this.min : 0;\n this.max = this.max ? this.max : 100;\n this.scale = scaleLinear().domain([this.min, this.max]).range([0, 1]).clamp(true);\n\n this.origin = this.origin !== undefined ? this.origin : this.min;\n this.step = this.step ? this.step : 1;\n this.update(this.value ? this.value : 0);\n\n this.ticks = this.ticks ? this.ticks : false;\n this.renderTicks();\n\n this.drag = drag()\n .container(this.background)\n .on('start', () => {\n this.mouseEvent = true;\n this.background.classList.add('mousedown');\n this.changeValue = this.value;\n this.dragUpdate();\n })\n .on('drag', () => {\n this.dragUpdate();\n })\n .on('end', () => {\n this.mouseEvent = false;\n this.background.classList.remove('mousedown');\n this.dragUpdate();\n if (this.changeValue !== this.value) this.dispatchChange();\n this.changeValue = this.value;\n });\n this.drag(select(this.background));\n\n this.addEventListener('focusin', () => {\n if(!this.mouseEvent) {\n this.background.classList.add('focus');\n }\n });\n this.addEventListener('focusout', () => {\n this.background.classList.remove('focus');\n });\n this.addEventListener('keydown', this.onKeyDown);\n\n }\n\n static get observedAttributes() {return ['min', 'max', 'value', 'step', 'ticks', 'origin', 'tickValues', 'tickLabels']; }\n\n attributeChangedCallback(attr, oldValue, newValue) {\n if (isNaN(newValue) || newValue === undefined || newValue === null) return;\n if (attr == 'min') {\n this.min = +newValue;\n this.setAttribute('aria-valuemin', this.min);\n }\n if (attr == 'max') {\n this.max = +newValue;\n this.setAttribute('aria-valuemax', this.max);\n }\n if (attr == 'value') {\n this.update(+newValue);\n }\n if (attr == 'origin') {\n this.origin = +newValue;\n // this.update(this.value);\n }\n if (attr == 'step') {\n if (newValue > 0) {\n this.step = +newValue;\n }\n }\n if (attr == 'ticks') {\n this.ticks = (newValue === '' ? true : newValue);\n }\n }\n\n onKeyDown(event) {\n this.changeValue = this.value;\n let stopPropagation = false;\n switch (event.keyCode) {\n case keyCodes.left:\n case keyCodes.down:\n this.update(this.value - this.step);\n stopPropagation = true;\n break;\n case keyCodes.right:\n case keyCodes.up:\n this.update(this.value + this.step);\n stopPropagation = true;\n break;\n case keyCodes.pageUp:\n this.update(this.value + this.step * 10);\n stopPropagation = true;\n break;\n\n case keyCodes.pageDown:\n this.update(this.value + this.step * 10);\n stopPropagation = true;\n break;\n case keyCodes.home:\n this.update(this.min);\n stopPropagation = true;\n break;\n case keyCodes.end:\n this.update(this.max);\n stopPropagation = true;\n break;\n default:\n break;\n }\n if (stopPropagation) {\n this.background.classList.add('focus');\n event.preventDefault();\n event.stopPropagation();\n if (this.changeValue !== this.value) this.dispatchChange();\n }\n }\n\n validateValueRange(min, max, value) {\n return Math.max(Math.min(max, value), min);\n }\n\n quantizeValue(value, step) {\n return Math.round(value / step) * step;\n }\n\n dragUpdate() {\n const bbox = this.background.getBoundingClientRect();\n const x = currentEvent.x;\n const width = bbox.width;\n this.update(this.scale.invert(x / width));\n }\n\n update(value) {\n let v = value;\n if (this.step !== 'any') {\n v = this.quantizeValue(value, this.step);\n }\n v = this.validateValueRange(this.min, this.max, v);\n if (this.connected) {\n this.knob.style.left = this.scale(v) * 100 + '%';\n this.trackFill.style.width = this.scale(this.min + Math.abs(v - this.origin)) * 100 + '%';\n this.trackFill.style.left = this.scale(Math.min(v, this.origin)) * 100 + '%';\n }\n if (this.value !== v) {\n this.value = v;\n this.setAttribute('aria-valuenow', this.value);\n this.dispatchInput();\n }\n }\n\n // Dispatches only on a committed change (basically only on mouseup).\n dispatchChange() {\n const e = new Event('change');\n this.dispatchEvent(e, {});\n }\n\n // Dispatches on each value change.\n dispatchInput() {\n const e = new Event('input');\n this.dispatchEvent(e, {});\n }\n\n renderTicks() {\n const ticksContainer = this.root.querySelector('.ticks');\n if (this.ticks !== false) {\n let tickData = [];\n if (this.ticks > 0) {\n tickData = this.scale.ticks(this.ticks);\n } else if (this.step === 'any') {\n tickData = this.scale.ticks();\n } else {\n tickData = range(this.min, this.max + 1e-6, this.step);\n }\n tickData.forEach(d => {\n const tick = document.createElement('div');\n tick.classList.add('tick');\n tick.style.left = this.scale(d) * 100 + '%';\n ticksContainer.appendChild(tick);\n });\n } else {\n ticksContainer.style.display = 'none';\n }\n }\n}\n","import logo from '../assets/distill-logo.svg';\n\nexport const headerTemplate = `\n<style>\ndistill-header {\n position: relative;\n height: 60px;\n background-color: hsl(200, 60%, 15%);\n width: 100%;\n box-sizing: border-box;\n z-index: 2;\n color: rgba(0, 0, 0, 0.8);\n border-bottom: 1px solid rgba(0, 0, 0, 0.08);\n box-shadow: 0 1px 6px rgba(0, 0, 0, 0.05);\n}\ndistill-header .content {\n height: 70px;\n grid-column: page;\n}\ndistill-header a {\n font-size: 16px;\n height: 60px;\n line-height: 60px;\n text-decoration: none;\n color: rgba(255, 255, 255, 0.8);\n padding: 22px 0;\n}\ndistill-header a:hover {\n color: rgba(255, 255, 255, 1);\n}\ndistill-header svg {\n width: 24px;\n position: relative;\n top: 4px;\n margin-right: 2px;\n}\n@media(min-width: 1080px) {\n distill-header {\n height: 70px;\n }\n distill-header a {\n height: 70px;\n line-height: 70px;\n padding: 28px 0;\n }\n distill-header .logo {\n }\n}\ndistill-header svg path {\n fill: none;\n stroke: rgba(255, 255, 255, 0.8);\n stroke-width: 3px;\n}\ndistill-header .logo {\n font-size: 17px;\n font-weight: 200;\n}\ndistill-header .nav {\n float: right;\n font-weight: 300;\n}\ndistill-header .nav a {\n font-size: 12px;\n margin-left: 24px;\n text-transform: uppercase;\n}\n</style>\n<div class=\"content\">\n <a href=\"/\" class=\"logo\">\n ${logo}\n Distill\n </a>\n <nav class=\"nav\">\n <a href=\"/about/\">About</a>\n <a href=\"/prize/\">Prize</a>\n <a href=\"/journal/\">Submit</a>\n </nav>\n</div>\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\nimport { Template } from '../mixins/template';\n\nimport {headerTemplate} from './distill-header-template';\n\nconst T = Template('distill-header', headerTemplate, false);\n\nexport class DistillHeader extends T(HTMLElement) {\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\nimport { serializeFrontmatterToBibtex } from '../helpers/bibtex';\n\nconst styles = `\n<style>\n distill-appendix {\n contain: layout style;\n }\n\n distill-appendix .citation {\n font-size: 11px;\n line-height: 15px;\n border-left: 1px solid rgba(0, 0, 0, 0.1);\n padding-left: 18px;\n border: 1px solid rgba(0,0,0,0.1);\n background: rgba(0, 0, 0, 0.02);\n padding: 10px 18px;\n border-radius: 3px;\n color: rgba(150, 150, 150, 1);\n overflow: hidden;\n margin-top: -12px;\n white-space: pre-wrap;\n word-wrap: break-word;\n }\n\n distill-appendix > * {\n grid-column: text;\n }\n</style>\n`;\n\nexport function appendixTemplate(frontMatter) {\n let html = styles;\n\n if (typeof frontMatter.githubUrl !== 'undefined') {\n html += `\n <h3 id=\"updates-and-corrections\">Updates and Corrections</h3>\n <p>`;\n if (frontMatter.githubCompareUpdatesUrl) {\n html += `<a href=\"${frontMatter.githubCompareUpdatesUrl}\">View all changes</a> to this article since it was first published.`;\n }\n html += `\n If you see mistakes or want to suggest changes, please <a href=\"${frontMatter.githubUrl + '/issues/new'}\">create an issue on GitHub</a>. </p>\n `;\n }\n\n const journal = frontMatter.journal;\n if (typeof journal !== 'undefined' && journal.title === 'Distill') {\n html += `\n <h3 id=\"reuse\">Reuse</h3>\n <p>Diagrams and text are licensed under Creative Commons Attribution <a href=\"https://creativecommons.org/licenses/by/4.0/\">CC-BY 4.0</a> with the <a class=\"github\" href=\"${frontMatter.githubUrl}\">source available on GitHub</a>, 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 …”.</p>\n `;\n }\n\n if (typeof frontMatter.publishedDate !== 'undefined') {\n html += `\n <h3 id=\"citation\">Citation</h3>\n <p>For attribution in academic contexts, please cite this work as</p>\n <pre class=\"citation short\">${frontMatter.concatenatedAuthors}, \"${frontMatter.title}\", Distill, ${frontMatter.publishedYear}.</pre>\n <p>BibTeX citation</p>\n <pre class=\"citation long\">${serializeFrontmatterToBibtex(frontMatter)}</pre>\n `;\n }\n\n return html;\n}\n\nexport class DistillAppendix extends HTMLElement {\n\n static get is() { return 'distill-appendix'; }\n\n set frontMatter(frontMatter) {\n this.innerHTML = appendixTemplate(frontMatter);\n }\n\n}\n","import logo from '../assets/distill-logo.svg';\n\nexport const footerTemplate = `\n<style>\n\n:host {\n color: rgba(255, 255, 255, 0.5);\n font-weight: 300;\n padding: 2rem 0;\n border-top: 1px solid rgba(0, 0, 0, 0.1);\n background-color: hsl(180, 5%, 15%); /*hsl(200, 60%, 15%);*/\n text-align: left;\n contain: content;\n}\n\n.footer-container .logo svg {\n width: 24px;\n position: relative;\n top: 4px;\n margin-right: 2px;\n}\n\n.footer-container .logo svg path {\n fill: none;\n stroke: rgba(255, 255, 255, 0.8);\n stroke-width: 3px;\n}\n\n.footer-container .logo {\n font-size: 17px;\n font-weight: 200;\n color: rgba(255, 255, 255, 0.8);\n text-decoration: none;\n margin-right: 6px;\n}\n\n.footer-container {\n grid-column: text;\n}\n\n.footer-container .nav {\n font-size: 0.9em;\n margin-top: 1.5em;\n}\n\n.footer-container .nav a {\n color: rgba(255, 255, 255, 0.8);\n margin-right: 6px;\n text-decoration: none;\n}\n\n</style>\n\n<div class='footer-container'>\n\n <a href=\"/\" class=\"logo\">\n ${logo}\n Distill\n </a> is dedicated to clear explanations of machine learning\n\n <div class=\"nav\">\n <a href=\"https://distill.pub/about/\">About</a>\n <a href=\"https://distill.pub/journal/\">Submit</a>\n <a href=\"https://distill.pub/prize/\">Prize</a>\n <a href=\"https://distill.pub/archive/\">Archive</a>\n <a href=\"https://distill.pub/rss.xml\">RSS</a>\n <a href=\"https://github.com/distillpub\">GitHub</a>\n <a href=\"https://twitter.com/distillpub\">Twitter</a>\n &nbsp;&nbsp;&nbsp;&nbsp; ISSN 2476-0757\n </div>\n\n</div>\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\nimport { Template } from '../mixins/template';\n\nimport {footerTemplate} from './distill-footer-template';\n\nconst T = Template('distill-footer', footerTemplate);\n\nexport class DistillFooter extends T(HTMLElement) {\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\nimport { Controller } from './controller';\nimport { domContentLoaded } from './helpers/domContentLoaded.js';\n\n/* Transforms */\nimport { makeStyleTag } from './styles/styles';\nimport { Polyfills } from './helpers/polyfills';\n\n/* Components */\nimport { Abstract } from './components/d-abstract';\nimport { Appendix } from './components/d-appendix';\nimport { Article } from './components/d-article';\nimport { Bibliography } from './components/d-bibliography';\nimport { Byline } from './components/d-byline';\nimport { Cite } from './components/d-cite';\nimport { CitationList } from './components/d-citation-list';\nimport { Code } from './components/d-code';\nimport { Footnote } from './components/d-footnote';\nimport { FootnoteList } from './components/d-footnote-list';\nimport { FrontMatter } from './components/d-front-matter';\nimport { HoverBox } from './components/d-hover-box';\nimport { Title } from './components/d-title';\nimport { DMath } from './components/d-math';\nimport { References } from './components/d-references';\nimport { TOC } from './components/d-toc';\nimport { Figure } from './components/d-figure';\nimport { Interstitial } from './components/d-interstitial';\nimport { Slider } from './ui/d-slider';\n\n/* Distill website specific components */\nimport { DistillHeader } from './distill-components/distill-header';\nimport { DistillAppendix } from './distill-components/distill-appendix';\nimport { DistillFooter } from './distill-components/distill-footer';\n\nlet templateIsLoading = false;\nlet runlevel = 0;\nconst initialize = function() {\n if (window.distill.runlevel < 1) {\n throw new Error(\"Insufficient Runlevel for Distill Template!\");\n }\n\n /* 1. Flag that we're being loaded */\n if (\"distill\" in window && window.distill.templateIsLoading) {\n throw new Error(\n \"Runlevel 1: Distill Template is getting loaded more than once, aborting!\"\n );\n } else {\n window.distill.templateIsLoading = true;\n console.debug(\"Runlevel 1: Distill Template has started loading.\");\n }\n\n /* 2. Add styles if they weren't added during prerendering */\n makeStyleTag(document);\n console.debug(\"Runlevel 1: Static Distill styles have been added.\");\n console.debug(\"Runlevel 1->2.\");\n window.distill.runlevel += 1;\n\n /* 3. Register Controller listener functions */\n /* Needs to happen before components to their connected callbacks have a controller to talk to. */\n for (const [functionName, callback] of Object.entries(Controller.listeners)) {\n if (typeof callback === \"function\") {\n document.addEventListener(functionName, callback);\n } else {\n console.error(\"Runlevel 2: Controller listeners need to be functions!\");\n }\n }\n console.debug(\"Runlevel 2: We can now listen to controller events.\");\n console.debug(\"Runlevel 2->3.\");\n window.distill.runlevel += 1;\n\n /* 4. Register components */\n const components = [\n Abstract, Appendix, Article, Bibliography, Byline, Cite, CitationList, Code,\n Footnote, FootnoteList, FrontMatter, HoverBox, Title, DMath, References, TOC, Figure,\n Slider, Interstitial\n ];\n\n const distillComponents = [DistillHeader, DistillAppendix, DistillFooter];\n\n if (window.distill.runlevel < 2) {\n throw new Error(\"Insufficient Runlevel for adding custom elements!\");\n }\n const allComponents = components.concat(distillComponents);\n for (const component of allComponents) {\n console.debug(\"Runlevel 2: Registering custom element: \" + component.is);\n customElements.define(component.is, component);\n }\n\n console.debug(\n \"Runlevel 3: Distill Template finished registering custom elements.\"\n );\n console.debug(\"Runlevel 3->4.\");\n window.distill.runlevel += 1;\n\n // If template was added after DOMContentLoaded we may have missed that event.\n // Controller will check for that case, so trigger the event explicitly:\n if (domContentLoaded()) {\n Controller.listeners.DOMContentLoaded();\n }\n\n console.debug(\"Runlevel 4: Distill Template initialisation complete.\");\n window.distill.templateIsLoading = false;\n window.distill.templateHasLoaded = true;\n};\n\nwindow.distill = { runlevel, initialize, templateIsLoading };\n\n/* 0. Check browser feature support; synchronously polyfill if needed */\nif (Polyfills.browserSupportsAllFeatures()) {\n console.debug(\"Runlevel 0: No need for polyfills.\");\n console.debug(\"Runlevel 0->1.\");\n window.distill.runlevel += 1;\n window.distill.initialize();\n} else {\n console.debug(\"Runlevel 0: Distill Template is loading polyfills.\");\n Polyfills.load(window.distill.initialize);\n}\n"],"names":["style","FrontMatter","T","styles","global","Prism","rgb","colorRgb","value","number","constant","bisect","interpolate","interpolateValue","identity","linear","t0","t1","interval","formatLocale","day","timeMonday","timeDay","timeYear","timeSunday","timeThursday","locale","defaultLocale","ascending","parseTypenames","scaleLinear","currentEvent"],"mappings":"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AM,CAAC;EAC5C,KAAK;EACL,GAAG;EACH;;;;ECzUO,MAAM,cAAc,GAAG,CAAC;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,EAAE,IAAI,CAAC;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;EC9ED;AAiBA;EACA,MAAM7B,GAAC,GAAG,QAAQ,CAAC,gBAAgB,EAAE,cAAc,EAAE,KAAK,CAAC,CAAC;AAC5D;EACO,MAAM,aAAa,SAASA,GAAC,CAAC,WAAW,CAAC,CAAC;AAClD;EACA;;ECtBA;AAeA;EACA,MAAMC,QAAM,GAAG,CAAC;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC;AACF;EACO,SAAS,gBAAgB,CAAC,WAAW,EAAE;EAC9C,EAAE,IAAI,IAAI,GAAGA,QAAM,CAAC;AACpB;EACA,EAAE,IAAI,OAAO,WAAW,CAAC,SAAS,KAAK,WAAW,EAAE;EACpD,IAAI,IAAI,IAAI,CAAC;AACb;AACA,OAAO,CAAC,CAAC;EACT,IAAI,IAAI,WAAW,CAAC,uBAAuB,EAAE;EAC7C,MAAM,IAAI,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,uBAAuB,CAAC,oEAAoE,CAAC,CAAC;EACpI,KAAK;EACL,IAAI,IAAI,IAAI,CAAC;AACb,oEAAoE,EAAE,WAAW,CAAC,SAAS,GAAG,aAAa,CAAC;AAC5G,IAAI,CAAC,CAAC;EACN,GAAG;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"} \ No newline at end of file