").append(m.parseHTML(a)).find(d):a)}).complete(c&&function(a,b){g.each(c,e||[a.responseText,b,a])}),this},m.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(a,b){m.fn[b]=function(a){return this.on(b,a)}}),m.expr.filters.animated=function(a){return m.grep(m.timers,function(b){return a===b.elem}).length};var cc=a.document.documentElement;function dc(a){return m.isWindow(a)?a:9===a.nodeType?a.defaultView||a.parentWindow:!1}m.offset={setOffset:function(a,b,c){var d,e,f,g,h,i,j,k=m.css(a,"position"),l=m(a),n={};"static"===k&&(a.style.position="relative"),h=l.offset(),f=m.css(a,"top"),i=m.css(a,"left"),j=("absolute"===k||"fixed"===k)&&m.inArray("auto",[f,i])>-1,j?(d=l.position(),g=d.top,e=d.left):(g=parseFloat(f)||0,e=parseFloat(i)||0),m.isFunction(b)&&(b=b.call(a,c,h)),null!=b.top&&(n.top=b.top-h.top+g),null!=b.left&&(n.left=b.left-h.left+e),"using"in b?b.using.call(a,n):l.css(n)}},m.fn.extend({offset:function(a){if(arguments.length)return void 0===a?this:this.each(function(b){m.offset.setOffset(this,a,b)});var b,c,d={top:0,left:0},e=this[0],f=e&&e.ownerDocument;if(f)return b=f.documentElement,m.contains(b,e)?(typeof e.getBoundingClientRect!==K&&(d=e.getBoundingClientRect()),c=dc(f),{top:d.top+(c.pageYOffset||b.scrollTop)-(b.clientTop||0),left:d.left+(c.pageXOffset||b.scrollLeft)-(b.clientLeft||0)}):d},position:function(){if(this[0]){var a,b,c={top:0,left:0},d=this[0];return"fixed"===m.css(d,"position")?b=d.getBoundingClientRect():(a=this.offsetParent(),b=this.offset(),m.nodeName(a[0],"html")||(c=a.offset()),c.top+=m.css(a[0],"borderTopWidth",!0),c.left+=m.css(a[0],"borderLeftWidth",!0)),{top:b.top-c.top-m.css(d,"marginTop",!0),left:b.left-c.left-m.css(d,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||cc;while(a&&!m.nodeName(a,"html")&&"static"===m.css(a,"position"))a=a.offsetParent;return a||cc})}}),m.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(a,b){var c=/Y/.test(b);m.fn[a]=function(d){return V(this,function(a,d,e){var f=dc(a);return void 0===e?f?b in f?f[b]:f.document.documentElement[d]:a[d]:void(f?f.scrollTo(c?m(f).scrollLeft():e,c?e:m(f).scrollTop()):a[d]=e)},a,d,arguments.length,null)}}),m.each(["top","left"],function(a,b){m.cssHooks[b]=La(k.pixelPosition,function(a,c){return c?(c=Ja(a,b),Ha.test(c)?m(a).position()[b]+"px":c):void 0})}),m.each({Height:"height",Width:"width"},function(a,b){m.each({padding:"inner"+a,content:b,"":"outer"+a},function(c,d){m.fn[d]=function(d,e){var f=arguments.length&&(c||"boolean"!=typeof d),g=c||(d===!0||e===!0?"margin":"border");return V(this,function(b,c,d){var e;return m.isWindow(b)?b.document.documentElement["client"+a]:9===b.nodeType?(e=b.documentElement,Math.max(b.body["scroll"+a],e["scroll"+a],b.body["offset"+a],e["offset"+a],e["client"+a])):void 0===d?m.css(b,c,g):m.style(b,c,d,g)},b,f?d:void 0,f,null)}})}),m.fn.size=function(){return this.length},m.fn.andSelf=m.fn.addBack,"function"==typeof define&&define.amd&&define("jquery",[],function(){return m});var ec=a.jQuery,fc=a.$;return m.noConflict=function(b){return a.$===m&&(a.$=fc),b&&a.jQuery===m&&(a.jQuery=ec),m},typeof b===K&&(a.jQuery=a.$=m),m});
diff --git a/_posts/2021-09-20-reading-in-adv-us-railroad-data/reading-in-adv-us-railroad-data_files/pagedtable-1.1/css/pagedtable.css b/_posts/2021-09-20-reading-in-adv-us-railroad-data/reading-in-adv-us-railroad-data_files/pagedtable-1.1/css/pagedtable.css
new file mode 100644
index 00000000..8764d88c
--- /dev/null
+++ b/_posts/2021-09-20-reading-in-adv-us-railroad-data/reading-in-adv-us-railroad-data_files/pagedtable-1.1/css/pagedtable.css
@@ -0,0 +1,142 @@
+.pagedtable {
+ overflow: auto;
+ padding-left: 8px;
+ padding-right: 8px;
+}
+
+.pagedtable-wrapper {
+ border: 1px solid #ccc;
+ border-radius: 4px;
+ margin-bottom: 10px;
+}
+
+.pagedtable table {
+ width: 100%;
+ max-width: 100%;
+ margin: 0;
+}
+
+.pagedtable th {
+ padding: 0 5px 0 5px;
+ border: none;
+ border-bottom: 2px solid #dddddd;
+
+ min-width: 45px;
+}
+
+.pagedtable-empty th {
+ display: none;
+}
+
+.pagedtable td {
+ padding: 0 4px 0 4px;
+}
+
+.pagedtable .even {
+ background-color: rgba(140, 140, 140, 0.1);
+}
+
+.pagedtable-padding-col {
+ display: none;
+}
+
+.pagedtable a {
+ -webkit-touch-callout: none;
+ -webkit-user-select: none;
+ -khtml-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+}
+
+.pagedtable-index-nav {
+ cursor: pointer;
+ padding: 0 5px 0 5px;
+ float: right;
+ border: 0;
+}
+
+.pagedtable-index-nav-disabled {
+ cursor: default;
+ text-decoration: none;
+ color: #999;
+}
+
+a.pagedtable-index-nav-disabled:hover {
+ text-decoration: none;
+ color: #999;
+}
+
+.pagedtable-indexes {
+ cursor: pointer;
+ float: right;
+ border: 0;
+}
+
+.pagedtable-index-current {
+ cursor: default;
+ text-decoration: none;
+ font-weight: bold;
+ color: #333;
+ border: 0;
+}
+
+a.pagedtable-index-current:hover {
+ text-decoration: none;
+ font-weight: bold;
+ color: #333;
+}
+
+.pagedtable-index {
+ width: 30px;
+ display: inline-block;
+ text-align: center;
+ border: 0;
+}
+
+.pagedtable-index-separator-left {
+ display: inline-block;
+ color: #333;
+ font-size: 9px;
+ padding: 0 0 0 0;
+ cursor: default;
+}
+
+.pagedtable-index-separator-right {
+ display: inline-block;
+ color: #333;
+ font-size: 9px;
+ padding: 0 4px 0 0;
+ cursor: default;
+}
+
+.pagedtable-footer {
+ padding-top: 4px;
+ padding-bottom: 5px;
+}
+
+.pagedtable-not-empty .pagedtable-footer {
+ border-top: 2px solid #dddddd;
+}
+
+.pagedtable-info {
+ overflow: hidden;
+ color: #999;
+ white-space: nowrap;
+ text-overflow: ellipsis;
+}
+
+.pagedtable-header-name {
+ overflow: hidden;
+ text-overflow: ellipsis;
+}
+
+.pagedtable-header-type {
+ color: #999;
+ font-weight: 400;
+}
+
+.pagedtable-na-cell {
+ font-style: italic;
+ opacity: 0.3;
+}
diff --git a/_posts/2021-09-20-reading-in-adv-us-railroad-data/reading-in-adv-us-railroad-data_files/pagedtable-1.1/js/pagedtable.js b/_posts/2021-09-20-reading-in-adv-us-railroad-data/reading-in-adv-us-railroad-data_files/pagedtable-1.1/js/pagedtable.js
new file mode 100644
index 00000000..52ada2bc
--- /dev/null
+++ b/_posts/2021-09-20-reading-in-adv-us-railroad-data/reading-in-adv-us-railroad-data_files/pagedtable-1.1/js/pagedtable.js
@@ -0,0 +1,1151 @@
+// Production steps of ECMA-262, Edition 5, 15.4.4.18
+// Reference: http://es5.github.io/#x15.4.4.18
+if (!Array.prototype.forEach) {
+
+ Array.prototype.forEach = function(callback, thisArg) {
+
+ var T, k;
+
+ if (this === null) {
+ throw new TypeError(' this is null or not defined');
+ }
+
+ // 1. Let O be the result of calling toObject() passing the
+ // |this| value as the argument.
+ var O = Object(this);
+
+ // 2. Let lenValue be the result of calling the Get() internal
+ // method of O with the argument "length".
+ // 3. Let len be toUint32(lenValue).
+ var len = O.length >>> 0;
+
+ // 4. If isCallable(callback) is false, throw a TypeError exception.
+ // See: http://es5.github.com/#x9.11
+ if (typeof callback !== "function") {
+ throw new TypeError(callback + ' is not a function');
+ }
+
+ // 5. If thisArg was supplied, let T be thisArg; else let
+ // T be undefined.
+ if (arguments.length > 1) {
+ T = thisArg;
+ }
+
+ // 6. Let k be 0
+ k = 0;
+
+ // 7. Repeat, while k < len
+ while (k < len) {
+
+ var kValue;
+
+ // a. Let Pk be ToString(k).
+ // This is implicit for LHS operands of the in operator
+ // b. Let kPresent be the result of calling the HasProperty
+ // internal method of O with argument Pk.
+ // This step can be combined with c
+ // c. If kPresent is true, then
+ if (k in O) {
+
+ // i. Let kValue be the result of calling the Get internal
+ // method of O with argument Pk.
+ kValue = O[k];
+
+ // ii. Call the Call internal method of callback with T as
+ // the this value and argument list containing kValue, k, and O.
+ callback.call(T, kValue, k, O);
+ }
+ // d. Increase k by 1.
+ k++;
+ }
+ // 8. return undefined
+ };
+}
+
+// Production steps of ECMA-262, Edition 5, 15.4.4.19
+// Reference: http://es5.github.io/#x15.4.4.19
+if (!Array.prototype.map) {
+
+ Array.prototype.map = function(callback, thisArg) {
+
+ var T, A, k;
+
+ if (this == null) {
+ throw new TypeError(' this is null or not defined');
+ }
+
+ // 1. Let O be the result of calling ToObject passing the |this|
+ // value as the argument.
+ var O = Object(this);
+
+ // 2. Let lenValue be the result of calling the Get internal
+ // method of O with the argument "length".
+ // 3. Let len be ToUint32(lenValue).
+ var len = O.length >>> 0;
+
+ // 4. If IsCallable(callback) is false, throw a TypeError exception.
+ // See: http://es5.github.com/#x9.11
+ if (typeof callback !== 'function') {
+ throw new TypeError(callback + ' is not a function');
+ }
+
+ // 5. If thisArg was supplied, let T be thisArg; else let T be undefined.
+ if (arguments.length > 1) {
+ T = thisArg;
+ }
+
+ // 6. Let A be a new array created as if by the expression new Array(len)
+ // where Array is the standard built-in constructor with that name and
+ // len is the value of len.
+ A = new Array(len);
+
+ // 7. Let k be 0
+ k = 0;
+
+ // 8. Repeat, while k < len
+ while (k < len) {
+
+ var kValue, mappedValue;
+
+ // a. Let Pk be ToString(k).
+ // This is implicit for LHS operands of the in operator
+ // b. Let kPresent be the result of calling the HasProperty internal
+ // method of O with argument Pk.
+ // This step can be combined with c
+ // c. If kPresent is true, then
+ if (k in O) {
+
+ // i. Let kValue be the result of calling the Get internal
+ // method of O with argument Pk.
+ kValue = O[k];
+
+ // ii. Let mappedValue be the result of calling the Call internal
+ // method of callback with T as the this value and argument
+ // list containing kValue, k, and O.
+ mappedValue = callback.call(T, kValue, k, O);
+
+ // iii. Call the DefineOwnProperty internal method of A with arguments
+ // Pk, Property Descriptor
+ // { Value: mappedValue,
+ // Writable: true,
+ // Enumerable: true,
+ // Configurable: true },
+ // and false.
+
+ // In browsers that support Object.defineProperty, use the following:
+ // Object.defineProperty(A, k, {
+ // value: mappedValue,
+ // writable: true,
+ // enumerable: true,
+ // configurable: true
+ // });
+
+ // For best browser support, use the following:
+ A[k] = mappedValue;
+ }
+ // d. Increase k by 1.
+ k++;
+ }
+
+ // 9. return A
+ return A;
+ };
+}
+
+var PagedTable = function (pagedTable) {
+ var me = this;
+
+ var source = function(pagedTable) {
+ var sourceElems = [].slice.call(pagedTable.children).filter(function(e) {
+ return e.hasAttribute("data-pagedtable-source");
+ });
+
+ if (sourceElems === null || sourceElems.length !== 1) {
+ throw("A single data-pagedtable-source was not found");
+ }
+
+ return JSON.parse(sourceElems[0].innerHTML);
+ }(pagedTable);
+
+ var options = function(source) {
+ var options = typeof(source.options) !== "undefined" &&
+ source.options !== null ? source.options : {};
+
+ var columns = typeof(options.columns) !== "undefined" ? options.columns : {};
+ var rows = typeof(options.rows) !== "undefined" ? options.rows : {};
+
+ var positiveIntOrNull = function(value) {
+ return parseInt(value) >= 0 ? parseInt(value) : null;
+ };
+
+ return {
+ pages: positiveIntOrNull(options.pages),
+ rows: {
+ min: positiveIntOrNull(rows.min),
+ max: positiveIntOrNull(rows.max),
+ total: positiveIntOrNull(rows.total)
+ },
+ columns: {
+ min: positiveIntOrNull(columns.min),
+ max: positiveIntOrNull(columns.max),
+ total: positiveIntOrNull(columns.total)
+ }
+ };
+ }(source);
+
+ var Measurer = function() {
+
+ // set some default initial values that will get adjusted in runtime
+ me.measures = {
+ padding: 12,
+ character: 8,
+ height: 15,
+ defaults: true
+ };
+
+ me.calculate = function(measuresCell) {
+ if (!me.measures.defaults)
+ return;
+
+ var measuresCellStyle = window.getComputedStyle(measuresCell, null);
+
+ var newPadding = parsePadding(measuresCellStyle.paddingLeft) +
+ parsePadding(measuresCellStyle.paddingRight);
+
+ var sampleString = "ABCDEFGHIJ0123456789";
+ var newCharacter = Math.ceil(measuresCell.clientWidth / sampleString.length);
+
+ if (newPadding <= 0 || newCharacter <= 0)
+ return;
+
+ me.measures.padding = newPadding;
+ me.measures.character = newCharacter;
+ me.measures.height = measuresCell.clientHeight;
+ me.measures.defaults = false;
+ };
+
+ return me;
+ };
+
+ var Page = function(data, options) {
+ var me = this;
+
+ var defaults = {
+ max: 7,
+ rows: 10
+ };
+
+ var totalPages = function() {
+ return Math.ceil(data.length / me.rows);
+ };
+
+ me.number = 0;
+ me.max = options.pages !== null ? options.pages : defaults.max;
+ me.visible = me.max;
+ me.rows = options.rows.min !== null ? options.rows.min : defaults.rows;
+ me.total = totalPages();
+
+ me.setRows = function(newRows) {
+ me.rows = newRows;
+ me.total = totalPages();
+ };
+
+ me.setPageNumber = function(newPageNumber) {
+ if (newPageNumber < 0) newPageNumber = 0;
+ if (newPageNumber >= me.total) newPageNumber = me.total - 1;
+
+ me.number = newPageNumber;
+ };
+
+ me.setVisiblePages = function(visiblePages) {
+ me.visible = Math.min(me.max, visiblePages);
+ me.setPageNumber(me.number);
+ };
+
+ me.getVisiblePageRange = function() {
+ var start = me.number - Math.max(Math.floor((me.visible - 1) / 2), 0);
+ var end = me.number + Math.floor(me.visible / 2) + 1;
+ var pageCount = me.total;
+
+ if (start < 0) {
+ var diffToStart = 0 - start;
+ start += diffToStart;
+ end += diffToStart;
+ }
+
+ if (end > pageCount) {
+ var diffToEnd = end - pageCount;
+ start -= diffToEnd;
+ end -= diffToEnd;
+ }
+
+ start = start < 0 ? 0 : start;
+ end = end >= pageCount ? pageCount : end;
+
+ var first = false;
+ var last = false;
+
+ if (start > 0 && me.visible > 1) {
+ start = start + 1;
+ first = true;
+ }
+
+ if (end < pageCount && me.visible > 2) {
+ end = end - 1;
+ last = true;
+ }
+
+ return {
+ first: first,
+ start: start,
+ end: end,
+ last: last
+ };
+ };
+
+ me.getRowStart = function() {
+ var rowStart = page.number * page.rows;
+ if (rowStart < 0)
+ rowStart = 0;
+
+ return rowStart;
+ };
+
+ me.getRowEnd = function() {
+ var rowStart = me.getRowStart();
+ return Math.min(rowStart + me.rows, data.length);
+ };
+
+ me.getPaddingRows = function() {
+ var rowStart = me.getRowStart();
+ var rowEnd = me.getRowEnd();
+ return data.length > me.rows ? me.rows - (rowEnd - rowStart) : 0;
+ };
+ };
+
+ var Columns = function(data, columns, options) {
+ var me = this;
+
+ me.defaults = {
+ min: 5
+ };
+
+ me.number = 0;
+ me.visible = 0;
+ me.total = columns.length;
+ me.subset = [];
+ me.padding = 0;
+ me.min = options.columns.min !== null ? options.columns.min : me.defaults.min;
+ me.max = options.columns.max !== null ? options.columns.max : null;
+ me.widths = {};
+
+ var widthsLookAhead = Math.max(100, options.rows.min);
+ var paddingColChars = 10;
+
+ me.emptyNames = function() {
+ columns.forEach(function(column) {
+ if (columns.label !== null && columns.label !== "")
+ return false;
+ });
+
+ return true;
+ };
+
+ var parsePadding = function(value) {
+ return parseInt(value) >= 0 ? parseInt(value) : 0;
+ };
+
+ me.calculateWidths = function(measures) {
+ columns.forEach(function(column) {
+ var maxChars = Math.max(
+ column.label.toString().length,
+ column.type.toString().length
+ );
+
+ for (var idxRow = 0; idxRow < Math.min(widthsLookAhead, data.length); idxRow++) {
+ maxChars = Math.max(maxChars, data[idxRow][column.name.toString()].length);
+ }
+
+ me.widths[column.name] = {
+ // width in characters
+ chars: maxChars,
+ // width for the inner html columns
+ inner: maxChars * measures.character,
+ // width adding outer styles like padding
+ outer: maxChars * measures.character + measures.padding
+ };
+ });
+ };
+
+ me.getWidth = function() {
+ var widthOuter = 0;
+ for (var idxCol = 0; idxCol < me.subset.length; idxCol++) {
+ var columnName = me.subset[idxCol].name;
+ widthOuter = widthOuter + me.widths[columnName].outer;
+ }
+
+ widthOuter = widthOuter + me.padding * paddingColChars * measurer.measures.character;
+
+ if (me.hasMoreLeftColumns()) {
+ widthOuter = widthOuter + columnNavigationWidthPX + measurer.measures.padding;
+ }
+
+ if (me.hasMoreRightColumns()) {
+ widthOuter = widthOuter + columnNavigationWidthPX + measurer.measures.padding;
+ }
+
+ return widthOuter;
+ };
+
+ me.updateSlice = function() {
+ if (me.number + me.visible >= me.total)
+ me.number = me.total - me.visible;
+
+ if (me.number < 0) me.number = 0;
+
+ me.subset = columns.slice(me.number, Math.min(me.number + me.visible, me.total));
+
+ me.subset = me.subset.map(function(column) {
+ Object.keys(column).forEach(function(colKey) {
+ column[colKey] = column[colKey] === null ? "" : column[colKey].toString();
+ });
+
+ column.width = null;
+ return column;
+ });
+ };
+
+ me.setVisibleColumns = function(columnNumber, newVisibleColumns, paddingCount) {
+ me.number = columnNumber;
+ me.visible = newVisibleColumns;
+ me.padding = paddingCount;
+
+ me.updateSlice();
+ };
+
+ me.incColumnNumber = function(increment) {
+ me.number = me.number + increment;
+ };
+
+ me.setColumnNumber = function(newNumber) {
+ me.number = newNumber;
+ };
+
+ me.setPaddingCount = function(newPadding) {
+ me.padding = newPadding;
+ };
+
+ me.getPaddingCount = function() {
+ return me.padding;
+ };
+
+ me.hasMoreLeftColumns = function() {
+ return me.number > 0;
+ };
+
+ me.hasMoreRightColumns = function() {
+ return me.number + me.visible < me.total;
+ };
+
+ me.updateSlice(0);
+ return me;
+ };
+
+ var data = source.data;
+ var page = new Page(data, options);
+ var measurer = new Measurer(data, options);
+ var columns = new Columns(data, source.columns, options);
+
+ var table = null;
+ var tableDiv = null;
+ var header = null;
+ var footer = null;
+ var tbody = null;
+
+ // Caches pagedTable.clientWidth, specially for webkit
+ var cachedPagedTableClientWidth = null;
+
+ var onChangeCallbacks = [];
+
+ var clearSelection = function() {
+ if(document.selection && document.selection.empty) {
+ document.selection.empty();
+ } else if(window.getSelection) {
+ var sel = window.getSelection();
+ sel.removeAllRanges();
+ }
+ };
+
+ var columnNavigationWidthPX = 5;
+
+ var renderColumnNavigation = function(increment, backwards) {
+ var arrow = document.createElement("div");
+ arrow.setAttribute("style",
+ "border-top: " + columnNavigationWidthPX + "px solid transparent;" +
+ "border-bottom: " + columnNavigationWidthPX + "px solid transparent;" +
+ "border-" + (backwards ? "right" : "left") + ": " + columnNavigationWidthPX + "px solid;");
+
+ var header = document.createElement("th");
+ header.appendChild(arrow);
+ header.setAttribute("style",
+ "cursor: pointer;" +
+ "vertical-align: middle;" +
+ "min-width: " + columnNavigationWidthPX + "px;" +
+ "width: " + columnNavigationWidthPX + "px;");
+
+ header.onclick = function() {
+ columns.incColumnNumber(backwards ? -1 : increment);
+
+ me.animateColumns(backwards);
+ renderFooter();
+
+ clearSelection();
+ triggerOnChange();
+ };
+
+ return header;
+ };
+
+ var maxColumnWidth = function(width) {
+ var padding = 80;
+ var columnMax = Math.max(cachedPagedTableClientWidth - padding, 0);
+
+ return parseInt(width) > 0 ?
+ Math.min(columnMax, parseInt(width)) + "px" :
+ columnMax + "px";
+ };
+
+ var clearHeader = function() {
+ var thead = pagedTable.querySelectorAll("thead")[0];
+ thead.innerHTML = "";
+ };
+
+ var renderHeader = function(clear) {
+ cachedPagedTableClientWidth = pagedTable.clientWidth;
+
+ var fragment = document.createDocumentFragment();
+
+ header = document.createElement("tr");
+ fragment.appendChild(header);
+
+ if (columns.number > 0)
+ header.appendChild(renderColumnNavigation(-columns.visible, true));
+
+ columns.subset = columns.subset.map(function(columnData) {
+ var column = document.createElement("th");
+ column.setAttribute("align", columnData.align);
+ column.style.textAlign = columnData.align;
+
+ column.style.maxWidth = maxColumnWidth(null);
+ if (columnData.width) {
+ column.style.minWidth =
+ column.style.maxWidth = maxColumnWidth(columnData.width);
+ }
+
+ var columnName = document.createElement("div");
+ columnName.setAttribute("class", "pagedtable-header-name");
+ if (columnData.label === "") {
+ columnName.innerHTML = " ";
+ }
+ else {
+ columnName.appendChild(document.createTextNode(columnData.label));
+ }
+ column.appendChild(columnName);
+
+ var columnType = document.createElement("div");
+ columnType.setAttribute("class", "pagedtable-header-type");
+ if (columnData.type === "") {
+ columnType.innerHTML = " ";
+ }
+ else {
+ columnType.appendChild(document.createTextNode("<" + columnData.type + ">"));
+ }
+ column.appendChild(columnType);
+
+ header.appendChild(column);
+
+ columnData.element = column;
+
+ return columnData;
+ });
+
+ for (var idx = 0; idx < columns.getPaddingCount(); idx++) {
+ var paddingCol = document.createElement("th");
+ paddingCol.setAttribute("class", "pagedtable-padding-col");
+ header.appendChild(paddingCol);
+ }
+
+ if (columns.number + columns.visible < columns.total)
+ header.appendChild(renderColumnNavigation(columns.visible, false));
+
+ if (typeof(clear) == "undefined" || clear) clearHeader();
+ var thead = pagedTable.querySelectorAll("thead")[0];
+ thead.appendChild(fragment);
+ };
+
+ me.animateColumns = function(backwards) {
+ var thead = pagedTable.querySelectorAll("thead")[0];
+
+ var headerOld = thead.querySelectorAll("tr")[0];
+ var tbodyOld = table.querySelectorAll("tbody")[0];
+
+ me.fitColumns(backwards);
+
+ renderHeader(false);
+
+ header.style.opacity = "0";
+ header.style.transform = backwards ? "translateX(-30px)" : "translateX(30px)";
+ header.style.transition = "transform 200ms linear, opacity 200ms";
+ header.style.transitionDelay = "0";
+
+ renderBody(false);
+
+ if (headerOld) {
+ headerOld.style.position = "absolute";
+ headerOld.style.transform = "translateX(0px)";
+ headerOld.style.opacity = "1";
+ headerOld.style.transition = "transform 100ms linear, opacity 100ms";
+ headerOld.setAttribute("class", "pagedtable-remove-head");
+ if (headerOld.style.transitionEnd) {
+ headerOld.addEventListener("transitionend", function() {
+ var headerOldByClass = thead.querySelector(".pagedtable-remove-head");
+ if (headerOldByClass) thead.removeChild(headerOldByClass);
+ });
+ }
+ else {
+ thead.removeChild(headerOld);
+ }
+ }
+
+ if (tbodyOld) table.removeChild(tbodyOld);
+
+ tbody.style.opacity = "0";
+ tbody.style.transition = "transform 200ms linear, opacity 200ms";
+ tbody.style.transitionDelay = "0ms";
+
+ // force relayout
+ window.getComputedStyle(header).opacity;
+ window.getComputedStyle(tbody).opacity;
+
+ if (headerOld) {
+ headerOld.style.transform = backwards ? "translateX(20px)" : "translateX(-30px)";
+ headerOld.style.opacity = "0";
+ }
+
+ header.style.transform = "translateX(0px)";
+ header.style.opacity = "1";
+
+ tbody.style.opacity = "1";
+ }
+
+ me.onChange = function(callback) {
+ onChangeCallbacks.push(callback);
+ };
+
+ var triggerOnChange = function() {
+ onChangeCallbacks.forEach(function(onChange) {
+ onChange();
+ });
+ };
+
+ var clearBody = function() {
+ if (tbody) {
+ table.removeChild(tbody);
+ tbody = null;
+ }
+ };
+
+ var renderBody = function(clear) {
+ cachedPagedTableClientWidth = pagedTable.clientWidth
+
+ var fragment = document.createDocumentFragment();
+
+ var pageData = data.slice(page.getRowStart(), page.getRowEnd());
+
+ pageData.forEach(function(dataRow, idxRow) {
+ var htmlRow = document.createElement("tr");
+ htmlRow.setAttribute("class", (idxRow % 2 !==0) ? "even" : "odd");
+
+ if (columns.hasMoreLeftColumns())
+ htmlRow.appendChild(document.createElement("td"));
+
+ columns.subset.forEach(function(columnData) {
+ var cellName = columnData.name;
+ var dataCell = dataRow[cellName];
+ var htmlCell = document.createElement("td");
+
+ if (dataCell === "NA") htmlCell.setAttribute("class", "pagedtable-na-cell");
+ if (dataCell === "__NA__") dataCell = "NA";
+
+ var cellText = document.createTextNode(dataCell);
+ htmlCell.appendChild(cellText);
+ if (dataCell.length > 50) {
+ htmlCell.setAttribute("title", dataCell);
+ }
+ htmlCell.setAttribute("align", columnData.align);
+ htmlCell.style.textAlign = columnData.align;
+ htmlCell.style.maxWidth = maxColumnWidth(null);
+ if (columnData.width) {
+ htmlCell.style.minWidth = htmlCell.style.maxWidth = maxColumnWidth(columnData.width);
+ }
+ htmlRow.appendChild(htmlCell);
+ });
+
+ for (var idx = 0; idx < columns.getPaddingCount(); idx++) {
+ var paddingCol = document.createElement("td");
+ paddingCol.setAttribute("class", "pagedtable-padding-col");
+ htmlRow.appendChild(paddingCol);
+ }
+
+ if (columns.hasMoreRightColumns())
+ htmlRow.appendChild(document.createElement("td"));
+
+ fragment.appendChild(htmlRow);
+ });
+
+ for (var idxPadding = 0; idxPadding < page.getPaddingRows(); idxPadding++) {
+ var paddingRow = document.createElement("tr");
+
+ var paddingCellRow = document.createElement("td");
+ paddingCellRow.innerHTML = " ";
+ paddingCellRow.setAttribute("colspan", "100%");
+ paddingRow.appendChild(paddingCellRow);
+
+ fragment.appendChild(paddingRow);
+ }
+
+ if (typeof(clear) == "undefined" || clear) clearBody();
+ tbody = document.createElement("tbody");
+ tbody.appendChild(fragment);
+
+ table.appendChild(tbody);
+ };
+
+ var getLabelInfo = function() {
+ var pageStart = page.getRowStart();
+ var pageEnd = page.getRowEnd();
+ var totalRows = data.length;
+
+ var totalRowsLabel = options.rows.total ? options.rows.total : totalRows;
+ var totalRowsLabelFormat = totalRowsLabel.toString().replace(/(\d)(?=(\d\d\d)+(?!\d))/g, '$1,');
+
+ var infoText = (pageStart + 1) + "-" + pageEnd + " of " + totalRowsLabelFormat + " rows";
+ if (totalRows < page.rows) {
+ infoText = totalRowsLabel + " row" + (totalRows != 1 ? "s" : "");
+ }
+ if (columns.total > columns.visible) {
+ var totalColumnsLabel = options.columns.total ? options.columns.total : columns.total;
+
+ infoText = infoText + " | " + (columns.number + 1) + "-" +
+ (Math.min(columns.number + columns.visible, columns.total)) +
+ " of " + totalColumnsLabel + " columns";
+ }
+
+ return infoText;
+ };
+
+ var clearFooter = function() {
+ footer = pagedTable.querySelectorAll("div.pagedtable-footer")[0];
+ footer.innerHTML = "";
+
+ return footer;
+ };
+
+ var createPageLink = function(idxPage) {
+ var pageLink = document.createElement("a");
+ pageLinkClass = idxPage === page.number ? "pagedtable-index pagedtable-index-current" : "pagedtable-index";
+ pageLink.setAttribute("class", pageLinkClass);
+ pageLink.setAttribute("data-page-index", idxPage);
+ pageLink.onclick = function() {
+ page.setPageNumber(parseInt(this.getAttribute("data-page-index")));
+ renderBody();
+ renderFooter();
+
+ triggerOnChange();
+ };
+
+ pageLink.appendChild(document.createTextNode(idxPage + 1));
+
+ return pageLink;
+ }
+
+ var renderFooter = function() {
+ footer = clearFooter();
+
+ var next = document.createElement("a");
+ next.appendChild(document.createTextNode("Next"));
+ next.onclick = function() {
+ page.setPageNumber(page.number + 1);
+ renderBody();
+ renderFooter();
+
+ triggerOnChange();
+ };
+ if (data.length > page.rows) footer.appendChild(next);
+
+ var pageNumbers = document.createElement("div");
+ pageNumbers.setAttribute("class", "pagedtable-indexes");
+
+ var pageRange = page.getVisiblePageRange();
+
+ if (pageRange.first) {
+ var pageLink = createPageLink(0);
+ pageNumbers.appendChild(pageLink);
+
+ var pageSeparator = document.createElement("div");
+ pageSeparator.setAttribute("class", "pagedtable-index-separator-left");
+ pageSeparator.appendChild(document.createTextNode("..."))
+ pageNumbers.appendChild(pageSeparator);
+ }
+
+ for (var idxPage = pageRange.start; idxPage < pageRange.end; idxPage++) {
+ var pageLink = createPageLink(idxPage);
+
+ pageNumbers.appendChild(pageLink);
+ }
+
+ if (pageRange.last) {
+ var pageSeparator = document.createElement("div");
+ pageSeparator.setAttribute("class", "pagedtable-index-separator-right");
+ pageSeparator.appendChild(document.createTextNode("..."))
+ pageNumbers.appendChild(pageSeparator);
+
+ var pageLink = createPageLink(page.total - 1);
+ pageNumbers.appendChild(pageLink);
+ }
+
+ if (data.length > page.rows) footer.appendChild(pageNumbers);
+
+ var previous = document.createElement("a");
+ previous.appendChild(document.createTextNode("Previous"));
+ previous.onclick = function() {
+ page.setPageNumber(page.number - 1);
+ renderBody();
+ renderFooter();
+
+ triggerOnChange();
+ };
+ if (data.length > page.rows) footer.appendChild(previous);
+
+ var infoLabel = document.createElement("div");
+ infoLabel.setAttribute("class", "pagedtable-info");
+ infoLabel.setAttribute("title", getLabelInfo());
+ infoLabel.appendChild(document.createTextNode(getLabelInfo()));
+ footer.appendChild(infoLabel);
+
+ var enabledClass = "pagedtable-index-nav";
+ var disabledClass = "pagedtable-index-nav pagedtable-index-nav-disabled";
+ previous.setAttribute("class", page.number <= 0 ? disabledClass : enabledClass);
+ next.setAttribute("class", (page.number + 1) * page.rows >= data.length ? disabledClass : enabledClass);
+ };
+
+ var measuresCell = null;
+
+ var renderMeasures = function() {
+ var measuresTable = document.createElement("table");
+ measuresTable.style.visibility = "hidden";
+ measuresTable.style.position = "absolute";
+ measuresTable.style.whiteSpace = "nowrap";
+ measuresTable.style.height = "auto";
+ measuresTable.style.width = "auto";
+
+ var measuresRow = document.createElement("tr");
+ measuresTable.appendChild(measuresRow);
+
+ measuresCell = document.createElement("td");
+ var sampleString = "ABCDEFGHIJ0123456789";
+ measuresCell.appendChild(document.createTextNode(sampleString));
+
+ measuresRow.appendChild(measuresCell);
+
+ tableDiv.appendChild(measuresTable);
+ }
+
+ me.init = function() {
+ tableDiv = document.createElement("div");
+ pagedTable.appendChild(tableDiv);
+ var pagedTableClass = data.length > 0 ?
+ "pagedtable pagedtable-not-empty" :
+ "pagedtable pagedtable-empty";
+
+ if (columns.total == 0 || (columns.emptyNames() && data.length == 0)) {
+ pagedTableClass = pagedTableClass + " pagedtable-empty-columns";
+ }
+
+ tableDiv.setAttribute("class", pagedTableClass);
+
+ renderMeasures();
+ measurer.calculate(measuresCell);
+ columns.calculateWidths(measurer.measures);
+
+ table = document.createElement("table");
+ table.setAttribute("cellspacing", "0");
+ table.setAttribute("class", "table table-condensed");
+ tableDiv.appendChild(table);
+
+ table.appendChild(document.createElement("thead"));
+
+ var footerDiv = document.createElement("div");
+ footerDiv.setAttribute("class", "pagedtable-footer");
+ tableDiv.appendChild(footerDiv);
+
+ // if the host has not yet provided horizontal space, render hidden
+ if (tableDiv.clientWidth <= 0) {
+ tableDiv.style.opacity = "0";
+ }
+
+ me.render();
+
+ // retry seizing columns later if the host has not provided space
+ function retryFit() {
+ if (tableDiv.clientWidth <= 0) {
+ setTimeout(retryFit, 100);
+ } else {
+ me.render();
+ triggerOnChange();
+ }
+ }
+ if (tableDiv.clientWidth <= 0) {
+ retryFit();
+ }
+ };
+
+ var registerWidths = function() {
+ columns.subset = columns.subset.map(function(column) {
+ column.width = columns.widths[column.name].inner;
+ return column;
+ });
+ };
+
+ var parsePadding = function(value) {
+ return parseInt(value) >= 0 ? parseInt(value) : 0;
+ };
+
+ me.fixedHeight = function() {
+ return options.rows.max != null;
+ }
+
+ me.fitRows = function() {
+ if (me.fixedHeight())
+ return;
+
+ measurer.calculate(measuresCell);
+
+ var rows = options.rows.min !== null ? options.rows.min : 0;
+ var headerHeight = header !== null && header.offsetHeight > 0 ? header.offsetHeight : 0;
+ var footerHeight = footer !== null && footer.offsetHeight > 0 ? footer.offsetHeight : 0;
+
+ if (pagedTable.offsetHeight > 0) {
+ var availableHeight = pagedTable.offsetHeight - headerHeight - footerHeight;
+ rows = Math.floor((availableHeight) / measurer.measures.height);
+ }
+
+ rows = options.rows.min !== null ? Math.max(options.rows.min, rows) : rows;
+
+ page.setRows(rows);
+ }
+
+ // The goal of this function is to add as many columns as possible
+ // starting from left-to-right, when the right most limit is reached
+ // it tries to add columns from the left as well.
+ //
+ // When startBackwards is true columns are added from right-to-left
+ me.fitColumns = function(startBackwards) {
+ measurer.calculate(measuresCell);
+ columns.calculateWidths(measurer.measures);
+
+ if (tableDiv.clientWidth > 0) {
+ tableDiv.style.opacity = 1;
+ }
+
+ var visibleColumns = tableDiv.clientWidth <= 0 ? Math.max(columns.min, 1) : 1;
+ var columnNumber = columns.number;
+ var paddingCount = 0;
+
+ // track a list of added columns as we build the visible ones to allow us
+ // to remove columns when they don't fit anymore.
+ var columnHistory = [];
+
+ var lastTableHeight = 0;
+ var backwards = startBackwards;
+
+ var tableDivStyle = window.getComputedStyle(tableDiv, null);
+ var tableDivPadding = parsePadding(tableDivStyle.paddingLeft) +
+ parsePadding(tableDivStyle.paddingRight);
+
+ var addPaddingCol = false;
+ var currentWidth = 0;
+
+ while (true) {
+ columns.setVisibleColumns(columnNumber, visibleColumns, paddingCount);
+ currentWidth = columns.getWidth();
+
+ if (tableDiv.clientWidth - tableDivPadding < currentWidth) {
+ break;
+ }
+
+ columnHistory.push({
+ columnNumber: columnNumber,
+ visibleColumns: visibleColumns,
+ paddingCount: paddingCount
+ });
+
+ if (columnHistory.length > 100) {
+ console.error("More than 100 tries to fit columns, aborting");
+ break;
+ }
+
+ if (columns.max !== null &&
+ columns.visible + columns.getPaddingCount() >= columns.max) {
+ break;
+ }
+
+ // if we run out of right-columns
+ if (!backwards && columnNumber + columns.visible >= columns.total) {
+ // if we started adding right-columns, try adding left-columns
+ if (!startBackwards && columnNumber > 0) {
+ backwards = true;
+ }
+ else if (columns.min === null || visibleColumns + columns.getPaddingCount() >= columns.min) {
+ break;
+ }
+ else {
+ paddingCount = paddingCount + 1;
+ }
+ }
+
+ // if we run out of left-columns
+ if (backwards && columnNumber == 0) {
+ // if we started adding left-columns, try adding right-columns
+ if (startBackwards && columnNumber + columns.visible < columns.total) {
+ backwards = false;
+ }
+ else if (columns.min === null || visibleColumns + columns.getPaddingCount() >= columns.min) {
+ break;
+ }
+ else {
+ paddingCount = paddingCount + 1;
+ }
+ }
+
+ // when moving backwards try fitting left columns first
+ if (backwards && columnNumber > 0) {
+ columnNumber = columnNumber - 1;
+ }
+
+ if (columnNumber + visibleColumns < columns.total) {
+ visibleColumns = visibleColumns + 1;
+ }
+ }
+
+ var lastRenderableColumn = {
+ columnNumber: columnNumber,
+ visibleColumns: visibleColumns,
+ paddingCount: paddingCount
+ };
+
+ if (columnHistory.length > 0) {
+ lastRenderableColumn = columnHistory[columnHistory.length - 1];
+ }
+
+ columns.setVisibleColumns(
+ lastRenderableColumn.columnNumber,
+ lastRenderableColumn.visibleColumns,
+ lastRenderableColumn.paddingCount);
+
+ if (pagedTable.offsetWidth > 0) {
+ page.setVisiblePages(Math.max(Math.ceil(1.0 * (pagedTable.offsetWidth - 250) / 40), 2));
+ }
+
+ registerWidths();
+ };
+
+ me.fit = function(startBackwards) {
+ me.fitRows();
+ me.fitColumns(startBackwards);
+ }
+
+ me.render = function() {
+ me.fitColumns(false);
+
+ // render header/footer to measure height accurately
+ renderHeader();
+ renderFooter();
+
+ me.fitRows();
+ renderBody();
+
+ // re-render footer to match new rows
+ renderFooter();
+ }
+
+ var resizeLastWidth = -1;
+ var resizeLastHeight = -1;
+ var resizeNewWidth = -1;
+ var resizeNewHeight = -1;
+ var resizePending = false;
+
+ me.resize = function(newWidth, newHeight) {
+
+ function resizeDelayed() {
+ resizePending = false;
+
+ if (
+ (resizeNewWidth !== resizeLastWidth) ||
+ (!me.fixedHeight() && resizeNewHeight !== resizeLastHeight)
+ ) {
+ resizeLastWidth = resizeNewWidth;
+ resizeLastHeight = resizeNewHeight;
+
+ setTimeout(resizeDelayed, 200);
+ resizePending = true;
+ } else {
+ me.render();
+ triggerOnChange();
+
+ resizeLastWidth = -1;
+ resizeLastHeight = -1;
+ }
+ }
+
+ resizeNewWidth = newWidth;
+ resizeNewHeight = newHeight;
+
+ if (!resizePending) resizeDelayed();
+ };
+};
+
+var PagedTableDoc;
+(function (PagedTableDoc) {
+ var allPagedTables = [];
+
+ PagedTableDoc.initAll = function() {
+ allPagedTables = [];
+
+ var pagedTables = [].slice.call(document.querySelectorAll('[data-pagedtable="false"],[data-pagedtable=""]'));
+ pagedTables.forEach(function(pagedTable, idx) {
+ pagedTable.setAttribute("data-pagedtable", "true");
+ pagedTable.setAttribute("pagedtable-page", 0);
+ pagedTable.setAttribute("class", "pagedtable-wrapper");
+
+ var pagedTableInstance = new PagedTable(pagedTable);
+ pagedTableInstance.init();
+
+ allPagedTables.push(pagedTableInstance);
+ });
+ };
+
+ PagedTableDoc.resizeAll = function() {
+ allPagedTables.forEach(function(pagedTable) {
+ pagedTable.render();
+ });
+ };
+
+ window.addEventListener("resize", PagedTableDoc.resizeAll);
+
+ return PagedTableDoc;
+})(PagedTableDoc || (PagedTableDoc = {}));
+
+window.onload = function() {
+ PagedTableDoc.initAll();
+};
diff --git a/_posts/2021-09-20-reading-in-adv-us-railroad-data/reading-in-adv-us-railroad-data_files/popper-2.6.0/popper.min.js b/_posts/2021-09-20-reading-in-adv-us-railroad-data/reading-in-adv-us-railroad-data_files/popper-2.6.0/popper.min.js
new file mode 100644
index 00000000..6597294c
--- /dev/null
+++ b/_posts/2021-09-20-reading-in-adv-us-railroad-data/reading-in-adv-us-railroad-data_files/popper-2.6.0/popper.min.js
@@ -0,0 +1,6 @@
+/**
+ * @popperjs/core v2.6.0 - MIT License
+ */
+
+"use strict";!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e=e||self).Popper={})}(this,(function(e){function t(e){return{width:(e=e.getBoundingClientRect()).width,height:e.height,top:e.top,right:e.right,bottom:e.bottom,left:e.left,x:e.left,y:e.top}}function n(e){return"[object Window]"!==e.toString()?(e=e.ownerDocument)&&e.defaultView||window:e}function r(e){return{scrollLeft:(e=n(e)).pageXOffset,scrollTop:e.pageYOffset}}function o(e){return e instanceof n(e).Element||e instanceof Element}function i(e){return e instanceof n(e).HTMLElement||e instanceof HTMLElement}function a(e){return e?(e.nodeName||"").toLowerCase():null}function s(e){return((o(e)?e.ownerDocument:e.document)||window.document).documentElement}function f(e){return t(s(e)).left+r(e).scrollLeft}function c(e){return n(e).getComputedStyle(e)}function p(e){return e=c(e),/auto|scroll|overlay|hidden/.test(e.overflow+e.overflowY+e.overflowX)}function l(e,o,c){void 0===c&&(c=!1);var l=s(o);e=t(e);var u=i(o),d={scrollLeft:0,scrollTop:0},m={x:0,y:0};return(u||!u&&!c)&&(("body"!==a(o)||p(l))&&(d=o!==n(o)&&i(o)?{scrollLeft:o.scrollLeft,scrollTop:o.scrollTop}:r(o)),i(o)?((m=t(o)).x+=o.clientLeft,m.y+=o.clientTop):l&&(m.x=f(l))),{x:e.left+d.scrollLeft-m.x,y:e.top+d.scrollTop-m.y,width:e.width,height:e.height}}function u(e){return{x:e.offsetLeft,y:e.offsetTop,width:e.offsetWidth,height:e.offsetHeight}}function d(e){return"html"===a(e)?e:e.assignedSlot||e.parentNode||e.host||s(e)}function m(e,t){void 0===t&&(t=[]);var r=function e(t){return 0<=["html","body","#document"].indexOf(a(t))?t.ownerDocument.body:i(t)&&p(t)?t:e(d(t))}(e);e="body"===a(r);var o=n(r);return r=e?[o].concat(o.visualViewport||[],p(r)?r:[]):r,t=t.concat(r),e?t:t.concat(m(d(r)))}function h(e){if(!i(e)||"fixed"===c(e).position)return null;if(e=e.offsetParent){var t=s(e);if("body"===a(e)&&"static"===c(e).position&&"static"!==c(t).position)return t}return e}function g(e){for(var t=n(e),r=h(e);r&&0<=["table","td","th"].indexOf(a(r))&&"static"===c(r).position;)r=h(r);if(r&&"body"===a(r)&&"static"===c(r).position)return t;if(!r)e:{for(e=d(e);i(e)&&0>["html","body"].indexOf(a(e));){if("none"!==(r=c(e)).transform||"none"!==r.perspective||r.willChange&&"auto"!==r.willChange){r=e;break e}e=e.parentNode}r=null}return r||t}function v(e){var t=new Map,n=new Set,r=[];return e.forEach((function(e){t.set(e.name,e)})),e.forEach((function(e){n.has(e.name)||function e(o){n.add(o.name),[].concat(o.requires||[],o.requiresIfExists||[]).forEach((function(r){n.has(r)||(r=t.get(r))&&e(r)})),r.push(o)}(e)})),r}function b(e){var t;return function(){return t||(t=new Promise((function(n){Promise.resolve().then((function(){t=void 0,n(e())}))}))),t}}function y(e){return e.split("-")[0]}function O(e,t){var r,o=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if((r=o)&&(r=o instanceof(r=n(o).ShadowRoot)||o instanceof ShadowRoot),r)do{if(t&&e.isSameNode(t))return!0;t=t.parentNode||t.host}while(t);return!1}function w(e){return Object.assign(Object.assign({},e),{},{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function x(e,o){if("viewport"===o){o=n(e);var a=s(e);o=o.visualViewport;var p=a.clientWidth;a=a.clientHeight;var l=0,u=0;o&&(p=o.width,a=o.height,/^((?!chrome|android).)*safari/i.test(navigator.userAgent)||(l=o.offsetLeft,u=o.offsetTop)),e=w(e={width:p,height:a,x:l+f(e),y:u})}else i(o)?((e=t(o)).top+=o.clientTop,e.left+=o.clientLeft,e.bottom=e.top+o.clientHeight,e.right=e.left+o.clientWidth,e.width=o.clientWidth,e.height=o.clientHeight,e.x=e.left,e.y=e.top):(u=s(e),e=s(u),l=r(u),o=u.ownerDocument.body,p=Math.max(e.scrollWidth,e.clientWidth,o?o.scrollWidth:0,o?o.clientWidth:0),a=Math.max(e.scrollHeight,e.clientHeight,o?o.scrollHeight:0,o?o.clientHeight:0),u=-l.scrollLeft+f(u),l=-l.scrollTop,"rtl"===c(o||e).direction&&(u+=Math.max(e.clientWidth,o?o.clientWidth:0)-p),e=w({width:p,height:a,x:u,y:l}));return e}function j(e,t,n){return t="clippingParents"===t?function(e){var t=m(d(e)),n=0<=["absolute","fixed"].indexOf(c(e).position)&&i(e)?g(e):e;return o(n)?t.filter((function(e){return o(e)&&O(e,n)&&"body"!==a(e)})):[]}(e):[].concat(t),(n=(n=[].concat(t,[n])).reduce((function(t,n){return n=x(e,n),t.top=Math.max(n.top,t.top),t.right=Math.min(n.right,t.right),t.bottom=Math.min(n.bottom,t.bottom),t.left=Math.max(n.left,t.left),t}),x(e,n[0]))).width=n.right-n.left,n.height=n.bottom-n.top,n.x=n.left,n.y=n.top,n}function M(e){return 0<=["top","bottom"].indexOf(e)?"x":"y"}function E(e){var t=e.reference,n=e.element,r=(e=e.placement)?y(e):null;e=e?e.split("-")[1]:null;var o=t.x+t.width/2-n.width/2,i=t.y+t.height/2-n.height/2;switch(r){case"top":o={x:o,y:t.y-n.height};break;case"bottom":o={x:o,y:t.y+t.height};break;case"right":o={x:t.x+t.width,y:i};break;case"left":o={x:t.x-n.width,y:i};break;default:o={x:t.x,y:t.y}}if(null!=(r=r?M(r):null))switch(i="y"===r?"height":"width",e){case"start":o[r]-=t[i]/2-n[i]/2;break;case"end":o[r]+=t[i]/2-n[i]/2}return o}function D(e){return Object.assign(Object.assign({},{top:0,right:0,bottom:0,left:0}),e)}function P(e,t){return t.reduce((function(t,n){return t[n]=e,t}),{})}function L(e,n){void 0===n&&(n={});var r=n;n=void 0===(n=r.placement)?e.placement:n;var i=r.boundary,a=void 0===i?"clippingParents":i,f=void 0===(i=r.rootBoundary)?"viewport":i;i=void 0===(i=r.elementContext)?"popper":i;var c=r.altBoundary,p=void 0!==c&&c;r=D("number"!=typeof(r=void 0===(r=r.padding)?0:r)?r:P(r,T));var l=e.elements.reference;c=e.rects.popper,a=j(o(p=e.elements[p?"popper"===i?"reference":"popper":i])?p:p.contextElement||s(e.elements.popper),a,f),p=E({reference:f=t(l),element:c,strategy:"absolute",placement:n}),c=w(Object.assign(Object.assign({},c),p)),f="popper"===i?c:f;var u={top:a.top-f.top+r.top,bottom:f.bottom-a.bottom+r.bottom,left:a.left-f.left+r.left,right:f.right-a.right+r.right};if(e=e.modifiersData.offset,"popper"===i&&e){var d=e[n];Object.keys(u).forEach((function(e){var t=0<=["right","bottom"].indexOf(e)?1:-1,n=0<=["top","bottom"].indexOf(e)?"y":"x";u[e]+=d[n]*t}))}return u}function k(){for(var e=arguments.length,t=Array(e),n=0;n
(v.devicePixelRatio||1)?"translate("+e+"px, "+l+"px)":"translate3d("+e+"px, "+l+"px, 0)",d)):Object.assign(Object.assign({},r),{},((t={})[h]=a?l+"px":"",t[m]=u?e+"px":"",t.transform="",t))}function A(e){return e.replace(/left|right|bottom|top/g,(function(e){return G[e]}))}function H(e){return e.replace(/start|end/g,(function(e){return J[e]}))}function R(e,t,n){return void 0===n&&(n={x:0,y:0}),{top:e.top-t.height-n.y,right:e.right-t.width+n.x,bottom:e.bottom-t.height+n.y,left:e.left-t.width-n.x}}function S(e){return["top","right","bottom","left"].some((function(t){return 0<=e[t]}))}var T=["top","bottom","right","left"],q=T.reduce((function(e,t){return e.concat([t+"-start",t+"-end"])}),[]),C=[].concat(T,["auto"]).reduce((function(e,t){return e.concat([t,t+"-start",t+"-end"])}),[]),N="beforeRead read afterRead beforeMain main afterMain beforeWrite write afterWrite".split(" "),V={placement:"bottom",modifiers:[],strategy:"absolute"},I={passive:!0},_={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:function(e){var t=e.state,r=e.instance,o=(e=e.options).scroll,i=void 0===o||o,a=void 0===(e=e.resize)||e,s=n(t.elements.popper),f=[].concat(t.scrollParents.reference,t.scrollParents.popper);return i&&f.forEach((function(e){e.addEventListener("scroll",r.update,I)})),a&&s.addEventListener("resize",r.update,I),function(){i&&f.forEach((function(e){e.removeEventListener("scroll",r.update,I)})),a&&s.removeEventListener("resize",r.update,I)}},data:{}},U={name:"popperOffsets",enabled:!0,phase:"read",fn:function(e){var t=e.state;t.modifiersData[e.name]=E({reference:t.rects.reference,element:t.rects.popper,strategy:"absolute",placement:t.placement})},data:{}},z={top:"auto",right:"auto",bottom:"auto",left:"auto"},F={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:function(e){var t=e.state,n=e.options;e=void 0===(e=n.gpuAcceleration)||e;var r=n.adaptive;r=void 0===r||r,n=void 0===(n=n.roundOffsets)||n,e={placement:y(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:e},null!=t.modifiersData.popperOffsets&&(t.styles.popper=Object.assign(Object.assign({},t.styles.popper),W(Object.assign(Object.assign({},e),{},{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:r,roundOffsets:n})))),null!=t.modifiersData.arrow&&(t.styles.arrow=Object.assign(Object.assign({},t.styles.arrow),W(Object.assign(Object.assign({},e),{},{offsets:t.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:n})))),t.attributes.popper=Object.assign(Object.assign({},t.attributes.popper),{},{"data-popper-placement":t.placement})},data:{}},X={name:"applyStyles",enabled:!0,phase:"write",fn:function(e){var t=e.state;Object.keys(t.elements).forEach((function(e){var n=t.styles[e]||{},r=t.attributes[e]||{},o=t.elements[e];i(o)&&a(o)&&(Object.assign(o.style,n),Object.keys(r).forEach((function(e){var t=r[e];!1===t?o.removeAttribute(e):o.setAttribute(e,!0===t?"":t)})))}))},effect:function(e){var t=e.state,n={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(t.elements.popper.style,n.popper),t.elements.arrow&&Object.assign(t.elements.arrow.style,n.arrow),function(){Object.keys(t.elements).forEach((function(e){var r=t.elements[e],o=t.attributes[e]||{};e=Object.keys(t.styles.hasOwnProperty(e)?t.styles[e]:n[e]).reduce((function(e,t){return e[t]="",e}),{}),i(r)&&a(r)&&(Object.assign(r.style,e),Object.keys(o).forEach((function(e){r.removeAttribute(e)})))}))}},requires:["computeStyles"]},Y={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:function(e){var t=e.state,n=e.name,r=void 0===(e=e.options.offset)?[0,0]:e,o=(e=C.reduce((function(e,n){var o=t.rects,i=y(n),a=0<=["left","top"].indexOf(i)?-1:1,s="function"==typeof r?r(Object.assign(Object.assign({},o),{},{placement:n})):r;return o=(o=s[0])||0,s=((s=s[1])||0)*a,i=0<=["left","right"].indexOf(i)?{x:s,y:o}:{x:o,y:s},e[n]=i,e}),{}))[t.placement],i=o.x;o=o.y,null!=t.modifiersData.popperOffsets&&(t.modifiersData.popperOffsets.x+=i,t.modifiersData.popperOffsets.y+=o),t.modifiersData[n]=e}},G={left:"right",right:"left",bottom:"top",top:"bottom"},J={start:"end",end:"start"},K={name:"flip",enabled:!0,phase:"main",fn:function(e){var t=e.state,n=e.options;if(e=e.name,!t.modifiersData[e]._skip){var r=n.mainAxis;r=void 0===r||r;var o=n.altAxis;o=void 0===o||o;var i=n.fallbackPlacements,a=n.padding,s=n.boundary,f=n.rootBoundary,c=n.altBoundary,p=n.flipVariations,l=void 0===p||p,u=n.allowedAutoPlacements;p=y(n=t.options.placement),i=i||(p!==n&&l?function(e){if("auto"===y(e))return[];var t=A(e);return[H(e),t,H(t)]}(n):[A(n)]);var d=[n].concat(i).reduce((function(e,n){return e.concat("auto"===y(n)?function(e,t){void 0===t&&(t={});var n=t.boundary,r=t.rootBoundary,o=t.padding,i=t.flipVariations,a=t.allowedAutoPlacements,s=void 0===a?C:a,f=t.placement.split("-")[1];0===(i=(t=f?i?q:q.filter((function(e){return e.split("-")[1]===f})):T).filter((function(e){return 0<=s.indexOf(e)}))).length&&(i=t);var c=i.reduce((function(t,i){return t[i]=L(e,{placement:i,boundary:n,rootBoundary:r,padding:o})[y(i)],t}),{});return Object.keys(c).sort((function(e,t){return c[e]-c[t]}))}(t,{placement:n,boundary:s,rootBoundary:f,padding:a,flipVariations:l,allowedAutoPlacements:u}):n)}),[]);n=t.rects.reference,i=t.rects.popper;var m=new Map;p=!0;for(var h=d[0],g=0;gi[x]&&(O=A(O)),x=A(O),w=[],r&&w.push(0>=j[b]),o&&w.push(0>=j[O],0>=j[x]),w.every((function(e){return e}))){h=v,p=!1;break}m.set(v,w)}if(p)for(r=function(e){var t=d.find((function(t){if(t=m.get(t))return t.slice(0,e).every((function(e){return e}))}));if(t)return h=t,"break"},o=l?3:1;0-1}function s(t,e){return"function"==typeof t?t.apply(void 0,e):t}function u(t,e){return 0===e?t:function(r){clearTimeout(n),n=setTimeout((function(){t(r)}),e)};var n}function c(t,e){var n=Object.assign({},t);return e.forEach((function(t){delete n[t]})),n}function p(t){return[].concat(t)}function f(t,e){-1===t.indexOf(e)&&t.push(e)}function l(t){return t.split("-")[0]}function d(t){return[].slice.call(t)}function v(){return document.createElement("div")}function m(t){return["Element","Fragment"].some((function(e){return a(t,e)}))}function g(t){return a(t,"MouseEvent")}function h(t){return!(!t||!t._tippy||t._tippy.reference!==t)}function b(t){return m(t)?[t]:function(t){return a(t,"NodeList")}(t)?d(t):Array.isArray(t)?t:d(document.querySelectorAll(t))}function y(t,e){t.forEach((function(t){t&&(t.style.transitionDuration=e+"ms")}))}function x(t,e){t.forEach((function(t){t&&t.setAttribute("data-state",e)}))}function w(t){var e=p(t)[0];return e&&e.ownerDocument||document}function E(t,e,n){var r=e+"EventListener";["transitionend","webkitTransitionEnd"].forEach((function(e){t[r](e,n)}))}var T={isTouch:!1},C=0;function A(){T.isTouch||(T.isTouch=!0,window.performance&&document.addEventListener("mousemove",O))}function O(){var t=performance.now();t-C<20&&(T.isTouch=!1,document.removeEventListener("mousemove",O)),C=t}function L(){var t=document.activeElement;if(h(t)){var e=t._tippy;t.blur&&!e.state.isVisible&&t.blur()}}var D=Object.assign({appendTo:function(){return document.body},aria:{content:"auto",expanded:"auto"},delay:0,duration:[300,250],getReferenceClientRect:null,hideOnClick:!0,ignoreAttributes:!1,interactive:!1,interactiveBorder:2,interactiveDebounce:0,moveTransition:"",offset:[0,10],onAfterUpdate:function(){},onBeforeUpdate:function(){},onCreate:function(){},onDestroy:function(){},onHidden:function(){},onHide:function(){},onMount:function(){},onShow:function(){},onShown:function(){},onTrigger:function(){},onUntrigger:function(){},onClickOutside:function(){},placement:"top",plugins:[],popperOptions:{},render:null,showOnCreate:!1,touch:!0,trigger:"mouseenter focus",triggerTarget:null},{animateFill:!1,followCursor:!1,inlinePositioning:!1,sticky:!1},{},{allowHTML:!1,animation:"fade",arrow:!0,content:"",inertia:!1,maxWidth:350,role:"tooltip",theme:"",zIndex:9999}),k=Object.keys(D);function R(t){var e=(t.plugins||[]).reduce((function(e,n){var r=n.name,i=n.defaultValue;return r&&(e[r]=void 0!==t[r]?t[r]:i),e}),{});return Object.assign({},t,{},e)}function M(t,e){var n=Object.assign({},e,{content:s(e.content,[t])},e.ignoreAttributes?{}:function(t,e){return(e?Object.keys(R(Object.assign({},D,{plugins:e}))):k).reduce((function(e,n){var r=(t.getAttribute("data-tippy-"+n)||"").trim();if(!r)return e;if("content"===n)e[n]=r;else try{e[n]=JSON.parse(r)}catch(t){e[n]=r}return e}),{})}(t,e.plugins));return n.aria=Object.assign({},D.aria,{},n.aria),n.aria={expanded:"auto"===n.aria.expanded?e.interactive:n.aria.expanded,content:"auto"===n.aria.content?e.interactive?null:"describedby":n.aria.content},n}function P(t,e){t.innerHTML=e}function V(t){var e=v();return!0===t?e.className="tippy-arrow":(e.className="tippy-svg-arrow",m(t)?e.appendChild(t):P(e,t)),e}function j(t,e){m(e.content)?(P(t,""),t.appendChild(e.content)):"function"!=typeof e.content&&(e.allowHTML?P(t,e.content):t.textContent=e.content)}function I(t){var e=t.firstElementChild,n=d(e.children);return{box:e,content:n.find((function(t){return t.classList.contains("tippy-content")})),arrow:n.find((function(t){return t.classList.contains("tippy-arrow")||t.classList.contains("tippy-svg-arrow")})),backdrop:n.find((function(t){return t.classList.contains("tippy-backdrop")}))}}function S(t){var e=v(),n=v();n.className="tippy-box",n.setAttribute("data-state","hidden"),n.setAttribute("tabindex","-1");var r=v();function i(n,r){var i=I(e),o=i.box,a=i.content,s=i.arrow;r.theme?o.setAttribute("data-theme",r.theme):o.removeAttribute("data-theme"),"string"==typeof r.animation?o.setAttribute("data-animation",r.animation):o.removeAttribute("data-animation"),r.inertia?o.setAttribute("data-inertia",""):o.removeAttribute("data-inertia"),o.style.maxWidth="number"==typeof r.maxWidth?r.maxWidth+"px":r.maxWidth,r.role?o.setAttribute("role",r.role):o.removeAttribute("role"),n.content===r.content&&n.allowHTML===r.allowHTML||j(a,t.props),r.arrow?s?n.arrow!==r.arrow&&(o.removeChild(s),o.appendChild(V(r.arrow))):o.appendChild(V(r.arrow)):s&&o.removeChild(s)}return r.className="tippy-content",r.setAttribute("data-state","hidden"),j(r,t.props),e.appendChild(n),n.appendChild(r),i(t.props,t.props),{popper:e,onUpdate:i}}S.$$tippy=!0;var B=1,H=[],N=[];function U(e,n){var a,c,m,h,b,C,A,O,L,k=M(e,Object.assign({},D,{},R((a=n,Object.keys(a).reduce((function(t,e){return void 0!==a[e]&&(t[e]=a[e]),t}),{}))))),P=!1,V=!1,j=!1,S=!1,U=[],_=u(bt,k.interactiveDebounce),z=B++,F=(L=k.plugins).filter((function(t,e){return L.indexOf(t)===e})),W={id:z,reference:e,popper:v(),popperInstance:null,props:k,state:{isEnabled:!0,isVisible:!1,isDestroyed:!1,isMounted:!1,isShown:!1},plugins:F,clearDelayTimeouts:function(){clearTimeout(c),clearTimeout(m),cancelAnimationFrame(h)},setProps:function(t){if(W.state.isDestroyed)return;it("onBeforeUpdate",[W,t]),gt();var n=W.props,r=M(e,Object.assign({},W.props,{},t,{ignoreAttributes:!0}));W.props=r,mt(),n.interactiveDebounce!==r.interactiveDebounce&&(st(),_=u(bt,r.interactiveDebounce));n.triggerTarget&&!r.triggerTarget?p(n.triggerTarget).forEach((function(t){t.removeAttribute("aria-expanded")})):r.triggerTarget&&e.removeAttribute("aria-expanded");at(),rt(),q&&q(n,r);W.popperInstance&&(Et(),Ct().forEach((function(t){requestAnimationFrame(t._tippy.popperInstance.forceUpdate)})));it("onAfterUpdate",[W,t])},setContent:function(t){W.setProps({content:t})},show:function(){var t=W.state.isVisible,e=W.state.isDestroyed,n=!W.state.isEnabled,r=T.isTouch&&!W.props.touch,i=o(W.props.duration,0,D.duration);if(t||e||n||r)return;if(Z().hasAttribute("disabled"))return;if(it("onShow",[W],!1),!1===W.props.onShow(W))return;W.state.isVisible=!0,Q()&&(Y.style.visibility="visible");rt(),ft(),W.state.isMounted||(Y.style.transition="none");if(Q()){var a=et(),u=a.box,c=a.content;y([u,c],0)}A=function(){if(W.state.isVisible&&!S){if(S=!0,Y.offsetHeight,Y.style.transition=W.props.moveTransition,Q()&&W.props.animation){var t=et(),e=t.box,n=t.content;y([e,n],i),x([e,n],"visible")}ot(),at(),f(N,W),W.state.isMounted=!0,it("onMount",[W]),W.props.animation&&Q()&&function(t,e){dt(t,e)}(i,(function(){W.state.isShown=!0,it("onShown",[W])}))}},function(){var t,e=W.props.appendTo,n=Z();t=W.props.interactive&&e===D.appendTo||"parent"===e?n.parentNode:s(e,[n]);t.contains(Y)||t.appendChild(Y);Et()}()},hide:function(){var t=!W.state.isVisible,e=W.state.isDestroyed,n=!W.state.isEnabled,r=o(W.props.duration,1,D.duration);if(t||e||n)return;if(it("onHide",[W],!1),!1===W.props.onHide(W))return;W.state.isVisible=!1,W.state.isShown=!1,S=!1,P=!1,Q()&&(Y.style.visibility="hidden");if(st(),lt(),rt(),Q()){var i=et(),a=i.box,s=i.content;W.props.animation&&(y([a,s],r),x([a,s],"hidden"))}ot(),at(),W.props.animation?Q()&&function(t,e){dt(t,(function(){!W.state.isVisible&&Y.parentNode&&Y.parentNode.contains(Y)&&e()}))}(r,W.unmount):W.unmount()},hideWithInteractivity:function(t){tt().addEventListener("mousemove",_),f(H,_),_(t)},enable:function(){W.state.isEnabled=!0},disable:function(){W.hide(),W.state.isEnabled=!1},unmount:function(){W.state.isVisible&&W.hide();if(!W.state.isMounted)return;Tt(),Ct().forEach((function(t){t._tippy.unmount()})),Y.parentNode&&Y.parentNode.removeChild(Y);N=N.filter((function(t){return t!==W})),W.state.isMounted=!1,it("onHidden",[W])},destroy:function(){if(W.state.isDestroyed)return;W.clearDelayTimeouts(),W.unmount(),gt(),delete e._tippy,W.state.isDestroyed=!0,it("onDestroy",[W])}};if(!k.render)return W;var X=k.render(W),Y=X.popper,q=X.onUpdate;Y.setAttribute("data-tippy-root",""),Y.id="tippy-"+W.id,W.popper=Y,e._tippy=W,Y._tippy=W;var $=F.map((function(t){return t.fn(W)})),J=e.hasAttribute("aria-expanded");return mt(),at(),rt(),it("onCreate",[W]),k.showOnCreate&&At(),Y.addEventListener("mouseenter",(function(){W.props.interactive&&W.state.isVisible&&W.clearDelayTimeouts()})),Y.addEventListener("mouseleave",(function(t){W.props.interactive&&W.props.trigger.indexOf("mouseenter")>=0&&(tt().addEventListener("mousemove",_),_(t))})),W;function G(){var t=W.props.touch;return Array.isArray(t)?t:[t,0]}function K(){return"hold"===G()[0]}function Q(){var t;return!!(null==(t=W.props.render)?void 0:t.$$tippy)}function Z(){return O||e}function tt(){var t=Z().parentNode;return t?w(t):document}function et(){return I(Y)}function nt(t){return W.state.isMounted&&!W.state.isVisible||T.isTouch||b&&"focus"===b.type?0:o(W.props.delay,t?0:1,D.delay)}function rt(){Y.style.pointerEvents=W.props.interactive&&W.state.isVisible?"":"none",Y.style.zIndex=""+W.props.zIndex}function it(t,e,n){var r;(void 0===n&&(n=!0),$.forEach((function(n){n[t]&&n[t].apply(void 0,e)})),n)&&(r=W.props)[t].apply(r,e)}function ot(){var t=W.props.aria;if(t.content){var n="aria-"+t.content,r=Y.id;p(W.props.triggerTarget||e).forEach((function(t){var e=t.getAttribute(n);if(W.state.isVisible)t.setAttribute(n,e?e+" "+r:r);else{var i=e&&e.replace(r,"").trim();i?t.setAttribute(n,i):t.removeAttribute(n)}}))}}function at(){!J&&W.props.aria.expanded&&p(W.props.triggerTarget||e).forEach((function(t){W.props.interactive?t.setAttribute("aria-expanded",W.state.isVisible&&t===Z()?"true":"false"):t.removeAttribute("aria-expanded")}))}function st(){tt().removeEventListener("mousemove",_),H=H.filter((function(t){return t!==_}))}function ut(t){if(!(T.isTouch&&(j||"mousedown"===t.type)||W.props.interactive&&Y.contains(t.target))){if(Z().contains(t.target)){if(T.isTouch)return;if(W.state.isVisible&&W.props.trigger.indexOf("click")>=0)return}else it("onClickOutside",[W,t]);!0===W.props.hideOnClick&&(W.clearDelayTimeouts(),W.hide(),V=!0,setTimeout((function(){V=!1})),W.state.isMounted||lt())}}function ct(){j=!0}function pt(){j=!1}function ft(){var t=tt();t.addEventListener("mousedown",ut,!0),t.addEventListener("touchend",ut,i),t.addEventListener("touchstart",pt,i),t.addEventListener("touchmove",ct,i)}function lt(){var t=tt();t.removeEventListener("mousedown",ut,!0),t.removeEventListener("touchend",ut,i),t.removeEventListener("touchstart",pt,i),t.removeEventListener("touchmove",ct,i)}function dt(t,e){var n=et().box;function r(t){t.target===n&&(E(n,"remove",r),e())}if(0===t)return e();E(n,"remove",C),E(n,"add",r),C=r}function vt(t,n,r){void 0===r&&(r=!1),p(W.props.triggerTarget||e).forEach((function(e){e.addEventListener(t,n,r),U.push({node:e,eventType:t,handler:n,options:r})}))}function mt(){var t;K()&&(vt("touchstart",ht,{passive:!0}),vt("touchend",yt,{passive:!0})),(t=W.props.trigger,t.split(/\s+/).filter(Boolean)).forEach((function(t){if("manual"!==t)switch(vt(t,ht),t){case"mouseenter":vt("mouseleave",yt);break;case"focus":vt(r?"focusout":"blur",xt);break;case"focusin":vt("focusout",xt)}}))}function gt(){U.forEach((function(t){var e=t.node,n=t.eventType,r=t.handler,i=t.options;e.removeEventListener(n,r,i)})),U=[]}function ht(t){var e,n=!1;if(W.state.isEnabled&&!wt(t)&&!V){var r="focus"===(null==(e=b)?void 0:e.type);b=t,O=t.currentTarget,at(),!W.state.isVisible&&g(t)&&H.forEach((function(e){return e(t)})),"click"===t.type&&(W.props.trigger.indexOf("mouseenter")<0||P)&&!1!==W.props.hideOnClick&&W.state.isVisible?n=!0:At(t),"click"===t.type&&(P=!n),n&&!r&&Ot(t)}}function bt(t){var e=t.target,n=Z().contains(e)||Y.contains(e);"mousemove"===t.type&&n||function(t,e){var n=e.clientX,r=e.clientY;return t.every((function(t){var e=t.popperRect,i=t.popperState,o=t.props.interactiveBorder,a=l(i.placement),s=i.modifiersData.offset;if(!s)return!0;var u="bottom"===a?s.top.y:0,c="top"===a?s.bottom.y:0,p="right"===a?s.left.x:0,f="left"===a?s.right.x:0,d=e.top-r+u>o,v=r-e.bottom-c>o,m=e.left-n+p>o,g=n-e.right-f>o;return d||v||m||g}))}(Ct().concat(Y).map((function(t){var e,n=null==(e=t._tippy.popperInstance)?void 0:e.state;return n?{popperRect:t.getBoundingClientRect(),popperState:n,props:k}:null})).filter(Boolean),t)&&(st(),Ot(t))}function yt(t){wt(t)||W.props.trigger.indexOf("click")>=0&&P||(W.props.interactive?W.hideWithInteractivity(t):Ot(t))}function xt(t){W.props.trigger.indexOf("focusin")<0&&t.target!==Z()||W.props.interactive&&t.relatedTarget&&Y.contains(t.relatedTarget)||Ot(t)}function wt(t){return!!T.isTouch&&K()!==t.type.indexOf("touch")>=0}function Et(){Tt();var n=W.props,r=n.popperOptions,i=n.placement,o=n.offset,a=n.getReferenceClientRect,s=n.moveTransition,u=Q()?I(Y).arrow:null,c=a?{getBoundingClientRect:a,contextElement:a.contextElement||Z()}:e,p=[{name:"offset",options:{offset:o}},{name:"preventOverflow",options:{padding:{top:2,bottom:2,left:5,right:5}}},{name:"flip",options:{padding:5}},{name:"computeStyles",options:{adaptive:!s}},{name:"$$tippy",enabled:!0,phase:"beforeWrite",requires:["computeStyles"],fn:function(t){var e=t.state;if(Q()){var n=et().box;["placement","reference-hidden","escaped"].forEach((function(t){"placement"===t?n.setAttribute("data-placement",e.placement):e.attributes.popper["data-popper-"+t]?n.setAttribute("data-"+t,""):n.removeAttribute("data-"+t)})),e.attributes.popper={}}}}];Q()&&u&&p.push({name:"arrow",options:{element:u,padding:3}}),p.push.apply(p,(null==r?void 0:r.modifiers)||[]),W.popperInstance=t.createPopper(c,Y,Object.assign({},r,{placement:i,onFirstUpdate:A,modifiers:p}))}function Tt(){W.popperInstance&&(W.popperInstance.destroy(),W.popperInstance=null)}function Ct(){return d(Y.querySelectorAll("[data-tippy-root]"))}function At(t){W.clearDelayTimeouts(),t&&it("onTrigger",[W,t]),ft();var e=nt(!0),n=G(),r=n[0],i=n[1];T.isTouch&&"hold"===r&&i&&(e=i),e?c=setTimeout((function(){W.show()}),e):W.show()}function Ot(t){if(W.clearDelayTimeouts(),it("onUntrigger",[W,t]),W.state.isVisible){if(!(W.props.trigger.indexOf("mouseenter")>=0&&W.props.trigger.indexOf("click")>=0&&["mouseleave","mousemove"].indexOf(t.type)>=0&&P)){var e=nt(!1);e?m=setTimeout((function(){W.state.isVisible&&W.hide()}),e):h=requestAnimationFrame((function(){W.hide()}))}}else lt()}}function _(t,e){void 0===e&&(e={});var n=D.plugins.concat(e.plugins||[]);document.addEventListener("touchstart",A,i),window.addEventListener("blur",L);var r=Object.assign({},e,{plugins:n}),o=b(t).reduce((function(t,e){var n=e&&U(e,r);return n&&t.push(n),t}),[]);return m(t)?o[0]:o}_.defaultProps=D,_.setDefaultProps=function(t){Object.keys(t).forEach((function(e){D[e]=t[e]}))},_.currentInput=T;var z={mouseover:"mouseenter",focusin:"focus",click:"click"};var F={name:"animateFill",defaultValue:!1,fn:function(t){var e;if(!(null==(e=t.props.render)?void 0:e.$$tippy))return{};var n=I(t.popper),r=n.box,i=n.content,o=t.props.animateFill?function(){var t=v();return t.className="tippy-backdrop",x([t],"hidden"),t}():null;return{onCreate:function(){o&&(r.insertBefore(o,r.firstElementChild),r.setAttribute("data-animatefill",""),r.style.overflow="hidden",t.setProps({arrow:!1,animation:"shift-away"}))},onMount:function(){if(o){var t=r.style.transitionDuration,e=Number(t.replace("ms",""));i.style.transitionDelay=Math.round(e/10)+"ms",o.style.transitionDuration=t,x([o],"visible")}},onShow:function(){o&&(o.style.transitionDuration="0ms")},onHide:function(){o&&x([o],"hidden")}}}};var W={clientX:0,clientY:0},X=[];function Y(t){var e=t.clientX,n=t.clientY;W={clientX:e,clientY:n}}var q={name:"followCursor",defaultValue:!1,fn:function(t){var e=t.reference,n=w(t.props.triggerTarget||e),r=!1,i=!1,o=!0,a=t.props;function s(){return"initial"===t.props.followCursor&&t.state.isVisible}function u(){n.addEventListener("mousemove",f)}function c(){n.removeEventListener("mousemove",f)}function p(){r=!0,t.setProps({getReferenceClientRect:null}),r=!1}function f(n){var r=!n.target||e.contains(n.target),i=t.props.followCursor,o=n.clientX,a=n.clientY,s=e.getBoundingClientRect(),u=o-s.left,c=a-s.top;!r&&t.props.interactive||t.setProps({getReferenceClientRect:function(){var t=e.getBoundingClientRect(),n=o,r=a;"initial"===i&&(n=t.left+u,r=t.top+c);var s="horizontal"===i?t.top:r,p="vertical"===i?t.right:n,f="horizontal"===i?t.bottom:r,l="vertical"===i?t.left:n;return{width:p-l,height:f-s,top:s,right:p,bottom:f,left:l}}})}function l(){t.props.followCursor&&(X.push({instance:t,doc:n}),function(t){t.addEventListener("mousemove",Y)}(n))}function d(){0===(X=X.filter((function(e){return e.instance!==t}))).filter((function(t){return t.doc===n})).length&&function(t){t.removeEventListener("mousemove",Y)}(n)}return{onCreate:l,onDestroy:d,onBeforeUpdate:function(){a=t.props},onAfterUpdate:function(e,n){var o=n.followCursor;r||void 0!==o&&a.followCursor!==o&&(d(),o?(l(),!t.state.isMounted||i||s()||u()):(c(),p()))},onMount:function(){t.props.followCursor&&!i&&(o&&(f(W),o=!1),s()||u())},onTrigger:function(t,e){g(e)&&(W={clientX:e.clientX,clientY:e.clientY}),i="focus"===e.type},onHidden:function(){t.props.followCursor&&(p(),c(),o=!0)}}}};var $={name:"inlinePositioning",defaultValue:!1,fn:function(t){var e,n=t.reference;var r=-1,i=!1,o={name:"tippyInlinePositioning",enabled:!0,phase:"afterWrite",fn:function(i){var o=i.state;t.props.inlinePositioning&&(e!==o.placement&&t.setProps({getReferenceClientRect:function(){return function(t){return function(t,e,n,r){if(n.length<2||null===t)return e;if(2===n.length&&r>=0&&n[0].left>n[1].right)return n[r]||e;switch(t){case"top":case"bottom":var i=n[0],o=n[n.length-1],a="top"===t,s=i.top,u=o.bottom,c=a?i.left:o.left,p=a?i.right:o.right;return{top:s,bottom:u,left:c,right:p,width:p-c,height:u-s};case"left":case"right":var f=Math.min.apply(Math,n.map((function(t){return t.left}))),l=Math.max.apply(Math,n.map((function(t){return t.right}))),d=n.filter((function(e){return"left"===t?e.left===f:e.right===l})),v=d[0].top,m=d[d.length-1].bottom;return{top:v,bottom:m,left:f,right:l,width:l-f,height:m-v};default:return e}}(l(t),n.getBoundingClientRect(),d(n.getClientRects()),r)}(o.placement)}}),e=o.placement)}};function a(){var e;i||(e=function(t,e){var n;return{popperOptions:Object.assign({},t.popperOptions,{modifiers:[].concat(((null==(n=t.popperOptions)?void 0:n.modifiers)||[]).filter((function(t){return t.name!==e.name})),[e])})}}(t.props,o),i=!0,t.setProps(e),i=!1)}return{onCreate:a,onAfterUpdate:a,onTrigger:function(e,n){if(g(n)){var i=d(t.reference.getClientRects()),o=i.find((function(t){return t.left-2<=n.clientX&&t.right+2>=n.clientX&&t.top-2<=n.clientY&&t.bottom+2>=n.clientY}));r=i.indexOf(o)}},onUntrigger:function(){r=-1}}}};var J={name:"sticky",defaultValue:!1,fn:function(t){var e=t.reference,n=t.popper;function r(e){return!0===t.props.sticky||t.props.sticky===e}var i=null,o=null;function a(){var s=r("reference")?(t.popperInstance?t.popperInstance.state.elements.reference:e).getBoundingClientRect():null,u=r("popper")?n.getBoundingClientRect():null;(s&&G(i,s)||u&&G(o,u))&&t.popperInstance&&t.popperInstance.update(),i=s,o=u,t.state.isMounted&&requestAnimationFrame(a)}return{onMount:function(){t.props.sticky&&a()}}}};function G(t,e){return!t||!e||(t.top!==e.top||t.right!==e.right||t.bottom!==e.bottom||t.left!==e.left)}return e&&function(t){var e=document.createElement("style");e.textContent=t,e.setAttribute("data-tippy-stylesheet","");var n=document.head,r=document.querySelector("head>style,head>link");r?n.insertBefore(e,r):n.appendChild(e)}('.tippy-box[data-animation=fade][data-state=hidden]{opacity:0}[data-tippy-root]{max-width:calc(100vw - 10px)}.tippy-box{position:relative;background-color:#333;color:#fff;border-radius:4px;font-size:14px;line-height:1.4;outline:0;transition-property:transform,visibility,opacity}.tippy-box[data-placement^=top]>.tippy-arrow{bottom:0}.tippy-box[data-placement^=top]>.tippy-arrow:before{bottom:-7px;left:0;border-width:8px 8px 0;border-top-color:initial;transform-origin:center top}.tippy-box[data-placement^=bottom]>.tippy-arrow{top:0}.tippy-box[data-placement^=bottom]>.tippy-arrow:before{top:-7px;left:0;border-width:0 8px 8px;border-bottom-color:initial;transform-origin:center bottom}.tippy-box[data-placement^=left]>.tippy-arrow{right:0}.tippy-box[data-placement^=left]>.tippy-arrow:before{border-width:8px 0 8px 8px;border-left-color:initial;right:-7px;transform-origin:center left}.tippy-box[data-placement^=right]>.tippy-arrow{left:0}.tippy-box[data-placement^=right]>.tippy-arrow:before{left:-7px;border-width:8px 8px 8px 0;border-right-color:initial;transform-origin:center right}.tippy-box[data-inertia][data-state=visible]{transition-timing-function:cubic-bezier(.54,1.5,.38,1.11)}.tippy-arrow{width:16px;height:16px;color:#333}.tippy-arrow:before{content:"";position:absolute;border-color:transparent;border-style:solid}.tippy-content{position:relative;padding:5px 9px;z-index:1}'),_.setDefaultProps({plugins:[F,q,$,J],render:S}),_.createSingleton=function(t,e){void 0===e&&(e={});var n,r=t,i=[],o=e.overrides,a=[];function s(){i=r.map((function(t){return t.reference}))}function u(t){r.forEach((function(e){t?e.enable():e.disable()}))}function p(t){return r.map((function(e){var r=e.setProps;return e.setProps=function(i){r(i),e.reference===n&&t.setProps(i)},function(){e.setProps=r}}))}u(!1),s();var f={fn:function(){return{onDestroy:function(){u(!0)},onTrigger:function(t,e){var a=e.currentTarget,s=i.indexOf(a);if(a!==n){n=a;var u=(o||[]).concat("content").reduce((function(t,e){return t[e]=r[s].props[e],t}),{});t.setProps(Object.assign({},u,{getReferenceClientRect:"function"==typeof u.getReferenceClientRect?u.getReferenceClientRect:function(){return a.getBoundingClientRect()}}))}}}}},l=_(v(),Object.assign({},c(e,["overrides"]),{plugins:[f].concat(e.plugins||[]),triggerTarget:i})),d=l.setProps;return l.setProps=function(t){o=t.overrides||o,d(t)},l.setInstances=function(t){u(!0),a.forEach((function(t){return t()})),r=t,u(!1),s(),p(l),l.setProps({triggerTarget:i})},a=p(l),l},_.delegate=function(t,e){var n=[],r=[],i=!1,o=e.target,a=c(e,["target"]),s=Object.assign({},a,{trigger:"manual",touch:!1}),u=Object.assign({},a,{showOnCreate:!0}),f=_(t,s);function l(t){if(t.target&&!i){var n=t.target.closest(o);if(n){var a=n.getAttribute("data-tippy-trigger")||e.trigger||D.trigger;if(!n._tippy&&!("touchstart"===t.type&&"boolean"==typeof u.touch||"touchstart"!==t.type&&a.indexOf(z[t.type])<0)){var s=_(n,u);s&&(r=r.concat(s))}}}}function d(t,e,r,i){void 0===i&&(i=!1),t.addEventListener(e,r,i),n.push({node:t,eventType:e,handler:r,options:i})}return p(f).forEach((function(t){var e=t.destroy,o=t.enable,a=t.disable;t.destroy=function(t){void 0===t&&(t=!0),t&&r.forEach((function(t){t.destroy()})),r=[],n.forEach((function(t){var e=t.node,n=t.eventType,r=t.handler,i=t.options;e.removeEventListener(n,r,i)})),n=[],e()},t.enable=function(){o(),r.forEach((function(t){return t.enable()})),i=!1},t.disable=function(){a(),r.forEach((function(t){return t.disable()})),i=!0},function(t){var e=t.reference;d(e,"touchstart",l),d(e,"mouseover",l),d(e,"focusin",l),d(e,"click",l)}(t)})),f},_.hideAll=function(t){var e=void 0===t?{}:t,n=e.exclude,r=e.duration;N.forEach((function(t){var e=!1;if(n&&(e=h(n)?t.reference===n:t.popper===n.popper),!e){var i=t.props.duration;t.setProps({duration:r}),t.hide(),t.state.isDestroyed||t.setProps({duration:i})}}))},_.roundArrow=' ',_}));
+//# sourceMappingURL=tippy-bundle.umd.min.js.map
diff --git a/_posts/2021-09-20-reading-in-adv-us-railroad-data/reading-in-adv-us-railroad-data_files/tippy-6.2.7/tippy-light-border.css b/_posts/2021-09-20-reading-in-adv-us-railroad-data/reading-in-adv-us-railroad-data_files/tippy-6.2.7/tippy-light-border.css
new file mode 100644
index 00000000..2b25c61a
--- /dev/null
+++ b/_posts/2021-09-20-reading-in-adv-us-railroad-data/reading-in-adv-us-railroad-data_files/tippy-6.2.7/tippy-light-border.css
@@ -0,0 +1 @@
+.tippy-box[data-theme~=light-border]{background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,8,16,.15);color:#333;box-shadow:0 4px 14px -2px rgba(0,8,16,.08)}.tippy-box[data-theme~=light-border]>.tippy-backdrop{background-color:#fff}.tippy-box[data-theme~=light-border]>.tippy-arrow:after,.tippy-box[data-theme~=light-border]>.tippy-svg-arrow:after{content:"";position:absolute;z-index:-1}.tippy-box[data-theme~=light-border]>.tippy-arrow:after{border-color:transparent;border-style:solid}.tippy-box[data-theme~=light-border][data-placement^=top]>.tippy-arrow:before{border-top-color:#fff}.tippy-box[data-theme~=light-border][data-placement^=top]>.tippy-arrow:after{border-top-color:rgba(0,8,16,.2);border-width:7px 7px 0;top:17px;left:1px}.tippy-box[data-theme~=light-border][data-placement^=top]>.tippy-svg-arrow>svg{top:16px}.tippy-box[data-theme~=light-border][data-placement^=top]>.tippy-svg-arrow:after{top:17px}.tippy-box[data-theme~=light-border][data-placement^=bottom]>.tippy-arrow:before{border-bottom-color:#fff;bottom:16px}.tippy-box[data-theme~=light-border][data-placement^=bottom]>.tippy-arrow:after{border-bottom-color:rgba(0,8,16,.2);border-width:0 7px 7px;bottom:17px;left:1px}.tippy-box[data-theme~=light-border][data-placement^=bottom]>.tippy-svg-arrow>svg{bottom:16px}.tippy-box[data-theme~=light-border][data-placement^=bottom]>.tippy-svg-arrow:after{bottom:17px}.tippy-box[data-theme~=light-border][data-placement^=left]>.tippy-arrow:before{border-left-color:#fff}.tippy-box[data-theme~=light-border][data-placement^=left]>.tippy-arrow:after{border-left-color:rgba(0,8,16,.2);border-width:7px 0 7px 7px;left:17px;top:1px}.tippy-box[data-theme~=light-border][data-placement^=left]>.tippy-svg-arrow>svg{left:11px}.tippy-box[data-theme~=light-border][data-placement^=left]>.tippy-svg-arrow:after{left:12px}.tippy-box[data-theme~=light-border][data-placement^=right]>.tippy-arrow:before{border-right-color:#fff;right:16px}.tippy-box[data-theme~=light-border][data-placement^=right]>.tippy-arrow:after{border-width:7px 7px 7px 0;right:17px;top:1px;border-right-color:rgba(0,8,16,.2)}.tippy-box[data-theme~=light-border][data-placement^=right]>.tippy-svg-arrow>svg{right:11px}.tippy-box[data-theme~=light-border][data-placement^=right]>.tippy-svg-arrow:after{right:12px}.tippy-box[data-theme~=light-border]>.tippy-svg-arrow{fill:#fff}.tippy-box[data-theme~=light-border]>.tippy-svg-arrow:after{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMCA2czEuNzk2LS4wMTMgNC42Ny0zLjYxNUM1Ljg1MS45IDYuOTMuMDA2IDggMGMxLjA3LS4wMDYgMi4xNDguODg3IDMuMzQzIDIuMzg1QzE0LjIzMyA2LjAwNSAxNiA2IDE2IDZIMHoiIGZpbGw9InJnYmEoMCwgOCwgMTYsIDAuMikiLz48L3N2Zz4=);background-size:16px 6px;width:16px;height:6px}
\ No newline at end of file
diff --git a/_posts/2021-09-20-reading-in-adv-us-railroad-data/reading-in-adv-us-railroad-data_files/tippy-6.2.7/tippy.css b/_posts/2021-09-20-reading-in-adv-us-railroad-data/reading-in-adv-us-railroad-data_files/tippy-6.2.7/tippy.css
new file mode 100644
index 00000000..d1cd2e13
--- /dev/null
+++ b/_posts/2021-09-20-reading-in-adv-us-railroad-data/reading-in-adv-us-railroad-data_files/tippy-6.2.7/tippy.css
@@ -0,0 +1 @@
+.tippy-box[data-animation=fade][data-state=hidden]{opacity:0}[data-tippy-root]{max-width:calc(100vw - 10px)}.tippy-box{position:relative;background-color:#333;color:#fff;border-radius:4px;font-size:14px;line-height:1.4;outline:0;transition-property:transform,visibility,opacity}.tippy-box[data-placement^=top]>.tippy-arrow{bottom:0}.tippy-box[data-placement^=top]>.tippy-arrow:before{bottom:-7px;left:0;border-width:8px 8px 0;border-top-color:initial;transform-origin:center top}.tippy-box[data-placement^=bottom]>.tippy-arrow{top:0}.tippy-box[data-placement^=bottom]>.tippy-arrow:before{top:-7px;left:0;border-width:0 8px 8px;border-bottom-color:initial;transform-origin:center bottom}.tippy-box[data-placement^=left]>.tippy-arrow{right:0}.tippy-box[data-placement^=left]>.tippy-arrow:before{border-width:8px 0 8px 8px;border-left-color:initial;right:-7px;transform-origin:center left}.tippy-box[data-placement^=right]>.tippy-arrow{left:0}.tippy-box[data-placement^=right]>.tippy-arrow:before{left:-7px;border-width:8px 8px 8px 0;border-right-color:initial;transform-origin:center right}.tippy-box[data-inertia][data-state=visible]{transition-timing-function:cubic-bezier(.54,1.5,.38,1.11)}.tippy-arrow{width:16px;height:16px;color:#333}.tippy-arrow:before{content:"";position:absolute;border-color:transparent;border-style:solid}.tippy-content{position:relative;padding:5px 9px;z-index:1}
\ No newline at end of file
diff --git a/_posts/2021-09-20-reading-in-adv-us-railroad-data/reading-in-adv-us-railroad-data_files/tippy-6.2.7/tippy.umd.min.js b/_posts/2021-09-20-reading-in-adv-us-railroad-data/reading-in-adv-us-railroad-data_files/tippy-6.2.7/tippy.umd.min.js
new file mode 100644
index 00000000..5c3dc00b
--- /dev/null
+++ b/_posts/2021-09-20-reading-in-adv-us-railroad-data/reading-in-adv-us-railroad-data_files/tippy-6.2.7/tippy.umd.min.js
@@ -0,0 +1,2 @@
+!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e(require("@popperjs/core")):"function"==typeof define&&define.amd?define(["@popperjs/core"],e):(t=t||self).tippy=e(t.Popper)}(this,(function(t){"use strict";var e={passive:!0,capture:!0};function n(t,e,n){if(Array.isArray(t)){var r=t[e];return null==r?Array.isArray(n)?n[e]:n:r}return t}function r(t,e){var n={}.toString.call(t);return 0===n.indexOf("[object")&&n.indexOf(e+"]")>-1}function i(t,e){return"function"==typeof t?t.apply(void 0,e):t}function o(t,e){return 0===e?t:function(r){clearTimeout(n),n=setTimeout((function(){t(r)}),e)};var n}function a(t,e){var n=Object.assign({},t);return e.forEach((function(t){delete n[t]})),n}function s(t){return[].concat(t)}function u(t,e){-1===t.indexOf(e)&&t.push(e)}function c(t){return t.split("-")[0]}function p(t){return[].slice.call(t)}function f(){return document.createElement("div")}function l(t){return["Element","Fragment"].some((function(e){return r(t,e)}))}function d(t){return r(t,"MouseEvent")}function v(t){return!(!t||!t._tippy||t._tippy.reference!==t)}function m(t){return l(t)?[t]:function(t){return r(t,"NodeList")}(t)?p(t):Array.isArray(t)?t:p(document.querySelectorAll(t))}function g(t,e){t.forEach((function(t){t&&(t.style.transitionDuration=e+"ms")}))}function h(t,e){t.forEach((function(t){t&&t.setAttribute("data-state",e)}))}function b(t){var e=s(t)[0];return e&&e.ownerDocument||document}function y(t,e,n){var r=e+"EventListener";["transitionend","webkitTransitionEnd"].forEach((function(e){t[r](e,n)}))}var w={isTouch:!1},E=0;function T(){w.isTouch||(w.isTouch=!0,window.performance&&document.addEventListener("mousemove",C))}function C(){var t=performance.now();t-E<20&&(w.isTouch=!1,document.removeEventListener("mousemove",C)),E=t}function x(){var t=document.activeElement;if(v(t)){var e=t._tippy;t.blur&&!e.state.isVisible&&t.blur()}}var A="undefined"!=typeof window&&"undefined"!=typeof document?navigator.userAgent:"",O=/MSIE |Trident\//.test(A),L=Object.assign({appendTo:function(){return document.body},aria:{content:"auto",expanded:"auto"},delay:0,duration:[300,250],getReferenceClientRect:null,hideOnClick:!0,ignoreAttributes:!1,interactive:!1,interactiveBorder:2,interactiveDebounce:0,moveTransition:"",offset:[0,10],onAfterUpdate:function(){},onBeforeUpdate:function(){},onCreate:function(){},onDestroy:function(){},onHidden:function(){},onHide:function(){},onMount:function(){},onShow:function(){},onShown:function(){},onTrigger:function(){},onUntrigger:function(){},onClickOutside:function(){},placement:"top",plugins:[],popperOptions:{},render:null,showOnCreate:!1,touch:!0,trigger:"mouseenter focus",triggerTarget:null},{animateFill:!1,followCursor:!1,inlinePositioning:!1,sticky:!1},{},{allowHTML:!1,animation:"fade",arrow:!0,content:"",inertia:!1,maxWidth:350,role:"tooltip",theme:"",zIndex:9999}),D=Object.keys(L);function k(t){var e=(t.plugins||[]).reduce((function(e,n){var r=n.name,i=n.defaultValue;return r&&(e[r]=void 0!==t[r]?t[r]:i),e}),{});return Object.assign({},t,{},e)}function R(t,e){var n=Object.assign({},e,{content:i(e.content,[t])},e.ignoreAttributes?{}:function(t,e){return(e?Object.keys(k(Object.assign({},L,{plugins:e}))):D).reduce((function(e,n){var r=(t.getAttribute("data-tippy-"+n)||"").trim();if(!r)return e;if("content"===n)e[n]=r;else try{e[n]=JSON.parse(r)}catch(t){e[n]=r}return e}),{})}(t,e.plugins));return n.aria=Object.assign({},L.aria,{},n.aria),n.aria={expanded:"auto"===n.aria.expanded?e.interactive:n.aria.expanded,content:"auto"===n.aria.content?e.interactive?null:"describedby":n.aria.content},n}function M(t,e){t.innerHTML=e}function P(t){var e=f();return!0===t?e.className="tippy-arrow":(e.className="tippy-svg-arrow",l(t)?e.appendChild(t):M(e,t)),e}function V(t,e){l(e.content)?(M(t,""),t.appendChild(e.content)):"function"!=typeof e.content&&(e.allowHTML?M(t,e.content):t.textContent=e.content)}function j(t){var e=t.firstElementChild,n=p(e.children);return{box:e,content:n.find((function(t){return t.classList.contains("tippy-content")})),arrow:n.find((function(t){return t.classList.contains("tippy-arrow")||t.classList.contains("tippy-svg-arrow")})),backdrop:n.find((function(t){return t.classList.contains("tippy-backdrop")}))}}function I(t){var e=f(),n=f();n.className="tippy-box",n.setAttribute("data-state","hidden"),n.setAttribute("tabindex","-1");var r=f();function i(n,r){var i=j(e),o=i.box,a=i.content,s=i.arrow;r.theme?o.setAttribute("data-theme",r.theme):o.removeAttribute("data-theme"),"string"==typeof r.animation?o.setAttribute("data-animation",r.animation):o.removeAttribute("data-animation"),r.inertia?o.setAttribute("data-inertia",""):o.removeAttribute("data-inertia"),o.style.maxWidth="number"==typeof r.maxWidth?r.maxWidth+"px":r.maxWidth,r.role?o.setAttribute("role",r.role):o.removeAttribute("role"),n.content===r.content&&n.allowHTML===r.allowHTML||V(a,t.props),r.arrow?s?n.arrow!==r.arrow&&(o.removeChild(s),o.appendChild(P(r.arrow))):o.appendChild(P(r.arrow)):s&&o.removeChild(s)}return r.className="tippy-content",r.setAttribute("data-state","hidden"),V(r,t.props),e.appendChild(n),n.appendChild(r),i(t.props,t.props),{popper:e,onUpdate:i}}I.$$tippy=!0;var S=1,B=[],H=[];function N(r,a){var l,v,m,E,T,C,x,A,D,M=R(r,Object.assign({},L,{},k((l=a,Object.keys(l).reduce((function(t,e){return void 0!==l[e]&&(t[e]=l[e]),t}),{}))))),P=!1,V=!1,I=!1,N=!1,U=[],_=o(bt,M.interactiveDebounce),F=S++,W=(D=M.plugins).filter((function(t,e){return D.indexOf(t)===e})),X={id:F,reference:r,popper:f(),popperInstance:null,props:M,state:{isEnabled:!0,isVisible:!1,isDestroyed:!1,isMounted:!1,isShown:!1},plugins:W,clearDelayTimeouts:function(){clearTimeout(v),clearTimeout(m),cancelAnimationFrame(E)},setProps:function(t){if(X.state.isDestroyed)return;it("onBeforeUpdate",[X,t]),gt();var e=X.props,n=R(r,Object.assign({},X.props,{},t,{ignoreAttributes:!0}));X.props=n,mt(),e.interactiveDebounce!==n.interactiveDebounce&&(st(),_=o(bt,n.interactiveDebounce));e.triggerTarget&&!n.triggerTarget?s(e.triggerTarget).forEach((function(t){t.removeAttribute("aria-expanded")})):n.triggerTarget&&r.removeAttribute("aria-expanded");at(),rt(),q&&q(e,n);X.popperInstance&&(Tt(),xt().forEach((function(t){requestAnimationFrame(t._tippy.popperInstance.forceUpdate)})));it("onAfterUpdate",[X,t])},setContent:function(t){X.setProps({content:t})},show:function(){var t=X.state.isVisible,e=X.state.isDestroyed,r=!X.state.isEnabled,o=w.isTouch&&!X.props.touch,a=n(X.props.duration,0,L.duration);if(t||e||r||o)return;if(Z().hasAttribute("disabled"))return;if(it("onShow",[X],!1),!1===X.props.onShow(X))return;X.state.isVisible=!0,Q()&&($.style.visibility="visible");rt(),ft(),X.state.isMounted||($.style.transition="none");if(Q()){var s=et(),c=s.box,p=s.content;g([c,p],0)}x=function(){if(X.state.isVisible&&!N){if(N=!0,$.offsetHeight,$.style.transition=X.props.moveTransition,Q()&&X.props.animation){var t=et(),e=t.box,n=t.content;g([e,n],a),h([e,n],"visible")}ot(),at(),u(H,X),X.state.isMounted=!0,it("onMount",[X]),X.props.animation&&Q()&&function(t,e){dt(t,e)}(a,(function(){X.state.isShown=!0,it("onShown",[X])}))}},function(){var t,e=X.props.appendTo,n=Z();t=X.props.interactive&&e===L.appendTo||"parent"===e?n.parentNode:i(e,[n]);t.contains($)||t.appendChild($);Tt()}()},hide:function(){var t=!X.state.isVisible,e=X.state.isDestroyed,r=!X.state.isEnabled,i=n(X.props.duration,1,L.duration);if(t||e||r)return;if(it("onHide",[X],!1),!1===X.props.onHide(X))return;X.state.isVisible=!1,X.state.isShown=!1,N=!1,P=!1,Q()&&($.style.visibility="hidden");if(st(),lt(),rt(),Q()){var o=et(),a=o.box,s=o.content;X.props.animation&&(g([a,s],i),h([a,s],"hidden"))}ot(),at(),X.props.animation?Q()&&function(t,e){dt(t,(function(){!X.state.isVisible&&$.parentNode&&$.parentNode.contains($)&&e()}))}(i,X.unmount):X.unmount()},hideWithInteractivity:function(t){tt().addEventListener("mousemove",_),u(B,_),_(t)},enable:function(){X.state.isEnabled=!0},disable:function(){X.hide(),X.state.isEnabled=!1},unmount:function(){X.state.isVisible&&X.hide();if(!X.state.isMounted)return;Ct(),xt().forEach((function(t){t._tippy.unmount()})),$.parentNode&&$.parentNode.removeChild($);H=H.filter((function(t){return t!==X})),X.state.isMounted=!1,it("onHidden",[X])},destroy:function(){if(X.state.isDestroyed)return;X.clearDelayTimeouts(),X.unmount(),gt(),delete r._tippy,X.state.isDestroyed=!0,it("onDestroy",[X])}};if(!M.render)return X;var Y=M.render(X),$=Y.popper,q=Y.onUpdate;$.setAttribute("data-tippy-root",""),$.id="tippy-"+X.id,X.popper=$,r._tippy=X,$._tippy=X;var z=W.map((function(t){return t.fn(X)})),J=r.hasAttribute("aria-expanded");return mt(),at(),rt(),it("onCreate",[X]),M.showOnCreate&&At(),$.addEventListener("mouseenter",(function(){X.props.interactive&&X.state.isVisible&&X.clearDelayTimeouts()})),$.addEventListener("mouseleave",(function(t){X.props.interactive&&X.props.trigger.indexOf("mouseenter")>=0&&(tt().addEventListener("mousemove",_),_(t))})),X;function G(){var t=X.props.touch;return Array.isArray(t)?t:[t,0]}function K(){return"hold"===G()[0]}function Q(){var t;return!!(null==(t=X.props.render)?void 0:t.$$tippy)}function Z(){return A||r}function tt(){var t=Z().parentNode;return t?b(t):document}function et(){return j($)}function nt(t){return X.state.isMounted&&!X.state.isVisible||w.isTouch||T&&"focus"===T.type?0:n(X.props.delay,t?0:1,L.delay)}function rt(){$.style.pointerEvents=X.props.interactive&&X.state.isVisible?"":"none",$.style.zIndex=""+X.props.zIndex}function it(t,e,n){var r;(void 0===n&&(n=!0),z.forEach((function(n){n[t]&&n[t].apply(void 0,e)})),n)&&(r=X.props)[t].apply(r,e)}function ot(){var t=X.props.aria;if(t.content){var e="aria-"+t.content,n=$.id;s(X.props.triggerTarget||r).forEach((function(t){var r=t.getAttribute(e);if(X.state.isVisible)t.setAttribute(e,r?r+" "+n:n);else{var i=r&&r.replace(n,"").trim();i?t.setAttribute(e,i):t.removeAttribute(e)}}))}}function at(){!J&&X.props.aria.expanded&&s(X.props.triggerTarget||r).forEach((function(t){X.props.interactive?t.setAttribute("aria-expanded",X.state.isVisible&&t===Z()?"true":"false"):t.removeAttribute("aria-expanded")}))}function st(){tt().removeEventListener("mousemove",_),B=B.filter((function(t){return t!==_}))}function ut(t){if(!(w.isTouch&&(I||"mousedown"===t.type)||X.props.interactive&&$.contains(t.target))){if(Z().contains(t.target)){if(w.isTouch)return;if(X.state.isVisible&&X.props.trigger.indexOf("click")>=0)return}else it("onClickOutside",[X,t]);!0===X.props.hideOnClick&&(X.clearDelayTimeouts(),X.hide(),V=!0,setTimeout((function(){V=!1})),X.state.isMounted||lt())}}function ct(){I=!0}function pt(){I=!1}function ft(){var t=tt();t.addEventListener("mousedown",ut,!0),t.addEventListener("touchend",ut,e),t.addEventListener("touchstart",pt,e),t.addEventListener("touchmove",ct,e)}function lt(){var t=tt();t.removeEventListener("mousedown",ut,!0),t.removeEventListener("touchend",ut,e),t.removeEventListener("touchstart",pt,e),t.removeEventListener("touchmove",ct,e)}function dt(t,e){var n=et().box;function r(t){t.target===n&&(y(n,"remove",r),e())}if(0===t)return e();y(n,"remove",C),y(n,"add",r),C=r}function vt(t,e,n){void 0===n&&(n=!1),s(X.props.triggerTarget||r).forEach((function(r){r.addEventListener(t,e,n),U.push({node:r,eventType:t,handler:e,options:n})}))}function mt(){var t;K()&&(vt("touchstart",ht,{passive:!0}),vt("touchend",yt,{passive:!0})),(t=X.props.trigger,t.split(/\s+/).filter(Boolean)).forEach((function(t){if("manual"!==t)switch(vt(t,ht),t){case"mouseenter":vt("mouseleave",yt);break;case"focus":vt(O?"focusout":"blur",wt);break;case"focusin":vt("focusout",wt)}}))}function gt(){U.forEach((function(t){var e=t.node,n=t.eventType,r=t.handler,i=t.options;e.removeEventListener(n,r,i)})),U=[]}function ht(t){var e,n=!1;if(X.state.isEnabled&&!Et(t)&&!V){var r="focus"===(null==(e=T)?void 0:e.type);T=t,A=t.currentTarget,at(),!X.state.isVisible&&d(t)&&B.forEach((function(e){return e(t)})),"click"===t.type&&(X.props.trigger.indexOf("mouseenter")<0||P)&&!1!==X.props.hideOnClick&&X.state.isVisible?n=!0:At(t),"click"===t.type&&(P=!n),n&&!r&&Ot(t)}}function bt(t){var e=t.target,n=Z().contains(e)||$.contains(e);"mousemove"===t.type&&n||function(t,e){var n=e.clientX,r=e.clientY;return t.every((function(t){var e=t.popperRect,i=t.popperState,o=t.props.interactiveBorder,a=c(i.placement),s=i.modifiersData.offset;if(!s)return!0;var u="bottom"===a?s.top.y:0,p="top"===a?s.bottom.y:0,f="right"===a?s.left.x:0,l="left"===a?s.right.x:0,d=e.top-r+u>o,v=r-e.bottom-p>o,m=e.left-n+f>o,g=n-e.right-l>o;return d||v||m||g}))}(xt().concat($).map((function(t){var e,n=null==(e=t._tippy.popperInstance)?void 0:e.state;return n?{popperRect:t.getBoundingClientRect(),popperState:n,props:M}:null})).filter(Boolean),t)&&(st(),Ot(t))}function yt(t){Et(t)||X.props.trigger.indexOf("click")>=0&&P||(X.props.interactive?X.hideWithInteractivity(t):Ot(t))}function wt(t){X.props.trigger.indexOf("focusin")<0&&t.target!==Z()||X.props.interactive&&t.relatedTarget&&$.contains(t.relatedTarget)||Ot(t)}function Et(t){return!!w.isTouch&&K()!==t.type.indexOf("touch")>=0}function Tt(){Ct();var e=X.props,n=e.popperOptions,i=e.placement,o=e.offset,a=e.getReferenceClientRect,s=e.moveTransition,u=Q()?j($).arrow:null,c=a?{getBoundingClientRect:a,contextElement:a.contextElement||Z()}:r,p=[{name:"offset",options:{offset:o}},{name:"preventOverflow",options:{padding:{top:2,bottom:2,left:5,right:5}}},{name:"flip",options:{padding:5}},{name:"computeStyles",options:{adaptive:!s}},{name:"$$tippy",enabled:!0,phase:"beforeWrite",requires:["computeStyles"],fn:function(t){var e=t.state;if(Q()){var n=et().box;["placement","reference-hidden","escaped"].forEach((function(t){"placement"===t?n.setAttribute("data-placement",e.placement):e.attributes.popper["data-popper-"+t]?n.setAttribute("data-"+t,""):n.removeAttribute("data-"+t)})),e.attributes.popper={}}}}];Q()&&u&&p.push({name:"arrow",options:{element:u,padding:3}}),p.push.apply(p,(null==n?void 0:n.modifiers)||[]),X.popperInstance=t.createPopper(c,$,Object.assign({},n,{placement:i,onFirstUpdate:x,modifiers:p}))}function Ct(){X.popperInstance&&(X.popperInstance.destroy(),X.popperInstance=null)}function xt(){return p($.querySelectorAll("[data-tippy-root]"))}function At(t){X.clearDelayTimeouts(),t&&it("onTrigger",[X,t]),ft();var e=nt(!0),n=G(),r=n[0],i=n[1];w.isTouch&&"hold"===r&&i&&(e=i),e?v=setTimeout((function(){X.show()}),e):X.show()}function Ot(t){if(X.clearDelayTimeouts(),it("onUntrigger",[X,t]),X.state.isVisible){if(!(X.props.trigger.indexOf("mouseenter")>=0&&X.props.trigger.indexOf("click")>=0&&["mouseleave","mousemove"].indexOf(t.type)>=0&&P)){var e=nt(!1);e?m=setTimeout((function(){X.state.isVisible&&X.hide()}),e):E=requestAnimationFrame((function(){X.hide()}))}}else lt()}}function U(t,n){void 0===n&&(n={});var r=L.plugins.concat(n.plugins||[]);document.addEventListener("touchstart",T,e),window.addEventListener("blur",x);var i=Object.assign({},n,{plugins:r}),o=m(t).reduce((function(t,e){var n=e&&N(e,i);return n&&t.push(n),t}),[]);return l(t)?o[0]:o}U.defaultProps=L,U.setDefaultProps=function(t){Object.keys(t).forEach((function(e){L[e]=t[e]}))},U.currentInput=w;var _={mouseover:"mouseenter",focusin:"focus",click:"click"};var F={name:"animateFill",defaultValue:!1,fn:function(t){var e;if(!(null==(e=t.props.render)?void 0:e.$$tippy))return{};var n=j(t.popper),r=n.box,i=n.content,o=t.props.animateFill?function(){var t=f();return t.className="tippy-backdrop",h([t],"hidden"),t}():null;return{onCreate:function(){o&&(r.insertBefore(o,r.firstElementChild),r.setAttribute("data-animatefill",""),r.style.overflow="hidden",t.setProps({arrow:!1,animation:"shift-away"}))},onMount:function(){if(o){var t=r.style.transitionDuration,e=Number(t.replace("ms",""));i.style.transitionDelay=Math.round(e/10)+"ms",o.style.transitionDuration=t,h([o],"visible")}},onShow:function(){o&&(o.style.transitionDuration="0ms")},onHide:function(){o&&h([o],"hidden")}}}};var W={clientX:0,clientY:0},X=[];function Y(t){var e=t.clientX,n=t.clientY;W={clientX:e,clientY:n}}var $={name:"followCursor",defaultValue:!1,fn:function(t){var e=t.reference,n=b(t.props.triggerTarget||e),r=!1,i=!1,o=!0,a=t.props;function s(){return"initial"===t.props.followCursor&&t.state.isVisible}function u(){n.addEventListener("mousemove",f)}function c(){n.removeEventListener("mousemove",f)}function p(){r=!0,t.setProps({getReferenceClientRect:null}),r=!1}function f(n){var r=!n.target||e.contains(n.target),i=t.props.followCursor,o=n.clientX,a=n.clientY,s=e.getBoundingClientRect(),u=o-s.left,c=a-s.top;!r&&t.props.interactive||t.setProps({getReferenceClientRect:function(){var t=e.getBoundingClientRect(),n=o,r=a;"initial"===i&&(n=t.left+u,r=t.top+c);var s="horizontal"===i?t.top:r,p="vertical"===i?t.right:n,f="horizontal"===i?t.bottom:r,l="vertical"===i?t.left:n;return{width:p-l,height:f-s,top:s,right:p,bottom:f,left:l}}})}function l(){t.props.followCursor&&(X.push({instance:t,doc:n}),function(t){t.addEventListener("mousemove",Y)}(n))}function v(){0===(X=X.filter((function(e){return e.instance!==t}))).filter((function(t){return t.doc===n})).length&&function(t){t.removeEventListener("mousemove",Y)}(n)}return{onCreate:l,onDestroy:v,onBeforeUpdate:function(){a=t.props},onAfterUpdate:function(e,n){var o=n.followCursor;r||void 0!==o&&a.followCursor!==o&&(v(),o?(l(),!t.state.isMounted||i||s()||u()):(c(),p()))},onMount:function(){t.props.followCursor&&!i&&(o&&(f(W),o=!1),s()||u())},onTrigger:function(t,e){d(e)&&(W={clientX:e.clientX,clientY:e.clientY}),i="focus"===e.type},onHidden:function(){t.props.followCursor&&(p(),c(),o=!0)}}}};var q={name:"inlinePositioning",defaultValue:!1,fn:function(t){var e,n=t.reference;var r=-1,i=!1,o={name:"tippyInlinePositioning",enabled:!0,phase:"afterWrite",fn:function(i){var o=i.state;t.props.inlinePositioning&&(e!==o.placement&&t.setProps({getReferenceClientRect:function(){return function(t){return function(t,e,n,r){if(n.length<2||null===t)return e;if(2===n.length&&r>=0&&n[0].left>n[1].right)return n[r]||e;switch(t){case"top":case"bottom":var i=n[0],o=n[n.length-1],a="top"===t,s=i.top,u=o.bottom,c=a?i.left:o.left,p=a?i.right:o.right;return{top:s,bottom:u,left:c,right:p,width:p-c,height:u-s};case"left":case"right":var f=Math.min.apply(Math,n.map((function(t){return t.left}))),l=Math.max.apply(Math,n.map((function(t){return t.right}))),d=n.filter((function(e){return"left"===t?e.left===f:e.right===l})),v=d[0].top,m=d[d.length-1].bottom;return{top:v,bottom:m,left:f,right:l,width:l-f,height:m-v};default:return e}}(c(t),n.getBoundingClientRect(),p(n.getClientRects()),r)}(o.placement)}}),e=o.placement)}};function a(){var e;i||(e=function(t,e){var n;return{popperOptions:Object.assign({},t.popperOptions,{modifiers:[].concat(((null==(n=t.popperOptions)?void 0:n.modifiers)||[]).filter((function(t){return t.name!==e.name})),[e])})}}(t.props,o),i=!0,t.setProps(e),i=!1)}return{onCreate:a,onAfterUpdate:a,onTrigger:function(e,n){if(d(n)){var i=p(t.reference.getClientRects()),o=i.find((function(t){return t.left-2<=n.clientX&&t.right+2>=n.clientX&&t.top-2<=n.clientY&&t.bottom+2>=n.clientY}));r=i.indexOf(o)}},onUntrigger:function(){r=-1}}}};var z={name:"sticky",defaultValue:!1,fn:function(t){var e=t.reference,n=t.popper;function r(e){return!0===t.props.sticky||t.props.sticky===e}var i=null,o=null;function a(){var s=r("reference")?(t.popperInstance?t.popperInstance.state.elements.reference:e).getBoundingClientRect():null,u=r("popper")?n.getBoundingClientRect():null;(s&&J(i,s)||u&&J(o,u))&&t.popperInstance&&t.popperInstance.update(),i=s,o=u,t.state.isMounted&&requestAnimationFrame(a)}return{onMount:function(){t.props.sticky&&a()}}}};function J(t,e){return!t||!e||(t.top!==e.top||t.right!==e.right||t.bottom!==e.bottom||t.left!==e.left)}return U.setDefaultProps({plugins:[F,$,q,z],render:I}),U.createSingleton=function(t,e){void 0===e&&(e={});var n,r=t,i=[],o=e.overrides,s=[];function u(){i=r.map((function(t){return t.reference}))}function c(t){r.forEach((function(e){t?e.enable():e.disable()}))}function p(t){return r.map((function(e){var r=e.setProps;return e.setProps=function(i){r(i),e.reference===n&&t.setProps(i)},function(){e.setProps=r}}))}c(!1),u();var l={fn:function(){return{onDestroy:function(){c(!0)},onTrigger:function(t,e){var a=e.currentTarget,s=i.indexOf(a);if(a!==n){n=a;var u=(o||[]).concat("content").reduce((function(t,e){return t[e]=r[s].props[e],t}),{});t.setProps(Object.assign({},u,{getReferenceClientRect:"function"==typeof u.getReferenceClientRect?u.getReferenceClientRect:function(){return a.getBoundingClientRect()}}))}}}}},d=U(f(),Object.assign({},a(e,["overrides"]),{plugins:[l].concat(e.plugins||[]),triggerTarget:i})),v=d.setProps;return d.setProps=function(t){o=t.overrides||o,v(t)},d.setInstances=function(t){c(!0),s.forEach((function(t){return t()})),r=t,c(!1),u(),p(d),d.setProps({triggerTarget:i})},s=p(d),d},U.delegate=function(t,e){var n=[],r=[],i=!1,o=e.target,u=a(e,["target"]),c=Object.assign({},u,{trigger:"manual",touch:!1}),p=Object.assign({},u,{showOnCreate:!0}),f=U(t,c);function l(t){if(t.target&&!i){var n=t.target.closest(o);if(n){var a=n.getAttribute("data-tippy-trigger")||e.trigger||L.trigger;if(!n._tippy&&!("touchstart"===t.type&&"boolean"==typeof p.touch||"touchstart"!==t.type&&a.indexOf(_[t.type])<0)){var s=U(n,p);s&&(r=r.concat(s))}}}}function d(t,e,r,i){void 0===i&&(i=!1),t.addEventListener(e,r,i),n.push({node:t,eventType:e,handler:r,options:i})}return s(f).forEach((function(t){var e=t.destroy,o=t.enable,a=t.disable;t.destroy=function(t){void 0===t&&(t=!0),t&&r.forEach((function(t){t.destroy()})),r=[],n.forEach((function(t){var e=t.node,n=t.eventType,r=t.handler,i=t.options;e.removeEventListener(n,r,i)})),n=[],e()},t.enable=function(){o(),r.forEach((function(t){return t.enable()})),i=!1},t.disable=function(){a(),r.forEach((function(t){return t.disable()})),i=!0},function(t){var e=t.reference;d(e,"touchstart",l),d(e,"mouseover",l),d(e,"focusin",l),d(e,"click",l)}(t)})),f},U.hideAll=function(t){var e=void 0===t?{}:t,n=e.exclude,r=e.duration;H.forEach((function(t){var e=!1;if(n&&(e=v(n)?t.reference===n:t.popper===n.popper),!e){var i=t.props.duration;t.setProps({duration:r}),t.hide(),t.state.isDestroyed||t.setProps({duration:i})}}))},U.roundArrow=' ',U}));
+//# sourceMappingURL=tippy.umd.min.js.map
diff --git a/_posts/2021-09-20-reading-in-adv-us-railroad-data/reading-in-adv-us-railroad-data_files/webcomponents-2.0.0/webcomponents.js b/_posts/2021-09-20-reading-in-adv-us-railroad-data/reading-in-adv-us-railroad-data_files/webcomponents-2.0.0/webcomponents.js
new file mode 100644
index 00000000..6883e0e5
--- /dev/null
+++ b/_posts/2021-09-20-reading-in-adv-us-railroad-data/reading-in-adv-us-railroad-data_files/webcomponents-2.0.0/webcomponents.js
@@ -0,0 +1,236 @@
+// webcomponents.js requires Set api which is not available in all browsers
+if (typeof(Set) !== "undefined") {
+/**
+@license @nocompile
+Copyright (c) 2018 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+*/
+(function(){/*
+
+ Copyright (c) 2016 The Polymer Project Authors. All rights reserved.
+ This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+ The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+ The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+ Code distributed by Google as part of the polymer project is also
+ subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+*/
+'use strict';var q,aa="undefined"!=typeof window&&window===this?this:"undefined"!=typeof global&&null!=global?global:this,ba="function"==typeof Object.defineProperties?Object.defineProperty:function(a,b,c){a!=Array.prototype&&a!=Object.prototype&&(a[b]=c.value)};function ca(){ca=function(){};aa.Symbol||(aa.Symbol=da)}var da=function(){var a=0;return function(b){return"jscomp_symbol_"+(b||"")+a++}}();
+function ea(){ca();var a=aa.Symbol.iterator;a||(a=aa.Symbol.iterator=aa.Symbol("iterator"));"function"!=typeof Array.prototype[a]&&ba(Array.prototype,a,{configurable:!0,writable:!0,value:function(){return fa(this)}});ea=function(){}}function fa(a){var b=0;return ha(function(){return b"+this.innerHTML+""},set:function(a){if(this.parentNode){U.body.innerHTML=a;for(a=this.ownerDocument.createDocumentFragment();U.body.firstChild;)m.call(a,U.body.firstChild);
+n.call(this.parentNode,a,this)}else throw Error("Failed to set the 'outerHTML' property on 'Element': This element has no parent node.");},configurable:!0})};p(a.prototype);Fc(a.prototype);a.b=function(c){c=b(c,"template");for(var d=0,e=c.length,f;d]/g,
+l=function(a){switch(a){case "&":return"&";case "<":return"<";case ">":return">";case '"':return""";case "\u00a0":return" "}};xa=function(a){for(var b={},c=0;c";h=F[n]?v:v+Gc(h,m)+""+n+">";break a;case Node.TEXT_NODE:h=h.data;h=k&&of[k.localName]?h:h.replace(kb,l);break a;case Node.COMMENT_NODE:h="\x3c!--"+h.data+"--\x3e";break a;default:throw window.console.error(h),Error("not implemented");}}c+=h}return c}}if(c||v){a.a=function(a,b){var c=f.call(a,!1);
+this.R&&this.R(c);b&&(m.call(c.content,f.call(a.content,!0)),lb(c.content,a.content));return c};var lb=function(c,d){if(d.querySelectorAll&&(d=b(d,"template"),0!==d.length)){c=b(c,"template");for(var e=0,f=c.length,g,h;e]/g;function mc(a){switch(a){case "&":return"&";case "<":return"<";case ">":return">";case '"':return""";case "\u00a0":return" "}}function nc(a){for(var b={},c=0;c";h=oc[n]?r:r+qc(h,m)+""+n+">";break a;case Node.TEXT_NODE:h=h.data;h=k&&pc[k.localName]?h:h.replace(lc,mc);break a;case Node.COMMENT_NODE:h="\x3c!--"+h.data+"--\x3e";break a;default:throw window.console.error(h),
+Error("not implemented");}}c+=h}return c};var E={},H=document.createTreeWalker(document,NodeFilter.SHOW_ALL,null,!1),I=document.createTreeWalker(document,NodeFilter.SHOW_ELEMENT,null,!1);function rc(a){var b=[];H.currentNode=a;for(a=H.firstChild();a;)b.push(a),a=H.nextSibling();return b}E.parentNode=function(a){H.currentNode=a;return H.parentNode()};E.firstChild=function(a){H.currentNode=a;return H.firstChild()};E.lastChild=function(a){H.currentNode=a;return H.lastChild()};E.previousSibling=function(a){H.currentNode=a;return H.previousSibling()};
+E.nextSibling=function(a){H.currentNode=a;return H.nextSibling()};E.childNodes=rc;E.parentElement=function(a){I.currentNode=a;return I.parentNode()};E.firstElementChild=function(a){I.currentNode=a;return I.firstChild()};E.lastElementChild=function(a){I.currentNode=a;return I.lastChild()};E.previousElementSibling=function(a){I.currentNode=a;return I.previousSibling()};E.nextElementSibling=function(a){I.currentNode=a;return I.nextSibling()};
+E.children=function(a){var b=[];I.currentNode=a;for(a=I.firstChild();a;)b.push(a),a=I.nextSibling();return b};E.innerHTML=function(a){return qc(a,function(a){return rc(a)})};E.textContent=function(a){switch(a.nodeType){case Node.ELEMENT_NODE:case Node.DOCUMENT_FRAGMENT_NODE:a=document.createTreeWalker(a,NodeFilter.SHOW_TEXT,null,!1);for(var b="",c;c=a.nextNode();)b+=c.nodeValue;return b;default:return a.nodeValue}};var J={},sc=B.I,tc=[Node.prototype,Element.prototype,HTMLElement.prototype];function K(a){var b;a:{for(b=0;bd.assignedNodes.length&&(d.da=!0)}d.da&&(d.da=!1,Nd(this,b))}a=this.m;b=[];for(d=0;db.indexOf(c))||b.push(c);for(a=0;a "+b}))}a=a.replace(og,function(a,b,c){return'[dir="'+c+'"] '+b+", "+b+'[dir="'+c+'"]'});return{value:a,Sa:b,stop:f}}function mg(a,b){a=a.split(pg);a[0]+=b;return a.join(pg)}
+function lg(a,b){var c=a.match(qg);return(c=c&&c[2].trim()||"")?c[0].match(rg)?a.replace(qg,function(a,c,f){return b+f}):c.split(rg)[0]===b?c:sg:a.replace(hg,b)}function tg(a){a.selector===ug&&(a.selector="html")}Tf.prototype.c=function(a){return a.match(kg)?this.b(a,vg):mg(a.trim(),vg)};aa.Object.defineProperties(Tf.prototype,{a:{configurable:!0,enumerable:!0,get:function(){return"style-scope"}}});
+var fg=/:(nth[-\w]+)\(([^)]+)\)/,vg=":not(.style-scope)",dg=",",ig=/(^|[\s>+~]+)((?:\[.+?\]|[^\s>+~=[])+)/g,rg=/[[.:#*]/,hg=":host",ug=":root",kg="::slotted",gg=new RegExp("^("+kg+")"),qg=/(:host)(?:\(((?:\([^)(]*\)|[^)(]*)+?)\))/,ng=/(?:::slotted)(?:\(((?:\([^)(]*\)|[^)(]*)+?)\))/,og=/(.*):dir\((?:(ltr|rtl))\)/,bg=".",pg=":",Yf="class",sg="should_not_match",Vf=new Tf;function wg(a,b,c,d){this.K=a||null;this.b=b||null;this.sa=c||[];this.T=null;this.X=d||"";this.a=this.H=this.O=null}function xg(a){return a?a.__styleInfo:null}function yg(a,b){return a.__styleInfo=b}wg.prototype.c=function(){return this.K};wg.prototype._getStyleRules=wg.prototype.c;function zg(a){var b=this.matches||this.matchesSelector||this.mozMatchesSelector||this.msMatchesSelector||this.oMatchesSelector||this.webkitMatchesSelector;return b&&b.call(this,a)}var Ag=navigator.userAgent.match("Trident");function Bg(){}function Cg(a){var b={},c=[],d=0;Kf(a,function(a){Dg(a);a.index=d++;a=a.B.cssText;for(var c;c=Ef.exec(a);){var e=c[1];":"!==c[2]&&(b[e]=!0)}},function(a){c.push(a)});a.b=c;a=[];for(var e in b)a.push(e);return a}
+function Dg(a){if(!a.B){var b={},c={};Eg(a,c)&&(b.J=c,a.rules=null);b.cssText=a.parsedCssText.replace(Hf,"").replace(Cf,"");a.B=b}}function Eg(a,b){var c=a.B;if(c){if(c.J)return Object.assign(b,c.J),!0}else{c=a.parsedCssText;for(var d;a=Cf.exec(c);){d=(a[2]||a[3]).trim();if("inherit"!==d||"unset"!==d)b[a[1].trim()]=d;d=!0}return d}}
+function Fg(a,b,c){b&&(b=0<=b.indexOf(";")?Gg(a,b,c):Qf(b,function(b,e,f,g){if(!e)return b+g;(e=Fg(a,c[e],c))&&"initial"!==e?"apply-shim-inherit"===e&&(e="inherit"):e=Fg(a,c[f]||f,c)||f;return b+(e||"")+g}));return b&&b.trim()||""}
+function Gg(a,b,c){b=b.split(";");for(var d=0,e,f;d *"===f||"html"===f,h=0===f.indexOf(":host")&&!g;"shady"===c&&(g=f===e+" > *."+e||-1!==f.indexOf("html"),h=!g&&0===f.indexOf(e));"shadow"===c&&(g=":host > *"===f||"html"===f,h=h&&!g);if(g||h)c=e,h&&(b.G||(b.G=cg(Vf,b,Vf.b,a?bg+a:"",e)),c=b.G||e),d({Za:c,Wa:h,wb:g})}}
+function Jg(a,b){var c={},d={},e=b&&b.__cssBuild;Kf(b,function(b){Ig(a,b,e,function(e){zg.call(a.kb||a,e.Za)&&(e.Wa?Eg(b,c):Eg(b,d))})},null,!0);return{Ya:d,Va:c}}
+function Kg(a,b,c,d){var e=Sf(b),f=ag(e.is,e.X),g=new RegExp("(?:^|[^.#[:])"+(b.extends?"\\"+f.slice(0,-1)+"\\]":f)+"($|[.:[\\s>+~])");e=xg(b).K;var h=Lg(e,d);return Zf(b,e,function(b){var e="";b.B||Dg(b);b.B.cssText&&(e=Gg(a,b.B.cssText,c));b.cssText=e;if(!T&&!Mf(b)&&b.cssText){var k=e=b.cssText;null==b.za&&(b.za=Ff.test(e));if(b.za)if(null==b.ea){b.ea=[];for(var r in h)k=h[r],k=k(e),e!==k&&(e=k,b.ea.push(r))}else{for(r=0;r=m._useCount&&m.parentNode&&m.parentNode.removeChild(m));T?f.a?(f.a.textContent=e,d=f.a):e&&(d=Nf(e,h,a.shadowRoot,f.b)):d?d.parentNode||
+(Ag&&-1b&&-1==[34,35,60,62,63,96].indexOf(b)?a:encodeURIComponent(a)}function d(a){var b=a.charCodeAt(0);return 32b&&-1==[34,35,60,62,96].indexOf(b)?a:encodeURIComponent(a)}function e(a,e,g){function h(a){kb.push(a)}var k=e||"scheme start",v=0,p="",x=!1,U=!1,kb=[];a:for(;(void 0!=a[v-1]||0==v)&&!this.h;){var l=a[v];switch(k){case "scheme start":if(l&&r.test(l))p+=
+l.toLowerCase(),k="scheme";else if(e){h("Invalid scheme.");break a}else{p="";k="no scheme";continue}break;case "scheme":if(l&&G.test(l))p+=l.toLowerCase();else if(":"==l){this.g=p;p="";if(e)break a;void 0!==m[this.g]&&(this.D=!0);k="file"==this.g?"relative":this.D&&g&&g.g==this.g?"relative or authority":this.D?"authority first slash":"scheme data"}else if(e){void 0!=l&&h("Code point not allowed in scheme: "+l);break a}else{p="";v=0;k="no scheme";continue}break;case "scheme data":"?"==l?(this.u="?",
+k="query"):"#"==l?(this.C="#",k="fragment"):void 0!=l&&"\t"!=l&&"\n"!=l&&"\r"!=l&&(this.qa+=c(l));break;case "no scheme":if(g&&void 0!==m[g.g]){k="relative";continue}else h("Missing scheme."),f.call(this),this.h=!0;break;case "relative or authority":if("/"==l&&"/"==a[v+1])k="authority ignore slashes";else{h("Expected /, got: "+l);k="relative";continue}break;case "relative":this.D=!0;"file"!=this.g&&(this.g=g.g);if(void 0==l){this.i=g.i;this.s=g.s;this.j=g.j.slice();this.u=g.u;this.v=g.v;this.f=g.f;
+break a}else if("/"==l||"\\"==l)"\\"==l&&h("\\ is an invalid code point."),k="relative slash";else if("?"==l)this.i=g.i,this.s=g.s,this.j=g.j.slice(),this.u="?",this.v=g.v,this.f=g.f,k="query";else if("#"==l)this.i=g.i,this.s=g.s,this.j=g.j.slice(),this.u=g.u,this.C="#",this.v=g.v,this.f=g.f,k="fragment";else{k=a[v+1];var F=a[v+2];if("file"!=this.g||!r.test(l)||":"!=k&&"|"!=k||void 0!=F&&"/"!=F&&"\\"!=F&&"?"!=F&&"#"!=F)this.i=g.i,this.s=g.s,this.v=g.v,this.f=g.f,this.j=g.j.slice(),this.j.pop();k=
+"relative path";continue}break;case "relative slash":if("/"==l||"\\"==l)"\\"==l&&h("\\ is an invalid code point."),k="file"==this.g?"file host":"authority ignore slashes";else{"file"!=this.g&&(this.i=g.i,this.s=g.s,this.v=g.v,this.f=g.f);k="relative path";continue}break;case "authority first slash":if("/"==l)k="authority second slash";else{h("Expected '/', got: "+l);k="authority ignore slashes";continue}break;case "authority second slash":k="authority ignore slashes";if("/"!=l){h("Expected '/', got: "+
+l);continue}break;case "authority ignore slashes":if("/"!=l&&"\\"!=l){k="authority";continue}else h("Expected authority, got: "+l);break;case "authority":if("@"==l){x&&(h("@ already seen."),p+="%40");x=!0;for(l=0;l