webpackJsonp([6],{576:function(module,exports,__webpack_require__){"use strict";eval("\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n__webpack_require__(24);\n\nvar Citations = function () {\n function Citations() {\n var _this = this;\n\n _classCallCheck(this, Citations);\n\n this.bibliography = document.querySelector('#abt-bibliography, #abt-smart-bib');\n var citationList = document.querySelectorAll('.abt-citation, .abt_cite');\n var container = document.getElementById('abt-bibliography__container') ? document.getElementById('abt-bibliography__container') : this.bibliography;\n [].concat(_toConsumableArray(citationList)).forEach(function (citation) {\n var reflist = JSON.parse(citation.getAttribute('data-reflist'));\n citation.setAttribute('data-citations', reflist.map(function (id) {\n return container.children[id].outerHTML;\n }).join(''));\n citation.addEventListener('click', _this.createTooltip);\n });\n if (document.querySelector('.abt-bibliography__heading_toggle, #abt-smart-bib>h3.toggle')) this.enableToggle();\n }\n\n _createClass(Citations, [{\n key: \"createTooltip\",\n value: function createTooltip(e) {\n var existingTooltip = document.getElementById('abt-tooltip');\n if (existingTooltip) existingTooltip.parentElement.removeChild(existingTooltip);\n var rect = e.currentTarget.getBoundingClientRect();\n var left = rect.left + rect.width / 2;\n var padding = 10;\n var margin = 10;\n var tooltip = document.createElement('div');\n tooltip.id = tooltip.className = 'abt-tooltip';\n tooltip.innerHTML = e.currentTarget.getAttribute('data-citations');\n var callout = document.createElement('div');\n callout.className = 'abt-tooltip__callout';\n var buttonContainer = document.createElement('div');\n buttonContainer.className = 'abt-tooltip__close-button-container';\n buttonContainer.addEventListener('click', function () {\n return tooltip.parentElement.removeChild(tooltip);\n });\n var button = document.createElement('div');\n button.className = 'abt-tooltip__close-button';\n document.body.appendChild(tooltip);\n tooltip.appendChild(callout);\n tooltip.appendChild(buttonContainer);\n buttonContainer.appendChild(button);\n var tooltipWiderThanBody = tooltip.offsetWidth + margin + padding >= document.body.offsetWidth;\n var tooltipWouldOverflowLeft = padding + tooltip.offsetWidth / 2 > left;\n var tooltipWouldOverflowRight = left > document.body.offsetWidth / 2 && document.body.offsetWidth - left < padding + tooltip.offsetWidth / 2;\n var marginLeft = -1 * (tooltip.offsetWidth / 2) || 0;\n if (left + marginLeft < 0 || tooltipWiderThanBody) {\n tooltip.style.width = 'calc(100% - 25px)';\n tooltip.style.left = '10px';\n } else if (tooltipWouldOverflowRight) {\n tooltip.style.right = '5px';\n tooltip.style.marginRight = '5px';\n } else if (tooltipWouldOverflowLeft) {\n tooltip.style.left = left + 'px';\n tooltip.style.marginLeft = marginLeft + margin + 'px';\n } else {\n tooltip.style.left = left + 'px';\n tooltip.style.marginLeft = marginLeft + 'px';\n }\n if (tooltipWiderThanBody || tooltipWouldOverflowLeft) {\n callout.style.left = left - 10 - callout.offsetWidth / 2 + \"px\";\n } else if (tooltipWouldOverflowRight) {\n callout.style.right = document.body.offsetWidth - left - 20 + \"px\";\n } else {\n callout.style.left = \"calc(50% - \" + callout.offsetWidth / 2 + \"px)\";\n }\n if (rect.top - tooltip.offsetHeight < 0) {\n tooltip.style.top = rect.bottom + window.pageYOffset + 10 + 'px';\n tooltip.classList.add('abt-tooltip_bottom');\n callout.classList.add('abt-tooltip__callout_up');\n } else {\n tooltip.style.top = rect.top + window.pageYOffset - tooltip.offsetHeight - 10 + 'px';\n tooltip.classList.add('abt-tooltip_top');\n callout.classList.add('abt-tooltip__callout_down');\n }\n tooltip.classList.add('abt-tooltip_active');\n }\n }, {\n key: \"enableToggle\",\n value: function enableToggle() {\n var citations = document.querySelectorAll('#abt-bibliography>div, #abt-smart-bib>div');\n var heading = document.querySelector('.abt-bibliography__heading_toggle, #abt-smart-bib>h3.toggle');\n var container = document.getElementById('abt-bibliography__container');\n if (!container) {\n container = document.createElement('div');\n container.id = 'abt-bibliography__container';\n this.bibliography.appendChild(container);\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = citations[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var el = _step.value;\n\n container.appendChild(el);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n }\n container.classList.toggle('abt-bibligraphy__container--hidden');\n heading.classList.toggle('abt-bibliography__heading_toggle--closed');\n heading.addEventListener('click', function () {\n container.classList.toggle('abt-bibligraphy__container--hidden');\n heading.classList.toggle('abt-bibliography__heading_toggle--closed');\n });\n }\n }]);\n\n return Citations;\n}();\n\nCitations.isTouchDevice = true === ('ontouchstart' in window || window.DocumentTouch && document instanceof DocumentTouch);\nif (document.readyState === 'interactive') {\n frontendJS();\n} else {\n document.addEventListener('DOMContentLoaded', frontendJS);\n}\nfunction frontendJS() {\n new Citations();\n}\nexports.frontendJS = frontendJS;//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvbGliL2pzL0Zyb250ZW5kLnRzP2NlY2MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQSxvQkFFQTs7O0FBUUk7Ozs7O0FBQ1EsYUFBYSxlQUEyQixTQUFjLGNBQXNDO0FBQ2hHLFlBQWtCLGVBQXdDLFNBQWlCLGlCQUE2QjtBQUN4RyxZQUFlLFlBQVcsU0FBZSxlQUErQixpQ0FDMUQsU0FBZSxlQUErQixpQ0FDbEQsS0FBYztBQUV2QixxQ0FBZ0IsZUFBUSxRQUFTO0FBQzlCLGdCQUFhLFVBQWlCLEtBQU0sTUFBUyxTQUFhLGFBQWtCO0FBQ3BFLHFCQUFhLGFBQ0QsMEJBQ0w7QUFBRyx1QkFBYSxVQUFTLFNBQUksSUFBVzthQUE1QyxFQUFpRCxLQUMxRDtBQUNNLHFCQUFpQixpQkFBUSxTQUFNLE1BQzNDO0FBQUc7QUFFQSxZQUFTLFNBQWMsY0FBZ0UsZ0VBQUssS0FDbkc7QUFFcUI7Ozs7c0NBQUU7QUFDbkIsZ0JBQXFCLGtCQUFXLFNBQWUsZUFBZ0I7QUFDNUQsZ0JBQWlCLGlCQUFnQixnQkFBYyxjQUFZLFlBQWtCO0FBRWhGLGdCQUFVLE9BQWdCLEVBQWMsY0FBeUI7QUFDakUsZ0JBQVUsT0FBTyxLQUFRLE9BQUssS0FBTSxRQUFNO0FBQzFDLGdCQUFhLFVBQWM7QUFDM0IsZ0JBQVksU0FBYztBQUUxQixnQkFBYSxVQUFXLFNBQWMsY0FBUTtBQUN2QyxvQkFBRyxLQUFVLFFBQVUsWUFBaUI7QUFDeEMsb0JBQVUsWUFBSSxFQUFjLGNBQWEsYUFBbUI7QUFFbkUsZ0JBQWEsVUFBVyxTQUFjLGNBQVE7QUFDdkMsb0JBQVUsWUFBMEI7QUFFM0MsZ0JBQXFCLGtCQUFXLFNBQWMsY0FBUTtBQUN2Qyw0QkFBVSxZQUF5QztBQUNuRCw0QkFBaUIsaUJBQVE7QUFBRSx1QkFBYSxRQUFjLGNBQVksWUFBVzs7QUFFNUYsZ0JBQVksU0FBVyxTQUFjLGNBQVE7QUFDdkMsbUJBQVUsWUFBK0I7QUFFdkMscUJBQUssS0FBWSxZQUFVO0FBQzVCLG9CQUFZLFlBQVU7QUFDdEIsb0JBQVksWUFBa0I7QUFDdEIsNEJBQVksWUFBUztBQUVwQyxnQkFBMEIsdUJBQW9CLFFBQVksY0FBUyxTQUFXLE9BQXhDLElBQW9ELFNBQUssS0FBYTtBQUM1RyxnQkFBOEIsMkJBQW9CLFVBQVUsUUFBWSxjQUFLLENBQW5DLEdBQTJDO0FBQ3JGLGdCQUErQiw0QkFDdEIsT0FBVyxTQUFLLEtBQVksY0FDakMsQ0FEQSxJQUNTLFNBQUssS0FBWSxjQUFVLE9BQVEsVUFBVSxRQUFZLGNBQU87QUFFN0UsZ0JBQWdCLGFBQUcsQ0FBSyxLQUFRLFFBQVksY0FBSyxNQUFNO0FBRXBELGdCQUFLLE9BQWEsYUFBSSxLQUF5QixzQkFBRTtBQUN6Qyx3QkFBTSxNQUFNLFFBQXVCO0FBQ25DLHdCQUFNLE1BQUssT0FDdEI7QUFDSSx1QkFBK0IsMkJBQUU7QUFDMUIsd0JBQU0sTUFBTSxRQUFTO0FBQ3JCLHdCQUFNLE1BQVksY0FDN0I7QUFDSSxhQUpJLFVBSTBCLDBCQUFFO0FBQ3pCLHdCQUFNLE1BQUssT0FBTyxPQUFRO0FBQzFCLHdCQUFNLE1BQVcsYUFBYSxhQUFTLFNBQ2xEO0FBQ0ksYUFKSSxNQUlGO0FBQ0ssd0JBQU0sTUFBSyxPQUFPLE9BQVE7QUFDMUIsd0JBQU0sTUFBVyxhQUFhLGFBQ3pDO0FBQUM7QUFFRSxnQkFBcUIsd0JBQTZCLDBCQUFFO0FBQzVDLHdCQUFNLE1BQVEsT0FBTyxPQUFRLEtBQVEsUUFBWSxjQUM1RDtBQUNJLHVCQUErQiwyQkFBRTtBQUMxQix3QkFBTSxNQUFTLFFBQVcsU0FBSyxLQUFZLGNBQU8sT0FDN0Q7QUFDSSxhQUhJLE1BR0Y7QUFDSyx3QkFBTSxNQUFzQix1QkFBUSxRQUFZLGNBQzNEO0FBQUM7QUFFRSxnQkFBTSxLQUFJLE1BQVUsUUFBYyxZQUFqQyxHQUFzQyxHQUFFO0FBRWpDLHdCQUFNLE1BQUksTUFBUSxLQUFPLFNBQVMsT0FBWSxjQUFNLEVBQXZDLEdBQStDO0FBQzVELHdCQUFVLFVBQUksSUFBdUI7QUFDckMsd0JBQVUsVUFBSSxJQUN6QjtBQUNJLG1CQUFFO0FBRUssd0JBQU0sTUFBSSxNQUFRLEtBQUksTUFBUyxPQUFZLGNBQVUsUUFBYSxlQUFNLEVBQTNELEdBQW1FO0FBQ2hGLHdCQUFVLFVBQUksSUFBb0I7QUFDbEMsd0JBQVUsVUFBSSxJQUN6QjtBQUFDO0FBRU0sb0JBQVUsVUFBSSxJQUN6QjtBQUVvQjs7OztBQUNoQixnQkFBZSxZQUFXLFNBQWlCLGlCQUE4QztBQUN6RixnQkFBYSxVQUFXLFNBQWMsY0FBZ0U7QUFDdEcsZ0JBQWEsWUFBVyxTQUFlLGVBQWdDO0FBRXBFLGdCQUFDLENBQVc7QUFDRiw0QkFBVyxTQUFjLGNBQVE7QUFDakMsMEJBQUcsS0FBaUM7QUFDekMscUJBQWEsYUFBWSxZQUFZO0FBSDVCOzs7OztBQUlSLHlDQUFzQjtBQUFFLDRCQUFoQjs7QUFDQSxrQ0FBWSxZQUN6QjtBQUNKOzs7Ozs7Ozs7Ozs7Ozs7QUFBQztBQUVRLHNCQUFVLFVBQU8sT0FBdUM7QUFDMUQsb0JBQVUsVUFBTyxPQUE2QztBQUU5RCxvQkFBaUIsaUJBQVEsU0FBRTtBQUNyQiwwQkFBVSxVQUFPLE9BQXVDO0FBQzFELHdCQUFVLFVBQU8sT0FDNUI7QUFDSjtBQUFDOzs7Ozs7QUE3SGEsVUFBYSxnQkFBcUIsVUFDOUIsa0JBQ2QsVUFBTyxPQUFjLGlCQUFZLG9CQUNuQztBQTZISCxJQUFTLFNBQVcsZUFBbUIsZUFBRTtBQUU1QztBQUNJLE9BQUU7QUFDTSxhQUFpQixpQkFBbUIsb0JBQ2hEO0FBQUM7QUFFRDtBQUNJLFFBQ0o7QUFBQztBQUZELHFCQUVDIiwiZmlsZSI6IjU3Ni5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAnYmFiZWwtcG9seWZpbGwnO1xuLy8gdHNsaW50OmRpc2FibGU6ZXhwb3J0LW5hbWVcbmNsYXNzIENpdGF0aW9ucyB7XG5cbiAgICBwdWJsaWMgc3RhdGljIGlzVG91Y2hEZXZpY2U6IGJvb2xlYW4gPSB0cnVlID09PSAoXG4gICAgICAgICdvbnRvdWNoc3RhcnQnIGluIHdpbmRvdyB8fFxuICAgICAgICAod2luZG93LkRvY3VtZW50VG91Y2ggJiYgZG9jdW1lbnQgaW5zdGFuY2VvZiBEb2N1bWVudFRvdWNoKVxuICAgICk7XG4gICAgcHVibGljIGJpYmxpb2dyYXBoeTogSFRNTERpdkVsZW1lbnQ7XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5iaWJsaW9ncmFwaHkgPSA8SFRNTERpdkVsZW1lbnQ+ZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI2FidC1iaWJsaW9ncmFwaHksICNhYnQtc21hcnQtYmliJyk7XG4gICAgICAgIGNvbnN0IGNpdGF0aW9uTGlzdCA9IDxOb2RlTGlzdE9mPEhUTUxTcGFuRWxlbWVudD4+ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLmFidC1jaXRhdGlvbiwgLmFidF9jaXRlJyk7XG4gICAgICAgIGNvbnN0IGNvbnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhYnQtYmlibGlvZ3JhcGh5X19jb250YWluZXInKVxuICAgICAgICAgICAgPyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWJ0LWJpYmxpb2dyYXBoeV9fY29udGFpbmVyJylcbiAgICAgICAgICAgIDogdGhpcy5iaWJsaW9ncmFwaHk7XG5cbiAgICAgICAgWy4uLmNpdGF0aW9uTGlzdF0uZm9yRWFjaChjaXRhdGlvbiA9PiB7XG4gICAgICAgICAgICBjb25zdCByZWZsaXN0OiBzdHJpbmdbXSA9IEpTT04ucGFyc2UoY2l0YXRpb24uZ2V0QXR0cmlidXRlKCdkYXRhLXJlZmxpc3QnKSk7XG4gICAgICAgICAgICBjaXRhdGlvbi5zZXRBdHRyaWJ1dGUoXG4gICAgICAgICAgICAgICAgJ2RhdGEtY2l0YXRpb25zJyxcbiAgICAgICAgICAgICAgICByZWZsaXN0Lm1hcChpZCA9PiBjb250YWluZXIuY2hpbGRyZW5baWRdLm91dGVySFRNTCkuam9pbignJylcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBjaXRhdGlvbi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIHRoaXMuY3JlYXRlVG9vbHRpcCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmIChkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcuYWJ0LWJpYmxpb2dyYXBoeV9faGVhZGluZ190b2dnbGUsICNhYnQtc21hcnQtYmliPmgzLnRvZ2dsZScpKSB0aGlzLmVuYWJsZVRvZ2dsZSgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgY3JlYXRlVG9vbHRpcChlKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGV4aXN0aW5nVG9vbHRpcCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhYnQtdG9vbHRpcCcpO1xuICAgICAgICBpZiAoZXhpc3RpbmdUb29sdGlwKSBleGlzdGluZ1Rvb2x0aXAucGFyZW50RWxlbWVudC5yZW1vdmVDaGlsZChleGlzdGluZ1Rvb2x0aXApO1xuXG4gICAgICAgIGNvbnN0IHJlY3Q6IENsaWVudFJlY3QgPSBlLmN1cnJlbnRUYXJnZXQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgIGNvbnN0IGxlZnQgPSByZWN0LmxlZnQgKyAocmVjdC53aWR0aCAvIDIpO1xuICAgICAgICBjb25zdCBwYWRkaW5nOiBudW1iZXIgPSAxMDtcbiAgICAgICAgY29uc3QgbWFyZ2luOiBudW1iZXIgPSAxMDtcblxuICAgICAgICBjb25zdCB0b29sdGlwID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgICAgIHRvb2x0aXAuaWQgPSB0b29sdGlwLmNsYXNzTmFtZSA9ICdhYnQtdG9vbHRpcCc7XG4gICAgICAgIHRvb2x0aXAuaW5uZXJIVE1MID0gZS5jdXJyZW50VGFyZ2V0LmdldEF0dHJpYnV0ZSgnZGF0YS1jaXRhdGlvbnMnKTtcblxuICAgICAgICBjb25zdCBjYWxsb3V0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgICAgIGNhbGxvdXQuY2xhc3NOYW1lID0gJ2FidC10b29sdGlwX19jYWxsb3V0JztcblxuICAgICAgICBjb25zdCBidXR0b25Db250YWluZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgICAgYnV0dG9uQ29udGFpbmVyLmNsYXNzTmFtZSA9ICdhYnQtdG9vbHRpcF9fY2xvc2UtYnV0dG9uLWNvbnRhaW5lcic7XG4gICAgICAgIGJ1dHRvbkNvbnRhaW5lci5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsICgpID0+IHRvb2x0aXAucGFyZW50RWxlbWVudC5yZW1vdmVDaGlsZCh0b29sdGlwKSk7XG5cbiAgICAgICAgY29uc3QgYnV0dG9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgICAgIGJ1dHRvbi5jbGFzc05hbWUgPSAnYWJ0LXRvb2x0aXBfX2Nsb3NlLWJ1dHRvbic7XG5cbiAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh0b29sdGlwKTtcbiAgICAgICAgdG9vbHRpcC5hcHBlbmRDaGlsZChjYWxsb3V0KTtcbiAgICAgICAgdG9vbHRpcC5hcHBlbmRDaGlsZChidXR0b25Db250YWluZXIpO1xuICAgICAgICBidXR0b25Db250YWluZXIuYXBwZW5kQ2hpbGQoYnV0dG9uKTtcblxuICAgICAgICBjb25zdCB0b29sdGlwV2lkZXJUaGFuQm9keTogYm9vbGVhbiA9ICh0b29sdGlwLm9mZnNldFdpZHRoICsgbWFyZ2luICsgcGFkZGluZykgPj0gZG9jdW1lbnQuYm9keS5vZmZzZXRXaWR0aDtcbiAgICAgICAgY29uc3QgdG9vbHRpcFdvdWxkT3ZlcmZsb3dMZWZ0OiBib29sZWFuID0gKHBhZGRpbmcgKyB0b29sdGlwLm9mZnNldFdpZHRoIC8gMikgPiBsZWZ0O1xuICAgICAgICBjb25zdCB0b29sdGlwV291bGRPdmVyZmxvd1JpZ2h0OiBib29sZWFuID1cbiAgICAgICAgICAgIChsZWZ0ID4gZG9jdW1lbnQuYm9keS5vZmZzZXRXaWR0aCAvIDIpICYmXG4gICAgICAgICAgICAoZG9jdW1lbnQuYm9keS5vZmZzZXRXaWR0aCAtIGxlZnQgPCAocGFkZGluZyArIHRvb2x0aXAub2Zmc2V0V2lkdGggLyAyKSk7XG5cbiAgICAgICAgY29uc3QgbWFyZ2luTGVmdCA9IC0xICogKHRvb2x0aXAub2Zmc2V0V2lkdGggLyAyKSB8fCAwO1xuXG4gICAgICAgIGlmIChsZWZ0ICsgbWFyZ2luTGVmdCA8IDAgfHwgdG9vbHRpcFdpZGVyVGhhbkJvZHkpIHtcbiAgICAgICAgICAgIHRvb2x0aXAuc3R5bGUud2lkdGggPSAnY2FsYygxMDAlIC0gMjVweCknO1xuICAgICAgICAgICAgdG9vbHRpcC5zdHlsZS5sZWZ0ID0gJzEwcHgnO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKHRvb2x0aXBXb3VsZE92ZXJmbG93UmlnaHQpIHtcbiAgICAgICAgICAgIHRvb2x0aXAuc3R5bGUucmlnaHQgPSAnNXB4JztcbiAgICAgICAgICAgIHRvb2x0aXAuc3R5bGUubWFyZ2luUmlnaHQgPSAnNXB4JztcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmICh0b29sdGlwV291bGRPdmVyZmxvd0xlZnQpIHtcbiAgICAgICAgICAgIHRvb2x0aXAuc3R5bGUubGVmdCA9IGxlZnQgKyAncHgnO1xuICAgICAgICAgICAgdG9vbHRpcC5zdHlsZS5tYXJnaW5MZWZ0ID0gbWFyZ2luTGVmdCArIG1hcmdpbiArICdweCc7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0b29sdGlwLnN0eWxlLmxlZnQgPSBsZWZ0ICsgJ3B4JztcbiAgICAgICAgICAgIHRvb2x0aXAuc3R5bGUubWFyZ2luTGVmdCA9IG1hcmdpbkxlZnQgKyAncHgnO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRvb2x0aXBXaWRlclRoYW5Cb2R5IHx8IHRvb2x0aXBXb3VsZE92ZXJmbG93TGVmdCkge1xuICAgICAgICAgICAgY2FsbG91dC5zdHlsZS5sZWZ0ID0gYCR7bGVmdCAtIDEwIC0gKGNhbGxvdXQub2Zmc2V0V2lkdGggLyAyKX1weGA7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAodG9vbHRpcFdvdWxkT3ZlcmZsb3dSaWdodCkge1xuICAgICAgICAgICAgY2FsbG91dC5zdHlsZS5yaWdodCA9IGAke2RvY3VtZW50LmJvZHkub2Zmc2V0V2lkdGggLSBsZWZ0IC0gMjB9cHhgO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgY2FsbG91dC5zdHlsZS5sZWZ0ID0gYGNhbGMoNTAlIC0gJHsoY2FsbG91dC5vZmZzZXRXaWR0aCAvIDIpfXB4KWA7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoKHJlY3QudG9wIC0gdG9vbHRpcC5vZmZzZXRIZWlnaHQpIDwgMCkge1xuICAgICAgICAgICAgLy8gT24gYm90dG9tIC0gVXB3YXJkcyBhcnJvd1xuICAgICAgICAgICAgdG9vbHRpcC5zdHlsZS50b3AgPSAocmVjdC5ib3R0b20gKyB3aW5kb3cucGFnZVlPZmZzZXQgKyAxMCkgKyAncHgnO1xuICAgICAgICAgICAgdG9vbHRpcC5jbGFzc0xpc3QuYWRkKCdhYnQtdG9vbHRpcF9ib3R0b20nKTtcbiAgICAgICAgICAgIGNhbGxvdXQuY2xhc3NMaXN0LmFkZCgnYWJ0LXRvb2x0aXBfX2NhbGxvdXRfdXAnKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIC8vIE9uIHRvcCAtIERvd253YXJkcyBhcnJvd1xuICAgICAgICAgICAgdG9vbHRpcC5zdHlsZS50b3AgPSAocmVjdC50b3AgKyB3aW5kb3cucGFnZVlPZmZzZXQgLSB0b29sdGlwLm9mZnNldEhlaWdodCAtIDEwKSArICdweCc7XG4gICAgICAgICAgICB0b29sdGlwLmNsYXNzTGlzdC5hZGQoJ2FidC10b29sdGlwX3RvcCcpO1xuICAgICAgICAgICAgY2FsbG91dC5jbGFzc0xpc3QuYWRkKCdhYnQtdG9vbHRpcF9fY2FsbG91dF9kb3duJyk7XG4gICAgICAgIH1cblxuICAgICAgICB0b29sdGlwLmNsYXNzTGlzdC5hZGQoJ2FidC10b29sdGlwX2FjdGl2ZScpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZW5hYmxlVG9nZ2xlKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBjaXRhdGlvbnMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcjYWJ0LWJpYmxpb2dyYXBoeT5kaXYsICNhYnQtc21hcnQtYmliPmRpdicpO1xuICAgICAgICBjb25zdCBoZWFkaW5nID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLmFidC1iaWJsaW9ncmFwaHlfX2hlYWRpbmdfdG9nZ2xlLCAjYWJ0LXNtYXJ0LWJpYj5oMy50b2dnbGUnKTtcbiAgICAgICAgbGV0IGNvbnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhYnQtYmlibGlvZ3JhcGh5X19jb250YWluZXInKTtcblxuICAgICAgICBpZiAoIWNvbnRhaW5lcikge1xuICAgICAgICAgICAgY29udGFpbmVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgICAgICAgICBjb250YWluZXIuaWQgPSAnYWJ0LWJpYmxpb2dyYXBoeV9fY29udGFpbmVyJztcbiAgICAgICAgICAgIHRoaXMuYmlibGlvZ3JhcGh5LmFwcGVuZENoaWxkKGNvbnRhaW5lcik7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGVsIG9mIGNpdGF0aW9ucykge1xuICAgICAgICAgICAgICAgIGNvbnRhaW5lci5hcHBlbmRDaGlsZChlbCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBjb250YWluZXIuY2xhc3NMaXN0LnRvZ2dsZSgnYWJ0LWJpYmxpZ3JhcGh5X19jb250YWluZXItLWhpZGRlbicpO1xuICAgICAgICBoZWFkaW5nLmNsYXNzTGlzdC50b2dnbGUoJ2FidC1iaWJsaW9ncmFwaHlfX2hlYWRpbmdfdG9nZ2xlLS1jbG9zZWQnKTtcblxuICAgICAgICBoZWFkaW5nLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKCkgPT4ge1xuICAgICAgICAgICAgY29udGFpbmVyLmNsYXNzTGlzdC50b2dnbGUoJ2FidC1iaWJsaWdyYXBoeV9fY29udGFpbmVyLS1oaWRkZW4nKTtcbiAgICAgICAgICAgIGhlYWRpbmcuY2xhc3NMaXN0LnRvZ2dsZSgnYWJ0LWJpYmxpb2dyYXBoeV9faGVhZGluZ190b2dnbGUtLWNsb3NlZCcpO1xuICAgICAgICB9KTtcbiAgICB9XG59XG5cbmlmIChkb2N1bWVudC5yZWFkeVN0YXRlID09PSAnaW50ZXJhY3RpdmUnKSB7XG4gICAgZnJvbnRlbmRKUygpO1xufVxuZWxzZSB7XG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignRE9NQ29udGVudExvYWRlZCcsIGZyb250ZW5kSlMpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZnJvbnRlbmRKUygpIHtcbiAgICBuZXcgQ2l0YXRpb25zKCk7XG59XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9zcmMvbGliL2pzL0Zyb250ZW5kLnRzIl0sInNvdXJjZVJvb3QiOiIifQ==")}},[576]);