From 9bc79f4eff6bfd150244cb697b4886cf7c1fd7bb Mon Sep 17 00:00:00 2001 From: atisawd Date: Thu, 25 Apr 2019 15:50:04 +0530 Subject: [PATCH] css change --- index.html | 2 +- static/dist/0.bundle.js | 2098 ++++++++++- static/dist/0.bundle.js.gz | Bin 26426 -> 20337 bytes static/dist/1.bundle.js | 254 +- static/dist/1.bundle.js.gz | Bin 13415 -> 13408 bytes static/dist/2.bundle.js | 57 +- static/dist/2.bundle.js.gz | Bin 4690 -> 4688 bytes static/dist/3.bundle.js | 3037 +++++++++++++++- static/dist/3.bundle.js.gz | Bin 54701 -> 54704 bytes static/dist/bundle.js | 6677 +++++++++++++++++++++++++++++++++++- static/dist/bundle.js.gz | Bin 127281 -> 127377 bytes 11 files changed, 12059 insertions(+), 66 deletions(-) diff --git a/index.html b/index.html index a8d6a32..109f54d 100644 --- a/index.html +++ b/index.html @@ -68,6 +68,6 @@
- + diff --git a/static/dist/0.bundle.js b/static/dist/0.bundle.js index 1faff13..5c84374 100644 --- a/static/dist/0.bundle.js +++ b/static/dist/0.bundle.js @@ -1,3 +1,2095 @@ -webpackJsonp([0],{491:function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function a(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function o(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0});var s=function(){function e(e,t){for(var n=0;n=0||(r[n]=e[n]);return r}function a(e,t){if(null==e)return{};var n,i,a=r(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}function o(e){var t=e.children,n=a(e,["children"]);return l.a.createElement("div",i({"data-simplebar":!0},n),l.a.createElement("div",{className:"simplebar-wrapper"},l.a.createElement("div",{className:"simplebar-height-auto-observer-wrapper"},l.a.createElement("div",{className:"simplebar-height-auto-observer"})),l.a.createElement("div",{className:"simplebar-mask"},l.a.createElement("div",{className:"simplebar-offset"},l.a.createElement("div",{className:"simplebar-content"},t))),l.a.createElement("div",{className:"simplebar-placeholder"})),l.a.createElement("div",{className:"simplebar-track simplebar-horizontal"},l.a.createElement("div",{className:"simplebar-scrollbar"})),l.a.createElement("div",{className:"simplebar-track simplebar-vertical"},l.a.createElement("div",{className:"simplebar-scrollbar"})))}Object.defineProperty(t,"__esModule",{value:!0});var s=n(5),l=n.n(s),c=n(11),h=n.n(c);n(576);o.propTypes={children:h.a.node},t.default=o},576:function(e,t,n){"use strict";function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function r(e,t){for(var n=0;nMath.ceil(this.axis.x.track.rect.width),this.axis.y.isOverflowing=(this.scrollbarWidth?this.contentEl.scrollHeight:this.contentEl.scrollHeight-this.minScrollbarWidth)>Math.ceil(this.axis.y.track.rect.height),this.axis.x.isOverflowing="hidden"!==this.elStyles.overflowX&&this.axis.x.isOverflowing,this.axis.y.isOverflowing="hidden"!==this.elStyles.overflowY&&this.axis.y.isOverflowing,this.axis.x.forceVisible="x"===this.options.forceVisible||!0===this.options.forceVisible,this.axis.y.forceVisible="y"===this.options.forceVisible||!0===this.options.forceVisible,this.axis.x.scrollbar.size=this.getScrollbarSize("x"),this.axis.y.scrollbar.size=this.getScrollbarSize("y"),this.axis.x.scrollbar.el.style.width="".concat(this.axis.x.scrollbar.size,"px"),this.axis.y.scrollbar.el.style.height="".concat(this.axis.y.scrollbar.size,"px"),this.positionScrollbar("x"),this.positionScrollbar("y"),this.toggleTrackVisibility("x"),this.toggleTrackVisibility("y"),this.hideNativeScrollbar()}},{key:"getScrollbarSize",value:function(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"y",n=this.scrollbarWidth?this.contentEl[this.axis[t].scrollSizeAttr]:this.contentEl[this.axis[t].scrollSizeAttr]-this.minScrollbarWidth,i=this.axis[t].track.rect[this.axis[t].sizeAttr];if(this.axis[t].isOverflowing){var r=i/n;return e=Math.max(~~(r*i),this.options.scrollbarMinSize),this.options.scrollbarMaxSize&&(e=Math.min(e,this.options.scrollbarMaxSize)),e}}},{key:"positionScrollbar",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"y",n=this.contentEl[this.axis[t].scrollSizeAttr],i=this.axis[t].track.rect[this.axis[t].sizeAttr],r=parseInt(this.elStyles[this.axis[t].sizeAttr],10),a=this.axis[t].scrollbar,o=this.contentEl[this.axis[t].scrollOffsetAttr];o="x"===t&&this.isRtl&&e.getRtlHelpers().isRtlScrollingInverted?-o:o;var s=o/(n-r),l=~~((i-a.size)*s);l="x"===t&&this.isRtl&&e.getRtlHelpers().isRtlScrollbarInverted?l+(i-a.size):l,a.el.style.transform="x"===t?"translate3d(".concat(l,"px, 0, 0)"):"translate3d(0, ".concat(l,"px, 0)")}},{key:"toggleTrackVisibility",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"y",t=this.axis[e].track.el,n=this.axis[e].scrollbar.el;this.axis[e].isOverflowing||this.axis[e].forceVisible?(t.style.visibility="visible",this.contentEl.style[this.axis[e].overflowAttr]="scroll"):(t.style.visibility="hidden",this.contentEl.style[this.axis[e].overflowAttr]="hidden"),this.axis[e].isOverflowing?n.style.visibility="visible":n.style.visibility="hidden"}},{key:"hideNativeScrollbar",value:function(){if(this.offsetEl.style[this.isRtl?"left":"right"]=this.axis.y.isOverflowing||this.axis.y.forceVisible?"-".concat(this.scrollbarWidth||this.minScrollbarWidth,"px"):0,this.offsetEl.style.bottom=this.axis.x.isOverflowing||this.axis.x.forceVisible?"-".concat(this.scrollbarWidth||this.minScrollbarWidth,"px"):0,!this.scrollbarWidth){var e=[this.isRtl?"paddingLeft":"paddingRight"];this.contentEl.style[e]=this.axis.y.isOverflowing||this.axis.y.forceVisible?"calc(".concat(this.elStyles[e]," + ").concat(this.minScrollbarWidth,"px)"):this.elStyles[e],this.contentEl.style.paddingBottom=this.axis.x.isOverflowing||this.axis.x.forceVisible?"calc(".concat(this.elStyles.paddingBottom," + ").concat(this.minScrollbarWidth,"px)"):this.elStyles.paddingBottom}}},{key:"onMouseMoveForAxis",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"y";this.axis[e].track.rect=this.axis[e].track.el.getBoundingClientRect(),this.axis[e].scrollbar.rect=this.axis[e].scrollbar.el.getBoundingClientRect(),this.isWithinBounds(this.axis[e].scrollbar.rect)?this.axis[e].scrollbar.el.classList.add(this.classNames.hover):this.axis[e].scrollbar.el.classList.remove(this.classNames.hover),this.isWithinBounds(this.axis[e].track.rect)?(this.showScrollbar(e),this.axis[e].track.el.classList.add(this.classNames.hover)):this.axis[e].track.el.classList.remove(this.classNames.hover)}},{key:"onMouseLeaveForAxis",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"y";this.axis[e].track.el.classList.remove(this.classNames.hover),this.axis[e].scrollbar.el.classList.remove(this.classNames.hover)}},{key:"showScrollbar",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"y",t=this.axis[e].scrollbar.el;this.axis[e].isVisible||(t.classList.add(this.classNames.visible),this.axis[e].isVisible=!0),this.options.autoHide&&this.hideScrollbars()}},{key:"onDragStart",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"y",n=this.axis[t].scrollbar.el,i="y"===t?e.pageY:e.pageX;this.axis[t].dragOffset=i-n.getBoundingClientRect()[this.axis[t].offsetAttr],this.draggedAxis=t,document.addEventListener("mousemove",this.drag),document.addEventListener("mouseup",this.onEndDrag)}},{key:"getScrollElement",value:function(){return this.contentEl}},{key:"removeListeners",value:function(){this.options.autoHide&&this.el.removeEventListener("mouseenter",this.onMouseEnter),this.contentEl.removeEventListener("scroll",this.onScroll),window.removeEventListener("resize",this.onWindowResize),this.mutationObserver&&this.mutationObserver.disconnect(),this.resizeObserver.disconnect()}},{key:"unMount",value:function(){this.removeListeners(),this.el.SimpleBar=null}},{key:"isChildNode",value:function(e){return null!==e&&(e===this.el||this.isChildNode(e.parentNode))}},{key:"isWithinBounds",value:function(e){return this.mouseX>=e.left&&this.mouseX<=e.left+e.width&&this.mouseY>=e.top&&this.mouseY<=e.top+e.height}}],[{key:"getRtlHelpers",value:function(){var t=document.createElement("div");t.innerHTML='
';var n=t.firstElementChild;document.body.appendChild(n);var i=n.firstElementChild;n.scrollLeft=0;var r=e.getOffset(n),a=e.getOffset(i);n.scrollLeft=999;var o=e.getOffset(i);return{isRtlScrollingInverted:r.left!==a.left&&a.left-o.left!=0,isRtlScrollbarInverted:r.left!==a.left}}},{key:"initHtmlApi",value:function(){this.initDOMLoadedElements=this.initDOMLoadedElements.bind(this),"undefined"!=typeof MutationObserver&&(this.globalObserver=new MutationObserver(function(t){t.forEach(function(t){Array.from(t.addedNodes).forEach(function(t){1===t.nodeType&&(t.hasAttribute("data-simplebar")?!t.SimpleBar&&new e(t,e.getElOptions(t)):Array.from(t.querySelectorAll("[data-simplebar]")).forEach(function(t){!t.SimpleBar&&new e(t,e.getElOptions(t))}))}),Array.from(t.removedNodes).forEach(function(e){1===e.nodeType&&(e.hasAttribute("data-simplebar")?e.SimpleBar&&e.SimpleBar.unMount():Array.from(e.querySelectorAll("[data-simplebar]")).forEach(function(e){e.SimpleBar&&e.SimpleBar.unMount()}))})})}),this.globalObserver.observe(document,{childList:!0,subtree:!0})),"complete"===document.readyState||"loading"!==document.readyState&&!document.documentElement.doScroll?window.setTimeout(this.initDOMLoadedElements):(document.addEventListener("DOMContentLoaded",this.initDOMLoadedElements),window.addEventListener("load",this.initDOMLoadedElements))}},{key:"getElOptions",value:function(e){return Array.from(e.attributes).reduce(function(e,t){var n=t.name.match(/data-simplebar-(.+)/);if(n){var i=n[1].replace(/\W+(.)/g,function(e,t){return t.toUpperCase()});switch(t.value){case"true":e[i]=!0;break;case"false":e[i]=!1;break;case void 0:e[i]=!0;break;default:e[i]=t.value}}return e},{})}},{key:"removeObserver",value:function(){this.globalObserver.disconnect()}},{key:"initDOMLoadedElements",value:function(){document.removeEventListener("DOMContentLoaded",this.initDOMLoadedElements),window.removeEventListener("load",this.initDOMLoadedElements),Array.from(document.querySelectorAll("[data-simplebar]")).forEach(function(t){t.SimpleBar||new e(t,e.getElOptions(t))})}},{key:"getOffset",value:function(e){var t=e.getBoundingClientRect();return{top:t.top+(window.pageYOffset||document.documentElement.scrollTop),left:t.left+(window.pageXOffset||document.documentElement.scrollLeft)}}}]),e}();z.defaultOptions={autoHide:!0,forceVisible:!1,classNames:{content:"simplebar-content",offset:"simplebar-offset",mask:"simplebar-mask",wrapper:"simplebar-wrapper",placeholder:"simplebar-placeholder",scrollbar:"simplebar-scrollbar",track:"simplebar-track",heightAutoObserverWrapperEl:"simplebar-height-auto-observer-wrapper",heightAutoObserverEl:"simplebar-height-auto-observer",visible:"simplebar-visible",horizontal:"simplebar-horizontal",vertical:"simplebar-vertical",hover:"simplebar-hover"},scrollbarMinSize:25,scrollbarMaxSize:0,timeout:1e3},_.a&&z.initHtmlApi()},577:function(e,t,n){var i,r,a;/*! scrollbarWidth.js v0.1.3 | felixexter | MIT | https://github.com/felixexter/scrollbarWidth */ -!function(n,o){r=[],i=o,void 0!==(a="function"==typeof i?i.apply(t,r):i)&&(e.exports=a)}(0,function(){"use strict";function e(){if("undefined"==typeof document)return 0;var e,t=document.body,n=document.createElement("div"),i=n.style;return i.position="absolute",i.top=i.left="-9999px",i.width=i.height="100px",i.overflow="scroll",t.appendChild(n),e=n.offsetWidth-n.clientWidth,t.removeChild(n),e}return e})},578:function(e,t,n){(function(t){function n(e,t,n){function i(t){var n=m,i=v;return m=v=void 0,_=t,b=e.apply(i,n)}function a(e){return _=e,g=setTimeout(h,t),z?i(e):b}function o(e){var n=e-y,i=e-_,r=t-n;return k?E(r,x-i):r}function c(e){var n=e-y,i=e-_;return void 0===y||n>=t||n<0||k&&i>=x}function h(){var e=O();if(c(e))return d(e);g=setTimeout(h,o(e))}function d(e){return g=void 0,S&&m?i(e):(m=v=void 0,b)}function p(){void 0!==g&&clearTimeout(g),_=0,m=y=v=g=void 0}function u(){return void 0===g?b:d(O())}function f(){var e=O(),n=c(e);if(m=arguments,v=this,y=e,n){if(void 0===g)return a(y);if(k)return g=setTimeout(h,t),i(y)}return void 0===g&&(g=setTimeout(h,t)),b}var m,v,x,b,g,y,_=0,z=!1,k=!1,S=!0;if("function"!=typeof e)throw new TypeError(l);return t=s(t)||0,r(n)&&(z=!!n.leading,k="maxWait"in n,x=k?w(s(n.maxWait)||0,t):x,S="trailing"in n?!!n.trailing:S),f.cancel=p,f.flush=u,f}function i(e,t,i){var a=!0,o=!0;if("function"!=typeof e)throw new TypeError(l);return r(i)&&(a="leading"in i?!!i.leading:a,o="trailing"in i?!!i.trailing:o),n(e,t,{leading:a,maxWait:t,trailing:o})}function r(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}function a(e){return!!e&&"object"==typeof e}function o(e){return"symbol"==typeof e||a(e)&&y.call(e)==h}function s(e){if("number"==typeof e)return e;if(o(e))return c;if(r(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=r(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=e.replace(d,"");var n=u.test(e);return n||f.test(e)?m(e.slice(2),n?2:8):p.test(e)?c:+e}var l="Expected a function",c=NaN,h="[object Symbol]",d=/^\s+|\s+$/g,p=/^[-+]0x[0-9a-f]+$/i,u=/^0b[01]+$/i,f=/^0o[0-7]+$/i,m=parseInt,v="object"==typeof t&&t&&t.Object===Object&&t,x="object"==typeof self&&self&&self.Object===Object&&self,b=v||x||Function("return this")(),g=Object.prototype,y=g.toString,w=Math.max,E=Math.min,O=function(){return b.Date.now()};e.exports=i}).call(t,n(59))},579:function(e,t,n){(function(t){function n(e,t,n){function r(t){var n=m,i=v;return m=v=void 0,_=t,b=e.apply(i,n)}function a(e){return _=e,g=setTimeout(h,t),z?r(e):b}function l(e){var n=e-O,i=e-_,r=t-n;return k?w(r,x-i):r}function c(e){var n=e-O,i=e-_;return void 0===O||n>=t||n<0||k&&i>=x}function h(){var e=E();if(c(e))return d(e);g=setTimeout(h,l(e))}function d(e){return g=void 0,S&&m?r(e):(m=v=void 0,b)}function p(){void 0!==g&&clearTimeout(g),_=0,m=O=v=g=void 0}function u(){return void 0===g?b:d(E())}function f(){var e=E(),n=c(e);if(m=arguments,v=this,O=e,n){if(void 0===g)return a(O);if(k)return g=setTimeout(h,t),r(O)}return void 0===g&&(g=setTimeout(h,t)),b}var m,v,x,b,g,O,_=0,z=!1,k=!1,S=!0;if("function"!=typeof e)throw new TypeError(s);return t=o(t)||0,i(n)&&(z=!!n.leading,k="maxWait"in n,x=k?y(o(n.maxWait)||0,t):x,S="trailing"in n?!!n.trailing:S),f.cancel=p,f.flush=u,f}function i(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}function r(e){return!!e&&"object"==typeof e}function a(e){return"symbol"==typeof e||r(e)&&g.call(e)==c}function o(e){if("number"==typeof e)return e;if(a(e))return l;if(i(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=i(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=e.replace(h,"");var n=p.test(e);return n||u.test(e)?f(e.slice(2),n?2:8):d.test(e)?l:+e}var s="Expected a function",l=NaN,c="[object Symbol]",h=/^\s+|\s+$/g,d=/^[-+]0x[0-9a-f]+$/i,p=/^0b[01]+$/i,u=/^0o[0-7]+$/i,f=parseInt,m="object"==typeof t&&t&&t.Object===Object&&t,v="object"==typeof self&&self&&self.Object===Object&&self,x=m||v||Function("return this")(),b=Object.prototype,g=b.toString,y=Math.max,w=Math.min,E=function(){return x.Date.now()};e.exports=n}).call(t,n(59))},580:function(e,t,n){(function(t){function n(e,t){return null==e?void 0:e[t]}function i(e){var t=!1;if(null!=e&&"function"!=typeof e.toString)try{t=!!(e+"")}catch(e){}return t}function r(e){var t=-1,n=e?e.length:0;for(this.clear();++t-1}function m(e,t){var n=this.__data__,i=E(n,e);return i<0?n.push([e,t]):n[i][1]=t,this}function v(e){var t=-1,n=e?e.length:0;for(this.clear();++t0},e.prototype.connect_=function(){u&&!this.connected_&&(document.addEventListener("transitionend",this.onTransitionEnd_),window.addEventListener("resize",this.refresh),g?(this.mutationsObserver_=new MutationObserver(this.refresh),this.mutationsObserver_.observe(document,{attributes:!0,childList:!0,characterData:!0,subtree:!0})):(document.addEventListener("DOMSubtreeModified",this.refresh),this.mutationEventsAdded_=!0),this.connected_=!0)},e.prototype.disconnect_=function(){u&&this.connected_&&(document.removeEventListener("transitionend",this.onTransitionEnd_),window.removeEventListener("resize",this.refresh),this.mutationsObserver_&&this.mutationsObserver_.disconnect(),this.mutationEventsAdded_&&document.removeEventListener("DOMSubtreeModified",this.refresh),this.mutationsObserver_=null,this.mutationEventsAdded_=!1,this.connected_=!1)},e.prototype.onTransitionEnd_=function(e){var t=e.propertyName,n=void 0===t?"":t;b.some(function(e){return!!~n.indexOf(e)})&&this.refresh()},e.getInstance=function(){return this.instance_||(this.instance_=new e),this.instance_},e.instance_=null,e}(),w=function(e,t){for(var n=0,i=Object.keys(t);n0},e}(),C="undefined"!=typeof WeakMap?new WeakMap:new p,M=function(){function e(t){if(!(this instanceof e))throw new TypeError("Cannot call a class as a function.");if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");var n=y.getInstance(),i=new S(t,n,this);C.set(this,i)}return e}();["observe","unobserve","disconnect"].forEach(function(e){M.prototype[e]=function(){var t;return(t=C.get(this))[e].apply(t,arguments)}});var N=function(){return void 0!==f.ResizeObserver?f.ResizeObserver:M}();t.a=N}).call(t,n(59))},582:function(e,t){var n=!("undefined"==typeof window||!window.document||!window.document.createElement);e.exports=n},583:function(e,t,n){var i=n(584);"string"==typeof i&&(i=[[e.i,i,""]]);var r={hmr:!0};r.transform=void 0;n(586)(i,r);i.locals&&(e.exports=i.locals)},584:function(e,t,n){t=e.exports=n(585)(!1),t.push([e.i,'[data-simplebar]{position:relative;flex-direction:column;flex-wrap:wrap;justify-content:flex-start;align-content:flex-start;align-items:flex-start}.simplebar-wrapper,[data-simplebar]{width:inherit;height:inherit;max-width:inherit;max-height:inherit}.simplebar-wrapper{overflow:hidden}.simplebar-mask{direction:inherit;overflow:hidden;width:auto!important;height:auto!important;z-index:0}.simplebar-mask,.simplebar-offset{position:absolute;padding:0;margin:0;left:0;top:0;bottom:0;right:0}.simplebar-offset{direction:inherit!important;box-sizing:inherit!important;resize:none!important;-webkit-overflow-scrolling:touch}.simplebar-content{direction:inherit;box-sizing:border-box!important;position:relative;display:block;height:100%;width:auto;visibility:visible;overflow:scroll;max-width:100%;max-height:100%}.simplebar-placeholder{max-height:100%;max-width:100%;width:100%;pointer-events:none}.simplebar-height-auto-observer-wrapper{box-sizing:inherit!important;height:100%;width:inherit;max-width:1px;position:relative;float:left;max-height:1px;overflow:hidden;z-index:-1;padding:0;margin:0;pointer-events:none;flex-grow:inherit;flex-shrink:0;flex-basis:0}.simplebar-height-auto-observer{box-sizing:inherit;display:block;opacity:0;position:absolute;top:0;left:0;height:1000%;width:1000%;min-height:1px;min-width:1px;overflow:hidden;pointer-events:none;z-index:-1}.simplebar-track{z-index:1;position:absolute;right:0;bottom:0;pointer-events:none}.simplebar-scrollbar{position:absolute;right:2px;width:7px;min-height:10px}.simplebar-scrollbar:before{position:absolute;content:"";background:#000;border-radius:7px;left:0;right:0;opacity:0;transition:opacity .2s linear}.simplebar-track .simplebar-scrollbar.simplebar-visible:before{opacity:.5;transition:opacity 0s linear}.simplebar-track.simplebar-vertical{top:0;width:11px}.simplebar-track.simplebar-vertical .simplebar-scrollbar:before{top:2px;bottom:2px}.simplebar-track.simplebar-horizontal{left:0;height:11px}.simplebar-track.simplebar-horizontal .simplebar-scrollbar:before{height:100%;left:2px;right:2px}.simplebar-track.simplebar-horizontal .simplebar-scrollbar{right:auto;left:0;top:2px;height:7px;min-height:0;min-width:10px;width:auto}[data-simplebar-direction=rtl] .simplebar-track.simplebar-vertical{right:auto;left:0}.hs-dummy-scrollbar-size{direction:rtl;position:fixed;opacity:0;visibility:hidden;height:500px;width:500px;overflow-y:hidden;overflow-x:scroll}',""])},585:function(e,t){function n(e,t){var n=e[1]||"",r=e[3];if(!r)return n;if(t&&"function"==typeof btoa){var a=i(r);return[n].concat(r.sources.map(function(e){return"/*# sourceURL="+r.sourceRoot+e+" */"})).concat([a]).join("\n")}return[n].join("\n")}function i(e){return"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(e))))+" */"}e.exports=function(e){var t=[];return t.toString=function(){return this.map(function(t){var i=n(t,e);return t[2]?"@media "+t[2]+"{"+i+"}":i}).join("")},t.i=function(e,n){"string"==typeof e&&(e=[[null,e,""]]);for(var i={},r=0;r=0&&g.splice(t,1)}function s(e){var t=document.createElement("style");return e.attrs.type="text/css",c(t,e.attrs),a(e,t),t}function l(e){var t=document.createElement("link");return e.attrs.type="text/css",e.attrs.rel="stylesheet",c(t,e.attrs),a(e,t),t}function c(e,t){Object.keys(t).forEach(function(n){e.setAttribute(n,t[n])})}function h(e,t){var n,i,r,a;if(t.transform&&e.css){if(!(a=t.transform(e.css)))return function(){};e.css=a}if(t.singleton){var c=b++;n=x||(x=s(t)),i=d.bind(null,n,c,!1),r=d.bind(null,n,c,!0)}else e.sourceMap&&"function"==typeof URL&&"function"==typeof URL.createObjectURL&&"function"==typeof URL.revokeObjectURL&&"function"==typeof Blob&&"function"==typeof btoa?(n=l(t),i=u.bind(null,n,t),r=function(){o(n),n.href&&URL.revokeObjectURL(n.href)}):(n=s(t),i=p.bind(null,n),r=function(){o(n)});return i(e),function(t){if(t){if(t.css===e.css&&t.media===e.media&&t.sourceMap===e.sourceMap)return;i(e=t)}else r()}}function d(e,t,n,i){var r=n?"":i.css;if(e.styleSheet)e.styleSheet.cssText=w(t,r);else{var a=document.createTextNode(r),o=e.childNodes;o[t]&&e.removeChild(o[t]),o.length?e.insertBefore(a,o[t]):e.appendChild(a)}}function p(e,t){var n=t.css,i=t.media;if(i&&e.setAttribute("media",i),e.styleSheet)e.styleSheet.cssText=n;else{for(;e.firstChild;)e.removeChild(e.firstChild);e.appendChild(document.createTextNode(n))}}function u(e,t,n){var i=n.css,r=n.sourceMap,a=void 0===t.convertToAbsoluteUrls&&r;(t.convertToAbsoluteUrls||a)&&(i=y(i)),r&&(i+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(r))))+" */");var o=new Blob([i],{type:"text/css"}),s=e.href;e.href=URL.createObjectURL(o),s&&URL.revokeObjectURL(s)}var f={},m=function(e){var t;return function(){return void 0===t&&(t=e.apply(this,arguments)),t}}(function(){return window&&document&&document.all&&!window.atob}),v=function(e){var t={};return function(n){if(void 0===t[n]){var i=e.call(this,n);if(i instanceof window.HTMLIFrameElement)try{i=i.contentDocument.head}catch(e){i=null}t[n]=i}return t[n]}}(function(e){return document.querySelector(e)}),x=null,b=0,g=[],y=n(587);e.exports=function(e,t){if("undefined"!=typeof DEBUG&&DEBUG&&"object"!=typeof document)throw new Error("The style-loader cannot be used in a non-browser environment");t=t||{},t.attrs="object"==typeof t.attrs?t.attrs:{},t.singleton||"boolean"==typeof t.singleton||(t.singleton=m()),t.insertInto||(t.insertInto="head"),t.insertAt||(t.insertAt="bottom");var n=r(e,t);return i(n,t),function(e){for(var a=[],o=0;o'\n )\n ),\n _react2.default.createElement(\n \"p\",\n null,\n \"To use an icon, add the \",\n _react2.default.createElement(\n \"code\",\n { className: \"side\" },\n \"box-icon\"\n ),\n \" element to the location where the icon should be displayed:\"\n ),\n _react2.default.createElement(\n _hljsWrapper2.default,\n null,\n \" \",\n _react2.default.createElement(\n \"code\",\n { className: \"html\" },\n ''\n )\n ),\n _react2.default.createElement(\n \"p\",\n null,\n \" To use solid icons or logos add attribute \",\n _react2.default.createElement(\n \"code\",\n { className: \"side\" },\n \"type\"\n ),\n \" as solid or logo \"\n ),\n _react2.default.createElement(\n _hljsWrapper2.default,\n null,\n \" \",\n _react2.default.createElement(\n \"code\",\n { className: \"html\" },\n '',\n _react2.default.createElement(\"br\", null),\n ''\n )\n ),\n _react2.default.createElement(\n \"p\",\n null,\n \"The \",\n _react2.default.createElement(\n \"code\",\n { className: \"side\" },\n \"box-icon\"\n ),\n \" custom element supports the following attributes:\"\n ),\n _react2.default.createElement(\n _hljsWrapper2.default,\n null,\n \" \",\n _react2.default.createElement(\n \"code\",\n { className: \"html\" },\n ''\n )\n )\n ),\n _react2.default.createElement(\n \"h3\",\n { id: \"usage-as-font\" },\n \"Usage as a Font\"\n ),\n _react2.default.createElement(\n \"h4\",\n { id: \"import-css\" },\n \"Import the CSS\"\n ),\n _react2.default.createElement(\n \"div\",\n null,\n _react2.default.createElement(\n \"p\",\n null,\n \"Copy-paste the stylesheet \",\n _react2.default.createElement(\n \"code\",\n { className: \"side\" },\n \"link\"\n ),\n \" into your \",\n _react2.default.createElement(\n \"code\",\n { className: \"side\" },\n \"head\"\n ),\n \" to load our CSS\"\n ),\n \" \",\n _react2.default.createElement(\n _hljsWrapper2.default,\n null,\n \" \",\n _react2.default.createElement(\n \"code\",\n { className: \"html\" },\n \"\",\n _react2.default.createElement(\"br\", null),\n \"\",\n \" \",\n _react2.default.createElement(\"br\", null),\n \"\"\n )\n ),\n _react2.default.createElement(\n \"p\",\n null,\n \"This will load boxicons font into your webpage\"\n )\n ),\n _react2.default.createElement(\n \"h4\",\n { id: \"html\" },\n \"HTML\"\n ),\n _react2.default.createElement(\n \"div\",\n null,\n _react2.default.createElement(\n \"p\",\n null,\n \" To use an icon on your page, add a prefix\",\n _react2.default.createElement(\n \"code\",\n { className: \"side\" },\n \"bx-\"\n ),\n \" for regular icons, \",\n _react2.default.createElement(\n \"code\",\n { className: \"side\" },\n \"bxs-\"\n ),\n \" for solid icons & \",\n _react2.default.createElement(\n \"code\",\n { className: \"side\" },\n \"bxl-\"\n ),\n \" for logos followed by the icon name and seperate class with the\",\n _react2.default.createElement(\n \"code\",\n { className: \"side\" },\n \"bx\"\n ),\n \":\"\n ),\n \" \",\n _react2.default.createElement(\n _hljsWrapper2.default,\n null,\n \" \",\n _react2.default.createElement(\n \"code\",\n { className: \"html\" },\n \"\",\n _react2.default.createElement(\"br\", null),\n \"\",\n _react2.default.createElement(\"br\", null),\n \"\"\n )\n ),\n \"You can see the names of all the icons \",\n _react2.default.createElement(\n _reactRouterDom.Link,\n { to: \"/cheatsheet\" },\n \"here\"\n )\n ),\n _react2.default.createElement(\n \"h3\",\n { id: \"starter-template\" },\n \"Starter Templates\"\n ),\n _react2.default.createElement(\n \"div\",\n null,\n _react2.default.createElement(\n \"p\",\n null,\n \" Create an HTML document and copy-paste the starter template\"\n ),\n \" \",\n _react2.default.createElement(\n _hljsWrapper2.default,\n null,\n \" \",\n _react2.default.createElement(\n \"code\",\n { className: \"html\" },\n \"\",\n \" \",\n _react2.default.createElement(\"br\", null),\n \"\",\n _react2.default.createElement(\"br\", null),\n _react2.default.createElement(\n \"span\",\n { className: \"tab\" },\n \"\"\n ),\n _react2.default.createElement(\"br\", null),\n _react2.default.createElement(\n \"span\",\n { className: \"tab-2\" },\n \"\"\n ),\n _react2.default.createElement(\"br\", null),\n _react2.default.createElement(\n \"span\",\n { className: \"tab-2\" },\n \" \",\n \"\"\n ),\n _react2.default.createElement(\"br\", null),\n _react2.default.createElement(\n \"span\",\n { className: \"tab-2\" },\n \" \",\n \"\"\n ),\n _react2.default.createElement(\"br\", null),\n _react2.default.createElement(\n \"span\",\n { className: \"tab-2\" },\n \"\"\n ),\n _react2.default.createElement(\"br\", null),\n _react2.default.createElement(\n \"span\",\n { className: \"tab-2\" },\n \"Hello, Boxicons!\"\n ),\n _react2.default.createElement(\"br\", null),\n _react2.default.createElement(\n \"span\",\n { className: \"tab\" },\n \"\"\n ),\n _react2.default.createElement(\"br\", null),\n _react2.default.createElement(\n \"span\",\n { className: \"tab\" },\n \"\"\n ),\n _react2.default.createElement(\"br\", null),\n _react2.default.createElement(\n \"span\",\n { className: \"tab-2\" },\n \" \",\n \"

Hello, Boxicons!

\"\n ),\n _react2.default.createElement(\"br\", null),\n _react2.default.createElement(\n \"span\",\n { className: \"tab-2\" },\n \"\"\n ),\n _react2.default.createElement(\"br\", null),\n _react2.default.createElement(\n \"span\",\n { className: \"tab-2\" },\n \"\"\n ),\n _react2.default.createElement(\"br\", null),\n _react2.default.createElement(\n \"span\",\n { className: \"tab-2\" },\n \"\"\n ),\n _react2.default.createElement(\"br\", null),\n _react2.default.createElement(\n \"span\",\n { className: \"tab\" },\n \" \"\n ),\n _react2.default.createElement(\"br\", null),\n \"\"\n )\n ),\n _react2.default.createElement(\n \"p\",\n null,\n \"A template for usage with the web component instead of icon font\"\n ),\n \" \",\n _react2.default.createElement(\n _hljsWrapper2.default,\n null,\n \" \",\n _react2.default.createElement(\n \"code\",\n { className: \"html\" },\n \"\",\n \" \",\n _react2.default.createElement(\"br\", null),\n \"\",\n _react2.default.createElement(\"br\", null),\n _react2.default.createElement(\n \"span\",\n { className: \"tab\" },\n \"\"\n ),\n _react2.default.createElement(\"br\", null),\n _react2.default.createElement(\n \"span\",\n { className: \"tab-2\" },\n \"\"\n ),\n _react2.default.createElement(\"br\", null),\n _react2.default.createElement(\n \"span\",\n { className: \"tab-2\" },\n \" \",\n \"\"\n ),\n _react2.default.createElement(\"br\", null),\n _react2.default.createElement(\n \"span\",\n { className: \"tab-2\" },\n \" \",\n \"\"\n ),\n _react2.default.createElement(\"br\", null),\n _react2.default.createElement(\n \"span\",\n { className: \"tab-2\" },\n \"\"\n ),\n _react2.default.createElement(\"br\", null),\n _react2.default.createElement(\n \"span\",\n { className: \"tab-2\" },\n \"Hello, Boxicons!\"\n ),\n _react2.default.createElement(\"br\", null),\n _react2.default.createElement(\n \"span\",\n { className: \"tab\" },\n \"\"\n ),\n _react2.default.createElement(\"br\", null),\n _react2.default.createElement(\n \"span\",\n { className: \"tab\" },\n \"\"\n ),\n _react2.default.createElement(\"br\", null),\n _react2.default.createElement(\n \"span\",\n { className: \"tab-2\" },\n \" \",\n \"

Hello, Boxicons!

\"\n ),\n _react2.default.createElement(\"br\", null),\n _react2.default.createElement(\n \"span\",\n { className: \"tab-2\" },\n \"\"\n ),\n _react2.default.createElement(\"br\", null),\n _react2.default.createElement(\n \"span\",\n { className: \"tab-2\" },\n \"\"\n ),\n _react2.default.createElement(\"br\", null),\n _react2.default.createElement(\n \"span\",\n { className: \"tab-2\" },\n \"\"\n ),\n _react2.default.createElement(\"br\", null),\n _react2.default.createElement(\n \"span\",\n { className: \"tab\" },\n \" \"\n ),\n _react2.default.createElement(\"br\", null),\n \"\"\n )\n )\n ),\n _react2.default.createElement(\n \"h3\",\n { id: \"styling\" },\n \"Styling\"\n ),\n _react2.default.createElement(\n \"h4\",\n { id: \"sizing\" },\n \"Sizing\"\n ),\n _react2.default.createElement(\n \"div\",\n null,\n _react2.default.createElement(\n \"p\",\n null,\n \" You can change size of the icon with\",\n _react2.default.createElement(\n \"code\",\n { className: \"side\" },\n \"font-size\"\n ),\n \" CSS. It will inherit the \",\n _react2.default.createElement(\n \"code\",\n { className: \"side\" },\n \"font-size\"\n ),\n \"from the parent by default. There are fixed sizes you can add to the icon by adding classes\",\n _react2.default.createElement(\n \"code\",\n { className: \"side\" },\n \"bx-xs\"\n ),\n \", \",\n _react2.default.createElement(\n \"code\",\n { className: \"side\" },\n \"bx-sm\"\n ),\n \", \",\n _react2.default.createElement(\n \"code\",\n { className: \"side\" },\n \"bx-md\"\n ),\n \" and \",\n _react2.default.createElement(\n \"code\",\n { className: \"side\" },\n \"bx-lg\"\n )\n ),\n \" \",\n _react2.default.createElement(\n IconDisplay,\n null,\n _react2.default.createElement(\"i\", { className: \"bx bxs-smiley-happy bx-xs \" }),\n _react2.default.createElement(\"i\", { className: \"bx bxs-smiley-happy bx-sm\" }),\n _react2.default.createElement(\"i\", { className: \"bx bxs-smiley-happy bx-md\" }),\n _react2.default.createElement(\"i\", { className: \"bx bxs-smiley-happy bx-lg\" })\n ),\n _react2.default.createElement(\n _hljsWrapper2.default,\n null,\n \" \",\n _react2.default.createElement(\n \"code\",\n { className: \"html display\" },\n \"\",\n \"\",\n _react2.default.createElement(\"br\", null),\n \"\",\n _react2.default.createElement(\"br\", null),\n \"\",\n _react2.default.createElement(\"br\", null),\n \"\",\n _react2.default.createElement(\"br\", null),\n _react2.default.createElement(\"br\", null),\n \"\",\n _react2.default.createElement(\"br\", null),\n _react2.default.createElement(\"br\", null),\n \"\",\n _react2.default.createElement(\"br\", null)\n )\n ),\n _react2.default.createElement(\"br\", null)\n ),\n _react2.default.createElement(\n \"h4\",\n { id: \"rotation-flipping\" },\n \"Rotation & Flipping\"\n ),\n _react2.default.createElement(\n \"div\",\n null,\n _react2.default.createElement(\n \"p\",\n null,\n \" Rotate the icons using classes \",\n _react2.default.createElement(\n \"code\",\n { className: \"side\" },\n \"bx-rotate-90\"\n ),\n \", \",\n _react2.default.createElement(\n \"code\",\n { className: \"side\" },\n \"bx-rotate-180\"\n ),\n \" and \",\n _react2.default.createElement(\n \"code\",\n { className: \"side\" },\n \"bx-rotate-270\"\n ),\n \" or Flip the icons using \",\n _react2.default.createElement(\n \"code\",\n { className: \"side\" },\n \"bx-flip-horizontal\"\n ),\n \" and \",\n _react2.default.createElement(\n \"code\",\n { className: \"side\" },\n \"bx-flip-vertical\"\n )\n ),\n _react2.default.createElement(\n IconDisplay,\n null,\n _react2.default.createElement(\"i\", { className: \"bx bxs-like bx-rotate-90 bx-md\" }),\n _react2.default.createElement(\"i\", { className: \"bx bxs-like bx-rotate-180 bx-md\" }),\n _react2.default.createElement(\"i\", { className: \"bx bxs-like bx-rotate-270 bx-md\" }),\n _react2.default.createElement(\"i\", { className: \"bx bxs-like bx-flip-horizontal bx-md\" }),\n _react2.default.createElement(\"i\", { className: \"bx bxs-like bx-flip-vertical bx-md\" })\n ),\n _react2.default.createElement(\n _hljsWrapper2.default,\n null,\n \" \",\n _react2.default.createElement(\n \"code\",\n { className: \"html display\" },\n \"\",\n \"\",\n _react2.default.createElement(\"br\", null),\n \"\",\n _react2.default.createElement(\"br\", null),\n \"\",\n _react2.default.createElement(\"br\", null),\n \"\",\n _react2.default.createElement(\"br\", null),\n \"\",\n _react2.default.createElement(\"br\", null),\n _react2.default.createElement(\"br\", null),\n \"\",\n _react2.default.createElement(\"br\", null),\n _react2.default.createElement(\"br\", null),\n \"\",\n _react2.default.createElement(\"br\", null),\n \"\",\n _react2.default.createElement(\"br\", null)\n )\n ),\n _react2.default.createElement(\"br\", null)\n ),\n _react2.default.createElement(\n \"h4\",\n { id: \"list-icons\" },\n \"List Icons\"\n ),\n _react2.default.createElement(\n \"div\",\n null,\n _react2.default.createElement(\n \"p\",\n null,\n \" Use icons as bullets for the list by adding class \",\n _react2.default.createElement(\n \"code\",\n { className: \"side\" },\n \"bx-ul\"\n ),\n \" to the unordered list element and include the icons inside the\",\n _react2.default.createElement(\n \"code\",\n { className: \"side\" },\n \"li\"\n ),\n \" \"\n ),\n \" \",\n _react2.default.createElement(\n IconDisplay,\n null,\n _react2.default.createElement(\n \"ul\",\n { className: \"bx-ul\" },\n _react2.default.createElement(\n \"li\",\n null,\n \" \",\n _react2.default.createElement(\"i\", { className: \"bx bx-right-arrow\" }),\n \"List item 1\"\n ),\n _react2.default.createElement(\n \"li\",\n null,\n \" \",\n _react2.default.createElement(\"i\", { className: \"bx bx-x\" }),\n \"List item 2\"\n ),\n _react2.default.createElement(\n \"li\",\n null,\n \" \",\n _react2.default.createElement(\"i\", { className: \"bx bx-plus\" }),\n \"List item 3\"\n )\n )\n ),\n _react2.default.createElement(\n _hljsWrapper2.default,\n null,\n \" \",\n _react2.default.createElement(\n \"code\",\n { className: \"html display\" },\n \"
    \",\n _react2.default.createElement(\"br\", null),\n _react2.default.createElement(\n \"span\",\n { className: \"tab\" },\n \"
  • List Item 1
  • \"\n ),\n _react2.default.createElement(\"br\", null),\n _react2.default.createElement(\n \"span\",\n { className: \"tab\" },\n \"
  • List Item 2
  • \"\n ),\n _react2.default.createElement(\"br\", null),\n _react2.default.createElement(\n \"span\",\n { className: \"tab\" },\n \"
  • List Item 3
  • \"\n ),\n _react2.default.createElement(\"br\", null),\n \"
\"\n )\n ),\n _react2.default.createElement(\"br\", null)\n ),\n _react2.default.createElement(\n \"h4\",\n { id: \"fixed-width\" },\n \"Fixed Width\"\n ),\n _react2.default.createElement(\n \"div\",\n null,\n _react2.default.createElement(\n \"p\",\n null,\n \" You can use fixed width class \",\n _react2.default.createElement(\n \"code\",\n { className: \"side\" },\n \"bx-fw\"\n ),\n \" \\\\to get a fixed width icon next to the text\",\n _react2.default.createElement(\n \"code\",\n { className: \"side\" },\n \"li\"\n ),\n \" \"\n ),\n \" \",\n _react2.default.createElement(\n IconDisplay,\n null,\n _react2.default.createElement(\n \"div\",\n null,\n \" \",\n _react2.default.createElement(\"i\", { className: \"bx-fw bx bxl-facebook-square\" }),\n \"Facebook\"\n ),\n _react2.default.createElement(\n \"div\",\n null,\n \" \",\n _react2.default.createElement(\"i\", { className: \"bx-fw bx bxl-slack\" }),\n \"Slack\"\n ),\n _react2.default.createElement(\n \"div\",\n null,\n \" \",\n _react2.default.createElement(\"i\", { className: \"bx-fw bx bxl-instagram\" }),\n \"Instagram\"\n )\n ),\n _react2.default.createElement(\n _hljsWrapper2.default,\n null,\n \" \",\n _react2.default.createElement(\n \"code\",\n { className: \"html display\" },\n 'Facebook',\n _react2.default.createElement(\"br\", null)\n )\n ),\n _react2.default.createElement(\"br\", null)\n ),\n _react2.default.createElement(\n \"h4\",\n { id: \"pull-icon\" },\n \"Pulled Icons\"\n ),\n _react2.default.createElement(\n \"div\",\n null,\n _react2.default.createElement(\n \"p\",\n null,\n \" Use class \",\n _react2.default.createElement(\n \"code\",\n { className: \"side\" },\n \"bx-pull-left\"\n ),\n \" or \",\n _react2.default.createElement(\n \"code\",\n { className: \"side\" },\n \"bx-pull-right\"\n ),\n \" on icons for easy pull quotes\",\n _react2.default.createElement(\n \"code\",\n { className: \"side\" },\n \"li\"\n ),\n \" \"\n ),\n \" \",\n _react2.default.createElement(\n IconDisplay,\n null,\n _react2.default.createElement(\"i\", { className: \"bx-pull-left bx bxs-quote-left bx-lg\" }),\n \"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut faucibus erat eu nibh laoreet, sed ullamcorper diam ornare. Quisque viverra ante nec luctus imperdiet. Quisque ut imperdiet nisi. Quisque ultrices laoreet odio, non vestibulum lacus molestie sollicitudin. Phasellus nec dolor eget nunc commodo sodales vel vel eros.\"\n ),\n _react2.default.createElement(\n _hljsWrapper2.default,\n null,\n \" \",\n _react2.default.createElement(\n \"code\",\n { className: \"html display\" },\n '',\n _react2.default.createElement(\"br\", null),\n \"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut faucibus erat eu nibh laoreet, sed ullamcorper diam ornare. Quisque viverra ante nec luctus imperdiet. Quisque ut imperdiet nisi. Quisque ultrices laoreet odio, non vestibulum lacus molestie sollicitudin. Phasellus nec dolor eget nunc commodo sodales vel vel eros.\",\n _react2.default.createElement(\"br\", null),\n \"\",\n _react2.default.createElement(\"br\", null),\n _react2.default.createElement(\"br\", null),\n \"\",\n _react2.default.createElement(\"br\", null),\n \"Quisque ultrices laoreet odio, non vestibulum lacus molestie sollicitudin. Phasellus nec dolor eget nunc commodo sodales vel vel eros.\"\n )\n ),\n _react2.default.createElement(\"br\", null)\n ),\n _react2.default.createElement(\n \"h4\",\n { id: \"border\" },\n \"Border\"\n ),\n _react2.default.createElement(\n \"div\",\n null,\n _react2.default.createElement(\n \"p\",\n null,\n \" Add border to your icons with classes \",\n _react2.default.createElement(\n \"code\",\n { className: \"side\" },\n \"bx-border\"\n ),\n \", \",\n _react2.default.createElement(\n \"code\",\n { className: \"side\" },\n \"bx-border-circle\"\n )\n ),\n \" \",\n _react2.default.createElement(\n IconDisplay,\n null,\n _react2.default.createElement(\"i\", { className: \"bx bxs-heart bx-border bx-md\" }),\n _react2.default.createElement(\"i\", { className: \"bx bxs-heart bx-border-circle bx-md\" }),\n \" \"\n ),\n _react2.default.createElement(\n _hljsWrapper2.default,\n null,\n \" \",\n _react2.default.createElement(\n \"code\",\n { className: \"html display\" },\n \"\",\n _react2.default.createElement(\"br\", null),\n \"\",\n _react2.default.createElement(\"br\", null),\n _react2.default.createElement(\"br\", null),\n \"\",\n _react2.default.createElement(\"br\", null),\n _react2.default.createElement(\"br\", null),\n \"\",\n _react2.default.createElement(\"br\", null)\n )\n ),\n _react2.default.createElement(\"br\", null)\n ),\n _react2.default.createElement(\n \"h4\",\n { id: \"animation\" },\n \"Animation\"\n ),\n _react2.default.createElement(\n \"div\",\n null,\n _react2.default.createElement(\n \"p\",\n null,\n \" Animate your icons with pre built CSS animations using classes \",\n _react2.default.createElement(\n \"code\",\n { className: \"side\" },\n \"bx-spin\"\n ),\n \",\",\n _react2.default.createElement(\n \"code\",\n { className: \"side\" },\n \"bx-tada\"\n ),\n \",\",\n _react2.default.createElement(\n \"code\",\n { className: \"side\" },\n \"bx-flashing\"\n ),\n \",\",\n _react2.default.createElement(\n \"code\",\n { className: \"side\" },\n \"bx-burst\"\n ),\n \",\",\n _react2.default.createElement(\n \"code\",\n { className: \"side\" },\n \"bx-fade-left\"\n ),\n \" and \",\n _react2.default.createElement(\n \"code\",\n { className: \"side\" },\n \"bx-fade-right\"\n )\n ),\n _react2.default.createElement(\n \"p\",\n null,\n \"You can change the speed of the animation with the \",\n _react2.default.createElement(\n \"code\",\n { className: \"side\" },\n \"animation-duration\"\n ),\n \" property & to change the number of times the animation takes place with the property \",\n _react2.default.createElement(\n \"code\",\n { className: \"side\" },\n \"animation-iteration-count\"\n ),\n \" in CSS\"\n ),\n _react2.default.createElement(\n IconDisplay,\n null,\n _react2.default.createElement(\"i\", { className: \"bx bx-loader bx-spin bx-md\" }),\n _react2.default.createElement(\"i\", { className: \"bx bxs-bell bx-tada bx-md\" }),\n _react2.default.createElement(\"i\", { className: \"bx bxs-error bx-flashing bx-md\" }),\n _react2.default.createElement(\"i\", { className: \"bx bx-radio-circle bx-burst bx-md\" }),\n _react2.default.createElement(\"i\", { className: \"bx bx-fade-left bxs-left-arrow-circle bx-md\" }),\n _react2.default.createElement(\"i\", { className: \"bx bx-fade-right bxs-right-arrow-circle bx-md\" }),\n _react2.default.createElement(\"i\", { className: \"bx bx-fade-up bxs-up-arrow-circle bx-md\" }),\n _react2.default.createElement(\"i\", { className: \"bx bx-fade-down bxs-down-arrow-circle bx-md\" })\n ),\n _react2.default.createElement(\n _hljsWrapper2.default,\n null,\n \" \",\n _react2.default.createElement(\n \"code\",\n { className: \"html display\" },\n \"\",\n \"\",\n _react2.default.createElement(\"br\", null),\n \"\",\n _react2.default.createElement(\"br\", null),\n \"\",\n _react2.default.createElement(\"br\", null),\n \"\",\n _react2.default.createElement(\"br\", null),\n \"\",\n _react2.default.createElement(\"br\", null),\n \"\",\n _react2.default.createElement(\"br\", null),\n \"\",\n _react2.default.createElement(\"br\", null),\n \"\",\n _react2.default.createElement(\"br\", null),\n _react2.default.createElement(\"br\", null),\n \"\",\n _react2.default.createElement(\"br\", null),\n _react2.default.createElement(\"br\", null),\n \"\",\n _react2.default.createElement(\"br\", null)\n )\n )\n ),\n _react2.default.createElement(\"br\", null),\n _react2.default.createElement(\n \"h4\",\n { id: \"animation-hover\" },\n \"Animation on Hover\"\n ),\n _react2.default.createElement(\n \"div\",\n null,\n _react2.default.createElement(\n \"p\",\n null,\n \" Animate your icons on hover with pre built CSS animations using classes \",\n _react2.default.createElement(\n \"code\",\n { className: \"side\" },\n \"bx-spin-hover\"\n ),\n \",\",\n _react2.default.createElement(\n \"code\",\n { className: \"side\" },\n \"bx-tada-hover\"\n ),\n \",\",\n _react2.default.createElement(\n \"code\",\n { className: \"side\" },\n \"bx-flashing-hover\"\n ),\n \",\",\n _react2.default.createElement(\n \"code\",\n { className: \"side\" },\n \"bx-burst-hover\"\n ),\n \",\",\n _react2.default.createElement(\n \"code\",\n { className: \"side\" },\n \"bx-fade-left-hover\"\n ),\n \" and \",\n _react2.default.createElement(\n \"code\",\n { className: \"side\" },\n \"bx-fade-right-hover\"\n )\n ),\n \" \",\n _react2.default.createElement(\n \"p\",\n null,\n \"You can change the speed of the animation with the \",\n _react2.default.createElement(\n \"code\",\n { className: \"side\" },\n \"animation-duration\"\n ),\n \" property & to change the number of times the animation takes place with the property \",\n _react2.default.createElement(\n \"code\",\n { className: \"side\" },\n \"animation-iteration-count\"\n ),\n \" in CSS\"\n ),\n _react2.default.createElement(\n IconDisplay,\n null,\n _react2.default.createElement(\"i\", { className: \"bx bx-loader bx-spin-hover bx-md\" }),\n _react2.default.createElement(\"i\", { className: \"bx bxs-bell bx-tada-hover bx-md\" }),\n _react2.default.createElement(\"i\", { className: \"bx bxs-error bx-flashing-hover bx-md\" }),\n _react2.default.createElement(\"i\", { className: \"bx bx-radio-circle bx-burst-hover bx-md\" }),\n _react2.default.createElement(\"i\", { className: \"bx bx-fade-left-hover bxs-left-arrow-circle bx-md\" }),\n _react2.default.createElement(\"i\", { className: \"bx bx-fade-right-hover bxs-right-arrow-circle bx-md\" }),\n _react2.default.createElement(\"i\", { className: \"bx bx-fade-up-hover bxs-up-arrow-circle bx-md\" }),\n _react2.default.createElement(\"i\", { className: \"bx bx-fade-down-hover bxs-down-arrow-circle bx-md\" })\n ),\n _react2.default.createElement(\n _hljsWrapper2.default,\n null,\n \" \",\n _react2.default.createElement(\n \"code\",\n { className: \"html display\" },\n \"\",\n \"\",\n _react2.default.createElement(\"br\", null),\n \"\",\n _react2.default.createElement(\"br\", null),\n \"\",\n _react2.default.createElement(\"br\", null),\n \"\",\n _react2.default.createElement(\"br\", null),\n \"\",\n _react2.default.createElement(\"br\", null),\n \"\",\n _react2.default.createElement(\"br\", null),\n \"\",\n \"\",\n _react2.default.createElement(\"br\", null),\n \"\",\n _react2.default.createElement(\"br\", null),\n \"\",\n _react2.default.createElement(\"br\", null),\n \"\",\n _react2.default.createElement(\"br\", null),\n _react2.default.createElement(\"br\", null),\n \"\",\n _react2.default.createElement(\"br\", null)\n )\n )\n ),\n _react2.default.createElement(\n \"h3\",\n { id: \"contribution\" },\n \"Contribution\"\n ),\n _react2.default.createElement(\n \"div\",\n null,\n _react2.default.createElement(\n \"p\",\n null,\n \"Want to report a bug ? Have some suggestions or ideas ? Have an icon or a feature request? Create a new issue on Github with the appropriate label \",\n _react2.default.createElement(\n \"a\",\n { href: \"https://github.com/atisawd/boxicons/issues/new\", target: \"_blank\" },\n \"here\"\n )\n )\n ),\n _react2.default.createElement(\n \"h3\",\n { id: \"license\" },\n \"License\"\n ),\n _react2.default.createElement(\n \"div\",\n null,\n \"Boxicons is an open source project , you can use them in your commercial projects too.\",\n _react2.default.createElement(\"br\", null),\n \"The icons (.svg) files are free to download and are licensed under \",\n _react2.default.createElement(\n \"a\",\n { href: \"https://creativecommons.org/licenses/by/4.0/\", target: \"_blank\" },\n \"CC 4.0\"\n ),\n \" . By downloading it is assumed that you agree with the terms mentioned in CC 4.0.\",\n _react2.default.createElement(\"br\", null),\n \"The fonts files are licensed under \",\n _react2.default.createElement(\n \"a\",\n { href: \"https://opensource.org/licenses/OFL-1.1\", target: \"_blank\" },\n \"SIL OFL 1.1\"\n ),\n _react2.default.createElement(\"br\", null),\n \"Attribution is not required but is appreciated\",\n _react2.default.createElement(\"br\", null),\n \" Other files which are not fonts or icons are licensed under the \",\n _react2.default.createElement(\n \"a\",\n { href: \"http://opensource.org/licenses/MIT\", target: \"_blank\" },\n \"MIT License\"\n )\n )\n )\n )\n )\n )\n )\n ),\n _react2.default.createElement(_footer2.default, null)\n );\n }\n }]);\n\n return Usage;\n}(_react.Component);\n\nexports.default = Usage;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNTY1LmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vL3N0YXRpYy9qcy9jb21wb25lbnRzL3BhZ2UvdXNhZ2UuanM/M2Y3YSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgQ29tcG9uZW50IH0gZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCB7IExpbmsgfSBmcm9tIFwicmVhY3Qtcm91dGVyLWRvbVwiO1xyXG5pbXBvcnQgeyBWRVJTSU9OIH0gZnJvbSBcIi4uLy4uL2FjdGlvbnMvdHlwZXNcIjtcclxuaW1wb3J0IGhsanMgZnJvbSAnaGlnaGxpZ2h0LmpzL2xpYi9oaWdobGlnaHQnO1xyXG5pbXBvcnQgUGFnZVdyYXBwZXIgZnJvbSAnLi9wYWdlV3JhcHBlcidcclxuaW1wb3J0IERvY1dyYXBwZXIgZnJvbSAnLi9kb2NXcmFwcGVyJ1xyXG5pbXBvcnQgRm9vdGVyIGZyb20gJy4uL2NvbW1vbi9mb290ZXInO1xyXG5pbXBvcnQgSGxqc1dyYXBwZXIgZnJvbSAnLi4vY29tbW9uL2hsanNXcmFwcGVyJ1xyXG5pbXBvcnQgc3R5bGVkIGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJztcclxuaW1wb3J0IHsgQlJFQUtQT0lOVF9MRyxCT1JERVJfQ09MT1IsU0VDT05EQVJZX0ZPTlRfQ09MT1IsIEJSRUFLUE9JTlRfTUQsIEJSRUFLUE9JTlRfU019IGZyb20gJy4uL3R5cGVzJztcclxuWydqYXZhc2NyaXB0JywgJ3htbCddLmZvckVhY2goKGxhbmdOYW1lKSA9PiB7XHJcbiAgY29uc3QgbGFuZ01vZHVsZSA9IHJlcXVpcmUoYGhpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzLyR7bGFuZ05hbWV9YCk7XHJcbiAgaGxqcy5yZWdpc3Rlckxhbmd1YWdlKGxhbmdOYW1lLCBsYW5nTW9kdWxlKTtcclxufSk7XHJcbmNvbnN0IEljb25EaXNwbGF5ID0gc3R5bGVkLmRpdmBcclxuICBpIHtcclxuICAgIG1hcmdpbjogMCA1cHg7XHJcbiAgfVxyXG4gIGRpdiB7XHJcbiAgICBtYXJnaW46IDBweCFpbXBvcnRhbnQ7XHJcbiAgICBmb250LXNpemU6IDE3cHg7XHJcbiAgfVxyXG4gIHVsIHtcclxuICAgIGZvbnQtc2l6ZTogMThweDtcclxuICAgIG1hcmdpbi10b3A6IDBweDtcclxuICAgIG1hcmdpbi1ib3R0b206IDBweDtcclxuICAgIGxpe1xyXG4gICAgICBpe1xyXG4gICAgICAgbWFyZ2luOiAwcHghaW1wb3J0YW50O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgXHJcbiAgfVxyXG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICR7QlJFQUtQT0lOVF9NRH0pIHtcclxuICAgIC5ieC1sZ3tcclxuICAgICAgZm9udC1zaXplOiAyLjVyZW0haW1wb3J0YW50O1xyXG4gICAgfVxyXG4gIH1cclxuICBwYWRkaW5nOiAyMHB4IDE1cHg7XHJcbiAgbWFyZ2luOiAyMHB4IDBweDtcclxuICBib3JkZXItcmFkaXVzOiA1cHg7bWFyZ2luLWJvdHRvbTogMjBweCFpbXBvcnRhbnQ7ICAgIFxyXG4gICAgYm94LXNoYWRvdzogMCA0cHggNXB4IDAgcmdiYSgwLDAsMCwwLjEpLCAwIDFweCAxMHB4IDAgcmdiYSgwLDAsMCwwLjA2KSwgMCAycHggNHB4IC0xcHggcmdiYSgwLDAsMCwwLjEpO1xyXG5cclxuYDtcclxuY2xhc3MgVXNhZ2UgZXh0ZW5kcyBDb21wb25lbnQge1xyXG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xyXG4gICAgd2luZG93LnNjcm9sbFRvKDAsIDApO1xyXG52YXIgY29kZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2NvZGUnKTtcclxuZm9yKHZhciBpID0gMDsgaTxjb2RlLmxlbmd0aDtpKyspe1xyXG4gIGhsanMuaGlnaGxpZ2h0QmxvY2soY29kZVtpXSk7XHJcbn1cclxuICAgICBcclxuICB9XHJcbiAgcmVuZGVyKCkge1xyXG4gICAgcmV0dXJuIChcclxuICAgICAgPGRpdj5cclxuICAgICAgPFBhZ2VXcmFwcGVyPlxyXG4gICAgICBcclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInBhZ2UtY29udFwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJwYWdlLWhlYWRcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJwYWdlLWhlYWQtYmdcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJwYWdlLWhlYWQtaW5cIj5cclxuICAgICAgICAgICAgICA8aDE+R2V0dGluZyBTdGFydGVkPC9oMT5cclxuICAgICAgICAgICAgICA8cD5cclxuICAgICAgICAgICAgICAgU3dpdGNoaW5nIHRvIGJveGljb25zIGlzIGVhc3kgYW5kIGNhbiBiZSBkb25lIGluIDIgc3RlcHMuIFRoZXJlIGFyZSBtb3JlIGZlYXR1cmVzIHRoYW4ganVzdCB0aGUgaWNvbnMgc2V0LiBcclxuICAgICAgICAgICAgICAgQm94aWNvbnMgYWxzbyBmb2xsb3dzIHRoZSBvZmZpY2lhbCBHb29nbGUgTWF0ZXJpYWwgRGVzaWduIGd1aWRlbGluZXM8L3A+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbjwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJwYWdlLWJvZHlcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJwYWdlLWJvZHktaW5cIj5cclxuICAgICAgICAgICAgICA8RG9jV3JhcHBlcj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZG9jcy1zaWRlYmFyXCI+XHJcbiAgICAgICAgICAgICAgICAgIDx1bCBjbGFzc05hbWU9XCJkb2NzLXNpZGViYXItbGlzdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgPGxpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj1cIiNpbnN0YWxsLXZpYS1ucG1cIj5JbnN0YWxsIHZpYSBOUE08L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgICAgICAgICA8bGk+XHJcbiAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9XCIjd2ViLWNvbXBvbmVudFwiPlVzaW5nIHRoZSBXZWIgQ29tcG9uZW50PC9hPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgIDxsaT5cclxuICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9XCIjdXNhZ2UtYXMtZm9udFwiPlVzYWdlIGFzIGEgRm9udDwvYT5cclxuICAgICAgICAgICAgICAgICAgICAgIDx1bD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj1cIiNpbXBvcnQtY3NzXCI+SW1wb3J0IHRoZSBDU1M8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgICAgICAgICA8bGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPVwiI2h0bWxcIj5IVE1MPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3VsPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgPGxpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj1cIiNzdGFydGVyLXRlbXBsYXRlXCI+U3RhcnRlciBUZW1wbGF0ZXM8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgICAgICAgICA8bGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPVwiI3N0eWxpbmdcIj5TdHlsaW5nPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5cclxuICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9XCIjc2l6aW5nXCI+U2l6aW5nPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgPGxpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj1cIiNyb3RhdGlvbi1mbGlwcGluZ1wiPlJvdGF0aW9uICYgRmxpcHBpbmc8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICA8bGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPVwiI2xpc3QtaWNvbnNcIj5MaXN0IEljb25zPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgPGxpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj1cIiNmaXhlZC13aWR0aFwiPkZpeGVkIFdpZHRoPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgPGxpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj1cIiNwdWxsLWljb25cIj5QdWxsZWQgSWNvbnM8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgICAgICAgICA8bGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPVwiI2JvcmRlclwiPkJvcmRlcjwvYT5cclxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgIDxsaT5cclxuICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9XCIjYW5pbWF0aW9uXCI+QW5pbWF0aW9uPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgPGxpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj1cIiNhbmltYXRpb24taG92ZXJcIj5BbmltYXRpb24gb24gSG92ZXI8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgICAgICAgICA8bGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPVwiI2NvbnRyaWJ1dGlvblwiPkNvbnRyaWJ1dGlvbjwvYT5cclxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgIDxsaT5cclxuICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9XCIjbGljZW5zZVwiPkxpY2Vuc2U8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgPC91bD5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJkb2NzLWNvbnRlbnRcIj5cclxuICAgICAgICAgICAgICAgICAgPGgzID5RdWljayBTdGFydDwvaDM+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPHA+TG9va2luZyB0byBxdWlja2x5IGFkZCBCb3hpY29ucyB0byB5b3VyIHByb2plY3Q/IFVzZSB0aGVcclxuICAgICAgICAgICAgICAgICAgICBwYXRocyB0byBDRE4gb3IgRG93bmxvYWQgdGhlIGZpbGVzIDxhICBocmVmPVwiaHR0cHM6Ly9ndW0uY28vYm94aWNvbnM/d2FudGVkPXRydWVcIiB0YXJnZXQ9XCJfYmxhbmtcIiBkYXRhLWd1bXJvYWQtc2luZ2xlLXByb2R1Y3Q9XCJ0cnVlXCI+aGVyZTwvYT4uXHJcbiAgICAgICAgICAgICAgICAgIDwvcD48L2Rpdj5cclxuICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgIDxoMyBpZD1cImluc3RhbGwtdmlhLW5wbVwiPkluc3RhbGwgdmlhIE5QTTwvaDM+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICA8cD4gSW5zdGFsbCB0aGUgYm94aWNvbnMgcGFja2FnZSBieSBjb3B5IHBhc3RpbmcgdGhlIGZvbGxvd2luZ1xyXG4gICAgICAgICAgICAgICAgICAgIGluIHlvdXIgdGVybWluYWw6XHJcbiAgICAgICAgICAgICAgICAgICAgPC9wPjxIbGpzV3JhcHBlcj4gPGNvZGUgPlxyXG4gICAgICAgICAgICAgICAgICAgICAge1wiJCBucG0gaW5zdGFsbCBib3hpY29ucyAtLXNhdmVcIn1cclxuICAgICAgICAgICAgICAgICAgICA8L2NvZGU+PC9IbGpzV3JhcHBlcj5cclxuICAgICAgICAgICAgICAgICAgIDxwPiBJbXBvcnQgdGhlIG5wbSBtb2R1bGUgaW4geW91ciBqYXZhc2NyaXB0XHJcbiAgICAgICAgICAgICAgICAgICAgPC9wPjxIbGpzV3JhcHBlcj4gPGNvZGUgY2xhc3NOYW1lPSdqYXZhc2NyaXB0JyA+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7XCJpbXBvcnQgJ2JveGljb25zJ1wifVxyXG4gICAgICAgICAgICAgICAgICAgIDwvY29kZT48L0hsanNXcmFwcGVyPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPGgzIGlkPVwid2ViLWNvbXBvbmVudFwiPlVzaW5nIHRoZSBXZWIgQ29tcG9uZW50PC9oMz5cclxuICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgPHA+Qm94aWNvbnMgaW5jbHVkZXMgYSBDdXN0b20gRWxlbWVudCB0aGF0IG1ha2VzIHVzaW5nIGljb25zIGVhc3kgYW5kIGVmZmljaWVudC4gVG8gdXNlIGl0LCBhZGQgdGhlIDxjb2RlIGNsYXNzTmFtZT1cInNpZGVcIj5ib3hpY29ucy5qczwvY29kZT4gZmlsZSB0byB0aGUgcGFnZTo8L3A+XHJcbiAgICAgICAgICAgICAgICAgIDxIbGpzV3JhcHBlcj4gPGNvZGUgIGNsYXNzTmFtZT0naHRtbCc+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7JyA8c2NyaXB0IHNyYz1cImh0dHBzOi8vdW5wa2cuY29tL2JveGljb25zQGxhdGVzdC9kaXN0L2JveGljb25zLmpzXCI+PC9zY3JpcHQ+J31cclxuICAgICAgICAgICAgICAgICAgICA8L2NvZGU+PC9IbGpzV3JhcHBlcj5cclxuICAgICAgICAgICAgICAgICAgICA8cD5UbyB1c2UgYW4gaWNvbiwgYWRkIHRoZSA8Y29kZSBjbGFzc05hbWU9XCJzaWRlXCI+Ym94LWljb248L2NvZGU+IGVsZW1lbnQgdG8gdGhlIGxvY2F0aW9uIHdoZXJlIHRoZSBpY29uIHNob3VsZCBiZSBkaXNwbGF5ZWQ6PC9wPlxyXG4gICAgICAgICAgICAgICAgICAgPEhsanNXcmFwcGVyPiA8Y29kZSAgY2xhc3NOYW1lPSdodG1sJz5cclxuICAgICAgICAgICAgICAgICAgICAgIHsnPGJveC1pY29uIG5hbWU9XCJyb2NrZXRcIj48L2JveC1pY29uPid9XHJcbiAgICAgICAgICAgICAgICAgICAgPC9jb2RlPjwvSGxqc1dyYXBwZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8cD4gVG8gdXNlIHNvbGlkIGljb25zIG9yIGxvZ29zIGFkZCBhdHRyaWJ1dGUgPGNvZGUgY2xhc3NOYW1lPVwic2lkZVwiPnR5cGU8L2NvZGU+IGFzIHNvbGlkIG9yIGxvZ28gPC9wPlxyXG4gICAgICAgICAgICAgICAgICAgIDxIbGpzV3JhcHBlcj4gPGNvZGUgIGNsYXNzTmFtZT0naHRtbCc+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7Jzxib3gtaWNvbiAgdHlwZT1cInNvbGlkXCIgbmFtZT1cInJvY2tldFwiPjwvYm94LWljb24+J308YnIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgeyc8Ym94LWljb24gIHR5cGU9XCJsb2dvXCIgbmFtZT1cImZhY2Vib29rLXNxdWFyZVwiPjwvYm94LWljb24+J31cclxuICAgICAgICAgICAgICAgICAgICA8L2NvZGU+PC9IbGpzV3JhcHBlcj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgPHA+VGhlIDxjb2RlIGNsYXNzTmFtZT1cInNpZGVcIj5ib3gtaWNvbjwvY29kZT4gY3VzdG9tIGVsZW1lbnQgc3VwcG9ydHMgdGhlIGZvbGxvd2luZyBhdHRyaWJ1dGVzOjwvcD5cclxuICAgICAgICAgICAgICAgICAgIDxIbGpzV3JhcHBlcj4gPGNvZGUgIGNsYXNzTmFtZT0naHRtbCc+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7Jzxib3gtaWNvbiAnfTxici8+XHJcbiAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwidGFiXCI+IHsndHlwZSA9IFwicmVndWxhcnxzb2xpZHxsb2dvXCInfTwvc3Bhbj48YnIvPlxyXG4gICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJ0YWJcIj4geyduYW1lPVwiYWRqdXN0fGFsYXJtc3xldGMuLi4uXCInfTwvc3Bhbj48YnIvPlxyXG4gICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJ0YWJcIj4geydjb2xvcj1cImJsdWV8cmVkfGV0Yy4uLlwiJ308L3NwYW4+PGJyLz5cclxuICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwidGFiXCI+IHsnc2l6ZT1cInhzfHNtfG1kfGxnfGNzc1NpemVcIid9PC9zcGFuPjxici8+XHJcbiAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInRhYlwiPiB7J3JvdGF0ZT1cIjkwfDE4MHwyNzBcIid9PC9zcGFuPjxici8+XHJcbiAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInRhYlwiPiB7J2ZsaXA9XCJob3Jpem9udGFsfHZlcnRpY2FsXCInfTwvc3Bhbj48YnIvPlxyXG4gICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJ0YWJcIj4geydib3JkZXI9XCJzcXVhcmV8Y2lyY2xlXCInfTwvc3Bhbj48YnIvPlxyXG4gICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJ0YWJcIj4geydhbmltYXRpb249XCJzcGlufHRhZGF8ZXRjLi4uXCInfTwvc3Bhbj48YnIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwidGFiXCI+IHsnYW5pbWF0aW9uPVwic3Bpbnx0YWRhfGV0Yy4uLlwiJ308L3NwYW4+PGJyLz5cclxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwidGFiXCI+IHsncHVsbCA9IFwibGVmdHxyaWdodFwiJ308L3NwYW4+PGJyLz5cclxuICAgICAgICAgICAgICAgICAgeyc+PC9ib3gtaWNvbj4nfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvY29kZT48L0hsanNXcmFwcGVyPlxyXG4gICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICA8aDMgaWQ9XCJ1c2FnZS1hcy1mb250XCI+VXNhZ2UgYXMgYSBGb250PC9oMz5cclxuICAgICAgICAgICAgICAgICAgIDxoNCBpZD1cImltcG9ydC1jc3NcIj5JbXBvcnQgdGhlIENTUzwvaDQ+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICA8cD5Db3B5LXBhc3RlIHRoZSBzdHlsZXNoZWV0IDxjb2RlIGNsYXNzTmFtZT1cInNpZGVcIj5saW5rPC9jb2RlPiBpbnRvIHlvdXIgPGNvZGUgY2xhc3NOYW1lPVwic2lkZVwiPmhlYWQ8L2NvZGU+ICB0byBsb2FkIG91ciBDU1NcclxuICAgICAgICAgICAgICAgICAgICAgPC9wPiA8SGxqc1dyYXBwZXI+IDxjb2RlIGNsYXNzTmFtZT0naHRtbCcgPlxyXG4gICAgICAgICAgICAgICAgICAgICAge1wiPGxpbmsgaHJlZj0naHR0cHM6Ly9jZG4uanNkZWxpdnIubmV0L25wbS9ib3hpY29uc0BcIiArXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFZFUlNJT04gK1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBcIi9jc3MvYm94aWNvbnMubWluLmNzcycgcmVsPSdzdHlsZXNoZWV0Jz5cIn1cclxuICAgICAgICAgICAgICAgICAgICAgPGJyLz57XCI8IS0tIG9yIC0tPlwifSA8YnIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAge1wiPGxpbmsgaHJlZj0naHR0cHM6Ly91bnBrZy5jb20vYm94aWNvbnNAXCIgK1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBWRVJTSU9OICtcclxuICAgICAgICAgICAgICAgICAgICAgICAgXCIvY3NzL2JveGljb25zLm1pbi5jc3MnIHJlbD0nc3R5bGVzaGVldCc+XCJ9XHJcbiAgICAgICAgICAgICAgICAgICAgPC9jb2RlPjwvSGxqc1dyYXBwZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHA+VGhpcyB3aWxsIGxvYWQgYm94aWNvbnMgZm9udCBpbnRvIHlvdXIgd2VicGFnZTwvcD5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDxoNCBpZD1cImh0bWxcIj5IVE1MPC9oND5cclxuICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgPHA+ICBUbyB1c2UgYW4gaWNvbiBvbiB5b3VyIHBhZ2UsIGFkZCBhIHByZWZpeFxyXG4gICAgICAgICAgICAgICAgICAgIDxjb2RlIGNsYXNzTmFtZT1cInNpZGVcIj5ieC08L2NvZGU+IGZvciByZWd1bGFyIGljb25zLCA8Y29kZSBjbGFzc05hbWU9XCJzaWRlXCI+YnhzLTwvY29kZT4gZm9yIHNvbGlkIGljb25zICYgPGNvZGUgY2xhc3NOYW1lPVwic2lkZVwiPmJ4bC08L2NvZGU+IGZvciBsb2dvcyBmb2xsb3dlZCBieSB0aGUgaWNvbiBuYW1lIGFuZCBzZXBlcmF0ZSBjbGFzcyB3aXRoIHRoZVxyXG4gICAgICAgICAgICAgICAgICAgIDxjb2RlIGNsYXNzTmFtZT1cInNpZGVcIj5ieDwvY29kZT46XHJcbiAgICAgICAgICAgICAgICAgICA8L3A+IDxIbGpzV3JhcHBlcj4gPGNvZGUgY2xhc3NOYW1lPSdodG1sJyA+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7XCI8aSBjbGFzcz0nYnggYngtdXNlcic+PC9pPlwifTxiciAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAge1wiPGkgY2xhc3M9J2J4IGJ4cy11c2VyJz48L2k+XCJ9PGJyIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7XCI8aSBjbGFzcz0nYnggYnhsLWZhY2Vib29rLXNxdWFyZSc+PC9pPlwifVxyXG4gICAgICAgICAgICAgICAgICAgIDwvY29kZT48L0hsanNXcmFwcGVyPlxyXG4gICAgICAgICAgICAgICAgICAgIFlvdSBjYW4gc2VlIHRoZSBuYW1lcyBvZiBhbGwgdGhlIGljb25zIDxMaW5rIHRvPVwiL2NoZWF0c2hlZXRcIj5oZXJlPC9MaW5rPlxyXG4gICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxoMyBpZD1cInN0YXJ0ZXItdGVtcGxhdGVcIj5TdGFydGVyIFRlbXBsYXRlczwvaDM+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICA8cD4gQ3JlYXRlIGFuIEhUTUwgZG9jdW1lbnQgYW5kIGNvcHktcGFzdGUgdGhlIHN0YXJ0ZXIgdGVtcGxhdGUgXHJcbiAgICAgICAgICAgICAgICAgICAgPC9wPiA8SGxqc1dyYXBwZXI+IDxjb2RlIGNsYXNzTmFtZT0naHRtbCcgPlxyXG4gICAgICAgICAgICAgICAgICAgICAge1wiPCFkb2N0eXBlIGh0bWw+XCJ9IDxici8+XHJcbiAgICAgICAgICAgICAgICAgICAgIHtcIjxodG1sIGxhbmc9J2VuJz5cIn08YnIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwidGFiXCI+e1wiPGhlYWQ+XCJ9PC9zcGFuPjxici8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwidGFiLTJcIj57XCI8bWV0YSBjaGFyc2V0PSd1dGYtOCc+XCJ9PC9zcGFuPjxici8+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJ0YWItMlwiPiB7XCI8bWV0YSBuYW1lPSd2aWV3cG9ydCcgY29udGVudD0nd2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEsIHNocmluay10by1maXQ9bm8nPlwifTwvc3Bhbj4gXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxici8+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInRhYi0yXCI+IHtcIjwhLS0gQm94aWNvbnMgQ1NTIC0tPlwifTwvc3Bhbj48YnIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInRhYi0yXCI+e1wiPGxpbmsgaHJlZj0naHR0cHM6Ly9jZG4uanNkZWxpdnIubmV0L25wbS9ib3hpY29uc0BcIiArXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVkVSU0lPTiArXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIvY3NzL2JveGljb25zLm1pbi5jc3MnIHJlbD0nc3R5bGVzaGVldCc+XCJ9PC9zcGFuPjxici8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInRhYi0yXCI+e1wiPHRpdGxlPkhlbGxvLCBCb3hpY29ucyE8L3RpdGxlPlwifTwvc3Bhbj48YnIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwidGFiXCI+e1wiPC9oZWFkPlwifTwvc3Bhbj48YnIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwidGFiXCI+e1wiPGJvZHk+XCJ9PC9zcGFuPjxici8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwidGFiLTJcIj4ge1wiPGgxPkhlbGxvLCBCb3hpY29ucyE8L2gxPlwifTwvc3Bhbj48YnIvPlxyXG4gICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJ0YWItMlwiPntcIjxpIGNsYXNzPSdieCBieC1ob3QnPjwvaT5cIn08L3NwYW4+PGJyLz5cclxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInRhYi0yXCI+e1wiPGkgY2xhc3M9J2J4IGJ4cy1ob3QnPjwvaT5cIn08L3NwYW4+PGJyLz5cclxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInRhYi0yXCI+e1wiPGkgY2xhc3M9J2J4IGJ4bC1mYWNlYm9vay1zcXVhcmUnPjwvaT5cIn08L3NwYW4+PGJyLz5cclxuICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJ0YWJcIj57XCIgPC9ib2R5PlwifTwvc3Bhbj48YnIvPlxyXG4gICAgICAgICAgICAgICAgICAgIHtcIjwvaHRtbD5cIn1cclxuICAgICAgICAgICAgICAgICAgICA8L2NvZGU+PC9IbGpzV3JhcHBlcj5cclxuPHA+XHJcbiAgICAgICAgICAgICAgICAgICAgQSB0ZW1wbGF0ZSBmb3IgdXNhZ2Ugd2l0aCB0aGUgd2ViIGNvbXBvbmVudCBpbnN0ZWFkIG9mIGljb24gZm9udCBcclxuICAgICAgICAgICAgICAgICAgPC9wPiAgPEhsanNXcmFwcGVyPiA8Y29kZSBjbGFzc05hbWU9J2h0bWwnID5cclxuICAgICAgICAgICAgICAgICAgICAgIHtcIjwhZG9jdHlwZSBodG1sPlwifSA8YnIvPlxyXG4gICAgICAgICAgICAgICAgICAgICB7XCI8aHRtbCBsYW5nPSdlbic+XCJ9PGJyLz5cclxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInRhYlwiPntcIjxoZWFkPlwifTwvc3Bhbj48YnIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInRhYi0yXCI+e1wiPG1ldGEgY2hhcnNldD0ndXRmLTgnPlwifTwvc3Bhbj48YnIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwidGFiLTJcIj4ge1wiPG1ldGEgbmFtZT0ndmlld3BvcnQnIGNvbnRlbnQ9J3dpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLCBzaHJpbmstdG8tZml0PW5vJz5cIn08L3NwYW4+IFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YnIvPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJ0YWItMlwiPiB7XCI8IS0tIEJveGljb25zIEpTIC0tPlwifTwvc3Bhbj48YnIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInRhYi0yXCI+e1wiPGxpbmsgaHJlZj0naHR0cHM6Ly9jZG4uanNkZWxpdnIubmV0L25wbS9ib3hpY29uc0BcIiArXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVkVSU0lPTiArXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIvZGlzdC9ib3hpY29ucy5qcycgcmVsPSdzdHlsZXNoZWV0Jz5cIn08L3NwYW4+PGJyLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwidGFiLTJcIj57XCI8dGl0bGU+SGVsbG8sIEJveGljb25zITwvdGl0bGU+XCJ9PC9zcGFuPjxici8+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJ0YWJcIj57XCI8L2hlYWQ+XCJ9PC9zcGFuPjxici8+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJ0YWJcIj57XCI8Ym9keT5cIn08L3NwYW4+PGJyLz5cclxuICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJ0YWItMlwiPiB7XCI8aDE+SGVsbG8sIEJveGljb25zITwvaDE+XCJ9PC9zcGFuPjxici8+XHJcbiAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInRhYi0yXCI+e1wiPGJveC1pY29uIG5hbWU9J2hvdCc+PC9ib3gtaWNvbj5cIn08L3NwYW4+PGJyLz5cclxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInRhYi0yXCI+e1wiPGJveC1pY29uIHR5cGU9J3NvbGlkJyBuYW1lPSdob3QnPjwvYm94LWljb24+XCJ9PC9zcGFuPjxici8+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJ0YWItMlwiPntcIjxib3gtaWNvbiB0eXBlPSdsb2dvJyBuYW1lPSdmYWNlYm9vay1zcXVhcmUnPjwvYm94LWljb24+XCJ9PC9zcGFuPjxici8+XHJcbiAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwidGFiXCI+e1wiIDwvYm9keT5cIn08L3NwYW4+PGJyLz5cclxuICAgICAgICAgICAgICAgICAgICB7XCI8L2h0bWw+XCJ9XHJcbiAgICAgICAgICAgICAgICAgICAgPC9jb2RlPjwvSGxqc1dyYXBwZXI+XHJcbiAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDxoMyBpZD1cInN0eWxpbmdcIj5TdHlsaW5nPC9oMz5cclxuICAgICAgICAgICAgICAgICAgPGg0IGlkPVwic2l6aW5nXCI+U2l6aW5nPC9oND5cclxuICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgPHA+IFlvdSBjYW4gY2hhbmdlIHNpemUgb2YgdGhlIGljb24gd2l0aFxyXG4gICAgICAgICAgICAgICAgICAgIDxjb2RlIGNsYXNzTmFtZT1cInNpZGVcIj5mb250LXNpemU8L2NvZGU+IENTUy4gSXQgd2lsbCBpbmhlcml0IHRoZSA8Y29kZSBjbGFzc05hbWU9XCJzaWRlXCI+Zm9udC1zaXplPC9jb2RlPlxyXG4gICAgICAgICAgICAgICAgICAgIGZyb20gdGhlIHBhcmVudCBieSBkZWZhdWx0LlxyXG4gICAgICAgICAgICAgICAgICAgIFRoZXJlIGFyZSBmaXhlZCBzaXplcyB5b3UgY2FuIGFkZCB0byB0aGUgaWNvbiBieSBhZGRpbmcgY2xhc3NlcyBcclxuICAgICAgICAgICAgICAgICAgICA8Y29kZSBjbGFzc05hbWU9XCJzaWRlXCI+YngteHM8L2NvZGU+LCA8Y29kZSBjbGFzc05hbWU9XCJzaWRlXCI+Yngtc208L2NvZGU+LCA8Y29kZSBjbGFzc05hbWU9XCJzaWRlXCI+YngtbWQ8L2NvZGU+IGFuZCA8Y29kZSBjbGFzc05hbWU9XCJzaWRlXCI+YngtbGc8L2NvZGU+XHJcbiAgICAgICAgICAgICAgICAgIDwvcD4gIDxJY29uRGlzcGxheT48aSBjbGFzc05hbWU9XCJieCBieHMtc21pbGV5LWhhcHB5IGJ4LXhzIFwiLz48aSBjbGFzc05hbWU9XCJieCBieHMtc21pbGV5LWhhcHB5IGJ4LXNtXCIvPjxpIGNsYXNzTmFtZT1cImJ4IGJ4cy1zbWlsZXktaGFwcHkgYngtbWRcIi8+PGkgY2xhc3NOYW1lPVwiYnggYnhzLXNtaWxleS1oYXBweSBieC1sZ1wiLz5cclxuICAgICAgICAgICAgICAgICAgPC9JY29uRGlzcGxheT5cclxuICAgICAgICAgICAgICAgICAgIDxIbGpzV3JhcHBlcj4gPGNvZGUgY2xhc3NOYW1lPSdodG1sIGRpc3BsYXknID57XCJcIn1cclxuICAgICAgICAgICAgICAgICAgICAgIHtcIjxpIGNsYXNzPSdieCBieHMtc21pbGV5LWhhcHB5IGJ4LXhzJz48L2k+XCJ9PGJyLz5cclxuICAgICAgICAgICAgICAgICAgICAgIHtcIjxpIGNsYXNzPSdieCBieHMtc21pbGV5LWhhcHB5IGJ4LXNtJz48L2k+XCJ9PGJyLz5cclxuICAgICAgICAgICAgICAgICAgICAgIHtcIjxpIGNsYXNzPSdieCBieHMtc21pbGV5LWhhcHB5IGJ4LW1kJz48L2k+XCJ9PGJyLz5cclxuICAgICAgICAgICAgICAgICAgICAgIHtcIjxpIGNsYXNzPSdieCBieHMtc21pbGV5LWhhcHB5IGJ4LWxnJz48L2k+XCJ9PGJyLz48YnIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAge1wiPCEtLSBCb3hpY29ucyB3ZWIgY29tcG9uZW50IC0tPlwifTxici8+PGJyLz5cclxuICAgICAgICAgICAgICAgICAgICAgIHtcIjxib3gtaWNvbiBuYW1lPSdzbWlsZXktaGFwcHknIHNpemU9J2xnJz48L2JveC1pY29uPlwifTxici8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9jb2RlPjwvSGxqc1dyYXBwZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGJyLz5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8aDQgaWQ9XCJyb3RhdGlvbi1mbGlwcGluZ1wiPlJvdGF0aW9uICYgRmxpcHBpbmc8L2g0PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICA8cD4gUm90YXRlIHRoZSBpY29ucyB1c2luZyBjbGFzc2VzIDxjb2RlIGNsYXNzTmFtZT1cInNpZGVcIj5ieC1yb3RhdGUtOTA8L2NvZGU+LCA8Y29kZSBjbGFzc05hbWU9XCJzaWRlXCI+Yngtcm90YXRlLTE4MDwvY29kZT4gYW5kIDxjb2RlIGNsYXNzTmFtZT1cInNpZGVcIj5ieC1yb3RhdGUtMjcwPC9jb2RlPiBvciBGbGlwIHRoZSBpY29ucyB1c2luZyA8Y29kZSBjbGFzc05hbWU9XCJzaWRlXCI+YngtZmxpcC1ob3Jpem9udGFsPC9jb2RlPiBhbmQgPGNvZGUgY2xhc3NOYW1lPVwic2lkZVwiPmJ4LWZsaXAtdmVydGljYWw8L2NvZGU+XHJcbiAgICAgICAgICAgICAgICAgIDwvcD48SWNvbkRpc3BsYXk+PGkgY2xhc3NOYW1lPVwiYnggYnhzLWxpa2UgYngtcm90YXRlLTkwICBieC1tZFwiLz48aSBjbGFzc05hbWU9XCJieCBieHMtbGlrZSBieC1yb3RhdGUtMTgwIGJ4LW1kXCIvPjxpIGNsYXNzTmFtZT1cImJ4IGJ4cy1saWtlIGJ4LXJvdGF0ZS0yNzAgYngtbWRcIi8+PGkgY2xhc3NOYW1lPVwiYnggYnhzLWxpa2UgYngtZmxpcC1ob3Jpem9udGFsIGJ4LW1kXCIvPjxpIGNsYXNzTmFtZT1cImJ4IGJ4cy1saWtlIGJ4LWZsaXAtdmVydGljYWwgYngtbWRcIi8+XHJcbiAgICAgICAgICAgICAgICAgPC9JY29uRGlzcGxheT5cclxuICAgICAgICAgICAgICAgICA8SGxqc1dyYXBwZXI+IDxjb2RlIGNsYXNzTmFtZT0naHRtbCBkaXNwbGF5JyA+e1wiXCJ9XHJcbiAgICAgICAgICAgICAgICAgICAgICB7XCI8aSBjbGFzcz0nYnggYnhzLWxpa2UgYngtcm90YXRlLTkwJz48L2k+XCJ9PGJyLz5cclxuICAgICAgICAgICAgICAgICAgICAgIHtcIjxpIGNsYXNzPSdieCBieHMtbGlrZSBieC1yb3RhdGUtMTgwJz48L2k+XCJ9PGJyLz5cclxuICAgICAgICAgICAgICAgICAgICAgIHtcIjxpIGNsYXNzPSdieCBieHMtbGlrZSBieC1yb3RhdGUtMjcwJz48L2k+XCJ9PGJyLz5cclxuICAgICAgICAgICAgICAgICAgICAgIHtcIjxpIGNsYXNzPSdieCBieHMtbGlrZSBieC1mbGlwLWhvcml6b250YWwnPjwvaT5cIn08YnIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAge1wiPGkgY2xhc3M9J2J4IGJ4cy1saWtlIGJ4LWZsaXAtdmVydGljYWwgJz48L2k+XCJ9PGJyLz5cclxuICAgICAgICAgICAgICAgICAgICAgIDxici8+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7XCI8IS0tIEJveGljb25zIHdlYiBjb21wb25lbnQgLS0+XCJ9PGJyLz48YnIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAge1wiPGJveC1pY29uIG5hbWU9J2xpa2UnIHJvdGF0ZT0nOTAnPjwvYm94LWljb24+XCJ9PGJyLz5cclxuICAgICAgICAgICAgICAgICAgICAgIHtcIjxib3gtaWNvbiBuYW1lPSdsaWtlJyBmbGlwPSdob3Jpem9udGFsJz48L2JveC1pY29uPlwifTxici8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9jb2RlPjwvSGxqc1dyYXBwZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGJyLz5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8aDQgaWQ9XCJsaXN0LWljb25zXCI+TGlzdCBJY29uczwvaDQ+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgPHA+IFVzZSBpY29ucyBhcyBidWxsZXRzIGZvciB0aGUgbGlzdCBieSBhZGRpbmcgY2xhc3MgPGNvZGUgY2xhc3NOYW1lPVwic2lkZVwiPmJ4LXVsPC9jb2RlPiB0byB0aGUgdW5vcmRlcmVkIGxpc3QgZWxlbWVudCBhbmQgaW5jbHVkZSB0aGUgaWNvbnMgaW5zaWRlIHRoZSBcclxuICAgICAgICAgICAgICAgICAgICAgIDxjb2RlIGNsYXNzTmFtZT1cInNpZGVcIj5saTwvY29kZT4gICAgPC9wPiAgICAgICA8SWNvbkRpc3BsYXk+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzc05hbWU9XCJieC11bFwiPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT4gPGkgY2xhc3NOYW1lPVwiYnggIGJ4LXJpZ2h0LWFycm93XCIvPkxpc3QgaXRlbSAxPC9saT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPiA8aSBjbGFzc05hbWU9XCJieCAgYngteFwiLz5MaXN0IGl0ZW0gMjwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+IDxpIGNsYXNzTmFtZT1cImJ4ICBieC1wbHVzXCIvPkxpc3QgaXRlbSAzPC9saT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L0ljb25EaXNwbGF5PlxyXG4gICAgICAgICAgICAgICAgIDxIbGpzV3JhcHBlcj4gPGNvZGUgY2xhc3NOYW1lPSdodG1sIGRpc3BsYXknID5cclxuICAgICAgICAgICAgICAgICAgICAgIHtcIjx1bCBjbGFzcz0nYngtdWwnPlwifTxici8+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJ0YWJcIj57XCI8bGk+PGkgY2xhc3M9J2J4ICBieC1yaWdodC1hcnJvdyc+PC9pPkxpc3QgSXRlbSAxPC9saT5cIn08L3NwYW4+PGJyLz5cclxuICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwidGFiXCI+e1wiPGxpPjxpIGNsYXNzPSdieCAgYngteCc+PC9pPkxpc3QgSXRlbSAyPC9saT5cIn08L3NwYW4+PGJyLz5cclxuICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwidGFiXCI+e1wiPGxpPjxpIGNsYXNzPSdieCAgYngtcGx1cyc+PC9pPkxpc3QgSXRlbSAzPC9saT5cIn08L3NwYW4+PGJyLz5cclxuICAgICAgICAgICAgICAgICAgICAgICB7XCI8L3VsPlwifVxyXG4gICAgICAgICAgICAgICAgICAgIDwvY29kZT48L0hsanNXcmFwcGVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgPGJyLz5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgPGg0IGlkPVwiZml4ZWQtd2lkdGhcIj5GaXhlZCBXaWR0aDwvaDQ+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgPHA+IFlvdSBjYW4gdXNlIGZpeGVkIHdpZHRoIGNsYXNzIDxjb2RlIGNsYXNzTmFtZT1cInNpZGVcIj5ieC1mdzwvY29kZT4gXFx0byBnZXQgYSBmaXhlZCB3aWR0aCBpY29uIG5leHQgdG8gdGhlIHRleHQgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgPGNvZGUgY2xhc3NOYW1lPVwic2lkZVwiPmxpPC9jb2RlPiAgICA8L3A+ICAgICAgIDxJY29uRGlzcGxheT5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PiA8aSBjbGFzc05hbWU9XCJieC1mdyBieCBieGwtZmFjZWJvb2stc3F1YXJlXCIvPkZhY2Vib29rIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+PGRpdj4gPGkgY2xhc3NOYW1lPVwiYngtZncgYnggYnhsLXNsYWNrXCIvPlNsYWNrIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+PGRpdj4gPGkgY2xhc3NOYW1lPVwiYngtZncgYnggYnhsLWluc3RhZ3JhbVwiLz5JbnN0YWdyYW0gXHJcbjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvSWNvbkRpc3BsYXk+XHJcbiAgICAgICAgICAgICAgICAgPEhsanNXcmFwcGVyPiA8Y29kZSBjbGFzc05hbWU9J2h0bWwgZGlzcGxheScgPlxyXG4gICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgIHsnPGkgY2xhc3M9XCJieC1mdyBieCBieGwtZmFjZWJvb2stc3F1YXJlXCI+PC9pPkZhY2Vib29rJ308YnIvPlxyXG4gICAgICAgICAgICAgICAgICAgICBcclxuXHJcblxyXG4gICAgICAgICAgICAgICAgICAgICA8L2NvZGU+PC9IbGpzV3JhcHBlcj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgPGJyLz5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8aDQgaWQ9XCJwdWxsLWljb25cIj5QdWxsZWQgSWNvbnM8L2g0PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgIDxwPiBVc2UgY2xhc3MgPGNvZGUgY2xhc3NOYW1lPVwic2lkZVwiPmJ4LXB1bGwtbGVmdDwvY29kZT4gb3IgPGNvZGUgY2xhc3NOYW1lPVwic2lkZVwiPmJ4LXB1bGwtcmlnaHQ8L2NvZGU+IG9uIGljb25zIGZvciBlYXN5IHB1bGwgcXVvdGVzICBcclxuICAgICAgICAgICAgICAgICAgICAgIDxjb2RlIGNsYXNzTmFtZT1cInNpZGVcIj5saTwvY29kZT4gICAgPC9wPiAgICAgICA8SWNvbkRpc3BsYXk+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzTmFtZT1cImJ4LXB1bGwtbGVmdCBieCBieHMtcXVvdGUtbGVmdCBieC1sZ1wiLz5Mb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldCwgY29uc2VjdGV0dXIgYWRpcGlzY2luZyBlbGl0LiBVdCBmYXVjaWJ1cyBlcmF0IGV1IG5pYmggbGFvcmVldCwgc2VkIHVsbGFtY29ycGVyIGRpYW0gb3JuYXJlLiBRdWlzcXVlIHZpdmVycmEgYW50ZSBuZWMgbHVjdHVzIGltcGVyZGlldC4gUXVpc3F1ZSB1dCBpbXBlcmRpZXQgbmlzaS5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFF1aXNxdWUgdWx0cmljZXMgbGFvcmVldCBvZGlvLCBub24gdmVzdGlidWx1bSBsYWN1cyBtb2xlc3RpZSBzb2xsaWNpdHVkaW4uIFBoYXNlbGx1cyBuZWMgZG9sb3IgZWdldCBudW5jIGNvbW1vZG8gc29kYWxlcyB2ZWwgdmVsIGVyb3MuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvSWNvbkRpc3BsYXk+XHJcbiAgICAgICAgICAgICAgICAgPEhsanNXcmFwcGVyPiA8Y29kZSBjbGFzc05hbWU9J2h0bWwgZGlzcGxheScgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgeyc8aSBjbGFzc05hbWU9XCJieC1wdWxsLWxlZnQgYnggYnhzLXF1b3RlLWxlZnQgYngtbGdcIi8+J308YnIvPkxvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0LCBjb25zZWN0ZXR1ciBhZGlwaXNjaW5nIGVsaXQuIFV0IGZhdWNpYnVzIGVyYXQgZXUgbmliaCBsYW9yZWV0LCBzZWQgdWxsYW1jb3JwZXIgZGlhbSBvcm5hcmUuIFF1aXNxdWUgdml2ZXJyYSBhbnRlIG5lYyBsdWN0dXMgaW1wZXJkaWV0LiBRdWlzcXVlIHV0IGltcGVyZGlldCBuaXNpLlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgUXVpc3F1ZSB1bHRyaWNlcyBsYW9yZWV0IG9kaW8sIG5vbiB2ZXN0aWJ1bHVtIGxhY3VzIG1vbGVzdGllIHNvbGxpY2l0dWRpbi4gUGhhc2VsbHVzIG5lYyBkb2xvciBlZ2V0IG51bmMgY29tbW9kbyBzb2RhbGVzIHZlbCB2ZWwgZXJvcy5cclxuICAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgIDxici8+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7XCI8IS0tIEJveGljb25zIHdlYiBjb21wb25lbnQgLS0+XCJ9PGJyLz48YnIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAge1wiPGJveC1pY29uIG5hbWU9J2xpa2UnIHB1bGw9J2xlZnQnIHNpemU9J2xnJz48L2JveC1pY29uPlwifTxici8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICBRdWlzcXVlIHVsdHJpY2VzIGxhb3JlZXQgb2Rpbywgbm9uIHZlc3RpYnVsdW0gbGFjdXMgbW9sZXN0aWUgc29sbGljaXR1ZGluLiBQaGFzZWxsdXMgbmVjIGRvbG9yIGVnZXQgbnVuYyBjb21tb2RvIHNvZGFsZXMgdmVsIHZlbCBlcm9zLlxyXG4gICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2NvZGU+PC9IbGpzV3JhcHBlcj5cclxuICAgICAgICAgICAgICAgICAgICA8YnIvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxoNCBpZD1cImJvcmRlclwiPkJvcmRlcjwvaDQ+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgPHA+ICBBZGQgYm9yZGVyIHRvIHlvdXIgaWNvbnMgd2l0aCBjbGFzc2VzIDxjb2RlIGNsYXNzTmFtZT1cInNpZGVcIj5ieC1ib3JkZXI8L2NvZGU+LCA8Y29kZSBjbGFzc05hbWU9XCJzaWRlXCI+YngtYm9yZGVyLWNpcmNsZTwvY29kZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+ICAgICAgIDxJY29uRGlzcGxheT48aSBjbGFzc05hbWU9XCJieCBieHMtaGVhcnQgYngtYm9yZGVyICBieC1tZFwiLz48aSBjbGFzc05hbWU9XCJieCBieHMtaGVhcnQgYngtYm9yZGVyLWNpcmNsZSAgYngtbWRcIi8+IDwvSWNvbkRpc3BsYXk+XHJcbiAgICAgICAgICAgICAgICAgPEhsanNXcmFwcGVyPiA8Y29kZSBjbGFzc05hbWU9J2h0bWwgZGlzcGxheScgPlxyXG4gICAgICAgICAgICAgICAgICAgICAge1wiPGkgY2xhc3M9J2J4IGJ4cy1oZWFydCBieC1ib3JkZXInPjwvaT5cIn08YnIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAge1wiPGkgY2xhc3M9J2J4IGJ4cy1oZWFydCBieC1ib3JkZXItY2lyY2xlJz48L2k+XCJ9PGJyLz5cclxuICAgICAgICAgICAgICAgICAgIDxici8+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7XCI8IS0tIEJveGljb25zIHdlYiBjb21wb25lbnQgLS0+XCJ9PGJyLz48YnIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAge1wiPGJveC1pY29uIG5hbWU9J2hlYXJ0JyBib3JkZXI9J2NpcmNsZSc+PC9ib3gtaWNvbj5cIn08YnIvPlxyXG4gICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICA8L2NvZGU+PC9IbGpzV3JhcHBlcj5cclxuICAgICAgICAgICAgICAgICAgICA8YnIvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxoNCBpZD1cImFuaW1hdGlvblwiPkFuaW1hdGlvbjwvaDQ+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgIDxwPiBBbmltYXRlIHlvdXIgaWNvbnMgd2l0aCBwcmUgYnVpbHQgQ1NTIGFuaW1hdGlvbnMgdXNpbmcgY2xhc3NlcyA8Y29kZSBjbGFzc05hbWU9XCJzaWRlXCI+Yngtc3BpbjwvY29kZT4sPGNvZGUgY2xhc3NOYW1lPVwic2lkZVwiPmJ4LXRhZGE8L2NvZGU+LDxjb2RlIGNsYXNzTmFtZT1cInNpZGVcIj5ieC1mbGFzaGluZzwvY29kZT4sPGNvZGUgY2xhc3NOYW1lPVwic2lkZVwiPmJ4LWJ1cnN0PC9jb2RlPiw8Y29kZSBjbGFzc05hbWU9XCJzaWRlXCI+YngtZmFkZS1sZWZ0PC9jb2RlPiBhbmQgPGNvZGUgY2xhc3NOYW1lPVwic2lkZVwiPmJ4LWZhZGUtcmlnaHQ8L2NvZGU+IFxyXG4gICAgICAgICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICAgICAgICAgIDxwPllvdSBjYW4gY2hhbmdlIHRoZSBzcGVlZCBvZiB0aGUgYW5pbWF0aW9uIHdpdGggdGhlIDxjb2RlIGNsYXNzTmFtZT1cInNpZGVcIj5hbmltYXRpb24tZHVyYXRpb248L2NvZGU+IHByb3BlcnR5ICYgdG8gY2hhbmdlIHRoZSBudW1iZXIgb2YgdGltZXMgdGhlIGFuaW1hdGlvbiB0YWtlcyBwbGFjZSB3aXRoIHRoZSBwcm9wZXJ0eSA8Y29kZSBjbGFzc05hbWU9XCJzaWRlXCI+YW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDwvY29kZT4gaW4gQ1NTPC9wPlxyXG4gICAgICAgICAgICAgICAgICAgIDxJY29uRGlzcGxheT48aSBjbGFzc05hbWU9XCJieCBieC1sb2FkZXIgYngtc3BpbiAgYngtbWRcIi8+PGkgY2xhc3NOYW1lPVwiYnggYnhzLWJlbGwgYngtdGFkYSBieC1tZFwiLz48aSBjbGFzc05hbWU9XCJieCBieHMtZXJyb3IgYngtZmxhc2hpbmcgYngtbWRcIi8+PGkgY2xhc3NOYW1lPVwiYnggYngtcmFkaW8tY2lyY2xlIGJ4LWJ1cnN0IGJ4LW1kXCIvPjxpIGNsYXNzTmFtZT1cImJ4IGJ4LWZhZGUtbGVmdCBieHMtbGVmdC1hcnJvdy1jaXJjbGUgYngtbWRcIi8+PGkgY2xhc3NOYW1lPVwiYnggYngtZmFkZS1yaWdodCBieHMtcmlnaHQtYXJyb3ctY2lyY2xlIGJ4LW1kXCIvPjxpIGNsYXNzTmFtZT1cImJ4IGJ4LWZhZGUtdXAgYnhzLXVwLWFycm93LWNpcmNsZSBieC1tZFwiLz48aSBjbGFzc05hbWU9XCJieCBieC1mYWRlLWRvd24gYnhzLWRvd24tYXJyb3ctY2lyY2xlIGJ4LW1kXCIvPlxyXG4gICAgICAgICAgICAgICAgIDwvSWNvbkRpc3BsYXk+XHJcblxyXG4gICAgICAgICAgICAgICAgICA8SGxqc1dyYXBwZXI+IDxjb2RlIGNsYXNzTmFtZT0naHRtbCBkaXNwbGF5JyA+XHJcbiAgICAgICAgICAgICAgICAgIHtcIlwifVxyXG4gICAgICAgICAgICAgICAgICAgICAge1wiPGkgY2xhc3M9J2J4IGJ4cy1saWtlIGJ4LXNwaW4nPjwvaT5cIn08YnIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAge1wiPGkgY2xhc3M9J2J4IGJ4cy1saWtlIGJ4LXRhZGEnPjwvaT5cIn08YnIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAge1wiPGkgY2xhc3M9J2J4IGJ4cy1saWtlIGJ4LWZsYXNoaW5nJz48L2k+XCJ9PGJyLz5cclxuICAgICAgICAgICAgICAgICAgICAgIHtcIjxpIGNsYXNzPSdieCBieHMtbGlrZSBieC1idXJzdCc+PC9pPlwifTxici8+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7XCI8aSBjbGFzcz0nYnggYnhzLWxpa2UgYngtZmFkZS1sZWZ0Jz48L2k+XCJ9PGJyLz5cclxuICAgICAgICAgICAgICAgICAgICAgIHtcIjxpIGNsYXNzPSdieCBieHMtbGlrZSBieC1mYWRlLXJpZ2h0Jz48L2k+XCJ9PGJyLz5cclxuICAgICAgICAgICAgICAgICAgICAgIHtcIjxpIGNsYXNzPSdieCBieHMtbGlrZSBieC1mYWRlLXVwJz48L2k+XCJ9PGJyLz5cclxuICAgICAgICAgICAgICAgICAgICAgIHtcIjxpIGNsYXNzPSdieCBieHMtbGlrZSBieC1mYWRlLWRvd24nPjwvaT5cIn08YnIvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxici8+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7XCI8IS0tIEJveGljb25zIHdlYiBjb21wb25lbnQgLS0+XCJ9PGJyLz48YnIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAge1wiPGJveC1pY29uIG5hbWU9J2JlbGwnIGFuaW1hdGlvbj0ndGFkYSc+PC9ib3gtaWNvbj5cIn08YnIvPlxyXG4gICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgPC9jb2RlPjwvSGxqc1dyYXBwZXI+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGJyLz5cclxuICAgICAgICAgICAgICAgICA8aDQgaWQ9XCJhbmltYXRpb24taG92ZXJcIj5BbmltYXRpb24gb24gSG92ZXI8L2g0PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgIDxwPiAgQW5pbWF0ZSB5b3VyIGljb25zIG9uIGhvdmVyIHdpdGggcHJlIGJ1aWx0IENTUyBhbmltYXRpb25zIHVzaW5nIGNsYXNzZXMgPGNvZGUgY2xhc3NOYW1lPVwic2lkZVwiPmJ4LXNwaW4taG92ZXI8L2NvZGU+LDxjb2RlIGNsYXNzTmFtZT1cInNpZGVcIj5ieC10YWRhLWhvdmVyPC9jb2RlPiw8Y29kZSBjbGFzc05hbWU9XCJzaWRlXCI+YngtZmxhc2hpbmctaG92ZXI8L2NvZGU+LDxjb2RlIGNsYXNzTmFtZT1cInNpZGVcIj5ieC1idXJzdC1ob3ZlcjwvY29kZT4sPGNvZGUgY2xhc3NOYW1lPVwic2lkZVwiPmJ4LWZhZGUtbGVmdC1ob3ZlcjwvY29kZT4gYW5kIDxjb2RlIGNsYXNzTmFtZT1cInNpZGVcIj5ieC1mYWRlLXJpZ2h0LWhvdmVyPC9jb2RlPiBcclxuICAgICAgICAgICAgICAgICAgPC9wPiAgICAgPHA+WW91IGNhbiBjaGFuZ2UgdGhlIHNwZWVkIG9mIHRoZSBhbmltYXRpb24gd2l0aCB0aGUgPGNvZGUgY2xhc3NOYW1lPVwic2lkZVwiPmFuaW1hdGlvbi1kdXJhdGlvbjwvY29kZT4gcHJvcGVydHkgJiB0byBjaGFuZ2UgdGhlIG51bWJlciBvZiB0aW1lcyB0aGUgYW5pbWF0aW9uIHRha2VzIHBsYWNlIHdpdGggdGhlIHByb3BlcnR5IDxjb2RlIGNsYXNzTmFtZT1cInNpZGVcIj5hbmltYXRpb24taXRlcmF0aW9uLWNvdW50PC9jb2RlPiBpbiBDU1M8L3A+XHJcbiAgICAgICAgICAgICAgICAgPEljb25EaXNwbGF5PjxpIGNsYXNzTmFtZT1cImJ4IGJ4LWxvYWRlciBieC1zcGluLWhvdmVyICBieC1tZFwiLz48aSBjbGFzc05hbWU9XCJieCBieHMtYmVsbCBieC10YWRhLWhvdmVyIGJ4LW1kXCIvPjxpIGNsYXNzTmFtZT1cImJ4IGJ4cy1lcnJvciBieC1mbGFzaGluZy1ob3ZlciBieC1tZFwiLz48aSBjbGFzc05hbWU9XCJieCBieC1yYWRpby1jaXJjbGUgYngtYnVyc3QtaG92ZXIgYngtbWRcIi8+PGkgY2xhc3NOYW1lPVwiYnggYngtZmFkZS1sZWZ0LWhvdmVyIGJ4cy1sZWZ0LWFycm93LWNpcmNsZSBieC1tZFwiLz48aSBjbGFzc05hbWU9XCJieCBieC1mYWRlLXJpZ2h0LWhvdmVyIGJ4cy1yaWdodC1hcnJvdy1jaXJjbGUgYngtbWRcIi8+PGkgY2xhc3NOYW1lPVwiYnggYngtZmFkZS11cC1ob3ZlciBieHMtdXAtYXJyb3ctY2lyY2xlIGJ4LW1kXCIvPjxpIGNsYXNzTmFtZT1cImJ4IGJ4LWZhZGUtZG93bi1ob3ZlciBieHMtZG93bi1hcnJvdy1jaXJjbGUgYngtbWRcIi8+XHJcbiAgICAgICAgICAgICAgICAgPC9JY29uRGlzcGxheT5cclxuXHJcbiAgICAgICAgICAgICAgICAgIDxIbGpzV3JhcHBlcj4gPGNvZGUgY2xhc3NOYW1lPSdodG1sIGRpc3BsYXknID5cclxuICAgICAgICAgICAgICAgICAge1wiXCJ9XHJcbiAgICAgICAgICAgICAgICAgICAgICB7XCI8aSBjbGFzcz0nYnggYnhzLWxpa2UgYngtc3Bpbi1ob3Zlcic+PC9pPlwifTxici8+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7XCI8aSBjbGFzcz0nYnggYnhzLWxpa2UgYngtdGFkYS1ob3Zlcic+PC9pPlwifTxici8+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7XCI8aSBjbGFzcz0nYnggYnhzLWxpa2UgYngtZmxhc2hpbmctaG92ZXInPjwvaT5cIn08YnIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAge1wiPGkgY2xhc3M9J2J4IGJ4cy1saWtlIGJ4LWJ1cnN0LWhvdmVyJz48L2k+XCJ9PGJyLz5cclxuICAgICAgICAgICAgICAgICAgICAgIHtcIjxpIGNsYXNzPSdieCBieHMtbGlrZSBieC1mYWRlLWxlZnQtaG92ZXInPjwvaT5cIn08YnIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAge1wiPGkgY2xhc3M9J2J4IGJ4cy1saWtlIGJ4LWZhZGUtcmlnaHQtaG92ZXInPjwvaT5cIn08YnIvPntcIlwifVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAge1wiPGkgY2xhc3M9J2J4IGJ4cy1saWtlIGJ4LWZhZGUtdXAtaG92ZXInPjwvaT5cIn08YnIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAge1wiPGkgY2xhc3M9J2J4IGJ4cy1saWtlIGJ4LWZhZGUtZG93bi1ob3Zlcic+PC9pPlwifTxici8+e1wiXCJ9XHJcbiAgICAgICAgICAgICAgICAgICAgPGJyLz5cclxuICAgICAgICAgICAgICAgICAgICAgIHtcIjwhLS0gQm94aWNvbnMgd2ViIGNvbXBvbmVudCAtLT5cIn08YnIvPjxici8+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7XCI8Ym94LWljb24gbmFtZT0nYmVsbCcgYW5pbWF0aW9uPSd0YWRhLWhvdmVyJz48L2JveC1pY29uPlwifTxici8+XHJcbiAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICA8L2NvZGU+PC9IbGpzV3JhcHBlcj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDxoMyBpZD1cImNvbnRyaWJ1dGlvblwiPkNvbnRyaWJ1dGlvbjwvaDM+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgIDxwPldhbnQgdG8gcmVwb3J0IGEgYnVnID8gSGF2ZSBzb21lIHN1Z2dlc3Rpb25zIG9yIGlkZWFzID8gSGF2ZSBhbiBpY29uIG9yIGEgZmVhdHVyZSByZXF1ZXN0PyBDcmVhdGUgYSBuZXcgaXNzdWUgb24gR2l0aHViIHdpdGggdGhlIGFwcHJvcHJpYXRlIGxhYmVsIDxhIGhyZWY9XCJodHRwczovL2dpdGh1Yi5jb20vYXRpc2F3ZC9ib3hpY29ucy9pc3N1ZXMvbmV3XCIgdGFyZ2V0PVwiX2JsYW5rXCI+aGVyZTwvYT48L3A+XHJcbiAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPGgzIGlkPVwibGljZW5zZVwiPkxpY2Vuc2U8L2gzPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgQm94aWNvbnMgaXMgYW4gb3BlbiBzb3VyY2UgcHJvamVjdCAsIHlvdSBjYW4gdXNlIHRoZW0gaW4geW91ciBjb21tZXJjaWFsIHByb2plY3RzIHRvby5cclxuICAgICAgICAgICAgICAgICAgICAgIDxici8+ICAgXHJcbiAgICAgICAgICAgICAgICAgICAgVGhlIGljb25zICguc3ZnKSBmaWxlcyBhcmUgZnJlZSB0byBkb3dubG9hZCBhbmQgYXJlIGxpY2Vuc2VkIHVuZGVyIDxhIGhyZWY9XCJodHRwczovL2NyZWF0aXZlY29tbW9ucy5vcmcvbGljZW5zZXMvYnkvNC4wL1wiIHRhcmdldD1cIl9ibGFua1wiPkNDIDQuMDwvYT4gLlxyXG4gICAgICAgICAgICAgICAgICAgIEJ5IGRvd25sb2FkaW5nIGl0IGlzIGFzc3VtZWQgdGhhdCB5b3UgYWdyZWUgd2l0aCB0aGUgdGVybXMgbWVudGlvbmVkIGluIENDIDQuMC5cclxuICAgICAgICAgICAgICAgICAgICA8YnIvPlxyXG4gICAgICAgICAgICAgICAgICAgIFRoZSBmb250cyBmaWxlcyBhcmUgbGljZW5zZWQgdW5kZXIgPGEgaHJlZj1cImh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvT0ZMLTEuMVwiIHRhcmdldD1cIl9ibGFua1wiPlNJTCBPRkwgMS4xPC9hPiBcclxuICAgICAgICAgICAgICAgICAgICA8YnIvPkF0dHJpYnV0aW9uIGlzIG5vdCByZXF1aXJlZCBidXQgaXMgYXBwcmVjaWF0ZWRcclxuICAgICAgICAgICAgICAgICAgIDxici8+IE90aGVyIGZpbGVzIHdoaWNoIGFyZSBub3QgZm9udHMgb3IgaWNvbnMgYXJlIGxpY2Vuc2VkIHVuZGVyIHRoZSA8YSBocmVmPVwiaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVFwiIHRhcmdldD1cIl9ibGFua1wiPk1JVCBMaWNlbnNlPC9hPiBcclxuICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L0RvY1dyYXBwZXI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgPC9QYWdlV3JhcHBlcj5cclxuICAgICA8Rm9vdGVyLz48L2Rpdj5cclxuICAgICk7XHJcbiAgfVxyXG59XHJcbmV4cG9ydCBkZWZhdWx0IFVzYWdlO1xuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyBzdGF0aWMvanMvY29tcG9uZW50cy9wYWdlL3VzYWdlLmpzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQUE7QUFDQTs7O0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUNBOzs7QUFBQTtBQUNBOzs7QUFBQTtBQUNBOzs7QUFBQTtBQUNBOzs7QUFBQTtBQUNBOzs7QUFBQTtBQUNBOzs7QUFBQTtBQUNBOzs7Ozs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQTZCQTs7Ozs7Ozs7Ozs7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTs7O0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUZBO0FBREE7QUFEQTtBQVVBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFEQTtBQUdBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFEQTtBQUdBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREE7QUFHQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREE7QUFKQTtBQUZBO0FBV0E7QUFBQTtBQUFBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURBO0FBR0E7QUFBQTtBQUFBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFEQTtBQUdBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFEQTtBQUlBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFEQTtBQUlBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFEQTtBQUdBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFEQTtBQUdBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFEQTtBQUdBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFEQTtBQUdBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFEQTtBQXhCQTtBQUZBO0FBK0JBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFEQTtBQUdBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFEQTtBQXpEQTtBQURBO0FBZ0VBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFEQTtBQUFBO0FBREE7QUFRQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFBQTtBQUFBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFEQTtBQUFBO0FBR0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFEQTtBQUFBO0FBUEE7QUFXQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFBQTtBQUFBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFEQTtBQUFBO0FBR0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFEQTtBQUFBO0FBR0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFBQTtBQUNBO0FBRkE7QUFBQTtBQUtBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBYkE7QUFBQTtBQWhCQTtBQWdDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFEQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFHQTtBQUFBO0FBSkE7QUFJQTtBQUNBO0FBTEE7QUFBQTtBQVNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFYQTtBQWFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFEQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFEQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFEQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFGQTtBQUFBO0FBREE7QUFJQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFIQTtBQUFBO0FBSkE7QUFTQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBVEE7QUFXQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFBQTtBQUFBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQURBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFyQkE7QUFBQTtBQXVCQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBekJBO0FBMkJBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFEQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBckJBO0FBQUE7QUEzQkE7QUFvREE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFEQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFEQTtBQUlBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFKQTtBQUlBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFKQTtBQUlBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFKQTtBQUlBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFKQTtBQUZBO0FBT0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBTkE7QUFBQTtBQVFBO0FBakJBO0FBbUJBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFUQTtBQUFBO0FBV0E7QUFmQTtBQWlCQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFBQTtBQUFBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREE7QUFBQTtBQURBO0FBRUE7QUFBQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTEE7QUFGQTtBQWFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBTEE7QUFBQTtBQVFBO0FBdkJBO0FBeUJBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFEQTtBQUFBO0FBREE7QUFFQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFKQTtBQVFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFBQTtBQUZBO0FBQUE7QUFRQTtBQWxCQTtBQW9CQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFBQTtBQUFBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREE7QUFBQTtBQURBO0FBRUE7QUFBQTtBQUFBO0FBRUE7QUFGQTtBQUFBO0FBU0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBREE7QUFNQTtBQUNBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFSQTtBQUFBO0FBQUE7QUFZQTtBQXZCQTtBQXlCQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFBQTtBQUFBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFEQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQ0E7QUFBQTtBQUxBO0FBQUE7QUFRQTtBQVhBO0FBYUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQ0E7QUFBQTtBQVpBO0FBQUE7QUFQQTtBQXVCQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFaQTtBQUFBO0FBTkE7QUFzQkE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREE7QUFHQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUZBO0FBR0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUhBO0FBS0E7QUFMQTtBQU1BO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQVBBO0FBUUE7QUFSQTtBQVFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFSQTtBQTFUQTtBQWpFQTtBQURBO0FBREE7QUFYQTtBQUZBO0FBMlpBO0FBNVpBO0FBOFpBOzs7O0FBemFBO0FBQ0E7QUEwYUEiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///565\n"); + +/***/ }), +/* 566 */, +/* 567 */, +/* 568 */, +/* 569 */, +/* 570 */, +/* 571 */, +/* 572 */, +/* 573 */, +/* 574 */, +/* 575 */, +/* 576 */, +/* 577 */, +/* 578 */ +/*!***********************************************!*\ + !*** ./static/js/components/common/footer.js ***! + \***********************************************/ +/*! dynamic exports provided */ +/*! all exports used */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\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\nvar _templateObject = _taggedTemplateLiteral(['\\n\\n color:', ';\\ndisplay: block;\\n height: 30px;\\n text-align: right;\\n max-width: ', ';\\n padding: 30px 30px;\\n color: #1a1b1c;\\n font-size: 14px;\\n border-top: 1px dotted #e5e5e5;\\n margin: 0 auto;\\n display: flex;\\n justify-content: flex-end;\\n\\n span {\\n font-size: 15px;\\n color: #bdc3cc;\\n line-height: 30px;\\n margin-right: 10px;\\n}\\n svg {\\n width: 120px;\\n height: 32px;\\n}\\n \\n\\n'], ['\\n\\n color:', ';\\ndisplay: block;\\n height: 30px;\\n text-align: right;\\n max-width: ', ';\\n padding: 30px 30px;\\n color: #1a1b1c;\\n font-size: 14px;\\n border-top: 1px dotted #e5e5e5;\\n margin: 0 auto;\\n display: flex;\\n justify-content: flex-end;\\n\\n span {\\n font-size: 15px;\\n color: #bdc3cc;\\n line-height: 30px;\\n margin-right: 10px;\\n}\\n svg {\\n width: 120px;\\n height: 32px;\\n}\\n \\n\\n']);\n\nvar _react = __webpack_require__(/*! react */ 3);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ 57);\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _types = __webpack_require__(/*! ../types */ 56);\n\nvar _reactRouterDom = __webpack_require__(/*! react-router-dom */ 58);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar FootNav = _styledComponents2.default.div(_templateObject, _types.FONT_COLOR, _types.MAX_WIDTH);\n\nvar Footer = function (_Component) {\n _inherits(Footer, _Component);\n\n function Footer(props) {\n _classCallCheck(this, Footer);\n\n return _possibleConstructorReturn(this, (Footer.__proto__ || Object.getPrototypeOf(Footer)).call(this, props));\n }\n\n _createClass(Footer, [{\n key: 'componentDidMount',\n value: function componentDidMount() {}\n }, {\n key: 'render',\n value: function render() {\n\n return _react2.default.createElement(\n 'div',\n { className: '' },\n _react2.default.createElement(\n FootNav,\n null,\n _react2.default.createElement(\n 'span',\n null,\n 'Made with ',\n _react2.default.createElement('i', { className: 'bx bxs-heart' }),\n ' by'\n ),\n _react2.default.createElement(\n 'a',\n { href: 'https://github.com/atisawd', target: '_blank' },\n _react2.default.createElement(\n 'svg',\n { className: 'footer-logo', version: '1.1', id: 'Layer_1', x: '0px', y: '0px',\n width: '1825.596px', height: '238.593px', viewBox: '0 0 1825.596 238.593'\n },\n _react2.default.createElement('path', { fill: '#bdc3cc', d: 'M49.282,228.111' }),\n _react2.default.createElement(\n 'g',\n null,\n _react2.default.createElement('polyline', { opacity: '0.6', fill: '#bdc3cc', points: '241.149,77.679 241.149,226.777 286.708,226.777 \\r 286.708,226.777 329.893,226.777 329.893,226.777 375.448,226.777 375.448,57.378 375.448,11.819 375.448,11.817 329.893,11.817 \\r 329.893,11.819 286.708,11.819 286.704,11.819 286.708,11.817 241.149,11.817 ' }),\n _react2.default.createElement('polyline', { fill: '#bdc3cc', points: '282.99,11.819 282.985,11.819 282.99,11.817 237.43,11.817 237.43,11.817 194.245,11.819 \\r 194.245,11.819 148.686,11.819 -0.001,226.777 45.563,226.777 45.563,226.777 88.743,226.777 133.082,226.777 134.303,226.777 \\r 237.43,77.679 ' })\n ),\n _react2.default.createElement(\n 'g',\n null,\n _react2.default.createElement('path', { fill: '#bdc3cc', d: 'M749.099,238.593l-21.69-50.389h-97.772l-21.69,50.389h-55.394L653.328,5.34h50.388l100.776,233.253\\r H749.099z M678.688,74.748l-29.364,67.742h58.396L678.688,74.748z' }),\n _react2.default.createElement('path', { fill: '#bdc3cc', d: 'M980.018,50.389v188.205h-52.059V50.389h-66.071V5.34h184.201v45.049H980.018z' }),\n _react2.default.createElement('path', { fill: '#bdc3cc', d: 'M1150.867,5.34h52.057v233.253h-52.057V5.34z' }),\n _react2.default.createElement('path', { fill: '#bdc3cc', d: 'M1381.615,51.891c-5.007,4.119-7.509,9.568-7.509,16.351c0,6.789,3.056,12.181,9.177,16.187\\r c6.114,4.004,20.239,8.732,42.379,14.182c22.134,5.453,39.317,13.629,51.557,24.525c12.232,10.902,18.354,26.813,18.354,47.721\\r c0,20.912-7.842,37.873-23.525,50.889c-15.684,13.014-36.32,19.52-61.9,19.52c-36.932,0-70.189-13.68-99.773-41.043l31.032-38.041\\r c25.136,22.023,48.386,33.035,69.742,33.035c9.563,0,17.069-2.055,22.524-6.174c5.447-4.113,8.176-9.676,8.176-16.686\\r c0-7.008-2.895-12.564-8.678-16.686c-5.786-4.113-17.24-8.285-34.368-12.514c-27.146-6.449-47-14.85-59.565-25.193\\r c-12.57-10.345-18.854-26.582-18.854-48.72c0-22.134,7.951-39.21,23.859-51.223C1360.145,6.008,1380,0,1403.807,0\\r c15.568,0,31.143,2.67,46.718,8.008c15.568,5.34,29.142,12.906,40.71,22.692l-26.361,38.042\\r c-20.244-15.352-41.16-23.025-62.734-23.025C1393.459,45.717,1386.619,47.776,1381.615,51.891z' }),\n _react2.default.createElement('path', { fill: '#bdc3cc', d: 'M1770.201,238.593l-21.689-50.389h-97.773l-21.689,50.389h-55.395L1674.432,5.34h50.387l100.777,233.253\\r H1770.201z M1699.789,74.748l-29.364,67.742h58.397L1699.789,74.748z' })\n )\n )\n )\n )\n );\n }\n }]);\n\n return Footer;\n}(_react.Component);\n\n;\n\nexports.default = Footer;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNTc4LmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vL3N0YXRpYy9qcy9jb21wb25lbnRzL2NvbW1vbi9mb290ZXIuanM/N2Q3YSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgQ29tcG9uZW50IH0gZnJvbSAncmVhY3QnO1xyXG5pbXBvcnQgc3R5bGVkIGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJztcclxuaW1wb3J0IHtEQVJLX0JPUkRFUl9DT0xPUixNQVhfV0lEVEgsUEFERElORyxTRUNPTkRBUllfRk9OVF9DT0xPUixCUkVBS1BPSU5UX0xHLExJR0hUX0JBQ0tHUk9VTkQsIEZPTlRfQ09MT1J9IGZyb20gJy4uL3R5cGVzJztcclxuaW1wb3J0IHsgTGluayB9IGZyb20gJ3JlYWN0LXJvdXRlci1kb20nO1xyXG5jb25zdCBGb290TmF2ID0gc3R5bGVkLmRpdmBcclxuXHJcbiAgY29sb3I6JHtGT05UX0NPTE9SfTtcclxuZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgaGVpZ2h0OiAzMHB4O1xyXG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XHJcbiAgICAgbWF4LXdpZHRoOiAke01BWF9XSURUSH07XHJcbiAgICBwYWRkaW5nOiAzMHB4IDMwcHg7XHJcbiAgICBjb2xvcjogIzFhMWIxYztcclxuICAgIGZvbnQtc2l6ZTogMTRweDtcclxuICAgIGJvcmRlci10b3A6IDFweCBkb3R0ZWQgI2U1ZTVlNTtcclxuICAgIG1hcmdpbjogMCBhdXRvO1xyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xyXG5cclxuICAgc3BhbiB7XHJcbiAgICBmb250LXNpemU6IDE1cHg7XHJcbiAgICBjb2xvcjogI2JkYzNjYztcclxuICAgIGxpbmUtaGVpZ2h0OiAzMHB4O1xyXG4gICAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xyXG59XHJcbiAgc3ZnIHtcclxuICAgIHdpZHRoOiAxMjBweDtcclxuICAgIGhlaWdodDogMzJweDtcclxufVxyXG4gIFxyXG5cclxuYDtcclxuY2xhc3MgRm9vdGVyIGV4dGVuZHMgQ29tcG9uZW50IHtcclxuXHRjb25zdHJ1Y3Rvcihwcm9wcykge1xyXG4gICAgICAgIHN1cGVyKHByb3BzKTtcclxuXHJcblxyXG4gICAgfVxyXG4gY29tcG9uZW50RGlkTW91bnQgKCkge1xyXG4gICAgXHJcbiAgICB9XHJcbiAgICByZW5kZXIoKSB7XHJcblxyXG5cclxuICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIlwiPlxyXG48Rm9vdE5hdj5cclxuXHJcbjxzcGFuPk1hZGUgd2l0aCA8aSBjbGFzc05hbWU9XCJieCBieHMtaGVhcnRcIi8+IGJ5PC9zcGFuPlxyXG4gICAgIDxhIGhyZWY9XCJodHRwczovL2dpdGh1Yi5jb20vYXRpc2F3ZFwiIHRhcmdldD1cIl9ibGFua1wiPlxyXG5cclxuPHN2ZyBjbGFzc05hbWU9XCJmb290ZXItbG9nb1wiIHZlcnNpb249XCIxLjFcIiBpZD1cIkxheWVyXzFcIng9XCIwcHhcIiB5PVwiMHB4XCJcclxuICAgICAgICAgICAgd2lkdGg9XCIxODI1LjU5NnB4XCIgaGVpZ2h0PVwiMjM4LjU5M3B4XCIgdmlld0JveD1cIjAgMCAxODI1LjU5NiAyMzguNTkzXCJcclxuICAgICAgICAgICAgPlxyXG48cGF0aCBmaWxsPVwiI2JkYzNjY1wiIGQ9XCJNNDkuMjgyLDIyOC4xMTFcIi8+XHJcbjxnPlxyXG4gIDxwb2x5bGluZSBvcGFjaXR5PVwiMC42XCIgZmlsbD1cIiNiZGMzY2NcIiAgcG9pbnRzPVwiMjQxLjE0OSw3Ny42NzkgMjQxLjE0OSwyMjYuNzc3IDI4Ni43MDgsMjI2Ljc3NyBcclxuICAgIDI4Ni43MDgsMjI2Ljc3NyAzMjkuODkzLDIyNi43NzcgMzI5Ljg5MywyMjYuNzc3IDM3NS40NDgsMjI2Ljc3NyAzNzUuNDQ4LDU3LjM3OCAzNzUuNDQ4LDExLjgxOSAzNzUuNDQ4LDExLjgxNyAzMjkuODkzLDExLjgxNyBcclxuICAgIDMyOS44OTMsMTEuODE5IDI4Ni43MDgsMTEuODE5IDI4Ni43MDQsMTEuODE5IDI4Ni43MDgsMTEuODE3IDI0MS4xNDksMTEuODE3ICBcIi8+XHJcbiAgPHBvbHlsaW5lIGZpbGw9XCIjYmRjM2NjXCIgcG9pbnRzPVwiMjgyLjk5LDExLjgxOSAyODIuOTg1LDExLjgxOSAyODIuOTksMTEuODE3IDIzNy40MywxMS44MTcgMjM3LjQzLDExLjgxNyAxOTQuMjQ1LDExLjgxOSBcclxuICAgIDE5NC4yNDUsMTEuODE5IDE0OC42ODYsMTEuODE5IC0wLjAwMSwyMjYuNzc3IDQ1LjU2MywyMjYuNzc3IDQ1LjU2MywyMjYuNzc3IDg4Ljc0MywyMjYuNzc3IDEzMy4wODIsMjI2Ljc3NyAxMzQuMzAzLDIyNi43NzcgXHJcbiAgICAyMzcuNDMsNzcuNjc5ICAgXCIvPlxyXG48L2c+XHJcbjxnPlxyXG4gIDxwYXRoIGZpbGw9XCIjYmRjM2NjXCIgZD1cIk03NDkuMDk5LDIzOC41OTNsLTIxLjY5LTUwLjM4OWgtOTcuNzcybC0yMS42OSw1MC4zODloLTU1LjM5NEw2NTMuMzI4LDUuMzRoNTAuMzg4bDEwMC43NzYsMjMzLjI1M1xyXG4gICAgSDc0OS4wOTl6IE02NzguNjg4LDc0Ljc0OGwtMjkuMzY0LDY3Ljc0Mmg1OC4zOTZMNjc4LjY4OCw3NC43NDh6XCIvPlxyXG4gIDxwYXRoIGZpbGw9XCIjYmRjM2NjXCIgZD1cIk05ODAuMDE4LDUwLjM4OXYxODguMjA1aC01Mi4wNTlWNTAuMzg5aC02Ni4wNzFWNS4zNGgxODQuMjAxdjQ1LjA0OUg5ODAuMDE4elwiLz5cclxuICA8cGF0aCBmaWxsPVwiI2JkYzNjY1wiIGQ9XCJNMTE1MC44NjcsNS4zNGg1Mi4wNTd2MjMzLjI1M2gtNTIuMDU3VjUuMzR6XCIvPlxyXG4gIDxwYXRoIGZpbGw9XCIjYmRjM2NjXCIgZD1cIk0xMzgxLjYxNSw1MS44OTFjLTUuMDA3LDQuMTE5LTcuNTA5LDkuNTY4LTcuNTA5LDE2LjM1MWMwLDYuNzg5LDMuMDU2LDEyLjE4MSw5LjE3NywxNi4xODdcclxuICAgIGM2LjExNCw0LjAwNCwyMC4yMzksOC43MzIsNDIuMzc5LDE0LjE4MmMyMi4xMzQsNS40NTMsMzkuMzE3LDEzLjYyOSw1MS41NTcsMjQuNTI1YzEyLjIzMiwxMC45MDIsMTguMzU0LDI2LjgxMywxOC4zNTQsNDcuNzIxXHJcbiAgICBjMCwyMC45MTItNy44NDIsMzcuODczLTIzLjUyNSw1MC44ODljLTE1LjY4NCwxMy4wMTQtMzYuMzIsMTkuNTItNjEuOSwxOS41MmMtMzYuOTMyLDAtNzAuMTg5LTEzLjY4LTk5Ljc3My00MS4wNDNsMzEuMDMyLTM4LjA0MVxyXG4gICAgYzI1LjEzNiwyMi4wMjMsNDguMzg2LDMzLjAzNSw2OS43NDIsMzMuMDM1YzkuNTYzLDAsMTcuMDY5LTIuMDU1LDIyLjUyNC02LjE3NGM1LjQ0Ny00LjExMyw4LjE3Ni05LjY3Niw4LjE3Ni0xNi42ODZcclxuICAgIGMwLTcuMDA4LTIuODk1LTEyLjU2NC04LjY3OC0xNi42ODZjLTUuNzg2LTQuMTEzLTE3LjI0LTguMjg1LTM0LjM2OC0xMi41MTRjLTI3LjE0Ni02LjQ0OS00Ny0xNC44NS01OS41NjUtMjUuMTkzXHJcbiAgICBjLTEyLjU3LTEwLjM0NS0xOC44NTQtMjYuNTgyLTE4Ljg1NC00OC43MmMwLTIyLjEzNCw3Ljk1MS0zOS4yMSwyMy44NTktNTEuMjIzQzEzNjAuMTQ1LDYuMDA4LDEzODAsMCwxNDAzLjgwNywwXHJcbiAgICBjMTUuNTY4LDAsMzEuMTQzLDIuNjcsNDYuNzE4LDguMDA4YzE1LjU2OCw1LjM0LDI5LjE0MiwxMi45MDYsNDAuNzEsMjIuNjkybC0yNi4zNjEsMzguMDQyXHJcbiAgICBjLTIwLjI0NC0xNS4zNTItNDEuMTYtMjMuMDI1LTYyLjczNC0yMy4wMjVDMTM5My40NTksNDUuNzE3LDEzODYuNjE5LDQ3Ljc3NiwxMzgxLjYxNSw1MS44OTF6XCIvPlxyXG4gIDxwYXRoIGZpbGw9XCIjYmRjM2NjXCIgZD1cIk0xNzcwLjIwMSwyMzguNTkzbC0yMS42ODktNTAuMzg5aC05Ny43NzNsLTIxLjY4OSw1MC4zODloLTU1LjM5NUwxNjc0LjQzMiw1LjM0aDUwLjM4N2wxMDAuNzc3LDIzMy4yNTNcclxuICAgIEgxNzcwLjIwMXogTTE2OTkuNzg5LDc0Ljc0OGwtMjkuMzY0LDY3Ljc0Mmg1OC4zOTdMMTY5OS43ODksNzQuNzQ4elwiLz5cclxuPC9nPlxyXG48L3N2Zz5cclxuPC9hPlxyXG5cclxuPC9Gb290TmF2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG59XHJcbjtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IEZvb3RlcjtcclxuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIHN0YXRpYy9qcy9jb21wb25lbnRzL2NvbW1vbi9mb290ZXIuanMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBQTtBQUNBOzs7QUFBQTtBQUNBOzs7QUFBQTtBQUNBO0FBQUE7QUFDQTs7Ozs7Ozs7Ozs7QUFBQTtBQUNBO0FBMkJBOzs7QUFDQTtBQUFBO0FBQ0E7QUFEQTtBQUlBO0FBQ0E7OztBQUFBOzs7QUFHQTtBQUNBO0FBRUE7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFDQTtBQURBO0FBR0E7QUFDQTtBQUFBO0FBQUE7QUFDQTtBQUdBO0FBSkE7QUFRQTtBQUFBO0FBQUE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQVFBO0FBYkE7QUFaQTtBQUZBO0FBSEE7QUFEQTtBQXdDQTs7OztBQXJEQTtBQUNBO0FBdURBO0FBQ0E7QUFDQSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///578\n"); + +/***/ }), +/* 579 */, +/* 580 */, +/* 581 */ +/*!********************************************************!*\ + !*** ./node_modules/highlight.js/lib/languages/xml.js ***! + \********************************************************/ +/*! dynamic exports provided */ +/*! all exports used */ +/***/ (function(module, exports) { + +eval("module.exports = function(hljs) {\n var XML_IDENT_RE = '[A-Za-z0-9\\\\._:-]+';\n var TAG_INTERNALS = {\n endsWithParent: true,\n illegal: /`]+/}\n ]\n }\n ]\n }\n ]\n };\n return {\n aliases: ['html', 'xhtml', 'rss', 'atom', 'xjb', 'xsd', 'xsl', 'plist'],\n case_insensitive: true,\n contains: [\n {\n className: 'meta',\n begin: '',\n relevance: 10,\n contains: [{begin: '\\\\[', end: '\\\\]'}]\n },\n hljs.COMMENT(\n '',\n {\n relevance: 10\n }\n ),\n {\n begin: '<\\\\!\\\\[CDATA\\\\[', end: '\\\\]\\\\]>',\n relevance: 10\n },\n {\n begin: /<\\?(php)?/, end: /\\?>/,\n subLanguage: 'php',\n contains: [{begin: '/\\\\*', end: '\\\\*/', skip: true}]\n },\n {\n className: 'tag',\n /*\n The lookahead pattern (?=...) ensures that 'begin' only matches\n '|$)', end: '>',\n keywords: {name: 'style'},\n contains: [TAG_INTERNALS],\n starts: {\n end: '', returnEnd: true,\n subLanguage: ['css', 'xml']\n }\n },\n {\n className: 'tag',\n // See the comment in the ",returnEnd:!0,subLanguage:["css","xml"]}},{className:"tag",begin:"|$)",end:">",keywords:{name:"script"},contains:[t],starts:{end:"<\/script>",returnEnd:!0,subLanguage:["actionscript","javascript","handlebars","xml"]}},{className:"meta",variants:[{begin:/<\?xml/,end:/\?>/,relevance:10},{begin:/<\?\w+/,end:/\?>/}]},{className:"tag",begin:"",contains:[{className:"name",begin:/[^\/><\s]+/,relevance:0},t]}]}}},569:function(e,t,n){function a(e){return n(l(e))}function l(e){var t=r[e];if(!(t+1))throw new Error("Cannot find module '"+e+"'.");return t}var r={"./javascript":570,"./xml":518};a.keys=function(){return Object.keys(r)},a.resolve=l,e.exports=a,a.id=569},570:function(e,t){e.exports=function(e){var t="[A-Za-z$_][0-9A-Za-z$_]*",n={keyword:"in of if for while finally var new function do return void else break catch instanceof with throw case default try this switch continue typeof delete let yield const export super debugger as async await static import from as",literal:"true false null undefined NaN Infinity",built_in:"eval isFinite isNaN parseFloat parseInt decodeURI decodeURIComponent encodeURI encodeURIComponent escape unescape Object Function Boolean Error EvalError InternalError RangeError ReferenceError StopIteration SyntaxError TypeError URIError Number Math Date String RegExp Array Float32Array Float64Array Int16Array Int32Array Int8Array Uint16Array Uint32Array Uint8Array Uint8ClampedArray ArrayBuffer DataView JSON Intl arguments require module console window document Symbol Set Map WeakSet WeakMap Proxy Reflect Promise"},a={className:"number",variants:[{begin:"\\b(0[bB][01]+)"},{begin:"\\b(0[oO][0-7]+)"},{begin:e.C_NUMBER_RE}],relevance:0},l={className:"subst",begin:"\\$\\{",end:"\\}",keywords:n,contains:[]},r={className:"string",begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE,l]};l.contains=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,r,a,e.REGEXP_MODE];var i=l.contains.concat([e.C_BLOCK_COMMENT_MODE,e.C_LINE_COMMENT_MODE]);return{aliases:["js","jsx"],keywords:n,contains:[{className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},{className:"meta",begin:/^#!/,end:/$/},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,r,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,a,{begin:/[{,]\s*/,relevance:0,contains:[{begin:t+"\\s*:",returnBegin:!0,relevance:0,contains:[{className:"attr",begin:t,relevance:0}]}]},{begin:"("+e.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.REGEXP_MODE,{className:"function",begin:"(\\(.*?\\)|"+t+")\\s*=>",returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:t},{begin:/\(\s*\)/},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:n,contains:i}]}]},{begin://,subLanguage:"xml",contains:[{begin:/<\w+\s*\/>/,skip:!0},{begin:/<\w+/,end:/(\/\w+|\w+\/)>/,skip:!0,contains:[{begin:/<\w+\s*\/>/,skip:!0},"self"]}]}],relevance:0},{className:"function",beginKeywords:"function",end:/\{/,excludeEnd:!0,contains:[e.inherit(e.TITLE_MODE,{begin:t}),{className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,contains:i}],illegal:/\[|%/},{begin:/\$[(.]/},e.METHOD_GUARD,{className:"class",beginKeywords:"class",end:/[{;=]/,excludeEnd:!0,illegal:/[:"\[\]]/,contains:[{beginKeywords:"extends"},e.UNDERSCORE_TITLE_MODE]},{beginKeywords:"constructor",end:/\{/,excludeEnd:!0}],illegal:/#(?!!)/}}}}); -//# sourceMappingURL=1.bundle.js.map \ No newline at end of file +webpackJsonp([1],{ + +/***/ 1014: +/*!****************************************************!*\ + !*** ./static/js/components/common/heroSection.js ***! + \****************************************************/ +/*! dynamic exports provided */ +/*! all exports used */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\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\nvar _templateObject = _taggedTemplateLiteral([\"\\ndisplay:block\\n.main-buttons{\\npadding-top: 20px;\\n display: block;\\n text-align: center;\\n}\\na{\\n display: inline-block;\\n margin:0 10px;\\n}\\n\"], [\"\\ndisplay:block\\n.main-buttons{\\npadding-top: 20px;\\n display: block;\\n text-align: center;\\n}\\na{\\n display: inline-block;\\n margin:0 10px;\\n}\\n\"]),\n _templateObject2 = _taggedTemplateLiteral([\"\\n.hero-sticky{ background: #74d8ff;\\n .hero{ max-width:\", \";\\n text-align: left;\\n position: relative;\\n margin: 0 auto;\\n display:flex;\\n max-width:1000px;\\n padding-top: 60px;\\n padding-bottom: 60px;\\n transform:\", \";\\n opacity:\", \";\\n transition:0.5s ease;\\n @media screen and (max-width: \", \") {\\n display:block;\\n }\\n @media screen and (max-width: \", \") {\\n max-width: 600px;\\n }\\n \\n .hero-side{padding-right: 25px;\\n @media screen and (max-width: \", \") {\\n \\n padding: 0px 30px;\\n p{\\n display:none;\\n }\\n\\n }\\n flex:1;\\n p {\\n color: \", \";\\n font-size: 30px;\\n margin: 0 auto;\\n font-weight: 300;\\n text-align: left;\\n height:170px;\\n max-width: 550px;\\n line-height: 1.4;\\n @media screen and (max-width: \", \") {\\n font-size: 18px;\\n text-align: left;\\n margin-left: 0px;\\n }\\n @media screen and (max-width: \", \") {\\n font-size: 16px;\\n }\\n @media screen and (max-width: \", \") {\\n font-size: 15px;\\n }\\n }\\n }\\n .hero-text{\\n flex:2;\\n \\n @media screen and (max-width: \", \") {\\n padding-right: 20px;\\n padding-left: 20px;\\n margin-bottom: 25px;\\n }\\n\\n .hero-header{ height: 170px;\\n @media screen and (max-width: \", \") {\\n \\n height: auto!important;\\n margin-bottom: 25px;\\n\\n }\\n h2 {\\n font-size: 58px;\\n margin-top: 0px;\\n \\n font-family:\", \";\\n color: \", \" ;\\n letter-spacing: -0.55px;\\n line-height: 72px;\\n font-weight: 700 !important;\\n text-rendering: optimizeLegibility;\\n position: relative;\\n word-break: break-word;\\n display: inline;\\n background-size: 100% 100%;\\n @media screen and (max-width: 768px) {\\n font-size: 48px;\\n line-height: 1.25;\\n text-align: left;\\n }\\n @media screen and (max-width: \", \") {\\n font-size: 36px;\\n line-height: 1.25;\\n }\\n @media screen and (max-width: \", \") {\\n font-size: 30px;\\n line-height: 1.2;\\n }\\n\\n }}\\n margin: 0 auto;\\n text-align: left;\\n \\n .hero-head{\\n \\n text-align: left;\\n padding: 0 50px;\\n @media screen and (max-width: \", \") {\\n text-align: left;\\n padding: 0 10px!important;\\n }\\n\\n }\\n }\\n }\\n \\n}\\n\\n\"], [\"\\n.hero-sticky{ background: #74d8ff;\\n .hero{ max-width:\", \";\\n text-align: left;\\n position: relative;\\n margin: 0 auto;\\n display:flex;\\n max-width:1000px;\\n padding-top: 60px;\\n padding-bottom: 60px;\\n transform:\", \";\\n opacity:\", \";\\n transition:0.5s ease;\\n @media screen and (max-width: \", \") {\\n display:block;\\n }\\n @media screen and (max-width: \", \") {\\n max-width: 600px;\\n }\\n \\n .hero-side{padding-right: 25px;\\n @media screen and (max-width: \", \") {\\n \\n padding: 0px 30px;\\n p{\\n display:none;\\n }\\n\\n }\\n flex:1;\\n p {\\n color: \", \";\\n font-size: 30px;\\n margin: 0 auto;\\n font-weight: 300;\\n text-align: left;\\n height:170px;\\n max-width: 550px;\\n line-height: 1.4;\\n @media screen and (max-width: \", \") {\\n font-size: 18px;\\n text-align: left;\\n margin-left: 0px;\\n }\\n @media screen and (max-width: \", \") {\\n font-size: 16px;\\n }\\n @media screen and (max-width: \", \") {\\n font-size: 15px;\\n }\\n }\\n }\\n .hero-text{\\n flex:2;\\n \\n @media screen and (max-width: \", \") {\\n padding-right: 20px;\\n padding-left: 20px;\\n margin-bottom: 25px;\\n }\\n\\n .hero-header{ height: 170px;\\n @media screen and (max-width: \", \") {\\n \\n height: auto!important;\\n margin-bottom: 25px;\\n\\n }\\n h2 {\\n font-size: 58px;\\n margin-top: 0px;\\n \\n font-family:\", \";\\n color: \", \" ;\\n letter-spacing: -0.55px;\\n line-height: 72px;\\n font-weight: 700 !important;\\n text-rendering: optimizeLegibility;\\n position: relative;\\n word-break: break-word;\\n display: inline;\\n background-size: 100% 100%;\\n @media screen and (max-width: 768px) {\\n font-size: 48px;\\n line-height: 1.25;\\n text-align: left;\\n }\\n @media screen and (max-width: \", \") {\\n font-size: 36px;\\n line-height: 1.25;\\n }\\n @media screen and (max-width: \", \") {\\n font-size: 30px;\\n line-height: 1.2;\\n }\\n\\n }}\\n margin: 0 auto;\\n text-align: left;\\n \\n .hero-head{\\n \\n text-align: left;\\n padding: 0 50px;\\n @media screen and (max-width: \", \") {\\n text-align: left;\\n padding: 0 10px!important;\\n }\\n\\n }\\n }\\n }\\n \\n}\\n\\n\"]);\n\nvar _react = __webpack_require__(/*! react */ 3);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactRouterDom = __webpack_require__(/*! react-router-dom */ 58);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ 57);\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _buttons = __webpack_require__(/*! ./buttons */ 230);\n\nvar _types = __webpack_require__(/*! ../../actions/types */ 26);\n\nvar _types2 = __webpack_require__(/*! ../types */ 56);\n\nvar _searchForm = __webpack_require__(/*! ../search/searchForm */ 135);\n\nvar _searchForm2 = _interopRequireDefault(_searchForm);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar MainButtons = _styledComponents2.default.div(_templateObject);\nvar StyledHero = _styledComponents2.default.div(_templateObject2, _types2.MAX_WIDTH, function (props) {\n return props.is_Mounted ? 'translateY(0px)' : 'translateY(50px)';\n}, function (props) {\n return props.is_Mounted ? '1' : '0';\n}, _types2.BREAKPOINT_LG, _types2.BREAKPOINT_MDL, _types2.BREAKPOINT_LG, _types2.MAIN_HEADER_COLOR, _types2.BREAKPOINT_LG, _types2.BREAKPOINT_MD, _types2.BREAKPOINT_SM, _types2.BREAKPOINT_LG, _types2.BREAKPOINT_LG, _types2.FONT_FAMILY_HEADER, _types2.MAIN_HEADER_COLOR, _types2.BREAKPOINT_MD, _types2.BREAKPOINT_SM, _types2.BREAKPOINT_LG);\n\nvar HeroSection = function (_Component) {\n _inherits(HeroSection, _Component);\n\n function HeroSection(props) {\n _classCallCheck(this, HeroSection);\n\n var _this = _possibleConstructorReturn(this, (HeroSection.__proto__ || Object.getPrototypeOf(HeroSection)).call(this, props));\n\n _this.state = {\n is_Mounted: false\n };\n return _this;\n }\n\n _createClass(HeroSection, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n setTimeout(function () {\n this.setState({ is_Mounted: true });\n }.bind(this), 10);\n }\n }, {\n key: \"render\",\n value: function render() {\n\n return _react2.default.createElement(\n StyledHero,\n { is_Mounted: this.state.is_Mounted },\n _react2.default.createElement(\n \"div\",\n { className: \"hero-sticky\" },\n _react2.default.createElement(\n \"div\",\n { className: \"hero\" },\n _react2.default.createElement(\n \"div\",\n { className: \"hero-text\" },\n _react2.default.createElement(\n \"div\",\n { className: \"hero-head\" },\n _react2.default.createElement(\n \"div\",\n { className: \"hero-header\" },\n \" \",\n _react2.default.createElement(\n \"h2\",\n null,\n \"Carefully Crafted Free Web Icons\"\n )\n ),\n _react2.default.createElement(_searchForm2.default, null)\n )\n ),\n _react2.default.createElement(\n \"div\",\n { className: \"hero-side\" },\n \" \",\n _react2.default.createElement(\n \"p\",\n null,\n \"Download 760+ icons for free as SVG, PNG and FONT\"\n ),\n _react2.default.createElement(\n _buttons.DarkBGButton,\n { href: \"https://gum.co/boxicons?wanted=true\", target: \"_blank\" },\n \"Get Boxicons \",\n _react2.default.createElement(\n \"span\",\n null,\n \"v\",\n _types.VERSION\n )\n )\n )\n )\n )\n );\n }\n }]);\n\n return HeroSection;\n}(_react.Component);\n\nexports.default = HeroSection;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMTAxNC5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy9zdGF0aWMvanMvY29tcG9uZW50cy9jb21tb24vaGVyb1NlY3Rpb24uanM/YWZhMCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgQ29tcG9uZW50IH0gZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCB7IExpbmsgfSBmcm9tIFwicmVhY3Qtcm91dGVyLWRvbVwiO1xyXG5pbXBvcnQgc3R5bGVkIGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJztcclxuaW1wb3J0IHtCbHVlQnV0dG9uLFdoaXRlQnV0dG9uLERhcmtCR0J1dHRvbn0gZnJvbSBcIi4vYnV0dG9uc1wiO1xyXG5pbXBvcnQge1ZFUlNJT059IGZyb20gJy4uLy4uL2FjdGlvbnMvdHlwZXMnO1xyXG5pbXBvcnQgeyBCUkVBS1BPSU5UX0xHLEZPTlRfRkFNSUxZX0hFQURFUixNQVhfV0lEVEgsIEJSRUFLUE9JTlRfTURMLE1BSU5fSEVBREVSX0NPTE9SLEhFQURFUl9DT0xPUixOQVZfTElTVF9DT0xPUixGT05UX0NPTE9SLCBCUkVBS1BPSU5UX01ELCBCUkVBS1BPSU5UX1NNfSBmcm9tICcuLi90eXBlcyc7XHJcbmltcG9ydCBTZWFyY2hGb3JtIGZyb20gJy4uL3NlYXJjaC9zZWFyY2hGb3JtJztcclxuY29uc3QgTWFpbkJ1dHRvbnMgPSBzdHlsZWQuZGl2YFxyXG5kaXNwbGF5OmJsb2NrXHJcbi5tYWluLWJ1dHRvbnN7XHJcbnBhZGRpbmctdG9wOiAyMHB4O1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG59XHJcbmF7XHJcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICBtYXJnaW46MCAxMHB4O1xyXG59XHJcbmA7XHJcbmNvbnN0IFN0eWxlZEhlcm8gPSBzdHlsZWQuZGl2YFxyXG4uaGVyby1zdGlja3l7ICAgIGJhY2tncm91bmQ6ICM3NGQ4ZmY7XHJcbiAgLmhlcm97IG1heC13aWR0aDoke01BWF9XSURUSH07XHJcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgbWFyZ2luOiAwIGF1dG87XHJcbiAgICBkaXNwbGF5OmZsZXg7XHJcbiAgICBtYXgtd2lkdGg6MTAwMHB4O1xyXG4gICAgICAgcGFkZGluZy10b3A6IDYwcHg7XHJcbiAgICBwYWRkaW5nLWJvdHRvbTogNjBweDtcclxuICAgIHRyYW5zZm9ybToke3Byb3BzID0+IHByb3BzLmlzX01vdW50ZWQgPyAgICAndHJhbnNsYXRlWSgwcHgpJyA6ICd0cmFuc2xhdGVZKDUwcHgpJ307XHJcbiAgICAgb3BhY2l0eToke3Byb3BzID0+IHByb3BzLmlzX01vdW50ZWQgPyAgICAnMScgOiAnMCd9O1xyXG4gICAgIHRyYW5zaXRpb246MC41cyBlYXNlO1xyXG4gICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICR7QlJFQUtQT0lOVF9MR30pIHtcclxuICAgICAgZGlzcGxheTpibG9jaztcclxuICAgICB9XHJcbiAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJHtCUkVBS1BPSU5UX01ETH0pIHtcclxuICAgICAgbWF4LXdpZHRoOiA2MDBweDtcclxuICAgICB9XHJcbiAgICAgXHJcbiAgICAuaGVyby1zaWRle3BhZGRpbmctcmlnaHQ6IDI1cHg7XHJcbiAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJHtCUkVBS1BPSU5UX0xHfSkge1xyXG4gICAgICBcclxuICBwYWRkaW5nOiAwcHggMzBweDtcclxuICBwe1xyXG4gICAgZGlzcGxheTpub25lO1xyXG4gIH1cclxuXHJcbiAgICAgICAgfVxyXG4gICAgICBmbGV4OjE7XHJcbiAgICAgIHAge1xyXG4gICAgICAgIGNvbG9yOiAke01BSU5fSEVBREVSX0NPTE9SfTtcclxuICAgICAgICBmb250LXNpemU6IDMwcHg7XHJcbiAgICAgICAgbWFyZ2luOiAwIGF1dG87XHJcbiAgICAgICAgZm9udC13ZWlnaHQ6IDMwMDtcclxuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gICAgICAgaGVpZ2h0OjE3MHB4O1xyXG4gICAgICAgIG1heC13aWR0aDogNTUwcHg7XHJcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcclxuICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAke0JSRUFLUE9JTlRfTEd9KSB7XHJcbiAgICAgICAgICBmb250LXNpemU6IDE4cHg7XHJcbiAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gICAgICAgICAgbWFyZ2luLWxlZnQ6IDBweDtcclxuICAgICAgICB9XHJcbiAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJHtCUkVBS1BPSU5UX01EfSkge1xyXG4gICAgICAgICAgZm9udC1zaXplOiAxNnB4O1xyXG4gICAgICAgIH1cclxuICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAke0JSRUFLUE9JTlRfU019KSB7XHJcbiAgICAgICAgICBmb250LXNpemU6IDE1cHg7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICAuaGVyby10ZXh0e1xyXG4gICAgIGZsZXg6MjtcclxuICAgIFxyXG4gICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICR7QlJFQUtQT0lOVF9MR30pIHtcclxuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAyMHB4O1xyXG4gICAgICAgIHBhZGRpbmctbGVmdDogMjBweDtcclxuICAgICAgICBtYXJnaW4tYm90dG9tOiAyNXB4O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgLmhlcm8taGVhZGVyeyAgICBoZWlnaHQ6IDE3MHB4O1xyXG4gICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICR7QlJFQUtQT0lOVF9MR30pIHtcclxuICAgICAgXHJcbiAgICBoZWlnaHQ6IGF1dG8haW1wb3J0YW50O1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMjVweDtcclxuXHJcbiAgICAgICAgfVxyXG4gICAgICBoMiB7XHJcbiAgICAgICAgZm9udC1zaXplOiA1OHB4O1xyXG4gICAgICAgIG1hcmdpbi10b3A6IDBweDtcclxuICAgICAgICBcclxuICAgICAgICBmb250LWZhbWlseToke0ZPTlRfRkFNSUxZX0hFQURFUn07XHJcbiAgICAgICAgY29sb3I6ICR7TUFJTl9IRUFERVJfQ09MT1J9IDtcclxuICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuNTVweDtcclxuICAgICAgICBsaW5lLWhlaWdodDogNzJweDtcclxuICAgICAgICBmb250LXdlaWdodDogNzAwICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eTtcclxuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgd29yZC1icmVhazogYnJlYWstd29yZDtcclxuICAgICAgICBkaXNwbGF5OiBpbmxpbmU7XHJcbiAgICAgICAgYmFja2dyb3VuZC1zaXplOiAxMDAlIDEwMCU7XHJcbiAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpIHtcclxuICAgICAgICAgIGZvbnQtc2l6ZTogNDhweDtcclxuICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjI1O1xyXG4gICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcclxuICAgICAgICB9XHJcbiAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJHtCUkVBS1BPSU5UX01EfSkge1xyXG4gICAgICAgICAgZm9udC1zaXplOiAzNnB4O1xyXG4gICAgICAgICAgbGluZS1oZWlnaHQ6IDEuMjU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICR7QlJFQUtQT0lOVF9TTX0pIHtcclxuICAgICAgICAgIGZvbnQtc2l6ZTogMzBweDtcclxuICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjI7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB9fVxyXG4gICAgICBtYXJnaW46IDAgYXV0bztcclxuICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgICBcclxuICAgICAgLmhlcm8taGVhZHtcclxuICAgICAgICBcclxuICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgICAgICAgcGFkZGluZzogMCA1MHB4O1xyXG4gICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICR7QlJFQUtQT0lOVF9MR30pIHtcclxuICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgICAgICAgICBwYWRkaW5nOiAwIDEwcHghaW1wb3J0YW50O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICB9XHJcbiAgfVxyXG4gIH1cclxuICBcclxufVxyXG5cclxuYDtcclxuY2xhc3MgSGVyb1NlY3Rpb24gZXh0ZW5kcyBDb21wb25lbnQge1xyXG4gICAgY29uc3RydWN0b3IocHJvcHMpIHtcclxuICAgICAgICBzdXBlcihwcm9wcyk7XHJcbiAgICAgICAgdGhpcy5zdGF0ZSA9IHtcclxuICAgICAgICAgIGlzX01vdW50ZWQ6ZmFsc2UsXHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgICAgIGNvbXBvbmVudERpZE1vdW50KCl7XHJcbiAgICAgICAgc2V0VGltZW91dChcclxuICAgICAgICAgIGZ1bmN0aW9uKCkge1xyXG4gICAgICAgICAgICB0aGlzLnNldFN0YXRlKHtpc19Nb3VudGVkOnRydWV9KVxyXG4gICAgICBcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIC5iaW5kKHRoaXMpLFxyXG4gICAgICAgICAgMTBcclxuICAgICAgKTtcclxuICAgICAgICAgXHJcbiAgICAgIH1cclxuICAgIFxyXG5cclxuICAgIHJlbmRlcigpIHtcclxuICAgICAgICBcclxuICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICA8U3R5bGVkSGVybyBpc19Nb3VudGVkPXt0aGlzLnN0YXRlLmlzX01vdW50ZWR9PlxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaGVyby1zdGlja3lcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaGVyb1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImhlcm8tdGV4dFwiICA+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJoZXJvLWhlYWRcIiA+XHJcblxyXG4gICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJoZXJvLWhlYWRlclwiID4gPGgyPkNhcmVmdWxseSBDcmFmdGVkIEZyZWUgV2ViIEljb25zPC9oMj48L2Rpdj5cclxuPFNlYXJjaEZvcm0gLz5cclxuPC9kaXY+XHJcbiAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJoZXJvLXNpZGVcIiA+IDxwPlxyXG4gICAgICAgICAgICAgICBEb3dubG9hZCA3NjArIGljb25zIGZvciBmcmVlIGFzIFNWRywgUE5HIGFuZCBGT05UXHJcbiAgICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICAgIDxEYXJrQkdCdXR0b24gaHJlZj1cImh0dHBzOi8vZ3VtLmNvL2JveGljb25zP3dhbnRlZD10cnVlXCIgdGFyZ2V0PVwiX2JsYW5rXCIgPkdldCBCb3hpY29ucyAgPHNwYW4+dntWRVJTSU9OfTwvc3Bhbj48L0RhcmtCR0J1dHRvbj48L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICBcclxuICAgICAgPC9TdHlsZWRIZXJvPlxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcbn1cclxuZXhwb3J0IGRlZmF1bHQgSGVyb1NlY3Rpb247XG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIHN0YXRpYy9qcy9jb21wb25lbnRzL2NvbW1vbi9oZXJvU2VjdGlvbi5qcyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQTtBQUNBOzs7QUFBQTtBQUNBO0FBQUE7QUFDQTs7O0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFDQTs7Ozs7Ozs7Ozs7OztBQUFBO0FBWUE7QUFVQTtBQUFBO0FBQ0E7QUFBQTtBQUNBO0FBd0dBOzs7QUFDQTtBQUFBO0FBQ0E7QUFEQTtBQUNBO0FBQ0E7QUFDQTtBQURBO0FBRkE7QUFLQTtBQUNBOzs7QUFBQTtBQUNBO0FBRUE7QUFFQTtBQUtBOzs7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUFBO0FBQ0E7QUFBQTtBQUFBO0FBQ0E7QUFBQTtBQUFBO0FBQ0E7QUFBQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUhBO0FBREE7QUFRQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBSEE7QUFUQTtBQURBO0FBREE7QUFvQkE7Ozs7QUEzQ0E7QUFDQTtBQTRDQSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///1014\n"); + +/***/ }), + +/***/ 567: +/*!*******************************************!*\ + !*** ./static/js/components/home/home.js ***! + \*******************************************/ +/*! dynamic exports provided */ +/*! all exports used */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\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\nvar _templateObject = _taggedTemplateLiteral(['\\n\\n.button-space{\\n \\n position:fixed;\\n bottom:25px;\\n left:25px;\\n z-index:999;\\n\\n\\n}\\n.home-top {\\n \\n background: ', ';\\n .home-top-bg{\\n padding-top: 80px; \\n\\n @media screen and (max-width: ', ') {\\n background-size: 75%;\\n \\n\\n }\\n @media screen and (max-width: ', ') {\\n background-size: 150%;\\n \\n\\n }\\n}\\n}\\n'], ['\\n\\n.button-space{\\n \\n position:fixed;\\n bottom:25px;\\n left:25px;\\n z-index:999;\\n\\n\\n}\\n.home-top {\\n \\n background: ', ';\\n .home-top-bg{\\n padding-top: 80px; \\n\\n @media screen and (max-width: ', ') {\\n background-size: 75%;\\n \\n\\n }\\n @media screen and (max-width: ', ') {\\n background-size: 150%;\\n \\n\\n }\\n}\\n}\\n']);\n\nvar _react = __webpack_require__(/*! react */ 3);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _icons = __webpack_require__(/*! ../icons/icons */ 823);\n\nvar _icons2 = _interopRequireDefault(_icons);\n\nvar _heroSection = __webpack_require__(/*! ../common/heroSection */ 1014);\n\nvar _heroSection2 = _interopRequireDefault(_heroSection);\n\nvar _footer = __webpack_require__(/*! ../common/footer */ 578);\n\nvar _footer2 = _interopRequireDefault(_footer);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ 57);\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _types = __webpack_require__(/*! ../types */ 56);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar StyledHome = _styledComponents2.default.div(_templateObject, _types.HEADER_BACKGROUND, _types.BREAKPOINT_LG, _types.BREAKPOINT_MD);\n\nvar Home = function (_Component) {\n _inherits(Home, _Component);\n\n function Home(props) {\n _classCallCheck(this, Home);\n\n var _this = _possibleConstructorReturn(this, (Home.__proto__ || Object.getPrototypeOf(Home)).call(this, props));\n\n _this.state = {\n lastScrollPos: 0\n };\n\n return _this;\n }\n\n _createClass(Home, [{\n key: 'componentWillMount',\n value: function componentWillMount() {}\n }, {\n key: 'componentDidMount',\n value: function componentDidMount() {\n window.scrollTo(0, 0);\n }\n }, {\n key: 'render',\n value: function render() {\n\n return _react2.default.createElement(\n StyledHome,\n { className: '' },\n _react2.default.createElement(\n 'div',\n { className: 'home-top' },\n _react2.default.createElement(\n 'div',\n { className: 'home-top-bg' },\n _react2.default.createElement(_heroSection2.default, { ref: 'hero' })\n )\n ),\n _react2.default.createElement(\n 'div',\n { className: 'main-section' },\n _react2.default.createElement(_icons2.default, null)\n ),\n _react2.default.createElement(_footer2.default, null)\n );\n }\n }]);\n\n return Home;\n}(_react.Component);\n\n;\n\nexports.default = Home;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNTY3LmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vL3N0YXRpYy9qcy9jb21wb25lbnRzL2hvbWUvaG9tZS5qcz9jNjA0Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyBDb21wb25lbnQgfSBmcm9tICdyZWFjdCc7XHJcbmltcG9ydCBJY29ucyBmcm9tICcuLi9pY29ucy9pY29ucyc7XHJcbmltcG9ydCBIZXJvU2VjdGlvbiBmcm9tICcuLi9jb21tb24vaGVyb1NlY3Rpb24nXHJcbmltcG9ydCBGb290ZXIgZnJvbSAnLi4vY29tbW9uL2Zvb3Rlcic7XHJcbmltcG9ydCBzdHlsZWQgZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMnO1xyXG5pbXBvcnQgeyBCUkVBS1BPSU5UX0xHLFRPUF9CQVJfR1JBRElFTlQsIEhFQURFUl9CQUNLR1JPVU5ELERBUktfQk9SREVSX0NPTE9SLEJSRUFLUE9JTlRfTUQsIEJSRUFLUE9JTlRfU019IGZyb20gJy4uL3R5cGVzJztcclxuY29uc3QgU3R5bGVkSG9tZSA9IHN0eWxlZC5kaXZgXHJcblxyXG4uYnV0dG9uLXNwYWNle1xyXG4gIFxyXG4gICAgICAgIHBvc2l0aW9uOmZpeGVkO1xyXG4gICAgICAgIGJvdHRvbToyNXB4O1xyXG4gICAgICAgIGxlZnQ6MjVweDtcclxuICAgICAgICB6LWluZGV4Ojk5OTtcclxuXHJcblxyXG59XHJcbi5ob21lLXRvcCB7XHJcbiAgICBcclxuICAgIGJhY2tncm91bmQ6ICR7SEVBREVSX0JBQ0tHUk9VTkR9O1xyXG4gICAgLmhvbWUtdG9wLWJne1xyXG4gICAgcGFkZGluZy10b3A6IDgwcHg7ICAgXHJcblxyXG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICR7QlJFQUtQT0lOVF9MR30pIHtcclxuICAgICAgYmFja2dyb3VuZC1zaXplOiA3NSU7XHJcbiAgIFxyXG5cclxuICAgICAgICB9XHJcbiAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJHtCUkVBS1BPSU5UX01EfSkge1xyXG4gICAgICBiYWNrZ3JvdW5kLXNpemU6IDE1MCU7XHJcbiAgIFxyXG5cclxuICAgICAgICB9XHJcbn1cclxufVxyXG5gO1xyXG5jbGFzcyBIb21lIGV4dGVuZHMgQ29tcG9uZW50IHtcclxuXHRjb25zdHJ1Y3Rvcihwcm9wcykge1xyXG4gICAgICAgIHN1cGVyKHByb3BzKTtcclxuXHJcbiAgICAgICAgdGhpcy5zdGF0ZSA9IHtcclxuICAgICAgICAgICAgbGFzdFNjcm9sbFBvczogMFxyXG4gICAgICAgIH07XHJcblxyXG4gICAgfVxyXG4gICAgXHJcbiAgICBjb21wb25lbnRXaWxsTW91bnQoKXtcclxuXHJcbiAgICB9XHJcbmNvbXBvbmVudERpZE1vdW50KCkge1xyXG5cdHdpbmRvdy5zY3JvbGxUbygwLCAwKTtcclxuICAgfVxyXG5cclxuICAgIHJlbmRlcigpIHtcclxuXHJcblxyXG4gICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgIDxTdHlsZWRIb21lIGNsYXNzTmFtZT1cIlwiPlxyXG4gICAgXHJcbiAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImhvbWUtdG9wXCI+XHJcbiAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImhvbWUtdG9wLWJnXCI+XHJcbiAgICAgIDxIZXJvU2VjdGlvbiAgcmVmPVwiaGVyb1wiLz5cclxuXHJcbiAgXHJcblxyXG4gIDwvZGl2PjwvZGl2PlxyXG4gIDxkaXYgY2xhc3NOYW1lPVwibWFpbi1zZWN0aW9uXCI+XHJcblxyXG48SWNvbnMgLz5cclxuIFxyXG48L2Rpdj5cclxuPEZvb3RlciAvPlxyXG4gICAgICAgIDwvU3R5bGVkSG9tZT5cclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxufVxyXG47XHJcblxyXG5leHBvcnQgZGVmYXVsdCBIb21lO1xyXG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gc3RhdGljL2pzL2NvbXBvbmVudHMvaG9tZS9ob21lLmpzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQUE7QUFDQTs7O0FBQUE7QUFDQTs7O0FBQUE7QUFDQTs7O0FBQUE7QUFDQTs7O0FBQUE7QUFDQTs7O0FBQUE7QUFDQTs7Ozs7Ozs7Ozs7QUFBQTtBQUNBO0FBNkJBOzs7QUFDQTtBQUFBO0FBQ0E7QUFEQTtBQUNBO0FBRUE7QUFDQTtBQURBO0FBQ0E7QUFKQTtBQU9BO0FBQ0E7OztBQUNBOzs7QUFHQTtBQUNBO0FBQ0E7OztBQUVBO0FBQ0E7QUFFQTtBQUNBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFDQTtBQURBO0FBREE7QUFPQTtBQUFBO0FBQUE7QUFFQTtBQUZBO0FBS0E7QUFkQTtBQWlCQTs7OztBQXRDQTtBQUNBO0FBd0NBO0FBQ0E7QUFDQSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///567\n"); + +/***/ }), + +/***/ 578: +/*!***********************************************!*\ + !*** ./static/js/components/common/footer.js ***! + \***********************************************/ +/*! dynamic exports provided */ +/*! all exports used */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\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\nvar _templateObject = _taggedTemplateLiteral(['\\n\\n color:', ';\\ndisplay: block;\\n height: 30px;\\n text-align: right;\\n max-width: ', ';\\n padding: 30px 30px;\\n color: #1a1b1c;\\n font-size: 14px;\\n border-top: 1px dotted #e5e5e5;\\n margin: 0 auto;\\n display: flex;\\n justify-content: flex-end;\\n\\n span {\\n font-size: 15px;\\n color: #bdc3cc;\\n line-height: 30px;\\n margin-right: 10px;\\n}\\n svg {\\n width: 120px;\\n height: 32px;\\n}\\n \\n\\n'], ['\\n\\n color:', ';\\ndisplay: block;\\n height: 30px;\\n text-align: right;\\n max-width: ', ';\\n padding: 30px 30px;\\n color: #1a1b1c;\\n font-size: 14px;\\n border-top: 1px dotted #e5e5e5;\\n margin: 0 auto;\\n display: flex;\\n justify-content: flex-end;\\n\\n span {\\n font-size: 15px;\\n color: #bdc3cc;\\n line-height: 30px;\\n margin-right: 10px;\\n}\\n svg {\\n width: 120px;\\n height: 32px;\\n}\\n \\n\\n']);\n\nvar _react = __webpack_require__(/*! react */ 3);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ 57);\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _types = __webpack_require__(/*! ../types */ 56);\n\nvar _reactRouterDom = __webpack_require__(/*! react-router-dom */ 58);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar FootNav = _styledComponents2.default.div(_templateObject, _types.FONT_COLOR, _types.MAX_WIDTH);\n\nvar Footer = function (_Component) {\n _inherits(Footer, _Component);\n\n function Footer(props) {\n _classCallCheck(this, Footer);\n\n return _possibleConstructorReturn(this, (Footer.__proto__ || Object.getPrototypeOf(Footer)).call(this, props));\n }\n\n _createClass(Footer, [{\n key: 'componentDidMount',\n value: function componentDidMount() {}\n }, {\n key: 'render',\n value: function render() {\n\n return _react2.default.createElement(\n 'div',\n { className: '' },\n _react2.default.createElement(\n FootNav,\n null,\n _react2.default.createElement(\n 'span',\n null,\n 'Made with ',\n _react2.default.createElement('i', { className: 'bx bxs-heart' }),\n ' by'\n ),\n _react2.default.createElement(\n 'a',\n { href: 'https://github.com/atisawd', target: '_blank' },\n _react2.default.createElement(\n 'svg',\n { className: 'footer-logo', version: '1.1', id: 'Layer_1', x: '0px', y: '0px',\n width: '1825.596px', height: '238.593px', viewBox: '0 0 1825.596 238.593'\n },\n _react2.default.createElement('path', { fill: '#bdc3cc', d: 'M49.282,228.111' }),\n _react2.default.createElement(\n 'g',\n null,\n _react2.default.createElement('polyline', { opacity: '0.6', fill: '#bdc3cc', points: '241.149,77.679 241.149,226.777 286.708,226.777 \\r 286.708,226.777 329.893,226.777 329.893,226.777 375.448,226.777 375.448,57.378 375.448,11.819 375.448,11.817 329.893,11.817 \\r 329.893,11.819 286.708,11.819 286.704,11.819 286.708,11.817 241.149,11.817 ' }),\n _react2.default.createElement('polyline', { fill: '#bdc3cc', points: '282.99,11.819 282.985,11.819 282.99,11.817 237.43,11.817 237.43,11.817 194.245,11.819 \\r 194.245,11.819 148.686,11.819 -0.001,226.777 45.563,226.777 45.563,226.777 88.743,226.777 133.082,226.777 134.303,226.777 \\r 237.43,77.679 ' })\n ),\n _react2.default.createElement(\n 'g',\n null,\n _react2.default.createElement('path', { fill: '#bdc3cc', d: 'M749.099,238.593l-21.69-50.389h-97.772l-21.69,50.389h-55.394L653.328,5.34h50.388l100.776,233.253\\r H749.099z M678.688,74.748l-29.364,67.742h58.396L678.688,74.748z' }),\n _react2.default.createElement('path', { fill: '#bdc3cc', d: 'M980.018,50.389v188.205h-52.059V50.389h-66.071V5.34h184.201v45.049H980.018z' }),\n _react2.default.createElement('path', { fill: '#bdc3cc', d: 'M1150.867,5.34h52.057v233.253h-52.057V5.34z' }),\n _react2.default.createElement('path', { fill: '#bdc3cc', d: 'M1381.615,51.891c-5.007,4.119-7.509,9.568-7.509,16.351c0,6.789,3.056,12.181,9.177,16.187\\r c6.114,4.004,20.239,8.732,42.379,14.182c22.134,5.453,39.317,13.629,51.557,24.525c12.232,10.902,18.354,26.813,18.354,47.721\\r c0,20.912-7.842,37.873-23.525,50.889c-15.684,13.014-36.32,19.52-61.9,19.52c-36.932,0-70.189-13.68-99.773-41.043l31.032-38.041\\r c25.136,22.023,48.386,33.035,69.742,33.035c9.563,0,17.069-2.055,22.524-6.174c5.447-4.113,8.176-9.676,8.176-16.686\\r c0-7.008-2.895-12.564-8.678-16.686c-5.786-4.113-17.24-8.285-34.368-12.514c-27.146-6.449-47-14.85-59.565-25.193\\r c-12.57-10.345-18.854-26.582-18.854-48.72c0-22.134,7.951-39.21,23.859-51.223C1360.145,6.008,1380,0,1403.807,0\\r c15.568,0,31.143,2.67,46.718,8.008c15.568,5.34,29.142,12.906,40.71,22.692l-26.361,38.042\\r c-20.244-15.352-41.16-23.025-62.734-23.025C1393.459,45.717,1386.619,47.776,1381.615,51.891z' }),\n _react2.default.createElement('path', { fill: '#bdc3cc', d: 'M1770.201,238.593l-21.689-50.389h-97.773l-21.689,50.389h-55.395L1674.432,5.34h50.387l100.777,233.253\\r H1770.201z M1699.789,74.748l-29.364,67.742h58.397L1699.789,74.748z' })\n )\n )\n )\n )\n );\n }\n }]);\n\n return Footer;\n}(_react.Component);\n\n;\n\nexports.default = Footer;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNTc4LmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vL3N0YXRpYy9qcy9jb21wb25lbnRzL2NvbW1vbi9mb290ZXIuanM/N2Q3YSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgQ29tcG9uZW50IH0gZnJvbSAncmVhY3QnO1xyXG5pbXBvcnQgc3R5bGVkIGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJztcclxuaW1wb3J0IHtEQVJLX0JPUkRFUl9DT0xPUixNQVhfV0lEVEgsUEFERElORyxTRUNPTkRBUllfRk9OVF9DT0xPUixCUkVBS1BPSU5UX0xHLExJR0hUX0JBQ0tHUk9VTkQsIEZPTlRfQ09MT1J9IGZyb20gJy4uL3R5cGVzJztcclxuaW1wb3J0IHsgTGluayB9IGZyb20gJ3JlYWN0LXJvdXRlci1kb20nO1xyXG5jb25zdCBGb290TmF2ID0gc3R5bGVkLmRpdmBcclxuXHJcbiAgY29sb3I6JHtGT05UX0NPTE9SfTtcclxuZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgaGVpZ2h0OiAzMHB4O1xyXG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XHJcbiAgICAgbWF4LXdpZHRoOiAke01BWF9XSURUSH07XHJcbiAgICBwYWRkaW5nOiAzMHB4IDMwcHg7XHJcbiAgICBjb2xvcjogIzFhMWIxYztcclxuICAgIGZvbnQtc2l6ZTogMTRweDtcclxuICAgIGJvcmRlci10b3A6IDFweCBkb3R0ZWQgI2U1ZTVlNTtcclxuICAgIG1hcmdpbjogMCBhdXRvO1xyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xyXG5cclxuICAgc3BhbiB7XHJcbiAgICBmb250LXNpemU6IDE1cHg7XHJcbiAgICBjb2xvcjogI2JkYzNjYztcclxuICAgIGxpbmUtaGVpZ2h0OiAzMHB4O1xyXG4gICAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xyXG59XHJcbiAgc3ZnIHtcclxuICAgIHdpZHRoOiAxMjBweDtcclxuICAgIGhlaWdodDogMzJweDtcclxufVxyXG4gIFxyXG5cclxuYDtcclxuY2xhc3MgRm9vdGVyIGV4dGVuZHMgQ29tcG9uZW50IHtcclxuXHRjb25zdHJ1Y3Rvcihwcm9wcykge1xyXG4gICAgICAgIHN1cGVyKHByb3BzKTtcclxuXHJcblxyXG4gICAgfVxyXG4gY29tcG9uZW50RGlkTW91bnQgKCkge1xyXG4gICAgXHJcbiAgICB9XHJcbiAgICByZW5kZXIoKSB7XHJcblxyXG5cclxuICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIlwiPlxyXG48Rm9vdE5hdj5cclxuXHJcbjxzcGFuPk1hZGUgd2l0aCA8aSBjbGFzc05hbWU9XCJieCBieHMtaGVhcnRcIi8+IGJ5PC9zcGFuPlxyXG4gICAgIDxhIGhyZWY9XCJodHRwczovL2dpdGh1Yi5jb20vYXRpc2F3ZFwiIHRhcmdldD1cIl9ibGFua1wiPlxyXG5cclxuPHN2ZyBjbGFzc05hbWU9XCJmb290ZXItbG9nb1wiIHZlcnNpb249XCIxLjFcIiBpZD1cIkxheWVyXzFcIng9XCIwcHhcIiB5PVwiMHB4XCJcclxuICAgICAgICAgICAgd2lkdGg9XCIxODI1LjU5NnB4XCIgaGVpZ2h0PVwiMjM4LjU5M3B4XCIgdmlld0JveD1cIjAgMCAxODI1LjU5NiAyMzguNTkzXCJcclxuICAgICAgICAgICAgPlxyXG48cGF0aCBmaWxsPVwiI2JkYzNjY1wiIGQ9XCJNNDkuMjgyLDIyOC4xMTFcIi8+XHJcbjxnPlxyXG4gIDxwb2x5bGluZSBvcGFjaXR5PVwiMC42XCIgZmlsbD1cIiNiZGMzY2NcIiAgcG9pbnRzPVwiMjQxLjE0OSw3Ny42NzkgMjQxLjE0OSwyMjYuNzc3IDI4Ni43MDgsMjI2Ljc3NyBcclxuICAgIDI4Ni43MDgsMjI2Ljc3NyAzMjkuODkzLDIyNi43NzcgMzI5Ljg5MywyMjYuNzc3IDM3NS40NDgsMjI2Ljc3NyAzNzUuNDQ4LDU3LjM3OCAzNzUuNDQ4LDExLjgxOSAzNzUuNDQ4LDExLjgxNyAzMjkuODkzLDExLjgxNyBcclxuICAgIDMyOS44OTMsMTEuODE5IDI4Ni43MDgsMTEuODE5IDI4Ni43MDQsMTEuODE5IDI4Ni43MDgsMTEuODE3IDI0MS4xNDksMTEuODE3ICBcIi8+XHJcbiAgPHBvbHlsaW5lIGZpbGw9XCIjYmRjM2NjXCIgcG9pbnRzPVwiMjgyLjk5LDExLjgxOSAyODIuOTg1LDExLjgxOSAyODIuOTksMTEuODE3IDIzNy40MywxMS44MTcgMjM3LjQzLDExLjgxNyAxOTQuMjQ1LDExLjgxOSBcclxuICAgIDE5NC4yNDUsMTEuODE5IDE0OC42ODYsMTEuODE5IC0wLjAwMSwyMjYuNzc3IDQ1LjU2MywyMjYuNzc3IDQ1LjU2MywyMjYuNzc3IDg4Ljc0MywyMjYuNzc3IDEzMy4wODIsMjI2Ljc3NyAxMzQuMzAzLDIyNi43NzcgXHJcbiAgICAyMzcuNDMsNzcuNjc5ICAgXCIvPlxyXG48L2c+XHJcbjxnPlxyXG4gIDxwYXRoIGZpbGw9XCIjYmRjM2NjXCIgZD1cIk03NDkuMDk5LDIzOC41OTNsLTIxLjY5LTUwLjM4OWgtOTcuNzcybC0yMS42OSw1MC4zODloLTU1LjM5NEw2NTMuMzI4LDUuMzRoNTAuMzg4bDEwMC43NzYsMjMzLjI1M1xyXG4gICAgSDc0OS4wOTl6IE02NzguNjg4LDc0Ljc0OGwtMjkuMzY0LDY3Ljc0Mmg1OC4zOTZMNjc4LjY4OCw3NC43NDh6XCIvPlxyXG4gIDxwYXRoIGZpbGw9XCIjYmRjM2NjXCIgZD1cIk05ODAuMDE4LDUwLjM4OXYxODguMjA1aC01Mi4wNTlWNTAuMzg5aC02Ni4wNzFWNS4zNGgxODQuMjAxdjQ1LjA0OUg5ODAuMDE4elwiLz5cclxuICA8cGF0aCBmaWxsPVwiI2JkYzNjY1wiIGQ9XCJNMTE1MC44NjcsNS4zNGg1Mi4wNTd2MjMzLjI1M2gtNTIuMDU3VjUuMzR6XCIvPlxyXG4gIDxwYXRoIGZpbGw9XCIjYmRjM2NjXCIgZD1cIk0xMzgxLjYxNSw1MS44OTFjLTUuMDA3LDQuMTE5LTcuNTA5LDkuNTY4LTcuNTA5LDE2LjM1MWMwLDYuNzg5LDMuMDU2LDEyLjE4MSw5LjE3NywxNi4xODdcclxuICAgIGM2LjExNCw0LjAwNCwyMC4yMzksOC43MzIsNDIuMzc5LDE0LjE4MmMyMi4xMzQsNS40NTMsMzkuMzE3LDEzLjYyOSw1MS41NTcsMjQuNTI1YzEyLjIzMiwxMC45MDIsMTguMzU0LDI2LjgxMywxOC4zNTQsNDcuNzIxXHJcbiAgICBjMCwyMC45MTItNy44NDIsMzcuODczLTIzLjUyNSw1MC44ODljLTE1LjY4NCwxMy4wMTQtMzYuMzIsMTkuNTItNjEuOSwxOS41MmMtMzYuOTMyLDAtNzAuMTg5LTEzLjY4LTk5Ljc3My00MS4wNDNsMzEuMDMyLTM4LjA0MVxyXG4gICAgYzI1LjEzNiwyMi4wMjMsNDguMzg2LDMzLjAzNSw2OS43NDIsMzMuMDM1YzkuNTYzLDAsMTcuMDY5LTIuMDU1LDIyLjUyNC02LjE3NGM1LjQ0Ny00LjExMyw4LjE3Ni05LjY3Niw4LjE3Ni0xNi42ODZcclxuICAgIGMwLTcuMDA4LTIuODk1LTEyLjU2NC04LjY3OC0xNi42ODZjLTUuNzg2LTQuMTEzLTE3LjI0LTguMjg1LTM0LjM2OC0xMi41MTRjLTI3LjE0Ni02LjQ0OS00Ny0xNC44NS01OS41NjUtMjUuMTkzXHJcbiAgICBjLTEyLjU3LTEwLjM0NS0xOC44NTQtMjYuNTgyLTE4Ljg1NC00OC43MmMwLTIyLjEzNCw3Ljk1MS0zOS4yMSwyMy44NTktNTEuMjIzQzEzNjAuMTQ1LDYuMDA4LDEzODAsMCwxNDAzLjgwNywwXHJcbiAgICBjMTUuNTY4LDAsMzEuMTQzLDIuNjcsNDYuNzE4LDguMDA4YzE1LjU2OCw1LjM0LDI5LjE0MiwxMi45MDYsNDAuNzEsMjIuNjkybC0yNi4zNjEsMzguMDQyXHJcbiAgICBjLTIwLjI0NC0xNS4zNTItNDEuMTYtMjMuMDI1LTYyLjczNC0yMy4wMjVDMTM5My40NTksNDUuNzE3LDEzODYuNjE5LDQ3Ljc3NiwxMzgxLjYxNSw1MS44OTF6XCIvPlxyXG4gIDxwYXRoIGZpbGw9XCIjYmRjM2NjXCIgZD1cIk0xNzcwLjIwMSwyMzguNTkzbC0yMS42ODktNTAuMzg5aC05Ny43NzNsLTIxLjY4OSw1MC4zODloLTU1LjM5NUwxNjc0LjQzMiw1LjM0aDUwLjM4N2wxMDAuNzc3LDIzMy4yNTNcclxuICAgIEgxNzcwLjIwMXogTTE2OTkuNzg5LDc0Ljc0OGwtMjkuMzY0LDY3Ljc0Mmg1OC4zOTdMMTY5OS43ODksNzQuNzQ4elwiLz5cclxuPC9nPlxyXG48L3N2Zz5cclxuPC9hPlxyXG5cclxuPC9Gb290TmF2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG59XHJcbjtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IEZvb3RlcjtcclxuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIHN0YXRpYy9qcy9jb21wb25lbnRzL2NvbW1vbi9mb290ZXIuanMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBQTtBQUNBOzs7QUFBQTtBQUNBOzs7QUFBQTtBQUNBO0FBQUE7QUFDQTs7Ozs7Ozs7Ozs7QUFBQTtBQUNBO0FBMkJBOzs7QUFDQTtBQUFBO0FBQ0E7QUFEQTtBQUlBO0FBQ0E7OztBQUFBOzs7QUFHQTtBQUNBO0FBRUE7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFDQTtBQURBO0FBR0E7QUFDQTtBQUFBO0FBQUE7QUFDQTtBQUdBO0FBSkE7QUFRQTtBQUFBO0FBQUE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQVFBO0FBYkE7QUFaQTtBQUZBO0FBSEE7QUFEQTtBQXdDQTs7OztBQXJEQTtBQUNBO0FBdURBO0FBQ0E7QUFDQSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///578\n"); + +/***/ }), + +/***/ 823: +/*!*********************************************!*\ + !*** ./static/js/components/icons/icons.js ***! + \*********************************************/ +/*! dynamic exports provided */ +/*! all exports used */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\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\nvar _templateObject = _taggedTemplateLiteral([\"\\n padding: 20px;\\n padding-bottom:30px;\\n padding-left: 60px;\\n display: flex;\\n pointer-events: auto;\\n position: relative;\\n @media screen and (max-width: \", \") {\\n display: block;\\n height: 48px;\\n padding: 15px;\\n }\\n @keyframes placeHolderShimmer {\\n 0% {\\n background-position: -468px 0\\n }\\n 100% {\\n background-position: 468px 0\\n }\\n}\\n .mock-icon-box {\\n width: 590px;\\n @media screen and (max-width: \", \") {\\n display:none;\\n visibility:hidden;\\n }\\n height: 170px;\\n display: flex;\\n animation-duration: 1s;\\n animation-fill-mode: forwards;\\n animation-iteration-count: infinite;\\n animation-name: placeHolderShimmer;\\n animation-timing-function: linear;\\n background: #f6f7f8;\\n background: linear-gradient(to right, #eeeeee 8%, #dddddd 18%, #eeeeee 33%);\\n background-size: 800px 104px;\\n\\n position: relative;\\n div{\\n background: #fff;\\n position: absolute;\\n }\\n .mock-box-1 {\\n left: 170px;\\n width: 15px;\\n height: 170px;\\n}\\n.mock-box-2 {\\n left: 170px;\\n width: 430px;\\n height: 15px;\\n}\\n.mock-box-3 {\\n left: 170px;\\n top: 40px;\\n width: 430px;\\n height: 15px;\\n}\\n.mock-box-4 {\\n left: 170px;\\n top: 80px;\\n width: 430px;\\n height: 94px;\\n}\\n.mock-box-5 {\\n left: 510px;\\n width: 84px;\\n height: 170px;\\n}\\n.mock-box-6 {\\n left: 400px;\\n width: 165px;\\n top: 50px;\\n height: 130px;\\n}\\n\\n }\\n\"], [\"\\n padding: 20px;\\n padding-bottom:30px;\\n padding-left: 60px;\\n display: flex;\\n pointer-events: auto;\\n position: relative;\\n @media screen and (max-width: \", \") {\\n display: block;\\n height: 48px;\\n padding: 15px;\\n }\\n @keyframes placeHolderShimmer {\\n 0% {\\n background-position: -468px 0\\n }\\n 100% {\\n background-position: 468px 0\\n }\\n}\\n .mock-icon-box {\\n width: 590px;\\n @media screen and (max-width: \", \") {\\n display:none;\\n visibility:hidden;\\n }\\n height: 170px;\\n display: flex;\\n animation-duration: 1s;\\n animation-fill-mode: forwards;\\n animation-iteration-count: infinite;\\n animation-name: placeHolderShimmer;\\n animation-timing-function: linear;\\n background: #f6f7f8;\\n background: linear-gradient(to right, #eeeeee 8%, #dddddd 18%, #eeeeee 33%);\\n background-size: 800px 104px;\\n\\n position: relative;\\n div{\\n background: #fff;\\n position: absolute;\\n }\\n .mock-box-1 {\\n left: 170px;\\n width: 15px;\\n height: 170px;\\n}\\n.mock-box-2 {\\n left: 170px;\\n width: 430px;\\n height: 15px;\\n}\\n.mock-box-3 {\\n left: 170px;\\n top: 40px;\\n width: 430px;\\n height: 15px;\\n}\\n.mock-box-4 {\\n left: 170px;\\n top: 80px;\\n width: 430px;\\n height: 94px;\\n}\\n.mock-box-5 {\\n left: 510px;\\n width: 84px;\\n height: 170px;\\n}\\n.mock-box-6 {\\n left: 400px;\\n width: 165px;\\n top: 50px;\\n height: 130px;\\n}\\n\\n }\\n\"]),\n _templateObject2 = _taggedTemplateLiteral([\"\\npadding:0px;\\n background: \", \";\\n @media screen and (max-width: \", \") {\\n padding: 0px;\\n }\\n &.active .icons-left-section {\\n order: 0;\\n transform: translateY(0);\\n opacity: 1;\\n }\\n\"], [\"\\npadding:0px;\\n background: \", \";\\n @media screen and (max-width: \", \") {\\n padding: 0px;\\n }\\n &.active .icons-left-section {\\n order: 0;\\n transform: translateY(0);\\n opacity: 1;\\n }\\n\"]),\n _templateObject3 = _taggedTemplateLiteral([\"\\npadding:\", \";\\n .simplebar-track.simplebar-vertical {\\n margin-right: -2px;\\n}\\n.simplebar-track .simplebar-scrollbar.simplebar-visible:before {\\n opacity: .25;\\n}\\n.simplebar-scrollbar {\\n border-radius:5px;\\n width: 5px;\\n}\\n @media screen and (max-width: \", \"){\\n padding:0px;\\n\\n}\\n @media screen and (min-width: \", \"){\\n&.side-active .icon-box{\\nflex: 0 0 \", \"!important;\\n max-width: \", \"!important;\\n}\\n\\n}\\n\\n max-width: \", \";\\n margin: 0 auto;\\n @media screen and (min-width: \", \"){\\n display:flex;}\\n .icons-left-section {\\n -webkit-animation-duration: 0.5s !important;\\n animation-duration: 0.5s !important;\\n opacity: 0;\\n position: fixed;\\n z-index: 99997 ;\\n -webkit-transform: translateZ(0);\\n animation-fill-mode: forwards;\\n right: 30px;\\n transform: translateY(200px);\\n width: auto;\\n pointer-events: none;\\n bottom: 0px;\\n transition: 0.4s ease;\\n .left-section-inner{\\n background: #fff;\\n max-width: 675px;\\n margin: 0 auto;\\n display: block;\\n border-radius: 2px;\\n -webkit-box-shadow: 0px 0px 15px rgba(0,0,0,0.25);\\n box-shadow: 0px 0px 15px rgba(0,0,0,0.25);\\n @media screen and (max-width: \", \"){\\n border-radius: 0px;\\n border-left: 0px;\\n border-right: 0px;\\n max-width: none;\\n left: 0;\\n right: 0;\\n }\\n }\\n @media screen and (max-width: \", \") {\\n bottom: 0px;\\n pointer-events: all;\\n left: 0;\\n right: 0;\\n }\\n }\\n .icons-side-section {\\n .side-section-inner {\\n border-bottom:1px solid transparent;\\n position: sticky;\\n box-sizing: border-box;\\n top: 60px;\\n \\n \\n margin-right: 20px;\\n padding-left: 15px;\\n @media screen and (max-width: \", \") {\\n border-bottom: 1px solid \", \";\\n margin: 0 ;\\n }\\n }\\n @media screen and (max-width: \", \") {\\n display:none;\\n visibility:hidden;\\n }\\n }\\n \\n .icons-right-section {\\n padding-top:20px;\\n width: 100%;\\n @media screen and (max-width: \", \") {\\n padding-top: 0px;\\n }\\n .icon-list {\\n padding: 0px;\\n padding-bottom: 130px;\\n .container {\\n box-sizing: border-box;\\n display: flex;\\n flex-wrap: wrap;\\n @media screen and (max-width: \", \") {\\n justify-content: space-between;\\n }\\n \\n .no-result {\\n text-align: center;\\n width: 100%;\\n font-weight: 400;\\n padding: 30px;\\n min-height: 50px;\\n color: \", \";\\n font-size: 18px;\\n margin-bottom: 0px;\\n p {\\n margin-top: 2px;\\n font-size: 16px;\\n color: \", \";\\n font-style: italic;\\n }\\n }\\n }\\n @media screen and (max-width: \", \") {\\n padding: 10px;\\n }\\n }\\n }\\n \\n\\n\"], [\"\\npadding:\", \";\\n .simplebar-track.simplebar-vertical {\\n margin-right: -2px;\\n}\\n.simplebar-track .simplebar-scrollbar.simplebar-visible:before {\\n opacity: .25;\\n}\\n.simplebar-scrollbar {\\n border-radius:5px;\\n width: 5px;\\n}\\n @media screen and (max-width: \", \"){\\n padding:0px;\\n\\n}\\n @media screen and (min-width: \", \"){\\n&.side-active .icon-box{\\nflex: 0 0 \", \"!important;\\n max-width: \", \"!important;\\n}\\n\\n}\\n\\n max-width: \", \";\\n margin: 0 auto;\\n @media screen and (min-width: \", \"){\\n display:flex;}\\n .icons-left-section {\\n -webkit-animation-duration: 0.5s !important;\\n animation-duration: 0.5s !important;\\n opacity: 0;\\n position: fixed;\\n z-index: 99997 ;\\n -webkit-transform: translateZ(0);\\n animation-fill-mode: forwards;\\n right: 30px;\\n transform: translateY(200px);\\n width: auto;\\n pointer-events: none;\\n bottom: 0px;\\n transition: 0.4s ease;\\n .left-section-inner{\\n background: #fff;\\n max-width: 675px;\\n margin: 0 auto;\\n display: block;\\n border-radius: 2px;\\n -webkit-box-shadow: 0px 0px 15px rgba(0,0,0,0.25);\\n box-shadow: 0px 0px 15px rgba(0,0,0,0.25);\\n @media screen and (max-width: \", \"){\\n border-radius: 0px;\\n border-left: 0px;\\n border-right: 0px;\\n max-width: none;\\n left: 0;\\n right: 0;\\n }\\n }\\n @media screen and (max-width: \", \") {\\n bottom: 0px;\\n pointer-events: all;\\n left: 0;\\n right: 0;\\n }\\n }\\n .icons-side-section {\\n .side-section-inner {\\n border-bottom:1px solid transparent;\\n position: sticky;\\n box-sizing: border-box;\\n top: 60px;\\n \\n \\n margin-right: 20px;\\n padding-left: 15px;\\n @media screen and (max-width: \", \") {\\n border-bottom: 1px solid \", \";\\n margin: 0 ;\\n }\\n }\\n @media screen and (max-width: \", \") {\\n display:none;\\n visibility:hidden;\\n }\\n }\\n \\n .icons-right-section {\\n padding-top:20px;\\n width: 100%;\\n @media screen and (max-width: \", \") {\\n padding-top: 0px;\\n }\\n .icon-list {\\n padding: 0px;\\n padding-bottom: 130px;\\n .container {\\n box-sizing: border-box;\\n display: flex;\\n flex-wrap: wrap;\\n @media screen and (max-width: \", \") {\\n justify-content: space-between;\\n }\\n \\n .no-result {\\n text-align: center;\\n width: 100%;\\n font-weight: 400;\\n padding: 30px;\\n min-height: 50px;\\n color: \", \";\\n font-size: 18px;\\n margin-bottom: 0px;\\n p {\\n margin-top: 2px;\\n font-size: 16px;\\n color: \", \";\\n font-style: italic;\\n }\\n }\\n }\\n @media screen and (max-width: \", \") {\\n padding: 10px;\\n }\\n }\\n }\\n \\n\\n\"]),\n _templateObject4 = _taggedTemplateLiteral([\" background: \", \"; \\n .icon-filter-max{ max-width: \", \";\\n margin: 0 auto;\\n \\n @media screen and (max-width: \", \") {\\n padding-top: 0px;\\n margin-bottom: 0px;\\n }\\n .icons-filter-in {\\n font-weight: 400;\\n padding-top: 15px!important;\\n \\n .icons-count {\\n align-self: flex-end;\\n flex: 1;\\n text-align: left;\\n padding-bottom:10px;\\n transition:0.15s;\\n @media screen and (max-width: \", \") {\\n display: none;\\n }\\n }\\n .icons-filter {\\n align-self: flex-end;\\n flex:0 0 36px;\\n width: 36px;\\n height: 36px;\\n display: flex;\\n text-align: left;\\n padding: 0px;\\n align-items: center;\\n justify-content: center;\\n margin-bottom: 4px;\\n @media screen and (max-width: \", \"){\\n margin-bottom: 7px;\\n }\\n transition:0.2s;\\n margin-left:0px;\\n \\n border-radius:\", \";\\n background:\", \";\\n\\n @media screen and (max-width: \", \") {\\n display:none;\\n visibility:hidden;\\n }\\n border:1px solid transparent;\\n i{\\n font-size:20px;\\n color:\", \";\\n }\\n &:hover{\\n i{color:\", \";}\\n \\n border:1px solid \", \";\\n background:\", \";\\n }\\n }\\n i {\\n font-size: 21px;\\n color:\", \";\\n\\n }\\n display: flex;\\n padding:\", \";\\n margin: 0px;\\n \\n @media screen and (max-width: \", \") {\\n margin: 0 ;\\n padding:15px;\\n padding-bottom: 10px;\\n } \\n padding-bottom: 10px;\\n border-bottom: 1px solid rgba(0,0,0,0.05);\\n div{\\n @media screen and (max-width: \", \") {\\n margin: 0 5px;\\n padding: 5px 10px;\\n }\\n padding: 5px 15px;\\n margin: 0px;\\n font-size: 14px;\\n font-weight:400;\\n height: 25px; transition: 0.2s;\\n border-radius:5px;\\n line-height: 25px;transform: translateY(1px);\\n cursor: pointer;\\n color: \", \";\\n -webkit-touch-callout: none;\\n -webkit-user-select: none;\\n -khtml-user-select: none;\\n -moz-user-select: none;\\n -ms-user-select: none;\\n user-select: none;\\n &.active {\\n color: #b06c4a;\\n \\n }\\n &:last-child{\\n margin-right: 0px;\\n }\\n &:first:child{\\n margin-right: 0px;\\n }\\n }\\n\\n }}\\n\\n\"], [\" background: \", \"; \\n .icon-filter-max{ max-width: \", \";\\n margin: 0 auto;\\n \\n @media screen and (max-width: \", \") {\\n padding-top: 0px;\\n margin-bottom: 0px;\\n }\\n .icons-filter-in {\\n font-weight: 400;\\n padding-top: 15px!important;\\n \\n .icons-count {\\n align-self: flex-end;\\n flex: 1;\\n text-align: left;\\n padding-bottom:10px;\\n transition:0.15s;\\n @media screen and (max-width: \", \") {\\n display: none;\\n }\\n }\\n .icons-filter {\\n align-self: flex-end;\\n flex:0 0 36px;\\n width: 36px;\\n height: 36px;\\n display: flex;\\n text-align: left;\\n padding: 0px;\\n align-items: center;\\n justify-content: center;\\n margin-bottom: 4px;\\n @media screen and (max-width: \", \"){\\n margin-bottom: 7px;\\n }\\n transition:0.2s;\\n margin-left:0px;\\n \\n border-radius:\", \";\\n background:\", \";\\n\\n @media screen and (max-width: \", \") {\\n display:none;\\n visibility:hidden;\\n }\\n border:1px solid transparent;\\n i{\\n font-size:20px;\\n color:\", \";\\n }\\n &:hover{\\n i{color:\", \";}\\n \\n border:1px solid \", \";\\n background:\", \";\\n }\\n }\\n i {\\n font-size: 21px;\\n color:\", \";\\n\\n }\\n display: flex;\\n padding:\", \";\\n margin: 0px;\\n \\n @media screen and (max-width: \", \") {\\n margin: 0 ;\\n padding:15px;\\n padding-bottom: 10px;\\n } \\n padding-bottom: 10px;\\n border-bottom: 1px solid rgba(0,0,0,0.05);\\n div{\\n @media screen and (max-width: \", \") {\\n margin: 0 5px;\\n padding: 5px 10px;\\n }\\n padding: 5px 15px;\\n margin: 0px;\\n font-size: 14px;\\n font-weight:400;\\n height: 25px; transition: 0.2s;\\n border-radius:5px;\\n line-height: 25px;transform: translateY(1px);\\n cursor: pointer;\\n color: \", \";\\n -webkit-touch-callout: none;\\n -webkit-user-select: none;\\n -khtml-user-select: none;\\n -moz-user-select: none;\\n -ms-user-select: none;\\n user-select: none;\\n &.active {\\n color: #b06c4a;\\n \\n }\\n &:last-child{\\n margin-right: 0px;\\n }\\n &:first:child{\\n margin-right: 0px;\\n }\\n }\\n\\n }}\\n\\n\"]);\n\nvar _react = __webpack_require__(/*! react */ 3);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ 71);\n\nvar _iconActions = __webpack_require__(/*! ../../actions/iconActions */ 227);\n\nvar _redux = __webpack_require__(/*! redux */ 72);\n\nvar _iconsList = __webpack_require__(/*! ./iconsList */ 824);\n\nvar _iconsList2 = _interopRequireDefault(_iconsList);\n\nvar _reactLoadable = __webpack_require__(/*! react-loadable */ 239);\n\nvar _reactLoadable2 = _interopRequireDefault(_reactLoadable);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ 57);\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _categories = __webpack_require__(/*! ./categories */ 826);\n\nvar _categories2 = _interopRequireDefault(_categories);\n\nvar _types = __webpack_require__(/*! ../types */ 56);\n\nvar _simplebarReact = __webpack_require__(/*! simplebar-react */ 827);\n\nvar _simplebarReact2 = _interopRequireDefault(_simplebarReact);\n\n__webpack_require__(/*! simplebar/dist/simplebar.min.css */ 835);\n\nvar _classnames = __webpack_require__(/*! classnames */ 228);\n\nvar _classnames2 = _interopRequireDefault(_classnames);\n\nvar _reactRouterDom = __webpack_require__(/*! react-router-dom */ 58);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar StyledIconCont = _styledComponents2.default.div(_templateObject, _types.BREAKPOINT_MD, _types.BREAKPOINT_LG);\nvar Icon = (0, _reactLoadable2.default)({\n loader: function loader() {\n return __webpack_require__.e/* import() */(3).then(__webpack_require__.bind(null, /*! ./icon */ 840));\n },\n loading: function loading() {\n return _react2.default.createElement(\n \"div\",\n { className: \"mock-icon-box\" },\n _react2.default.createElement(\"div\", { className: \"mock-box-1\" }),\n _react2.default.createElement(\"div\", { className: \"mock-box-2\" }),\n _react2.default.createElement(\"div\", { className: \"mock-box-3\" }),\n _react2.default.createElement(\"div\", { className: \"mock-box-4\" }),\n _react2.default.createElement(\"div\", { className: \"mock-box-5\" }),\n _react2.default.createElement(\"div\", { className: \"mock-box-6\" })\n );\n }\n});\n\nvar IconsSection = _styledComponents2.default.div(_templateObject2, _types.ICONS_BACKGROUND, _types.BREAKPOINT_LG);\nvar IconsSectionCont = _styledComponents2.default.div(_templateObject3, _types.PADDING, _types.BREAKPOINT_LG, _types.BREAKPOINT_LG, _types.FLEX_ACTIVE, _types.FLEX_ACTIVE, _types.MAX_WIDTH, _types.BREAKPOINT_LG, _types.BREAKPOINT_LG, _types.BREAKPOINT_LG, _types.BREAKPOINT_LG, _types.BORDER_COLOR, _types.BREAKPOINT_SM, _types.BREAKPOINT_LG, _types.BREAKPOINT_LG, _types.SECONDARY_FONT_COLOR, _types.SECONDARY_FONT_COLOR, _types.BREAKPOINT_LG);\n\nvar IconsFilter = _styledComponents2.default.div(_templateObject4, _types.FILTER_BACKGROUND, _types.MAX_WIDTH, _types.BREAKPOINT_LG, _types.BREAKPOINT_MD, _types.BREAKPOINT_MD, function (props) {\n return props.side ? '50%' : '0';\n}, function (props) {\n return props.side ? _types.SELECTED_ACTIVE_COLOR : 'transparent';\n}, _types.BREAKPOINT_SM, function (props) {\n return props.side ? '#fff' : _types.SECONDARY_FONT_COLOR;\n}, _types.SECONDARY_FONT_COLOR, function (props) {\n return props.side ? _types.SECONDARY_FONT_COLOR : 'transparent';\n}, function (props) {\n return props.side ? '#fff' : 'transparent';\n}, _types.FONT_COLOR, _types.PADDING, _types.BREAKPOINT_LG, _types.BREAKPOINT_MD, _types.NAV_LIST_COLOR);\n\nvar Icons = function (_Component) {\n _inherits(Icons, _Component);\n\n function Icons(props) {\n _classCallCheck(this, Icons);\n\n var _this = _possibleConstructorReturn(this, (Icons.__proto__ || Object.getPrototypeOf(Icons)).call(this, props));\n\n _this.state = {\n icons: {\n data: null\n },\n categories: {\n data: null\n },\n showSide: false,\n view: 'grid',\n noResult: false,\n selectedIcon: {\n name: null,\n slug: null,\n type_of_icon: null\n },\n style: 'ALL',\n displaySideIcon: false,\n searchTerm: \"\"\n\n };\n _this.handleBlur = _this.handleBlur.bind(_this);\n _this.handleSide = _this.handleSide.bind(_this);\n _this.handleFilter = _this.handleFilter.bind(_this);\n _this.handleKeyPress = _this.handleKeyPress.bind(_this);\n\n return _this;\n }\n\n _createClass(Icons, [{\n key: \"handleSide\",\n value: function handleSide() {\n\n if (!this.state.showSide) {\n var el = document.querySelector(\".icons-filter-in\");\n var boundingRect = el.getBoundingClientRect();\n window.scroll({\n top: boundingRect.top + window.pageYOffset - 60,\n behavior: 'smooth'\n });\n }\n this.props.changeCategories(!this.state.showSide);\n }\n }, {\n key: \"handleBlur\",\n value: function handleBlur() {}\n }, {\n key: \"handleFilter\",\n value: function handleFilter(style) {\n this.setState({\n style: style\n });\n if (style === 'REGULAR' || style === 'SOLID' || style === 'LOGO') {\n this.props.fetchStyle(style, this.state.searchTerm);\n } else {\n this.props.fetchIcons(this.state.searchTerm);\n }\n }\n }, {\n key: \"handleKeyPress\",\n value: function handleKeyPress(event) {\n var _this2 = this;\n\n if (this.state.icons.data !== null) {\n if (event.keyCode == 39) {\n if (this.state.selectedIcon.name != null) {\n\n var index = this.state.icons.data.findIndex(function (p) {\n return p.slug == _this2.state.selectedIcon.slug;\n });\n\n if (index === this.state.icons.data.length - 1) {\n index = -1;\n }\n this.props.changeSideIcon(true);\n this.props.setSelectedIcon(this.state.icons.data[index + 1].name, this.state.icons.data[index + 1].slug, this.state.icons.data[index + 1].type_of_icon);\n }\n } else if (event.keyCode == 37) {\n if (this.state.selectedIcon.name != null) {\n\n var index = this.state.icons.data.findIndex(function (p) {\n return p.slug == _this2.state.selectedIcon.slug;\n });\n\n if (index === 0) {\n index = this.state.icons.data.length;\n }\n this.props.changeSideIcon(true);\n this.props.setSelectedIcon(this.state.icons.data[index - 1].name, this.state.icons.data[index - 1].slug, this.state.icons.data[index - 1].type_of_icon);\n }\n }\n }\n }\n }, {\n key: \"componentWillReceiveProps\",\n value: function componentWillReceiveProps(newProps) {\n this.setState({\n displaySideIcon: newProps.displaySideIcon\n });\n this.setState({\n showSide: newProps.displayCategories\n });\n\n if (newProps.icons.data !== null && newProps.icons.data.length === 0) {\n this.setState({\n noResult: true\n });\n } else {\n this.setState({\n noResult: false\n });\n }\n\n this.setState({\n icons: newProps.icons\n });\n this.setState({\n categories: newProps.categories\n });\n this.setState({\n selectedIcon: newProps.selectedIcon\n });\n this.setState({\n searchTerm: newProps.searchTerm\n });\n }\n }, {\n key: \"componentWillMount\",\n value: function componentWillMount() {\n this.props.fetchIcons(\"\");\n this.props.fetchCategories();\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.props.setSearchTerm(\"\");\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {}\n }, {\n key: \"render\",\n value: function render() {\n var _this3 = this;\n\n var sectionClass = (0, _classnames2.default)({\n active: this.state.displaySideIcon\n });\n var sectionContClass = (0, _classnames2.default)({\n 'side-active': this.state.showSide\n });\n\n return _react2.default.createElement(\n IconsSection,\n { className: sectionClass, onKeyDown: this.handleKeyPress },\n _react2.default.createElement(\n IconsFilter,\n { side: this.state.showSide },\n _react2.default.createElement(\n \"div\",\n { className: \"icon-filter-max\" },\n _react2.default.createElement(\n \"div\",\n { className: \"icons-filter-in\" },\n _react2.default.createElement(\n \"div\",\n { className: \"icons-filter\", onClick: this.handleSide },\n _react2.default.createElement(\"i\", { className: \"bx bx-slider\" })\n ),\n _react2.default.createElement(\n \"div\",\n { className: \"icons-count\" },\n this.state.icons.data !== null ? this.state.icons.data.length : '0',\n \" icons\"\n ),\n _react2.default.createElement(\n \"div\",\n { className: this.state.style === 'ALL' ? \"filter-all active\" : \"filter-all\", onClick: function onClick() {\n return _this3.handleFilter('ALL');\n } },\n \"All\"\n ),\n _react2.default.createElement(\n \"div\",\n { className: this.state.style === 'REGULAR' ? \"filter-regular active\" : \"filter-regular\", onClick: function onClick() {\n return _this3.handleFilter('REGULAR');\n } },\n \"Regular\"\n ),\n _react2.default.createElement(\n \"div\",\n { className: this.state.style === 'SOLID' ? \"filter-solid active\" : \"filter-solid\", onClick: function onClick() {\n return _this3.handleFilter('SOLID');\n } },\n \"Solid\"\n ),\n _react2.default.createElement(\n \"div\",\n { className: this.state.style === 'LOGO' ? \"filter-logo active\" : \"filter-logo\", onClick: function onClick() {\n return _this3.handleFilter('LOGO');\n } },\n \"Logos\"\n )\n )\n )\n ),\n _react2.default.createElement(\n IconsSectionCont,\n { className: sectionContClass },\n _react2.default.createElement(\n \"div\",\n { className: \"icons-left-section \" },\n _react2.default.createElement(\n \"div\",\n { className: \"left-section-inner\", onBlur: this.handleBlur },\n this.state.selectedIcon.name != null && _react2.default.createElement(\n StyledIconCont,\n null,\n _react2.default.createElement(Icon, { icon: this.state.selectedIcon })\n )\n )\n ),\n this.state.showSide && _react2.default.createElement(\n \"div\",\n { className: \"icons-side-section \" },\n _react2.default.createElement(\n \"div\",\n { className: \"side-section-inner\" },\n \" \",\n _react2.default.createElement(\n _simplebarReact2.default,\n { style: { height: 'calc(100vh - 60px)' } },\n this.state.categories.data != null && _react2.default.createElement(_categories2.default, { searchTerm: this.state.searchTerm, style: this.state.style, categories: this.state.categories.data })\n )\n )\n ),\n this.state.icons.data != null && _react2.default.createElement(\n \"div\",\n { className: \"icons-right-section \" },\n this.state.noResult && _react2.default.createElement(\n \"div\",\n { className: \"icon-list \" },\n _react2.default.createElement(\n \"div\",\n { className: \"container\" },\n _react2.default.createElement(\n \"h3\",\n { className: \"no-result\" },\n \"No result found for\",\n _react2.default.createElement(\n \"strong\",\n null,\n \" '\",\n this.state.searchTerm,\n \"'\"\n ),\n _react2.default.createElement(\n \"p\",\n null,\n \"Having trouble finding an icon, try the \",\n _react2.default.createElement(\n _reactRouterDom.Link,\n { to: \"cheatsheet\" },\n \"Cheatsheet\"\n )\n )\n )\n )\n ),\n _react2.default.createElement(_iconsList2.default, { icons: this.state.icons.data, style: this.state.style })\n )\n )\n );\n }\n }]);\n\n return Icons;\n}(_react.Component);\n\nfunction mapStateToProps(state) {\n return {\n icons: state.icons,\n searchTerm: state.searchTerm,\n displaySideIcon: state.displaySideIcon,\n selectedIcon: state.selectedIcon,\n categories: state.categories,\n displayCategories: state.displayCategories\n };\n}\n\nfunction mapDispatchToProps(dispatch) {\n return (0, _redux.bindActionCreators)({\n fetchIcons: _iconActions.fetchIcons,\n fetchStyle: _iconActions.fetchStyle,\n fetchCategories: _iconActions.fetchCategories,\n changeSideIcon: _iconActions.changeSideIcon,\n setSelectedIcon: _iconActions.setSelectedIcon,\n setSearchTerm: _iconActions.setSearchTerm,\n changeCategories: _iconActions.changeCategories\n }, dispatch);\n}\n\nexports.default = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(Icons);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiODIzLmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vL3N0YXRpYy9qcy9jb21wb25lbnRzL2ljb25zL2ljb25zLmpzP2I2YjQiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IENvbXBvbmVudCB9IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgeyBjb25uZWN0IH0gZnJvbSBcInJlYWN0LXJlZHV4XCI7XHJcbmltcG9ydCB7IGZldGNoSWNvbnMsZmV0Y2hTdHlsZSxmZXRjaENhdGVnb3JpZXMsY2hhbmdlQ2F0ZWdvcmllcyB9IGZyb20gXCIuLi8uLi9hY3Rpb25zL2ljb25BY3Rpb25zXCI7XHJcbmltcG9ydCB7IGJpbmRBY3Rpb25DcmVhdG9ycyB9IGZyb20gXCJyZWR1eFwiO1xyXG5pbXBvcnQgSWNvbnNMaXN0IGZyb20gXCIuL2ljb25zTGlzdFwiO1xyXG5pbXBvcnQgTG9hZGFibGUgZnJvbSAncmVhY3QtbG9hZGFibGUnO1xyXG5pbXBvcnQgc3R5bGVkIGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJztcclxuaW1wb3J0IENhdGVnb3JpZXMgZnJvbSAnLi9jYXRlZ29yaWVzJztcclxuaW1wb3J0IHsgQlJFQUtQT0lOVF9MRyxSRURfQ09MT1IsTkFWX0xJU1RfQ09MT1IsU0VMRUNURURfQUNUSVZFX0NPTE9SLEZJTFRFUl9CQUNLR1JPVU5ELFBBRERJTkcsQlVUVE9OX0NPTE9SLERBUktfQkFDS0dST1VORCxTRUxFQ1RFRF9DT0xPUixGQURFX0ZPTlRfQ09MT1IsSEVBREVSX0NPTE9SLEZMRVhfQUNUSVZFLElDT05TX0JBQ0tHUk9VTkQsQkxVRV9DT0xPUixMSUdIVF9CQUNLR1JPVU5ELE1BWF9XSURUSCxEQVJLX0JPUkRFUl9DT0xPUixCT1JERVJfQ09MT1IsU0VDT05EQVJZX0ZPTlRfQ09MT1IsUFJJTUFSWV9DT0xPUixGT05UX0NPTE9SLCBCUkVBS1BPSU5UX01ELCBCUkVBS1BPSU5UX1NNfSBmcm9tICcuLi90eXBlcyc7XHJcbmltcG9ydCBTaW1wbGVCYXIgZnJvbSAnc2ltcGxlYmFyLXJlYWN0JztcclxuXHJcbmltcG9ydCAnc2ltcGxlYmFyL2Rpc3Qvc2ltcGxlYmFyLm1pbi5jc3MnO1xyXG5jb25zdCBTdHlsZWRJY29uQ29udCA9IHN0eWxlZC5kaXZgXHJcbiBwYWRkaW5nOiAyMHB4O1xyXG4gcGFkZGluZy1ib3R0b206MzBweDtcclxuICAgICAgICAgIHBhZGRpbmctbGVmdDogNjBweDtcclxuICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgcG9pbnRlci1ldmVudHM6IGF1dG87XHJcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJHtCUkVBS1BPSU5UX01EfSkge1xyXG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgICBoZWlnaHQ6IDQ4cHg7XHJcbiAgICAgICAgICBwYWRkaW5nOiAxNXB4O1xyXG4gICAgICB9XHJcbiAgICAgICAgICAgQGtleWZyYW1lcyBwbGFjZUhvbGRlclNoaW1tZXIge1xyXG4gIDAlIHtcclxuICAgIGJhY2tncm91bmQtcG9zaXRpb246IC00NjhweCAwXHJcbiAgfVxyXG4gIDEwMCUge1xyXG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogNDY4cHggMFxyXG4gIH1cclxufVxyXG4gICAgICAubW9jay1pY29uLWJveCB7XHJcbiAgICAgICAgd2lkdGg6IDU5MHB4O1xyXG4gICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAke0JSRUFLUE9JTlRfTEd9KSB7XHJcbiAgICAgICAgICAgICBkaXNwbGF5Om5vbmU7XHJcbiAgICAgICAgICAgICB2aXNpYmlsaXR5OmhpZGRlbjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIGhlaWdodDogMTcwcHg7XHJcbiAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDFzO1xyXG4gIGFuaW1hdGlvbi1maWxsLW1vZGU6IGZvcndhcmRzO1xyXG4gIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xyXG4gIGFuaW1hdGlvbi1uYW1lOiBwbGFjZUhvbGRlclNoaW1tZXI7XHJcbiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xyXG4gIGJhY2tncm91bmQ6ICNmNmY3Zjg7XHJcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAjZWVlZWVlIDglLCAjZGRkZGRkIDE4JSwgI2VlZWVlZSAzMyUpO1xyXG4gIGJhY2tncm91bmQtc2l6ZTogODAwcHggMTA0cHg7XHJcblxyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICBkaXZ7XHJcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIH1cclxuICAgICAgIC5tb2NrLWJveC0xIHtcclxuICAgIGxlZnQ6IDE3MHB4O1xyXG4gICAgd2lkdGg6IDE1cHg7XHJcbiAgICBoZWlnaHQ6IDE3MHB4O1xyXG59XHJcbi5tb2NrLWJveC0yIHtcclxuICAgIGxlZnQ6IDE3MHB4O1xyXG4gICAgd2lkdGg6IDQzMHB4O1xyXG4gICAgaGVpZ2h0OiAxNXB4O1xyXG59XHJcbi5tb2NrLWJveC0zIHtcclxuICAgIGxlZnQ6IDE3MHB4O1xyXG4gICAgdG9wOiA0MHB4O1xyXG4gICAgd2lkdGg6IDQzMHB4O1xyXG4gICAgaGVpZ2h0OiAxNXB4O1xyXG59XHJcbi5tb2NrLWJveC00IHtcclxuICAgIGxlZnQ6IDE3MHB4O1xyXG4gICAgICAgIHRvcDogODBweDtcclxuICAgIHdpZHRoOiA0MzBweDtcclxuICAgIGhlaWdodDogOTRweDtcclxufVxyXG4ubW9jay1ib3gtNSB7XHJcbiAgICBsZWZ0OiA1MTBweDtcclxuICAgIHdpZHRoOiA4NHB4O1xyXG4gICAgaGVpZ2h0OiAxNzBweDtcclxufVxyXG4ubW9jay1ib3gtNiB7XHJcbiAgICBsZWZ0OiA0MDBweDtcclxuICAgIHdpZHRoOiAxNjVweDtcclxuICAgIHRvcDogNTBweDtcclxuICAgIGhlaWdodDogMTMwcHg7XHJcbn1cclxuXHJcbiAgICB9XHJcbmA7XHJcbmNvbnN0IEljb24gPSBMb2FkYWJsZSh7XHJcbiAgbG9hZGVyOiAoKSA9PiBpbXBvcnQoJy4vaWNvbicpLFxyXG4gIGxvYWRpbmc6ICgpID0+IDxkaXYgY2xhc3NOYW1lPVwibW9jay1pY29uLWJveFwiPlxyXG4gICAgPGRpdiBjbGFzc05hbWU9XCJtb2NrLWJveC0xXCI+PC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzTmFtZT1cIm1vY2stYm94LTJcIj48L2Rpdj5cclxuICAgIDxkaXYgY2xhc3NOYW1lPVwibW9jay1ib3gtM1wiPjwvZGl2PlxyXG4gICAgPGRpdiBjbGFzc05hbWU9XCJtb2NrLWJveC00XCI+PC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzTmFtZT1cIm1vY2stYm94LTVcIj48L2Rpdj5cclxuICAgIDxkaXYgY2xhc3NOYW1lPVwibW9jay1ib3gtNlwiPjwvZGl2PlxyXG4gICAgPC9kaXY+LFxyXG59KTtcclxuXHJcbmNvbnN0IEljb25zU2VjdGlvbiA9IHN0eWxlZC5kaXZgXHJcbnBhZGRpbmc6MHB4O1xyXG4gIGJhY2tncm91bmQ6ICR7SUNPTlNfQkFDS0dST1VORH07XHJcbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJHtCUkVBS1BPSU5UX0xHfSkge1xyXG4gICAgcGFkZGluZzogMHB4O1xyXG4gIH1cclxuICAmLmFjdGl2ZSAuaWNvbnMtbGVmdC1zZWN0aW9uIHtcclxuICAgIG9yZGVyOiAwO1xyXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xyXG4gICAgb3BhY2l0eTogMTtcclxuICB9XHJcbmA7XHJcbmNvbnN0IEljb25zU2VjdGlvbkNvbnQgPSBzdHlsZWQuZGl2YFxyXG5wYWRkaW5nOiR7UEFERElOR307XHJcbiAgIC5zaW1wbGViYXItdHJhY2suc2ltcGxlYmFyLXZlcnRpY2FsIHtcclxuICAgIG1hcmdpbi1yaWdodDogLTJweDtcclxufVxyXG4uc2ltcGxlYmFyLXRyYWNrIC5zaW1wbGViYXItc2Nyb2xsYmFyLnNpbXBsZWJhci12aXNpYmxlOmJlZm9yZSB7XHJcbiAgICBvcGFjaXR5OiAuMjU7XHJcbn1cclxuLnNpbXBsZWJhci1zY3JvbGxiYXIge1xyXG4gYm9yZGVyLXJhZGl1czo1cHg7XHJcbiAgICB3aWR0aDogNXB4O1xyXG59XHJcbiBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAke0JSRUFLUE9JTlRfTEd9KXtcclxuICBwYWRkaW5nOjBweDtcclxuXHJcbn1cclxuIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICR7QlJFQUtQT0lOVF9MR30pe1xyXG4mLnNpZGUtYWN0aXZlIC5pY29uLWJveHtcclxuZmxleDogMCAwICR7RkxFWF9BQ1RJVkV9IWltcG9ydGFudDtcclxuICAgICAgICAgICAgICAgIG1heC13aWR0aDogJHtGTEVYX0FDVElWRX0haW1wb3J0YW50O1xyXG59XHJcblxyXG59XHJcblxyXG4gbWF4LXdpZHRoOiAke01BWF9XSURUSH07XHJcbiAgbWFyZ2luOiAwIGF1dG87XHJcbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJHtCUkVBS1BPSU5UX0xHfSl7XHJcbiAgZGlzcGxheTpmbGV4O31cclxuICAuaWNvbnMtbGVmdC1zZWN0aW9uIHtcclxuICAgIC13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOiAwLjVzICFpbXBvcnRhbnQ7XHJcbiAgICBhbmltYXRpb24tZHVyYXRpb246IDAuNXMgIWltcG9ydGFudDtcclxuICAgIG9wYWNpdHk6IDA7XHJcbiAgICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgICB6LWluZGV4OiA5OTk5NyA7XHJcbiAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XHJcbiAgICAgICAgYW5pbWF0aW9uLWZpbGwtbW9kZTogZm9yd2FyZHM7XHJcbiAgICByaWdodDogMzBweDtcclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgyMDBweCk7XHJcbiAgICB3aWR0aDogYXV0bztcclxuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xyXG4gICAgYm90dG9tOiAwcHg7XHJcbiAgICB0cmFuc2l0aW9uOiAwLjRzIGVhc2U7XHJcbiAgICAubGVmdC1zZWN0aW9uLWlubmVye1xyXG4gICAgICBiYWNrZ3JvdW5kOiAjZmZmO1xyXG4gICAgbWF4LXdpZHRoOiA2NzVweDtcclxuICAgIG1hcmdpbjogMCBhdXRvO1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICBib3JkZXItcmFkaXVzOiAycHg7XHJcbiAgICAtd2Via2l0LWJveC1zaGFkb3c6IDBweCAwcHggMTVweCByZ2JhKDAsMCwwLDAuMjUpO1xyXG4gICAgYm94LXNoYWRvdzogMHB4IDBweCAxNXB4IHJnYmEoMCwwLDAsMC4yNSk7XHJcbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICR7QlJFQUtQT0lOVF9MR30pe1xyXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDBweDtcclxuICAgICAgICBib3JkZXItbGVmdDogMHB4O1xyXG4gICAgICAgIGJvcmRlci1yaWdodDogMHB4O1xyXG4gICAgICAgIG1heC13aWR0aDogbm9uZTtcclxuICAgICAgICBsZWZ0OiAwO1xyXG4gICAgcmlnaHQ6IDA7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICR7QlJFQUtQT0lOVF9MR30pIHtcclxuICAgICAgIGJvdHRvbTogMHB4O1xyXG4gICAgcG9pbnRlci1ldmVudHM6IGFsbDtcclxuICAgICAgICBsZWZ0OiAwO1xyXG4gICAgcmlnaHQ6IDA7XHJcbiAgICB9XHJcbiAgfVxyXG4gIC5pY29ucy1zaWRlLXNlY3Rpb24ge1xyXG4gICAgLnNpZGUtc2VjdGlvbi1pbm5lciB7XHJcbiAgICAgIGJvcmRlci1ib3R0b206MXB4IHNvbGlkIHRyYW5zcGFyZW50O1xyXG4gICAgcG9zaXRpb246IHN0aWNreTtcclxuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgICB0b3A6IDYwcHg7XHJcbiAgICBcclxuICAgXHJcbiAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7XHJcbiAgICBwYWRkaW5nLWxlZnQ6IDE1cHg7XHJcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAke0JSRUFLUE9JTlRfTEd9KSB7XHJcbiAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke0JPUkRFUl9DT0xPUn07XHJcbiAgICAgICAgICAgbWFyZ2luOiAwIDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAke0JSRUFLUE9JTlRfU019KSB7XHJcbiAgICAgIGRpc3BsYXk6bm9uZTtcclxuICAgICAgdmlzaWJpbGl0eTpoaWRkZW47XHJcbiAgICB9XHJcbiAgfVxyXG4gXHJcbiAgLmljb25zLXJpZ2h0LXNlY3Rpb24ge1xyXG4gICAgcGFkZGluZy10b3A6MjBweDtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJHtCUkVBS1BPSU5UX0xHfSkge1xyXG4gICAgICAgIHBhZGRpbmctdG9wOiAwcHg7XHJcbiAgICAgIH1cclxuICAgIC5pY29uLWxpc3Qge1xyXG4gICAgICBwYWRkaW5nOiAwcHg7XHJcbiAgICAgIHBhZGRpbmctYm90dG9tOiAxMzBweDtcclxuICAgICAgLmNvbnRhaW5lciB7XHJcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcclxuICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAke0JSRUFLUE9JTlRfTEd9KSB7XHJcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgICAgIH1cclxuICAgICAgICBcclxuICAgICAgICAubm8tcmVzdWx0IHtcclxuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcclxuICAgICAgICAgICAgcGFkZGluZzogMzBweDtcclxuICAgICAgICAgICAgbWluLWhlaWdodDogNTBweDtcclxuICAgICAgICAgICAgY29sb3I6ICR7U0VDT05EQVJZX0ZPTlRfQ09MT1J9O1xyXG4gICAgICAgICAgICBmb250LXNpemU6IDE4cHg7XHJcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDBweDtcclxuICAgICAgICAgICAgcCB7XHJcbiAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMnB4O1xyXG4gICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTZweDtcclxuICAgICAgICAgICAgICBjb2xvcjogJHtTRUNPTkRBUllfRk9OVF9DT0xPUn07XHJcbiAgICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICR7QlJFQUtQT0lOVF9MR30pIHtcclxuICAgICAgICBwYWRkaW5nOiAxMHB4O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIFxyXG5cclxuYDtcclxuXHJcblxyXG5jb25zdCBJY29uc0ZpbHRlciA9IHN0eWxlZC5kaXZgICBiYWNrZ3JvdW5kOiAke0ZJTFRFUl9CQUNLR1JPVU5EfTsgXHJcbiAgIC5pY29uLWZpbHRlci1tYXh7IG1heC13aWR0aDogJHtNQVhfV0lEVEh9O1xyXG4gICAgbWFyZ2luOiAwIGF1dG87XHJcbiBcclxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICR7QlJFQUtQT0lOVF9MR30pIHtcclxuICAgICAgcGFkZGluZy10b3A6IDBweDtcclxuICAgICAgbWFyZ2luLWJvdHRvbTogMHB4O1xyXG4gICAgfVxyXG4gICAgLmljb25zLWZpbHRlci1pbiB7XHJcbiAgICAgICAgICBmb250LXdlaWdodDogNDAwO1xyXG4gICAgICAgICAgcGFkZGluZy10b3A6IDE1cHghaW1wb3J0YW50O1xyXG4gICAgICAgICBcclxuICAgICAgICAuaWNvbnMtY291bnQge1xyXG4gICAgICAgICAgYWxpZ24tc2VsZjogZmxleC1lbmQ7XHJcbiAgICAgICAgICBmbGV4OiAxO1xyXG4gICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcclxuICAgICAgICAgIHBhZGRpbmctYm90dG9tOjEwcHg7XHJcbiAgICAgICAgICB0cmFuc2l0aW9uOjAuMTVzO1xyXG4gICAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJHtCUkVBS1BPSU5UX01EfSkge1xyXG4gICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5pY29ucy1maWx0ZXIge1xyXG4gICAgICAgICAgYWxpZ24tc2VsZjogZmxleC1lbmQ7XHJcbiAgICAgICAgICBmbGV4OjAgMCAzNnB4O1xyXG4gICAgICAgICAgd2lkdGg6IDM2cHg7XHJcbiAgICBoZWlnaHQ6IDM2cHg7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcclxuICAgICAgICAgIHBhZGRpbmc6IDBweDtcclxuICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDRweDtcclxuICAgICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAke0JSRUFLUE9JTlRfTUR9KXtcclxuICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDdweDtcclxuICAgICAgICAgICB9XHJcbiAgICAgICAgICB0cmFuc2l0aW9uOjAuMnM7XHJcbiAgICAgICAgICBtYXJnaW4tbGVmdDowcHg7XHJcbiAgICAgICAgICBcclxuICAgICAgICAgIGJvcmRlci1yYWRpdXM6JHtwcm9wcyA9PiBwcm9wcy5zaWRlID8gJzUwJScgOiAnMCd9O1xyXG4gICAgICAgICAgYmFja2dyb3VuZDoke3Byb3BzID0+IHByb3BzLnNpZGUgPyAgICBTRUxFQ1RFRF9BQ1RJVkVfQ09MT1IgOiAndHJhbnNwYXJlbnQnfTtcclxuXHJcbiAgICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAke0JSRUFLUE9JTlRfU019KSB7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6bm9uZTtcclxuICAgICAgICAgICAgdmlzaWJpbGl0eTpoaWRkZW47XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBib3JkZXI6MXB4IHNvbGlkIHRyYW5zcGFyZW50O1xyXG4gICAgICAgICAgaXtcclxuICAgICAgICAgICAgZm9udC1zaXplOjIwcHg7XHJcbiAgICAgICAgICAgIGNvbG9yOiR7cHJvcHMgPT4gcHJvcHMuc2lkZSA/ICcjZmZmJyA6IFNFQ09OREFSWV9GT05UX0NPTE9SfTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgICY6aG92ZXJ7XHJcbiAgICAgICAgICAgIGl7Y29sb3I6JHtTRUNPTkRBUllfRk9OVF9DT0xPUn07fVxyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgYm9yZGVyOjFweCBzb2xpZCAke3Byb3BzID0+IHByb3BzLnNpZGUgPyBTRUNPTkRBUllfRk9OVF9DT0xPUiA6ICd0cmFuc3BhcmVudCd9O1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiR7cHJvcHMgPT4gcHJvcHMuc2lkZSA/ICcjZmZmJyA6ICd0cmFuc3BhcmVudCd9O1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBpIHtcclxuICAgICAgICAgIGZvbnQtc2l6ZTogMjFweDtcclxuICAgICAgICAgIGNvbG9yOiR7Rk9OVF9DT0xPUn07XHJcblxyXG4gICAgICAgIH1cclxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgICAgICBwYWRkaW5nOiR7UEFERElOR307XHJcbiAgICBtYXJnaW46IDBweDtcclxuICBcclxuICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAke0JSRUFLUE9JTlRfTEd9KSB7XHJcbiAgICAgICAgICAgbWFyZ2luOiAwIDtcclxuICAgICAgICAgICBwYWRkaW5nOjE1cHg7XHJcbiAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAxMHB4O1xyXG4gICAgICAgIH0gIFxyXG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAxMHB4O1xyXG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoMCwwLDAsMC4wNSk7XHJcbiAgICAgICAgZGl2e1xyXG4gICAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJHtCUkVBS1BPSU5UX01EfSkge1xyXG4gICAgICAgICAgICBtYXJnaW46IDAgNXB4O1xyXG4gICAgICAgICAgICBwYWRkaW5nOiA1cHggMTBweDtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICBwYWRkaW5nOiA1cHggMTVweDtcclxuICAgIG1hcmdpbjogMHB4O1xyXG4gICAgZm9udC1zaXplOiAxNHB4O1xyXG4gICAgZm9udC13ZWlnaHQ6NDAwO1xyXG4gICAgaGVpZ2h0OiAyNXB4OyAgICB0cmFuc2l0aW9uOiAwLjJzO1xyXG4gICAgYm9yZGVyLXJhZGl1czo1cHg7XHJcbiAgICBsaW5lLWhlaWdodDogMjVweDt0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMXB4KTtcclxuICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgICAgICAgIGNvbG9yOiAke05BVl9MSVNUX0NPTE9SfTtcclxuICAgICAgICAgIC13ZWJraXQtdG91Y2gtY2FsbG91dDogbm9uZTtcclxuICAgICAgICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XHJcbiAgICAgICAgICAta2h0bWwtdXNlci1zZWxlY3Q6IG5vbmU7XHJcbiAgICAgICAgICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xyXG4gICAgICAgICAgLW1zLXVzZXItc2VsZWN0OiBub25lO1xyXG4gICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XHJcbiAgICAgICAgICAmLmFjdGl2ZSB7XHJcbiAgICAgICAgICAgIGNvbG9yOiAjYjA2YzRhO1xyXG4gICAgICAgICAgICAgICBcclxuICAgICAgICAgIH1cclxuICAgICAgICAgICY6bGFzdC1jaGlsZHtcclxuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwcHg7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICAmOmZpcnN0OmNoaWxke1xyXG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDBweDtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICB9fVxyXG5cclxuYDtcclxuaW1wb3J0IGNsYXNzTmFtZXMgZnJvbSBcImNsYXNzbmFtZXNcIjtcclxuaW1wb3J0IHsgY2hhbmdlU2lkZUljb24sIHNldFNlbGVjdGVkSWNvbixzZXRTZWFyY2hUZXJtIH0gZnJvbSAnLi4vLi4vYWN0aW9ucy9pY29uQWN0aW9ucyc7XHJcbmltcG9ydCB7IExpbmsgfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcclxuY2xhc3MgSWNvbnMgZXh0ZW5kcyBDb21wb25lbnQge1xyXG4gIGNvbnN0cnVjdG9yKHByb3BzKSB7XHJcbiAgICBzdXBlcihwcm9wcyk7XHJcblxyXG4gICAgdGhpcy5zdGF0ZSA9IHtcclxuICAgICAgaWNvbnM6IHtcclxuICAgICAgICBkYXRhOiBudWxsXHJcbiAgICAgIH0sXHJcbiAgICAgIGNhdGVnb3JpZXM6IHtcclxuICAgICAgICBkYXRhOiBudWxsXHJcbiAgICAgIH0sXHJcbiAgICAgIHNob3dTaWRlOmZhbHNlLFxyXG4gICAgICB2aWV3OidncmlkJyxcclxuICAgICAgbm9SZXN1bHQ6IGZhbHNlLFxyXG4gICAgICBzZWxlY3RlZEljb246IHtcclxuICAgICAgICBuYW1lOiBudWxsLFxyXG4gICAgICAgIHNsdWc6IG51bGwsXHJcbiAgICAgICAgdHlwZV9vZl9pY29uOm51bGxcclxuICAgICAgfSxcclxuICAgICAgc3R5bGU6J0FMTCcsXHJcbiAgICAgIGRpc3BsYXlTaWRlSWNvbjogZmFsc2UsXHJcbiAgICAgIHNlYXJjaFRlcm06IFwiXCIsXHJcbiAgICAgIFxyXG4gICAgfTtcclxuICAgIHRoaXMuaGFuZGxlQmx1ciA9IHRoaXMuaGFuZGxlQmx1ci5iaW5kKHRoaXMpO1xyXG4gICAgdGhpcy5oYW5kbGVTaWRlID0gdGhpcy5oYW5kbGVTaWRlLmJpbmQodGhpcyk7XHJcbiAgICB0aGlzLmhhbmRsZUZpbHRlciA9IHRoaXMuaGFuZGxlRmlsdGVyLmJpbmQodGhpcyk7XHJcbnRoaXMuaGFuZGxlS2V5UHJlc3MgPSB0aGlzLmhhbmRsZUtleVByZXNzLmJpbmQodGhpcyk7XHJcbiAgXHJcbiAgfVxyXG4gIGhhbmRsZVNpZGUoKXtcclxuXHJcbiAgICBcclxuICAgIGlmKCF0aGlzLnN0YXRlLnNob3dTaWRlKXtcclxuICAgICAgdmFyIGVsID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcIi5pY29ucy1maWx0ZXItaW5cIik7XHJcbiAgICAgIHZhciBib3VuZGluZ1JlY3QgPSBlbC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuICAgICAgIHdpbmRvdy5zY3JvbGwoe1xyXG4gIHRvcDogKGJvdW5kaW5nUmVjdC50b3Ard2luZG93LnBhZ2VZT2Zmc2V0KS02MCwgIFxyXG4gIGJlaGF2aW9yOiAnc21vb3RoJyBcclxufSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnByb3BzLmNoYW5nZUNhdGVnb3JpZXMoIXRoaXMuc3RhdGUuc2hvd1NpZGUpXHJcbiAgfVxyXG4gIFxyXG4gICBoYW5kbGVCbHVyKCl7XHJcbiAgICB9XHJcbiAgIFxyXG4gICAgaGFuZGxlRmlsdGVyKHN0eWxlKXtcclxuICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgc3R5bGVcclxuICAgICAgfSlcclxuICAgIGlmIChzdHlsZT09PSdSRUdVTEFSJyB8fCBzdHlsZT09PSdTT0xJRCd8fCBzdHlsZT09PSdMT0dPJyApe1xyXG50aGlzLnByb3BzLmZldGNoU3R5bGUoc3R5bGUsdGhpcy5zdGF0ZS5zZWFyY2hUZXJtKTtcclxuXHJcbiAgICB9XHJcbiAgICBlbHNle1xyXG50aGlzLnByb3BzLmZldGNoSWNvbnModGhpcy5zdGF0ZS5zZWFyY2hUZXJtKTtcclxuICAgICAgfVxyXG4gICAgXHJcbiAgICB9XHJcbiAgICBoYW5kbGVLZXlQcmVzcyhldmVudCl7XHJcbiAgICAgIGlmKHRoaXMuc3RhdGUuaWNvbnMuZGF0YSE9PW51bGwpe1xyXG4gIGlmKGV2ZW50LmtleUNvZGUgID09IDM5KXsgXHJcbiAgICBpZih0aGlzLnN0YXRlLnNlbGVjdGVkSWNvbi5uYW1lIT1udWxsKXtcclxuXHJcbiAgICAgXHJcbiAgICAgIHZhciBpbmRleCA9IHRoaXMuc3RhdGUuaWNvbnMuZGF0YS5maW5kSW5kZXgocCA9PiBwLnNsdWcgPT0gdGhpcy5zdGF0ZS5zZWxlY3RlZEljb24uc2x1Zyk7XHJcbiBcclxuICAgaWYoaW5kZXggPT09ICh0aGlzLnN0YXRlLmljb25zLmRhdGEubGVuZ3RoKS0xKVxyXG4gICB7XHJcbiAgICBpbmRleD0tMTtcclxuICAgfVxyXG4gICAgdGhpcy5wcm9wcy5jaGFuZ2VTaWRlSWNvbih0cnVlKTtcclxuICAgICAgdGhpcy5wcm9wcy5zZXRTZWxlY3RlZEljb24odGhpcy5zdGF0ZS5pY29ucy5kYXRhW2luZGV4KzFdLm5hbWUsdGhpcy5zdGF0ZS5pY29ucy5kYXRhW2luZGV4KzFdLnNsdWcsdGhpcy5zdGF0ZS5pY29ucy5kYXRhW2luZGV4KzFdLnR5cGVfb2ZfaWNvbik7XHJcbiAgXHJcbiAgICB9XHJcbiAgICBcclxuICB9XHJcbiAgZWxzZSBpZihldmVudC5rZXlDb2RlICA9PSAzNyl7XHJcbiAgaWYodGhpcy5zdGF0ZS5zZWxlY3RlZEljb24ubmFtZSE9bnVsbCl7XHJcblxyXG4gICAgIFxyXG4gICAgICB2YXIgaW5kZXggPSB0aGlzLnN0YXRlLmljb25zLmRhdGEuZmluZEluZGV4KHAgPT4gcC5zbHVnID09IHRoaXMuc3RhdGUuc2VsZWN0ZWRJY29uLnNsdWcpO1xyXG4gXHJcbiAgIGlmKGluZGV4ID09PSAwKVxyXG4gICB7XHJcbiAgICBpbmRleD10aGlzLnN0YXRlLmljb25zLmRhdGEubGVuZ3RoO1xyXG4gICB9XHJcbiAgICB0aGlzLnByb3BzLmNoYW5nZVNpZGVJY29uKHRydWUpO1xyXG4gICAgICB0aGlzLnByb3BzLnNldFNlbGVjdGVkSWNvbih0aGlzLnN0YXRlLmljb25zLmRhdGFbaW5kZXgtMV0ubmFtZSx0aGlzLnN0YXRlLmljb25zLmRhdGFbaW5kZXgtMV0uc2x1Zyx0aGlzLnN0YXRlLmljb25zLmRhdGFbaW5kZXgtMV0udHlwZV9vZl9pY29uKTtcclxuICBcclxuICAgIH1cclxufX19XHJcbiAgY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyhuZXdQcm9wcykge1xyXG4gICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgIGRpc3BsYXlTaWRlSWNvbjogbmV3UHJvcHMuZGlzcGxheVNpZGVJY29uXHJcbiAgICB9KTtcclxudGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgIHNob3dTaWRlOiBuZXdQcm9wcy5kaXNwbGF5Q2F0ZWdvcmllc1xyXG4gICAgfSk7XHJcblxyXG4gICAgaWYobmV3UHJvcHMuaWNvbnMuZGF0YSE9PW51bGwgJiYgbmV3UHJvcHMuaWNvbnMuZGF0YS5sZW5ndGg9PT0wKXtcclxudGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgIG5vUmVzdWx0OiB0cnVlXHJcbiAgICB9KTtcclxuICAgIH1cclxuICAgIGVsc2V7XHJcbiAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICBub1Jlc3VsdDogZmFsc2VcclxuICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICBpY29uczogbmV3UHJvcHMuaWNvbnNcclxuICAgIH0pO1xyXG4gICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgIGNhdGVnb3JpZXM6IG5ld1Byb3BzLmNhdGVnb3JpZXNcclxuICAgIH0pO1xyXG4gICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgIHNlbGVjdGVkSWNvbjogbmV3UHJvcHMuc2VsZWN0ZWRJY29uXHJcbiAgICB9KTtcclxuICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICBzZWFyY2hUZXJtOiBuZXdQcm9wcy5zZWFyY2hUZXJtXHJcbiAgICB9KTtcclxuICB9XHJcbiAgY29tcG9uZW50V2lsbE1vdW50KCkge1xyXG4gICAgdGhpcy5wcm9wcy5mZXRjaEljb25zKFwiXCIpO1xyXG4gICAgdGhpcy5wcm9wcy5mZXRjaENhdGVnb3JpZXMoKTtcclxuICB9XHJcbmNvbXBvbmVudFdpbGxVbm1vdW50KCkge1xyXG4gICAgdGhpcy5wcm9wcy5zZXRTZWFyY2hUZXJtKFwiXCIpO1xyXG4gICBcclxuICAgXHJcbiBcclxuICB9XHJcbiAgIGNvbXBvbmVudERpZE1vdW50KCkge1xyXG4gICAgICBcclxuICAgIH1cclxuICAgIFxyXG5cclxuICByZW5kZXIoKSB7XHJcblxyXG5cclxuXHJcbiAgICB2YXIgc2VjdGlvbkNsYXNzID0gY2xhc3NOYW1lcyh7XHJcbiAgICAgIGFjdGl2ZTogdGhpcy5zdGF0ZS5kaXNwbGF5U2lkZUljb24sXHJcbiAgICB9KTtcclxuICAgIHZhciBzZWN0aW9uQ29udENsYXNzID0gY2xhc3NOYW1lcyh7XHJcbiAgICAgICdzaWRlLWFjdGl2ZSc6IHRoaXMuc3RhdGUuc2hvd1NpZGUsXHJcbiAgICB9KTtcclxuICAgICBcclxuICAgIHJldHVybiAoXHJcbiAgICAgXHJcbiAgICAgICAgPEljb25zU2VjdGlvbiBjbGFzc05hbWU9e3NlY3Rpb25DbGFzc30gb25LZXlEb3duPXt0aGlzLmhhbmRsZUtleVByZXNzfSA+XHJcbiAgICAgIFxyXG4gICAgICAgICA8SWNvbnNGaWx0ZXIgc2lkZT17dGhpcy5zdGF0ZS5zaG93U2lkZX0+XHJcbiAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaWNvbi1maWx0ZXItbWF4XCI+XHJcbiAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaWNvbnMtZmlsdGVyLWluXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImljb25zLWZpbHRlclwiICBvbkNsaWNrPXt0aGlzLmhhbmRsZVNpZGV9PjxpICBjbGFzc05hbWU9XCJieCAgYngtc2xpZGVyXCI+PC9pPjwvZGl2PlxyXG4gICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaWNvbnMtY291bnRcIj5cclxuICAgICAgICAgIFxyXG4gICAgICAgICAgIHt0aGlzLnN0YXRlLmljb25zLmRhdGEhPT1udWxsID8gdGhpcy5zdGF0ZS5pY29ucy5kYXRhLmxlbmd0aDonMCd9IGljb25zPC9kaXY+XHJcbiAgICAgICAgXHJcbiAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXt0aGlzLnN0YXRlLnN0eWxlPT09J0FMTCc/XCJmaWx0ZXItYWxsIGFjdGl2ZVwiOlwiZmlsdGVyLWFsbFwifSBvbkNsaWNrID0geygpPT50aGlzLmhhbmRsZUZpbHRlcignQUxMJyl9PlxyXG4gICAgICAgICBBbGxcclxuICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17dGhpcy5zdGF0ZS5zdHlsZT09PSdSRUdVTEFSJz9cImZpbHRlci1yZWd1bGFyIGFjdGl2ZVwiOlwiZmlsdGVyLXJlZ3VsYXJcIn0gb25DbGljayA9IHsoKT0+dGhpcy5oYW5kbGVGaWx0ZXIoJ1JFR1VMQVInKX0+XHJcbiAgICAgICAgICAgUmVndWxhclxyXG4gICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXt0aGlzLnN0YXRlLnN0eWxlPT09J1NPTElEJz9cImZpbHRlci1zb2xpZCBhY3RpdmVcIjpcImZpbHRlci1zb2xpZFwifSBvbkNsaWNrID0geygpPT50aGlzLmhhbmRsZUZpbHRlcignU09MSUQnKX0+XHJcbiAgICAgICAgICAgU29saWRcclxuICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17dGhpcy5zdGF0ZS5zdHlsZT09PSdMT0dPJz9cImZpbHRlci1sb2dvIGFjdGl2ZVwiOlwiZmlsdGVyLWxvZ29cIn0gb25DbGljayA9IHsoKT0+dGhpcy5oYW5kbGVGaWx0ZXIoJ0xPR08nKX0+XHJcbiAgICAgICAgICAgTG9nb3NcclxuICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgPC9kaXY+XHJcbjwvZGl2PlxyXG4gICAgICAgICA8L0ljb25zRmlsdGVyPlxyXG4gICAgICAgICA8SWNvbnNTZWN0aW9uQ29udCBjbGFzc05hbWU9e3NlY3Rpb25Db250Q2xhc3N9PlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpY29ucy1sZWZ0LXNlY3Rpb24gXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibGVmdC1zZWN0aW9uLWlubmVyXCIgIG9uQmx1cj17dGhpcy5oYW5kbGVCbHVyfSA+XHJcbiAgICAgICAgICAgICAge3RoaXMuc3RhdGUuc2VsZWN0ZWRJY29uLm5hbWUgIT0gbnVsbCAmJiAoXHJcbiAgICAgICAgICAgICAgICA8U3R5bGVkSWNvbkNvbnQ+XHJcbiAgICAgICAgICAgICAgICAgIDxJY29uIGljb249e3RoaXMuc3RhdGUuc2VsZWN0ZWRJY29ufSAvPlxyXG4gICAgICAgICAgICAgICAgPC9TdHlsZWRJY29uQ29udD5cclxuICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2Pnt0aGlzLnN0YXRlLnNob3dTaWRlICYmXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaWNvbnMtc2lkZS1zZWN0aW9uIFwiPlxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwic2lkZS1zZWN0aW9uLWlubmVyXCI+IDxTaW1wbGVCYXIgc3R5bGU9e3sgaGVpZ2h0OiAnY2FsYygxMDB2aCAtIDYwcHgpJyB9fT5cclxuICAgICAgICAgICAgICAgICB7dGhpcy5zdGF0ZS5jYXRlZ29yaWVzLmRhdGEgIT0gbnVsbCAmJiAgPENhdGVnb3JpZXMgc2VhcmNoVGVybT17dGhpcy5zdGF0ZS5zZWFyY2hUZXJtfSBzdHlsZT17dGhpcy5zdGF0ZS5zdHlsZX0gY2F0ZWdvcmllcz17dGhpcy5zdGF0ZS5jYXRlZ29yaWVzLmRhdGF9IC8+fVxyXG4gICAgICAgICAgICAgICAgPC9TaW1wbGVCYXI+PC9kaXY+IFxyXG4gICAgICAgICAgICA8L2Rpdj59XHJcbiAgICAgICAgICB7dGhpcy5zdGF0ZS5pY29ucy5kYXRhICE9IG51bGwgJiYgKFxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImljb25zLXJpZ2h0LXNlY3Rpb24gXCI+XHJcbiAgICAgICAgICAgICAge3RoaXMuc3RhdGUubm9SZXN1bHQgJiYgKFxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpY29uLWxpc3QgXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzTmFtZT1cIm5vLXJlc3VsdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgTm8gcmVzdWx0IGZvdW5kIGZvciAgXHJcbiAgICAgICAgICAgICAgICAgICAgICA8c3Ryb25nPiAne3RoaXMuc3RhdGUuc2VhcmNoVGVybX0nPC9zdHJvbmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICA8cD5IYXZpbmcgdHJvdWJsZSBmaW5kaW5nIGFuIGljb24sIHRyeSB0aGUgPExpbmsgdG89XCJjaGVhdHNoZWV0XCI+Q2hlYXRzaGVldDwvTGluaz48L3A+XHJcbiAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgPC9oMz5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgIDxJY29uc0xpc3QgaWNvbnM9e3RoaXMuc3RhdGUuaWNvbnMuZGF0YX0gIHN0eWxlPXt0aGlzLnN0YXRlLnN0eWxlfS8+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgKX08L0ljb25zU2VjdGlvbkNvbnQ+XHJcbiAgICAgICAgPC9JY29uc1NlY3Rpb24+XHJcbiAgICAgXHJcbiAgICApO1xyXG4gIH1cclxufVxyXG5mdW5jdGlvbiBtYXBTdGF0ZVRvUHJvcHMoc3RhdGUpIHtcclxuICByZXR1cm4ge1xyXG4gICAgaWNvbnM6IHN0YXRlLmljb25zLFxyXG4gICAgc2VhcmNoVGVybTogc3RhdGUuc2VhcmNoVGVybSxcclxuICAgIGRpc3BsYXlTaWRlSWNvbjogc3RhdGUuZGlzcGxheVNpZGVJY29uLFxyXG4gICAgc2VsZWN0ZWRJY29uOiBzdGF0ZS5zZWxlY3RlZEljb24sXHJcbiAgICBjYXRlZ29yaWVzOiBzdGF0ZS5jYXRlZ29yaWVzLFxyXG4gICAgZGlzcGxheUNhdGVnb3JpZXM6IHN0YXRlLmRpc3BsYXlDYXRlZ29yaWVzLFxyXG4gIH07XHJcbn1cclxuXHJcbmZ1bmN0aW9uIG1hcERpc3BhdGNoVG9Qcm9wcyhkaXNwYXRjaCkge1xyXG4gIHJldHVybiBiaW5kQWN0aW9uQ3JlYXRvcnMoXHJcbiAgICB7XHJcbiAgICAgIGZldGNoSWNvbnMsXHJcbiAgICAgIGZldGNoU3R5bGUsXHJcbiAgICAgIGZldGNoQ2F0ZWdvcmllcyxcclxuICAgICAgY2hhbmdlU2lkZUljb24sXHJcbiAgICAgICAgc2V0U2VsZWN0ZWRJY29uLFxyXG4gICAgICAgIHNldFNlYXJjaFRlcm0sXHJcbiAgICAgICAgY2hhbmdlQ2F0ZWdvcmllc1xyXG4gICAgfSxcclxuICAgIGRpc3BhdGNoXHJcbiAgKTtcclxufVxyXG5cclxuZXhwb3J0IGRlZmF1bHQgY29ubmVjdChcclxuICBtYXBTdGF0ZVRvUHJvcHMsXHJcbiAgbWFwRGlzcGF0Y2hUb1Byb3BzXHJcbikoSWNvbnMpO1xuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyBzdGF0aWMvanMvY29tcG9uZW50cy9pY29ucy9pY29ucy5qcyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQUFBO0FBQ0E7OztBQUFBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7OztBQUFBO0FBQ0E7OztBQUFBO0FBQ0E7OztBQUFBO0FBQ0E7OztBQUFBO0FBQ0E7QUFBQTtBQUNBOzs7QUFDQTtBQUNBO0FBc1ZBO0FBQ0E7OztBQUNBO0FBQ0E7Ozs7Ozs7Ozs7O0FBelZBO0FBOEVBO0FBQ0E7QUFBQTtBQUFBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFOQTtBQUFBO0FBRkE7QUFDQTtBQVdBO0FBWUE7QUFDQTtBQWtJQTtBQXVDQTtBQUFBO0FBQ0E7QUFBQTtBQVNBO0FBQUE7QUFLQTtBQUFBO0FBQ0E7QUFBQTtBQUNBO0FBd0RBOzs7QUFDQTtBQUFBO0FBQ0E7QUFEQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBREE7QUFHQTtBQUNBO0FBREE7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUhBO0FBS0E7QUFDQTtBQUNBO0FBQ0E7QUFsQkE7QUFvQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQTNCQTtBQTRCQTtBQUNBOzs7QUFBQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRkE7QUFJQTtBQUNBO0FBQ0E7OztBQUVBOzs7QUFHQTtBQUNBO0FBQ0E7QUFEQTtBQUdBO0FBQ0E7QUFFQTtBQUVBO0FBQ0E7QUFFQTs7O0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUVBO0FBRUE7QUFDQTtBQUVBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFBQTtBQUFBOzs7QUFDQTtBQUNBO0FBQ0E7QUFEQTtBQUdBO0FBQ0E7QUFEQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBREE7QUFHQTtBQUVBO0FBQ0E7QUFEQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBREE7QUFHQTtBQUNBO0FBREE7QUFHQTtBQUNBO0FBREE7QUFHQTtBQUNBO0FBREE7QUFHQTs7O0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUNBO0FBQ0E7QUFJQTs7O0FBQ0E7OztBQUtBO0FBQUE7QUFDQTtBQUdBO0FBQ0E7QUFEQTtBQUdBO0FBQ0E7QUFEQTtBQUNBO0FBR0E7QUFFQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQ0E7QUFBQTtBQUFBO0FBQ0E7QUFBQTtBQUFBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUVBO0FBRkE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBR0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBZkE7QUFEQTtBQURBO0FBd0JBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBREE7QUFGQTtBQURBO0FBUUE7QUFDQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQURBO0FBQUE7QUFGQTtBQU1BO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUhBO0FBREE7QUFEQTtBQVdBO0FBYkE7QUFqQkE7QUExQkE7QUE4REE7Ozs7QUF2TkE7QUFDQTtBQXdOQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBTkE7QUFRQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBUEE7QUFXQTtBQUNBO0FBQ0EiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///823\n"); + +/***/ }), + +/***/ 824: +/*!*************************************************!*\ + !*** ./static/js/components/icons/iconsList.js ***! + \*************************************************/ +/*! dynamic exports provided */ +/*! all exports used */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _react = __webpack_require__(/*! react */ 3);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _iconsListItem = __webpack_require__(/*! ./iconsListItem */ 825);\n\nvar _iconsListItem2 = _interopRequireDefault(_iconsListItem);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar IconsList = function IconsList(props) {\n\n var iconsItems = props.icons.map(function (icon, num) {\n return _react2.default.createElement(_iconsListItem2.default, {\n key: icon.id,\n icon: icon,\n num: num + 1,\n style: props.style\n });\n });\n\n return _react2.default.createElement(\n 'div',\n { className: 'icon-list animated delay50 fadeIn' },\n _react2.default.createElement(\n 'div',\n { className: 'container' },\n iconsItems\n )\n );\n};\n\nexports.default = IconsList;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiODI0LmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vL3N0YXRpYy9qcy9jb21wb25lbnRzL2ljb25zL2ljb25zTGlzdC5qcz9iMzliIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XHJcbmltcG9ydCBJY29uc0xpc3RJdGVtIGZyb20gJy4vaWNvbnNMaXN0SXRlbSdcclxuXHJcblxyXG5jb25zdCBJY29uc0xpc3QgPSAocHJvcHMpID0+IHtcclxuXHJcbiAgICBjb25zdCBpY29uc0l0ZW1zID0gcHJvcHMuaWNvbnMubWFwKChpY29uLG51bSkgPT4ge1xyXG4gICAgICAgIHJldHVybiAoPEljb25zTGlzdEl0ZW1cclxuICAgICAgICAgICAga2V5PXtpY29uLmlkfVxyXG4gICAgICAgICAgICBpY29uPXtpY29ufVxyXG4gICAgICAgICAgICBudW0gPSB7bnVtKzF9XHJcbiAgICAgICAgICAgIHN0eWxlID0ge3Byb3BzLnN0eWxlfVxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgICk7XHJcbiAgICB9KTtcclxuXHJcbiAgICByZXR1cm4gKFxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImljb24tbGlzdCBhbmltYXRlZCBkZWxheTUwIGZhZGVJblwiPlxyXG4gICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICB7aWNvbnNJdGVtc31cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICApO1xyXG5cclxufTtcclxuXHJcblxyXG5leHBvcnQgZGVmYXVsdCBJY29uc0xpc3Q7XG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIHN0YXRpYy9qcy9jb21wb25lbnRzL2ljb25zL2ljb25zTGlzdC5qcyJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7QUFDQTs7O0FBQUE7QUFDQTs7Ozs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSkE7QUFPQTtBQUNBO0FBQ0E7QUFFQTtBQUFBO0FBQ0E7QUFBQTtBQUFBO0FBQ0E7QUFEQTtBQURBO0FBT0E7QUFDQTtBQUVBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///824\n"); + +/***/ }), + +/***/ 825: +/*!*****************************************************!*\ + !*** ./static/js/components/icons/iconsListItem.js ***! + \*****************************************************/ +/*! dynamic exports provided */ +/*! all exports used */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\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\nvar _templateObject = _taggedTemplateLiteral(['\\n\\ntransition: background-color .4s, box-shadow 0.15s;\\n animation-fill-mode: forwards;\\n i {\\n color: ', ';\\n font-size: ', '; \\n @media screen and (max-width: ', ') {\\n font-size: ', '; \\n }\\n @media screen and (max-width: ', ') {\\n font-size: ', '; \\n }\\n }\\n &.fade{\\n &.active{\\n .icon-base {\\n opacity:1;\\n }\\n }\\n .icon-base {\\n opacity:0.5;\\n }\\n }\\n &.active{\\n i {\\n color: ', ';\\n }\\n }\\n cursor: pointer;\\n outline: none !important;\\n flex: 0 0 ', ';\\n\\n \\n @media screen and (max-width: 1200px) {\\n flex: 0 0 10%;\\n max-width:', ';\\n }\\n @media screen and (max-width: ', ') {\\n flex: 0 0 ', ';\\n max-width: none;\\n height:90px;\\n }\\n \\n &:hover{\\n background:#fff;\\n box-shadow: 0 1px 3px rgba(25,25,25,0.2);\\n z-index: 9999999;\\n } \\n border-radius: 5px;overflow: hidden;\\n overflow: hidden;\\n \\n\\n \\n .icon-box-inner {\\n \\n margin: 2px;\\n border: 2px solid transparent;\\n font-weight: 700;\\n position: relative;\\n font-size: 16px;\\n border-radius: 5px;\\n line-height: 35px;\\n text-align: center;\\n pointer-events: none;\\n .icon-base{\\n height:', ';\\n margin:24px 0px;\\n @media screen and (max-width: ', ') {\\n margin:17px 0px;\\n }\\n i{\\n line-height:', ';\\n }\\n @media screen and (max-width: ', ') {\\n height:', ';\\n i{\\n line-height:', ';\\n }\\n }\\n @media screen and (max-width: ', ') {\\n height:', ';\\n i{\\n line-height:', ';\\n }\\n }\\n\\n }\\n .icon-box-name {\\n font-size: 12px;\\n -webkit-touch-callout: none;\\n -webkit-user-select: none; \\n -khtml-user-select: none; \\n -moz-user-select: none; \\n -ms-user-select: none; \\n user-select: none;\\n font-weight: 400;\\n color: ', ';\\n @media screen and (max-width: ', ') {\\n display:none;\\n }\\n margin: 0px 10px;\\n text-overflow: ellipsis;\\n overflow: hidden;\\n white-space: nowrap;\\n line-height: 20px; margin-top: 5px; margin-bottom: 16px;\\n }\\n @media screen and (max-width: ', ') {\\n width: auto;\\n padding: 15px 5px;\\n }\\n @media screen and (max-width: ', ') {\\n padding: 10px 5px;\\n }\\n\\n }\\n&.active:hover{\\n box-shadow:none;\\n}\\n\\n &.active {\\n background: ', ';\\n }\\n '], ['\\n\\ntransition: background-color .4s, box-shadow 0.15s;\\n animation-fill-mode: forwards;\\n i {\\n color: ', ';\\n font-size: ', '; \\n @media screen and (max-width: ', ') {\\n font-size: ', '; \\n }\\n @media screen and (max-width: ', ') {\\n font-size: ', '; \\n }\\n }\\n &.fade{\\n &.active{\\n .icon-base {\\n opacity:1;\\n }\\n }\\n .icon-base {\\n opacity:0.5;\\n }\\n }\\n &.active{\\n i {\\n color: ', ';\\n }\\n }\\n cursor: pointer;\\n outline: none !important;\\n flex: 0 0 ', ';\\n\\n \\n @media screen and (max-width: 1200px) {\\n flex: 0 0 10%;\\n max-width:', ';\\n }\\n @media screen and (max-width: ', ') {\\n flex: 0 0 ', ';\\n max-width: none;\\n height:90px;\\n }\\n \\n &:hover{\\n background:#fff;\\n box-shadow: 0 1px 3px rgba(25,25,25,0.2);\\n z-index: 9999999;\\n } \\n border-radius: 5px;overflow: hidden;\\n overflow: hidden;\\n \\n\\n \\n .icon-box-inner {\\n \\n margin: 2px;\\n border: 2px solid transparent;\\n font-weight: 700;\\n position: relative;\\n font-size: 16px;\\n border-radius: 5px;\\n line-height: 35px;\\n text-align: center;\\n pointer-events: none;\\n .icon-base{\\n height:', ';\\n margin:24px 0px;\\n @media screen and (max-width: ', ') {\\n margin:17px 0px;\\n }\\n i{\\n line-height:', ';\\n }\\n @media screen and (max-width: ', ') {\\n height:', ';\\n i{\\n line-height:', ';\\n }\\n }\\n @media screen and (max-width: ', ') {\\n height:', ';\\n i{\\n line-height:', ';\\n }\\n }\\n\\n }\\n .icon-box-name {\\n font-size: 12px;\\n -webkit-touch-callout: none;\\n -webkit-user-select: none; \\n -khtml-user-select: none; \\n -moz-user-select: none; \\n -ms-user-select: none; \\n user-select: none;\\n font-weight: 400;\\n color: ', ';\\n @media screen and (max-width: ', ') {\\n display:none;\\n }\\n margin: 0px 10px;\\n text-overflow: ellipsis;\\n overflow: hidden;\\n white-space: nowrap;\\n line-height: 20px; margin-top: 5px; margin-bottom: 16px;\\n }\\n @media screen and (max-width: ', ') {\\n width: auto;\\n padding: 15px 5px;\\n }\\n @media screen and (max-width: ', ') {\\n padding: 10px 5px;\\n }\\n\\n }\\n&.active:hover{\\n box-shadow:none;\\n}\\n\\n &.active {\\n background: ', ';\\n }\\n ']);\n\nvar _react = __webpack_require__(/*! react */ 3);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactRouterDom = __webpack_require__(/*! react-router-dom */ 58);\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ 71);\n\nvar _redux = __webpack_require__(/*! redux */ 72);\n\nvar _classnames = __webpack_require__(/*! classnames */ 228);\n\nvar _classnames2 = _interopRequireDefault(_classnames);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ 57);\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _types = __webpack_require__(/*! ../types */ 56);\n\nvar _iconActions = __webpack_require__(/*! ../../actions/iconActions */ 227);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar IconBox = _styledComponents2.default.div(_templateObject, _types.FONT_COLOR, _types.ICON_SIZE, _types.BREAKPOINT_LG, _types.ICON_SIZE, _types.BREAKPOINT_MD, _types.ICON_SIZE_MD, _types.SELECTED_COLOR, _types.FLEX, _types.FLEX, _types.BREAKPOINT_LG, _types.FLEX_LG, _types.ICON_BASE, _types.BREAKPOINT_LG, _types.ICON_BASE, _types.BREAKPOINT_LG, _types.ICON_BASE_LG, _types.ICON_BASE_LG, _types.BREAKPOINT_MD, _types.ICON_BASE_MD, _types.ICON_BASE_MD, _types.ICON_NAME_COLOR, _types.BREAKPOINT_LG, _types.BREAKPOINT_LG, _types.BREAKPOINT_MD, _types.LIGHT_BACKGROUND);\n\nvar IconsListItem = function (_Component) {\n _inherits(IconsListItem, _Component);\n\n function IconsListItem(props) {\n _classCallCheck(this, IconsListItem);\n\n var _this = _possibleConstructorReturn(this, (IconsListItem.__proto__ || Object.getPrototypeOf(IconsListItem)).call(this, props));\n\n _this.handleBoxClick = _this.handleBoxClick.bind(_this);\n _this.state = {\n selectedIcon: {\n name: null,\n slug: null,\n type_of_icon: null\n },\n searchTerm: ''\n\n };\n return _this;\n }\n\n _createClass(IconsListItem, [{\n key: 'handleBoxClick',\n value: function handleBoxClick(name, slug, type_of_icon) {\n this.props.changeSideIcon(true);\n this.props.setSelectedIcon(name, slug, type_of_icon);\n }\n }, {\n key: 'componentWillReceiveProps',\n value: function componentWillReceiveProps(newProps) {\n\n this.setState({\n selectedIcon: newProps.selectedIcon\n });\n this.setState({\n searchTerm: newProps.searchTerm\n });\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var boxClass = (0, _classnames2.default)({\n 'active': this.state.selectedIcon.slug === this.props.icon.slug,\n 'icon-box ': true\n });\n return _react2.default.createElement(\n IconBox,\n { className: boxClass, ref: 'iconbox', tabIndex: this.props.num, onFocus: function onFocus() {\n return _this2.handleBoxClick(_this2.props.icon.name, _this2.props.icon.slug, _this2.props.icon.type_of_icon);\n } },\n _react2.default.createElement(\n 'div',\n { className: 'icon-box-inner' },\n _react2.default.createElement(\n 'div',\n { className: 'icon-base' },\n this.props.icon.type_of_icon === 'REGULAR' && _react2.default.createElement('i', { className: \"fadeIn animated bx bx-\" + this.props.icon.name }),\n this.props.icon.type_of_icon === 'SOLID' && _react2.default.createElement('i', { className: \"fadeIn animated bx bxs-\" + this.props.icon.name }),\n this.props.icon.type_of_icon === 'LOGO' && _react2.default.createElement('i', { className: \"fadeIn animated bx bxl-\" + this.props.icon.name })\n )\n )\n );\n }\n }]);\n\n return IconsListItem;\n}(_react.Component);\n\n;\n\nfunction mapStateToProps(state) {\n return {\n selectedIcon: state.selectedIcon,\n searchTerm: state.searchTerm\n };\n}\nfunction mapDispatchToProps(dispatch) {\n return (0, _redux.bindActionCreators)({\n changeSideIcon: _iconActions.changeSideIcon,\n setSelectedIcon: _iconActions.setSelectedIcon\n }, dispatch);\n}\n\nexports.default = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(IconsListItem);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiODI1LmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vL3N0YXRpYy9qcy9jb21wb25lbnRzL2ljb25zL2ljb25zTGlzdEl0ZW0uanM/MjkyNCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgQ29tcG9uZW50IH0gZnJvbSAncmVhY3QnO1xyXG5pbXBvcnQgeyBMaW5rIH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XHJcbmltcG9ydCB7IGNvbm5lY3QgfSBmcm9tICdyZWFjdC1yZWR1eCc7XHJcbmltcG9ydCB7IGJpbmRBY3Rpb25DcmVhdG9ycyB9IGZyb20gJ3JlZHV4JztcclxuaW1wb3J0IGNsYXNzTmFtZXMgZnJvbSAnY2xhc3NuYW1lcyc7XHJcbmltcG9ydCBzdHlsZWQgZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMnO1xyXG5pbXBvcnQgeyBCUkVBS1BPSU5UX0xHLCBMSUdIVF9CQUNLR1JPVU5ELEJSRUFLUE9JTlRfTURTLEJSRUFLUE9JTlRfTURMLEZMRVhfTURMLEZMRVhfTURTLEhFQURFUl9DT0xPUixTRUxFQ1RFRF9DT0xPUixJQ09OX0JBU0VfTEcsRk9OVF9DT0xPUixGTEVYLElDT05fQkFTRSxJQ09OX0JBU0VfTUQsRkxFWF9MRyxGTEVYX1NNLEZMRVhfTUQsSUNPTl9TSVpFLElDT05fU0laRV9NRCxTRUNPTkRBUllfRk9OVF9DT0xPUixJQ09OX05BTUVfQ09MT1IsREFSS19CT1JERVJfQ09MT1IsRkFERV9GT05UX0NPTE9SLCBCUkVBS1BPSU5UX01ELCBCUkVBS1BPSU5UX1NNfSBmcm9tICcuLi90eXBlcyc7XHJcbmltcG9ydCB7IGNoYW5nZVNpZGVJY29uLCBzZXRTZWxlY3RlZEljb24gfSBmcm9tICcuLi8uLi9hY3Rpb25zL2ljb25BY3Rpb25zJztcclxuY29uc3QgSWNvbkJveCA9IHN0eWxlZC5kaXZgXHJcblxyXG50cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIC40cywgYm94LXNoYWRvdyAwLjE1cztcclxuICAgIGFuaW1hdGlvbi1maWxsLW1vZGU6IGZvcndhcmRzO1xyXG4gICAgICAgICAgICBpIHtcclxuICAgICAgICAgICAgICAgIGNvbG9yOiAke0ZPTlRfQ09MT1J9O1xyXG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAke0lDT05fU0laRX07ICBcclxuICAgICAgICAgICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAke0JSRUFLUE9JTlRfTEd9KSB7XHJcbiAgICAgICAgICAgICAgICBmb250LXNpemU6ICR7SUNPTl9TSVpFfTsgXHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJHtCUkVBS1BPSU5UX01EfSkge1xyXG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAke0lDT05fU0laRV9NRH07IFxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgJi5mYWRle1xyXG4gICAgICAgICAgICAgICAgJi5hY3RpdmV7XHJcbiAgICAgICAgICAgICAgICAgIC5pY29uLWJhc2Uge1xyXG4gICAgICAgICAgICAgICAgb3BhY2l0eToxO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIC5pY29uLWJhc2Uge1xyXG4gICAgICAgICAgICAgICAgb3BhY2l0eTowLjU7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAmLmFjdGl2ZXtcclxuICAgICAgICAgICAgICAgIGkge1xyXG4gICAgICAgICAgICAgICAgY29sb3I6ICR7U0VMRUNURURfQ09MT1J9O1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgICAgICAgICAgb3V0bGluZTogbm9uZSAhaW1wb3J0YW50O1xyXG4gICAgICAgICAgICBmbGV4OiAwIDAgJHtGTEVYfTtcclxuXHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMjAwcHgpIHtcclxuICAgICAgICAgICAgICAgIGZsZXg6IDAgMCAxMCU7XHJcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6JHtGTEVYfTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAke0JSRUFLUE9JTlRfTEd9KSB7XHJcbiAgICAgICAgICAgICAgICBmbGV4OiAwIDAgJHtGTEVYX0xHfTtcclxuICAgICAgICAgICAgICAgIG1heC13aWR0aDogbm9uZTtcclxuICAgICAgICAgICAgICAgIGhlaWdodDo5MHB4O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgJjpob3ZlcntcclxuICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiNmZmY7XHJcbiAgICAgICAgICAgICAgYm94LXNoYWRvdzogMCAxcHggM3B4IHJnYmEoMjUsMjUsMjUsMC4yKTtcclxuICAgICAgICAgICAgICAgICB6LWluZGV4OiA5OTk5OTk5O1xyXG4gICAgfSAgXHJcbiAgICBib3JkZXItcmFkaXVzOiA1cHg7b3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgICAgICAgICAgICBcclxuXHJcbiAgIFxyXG4gICAgICAgICAgICAuaWNvbi1ib3gtaW5uZXIge1xyXG4gICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgbWFyZ2luOiAycHg7XHJcbiAgICAgICAgICAgICAgYm9yZGVyOiAycHggc29saWQgdHJhbnNwYXJlbnQ7XHJcbiAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcclxuICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgICAgICAgZm9udC1zaXplOiAxNnB4O1xyXG4gICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDVweDtcclxuICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMzVweDtcclxuICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XHJcbiAgICAgICAgICAgICAgLmljb24tYmFzZXtcclxuICAgICAgICAgICAgICAgIGhlaWdodDoke0lDT05fQkFTRX07XHJcbiAgICAgICAgICAgICAgICBtYXJnaW46MjRweCAwcHg7XHJcbiAgICAgICAgICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAke0JSRUFLUE9JTlRfTEd9KSB7XHJcbiAgICAgICAgICAgICAgICAgIG1hcmdpbjoxN3B4IDBweDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaXtcclxuICAgICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6JHtJQ09OX0JBU0V9O1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJHtCUkVBS1BPSU5UX0xHfSkge1xyXG4gICAgICAgICAgICAgICAgICBoZWlnaHQ6JHtJQ09OX0JBU0VfTEd9O1xyXG4gICAgICAgICAgICAgICAgaXtcclxuICAgICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6JHtJQ09OX0JBU0VfTEd9O1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICR7QlJFQUtQT0lOVF9NRH0pIHtcclxuICAgICAgICAgICAgICAgICAgaGVpZ2h0OiR7SUNPTl9CQVNFX01EfTtcclxuICAgICAgICAgICAgICAgIGl7XHJcbiAgICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiR7SUNPTl9CQVNFX01EfTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAuaWNvbi1ib3gtbmFtZSB7XHJcbiAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDtcclxuICAgICAgICAgICAgICAgICAgLXdlYmtpdC10b3VjaC1jYWxsb3V0OiBub25lO1xyXG4gICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTsgXHJcbiAgICAgLWtodG1sLXVzZXItc2VsZWN0OiBub25lOyBcclxuICAgICAgIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7IFxyXG4gICAgICAgIC1tcy11c2VyLXNlbGVjdDogbm9uZTsgXHJcbiAgICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xyXG4gICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNDAwO1xyXG4gICAgICAgICAgICAgICAgICBjb2xvcjogJHtJQ09OX05BTUVfQ09MT1J9O1xyXG4gICAgICAgICAgICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAke0JSRUFLUE9JTlRfTEd9KSB7XHJcbiAgICAgICAgICAgICAgICBkaXNwbGF5Om5vbmU7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICBtYXJnaW46IDBweCAxMHB4O1xyXG4gICAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcclxuICAgICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcclxuICAgICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDIwcHg7ICAgIG1hcmdpbi10b3A6IDVweDsgbWFyZ2luLWJvdHRvbTogMTZweDtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAke0JSRUFLUE9JTlRfTEd9KSB7XHJcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcclxuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDE1cHggNXB4O1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAke0JSRUFLUE9JTlRfTUR9KSB7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAxMHB4IDVweDtcclxuICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICB9XHJcbiYuYWN0aXZlOmhvdmVye1xyXG4gIGJveC1zaGFkb3c6bm9uZTtcclxufVxyXG5cclxuICAgICAgICAgICAgJi5hY3RpdmUge1xyXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHtMSUdIVF9CQUNLR1JPVU5EfTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICBgO1xyXG5jbGFzcyBJY29uc0xpc3RJdGVtIGV4dGVuZHMgQ29tcG9uZW50IHtcclxuICAgIGNvbnN0cnVjdG9yKHByb3BzKSB7XHJcbiAgICAgICAgc3VwZXIocHJvcHMpO1xyXG4gICAgICAgIHRoaXMuaGFuZGxlQm94Q2xpY2sgPSB0aGlzLmhhbmRsZUJveENsaWNrLmJpbmQodGhpcyk7XHJcbiAgICAgICAgdGhpcy5zdGF0ZSA9IHtcclxuICAgICAgICAgICAgc2VsZWN0ZWRJY29uOiB7XHJcbiAgICAgICAgICAgICAgICBuYW1lOiBudWxsLFxyXG4gICAgICAgICAgICAgICAgc2x1ZzogbnVsbCxcclxuICAgICAgICAgICAgICAgIHR5cGVfb2ZfaWNvbjpudWxsLFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBzZWFyY2hUZXJtOiAnJyxcclxuXHJcbiAgICAgICAgfTtcclxuICAgIH1cclxuXHJcbiAgICBoYW5kbGVCb3hDbGljayhuYW1lLCBzbHVnLCB0eXBlX29mX2ljb24pIHtcclxuICAgICAgICB0aGlzLnByb3BzLmNoYW5nZVNpZGVJY29uKHRydWUpO1xyXG4gICAgICAgIHRoaXMucHJvcHMuc2V0U2VsZWN0ZWRJY29uKG5hbWUsIHNsdWcsIHR5cGVfb2ZfaWNvbik7XHJcblxyXG4gICAgfVxyXG4gICAgY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyhuZXdQcm9wcykge1xyXG4gICAgICBcclxuICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgICAgc2VsZWN0ZWRJY29uOiBuZXdQcm9wcy5zZWxlY3RlZEljb25cclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgICAgc2VhcmNoVGVybTogbmV3UHJvcHMuc2VhcmNoVGVybVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgXHJcbiAgICAgICAgXHJcblxyXG4gICAgfVxyXG4gICAgcmVuZGVyKCkge1xyXG4gICAgICAgIFxyXG4gICAgICAgIHZhciBib3hDbGFzcyA9IGNsYXNzTmFtZXMoe1xyXG4gICAgICAgICAgICAnYWN0aXZlJzogKHRoaXMuc3RhdGUuc2VsZWN0ZWRJY29uLnNsdWcgPT09IHRoaXMucHJvcHMuaWNvbi5zbHVnKSxcclxuICAgICAgICAgICAgJ2ljb24tYm94ICc6dHJ1ZSxcclxuICAgICAgICB9KTtcclxuICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICA8SWNvbkJveCBjbGFzc05hbWU9e2JveENsYXNzfSByZWY9XCJpY29uYm94XCIgdGFiSW5kZXg9e3RoaXMucHJvcHMubnVtfSBvbkZvY3VzPXsoKSA9PiB0aGlzLmhhbmRsZUJveENsaWNrKHRoaXMucHJvcHMuaWNvbi5uYW1lLCB0aGlzLnByb3BzLmljb24uc2x1ZywgdGhpcy5wcm9wcy5pY29uLnR5cGVfb2ZfaWNvbil9PlxyXG4gIFxyXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImljb24tYm94LWlubmVyXCIgPjxkaXYgY2xhc3NOYW1lPVwiaWNvbi1iYXNlXCIgPlxyXG4gICAgICB7dGhpcy5wcm9wcy5pY29uLnR5cGVfb2ZfaWNvbj09PSdSRUdVTEFSJyAmJiA8aSBjbGFzc05hbWU9e1wiZmFkZUluIGFuaW1hdGVkIGJ4IGJ4LVwiK3RoaXMucHJvcHMuaWNvbi5uYW1lfT48L2k+fVxyXG4gICAgICB7dGhpcy5wcm9wcy5pY29uLnR5cGVfb2ZfaWNvbj09PSdTT0xJRCcgJiYgPGkgY2xhc3NOYW1lPXtcImZhZGVJbiBhbmltYXRlZCBieCBieHMtXCIrdGhpcy5wcm9wcy5pY29uLm5hbWV9PjwvaT59XHJcbiB7dGhpcy5wcm9wcy5pY29uLnR5cGVfb2ZfaWNvbj09PSdMT0dPJyAmJiA8aSBjbGFzc05hbWU9e1wiZmFkZUluIGFuaW1hdGVkIGJ4IGJ4bC1cIit0aGlzLnByb3BzLmljb24ubmFtZX0+PC9pPn1cclxuPC9kaXY+XHJcbnsvKlxyXG48ZGl2IGNsYXNzTmFtZT1cImljb24tYm94LW5hbWVcIj57dGhpcy5wcm9wcy5pY29uLm5hbWV9PC9kaXY+Ki99XHJcbiAgICAgPC9kaXY+PC9JY29uQm94PlxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcbn1cclxuO1xyXG5cclxuZnVuY3Rpb24gbWFwU3RhdGVUb1Byb3BzKHN0YXRlKSB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAgIHNlbGVjdGVkSWNvbjogc3RhdGUuc2VsZWN0ZWRJY29uLFxyXG4gICAgICAgIHNlYXJjaFRlcm06IHN0YXRlLnNlYXJjaFRlcm0sXHJcbiAgICB9O1xyXG59XHJcbmZ1bmN0aW9uIG1hcERpc3BhdGNoVG9Qcm9wcyhkaXNwYXRjaCkge1xyXG4gICAgcmV0dXJuIGJpbmRBY3Rpb25DcmVhdG9ycyh7XHJcbiAgICAgICAgY2hhbmdlU2lkZUljb24sXHJcbiAgICAgICAgc2V0U2VsZWN0ZWRJY29uXHJcbiAgICB9LCBkaXNwYXRjaCk7XHJcbn1cclxuXHJcbmV4cG9ydCBkZWZhdWx0IGNvbm5lY3QobWFwU3RhdGVUb1Byb3BzLCBtYXBEaXNwYXRjaFRvUHJvcHMpKEljb25zTGlzdEl0ZW0pO1xyXG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gc3RhdGljL2pzL2NvbXBvbmVudHMvaWNvbnMvaWNvbnNMaXN0SXRlbS5qcyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUFBO0FBQ0E7OztBQUFBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7OztBQUFBO0FBQ0E7OztBQUFBO0FBQ0E7QUFBQTtBQUNBOzs7Ozs7Ozs7OztBQUFBO0FBQ0E7QUEySEE7OztBQUNBO0FBQUE7QUFDQTtBQURBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFIQTtBQUtBO0FBQ0E7QUFQQTtBQUhBO0FBWUE7QUFDQTs7O0FBQ0E7QUFDQTtBQUNBO0FBRUE7OztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBREE7QUFHQTtBQUNBO0FBREE7QUFNQTs7O0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRkE7QUFJQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBSEE7QUFBQTtBQUZBO0FBV0E7Ozs7QUFsREE7QUFDQTtBQW1EQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFGQTtBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFGQTtBQUlBO0FBQ0E7QUFDQSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///825\n"); + +/***/ }), + +/***/ 826: +/*!**************************************************!*\ + !*** ./static/js/components/icons/categories.js ***! + \**************************************************/ +/*! dynamic exports provided */ +/*! all exports used */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\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\nvar _templateObject = _taggedTemplateLiteral(['\\n padding: 15px;\\n list-style: none;\\n margin: 0px;\\n @media screen and (min-width: ', '){\\n padding:20px; \\n padding-left:0px;padding-top: 20px;border-right: 1px solid ', ';\\n }\\n \\n\\n li{\\n font-size: 14px;\\n \\n \\n padding: 0px;\\n cursor: pointer;\\n display: inline-block;\\n \\n width: 20%;\\n \\n @media screen and (max-width: ', ') {\\n width: 33.33%;\\n }\\n @media screen and (max-width: ', ') {\\n width: 50%;\\n }\\n @media screen and (min-width: ', '){\\n width: 100%;\\n display:block;}\\n div{\\n border-radius: 2px;\\n padding: 3px 15px;\\n border: 2px solid transparent;\\n transition:0.1s;\\n -webkit-touch-callout: none;\\n -webkit-user-select: none;\\n -khtml-user-select: none;\\n -moz-user-select: none;\\n -ms-user-select: none;\\n user-select: none;\\n @media screen and (min-width: ', '){\\n min-width: 160px;}\\n display: block;\\n color: ', ';\\n &:hover{\\n \\n \\n } \\n }\\n \\n &.active{\\n \\n \\n div{\\n color:#b06c4a;\\n \\n }\\n \\n }\\n }\\n'], ['\\n padding: 15px;\\n list-style: none;\\n margin: 0px;\\n @media screen and (min-width: ', '){\\n padding:20px; \\n padding-left:0px;padding-top: 20px;border-right: 1px solid ', ';\\n }\\n \\n\\n li{\\n font-size: 14px;\\n \\n \\n padding: 0px;\\n cursor: pointer;\\n display: inline-block;\\n \\n width: 20%;\\n \\n @media screen and (max-width: ', ') {\\n width: 33.33%;\\n }\\n @media screen and (max-width: ', ') {\\n width: 50%;\\n }\\n @media screen and (min-width: ', '){\\n width: 100%;\\n display:block;}\\n div{\\n border-radius: 2px;\\n padding: 3px 15px;\\n border: 2px solid transparent;\\n transition:0.1s;\\n -webkit-touch-callout: none;\\n -webkit-user-select: none;\\n -khtml-user-select: none;\\n -moz-user-select: none;\\n -ms-user-select: none;\\n user-select: none;\\n @media screen and (min-width: ', '){\\n min-width: 160px;}\\n display: block;\\n color: ', ';\\n &:hover{\\n \\n \\n } \\n }\\n \\n &.active{\\n \\n \\n div{\\n color:#b06c4a;\\n \\n }\\n \\n }\\n }\\n']);\n\nvar _react = __webpack_require__(/*! react */ 3);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ 57);\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ 71);\n\nvar _iconActions = __webpack_require__(/*! ../../actions/iconActions */ 227);\n\nvar _redux = __webpack_require__(/*! redux */ 72);\n\nvar _types = __webpack_require__(/*! ../types */ 56);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar CategoryList = _styledComponents2.default.ul(_templateObject, _types.BREAKPOINT_LG, _types.DARK_BORDER_COLOR, _types.BREAKPOINT_LG, _types.BREAKPOINT_MD, _types.BREAKPOINT_LG, _types.BREAKPOINT_LG, _types.FONT_COLOR);\n\nvar Categories = function (_Component) {\n _inherits(Categories, _Component);\n\n function Categories(props) {\n _classCallCheck(this, Categories);\n\n var _this = _possibleConstructorReturn(this, (Categories.__proto__ || Object.getPrototypeOf(Categories)).call(this, props));\n\n _this.handleClick = _this.handleClick.bind(_this);\n\n return _this;\n }\n\n _createClass(Categories, [{\n key: 'handleClick',\n value: function handleClick(name) {\n\n this.props.setSearchTerm(name, this.props.style);\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var categoryItems = this.props.categories.map(function (category, num) {\n\n return _react2.default.createElement(\n 'li',\n { key: num, className: _this2.props.searchTerm === category.name ? 'active' : '', onClick: function onClick() {\n return _this2.handleClick(category.name);\n } },\n _react2.default.createElement(\n 'div',\n null,\n category.name\n )\n );\n });\n\n return _react2.default.createElement(\n 'div',\n { className: 'fadeIn animated', id: 'filter' },\n _react2.default.createElement(\n CategoryList,\n null,\n categoryItems\n )\n );\n }\n }]);\n\n return Categories;\n}(_react.Component);\n\n;\n\nfunction mapDispatchToProps(dispatch) {\n return (0, _redux.bindActionCreators)({\n setSearchTerm: _iconActions.setSearchTerm\n }, dispatch);\n}\n\nexports.default = (0, _reactRedux.connect)(null, mapDispatchToProps)(Categories);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiODI2LmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vL3N0YXRpYy9qcy9jb21wb25lbnRzL2ljb25zL2NhdGVnb3JpZXMuanM/ZjQxNiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgQ29tcG9uZW50IH0gZnJvbSAncmVhY3QnO1xyXG5pbXBvcnQgc3R5bGVkIGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJztcclxuaW1wb3J0IHsgY29ubmVjdCB9IGZyb20gXCJyZWFjdC1yZWR1eFwiO1xyXG5pbXBvcnQgeyBzZXRTZWFyY2hUZXJtfSBmcm9tIFwiLi4vLi4vYWN0aW9ucy9pY29uQWN0aW9uc1wiO1xyXG5pbXBvcnQgeyBiaW5kQWN0aW9uQ3JlYXRvcnMgfSBmcm9tIFwicmVkdXhcIjtcclxuaW1wb3J0IHsgQlJFQUtQT0lOVF9MRyxCUkVBS1BPSU5UX01ELEdSRUVOX0NPTE9SLEZPTlRfQ09MT1IsTElHSFRfQkFDS0dST1VORCxCTFVFX0NPTE9SLERBUktfQk9SREVSX0NPTE9SfSBmcm9tICcuLi90eXBlcyc7XHJcblxyXG5jb25zdCBDYXRlZ29yeUxpc3QgPSBzdHlsZWQudWxgXHJcbiAgICBwYWRkaW5nOiAxNXB4O1xyXG4gICAgbGlzdC1zdHlsZTogbm9uZTtcclxuICAgIG1hcmdpbjogMHB4O1xyXG4gICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICR7QlJFQUtQT0lOVF9MR30pe1xyXG4gICAgICAgIHBhZGRpbmc6MjBweDsgXHJcbiAgICAgICAgcGFkZGluZy1sZWZ0OjBweDtwYWRkaW5nLXRvcDogMjBweDtib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAke0RBUktfQk9SREVSX0NPTE9SfTtcclxuICAgICAgICB9XHJcbiAgXHJcblxyXG4gICAgbGl7XHJcbiAgICAgICAgZm9udC1zaXplOiAxNHB4O1xyXG4gICAgICAgIFxyXG4gICAgICAgIFxyXG4gICAgICAgIHBhZGRpbmc6IDBweDtcclxuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICAgIFxyXG4gICAgICAgIHdpZHRoOiAyMCU7XHJcbiAgICAgICAgXHJcbiAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJHtCUkVBS1BPSU5UX0xHfSkge1xyXG4gICAgICAgICAgICB3aWR0aDogMzMuMzMlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAke0JSRUFLUE9JTlRfTUR9KSB7XHJcbiAgICAgICAgICAgIHdpZHRoOiA1MCU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICR7QlJFQUtQT0lOVF9MR30pe1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgZGlzcGxheTpibG9jazt9XHJcbiAgICAgICAgZGl2e1xyXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcclxuICAgICAgICBwYWRkaW5nOiAzcHggMTVweDtcclxuICAgICAgICBib3JkZXI6IDJweCBzb2xpZCAgdHJhbnNwYXJlbnQ7XHJcbiAgICAgICAgdHJhbnNpdGlvbjowLjFzO1xyXG4gICAgICAgIC13ZWJraXQtdG91Y2gtY2FsbG91dDogbm9uZTtcclxuICAgICAgICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XHJcbiAgICAgICAgICAta2h0bWwtdXNlci1zZWxlY3Q6IG5vbmU7XHJcbiAgICAgICAgICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xyXG4gICAgICAgICAgLW1zLXVzZXItc2VsZWN0OiBub25lO1xyXG4gICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XHJcbiAgICAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJHtCUkVBS1BPSU5UX0xHfSl7XHJcbiAgICAgICAgbWluLXdpZHRoOiAxNjBweDt9XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgICBjb2xvcjogJHtGT05UX0NPTE9SfTtcclxuICAgICAgICAgICAmOmhvdmVye1xyXG4gICAgICAgICAgIFxyXG4gICAgICAgICAgICBcclxuICAgICAgICB9IFxyXG4gICAgICAgIH1cclxuICAgICAgICBcclxuICAgICAgICAmLmFjdGl2ZXtcclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICBkaXZ7XHJcbiAgICAgICAgICAgICAgICAgIGNvbG9yOiNiMDZjNGE7XHJcbiAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5gO1xyXG5jbGFzcyBDYXRlZ29yaWVzIGV4dGVuZHMgQ29tcG9uZW50IHtcclxuY29uc3RydWN0b3IocHJvcHMpIHtcclxuICAgICAgICBzdXBlcihwcm9wcyk7XHJcbiAgICAgICBcclxuICAgICAgICB0aGlzLmhhbmRsZUNsaWNrID0gdGhpcy5oYW5kbGVDbGljay5iaW5kKHRoaXMpO1xyXG4gICAgICBcclxuXHJcbiAgICB9XHJcbiAgICBcclxuICAgIGhhbmRsZUNsaWNrKG5hbWUpe1xyXG5cclxuIFxyXG4gICAgICAgIHRoaXMucHJvcHMuc2V0U2VhcmNoVGVybShuYW1lLHRoaXMucHJvcHMuc3R5bGUpO1xyXG4gICAgfVxyXG5yZW5kZXIoKXtcclxuICAgIGNvbnN0IGNhdGVnb3J5SXRlbXMgPSB0aGlzLnByb3BzLmNhdGVnb3JpZXMubWFwKChjYXRlZ29yeSxudW0pID0+IHtcclxuXHJcbiAgICAgICAgcmV0dXJuICg8bGkga2V5PXtudW19IGNsYXNzTmFtZT17dGhpcy5wcm9wcy5zZWFyY2hUZXJtPT09Y2F0ZWdvcnkubmFtZSA/ICdhY3RpdmUnOicnfSBvbkNsaWNrPXsoKT0+dGhpcy5oYW5kbGVDbGljayhjYXRlZ29yeS5uYW1lKX0+PGRpdj57Y2F0ZWdvcnkubmFtZX08L2Rpdj48L2xpPlxyXG4gICAgICAgICk7XHJcbiAgICB9KTtcclxuXHJcbiAgICByZXR1cm4gKFxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZhZGVJbiBhbmltYXRlZFwiIGlkPVwiZmlsdGVyXCI+XHJcbiAgICAgICAgIDxDYXRlZ29yeUxpc3Q+XHJcbiAgICAgICAgICAgIHtjYXRlZ29yeUl0ZW1zfVxyXG4gICAgICAgICA8L0NhdGVnb3J5TGlzdD4gICBcclxuICAgICAgICA8L2Rpdj5cclxuICAgICk7XHJcbn1cclxufTtcclxuXHJcbmZ1bmN0aW9uIG1hcERpc3BhdGNoVG9Qcm9wcyhkaXNwYXRjaCkge1xyXG4gICAgcmV0dXJuIGJpbmRBY3Rpb25DcmVhdG9ycyhcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHNldFNlYXJjaFRlcm0sXHJcbiAgICAgICAgfSxcclxuICAgICAgICBkaXNwYXRjaFxyXG4gICAgKTtcclxufVxyXG5cclxuZXhwb3J0IGRlZmF1bHQgY29ubmVjdChcclxuICAgIG51bGwsXHJcbiAgICBtYXBEaXNwYXRjaFRvUHJvcHNcclxuKShDYXRlZ29yaWVzKTtcblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gc3RhdGljL2pzL2NvbXBvbmVudHMvaWNvbnMvY2F0ZWdvcmllcy5qcyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUFBO0FBQ0E7OztBQUFBO0FBQ0E7OztBQUFBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7Ozs7Ozs7Ozs7O0FBQ0E7QUFDQTtBQTREQTs7O0FBQ0E7QUFBQTtBQUNBO0FBREE7QUFDQTtBQUVBO0FBQ0E7QUFKQTtBQU1BO0FBQ0E7OztBQUNBO0FBQ0E7QUFFQTtBQUNBOzs7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQ0E7QUFDQTtBQUVBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFDQTtBQURBO0FBREE7QUFNQTs7OztBQTdCQTtBQUNBO0FBNkJBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFEQTtBQUtBO0FBQ0E7QUFDQSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///826\n"); + +/***/ }), + +/***/ 827: +/*!******************************************************************!*\ + !*** ./node_modules/simplebar-react/dist/simplebar-react.esm.js ***! + \******************************************************************/ +/*! exports provided: default */ +/*! all exports used */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("Object.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(/*! react */ 3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types__ = __webpack_require__(/*! prop-types */ 13);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_simplebar__ = __webpack_require__(/*! simplebar */ 828);\n/**\n * simplebar-react - v0.1.1\n * React component for SimpleBar\n * https://grsmto.github.io/simplebar/\n * \n * Made by Adrien Denat\n * Under MIT License\n */\n\n\n\n\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nfunction SimpleBar(_ref) {\n var children = _ref.children,\n options = _objectWithoutProperties(_ref, [\"children\"]);\n\n return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\"div\", _extends({\n \"data-simplebar\": true\n }, options), __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\"div\", {\n className: \"simplebar-wrapper\"\n }, __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\"div\", {\n className: \"simplebar-height-auto-observer-wrapper\"\n }, __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\"div\", {\n className: \"simplebar-height-auto-observer\"\n })), __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\"div\", {\n className: \"simplebar-mask\"\n }, __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\"div\", {\n className: \"simplebar-offset\"\n }, __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\"div\", {\n className: \"simplebar-content\"\n }, children))), __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\"div\", {\n className: \"simplebar-placeholder\"\n })), __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\"div\", {\n className: \"simplebar-track simplebar-horizontal\"\n }, __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\"div\", {\n className: \"simplebar-scrollbar\"\n })), __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\"div\", {\n className: \"simplebar-track simplebar-vertical\"\n }, __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\"div\", {\n className: \"simplebar-scrollbar\"\n })));\n}\nSimpleBar.propTypes = {\n children: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.node\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (SimpleBar);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiODI3LmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3NpbXBsZWJhci1yZWFjdC9kaXN0L3NpbXBsZWJhci1yZWFjdC5lc20uanM/MmYzNyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIHNpbXBsZWJhci1yZWFjdCAtIHYwLjEuMVxuICogUmVhY3QgY29tcG9uZW50IGZvciBTaW1wbGVCYXJcbiAqIGh0dHBzOi8vZ3JzbXRvLmdpdGh1Yi5pby9zaW1wbGViYXIvXG4gKiBcbiAqIE1hZGUgYnkgQWRyaWVuIERlbmF0XG4gKiBVbmRlciBNSVQgTGljZW5zZVxuICovXG5cbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0ICdzaW1wbGViYXInO1xuXG5mdW5jdGlvbiBfZXh0ZW5kcygpIHtcbiAgX2V4dGVuZHMgPSBPYmplY3QuYXNzaWduIHx8IGZ1bmN0aW9uICh0YXJnZXQpIHtcbiAgICBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIHNvdXJjZSA9IGFyZ3VtZW50c1tpXTtcblxuICAgICAgZm9yICh2YXIga2V5IGluIHNvdXJjZSkge1xuICAgICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHNvdXJjZSwga2V5KSkge1xuICAgICAgICAgIHRhcmdldFtrZXldID0gc291cmNlW2tleV07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdGFyZ2V0O1xuICB9O1xuXG4gIHJldHVybiBfZXh0ZW5kcy5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xufVxuXG5mdW5jdGlvbiBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXNMb29zZShzb3VyY2UsIGV4Y2x1ZGVkKSB7XG4gIGlmIChzb3VyY2UgPT0gbnVsbCkgcmV0dXJuIHt9O1xuICB2YXIgdGFyZ2V0ID0ge307XG4gIHZhciBzb3VyY2VLZXlzID0gT2JqZWN0LmtleXMoc291cmNlKTtcbiAgdmFyIGtleSwgaTtcblxuICBmb3IgKGkgPSAwOyBpIDwgc291cmNlS2V5cy5sZW5ndGg7IGkrKykge1xuICAgIGtleSA9IHNvdXJjZUtleXNbaV07XG4gICAgaWYgKGV4Y2x1ZGVkLmluZGV4T2Yoa2V5KSA+PSAwKSBjb250aW51ZTtcbiAgICB0YXJnZXRba2V5XSA9IHNvdXJjZVtrZXldO1xuICB9XG5cbiAgcmV0dXJuIHRhcmdldDtcbn1cblxuZnVuY3Rpb24gX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzKHNvdXJjZSwgZXhjbHVkZWQpIHtcbiAgaWYgKHNvdXJjZSA9PSBudWxsKSByZXR1cm4ge307XG5cbiAgdmFyIHRhcmdldCA9IF9vYmplY3RXaXRob3V0UHJvcGVydGllc0xvb3NlKHNvdXJjZSwgZXhjbHVkZWQpO1xuXG4gIHZhciBrZXksIGk7XG5cbiAgaWYgKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpIHtcbiAgICB2YXIgc291cmNlU3ltYm9sS2V5cyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoc291cmNlKTtcblxuICAgIGZvciAoaSA9IDA7IGkgPCBzb3VyY2VTeW1ib2xLZXlzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBrZXkgPSBzb3VyY2VTeW1ib2xLZXlzW2ldO1xuICAgICAgaWYgKGV4Y2x1ZGVkLmluZGV4T2Yoa2V5KSA+PSAwKSBjb250aW51ZTtcbiAgICAgIGlmICghT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHNvdXJjZSwga2V5KSkgY29udGludWU7XG4gICAgICB0YXJnZXRba2V5XSA9IHNvdXJjZVtrZXldO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB0YXJnZXQ7XG59XG5cbmZ1bmN0aW9uIFNpbXBsZUJhcihfcmVmKSB7XG4gIHZhciBjaGlsZHJlbiA9IF9yZWYuY2hpbGRyZW4sXG4gICAgICBvcHRpb25zID0gX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzKF9yZWYsIFtcImNoaWxkcmVuXCJdKTtcblxuICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCBfZXh0ZW5kcyh7XG4gICAgXCJkYXRhLXNpbXBsZWJhclwiOiB0cnVlXG4gIH0sIG9wdGlvbnMpLCBSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHtcbiAgICBjbGFzc05hbWU6IFwic2ltcGxlYmFyLXdyYXBwZXJcIlxuICB9LCBSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHtcbiAgICBjbGFzc05hbWU6IFwic2ltcGxlYmFyLWhlaWdodC1hdXRvLW9ic2VydmVyLXdyYXBwZXJcIlxuICB9LCBSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHtcbiAgICBjbGFzc05hbWU6IFwic2ltcGxlYmFyLWhlaWdodC1hdXRvLW9ic2VydmVyXCJcbiAgfSkpLCBSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHtcbiAgICBjbGFzc05hbWU6IFwic2ltcGxlYmFyLW1hc2tcIlxuICB9LCBSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHtcbiAgICBjbGFzc05hbWU6IFwic2ltcGxlYmFyLW9mZnNldFwiXG4gIH0sIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge1xuICAgIGNsYXNzTmFtZTogXCJzaW1wbGViYXItY29udGVudFwiXG4gIH0sIGNoaWxkcmVuKSkpLCBSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHtcbiAgICBjbGFzc05hbWU6IFwic2ltcGxlYmFyLXBsYWNlaG9sZGVyXCJcbiAgfSkpLCBSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHtcbiAgICBjbGFzc05hbWU6IFwic2ltcGxlYmFyLXRyYWNrIHNpbXBsZWJhci1ob3Jpem9udGFsXCJcbiAgfSwgUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7XG4gICAgY2xhc3NOYW1lOiBcInNpbXBsZWJhci1zY3JvbGxiYXJcIlxuICB9KSksIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge1xuICAgIGNsYXNzTmFtZTogXCJzaW1wbGViYXItdHJhY2sgc2ltcGxlYmFyLXZlcnRpY2FsXCJcbiAgfSwgUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7XG4gICAgY2xhc3NOYW1lOiBcInNpbXBsZWJhci1zY3JvbGxiYXJcIlxuICB9KSkpO1xufVxuU2ltcGxlQmFyLnByb3BUeXBlcyA9IHtcbiAgY2hpbGRyZW46IFByb3BUeXBlcy5ub2RlXG59O1xuXG5leHBvcnQgZGVmYXVsdCBTaW1wbGVCYXI7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9zaW1wbGViYXItcmVhY3QvZGlzdC9zaW1wbGViYXItcmVhY3QuZXNtLmpzXG4vLyBtb2R1bGUgaWQgPSA4Mjdcbi8vIG1vZHVsZSBjaHVua3MgPSAxIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Iiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///827\n"); + +/***/ }), + +/***/ 828: +/*!******************************************************!*\ + !*** ./node_modules/simplebar/dist/simplebar.esm.js ***! + \******************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_core_js_modules_es6_regexp_replace__ = __webpack_require__(/*! core-js/modules/es6.regexp.replace */ 235);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_core_js_modules_es6_regexp_replace___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_core_js_modules_es6_regexp_replace__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_core_js_modules_es6_function_name__ = __webpack_require__(/*! core-js/modules/es6.function.name */ 231);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_core_js_modules_es6_function_name___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_core_js_modules_es6_function_name__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_core_js_modules_es6_regexp_match__ = __webpack_require__(/*! core-js/modules/es6.regexp.match */ 234);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_core_js_modules_es6_regexp_match___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_core_js_modules_es6_regexp_match__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_core_js_modules_web_dom_iterable__ = __webpack_require__(/*! core-js/modules/web.dom.iterable */ 236);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_core_js_modules_web_dom_iterable___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_core_js_modules_web_dom_iterable__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_core_js_modules_es6_string_iterator__ = __webpack_require__(/*! core-js/modules/es6.string.iterator */ 232);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_core_js_modules_es6_string_iterator___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_core_js_modules_es6_string_iterator__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_core_js_modules_es6_array_from__ = __webpack_require__(/*! core-js/modules/es6.array.from */ 233);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_core_js_modules_es6_array_from___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5_core_js_modules_es6_array_from__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_scrollbarwidth__ = __webpack_require__(/*! scrollbarwidth */ 829);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_scrollbarwidth___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_6_scrollbarwidth__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_lodash_throttle__ = __webpack_require__(/*! lodash.throttle */ 830);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_lodash_throttle___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_7_lodash_throttle__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8_lodash_debounce__ = __webpack_require__(/*! lodash.debounce */ 831);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8_lodash_debounce___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_8_lodash_debounce__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9_lodash_memoize__ = __webpack_require__(/*! lodash.memoize */ 832);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9_lodash_memoize___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_9_lodash_memoize__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10_resize_observer_polyfill__ = __webpack_require__(/*! resize-observer-polyfill */ 833);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11_can_use_dom__ = __webpack_require__(/*! can-use-dom */ 834);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11_can_use_dom___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_11_can_use_dom__);\n/**\n * SimpleBar.js - v3.1.1\n * Scrollbars, simpler.\n * https://grsmto.github.io/simplebar/\n * \n * Made by Adrien Denat from a fork by Jonathan Nicol\n * Under MIT License\n */\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nvar SimpleBar =\n/*#__PURE__*/\nfunction () {\n function SimpleBar(element, options) {\n var _this = this;\n\n _classCallCheck(this, SimpleBar);\n\n this.onScroll = function () {\n if (!_this.scrollXTicking) {\n window.requestAnimationFrame(_this.scrollX);\n _this.scrollXTicking = true;\n }\n\n if (!_this.scrollYTicking) {\n window.requestAnimationFrame(_this.scrollY);\n _this.scrollYTicking = true;\n }\n };\n\n this.scrollX = function () {\n if (_this.axis.x.isOverflowing) {\n _this.showScrollbar('x');\n\n _this.positionScrollbar('x');\n }\n\n _this.scrollXTicking = false;\n };\n\n this.scrollY = function () {\n if (_this.axis.y.isOverflowing) {\n _this.showScrollbar('y');\n\n _this.positionScrollbar('y');\n }\n\n _this.scrollYTicking = false;\n };\n\n this.onMouseEnter = function () {\n _this.showScrollbar('x');\n\n _this.showScrollbar('y');\n };\n\n this.onMouseMove = function (e) {\n _this.mouseX = e.clientX;\n _this.mouseY = e.clientY;\n\n if (_this.axis.x.isOverflowing || _this.axis.x.forceVisible) {\n _this.onMouseMoveForAxis('x');\n }\n\n if (_this.axis.y.isOverflowing || _this.axis.y.forceVisible) {\n _this.onMouseMoveForAxis('y');\n }\n };\n\n this.onMouseLeave = function () {\n _this.onMouseMove.cancel();\n\n if (_this.axis.x.isOverflowing || _this.axis.x.forceVisible) {\n _this.onMouseLeaveForAxis('x');\n }\n\n if (_this.axis.y.isOverflowing || _this.axis.y.forceVisible) {\n _this.onMouseLeaveForAxis('y');\n }\n\n _this.mouseX = -1;\n _this.mouseY = -1;\n };\n\n this.onWindowResize = function () {\n // Recalculate scrollbarWidth in case it's a zoom\n _this.scrollbarWidth = __WEBPACK_IMPORTED_MODULE_6_scrollbarwidth___default()();\n\n _this.hideNativeScrollbar();\n };\n\n this.hideScrollbars = function () {\n _this.axis.x.track.rect = _this.axis.x.track.el.getBoundingClientRect();\n _this.axis.y.track.rect = _this.axis.y.track.el.getBoundingClientRect();\n\n if (!_this.isWithinBounds(_this.axis.y.track.rect)) {\n _this.axis.y.scrollbar.el.classList.remove(_this.classNames.visible);\n\n _this.axis.y.isVisible = false;\n }\n\n if (!_this.isWithinBounds(_this.axis.x.track.rect)) {\n _this.axis.x.scrollbar.el.classList.remove(_this.classNames.visible);\n\n _this.axis.x.isVisible = false;\n }\n };\n\n this.onPointerEvent = function (e) {\n var isWithinBoundsY, isWithinBoundsX;\n _this.axis.x.scrollbar.rect = _this.axis.x.scrollbar.el.getBoundingClientRect();\n _this.axis.y.scrollbar.rect = _this.axis.y.scrollbar.el.getBoundingClientRect();\n\n if (_this.axis.x.isOverflowing || _this.axis.x.forceVisible) {\n isWithinBoundsX = _this.isWithinBounds(_this.axis.x.scrollbar.rect);\n }\n\n if (_this.axis.y.isOverflowing || _this.axis.y.forceVisible) {\n isWithinBoundsY = _this.isWithinBounds(_this.axis.y.scrollbar.rect);\n } // If any pointer event is called on the scrollbar\n\n\n if (isWithinBoundsY || isWithinBoundsX) {\n // Preventing the event's default action stops text being\n // selectable during the drag.\n e.preventDefault(); // Prevent event leaking\n\n e.stopPropagation();\n\n if (e.type === 'mousedown') {\n if (isWithinBoundsY) {\n _this.onDragStart(e, 'y');\n }\n\n if (isWithinBoundsX) {\n _this.onDragStart(e, 'x');\n }\n }\n }\n };\n\n this.drag = function (e) {\n var eventOffset;\n var track = _this.axis[_this.draggedAxis].track;\n var trackSize = track.rect[_this.axis[_this.draggedAxis].sizeAttr];\n var scrollbar = _this.axis[_this.draggedAxis].scrollbar;\n e.preventDefault();\n e.stopPropagation();\n\n if (_this.draggedAxis === 'y') {\n eventOffset = e.pageY;\n } else {\n eventOffset = e.pageX;\n } // Calculate how far the user's mouse is from the top/left of the scrollbar (minus the dragOffset).\n\n\n var dragPos = eventOffset - track.rect[_this.axis[_this.draggedAxis].offsetAttr] - _this.axis[_this.draggedAxis].dragOffset; // Convert the mouse position into a percentage of the scrollbar height/width.\n\n var dragPerc = dragPos / track.rect[_this.axis[_this.draggedAxis].sizeAttr]; // Scroll the content by the same percentage.\n\n var scrollPos = dragPerc * _this.contentEl[_this.axis[_this.draggedAxis].scrollSizeAttr]; // Fix browsers inconsistency on RTL\n\n if (_this.draggedAxis === 'x') {\n scrollPos = _this.isRtl && SimpleBar.getRtlHelpers().isRtlScrollbarInverted ? scrollPos - (trackSize + scrollbar.size) : scrollPos;\n scrollPos = _this.isRtl && SimpleBar.getRtlHelpers().isRtlScrollingInverted ? -scrollPos : scrollPos;\n }\n\n _this.contentEl[_this.axis[_this.draggedAxis].scrollOffsetAttr] = scrollPos;\n };\n\n this.onEndDrag = function (e) {\n e.preventDefault();\n e.stopPropagation();\n document.removeEventListener('mousemove', _this.drag);\n document.removeEventListener('mouseup', _this.onEndDrag);\n };\n\n this.el = element;\n this.flashTimeout;\n this.contentEl;\n this.offsetEl;\n this.maskEl;\n this.globalObserver;\n this.mutationObserver;\n this.resizeObserver;\n this.scrollbarWidth;\n this.minScrollbarWidth = 20;\n this.options = _objectSpread({}, SimpleBar.defaultOptions, options);\n this.classNames = _objectSpread({}, SimpleBar.defaultOptions.classNames, this.options.classNames);\n this.isRtl;\n this.axis = {\n x: {\n scrollOffsetAttr: 'scrollLeft',\n sizeAttr: 'width',\n scrollSizeAttr: 'scrollWidth',\n offsetAttr: 'left',\n overflowAttr: 'overflowX',\n dragOffset: 0,\n isOverflowing: true,\n isVisible: false,\n forceVisible: false,\n track: {},\n scrollbar: {}\n },\n y: {\n scrollOffsetAttr: 'scrollTop',\n sizeAttr: 'height',\n scrollSizeAttr: 'scrollHeight',\n offsetAttr: 'top',\n overflowAttr: 'overflowY',\n dragOffset: 0,\n isOverflowing: true,\n isVisible: false,\n forceVisible: false,\n track: {},\n scrollbar: {}\n }\n };\n this.recalculate = __WEBPACK_IMPORTED_MODULE_7_lodash_throttle___default()(this.recalculate.bind(this), 64);\n this.onMouseMove = __WEBPACK_IMPORTED_MODULE_7_lodash_throttle___default()(this.onMouseMove.bind(this), 64);\n this.hideScrollbars = __WEBPACK_IMPORTED_MODULE_8_lodash_debounce___default()(this.hideScrollbars.bind(this), this.options.timeout);\n this.onWindowResize = __WEBPACK_IMPORTED_MODULE_8_lodash_debounce___default()(this.onWindowResize.bind(this), 64, {\n leading: true\n });\n SimpleBar.getRtlHelpers = __WEBPACK_IMPORTED_MODULE_9_lodash_memoize___default()(SimpleBar.getRtlHelpers); // getContentElement is deprecated\n\n this.getContentElement = this.getScrollElement;\n this.init();\n }\n /**\n * Static properties\n */\n\n /**\n * Helper to fix browsers inconsistency on RTL:\n * - Firefox inverts the scrollbar initial position\n * - IE11 inverts both scrollbar position and scrolling offset\n * Directly inspired by @KingSora's OverlayScrollbars https://github.com/KingSora/OverlayScrollbars/blob/master/js/OverlayScrollbars.js#L1634\n */\n\n\n _createClass(SimpleBar, [{\n key: \"init\",\n value: function init() {\n // Save a reference to the instance, so we know this DOM node has already been instancied\n this.el.SimpleBar = this;\n this.initDOM(); // We stop here on server-side\n\n if (__WEBPACK_IMPORTED_MODULE_11_can_use_dom___default.a) {\n // Recalculate scrollbarWidth in case it's a zoom\n this.scrollbarWidth = __WEBPACK_IMPORTED_MODULE_6_scrollbarwidth___default()();\n this.recalculate();\n this.initListeners();\n }\n }\n }, {\n key: \"initDOM\",\n value: function initDOM() {\n var _this2 = this;\n\n // make sure this element doesn't have the elements yet\n if (Array.from(this.el.children).filter(function (child) {\n return child.classList.contains(_this2.classNames.wrapper);\n }).length) {\n // assume that element has his DOM already initiated\n this.wrapperEl = this.el.querySelector(\".\".concat(this.classNames.wrapper));\n this.contentEl = this.el.querySelector(\".\".concat(this.classNames.content));\n this.offsetEl = this.el.querySelector(\".\".concat(this.classNames.offset));\n this.maskEl = this.el.querySelector(\".\".concat(this.classNames.mask));\n this.placeholderEl = this.el.querySelector(\".\".concat(this.classNames.placeholder));\n this.heightAutoObserverWrapperEl = this.el.querySelector(\".\".concat(this.classNames.heightAutoObserverWrapperEl));\n this.heightAutoObserverEl = this.el.querySelector(\".\".concat(this.classNames.heightAutoObserverEl));\n this.axis.x.track.el = this.el.querySelector(\".\".concat(this.classNames.track, \".\").concat(this.classNames.horizontal));\n this.axis.y.track.el = this.el.querySelector(\".\".concat(this.classNames.track, \".\").concat(this.classNames.vertical));\n } else {\n // Prepare DOM\n this.wrapperEl = document.createElement('div');\n this.contentEl = document.createElement('div');\n this.offsetEl = document.createElement('div');\n this.maskEl = document.createElement('div');\n this.placeholderEl = document.createElement('div');\n this.heightAutoObserverWrapperEl = document.createElement('div');\n this.heightAutoObserverEl = document.createElement('div');\n this.wrapperEl.classList.add(this.classNames.wrapper);\n this.contentEl.classList.add(this.classNames.content);\n this.offsetEl.classList.add(this.classNames.offset);\n this.maskEl.classList.add(this.classNames.mask);\n this.placeholderEl.classList.add(this.classNames.placeholder);\n this.heightAutoObserverWrapperEl.classList.add(this.classNames.heightAutoObserverWrapperEl);\n this.heightAutoObserverEl.classList.add(this.classNames.heightAutoObserverEl);\n\n while (this.el.firstChild) {\n this.contentEl.appendChild(this.el.firstChild);\n }\n\n this.offsetEl.appendChild(this.contentEl);\n this.maskEl.appendChild(this.offsetEl);\n this.heightAutoObserverWrapperEl.appendChild(this.heightAutoObserverEl);\n this.wrapperEl.appendChild(this.heightAutoObserverWrapperEl);\n this.wrapperEl.appendChild(this.maskEl);\n this.wrapperEl.appendChild(this.placeholderEl);\n this.el.appendChild(this.wrapperEl);\n }\n\n if (!this.axis.x.track.el || !this.axis.y.track.el) {\n var track = document.createElement('div');\n var scrollbar = document.createElement('div');\n track.classList.add(this.classNames.track);\n scrollbar.classList.add(this.classNames.scrollbar);\n\n if (!this.options.autoHide) {\n scrollbar.classList.add(this.classNames.visible);\n }\n\n track.appendChild(scrollbar);\n this.axis.x.track.el = track.cloneNode(true);\n this.axis.x.track.el.classList.add(this.classNames.horizontal);\n this.axis.y.track.el = track.cloneNode(true);\n this.axis.y.track.el.classList.add(this.classNames.vertical);\n this.el.appendChild(this.axis.x.track.el);\n this.el.appendChild(this.axis.y.track.el);\n }\n\n this.axis.x.scrollbar.el = this.axis.x.track.el.querySelector(\".\".concat(this.classNames.scrollbar));\n this.axis.y.scrollbar.el = this.axis.y.track.el.querySelector(\".\".concat(this.classNames.scrollbar));\n this.el.setAttribute('data-simplebar', 'init');\n }\n }, {\n key: \"initListeners\",\n value: function initListeners() {\n var _this3 = this;\n\n // Event listeners\n if (this.options.autoHide) {\n this.el.addEventListener('mouseenter', this.onMouseEnter);\n }\n\n ['mousedown', 'click', 'dblclick', 'touchstart', 'touchend', 'touchmove'].forEach(function (e) {\n _this3.el.addEventListener(e, _this3.onPointerEvent, true);\n });\n this.el.addEventListener('mousemove', this.onMouseMove);\n this.el.addEventListener('mouseleave', this.onMouseLeave);\n this.contentEl.addEventListener('scroll', this.onScroll); // Browser zoom triggers a window resize\n\n window.addEventListener('resize', this.onWindowResize); // MutationObserver is IE11+\n\n if (typeof MutationObserver !== 'undefined') {\n // create an observer instance\n this.mutationObserver = new MutationObserver(function (mutations) {\n mutations.forEach(function (mutation) {\n if (mutation.target === _this3.el || !_this3.isChildNode(mutation.target) || mutation.addedNodes.length) {\n _this3.recalculate();\n }\n });\n }); // pass in the target node, as well as the observer options\n\n this.mutationObserver.observe(this.el, {\n attributes: true,\n childList: true,\n characterData: true,\n subtree: true\n });\n }\n\n this.resizeObserver = new __WEBPACK_IMPORTED_MODULE_10_resize_observer_polyfill__[\"a\" /* default */](this.recalculate);\n this.resizeObserver.observe(this.el);\n }\n }, {\n key: \"recalculate\",\n value: function recalculate() {\n var isHeightAuto = this.heightAutoObserverEl.offsetHeight <= 1;\n this.elStyles = window.getComputedStyle(this.el);\n this.isRtl = this.elStyles.direction === 'rtl';\n this.contentEl.style.padding = \"\".concat(this.elStyles.paddingTop, \" \").concat(this.elStyles.paddingRight, \" \").concat(this.elStyles.paddingBottom, \" \").concat(this.elStyles.paddingLeft);\n this.contentEl.style.height = isHeightAuto ? 'auto' : '100%';\n this.placeholderEl.style.width = \"\".concat(this.contentEl.scrollWidth, \"px\");\n this.placeholderEl.style.height = \"\".concat(this.contentEl.scrollHeight, \"px\");\n this.wrapperEl.style.margin = \"-\".concat(this.elStyles.paddingTop, \" -\").concat(this.elStyles.paddingRight, \" -\").concat(this.elStyles.paddingBottom, \" -\").concat(this.elStyles.paddingLeft);\n this.axis.x.track.rect = this.axis.x.track.el.getBoundingClientRect();\n this.axis.y.track.rect = this.axis.y.track.el.getBoundingClientRect(); // Set isOverflowing to false if scrollbar is not necessary (content is shorter than offset)\n\n this.axis.x.isOverflowing = (this.scrollbarWidth ? this.contentEl.scrollWidth : this.contentEl.scrollWidth - this.minScrollbarWidth) > Math.ceil(this.axis.x.track.rect.width);\n this.axis.y.isOverflowing = (this.scrollbarWidth ? this.contentEl.scrollHeight : this.contentEl.scrollHeight - this.minScrollbarWidth) > Math.ceil(this.axis.y.track.rect.height); // Set isOverflowing to false if user explicitely set hidden overflow\n\n this.axis.x.isOverflowing = this.elStyles.overflowX === 'hidden' ? false : this.axis.x.isOverflowing;\n this.axis.y.isOverflowing = this.elStyles.overflowY === 'hidden' ? false : this.axis.y.isOverflowing;\n this.axis.x.forceVisible = this.options.forceVisible === \"x\" || this.options.forceVisible === true;\n this.axis.y.forceVisible = this.options.forceVisible === \"y\" || this.options.forceVisible === true;\n this.axis.x.scrollbar.size = this.getScrollbarSize('x');\n this.axis.y.scrollbar.size = this.getScrollbarSize('y');\n this.axis.x.scrollbar.el.style.width = \"\".concat(this.axis.x.scrollbar.size, \"px\");\n this.axis.y.scrollbar.el.style.height = \"\".concat(this.axis.y.scrollbar.size, \"px\");\n this.positionScrollbar('x');\n this.positionScrollbar('y');\n this.toggleTrackVisibility('x');\n this.toggleTrackVisibility('y');\n this.hideNativeScrollbar();\n }\n /**\n * Calculate scrollbar size\n */\n\n }, {\n key: \"getScrollbarSize\",\n value: function getScrollbarSize() {\n var axis = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'y';\n var contentSize = this.scrollbarWidth ? this.contentEl[this.axis[axis].scrollSizeAttr] : this.contentEl[this.axis[axis].scrollSizeAttr] - this.minScrollbarWidth;\n var trackSize = this.axis[axis].track.rect[this.axis[axis].sizeAttr];\n var scrollbarSize;\n\n if (!this.axis[axis].isOverflowing) {\n return;\n }\n\n var scrollbarRatio = trackSize / contentSize; // Calculate new height/position of drag handle.\n\n scrollbarSize = Math.max(~~(scrollbarRatio * trackSize), this.options.scrollbarMinSize);\n\n if (this.options.scrollbarMaxSize) {\n scrollbarSize = Math.min(scrollbarSize, this.options.scrollbarMaxSize);\n }\n\n return scrollbarSize;\n }\n }, {\n key: \"positionScrollbar\",\n value: function positionScrollbar() {\n var axis = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'y';\n var contentSize = this.contentEl[this.axis[axis].scrollSizeAttr];\n var trackSize = this.axis[axis].track.rect[this.axis[axis].sizeAttr];\n var hostSize = parseInt(this.elStyles[this.axis[axis].sizeAttr], 10);\n var scrollbar = this.axis[axis].scrollbar;\n var scrollOffset = this.contentEl[this.axis[axis].scrollOffsetAttr];\n scrollOffset = axis === 'x' && this.isRtl && SimpleBar.getRtlHelpers().isRtlScrollingInverted ? -scrollOffset : scrollOffset;\n var scrollPourcent = scrollOffset / (contentSize - hostSize);\n var handleOffset = ~~((trackSize - scrollbar.size) * scrollPourcent);\n handleOffset = axis === 'x' && this.isRtl && SimpleBar.getRtlHelpers().isRtlScrollbarInverted ? handleOffset + (trackSize - scrollbar.size) : handleOffset;\n scrollbar.el.style.transform = axis === 'x' ? \"translate3d(\".concat(handleOffset, \"px, 0, 0)\") : \"translate3d(0, \".concat(handleOffset, \"px, 0)\");\n }\n }, {\n key: \"toggleTrackVisibility\",\n value: function toggleTrackVisibility() {\n var axis = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'y';\n var track = this.axis[axis].track.el;\n var scrollbar = this.axis[axis].scrollbar.el;\n\n if (this.axis[axis].isOverflowing || this.axis[axis].forceVisible) {\n track.style.visibility = 'visible';\n this.contentEl.style[this.axis[axis].overflowAttr] = 'scroll';\n } else {\n track.style.visibility = 'hidden';\n this.contentEl.style[this.axis[axis].overflowAttr] = 'hidden';\n } // Even if forceVisible is enabled, scrollbar itself should be hidden\n\n\n if (this.axis[axis].isOverflowing) {\n scrollbar.style.visibility = 'visible';\n } else {\n scrollbar.style.visibility = 'hidden';\n }\n }\n }, {\n key: \"hideNativeScrollbar\",\n value: function hideNativeScrollbar() {\n this.offsetEl.style[this.isRtl ? 'left' : 'right'] = this.axis.y.isOverflowing || this.axis.y.forceVisible ? \"-\".concat(this.scrollbarWidth || this.minScrollbarWidth, \"px\") : 0;\n this.offsetEl.style.bottom = this.axis.x.isOverflowing || this.axis.x.forceVisible ? \"-\".concat(this.scrollbarWidth || this.minScrollbarWidth, \"px\") : 0; // If floating scrollbar\n\n if (!this.scrollbarWidth) {\n var paddingDirection = [this.isRtl ? 'paddingLeft' : 'paddingRight'];\n this.contentEl.style[paddingDirection] = this.axis.y.isOverflowing || this.axis.y.forceVisible ? \"calc(\".concat(this.elStyles[paddingDirection], \" + \").concat(this.minScrollbarWidth, \"px)\") : this.elStyles[paddingDirection];\n this.contentEl.style.paddingBottom = this.axis.x.isOverflowing || this.axis.x.forceVisible ? \"calc(\".concat(this.elStyles.paddingBottom, \" + \").concat(this.minScrollbarWidth, \"px)\") : this.elStyles.paddingBottom;\n }\n }\n /**\n * On scroll event handling\n */\n\n }, {\n key: \"onMouseMoveForAxis\",\n value: function onMouseMoveForAxis() {\n var axis = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'y';\n this.axis[axis].track.rect = this.axis[axis].track.el.getBoundingClientRect();\n this.axis[axis].scrollbar.rect = this.axis[axis].scrollbar.el.getBoundingClientRect();\n var isWithinScrollbarBoundsX = this.isWithinBounds(this.axis[axis].scrollbar.rect);\n\n if (isWithinScrollbarBoundsX) {\n this.axis[axis].scrollbar.el.classList.add(this.classNames.hover);\n } else {\n this.axis[axis].scrollbar.el.classList.remove(this.classNames.hover);\n }\n\n if (this.isWithinBounds(this.axis[axis].track.rect)) {\n this.showScrollbar(axis);\n this.axis[axis].track.el.classList.add(this.classNames.hover);\n } else {\n this.axis[axis].track.el.classList.remove(this.classNames.hover);\n }\n }\n }, {\n key: \"onMouseLeaveForAxis\",\n value: function onMouseLeaveForAxis() {\n var axis = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'y';\n this.axis[axis].track.el.classList.remove(this.classNames.hover);\n this.axis[axis].scrollbar.el.classList.remove(this.classNames.hover);\n }\n }, {\n key: \"showScrollbar\",\n\n /**\n * Show scrollbar\n */\n value: function showScrollbar() {\n var axis = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'y';\n var scrollbar = this.axis[axis].scrollbar.el;\n\n if (!this.axis[axis].isVisible) {\n scrollbar.classList.add(this.classNames.visible);\n this.axis[axis].isVisible = true;\n }\n\n if (this.options.autoHide) {\n this.hideScrollbars();\n }\n }\n /**\n * Hide Scrollbar\n */\n\n }, {\n key: \"onDragStart\",\n\n /**\n * on scrollbar handle drag movement starts\n */\n value: function onDragStart(e) {\n var axis = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'y';\n var scrollbar = this.axis[axis].scrollbar.el; // Measure how far the user's mouse is from the top of the scrollbar drag handle.\n\n var eventOffset = axis === 'y' ? e.pageY : e.pageX;\n this.axis[axis].dragOffset = eventOffset - scrollbar.getBoundingClientRect()[this.axis[axis].offsetAttr];\n this.draggedAxis = axis;\n document.addEventListener('mousemove', this.drag);\n document.addEventListener('mouseup', this.onEndDrag);\n }\n /**\n * Drag scrollbar handle\n */\n\n }, {\n key: \"getScrollElement\",\n\n /**\n * Getter for original scrolling element\n */\n value: function getScrollElement() {\n return this.contentEl;\n }\n }, {\n key: \"removeListeners\",\n value: function removeListeners() {\n // Event listeners\n if (this.options.autoHide) {\n this.el.removeEventListener('mouseenter', this.onMouseEnter);\n }\n\n this.contentEl.removeEventListener('scroll', this.onScroll);\n window.removeEventListener('resize', this.onWindowResize);\n this.mutationObserver && this.mutationObserver.disconnect();\n this.resizeObserver.disconnect();\n }\n /**\n * UnMount mutation observer and delete SimpleBar instance from DOM element\n */\n\n }, {\n key: \"unMount\",\n value: function unMount() {\n this.removeListeners();\n this.el.SimpleBar = null;\n }\n /**\n * Recursively walks up the parent nodes looking for this.el\n */\n\n }, {\n key: \"isChildNode\",\n value: function isChildNode(el) {\n if (el === null) return false;\n if (el === this.el) return true;\n return this.isChildNode(el.parentNode);\n }\n /**\n * Check if mouse is within bounds\n */\n\n }, {\n key: \"isWithinBounds\",\n value: function isWithinBounds(bbox) {\n return this.mouseX >= bbox.left && this.mouseX <= bbox.left + bbox.width && this.mouseY >= bbox.top && this.mouseY <= bbox.top + bbox.height;\n }\n }], [{\n key: \"getRtlHelpers\",\n value: function getRtlHelpers() {\n var dummyDiv = document.createElement('div');\n dummyDiv.innerHTML = '
';\n var scrollbarDummyEl = dummyDiv.firstElementChild;\n document.body.appendChild(scrollbarDummyEl);\n var dummyContainerChild = scrollbarDummyEl.firstElementChild;\n scrollbarDummyEl.scrollLeft = 0;\n var dummyContainerOffset = SimpleBar.getOffset(scrollbarDummyEl);\n var dummyContainerChildOffset = SimpleBar.getOffset(dummyContainerChild);\n scrollbarDummyEl.scrollLeft = 999;\n var dummyContainerScrollOffsetAfterScroll = SimpleBar.getOffset(dummyContainerChild);\n return {\n // determines if the scrolling is responding with negative values\n isRtlScrollingInverted: dummyContainerOffset.left !== dummyContainerChildOffset.left && dummyContainerChildOffset.left - dummyContainerScrollOffsetAfterScroll.left !== 0,\n // determines if the origin scrollbar position is inverted or not (positioned on left or right)\n isRtlScrollbarInverted: dummyContainerOffset.left !== dummyContainerChildOffset.left\n };\n }\n }, {\n key: \"initHtmlApi\",\n value: function initHtmlApi() {\n this.initDOMLoadedElements = this.initDOMLoadedElements.bind(this); // MutationObserver is IE11+\n\n if (typeof MutationObserver !== 'undefined') {\n // Mutation observer to observe dynamically added elements\n this.globalObserver = new MutationObserver(function (mutations) {\n mutations.forEach(function (mutation) {\n Array.from(mutation.addedNodes).forEach(function (addedNode) {\n if (addedNode.nodeType === 1) {\n if (addedNode.hasAttribute('data-simplebar')) {\n !addedNode.SimpleBar && new SimpleBar(addedNode, SimpleBar.getElOptions(addedNode));\n } else {\n Array.from(addedNode.querySelectorAll('[data-simplebar]')).forEach(function (el) {\n !el.SimpleBar && new SimpleBar(el, SimpleBar.getElOptions(el));\n });\n }\n }\n });\n Array.from(mutation.removedNodes).forEach(function (removedNode) {\n if (removedNode.nodeType === 1) {\n if (removedNode.hasAttribute('data-simplebar')) {\n removedNode.SimpleBar && removedNode.SimpleBar.unMount();\n } else {\n Array.from(removedNode.querySelectorAll('[data-simplebar]')).forEach(function (el) {\n el.SimpleBar && el.SimpleBar.unMount();\n });\n }\n }\n });\n });\n });\n this.globalObserver.observe(document, {\n childList: true,\n subtree: true\n });\n } // Taken from jQuery `ready` function\n // Instantiate elements already present on the page\n\n\n if (document.readyState === 'complete' || document.readyState !== 'loading' && !document.documentElement.doScroll) {\n // Handle it asynchronously to allow scripts the opportunity to delay init\n window.setTimeout(this.initDOMLoadedElements);\n } else {\n document.addEventListener('DOMContentLoaded', this.initDOMLoadedElements);\n window.addEventListener('load', this.initDOMLoadedElements);\n }\n } // Helper function to retrieve options from element attributes\n\n }, {\n key: \"getElOptions\",\n value: function getElOptions(el) {\n var options = Array.from(el.attributes).reduce(function (acc, attribute) {\n var option = attribute.name.match(/data-simplebar-(.+)/);\n\n if (option) {\n var key = option[1].replace(/\\W+(.)/g, function (x, chr) {\n return chr.toUpperCase();\n });\n\n switch (attribute.value) {\n case 'true':\n acc[key] = true;\n break;\n\n case 'false':\n acc[key] = false;\n break;\n\n case undefined:\n acc[key] = true;\n break;\n\n default:\n acc[key] = attribute.value;\n }\n }\n\n return acc;\n }, {});\n return options;\n }\n }, {\n key: \"removeObserver\",\n value: function removeObserver() {\n this.globalObserver.disconnect();\n }\n }, {\n key: \"initDOMLoadedElements\",\n value: function initDOMLoadedElements() {\n document.removeEventListener('DOMContentLoaded', this.initDOMLoadedElements);\n window.removeEventListener('load', this.initDOMLoadedElements);\n Array.from(document.querySelectorAll('[data-simplebar]')).forEach(function (el) {\n if (!el.SimpleBar) new SimpleBar(el, SimpleBar.getElOptions(el));\n });\n }\n }, {\n key: \"getOffset\",\n value: function getOffset(el) {\n var rect = el.getBoundingClientRect();\n return {\n top: rect.top + (window.pageYOffset || document.documentElement.scrollTop),\n left: rect.left + (window.pageXOffset || document.documentElement.scrollLeft)\n };\n }\n }]);\n\n return SimpleBar;\n}();\n/**\n * HTML API\n * Called only in a browser env.\n */\n\n\nSimpleBar.defaultOptions = {\n autoHide: true,\n forceVisible: false,\n classNames: {\n content: 'simplebar-content',\n offset: 'simplebar-offset',\n mask: 'simplebar-mask',\n wrapper: 'simplebar-wrapper',\n placeholder: 'simplebar-placeholder',\n scrollbar: 'simplebar-scrollbar',\n track: 'simplebar-track',\n heightAutoObserverWrapperEl: 'simplebar-height-auto-observer-wrapper',\n heightAutoObserverEl: 'simplebar-height-auto-observer',\n visible: 'simplebar-visible',\n horizontal: 'simplebar-horizontal',\n vertical: 'simplebar-vertical',\n hover: 'simplebar-hover'\n },\n scrollbarMinSize: 25,\n scrollbarMaxSize: 0,\n timeout: 1000\n};\n\nif (__WEBPACK_IMPORTED_MODULE_11_can_use_dom___default.a) {\n SimpleBar.initHtmlApi();\n}\n\n/* unused harmony default export */ var _unused_webpack_default_export = (SimpleBar);\n//# sourceMappingURL=simplebar.esm.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiODI4LmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3NpbXBsZWJhci9kaXN0L3NpbXBsZWJhci5lc20uanM/MzljZCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFNpbXBsZUJhci5qcyAtIHYzLjEuMVxuICogU2Nyb2xsYmFycywgc2ltcGxlci5cbiAqIGh0dHBzOi8vZ3JzbXRvLmdpdGh1Yi5pby9zaW1wbGViYXIvXG4gKiBcbiAqIE1hZGUgYnkgQWRyaWVuIERlbmF0IGZyb20gYSBmb3JrIGJ5IEpvbmF0aGFuIE5pY29sXG4gKiBVbmRlciBNSVQgTGljZW5zZVxuICovXG5cbmltcG9ydCAnY29yZS1qcy9tb2R1bGVzL2VzNi5yZWdleHAucmVwbGFjZSc7XG5pbXBvcnQgJ2NvcmUtanMvbW9kdWxlcy9lczYuZnVuY3Rpb24ubmFtZSc7XG5pbXBvcnQgJ2NvcmUtanMvbW9kdWxlcy9lczYucmVnZXhwLm1hdGNoJztcbmltcG9ydCAnY29yZS1qcy9tb2R1bGVzL3dlYi5kb20uaXRlcmFibGUnO1xuaW1wb3J0ICdjb3JlLWpzL21vZHVsZXMvZXM2LnN0cmluZy5pdGVyYXRvcic7XG5pbXBvcnQgJ2NvcmUtanMvbW9kdWxlcy9lczYuYXJyYXkuZnJvbSc7XG5pbXBvcnQgc2Nyb2xsYmFyV2lkdGggZnJvbSAnc2Nyb2xsYmFyd2lkdGgnO1xuaW1wb3J0IHRocm90dGxlIGZyb20gJ2xvZGFzaC50aHJvdHRsZSc7XG5pbXBvcnQgZGVib3VuY2UgZnJvbSAnbG9kYXNoLmRlYm91bmNlJztcbmltcG9ydCBtZW1vaXplIGZyb20gJ2xvZGFzaC5tZW1vaXplJztcbmltcG9ydCBSZXNpemVPYnNlcnZlciBmcm9tICdyZXNpemUtb2JzZXJ2ZXItcG9seWZpbGwnO1xuaW1wb3J0IGNhblVzZURPTSBmcm9tICdjYW4tdXNlLWRvbSc7XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHtcbiAgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uXCIpO1xuICB9XG59XG5cbmZ1bmN0aW9uIF9kZWZpbmVQcm9wZXJ0aWVzKHRhcmdldCwgcHJvcHMpIHtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9wcy5sZW5ndGg7IGkrKykge1xuICAgIHZhciBkZXNjcmlwdG9yID0gcHJvcHNbaV07XG4gICAgZGVzY3JpcHRvci5lbnVtZXJhYmxlID0gZGVzY3JpcHRvci5lbnVtZXJhYmxlIHx8IGZhbHNlO1xuICAgIGRlc2NyaXB0b3IuY29uZmlndXJhYmxlID0gdHJ1ZTtcbiAgICBpZiAoXCJ2YWx1ZVwiIGluIGRlc2NyaXB0b3IpIGRlc2NyaXB0b3Iud3JpdGFibGUgPSB0cnVlO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGRlc2NyaXB0b3Iua2V5LCBkZXNjcmlwdG9yKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBfY3JlYXRlQ2xhc3MoQ29uc3RydWN0b3IsIHByb3RvUHJvcHMsIHN0YXRpY1Byb3BzKSB7XG4gIGlmIChwcm90b1Byb3BzKSBfZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvci5wcm90b3R5cGUsIHByb3RvUHJvcHMpO1xuICBpZiAoc3RhdGljUHJvcHMpIF9kZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLCBzdGF0aWNQcm9wcyk7XG4gIHJldHVybiBDb25zdHJ1Y3Rvcjtcbn1cblxuZnVuY3Rpb24gX2RlZmluZVByb3BlcnR5KG9iaiwga2V5LCB2YWx1ZSkge1xuICBpZiAoa2V5IGluIG9iaikge1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosIGtleSwge1xuICAgICAgdmFsdWU6IHZhbHVlLFxuICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICAgIHdyaXRhYmxlOiB0cnVlXG4gICAgfSk7XG4gIH0gZWxzZSB7XG4gICAgb2JqW2tleV0gPSB2YWx1ZTtcbiAgfVxuXG4gIHJldHVybiBvYmo7XG59XG5cbmZ1bmN0aW9uIF9vYmplY3RTcHJlYWQodGFyZ2V0KSB7XG4gIGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIHNvdXJjZSA9IGFyZ3VtZW50c1tpXSAhPSBudWxsID8gYXJndW1lbnRzW2ldIDoge307XG4gICAgdmFyIG93bktleXMgPSBPYmplY3Qua2V5cyhzb3VyY2UpO1xuXG4gICAgaWYgKHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBvd25LZXlzID0gb3duS2V5cy5jb25jYXQoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzb3VyY2UpLmZpbHRlcihmdW5jdGlvbiAoc3ltKSB7XG4gICAgICAgIHJldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHNvdXJjZSwgc3ltKS5lbnVtZXJhYmxlO1xuICAgICAgfSkpO1xuICAgIH1cblxuICAgIG93bktleXMuZm9yRWFjaChmdW5jdGlvbiAoa2V5KSB7XG4gICAgICBfZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBrZXksIHNvdXJjZVtrZXldKTtcbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiB0YXJnZXQ7XG59XG5cbnZhciBTaW1wbGVCYXIgPVxuLyojX19QVVJFX18qL1xuZnVuY3Rpb24gKCkge1xuICBmdW5jdGlvbiBTaW1wbGVCYXIoZWxlbWVudCwgb3B0aW9ucykge1xuICAgIHZhciBfdGhpcyA9IHRoaXM7XG5cbiAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgU2ltcGxlQmFyKTtcblxuICAgIHRoaXMub25TY3JvbGwgPSBmdW5jdGlvbiAoKSB7XG4gICAgICBpZiAoIV90aGlzLnNjcm9sbFhUaWNraW5nKSB7XG4gICAgICAgIHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoX3RoaXMuc2Nyb2xsWCk7XG4gICAgICAgIF90aGlzLnNjcm9sbFhUaWNraW5nID0gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgaWYgKCFfdGhpcy5zY3JvbGxZVGlja2luZykge1xuICAgICAgICB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKF90aGlzLnNjcm9sbFkpO1xuICAgICAgICBfdGhpcy5zY3JvbGxZVGlja2luZyA9IHRydWU7XG4gICAgICB9XG4gICAgfTtcblxuICAgIHRoaXMuc2Nyb2xsWCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIGlmIChfdGhpcy5heGlzLnguaXNPdmVyZmxvd2luZykge1xuICAgICAgICBfdGhpcy5zaG93U2Nyb2xsYmFyKCd4Jyk7XG5cbiAgICAgICAgX3RoaXMucG9zaXRpb25TY3JvbGxiYXIoJ3gnKTtcbiAgICAgIH1cblxuICAgICAgX3RoaXMuc2Nyb2xsWFRpY2tpbmcgPSBmYWxzZTtcbiAgICB9O1xuXG4gICAgdGhpcy5zY3JvbGxZID0gZnVuY3Rpb24gKCkge1xuICAgICAgaWYgKF90aGlzLmF4aXMueS5pc092ZXJmbG93aW5nKSB7XG4gICAgICAgIF90aGlzLnNob3dTY3JvbGxiYXIoJ3knKTtcblxuICAgICAgICBfdGhpcy5wb3NpdGlvblNjcm9sbGJhcigneScpO1xuICAgICAgfVxuXG4gICAgICBfdGhpcy5zY3JvbGxZVGlja2luZyA9IGZhbHNlO1xuICAgIH07XG5cbiAgICB0aGlzLm9uTW91c2VFbnRlciA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIF90aGlzLnNob3dTY3JvbGxiYXIoJ3gnKTtcblxuICAgICAgX3RoaXMuc2hvd1Njcm9sbGJhcigneScpO1xuICAgIH07XG5cbiAgICB0aGlzLm9uTW91c2VNb3ZlID0gZnVuY3Rpb24gKGUpIHtcbiAgICAgIF90aGlzLm1vdXNlWCA9IGUuY2xpZW50WDtcbiAgICAgIF90aGlzLm1vdXNlWSA9IGUuY2xpZW50WTtcblxuICAgICAgaWYgKF90aGlzLmF4aXMueC5pc092ZXJmbG93aW5nIHx8IF90aGlzLmF4aXMueC5mb3JjZVZpc2libGUpIHtcbiAgICAgICAgX3RoaXMub25Nb3VzZU1vdmVGb3JBeGlzKCd4Jyk7XG4gICAgICB9XG5cbiAgICAgIGlmIChfdGhpcy5heGlzLnkuaXNPdmVyZmxvd2luZyB8fCBfdGhpcy5heGlzLnkuZm9yY2VWaXNpYmxlKSB7XG4gICAgICAgIF90aGlzLm9uTW91c2VNb3ZlRm9yQXhpcygneScpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICB0aGlzLm9uTW91c2VMZWF2ZSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIF90aGlzLm9uTW91c2VNb3ZlLmNhbmNlbCgpO1xuXG4gICAgICBpZiAoX3RoaXMuYXhpcy54LmlzT3ZlcmZsb3dpbmcgfHwgX3RoaXMuYXhpcy54LmZvcmNlVmlzaWJsZSkge1xuICAgICAgICBfdGhpcy5vbk1vdXNlTGVhdmVGb3JBeGlzKCd4Jyk7XG4gICAgICB9XG5cbiAgICAgIGlmIChfdGhpcy5heGlzLnkuaXNPdmVyZmxvd2luZyB8fCBfdGhpcy5heGlzLnkuZm9yY2VWaXNpYmxlKSB7XG4gICAgICAgIF90aGlzLm9uTW91c2VMZWF2ZUZvckF4aXMoJ3knKTtcbiAgICAgIH1cblxuICAgICAgX3RoaXMubW91c2VYID0gLTE7XG4gICAgICBfdGhpcy5tb3VzZVkgPSAtMTtcbiAgICB9O1xuXG4gICAgdGhpcy5vbldpbmRvd1Jlc2l6ZSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIC8vIFJlY2FsY3VsYXRlIHNjcm9sbGJhcldpZHRoIGluIGNhc2UgaXQncyBhIHpvb21cbiAgICAgIF90aGlzLnNjcm9sbGJhcldpZHRoID0gc2Nyb2xsYmFyV2lkdGgoKTtcblxuICAgICAgX3RoaXMuaGlkZU5hdGl2ZVNjcm9sbGJhcigpO1xuICAgIH07XG5cbiAgICB0aGlzLmhpZGVTY3JvbGxiYXJzID0gZnVuY3Rpb24gKCkge1xuICAgICAgX3RoaXMuYXhpcy54LnRyYWNrLnJlY3QgPSBfdGhpcy5heGlzLngudHJhY2suZWwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICBfdGhpcy5heGlzLnkudHJhY2sucmVjdCA9IF90aGlzLmF4aXMueS50cmFjay5lbC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcblxuICAgICAgaWYgKCFfdGhpcy5pc1dpdGhpbkJvdW5kcyhfdGhpcy5heGlzLnkudHJhY2sucmVjdCkpIHtcbiAgICAgICAgX3RoaXMuYXhpcy55LnNjcm9sbGJhci5lbC5jbGFzc0xpc3QucmVtb3ZlKF90aGlzLmNsYXNzTmFtZXMudmlzaWJsZSk7XG5cbiAgICAgICAgX3RoaXMuYXhpcy55LmlzVmlzaWJsZSA9IGZhbHNlO1xuICAgICAgfVxuXG4gICAgICBpZiAoIV90aGlzLmlzV2l0aGluQm91bmRzKF90aGlzLmF4aXMueC50cmFjay5yZWN0KSkge1xuICAgICAgICBfdGhpcy5heGlzLnguc2Nyb2xsYmFyLmVsLmNsYXNzTGlzdC5yZW1vdmUoX3RoaXMuY2xhc3NOYW1lcy52aXNpYmxlKTtcblxuICAgICAgICBfdGhpcy5heGlzLnguaXNWaXNpYmxlID0gZmFsc2U7XG4gICAgICB9XG4gICAgfTtcblxuICAgIHRoaXMub25Qb2ludGVyRXZlbnQgPSBmdW5jdGlvbiAoZSkge1xuICAgICAgdmFyIGlzV2l0aGluQm91bmRzWSwgaXNXaXRoaW5Cb3VuZHNYO1xuICAgICAgX3RoaXMuYXhpcy54LnNjcm9sbGJhci5yZWN0ID0gX3RoaXMuYXhpcy54LnNjcm9sbGJhci5lbC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgIF90aGlzLmF4aXMueS5zY3JvbGxiYXIucmVjdCA9IF90aGlzLmF4aXMueS5zY3JvbGxiYXIuZWwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG5cbiAgICAgIGlmIChfdGhpcy5heGlzLnguaXNPdmVyZmxvd2luZyB8fCBfdGhpcy5heGlzLnguZm9yY2VWaXNpYmxlKSB7XG4gICAgICAgIGlzV2l0aGluQm91bmRzWCA9IF90aGlzLmlzV2l0aGluQm91bmRzKF90aGlzLmF4aXMueC5zY3JvbGxiYXIucmVjdCk7XG4gICAgICB9XG5cbiAgICAgIGlmIChfdGhpcy5heGlzLnkuaXNPdmVyZmxvd2luZyB8fCBfdGhpcy5heGlzLnkuZm9yY2VWaXNpYmxlKSB7XG4gICAgICAgIGlzV2l0aGluQm91bmRzWSA9IF90aGlzLmlzV2l0aGluQm91bmRzKF90aGlzLmF4aXMueS5zY3JvbGxiYXIucmVjdCk7XG4gICAgICB9IC8vIElmIGFueSBwb2ludGVyIGV2ZW50IGlzIGNhbGxlZCBvbiB0aGUgc2Nyb2xsYmFyXG5cblxuICAgICAgaWYgKGlzV2l0aGluQm91bmRzWSB8fCBpc1dpdGhpbkJvdW5kc1gpIHtcbiAgICAgICAgLy8gUHJldmVudGluZyB0aGUgZXZlbnQncyBkZWZhdWx0IGFjdGlvbiBzdG9wcyB0ZXh0IGJlaW5nXG4gICAgICAgIC8vIHNlbGVjdGFibGUgZHVyaW5nIHRoZSBkcmFnLlxuICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7IC8vIFByZXZlbnQgZXZlbnQgbGVha2luZ1xuXG4gICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG5cbiAgICAgICAgaWYgKGUudHlwZSA9PT0gJ21vdXNlZG93bicpIHtcbiAgICAgICAgICBpZiAoaXNXaXRoaW5Cb3VuZHNZKSB7XG4gICAgICAgICAgICBfdGhpcy5vbkRyYWdTdGFydChlLCAneScpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChpc1dpdGhpbkJvdW5kc1gpIHtcbiAgICAgICAgICAgIF90aGlzLm9uRHJhZ1N0YXJ0KGUsICd4Jyk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfTtcblxuICAgIHRoaXMuZHJhZyA9IGZ1bmN0aW9uIChlKSB7XG4gICAgICB2YXIgZXZlbnRPZmZzZXQ7XG4gICAgICB2YXIgdHJhY2sgPSBfdGhpcy5heGlzW190aGlzLmRyYWdnZWRBeGlzXS50cmFjaztcbiAgICAgIHZhciB0cmFja1NpemUgPSB0cmFjay5yZWN0W190aGlzLmF4aXNbX3RoaXMuZHJhZ2dlZEF4aXNdLnNpemVBdHRyXTtcbiAgICAgIHZhciBzY3JvbGxiYXIgPSBfdGhpcy5heGlzW190aGlzLmRyYWdnZWRBeGlzXS5zY3JvbGxiYXI7XG4gICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuXG4gICAgICBpZiAoX3RoaXMuZHJhZ2dlZEF4aXMgPT09ICd5Jykge1xuICAgICAgICBldmVudE9mZnNldCA9IGUucGFnZVk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBldmVudE9mZnNldCA9IGUucGFnZVg7XG4gICAgICB9IC8vIENhbGN1bGF0ZSBob3cgZmFyIHRoZSB1c2VyJ3MgbW91c2UgaXMgZnJvbSB0aGUgdG9wL2xlZnQgb2YgdGhlIHNjcm9sbGJhciAobWludXMgdGhlIGRyYWdPZmZzZXQpLlxuXG5cbiAgICAgIHZhciBkcmFnUG9zID0gZXZlbnRPZmZzZXQgLSB0cmFjay5yZWN0W190aGlzLmF4aXNbX3RoaXMuZHJhZ2dlZEF4aXNdLm9mZnNldEF0dHJdIC0gX3RoaXMuYXhpc1tfdGhpcy5kcmFnZ2VkQXhpc10uZHJhZ09mZnNldDsgLy8gQ29udmVydCB0aGUgbW91c2UgcG9zaXRpb24gaW50byBhIHBlcmNlbnRhZ2Ugb2YgdGhlIHNjcm9sbGJhciBoZWlnaHQvd2lkdGguXG5cbiAgICAgIHZhciBkcmFnUGVyYyA9IGRyYWdQb3MgLyB0cmFjay5yZWN0W190aGlzLmF4aXNbX3RoaXMuZHJhZ2dlZEF4aXNdLnNpemVBdHRyXTsgLy8gU2Nyb2xsIHRoZSBjb250ZW50IGJ5IHRoZSBzYW1lIHBlcmNlbnRhZ2UuXG5cbiAgICAgIHZhciBzY3JvbGxQb3MgPSBkcmFnUGVyYyAqIF90aGlzLmNvbnRlbnRFbFtfdGhpcy5heGlzW190aGlzLmRyYWdnZWRBeGlzXS5zY3JvbGxTaXplQXR0cl07IC8vIEZpeCBicm93c2VycyBpbmNvbnNpc3RlbmN5IG9uIFJUTFxuXG4gICAgICBpZiAoX3RoaXMuZHJhZ2dlZEF4aXMgPT09ICd4Jykge1xuICAgICAgICBzY3JvbGxQb3MgPSBfdGhpcy5pc1J0bCAmJiBTaW1wbGVCYXIuZ2V0UnRsSGVscGVycygpLmlzUnRsU2Nyb2xsYmFySW52ZXJ0ZWQgPyBzY3JvbGxQb3MgLSAodHJhY2tTaXplICsgc2Nyb2xsYmFyLnNpemUpIDogc2Nyb2xsUG9zO1xuICAgICAgICBzY3JvbGxQb3MgPSBfdGhpcy5pc1J0bCAmJiBTaW1wbGVCYXIuZ2V0UnRsSGVscGVycygpLmlzUnRsU2Nyb2xsaW5nSW52ZXJ0ZWQgPyAtc2Nyb2xsUG9zIDogc2Nyb2xsUG9zO1xuICAgICAgfVxuXG4gICAgICBfdGhpcy5jb250ZW50RWxbX3RoaXMuYXhpc1tfdGhpcy5kcmFnZ2VkQXhpc10uc2Nyb2xsT2Zmc2V0QXR0cl0gPSBzY3JvbGxQb3M7XG4gICAgfTtcblxuICAgIHRoaXMub25FbmREcmFnID0gZnVuY3Rpb24gKGUpIHtcbiAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZW1vdmUnLCBfdGhpcy5kcmFnKTtcbiAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNldXAnLCBfdGhpcy5vbkVuZERyYWcpO1xuICAgIH07XG5cbiAgICB0aGlzLmVsID0gZWxlbWVudDtcbiAgICB0aGlzLmZsYXNoVGltZW91dDtcbiAgICB0aGlzLmNvbnRlbnRFbDtcbiAgICB0aGlzLm9mZnNldEVsO1xuICAgIHRoaXMubWFza0VsO1xuICAgIHRoaXMuZ2xvYmFsT2JzZXJ2ZXI7XG4gICAgdGhpcy5tdXRhdGlvbk9ic2VydmVyO1xuICAgIHRoaXMucmVzaXplT2JzZXJ2ZXI7XG4gICAgdGhpcy5zY3JvbGxiYXJXaWR0aDtcbiAgICB0aGlzLm1pblNjcm9sbGJhcldpZHRoID0gMjA7XG4gICAgdGhpcy5vcHRpb25zID0gX29iamVjdFNwcmVhZCh7fSwgU2ltcGxlQmFyLmRlZmF1bHRPcHRpb25zLCBvcHRpb25zKTtcbiAgICB0aGlzLmNsYXNzTmFtZXMgPSBfb2JqZWN0U3ByZWFkKHt9LCBTaW1wbGVCYXIuZGVmYXVsdE9wdGlvbnMuY2xhc3NOYW1lcywgdGhpcy5vcHRpb25zLmNsYXNzTmFtZXMpO1xuICAgIHRoaXMuaXNSdGw7XG4gICAgdGhpcy5heGlzID0ge1xuICAgICAgeDoge1xuICAgICAgICBzY3JvbGxPZmZzZXRBdHRyOiAnc2Nyb2xsTGVmdCcsXG4gICAgICAgIHNpemVBdHRyOiAnd2lkdGgnLFxuICAgICAgICBzY3JvbGxTaXplQXR0cjogJ3Njcm9sbFdpZHRoJyxcbiAgICAgICAgb2Zmc2V0QXR0cjogJ2xlZnQnLFxuICAgICAgICBvdmVyZmxvd0F0dHI6ICdvdmVyZmxvd1gnLFxuICAgICAgICBkcmFnT2Zmc2V0OiAwLFxuICAgICAgICBpc092ZXJmbG93aW5nOiB0cnVlLFxuICAgICAgICBpc1Zpc2libGU6IGZhbHNlLFxuICAgICAgICBmb3JjZVZpc2libGU6IGZhbHNlLFxuICAgICAgICB0cmFjazoge30sXG4gICAgICAgIHNjcm9sbGJhcjoge31cbiAgICAgIH0sXG4gICAgICB5OiB7XG4gICAgICAgIHNjcm9sbE9mZnNldEF0dHI6ICdzY3JvbGxUb3AnLFxuICAgICAgICBzaXplQXR0cjogJ2hlaWdodCcsXG4gICAgICAgIHNjcm9sbFNpemVBdHRyOiAnc2Nyb2xsSGVpZ2h0JyxcbiAgICAgICAgb2Zmc2V0QXR0cjogJ3RvcCcsXG4gICAgICAgIG92ZXJmbG93QXR0cjogJ292ZXJmbG93WScsXG4gICAgICAgIGRyYWdPZmZzZXQ6IDAsXG4gICAgICAgIGlzT3ZlcmZsb3dpbmc6IHRydWUsXG4gICAgICAgIGlzVmlzaWJsZTogZmFsc2UsXG4gICAgICAgIGZvcmNlVmlzaWJsZTogZmFsc2UsXG4gICAgICAgIHRyYWNrOiB7fSxcbiAgICAgICAgc2Nyb2xsYmFyOiB7fVxuICAgICAgfVxuICAgIH07XG4gICAgdGhpcy5yZWNhbGN1bGF0ZSA9IHRocm90dGxlKHRoaXMucmVjYWxjdWxhdGUuYmluZCh0aGlzKSwgNjQpO1xuICAgIHRoaXMub25Nb3VzZU1vdmUgPSB0aHJvdHRsZSh0aGlzLm9uTW91c2VNb3ZlLmJpbmQodGhpcyksIDY0KTtcbiAgICB0aGlzLmhpZGVTY3JvbGxiYXJzID0gZGVib3VuY2UodGhpcy5oaWRlU2Nyb2xsYmFycy5iaW5kKHRoaXMpLCB0aGlzLm9wdGlvbnMudGltZW91dCk7XG4gICAgdGhpcy5vbldpbmRvd1Jlc2l6ZSA9IGRlYm91bmNlKHRoaXMub25XaW5kb3dSZXNpemUuYmluZCh0aGlzKSwgNjQsIHtcbiAgICAgIGxlYWRpbmc6IHRydWVcbiAgICB9KTtcbiAgICBTaW1wbGVCYXIuZ2V0UnRsSGVscGVycyA9IG1lbW9pemUoU2ltcGxlQmFyLmdldFJ0bEhlbHBlcnMpOyAvLyBnZXRDb250ZW50RWxlbWVudCBpcyBkZXByZWNhdGVkXG5cbiAgICB0aGlzLmdldENvbnRlbnRFbGVtZW50ID0gdGhpcy5nZXRTY3JvbGxFbGVtZW50O1xuICAgIHRoaXMuaW5pdCgpO1xuICB9XG4gIC8qKlxuICAgKiBTdGF0aWMgcHJvcGVydGllc1xuICAgKi9cblxuICAvKipcbiAgICogSGVscGVyIHRvIGZpeCBicm93c2VycyBpbmNvbnNpc3RlbmN5IG9uIFJUTDpcbiAgICogIC0gRmlyZWZveCBpbnZlcnRzIHRoZSBzY3JvbGxiYXIgaW5pdGlhbCBwb3NpdGlvblxuICAgKiAgLSBJRTExIGludmVydHMgYm90aCBzY3JvbGxiYXIgcG9zaXRpb24gYW5kIHNjcm9sbGluZyBvZmZzZXRcbiAgICogRGlyZWN0bHkgaW5zcGlyZWQgYnkgQEtpbmdTb3JhJ3MgT3ZlcmxheVNjcm9sbGJhcnMgaHR0cHM6Ly9naXRodWIuY29tL0tpbmdTb3JhL092ZXJsYXlTY3JvbGxiYXJzL2Jsb2IvbWFzdGVyL2pzL092ZXJsYXlTY3JvbGxiYXJzLmpzI0wxNjM0XG4gICAqL1xuXG5cbiAgX2NyZWF0ZUNsYXNzKFNpbXBsZUJhciwgW3tcbiAgICBrZXk6IFwiaW5pdFwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBpbml0KCkge1xuICAgICAgLy8gU2F2ZSBhIHJlZmVyZW5jZSB0byB0aGUgaW5zdGFuY2UsIHNvIHdlIGtub3cgdGhpcyBET00gbm9kZSBoYXMgYWxyZWFkeSBiZWVuIGluc3RhbmNpZWRcbiAgICAgIHRoaXMuZWwuU2ltcGxlQmFyID0gdGhpcztcbiAgICAgIHRoaXMuaW5pdERPTSgpOyAvLyBXZSBzdG9wIGhlcmUgb24gc2VydmVyLXNpZGVcblxuICAgICAgaWYgKGNhblVzZURPTSkge1xuICAgICAgICAvLyBSZWNhbGN1bGF0ZSBzY3JvbGxiYXJXaWR0aCBpbiBjYXNlIGl0J3MgYSB6b29tXG4gICAgICAgIHRoaXMuc2Nyb2xsYmFyV2lkdGggPSBzY3JvbGxiYXJXaWR0aCgpO1xuICAgICAgICB0aGlzLnJlY2FsY3VsYXRlKCk7XG4gICAgICAgIHRoaXMuaW5pdExpc3RlbmVycygpO1xuICAgICAgfVxuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJpbml0RE9NXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGluaXRET00oKSB7XG4gICAgICB2YXIgX3RoaXMyID0gdGhpcztcblxuICAgICAgLy8gbWFrZSBzdXJlIHRoaXMgZWxlbWVudCBkb2Vzbid0IGhhdmUgdGhlIGVsZW1lbnRzIHlldFxuICAgICAgaWYgKEFycmF5LmZyb20odGhpcy5lbC5jaGlsZHJlbikuZmlsdGVyKGZ1bmN0aW9uIChjaGlsZCkge1xuICAgICAgICByZXR1cm4gY2hpbGQuY2xhc3NMaXN0LmNvbnRhaW5zKF90aGlzMi5jbGFzc05hbWVzLndyYXBwZXIpO1xuICAgICAgfSkubGVuZ3RoKSB7XG4gICAgICAgIC8vIGFzc3VtZSB0aGF0IGVsZW1lbnQgaGFzIGhpcyBET00gYWxyZWFkeSBpbml0aWF0ZWRcbiAgICAgICAgdGhpcy53cmFwcGVyRWwgPSB0aGlzLmVsLnF1ZXJ5U2VsZWN0b3IoXCIuXCIuY29uY2F0KHRoaXMuY2xhc3NOYW1lcy53cmFwcGVyKSk7XG4gICAgICAgIHRoaXMuY29udGVudEVsID0gdGhpcy5lbC5xdWVyeVNlbGVjdG9yKFwiLlwiLmNvbmNhdCh0aGlzLmNsYXNzTmFtZXMuY29udGVudCkpO1xuICAgICAgICB0aGlzLm9mZnNldEVsID0gdGhpcy5lbC5xdWVyeVNlbGVjdG9yKFwiLlwiLmNvbmNhdCh0aGlzLmNsYXNzTmFtZXMub2Zmc2V0KSk7XG4gICAgICAgIHRoaXMubWFza0VsID0gdGhpcy5lbC5xdWVyeVNlbGVjdG9yKFwiLlwiLmNvbmNhdCh0aGlzLmNsYXNzTmFtZXMubWFzaykpO1xuICAgICAgICB0aGlzLnBsYWNlaG9sZGVyRWwgPSB0aGlzLmVsLnF1ZXJ5U2VsZWN0b3IoXCIuXCIuY29uY2F0KHRoaXMuY2xhc3NOYW1lcy5wbGFjZWhvbGRlcikpO1xuICAgICAgICB0aGlzLmhlaWdodEF1dG9PYnNlcnZlcldyYXBwZXJFbCA9IHRoaXMuZWwucXVlcnlTZWxlY3RvcihcIi5cIi5jb25jYXQodGhpcy5jbGFzc05hbWVzLmhlaWdodEF1dG9PYnNlcnZlcldyYXBwZXJFbCkpO1xuICAgICAgICB0aGlzLmhlaWdodEF1dG9PYnNlcnZlckVsID0gdGhpcy5lbC5xdWVyeVNlbGVjdG9yKFwiLlwiLmNvbmNhdCh0aGlzLmNsYXNzTmFtZXMuaGVpZ2h0QXV0b09ic2VydmVyRWwpKTtcbiAgICAgICAgdGhpcy5heGlzLngudHJhY2suZWwgPSB0aGlzLmVsLnF1ZXJ5U2VsZWN0b3IoXCIuXCIuY29uY2F0KHRoaXMuY2xhc3NOYW1lcy50cmFjaywgXCIuXCIpLmNvbmNhdCh0aGlzLmNsYXNzTmFtZXMuaG9yaXpvbnRhbCkpO1xuICAgICAgICB0aGlzLmF4aXMueS50cmFjay5lbCA9IHRoaXMuZWwucXVlcnlTZWxlY3RvcihcIi5cIi5jb25jYXQodGhpcy5jbGFzc05hbWVzLnRyYWNrLCBcIi5cIikuY29uY2F0KHRoaXMuY2xhc3NOYW1lcy52ZXJ0aWNhbCkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gUHJlcGFyZSBET01cbiAgICAgICAgdGhpcy53cmFwcGVyRWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgICAgdGhpcy5jb250ZW50RWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgICAgdGhpcy5vZmZzZXRFbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgICAgICB0aGlzLm1hc2tFbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgICAgICB0aGlzLnBsYWNlaG9sZGVyRWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgICAgdGhpcy5oZWlnaHRBdXRvT2JzZXJ2ZXJXcmFwcGVyRWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgICAgdGhpcy5oZWlnaHRBdXRvT2JzZXJ2ZXJFbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgICAgICB0aGlzLndyYXBwZXJFbC5jbGFzc0xpc3QuYWRkKHRoaXMuY2xhc3NOYW1lcy53cmFwcGVyKTtcbiAgICAgICAgdGhpcy5jb250ZW50RWwuY2xhc3NMaXN0LmFkZCh0aGlzLmNsYXNzTmFtZXMuY29udGVudCk7XG4gICAgICAgIHRoaXMub2Zmc2V0RWwuY2xhc3NMaXN0LmFkZCh0aGlzLmNsYXNzTmFtZXMub2Zmc2V0KTtcbiAgICAgICAgdGhpcy5tYXNrRWwuY2xhc3NMaXN0LmFkZCh0aGlzLmNsYXNzTmFtZXMubWFzayk7XG4gICAgICAgIHRoaXMucGxhY2Vob2xkZXJFbC5jbGFzc0xpc3QuYWRkKHRoaXMuY2xhc3NOYW1lcy5wbGFjZWhvbGRlcik7XG4gICAgICAgIHRoaXMuaGVpZ2h0QXV0b09ic2VydmVyV3JhcHBlckVsLmNsYXNzTGlzdC5hZGQodGhpcy5jbGFzc05hbWVzLmhlaWdodEF1dG9PYnNlcnZlcldyYXBwZXJFbCk7XG4gICAgICAgIHRoaXMuaGVpZ2h0QXV0b09ic2VydmVyRWwuY2xhc3NMaXN0LmFkZCh0aGlzLmNsYXNzTmFtZXMuaGVpZ2h0QXV0b09ic2VydmVyRWwpO1xuXG4gICAgICAgIHdoaWxlICh0aGlzLmVsLmZpcnN0Q2hpbGQpIHtcbiAgICAgICAgICB0aGlzLmNvbnRlbnRFbC5hcHBlbmRDaGlsZCh0aGlzLmVsLmZpcnN0Q2hpbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5vZmZzZXRFbC5hcHBlbmRDaGlsZCh0aGlzLmNvbnRlbnRFbCk7XG4gICAgICAgIHRoaXMubWFza0VsLmFwcGVuZENoaWxkKHRoaXMub2Zmc2V0RWwpO1xuICAgICAgICB0aGlzLmhlaWdodEF1dG9PYnNlcnZlcldyYXBwZXJFbC5hcHBlbmRDaGlsZCh0aGlzLmhlaWdodEF1dG9PYnNlcnZlckVsKTtcbiAgICAgICAgdGhpcy53cmFwcGVyRWwuYXBwZW5kQ2hpbGQodGhpcy5oZWlnaHRBdXRvT2JzZXJ2ZXJXcmFwcGVyRWwpO1xuICAgICAgICB0aGlzLndyYXBwZXJFbC5hcHBlbmRDaGlsZCh0aGlzLm1hc2tFbCk7XG4gICAgICAgIHRoaXMud3JhcHBlckVsLmFwcGVuZENoaWxkKHRoaXMucGxhY2Vob2xkZXJFbCk7XG4gICAgICAgIHRoaXMuZWwuYXBwZW5kQ2hpbGQodGhpcy53cmFwcGVyRWwpO1xuICAgICAgfVxuXG4gICAgICBpZiAoIXRoaXMuYXhpcy54LnRyYWNrLmVsIHx8ICF0aGlzLmF4aXMueS50cmFjay5lbCkge1xuICAgICAgICB2YXIgdHJhY2sgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgICAgdmFyIHNjcm9sbGJhciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgICAgICB0cmFjay5jbGFzc0xpc3QuYWRkKHRoaXMuY2xhc3NOYW1lcy50cmFjayk7XG4gICAgICAgIHNjcm9sbGJhci5jbGFzc0xpc3QuYWRkKHRoaXMuY2xhc3NOYW1lcy5zY3JvbGxiYXIpO1xuXG4gICAgICAgIGlmICghdGhpcy5vcHRpb25zLmF1dG9IaWRlKSB7XG4gICAgICAgICAgc2Nyb2xsYmFyLmNsYXNzTGlzdC5hZGQodGhpcy5jbGFzc05hbWVzLnZpc2libGUpO1xuICAgICAgICB9XG5cbiAgICAgICAgdHJhY2suYXBwZW5kQ2hpbGQoc2Nyb2xsYmFyKTtcbiAgICAgICAgdGhpcy5heGlzLngudHJhY2suZWwgPSB0cmFjay5jbG9uZU5vZGUodHJ1ZSk7XG4gICAgICAgIHRoaXMuYXhpcy54LnRyYWNrLmVsLmNsYXNzTGlzdC5hZGQodGhpcy5jbGFzc05hbWVzLmhvcml6b250YWwpO1xuICAgICAgICB0aGlzLmF4aXMueS50cmFjay5lbCA9IHRyYWNrLmNsb25lTm9kZSh0cnVlKTtcbiAgICAgICAgdGhpcy5heGlzLnkudHJhY2suZWwuY2xhc3NMaXN0LmFkZCh0aGlzLmNsYXNzTmFtZXMudmVydGljYWwpO1xuICAgICAgICB0aGlzLmVsLmFwcGVuZENoaWxkKHRoaXMuYXhpcy54LnRyYWNrLmVsKTtcbiAgICAgICAgdGhpcy5lbC5hcHBlbmRDaGlsZCh0aGlzLmF4aXMueS50cmFjay5lbCk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuYXhpcy54LnNjcm9sbGJhci5lbCA9IHRoaXMuYXhpcy54LnRyYWNrLmVsLnF1ZXJ5U2VsZWN0b3IoXCIuXCIuY29uY2F0KHRoaXMuY2xhc3NOYW1lcy5zY3JvbGxiYXIpKTtcbiAgICAgIHRoaXMuYXhpcy55LnNjcm9sbGJhci5lbCA9IHRoaXMuYXhpcy55LnRyYWNrLmVsLnF1ZXJ5U2VsZWN0b3IoXCIuXCIuY29uY2F0KHRoaXMuY2xhc3NOYW1lcy5zY3JvbGxiYXIpKTtcbiAgICAgIHRoaXMuZWwuc2V0QXR0cmlidXRlKCdkYXRhLXNpbXBsZWJhcicsICdpbml0Jyk7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcImluaXRMaXN0ZW5lcnNcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gaW5pdExpc3RlbmVycygpIHtcbiAgICAgIHZhciBfdGhpczMgPSB0aGlzO1xuXG4gICAgICAvLyBFdmVudCBsaXN0ZW5lcnNcbiAgICAgIGlmICh0aGlzLm9wdGlvbnMuYXV0b0hpZGUpIHtcbiAgICAgICAgdGhpcy5lbC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWVudGVyJywgdGhpcy5vbk1vdXNlRW50ZXIpO1xuICAgICAgfVxuXG4gICAgICBbJ21vdXNlZG93bicsICdjbGljaycsICdkYmxjbGljaycsICd0b3VjaHN0YXJ0JywgJ3RvdWNoZW5kJywgJ3RvdWNobW92ZSddLmZvckVhY2goZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgX3RoaXMzLmVsLmFkZEV2ZW50TGlzdGVuZXIoZSwgX3RoaXMzLm9uUG9pbnRlckV2ZW50LCB0cnVlKTtcbiAgICAgIH0pO1xuICAgICAgdGhpcy5lbC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZW1vdmUnLCB0aGlzLm9uTW91c2VNb3ZlKTtcbiAgICAgIHRoaXMuZWwuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VsZWF2ZScsIHRoaXMub25Nb3VzZUxlYXZlKTtcbiAgICAgIHRoaXMuY29udGVudEVsLmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIHRoaXMub25TY3JvbGwpOyAvLyBCcm93c2VyIHpvb20gdHJpZ2dlcnMgYSB3aW5kb3cgcmVzaXplXG5cbiAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCB0aGlzLm9uV2luZG93UmVzaXplKTsgLy8gTXV0YXRpb25PYnNlcnZlciBpcyBJRTExK1xuXG4gICAgICBpZiAodHlwZW9mIE11dGF0aW9uT2JzZXJ2ZXIgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgIC8vIGNyZWF0ZSBhbiBvYnNlcnZlciBpbnN0YW5jZVxuICAgICAgICB0aGlzLm11dGF0aW9uT2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbiAobXV0YXRpb25zKSB7XG4gICAgICAgICAgbXV0YXRpb25zLmZvckVhY2goZnVuY3Rpb24gKG11dGF0aW9uKSB7XG4gICAgICAgICAgICBpZiAobXV0YXRpb24udGFyZ2V0ID09PSBfdGhpczMuZWwgfHwgIV90aGlzMy5pc0NoaWxkTm9kZShtdXRhdGlvbi50YXJnZXQpIHx8IG11dGF0aW9uLmFkZGVkTm9kZXMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgIF90aGlzMy5yZWNhbGN1bGF0ZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICB9KTsgLy8gcGFzcyBpbiB0aGUgdGFyZ2V0IG5vZGUsIGFzIHdlbGwgYXMgdGhlIG9ic2VydmVyIG9wdGlvbnNcblxuICAgICAgICB0aGlzLm11dGF0aW9uT2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzLmVsLCB7XG4gICAgICAgICAgYXR0cmlidXRlczogdHJ1ZSxcbiAgICAgICAgICBjaGlsZExpc3Q6IHRydWUsXG4gICAgICAgICAgY2hhcmFjdGVyRGF0YTogdHJ1ZSxcbiAgICAgICAgICBzdWJ0cmVlOiB0cnVlXG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICB0aGlzLnJlc2l6ZU9ic2VydmVyID0gbmV3IFJlc2l6ZU9ic2VydmVyKHRoaXMucmVjYWxjdWxhdGUpO1xuICAgICAgdGhpcy5yZXNpemVPYnNlcnZlci5vYnNlcnZlKHRoaXMuZWwpO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJyZWNhbGN1bGF0ZVwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiByZWNhbGN1bGF0ZSgpIHtcbiAgICAgIHZhciBpc0hlaWdodEF1dG8gPSB0aGlzLmhlaWdodEF1dG9PYnNlcnZlckVsLm9mZnNldEhlaWdodCA8PSAxO1xuICAgICAgdGhpcy5lbFN0eWxlcyA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRoaXMuZWwpO1xuICAgICAgdGhpcy5pc1J0bCA9IHRoaXMuZWxTdHlsZXMuZGlyZWN0aW9uID09PSAncnRsJztcbiAgICAgIHRoaXMuY29udGVudEVsLnN0eWxlLnBhZGRpbmcgPSBcIlwiLmNvbmNhdCh0aGlzLmVsU3R5bGVzLnBhZGRpbmdUb3AsIFwiIFwiKS5jb25jYXQodGhpcy5lbFN0eWxlcy5wYWRkaW5nUmlnaHQsIFwiIFwiKS5jb25jYXQodGhpcy5lbFN0eWxlcy5wYWRkaW5nQm90dG9tLCBcIiBcIikuY29uY2F0KHRoaXMuZWxTdHlsZXMucGFkZGluZ0xlZnQpO1xuICAgICAgdGhpcy5jb250ZW50RWwuc3R5bGUuaGVpZ2h0ID0gaXNIZWlnaHRBdXRvID8gJ2F1dG8nIDogJzEwMCUnO1xuICAgICAgdGhpcy5wbGFjZWhvbGRlckVsLnN0eWxlLndpZHRoID0gXCJcIi5jb25jYXQodGhpcy5jb250ZW50RWwuc2Nyb2xsV2lkdGgsIFwicHhcIik7XG4gICAgICB0aGlzLnBsYWNlaG9sZGVyRWwuc3R5bGUuaGVpZ2h0ID0gXCJcIi5jb25jYXQodGhpcy5jb250ZW50RWwuc2Nyb2xsSGVpZ2h0LCBcInB4XCIpO1xuICAgICAgdGhpcy53cmFwcGVyRWwuc3R5bGUubWFyZ2luID0gXCItXCIuY29uY2F0KHRoaXMuZWxTdHlsZXMucGFkZGluZ1RvcCwgXCIgLVwiKS5jb25jYXQodGhpcy5lbFN0eWxlcy5wYWRkaW5nUmlnaHQsIFwiIC1cIikuY29uY2F0KHRoaXMuZWxTdHlsZXMucGFkZGluZ0JvdHRvbSwgXCIgLVwiKS5jb25jYXQodGhpcy5lbFN0eWxlcy5wYWRkaW5nTGVmdCk7XG4gICAgICB0aGlzLmF4aXMueC50cmFjay5yZWN0ID0gdGhpcy5heGlzLngudHJhY2suZWwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICB0aGlzLmF4aXMueS50cmFjay5yZWN0ID0gdGhpcy5heGlzLnkudHJhY2suZWwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7IC8vIFNldCBpc092ZXJmbG93aW5nIHRvIGZhbHNlIGlmIHNjcm9sbGJhciBpcyBub3QgbmVjZXNzYXJ5IChjb250ZW50IGlzIHNob3J0ZXIgdGhhbiBvZmZzZXQpXG5cbiAgICAgIHRoaXMuYXhpcy54LmlzT3ZlcmZsb3dpbmcgPSAodGhpcy5zY3JvbGxiYXJXaWR0aCA/IHRoaXMuY29udGVudEVsLnNjcm9sbFdpZHRoIDogdGhpcy5jb250ZW50RWwuc2Nyb2xsV2lkdGggLSB0aGlzLm1pblNjcm9sbGJhcldpZHRoKSA+IE1hdGguY2VpbCh0aGlzLmF4aXMueC50cmFjay5yZWN0LndpZHRoKTtcbiAgICAgIHRoaXMuYXhpcy55LmlzT3ZlcmZsb3dpbmcgPSAodGhpcy5zY3JvbGxiYXJXaWR0aCA/IHRoaXMuY29udGVudEVsLnNjcm9sbEhlaWdodCA6IHRoaXMuY29udGVudEVsLnNjcm9sbEhlaWdodCAtIHRoaXMubWluU2Nyb2xsYmFyV2lkdGgpID4gTWF0aC5jZWlsKHRoaXMuYXhpcy55LnRyYWNrLnJlY3QuaGVpZ2h0KTsgLy8gU2V0IGlzT3ZlcmZsb3dpbmcgdG8gZmFsc2UgaWYgdXNlciBleHBsaWNpdGVseSBzZXQgaGlkZGVuIG92ZXJmbG93XG5cbiAgICAgIHRoaXMuYXhpcy54LmlzT3ZlcmZsb3dpbmcgPSB0aGlzLmVsU3R5bGVzLm92ZXJmbG93WCA9PT0gJ2hpZGRlbicgPyBmYWxzZSA6IHRoaXMuYXhpcy54LmlzT3ZlcmZsb3dpbmc7XG4gICAgICB0aGlzLmF4aXMueS5pc092ZXJmbG93aW5nID0gdGhpcy5lbFN0eWxlcy5vdmVyZmxvd1kgPT09ICdoaWRkZW4nID8gZmFsc2UgOiB0aGlzLmF4aXMueS5pc092ZXJmbG93aW5nO1xuICAgICAgdGhpcy5heGlzLnguZm9yY2VWaXNpYmxlID0gdGhpcy5vcHRpb25zLmZvcmNlVmlzaWJsZSA9PT0gXCJ4XCIgfHwgdGhpcy5vcHRpb25zLmZvcmNlVmlzaWJsZSA9PT0gdHJ1ZTtcbiAgICAgIHRoaXMuYXhpcy55LmZvcmNlVmlzaWJsZSA9IHRoaXMub3B0aW9ucy5mb3JjZVZpc2libGUgPT09IFwieVwiIHx8IHRoaXMub3B0aW9ucy5mb3JjZVZpc2libGUgPT09IHRydWU7XG4gICAgICB0aGlzLmF4aXMueC5zY3JvbGxiYXIuc2l6ZSA9IHRoaXMuZ2V0U2Nyb2xsYmFyU2l6ZSgneCcpO1xuICAgICAgdGhpcy5heGlzLnkuc2Nyb2xsYmFyLnNpemUgPSB0aGlzLmdldFNjcm9sbGJhclNpemUoJ3knKTtcbiAgICAgIHRoaXMuYXhpcy54LnNjcm9sbGJhci5lbC5zdHlsZS53aWR0aCA9IFwiXCIuY29uY2F0KHRoaXMuYXhpcy54LnNjcm9sbGJhci5zaXplLCBcInB4XCIpO1xuICAgICAgdGhpcy5heGlzLnkuc2Nyb2xsYmFyLmVsLnN0eWxlLmhlaWdodCA9IFwiXCIuY29uY2F0KHRoaXMuYXhpcy55LnNjcm9sbGJhci5zaXplLCBcInB4XCIpO1xuICAgICAgdGhpcy5wb3NpdGlvblNjcm9sbGJhcigneCcpO1xuICAgICAgdGhpcy5wb3NpdGlvblNjcm9sbGJhcigneScpO1xuICAgICAgdGhpcy50b2dnbGVUcmFja1Zpc2liaWxpdHkoJ3gnKTtcbiAgICAgIHRoaXMudG9nZ2xlVHJhY2tWaXNpYmlsaXR5KCd5Jyk7XG4gICAgICB0aGlzLmhpZGVOYXRpdmVTY3JvbGxiYXIoKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQ2FsY3VsYXRlIHNjcm9sbGJhciBzaXplXG4gICAgICovXG5cbiAgfSwge1xuICAgIGtleTogXCJnZXRTY3JvbGxiYXJTaXplXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGdldFNjcm9sbGJhclNpemUoKSB7XG4gICAgICB2YXIgYXhpcyA9IGFyZ3VtZW50cy5sZW5ndGggPiAwICYmIGFyZ3VtZW50c1swXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzBdIDogJ3knO1xuICAgICAgdmFyIGNvbnRlbnRTaXplID0gdGhpcy5zY3JvbGxiYXJXaWR0aCA/IHRoaXMuY29udGVudEVsW3RoaXMuYXhpc1theGlzXS5zY3JvbGxTaXplQXR0cl0gOiB0aGlzLmNvbnRlbnRFbFt0aGlzLmF4aXNbYXhpc10uc2Nyb2xsU2l6ZUF0dHJdIC0gdGhpcy5taW5TY3JvbGxiYXJXaWR0aDtcbiAgICAgIHZhciB0cmFja1NpemUgPSB0aGlzLmF4aXNbYXhpc10udHJhY2sucmVjdFt0aGlzLmF4aXNbYXhpc10uc2l6ZUF0dHJdO1xuICAgICAgdmFyIHNjcm9sbGJhclNpemU7XG5cbiAgICAgIGlmICghdGhpcy5heGlzW2F4aXNdLmlzT3ZlcmZsb3dpbmcpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICB2YXIgc2Nyb2xsYmFyUmF0aW8gPSB0cmFja1NpemUgLyBjb250ZW50U2l6ZTsgLy8gQ2FsY3VsYXRlIG5ldyBoZWlnaHQvcG9zaXRpb24gb2YgZHJhZyBoYW5kbGUuXG5cbiAgICAgIHNjcm9sbGJhclNpemUgPSBNYXRoLm1heCh+fihzY3JvbGxiYXJSYXRpbyAqIHRyYWNrU2l6ZSksIHRoaXMub3B0aW9ucy5zY3JvbGxiYXJNaW5TaXplKTtcblxuICAgICAgaWYgKHRoaXMub3B0aW9ucy5zY3JvbGxiYXJNYXhTaXplKSB7XG4gICAgICAgIHNjcm9sbGJhclNpemUgPSBNYXRoLm1pbihzY3JvbGxiYXJTaXplLCB0aGlzLm9wdGlvbnMuc2Nyb2xsYmFyTWF4U2l6ZSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBzY3JvbGxiYXJTaXplO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJwb3NpdGlvblNjcm9sbGJhclwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBwb3NpdGlvblNjcm9sbGJhcigpIHtcbiAgICAgIHZhciBheGlzID0gYXJndW1lbnRzLmxlbmd0aCA+IDAgJiYgYXJndW1lbnRzWzBdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMF0gOiAneSc7XG4gICAgICB2YXIgY29udGVudFNpemUgPSB0aGlzLmNvbnRlbnRFbFt0aGlzLmF4aXNbYXhpc10uc2Nyb2xsU2l6ZUF0dHJdO1xuICAgICAgdmFyIHRyYWNrU2l6ZSA9IHRoaXMuYXhpc1theGlzXS50cmFjay5yZWN0W3RoaXMuYXhpc1theGlzXS5zaXplQXR0cl07XG4gICAgICB2YXIgaG9zdFNpemUgPSBwYXJzZUludCh0aGlzLmVsU3R5bGVzW3RoaXMuYXhpc1theGlzXS5zaXplQXR0cl0sIDEwKTtcbiAgICAgIHZhciBzY3JvbGxiYXIgPSB0aGlzLmF4aXNbYXhpc10uc2Nyb2xsYmFyO1xuICAgICAgdmFyIHNjcm9sbE9mZnNldCA9IHRoaXMuY29udGVudEVsW3RoaXMuYXhpc1theGlzXS5zY3JvbGxPZmZzZXRBdHRyXTtcbiAgICAgIHNjcm9sbE9mZnNldCA9IGF4aXMgPT09ICd4JyAmJiB0aGlzLmlzUnRsICYmIFNpbXBsZUJhci5nZXRSdGxIZWxwZXJzKCkuaXNSdGxTY3JvbGxpbmdJbnZlcnRlZCA/IC1zY3JvbGxPZmZzZXQgOiBzY3JvbGxPZmZzZXQ7XG4gICAgICB2YXIgc2Nyb2xsUG91cmNlbnQgPSBzY3JvbGxPZmZzZXQgLyAoY29udGVudFNpemUgLSBob3N0U2l6ZSk7XG4gICAgICB2YXIgaGFuZGxlT2Zmc2V0ID0gfn4oKHRyYWNrU2l6ZSAtIHNjcm9sbGJhci5zaXplKSAqIHNjcm9sbFBvdXJjZW50KTtcbiAgICAgIGhhbmRsZU9mZnNldCA9IGF4aXMgPT09ICd4JyAmJiB0aGlzLmlzUnRsICYmIFNpbXBsZUJhci5nZXRSdGxIZWxwZXJzKCkuaXNSdGxTY3JvbGxiYXJJbnZlcnRlZCA/IGhhbmRsZU9mZnNldCArICh0cmFja1NpemUgLSBzY3JvbGxiYXIuc2l6ZSkgOiBoYW5kbGVPZmZzZXQ7XG4gICAgICBzY3JvbGxiYXIuZWwuc3R5bGUudHJhbnNmb3JtID0gYXhpcyA9PT0gJ3gnID8gXCJ0cmFuc2xhdGUzZChcIi5jb25jYXQoaGFuZGxlT2Zmc2V0LCBcInB4LCAwLCAwKVwiKSA6IFwidHJhbnNsYXRlM2QoMCwgXCIuY29uY2F0KGhhbmRsZU9mZnNldCwgXCJweCwgMClcIik7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcInRvZ2dsZVRyYWNrVmlzaWJpbGl0eVwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiB0b2dnbGVUcmFja1Zpc2liaWxpdHkoKSB7XG4gICAgICB2YXIgYXhpcyA9IGFyZ3VtZW50cy5sZW5ndGggPiAwICYmIGFyZ3VtZW50c1swXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzBdIDogJ3knO1xuICAgICAgdmFyIHRyYWNrID0gdGhpcy5heGlzW2F4aXNdLnRyYWNrLmVsO1xuICAgICAgdmFyIHNjcm9sbGJhciA9IHRoaXMuYXhpc1theGlzXS5zY3JvbGxiYXIuZWw7XG5cbiAgICAgIGlmICh0aGlzLmF4aXNbYXhpc10uaXNPdmVyZmxvd2luZyB8fCB0aGlzLmF4aXNbYXhpc10uZm9yY2VWaXNpYmxlKSB7XG4gICAgICAgIHRyYWNrLnN0eWxlLnZpc2liaWxpdHkgPSAndmlzaWJsZSc7XG4gICAgICAgIHRoaXMuY29udGVudEVsLnN0eWxlW3RoaXMuYXhpc1theGlzXS5vdmVyZmxvd0F0dHJdID0gJ3Njcm9sbCc7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0cmFjay5zdHlsZS52aXNpYmlsaXR5ID0gJ2hpZGRlbic7XG4gICAgICAgIHRoaXMuY29udGVudEVsLnN0eWxlW3RoaXMuYXhpc1theGlzXS5vdmVyZmxvd0F0dHJdID0gJ2hpZGRlbic7XG4gICAgICB9IC8vIEV2ZW4gaWYgZm9yY2VWaXNpYmxlIGlzIGVuYWJsZWQsIHNjcm9sbGJhciBpdHNlbGYgc2hvdWxkIGJlIGhpZGRlblxuXG5cbiAgICAgIGlmICh0aGlzLmF4aXNbYXhpc10uaXNPdmVyZmxvd2luZykge1xuICAgICAgICBzY3JvbGxiYXIuc3R5bGUudmlzaWJpbGl0eSA9ICd2aXNpYmxlJztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHNjcm9sbGJhci5zdHlsZS52aXNpYmlsaXR5ID0gJ2hpZGRlbic7XG4gICAgICB9XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcImhpZGVOYXRpdmVTY3JvbGxiYXJcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gaGlkZU5hdGl2ZVNjcm9sbGJhcigpIHtcbiAgICAgIHRoaXMub2Zmc2V0RWwuc3R5bGVbdGhpcy5pc1J0bCA/ICdsZWZ0JyA6ICdyaWdodCddID0gdGhpcy5heGlzLnkuaXNPdmVyZmxvd2luZyB8fCB0aGlzLmF4aXMueS5mb3JjZVZpc2libGUgPyBcIi1cIi5jb25jYXQodGhpcy5zY3JvbGxiYXJXaWR0aCB8fCB0aGlzLm1pblNjcm9sbGJhcldpZHRoLCBcInB4XCIpIDogMDtcbiAgICAgIHRoaXMub2Zmc2V0RWwuc3R5bGUuYm90dG9tID0gdGhpcy5heGlzLnguaXNPdmVyZmxvd2luZyB8fCB0aGlzLmF4aXMueC5mb3JjZVZpc2libGUgPyBcIi1cIi5jb25jYXQodGhpcy5zY3JvbGxiYXJXaWR0aCB8fCB0aGlzLm1pblNjcm9sbGJhcldpZHRoLCBcInB4XCIpIDogMDsgLy8gSWYgZmxvYXRpbmcgc2Nyb2xsYmFyXG5cbiAgICAgIGlmICghdGhpcy5zY3JvbGxiYXJXaWR0aCkge1xuICAgICAgICB2YXIgcGFkZGluZ0RpcmVjdGlvbiA9IFt0aGlzLmlzUnRsID8gJ3BhZGRpbmdMZWZ0JyA6ICdwYWRkaW5nUmlnaHQnXTtcbiAgICAgICAgdGhpcy5jb250ZW50RWwuc3R5bGVbcGFkZGluZ0RpcmVjdGlvbl0gPSB0aGlzLmF4aXMueS5pc092ZXJmbG93aW5nIHx8IHRoaXMuYXhpcy55LmZvcmNlVmlzaWJsZSA/IFwiY2FsYyhcIi5jb25jYXQodGhpcy5lbFN0eWxlc1twYWRkaW5nRGlyZWN0aW9uXSwgXCIgKyBcIikuY29uY2F0KHRoaXMubWluU2Nyb2xsYmFyV2lkdGgsIFwicHgpXCIpIDogdGhpcy5lbFN0eWxlc1twYWRkaW5nRGlyZWN0aW9uXTtcbiAgICAgICAgdGhpcy5jb250ZW50RWwuc3R5bGUucGFkZGluZ0JvdHRvbSA9IHRoaXMuYXhpcy54LmlzT3ZlcmZsb3dpbmcgfHwgdGhpcy5heGlzLnguZm9yY2VWaXNpYmxlID8gXCJjYWxjKFwiLmNvbmNhdCh0aGlzLmVsU3R5bGVzLnBhZGRpbmdCb3R0b20sIFwiICsgXCIpLmNvbmNhdCh0aGlzLm1pblNjcm9sbGJhcldpZHRoLCBcInB4KVwiKSA6IHRoaXMuZWxTdHlsZXMucGFkZGluZ0JvdHRvbTtcbiAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogT24gc2Nyb2xsIGV2ZW50IGhhbmRsaW5nXG4gICAgICovXG5cbiAgfSwge1xuICAgIGtleTogXCJvbk1vdXNlTW92ZUZvckF4aXNcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gb25Nb3VzZU1vdmVGb3JBeGlzKCkge1xuICAgICAgdmFyIGF4aXMgPSBhcmd1bWVudHMubGVuZ3RoID4gMCAmJiBhcmd1bWVudHNbMF0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1swXSA6ICd5JztcbiAgICAgIHRoaXMuYXhpc1theGlzXS50cmFjay5yZWN0ID0gdGhpcy5heGlzW2F4aXNdLnRyYWNrLmVsLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgdGhpcy5heGlzW2F4aXNdLnNjcm9sbGJhci5yZWN0ID0gdGhpcy5heGlzW2F4aXNdLnNjcm9sbGJhci5lbC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgIHZhciBpc1dpdGhpblNjcm9sbGJhckJvdW5kc1ggPSB0aGlzLmlzV2l0aGluQm91bmRzKHRoaXMuYXhpc1theGlzXS5zY3JvbGxiYXIucmVjdCk7XG5cbiAgICAgIGlmIChpc1dpdGhpblNjcm9sbGJhckJvdW5kc1gpIHtcbiAgICAgICAgdGhpcy5heGlzW2F4aXNdLnNjcm9sbGJhci5lbC5jbGFzc0xpc3QuYWRkKHRoaXMuY2xhc3NOYW1lcy5ob3Zlcik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmF4aXNbYXhpc10uc2Nyb2xsYmFyLmVsLmNsYXNzTGlzdC5yZW1vdmUodGhpcy5jbGFzc05hbWVzLmhvdmVyKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMuaXNXaXRoaW5Cb3VuZHModGhpcy5heGlzW2F4aXNdLnRyYWNrLnJlY3QpKSB7XG4gICAgICAgIHRoaXMuc2hvd1Njcm9sbGJhcihheGlzKTtcbiAgICAgICAgdGhpcy5heGlzW2F4aXNdLnRyYWNrLmVsLmNsYXNzTGlzdC5hZGQodGhpcy5jbGFzc05hbWVzLmhvdmVyKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuYXhpc1theGlzXS50cmFjay5lbC5jbGFzc0xpc3QucmVtb3ZlKHRoaXMuY2xhc3NOYW1lcy5ob3Zlcik7XG4gICAgICB9XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcIm9uTW91c2VMZWF2ZUZvckF4aXNcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gb25Nb3VzZUxlYXZlRm9yQXhpcygpIHtcbiAgICAgIHZhciBheGlzID0gYXJndW1lbnRzLmxlbmd0aCA+IDAgJiYgYXJndW1lbnRzWzBdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMF0gOiAneSc7XG4gICAgICB0aGlzLmF4aXNbYXhpc10udHJhY2suZWwuY2xhc3NMaXN0LnJlbW92ZSh0aGlzLmNsYXNzTmFtZXMuaG92ZXIpO1xuICAgICAgdGhpcy5heGlzW2F4aXNdLnNjcm9sbGJhci5lbC5jbGFzc0xpc3QucmVtb3ZlKHRoaXMuY2xhc3NOYW1lcy5ob3Zlcik7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcInNob3dTY3JvbGxiYXJcIixcblxuICAgIC8qKlxuICAgICAqIFNob3cgc2Nyb2xsYmFyXG4gICAgICovXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHNob3dTY3JvbGxiYXIoKSB7XG4gICAgICB2YXIgYXhpcyA9IGFyZ3VtZW50cy5sZW5ndGggPiAwICYmIGFyZ3VtZW50c1swXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzBdIDogJ3knO1xuICAgICAgdmFyIHNjcm9sbGJhciA9IHRoaXMuYXhpc1theGlzXS5zY3JvbGxiYXIuZWw7XG5cbiAgICAgIGlmICghdGhpcy5heGlzW2F4aXNdLmlzVmlzaWJsZSkge1xuICAgICAgICBzY3JvbGxiYXIuY2xhc3NMaXN0LmFkZCh0aGlzLmNsYXNzTmFtZXMudmlzaWJsZSk7XG4gICAgICAgIHRoaXMuYXhpc1theGlzXS5pc1Zpc2libGUgPSB0cnVlO1xuICAgICAgfVxuXG4gICAgICBpZiAodGhpcy5vcHRpb25zLmF1dG9IaWRlKSB7XG4gICAgICAgIHRoaXMuaGlkZVNjcm9sbGJhcnMoKTtcbiAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogSGlkZSBTY3JvbGxiYXJcbiAgICAgKi9cblxuICB9LCB7XG4gICAga2V5OiBcIm9uRHJhZ1N0YXJ0XCIsXG5cbiAgICAvKipcbiAgICAgKiBvbiBzY3JvbGxiYXIgaGFuZGxlIGRyYWcgbW92ZW1lbnQgc3RhcnRzXG4gICAgICovXG4gICAgdmFsdWU6IGZ1bmN0aW9uIG9uRHJhZ1N0YXJ0KGUpIHtcbiAgICAgIHZhciBheGlzID0gYXJndW1lbnRzLmxlbmd0aCA+IDEgJiYgYXJndW1lbnRzWzFdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMV0gOiAneSc7XG4gICAgICB2YXIgc2Nyb2xsYmFyID0gdGhpcy5heGlzW2F4aXNdLnNjcm9sbGJhci5lbDsgLy8gTWVhc3VyZSBob3cgZmFyIHRoZSB1c2VyJ3MgbW91c2UgaXMgZnJvbSB0aGUgdG9wIG9mIHRoZSBzY3JvbGxiYXIgZHJhZyBoYW5kbGUuXG5cbiAgICAgIHZhciBldmVudE9mZnNldCA9IGF4aXMgPT09ICd5JyA/IGUucGFnZVkgOiBlLnBhZ2VYO1xuICAgICAgdGhpcy5heGlzW2F4aXNdLmRyYWdPZmZzZXQgPSBldmVudE9mZnNldCAtIHNjcm9sbGJhci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKVt0aGlzLmF4aXNbYXhpc10ub2Zmc2V0QXR0cl07XG4gICAgICB0aGlzLmRyYWdnZWRBeGlzID0gYXhpcztcbiAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsIHRoaXMuZHJhZyk7XG4gICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZXVwJywgdGhpcy5vbkVuZERyYWcpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBEcmFnIHNjcm9sbGJhciBoYW5kbGVcbiAgICAgKi9cblxuICB9LCB7XG4gICAga2V5OiBcImdldFNjcm9sbEVsZW1lbnRcIixcblxuICAgIC8qKlxuICAgICAqIEdldHRlciBmb3Igb3JpZ2luYWwgc2Nyb2xsaW5nIGVsZW1lbnRcbiAgICAgKi9cbiAgICB2YWx1ZTogZnVuY3Rpb24gZ2V0U2Nyb2xsRWxlbWVudCgpIHtcbiAgICAgIHJldHVybiB0aGlzLmNvbnRlbnRFbDtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwicmVtb3ZlTGlzdGVuZXJzXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHJlbW92ZUxpc3RlbmVycygpIHtcbiAgICAgIC8vIEV2ZW50IGxpc3RlbmVyc1xuICAgICAgaWYgKHRoaXMub3B0aW9ucy5hdXRvSGlkZSkge1xuICAgICAgICB0aGlzLmVsLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlZW50ZXInLCB0aGlzLm9uTW91c2VFbnRlcik7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuY29udGVudEVsLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIHRoaXMub25TY3JvbGwpO1xuICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIHRoaXMub25XaW5kb3dSZXNpemUpO1xuICAgICAgdGhpcy5tdXRhdGlvbk9ic2VydmVyICYmIHRoaXMubXV0YXRpb25PYnNlcnZlci5kaXNjb25uZWN0KCk7XG4gICAgICB0aGlzLnJlc2l6ZU9ic2VydmVyLmRpc2Nvbm5lY3QoKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogVW5Nb3VudCBtdXRhdGlvbiBvYnNlcnZlciBhbmQgZGVsZXRlIFNpbXBsZUJhciBpbnN0YW5jZSBmcm9tIERPTSBlbGVtZW50XG4gICAgICovXG5cbiAgfSwge1xuICAgIGtleTogXCJ1bk1vdW50XCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHVuTW91bnQoKSB7XG4gICAgICB0aGlzLnJlbW92ZUxpc3RlbmVycygpO1xuICAgICAgdGhpcy5lbC5TaW1wbGVCYXIgPSBudWxsO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBSZWN1cnNpdmVseSB3YWxrcyB1cCB0aGUgcGFyZW50IG5vZGVzIGxvb2tpbmcgZm9yIHRoaXMuZWxcbiAgICAgKi9cblxuICB9LCB7XG4gICAga2V5OiBcImlzQ2hpbGROb2RlXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGlzQ2hpbGROb2RlKGVsKSB7XG4gICAgICBpZiAoZWwgPT09IG51bGwpIHJldHVybiBmYWxzZTtcbiAgICAgIGlmIChlbCA9PT0gdGhpcy5lbCkgcmV0dXJuIHRydWU7XG4gICAgICByZXR1cm4gdGhpcy5pc0NoaWxkTm9kZShlbC5wYXJlbnROb2RlKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQ2hlY2sgaWYgbW91c2UgaXMgd2l0aGluIGJvdW5kc1xuICAgICAqL1xuXG4gIH0sIHtcbiAgICBrZXk6IFwiaXNXaXRoaW5Cb3VuZHNcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gaXNXaXRoaW5Cb3VuZHMoYmJveCkge1xuICAgICAgcmV0dXJuIHRoaXMubW91c2VYID49IGJib3gubGVmdCAmJiB0aGlzLm1vdXNlWCA8PSBiYm94LmxlZnQgKyBiYm94LndpZHRoICYmIHRoaXMubW91c2VZID49IGJib3gudG9wICYmIHRoaXMubW91c2VZIDw9IGJib3gudG9wICsgYmJveC5oZWlnaHQ7XG4gICAgfVxuICB9XSwgW3tcbiAgICBrZXk6IFwiZ2V0UnRsSGVscGVyc1wiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBnZXRSdGxIZWxwZXJzKCkge1xuICAgICAgdmFyIGR1bW15RGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgICBkdW1teURpdi5pbm5lckhUTUwgPSAnPGRpdiBjbGFzcz1cImhzLWR1bW15LXNjcm9sbGJhci1zaXplXCI+PGRpdiBzdHlsZT1cImhlaWdodDogMjAwJTsgd2lkdGg6IDIwMCU7IG1hcmdpbjogMTBweCAwO1wiPjwvZGl2PjwvZGl2Pic7XG4gICAgICB2YXIgc2Nyb2xsYmFyRHVtbXlFbCA9IGR1bW15RGl2LmZpcnN0RWxlbWVudENoaWxkO1xuICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChzY3JvbGxiYXJEdW1teUVsKTtcbiAgICAgIHZhciBkdW1teUNvbnRhaW5lckNoaWxkID0gc2Nyb2xsYmFyRHVtbXlFbC5maXJzdEVsZW1lbnRDaGlsZDtcbiAgICAgIHNjcm9sbGJhckR1bW15RWwuc2Nyb2xsTGVmdCA9IDA7XG4gICAgICB2YXIgZHVtbXlDb250YWluZXJPZmZzZXQgPSBTaW1wbGVCYXIuZ2V0T2Zmc2V0KHNjcm9sbGJhckR1bW15RWwpO1xuICAgICAgdmFyIGR1bW15Q29udGFpbmVyQ2hpbGRPZmZzZXQgPSBTaW1wbGVCYXIuZ2V0T2Zmc2V0KGR1bW15Q29udGFpbmVyQ2hpbGQpO1xuICAgICAgc2Nyb2xsYmFyRHVtbXlFbC5zY3JvbGxMZWZ0ID0gOTk5O1xuICAgICAgdmFyIGR1bW15Q29udGFpbmVyU2Nyb2xsT2Zmc2V0QWZ0ZXJTY3JvbGwgPSBTaW1wbGVCYXIuZ2V0T2Zmc2V0KGR1bW15Q29udGFpbmVyQ2hpbGQpO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLy8gZGV0ZXJtaW5lcyBpZiB0aGUgc2Nyb2xsaW5nIGlzIHJlc3BvbmRpbmcgd2l0aCBuZWdhdGl2ZSB2YWx1ZXNcbiAgICAgICAgaXNSdGxTY3JvbGxpbmdJbnZlcnRlZDogZHVtbXlDb250YWluZXJPZmZzZXQubGVmdCAhPT0gZHVtbXlDb250YWluZXJDaGlsZE9mZnNldC5sZWZ0ICYmIGR1bW15Q29udGFpbmVyQ2hpbGRPZmZzZXQubGVmdCAtIGR1bW15Q29udGFpbmVyU2Nyb2xsT2Zmc2V0QWZ0ZXJTY3JvbGwubGVmdCAhPT0gMCxcbiAgICAgICAgLy8gZGV0ZXJtaW5lcyBpZiB0aGUgb3JpZ2luIHNjcm9sbGJhciBwb3NpdGlvbiBpcyBpbnZlcnRlZCBvciBub3QgKHBvc2l0aW9uZWQgb24gbGVmdCBvciByaWdodClcbiAgICAgICAgaXNSdGxTY3JvbGxiYXJJbnZlcnRlZDogZHVtbXlDb250YWluZXJPZmZzZXQubGVmdCAhPT0gZHVtbXlDb250YWluZXJDaGlsZE9mZnNldC5sZWZ0XG4gICAgICB9O1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJpbml0SHRtbEFwaVwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBpbml0SHRtbEFwaSgpIHtcbiAgICAgIHRoaXMuaW5pdERPTUxvYWRlZEVsZW1lbnRzID0gdGhpcy5pbml0RE9NTG9hZGVkRWxlbWVudHMuYmluZCh0aGlzKTsgLy8gTXV0YXRpb25PYnNlcnZlciBpcyBJRTExK1xuXG4gICAgICBpZiAodHlwZW9mIE11dGF0aW9uT2JzZXJ2ZXIgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgIC8vIE11dGF0aW9uIG9ic2VydmVyIHRvIG9ic2VydmUgZHluYW1pY2FsbHkgYWRkZWQgZWxlbWVudHNcbiAgICAgICAgdGhpcy5nbG9iYWxPYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uIChtdXRhdGlvbnMpIHtcbiAgICAgICAgICBtdXRhdGlvbnMuZm9yRWFjaChmdW5jdGlvbiAobXV0YXRpb24pIHtcbiAgICAgICAgICAgIEFycmF5LmZyb20obXV0YXRpb24uYWRkZWROb2RlcykuZm9yRWFjaChmdW5jdGlvbiAoYWRkZWROb2RlKSB7XG4gICAgICAgICAgICAgIGlmIChhZGRlZE5vZGUubm9kZVR5cGUgPT09IDEpIHtcbiAgICAgICAgICAgICAgICBpZiAoYWRkZWROb2RlLmhhc0F0dHJpYnV0ZSgnZGF0YS1zaW1wbGViYXInKSkge1xuICAgICAgICAgICAgICAgICAgIWFkZGVkTm9kZS5TaW1wbGVCYXIgJiYgbmV3IFNpbXBsZUJhcihhZGRlZE5vZGUsIFNpbXBsZUJhci5nZXRFbE9wdGlvbnMoYWRkZWROb2RlKSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgIEFycmF5LmZyb20oYWRkZWROb2RlLnF1ZXJ5U2VsZWN0b3JBbGwoJ1tkYXRhLXNpbXBsZWJhcl0nKSkuZm9yRWFjaChmdW5jdGlvbiAoZWwpIHtcbiAgICAgICAgICAgICAgICAgICAgIWVsLlNpbXBsZUJhciAmJiBuZXcgU2ltcGxlQmFyKGVsLCBTaW1wbGVCYXIuZ2V0RWxPcHRpb25zKGVsKSk7XG4gICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgQXJyYXkuZnJvbShtdXRhdGlvbi5yZW1vdmVkTm9kZXMpLmZvckVhY2goZnVuY3Rpb24gKHJlbW92ZWROb2RlKSB7XG4gICAgICAgICAgICAgIGlmIChyZW1vdmVkTm9kZS5ub2RlVHlwZSA9PT0gMSkge1xuICAgICAgICAgICAgICAgIGlmIChyZW1vdmVkTm9kZS5oYXNBdHRyaWJ1dGUoJ2RhdGEtc2ltcGxlYmFyJykpIHtcbiAgICAgICAgICAgICAgICAgIHJlbW92ZWROb2RlLlNpbXBsZUJhciAmJiByZW1vdmVkTm9kZS5TaW1wbGVCYXIudW5Nb3VudCgpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICBBcnJheS5mcm9tKHJlbW92ZWROb2RlLnF1ZXJ5U2VsZWN0b3JBbGwoJ1tkYXRhLXNpbXBsZWJhcl0nKSkuZm9yRWFjaChmdW5jdGlvbiAoZWwpIHtcbiAgICAgICAgICAgICAgICAgICAgZWwuU2ltcGxlQmFyICYmIGVsLlNpbXBsZUJhci51bk1vdW50KCk7XG4gICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5nbG9iYWxPYnNlcnZlci5vYnNlcnZlKGRvY3VtZW50LCB7XG4gICAgICAgICAgY2hpbGRMaXN0OiB0cnVlLFxuICAgICAgICAgIHN1YnRyZWU6IHRydWVcbiAgICAgICAgfSk7XG4gICAgICB9IC8vIFRha2VuIGZyb20galF1ZXJ5IGByZWFkeWAgZnVuY3Rpb25cbiAgICAgIC8vIEluc3RhbnRpYXRlIGVsZW1lbnRzIGFscmVhZHkgcHJlc2VudCBvbiB0aGUgcGFnZVxuXG5cbiAgICAgIGlmIChkb2N1bWVudC5yZWFkeVN0YXRlID09PSAnY29tcGxldGUnIHx8IGRvY3VtZW50LnJlYWR5U3RhdGUgIT09ICdsb2FkaW5nJyAmJiAhZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmRvU2Nyb2xsKSB7XG4gICAgICAgIC8vIEhhbmRsZSBpdCBhc3luY2hyb25vdXNseSB0byBhbGxvdyBzY3JpcHRzIHRoZSBvcHBvcnR1bml0eSB0byBkZWxheSBpbml0XG4gICAgICAgIHdpbmRvdy5zZXRUaW1lb3V0KHRoaXMuaW5pdERPTUxvYWRlZEVsZW1lbnRzKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCB0aGlzLmluaXRET01Mb2FkZWRFbGVtZW50cyk7XG4gICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgdGhpcy5pbml0RE9NTG9hZGVkRWxlbWVudHMpO1xuICAgICAgfVxuICAgIH0gLy8gSGVscGVyIGZ1bmN0aW9uIHRvIHJldHJpZXZlIG9wdGlvbnMgZnJvbSBlbGVtZW50IGF0dHJpYnV0ZXNcblxuICB9LCB7XG4gICAga2V5OiBcImdldEVsT3B0aW9uc1wiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBnZXRFbE9wdGlvbnMoZWwpIHtcbiAgICAgIHZhciBvcHRpb25zID0gQXJyYXkuZnJvbShlbC5hdHRyaWJ1dGVzKS5yZWR1Y2UoZnVuY3Rpb24gKGFjYywgYXR0cmlidXRlKSB7XG4gICAgICAgIHZhciBvcHRpb24gPSBhdHRyaWJ1dGUubmFtZS5tYXRjaCgvZGF0YS1zaW1wbGViYXItKC4rKS8pO1xuXG4gICAgICAgIGlmIChvcHRpb24pIHtcbiAgICAgICAgICB2YXIga2V5ID0gb3B0aW9uWzFdLnJlcGxhY2UoL1xcVysoLikvZywgZnVuY3Rpb24gKHgsIGNocikge1xuICAgICAgICAgICAgcmV0dXJuIGNoci50b1VwcGVyQ2FzZSgpO1xuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgc3dpdGNoIChhdHRyaWJ1dGUudmFsdWUpIHtcbiAgICAgICAgICAgIGNhc2UgJ3RydWUnOlxuICAgICAgICAgICAgICBhY2Nba2V5XSA9IHRydWU7XG4gICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICBjYXNlICdmYWxzZSc6XG4gICAgICAgICAgICAgIGFjY1trZXldID0gZmFsc2U7XG4gICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICBjYXNlIHVuZGVmaW5lZDpcbiAgICAgICAgICAgICAgYWNjW2tleV0gPSB0cnVlO1xuICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgYWNjW2tleV0gPSBhdHRyaWJ1dGUudmFsdWU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgIH0sIHt9KTtcbiAgICAgIHJldHVybiBvcHRpb25zO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJyZW1vdmVPYnNlcnZlclwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiByZW1vdmVPYnNlcnZlcigpIHtcbiAgICAgIHRoaXMuZ2xvYmFsT2JzZXJ2ZXIuZGlzY29ubmVjdCgpO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJpbml0RE9NTG9hZGVkRWxlbWVudHNcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gaW5pdERPTUxvYWRlZEVsZW1lbnRzKCkge1xuICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignRE9NQ29udGVudExvYWRlZCcsIHRoaXMuaW5pdERPTUxvYWRlZEVsZW1lbnRzKTtcbiAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdsb2FkJywgdGhpcy5pbml0RE9NTG9hZGVkRWxlbWVudHMpO1xuICAgICAgQXJyYXkuZnJvbShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdbZGF0YS1zaW1wbGViYXJdJykpLmZvckVhY2goZnVuY3Rpb24gKGVsKSB7XG4gICAgICAgIGlmICghZWwuU2ltcGxlQmFyKSBuZXcgU2ltcGxlQmFyKGVsLCBTaW1wbGVCYXIuZ2V0RWxPcHRpb25zKGVsKSk7XG4gICAgICB9KTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwiZ2V0T2Zmc2V0XCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGdldE9mZnNldChlbCkge1xuICAgICAgdmFyIHJlY3QgPSBlbC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHRvcDogcmVjdC50b3AgKyAod2luZG93LnBhZ2VZT2Zmc2V0IHx8IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxUb3ApLFxuICAgICAgICBsZWZ0OiByZWN0LmxlZnQgKyAod2luZG93LnBhZ2VYT2Zmc2V0IHx8IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxMZWZ0KVxuICAgICAgfTtcbiAgICB9XG4gIH1dKTtcblxuICByZXR1cm4gU2ltcGxlQmFyO1xufSgpO1xuLyoqXG4gKiBIVE1MIEFQSVxuICogQ2FsbGVkIG9ubHkgaW4gYSBicm93c2VyIGVudi5cbiAqL1xuXG5cblNpbXBsZUJhci5kZWZhdWx0T3B0aW9ucyA9IHtcbiAgYXV0b0hpZGU6IHRydWUsXG4gIGZvcmNlVmlzaWJsZTogZmFsc2UsXG4gIGNsYXNzTmFtZXM6IHtcbiAgICBjb250ZW50OiAnc2ltcGxlYmFyLWNvbnRlbnQnLFxuICAgIG9mZnNldDogJ3NpbXBsZWJhci1vZmZzZXQnLFxuICAgIG1hc2s6ICdzaW1wbGViYXItbWFzaycsXG4gICAgd3JhcHBlcjogJ3NpbXBsZWJhci13cmFwcGVyJyxcbiAgICBwbGFjZWhvbGRlcjogJ3NpbXBsZWJhci1wbGFjZWhvbGRlcicsXG4gICAgc2Nyb2xsYmFyOiAnc2ltcGxlYmFyLXNjcm9sbGJhcicsXG4gICAgdHJhY2s6ICdzaW1wbGViYXItdHJhY2snLFxuICAgIGhlaWdodEF1dG9PYnNlcnZlcldyYXBwZXJFbDogJ3NpbXBsZWJhci1oZWlnaHQtYXV0by1vYnNlcnZlci13cmFwcGVyJyxcbiAgICBoZWlnaHRBdXRvT2JzZXJ2ZXJFbDogJ3NpbXBsZWJhci1oZWlnaHQtYXV0by1vYnNlcnZlcicsXG4gICAgdmlzaWJsZTogJ3NpbXBsZWJhci12aXNpYmxlJyxcbiAgICBob3Jpem9udGFsOiAnc2ltcGxlYmFyLWhvcml6b250YWwnLFxuICAgIHZlcnRpY2FsOiAnc2ltcGxlYmFyLXZlcnRpY2FsJyxcbiAgICBob3ZlcjogJ3NpbXBsZWJhci1ob3ZlcidcbiAgfSxcbiAgc2Nyb2xsYmFyTWluU2l6ZTogMjUsXG4gIHNjcm9sbGJhck1heFNpemU6IDAsXG4gIHRpbWVvdXQ6IDEwMDBcbn07XG5cbmlmIChjYW5Vc2VET00pIHtcbiAgU2ltcGxlQmFyLmluaXRIdG1sQXBpKCk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IFNpbXBsZUJhcjtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXNpbXBsZWJhci5lc20uanMubWFwXG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9zaW1wbGViYXIvZGlzdC9zaW1wbGViYXIuZXNtLmpzXG4vLyBtb2R1bGUgaWQgPSA4Mjhcbi8vIG1vZHVsZSBjaHVua3MgPSAxIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTsiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///828\n"); + +/***/ }), + +/***/ 829: +/*!*******************************************************!*\ + !*** ./node_modules/scrollbarwidth/scrollbarWidth.js ***! + \*******************************************************/ +/*! dynamic exports provided */ +/*! exports used: default */ +/***/ (function(module, exports, __webpack_require__) { + +eval("var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*! scrollbarWidth.js v0.1.3 | felixexter | MIT | https://github.com/felixexter/scrollbarWidth */\n(function (root, factory) {\n\tif (true) {\n\t\t!(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\n\t\t\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t} else if (typeof exports === 'object') {\n\t\tmodule.exports = factory();\n\t} else {\n\t\t(root.jQuery || root).scrollbarWidth = factory();\n\t}\n}(this, function () {\n\t'use strict';\n\n\tfunction scrollbarWidth() {\n\t\tif (typeof document === 'undefined') {\n\t\t\treturn 0\n\t\t}\n\n\t\tvar\n\t\t\tbody = document.body,\n\t\t\tbox = document.createElement('div'),\n\t\t\tboxStyle = box.style,\n\t\t\twidth;\n\n\t\tboxStyle.position = 'absolute';\n\t\tboxStyle.top = boxStyle.left = '-9999px';\n\t\tboxStyle.width = boxStyle.height = '100px';\n\t\tboxStyle.overflow = 'scroll';\n\n\t\tbody.appendChild(box);\n\n\t\twidth = box.offsetWidth - box.clientWidth;\n\n\t\tbody.removeChild(box);\n\n\t\treturn width;\n\t}\n\n\treturn scrollbarWidth;\n}));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiODI5LmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3Njcm9sbGJhcndpZHRoL3Njcm9sbGJhcldpZHRoLmpzPzIzOGYiXSwic291cmNlc0NvbnRlbnQiOlsiLyohIHNjcm9sbGJhcldpZHRoLmpzIHYwLjEuMyB8IGZlbGl4ZXh0ZXIgfCBNSVQgfCBodHRwczovL2dpdGh1Yi5jb20vZmVsaXhleHRlci9zY3JvbGxiYXJXaWR0aCAqL1xuKGZ1bmN0aW9uIChyb290LCBmYWN0b3J5KSB7XG5cdGlmICh0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQpIHtcblx0XHRkZWZpbmUoW10sIGZhY3RvcnkpO1xuXHR9IGVsc2UgaWYgKHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0Jykge1xuXHRcdG1vZHVsZS5leHBvcnRzID0gZmFjdG9yeSgpO1xuXHR9IGVsc2Uge1xuXHRcdChyb290LmpRdWVyeSB8fCByb290KS5zY3JvbGxiYXJXaWR0aCA9IGZhY3RvcnkoKTtcblx0fVxufSh0aGlzLCBmdW5jdGlvbiAoKSB7XG5cdCd1c2Ugc3RyaWN0JztcblxuXHRmdW5jdGlvbiBzY3JvbGxiYXJXaWR0aCgpIHtcblx0XHRpZiAodHlwZW9mIGRvY3VtZW50ID09PSAndW5kZWZpbmVkJykge1xuXHRcdFx0cmV0dXJuIDBcblx0XHR9XG5cblx0XHR2YXJcblx0XHRcdGJvZHkgPSBkb2N1bWVudC5ib2R5LFxuXHRcdFx0Ym94ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2JyksXG5cdFx0XHRib3hTdHlsZSA9IGJveC5zdHlsZSxcblx0XHRcdHdpZHRoO1xuXG5cdFx0Ym94U3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnO1xuXHRcdGJveFN0eWxlLnRvcCA9IGJveFN0eWxlLmxlZnQgPSAnLTk5OTlweCc7XG5cdFx0Ym94U3R5bGUud2lkdGggPSBib3hTdHlsZS5oZWlnaHQgPSAnMTAwcHgnO1xuXHRcdGJveFN0eWxlLm92ZXJmbG93ID0gJ3Njcm9sbCc7XG5cblx0XHRib2R5LmFwcGVuZENoaWxkKGJveCk7XG5cblx0XHR3aWR0aCA9IGJveC5vZmZzZXRXaWR0aCAtIGJveC5jbGllbnRXaWR0aDtcblxuXHRcdGJvZHkucmVtb3ZlQ2hpbGQoYm94KTtcblxuXHRcdHJldHVybiB3aWR0aDtcblx0fVxuXG5cdHJldHVybiBzY3JvbGxiYXJXaWR0aDtcbn0pKTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL3Njcm9sbGJhcndpZHRoL3Njcm9sbGJhcldpZHRoLmpzXG4vLyBtb2R1bGUgaWQgPSA4Mjlcbi8vIG1vZHVsZSBjaHVua3MgPSAxIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Iiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///829\n"); + +/***/ }), + +/***/ 830: +/*!***********************************************!*\ + !*** ./node_modules/lodash.throttle/index.js ***! + \***********************************************/ +/*! dynamic exports provided */ +/*! exports used: default */ +/***/ (function(module, exports, __webpack_require__) { + +eval("/* WEBPACK VAR INJECTION */(function(global) {/**\n * lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n result = wait - timeSinceLastCall;\n\n return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\n/**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed `func` invocations and a `flush` method to\n * immediately invoke them. Provide `options` to indicate whether `func`\n * should be invoked on the leading and/or trailing edge of the `wait`\n * timeout. The `func` is invoked with the last arguments provided to the\n * throttled function. Subsequent calls to the throttled function return the\n * result of the last `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the throttled function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=true]\n * Specify invoking on the leading edge of the timeout.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // Avoid excessively updating the position while scrolling.\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\n * jQuery(element).on('click', throttled);\n *\n * // Cancel the trailing throttled invocation.\n * jQuery(window).on('popstate', throttled.cancel);\n */\nfunction throttle(func, wait, options) {\n var leading = true,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (isObject(options)) {\n leading = 'leading' in options ? !!options.leading : leading;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n return debounce(func, wait, {\n 'leading': leading,\n 'maxWait': wait,\n 'trailing': trailing\n });\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = throttle;\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(/*! ./../webpack/buildin/global.js */ 70)))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiODMwLmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC50aHJvdHRsZS9pbmRleC5qcz80NzdiIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogbG9kYXNoIChDdXN0b20gQnVpbGQpIDxodHRwczovL2xvZGFzaC5jb20vPlxuICogQnVpbGQ6IGBsb2Rhc2ggbW9kdWxhcml6ZSBleHBvcnRzPVwibnBtXCIgLW8gLi9gXG4gKiBDb3B5cmlnaHQgalF1ZXJ5IEZvdW5kYXRpb24gYW5kIG90aGVyIGNvbnRyaWJ1dG9ycyA8aHR0cHM6Ly9qcXVlcnkub3JnLz5cbiAqIFJlbGVhc2VkIHVuZGVyIE1JVCBsaWNlbnNlIDxodHRwczovL2xvZGFzaC5jb20vbGljZW5zZT5cbiAqIEJhc2VkIG9uIFVuZGVyc2NvcmUuanMgMS44LjMgPGh0dHA6Ly91bmRlcnNjb3JlanMub3JnL0xJQ0VOU0U+XG4gKiBDb3B5cmlnaHQgSmVyZW15IEFzaGtlbmFzLCBEb2N1bWVudENsb3VkIGFuZCBJbnZlc3RpZ2F0aXZlIFJlcG9ydGVycyAmIEVkaXRvcnNcbiAqL1xuXG4vKiogVXNlZCBhcyB0aGUgYFR5cGVFcnJvcmAgbWVzc2FnZSBmb3IgXCJGdW5jdGlvbnNcIiBtZXRob2RzLiAqL1xudmFyIEZVTkNfRVJST1JfVEVYVCA9ICdFeHBlY3RlZCBhIGZ1bmN0aW9uJztcblxuLyoqIFVzZWQgYXMgcmVmZXJlbmNlcyBmb3IgdmFyaW91cyBgTnVtYmVyYCBjb25zdGFudHMuICovXG52YXIgTkFOID0gMCAvIDA7XG5cbi8qKiBgT2JqZWN0I3RvU3RyaW5nYCByZXN1bHQgcmVmZXJlbmNlcy4gKi9cbnZhciBzeW1ib2xUYWcgPSAnW29iamVjdCBTeW1ib2xdJztcblxuLyoqIFVzZWQgdG8gbWF0Y2ggbGVhZGluZyBhbmQgdHJhaWxpbmcgd2hpdGVzcGFjZS4gKi9cbnZhciByZVRyaW0gPSAvXlxccyt8XFxzKyQvZztcblxuLyoqIFVzZWQgdG8gZGV0ZWN0IGJhZCBzaWduZWQgaGV4YWRlY2ltYWwgc3RyaW5nIHZhbHVlcy4gKi9cbnZhciByZUlzQmFkSGV4ID0gL15bLStdMHhbMC05YS1mXSskL2k7XG5cbi8qKiBVc2VkIHRvIGRldGVjdCBiaW5hcnkgc3RyaW5nIHZhbHVlcy4gKi9cbnZhciByZUlzQmluYXJ5ID0gL14wYlswMV0rJC9pO1xuXG4vKiogVXNlZCB0byBkZXRlY3Qgb2N0YWwgc3RyaW5nIHZhbHVlcy4gKi9cbnZhciByZUlzT2N0YWwgPSAvXjBvWzAtN10rJC9pO1xuXG4vKiogQnVpbHQtaW4gbWV0aG9kIHJlZmVyZW5jZXMgd2l0aG91dCBhIGRlcGVuZGVuY3kgb24gYHJvb3RgLiAqL1xudmFyIGZyZWVQYXJzZUludCA9IHBhcnNlSW50O1xuXG4vKiogRGV0ZWN0IGZyZWUgdmFyaWFibGUgYGdsb2JhbGAgZnJvbSBOb2RlLmpzLiAqL1xudmFyIGZyZWVHbG9iYWwgPSB0eXBlb2YgZ2xvYmFsID09ICdvYmplY3QnICYmIGdsb2JhbCAmJiBnbG9iYWwuT2JqZWN0ID09PSBPYmplY3QgJiYgZ2xvYmFsO1xuXG4vKiogRGV0ZWN0IGZyZWUgdmFyaWFibGUgYHNlbGZgLiAqL1xudmFyIGZyZWVTZWxmID0gdHlwZW9mIHNlbGYgPT0gJ29iamVjdCcgJiYgc2VsZiAmJiBzZWxmLk9iamVjdCA9PT0gT2JqZWN0ICYmIHNlbGY7XG5cbi8qKiBVc2VkIGFzIGEgcmVmZXJlbmNlIHRvIHRoZSBnbG9iYWwgb2JqZWN0LiAqL1xudmFyIHJvb3QgPSBmcmVlR2xvYmFsIHx8IGZyZWVTZWxmIHx8IEZ1bmN0aW9uKCdyZXR1cm4gdGhpcycpKCk7XG5cbi8qKiBVc2VkIGZvciBidWlsdC1pbiBtZXRob2QgcmVmZXJlbmNlcy4gKi9cbnZhciBvYmplY3RQcm90byA9IE9iamVjdC5wcm90b3R5cGU7XG5cbi8qKlxuICogVXNlZCB0byByZXNvbHZlIHRoZVxuICogW2B0b1N0cmluZ1RhZ2BdKGh0dHA6Ly9lY21hLWludGVybmF0aW9uYWwub3JnL2VjbWEtMjYyLzcuMC8jc2VjLW9iamVjdC5wcm90b3R5cGUudG9zdHJpbmcpXG4gKiBvZiB2YWx1ZXMuXG4gKi9cbnZhciBvYmplY3RUb1N0cmluZyA9IG9iamVjdFByb3RvLnRvU3RyaW5nO1xuXG4vKiBCdWlsdC1pbiBtZXRob2QgcmVmZXJlbmNlcyBmb3IgdGhvc2Ugd2l0aCB0aGUgc2FtZSBuYW1lIGFzIG90aGVyIGBsb2Rhc2hgIG1ldGhvZHMuICovXG52YXIgbmF0aXZlTWF4ID0gTWF0aC5tYXgsXG4gICAgbmF0aXZlTWluID0gTWF0aC5taW47XG5cbi8qKlxuICogR2V0cyB0aGUgdGltZXN0YW1wIG9mIHRoZSBudW1iZXIgb2YgbWlsbGlzZWNvbmRzIHRoYXQgaGF2ZSBlbGFwc2VkIHNpbmNlXG4gKiB0aGUgVW5peCBlcG9jaCAoMSBKYW51YXJ5IDE5NzAgMDA6MDA6MDAgVVRDKS5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDIuNC4wXG4gKiBAY2F0ZWdvcnkgRGF0ZVxuICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyB0aGUgdGltZXN0YW1wLlxuICogQGV4YW1wbGVcbiAqXG4gKiBfLmRlZmVyKGZ1bmN0aW9uKHN0YW1wKSB7XG4gKiAgIGNvbnNvbGUubG9nKF8ubm93KCkgLSBzdGFtcCk7XG4gKiB9LCBfLm5vdygpKTtcbiAqIC8vID0+IExvZ3MgdGhlIG51bWJlciBvZiBtaWxsaXNlY29uZHMgaXQgdG9vayBmb3IgdGhlIGRlZmVycmVkIGludm9jYXRpb24uXG4gKi9cbnZhciBub3cgPSBmdW5jdGlvbigpIHtcbiAgcmV0dXJuIHJvb3QuRGF0ZS5ub3coKTtcbn07XG5cbi8qKlxuICogQ3JlYXRlcyBhIGRlYm91bmNlZCBmdW5jdGlvbiB0aGF0IGRlbGF5cyBpbnZva2luZyBgZnVuY2AgdW50aWwgYWZ0ZXIgYHdhaXRgXG4gKiBtaWxsaXNlY29uZHMgaGF2ZSBlbGFwc2VkIHNpbmNlIHRoZSBsYXN0IHRpbWUgdGhlIGRlYm91bmNlZCBmdW5jdGlvbiB3YXNcbiAqIGludm9rZWQuIFRoZSBkZWJvdW5jZWQgZnVuY3Rpb24gY29tZXMgd2l0aCBhIGBjYW5jZWxgIG1ldGhvZCB0byBjYW5jZWxcbiAqIGRlbGF5ZWQgYGZ1bmNgIGludm9jYXRpb25zIGFuZCBhIGBmbHVzaGAgbWV0aG9kIHRvIGltbWVkaWF0ZWx5IGludm9rZSB0aGVtLlxuICogUHJvdmlkZSBgb3B0aW9uc2AgdG8gaW5kaWNhdGUgd2hldGhlciBgZnVuY2Agc2hvdWxkIGJlIGludm9rZWQgb24gdGhlXG4gKiBsZWFkaW5nIGFuZC9vciB0cmFpbGluZyBlZGdlIG9mIHRoZSBgd2FpdGAgdGltZW91dC4gVGhlIGBmdW5jYCBpcyBpbnZva2VkXG4gKiB3aXRoIHRoZSBsYXN0IGFyZ3VtZW50cyBwcm92aWRlZCB0byB0aGUgZGVib3VuY2VkIGZ1bmN0aW9uLiBTdWJzZXF1ZW50XG4gKiBjYWxscyB0byB0aGUgZGVib3VuY2VkIGZ1bmN0aW9uIHJldHVybiB0aGUgcmVzdWx0IG9mIHRoZSBsYXN0IGBmdW5jYFxuICogaW52b2NhdGlvbi5cbiAqXG4gKiAqKk5vdGU6KiogSWYgYGxlYWRpbmdgIGFuZCBgdHJhaWxpbmdgIG9wdGlvbnMgYXJlIGB0cnVlYCwgYGZ1bmNgIGlzXG4gKiBpbnZva2VkIG9uIHRoZSB0cmFpbGluZyBlZGdlIG9mIHRoZSB0aW1lb3V0IG9ubHkgaWYgdGhlIGRlYm91bmNlZCBmdW5jdGlvblxuICogaXMgaW52b2tlZCBtb3JlIHRoYW4gb25jZSBkdXJpbmcgdGhlIGB3YWl0YCB0aW1lb3V0LlxuICpcbiAqIElmIGB3YWl0YCBpcyBgMGAgYW5kIGBsZWFkaW5nYCBpcyBgZmFsc2VgLCBgZnVuY2AgaW52b2NhdGlvbiBpcyBkZWZlcnJlZFxuICogdW50aWwgdG8gdGhlIG5leHQgdGljaywgc2ltaWxhciB0byBgc2V0VGltZW91dGAgd2l0aCBhIHRpbWVvdXQgb2YgYDBgLlxuICpcbiAqIFNlZSBbRGF2aWQgQ29yYmFjaG8ncyBhcnRpY2xlXShodHRwczovL2Nzcy10cmlja3MuY29tL2RlYm91bmNpbmctdGhyb3R0bGluZy1leHBsYWluZWQtZXhhbXBsZXMvKVxuICogZm9yIGRldGFpbHMgb3ZlciB0aGUgZGlmZmVyZW5jZXMgYmV0d2VlbiBgXy5kZWJvdW5jZWAgYW5kIGBfLnRocm90dGxlYC5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDAuMS4wXG4gKiBAY2F0ZWdvcnkgRnVuY3Rpb25cbiAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGRlYm91bmNlLlxuICogQHBhcmFtIHtudW1iZXJ9IFt3YWl0PTBdIFRoZSBudW1iZXIgb2YgbWlsbGlzZWNvbmRzIHRvIGRlbGF5LlxuICogQHBhcmFtIHtPYmplY3R9IFtvcHRpb25zPXt9XSBUaGUgb3B0aW9ucyBvYmplY3QuXG4gKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRpb25zLmxlYWRpbmc9ZmFsc2VdXG4gKiAgU3BlY2lmeSBpbnZva2luZyBvbiB0aGUgbGVhZGluZyBlZGdlIG9mIHRoZSB0aW1lb3V0LlxuICogQHBhcmFtIHtudW1iZXJ9IFtvcHRpb25zLm1heFdhaXRdXG4gKiAgVGhlIG1heGltdW0gdGltZSBgZnVuY2AgaXMgYWxsb3dlZCB0byBiZSBkZWxheWVkIGJlZm9yZSBpdCdzIGludm9rZWQuXG4gKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRpb25zLnRyYWlsaW5nPXRydWVdXG4gKiAgU3BlY2lmeSBpbnZva2luZyBvbiB0aGUgdHJhaWxpbmcgZWRnZSBvZiB0aGUgdGltZW91dC5cbiAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IGRlYm91bmNlZCBmdW5jdGlvbi5cbiAqIEBleGFtcGxlXG4gKlxuICogLy8gQXZvaWQgY29zdGx5IGNhbGN1bGF0aW9ucyB3aGlsZSB0aGUgd2luZG93IHNpemUgaXMgaW4gZmx1eC5cbiAqIGpRdWVyeSh3aW5kb3cpLm9uKCdyZXNpemUnLCBfLmRlYm91bmNlKGNhbGN1bGF0ZUxheW91dCwgMTUwKSk7XG4gKlxuICogLy8gSW52b2tlIGBzZW5kTWFpbGAgd2hlbiBjbGlja2VkLCBkZWJvdW5jaW5nIHN1YnNlcXVlbnQgY2FsbHMuXG4gKiBqUXVlcnkoZWxlbWVudCkub24oJ2NsaWNrJywgXy5kZWJvdW5jZShzZW5kTWFpbCwgMzAwLCB7XG4gKiAgICdsZWFkaW5nJzogdHJ1ZSxcbiAqICAgJ3RyYWlsaW5nJzogZmFsc2VcbiAqIH0pKTtcbiAqXG4gKiAvLyBFbnN1cmUgYGJhdGNoTG9nYCBpcyBpbnZva2VkIG9uY2UgYWZ0ZXIgMSBzZWNvbmQgb2YgZGVib3VuY2VkIGNhbGxzLlxuICogdmFyIGRlYm91bmNlZCA9IF8uZGVib3VuY2UoYmF0Y2hMb2csIDI1MCwgeyAnbWF4V2FpdCc6IDEwMDAgfSk7XG4gKiB2YXIgc291cmNlID0gbmV3IEV2ZW50U291cmNlKCcvc3RyZWFtJyk7XG4gKiBqUXVlcnkoc291cmNlKS5vbignbWVzc2FnZScsIGRlYm91bmNlZCk7XG4gKlxuICogLy8gQ2FuY2VsIHRoZSB0cmFpbGluZyBkZWJvdW5jZWQgaW52b2NhdGlvbi5cbiAqIGpRdWVyeSh3aW5kb3cpLm9uKCdwb3BzdGF0ZScsIGRlYm91bmNlZC5jYW5jZWwpO1xuICovXG5mdW5jdGlvbiBkZWJvdW5jZShmdW5jLCB3YWl0LCBvcHRpb25zKSB7XG4gIHZhciBsYXN0QXJncyxcbiAgICAgIGxhc3RUaGlzLFxuICAgICAgbWF4V2FpdCxcbiAgICAgIHJlc3VsdCxcbiAgICAgIHRpbWVySWQsXG4gICAgICBsYXN0Q2FsbFRpbWUsXG4gICAgICBsYXN0SW52b2tlVGltZSA9IDAsXG4gICAgICBsZWFkaW5nID0gZmFsc2UsXG4gICAgICBtYXhpbmcgPSBmYWxzZSxcbiAgICAgIHRyYWlsaW5nID0gdHJ1ZTtcblxuICBpZiAodHlwZW9mIGZ1bmMgIT0gJ2Z1bmN0aW9uJykge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoRlVOQ19FUlJPUl9URVhUKTtcbiAgfVxuICB3YWl0ID0gdG9OdW1iZXIod2FpdCkgfHwgMDtcbiAgaWYgKGlzT2JqZWN0KG9wdGlvbnMpKSB7XG4gICAgbGVhZGluZyA9ICEhb3B0aW9ucy5sZWFkaW5nO1xuICAgIG1heGluZyA9ICdtYXhXYWl0JyBpbiBvcHRpb25zO1xuICAgIG1heFdhaXQgPSBtYXhpbmcgPyBuYXRpdmVNYXgodG9OdW1iZXIob3B0aW9ucy5tYXhXYWl0KSB8fCAwLCB3YWl0KSA6IG1heFdhaXQ7XG4gICAgdHJhaWxpbmcgPSAndHJhaWxpbmcnIGluIG9wdGlvbnMgPyAhIW9wdGlvbnMudHJhaWxpbmcgOiB0cmFpbGluZztcbiAgfVxuXG4gIGZ1bmN0aW9uIGludm9rZUZ1bmModGltZSkge1xuICAgIHZhciBhcmdzID0gbGFzdEFyZ3MsXG4gICAgICAgIHRoaXNBcmcgPSBsYXN0VGhpcztcblxuICAgIGxhc3RBcmdzID0gbGFzdFRoaXMgPSB1bmRlZmluZWQ7XG4gICAgbGFzdEludm9rZVRpbWUgPSB0aW1lO1xuICAgIHJlc3VsdCA9IGZ1bmMuYXBwbHkodGhpc0FyZywgYXJncyk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIGZ1bmN0aW9uIGxlYWRpbmdFZGdlKHRpbWUpIHtcbiAgICAvLyBSZXNldCBhbnkgYG1heFdhaXRgIHRpbWVyLlxuICAgIGxhc3RJbnZva2VUaW1lID0gdGltZTtcbiAgICAvLyBTdGFydCB0aGUgdGltZXIgZm9yIHRoZSB0cmFpbGluZyBlZGdlLlxuICAgIHRpbWVySWQgPSBzZXRUaW1lb3V0KHRpbWVyRXhwaXJlZCwgd2FpdCk7XG4gICAgLy8gSW52b2tlIHRoZSBsZWFkaW5nIGVkZ2UuXG4gICAgcmV0dXJuIGxlYWRpbmcgPyBpbnZva2VGdW5jKHRpbWUpIDogcmVzdWx0O1xuICB9XG5cbiAgZnVuY3Rpb24gcmVtYWluaW5nV2FpdCh0aW1lKSB7XG4gICAgdmFyIHRpbWVTaW5jZUxhc3RDYWxsID0gdGltZSAtIGxhc3RDYWxsVGltZSxcbiAgICAgICAgdGltZVNpbmNlTGFzdEludm9rZSA9IHRpbWUgLSBsYXN0SW52b2tlVGltZSxcbiAgICAgICAgcmVzdWx0ID0gd2FpdCAtIHRpbWVTaW5jZUxhc3RDYWxsO1xuXG4gICAgcmV0dXJuIG1heGluZyA/IG5hdGl2ZU1pbihyZXN1bHQsIG1heFdhaXQgLSB0aW1lU2luY2VMYXN0SW52b2tlKSA6IHJlc3VsdDtcbiAgfVxuXG4gIGZ1bmN0aW9uIHNob3VsZEludm9rZSh0aW1lKSB7XG4gICAgdmFyIHRpbWVTaW5jZUxhc3RDYWxsID0gdGltZSAtIGxhc3RDYWxsVGltZSxcbiAgICAgICAgdGltZVNpbmNlTGFzdEludm9rZSA9IHRpbWUgLSBsYXN0SW52b2tlVGltZTtcblxuICAgIC8vIEVpdGhlciB0aGlzIGlzIHRoZSBmaXJzdCBjYWxsLCBhY3Rpdml0eSBoYXMgc3RvcHBlZCBhbmQgd2UncmUgYXQgdGhlXG4gICAgLy8gdHJhaWxpbmcgZWRnZSwgdGhlIHN5c3RlbSB0aW1lIGhhcyBnb25lIGJhY2t3YXJkcyBhbmQgd2UncmUgdHJlYXRpbmdcbiAgICAvLyBpdCBhcyB0aGUgdHJhaWxpbmcgZWRnZSwgb3Igd2UndmUgaGl0IHRoZSBgbWF4V2FpdGAgbGltaXQuXG4gICAgcmV0dXJuIChsYXN0Q2FsbFRpbWUgPT09IHVuZGVmaW5lZCB8fCAodGltZVNpbmNlTGFzdENhbGwgPj0gd2FpdCkgfHxcbiAgICAgICh0aW1lU2luY2VMYXN0Q2FsbCA8IDApIHx8IChtYXhpbmcgJiYgdGltZVNpbmNlTGFzdEludm9rZSA+PSBtYXhXYWl0KSk7XG4gIH1cblxuICBmdW5jdGlvbiB0aW1lckV4cGlyZWQoKSB7XG4gICAgdmFyIHRpbWUgPSBub3coKTtcbiAgICBpZiAoc2hvdWxkSW52b2tlKHRpbWUpKSB7XG4gICAgICByZXR1cm4gdHJhaWxpbmdFZGdlKHRpbWUpO1xuICAgIH1cbiAgICAvLyBSZXN0YXJ0IHRoZSB0aW1lci5cbiAgICB0aW1lcklkID0gc2V0VGltZW91dCh0aW1lckV4cGlyZWQsIHJlbWFpbmluZ1dhaXQodGltZSkpO1xuICB9XG5cbiAgZnVuY3Rpb24gdHJhaWxpbmdFZGdlKHRpbWUpIHtcbiAgICB0aW1lcklkID0gdW5kZWZpbmVkO1xuXG4gICAgLy8gT25seSBpbnZva2UgaWYgd2UgaGF2ZSBgbGFzdEFyZ3NgIHdoaWNoIG1lYW5zIGBmdW5jYCBoYXMgYmVlblxuICAgIC8vIGRlYm91bmNlZCBhdCBsZWFzdCBvbmNlLlxuICAgIGlmICh0cmFpbGluZyAmJiBsYXN0QXJncykge1xuICAgICAgcmV0dXJuIGludm9rZUZ1bmModGltZSk7XG4gICAgfVxuICAgIGxhc3RBcmdzID0gbGFzdFRoaXMgPSB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIGZ1bmN0aW9uIGNhbmNlbCgpIHtcbiAgICBpZiAodGltZXJJZCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBjbGVhclRpbWVvdXQodGltZXJJZCk7XG4gICAgfVxuICAgIGxhc3RJbnZva2VUaW1lID0gMDtcbiAgICBsYXN0QXJncyA9IGxhc3RDYWxsVGltZSA9IGxhc3RUaGlzID0gdGltZXJJZCA9IHVuZGVmaW5lZDtcbiAgfVxuXG4gIGZ1bmN0aW9uIGZsdXNoKCkge1xuICAgIHJldHVybiB0aW1lcklkID09PSB1bmRlZmluZWQgPyByZXN1bHQgOiB0cmFpbGluZ0VkZ2Uobm93KCkpO1xuICB9XG5cbiAgZnVuY3Rpb24gZGVib3VuY2VkKCkge1xuICAgIHZhciB0aW1lID0gbm93KCksXG4gICAgICAgIGlzSW52b2tpbmcgPSBzaG91bGRJbnZva2UodGltZSk7XG5cbiAgICBsYXN0QXJncyA9IGFyZ3VtZW50cztcbiAgICBsYXN0VGhpcyA9IHRoaXM7XG4gICAgbGFzdENhbGxUaW1lID0gdGltZTtcblxuICAgIGlmIChpc0ludm9raW5nKSB7XG4gICAgICBpZiAodGltZXJJZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHJldHVybiBsZWFkaW5nRWRnZShsYXN0Q2FsbFRpbWUpO1xuICAgICAgfVxuICAgICAgaWYgKG1heGluZykge1xuICAgICAgICAvLyBIYW5kbGUgaW52b2NhdGlvbnMgaW4gYSB0aWdodCBsb29wLlxuICAgICAgICB0aW1lcklkID0gc2V0VGltZW91dCh0aW1lckV4cGlyZWQsIHdhaXQpO1xuICAgICAgICByZXR1cm4gaW52b2tlRnVuYyhsYXN0Q2FsbFRpbWUpO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAodGltZXJJZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aW1lcklkID0gc2V0VGltZW91dCh0aW1lckV4cGlyZWQsIHdhaXQpO1xuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG4gIGRlYm91bmNlZC5jYW5jZWwgPSBjYW5jZWw7XG4gIGRlYm91bmNlZC5mbHVzaCA9IGZsdXNoO1xuICByZXR1cm4gZGVib3VuY2VkO1xufVxuXG4vKipcbiAqIENyZWF0ZXMgYSB0aHJvdHRsZWQgZnVuY3Rpb24gdGhhdCBvbmx5IGludm9rZXMgYGZ1bmNgIGF0IG1vc3Qgb25jZSBwZXJcbiAqIGV2ZXJ5IGB3YWl0YCBtaWxsaXNlY29uZHMuIFRoZSB0aHJvdHRsZWQgZnVuY3Rpb24gY29tZXMgd2l0aCBhIGBjYW5jZWxgXG4gKiBtZXRob2QgdG8gY2FuY2VsIGRlbGF5ZWQgYGZ1bmNgIGludm9jYXRpb25zIGFuZCBhIGBmbHVzaGAgbWV0aG9kIHRvXG4gKiBpbW1lZGlhdGVseSBpbnZva2UgdGhlbS4gUHJvdmlkZSBgb3B0aW9uc2AgdG8gaW5kaWNhdGUgd2hldGhlciBgZnVuY2BcbiAqIHNob3VsZCBiZSBpbnZva2VkIG9uIHRoZSBsZWFkaW5nIGFuZC9vciB0cmFpbGluZyBlZGdlIG9mIHRoZSBgd2FpdGBcbiAqIHRpbWVvdXQuIFRoZSBgZnVuY2AgaXMgaW52b2tlZCB3aXRoIHRoZSBsYXN0IGFyZ3VtZW50cyBwcm92aWRlZCB0byB0aGVcbiAqIHRocm90dGxlZCBmdW5jdGlvbi4gU3Vic2VxdWVudCBjYWxscyB0byB0aGUgdGhyb3R0bGVkIGZ1bmN0aW9uIHJldHVybiB0aGVcbiAqIHJlc3VsdCBvZiB0aGUgbGFzdCBgZnVuY2AgaW52b2NhdGlvbi5cbiAqXG4gKiAqKk5vdGU6KiogSWYgYGxlYWRpbmdgIGFuZCBgdHJhaWxpbmdgIG9wdGlvbnMgYXJlIGB0cnVlYCwgYGZ1bmNgIGlzXG4gKiBpbnZva2VkIG9uIHRoZSB0cmFpbGluZyBlZGdlIG9mIHRoZSB0aW1lb3V0IG9ubHkgaWYgdGhlIHRocm90dGxlZCBmdW5jdGlvblxuICogaXMgaW52b2tlZCBtb3JlIHRoYW4gb25jZSBkdXJpbmcgdGhlIGB3YWl0YCB0aW1lb3V0LlxuICpcbiAqIElmIGB3YWl0YCBpcyBgMGAgYW5kIGBsZWFkaW5nYCBpcyBgZmFsc2VgLCBgZnVuY2AgaW52b2NhdGlvbiBpcyBkZWZlcnJlZFxuICogdW50aWwgdG8gdGhlIG5leHQgdGljaywgc2ltaWxhciB0byBgc2V0VGltZW91dGAgd2l0aCBhIHRpbWVvdXQgb2YgYDBgLlxuICpcbiAqIFNlZSBbRGF2aWQgQ29yYmFjaG8ncyBhcnRpY2xlXShodHRwczovL2Nzcy10cmlja3MuY29tL2RlYm91bmNpbmctdGhyb3R0bGluZy1leHBsYWluZWQtZXhhbXBsZXMvKVxuICogZm9yIGRldGFpbHMgb3ZlciB0aGUgZGlmZmVyZW5jZXMgYmV0d2VlbiBgXy50aHJvdHRsZWAgYW5kIGBfLmRlYm91bmNlYC5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDAuMS4wXG4gKiBAY2F0ZWdvcnkgRnVuY3Rpb25cbiAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIHRocm90dGxlLlxuICogQHBhcmFtIHtudW1iZXJ9IFt3YWl0PTBdIFRoZSBudW1iZXIgb2YgbWlsbGlzZWNvbmRzIHRvIHRocm90dGxlIGludm9jYXRpb25zIHRvLlxuICogQHBhcmFtIHtPYmplY3R9IFtvcHRpb25zPXt9XSBUaGUgb3B0aW9ucyBvYmplY3QuXG4gKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRpb25zLmxlYWRpbmc9dHJ1ZV1cbiAqICBTcGVjaWZ5IGludm9raW5nIG9uIHRoZSBsZWFkaW5nIGVkZ2Ugb2YgdGhlIHRpbWVvdXQuXG4gKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRpb25zLnRyYWlsaW5nPXRydWVdXG4gKiAgU3BlY2lmeSBpbnZva2luZyBvbiB0aGUgdHJhaWxpbmcgZWRnZSBvZiB0aGUgdGltZW91dC5cbiAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IHRocm90dGxlZCBmdW5jdGlvbi5cbiAqIEBleGFtcGxlXG4gKlxuICogLy8gQXZvaWQgZXhjZXNzaXZlbHkgdXBkYXRpbmcgdGhlIHBvc2l0aW9uIHdoaWxlIHNjcm9sbGluZy5cbiAqIGpRdWVyeSh3aW5kb3cpLm9uKCdzY3JvbGwnLCBfLnRocm90dGxlKHVwZGF0ZVBvc2l0aW9uLCAxMDApKTtcbiAqXG4gKiAvLyBJbnZva2UgYHJlbmV3VG9rZW5gIHdoZW4gdGhlIGNsaWNrIGV2ZW50IGlzIGZpcmVkLCBidXQgbm90IG1vcmUgdGhhbiBvbmNlIGV2ZXJ5IDUgbWludXRlcy5cbiAqIHZhciB0aHJvdHRsZWQgPSBfLnRocm90dGxlKHJlbmV3VG9rZW4sIDMwMDAwMCwgeyAndHJhaWxpbmcnOiBmYWxzZSB9KTtcbiAqIGpRdWVyeShlbGVtZW50KS5vbignY2xpY2snLCB0aHJvdHRsZWQpO1xuICpcbiAqIC8vIENhbmNlbCB0aGUgdHJhaWxpbmcgdGhyb3R0bGVkIGludm9jYXRpb24uXG4gKiBqUXVlcnkod2luZG93KS5vbigncG9wc3RhdGUnLCB0aHJvdHRsZWQuY2FuY2VsKTtcbiAqL1xuZnVuY3Rpb24gdGhyb3R0bGUoZnVuYywgd2FpdCwgb3B0aW9ucykge1xuICB2YXIgbGVhZGluZyA9IHRydWUsXG4gICAgICB0cmFpbGluZyA9IHRydWU7XG5cbiAgaWYgKHR5cGVvZiBmdW5jICE9ICdmdW5jdGlvbicpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKEZVTkNfRVJST1JfVEVYVCk7XG4gIH1cbiAgaWYgKGlzT2JqZWN0KG9wdGlvbnMpKSB7XG4gICAgbGVhZGluZyA9ICdsZWFkaW5nJyBpbiBvcHRpb25zID8gISFvcHRpb25zLmxlYWRpbmcgOiBsZWFkaW5nO1xuICAgIHRyYWlsaW5nID0gJ3RyYWlsaW5nJyBpbiBvcHRpb25zID8gISFvcHRpb25zLnRyYWlsaW5nIDogdHJhaWxpbmc7XG4gIH1cbiAgcmV0dXJuIGRlYm91bmNlKGZ1bmMsIHdhaXQsIHtcbiAgICAnbGVhZGluZyc6IGxlYWRpbmcsXG4gICAgJ21heFdhaXQnOiB3YWl0LFxuICAgICd0cmFpbGluZyc6IHRyYWlsaW5nXG4gIH0pO1xufVxuXG4vKipcbiAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIHRoZVxuICogW2xhbmd1YWdlIHR5cGVdKGh0dHA6Ly93d3cuZWNtYS1pbnRlcm5hdGlvbmFsLm9yZy9lY21hLTI2Mi83LjAvI3NlYy1lY21hc2NyaXB0LWxhbmd1YWdlLXR5cGVzKVxuICogb2YgYE9iamVjdGAuIChlLmcuIGFycmF5cywgZnVuY3Rpb25zLCBvYmplY3RzLCByZWdleGVzLCBgbmV3IE51bWJlcigwKWAsIGFuZCBgbmV3IFN0cmluZygnJylgKVxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgMC4xLjBcbiAqIEBjYXRlZ29yeSBMYW5nXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGFuIG9iamVjdCwgZWxzZSBgZmFsc2VgLlxuICogQGV4YW1wbGVcbiAqXG4gKiBfLmlzT2JqZWN0KHt9KTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmlzT2JqZWN0KFsxLCAyLCAzXSk7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5pc09iamVjdChfLm5vb3ApO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNPYmplY3QobnVsbCk7XG4gKiAvLyA9PiBmYWxzZVxuICovXG5mdW5jdGlvbiBpc09iamVjdCh2YWx1ZSkge1xuICB2YXIgdHlwZSA9IHR5cGVvZiB2YWx1ZTtcbiAgcmV0dXJuICEhdmFsdWUgJiYgKHR5cGUgPT0gJ29iamVjdCcgfHwgdHlwZSA9PSAnZnVuY3Rpb24nKTtcbn1cblxuLyoqXG4gKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBvYmplY3QtbGlrZS4gQSB2YWx1ZSBpcyBvYmplY3QtbGlrZSBpZiBpdCdzIG5vdCBgbnVsbGBcbiAqIGFuZCBoYXMgYSBgdHlwZW9mYCByZXN1bHQgb2YgXCJvYmplY3RcIi5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDQuMC4wXG4gKiBAY2F0ZWdvcnkgTGFuZ1xuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBvYmplY3QtbGlrZSwgZWxzZSBgZmFsc2VgLlxuICogQGV4YW1wbGVcbiAqXG4gKiBfLmlzT2JqZWN0TGlrZSh7fSk7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5pc09iamVjdExpa2UoWzEsIDIsIDNdKTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmlzT2JqZWN0TGlrZShfLm5vb3ApO1xuICogLy8gPT4gZmFsc2VcbiAqXG4gKiBfLmlzT2JqZWN0TGlrZShudWxsKTtcbiAqIC8vID0+IGZhbHNlXG4gKi9cbmZ1bmN0aW9uIGlzT2JqZWN0TGlrZSh2YWx1ZSkge1xuICByZXR1cm4gISF2YWx1ZSAmJiB0eXBlb2YgdmFsdWUgPT0gJ29iamVjdCc7XG59XG5cbi8qKlxuICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgY2xhc3NpZmllZCBhcyBhIGBTeW1ib2xgIHByaW1pdGl2ZSBvciBvYmplY3QuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSA0LjAuMFxuICogQGNhdGVnb3J5IExhbmdcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYSBzeW1ib2wsIGVsc2UgYGZhbHNlYC5cbiAqIEBleGFtcGxlXG4gKlxuICogXy5pc1N5bWJvbChTeW1ib2wuaXRlcmF0b3IpO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNTeW1ib2woJ2FiYycpO1xuICogLy8gPT4gZmFsc2VcbiAqL1xuZnVuY3Rpb24gaXNTeW1ib2wodmFsdWUpIHtcbiAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PSAnc3ltYm9sJyB8fFxuICAgIChpc09iamVjdExpa2UodmFsdWUpICYmIG9iamVjdFRvU3RyaW5nLmNhbGwodmFsdWUpID09IHN5bWJvbFRhZyk7XG59XG5cbi8qKlxuICogQ29udmVydHMgYHZhbHVlYCB0byBhIG51bWJlci5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDQuMC4wXG4gKiBAY2F0ZWdvcnkgTGFuZ1xuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gcHJvY2Vzcy5cbiAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIG51bWJlci5cbiAqIEBleGFtcGxlXG4gKlxuICogXy50b051bWJlcigzLjIpO1xuICogLy8gPT4gMy4yXG4gKlxuICogXy50b051bWJlcihOdW1iZXIuTUlOX1ZBTFVFKTtcbiAqIC8vID0+IDVlLTMyNFxuICpcbiAqIF8udG9OdW1iZXIoSW5maW5pdHkpO1xuICogLy8gPT4gSW5maW5pdHlcbiAqXG4gKiBfLnRvTnVtYmVyKCczLjInKTtcbiAqIC8vID0+IDMuMlxuICovXG5mdW5jdGlvbiB0b051bWJlcih2YWx1ZSkge1xuICBpZiAodHlwZW9mIHZhbHVlID09ICdudW1iZXInKSB7XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG4gIGlmIChpc1N5bWJvbCh2YWx1ZSkpIHtcbiAgICByZXR1cm4gTkFOO1xuICB9XG4gIGlmIChpc09iamVjdCh2YWx1ZSkpIHtcbiAgICB2YXIgb3RoZXIgPSB0eXBlb2YgdmFsdWUudmFsdWVPZiA9PSAnZnVuY3Rpb24nID8gdmFsdWUudmFsdWVPZigpIDogdmFsdWU7XG4gICAgdmFsdWUgPSBpc09iamVjdChvdGhlcikgPyAob3RoZXIgKyAnJykgOiBvdGhlcjtcbiAgfVxuICBpZiAodHlwZW9mIHZhbHVlICE9ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIHZhbHVlID09PSAwID8gdmFsdWUgOiArdmFsdWU7XG4gIH1cbiAgdmFsdWUgPSB2YWx1ZS5yZXBsYWNlKHJlVHJpbSwgJycpO1xuICB2YXIgaXNCaW5hcnkgPSByZUlzQmluYXJ5LnRlc3QodmFsdWUpO1xuICByZXR1cm4gKGlzQmluYXJ5IHx8IHJlSXNPY3RhbC50ZXN0KHZhbHVlKSlcbiAgICA/IGZyZWVQYXJzZUludCh2YWx1ZS5zbGljZSgyKSwgaXNCaW5hcnkgPyAyIDogOClcbiAgICA6IChyZUlzQmFkSGV4LnRlc3QodmFsdWUpID8gTkFOIDogK3ZhbHVlKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSB0aHJvdHRsZTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2xvZGFzaC50aHJvdHRsZS9pbmRleC5qc1xuLy8gbW9kdWxlIGlkID0gODMwXG4vLyBtb2R1bGUgY2h1bmtzID0gMSJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0EiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///830\n"); + +/***/ }), + +/***/ 831: +/*!***********************************************!*\ + !*** ./node_modules/lodash.debounce/index.js ***! + \***********************************************/ +/*! dynamic exports provided */ +/*! exports used: default */ +/***/ (function(module, exports, __webpack_require__) { + +eval("/* WEBPACK VAR INJECTION */(function(global) {/**\n * lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n result = wait - timeSinceLastCall;\n\n return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = debounce;\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(/*! ./../webpack/buildin/global.js */ 70)))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiODMxLmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC5kZWJvdW5jZS9pbmRleC5qcz9jYjViIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogbG9kYXNoIChDdXN0b20gQnVpbGQpIDxodHRwczovL2xvZGFzaC5jb20vPlxuICogQnVpbGQ6IGBsb2Rhc2ggbW9kdWxhcml6ZSBleHBvcnRzPVwibnBtXCIgLW8gLi9gXG4gKiBDb3B5cmlnaHQgalF1ZXJ5IEZvdW5kYXRpb24gYW5kIG90aGVyIGNvbnRyaWJ1dG9ycyA8aHR0cHM6Ly9qcXVlcnkub3JnLz5cbiAqIFJlbGVhc2VkIHVuZGVyIE1JVCBsaWNlbnNlIDxodHRwczovL2xvZGFzaC5jb20vbGljZW5zZT5cbiAqIEJhc2VkIG9uIFVuZGVyc2NvcmUuanMgMS44LjMgPGh0dHA6Ly91bmRlcnNjb3JlanMub3JnL0xJQ0VOU0U+XG4gKiBDb3B5cmlnaHQgSmVyZW15IEFzaGtlbmFzLCBEb2N1bWVudENsb3VkIGFuZCBJbnZlc3RpZ2F0aXZlIFJlcG9ydGVycyAmIEVkaXRvcnNcbiAqL1xuXG4vKiogVXNlZCBhcyB0aGUgYFR5cGVFcnJvcmAgbWVzc2FnZSBmb3IgXCJGdW5jdGlvbnNcIiBtZXRob2RzLiAqL1xudmFyIEZVTkNfRVJST1JfVEVYVCA9ICdFeHBlY3RlZCBhIGZ1bmN0aW9uJztcblxuLyoqIFVzZWQgYXMgcmVmZXJlbmNlcyBmb3IgdmFyaW91cyBgTnVtYmVyYCBjb25zdGFudHMuICovXG52YXIgTkFOID0gMCAvIDA7XG5cbi8qKiBgT2JqZWN0I3RvU3RyaW5nYCByZXN1bHQgcmVmZXJlbmNlcy4gKi9cbnZhciBzeW1ib2xUYWcgPSAnW29iamVjdCBTeW1ib2xdJztcblxuLyoqIFVzZWQgdG8gbWF0Y2ggbGVhZGluZyBhbmQgdHJhaWxpbmcgd2hpdGVzcGFjZS4gKi9cbnZhciByZVRyaW0gPSAvXlxccyt8XFxzKyQvZztcblxuLyoqIFVzZWQgdG8gZGV0ZWN0IGJhZCBzaWduZWQgaGV4YWRlY2ltYWwgc3RyaW5nIHZhbHVlcy4gKi9cbnZhciByZUlzQmFkSGV4ID0gL15bLStdMHhbMC05YS1mXSskL2k7XG5cbi8qKiBVc2VkIHRvIGRldGVjdCBiaW5hcnkgc3RyaW5nIHZhbHVlcy4gKi9cbnZhciByZUlzQmluYXJ5ID0gL14wYlswMV0rJC9pO1xuXG4vKiogVXNlZCB0byBkZXRlY3Qgb2N0YWwgc3RyaW5nIHZhbHVlcy4gKi9cbnZhciByZUlzT2N0YWwgPSAvXjBvWzAtN10rJC9pO1xuXG4vKiogQnVpbHQtaW4gbWV0aG9kIHJlZmVyZW5jZXMgd2l0aG91dCBhIGRlcGVuZGVuY3kgb24gYHJvb3RgLiAqL1xudmFyIGZyZWVQYXJzZUludCA9IHBhcnNlSW50O1xuXG4vKiogRGV0ZWN0IGZyZWUgdmFyaWFibGUgYGdsb2JhbGAgZnJvbSBOb2RlLmpzLiAqL1xudmFyIGZyZWVHbG9iYWwgPSB0eXBlb2YgZ2xvYmFsID09ICdvYmplY3QnICYmIGdsb2JhbCAmJiBnbG9iYWwuT2JqZWN0ID09PSBPYmplY3QgJiYgZ2xvYmFsO1xuXG4vKiogRGV0ZWN0IGZyZWUgdmFyaWFibGUgYHNlbGZgLiAqL1xudmFyIGZyZWVTZWxmID0gdHlwZW9mIHNlbGYgPT0gJ29iamVjdCcgJiYgc2VsZiAmJiBzZWxmLk9iamVjdCA9PT0gT2JqZWN0ICYmIHNlbGY7XG5cbi8qKiBVc2VkIGFzIGEgcmVmZXJlbmNlIHRvIHRoZSBnbG9iYWwgb2JqZWN0LiAqL1xudmFyIHJvb3QgPSBmcmVlR2xvYmFsIHx8IGZyZWVTZWxmIHx8IEZ1bmN0aW9uKCdyZXR1cm4gdGhpcycpKCk7XG5cbi8qKiBVc2VkIGZvciBidWlsdC1pbiBtZXRob2QgcmVmZXJlbmNlcy4gKi9cbnZhciBvYmplY3RQcm90byA9IE9iamVjdC5wcm90b3R5cGU7XG5cbi8qKlxuICogVXNlZCB0byByZXNvbHZlIHRoZVxuICogW2B0b1N0cmluZ1RhZ2BdKGh0dHA6Ly9lY21hLWludGVybmF0aW9uYWwub3JnL2VjbWEtMjYyLzcuMC8jc2VjLW9iamVjdC5wcm90b3R5cGUudG9zdHJpbmcpXG4gKiBvZiB2YWx1ZXMuXG4gKi9cbnZhciBvYmplY3RUb1N0cmluZyA9IG9iamVjdFByb3RvLnRvU3RyaW5nO1xuXG4vKiBCdWlsdC1pbiBtZXRob2QgcmVmZXJlbmNlcyBmb3IgdGhvc2Ugd2l0aCB0aGUgc2FtZSBuYW1lIGFzIG90aGVyIGBsb2Rhc2hgIG1ldGhvZHMuICovXG52YXIgbmF0aXZlTWF4ID0gTWF0aC5tYXgsXG4gICAgbmF0aXZlTWluID0gTWF0aC5taW47XG5cbi8qKlxuICogR2V0cyB0aGUgdGltZXN0YW1wIG9mIHRoZSBudW1iZXIgb2YgbWlsbGlzZWNvbmRzIHRoYXQgaGF2ZSBlbGFwc2VkIHNpbmNlXG4gKiB0aGUgVW5peCBlcG9jaCAoMSBKYW51YXJ5IDE5NzAgMDA6MDA6MDAgVVRDKS5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDIuNC4wXG4gKiBAY2F0ZWdvcnkgRGF0ZVxuICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyB0aGUgdGltZXN0YW1wLlxuICogQGV4YW1wbGVcbiAqXG4gKiBfLmRlZmVyKGZ1bmN0aW9uKHN0YW1wKSB7XG4gKiAgIGNvbnNvbGUubG9nKF8ubm93KCkgLSBzdGFtcCk7XG4gKiB9LCBfLm5vdygpKTtcbiAqIC8vID0+IExvZ3MgdGhlIG51bWJlciBvZiBtaWxsaXNlY29uZHMgaXQgdG9vayBmb3IgdGhlIGRlZmVycmVkIGludm9jYXRpb24uXG4gKi9cbnZhciBub3cgPSBmdW5jdGlvbigpIHtcbiAgcmV0dXJuIHJvb3QuRGF0ZS5ub3coKTtcbn07XG5cbi8qKlxuICogQ3JlYXRlcyBhIGRlYm91bmNlZCBmdW5jdGlvbiB0aGF0IGRlbGF5cyBpbnZva2luZyBgZnVuY2AgdW50aWwgYWZ0ZXIgYHdhaXRgXG4gKiBtaWxsaXNlY29uZHMgaGF2ZSBlbGFwc2VkIHNpbmNlIHRoZSBsYXN0IHRpbWUgdGhlIGRlYm91bmNlZCBmdW5jdGlvbiB3YXNcbiAqIGludm9rZWQuIFRoZSBkZWJvdW5jZWQgZnVuY3Rpb24gY29tZXMgd2l0aCBhIGBjYW5jZWxgIG1ldGhvZCB0byBjYW5jZWxcbiAqIGRlbGF5ZWQgYGZ1bmNgIGludm9jYXRpb25zIGFuZCBhIGBmbHVzaGAgbWV0aG9kIHRvIGltbWVkaWF0ZWx5IGludm9rZSB0aGVtLlxuICogUHJvdmlkZSBgb3B0aW9uc2AgdG8gaW5kaWNhdGUgd2hldGhlciBgZnVuY2Agc2hvdWxkIGJlIGludm9rZWQgb24gdGhlXG4gKiBsZWFkaW5nIGFuZC9vciB0cmFpbGluZyBlZGdlIG9mIHRoZSBgd2FpdGAgdGltZW91dC4gVGhlIGBmdW5jYCBpcyBpbnZva2VkXG4gKiB3aXRoIHRoZSBsYXN0IGFyZ3VtZW50cyBwcm92aWRlZCB0byB0aGUgZGVib3VuY2VkIGZ1bmN0aW9uLiBTdWJzZXF1ZW50XG4gKiBjYWxscyB0byB0aGUgZGVib3VuY2VkIGZ1bmN0aW9uIHJldHVybiB0aGUgcmVzdWx0IG9mIHRoZSBsYXN0IGBmdW5jYFxuICogaW52b2NhdGlvbi5cbiAqXG4gKiAqKk5vdGU6KiogSWYgYGxlYWRpbmdgIGFuZCBgdHJhaWxpbmdgIG9wdGlvbnMgYXJlIGB0cnVlYCwgYGZ1bmNgIGlzXG4gKiBpbnZva2VkIG9uIHRoZSB0cmFpbGluZyBlZGdlIG9mIHRoZSB0aW1lb3V0IG9ubHkgaWYgdGhlIGRlYm91bmNlZCBmdW5jdGlvblxuICogaXMgaW52b2tlZCBtb3JlIHRoYW4gb25jZSBkdXJpbmcgdGhlIGB3YWl0YCB0aW1lb3V0LlxuICpcbiAqIElmIGB3YWl0YCBpcyBgMGAgYW5kIGBsZWFkaW5nYCBpcyBgZmFsc2VgLCBgZnVuY2AgaW52b2NhdGlvbiBpcyBkZWZlcnJlZFxuICogdW50aWwgdG8gdGhlIG5leHQgdGljaywgc2ltaWxhciB0byBgc2V0VGltZW91dGAgd2l0aCBhIHRpbWVvdXQgb2YgYDBgLlxuICpcbiAqIFNlZSBbRGF2aWQgQ29yYmFjaG8ncyBhcnRpY2xlXShodHRwczovL2Nzcy10cmlja3MuY29tL2RlYm91bmNpbmctdGhyb3R0bGluZy1leHBsYWluZWQtZXhhbXBsZXMvKVxuICogZm9yIGRldGFpbHMgb3ZlciB0aGUgZGlmZmVyZW5jZXMgYmV0d2VlbiBgXy5kZWJvdW5jZWAgYW5kIGBfLnRocm90dGxlYC5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDAuMS4wXG4gKiBAY2F0ZWdvcnkgRnVuY3Rpb25cbiAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGRlYm91bmNlLlxuICogQHBhcmFtIHtudW1iZXJ9IFt3YWl0PTBdIFRoZSBudW1iZXIgb2YgbWlsbGlzZWNvbmRzIHRvIGRlbGF5LlxuICogQHBhcmFtIHtPYmplY3R9IFtvcHRpb25zPXt9XSBUaGUgb3B0aW9ucyBvYmplY3QuXG4gKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRpb25zLmxlYWRpbmc9ZmFsc2VdXG4gKiAgU3BlY2lmeSBpbnZva2luZyBvbiB0aGUgbGVhZGluZyBlZGdlIG9mIHRoZSB0aW1lb3V0LlxuICogQHBhcmFtIHtudW1iZXJ9IFtvcHRpb25zLm1heFdhaXRdXG4gKiAgVGhlIG1heGltdW0gdGltZSBgZnVuY2AgaXMgYWxsb3dlZCB0byBiZSBkZWxheWVkIGJlZm9yZSBpdCdzIGludm9rZWQuXG4gKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRpb25zLnRyYWlsaW5nPXRydWVdXG4gKiAgU3BlY2lmeSBpbnZva2luZyBvbiB0aGUgdHJhaWxpbmcgZWRnZSBvZiB0aGUgdGltZW91dC5cbiAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IGRlYm91bmNlZCBmdW5jdGlvbi5cbiAqIEBleGFtcGxlXG4gKlxuICogLy8gQXZvaWQgY29zdGx5IGNhbGN1bGF0aW9ucyB3aGlsZSB0aGUgd2luZG93IHNpemUgaXMgaW4gZmx1eC5cbiAqIGpRdWVyeSh3aW5kb3cpLm9uKCdyZXNpemUnLCBfLmRlYm91bmNlKGNhbGN1bGF0ZUxheW91dCwgMTUwKSk7XG4gKlxuICogLy8gSW52b2tlIGBzZW5kTWFpbGAgd2hlbiBjbGlja2VkLCBkZWJvdW5jaW5nIHN1YnNlcXVlbnQgY2FsbHMuXG4gKiBqUXVlcnkoZWxlbWVudCkub24oJ2NsaWNrJywgXy5kZWJvdW5jZShzZW5kTWFpbCwgMzAwLCB7XG4gKiAgICdsZWFkaW5nJzogdHJ1ZSxcbiAqICAgJ3RyYWlsaW5nJzogZmFsc2VcbiAqIH0pKTtcbiAqXG4gKiAvLyBFbnN1cmUgYGJhdGNoTG9nYCBpcyBpbnZva2VkIG9uY2UgYWZ0ZXIgMSBzZWNvbmQgb2YgZGVib3VuY2VkIGNhbGxzLlxuICogdmFyIGRlYm91bmNlZCA9IF8uZGVib3VuY2UoYmF0Y2hMb2csIDI1MCwgeyAnbWF4V2FpdCc6IDEwMDAgfSk7XG4gKiB2YXIgc291cmNlID0gbmV3IEV2ZW50U291cmNlKCcvc3RyZWFtJyk7XG4gKiBqUXVlcnkoc291cmNlKS5vbignbWVzc2FnZScsIGRlYm91bmNlZCk7XG4gKlxuICogLy8gQ2FuY2VsIHRoZSB0cmFpbGluZyBkZWJvdW5jZWQgaW52b2NhdGlvbi5cbiAqIGpRdWVyeSh3aW5kb3cpLm9uKCdwb3BzdGF0ZScsIGRlYm91bmNlZC5jYW5jZWwpO1xuICovXG5mdW5jdGlvbiBkZWJvdW5jZShmdW5jLCB3YWl0LCBvcHRpb25zKSB7XG4gIHZhciBsYXN0QXJncyxcbiAgICAgIGxhc3RUaGlzLFxuICAgICAgbWF4V2FpdCxcbiAgICAgIHJlc3VsdCxcbiAgICAgIHRpbWVySWQsXG4gICAgICBsYXN0Q2FsbFRpbWUsXG4gICAgICBsYXN0SW52b2tlVGltZSA9IDAsXG4gICAgICBsZWFkaW5nID0gZmFsc2UsXG4gICAgICBtYXhpbmcgPSBmYWxzZSxcbiAgICAgIHRyYWlsaW5nID0gdHJ1ZTtcblxuICBpZiAodHlwZW9mIGZ1bmMgIT0gJ2Z1bmN0aW9uJykge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoRlVOQ19FUlJPUl9URVhUKTtcbiAgfVxuICB3YWl0ID0gdG9OdW1iZXIod2FpdCkgfHwgMDtcbiAgaWYgKGlzT2JqZWN0KG9wdGlvbnMpKSB7XG4gICAgbGVhZGluZyA9ICEhb3B0aW9ucy5sZWFkaW5nO1xuICAgIG1heGluZyA9ICdtYXhXYWl0JyBpbiBvcHRpb25zO1xuICAgIG1heFdhaXQgPSBtYXhpbmcgPyBuYXRpdmVNYXgodG9OdW1iZXIob3B0aW9ucy5tYXhXYWl0KSB8fCAwLCB3YWl0KSA6IG1heFdhaXQ7XG4gICAgdHJhaWxpbmcgPSAndHJhaWxpbmcnIGluIG9wdGlvbnMgPyAhIW9wdGlvbnMudHJhaWxpbmcgOiB0cmFpbGluZztcbiAgfVxuXG4gIGZ1bmN0aW9uIGludm9rZUZ1bmModGltZSkge1xuICAgIHZhciBhcmdzID0gbGFzdEFyZ3MsXG4gICAgICAgIHRoaXNBcmcgPSBsYXN0VGhpcztcblxuICAgIGxhc3RBcmdzID0gbGFzdFRoaXMgPSB1bmRlZmluZWQ7XG4gICAgbGFzdEludm9rZVRpbWUgPSB0aW1lO1xuICAgIHJlc3VsdCA9IGZ1bmMuYXBwbHkodGhpc0FyZywgYXJncyk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIGZ1bmN0aW9uIGxlYWRpbmdFZGdlKHRpbWUpIHtcbiAgICAvLyBSZXNldCBhbnkgYG1heFdhaXRgIHRpbWVyLlxuICAgIGxhc3RJbnZva2VUaW1lID0gdGltZTtcbiAgICAvLyBTdGFydCB0aGUgdGltZXIgZm9yIHRoZSB0cmFpbGluZyBlZGdlLlxuICAgIHRpbWVySWQgPSBzZXRUaW1lb3V0KHRpbWVyRXhwaXJlZCwgd2FpdCk7XG4gICAgLy8gSW52b2tlIHRoZSBsZWFkaW5nIGVkZ2UuXG4gICAgcmV0dXJuIGxlYWRpbmcgPyBpbnZva2VGdW5jKHRpbWUpIDogcmVzdWx0O1xuICB9XG5cbiAgZnVuY3Rpb24gcmVtYWluaW5nV2FpdCh0aW1lKSB7XG4gICAgdmFyIHRpbWVTaW5jZUxhc3RDYWxsID0gdGltZSAtIGxhc3RDYWxsVGltZSxcbiAgICAgICAgdGltZVNpbmNlTGFzdEludm9rZSA9IHRpbWUgLSBsYXN0SW52b2tlVGltZSxcbiAgICAgICAgcmVzdWx0ID0gd2FpdCAtIHRpbWVTaW5jZUxhc3RDYWxsO1xuXG4gICAgcmV0dXJuIG1heGluZyA/IG5hdGl2ZU1pbihyZXN1bHQsIG1heFdhaXQgLSB0aW1lU2luY2VMYXN0SW52b2tlKSA6IHJlc3VsdDtcbiAgfVxuXG4gIGZ1bmN0aW9uIHNob3VsZEludm9rZSh0aW1lKSB7XG4gICAgdmFyIHRpbWVTaW5jZUxhc3RDYWxsID0gdGltZSAtIGxhc3RDYWxsVGltZSxcbiAgICAgICAgdGltZVNpbmNlTGFzdEludm9rZSA9IHRpbWUgLSBsYXN0SW52b2tlVGltZTtcblxuICAgIC8vIEVpdGhlciB0aGlzIGlzIHRoZSBmaXJzdCBjYWxsLCBhY3Rpdml0eSBoYXMgc3RvcHBlZCBhbmQgd2UncmUgYXQgdGhlXG4gICAgLy8gdHJhaWxpbmcgZWRnZSwgdGhlIHN5c3RlbSB0aW1lIGhhcyBnb25lIGJhY2t3YXJkcyBhbmQgd2UncmUgdHJlYXRpbmdcbiAgICAvLyBpdCBhcyB0aGUgdHJhaWxpbmcgZWRnZSwgb3Igd2UndmUgaGl0IHRoZSBgbWF4V2FpdGAgbGltaXQuXG4gICAgcmV0dXJuIChsYXN0Q2FsbFRpbWUgPT09IHVuZGVmaW5lZCB8fCAodGltZVNpbmNlTGFzdENhbGwgPj0gd2FpdCkgfHxcbiAgICAgICh0aW1lU2luY2VMYXN0Q2FsbCA8IDApIHx8IChtYXhpbmcgJiYgdGltZVNpbmNlTGFzdEludm9rZSA+PSBtYXhXYWl0KSk7XG4gIH1cblxuICBmdW5jdGlvbiB0aW1lckV4cGlyZWQoKSB7XG4gICAgdmFyIHRpbWUgPSBub3coKTtcbiAgICBpZiAoc2hvdWxkSW52b2tlKHRpbWUpKSB7XG4gICAgICByZXR1cm4gdHJhaWxpbmdFZGdlKHRpbWUpO1xuICAgIH1cbiAgICAvLyBSZXN0YXJ0IHRoZSB0aW1lci5cbiAgICB0aW1lcklkID0gc2V0VGltZW91dCh0aW1lckV4cGlyZWQsIHJlbWFpbmluZ1dhaXQodGltZSkpO1xuICB9XG5cbiAgZnVuY3Rpb24gdHJhaWxpbmdFZGdlKHRpbWUpIHtcbiAgICB0aW1lcklkID0gdW5kZWZpbmVkO1xuXG4gICAgLy8gT25seSBpbnZva2UgaWYgd2UgaGF2ZSBgbGFzdEFyZ3NgIHdoaWNoIG1lYW5zIGBmdW5jYCBoYXMgYmVlblxuICAgIC8vIGRlYm91bmNlZCBhdCBsZWFzdCBvbmNlLlxuICAgIGlmICh0cmFpbGluZyAmJiBsYXN0QXJncykge1xuICAgICAgcmV0dXJuIGludm9rZUZ1bmModGltZSk7XG4gICAgfVxuICAgIGxhc3RBcmdzID0gbGFzdFRoaXMgPSB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIGZ1bmN0aW9uIGNhbmNlbCgpIHtcbiAgICBpZiAodGltZXJJZCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBjbGVhclRpbWVvdXQodGltZXJJZCk7XG4gICAgfVxuICAgIGxhc3RJbnZva2VUaW1lID0gMDtcbiAgICBsYXN0QXJncyA9IGxhc3RDYWxsVGltZSA9IGxhc3RUaGlzID0gdGltZXJJZCA9IHVuZGVmaW5lZDtcbiAgfVxuXG4gIGZ1bmN0aW9uIGZsdXNoKCkge1xuICAgIHJldHVybiB0aW1lcklkID09PSB1bmRlZmluZWQgPyByZXN1bHQgOiB0cmFpbGluZ0VkZ2Uobm93KCkpO1xuICB9XG5cbiAgZnVuY3Rpb24gZGVib3VuY2VkKCkge1xuICAgIHZhciB0aW1lID0gbm93KCksXG4gICAgICAgIGlzSW52b2tpbmcgPSBzaG91bGRJbnZva2UodGltZSk7XG5cbiAgICBsYXN0QXJncyA9IGFyZ3VtZW50cztcbiAgICBsYXN0VGhpcyA9IHRoaXM7XG4gICAgbGFzdENhbGxUaW1lID0gdGltZTtcblxuICAgIGlmIChpc0ludm9raW5nKSB7XG4gICAgICBpZiAodGltZXJJZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHJldHVybiBsZWFkaW5nRWRnZShsYXN0Q2FsbFRpbWUpO1xuICAgICAgfVxuICAgICAgaWYgKG1heGluZykge1xuICAgICAgICAvLyBIYW5kbGUgaW52b2NhdGlvbnMgaW4gYSB0aWdodCBsb29wLlxuICAgICAgICB0aW1lcklkID0gc2V0VGltZW91dCh0aW1lckV4cGlyZWQsIHdhaXQpO1xuICAgICAgICByZXR1cm4gaW52b2tlRnVuYyhsYXN0Q2FsbFRpbWUpO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAodGltZXJJZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aW1lcklkID0gc2V0VGltZW91dCh0aW1lckV4cGlyZWQsIHdhaXQpO1xuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG4gIGRlYm91bmNlZC5jYW5jZWwgPSBjYW5jZWw7XG4gIGRlYm91bmNlZC5mbHVzaCA9IGZsdXNoO1xuICByZXR1cm4gZGVib3VuY2VkO1xufVxuXG4vKipcbiAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIHRoZVxuICogW2xhbmd1YWdlIHR5cGVdKGh0dHA6Ly93d3cuZWNtYS1pbnRlcm5hdGlvbmFsLm9yZy9lY21hLTI2Mi83LjAvI3NlYy1lY21hc2NyaXB0LWxhbmd1YWdlLXR5cGVzKVxuICogb2YgYE9iamVjdGAuIChlLmcuIGFycmF5cywgZnVuY3Rpb25zLCBvYmplY3RzLCByZWdleGVzLCBgbmV3IE51bWJlcigwKWAsIGFuZCBgbmV3IFN0cmluZygnJylgKVxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgMC4xLjBcbiAqIEBjYXRlZ29yeSBMYW5nXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGFuIG9iamVjdCwgZWxzZSBgZmFsc2VgLlxuICogQGV4YW1wbGVcbiAqXG4gKiBfLmlzT2JqZWN0KHt9KTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmlzT2JqZWN0KFsxLCAyLCAzXSk7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5pc09iamVjdChfLm5vb3ApO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNPYmplY3QobnVsbCk7XG4gKiAvLyA9PiBmYWxzZVxuICovXG5mdW5jdGlvbiBpc09iamVjdCh2YWx1ZSkge1xuICB2YXIgdHlwZSA9IHR5cGVvZiB2YWx1ZTtcbiAgcmV0dXJuICEhdmFsdWUgJiYgKHR5cGUgPT0gJ29iamVjdCcgfHwgdHlwZSA9PSAnZnVuY3Rpb24nKTtcbn1cblxuLyoqXG4gKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBvYmplY3QtbGlrZS4gQSB2YWx1ZSBpcyBvYmplY3QtbGlrZSBpZiBpdCdzIG5vdCBgbnVsbGBcbiAqIGFuZCBoYXMgYSBgdHlwZW9mYCByZXN1bHQgb2YgXCJvYmplY3RcIi5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDQuMC4wXG4gKiBAY2F0ZWdvcnkgTGFuZ1xuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBvYmplY3QtbGlrZSwgZWxzZSBgZmFsc2VgLlxuICogQGV4YW1wbGVcbiAqXG4gKiBfLmlzT2JqZWN0TGlrZSh7fSk7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5pc09iamVjdExpa2UoWzEsIDIsIDNdKTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmlzT2JqZWN0TGlrZShfLm5vb3ApO1xuICogLy8gPT4gZmFsc2VcbiAqXG4gKiBfLmlzT2JqZWN0TGlrZShudWxsKTtcbiAqIC8vID0+IGZhbHNlXG4gKi9cbmZ1bmN0aW9uIGlzT2JqZWN0TGlrZSh2YWx1ZSkge1xuICByZXR1cm4gISF2YWx1ZSAmJiB0eXBlb2YgdmFsdWUgPT0gJ29iamVjdCc7XG59XG5cbi8qKlxuICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgY2xhc3NpZmllZCBhcyBhIGBTeW1ib2xgIHByaW1pdGl2ZSBvciBvYmplY3QuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSA0LjAuMFxuICogQGNhdGVnb3J5IExhbmdcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYSBzeW1ib2wsIGVsc2UgYGZhbHNlYC5cbiAqIEBleGFtcGxlXG4gKlxuICogXy5pc1N5bWJvbChTeW1ib2wuaXRlcmF0b3IpO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNTeW1ib2woJ2FiYycpO1xuICogLy8gPT4gZmFsc2VcbiAqL1xuZnVuY3Rpb24gaXNTeW1ib2wodmFsdWUpIHtcbiAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PSAnc3ltYm9sJyB8fFxuICAgIChpc09iamVjdExpa2UodmFsdWUpICYmIG9iamVjdFRvU3RyaW5nLmNhbGwodmFsdWUpID09IHN5bWJvbFRhZyk7XG59XG5cbi8qKlxuICogQ29udmVydHMgYHZhbHVlYCB0byBhIG51bWJlci5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDQuMC4wXG4gKiBAY2F0ZWdvcnkgTGFuZ1xuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gcHJvY2Vzcy5cbiAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIG51bWJlci5cbiAqIEBleGFtcGxlXG4gKlxuICogXy50b051bWJlcigzLjIpO1xuICogLy8gPT4gMy4yXG4gKlxuICogXy50b051bWJlcihOdW1iZXIuTUlOX1ZBTFVFKTtcbiAqIC8vID0+IDVlLTMyNFxuICpcbiAqIF8udG9OdW1iZXIoSW5maW5pdHkpO1xuICogLy8gPT4gSW5maW5pdHlcbiAqXG4gKiBfLnRvTnVtYmVyKCczLjInKTtcbiAqIC8vID0+IDMuMlxuICovXG5mdW5jdGlvbiB0b051bWJlcih2YWx1ZSkge1xuICBpZiAodHlwZW9mIHZhbHVlID09ICdudW1iZXInKSB7XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG4gIGlmIChpc1N5bWJvbCh2YWx1ZSkpIHtcbiAgICByZXR1cm4gTkFOO1xuICB9XG4gIGlmIChpc09iamVjdCh2YWx1ZSkpIHtcbiAgICB2YXIgb3RoZXIgPSB0eXBlb2YgdmFsdWUudmFsdWVPZiA9PSAnZnVuY3Rpb24nID8gdmFsdWUudmFsdWVPZigpIDogdmFsdWU7XG4gICAgdmFsdWUgPSBpc09iamVjdChvdGhlcikgPyAob3RoZXIgKyAnJykgOiBvdGhlcjtcbiAgfVxuICBpZiAodHlwZW9mIHZhbHVlICE9ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIHZhbHVlID09PSAwID8gdmFsdWUgOiArdmFsdWU7XG4gIH1cbiAgdmFsdWUgPSB2YWx1ZS5yZXBsYWNlKHJlVHJpbSwgJycpO1xuICB2YXIgaXNCaW5hcnkgPSByZUlzQmluYXJ5LnRlc3QodmFsdWUpO1xuICByZXR1cm4gKGlzQmluYXJ5IHx8IHJlSXNPY3RhbC50ZXN0KHZhbHVlKSlcbiAgICA/IGZyZWVQYXJzZUludCh2YWx1ZS5zbGljZSgyKSwgaXNCaW5hcnkgPyAyIDogOClcbiAgICA6IChyZUlzQmFkSGV4LnRlc3QodmFsdWUpID8gTkFOIDogK3ZhbHVlKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBkZWJvdW5jZTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2xvZGFzaC5kZWJvdW5jZS9pbmRleC5qc1xuLy8gbW9kdWxlIGlkID0gODMxXG4vLyBtb2R1bGUgY2h1bmtzID0gMSJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///831\n"); + +/***/ }), + +/***/ 832: +/*!**********************************************!*\ + !*** ./node_modules/lodash.memoize/index.js ***! + \**********************************************/ +/*! dynamic exports provided */ +/*! exports used: default */ +/***/ (function(module, exports, __webpack_require__) { + +eval("/* WEBPACK VAR INJECTION */(function(global) {/**\n * lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** `Object#toString` result references. */\nvar funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\n/**\n * Checks if `value` is a host object in IE < 9.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a host object, else `false`.\n */\nfunction isHostObject(value) {\n // Many host objects are `Object` objects that can coerce to strings\n // despite having improperly defined `toString` methods.\n var result = false;\n if (value != null && typeof value.toString != 'function') {\n try {\n result = !!(value + '');\n } catch (e) {}\n }\n return result;\n}\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype,\n funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map'),\n nativeCreate = getNative(Object, 'create');\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n}\n\n/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n return this.has(key) && delete this.__data__[key];\n}\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? data[key] !== undefined : hasOwnProperty.call(data, key);\n}\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n}\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n return true;\n}\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n return getMapData(this, key)['delete'](key);\n}\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n getMapData(this, key).set(key, value);\n return this;\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = (isFunction(value) || isHostObject(value)) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\n/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to process.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result);\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Assign cache to `_.memoize`.\nmemoize.Cache = MapCache;\n\n/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 8-9 which returns 'object' for typed array and other constructors.\n var tag = isObject(value) ? objectToString.call(value) : '';\n return tag == funcTag || tag == genTag;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\nmodule.exports = memoize;\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(/*! ./../webpack/buildin/global.js */ 70)))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiODMyLmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC5tZW1vaXplL2luZGV4LmpzP2E2MTYiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBsb2Rhc2ggKEN1c3RvbSBCdWlsZCkgPGh0dHBzOi8vbG9kYXNoLmNvbS8+XG4gKiBCdWlsZDogYGxvZGFzaCBtb2R1bGFyaXplIGV4cG9ydHM9XCJucG1cIiAtbyAuL2BcbiAqIENvcHlyaWdodCBqUXVlcnkgRm91bmRhdGlvbiBhbmQgb3RoZXIgY29udHJpYnV0b3JzIDxodHRwczovL2pxdWVyeS5vcmcvPlxuICogUmVsZWFzZWQgdW5kZXIgTUlUIGxpY2Vuc2UgPGh0dHBzOi8vbG9kYXNoLmNvbS9saWNlbnNlPlxuICogQmFzZWQgb24gVW5kZXJzY29yZS5qcyAxLjguMyA8aHR0cDovL3VuZGVyc2NvcmVqcy5vcmcvTElDRU5TRT5cbiAqIENvcHlyaWdodCBKZXJlbXkgQXNoa2VuYXMsIERvY3VtZW50Q2xvdWQgYW5kIEludmVzdGlnYXRpdmUgUmVwb3J0ZXJzICYgRWRpdG9yc1xuICovXG5cbi8qKiBVc2VkIGFzIHRoZSBgVHlwZUVycm9yYCBtZXNzYWdlIGZvciBcIkZ1bmN0aW9uc1wiIG1ldGhvZHMuICovXG52YXIgRlVOQ19FUlJPUl9URVhUID0gJ0V4cGVjdGVkIGEgZnVuY3Rpb24nO1xuXG4vKiogVXNlZCB0byBzdGFuZC1pbiBmb3IgYHVuZGVmaW5lZGAgaGFzaCB2YWx1ZXMuICovXG52YXIgSEFTSF9VTkRFRklORUQgPSAnX19sb2Rhc2hfaGFzaF91bmRlZmluZWRfXyc7XG5cbi8qKiBgT2JqZWN0I3RvU3RyaW5nYCByZXN1bHQgcmVmZXJlbmNlcy4gKi9cbnZhciBmdW5jVGFnID0gJ1tvYmplY3QgRnVuY3Rpb25dJyxcbiAgICBnZW5UYWcgPSAnW29iamVjdCBHZW5lcmF0b3JGdW5jdGlvbl0nO1xuXG4vKipcbiAqIFVzZWQgdG8gbWF0Y2ggYFJlZ0V4cGBcbiAqIFtzeW50YXggY2hhcmFjdGVyc10oaHR0cDovL2VjbWEtaW50ZXJuYXRpb25hbC5vcmcvZWNtYS0yNjIvNy4wLyNzZWMtcGF0dGVybnMpLlxuICovXG52YXIgcmVSZWdFeHBDaGFyID0gL1tcXFxcXiQuKis/KClbXFxde318XS9nO1xuXG4vKiogVXNlZCB0byBkZXRlY3QgaG9zdCBjb25zdHJ1Y3RvcnMgKFNhZmFyaSkuICovXG52YXIgcmVJc0hvc3RDdG9yID0gL15cXFtvYmplY3QgLis/Q29uc3RydWN0b3JcXF0kLztcblxuLyoqIERldGVjdCBmcmVlIHZhcmlhYmxlIGBnbG9iYWxgIGZyb20gTm9kZS5qcy4gKi9cbnZhciBmcmVlR2xvYmFsID0gdHlwZW9mIGdsb2JhbCA9PSAnb2JqZWN0JyAmJiBnbG9iYWwgJiYgZ2xvYmFsLk9iamVjdCA9PT0gT2JqZWN0ICYmIGdsb2JhbDtcblxuLyoqIERldGVjdCBmcmVlIHZhcmlhYmxlIGBzZWxmYC4gKi9cbnZhciBmcmVlU2VsZiA9IHR5cGVvZiBzZWxmID09ICdvYmplY3QnICYmIHNlbGYgJiYgc2VsZi5PYmplY3QgPT09IE9iamVjdCAmJiBzZWxmO1xuXG4vKiogVXNlZCBhcyBhIHJlZmVyZW5jZSB0byB0aGUgZ2xvYmFsIG9iamVjdC4gKi9cbnZhciByb290ID0gZnJlZUdsb2JhbCB8fCBmcmVlU2VsZiB8fCBGdW5jdGlvbigncmV0dXJuIHRoaXMnKSgpO1xuXG4vKipcbiAqIEdldHMgdGhlIHZhbHVlIGF0IGBrZXlgIG9mIGBvYmplY3RgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge09iamVjdH0gW29iamVjdF0gVGhlIG9iamVjdCB0byBxdWVyeS5cbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgcHJvcGVydHkgdG8gZ2V0LlxuICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIHByb3BlcnR5IHZhbHVlLlxuICovXG5mdW5jdGlvbiBnZXRWYWx1ZShvYmplY3QsIGtleSkge1xuICByZXR1cm4gb2JqZWN0ID09IG51bGwgPyB1bmRlZmluZWQgOiBvYmplY3Rba2V5XTtcbn1cblxuLyoqXG4gKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBhIGhvc3Qgb2JqZWN0IGluIElFIDwgOS5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhIGhvc3Qgb2JqZWN0LCBlbHNlIGBmYWxzZWAuXG4gKi9cbmZ1bmN0aW9uIGlzSG9zdE9iamVjdCh2YWx1ZSkge1xuICAvLyBNYW55IGhvc3Qgb2JqZWN0cyBhcmUgYE9iamVjdGAgb2JqZWN0cyB0aGF0IGNhbiBjb2VyY2UgdG8gc3RyaW5nc1xuICAvLyBkZXNwaXRlIGhhdmluZyBpbXByb3Blcmx5IGRlZmluZWQgYHRvU3RyaW5nYCBtZXRob2RzLlxuICB2YXIgcmVzdWx0ID0gZmFsc2U7XG4gIGlmICh2YWx1ZSAhPSBudWxsICYmIHR5cGVvZiB2YWx1ZS50b1N0cmluZyAhPSAnZnVuY3Rpb24nKSB7XG4gICAgdHJ5IHtcbiAgICAgIHJlc3VsdCA9ICEhKHZhbHVlICsgJycpO1xuICAgIH0gY2F0Y2ggKGUpIHt9XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuLyoqIFVzZWQgZm9yIGJ1aWx0LWluIG1ldGhvZCByZWZlcmVuY2VzLiAqL1xudmFyIGFycmF5UHJvdG8gPSBBcnJheS5wcm90b3R5cGUsXG4gICAgZnVuY1Byb3RvID0gRnVuY3Rpb24ucHJvdG90eXBlLFxuICAgIG9iamVjdFByb3RvID0gT2JqZWN0LnByb3RvdHlwZTtcblxuLyoqIFVzZWQgdG8gZGV0ZWN0IG92ZXJyZWFjaGluZyBjb3JlLWpzIHNoaW1zLiAqL1xudmFyIGNvcmVKc0RhdGEgPSByb290WydfX2NvcmUtanNfc2hhcmVkX18nXTtcblxuLyoqIFVzZWQgdG8gZGV0ZWN0IG1ldGhvZHMgbWFzcXVlcmFkaW5nIGFzIG5hdGl2ZS4gKi9cbnZhciBtYXNrU3JjS2V5ID0gKGZ1bmN0aW9uKCkge1xuICB2YXIgdWlkID0gL1teLl0rJC8uZXhlYyhjb3JlSnNEYXRhICYmIGNvcmVKc0RhdGEua2V5cyAmJiBjb3JlSnNEYXRhLmtleXMuSUVfUFJPVE8gfHwgJycpO1xuICByZXR1cm4gdWlkID8gKCdTeW1ib2woc3JjKV8xLicgKyB1aWQpIDogJyc7XG59KCkpO1xuXG4vKiogVXNlZCB0byByZXNvbHZlIHRoZSBkZWNvbXBpbGVkIHNvdXJjZSBvZiBmdW5jdGlvbnMuICovXG52YXIgZnVuY1RvU3RyaW5nID0gZnVuY1Byb3RvLnRvU3RyaW5nO1xuXG4vKiogVXNlZCB0byBjaGVjayBvYmplY3RzIGZvciBvd24gcHJvcGVydGllcy4gKi9cbnZhciBoYXNPd25Qcm9wZXJ0eSA9IG9iamVjdFByb3RvLmhhc093blByb3BlcnR5O1xuXG4vKipcbiAqIFVzZWQgdG8gcmVzb2x2ZSB0aGVcbiAqIFtgdG9TdHJpbmdUYWdgXShodHRwOi8vZWNtYS1pbnRlcm5hdGlvbmFsLm9yZy9lY21hLTI2Mi83LjAvI3NlYy1vYmplY3QucHJvdG90eXBlLnRvc3RyaW5nKVxuICogb2YgdmFsdWVzLlxuICovXG52YXIgb2JqZWN0VG9TdHJpbmcgPSBvYmplY3RQcm90by50b1N0cmluZztcblxuLyoqIFVzZWQgdG8gZGV0ZWN0IGlmIGEgbWV0aG9kIGlzIG5hdGl2ZS4gKi9cbnZhciByZUlzTmF0aXZlID0gUmVnRXhwKCdeJyArXG4gIGZ1bmNUb1N0cmluZy5jYWxsKGhhc093blByb3BlcnR5KS5yZXBsYWNlKHJlUmVnRXhwQ2hhciwgJ1xcXFwkJicpXG4gIC5yZXBsYWNlKC9oYXNPd25Qcm9wZXJ0eXwoZnVuY3Rpb24pLio/KD89XFxcXFxcKCl8IGZvciAuKz8oPz1cXFxcXFxdKS9nLCAnJDEuKj8nKSArICckJ1xuKTtcblxuLyoqIEJ1aWx0LWluIHZhbHVlIHJlZmVyZW5jZXMuICovXG52YXIgc3BsaWNlID0gYXJyYXlQcm90by5zcGxpY2U7XG5cbi8qIEJ1aWx0LWluIG1ldGhvZCByZWZlcmVuY2VzIHRoYXQgYXJlIHZlcmlmaWVkIHRvIGJlIG5hdGl2ZS4gKi9cbnZhciBNYXAgPSBnZXROYXRpdmUocm9vdCwgJ01hcCcpLFxuICAgIG5hdGl2ZUNyZWF0ZSA9IGdldE5hdGl2ZShPYmplY3QsICdjcmVhdGUnKTtcblxuLyoqXG4gKiBDcmVhdGVzIGEgaGFzaCBvYmplY3QuXG4gKlxuICogQHByaXZhdGVcbiAqIEBjb25zdHJ1Y3RvclxuICogQHBhcmFtIHtBcnJheX0gW2VudHJpZXNdIFRoZSBrZXktdmFsdWUgcGFpcnMgdG8gY2FjaGUuXG4gKi9cbmZ1bmN0aW9uIEhhc2goZW50cmllcykge1xuICB2YXIgaW5kZXggPSAtMSxcbiAgICAgIGxlbmd0aCA9IGVudHJpZXMgPyBlbnRyaWVzLmxlbmd0aCA6IDA7XG5cbiAgdGhpcy5jbGVhcigpO1xuICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgIHZhciBlbnRyeSA9IGVudHJpZXNbaW5kZXhdO1xuICAgIHRoaXMuc2V0KGVudHJ5WzBdLCBlbnRyeVsxXSk7XG4gIH1cbn1cblxuLyoqXG4gKiBSZW1vdmVzIGFsbCBrZXktdmFsdWUgZW50cmllcyBmcm9tIHRoZSBoYXNoLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAbmFtZSBjbGVhclxuICogQG1lbWJlck9mIEhhc2hcbiAqL1xuZnVuY3Rpb24gaGFzaENsZWFyKCkge1xuICB0aGlzLl9fZGF0YV9fID0gbmF0aXZlQ3JlYXRlID8gbmF0aXZlQ3JlYXRlKG51bGwpIDoge307XG59XG5cbi8qKlxuICogUmVtb3ZlcyBga2V5YCBhbmQgaXRzIHZhbHVlIGZyb20gdGhlIGhhc2guXG4gKlxuICogQHByaXZhdGVcbiAqIEBuYW1lIGRlbGV0ZVxuICogQG1lbWJlck9mIEhhc2hcbiAqIEBwYXJhbSB7T2JqZWN0fSBoYXNoIFRoZSBoYXNoIHRvIG1vZGlmeS5cbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgdmFsdWUgdG8gcmVtb3ZlLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIHRoZSBlbnRyeSB3YXMgcmVtb3ZlZCwgZWxzZSBgZmFsc2VgLlxuICovXG5mdW5jdGlvbiBoYXNoRGVsZXRlKGtleSkge1xuICByZXR1cm4gdGhpcy5oYXMoa2V5KSAmJiBkZWxldGUgdGhpcy5fX2RhdGFfX1trZXldO1xufVxuXG4vKipcbiAqIEdldHMgdGhlIGhhc2ggdmFsdWUgZm9yIGBrZXlgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAbmFtZSBnZXRcbiAqIEBtZW1iZXJPZiBIYXNoXG4gKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSBrZXkgb2YgdGhlIHZhbHVlIHRvIGdldC5cbiAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSBlbnRyeSB2YWx1ZS5cbiAqL1xuZnVuY3Rpb24gaGFzaEdldChrZXkpIHtcbiAgdmFyIGRhdGEgPSB0aGlzLl9fZGF0YV9fO1xuICBpZiAobmF0aXZlQ3JlYXRlKSB7XG4gICAgdmFyIHJlc3VsdCA9IGRhdGFba2V5XTtcbiAgICByZXR1cm4gcmVzdWx0ID09PSBIQVNIX1VOREVGSU5FRCA/IHVuZGVmaW5lZCA6IHJlc3VsdDtcbiAgfVxuICByZXR1cm4gaGFzT3duUHJvcGVydHkuY2FsbChkYXRhLCBrZXkpID8gZGF0YVtrZXldIDogdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIENoZWNrcyBpZiBhIGhhc2ggdmFsdWUgZm9yIGBrZXlgIGV4aXN0cy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQG5hbWUgaGFzXG4gKiBAbWVtYmVyT2YgSGFzaFxuICogQHBhcmFtIHtzdHJpbmd9IGtleSBUaGUga2V5IG9mIHRoZSBlbnRyeSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBhbiBlbnRyeSBmb3IgYGtleWAgZXhpc3RzLCBlbHNlIGBmYWxzZWAuXG4gKi9cbmZ1bmN0aW9uIGhhc2hIYXMoa2V5KSB7XG4gIHZhciBkYXRhID0gdGhpcy5fX2RhdGFfXztcbiAgcmV0dXJuIG5hdGl2ZUNyZWF0ZSA/IGRhdGFba2V5XSAhPT0gdW5kZWZpbmVkIDogaGFzT3duUHJvcGVydHkuY2FsbChkYXRhLCBrZXkpO1xufVxuXG4vKipcbiAqIFNldHMgdGhlIGhhc2ggYGtleWAgdG8gYHZhbHVlYC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQG5hbWUgc2V0XG4gKiBAbWVtYmVyT2YgSGFzaFxuICogQHBhcmFtIHtzdHJpbmd9IGtleSBUaGUga2V5IG9mIHRoZSB2YWx1ZSB0byBzZXQuXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBzZXQuXG4gKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBoYXNoIGluc3RhbmNlLlxuICovXG5mdW5jdGlvbiBoYXNoU2V0KGtleSwgdmFsdWUpIHtcbiAgdmFyIGRhdGEgPSB0aGlzLl9fZGF0YV9fO1xuICBkYXRhW2tleV0gPSAobmF0aXZlQ3JlYXRlICYmIHZhbHVlID09PSB1bmRlZmluZWQpID8gSEFTSF9VTkRFRklORUQgOiB2YWx1ZTtcbiAgcmV0dXJuIHRoaXM7XG59XG5cbi8vIEFkZCBtZXRob2RzIHRvIGBIYXNoYC5cbkhhc2gucHJvdG90eXBlLmNsZWFyID0gaGFzaENsZWFyO1xuSGFzaC5wcm90b3R5cGVbJ2RlbGV0ZSddID0gaGFzaERlbGV0ZTtcbkhhc2gucHJvdG90eXBlLmdldCA9IGhhc2hHZXQ7XG5IYXNoLnByb3RvdHlwZS5oYXMgPSBoYXNoSGFzO1xuSGFzaC5wcm90b3R5cGUuc2V0ID0gaGFzaFNldDtcblxuLyoqXG4gKiBDcmVhdGVzIGFuIGxpc3QgY2FjaGUgb2JqZWN0LlxuICpcbiAqIEBwcml2YXRlXG4gKiBAY29uc3RydWN0b3JcbiAqIEBwYXJhbSB7QXJyYXl9IFtlbnRyaWVzXSBUaGUga2V5LXZhbHVlIHBhaXJzIHRvIGNhY2hlLlxuICovXG5mdW5jdGlvbiBMaXN0Q2FjaGUoZW50cmllcykge1xuICB2YXIgaW5kZXggPSAtMSxcbiAgICAgIGxlbmd0aCA9IGVudHJpZXMgPyBlbnRyaWVzLmxlbmd0aCA6IDA7XG5cbiAgdGhpcy5jbGVhcigpO1xuICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgIHZhciBlbnRyeSA9IGVudHJpZXNbaW5kZXhdO1xuICAgIHRoaXMuc2V0KGVudHJ5WzBdLCBlbnRyeVsxXSk7XG4gIH1cbn1cblxuLyoqXG4gKiBSZW1vdmVzIGFsbCBrZXktdmFsdWUgZW50cmllcyBmcm9tIHRoZSBsaXN0IGNhY2hlLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAbmFtZSBjbGVhclxuICogQG1lbWJlck9mIExpc3RDYWNoZVxuICovXG5mdW5jdGlvbiBsaXN0Q2FjaGVDbGVhcigpIHtcbiAgdGhpcy5fX2RhdGFfXyA9IFtdO1xufVxuXG4vKipcbiAqIFJlbW92ZXMgYGtleWAgYW5kIGl0cyB2YWx1ZSBmcm9tIHRoZSBsaXN0IGNhY2hlLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAbmFtZSBkZWxldGVcbiAqIEBtZW1iZXJPZiBMaXN0Q2FjaGVcbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgdmFsdWUgdG8gcmVtb3ZlLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIHRoZSBlbnRyeSB3YXMgcmVtb3ZlZCwgZWxzZSBgZmFsc2VgLlxuICovXG5mdW5jdGlvbiBsaXN0Q2FjaGVEZWxldGUoa2V5KSB7XG4gIHZhciBkYXRhID0gdGhpcy5fX2RhdGFfXyxcbiAgICAgIGluZGV4ID0gYXNzb2NJbmRleE9mKGRhdGEsIGtleSk7XG5cbiAgaWYgKGluZGV4IDwgMCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICB2YXIgbGFzdEluZGV4ID0gZGF0YS5sZW5ndGggLSAxO1xuICBpZiAoaW5kZXggPT0gbGFzdEluZGV4KSB7XG4gICAgZGF0YS5wb3AoKTtcbiAgfSBlbHNlIHtcbiAgICBzcGxpY2UuY2FsbChkYXRhLCBpbmRleCwgMSk7XG4gIH1cbiAgcmV0dXJuIHRydWU7XG59XG5cbi8qKlxuICogR2V0cyB0aGUgbGlzdCBjYWNoZSB2YWx1ZSBmb3IgYGtleWAuXG4gKlxuICogQHByaXZhdGVcbiAqIEBuYW1lIGdldFxuICogQG1lbWJlck9mIExpc3RDYWNoZVxuICogQHBhcmFtIHtzdHJpbmd9IGtleSBUaGUga2V5IG9mIHRoZSB2YWx1ZSB0byBnZXQuXG4gKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgZW50cnkgdmFsdWUuXG4gKi9cbmZ1bmN0aW9uIGxpc3RDYWNoZUdldChrZXkpIHtcbiAgdmFyIGRhdGEgPSB0aGlzLl9fZGF0YV9fLFxuICAgICAgaW5kZXggPSBhc3NvY0luZGV4T2YoZGF0YSwga2V5KTtcblxuICByZXR1cm4gaW5kZXggPCAwID8gdW5kZWZpbmVkIDogZGF0YVtpbmRleF1bMV07XG59XG5cbi8qKlxuICogQ2hlY2tzIGlmIGEgbGlzdCBjYWNoZSB2YWx1ZSBmb3IgYGtleWAgZXhpc3RzLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAbmFtZSBoYXNcbiAqIEBtZW1iZXJPZiBMaXN0Q2FjaGVcbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgZW50cnkgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYW4gZW50cnkgZm9yIGBrZXlgIGV4aXN0cywgZWxzZSBgZmFsc2VgLlxuICovXG5mdW5jdGlvbiBsaXN0Q2FjaGVIYXMoa2V5KSB7XG4gIHJldHVybiBhc3NvY0luZGV4T2YodGhpcy5fX2RhdGFfXywga2V5KSA+IC0xO1xufVxuXG4vKipcbiAqIFNldHMgdGhlIGxpc3QgY2FjaGUgYGtleWAgdG8gYHZhbHVlYC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQG5hbWUgc2V0XG4gKiBAbWVtYmVyT2YgTGlzdENhY2hlXG4gKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSBrZXkgb2YgdGhlIHZhbHVlIHRvIHNldC5cbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIHNldC5cbiAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgdGhlIGxpc3QgY2FjaGUgaW5zdGFuY2UuXG4gKi9cbmZ1bmN0aW9uIGxpc3RDYWNoZVNldChrZXksIHZhbHVlKSB7XG4gIHZhciBkYXRhID0gdGhpcy5fX2RhdGFfXyxcbiAgICAgIGluZGV4ID0gYXNzb2NJbmRleE9mKGRhdGEsIGtleSk7XG5cbiAgaWYgKGluZGV4IDwgMCkge1xuICAgIGRhdGEucHVzaChba2V5LCB2YWx1ZV0pO1xuICB9IGVsc2Uge1xuICAgIGRhdGFbaW5kZXhdWzFdID0gdmFsdWU7XG4gIH1cbiAgcmV0dXJuIHRoaXM7XG59XG5cbi8vIEFkZCBtZXRob2RzIHRvIGBMaXN0Q2FjaGVgLlxuTGlzdENhY2hlLnByb3RvdHlwZS5jbGVhciA9IGxpc3RDYWNoZUNsZWFyO1xuTGlzdENhY2hlLnByb3RvdHlwZVsnZGVsZXRlJ10gPSBsaXN0Q2FjaGVEZWxldGU7XG5MaXN0Q2FjaGUucHJvdG90eXBlLmdldCA9IGxpc3RDYWNoZUdldDtcbkxpc3RDYWNoZS5wcm90b3R5cGUuaGFzID0gbGlzdENhY2hlSGFzO1xuTGlzdENhY2hlLnByb3RvdHlwZS5zZXQgPSBsaXN0Q2FjaGVTZXQ7XG5cbi8qKlxuICogQ3JlYXRlcyBhIG1hcCBjYWNoZSBvYmplY3QgdG8gc3RvcmUga2V5LXZhbHVlIHBhaXJzLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAY29uc3RydWN0b3JcbiAqIEBwYXJhbSB7QXJyYXl9IFtlbnRyaWVzXSBUaGUga2V5LXZhbHVlIHBhaXJzIHRvIGNhY2hlLlxuICovXG5mdW5jdGlvbiBNYXBDYWNoZShlbnRyaWVzKSB7XG4gIHZhciBpbmRleCA9IC0xLFxuICAgICAgbGVuZ3RoID0gZW50cmllcyA/IGVudHJpZXMubGVuZ3RoIDogMDtcblxuICB0aGlzLmNsZWFyKCk7XG4gIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgdmFyIGVudHJ5ID0gZW50cmllc1tpbmRleF07XG4gICAgdGhpcy5zZXQoZW50cnlbMF0sIGVudHJ5WzFdKTtcbiAgfVxufVxuXG4vKipcbiAqIFJlbW92ZXMgYWxsIGtleS12YWx1ZSBlbnRyaWVzIGZyb20gdGhlIG1hcC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQG5hbWUgY2xlYXJcbiAqIEBtZW1iZXJPZiBNYXBDYWNoZVxuICovXG5mdW5jdGlvbiBtYXBDYWNoZUNsZWFyKCkge1xuICB0aGlzLl9fZGF0YV9fID0ge1xuICAgICdoYXNoJzogbmV3IEhhc2gsXG4gICAgJ21hcCc6IG5ldyAoTWFwIHx8IExpc3RDYWNoZSksXG4gICAgJ3N0cmluZyc6IG5ldyBIYXNoXG4gIH07XG59XG5cbi8qKlxuICogUmVtb3ZlcyBga2V5YCBhbmQgaXRzIHZhbHVlIGZyb20gdGhlIG1hcC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQG5hbWUgZGVsZXRlXG4gKiBAbWVtYmVyT2YgTWFwQ2FjaGVcbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgdmFsdWUgdG8gcmVtb3ZlLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIHRoZSBlbnRyeSB3YXMgcmVtb3ZlZCwgZWxzZSBgZmFsc2VgLlxuICovXG5mdW5jdGlvbiBtYXBDYWNoZURlbGV0ZShrZXkpIHtcbiAgcmV0dXJuIGdldE1hcERhdGEodGhpcywga2V5KVsnZGVsZXRlJ10oa2V5KTtcbn1cblxuLyoqXG4gKiBHZXRzIHRoZSBtYXAgdmFsdWUgZm9yIGBrZXlgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAbmFtZSBnZXRcbiAqIEBtZW1iZXJPZiBNYXBDYWNoZVxuICogQHBhcmFtIHtzdHJpbmd9IGtleSBUaGUga2V5IG9mIHRoZSB2YWx1ZSB0byBnZXQuXG4gKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgZW50cnkgdmFsdWUuXG4gKi9cbmZ1bmN0aW9uIG1hcENhY2hlR2V0KGtleSkge1xuICByZXR1cm4gZ2V0TWFwRGF0YSh0aGlzLCBrZXkpLmdldChrZXkpO1xufVxuXG4vKipcbiAqIENoZWNrcyBpZiBhIG1hcCB2YWx1ZSBmb3IgYGtleWAgZXhpc3RzLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAbmFtZSBoYXNcbiAqIEBtZW1iZXJPZiBNYXBDYWNoZVxuICogQHBhcmFtIHtzdHJpbmd9IGtleSBUaGUga2V5IG9mIHRoZSBlbnRyeSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBhbiBlbnRyeSBmb3IgYGtleWAgZXhpc3RzLCBlbHNlIGBmYWxzZWAuXG4gKi9cbmZ1bmN0aW9uIG1hcENhY2hlSGFzKGtleSkge1xuICByZXR1cm4gZ2V0TWFwRGF0YSh0aGlzLCBrZXkpLmhhcyhrZXkpO1xufVxuXG4vKipcbiAqIFNldHMgdGhlIG1hcCBga2V5YCB0byBgdmFsdWVgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAbmFtZSBzZXRcbiAqIEBtZW1iZXJPZiBNYXBDYWNoZVxuICogQHBhcmFtIHtzdHJpbmd9IGtleSBUaGUga2V5IG9mIHRoZSB2YWx1ZSB0byBzZXQuXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBzZXQuXG4gKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBtYXAgY2FjaGUgaW5zdGFuY2UuXG4gKi9cbmZ1bmN0aW9uIG1hcENhY2hlU2V0KGtleSwgdmFsdWUpIHtcbiAgZ2V0TWFwRGF0YSh0aGlzLCBrZXkpLnNldChrZXksIHZhbHVlKTtcbiAgcmV0dXJuIHRoaXM7XG59XG5cbi8vIEFkZCBtZXRob2RzIHRvIGBNYXBDYWNoZWAuXG5NYXBDYWNoZS5wcm90b3R5cGUuY2xlYXIgPSBtYXBDYWNoZUNsZWFyO1xuTWFwQ2FjaGUucHJvdG90eXBlWydkZWxldGUnXSA9IG1hcENhY2hlRGVsZXRlO1xuTWFwQ2FjaGUucHJvdG90eXBlLmdldCA9IG1hcENhY2hlR2V0O1xuTWFwQ2FjaGUucHJvdG90eXBlLmhhcyA9IG1hcENhY2hlSGFzO1xuTWFwQ2FjaGUucHJvdG90eXBlLnNldCA9IG1hcENhY2hlU2V0O1xuXG4vKipcbiAqIEdldHMgdGhlIGluZGV4IGF0IHdoaWNoIHRoZSBga2V5YCBpcyBmb3VuZCBpbiBgYXJyYXlgIG9mIGtleS12YWx1ZSBwYWlycy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIGluc3BlY3QuXG4gKiBAcGFyYW0geyp9IGtleSBUaGUga2V5IHRvIHNlYXJjaCBmb3IuXG4gKiBAcmV0dXJucyB7bnVtYmVyfSBSZXR1cm5zIHRoZSBpbmRleCBvZiB0aGUgbWF0Y2hlZCB2YWx1ZSwgZWxzZSBgLTFgLlxuICovXG5mdW5jdGlvbiBhc3NvY0luZGV4T2YoYXJyYXksIGtleSkge1xuICB2YXIgbGVuZ3RoID0gYXJyYXkubGVuZ3RoO1xuICB3aGlsZSAobGVuZ3RoLS0pIHtcbiAgICBpZiAoZXEoYXJyYXlbbGVuZ3RoXVswXSwga2V5KSkge1xuICAgICAgcmV0dXJuIGxlbmd0aDtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIC0xO1xufVxuXG4vKipcbiAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLmlzTmF0aXZlYCB3aXRob3V0IGJhZCBzaGltIGNoZWNrcy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhIG5hdGl2ZSBmdW5jdGlvbixcbiAqICBlbHNlIGBmYWxzZWAuXG4gKi9cbmZ1bmN0aW9uIGJhc2VJc05hdGl2ZSh2YWx1ZSkge1xuICBpZiAoIWlzT2JqZWN0KHZhbHVlKSB8fCBpc01hc2tlZCh2YWx1ZSkpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgdmFyIHBhdHRlcm4gPSAoaXNGdW5jdGlvbih2YWx1ZSkgfHwgaXNIb3N0T2JqZWN0KHZhbHVlKSkgPyByZUlzTmF0aXZlIDogcmVJc0hvc3RDdG9yO1xuICByZXR1cm4gcGF0dGVybi50ZXN0KHRvU291cmNlKHZhbHVlKSk7XG59XG5cbi8qKlxuICogR2V0cyB0aGUgZGF0YSBmb3IgYG1hcGAuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7T2JqZWN0fSBtYXAgVGhlIG1hcCB0byBxdWVyeS5cbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIHJlZmVyZW5jZSBrZXkuXG4gKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgbWFwIGRhdGEuXG4gKi9cbmZ1bmN0aW9uIGdldE1hcERhdGEobWFwLCBrZXkpIHtcbiAgdmFyIGRhdGEgPSBtYXAuX19kYXRhX187XG4gIHJldHVybiBpc0tleWFibGUoa2V5KVxuICAgID8gZGF0YVt0eXBlb2Yga2V5ID09ICdzdHJpbmcnID8gJ3N0cmluZycgOiAnaGFzaCddXG4gICAgOiBkYXRhLm1hcDtcbn1cblxuLyoqXG4gKiBHZXRzIHRoZSBuYXRpdmUgZnVuY3Rpb24gYXQgYGtleWAgb2YgYG9iamVjdGAuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBxdWVyeS5cbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgbWV0aG9kIHRvIGdldC5cbiAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSBmdW5jdGlvbiBpZiBpdCdzIG5hdGl2ZSwgZWxzZSBgdW5kZWZpbmVkYC5cbiAqL1xuZnVuY3Rpb24gZ2V0TmF0aXZlKG9iamVjdCwga2V5KSB7XG4gIHZhciB2YWx1ZSA9IGdldFZhbHVlKG9iamVjdCwga2V5KTtcbiAgcmV0dXJuIGJhc2VJc05hdGl2ZSh2YWx1ZSkgPyB2YWx1ZSA6IHVuZGVmaW5lZDtcbn1cblxuLyoqXG4gKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBzdWl0YWJsZSBmb3IgdXNlIGFzIHVuaXF1ZSBvYmplY3Qga2V5LlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIHN1aXRhYmxlLCBlbHNlIGBmYWxzZWAuXG4gKi9cbmZ1bmN0aW9uIGlzS2V5YWJsZSh2YWx1ZSkge1xuICB2YXIgdHlwZSA9IHR5cGVvZiB2YWx1ZTtcbiAgcmV0dXJuICh0eXBlID09ICdzdHJpbmcnIHx8IHR5cGUgPT0gJ251bWJlcicgfHwgdHlwZSA9PSAnc3ltYm9sJyB8fCB0eXBlID09ICdib29sZWFuJylcbiAgICA/ICh2YWx1ZSAhPT0gJ19fcHJvdG9fXycpXG4gICAgOiAodmFsdWUgPT09IG51bGwpO1xufVxuXG4vKipcbiAqIENoZWNrcyBpZiBgZnVuY2AgaGFzIGl0cyBzb3VyY2UgbWFza2VkLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgZnVuY2AgaXMgbWFza2VkLCBlbHNlIGBmYWxzZWAuXG4gKi9cbmZ1bmN0aW9uIGlzTWFza2VkKGZ1bmMpIHtcbiAgcmV0dXJuICEhbWFza1NyY0tleSAmJiAobWFza1NyY0tleSBpbiBmdW5jKTtcbn1cblxuLyoqXG4gKiBDb252ZXJ0cyBgZnVuY2AgdG8gaXRzIHNvdXJjZSBjb2RlLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byBwcm9jZXNzLlxuICogQHJldHVybnMge3N0cmluZ30gUmV0dXJucyB0aGUgc291cmNlIGNvZGUuXG4gKi9cbmZ1bmN0aW9uIHRvU291cmNlKGZ1bmMpIHtcbiAgaWYgKGZ1bmMgIT0gbnVsbCkge1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4gZnVuY1RvU3RyaW5nLmNhbGwoZnVuYyk7XG4gICAgfSBjYXRjaCAoZSkge31cbiAgICB0cnkge1xuICAgICAgcmV0dXJuIChmdW5jICsgJycpO1xuICAgIH0gY2F0Y2ggKGUpIHt9XG4gIH1cbiAgcmV0dXJuICcnO1xufVxuXG4vKipcbiAqIENyZWF0ZXMgYSBmdW5jdGlvbiB0aGF0IG1lbW9pemVzIHRoZSByZXN1bHQgb2YgYGZ1bmNgLiBJZiBgcmVzb2x2ZXJgIGlzXG4gKiBwcm92aWRlZCwgaXQgZGV0ZXJtaW5lcyB0aGUgY2FjaGUga2V5IGZvciBzdG9yaW5nIHRoZSByZXN1bHQgYmFzZWQgb24gdGhlXG4gKiBhcmd1bWVudHMgcHJvdmlkZWQgdG8gdGhlIG1lbW9pemVkIGZ1bmN0aW9uLiBCeSBkZWZhdWx0LCB0aGUgZmlyc3QgYXJndW1lbnRcbiAqIHByb3ZpZGVkIHRvIHRoZSBtZW1vaXplZCBmdW5jdGlvbiBpcyB1c2VkIGFzIHRoZSBtYXAgY2FjaGUga2V5LiBUaGUgYGZ1bmNgXG4gKiBpcyBpbnZva2VkIHdpdGggdGhlIGB0aGlzYCBiaW5kaW5nIG9mIHRoZSBtZW1vaXplZCBmdW5jdGlvbi5cbiAqXG4gKiAqKk5vdGU6KiogVGhlIGNhY2hlIGlzIGV4cG9zZWQgYXMgdGhlIGBjYWNoZWAgcHJvcGVydHkgb24gdGhlIG1lbW9pemVkXG4gKiBmdW5jdGlvbi4gSXRzIGNyZWF0aW9uIG1heSBiZSBjdXN0b21pemVkIGJ5IHJlcGxhY2luZyB0aGUgYF8ubWVtb2l6ZS5DYWNoZWBcbiAqIGNvbnN0cnVjdG9yIHdpdGggb25lIHdob3NlIGluc3RhbmNlcyBpbXBsZW1lbnQgdGhlXG4gKiBbYE1hcGBdKGh0dHA6Ly9lY21hLWludGVybmF0aW9uYWwub3JnL2VjbWEtMjYyLzcuMC8jc2VjLXByb3BlcnRpZXMtb2YtdGhlLW1hcC1wcm90b3R5cGUtb2JqZWN0KVxuICogbWV0aG9kIGludGVyZmFjZSBvZiBgZGVsZXRlYCwgYGdldGAsIGBoYXNgLCBhbmQgYHNldGAuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSAwLjEuMFxuICogQGNhdGVnb3J5IEZ1bmN0aW9uXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byBoYXZlIGl0cyBvdXRwdXQgbWVtb2l6ZWQuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBbcmVzb2x2ZXJdIFRoZSBmdW5jdGlvbiB0byByZXNvbHZlIHRoZSBjYWNoZSBrZXkuXG4gKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBtZW1vaXplZCBmdW5jdGlvbi5cbiAqIEBleGFtcGxlXG4gKlxuICogdmFyIG9iamVjdCA9IHsgJ2EnOiAxLCAnYic6IDIgfTtcbiAqIHZhciBvdGhlciA9IHsgJ2MnOiAzLCAnZCc6IDQgfTtcbiAqXG4gKiB2YXIgdmFsdWVzID0gXy5tZW1vaXplKF8udmFsdWVzKTtcbiAqIHZhbHVlcyhvYmplY3QpO1xuICogLy8gPT4gWzEsIDJdXG4gKlxuICogdmFsdWVzKG90aGVyKTtcbiAqIC8vID0+IFszLCA0XVxuICpcbiAqIG9iamVjdC5hID0gMjtcbiAqIHZhbHVlcyhvYmplY3QpO1xuICogLy8gPT4gWzEsIDJdXG4gKlxuICogLy8gTW9kaWZ5IHRoZSByZXN1bHQgY2FjaGUuXG4gKiB2YWx1ZXMuY2FjaGUuc2V0KG9iamVjdCwgWydhJywgJ2InXSk7XG4gKiB2YWx1ZXMob2JqZWN0KTtcbiAqIC8vID0+IFsnYScsICdiJ11cbiAqXG4gKiAvLyBSZXBsYWNlIGBfLm1lbW9pemUuQ2FjaGVgLlxuICogXy5tZW1vaXplLkNhY2hlID0gV2Vha01hcDtcbiAqL1xuZnVuY3Rpb24gbWVtb2l6ZShmdW5jLCByZXNvbHZlcikge1xuICBpZiAodHlwZW9mIGZ1bmMgIT0gJ2Z1bmN0aW9uJyB8fCAocmVzb2x2ZXIgJiYgdHlwZW9mIHJlc29sdmVyICE9ICdmdW5jdGlvbicpKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcihGVU5DX0VSUk9SX1RFWFQpO1xuICB9XG4gIHZhciBtZW1vaXplZCA9IGZ1bmN0aW9uKCkge1xuICAgIHZhciBhcmdzID0gYXJndW1lbnRzLFxuICAgICAgICBrZXkgPSByZXNvbHZlciA/IHJlc29sdmVyLmFwcGx5KHRoaXMsIGFyZ3MpIDogYXJnc1swXSxcbiAgICAgICAgY2FjaGUgPSBtZW1vaXplZC5jYWNoZTtcblxuICAgIGlmIChjYWNoZS5oYXMoa2V5KSkge1xuICAgICAgcmV0dXJuIGNhY2hlLmdldChrZXkpO1xuICAgIH1cbiAgICB2YXIgcmVzdWx0ID0gZnVuYy5hcHBseSh0aGlzLCBhcmdzKTtcbiAgICBtZW1vaXplZC5jYWNoZSA9IGNhY2hlLnNldChrZXksIHJlc3VsdCk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfTtcbiAgbWVtb2l6ZWQuY2FjaGUgPSBuZXcgKG1lbW9pemUuQ2FjaGUgfHwgTWFwQ2FjaGUpO1xuICByZXR1cm4gbWVtb2l6ZWQ7XG59XG5cbi8vIEFzc2lnbiBjYWNoZSB0byBgXy5tZW1vaXplYC5cbm1lbW9pemUuQ2FjaGUgPSBNYXBDYWNoZTtcblxuLyoqXG4gKiBQZXJmb3JtcyBhXG4gKiBbYFNhbWVWYWx1ZVplcm9gXShodHRwOi8vZWNtYS1pbnRlcm5hdGlvbmFsLm9yZy9lY21hLTI2Mi83LjAvI3NlYy1zYW1ldmFsdWV6ZXJvKVxuICogY29tcGFyaXNvbiBiZXR3ZWVuIHR3byB2YWx1ZXMgdG8gZGV0ZXJtaW5lIGlmIHRoZXkgYXJlIGVxdWl2YWxlbnQuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSA0LjAuMFxuICogQGNhdGVnb3J5IExhbmdcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNvbXBhcmUuXG4gKiBAcGFyYW0geyp9IG90aGVyIFRoZSBvdGhlciB2YWx1ZSB0byBjb21wYXJlLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIHRoZSB2YWx1ZXMgYXJlIGVxdWl2YWxlbnQsIGVsc2UgYGZhbHNlYC5cbiAqIEBleGFtcGxlXG4gKlxuICogdmFyIG9iamVjdCA9IHsgJ2EnOiAxIH07XG4gKiB2YXIgb3RoZXIgPSB7ICdhJzogMSB9O1xuICpcbiAqIF8uZXEob2JqZWN0LCBvYmplY3QpO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uZXEob2JqZWN0LCBvdGhlcik7XG4gKiAvLyA9PiBmYWxzZVxuICpcbiAqIF8uZXEoJ2EnLCAnYScpO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uZXEoJ2EnLCBPYmplY3QoJ2EnKSk7XG4gKiAvLyA9PiBmYWxzZVxuICpcbiAqIF8uZXEoTmFOLCBOYU4pO1xuICogLy8gPT4gdHJ1ZVxuICovXG5mdW5jdGlvbiBlcSh2YWx1ZSwgb3RoZXIpIHtcbiAgcmV0dXJuIHZhbHVlID09PSBvdGhlciB8fCAodmFsdWUgIT09IHZhbHVlICYmIG90aGVyICE9PSBvdGhlcik7XG59XG5cbi8qKlxuICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgY2xhc3NpZmllZCBhcyBhIGBGdW5jdGlvbmAgb2JqZWN0LlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgMC4xLjBcbiAqIEBjYXRlZ29yeSBMYW5nXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGEgZnVuY3Rpb24sIGVsc2UgYGZhbHNlYC5cbiAqIEBleGFtcGxlXG4gKlxuICogXy5pc0Z1bmN0aW9uKF8pO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNGdW5jdGlvbigvYWJjLyk7XG4gKiAvLyA9PiBmYWxzZVxuICovXG5mdW5jdGlvbiBpc0Z1bmN0aW9uKHZhbHVlKSB7XG4gIC8vIFRoZSB1c2Ugb2YgYE9iamVjdCN0b1N0cmluZ2AgYXZvaWRzIGlzc3VlcyB3aXRoIHRoZSBgdHlwZW9mYCBvcGVyYXRvclxuICAvLyBpbiBTYWZhcmkgOC05IHdoaWNoIHJldHVybnMgJ29iamVjdCcgZm9yIHR5cGVkIGFycmF5IGFuZCBvdGhlciBjb25zdHJ1Y3RvcnMuXG4gIHZhciB0YWcgPSBpc09iamVjdCh2YWx1ZSkgPyBvYmplY3RUb1N0cmluZy5jYWxsKHZhbHVlKSA6ICcnO1xuICByZXR1cm4gdGFnID09IGZ1bmNUYWcgfHwgdGFnID09IGdlblRhZztcbn1cblxuLyoqXG4gKiBDaGVja3MgaWYgYHZhbHVlYCBpcyB0aGVcbiAqIFtsYW5ndWFnZSB0eXBlXShodHRwOi8vd3d3LmVjbWEtaW50ZXJuYXRpb25hbC5vcmcvZWNtYS0yNjIvNy4wLyNzZWMtZWNtYXNjcmlwdC1sYW5ndWFnZS10eXBlcylcbiAqIG9mIGBPYmplY3RgLiAoZS5nLiBhcnJheXMsIGZ1bmN0aW9ucywgb2JqZWN0cywgcmVnZXhlcywgYG5ldyBOdW1iZXIoMClgLCBhbmQgYG5ldyBTdHJpbmcoJycpYClcbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDAuMS4wXG4gKiBAY2F0ZWdvcnkgTGFuZ1xuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhbiBvYmplY3QsIGVsc2UgYGZhbHNlYC5cbiAqIEBleGFtcGxlXG4gKlxuICogXy5pc09iamVjdCh7fSk7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5pc09iamVjdChbMSwgMiwgM10pO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNPYmplY3QoXy5ub29wKTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmlzT2JqZWN0KG51bGwpO1xuICogLy8gPT4gZmFsc2VcbiAqL1xuZnVuY3Rpb24gaXNPYmplY3QodmFsdWUpIHtcbiAgdmFyIHR5cGUgPSB0eXBlb2YgdmFsdWU7XG4gIHJldHVybiAhIXZhbHVlICYmICh0eXBlID09ICdvYmplY3QnIHx8IHR5cGUgPT0gJ2Z1bmN0aW9uJyk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gbWVtb2l6ZTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2xvZGFzaC5tZW1vaXplL2luZGV4LmpzXG4vLyBtb2R1bGUgaWQgPSA4MzJcbi8vIG1vZHVsZSBjaHVua3MgPSAxIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///832\n"); + +/***/ }), + +/***/ 833: +/*!*************************************************************************!*\ + !*** ./node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js ***! + \*************************************************************************/ +/*! exports provided: default */ +/*! exports used: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("/* WEBPACK VAR INJECTION */(function(global) {/**\r\n * A collection of shims that provide minimal functionality of the ES6 collections.\r\n *\r\n * These implementations are not meant to be used outside of the ResizeObserver\r\n * modules as they cover only a limited range of use cases.\r\n */\r\n/* eslint-disable require-jsdoc, valid-jsdoc */\r\nvar MapShim = (function () {\r\n if (typeof Map !== 'undefined') {\r\n return Map;\r\n }\r\n /**\r\n * Returns index in provided array that matches the specified key.\r\n *\r\n * @param {Array} arr\r\n * @param {*} key\r\n * @returns {number}\r\n */\r\n function getIndex(arr, key) {\r\n var result = -1;\r\n arr.some(function (entry, index) {\r\n if (entry[0] === key) {\r\n result = index;\r\n return true;\r\n }\r\n return false;\r\n });\r\n return result;\r\n }\r\n return /** @class */ (function () {\r\n function class_1() {\r\n this.__entries__ = [];\r\n }\r\n Object.defineProperty(class_1.prototype, \"size\", {\r\n /**\r\n * @returns {boolean}\r\n */\r\n get: function () {\r\n return this.__entries__.length;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * @param {*} key\r\n * @returns {*}\r\n */\r\n class_1.prototype.get = function (key) {\r\n var index = getIndex(this.__entries__, key);\r\n var entry = this.__entries__[index];\r\n return entry && entry[1];\r\n };\r\n /**\r\n * @param {*} key\r\n * @param {*} value\r\n * @returns {void}\r\n */\r\n class_1.prototype.set = function (key, value) {\r\n var index = getIndex(this.__entries__, key);\r\n if (~index) {\r\n this.__entries__[index][1] = value;\r\n }\r\n else {\r\n this.__entries__.push([key, value]);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.delete = function (key) {\r\n var entries = this.__entries__;\r\n var index = getIndex(entries, key);\r\n if (~index) {\r\n entries.splice(index, 1);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.has = function (key) {\r\n return !!~getIndex(this.__entries__, key);\r\n };\r\n /**\r\n * @returns {void}\r\n */\r\n class_1.prototype.clear = function () {\r\n this.__entries__.splice(0);\r\n };\r\n /**\r\n * @param {Function} callback\r\n * @param {*} [ctx=null]\r\n * @returns {void}\r\n */\r\n class_1.prototype.forEach = function (callback, ctx) {\r\n if (ctx === void 0) { ctx = null; }\r\n for (var _i = 0, _a = this.__entries__; _i < _a.length; _i++) {\r\n var entry = _a[_i];\r\n callback.call(ctx, entry[1], entry[0]);\r\n }\r\n };\r\n return class_1;\r\n }());\r\n})();\n\n/**\r\n * Detects whether window and document objects are available in current environment.\r\n */\r\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && window.document === document;\n\n// Returns global object of a current environment.\r\nvar global$1 = (function () {\r\n if (typeof global !== 'undefined' && global.Math === Math) {\r\n return global;\r\n }\r\n if (typeof self !== 'undefined' && self.Math === Math) {\r\n return self;\r\n }\r\n if (typeof window !== 'undefined' && window.Math === Math) {\r\n return window;\r\n }\r\n // eslint-disable-next-line no-new-func\r\n return Function('return this')();\r\n})();\n\n/**\r\n * A shim for the requestAnimationFrame which falls back to the setTimeout if\r\n * first one is not supported.\r\n *\r\n * @returns {number} Requests' identifier.\r\n */\r\nvar requestAnimationFrame$1 = (function () {\r\n if (typeof requestAnimationFrame === 'function') {\r\n // It's required to use a bounded function because IE sometimes throws\r\n // an \"Invalid calling object\" error if rAF is invoked without the global\r\n // object on the left hand side.\r\n return requestAnimationFrame.bind(global$1);\r\n }\r\n return function (callback) { return setTimeout(function () { return callback(Date.now()); }, 1000 / 60); };\r\n})();\n\n// Defines minimum timeout before adding a trailing call.\r\nvar trailingTimeout = 2;\r\n/**\r\n * Creates a wrapper function which ensures that provided callback will be\r\n * invoked only once during the specified delay period.\r\n *\r\n * @param {Function} callback - Function to be invoked after the delay period.\r\n * @param {number} delay - Delay after which to invoke callback.\r\n * @returns {Function}\r\n */\r\nfunction throttle (callback, delay) {\r\n var leadingCall = false, trailingCall = false, lastCallTime = 0;\r\n /**\r\n * Invokes the original callback function and schedules new invocation if\r\n * the \"proxy\" was called during current request.\r\n *\r\n * @returns {void}\r\n */\r\n function resolvePending() {\r\n if (leadingCall) {\r\n leadingCall = false;\r\n callback();\r\n }\r\n if (trailingCall) {\r\n proxy();\r\n }\r\n }\r\n /**\r\n * Callback invoked after the specified delay. It will further postpone\r\n * invocation of the original function delegating it to the\r\n * requestAnimationFrame.\r\n *\r\n * @returns {void}\r\n */\r\n function timeoutCallback() {\r\n requestAnimationFrame$1(resolvePending);\r\n }\r\n /**\r\n * Schedules invocation of the original function.\r\n *\r\n * @returns {void}\r\n */\r\n function proxy() {\r\n var timeStamp = Date.now();\r\n if (leadingCall) {\r\n // Reject immediately following calls.\r\n if (timeStamp - lastCallTime < trailingTimeout) {\r\n return;\r\n }\r\n // Schedule new call to be in invoked when the pending one is resolved.\r\n // This is important for \"transitions\" which never actually start\r\n // immediately so there is a chance that we might miss one if change\r\n // happens amids the pending invocation.\r\n trailingCall = true;\r\n }\r\n else {\r\n leadingCall = true;\r\n trailingCall = false;\r\n setTimeout(timeoutCallback, delay);\r\n }\r\n lastCallTime = timeStamp;\r\n }\r\n return proxy;\r\n}\n\n// Minimum delay before invoking the update of observers.\r\nvar REFRESH_DELAY = 20;\r\n// A list of substrings of CSS properties used to find transition events that\r\n// might affect dimensions of observed elements.\r\nvar transitionKeys = ['top', 'right', 'bottom', 'left', 'width', 'height', 'size', 'weight'];\r\n// Check if MutationObserver is available.\r\nvar mutationObserverSupported = typeof MutationObserver !== 'undefined';\r\n/**\r\n * Singleton controller class which handles updates of ResizeObserver instances.\r\n */\r\nvar ResizeObserverController = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserverController.\r\n *\r\n * @private\r\n */\r\n function ResizeObserverController() {\r\n /**\r\n * Indicates whether DOM listeners have been added.\r\n *\r\n * @private {boolean}\r\n */\r\n this.connected_ = false;\r\n /**\r\n * Tells that controller has subscribed for Mutation Events.\r\n *\r\n * @private {boolean}\r\n */\r\n this.mutationEventsAdded_ = false;\r\n /**\r\n * Keeps reference to the instance of MutationObserver.\r\n *\r\n * @private {MutationObserver}\r\n */\r\n this.mutationsObserver_ = null;\r\n /**\r\n * A list of connected observers.\r\n *\r\n * @private {Array}\r\n */\r\n this.observers_ = [];\r\n this.onTransitionEnd_ = this.onTransitionEnd_.bind(this);\r\n this.refresh = throttle(this.refresh.bind(this), REFRESH_DELAY);\r\n }\r\n /**\r\n * Adds observer to observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be added.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.addObserver = function (observer) {\r\n if (!~this.observers_.indexOf(observer)) {\r\n this.observers_.push(observer);\r\n }\r\n // Add listeners if they haven't been added yet.\r\n if (!this.connected_) {\r\n this.connect_();\r\n }\r\n };\r\n /**\r\n * Removes observer from observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be removed.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.removeObserver = function (observer) {\r\n var observers = this.observers_;\r\n var index = observers.indexOf(observer);\r\n // Remove observer if it's present in registry.\r\n if (~index) {\r\n observers.splice(index, 1);\r\n }\r\n // Remove listeners if controller has no connected observers.\r\n if (!observers.length && this.connected_) {\r\n this.disconnect_();\r\n }\r\n };\r\n /**\r\n * Invokes the update of observers. It will continue running updates insofar\r\n * it detects changes.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.refresh = function () {\r\n var changesDetected = this.updateObservers_();\r\n // Continue running updates if changes have been detected as there might\r\n // be future ones caused by CSS transitions.\r\n if (changesDetected) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Updates every observer from observers list and notifies them of queued\r\n * entries.\r\n *\r\n * @private\r\n * @returns {boolean} Returns \"true\" if any observer has detected changes in\r\n * dimensions of it's elements.\r\n */\r\n ResizeObserverController.prototype.updateObservers_ = function () {\r\n // Collect observers that have active observations.\r\n var activeObservers = this.observers_.filter(function (observer) {\r\n return observer.gatherActive(), observer.hasActive();\r\n });\r\n // Deliver notifications in a separate cycle in order to avoid any\r\n // collisions between observers, e.g. when multiple instances of\r\n // ResizeObserver are tracking the same element and the callback of one\r\n // of them changes content dimensions of the observed target. Sometimes\r\n // this may result in notifications being blocked for the rest of observers.\r\n activeObservers.forEach(function (observer) { return observer.broadcastActive(); });\r\n return activeObservers.length > 0;\r\n };\r\n /**\r\n * Initializes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.connect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already added.\r\n if (!isBrowser || this.connected_) {\r\n return;\r\n }\r\n // Subscription to the \"Transitionend\" event is used as a workaround for\r\n // delayed transitions. This way it's possible to capture at least the\r\n // final state of an element.\r\n document.addEventListener('transitionend', this.onTransitionEnd_);\r\n window.addEventListener('resize', this.refresh);\r\n if (mutationObserverSupported) {\r\n this.mutationsObserver_ = new MutationObserver(this.refresh);\r\n this.mutationsObserver_.observe(document, {\r\n attributes: true,\r\n childList: true,\r\n characterData: true,\r\n subtree: true\r\n });\r\n }\r\n else {\r\n document.addEventListener('DOMSubtreeModified', this.refresh);\r\n this.mutationEventsAdded_ = true;\r\n }\r\n this.connected_ = true;\r\n };\r\n /**\r\n * Removes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.disconnect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already removed.\r\n if (!isBrowser || !this.connected_) {\r\n return;\r\n }\r\n document.removeEventListener('transitionend', this.onTransitionEnd_);\r\n window.removeEventListener('resize', this.refresh);\r\n if (this.mutationsObserver_) {\r\n this.mutationsObserver_.disconnect();\r\n }\r\n if (this.mutationEventsAdded_) {\r\n document.removeEventListener('DOMSubtreeModified', this.refresh);\r\n }\r\n this.mutationsObserver_ = null;\r\n this.mutationEventsAdded_ = false;\r\n this.connected_ = false;\r\n };\r\n /**\r\n * \"Transitionend\" event handler.\r\n *\r\n * @private\r\n * @param {TransitionEvent} event\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.onTransitionEnd_ = function (_a) {\r\n var _b = _a.propertyName, propertyName = _b === void 0 ? '' : _b;\r\n // Detect whether transition may affect dimensions of an element.\r\n var isReflowProperty = transitionKeys.some(function (key) {\r\n return !!~propertyName.indexOf(key);\r\n });\r\n if (isReflowProperty) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Returns instance of the ResizeObserverController.\r\n *\r\n * @returns {ResizeObserverController}\r\n */\r\n ResizeObserverController.getInstance = function () {\r\n if (!this.instance_) {\r\n this.instance_ = new ResizeObserverController();\r\n }\r\n return this.instance_;\r\n };\r\n /**\r\n * Holds reference to the controller's instance.\r\n *\r\n * @private {ResizeObserverController}\r\n */\r\n ResizeObserverController.instance_ = null;\r\n return ResizeObserverController;\r\n}());\n\n/**\r\n * Defines non-writable/enumerable properties of the provided target object.\r\n *\r\n * @param {Object} target - Object for which to define properties.\r\n * @param {Object} props - Properties to be defined.\r\n * @returns {Object} Target object.\r\n */\r\nvar defineConfigurable = (function (target, props) {\r\n for (var _i = 0, _a = Object.keys(props); _i < _a.length; _i++) {\r\n var key = _a[_i];\r\n Object.defineProperty(target, key, {\r\n value: props[key],\r\n enumerable: false,\r\n writable: false,\r\n configurable: true\r\n });\r\n }\r\n return target;\r\n});\n\n/**\r\n * Returns the global object associated with provided element.\r\n *\r\n * @param {Object} target\r\n * @returns {Object}\r\n */\r\nvar getWindowOf = (function (target) {\r\n // Assume that the element is an instance of Node, which means that it\r\n // has the \"ownerDocument\" property from which we can retrieve a\r\n // corresponding global object.\r\n var ownerGlobal = target && target.ownerDocument && target.ownerDocument.defaultView;\r\n // Return the local global object if it's not possible extract one from\r\n // provided element.\r\n return ownerGlobal || global$1;\r\n});\n\n// Placeholder of an empty content rectangle.\r\nvar emptyRect = createRectInit(0, 0, 0, 0);\r\n/**\r\n * Converts provided string to a number.\r\n *\r\n * @param {number|string} value\r\n * @returns {number}\r\n */\r\nfunction toFloat(value) {\r\n return parseFloat(value) || 0;\r\n}\r\n/**\r\n * Extracts borders size from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @param {...string} positions - Borders positions (top, right, ...)\r\n * @returns {number}\r\n */\r\nfunction getBordersSize(styles) {\r\n var positions = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n positions[_i - 1] = arguments[_i];\r\n }\r\n return positions.reduce(function (size, position) {\r\n var value = styles['border-' + position + '-width'];\r\n return size + toFloat(value);\r\n }, 0);\r\n}\r\n/**\r\n * Extracts paddings sizes from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @returns {Object} Paddings box.\r\n */\r\nfunction getPaddings(styles) {\r\n var positions = ['top', 'right', 'bottom', 'left'];\r\n var paddings = {};\r\n for (var _i = 0, positions_1 = positions; _i < positions_1.length; _i++) {\r\n var position = positions_1[_i];\r\n var value = styles['padding-' + position];\r\n paddings[position] = toFloat(value);\r\n }\r\n return paddings;\r\n}\r\n/**\r\n * Calculates content rectangle of provided SVG element.\r\n *\r\n * @param {SVGGraphicsElement} target - Element content rectangle of which needs\r\n * to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getSVGContentRect(target) {\r\n var bbox = target.getBBox();\r\n return createRectInit(0, 0, bbox.width, bbox.height);\r\n}\r\n/**\r\n * Calculates content rectangle of provided HTMLElement.\r\n *\r\n * @param {HTMLElement} target - Element for which to calculate the content rectangle.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getHTMLElementContentRect(target) {\r\n // Client width & height properties can't be\r\n // used exclusively as they provide rounded values.\r\n var clientWidth = target.clientWidth, clientHeight = target.clientHeight;\r\n // By this condition we can catch all non-replaced inline, hidden and\r\n // detached elements. Though elements with width & height properties less\r\n // than 0.5 will be discarded as well.\r\n //\r\n // Without it we would need to implement separate methods for each of\r\n // those cases and it's not possible to perform a precise and performance\r\n // effective test for hidden elements. E.g. even jQuery's ':visible' filter\r\n // gives wrong results for elements with width & height less than 0.5.\r\n if (!clientWidth && !clientHeight) {\r\n return emptyRect;\r\n }\r\n var styles = getWindowOf(target).getComputedStyle(target);\r\n var paddings = getPaddings(styles);\r\n var horizPad = paddings.left + paddings.right;\r\n var vertPad = paddings.top + paddings.bottom;\r\n // Computed styles of width & height are being used because they are the\r\n // only dimensions available to JS that contain non-rounded values. It could\r\n // be possible to utilize the getBoundingClientRect if only it's data wasn't\r\n // affected by CSS transformations let alone paddings, borders and scroll bars.\r\n var width = toFloat(styles.width), height = toFloat(styles.height);\r\n // Width & height include paddings and borders when the 'border-box' box\r\n // model is applied (except for IE).\r\n if (styles.boxSizing === 'border-box') {\r\n // Following conditions are required to handle Internet Explorer which\r\n // doesn't include paddings and borders to computed CSS dimensions.\r\n //\r\n // We can say that if CSS dimensions + paddings are equal to the \"client\"\r\n // properties then it's either IE, and thus we don't need to subtract\r\n // anything, or an element merely doesn't have paddings/borders styles.\r\n if (Math.round(width + horizPad) !== clientWidth) {\r\n width -= getBordersSize(styles, 'left', 'right') + horizPad;\r\n }\r\n if (Math.round(height + vertPad) !== clientHeight) {\r\n height -= getBordersSize(styles, 'top', 'bottom') + vertPad;\r\n }\r\n }\r\n // Following steps can't be applied to the document's root element as its\r\n // client[Width/Height] properties represent viewport area of the window.\r\n // Besides, it's as well not necessary as the itself neither has\r\n // rendered scroll bars nor it can be clipped.\r\n if (!isDocumentElement(target)) {\r\n // In some browsers (only in Firefox, actually) CSS width & height\r\n // include scroll bars size which can be removed at this step as scroll\r\n // bars are the only difference between rounded dimensions + paddings\r\n // and \"client\" properties, though that is not always true in Chrome.\r\n var vertScrollbar = Math.round(width + horizPad) - clientWidth;\r\n var horizScrollbar = Math.round(height + vertPad) - clientHeight;\r\n // Chrome has a rather weird rounding of \"client\" properties.\r\n // E.g. for an element with content width of 314.2px it sometimes gives\r\n // the client width of 315px and for the width of 314.7px it may give\r\n // 314px. And it doesn't happen all the time. So just ignore this delta\r\n // as a non-relevant.\r\n if (Math.abs(vertScrollbar) !== 1) {\r\n width -= vertScrollbar;\r\n }\r\n if (Math.abs(horizScrollbar) !== 1) {\r\n height -= horizScrollbar;\r\n }\r\n }\r\n return createRectInit(paddings.left, paddings.top, width, height);\r\n}\r\n/**\r\n * Checks whether provided element is an instance of the SVGGraphicsElement.\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nvar isSVGGraphicsElement = (function () {\r\n // Some browsers, namely IE and Edge, don't have the SVGGraphicsElement\r\n // interface.\r\n if (typeof SVGGraphicsElement !== 'undefined') {\r\n return function (target) { return target instanceof getWindowOf(target).SVGGraphicsElement; };\r\n }\r\n // If it's so, then check that element is at least an instance of the\r\n // SVGElement and that it has the \"getBBox\" method.\r\n // eslint-disable-next-line no-extra-parens\r\n return function (target) { return (target instanceof getWindowOf(target).SVGElement &&\r\n typeof target.getBBox === 'function'); };\r\n})();\r\n/**\r\n * Checks whether provided element is a document element ().\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nfunction isDocumentElement(target) {\r\n return target === getWindowOf(target).document.documentElement;\r\n}\r\n/**\r\n * Calculates an appropriate content rectangle for provided html or svg element.\r\n *\r\n * @param {Element} target - Element content rectangle of which needs to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getContentRect(target) {\r\n if (!isBrowser) {\r\n return emptyRect;\r\n }\r\n if (isSVGGraphicsElement(target)) {\r\n return getSVGContentRect(target);\r\n }\r\n return getHTMLElementContentRect(target);\r\n}\r\n/**\r\n * Creates rectangle with an interface of the DOMRectReadOnly.\r\n * Spec: https://drafts.fxtf.org/geometry/#domrectreadonly\r\n *\r\n * @param {DOMRectInit} rectInit - Object with rectangle's x/y coordinates and dimensions.\r\n * @returns {DOMRectReadOnly}\r\n */\r\nfunction createReadOnlyRect(_a) {\r\n var x = _a.x, y = _a.y, width = _a.width, height = _a.height;\r\n // If DOMRectReadOnly is available use it as a prototype for the rectangle.\r\n var Constr = typeof DOMRectReadOnly !== 'undefined' ? DOMRectReadOnly : Object;\r\n var rect = Object.create(Constr.prototype);\r\n // Rectangle's properties are not writable and non-enumerable.\r\n defineConfigurable(rect, {\r\n x: x, y: y, width: width, height: height,\r\n top: y,\r\n right: x + width,\r\n bottom: height + y,\r\n left: x\r\n });\r\n return rect;\r\n}\r\n/**\r\n * Creates DOMRectInit object based on the provided dimensions and the x/y coordinates.\r\n * Spec: https://drafts.fxtf.org/geometry/#dictdef-domrectinit\r\n *\r\n * @param {number} x - X coordinate.\r\n * @param {number} y - Y coordinate.\r\n * @param {number} width - Rectangle's width.\r\n * @param {number} height - Rectangle's height.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction createRectInit(x, y, width, height) {\r\n return { x: x, y: y, width: width, height: height };\r\n}\n\n/**\r\n * Class that is responsible for computations of the content rectangle of\r\n * provided DOM element and for keeping track of it's changes.\r\n */\r\nvar ResizeObservation = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObservation.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n */\r\n function ResizeObservation(target) {\r\n /**\r\n * Broadcasted width of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastWidth = 0;\r\n /**\r\n * Broadcasted height of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastHeight = 0;\r\n /**\r\n * Reference to the last observed content rectangle.\r\n *\r\n * @private {DOMRectInit}\r\n */\r\n this.contentRect_ = createRectInit(0, 0, 0, 0);\r\n this.target = target;\r\n }\r\n /**\r\n * Updates content rectangle and tells whether it's width or height properties\r\n * have changed since the last broadcast.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObservation.prototype.isActive = function () {\r\n var rect = getContentRect(this.target);\r\n this.contentRect_ = rect;\r\n return (rect.width !== this.broadcastWidth ||\r\n rect.height !== this.broadcastHeight);\r\n };\r\n /**\r\n * Updates 'broadcastWidth' and 'broadcastHeight' properties with a data\r\n * from the corresponding properties of the last observed content rectangle.\r\n *\r\n * @returns {DOMRectInit} Last observed content rectangle.\r\n */\r\n ResizeObservation.prototype.broadcastRect = function () {\r\n var rect = this.contentRect_;\r\n this.broadcastWidth = rect.width;\r\n this.broadcastHeight = rect.height;\r\n return rect;\r\n };\r\n return ResizeObservation;\r\n}());\n\nvar ResizeObserverEntry = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObserverEntry.\r\n *\r\n * @param {Element} target - Element that is being observed.\r\n * @param {DOMRectInit} rectInit - Data of the element's content rectangle.\r\n */\r\n function ResizeObserverEntry(target, rectInit) {\r\n var contentRect = createReadOnlyRect(rectInit);\r\n // According to the specification following properties are not writable\r\n // and are also not enumerable in the native implementation.\r\n //\r\n // Property accessors are not being used as they'd require to define a\r\n // private WeakMap storage which may cause memory leaks in browsers that\r\n // don't support this type of collections.\r\n defineConfigurable(this, { target: target, contentRect: contentRect });\r\n }\r\n return ResizeObserverEntry;\r\n}());\n\nvar ResizeObserverSPI = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback function that is invoked\r\n * when one of the observed elements changes it's content dimensions.\r\n * @param {ResizeObserverController} controller - Controller instance which\r\n * is responsible for the updates of observer.\r\n * @param {ResizeObserver} callbackCtx - Reference to the public\r\n * ResizeObserver instance which will be passed to callback function.\r\n */\r\n function ResizeObserverSPI(callback, controller, callbackCtx) {\r\n /**\r\n * Collection of resize observations that have detected changes in dimensions\r\n * of elements.\r\n *\r\n * @private {Array}\r\n */\r\n this.activeObservations_ = [];\r\n /**\r\n * Registry of the ResizeObservation instances.\r\n *\r\n * @private {Map}\r\n */\r\n this.observations_ = new MapShim();\r\n if (typeof callback !== 'function') {\r\n throw new TypeError('The callback provided as parameter 1 is not a function.');\r\n }\r\n this.callback_ = callback;\r\n this.controller_ = controller;\r\n this.callbackCtx_ = callbackCtx;\r\n }\r\n /**\r\n * Starts observing provided element.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.observe = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is already being observed.\r\n if (observations.has(target)) {\r\n return;\r\n }\r\n observations.set(target, new ResizeObservation(target));\r\n this.controller_.addObserver(this);\r\n // Force the update of observations.\r\n this.controller_.refresh();\r\n };\r\n /**\r\n * Stops observing provided element.\r\n *\r\n * @param {Element} target - Element to stop observing.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.unobserve = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is not being observed.\r\n if (!observations.has(target)) {\r\n return;\r\n }\r\n observations.delete(target);\r\n if (!observations.size) {\r\n this.controller_.removeObserver(this);\r\n }\r\n };\r\n /**\r\n * Stops observing all elements.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.disconnect = function () {\r\n this.clearActive();\r\n this.observations_.clear();\r\n this.controller_.removeObserver(this);\r\n };\r\n /**\r\n * Collects observation instances the associated element of which has changed\r\n * it's content rectangle.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.gatherActive = function () {\r\n var _this = this;\r\n this.clearActive();\r\n this.observations_.forEach(function (observation) {\r\n if (observation.isActive()) {\r\n _this.activeObservations_.push(observation);\r\n }\r\n });\r\n };\r\n /**\r\n * Invokes initial callback function with a list of ResizeObserverEntry\r\n * instances collected from active resize observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.broadcastActive = function () {\r\n // Do nothing if observer doesn't have active observations.\r\n if (!this.hasActive()) {\r\n return;\r\n }\r\n var ctx = this.callbackCtx_;\r\n // Create ResizeObserverEntry instance for every active observation.\r\n var entries = this.activeObservations_.map(function (observation) {\r\n return new ResizeObserverEntry(observation.target, observation.broadcastRect());\r\n });\r\n this.callback_.call(ctx, entries, ctx);\r\n this.clearActive();\r\n };\r\n /**\r\n * Clears the collection of active observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.clearActive = function () {\r\n this.activeObservations_.splice(0);\r\n };\r\n /**\r\n * Tells whether observer has active observations.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObserverSPI.prototype.hasActive = function () {\r\n return this.activeObservations_.length > 0;\r\n };\r\n return ResizeObserverSPI;\r\n}());\n\n// Registry of internal observers. If WeakMap is not available use current shim\r\n// for the Map collection as it has all required methods and because WeakMap\r\n// can't be fully polyfilled anyway.\r\nvar observers = typeof WeakMap !== 'undefined' ? new WeakMap() : new MapShim();\r\n/**\r\n * ResizeObserver API. Encapsulates the ResizeObserver SPI implementation\r\n * exposing only those methods and properties that are defined in the spec.\r\n */\r\nvar ResizeObserver = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback that is invoked when\r\n * dimensions of the observed elements change.\r\n */\r\n function ResizeObserver(callback) {\r\n if (!(this instanceof ResizeObserver)) {\r\n throw new TypeError('Cannot call a class as a function.');\r\n }\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n var controller = ResizeObserverController.getInstance();\r\n var observer = new ResizeObserverSPI(callback, controller, this);\r\n observers.set(this, observer);\r\n }\r\n return ResizeObserver;\r\n}());\r\n// Expose public methods of ResizeObserver.\r\n[\r\n 'observe',\r\n 'unobserve',\r\n 'disconnect'\r\n].forEach(function (method) {\r\n ResizeObserver.prototype[method] = function () {\r\n var _a;\r\n return (_a = observers.get(this))[method].apply(_a, arguments);\r\n };\r\n});\n\nvar index = (function () {\r\n // Export existing implementation if available.\r\n if (typeof global$1.ResizeObserver !== 'undefined') {\r\n return global$1.ResizeObserver;\r\n }\r\n return ResizeObserver;\r\n})();\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (index);\n\n/* WEBPACK VAR INJECTION */}.call(__webpack_exports__, __webpack_require__(/*! ./../../webpack/buildin/global.js */ 70)))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiODMzLmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3Jlc2l6ZS1vYnNlcnZlci1wb2x5ZmlsbC9kaXN0L1Jlc2l6ZU9ic2VydmVyLmVzLmpzP2NmZTgiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIEEgY29sbGVjdGlvbiBvZiBzaGltcyB0aGF0IHByb3ZpZGUgbWluaW1hbCBmdW5jdGlvbmFsaXR5IG9mIHRoZSBFUzYgY29sbGVjdGlvbnMuXHJcbiAqXHJcbiAqIFRoZXNlIGltcGxlbWVudGF0aW9ucyBhcmUgbm90IG1lYW50IHRvIGJlIHVzZWQgb3V0c2lkZSBvZiB0aGUgUmVzaXplT2JzZXJ2ZXJcclxuICogbW9kdWxlcyBhcyB0aGV5IGNvdmVyIG9ubHkgYSBsaW1pdGVkIHJhbmdlIG9mIHVzZSBjYXNlcy5cclxuICovXHJcbi8qIGVzbGludC1kaXNhYmxlIHJlcXVpcmUtanNkb2MsIHZhbGlkLWpzZG9jICovXHJcbnZhciBNYXBTaGltID0gKGZ1bmN0aW9uICgpIHtcclxuICAgIGlmICh0eXBlb2YgTWFwICE9PSAndW5kZWZpbmVkJykge1xyXG4gICAgICAgIHJldHVybiBNYXA7XHJcbiAgICB9XHJcbiAgICAvKipcclxuICAgICAqIFJldHVybnMgaW5kZXggaW4gcHJvdmlkZWQgYXJyYXkgdGhhdCBtYXRjaGVzIHRoZSBzcGVjaWZpZWQga2V5LlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7QXJyYXk8QXJyYXk+fSBhcnJcclxuICAgICAqIEBwYXJhbSB7Kn0ga2V5XHJcbiAgICAgKiBAcmV0dXJucyB7bnVtYmVyfVxyXG4gICAgICovXHJcbiAgICBmdW5jdGlvbiBnZXRJbmRleChhcnIsIGtleSkge1xyXG4gICAgICAgIHZhciByZXN1bHQgPSAtMTtcclxuICAgICAgICBhcnIuc29tZShmdW5jdGlvbiAoZW50cnksIGluZGV4KSB7XHJcbiAgICAgICAgICAgIGlmIChlbnRyeVswXSA9PT0ga2V5KSB7XHJcbiAgICAgICAgICAgICAgICByZXN1bHQgPSBpbmRleDtcclxuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9KTtcclxuICAgICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uICgpIHtcclxuICAgICAgICBmdW5jdGlvbiBjbGFzc18xKCkge1xyXG4gICAgICAgICAgICB0aGlzLl9fZW50cmllc19fID0gW107XHJcbiAgICAgICAgfVxyXG4gICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShjbGFzc18xLnByb3RvdHlwZSwgXCJzaXplXCIsIHtcclxuICAgICAgICAgICAgLyoqXHJcbiAgICAgICAgICAgICAqIEByZXR1cm5zIHtib29sZWFufVxyXG4gICAgICAgICAgICAgKi9cclxuICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fX2VudHJpZXNfXy5sZW5ndGg7XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGVudW1lcmFibGU6IHRydWUsXHJcbiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEBwYXJhbSB7Kn0ga2V5XHJcbiAgICAgICAgICogQHJldHVybnMgeyp9XHJcbiAgICAgICAgICovXHJcbiAgICAgICAgY2xhc3NfMS5wcm90b3R5cGUuZ2V0ID0gZnVuY3Rpb24gKGtleSkge1xyXG4gICAgICAgICAgICB2YXIgaW5kZXggPSBnZXRJbmRleCh0aGlzLl9fZW50cmllc19fLCBrZXkpO1xyXG4gICAgICAgICAgICB2YXIgZW50cnkgPSB0aGlzLl9fZW50cmllc19fW2luZGV4XTtcclxuICAgICAgICAgICAgcmV0dXJuIGVudHJ5ICYmIGVudHJ5WzFdO1xyXG4gICAgICAgIH07XHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogQHBhcmFtIHsqfSBrZXlcclxuICAgICAgICAgKiBAcGFyYW0geyp9IHZhbHVlXHJcbiAgICAgICAgICogQHJldHVybnMge3ZvaWR9XHJcbiAgICAgICAgICovXHJcbiAgICAgICAgY2xhc3NfMS5wcm90b3R5cGUuc2V0ID0gZnVuY3Rpb24gKGtleSwgdmFsdWUpIHtcclxuICAgICAgICAgICAgdmFyIGluZGV4ID0gZ2V0SW5kZXgodGhpcy5fX2VudHJpZXNfXywga2V5KTtcclxuICAgICAgICAgICAgaWYgKH5pbmRleCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fX2VudHJpZXNfX1tpbmRleF1bMV0gPSB2YWx1ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX19lbnRyaWVzX18ucHVzaChba2V5LCB2YWx1ZV0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfTtcclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBAcGFyYW0geyp9IGtleVxyXG4gICAgICAgICAqIEByZXR1cm5zIHt2b2lkfVxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIGNsYXNzXzEucHJvdG90eXBlLmRlbGV0ZSA9IGZ1bmN0aW9uIChrZXkpIHtcclxuICAgICAgICAgICAgdmFyIGVudHJpZXMgPSB0aGlzLl9fZW50cmllc19fO1xyXG4gICAgICAgICAgICB2YXIgaW5kZXggPSBnZXRJbmRleChlbnRyaWVzLCBrZXkpO1xyXG4gICAgICAgICAgICBpZiAofmluZGV4KSB7XHJcbiAgICAgICAgICAgICAgICBlbnRyaWVzLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9O1xyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEBwYXJhbSB7Kn0ga2V5XHJcbiAgICAgICAgICogQHJldHVybnMge3ZvaWR9XHJcbiAgICAgICAgICovXHJcbiAgICAgICAgY2xhc3NfMS5wcm90b3R5cGUuaGFzID0gZnVuY3Rpb24gKGtleSkge1xyXG4gICAgICAgICAgICByZXR1cm4gISF+Z2V0SW5kZXgodGhpcy5fX2VudHJpZXNfXywga2V5KTtcclxuICAgICAgICB9O1xyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEByZXR1cm5zIHt2b2lkfVxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIGNsYXNzXzEucHJvdG90eXBlLmNsZWFyID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICB0aGlzLl9fZW50cmllc19fLnNwbGljZSgwKTtcclxuICAgICAgICB9O1xyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGNhbGxiYWNrXHJcbiAgICAgICAgICogQHBhcmFtIHsqfSBbY3R4PW51bGxdXHJcbiAgICAgICAgICogQHJldHVybnMge3ZvaWR9XHJcbiAgICAgICAgICovXHJcbiAgICAgICAgY2xhc3NfMS5wcm90b3R5cGUuZm9yRWFjaCA9IGZ1bmN0aW9uIChjYWxsYmFjaywgY3R4KSB7XHJcbiAgICAgICAgICAgIGlmIChjdHggPT09IHZvaWQgMCkgeyBjdHggPSBudWxsOyB9XHJcbiAgICAgICAgICAgIGZvciAodmFyIF9pID0gMCwgX2EgPSB0aGlzLl9fZW50cmllc19fOyBfaSA8IF9hLmxlbmd0aDsgX2krKykge1xyXG4gICAgICAgICAgICAgICAgdmFyIGVudHJ5ID0gX2FbX2ldO1xyXG4gICAgICAgICAgICAgICAgY2FsbGJhY2suY2FsbChjdHgsIGVudHJ5WzFdLCBlbnRyeVswXSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9O1xyXG4gICAgICAgIHJldHVybiBjbGFzc18xO1xyXG4gICAgfSgpKTtcclxufSkoKTtcblxuLyoqXHJcbiAqIERldGVjdHMgd2hldGhlciB3aW5kb3cgYW5kIGRvY3VtZW50IG9iamVjdHMgYXJlIGF2YWlsYWJsZSBpbiBjdXJyZW50IGVudmlyb25tZW50LlxyXG4gKi9cclxudmFyIGlzQnJvd3NlciA9IHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnICYmIHR5cGVvZiBkb2N1bWVudCAhPT0gJ3VuZGVmaW5lZCcgJiYgd2luZG93LmRvY3VtZW50ID09PSBkb2N1bWVudDtcblxuLy8gUmV0dXJucyBnbG9iYWwgb2JqZWN0IG9mIGEgY3VycmVudCBlbnZpcm9ubWVudC5cclxudmFyIGdsb2JhbCQxID0gKGZ1bmN0aW9uICgpIHtcclxuICAgIGlmICh0eXBlb2YgZ2xvYmFsICE9PSAndW5kZWZpbmVkJyAmJiBnbG9iYWwuTWF0aCA9PT0gTWF0aCkge1xyXG4gICAgICAgIHJldHVybiBnbG9iYWw7XHJcbiAgICB9XHJcbiAgICBpZiAodHlwZW9mIHNlbGYgIT09ICd1bmRlZmluZWQnICYmIHNlbGYuTWF0aCA9PT0gTWF0aCkge1xyXG4gICAgICAgIHJldHVybiBzZWxmO1xyXG4gICAgfVxyXG4gICAgaWYgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnICYmIHdpbmRvdy5NYXRoID09PSBNYXRoKSB7XHJcbiAgICAgICAgcmV0dXJuIHdpbmRvdztcclxuICAgIH1cclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1uZXctZnVuY1xyXG4gICAgcmV0dXJuIEZ1bmN0aW9uKCdyZXR1cm4gdGhpcycpKCk7XHJcbn0pKCk7XG5cbi8qKlxyXG4gKiBBIHNoaW0gZm9yIHRoZSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUgd2hpY2ggZmFsbHMgYmFjayB0byB0aGUgc2V0VGltZW91dCBpZlxyXG4gKiBmaXJzdCBvbmUgaXMgbm90IHN1cHBvcnRlZC5cclxuICpcclxuICogQHJldHVybnMge251bWJlcn0gUmVxdWVzdHMnIGlkZW50aWZpZXIuXHJcbiAqL1xyXG52YXIgcmVxdWVzdEFuaW1hdGlvbkZyYW1lJDEgPSAoZnVuY3Rpb24gKCkge1xyXG4gICAgaWYgKHR5cGVvZiByZXF1ZXN0QW5pbWF0aW9uRnJhbWUgPT09ICdmdW5jdGlvbicpIHtcclxuICAgICAgICAvLyBJdCdzIHJlcXVpcmVkIHRvIHVzZSBhIGJvdW5kZWQgZnVuY3Rpb24gYmVjYXVzZSBJRSBzb21ldGltZXMgdGhyb3dzXHJcbiAgICAgICAgLy8gYW4gXCJJbnZhbGlkIGNhbGxpbmcgb2JqZWN0XCIgZXJyb3IgaWYgckFGIGlzIGludm9rZWQgd2l0aG91dCB0aGUgZ2xvYmFsXHJcbiAgICAgICAgLy8gb2JqZWN0IG9uIHRoZSBsZWZ0IGhhbmQgc2lkZS5cclxuICAgICAgICByZXR1cm4gcmVxdWVzdEFuaW1hdGlvbkZyYW1lLmJpbmQoZ2xvYmFsJDEpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZ1bmN0aW9uIChjYWxsYmFjaykgeyByZXR1cm4gc2V0VGltZW91dChmdW5jdGlvbiAoKSB7IHJldHVybiBjYWxsYmFjayhEYXRlLm5vdygpKTsgfSwgMTAwMCAvIDYwKTsgfTtcclxufSkoKTtcblxuLy8gRGVmaW5lcyBtaW5pbXVtIHRpbWVvdXQgYmVmb3JlIGFkZGluZyBhIHRyYWlsaW5nIGNhbGwuXHJcbnZhciB0cmFpbGluZ1RpbWVvdXQgPSAyO1xyXG4vKipcclxuICogQ3JlYXRlcyBhIHdyYXBwZXIgZnVuY3Rpb24gd2hpY2ggZW5zdXJlcyB0aGF0IHByb3ZpZGVkIGNhbGxiYWNrIHdpbGwgYmVcclxuICogaW52b2tlZCBvbmx5IG9uY2UgZHVyaW5nIHRoZSBzcGVjaWZpZWQgZGVsYXkgcGVyaW9kLlxyXG4gKlxyXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBjYWxsYmFjayAtIEZ1bmN0aW9uIHRvIGJlIGludm9rZWQgYWZ0ZXIgdGhlIGRlbGF5IHBlcmlvZC5cclxuICogQHBhcmFtIHtudW1iZXJ9IGRlbGF5IC0gRGVsYXkgYWZ0ZXIgd2hpY2ggdG8gaW52b2tlIGNhbGxiYWNrLlxyXG4gKiBAcmV0dXJucyB7RnVuY3Rpb259XHJcbiAqL1xyXG5mdW5jdGlvbiB0aHJvdHRsZSAoY2FsbGJhY2ssIGRlbGF5KSB7XHJcbiAgICB2YXIgbGVhZGluZ0NhbGwgPSBmYWxzZSwgdHJhaWxpbmdDYWxsID0gZmFsc2UsIGxhc3RDYWxsVGltZSA9IDA7XHJcbiAgICAvKipcclxuICAgICAqIEludm9rZXMgdGhlIG9yaWdpbmFsIGNhbGxiYWNrIGZ1bmN0aW9uIGFuZCBzY2hlZHVsZXMgbmV3IGludm9jYXRpb24gaWZcclxuICAgICAqIHRoZSBcInByb3h5XCIgd2FzIGNhbGxlZCBkdXJpbmcgY3VycmVudCByZXF1ZXN0LlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm5zIHt2b2lkfVxyXG4gICAgICovXHJcbiAgICBmdW5jdGlvbiByZXNvbHZlUGVuZGluZygpIHtcclxuICAgICAgICBpZiAobGVhZGluZ0NhbGwpIHtcclxuICAgICAgICAgICAgbGVhZGluZ0NhbGwgPSBmYWxzZTtcclxuICAgICAgICAgICAgY2FsbGJhY2soKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHRyYWlsaW5nQ2FsbCkge1xyXG4gICAgICAgICAgICBwcm94eSgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIC8qKlxyXG4gICAgICogQ2FsbGJhY2sgaW52b2tlZCBhZnRlciB0aGUgc3BlY2lmaWVkIGRlbGF5LiBJdCB3aWxsIGZ1cnRoZXIgcG9zdHBvbmVcclxuICAgICAqIGludm9jYXRpb24gb2YgdGhlIG9yaWdpbmFsIGZ1bmN0aW9uIGRlbGVnYXRpbmcgaXQgdG8gdGhlXHJcbiAgICAgKiByZXF1ZXN0QW5pbWF0aW9uRnJhbWUuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybnMge3ZvaWR9XHJcbiAgICAgKi9cclxuICAgIGZ1bmN0aW9uIHRpbWVvdXRDYWxsYmFjaygpIHtcclxuICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUkMShyZXNvbHZlUGVuZGluZyk7XHJcbiAgICB9XHJcbiAgICAvKipcclxuICAgICAqIFNjaGVkdWxlcyBpbnZvY2F0aW9uIG9mIHRoZSBvcmlnaW5hbCBmdW5jdGlvbi5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJucyB7dm9pZH1cclxuICAgICAqL1xyXG4gICAgZnVuY3Rpb24gcHJveHkoKSB7XHJcbiAgICAgICAgdmFyIHRpbWVTdGFtcCA9IERhdGUubm93KCk7XHJcbiAgICAgICAgaWYgKGxlYWRpbmdDYWxsKSB7XHJcbiAgICAgICAgICAgIC8vIFJlamVjdCBpbW1lZGlhdGVseSBmb2xsb3dpbmcgY2FsbHMuXHJcbiAgICAgICAgICAgIGlmICh0aW1lU3RhbXAgLSBsYXN0Q2FsbFRpbWUgPCB0cmFpbGluZ1RpbWVvdXQpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAvLyBTY2hlZHVsZSBuZXcgY2FsbCB0byBiZSBpbiBpbnZva2VkIHdoZW4gdGhlIHBlbmRpbmcgb25lIGlzIHJlc29sdmVkLlxyXG4gICAgICAgICAgICAvLyBUaGlzIGlzIGltcG9ydGFudCBmb3IgXCJ0cmFuc2l0aW9uc1wiIHdoaWNoIG5ldmVyIGFjdHVhbGx5IHN0YXJ0XHJcbiAgICAgICAgICAgIC8vIGltbWVkaWF0ZWx5IHNvIHRoZXJlIGlzIGEgY2hhbmNlIHRoYXQgd2UgbWlnaHQgbWlzcyBvbmUgaWYgY2hhbmdlXHJcbiAgICAgICAgICAgIC8vIGhhcHBlbnMgYW1pZHMgdGhlIHBlbmRpbmcgaW52b2NhdGlvbi5cclxuICAgICAgICAgICAgdHJhaWxpbmdDYWxsID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIGxlYWRpbmdDYWxsID0gdHJ1ZTtcclxuICAgICAgICAgICAgdHJhaWxpbmdDYWxsID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHNldFRpbWVvdXQodGltZW91dENhbGxiYWNrLCBkZWxheSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGxhc3RDYWxsVGltZSA9IHRpbWVTdGFtcDtcclxuICAgIH1cclxuICAgIHJldHVybiBwcm94eTtcclxufVxuXG4vLyBNaW5pbXVtIGRlbGF5IGJlZm9yZSBpbnZva2luZyB0aGUgdXBkYXRlIG9mIG9ic2VydmVycy5cclxudmFyIFJFRlJFU0hfREVMQVkgPSAyMDtcclxuLy8gQSBsaXN0IG9mIHN1YnN0cmluZ3Mgb2YgQ1NTIHByb3BlcnRpZXMgdXNlZCB0byBmaW5kIHRyYW5zaXRpb24gZXZlbnRzIHRoYXRcclxuLy8gbWlnaHQgYWZmZWN0IGRpbWVuc2lvbnMgb2Ygb2JzZXJ2ZWQgZWxlbWVudHMuXHJcbnZhciB0cmFuc2l0aW9uS2V5cyA9IFsndG9wJywgJ3JpZ2h0JywgJ2JvdHRvbScsICdsZWZ0JywgJ3dpZHRoJywgJ2hlaWdodCcsICdzaXplJywgJ3dlaWdodCddO1xyXG4vLyBDaGVjayBpZiBNdXRhdGlvbk9ic2VydmVyIGlzIGF2YWlsYWJsZS5cclxudmFyIG11dGF0aW9uT2JzZXJ2ZXJTdXBwb3J0ZWQgPSB0eXBlb2YgTXV0YXRpb25PYnNlcnZlciAhPT0gJ3VuZGVmaW5lZCc7XHJcbi8qKlxyXG4gKiBTaW5nbGV0b24gY29udHJvbGxlciBjbGFzcyB3aGljaCBoYW5kbGVzIHVwZGF0ZXMgb2YgUmVzaXplT2JzZXJ2ZXIgaW5zdGFuY2VzLlxyXG4gKi9cclxudmFyIFJlc2l6ZU9ic2VydmVyQ29udHJvbGxlciA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uICgpIHtcclxuICAgIC8qKlxyXG4gICAgICogQ3JlYXRlcyBhIG5ldyBpbnN0YW5jZSBvZiBSZXNpemVPYnNlcnZlckNvbnRyb2xsZXIuXHJcbiAgICAgKlxyXG4gICAgICogQHByaXZhdGVcclxuICAgICAqL1xyXG4gICAgZnVuY3Rpb24gUmVzaXplT2JzZXJ2ZXJDb250cm9sbGVyKCkge1xyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEluZGljYXRlcyB3aGV0aGVyIERPTSBsaXN0ZW5lcnMgaGF2ZSBiZWVuIGFkZGVkLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQHByaXZhdGUge2Jvb2xlYW59XHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5jb25uZWN0ZWRfID0gZmFsc2U7XHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVGVsbHMgdGhhdCBjb250cm9sbGVyIGhhcyBzdWJzY3JpYmVkIGZvciBNdXRhdGlvbiBFdmVudHMuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAcHJpdmF0ZSB7Ym9vbGVhbn1cclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLm11dGF0aW9uRXZlbnRzQWRkZWRfID0gZmFsc2U7XHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogS2VlcHMgcmVmZXJlbmNlIHRvIHRoZSBpbnN0YW5jZSBvZiBNdXRhdGlvbk9ic2VydmVyLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQHByaXZhdGUge011dGF0aW9uT2JzZXJ2ZXJ9XHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5tdXRhdGlvbnNPYnNlcnZlcl8gPSBudWxsO1xyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEEgbGlzdCBvZiBjb25uZWN0ZWQgb2JzZXJ2ZXJzLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQHByaXZhdGUge0FycmF5PFJlc2l6ZU9ic2VydmVyU1BJPn1cclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLm9ic2VydmVyc18gPSBbXTtcclxuICAgICAgICB0aGlzLm9uVHJhbnNpdGlvbkVuZF8gPSB0aGlzLm9uVHJhbnNpdGlvbkVuZF8uYmluZCh0aGlzKTtcclxuICAgICAgICB0aGlzLnJlZnJlc2ggPSB0aHJvdHRsZSh0aGlzLnJlZnJlc2guYmluZCh0aGlzKSwgUkVGUkVTSF9ERUxBWSk7XHJcbiAgICB9XHJcbiAgICAvKipcclxuICAgICAqIEFkZHMgb2JzZXJ2ZXIgdG8gb2JzZXJ2ZXJzIGxpc3QuXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtSZXNpemVPYnNlcnZlclNQSX0gb2JzZXJ2ZXIgLSBPYnNlcnZlciB0byBiZSBhZGRlZC5cclxuICAgICAqIEByZXR1cm5zIHt2b2lkfVxyXG4gICAgICovXHJcbiAgICBSZXNpemVPYnNlcnZlckNvbnRyb2xsZXIucHJvdG90eXBlLmFkZE9ic2VydmVyID0gZnVuY3Rpb24gKG9ic2VydmVyKSB7XHJcbiAgICAgICAgaWYgKCF+dGhpcy5vYnNlcnZlcnNfLmluZGV4T2Yob2JzZXJ2ZXIpKSB7XHJcbiAgICAgICAgICAgIHRoaXMub2JzZXJ2ZXJzXy5wdXNoKG9ic2VydmVyKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gQWRkIGxpc3RlbmVycyBpZiB0aGV5IGhhdmVuJ3QgYmVlbiBhZGRlZCB5ZXQuXHJcbiAgICAgICAgaWYgKCF0aGlzLmNvbm5lY3RlZF8pIHtcclxuICAgICAgICAgICAgdGhpcy5jb25uZWN0XygpO1xyXG4gICAgICAgIH1cclxuICAgIH07XHJcbiAgICAvKipcclxuICAgICAqIFJlbW92ZXMgb2JzZXJ2ZXIgZnJvbSBvYnNlcnZlcnMgbGlzdC5cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge1Jlc2l6ZU9ic2VydmVyU1BJfSBvYnNlcnZlciAtIE9ic2VydmVyIHRvIGJlIHJlbW92ZWQuXHJcbiAgICAgKiBAcmV0dXJucyB7dm9pZH1cclxuICAgICAqL1xyXG4gICAgUmVzaXplT2JzZXJ2ZXJDb250cm9sbGVyLnByb3RvdHlwZS5yZW1vdmVPYnNlcnZlciA9IGZ1bmN0aW9uIChvYnNlcnZlcikge1xyXG4gICAgICAgIHZhciBvYnNlcnZlcnMgPSB0aGlzLm9ic2VydmVyc187XHJcbiAgICAgICAgdmFyIGluZGV4ID0gb2JzZXJ2ZXJzLmluZGV4T2Yob2JzZXJ2ZXIpO1xyXG4gICAgICAgIC8vIFJlbW92ZSBvYnNlcnZlciBpZiBpdCdzIHByZXNlbnQgaW4gcmVnaXN0cnkuXHJcbiAgICAgICAgaWYgKH5pbmRleCkge1xyXG4gICAgICAgICAgICBvYnNlcnZlcnMuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gUmVtb3ZlIGxpc3RlbmVycyBpZiBjb250cm9sbGVyIGhhcyBubyBjb25uZWN0ZWQgb2JzZXJ2ZXJzLlxyXG4gICAgICAgIGlmICghb2JzZXJ2ZXJzLmxlbmd0aCAmJiB0aGlzLmNvbm5lY3RlZF8pIHtcclxuICAgICAgICAgICAgdGhpcy5kaXNjb25uZWN0XygpO1xyXG4gICAgICAgIH1cclxuICAgIH07XHJcbiAgICAvKipcclxuICAgICAqIEludm9rZXMgdGhlIHVwZGF0ZSBvZiBvYnNlcnZlcnMuIEl0IHdpbGwgY29udGludWUgcnVubmluZyB1cGRhdGVzIGluc29mYXJcclxuICAgICAqIGl0IGRldGVjdHMgY2hhbmdlcy5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJucyB7dm9pZH1cclxuICAgICAqL1xyXG4gICAgUmVzaXplT2JzZXJ2ZXJDb250cm9sbGVyLnByb3RvdHlwZS5yZWZyZXNoID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIHZhciBjaGFuZ2VzRGV0ZWN0ZWQgPSB0aGlzLnVwZGF0ZU9ic2VydmVyc18oKTtcclxuICAgICAgICAvLyBDb250aW51ZSBydW5uaW5nIHVwZGF0ZXMgaWYgY2hhbmdlcyBoYXZlIGJlZW4gZGV0ZWN0ZWQgYXMgdGhlcmUgbWlnaHRcclxuICAgICAgICAvLyBiZSBmdXR1cmUgb25lcyBjYXVzZWQgYnkgQ1NTIHRyYW5zaXRpb25zLlxyXG4gICAgICAgIGlmIChjaGFuZ2VzRGV0ZWN0ZWQpIHtcclxuICAgICAgICAgICAgdGhpcy5yZWZyZXNoKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuICAgIC8qKlxyXG4gICAgICogVXBkYXRlcyBldmVyeSBvYnNlcnZlciBmcm9tIG9ic2VydmVycyBsaXN0IGFuZCBub3RpZmllcyB0aGVtIG9mIHF1ZXVlZFxyXG4gICAgICogZW50cmllcy5cclxuICAgICAqXHJcbiAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgXCJ0cnVlXCIgaWYgYW55IG9ic2VydmVyIGhhcyBkZXRlY3RlZCBjaGFuZ2VzIGluXHJcbiAgICAgKiAgICAgIGRpbWVuc2lvbnMgb2YgaXQncyBlbGVtZW50cy5cclxuICAgICAqL1xyXG4gICAgUmVzaXplT2JzZXJ2ZXJDb250cm9sbGVyLnByb3RvdHlwZS51cGRhdGVPYnNlcnZlcnNfID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIC8vIENvbGxlY3Qgb2JzZXJ2ZXJzIHRoYXQgaGF2ZSBhY3RpdmUgb2JzZXJ2YXRpb25zLlxyXG4gICAgICAgIHZhciBhY3RpdmVPYnNlcnZlcnMgPSB0aGlzLm9ic2VydmVyc18uZmlsdGVyKGZ1bmN0aW9uIChvYnNlcnZlcikge1xyXG4gICAgICAgICAgICByZXR1cm4gb2JzZXJ2ZXIuZ2F0aGVyQWN0aXZlKCksIG9ic2VydmVyLmhhc0FjdGl2ZSgpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIC8vIERlbGl2ZXIgbm90aWZpY2F0aW9ucyBpbiBhIHNlcGFyYXRlIGN5Y2xlIGluIG9yZGVyIHRvIGF2b2lkIGFueVxyXG4gICAgICAgIC8vIGNvbGxpc2lvbnMgYmV0d2VlbiBvYnNlcnZlcnMsIGUuZy4gd2hlbiBtdWx0aXBsZSBpbnN0YW5jZXMgb2ZcclxuICAgICAgICAvLyBSZXNpemVPYnNlcnZlciBhcmUgdHJhY2tpbmcgdGhlIHNhbWUgZWxlbWVudCBhbmQgdGhlIGNhbGxiYWNrIG9mIG9uZVxyXG4gICAgICAgIC8vIG9mIHRoZW0gY2hhbmdlcyBjb250ZW50IGRpbWVuc2lvbnMgb2YgdGhlIG9ic2VydmVkIHRhcmdldC4gU29tZXRpbWVzXHJcbiAgICAgICAgLy8gdGhpcyBtYXkgcmVzdWx0IGluIG5vdGlmaWNhdGlvbnMgYmVpbmcgYmxvY2tlZCBmb3IgdGhlIHJlc3Qgb2Ygb2JzZXJ2ZXJzLlxyXG4gICAgICAgIGFjdGl2ZU9ic2VydmVycy5mb3JFYWNoKGZ1bmN0aW9uIChvYnNlcnZlcikgeyByZXR1cm4gb2JzZXJ2ZXIuYnJvYWRjYXN0QWN0aXZlKCk7IH0pO1xyXG4gICAgICAgIHJldHVybiBhY3RpdmVPYnNlcnZlcnMubGVuZ3RoID4gMDtcclxuICAgIH07XHJcbiAgICAvKipcclxuICAgICAqIEluaXRpYWxpemVzIERPTSBsaXN0ZW5lcnMuXHJcbiAgICAgKlxyXG4gICAgICogQHByaXZhdGVcclxuICAgICAqIEByZXR1cm5zIHt2b2lkfVxyXG4gICAgICovXHJcbiAgICBSZXNpemVPYnNlcnZlckNvbnRyb2xsZXIucHJvdG90eXBlLmNvbm5lY3RfID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIC8vIERvIG5vdGhpbmcgaWYgcnVubmluZyBpbiBhIG5vbi1icm93c2VyIGVudmlyb25tZW50IG9yIGlmIGxpc3RlbmVyc1xyXG4gICAgICAgIC8vIGhhdmUgYmVlbiBhbHJlYWR5IGFkZGVkLlxyXG4gICAgICAgIGlmICghaXNCcm93c2VyIHx8IHRoaXMuY29ubmVjdGVkXykge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIFN1YnNjcmlwdGlvbiB0byB0aGUgXCJUcmFuc2l0aW9uZW5kXCIgZXZlbnQgaXMgdXNlZCBhcyBhIHdvcmthcm91bmQgZm9yXHJcbiAgICAgICAgLy8gZGVsYXllZCB0cmFuc2l0aW9ucy4gVGhpcyB3YXkgaXQncyBwb3NzaWJsZSB0byBjYXB0dXJlIGF0IGxlYXN0IHRoZVxyXG4gICAgICAgIC8vIGZpbmFsIHN0YXRlIG9mIGFuIGVsZW1lbnQuXHJcbiAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigndHJhbnNpdGlvbmVuZCcsIHRoaXMub25UcmFuc2l0aW9uRW5kXyk7XHJcbiAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIHRoaXMucmVmcmVzaCk7XHJcbiAgICAgICAgaWYgKG11dGF0aW9uT2JzZXJ2ZXJTdXBwb3J0ZWQpIHtcclxuICAgICAgICAgICAgdGhpcy5tdXRhdGlvbnNPYnNlcnZlcl8gPSBuZXcgTXV0YXRpb25PYnNlcnZlcih0aGlzLnJlZnJlc2gpO1xyXG4gICAgICAgICAgICB0aGlzLm11dGF0aW9uc09ic2VydmVyXy5vYnNlcnZlKGRvY3VtZW50LCB7XHJcbiAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgY2hpbGRMaXN0OiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgY2hhcmFjdGVyRGF0YTogdHJ1ZSxcclxuICAgICAgICAgICAgICAgIHN1YnRyZWU6IHRydWVcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdET01TdWJ0cmVlTW9kaWZpZWQnLCB0aGlzLnJlZnJlc2gpO1xyXG4gICAgICAgICAgICB0aGlzLm11dGF0aW9uRXZlbnRzQWRkZWRfID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5jb25uZWN0ZWRfID0gdHJ1ZTtcclxuICAgIH07XHJcbiAgICAvKipcclxuICAgICAqIFJlbW92ZXMgRE9NIGxpc3RlbmVycy5cclxuICAgICAqXHJcbiAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICogQHJldHVybnMge3ZvaWR9XHJcbiAgICAgKi9cclxuICAgIFJlc2l6ZU9ic2VydmVyQ29udHJvbGxlci5wcm90b3R5cGUuZGlzY29ubmVjdF8gPSBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgLy8gRG8gbm90aGluZyBpZiBydW5uaW5nIGluIGEgbm9uLWJyb3dzZXIgZW52aXJvbm1lbnQgb3IgaWYgbGlzdGVuZXJzXHJcbiAgICAgICAgLy8gaGF2ZSBiZWVuIGFscmVhZHkgcmVtb3ZlZC5cclxuICAgICAgICBpZiAoIWlzQnJvd3NlciB8fCAhdGhpcy5jb25uZWN0ZWRfKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigndHJhbnNpdGlvbmVuZCcsIHRoaXMub25UcmFuc2l0aW9uRW5kXyk7XHJcbiAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIHRoaXMucmVmcmVzaCk7XHJcbiAgICAgICAgaWYgKHRoaXMubXV0YXRpb25zT2JzZXJ2ZXJfKSB7XHJcbiAgICAgICAgICAgIHRoaXMubXV0YXRpb25zT2JzZXJ2ZXJfLmRpc2Nvbm5lY3QoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHRoaXMubXV0YXRpb25FdmVudHNBZGRlZF8pIHtcclxuICAgICAgICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignRE9NU3VidHJlZU1vZGlmaWVkJywgdGhpcy5yZWZyZXNoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5tdXRhdGlvbnNPYnNlcnZlcl8gPSBudWxsO1xyXG4gICAgICAgIHRoaXMubXV0YXRpb25FdmVudHNBZGRlZF8gPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmNvbm5lY3RlZF8gPSBmYWxzZTtcclxuICAgIH07XHJcbiAgICAvKipcclxuICAgICAqIFwiVHJhbnNpdGlvbmVuZFwiIGV2ZW50IGhhbmRsZXIuXHJcbiAgICAgKlxyXG4gICAgICogQHByaXZhdGVcclxuICAgICAqIEBwYXJhbSB7VHJhbnNpdGlvbkV2ZW50fSBldmVudFxyXG4gICAgICogQHJldHVybnMge3ZvaWR9XHJcbiAgICAgKi9cclxuICAgIFJlc2l6ZU9ic2VydmVyQ29udHJvbGxlci5wcm90b3R5cGUub25UcmFuc2l0aW9uRW5kXyA9IGZ1bmN0aW9uIChfYSkge1xyXG4gICAgICAgIHZhciBfYiA9IF9hLnByb3BlcnR5TmFtZSwgcHJvcGVydHlOYW1lID0gX2IgPT09IHZvaWQgMCA/ICcnIDogX2I7XHJcbiAgICAgICAgLy8gRGV0ZWN0IHdoZXRoZXIgdHJhbnNpdGlvbiBtYXkgYWZmZWN0IGRpbWVuc2lvbnMgb2YgYW4gZWxlbWVudC5cclxuICAgICAgICB2YXIgaXNSZWZsb3dQcm9wZXJ0eSA9IHRyYW5zaXRpb25LZXlzLnNvbWUoZnVuY3Rpb24gKGtleSkge1xyXG4gICAgICAgICAgICByZXR1cm4gISF+cHJvcGVydHlOYW1lLmluZGV4T2Yoa2V5KTtcclxuICAgICAgICB9KTtcclxuICAgICAgICBpZiAoaXNSZWZsb3dQcm9wZXJ0eSkge1xyXG4gICAgICAgICAgICB0aGlzLnJlZnJlc2goKTtcclxuICAgICAgICB9XHJcbiAgICB9O1xyXG4gICAgLyoqXHJcbiAgICAgKiBSZXR1cm5zIGluc3RhbmNlIG9mIHRoZSBSZXNpemVPYnNlcnZlckNvbnRyb2xsZXIuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybnMge1Jlc2l6ZU9ic2VydmVyQ29udHJvbGxlcn1cclxuICAgICAqL1xyXG4gICAgUmVzaXplT2JzZXJ2ZXJDb250cm9sbGVyLmdldEluc3RhbmNlID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIGlmICghdGhpcy5pbnN0YW5jZV8pIHtcclxuICAgICAgICAgICAgdGhpcy5pbnN0YW5jZV8gPSBuZXcgUmVzaXplT2JzZXJ2ZXJDb250cm9sbGVyKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0aGlzLmluc3RhbmNlXztcclxuICAgIH07XHJcbiAgICAvKipcclxuICAgICAqIEhvbGRzIHJlZmVyZW5jZSB0byB0aGUgY29udHJvbGxlcidzIGluc3RhbmNlLlxyXG4gICAgICpcclxuICAgICAqIEBwcml2YXRlIHtSZXNpemVPYnNlcnZlckNvbnRyb2xsZXJ9XHJcbiAgICAgKi9cclxuICAgIFJlc2l6ZU9ic2VydmVyQ29udHJvbGxlci5pbnN0YW5jZV8gPSBudWxsO1xyXG4gICAgcmV0dXJuIFJlc2l6ZU9ic2VydmVyQ29udHJvbGxlcjtcclxufSgpKTtcblxuLyoqXHJcbiAqIERlZmluZXMgbm9uLXdyaXRhYmxlL2VudW1lcmFibGUgcHJvcGVydGllcyBvZiB0aGUgcHJvdmlkZWQgdGFyZ2V0IG9iamVjdC5cclxuICpcclxuICogQHBhcmFtIHtPYmplY3R9IHRhcmdldCAtIE9iamVjdCBmb3Igd2hpY2ggdG8gZGVmaW5lIHByb3BlcnRpZXMuXHJcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIFByb3BlcnRpZXMgdG8gYmUgZGVmaW5lZC5cclxuICogQHJldHVybnMge09iamVjdH0gVGFyZ2V0IG9iamVjdC5cclxuICovXHJcbnZhciBkZWZpbmVDb25maWd1cmFibGUgPSAoZnVuY3Rpb24gKHRhcmdldCwgcHJvcHMpIHtcclxuICAgIGZvciAodmFyIF9pID0gMCwgX2EgPSBPYmplY3Qua2V5cyhwcm9wcyk7IF9pIDwgX2EubGVuZ3RoOyBfaSsrKSB7XHJcbiAgICAgICAgdmFyIGtleSA9IF9hW19pXTtcclxuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBrZXksIHtcclxuICAgICAgICAgICAgdmFsdWU6IHByb3BzW2tleV0sXHJcbiAgICAgICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxyXG4gICAgICAgICAgICB3cml0YWJsZTogZmFsc2UsXHJcbiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRhcmdldDtcclxufSk7XG5cbi8qKlxyXG4gKiBSZXR1cm5zIHRoZSBnbG9iYWwgb2JqZWN0IGFzc29jaWF0ZWQgd2l0aCBwcm92aWRlZCBlbGVtZW50LlxyXG4gKlxyXG4gKiBAcGFyYW0ge09iamVjdH0gdGFyZ2V0XHJcbiAqIEByZXR1cm5zIHtPYmplY3R9XHJcbiAqL1xyXG52YXIgZ2V0V2luZG93T2YgPSAoZnVuY3Rpb24gKHRhcmdldCkge1xyXG4gICAgLy8gQXNzdW1lIHRoYXQgdGhlIGVsZW1lbnQgaXMgYW4gaW5zdGFuY2Ugb2YgTm9kZSwgd2hpY2ggbWVhbnMgdGhhdCBpdFxyXG4gICAgLy8gaGFzIHRoZSBcIm93bmVyRG9jdW1lbnRcIiBwcm9wZXJ0eSBmcm9tIHdoaWNoIHdlIGNhbiByZXRyaWV2ZSBhXHJcbiAgICAvLyBjb3JyZXNwb25kaW5nIGdsb2JhbCBvYmplY3QuXHJcbiAgICB2YXIgb3duZXJHbG9iYWwgPSB0YXJnZXQgJiYgdGFyZ2V0Lm93bmVyRG9jdW1lbnQgJiYgdGFyZ2V0Lm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXc7XHJcbiAgICAvLyBSZXR1cm4gdGhlIGxvY2FsIGdsb2JhbCBvYmplY3QgaWYgaXQncyBub3QgcG9zc2libGUgZXh0cmFjdCBvbmUgZnJvbVxyXG4gICAgLy8gcHJvdmlkZWQgZWxlbWVudC5cclxuICAgIHJldHVybiBvd25lckdsb2JhbCB8fCBnbG9iYWwkMTtcclxufSk7XG5cbi8vIFBsYWNlaG9sZGVyIG9mIGFuIGVtcHR5IGNvbnRlbnQgcmVjdGFuZ2xlLlxyXG52YXIgZW1wdHlSZWN0ID0gY3JlYXRlUmVjdEluaXQoMCwgMCwgMCwgMCk7XHJcbi8qKlxyXG4gKiBDb252ZXJ0cyBwcm92aWRlZCBzdHJpbmcgdG8gYSBudW1iZXIuXHJcbiAqXHJcbiAqIEBwYXJhbSB7bnVtYmVyfHN0cmluZ30gdmFsdWVcclxuICogQHJldHVybnMge251bWJlcn1cclxuICovXHJcbmZ1bmN0aW9uIHRvRmxvYXQodmFsdWUpIHtcclxuICAgIHJldHVybiBwYXJzZUZsb2F0KHZhbHVlKSB8fCAwO1xyXG59XHJcbi8qKlxyXG4gKiBFeHRyYWN0cyBib3JkZXJzIHNpemUgZnJvbSBwcm92aWRlZCBzdHlsZXMuXHJcbiAqXHJcbiAqIEBwYXJhbSB7Q1NTU3R5bGVEZWNsYXJhdGlvbn0gc3R5bGVzXHJcbiAqIEBwYXJhbSB7Li4uc3RyaW5nfSBwb3NpdGlvbnMgLSBCb3JkZXJzIHBvc2l0aW9ucyAodG9wLCByaWdodCwgLi4uKVxyXG4gKiBAcmV0dXJucyB7bnVtYmVyfVxyXG4gKi9cclxuZnVuY3Rpb24gZ2V0Qm9yZGVyc1NpemUoc3R5bGVzKSB7XHJcbiAgICB2YXIgcG9zaXRpb25zID0gW107XHJcbiAgICBmb3IgKHZhciBfaSA9IDE7IF9pIDwgYXJndW1lbnRzLmxlbmd0aDsgX2krKykge1xyXG4gICAgICAgIHBvc2l0aW9uc1tfaSAtIDFdID0gYXJndW1lbnRzW19pXTtcclxuICAgIH1cclxuICAgIHJldHVybiBwb3NpdGlvbnMucmVkdWNlKGZ1bmN0aW9uIChzaXplLCBwb3NpdGlvbikge1xyXG4gICAgICAgIHZhciB2YWx1ZSA9IHN0eWxlc1snYm9yZGVyLScgKyBwb3NpdGlvbiArICctd2lkdGgnXTtcclxuICAgICAgICByZXR1cm4gc2l6ZSArIHRvRmxvYXQodmFsdWUpO1xyXG4gICAgfSwgMCk7XHJcbn1cclxuLyoqXHJcbiAqIEV4dHJhY3RzIHBhZGRpbmdzIHNpemVzIGZyb20gcHJvdmlkZWQgc3R5bGVzLlxyXG4gKlxyXG4gKiBAcGFyYW0ge0NTU1N0eWxlRGVjbGFyYXRpb259IHN0eWxlc1xyXG4gKiBAcmV0dXJucyB7T2JqZWN0fSBQYWRkaW5ncyBib3guXHJcbiAqL1xyXG5mdW5jdGlvbiBnZXRQYWRkaW5ncyhzdHlsZXMpIHtcclxuICAgIHZhciBwb3NpdGlvbnMgPSBbJ3RvcCcsICdyaWdodCcsICdib3R0b20nLCAnbGVmdCddO1xyXG4gICAgdmFyIHBhZGRpbmdzID0ge307XHJcbiAgICBmb3IgKHZhciBfaSA9IDAsIHBvc2l0aW9uc18xID0gcG9zaXRpb25zOyBfaSA8IHBvc2l0aW9uc18xLmxlbmd0aDsgX2krKykge1xyXG4gICAgICAgIHZhciBwb3NpdGlvbiA9IHBvc2l0aW9uc18xW19pXTtcclxuICAgICAgICB2YXIgdmFsdWUgPSBzdHlsZXNbJ3BhZGRpbmctJyArIHBvc2l0aW9uXTtcclxuICAgICAgICBwYWRkaW5nc1twb3NpdGlvbl0gPSB0b0Zsb2F0KHZhbHVlKTtcclxuICAgIH1cclxuICAgIHJldHVybiBwYWRkaW5ncztcclxufVxyXG4vKipcclxuICogQ2FsY3VsYXRlcyBjb250ZW50IHJlY3RhbmdsZSBvZiBwcm92aWRlZCBTVkcgZWxlbWVudC5cclxuICpcclxuICogQHBhcmFtIHtTVkdHcmFwaGljc0VsZW1lbnR9IHRhcmdldCAtIEVsZW1lbnQgY29udGVudCByZWN0YW5nbGUgb2Ygd2hpY2ggbmVlZHNcclxuICogICAgICB0byBiZSBjYWxjdWxhdGVkLlxyXG4gKiBAcmV0dXJucyB7RE9NUmVjdEluaXR9XHJcbiAqL1xyXG5mdW5jdGlvbiBnZXRTVkdDb250ZW50UmVjdCh0YXJnZXQpIHtcclxuICAgIHZhciBiYm94ID0gdGFyZ2V0LmdldEJCb3goKTtcclxuICAgIHJldHVybiBjcmVhdGVSZWN0SW5pdCgwLCAwLCBiYm94LndpZHRoLCBiYm94LmhlaWdodCk7XHJcbn1cclxuLyoqXHJcbiAqIENhbGN1bGF0ZXMgY29udGVudCByZWN0YW5nbGUgb2YgcHJvdmlkZWQgSFRNTEVsZW1lbnQuXHJcbiAqXHJcbiAqIEBwYXJhbSB7SFRNTEVsZW1lbnR9IHRhcmdldCAtIEVsZW1lbnQgZm9yIHdoaWNoIHRvIGNhbGN1bGF0ZSB0aGUgY29udGVudCByZWN0YW5nbGUuXHJcbiAqIEByZXR1cm5zIHtET01SZWN0SW5pdH1cclxuICovXHJcbmZ1bmN0aW9uIGdldEhUTUxFbGVtZW50Q29udGVudFJlY3QodGFyZ2V0KSB7XHJcbiAgICAvLyBDbGllbnQgd2lkdGggJiBoZWlnaHQgcHJvcGVydGllcyBjYW4ndCBiZVxyXG4gICAgLy8gdXNlZCBleGNsdXNpdmVseSBhcyB0aGV5IHByb3ZpZGUgcm91bmRlZCB2YWx1ZXMuXHJcbiAgICB2YXIgY2xpZW50V2lkdGggPSB0YXJnZXQuY2xpZW50V2lkdGgsIGNsaWVudEhlaWdodCA9IHRhcmdldC5jbGllbnRIZWlnaHQ7XHJcbiAgICAvLyBCeSB0aGlzIGNvbmRpdGlvbiB3ZSBjYW4gY2F0Y2ggYWxsIG5vbi1yZXBsYWNlZCBpbmxpbmUsIGhpZGRlbiBhbmRcclxuICAgIC8vIGRldGFjaGVkIGVsZW1lbnRzLiBUaG91Z2ggZWxlbWVudHMgd2l0aCB3aWR0aCAmIGhlaWdodCBwcm9wZXJ0aWVzIGxlc3NcclxuICAgIC8vIHRoYW4gMC41IHdpbGwgYmUgZGlzY2FyZGVkIGFzIHdlbGwuXHJcbiAgICAvL1xyXG4gICAgLy8gV2l0aG91dCBpdCB3ZSB3b3VsZCBuZWVkIHRvIGltcGxlbWVudCBzZXBhcmF0ZSBtZXRob2RzIGZvciBlYWNoIG9mXHJcbiAgICAvLyB0aG9zZSBjYXNlcyBhbmQgaXQncyBub3QgcG9zc2libGUgdG8gcGVyZm9ybSBhIHByZWNpc2UgYW5kIHBlcmZvcm1hbmNlXHJcbiAgICAvLyBlZmZlY3RpdmUgdGVzdCBmb3IgaGlkZGVuIGVsZW1lbnRzLiBFLmcuIGV2ZW4galF1ZXJ5J3MgJzp2aXNpYmxlJyBmaWx0ZXJcclxuICAgIC8vIGdpdmVzIHdyb25nIHJlc3VsdHMgZm9yIGVsZW1lbnRzIHdpdGggd2lkdGggJiBoZWlnaHQgbGVzcyB0aGFuIDAuNS5cclxuICAgIGlmICghY2xpZW50V2lkdGggJiYgIWNsaWVudEhlaWdodCkge1xyXG4gICAgICAgIHJldHVybiBlbXB0eVJlY3Q7XHJcbiAgICB9XHJcbiAgICB2YXIgc3R5bGVzID0gZ2V0V2luZG93T2YodGFyZ2V0KS5nZXRDb21wdXRlZFN0eWxlKHRhcmdldCk7XHJcbiAgICB2YXIgcGFkZGluZ3MgPSBnZXRQYWRkaW5ncyhzdHlsZXMpO1xyXG4gICAgdmFyIGhvcml6UGFkID0gcGFkZGluZ3MubGVmdCArIHBhZGRpbmdzLnJpZ2h0O1xyXG4gICAgdmFyIHZlcnRQYWQgPSBwYWRkaW5ncy50b3AgKyBwYWRkaW5ncy5ib3R0b207XHJcbiAgICAvLyBDb21wdXRlZCBzdHlsZXMgb2Ygd2lkdGggJiBoZWlnaHQgYXJlIGJlaW5nIHVzZWQgYmVjYXVzZSB0aGV5IGFyZSB0aGVcclxuICAgIC8vIG9ubHkgZGltZW5zaW9ucyBhdmFpbGFibGUgdG8gSlMgdGhhdCBjb250YWluIG5vbi1yb3VuZGVkIHZhbHVlcy4gSXQgY291bGRcclxuICAgIC8vIGJlIHBvc3NpYmxlIHRvIHV0aWxpemUgdGhlIGdldEJvdW5kaW5nQ2xpZW50UmVjdCBpZiBvbmx5IGl0J3MgZGF0YSB3YXNuJ3RcclxuICAgIC8vIGFmZmVjdGVkIGJ5IENTUyB0cmFuc2Zvcm1hdGlvbnMgbGV0IGFsb25lIHBhZGRpbmdzLCBib3JkZXJzIGFuZCBzY3JvbGwgYmFycy5cclxuICAgIHZhciB3aWR0aCA9IHRvRmxvYXQoc3R5bGVzLndpZHRoKSwgaGVpZ2h0ID0gdG9GbG9hdChzdHlsZXMuaGVpZ2h0KTtcclxuICAgIC8vIFdpZHRoICYgaGVpZ2h0IGluY2x1ZGUgcGFkZGluZ3MgYW5kIGJvcmRlcnMgd2hlbiB0aGUgJ2JvcmRlci1ib3gnIGJveFxyXG4gICAgLy8gbW9kZWwgaXMgYXBwbGllZCAoZXhjZXB0IGZvciBJRSkuXHJcbiAgICBpZiAoc3R5bGVzLmJveFNpemluZyA9PT0gJ2JvcmRlci1ib3gnKSB7XHJcbiAgICAgICAgLy8gRm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIHJlcXVpcmVkIHRvIGhhbmRsZSBJbnRlcm5ldCBFeHBsb3JlciB3aGljaFxyXG4gICAgICAgIC8vIGRvZXNuJ3QgaW5jbHVkZSBwYWRkaW5ncyBhbmQgYm9yZGVycyB0byBjb21wdXRlZCBDU1MgZGltZW5zaW9ucy5cclxuICAgICAgICAvL1xyXG4gICAgICAgIC8vIFdlIGNhbiBzYXkgdGhhdCBpZiBDU1MgZGltZW5zaW9ucyArIHBhZGRpbmdzIGFyZSBlcXVhbCB0byB0aGUgXCJjbGllbnRcIlxyXG4gICAgICAgIC8vIHByb3BlcnRpZXMgdGhlbiBpdCdzIGVpdGhlciBJRSwgYW5kIHRodXMgd2UgZG9uJ3QgbmVlZCB0byBzdWJ0cmFjdFxyXG4gICAgICAgIC8vIGFueXRoaW5nLCBvciBhbiBlbGVtZW50IG1lcmVseSBkb2Vzbid0IGhhdmUgcGFkZGluZ3MvYm9yZGVycyBzdHlsZXMuXHJcbiAgICAgICAgaWYgKE1hdGgucm91bmQod2lkdGggKyBob3JpelBhZCkgIT09IGNsaWVudFdpZHRoKSB7XHJcbiAgICAgICAgICAgIHdpZHRoIC09IGdldEJvcmRlcnNTaXplKHN0eWxlcywgJ2xlZnQnLCAncmlnaHQnKSArIGhvcml6UGFkO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoTWF0aC5yb3VuZChoZWlnaHQgKyB2ZXJ0UGFkKSAhPT0gY2xpZW50SGVpZ2h0KSB7XHJcbiAgICAgICAgICAgIGhlaWdodCAtPSBnZXRCb3JkZXJzU2l6ZShzdHlsZXMsICd0b3AnLCAnYm90dG9tJykgKyB2ZXJ0UGFkO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIC8vIEZvbGxvd2luZyBzdGVwcyBjYW4ndCBiZSBhcHBsaWVkIHRvIHRoZSBkb2N1bWVudCdzIHJvb3QgZWxlbWVudCBhcyBpdHNcclxuICAgIC8vIGNsaWVudFtXaWR0aC9IZWlnaHRdIHByb3BlcnRpZXMgcmVwcmVzZW50IHZpZXdwb3J0IGFyZWEgb2YgdGhlIHdpbmRvdy5cclxuICAgIC8vIEJlc2lkZXMsIGl0J3MgYXMgd2VsbCBub3QgbmVjZXNzYXJ5IGFzIHRoZSA8aHRtbD4gaXRzZWxmIG5laXRoZXIgaGFzXHJcbiAgICAvLyByZW5kZXJlZCBzY3JvbGwgYmFycyBub3IgaXQgY2FuIGJlIGNsaXBwZWQuXHJcbiAgICBpZiAoIWlzRG9jdW1lbnRFbGVtZW50KHRhcmdldCkpIHtcclxuICAgICAgICAvLyBJbiBzb21lIGJyb3dzZXJzIChvbmx5IGluIEZpcmVmb3gsIGFjdHVhbGx5KSBDU1Mgd2lkdGggJiBoZWlnaHRcclxuICAgICAgICAvLyBpbmNsdWRlIHNjcm9sbCBiYXJzIHNpemUgd2hpY2ggY2FuIGJlIHJlbW92ZWQgYXQgdGhpcyBzdGVwIGFzIHNjcm9sbFxyXG4gICAgICAgIC8vIGJhcnMgYXJlIHRoZSBvbmx5IGRpZmZlcmVuY2UgYmV0d2VlbiByb3VuZGVkIGRpbWVuc2lvbnMgKyBwYWRkaW5nc1xyXG4gICAgICAgIC8vIGFuZCBcImNsaWVudFwiIHByb3BlcnRpZXMsIHRob3VnaCB0aGF0IGlzIG5vdCBhbHdheXMgdHJ1ZSBpbiBDaHJvbWUuXHJcbiAgICAgICAgdmFyIHZlcnRTY3JvbGxiYXIgPSBNYXRoLnJvdW5kKHdpZHRoICsgaG9yaXpQYWQpIC0gY2xpZW50V2lkdGg7XHJcbiAgICAgICAgdmFyIGhvcml6U2Nyb2xsYmFyID0gTWF0aC5yb3VuZChoZWlnaHQgKyB2ZXJ0UGFkKSAtIGNsaWVudEhlaWdodDtcclxuICAgICAgICAvLyBDaHJvbWUgaGFzIGEgcmF0aGVyIHdlaXJkIHJvdW5kaW5nIG9mIFwiY2xpZW50XCIgcHJvcGVydGllcy5cclxuICAgICAgICAvLyBFLmcuIGZvciBhbiBlbGVtZW50IHdpdGggY29udGVudCB3aWR0aCBvZiAzMTQuMnB4IGl0IHNvbWV0aW1lcyBnaXZlc1xyXG4gICAgICAgIC8vIHRoZSBjbGllbnQgd2lkdGggb2YgMzE1cHggYW5kIGZvciB0aGUgd2lkdGggb2YgMzE0LjdweCBpdCBtYXkgZ2l2ZVxyXG4gICAgICAgIC8vIDMxNHB4LiBBbmQgaXQgZG9lc24ndCBoYXBwZW4gYWxsIHRoZSB0aW1lLiBTbyBqdXN0IGlnbm9yZSB0aGlzIGRlbHRhXHJcbiAgICAgICAgLy8gYXMgYSBub24tcmVsZXZhbnQuXHJcbiAgICAgICAgaWYgKE1hdGguYWJzKHZlcnRTY3JvbGxiYXIpICE9PSAxKSB7XHJcbiAgICAgICAgICAgIHdpZHRoIC09IHZlcnRTY3JvbGxiYXI7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChNYXRoLmFicyhob3JpelNjcm9sbGJhcikgIT09IDEpIHtcclxuICAgICAgICAgICAgaGVpZ2h0IC09IGhvcml6U2Nyb2xsYmFyO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBjcmVhdGVSZWN0SW5pdChwYWRkaW5ncy5sZWZ0LCBwYWRkaW5ncy50b3AsIHdpZHRoLCBoZWlnaHQpO1xyXG59XHJcbi8qKlxyXG4gKiBDaGVja3Mgd2hldGhlciBwcm92aWRlZCBlbGVtZW50IGlzIGFuIGluc3RhbmNlIG9mIHRoZSBTVkdHcmFwaGljc0VsZW1lbnQuXHJcbiAqXHJcbiAqIEBwYXJhbSB7RWxlbWVudH0gdGFyZ2V0IC0gRWxlbWVudCB0byBiZSBjaGVja2VkLlxyXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cclxuICovXHJcbnZhciBpc1NWR0dyYXBoaWNzRWxlbWVudCA9IChmdW5jdGlvbiAoKSB7XHJcbiAgICAvLyBTb21lIGJyb3dzZXJzLCBuYW1lbHkgSUUgYW5kIEVkZ2UsIGRvbid0IGhhdmUgdGhlIFNWR0dyYXBoaWNzRWxlbWVudFxyXG4gICAgLy8gaW50ZXJmYWNlLlxyXG4gICAgaWYgKHR5cGVvZiBTVkdHcmFwaGljc0VsZW1lbnQgIT09ICd1bmRlZmluZWQnKSB7XHJcbiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uICh0YXJnZXQpIHsgcmV0dXJuIHRhcmdldCBpbnN0YW5jZW9mIGdldFdpbmRvd09mKHRhcmdldCkuU1ZHR3JhcGhpY3NFbGVtZW50OyB9O1xyXG4gICAgfVxyXG4gICAgLy8gSWYgaXQncyBzbywgdGhlbiBjaGVjayB0aGF0IGVsZW1lbnQgaXMgYXQgbGVhc3QgYW4gaW5zdGFuY2Ugb2YgdGhlXHJcbiAgICAvLyBTVkdFbGVtZW50IGFuZCB0aGF0IGl0IGhhcyB0aGUgXCJnZXRCQm94XCIgbWV0aG9kLlxyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWV4dHJhLXBhcmVuc1xyXG4gICAgcmV0dXJuIGZ1bmN0aW9uICh0YXJnZXQpIHsgcmV0dXJuICh0YXJnZXQgaW5zdGFuY2VvZiBnZXRXaW5kb3dPZih0YXJnZXQpLlNWR0VsZW1lbnQgJiZcclxuICAgICAgICB0eXBlb2YgdGFyZ2V0LmdldEJCb3ggPT09ICdmdW5jdGlvbicpOyB9O1xyXG59KSgpO1xyXG4vKipcclxuICogQ2hlY2tzIHdoZXRoZXIgcHJvdmlkZWQgZWxlbWVudCBpcyBhIGRvY3VtZW50IGVsZW1lbnQgKDxodG1sPikuXHJcbiAqXHJcbiAqIEBwYXJhbSB7RWxlbWVudH0gdGFyZ2V0IC0gRWxlbWVudCB0byBiZSBjaGVja2VkLlxyXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cclxuICovXHJcbmZ1bmN0aW9uIGlzRG9jdW1lbnRFbGVtZW50KHRhcmdldCkge1xyXG4gICAgcmV0dXJuIHRhcmdldCA9PT0gZ2V0V2luZG93T2YodGFyZ2V0KS5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7XHJcbn1cclxuLyoqXHJcbiAqIENhbGN1bGF0ZXMgYW4gYXBwcm9wcmlhdGUgY29udGVudCByZWN0YW5nbGUgZm9yIHByb3ZpZGVkIGh0bWwgb3Igc3ZnIGVsZW1lbnQuXHJcbiAqXHJcbiAqIEBwYXJhbSB7RWxlbWVudH0gdGFyZ2V0IC0gRWxlbWVudCBjb250ZW50IHJlY3RhbmdsZSBvZiB3aGljaCBuZWVkcyB0byBiZSBjYWxjdWxhdGVkLlxyXG4gKiBAcmV0dXJucyB7RE9NUmVjdEluaXR9XHJcbiAqL1xyXG5mdW5jdGlvbiBnZXRDb250ZW50UmVjdCh0YXJnZXQpIHtcclxuICAgIGlmICghaXNCcm93c2VyKSB7XHJcbiAgICAgICAgcmV0dXJuIGVtcHR5UmVjdDtcclxuICAgIH1cclxuICAgIGlmIChpc1NWR0dyYXBoaWNzRWxlbWVudCh0YXJnZXQpKSB7XHJcbiAgICAgICAgcmV0dXJuIGdldFNWR0NvbnRlbnRSZWN0KHRhcmdldCk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZ2V0SFRNTEVsZW1lbnRDb250ZW50UmVjdCh0YXJnZXQpO1xyXG59XHJcbi8qKlxyXG4gKiBDcmVhdGVzIHJlY3RhbmdsZSB3aXRoIGFuIGludGVyZmFjZSBvZiB0aGUgRE9NUmVjdFJlYWRPbmx5LlxyXG4gKiBTcGVjOiBodHRwczovL2RyYWZ0cy5meHRmLm9yZy9nZW9tZXRyeS8jZG9tcmVjdHJlYWRvbmx5XHJcbiAqXHJcbiAqIEBwYXJhbSB7RE9NUmVjdEluaXR9IHJlY3RJbml0IC0gT2JqZWN0IHdpdGggcmVjdGFuZ2xlJ3MgeC95IGNvb3JkaW5hdGVzIGFuZCBkaW1lbnNpb25zLlxyXG4gKiBAcmV0dXJucyB7RE9NUmVjdFJlYWRPbmx5fVxyXG4gKi9cclxuZnVuY3Rpb24gY3JlYXRlUmVhZE9ubHlSZWN0KF9hKSB7XHJcbiAgICB2YXIgeCA9IF9hLngsIHkgPSBfYS55LCB3aWR0aCA9IF9hLndpZHRoLCBoZWlnaHQgPSBfYS5oZWlnaHQ7XHJcbiAgICAvLyBJZiBET01SZWN0UmVhZE9ubHkgaXMgYXZhaWxhYmxlIHVzZSBpdCBhcyBhIHByb3RvdHlwZSBmb3IgdGhlIHJlY3RhbmdsZS5cclxuICAgIHZhciBDb25zdHIgPSB0eXBlb2YgRE9NUmVjdFJlYWRPbmx5ICE9PSAndW5kZWZpbmVkJyA/IERPTVJlY3RSZWFkT25seSA6IE9iamVjdDtcclxuICAgIHZhciByZWN0ID0gT2JqZWN0LmNyZWF0ZShDb25zdHIucHJvdG90eXBlKTtcclxuICAgIC8vIFJlY3RhbmdsZSdzIHByb3BlcnRpZXMgYXJlIG5vdCB3cml0YWJsZSBhbmQgbm9uLWVudW1lcmFibGUuXHJcbiAgICBkZWZpbmVDb25maWd1cmFibGUocmVjdCwge1xyXG4gICAgICAgIHg6IHgsIHk6IHksIHdpZHRoOiB3aWR0aCwgaGVpZ2h0OiBoZWlnaHQsXHJcbiAgICAgICAgdG9wOiB5LFxyXG4gICAgICAgIHJpZ2h0OiB4ICsgd2lkdGgsXHJcbiAgICAgICAgYm90dG9tOiBoZWlnaHQgKyB5LFxyXG4gICAgICAgIGxlZnQ6IHhcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIHJlY3Q7XHJcbn1cclxuLyoqXHJcbiAqIENyZWF0ZXMgRE9NUmVjdEluaXQgb2JqZWN0IGJhc2VkIG9uIHRoZSBwcm92aWRlZCBkaW1lbnNpb25zIGFuZCB0aGUgeC95IGNvb3JkaW5hdGVzLlxyXG4gKiBTcGVjOiBodHRwczovL2RyYWZ0cy5meHRmLm9yZy9nZW9tZXRyeS8jZGljdGRlZi1kb21yZWN0aW5pdFxyXG4gKlxyXG4gKiBAcGFyYW0ge251bWJlcn0geCAtIFggY29vcmRpbmF0ZS5cclxuICogQHBhcmFtIHtudW1iZXJ9IHkgLSBZIGNvb3JkaW5hdGUuXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSB3aWR0aCAtIFJlY3RhbmdsZSdzIHdpZHRoLlxyXG4gKiBAcGFyYW0ge251bWJlcn0gaGVpZ2h0IC0gUmVjdGFuZ2xlJ3MgaGVpZ2h0LlxyXG4gKiBAcmV0dXJucyB7RE9NUmVjdEluaXR9XHJcbiAqL1xyXG5mdW5jdGlvbiBjcmVhdGVSZWN0SW5pdCh4LCB5LCB3aWR0aCwgaGVpZ2h0KSB7XHJcbiAgICByZXR1cm4geyB4OiB4LCB5OiB5LCB3aWR0aDogd2lkdGgsIGhlaWdodDogaGVpZ2h0IH07XHJcbn1cblxuLyoqXHJcbiAqIENsYXNzIHRoYXQgaXMgcmVzcG9uc2libGUgZm9yIGNvbXB1dGF0aW9ucyBvZiB0aGUgY29udGVudCByZWN0YW5nbGUgb2ZcclxuICogcHJvdmlkZWQgRE9NIGVsZW1lbnQgYW5kIGZvciBrZWVwaW5nIHRyYWNrIG9mIGl0J3MgY2hhbmdlcy5cclxuICovXHJcbnZhciBSZXNpemVPYnNlcnZhdGlvbiA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uICgpIHtcclxuICAgIC8qKlxyXG4gICAgICogQ3JlYXRlcyBhbiBpbnN0YW5jZSBvZiBSZXNpemVPYnNlcnZhdGlvbi5cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge0VsZW1lbnR9IHRhcmdldCAtIEVsZW1lbnQgdG8gYmUgb2JzZXJ2ZWQuXHJcbiAgICAgKi9cclxuICAgIGZ1bmN0aW9uIFJlc2l6ZU9ic2VydmF0aW9uKHRhcmdldCkge1xyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEJyb2FkY2FzdGVkIHdpZHRoIG9mIGNvbnRlbnQgcmVjdGFuZ2xlLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQHR5cGUge251bWJlcn1cclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmJyb2FkY2FzdFdpZHRoID0gMDtcclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBCcm9hZGNhc3RlZCBoZWlnaHQgb2YgY29udGVudCByZWN0YW5nbGUuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAdHlwZSB7bnVtYmVyfVxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuYnJvYWRjYXN0SGVpZ2h0ID0gMDtcclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBSZWZlcmVuY2UgdG8gdGhlIGxhc3Qgb2JzZXJ2ZWQgY29udGVudCByZWN0YW5nbGUuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAcHJpdmF0ZSB7RE9NUmVjdEluaXR9XHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5jb250ZW50UmVjdF8gPSBjcmVhdGVSZWN0SW5pdCgwLCAwLCAwLCAwKTtcclxuICAgICAgICB0aGlzLnRhcmdldCA9IHRhcmdldDtcclxuICAgIH1cclxuICAgIC8qKlxyXG4gICAgICogVXBkYXRlcyBjb250ZW50IHJlY3RhbmdsZSBhbmQgdGVsbHMgd2hldGhlciBpdCdzIHdpZHRoIG9yIGhlaWdodCBwcm9wZXJ0aWVzXHJcbiAgICAgKiBoYXZlIGNoYW5nZWQgc2luY2UgdGhlIGxhc3QgYnJvYWRjYXN0LlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm5zIHtib29sZWFufVxyXG4gICAgICovXHJcbiAgICBSZXNpemVPYnNlcnZhdGlvbi5wcm90b3R5cGUuaXNBY3RpdmUgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgdmFyIHJlY3QgPSBnZXRDb250ZW50UmVjdCh0aGlzLnRhcmdldCk7XHJcbiAgICAgICAgdGhpcy5jb250ZW50UmVjdF8gPSByZWN0O1xyXG4gICAgICAgIHJldHVybiAocmVjdC53aWR0aCAhPT0gdGhpcy5icm9hZGNhc3RXaWR0aCB8fFxyXG4gICAgICAgICAgICByZWN0LmhlaWdodCAhPT0gdGhpcy5icm9hZGNhc3RIZWlnaHQpO1xyXG4gICAgfTtcclxuICAgIC8qKlxyXG4gICAgICogVXBkYXRlcyAnYnJvYWRjYXN0V2lkdGgnIGFuZCAnYnJvYWRjYXN0SGVpZ2h0JyBwcm9wZXJ0aWVzIHdpdGggYSBkYXRhXHJcbiAgICAgKiBmcm9tIHRoZSBjb3JyZXNwb25kaW5nIHByb3BlcnRpZXMgb2YgdGhlIGxhc3Qgb2JzZXJ2ZWQgY29udGVudCByZWN0YW5nbGUuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybnMge0RPTVJlY3RJbml0fSBMYXN0IG9ic2VydmVkIGNvbnRlbnQgcmVjdGFuZ2xlLlxyXG4gICAgICovXHJcbiAgICBSZXNpemVPYnNlcnZhdGlvbi5wcm90b3R5cGUuYnJvYWRjYXN0UmVjdCA9IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICB2YXIgcmVjdCA9IHRoaXMuY29udGVudFJlY3RfO1xyXG4gICAgICAgIHRoaXMuYnJvYWRjYXN0V2lkdGggPSByZWN0LndpZHRoO1xyXG4gICAgICAgIHRoaXMuYnJvYWRjYXN0SGVpZ2h0ID0gcmVjdC5oZWlnaHQ7XHJcbiAgICAgICAgcmV0dXJuIHJlY3Q7XHJcbiAgICB9O1xyXG4gICAgcmV0dXJuIFJlc2l6ZU9ic2VydmF0aW9uO1xyXG59KCkpO1xuXG52YXIgUmVzaXplT2JzZXJ2ZXJFbnRyeSA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uICgpIHtcclxuICAgIC8qKlxyXG4gICAgICogQ3JlYXRlcyBhbiBpbnN0YW5jZSBvZiBSZXNpemVPYnNlcnZlckVudHJ5LlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7RWxlbWVudH0gdGFyZ2V0IC0gRWxlbWVudCB0aGF0IGlzIGJlaW5nIG9ic2VydmVkLlxyXG4gICAgICogQHBhcmFtIHtET01SZWN0SW5pdH0gcmVjdEluaXQgLSBEYXRhIG9mIHRoZSBlbGVtZW50J3MgY29udGVudCByZWN0YW5nbGUuXHJcbiAgICAgKi9cclxuICAgIGZ1bmN0aW9uIFJlc2l6ZU9ic2VydmVyRW50cnkodGFyZ2V0LCByZWN0SW5pdCkge1xyXG4gICAgICAgIHZhciBjb250ZW50UmVjdCA9IGNyZWF0ZVJlYWRPbmx5UmVjdChyZWN0SW5pdCk7XHJcbiAgICAgICAgLy8gQWNjb3JkaW5nIHRvIHRoZSBzcGVjaWZpY2F0aW9uIGZvbGxvd2luZyBwcm9wZXJ0aWVzIGFyZSBub3Qgd3JpdGFibGVcclxuICAgICAgICAvLyBhbmQgYXJlIGFsc28gbm90IGVudW1lcmFibGUgaW4gdGhlIG5hdGl2ZSBpbXBsZW1lbnRhdGlvbi5cclxuICAgICAgICAvL1xyXG4gICAgICAgIC8vIFByb3BlcnR5IGFjY2Vzc29ycyBhcmUgbm90IGJlaW5nIHVzZWQgYXMgdGhleSdkIHJlcXVpcmUgdG8gZGVmaW5lIGFcclxuICAgICAgICAvLyBwcml2YXRlIFdlYWtNYXAgc3RvcmFnZSB3aGljaCBtYXkgY2F1c2UgbWVtb3J5IGxlYWtzIGluIGJyb3dzZXJzIHRoYXRcclxuICAgICAgICAvLyBkb24ndCBzdXBwb3J0IHRoaXMgdHlwZSBvZiBjb2xsZWN0aW9ucy5cclxuICAgICAgICBkZWZpbmVDb25maWd1cmFibGUodGhpcywgeyB0YXJnZXQ6IHRhcmdldCwgY29udGVudFJlY3Q6IGNvbnRlbnRSZWN0IH0pO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIFJlc2l6ZU9ic2VydmVyRW50cnk7XHJcbn0oKSk7XG5cbnZhciBSZXNpemVPYnNlcnZlclNQSSA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uICgpIHtcclxuICAgIC8qKlxyXG4gICAgICogQ3JlYXRlcyBhIG5ldyBpbnN0YW5jZSBvZiBSZXNpemVPYnNlcnZlci5cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge1Jlc2l6ZU9ic2VydmVyQ2FsbGJhY2t9IGNhbGxiYWNrIC0gQ2FsbGJhY2sgZnVuY3Rpb24gdGhhdCBpcyBpbnZva2VkXHJcbiAgICAgKiAgICAgIHdoZW4gb25lIG9mIHRoZSBvYnNlcnZlZCBlbGVtZW50cyBjaGFuZ2VzIGl0J3MgY29udGVudCBkaW1lbnNpb25zLlxyXG4gICAgICogQHBhcmFtIHtSZXNpemVPYnNlcnZlckNvbnRyb2xsZXJ9IGNvbnRyb2xsZXIgLSBDb250cm9sbGVyIGluc3RhbmNlIHdoaWNoXHJcbiAgICAgKiAgICAgIGlzIHJlc3BvbnNpYmxlIGZvciB0aGUgdXBkYXRlcyBvZiBvYnNlcnZlci5cclxuICAgICAqIEBwYXJhbSB7UmVzaXplT2JzZXJ2ZXJ9IGNhbGxiYWNrQ3R4IC0gUmVmZXJlbmNlIHRvIHRoZSBwdWJsaWNcclxuICAgICAqICAgICAgUmVzaXplT2JzZXJ2ZXIgaW5zdGFuY2Ugd2hpY2ggd2lsbCBiZSBwYXNzZWQgdG8gY2FsbGJhY2sgZnVuY3Rpb24uXHJcbiAgICAgKi9cclxuICAgIGZ1bmN0aW9uIFJlc2l6ZU9ic2VydmVyU1BJKGNhbGxiYWNrLCBjb250cm9sbGVyLCBjYWxsYmFja0N0eCkge1xyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIENvbGxlY3Rpb24gb2YgcmVzaXplIG9ic2VydmF0aW9ucyB0aGF0IGhhdmUgZGV0ZWN0ZWQgY2hhbmdlcyBpbiBkaW1lbnNpb25zXHJcbiAgICAgICAgICogb2YgZWxlbWVudHMuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAcHJpdmF0ZSB7QXJyYXk8UmVzaXplT2JzZXJ2YXRpb24+fVxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuYWN0aXZlT2JzZXJ2YXRpb25zXyA9IFtdO1xyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFJlZ2lzdHJ5IG9mIHRoZSBSZXNpemVPYnNlcnZhdGlvbiBpbnN0YW5jZXMuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAcHJpdmF0ZSB7TWFwPEVsZW1lbnQsIFJlc2l6ZU9ic2VydmF0aW9uPn1cclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLm9ic2VydmF0aW9uc18gPSBuZXcgTWFwU2hpbSgpO1xyXG4gICAgICAgIGlmICh0eXBlb2YgY2FsbGJhY2sgIT09ICdmdW5jdGlvbicpIHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignVGhlIGNhbGxiYWNrIHByb3ZpZGVkIGFzIHBhcmFtZXRlciAxIGlzIG5vdCBhIGZ1bmN0aW9uLicpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmNhbGxiYWNrXyA9IGNhbGxiYWNrO1xyXG4gICAgICAgIHRoaXMuY29udHJvbGxlcl8gPSBjb250cm9sbGVyO1xyXG4gICAgICAgIHRoaXMuY2FsbGJhY2tDdHhfID0gY2FsbGJhY2tDdHg7XHJcbiAgICB9XHJcbiAgICAvKipcclxuICAgICAqIFN0YXJ0cyBvYnNlcnZpbmcgcHJvdmlkZWQgZWxlbWVudC5cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge0VsZW1lbnR9IHRhcmdldCAtIEVsZW1lbnQgdG8gYmUgb2JzZXJ2ZWQuXHJcbiAgICAgKiBAcmV0dXJucyB7dm9pZH1cclxuICAgICAqL1xyXG4gICAgUmVzaXplT2JzZXJ2ZXJTUEkucHJvdG90eXBlLm9ic2VydmUgPSBmdW5jdGlvbiAodGFyZ2V0KSB7XHJcbiAgICAgICAgaWYgKCFhcmd1bWVudHMubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJzEgYXJndW1lbnQgcmVxdWlyZWQsIGJ1dCBvbmx5IDAgcHJlc2VudC4nKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gRG8gbm90aGluZyBpZiBjdXJyZW50IGVudmlyb25tZW50IGRvZXNuJ3QgaGF2ZSB0aGUgRWxlbWVudCBpbnRlcmZhY2UuXHJcbiAgICAgICAgaWYgKHR5cGVvZiBFbGVtZW50ID09PSAndW5kZWZpbmVkJyB8fCAhKEVsZW1lbnQgaW5zdGFuY2VvZiBPYmplY3QpKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKCEodGFyZ2V0IGluc3RhbmNlb2YgZ2V0V2luZG93T2YodGFyZ2V0KS5FbGVtZW50KSkge1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdwYXJhbWV0ZXIgMSBpcyBub3Qgb2YgdHlwZSBcIkVsZW1lbnRcIi4nKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdmFyIG9ic2VydmF0aW9ucyA9IHRoaXMub2JzZXJ2YXRpb25zXztcclxuICAgICAgICAvLyBEbyBub3RoaW5nIGlmIGVsZW1lbnQgaXMgYWxyZWFkeSBiZWluZyBvYnNlcnZlZC5cclxuICAgICAgICBpZiAob2JzZXJ2YXRpb25zLmhhcyh0YXJnZXQpKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgb2JzZXJ2YXRpb25zLnNldCh0YXJnZXQsIG5ldyBSZXNpemVPYnNlcnZhdGlvbih0YXJnZXQpKTtcclxuICAgICAgICB0aGlzLmNvbnRyb2xsZXJfLmFkZE9ic2VydmVyKHRoaXMpO1xyXG4gICAgICAgIC8vIEZvcmNlIHRoZSB1cGRhdGUgb2Ygb2JzZXJ2YXRpb25zLlxyXG4gICAgICAgIHRoaXMuY29udHJvbGxlcl8ucmVmcmVzaCgpO1xyXG4gICAgfTtcclxuICAgIC8qKlxyXG4gICAgICogU3RvcHMgb2JzZXJ2aW5nIHByb3ZpZGVkIGVsZW1lbnQuXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtFbGVtZW50fSB0YXJnZXQgLSBFbGVtZW50IHRvIHN0b3Agb2JzZXJ2aW5nLlxyXG4gICAgICogQHJldHVybnMge3ZvaWR9XHJcbiAgICAgKi9cclxuICAgIFJlc2l6ZU9ic2VydmVyU1BJLnByb3RvdHlwZS51bm9ic2VydmUgPSBmdW5jdGlvbiAodGFyZ2V0KSB7XHJcbiAgICAgICAgaWYgKCFhcmd1bWVudHMubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJzEgYXJndW1lbnQgcmVxdWlyZWQsIGJ1dCBvbmx5IDAgcHJlc2VudC4nKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gRG8gbm90aGluZyBpZiBjdXJyZW50IGVudmlyb25tZW50IGRvZXNuJ3QgaGF2ZSB0aGUgRWxlbWVudCBpbnRlcmZhY2UuXHJcbiAgICAgICAgaWYgKHR5cGVvZiBFbGVtZW50ID09PSAndW5kZWZpbmVkJyB8fCAhKEVsZW1lbnQgaW5zdGFuY2VvZiBPYmplY3QpKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKCEodGFyZ2V0IGluc3RhbmNlb2YgZ2V0V2luZG93T2YodGFyZ2V0KS5FbGVtZW50KSkge1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdwYXJhbWV0ZXIgMSBpcyBub3Qgb2YgdHlwZSBcIkVsZW1lbnRcIi4nKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdmFyIG9ic2VydmF0aW9ucyA9IHRoaXMub2JzZXJ2YXRpb25zXztcclxuICAgICAgICAvLyBEbyBub3RoaW5nIGlmIGVsZW1lbnQgaXMgbm90IGJlaW5nIG9ic2VydmVkLlxyXG4gICAgICAgIGlmICghb2JzZXJ2YXRpb25zLmhhcyh0YXJnZXQpKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgb2JzZXJ2YXRpb25zLmRlbGV0ZSh0YXJnZXQpO1xyXG4gICAgICAgIGlmICghb2JzZXJ2YXRpb25zLnNpemUpIHtcclxuICAgICAgICAgICAgdGhpcy5jb250cm9sbGVyXy5yZW1vdmVPYnNlcnZlcih0aGlzKTtcclxuICAgICAgICB9XHJcbiAgICB9O1xyXG4gICAgLyoqXHJcbiAgICAgKiBTdG9wcyBvYnNlcnZpbmcgYWxsIGVsZW1lbnRzLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm5zIHt2b2lkfVxyXG4gICAgICovXHJcbiAgICBSZXNpemVPYnNlcnZlclNQSS5wcm90b3R5cGUuZGlzY29ubmVjdCA9IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICB0aGlzLmNsZWFyQWN0aXZlKCk7XHJcbiAgICAgICAgdGhpcy5vYnNlcnZhdGlvbnNfLmNsZWFyKCk7XHJcbiAgICAgICAgdGhpcy5jb250cm9sbGVyXy5yZW1vdmVPYnNlcnZlcih0aGlzKTtcclxuICAgIH07XHJcbiAgICAvKipcclxuICAgICAqIENvbGxlY3RzIG9ic2VydmF0aW9uIGluc3RhbmNlcyB0aGUgYXNzb2NpYXRlZCBlbGVtZW50IG9mIHdoaWNoIGhhcyBjaGFuZ2VkXHJcbiAgICAgKiBpdCdzIGNvbnRlbnQgcmVjdGFuZ2xlLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm5zIHt2b2lkfVxyXG4gICAgICovXHJcbiAgICBSZXNpemVPYnNlcnZlclNQSS5wcm90b3R5cGUuZ2F0aGVyQWN0aXZlID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XHJcbiAgICAgICAgdGhpcy5jbGVhckFjdGl2ZSgpO1xyXG4gICAgICAgIHRoaXMub2JzZXJ2YXRpb25zXy5mb3JFYWNoKGZ1bmN0aW9uIChvYnNlcnZhdGlvbikge1xyXG4gICAgICAgICAgICBpZiAob2JzZXJ2YXRpb24uaXNBY3RpdmUoKSkge1xyXG4gICAgICAgICAgICAgICAgX3RoaXMuYWN0aXZlT2JzZXJ2YXRpb25zXy5wdXNoKG9ic2VydmF0aW9uKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfTtcclxuICAgIC8qKlxyXG4gICAgICogSW52b2tlcyBpbml0aWFsIGNhbGxiYWNrIGZ1bmN0aW9uIHdpdGggYSBsaXN0IG9mIFJlc2l6ZU9ic2VydmVyRW50cnlcclxuICAgICAqIGluc3RhbmNlcyBjb2xsZWN0ZWQgZnJvbSBhY3RpdmUgcmVzaXplIG9ic2VydmF0aW9ucy5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJucyB7dm9pZH1cclxuICAgICAqL1xyXG4gICAgUmVzaXplT2JzZXJ2ZXJTUEkucHJvdG90eXBlLmJyb2FkY2FzdEFjdGl2ZSA9IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAvLyBEbyBub3RoaW5nIGlmIG9ic2VydmVyIGRvZXNuJ3QgaGF2ZSBhY3RpdmUgb2JzZXJ2YXRpb25zLlxyXG4gICAgICAgIGlmICghdGhpcy5oYXNBY3RpdmUoKSkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHZhciBjdHggPSB0aGlzLmNhbGxiYWNrQ3R4XztcclxuICAgICAgICAvLyBDcmVhdGUgUmVzaXplT2JzZXJ2ZXJFbnRyeSBpbnN0YW5jZSBmb3IgZXZlcnkgYWN0aXZlIG9ic2VydmF0aW9uLlxyXG4gICAgICAgIHZhciBlbnRyaWVzID0gdGhpcy5hY3RpdmVPYnNlcnZhdGlvbnNfLm1hcChmdW5jdGlvbiAob2JzZXJ2YXRpb24pIHtcclxuICAgICAgICAgICAgcmV0dXJuIG5ldyBSZXNpemVPYnNlcnZlckVudHJ5KG9ic2VydmF0aW9uLnRhcmdldCwgb2JzZXJ2YXRpb24uYnJvYWRjYXN0UmVjdCgpKTtcclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLmNhbGxiYWNrXy5jYWxsKGN0eCwgZW50cmllcywgY3R4KTtcclxuICAgICAgICB0aGlzLmNsZWFyQWN0aXZlKCk7XHJcbiAgICB9O1xyXG4gICAgLyoqXHJcbiAgICAgKiBDbGVhcnMgdGhlIGNvbGxlY3Rpb24gb2YgYWN0aXZlIG9ic2VydmF0aW9ucy5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJucyB7dm9pZH1cclxuICAgICAqL1xyXG4gICAgUmVzaXplT2JzZXJ2ZXJTUEkucHJvdG90eXBlLmNsZWFyQWN0aXZlID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIHRoaXMuYWN0aXZlT2JzZXJ2YXRpb25zXy5zcGxpY2UoMCk7XHJcbiAgICB9O1xyXG4gICAgLyoqXHJcbiAgICAgKiBUZWxscyB3aGV0aGVyIG9ic2VydmVyIGhhcyBhY3RpdmUgb2JzZXJ2YXRpb25zLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm5zIHtib29sZWFufVxyXG4gICAgICovXHJcbiAgICBSZXNpemVPYnNlcnZlclNQSS5wcm90b3R5cGUuaGFzQWN0aXZlID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmFjdGl2ZU9ic2VydmF0aW9uc18ubGVuZ3RoID4gMDtcclxuICAgIH07XHJcbiAgICByZXR1cm4gUmVzaXplT2JzZXJ2ZXJTUEk7XHJcbn0oKSk7XG5cbi8vIFJlZ2lzdHJ5IG9mIGludGVybmFsIG9ic2VydmVycy4gSWYgV2Vha01hcCBpcyBub3QgYXZhaWxhYmxlIHVzZSBjdXJyZW50IHNoaW1cclxuLy8gZm9yIHRoZSBNYXAgY29sbGVjdGlvbiBhcyBpdCBoYXMgYWxsIHJlcXVpcmVkIG1ldGhvZHMgYW5kIGJlY2F1c2UgV2Vha01hcFxyXG4vLyBjYW4ndCBiZSBmdWxseSBwb2x5ZmlsbGVkIGFueXdheS5cclxudmFyIG9ic2VydmVycyA9IHR5cGVvZiBXZWFrTWFwICE9PSAndW5kZWZpbmVkJyA/IG5ldyBXZWFrTWFwKCkgOiBuZXcgTWFwU2hpbSgpO1xyXG4vKipcclxuICogUmVzaXplT2JzZXJ2ZXIgQVBJLiBFbmNhcHN1bGF0ZXMgdGhlIFJlc2l6ZU9ic2VydmVyIFNQSSBpbXBsZW1lbnRhdGlvblxyXG4gKiBleHBvc2luZyBvbmx5IHRob3NlIG1ldGhvZHMgYW5kIHByb3BlcnRpZXMgdGhhdCBhcmUgZGVmaW5lZCBpbiB0aGUgc3BlYy5cclxuICovXHJcbnZhciBSZXNpemVPYnNlcnZlciA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uICgpIHtcclxuICAgIC8qKlxyXG4gICAgICogQ3JlYXRlcyBhIG5ldyBpbnN0YW5jZSBvZiBSZXNpemVPYnNlcnZlci5cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge1Jlc2l6ZU9ic2VydmVyQ2FsbGJhY2t9IGNhbGxiYWNrIC0gQ2FsbGJhY2sgdGhhdCBpcyBpbnZva2VkIHdoZW5cclxuICAgICAqICAgICAgZGltZW5zaW9ucyBvZiB0aGUgb2JzZXJ2ZWQgZWxlbWVudHMgY2hhbmdlLlxyXG4gICAgICovXHJcbiAgICBmdW5jdGlvbiBSZXNpemVPYnNlcnZlcihjYWxsYmFjaykge1xyXG4gICAgICAgIGlmICghKHRoaXMgaW5zdGFuY2VvZiBSZXNpemVPYnNlcnZlcikpIHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uLicpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoIWFyZ3VtZW50cy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignMSBhcmd1bWVudCByZXF1aXJlZCwgYnV0IG9ubHkgMCBwcmVzZW50LicpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB2YXIgY29udHJvbGxlciA9IFJlc2l6ZU9ic2VydmVyQ29udHJvbGxlci5nZXRJbnN0YW5jZSgpO1xyXG4gICAgICAgIHZhciBvYnNlcnZlciA9IG5ldyBSZXNpemVPYnNlcnZlclNQSShjYWxsYmFjaywgY29udHJvbGxlciwgdGhpcyk7XHJcbiAgICAgICAgb2JzZXJ2ZXJzLnNldCh0aGlzLCBvYnNlcnZlcik7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gUmVzaXplT2JzZXJ2ZXI7XHJcbn0oKSk7XHJcbi8vIEV4cG9zZSBwdWJsaWMgbWV0aG9kcyBvZiBSZXNpemVPYnNlcnZlci5cclxuW1xyXG4gICAgJ29ic2VydmUnLFxyXG4gICAgJ3Vub2JzZXJ2ZScsXHJcbiAgICAnZGlzY29ubmVjdCdcclxuXS5mb3JFYWNoKGZ1bmN0aW9uIChtZXRob2QpIHtcclxuICAgIFJlc2l6ZU9ic2VydmVyLnByb3RvdHlwZVttZXRob2RdID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIHZhciBfYTtcclxuICAgICAgICByZXR1cm4gKF9hID0gb2JzZXJ2ZXJzLmdldCh0aGlzKSlbbWV0aG9kXS5hcHBseShfYSwgYXJndW1lbnRzKTtcclxuICAgIH07XHJcbn0pO1xuXG52YXIgaW5kZXggPSAoZnVuY3Rpb24gKCkge1xyXG4gICAgLy8gRXhwb3J0IGV4aXN0aW5nIGltcGxlbWVudGF0aW9uIGlmIGF2YWlsYWJsZS5cclxuICAgIGlmICh0eXBlb2YgZ2xvYmFsJDEuUmVzaXplT2JzZXJ2ZXIgIT09ICd1bmRlZmluZWQnKSB7XHJcbiAgICAgICAgcmV0dXJuIGdsb2JhbCQxLlJlc2l6ZU9ic2VydmVyO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIFJlc2l6ZU9ic2VydmVyO1xyXG59KSgpO1xuXG5leHBvcnQgZGVmYXVsdCBpbmRleDtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL3Jlc2l6ZS1vYnNlcnZlci1wb2x5ZmlsbC9kaXN0L1Jlc2l6ZU9ic2VydmVyLmVzLmpzXG4vLyBtb2R1bGUgaWQgPSA4MzNcbi8vIG1vZHVsZSBjaHVua3MgPSAxIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///833\n"); + +/***/ }), + +/***/ 834: +/*!*******************************************!*\ + !*** ./node_modules/can-use-dom/index.js ***! + \*******************************************/ +/*! dynamic exports provided */ +/*! exports used: default */ +/***/ (function(module, exports) { + +eval("var canUseDOM = !!(\n typeof window !== 'undefined' &&\n window.document &&\n window.document.createElement\n);\n\nmodule.exports = canUseDOM;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiODM0LmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2Nhbi11c2UtZG9tL2luZGV4LmpzPzIxNGIiXSwic291cmNlc0NvbnRlbnQiOlsidmFyIGNhblVzZURPTSA9ICEhKFxuICB0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJyAmJlxuICB3aW5kb3cuZG9jdW1lbnQgJiZcbiAgd2luZG93LmRvY3VtZW50LmNyZWF0ZUVsZW1lbnRcbik7XG5cbm1vZHVsZS5leHBvcnRzID0gY2FuVXNlRE9NO1xuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2Nhbi11c2UtZG9tL2luZGV4LmpzXG4vLyBtb2R1bGUgaWQgPSA4MzRcbi8vIG1vZHVsZSBjaHVua3MgPSAxIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///834\n"); + +/***/ }), + +/***/ 835: +/*!*******************************************************!*\ + !*** ./node_modules/simplebar/dist/simplebar.min.css ***! + \*******************************************************/ +/*! dynamic exports provided */ +/*! all exports used */ +/***/ (function(module, exports, __webpack_require__) { + +eval("// style-loader: Adds some css to the DOM by adding a ",returnEnd:!0,subLanguage:["css","xml"]}},{className:"tag",begin:"|$)",end:">",keywords:{name:"script"},contains:[t],starts:{end:"<\/script>",returnEnd:!0,subLanguage:["actionscript","javascript","handlebars","xml"]}},{className:"meta",variants:[{begin:/<\?xml/,end:/\?>/,relevance:10},{begin:/<\?\w+/,end:/\?>/}]},{className:"tag",begin:"",contains:[{className:"name",begin:/[^\/><\s]+/,relevance:0},t]}]}}},function(e,t,n){function r(e,t){return e&&a(e,o(t))}var a=n(535),o=n(542);e.exports=r},function(e,t,n){(function(e){var r=n(495),a=n(600),o="object"==typeof t&&t&&!t.nodeType&&t,i=o&&"object"==typeof e&&e&&!e.nodeType&&e,l=i&&i.exports===o,s=l?r.Buffer:void 0,u=s?s.isBuffer:void 0,c=u||a;e.exports=c}).call(t,n(521)(e))},function(e,t){e.exports=function(e){return e.webpackPolyfill||(e.deprecate=function(){},e.paths=[],e.children||(e.children=[]),Object.defineProperty(e,"loaded",{enumerable:!0,get:function(){return e.l}}),Object.defineProperty(e,"id",{enumerable:!0,get:function(){return e.i}}),e.webpackPolyfill=1),e}},function(e,t){function n(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=r}var r=9007199254740991;e.exports=n},function(e,t){function n(e){return function(t){return e(t)}}e.exports=n},function(e,t,n){(function(e){var r=n(534),a="object"==typeof t&&t&&!t.nodeType&&t,o=a&&"object"==typeof e&&e&&!e.nodeType&&e,i=o&&o.exports===a,l=i&&r.process,s=function(){try{var e=o&&o.require&&o.require("util").types;return e||l&&l.binding&&l.binding("util")}catch(e){}}();e.exports=s}).call(t,n(521)(e))},function(e,t){function n(e){var t=e&&e.constructor;return e===("function"==typeof t&&t.prototype||r)}var r=Object.prototype;e.exports=n},function(e,t,n){var r=n(540),a=r(Object.getPrototypeOf,Object);e.exports=a},function(e,t,n){function r(e){var t=this.__data__=new a(e);this.size=t.size}var a=n(506),o=n(613),i=n(614),l=n(615),s=n(616),u=n(617);r.prototype.clear=o,r.prototype.delete=i,r.prototype.get=l,r.prototype.has=s,r.prototype.set=u,e.exports=r},function(e,t){function n(e,t){return e===t||e!==e&&t!==t}e.exports=n},function(e,t,n){var r=n(501),a=n(495),o=r(a,"Map");e.exports=o},function(e,t,n){function r(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t-1&&e%1==0&&ed))return!1;var h=c.get(e);if(h&&c.get(t))return h==t;var b=-1,g=!0,v=n&s?new a:void 0;for(c.set(e,t),c.set(t,e);++b=t||n<0||S&&r>=y}function p(){var e=o();if(d(e))return h(e);_=setTimeout(p,f(e))}function h(e){return _=void 0,O&&x?r(e):(x=m=void 0,w)}function b(){void 0!==_&&clearTimeout(_),k=0,x=E=m=_=void 0}function g(){return void 0===_?w:h(o())}function v(){var e=o(),n=d(e);if(x=arguments,m=this,E=e,n){if(void 0===_)return c(E);if(S)return _=setTimeout(p,t),r(E)}return void 0===_&&(_=setTimeout(p,t)),w}var x,m,y,w,_,E,k=0,C=!1,S=!1,O=!0;if("function"!=typeof e)throw new TypeError(l);return t=i(t)||0,a(n)&&(C=!!n.leading,S="maxWait"in n,y=S?s(i(n.maxWait)||0,t):y,O="trailing"in n?!!n.trailing:O),v.cancel=b,v.flush=g,v}var a=n(498),o=n(703),i=n(704),l="Expected a function",s=Math.max,u=Math.min;e.exports=r},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0}),t.ColorWrap=void 0;var l=Object.assign||function(e){for(var t=1;t
",componentCode:""}):"LOGO"===this.props.icon.type_of_icon?this.setState({code:"",componentCode:""}):this.setState({code:"",componentCode:""})}},{key:"componentDidMount",value:function(){for(var e=document.querySelectorAll("code"),t=0;t0&&(t+=" bx-rotate-"+this.state.rotate,n+="rotate='"+this.state.rotate+"' "),"none"!==this.state.flip&&(t+=" bx-flip-"+this.state.flip,n+="flip='"+this.state.flip+"' ");var r="";0===this.state.fill.r&&0===this.state.fill.g&&0===this.state.fill.b&&1===this.state.fill.a||(1===this.state.fill.a?(r="style='color:"+this.state.hex+"' ",n+="color='"+this.state.hex+"' "):(r="style='color:rgba("+this.state.fill.r+","+this.state.fill.g+","+this.state.fill.b+","+this.state.fill.a+")' ",n+="color='rgba("+this.state.fill.r+","+this.state.fill.g+","+this.state.fill.b+","+this.state.fill.a+")' ")),this.setState({code:"",componentCode:""})}}},{key:"changeURI",value:function(){var e="",t=this.state.size,n=document.getElementsByClassName("injected-svg")[0];n&&(0,F.svgAsPngUri)(n,{scale:t},function(t){e=t,this.setState({uri:''},function(){})}.bind(this))}},{key:"handleAdjust",value:function(){var e="REGULAR",t=this.props.icon.name+"-regular";"REGULAR"===this.props.icon.type_of_icon&&(t=this.props.icon.name+"-solid",e="SOLID"),this.props.changeSideIcon(!0),this.props.setSelectedIcon(this.props.icon.name,t,e)}},{key:"handleSizes",value:function(){this.setState({showSizes:!this.state.showSizes})}},{key:"handleFlip",value:function(){0!==this.state.rotate&&this.setState({rotate:0});var e="bx bx-"+this.props.icon.name,t="name='"+this.props.icon.name+"' ",n="none";"SOLID"===this.props.icon.type_of_icon?(e="bx bxs-"+this.props.icon.name,t+="type='solid' "):"LOGO"===this.props.icon.type_of_icon&&(e="bx bxl-"+this.props.icon.name,t+="type='logo' "),"none"===this.state.flip?(this.setState({flip:"horizontal",svgTransform:"scaleX(-1)",svgFilter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)"}),n="horizontal",e+=" bx-flip-"+n,t+="flip='"+n+"' "):"horizontal"===this.state.flip?(this.setState({flip:"vertical",svgTransform:"scaleY(-1)",svgFilter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"}),n="vertical",e+=" bx-flip-"+n,t+="flip='"+n+"' "):"vertical"===this.state.flip&&this.setState({flip:"none",svgTransform:"",svgFilter:""}),"none"!==this.state.animation&&(e+=" bx-"+this.state.animation,t+="animation='"+this.state.animation+"' ");var r="";0===this.state.fill.r&&0===this.state.fill.g&&0===this.state.fill.b&&1===this.state.fill.a||(1===this.state.fill.a?(r="style='color:"+this.state.hex+"' ",t+="color='"+this.state.hex+"' "):(r="style='color:rgba("+this.state.fill.r+","+this.state.fill.g+","+this.state.fill.b+","+this.state.fill.a+")' ",t+="color='rgba("+this.state.fill.r+","+this.state.fill.g+","+this.state.fill.b+","+this.state.fill.a+")' ")),this.setState({code:"",componentCode:""})}},{key:"handleRotate",value:function(){"none"!==this.state.flip&&this.setState({flip:"none"});var e="bx bx-"+this.props.icon.name,t="name='"+this.props.icon.name+"' ";"SOLID"===this.props.icon.type_of_icon?(e="bx bxs-"+this.props.icon.name,t+="type='solid' "):"LOGO"===this.props.icon.type_of_icon&&(e="bx bxl-"+this.props.icon.name,t+="type='logo' "),"none"!==this.state.animation&&(e+=" bx-"+this.state.animation,t+="animation='"+this.state.animation+"' "),this.state.rotate+90!==360?(this.setState({rotate:this.state.rotate+90,svgTransform:"rotate("+(this.state.rotate+90)+"deg)",svgFilter:"progid:DXImageTransform.Microsoft.BasicImage(rotation="+(this.state.rotate+90)/90+")"}),e+=" bx-rotate-"+(this.state.rotate+90),t+="rotate='"+(this.state.rotate+90)+"' "):this.setState({rotate:0,svgTransform:"",svgFilter:""});var n="";0===this.state.fill.r&&0===this.state.fill.g&&0===this.state.fill.b&&1===this.state.fill.a||(1===this.state.fill.a?(n="style='color:"+this.state.hex+"' ",t+="color='"+this.state.hex+"' "):(n="style='color:rgba("+this.state.fill.r+","+this.state.fill.g+","+this.state.fill.b+","+this.state.fill.a+")' ",t+="color='rgba("+this.state.fill.r+","+this.state.fill.g+","+this.state.fill.b+","+this.state.fill.a+")' ")),this.setState({code:"",componentCode:""})}},{key:"handleSize",value:function(e){this.setState({size:e}),this.setState({showSizes:!1})}},{key:"handleAnimate",value:function(e){this.setState({animation:e}),this.setState({animateChoiceDisplay:!1});var t="bx bx-"+this.props.icon.name,n="name='"+this.props.icon.name+"' ";"SOLID"===this.props.icon.type_of_icon?(t="bx bxs-"+this.props.icon.name,n+="type='solid' "):"LOGO"===this.props.icon.type_of_icon&&(t="bx bxl-"+this.props.icon.name,n+="type='logo' "),"none"!==e&&(t+=" bx-"+e,n+="animation='"+e+"' "),this.state.rotate>0&&(t+=" bx-rotate-"+this.state.rotate,n+="rotate='"+this.state.rotate+"' "),"none"!==this.state.flip&&(t+=" bx-flip-"+this.state.flip,n+="flip='"+this.state.flip+"' ");var r="";0===this.state.fill.r&&0===this.state.fill.g&&0===this.state.fill.b&&1===this.state.fill.a||(1===this.state.fill.a?(r="style='color:"+this.state.hex+"' ",n+="color='"+this.state.hex+"' "):(r="style='color:rgba("+this.state.fill.r+","+this.state.fill.g+","+this.state.fill.b+","+this.state.fill.a+")' ",n+="color='rgba("+this.state.fill.r+","+this.state.fill.g+","+this.state.fill.b+","+this.state.fill.a+")' ")),this.setState({code:"",componentCode:""})}},{key:"handleFill",value:function(){this.setState({showFill:!this.state.showFill})}},{key:"savePNG",value:function(e){e.preventDefault();var t=this.state.size;(0,F.saveSvgAsPng)(document.getElementsByClassName("injected-svg")[0],this.props.icon.name+"-"+this.props.icon.type_of_icon.toLowerCase()+"-"+Math.ceil(24*this.state.size)+".png",{scale:t})}},{key:"getHTML",value:function(e){e.preventDefault(),this.setState({showHTML:!0}),this.changeURI()}},{key:"copyURI",value:function(){document.getElementById("uriID").select(),document.execCommand("copy"),this.setState({htmlcopied:!0}),setTimeout(function(){this.setState({htmlcopied:!1})}.bind(this),1e3)}},{key:"handleChangeComplete",value:function(e){var t="bx bx-"+this.props.icon.name,n="name='"+this.props.icon.name+"' ";if("SOLID"===this.props.icon.type_of_icon?(t="bx bxs-"+this.props.icon.name,n+="type='solid' "):"LOGO"===this.props.icon.type_of_icon&&(t="bx bxl-"+this.props.icon.name,n+="type='logo' "),this.state.rotate>0&&(t+=" bx-rotate-"+this.state.rotate,n+="rotate='"+this.state.rotate+"' "),"none"!==this.state.flip&&(t+=" bx-flip-"+this.state.flip,n+="flip='"+this.state.flip+"' "),"none"!==this.state.animation&&(t+=" bx-"+this.state.animation,n+="animation='"+this.state.animation+"' "),0!==e.rgb.r||0!==e.rgb.g||0!==e.rgb.b||1!==e.rgb.a){var r="";1===e.rgb.a?(r="style='color:"+e.hex+"' ",n+="color='"+e.hex+"' "):(r="style='color:rgba("+e.rgb.r+","+e.rgb.g+","+e.rgb.b+","+e.rgb.a+")' ",n+="color='rgba("+e.rgb.r+","+e.rgb.g+","+e.rgb.b+","+e.rgb.a+")' ")}this.setState({fill:e.rgb,hex:e.hex,code:"",componentCode:""})}},{key:"handleCurrentAnimation",value:function(){this.setState({animateChoiceDisplay:!this.state.animateChoiceDisplay}),this.setState({colorChoiceDisplay:!1})}},{key:"copyCode",value:function(){document.querySelector("#code").select(),document.execCommand("Copy"),this.setState({copied:!0}),setTimeout(function(){this.setState({copied:!1})}.bind(this),1e3)}},{key:"handleBoxClose",value:function(){this.props.changeSideIcon(!1),this.props.setSelectedIcon(null,null)}},{key:"render",value:function(){var e=this,t=(0,I.default)({active:this.state.copied,copied:!0}),n=(0,I.default)({active:this.state.htmlcopied,copied:!0}),r={color:"rgba("+this.state.fill.r+", "+this.state.fill.g+", "+this.state.fill.b+", "+this.state.fill.a+")"},a="/static/img/svg/bx-"+this.props.icon.name+".svg",o=this.props.icon,i="bx-"+o.name;return"SOLID"===o.type_of_icon?(a="/static/img/svg/bxs-"+this.props.icon.name+".svg",i="bxs-"+o.name):"LOGO"===o.type_of_icon&&(a="/static/img/svg/bxl-"+this.props.icon.name+".svg",i="bxl-"+o.name),m.default.createElement("div",{className:" "},m.default.createElement($,{className:"icon"},m.default.createElement("input",{className:"hidden",type:"text",onChange:function(){},value:this.state.uri,id:"uriID"}),this.state.showHTML&&m.default.createElement(P.default,{onOutsideClick:function(){e.setState({showHTML:!1})}},m.default.createElement(q,null," ",m.default.createElement("div",{className:"html-box-overflow"},m.default.createElement("div",{className:"html-box-cont"},"Click to Copy & Paste it into your HTML",m.default.createElement("div",{className:"html-code"},m.default.createElement(j.default,{title:"Copy html code"},m.default.createElement("div",{className:"icon-code-in",onClick:this.copyURI}),m.default.createElement("div",{className:"code-hover"}," ",m.default.createElement("code",{className:"html"},this.state.uri)," ",m.default.createElement("div",{className:n},"Copied ",m.default.createElement("i",{className:"bx bx-check"}))))))))),m.default.createElement(L.default,{src:"/static/img/svg/"+i+".svg",svgStyle:{fill:"rgba("+this.state.fill.r+", "+this.state.fill.g+", "+this.state.fill.b+", "+this.state.fill.a+")",transform:this.state.svgTransform,msFilter:this.state.svgFilter}}),m.default.createElement("div",{className:"box-bg "},m.default.createElement("i",{style:r,className:"bx "+i+" bx-rotate-"+this.state.rotate+" bx-"+this.state.animation+" bx-flip-"+this.state.flip}),m.default.createElement(V,null,this.state.opposite&&m.default.createElement("div",{className:"function-button"}," ",m.default.createElement(X,{onClick:this.handleAdjust,className:"active func-adjust",title:"Toggle Style"},m.default.createElement("i",{className:"bx bxs-adjust"}))),m.default.createElement("div",{className:"function-button"},m.default.createElement(P.default,{onOutsideClick:function(){e.setState({showFill:!1})}},m.default.createElement(X,{onClick:this.handleFill,className:"active func-fill",title:"Fill Color"},m.default.createElement("i",{className:"bx bxs-color-fill"})),this.state.showFill&&m.default.createElement("div",{className:"color-picker",id:"picker"},m.default.createElement(B.ChromePicker,{color:this.state.fill,onChangeComplete:this.handleChangeComplete})))),m.default.createElement("div",{className:"function-button"}," ",m.default.createElement(X,{onClick:this.handleRotate,className:this.state.rotate>0?"active func-rotate":"func-rotate",title:"Rotate"},m.default.createElement("i",{className:"bx bx-rotate-right"}))," "),m.default.createElement("div",{className:"function-button"},m.default.createElement(P.default,{onOutsideClick:function(){e.setState({animateChoiceDisplay:!1})}}," ",m.default.createElement(X,{className:"none"!=this.state.animation?"active func-animate":"func-animate",title:"Animate"},m.default.createElement("div",{onClick:this.handleCurrentAnimation},m.default.createElement("i",{className:"bx bxs-zap"})),this.state.animateChoiceDisplay&&m.default.createElement("div",{className:"animate-choices"},m.default.createElement("div",{className:"animate tada",onClick:function(){return e.handleAnimate("tada")}},m.default.createElement("i",{className:"bx "+i+" bx-tada"})),m.default.createElement("div",{className:"animate flashing",onClick:function(){return e.handleAnimate("flashing")}},m.default.createElement("i",{className:"bx "+i+" bx-flashing"})),m.default.createElement("div",{className:"animate burst",onClick:function(){return e.handleAnimate("burst")}},m.default.createElement("i",{className:"bx "+i+" bx-burst"})),m.default.createElement("div",{className:"animate spin",onClick:function(){return e.handleAnimate("spin")}},m.default.createElement("i",{className:"bx "+i+" bx-spin"})),m.default.createElement("div",{className:"animate fade-left",onClick:function(){return e.handleAnimate("fade-left")}},m.default.createElement("i",{className:"bx "+i+" bx-fade-left"})),m.default.createElement("div",{className:"animate fade-right",onClick:function(){return e.handleAnimate("fade-right")}},m.default.createElement("i",{className:"bx "+i+" bx-fade-right"})),m.default.createElement("div",{className:"animate fade-up",onClick:function(){return e.handleAnimate("fade-up")}},m.default.createElement("i",{className:"bx "+i+" bx-fade-up"})),m.default.createElement("div",{className:"animate fade-down",onClick:function(){return e.handleAnimate("fade-down")}},m.default.createElement("i",{className:"bx "+i+" bx-fade-down"})),m.default.createElement("div",{className:"animate none",onClick:function(){return e.handleAnimate("none")}},"none"))))),m.default.createElement("div",{className:"function-button"}," ",m.default.createElement(X,{onClick:this.handleFlip,className:"none"!=this.state.flip?"active func-flip":"func-flip",title:"Flip"},m.default.createElement("i",{className:"bx bx-sync"}))))),m.default.createElement("div",{className:" icon-head"},m.default.createElement("div",{className:" icon-head-name"},o.name),m.default.createElement("div",{className:" icon-footer"},m.default.createElement(W,null,m.default.createElement("div",{className:"code-options"},m.default.createElement("div",{className:"component"===this.state.type?"code-option active":"code-option",onClick:function(){return e.changeType("component")}},"Web Component"),m.default.createElement("div",{className:"font"===this.state.type?"code-option active":"code-option",onClick:function(){return e.changeType("font")}},"Font"),m.default.createElement(H.Link,{to:"/get-started",className:"usage-link"},"Usage >")),"component"===this.state.type?m.default.createElement("div",null,m.default.createElement(j.default,{title:"Copy code"}," ",m.default.createElement("div",{className:"icon-code-in",onClick:this.copyCode}),m.default.createElement("div",{className:"code-hover"}," ",m.default.createElement("code",{className:"html"},this.state.componentCode))),m.default.createElement("input",{className:"hidden",type:"text",onChange:function(){},value:this.state.componentCode,id:"code"}),m.default.createElement("div",{className:t},"Copied ",m.default.createElement("i",{className:"bx bx-check"}))):m.default.createElement("div",null," ",m.default.createElement(j.default,{title:"Copy code"}," ",m.default.createElement("div",{className:"icon-code-in",onClick:this.copyCode}," "),m.default.createElement("div",{className:"code-hover"},m.default.createElement("code",{className:"html"},this.state.code))),m.default.createElement("input",{className:"hidden",type:"text",onChange:function(){},value:this.state.code,id:"code"}),m.default.createElement("div",{className:t},"Copied ",m.default.createElement("i",{className:"bx bx-check"}))))),m.default.createElement(U,null,m.default.createElement(M.WhiteButton,{href:"#",onClick:this.savePNG,className:"button icon-download "},m.default.createElement("div",{className:"button-name"},"PNG"),m.default.createElement("i",{className:"bx bxs-download"})),m.default.createElement(M.WhiteButton,{href:"#",onClick:this.getHTML,className:"button icon-download "},m.default.createElement("div",{className:"button-name"},"HTML"),m.default.createElement("i",{className:"bx bx-code"})),m.default.createElement(M.BlueButton,{href:a,download:i,className:"button icon-download "},m.default.createElement("div",{className:"button-name"},"SVG"),m.default.createElement("i",{className:"bx bxs-download"})),m.default.createElement(P.default,{onOutsideClick:function(){e.setState({showSizes:!1})}}," ",m.default.createElement("div",{className:"download-size",title:"Icon Size"},this.state.showSizes&&m.default.createElement("div",{className:"download-sizes"},m.default.createElement("div",{className:"size",onClick:function(){return e.handleSize(.66)}},"16px"),m.default.createElement("div",{className:"size",onClick:function(){return e.handleSize(1)}},"24px"),m.default.createElement("div",{className:"size",onClick:function(){return e.handleSize(1.5)}},"36px"),m.default.createElement("div",{className:"size",onClick:function(){return e.handleSize(2)}},"48px"),m.default.createElement("div",{className:"size",onClick:function(){return e.handleSize(4)}},"96px"),m.default.createElement("div",{className:"size",onClick:function(){return e.handleSize(5)}},"120px"),m.default.createElement("div",{className:"size",onClick:function(){return e.handleSize(10)}},"240px")),m.default.createElement("div",{className:"size-button",onClick:this.handleSizes},Math.ceil(24*this.state.size),"px ",m.default.createElement("i",{className:"bx bx-caret-down"})))))),m.default.createElement(G,{onClick:this.handleBoxClose},m.default.createElement("i",{className:"bx bx-x"}))))}}]),t}(x.Component);t.default=(0,y.connect)(s,u)(Y)},function(e,t,n){"use strict";var r,a;!function(){var n=void 0!==t&&t||{}||this||window;r=[],void 0!==(a=function(){return n}.apply(t,r))&&(e.exports=a);var o="http://www.w3.org/2000/xmlns/",i=/url\(["']?(.+?)["']?\)/,l={woff2:"font/woff2",woff:"font/woff",otf:"application/x-font-opentype",ttf:"application/x-font-ttf",eot:"application/vnd.ms-fontobject",sfnt:"application/font-sfnt",svg:"image/svg+xml"},s=function(e){return e instanceof HTMLElement||e instanceof SVGElement},u=function(e){if(!s(e))throw new Error("an HTMLElement or SVGElement is required; got "+e)},c=function(e){return e&&0===e.lastIndexOf("http",0)&&-1===e.lastIndexOf(window.location.host)},f=function(e){var t=Object.keys(l).filter(function(t){return e.indexOf("."+t)>0}).map(function(e){return l[e]});return t?t[0]:(console.error("Unknown font format for "+e+". Fonts may not be working correctly."),"application/octet-stream")},d=function(e){for(var t="",n=new Uint8Array(e),r=0;r *")).forEach(function(e){e.getAttribute("xmlns")||e.setAttributeNS(o,"xmlns","http://www.w3.org/1999/xhtml")}),k(e,t).then(function(e){var t=document.createElement("style");t.setAttribute("type","text/css"),t.innerHTML="";var a=document.createElement("defs");a.appendChild(t),r.insertBefore(a,r.firstChild);var o=document.createElement("div");o.appendChild(r);var i=o.innerHTML.replace(/NS\d+:href/gi,'xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href');if("function"!=typeof n)return{src:i,width:b,height:v};n(i,b,v)})})},n.svgAsDataUri=function(e,t,r){u(e);var a=n.prepareSvg(e,t).then(function(e){var t=e.src;return"data:image/svg+xml;base64,"+window.btoa(b(']>'+t))});return"function"==typeof r?a.then(r):a},n.svgAsPngUri=function(e,t,r){u(e);var a=t||{},o=a.encoderType,i=void 0===o?"image/png":o,l=a.encoderOptions,s=void 0===l?.8:l,c=a.canvg,f=function(e){var t=e.src,n=e.width,a=e.height,o=document.createElement("canvas"),l=o.getContext("2d"),u=window.devicePixelRatio||1;o.width=n*u,o.height=a*u,o.style.width=o.width+"px",o.style.height=o.height+"px",l.setTransform(u,0,0,u,0,0),c?c(o,t):l.drawImage(t,0,0);var f=void 0;try{f=o.toDataURL(i,s)}catch(e){if("undefined"!=typeof SecurityError&&e instanceof SecurityError||"SecurityError"===e.name)return void console.error("Rendered SVG images cannot be downloaded in this browser.");throw e}return"function"==typeof r&&r(f),Promise.resolve(f)};return c?n.prepareSvg(e,t).then(f):n.svgAsDataUri(e,t).then(function(e){return new Promise(function(t,n){var r=new Image;r.onload=function(){return t(f({src:r,width:r.width,height:r.height}))},r.onerror=function(){n("There was an error loading the data URI as an image on the following SVG\n"+window.atob(e.slice(26))+"Open the following link to see browser's diagnosis\n"+e)},r.src=e})})},n.download=function(e,t){if(navigator.msSaveOrOpenBlob)navigator.msSaveOrOpenBlob(g(t),e);else{var n=document.createElement("a");if("download"in n){n.download=e,n.style.display="none",document.body.appendChild(n);try{var r=g(t),a=URL.createObjectURL(r);n.href=a,n.onclick=function(){return requestAnimationFrame(function(){return URL.revokeObjectURL(a)})}}catch(e){console.warn("This browser does not support object URLs. Falling back to string URL."),n.href=t}n.click(),document.body.removeChild(n)}else window.open(t,"_temp","menubar=no,toolbar=no,status=no")}},n.saveSvg=function(e,t,r){u(e),n.svgAsDataUri(e,r||{},function(e){return n.download(t,e)})},n.saveSvgAsPng=function(e,t,r){u(e),n.svgAsPngUri(e,r||{},function(e){return n.download(t,e)})}}()},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.CustomPicker=t.TwitterPicker=t.SwatchesPicker=t.SliderPicker=t.SketchPicker=t.PhotoshopPicker=t.MaterialPicker=t.HuePicker=t.GithubPicker=t.CompactPicker=t.ChromePicker=t.default=t.CirclePicker=t.BlockPicker=t.AlphaPicker=void 0;var a=n(591);Object.defineProperty(t,"AlphaPicker",{enumerable:!0,get:function(){return r(a).default}});var o=n(712);Object.defineProperty(t,"BlockPicker",{enumerable:!0,get:function(){return r(o).default}});var i=n(714);Object.defineProperty(t,"CirclePicker",{enumerable:!0,get:function(){return r(i).default}});var l=n(716);Object.defineProperty(t,"ChromePicker",{enumerable:!0,get:function(){return r(l).default}});var s=n(720);Object.defineProperty(t,"CompactPicker",{enumerable:!0,get:function(){return r(s).default}});var u=n(723);Object.defineProperty(t,"GithubPicker",{enumerable:!0,get:function(){return r(u).default}});var c=n(725);Object.defineProperty(t,"HuePicker",{enumerable:!0,get:function(){return r(c).default}});var f=n(727);Object.defineProperty(t,"MaterialPicker",{enumerable:!0,get:function(){return r(f).default}});var d=n(728);Object.defineProperty(t,"PhotoshopPicker",{enumerable:!0,get:function(){return r(d).default}});var p=n(734);Object.defineProperty(t,"SketchPicker",{enumerable:!0,get:function(){return r(p).default}});var h=n(737);Object.defineProperty(t,"SliderPicker",{enumerable:!0,get:function(){return r(h).default}});var b=n(741);Object.defineProperty(t,"SwatchesPicker",{enumerable:!0,get:function(){return r(b).default}});var g=n(744);Object.defineProperty(t,"TwitterPicker",{enumerable:!0,get:function(){return r(g).default}});var v=n(565);Object.defineProperty(t,"CustomPicker",{enumerable:!0,get:function(){return r(v).default}});var x=r(l);t.default=x.default},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.AlphaPicker=void 0;var a=Object.assign||function(e){for(var t=1;t0&&void 0!==arguments[0]?arguments[0]:[],n=[];return(0,f.default)(t,function(t){Array.isArray(t)?e(t).map(function(e){return n.push(e)}):(0,u.default)(t)?(0,l.default)(t,function(e,t){!0===e&&n.push(t),n.push(t+"-"+e)}):(0,o.default)(t)&&n.push(t)}),n};t.default=d},function(e,t,n){function r(e){return"string"==typeof e||!o(e)&&i(e)&&a(e)==l}var a=n(500),o=n(494),i=n(497),l="[object String]";e.exports=r},function(e,t,n){function r(e){var t=i.call(e,s),n=e[s];try{e[s]=void 0;var r=!0}catch(e){}var a=l.call(e);return r&&(t?e[s]=n:delete e[s]),a}var a=n(503),o=Object.prototype,i=o.hasOwnProperty,l=o.toString,s=a?a.toStringTag:void 0;e.exports=r},function(e,t){function n(e){return a.call(e)}var r=Object.prototype,a=r.toString;e.exports=n},function(e,t,n){var r=n(597),a=r();e.exports=a},function(e,t){function n(e){return function(t,n,r){for(var a=-1,o=Object(t),i=r(t),l=i.length;l--;){var s=i[e?l:++a];if(!1===n(o[s],s,o))break}return t}}e.exports=n},function(e,t){function n(e,t){for(var n=-1,r=Array(e);++n-1}var a=n(507);e.exports=r},function(e,t,n){function r(e,t){var n=this.__data__,r=a(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this}var a=n(507);e.exports=r},function(e,t,n){function r(){this.__data__=new a,this.size=0}var a=n(506);e.exports=r},function(e,t){function n(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n}e.exports=n},function(e,t){function n(e){return this.__data__.get(e)}e.exports=n},function(e,t){function n(e){return this.__data__.has(e)}e.exports=n},function(e,t,n){function r(e,t){var n=this.__data__;if(n instanceof a){var r=n.__data__;if(!o||r.length1&&void 0!==arguments[1]?arguments[1]:[],n=e.default&&(0,l.default)(e.default)||{};return t.map(function(t){var r=e[t];return r&&(0,o.default)(r,function(e,t){n[t]||(n[t]={}),n[t]=s({},n[t],r[t])}),t}),n};t.default=u},function(e,t,n){function r(e){return a(e,o|i)}var a=n(667),o=1,i=4;e.exports=r},function(e,t,n){function r(e,t,n,N,F,B){var T,L=t&C,z=t&S,D=t&O;if(n&&(T=F?n(e,N,F,B):n(e)),void 0!==T)return T;if(!_(e))return e;var I=m(e);if(I){if(T=g(e),!L)return c(e,T)}else{var H=b(e),G=H==A||H==P;if(y(e))return u(e,L);if(H==M||H==j||G&&!F){if(T=z||G?{}:x(e),!L)return z?d(e,s(T,e)):f(e,l(T,e))}else{if(!R[H])return F?e:{};T=v(e,H,L)}}B||(B=new a);var U=B.get(e);if(U)return U;if(B.set(e,T),E(e))return e.forEach(function(a){T.add(r(a,t,n,a,e,B))}),T;if(w(e))return e.forEach(function(a,o){T.set(o,r(a,t,n,o,e,B))}),T;var W=D?z?h:p:z?keysIn:k,V=I?void 0:W(e);return o(V||e,function(a,o){V&&(o=a,a=e[o]),i(T,o,r(a,t,n,o,e,B))}),T}var a=n(527),o=n(558),i=n(559),l=n(669),s=n(670),u=n(673),c=n(674),f=n(675),d=n(676),p=n(549),h=n(677),b=n(510),g=n(678),v=n(679),x=n(684),m=n(494),y=n(520),w=n(686),_=n(498),E=n(688),k=n(504),C=1,S=2,O=4,j="[object Arguments]",A="[object Function]",P="[object GeneratorFunction]",M="[object Object]",R={};R[j]=R["[object Array]"]=R["[object ArrayBuffer]"]=R["[object DataView]"]=R["[object Boolean]"]=R["[object Date]"]=R["[object Float32Array]"]=R["[object Float64Array]"]=R["[object Int8Array]"]=R["[object Int16Array]"]=R["[object Int32Array]"]=R["[object Map]"]=R["[object Number]"]=R[M]=R["[object RegExp]"]=R["[object Set]"]=R["[object String]"]=R["[object Symbol]"]=R["[object Uint8Array]"]=R["[object Uint8ClampedArray]"]=R["[object Uint16Array]"]=R["[object Uint32Array]"]=!0,R["[object Error]"]=R[A]=R["[object WeakMap]"]=!1,e.exports=r},function(e,t,n){var r=n(501),a=function(){try{var e=r(Object,"defineProperty");return e({},"",{}),e}catch(e){}}();e.exports=a},function(e,t,n){function r(e,t){return e&&a(t,o(t),e)}var a=n(513),o=n(504);e.exports=r},function(e,t,n){function r(e,t){return e&&a(t,o(t),e)}var a=n(513),o=n(561);e.exports=r},function(e,t,n){function r(e){if(!a(e))return i(e);var t=o(e),n=[];for(var r in e)("constructor"!=r||!t&&s.call(e,r))&&n.push(r);return n}var a=n(498),o=n(525),i=n(672),l=Object.prototype,s=l.hasOwnProperty;e.exports=r},function(e,t){function n(e){var t=[];if(null!=e)for(var n in Object(e))t.push(n);return t}e.exports=n},function(e,t,n){(function(e){function r(e,t){if(t)return e.slice();var n=e.length,r=u?u(n):new e.constructor(n);return e.copy(r),r}var a=n(495),o="object"==typeof t&&t&&!t.nodeType&&t,i=o&&"object"==typeof e&&e&&!e.nodeType&&e,l=i&&i.exports===o,s=l?a.Buffer:void 0,u=s?s.allocUnsafe:void 0;e.exports=r}).call(t,n(521)(e))},function(e,t){function n(e,t){var n=-1,r=e.length;for(t||(t=Array(r));++n1&&void 0!==arguments[1]?arguments[1]:"span";return function(n){function l(){var n,o,u,c;r(this,l);for(var f=arguments.length,d=Array(f),p=0;p1&&void 0!==arguments[1]?arguments[1]:"span";return function(n){function l(){var n,o,u,c;r(this,l);for(var f=arguments.length,d=Array(f),p=0;p1&&void 0!==arguments[1])||arguments[1];n[e]=t};return 0===e&&r("first-child"),e===t-1&&r("last-child"),(0===e||e%2==0)&&r("even"),1===Math.abs(e%2)&&r("odd"),r("nth-child",e),n};t.default=r},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0}),t.Alpha=void 0;var l=Object.assign||function(e){for(var t=1;to?1:Math.round(100*u/o)/100,n.hsl.a!==c)return{h:n.hsl.h,s:n.hsl.s,l:n.hsl.l,a:c,source:"rgb"}}else{var f=void 0;if(f=s<0?0:s>a?1:Math.round(100*s/a)/100,n.a!==f)return{h:n.hsl.h,s:n.hsl.s,l:n.hsl.l,a:f,source:"rgb"}}return null}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r={},a=t.render=function(e,t,n,r){if("undefined"==typeof document&&!r)return null;var a=r?new r:document.createElement("canvas");a.width=2*n,a.height=2*n;var o=a.getContext("2d");return o?(o.fillStyle=e,o.fillRect(0,0,a.width,a.height),o.fillStyle=t,o.fillRect(0,0,n,n),o.translate(n,n),o.fillRect(0,0,n,n),a.toDataURL()):null};t.get=function(e,t,n,o){var i=e+"-"+t+"-"+n+(o?"-server":""),l=a(e,t,n,o);return r[i]?r[i]:(r[i]=l,l)}},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0}),t.EditableInput=void 0;var s=function(){function e(e,t){for(var n=0;n-1,o=Number(t.replace(/%/g,""));if(!isNaN(o)){var i=n.props.arrowOffset||1;38===e.keyCode&&(null!==n.props.label?n.props.onChange&&n.props.onChange(a({},n.props.label,o+i),e):n.props.onChange&&n.props.onChange(o+i,e),r?n.setState({value:o+i+"%"}):n.setState({value:o+i})),40===e.keyCode&&(null!==n.props.label?n.props.onChange&&n.props.onChange(a({},n.props.label,o-i),e):n.props.onChange&&n.props.onChange(o-i,e),r?n.setState({value:o-i+"%"}):n.setState({value:o-i}))}},n.handleDrag=function(e){if(n.props.dragLabel){var t=Math.round(n.props.value+e.movementX);t>=0&&t<=n.props.dragMax&&n.props.onChange&&n.props.onChange(a({},n.props.label,t),e)}},n.handleMouseDown=function(e){n.props.dragLabel&&(e.preventDefault(),n.handleDrag(e),window.addEventListener("mousemove",n.handleDrag),window.addEventListener("mouseup",n.handleMouseUp))},n.handleMouseUp=function(){n.unbindEventListeners()},n.unbindEventListeners=function(){window.removeEventListener("mousemove",n.handleDrag),window.removeEventListener("mouseup",n.handleMouseUp)},n.state={value:String(e.value).toUpperCase(),blurValue:String(e.value).toUpperCase()},n}return l(t,e),s(t,[{key:"componentWillReceiveProps",value:function(e){var t=this.input;e.value!==this.state.value&&(t===document.activeElement?this.setState({blurValue:String(e.value).toUpperCase()}):this.setState({value:String(e.value).toUpperCase(),blurValue:!this.state.blurValue&&String(e.value).toUpperCase()}))}},{key:"componentWillUnmount",value:function(){this.unbindEventListeners()}},{key:"render",value:function(){var e=this,t=(0,d.default)({default:{wrap:{position:"relative"}},"user-override":{wrap:this.props.style&&this.props.style.wrap?this.props.style.wrap:{},input:this.props.style&&this.props.style.input?this.props.style.input:{},label:this.props.style&&this.props.style.label?this.props.style.label:{}},"dragLabel-true":{label:{cursor:"ew-resize"}}},{"user-override":!0},this.props);return c.default.createElement("div",{style:t.wrap},c.default.createElement("input",{style:t.input,ref:function(t){return e.input=t},value:this.state.value,onKeyDown:this.handleKeyDown,onChange:this.handleChange,onBlur:this.handleBlur,placeholder:this.props.placeholder,spellCheck:"false"}),this.props.label&&!this.props.hideLabel?c.default.createElement("span",{style:t.label,onMouseDown:this.handleMouseDown},this.props.label):null)}}]),t}(u.PureComponent||u.Component);t.default=p},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0}),t.Hue=void 0;var l=function(){function e(e,t){for(var n=0;no)c=0;else{var f=-100*u/o+100;c=360*f/100}if(n.hsl.h!==c)return{h:c,s:n.hsl.s,l:n.hsl.l,a:n.hsl.a,source:"rgb"}}else{var d=void 0;if(s<0)d=0;else if(s>a)d=359;else{var p=100*s/a;d=360*p/100}if(n.hsl.h!==d)return{h:d,s:n.hsl.s,l:n.hsl.l,a:n.hsl.a,source:"rgb"}}return null}},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.Raised=void 0;var a=n(5),o=r(a),i=n(11),l=r(i),s=n(492),u=r(s),c=t.Raised=function(e){var t=e.zDepth,n=e.radius,r=e.background,a=e.children,i=(0,u.default)({default:{wrap:{position:"relative",display:"inline-block"},content:{position:"relative"},bg:{absolute:"0px 0px 0px 0px",boxShadow:"0 "+t+"px "+4*t+"px rgba(0,0,0,.24)",borderRadius:n,background:r}},"zDepth-0":{bg:{boxShadow:"none"}},"zDepth-1":{bg:{boxShadow:"0 2px 10px rgba(0,0,0,.12), 0 2px 5px rgba(0,0,0,.16)"}},"zDepth-2":{bg:{boxShadow:"0 6px 20px rgba(0,0,0,.19), 0 8px 17px rgba(0,0,0,.2)"}},"zDepth-3":{bg:{boxShadow:"0 17px 50px rgba(0,0,0,.19), 0 12px 15px rgba(0,0,0,.24)"}},"zDepth-4":{bg:{boxShadow:"0 25px 55px rgba(0,0,0,.21), 0 16px 28px rgba(0,0,0,.22)"}},"zDepth-5":{bg:{boxShadow:"0 40px 77px rgba(0,0,0,.22), 0 27px 24px rgba(0,0,0,.2)"}},square:{bg:{borderRadius:"0"}},circle:{bg:{borderRadius:"50%"}}},{"zDepth-1":1===t});return o.default.createElement("div",{style:i.wrap},o.default.createElement("div",{style:i.bg}),o.default.createElement("div",{style:i.content},a))};c.propTypes={background:l.default.string,zDepth:l.default.oneOf([0,1,2,3,4,5]),radius:l.default.number},c.defaultProps={background:"#fff",zDepth:1,radius:2},t.default=c},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0}),t.Saturation=void 0;var l=function(){function e(e,t){for(var n=0;no?u=o:c<0?c=0:c>i&&(c=i);var f=100*u/o,d=-100*c/i+100;return{h:n.hsl.h,s:f,v:d,a:n.hsl.a,source:"rgb"}}},function(e,t,n){e.exports=n(707)},function(e,t,n){function r(e,t){return(l(e)?a:o)(e,i(t))}var a=n(558),o=n(557),i=n(542),l=n(494);e.exports=r},function(e,t,n){var r;!function(a){function o(e,t){if(e=e||"",t=t||{},e instanceof o)return e;if(!(this instanceof o))return new o(e,t);var n=i(e);this._originalInput=e,this._r=n.r,this._g=n.g,this._b=n.b,this._a=n.a,this._roundA=W(100*this._a)/100,this._format=t.format||n.format,this._gradientType=t.gradientType,this._r<1&&(this._r=W(this._r)),this._g<1&&(this._g=W(this._g)),this._b<1&&(this._b=W(this._b)),this._ok=n.ok,this._tc_id=U++}function i(e){var t={r:0,g:0,b:0},n=1,r=null,a=null,o=null,i=!1,s=!1;return"string"==typeof e&&(e=D(e)),"object"==typeof e&&(z(e.r)&&z(e.g)&&z(e.b)?(t=l(e.r,e.g,e.b),i=!0,s="%"===String(e.r).substr(-1)?"prgb":"rgb"):z(e.h)&&z(e.s)&&z(e.v)?(r=B(e.s),a=B(e.v),t=f(e.h,r,a),i=!0,s="hsv"):z(e.h)&&z(e.s)&&z(e.l)&&(r=B(e.s),o=B(e.l),t=u(e.h,r,o),i=!0,s="hsl"),e.hasOwnProperty("a")&&(n=e.a)),n=j(n),{ok:i,format:e.format||s,r:V(255,X(t.r,0)),g:V(255,X(t.g,0)),b:V(255,X(t.b,0)),a:n}}function l(e,t,n){return{r:255*A(e,255),g:255*A(t,255),b:255*A(n,255)}}function s(e,t,n){e=A(e,255),t=A(t,255),n=A(n,255);var r,a,o=X(e,t,n),i=V(e,t,n),l=(o+i)/2;if(o==i)r=a=0;else{var s=o-i;switch(a=l>.5?s/(2-o-i):s/(o+i),o){case e:r=(t-n)/s+(t1&&(n-=1),n<1/6?e+6*(t-e)*n:n<.5?t:n<2/3?e+(t-e)*(2/3-n)*6:e}var a,o,i;if(e=A(e,360),t=A(t,100),n=A(n,100),0===t)a=o=i=n;else{var l=n<.5?n*(1+t):n+t-n*t,s=2*n-l;a=r(s,l,e+1/3),o=r(s,l,e),i=r(s,l,e-1/3)}return{r:255*a,g:255*o,b:255*i}}function c(e,t,n){e=A(e,255),t=A(t,255),n=A(n,255);var r,a,o=X(e,t,n),i=V(e,t,n),l=o,s=o-i;if(a=0===o?0:s/o,o==i)r=0;else{switch(o){case e:r=(t-n)/s+(t>1)+720)%360;--t;)r.h=(r.h+a)%360,i.push(o(r));return i}function O(e,t){t=t||6;for(var n=o(e).toHsv(),r=n.h,a=n.s,i=n.v,l=[],s=1/t;t--;)l.push(o({h:r,s:a,v:i})),i=(i+s)%1;return l}function j(e){return e=parseFloat(e),(isNaN(e)||e<0||e>1)&&(e=1),e}function A(e,t){R(e)&&(e="100%");var n=N(e);return e=V(t,X(0,parseFloat(e))),n&&(e=parseInt(e*t,10)/100),a.abs(e-t)<1e-6?1:e%t/parseFloat(t)}function P(e){return V(1,X(0,e))}function M(e){return parseInt(e,16)}function R(e){return"string"==typeof e&&-1!=e.indexOf(".")&&1===parseFloat(e)}function N(e){return"string"==typeof e&&-1!=e.indexOf("%")}function F(e){return 1==e.length?"0"+e:""+e}function B(e){return e<=1&&(e=100*e+"%"),e}function T(e){return a.round(255*parseFloat(e)).toString(16)}function L(e){return M(e)/255}function z(e){return!!K.CSS_UNIT.exec(e)}function D(e){e=e.replace(H,"").replace(G,"").toLowerCase();var t=!1;if($[e])e=$[e],t=!0;else if("transparent"==e)return{r:0,g:0,b:0,a:0,format:"name"};var n;return(n=K.rgb.exec(e))?{r:n[1],g:n[2],b:n[3]}:(n=K.rgba.exec(e))?{r:n[1],g:n[2],b:n[3],a:n[4]}:(n=K.hsl.exec(e))?{h:n[1],s:n[2],l:n[3]}:(n=K.hsla.exec(e))?{h:n[1],s:n[2],l:n[3],a:n[4]}:(n=K.hsv.exec(e))?{h:n[1],s:n[2],v:n[3]}:(n=K.hsva.exec(e))?{h:n[1],s:n[2],v:n[3],a:n[4]}:(n=K.hex8.exec(e))?{r:M(n[1]),g:M(n[2]),b:M(n[3]),a:L(n[4]),format:t?"name":"hex8"}:(n=K.hex6.exec(e))?{r:M(n[1]),g:M(n[2]),b:M(n[3]),format:t?"name":"hex"}:(n=K.hex4.exec(e))?{r:M(n[1]+""+n[1]),g:M(n[2]+""+n[2]),b:M(n[3]+""+n[3]),a:L(n[4]+""+n[4]),format:t?"name":"hex8"}:!!(n=K.hex3.exec(e))&&{r:M(n[1]+""+n[1]),g:M(n[2]+""+n[2]),b:M(n[3]+""+n[3]),format:t?"name":"hex"}}function I(e){var t,n;return e=e||{level:"AA",size:"small"},t=(e.level||"AA").toUpperCase(),n=(e.size||"small").toLowerCase(),"AA"!==t&&"AAA"!==t&&(t="AA"),"small"!==n&&"large"!==n&&(n="small"),{level:t,size:n}}var H=/^\s+/,G=/\s+$/,U=0,W=a.round,V=a.min,X=a.max,q=a.random;o.prototype={isDark:function(){return this.getBrightness()<128},isLight:function(){return!this.isDark()},isValid:function(){return this._ok},getOriginalInput:function(){return this._originalInput},getFormat:function(){return this._format},getAlpha:function(){return this._a},getBrightness:function(){var e=this.toRgb();return(299*e.r+587*e.g+114*e.b)/1e3},getLuminance:function(){var e,t,n,r,o,i,l=this.toRgb();return e=l.r/255,t=l.g/255,n=l.b/255,r=e<=.03928?e/12.92:a.pow((e+.055)/1.055,2.4),o=t<=.03928?t/12.92:a.pow((t+.055)/1.055,2.4),i=n<=.03928?n/12.92:a.pow((n+.055)/1.055,2.4),.2126*r+.7152*o+.0722*i},setAlpha:function(e){return this._a=j(e),this._roundA=W(100*this._a)/100,this},toHsv:function(){var e=c(this._r,this._g,this._b);return{h:360*e.h,s:e.s,v:e.v,a:this._a}},toHsvString:function(){var e=c(this._r,this._g,this._b),t=W(360*e.h),n=W(100*e.s),r=W(100*e.v);return 1==this._a?"hsv("+t+", "+n+"%, "+r+"%)":"hsva("+t+", "+n+"%, "+r+"%, "+this._roundA+")"},toHsl:function(){var e=s(this._r,this._g,this._b);return{h:360*e.h,s:e.s,l:e.l,a:this._a}},toHslString:function(){var e=s(this._r,this._g,this._b),t=W(360*e.h),n=W(100*e.s),r=W(100*e.l);return 1==this._a?"hsl("+t+", "+n+"%, "+r+"%)":"hsla("+t+", "+n+"%, "+r+"%, "+this._roundA+")"},toHex:function(e){return d(this._r,this._g,this._b,e)},toHexString:function(e){return"#"+this.toHex(e)},toHex8:function(e){return p(this._r,this._g,this._b,this._a,e)},toHex8String:function(e){return"#"+this.toHex8(e)},toRgb:function(){return{r:W(this._r),g:W(this._g),b:W(this._b),a:this._a}},toRgbString:function(){return 1==this._a?"rgb("+W(this._r)+", "+W(this._g)+", "+W(this._b)+")":"rgba("+W(this._r)+", "+W(this._g)+", "+W(this._b)+", "+this._roundA+")"},toPercentageRgb:function(){return{r:W(100*A(this._r,255))+"%",g:W(100*A(this._g,255))+"%",b:W(100*A(this._b,255))+"%",a:this._a}},toPercentageRgbString:function(){return 1==this._a?"rgb("+W(100*A(this._r,255))+"%, "+W(100*A(this._g,255))+"%, "+W(100*A(this._b,255))+"%)":"rgba("+W(100*A(this._r,255))+"%, "+W(100*A(this._g,255))+"%, "+W(100*A(this._b,255))+"%, "+this._roundA+")"},toName:function(){return 0===this._a?"transparent":!(this._a<1)&&(Y[d(this._r,this._g,this._b,!0)]||!1)},toFilter:function(e){var t="#"+h(this._r,this._g,this._b,this._a),n=t,r=this._gradientType?"GradientType = 1, ":"";if(e){var a=o(e);n="#"+h(a._r,a._g,a._b,a._a)}return"progid:DXImageTransform.Microsoft.gradient("+r+"startColorstr="+t+",endColorstr="+n+")"},toString:function(e){var t=!!e;e=e||this._format;var n=!1,r=this._a<1&&this._a>=0;return t||!r||"hex"!==e&&"hex6"!==e&&"hex3"!==e&&"hex4"!==e&&"hex8"!==e&&"name"!==e?("rgb"===e&&(n=this.toRgbString()),"prgb"===e&&(n=this.toPercentageRgbString()),"hex"!==e&&"hex6"!==e||(n=this.toHexString()),"hex3"===e&&(n=this.toHexString(!0)),"hex4"===e&&(n=this.toHex8String(!0)),"hex8"===e&&(n=this.toHex8String()),"name"===e&&(n=this.toName()),"hsl"===e&&(n=this.toHslString()),"hsv"===e&&(n=this.toHsvString()),n||this.toHexString()):"name"===e&&0===this._a?this.toName():this.toRgbString()},clone:function(){return o(this.toString())},_applyModification:function(e,t){var n=e.apply(null,[this].concat([].slice.call(t)));return this._r=n._r,this._g=n._g,this._b=n._b,this.setAlpha(n._a),this},lighten:function(){return this._applyModification(x,arguments)},brighten:function(){return this._applyModification(m,arguments)},darken:function(){return this._applyModification(y,arguments)},desaturate:function(){return this._applyModification(b,arguments)},saturate:function(){return this._applyModification(g,arguments)},greyscale:function(){return this._applyModification(v,arguments)},spin:function(){return this._applyModification(w,arguments)},_applyCombination:function(e,t){return e.apply(null,[this].concat([].slice.call(t)))},analogous:function(){return this._applyCombination(S,arguments)},complement:function(){return this._applyCombination(_,arguments)},monochromatic:function(){return this._applyCombination(O,arguments)},splitcomplement:function(){return this._applyCombination(C,arguments)},triad:function(){return this._applyCombination(E,arguments)},tetrad:function(){return this._applyCombination(k,arguments)}},o.fromRatio=function(e,t){if("object"==typeof e){var n={};for(var r in e)e.hasOwnProperty(r)&&(n[r]="a"===r?e[r]:B(e[r]));e=n}return o(e,t)},o.equals=function(e,t){return!(!e||!t)&&o(e).toRgbString()==o(t).toRgbString()},o.random=function(){return o.fromRatio({r:q(),g:q(),b:q()})},o.mix=function(e,t,n){n=0===n?0:n||50;var r=o(e).toRgb(),a=o(t).toRgb(),i=n/100;return o({r:(a.r-r.r)*i+r.r,g:(a.g-r.g)*i+r.g,b:(a.b-r.b)*i+r.b,a:(a.a-r.a)*i+r.a})},o.readability=function(e,t){var n=o(e),r=o(t);return(a.max(n.getLuminance(),r.getLuminance())+.05)/(a.min(n.getLuminance(),r.getLuminance())+.05)},o.isReadable=function(e,t,n){var r,a,i=o.readability(e,t);switch(a=!1,r=I(n),r.level+r.size){case"AAsmall":case"AAAlarge":a=i>=4.5;break;case"AAlarge":a=i>=3;break;case"AAAsmall":a=i>=7}return a},o.mostReadable=function(e,t,n){var r,a,i,l,s=null,u=0;n=n||{},a=n.includeFallbackColors,i=n.level,l=n.size;for(var c=0;cu&&(u=r,s=o(t[c]));return o.isReadable(e,s,{level:i,size:l})||!a?s:(n.includeFallbackColors=!1,o.mostReadable(e,["#fff","#000"],n))};var $=o.names={aliceblue:"f0f8ff",antiquewhite:"faebd7",aqua:"0ff",aquamarine:"7fffd4",azure:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"000",blanchedalmond:"ffebcd",blue:"00f",blueviolet:"8a2be2",brown:"a52a2a",burlywood:"deb887",burntsienna:"ea7e5d",cadetblue:"5f9ea0",chartreuse:"7fff00",chocolate:"d2691e",coral:"ff7f50",cornflowerblue:"6495ed",cornsilk:"fff8dc",crimson:"dc143c",cyan:"0ff",darkblue:"00008b",darkcyan:"008b8b",darkgoldenrod:"b8860b",darkgray:"a9a9a9",darkgreen:"006400",darkgrey:"a9a9a9",darkkhaki:"bdb76b",darkmagenta:"8b008b",darkolivegreen:"556b2f",darkorange:"ff8c00",darkorchid:"9932cc",darkred:"8b0000",darksalmon:"e9967a",darkseagreen:"8fbc8f",darkslateblue:"483d8b",darkslategray:"2f4f4f",darkslategrey:"2f4f4f",darkturquoise:"00ced1",darkviolet:"9400d3",deeppink:"ff1493",deepskyblue:"00bfff",dimgray:"696969",dimgrey:"696969",dodgerblue:"1e90ff",firebrick:"b22222",floralwhite:"fffaf0",forestgreen:"228b22",fuchsia:"f0f",gainsboro:"dcdcdc",ghostwhite:"f8f8ff",gold:"ffd700",goldenrod:"daa520",gray:"808080",green:"008000",greenyellow:"adff2f",grey:"808080",honeydew:"f0fff0",hotpink:"ff69b4",indianred:"cd5c5c",indigo:"4b0082",ivory:"fffff0",khaki:"f0e68c",lavender:"e6e6fa",lavenderblush:"fff0f5",lawngreen:"7cfc00",lemonchiffon:"fffacd",lightblue:"add8e6",lightcoral:"f08080",lightcyan:"e0ffff",lightgoldenrodyellow:"fafad2",lightgray:"d3d3d3",lightgreen:"90ee90",lightgrey:"d3d3d3",lightpink:"ffb6c1",lightsalmon:"ffa07a",lightseagreen:"20b2aa",lightskyblue:"87cefa",lightslategray:"789",lightslategrey:"789",lightsteelblue:"b0c4de",lightyellow:"ffffe0",lime:"0f0",limegreen:"32cd32",linen:"faf0e6",magenta:"f0f",maroon:"800000",mediumaquamarine:"66cdaa",mediumblue:"0000cd",mediumorchid:"ba55d3",mediumpurple:"9370db",mediumseagreen:"3cb371",mediumslateblue:"7b68ee",mediumspringgreen:"00fa9a",mediumturquoise:"48d1cc",mediumvioletred:"c71585",midnightblue:"191970",mintcream:"f5fffa",mistyrose:"ffe4e1",moccasin:"ffe4b5",navajowhite:"ffdead",navy:"000080",oldlace:"fdf5e6",olive:"808000",olivedrab:"6b8e23",orange:"ffa500",orangered:"ff4500",orchid:"da70d6",palegoldenrod:"eee8aa",palegreen:"98fb98",paleturquoise:"afeeee",palevioletred:"db7093",papayawhip:"ffefd5",peachpuff:"ffdab9",peru:"cd853f",pink:"ffc0cb",plum:"dda0dd",powderblue:"b0e0e6",purple:"800080",rebeccapurple:"663399",red:"f00",rosybrown:"bc8f8f",royalblue:"4169e1",saddlebrown:"8b4513",salmon:"fa8072",sandybrown:"f4a460",seagreen:"2e8b57",seashell:"fff5ee",sienna:"a0522d",silver:"c0c0c0",skyblue:"87ceeb",slateblue:"6a5acd",slategray:"708090",slategrey:"708090",snow:"fffafa",springgreen:"00ff7f",steelblue:"4682b4",tan:"d2b48c",teal:"008080",thistle:"d8bfd8",tomato:"ff6347",turquoise:"40e0d0",violet:"ee82ee",wheat:"f5deb3",white:"fff",whitesmoke:"f5f5f5",yellow:"ff0",yellowgreen:"9acd32"},Y=o.hexNames=function(e){var t={};for(var n in e)e.hasOwnProperty(n)&&(t[e[n]]=n);return t}($),K=function(){var e="(?:[-\\+]?\\d*\\.\\d+%?)|(?:[-\\+]?\\d+%?)",t="[\\s|\\(]+("+e+")[,|\\s]+("+e+")[,|\\s]+("+e+")\\s*\\)?",n="[\\s|\\(]+("+e+")[,|\\s]+("+e+")[,|\\s]+("+e+")[,|\\s]+("+e+")\\s*\\)?";return{CSS_UNIT:new RegExp(e),rgb:new RegExp("rgb"+t),rgba:new RegExp("rgba"+n),hsl:new RegExp("hsl"+t),hsla:new RegExp("hsla"+n),hsv:new RegExp("hsv"+t),hsva:new RegExp("hsva"+n),hex3:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,hex4:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex8:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/}}();void 0!==e&&e.exports?e.exports=o:void 0!==(r=function(){return o}.call(t,n,t,e))&&(e.exports=r)}(Math)},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.Swatch=void 0;var a=Object.assign||function(e){for(var t=1;t1&&void 0!==arguments[1]?arguments[1]:"span";return function(n){function s(){var e,t,n,o;r(this,s);for(var i=arguments.length,l=Array(i),u=0;u1&&(e.a=1),r.props.onChange({h:r.props.hsl.h,s:r.props.hsl.s,l:r.props.hsl.l,a:Math.round(100*e.a)/100,source:"rgb"},t)):(e.h||e.s||e.l)&&r.props.onChange({h:e.h||r.props.hsl.h,s:Number(e.s&&e.s||r.props.hsl.s),l:Number(e.l&&e.l||r.props.hsl.l),source:"hsl"},t)},r.showHighlight=function(e){e.target.style.background="#eee"},r.hideHighlight=function(e){e.target.style.background="transparent"},i=n,o(r,i)}return i(t,e),l(t,[{key:"componentDidMount",value:function(){1===this.props.hsl.a&&"hex"!==this.state.view?this.setState({view:"hex"}):"rgb"!==this.state.view&&"hsl"!==this.state.view&&this.setState({view:"rgb"})}},{key:"componentWillReceiveProps",value:function(e){1!==e.hsl.a&&"hex"===this.state.view&&this.setState({view:"rgb"})}},{key:"render",value:function(){var e=this,t=(0,f.default)({default:{wrap:{paddingTop:"16px",display:"flex"},fields:{flex:"1",display:"flex",marginLeft:"-6px"},field:{paddingLeft:"6px",width:"100%"},alpha:{paddingLeft:"6px",width:"100%"},toggle:{width:"32px",textAlign:"right",position:"relative"},icon:{marginRight:"-4px",marginTop:"12px",cursor:"pointer",position:"relative"},iconHighlight:{position:"absolute",width:"24px",height:"28px",background:"#eee",borderRadius:"4px",top:"10px",left:"12px",display:"none"},input:{fontSize:"11px",color:"#333",width:"100%",borderRadius:"2px",border:"none",boxShadow:"inset 0 0 0 1px #dadada",height:"21px",textAlign:"center"},label:{textTransform:"uppercase",fontSize:"11px",lineHeight:"11px",color:"#969696",textAlign:"center",display:"block",marginTop:"12px"},svg:{width:"24px",height:"24px",border:"1px transparent solid",borderRadius:"5px"}},disableAlpha:{alpha:{display:"none"}}},this.props,this.state),n=void 0;return"hex"===this.state.view?n=u.default.createElement("div",{style:t.fields,className:"flexbox-fix"},u.default.createElement("div",{style:t.field},u.default.createElement(h.EditableInput,{style:{input:t.input,label:t.label},label:"hex",value:this.props.hex,onChange:this.handleChange}))):"rgb"===this.state.view?n=u.default.createElement("div",{style:t.fields,className:"flexbox-fix"},u.default.createElement("div",{style:t.field},u.default.createElement(h.EditableInput,{style:{input:t.input,label:t.label},label:"r",value:this.props.rgb.r,onChange:this.handleChange})),u.default.createElement("div",{style:t.field},u.default.createElement(h.EditableInput,{style:{input:t.input,label:t.label},label:"g",value:this.props.rgb.g,onChange:this.handleChange})),u.default.createElement("div",{style:t.field},u.default.createElement(h.EditableInput,{style:{input:t.input,label:t.label},label:"b",value:this.props.rgb.b,onChange:this.handleChange})),u.default.createElement("div",{style:t.alpha},u.default.createElement(h.EditableInput,{style:{input:t.input,label:t.label},label:"a",value:this.props.rgb.a,arrowOffset:.01,onChange:this.handleChange}))):"hsl"===this.state.view&&(n=u.default.createElement("div",{style:t.fields,className:"flexbox-fix"},u.default.createElement("div",{style:t.field},u.default.createElement(h.EditableInput,{style:{input:t.input,label:t.label},label:"h",value:Math.round(this.props.hsl.h),onChange:this.handleChange})),u.default.createElement("div",{style:t.field},u.default.createElement(h.EditableInput,{style:{input:t.input,label:t.label},label:"s",value:Math.round(100*this.props.hsl.s)+"%",onChange:this.handleChange})),u.default.createElement("div",{style:t.field},u.default.createElement(h.EditableInput,{style:{input:t.input,label:t.label},label:"l",value:Math.round(100*this.props.hsl.l)+"%",onChange:this.handleChange})),u.default.createElement("div",{style:t.alpha},u.default.createElement(h.EditableInput,{style:{input:t.input,label:t.label},label:"a",value:this.props.hsl.a,arrowOffset:.01,onChange:this.handleChange})))),u.default.createElement("div",{style:t.wrap,className:"flexbox-fix"},n,u.default.createElement("div",{style:t.toggle},u.default.createElement("div",{style:t.icon,onClick:this.toggleViews,ref:function(t){return e.icon=t}},u.default.createElement("svg",{style:t.svg,viewBox:"0 0 24 24",onMouseOver:this.showHighlight,onMouseEnter:this.showHighlight,onMouseOut:this.hideHighlight},u.default.createElement("path",{ref:function(t){return e.iconUp=t},fill:"#333",d:"M12,5.83L15.17,9L16.58,7.59L12,3L7.41,7.59L8.83,9L12,5.83Z"}),u.default.createElement("path",{ref:function(t){return e.iconDown=t},fill:"#333",d:"M12,18.17L8.83,15L7.42,16.41L12,21L16.59,16.41L15.17,15Z"})))))}}]),t}(u.default.Component);t.default=b},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.ChromePointer=void 0;var a=n(5),o=r(a),i=n(492),l=r(i),s=t.ChromePointer=function(){var e=(0,l.default)({default:{picker:{width:"12px",height:"12px",borderRadius:"6px",transform:"translate(-6px, -1px)",backgroundColor:"rgb(248, 248, 248)",boxShadow:"0 1px 4px 0 rgba(0, 0, 0, 0.37)"}}});return o.default.createElement("div",{style:e.picker})};t.default=s},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.ChromePointerCircle=void 0;var a=n(5),o=r(a),i=n(492),l=r(i),s=t.ChromePointerCircle=function(){var e=(0,l.default)({default:{picker:{width:"12px",height:"12px",borderRadius:"6px",boxShadow:"inset 0 0 0 1px #fff",transform:"translate(-6px, -6px)"}}});return o.default.createElement("div",{style:e.picker})};t.default=s},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.Compact=void 0;var a=n(5),o=r(a),i=n(11),l=r(i),s=n(492),u=r(s),c=n(499),f=r(c),d=n(496),p=r(d),h=n(493),b=n(721),g=r(b),v=n(722),x=r(v),m=t.Compact=function(e){var t=e.onChange,n=e.onSwatchHover,r=e.colors,a=e.hex,i=e.rgb,l=e.className,s=void 0===l?"":l,c=(0,u.default)({default:{Compact:{background:"#f6f6f6",radius:"4px"},compact:{paddingTop:"5px",paddingLeft:"5px",boxSizing:"initial",width:"240px"},clear:{clear:"both"}}}),d=function(e,n){e.hex?p.default.isValidHex(e.hex)&&t({hex:e.hex,source:"hex"},n):t(e,n)};return o.default.createElement(h.Raised,{style:c.Compact},o.default.createElement("div",{style:c.compact,className:"compact-picker "+s},o.default.createElement("div",null,(0,f.default)(r,function(e){return o.default.createElement(g.default,{key:e,color:e,active:e.toLowerCase()===a,onClick:d,onSwatchHover:n})}),o.default.createElement("div",{style:c.clear})),o.default.createElement(x.default,{hex:a,rgb:i,onChange:d})))};m.propTypes={colors:l.default.arrayOf(l.default.string)},m.defaultProps={colors:["#4D4D4D","#999999","#FFFFFF","#F44E3B","#FE9200","#FCDC00","#DBDF00","#A4DD00","#68CCCA","#73D8FF","#AEA1FF","#FDA1FF","#333333","#808080","#cccccc","#D33115","#E27300","#FCC400","#B0BC00","#68BC00","#16A5A5","#009CE0","#7B64FF","#FA28FF","#000000","#666666","#B3B3B3","#9F0500","#C45100","#FB9E00","#808900","#194D33","#0C797D","#0062B1","#653294","#AB149E"]},t.default=(0,h.ColorWrap)(m)},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.CompactColor=void 0;var a=n(5),o=r(a),i=n(492),l=r(i),s=n(496),u=r(s),c=n(493),f=t.CompactColor=function(e){var t=e.color,n=e.onClick,r=void 0===n?function(){}:n,a=e.onSwatchHover,i=e.active,s=(0,l.default)({default:{color:{background:t,width:"15px",height:"15px",float:"left",marginRight:"5px",marginBottom:"5px",position:"relative",cursor:"pointer"},dot:{absolute:"5px 5px 5px 5px",background:u.default.getContrastingColor(t),borderRadius:"50%",opacity:"0"}},active:{dot:{opacity:"1"}},"color-#FFFFFF":{color:{boxShadow:"inset 0 0 0 1px #ddd"},dot:{background:"#000"}},transparent:{dot:{background:"#000"}}},{active:i,"color-#FFFFFF":"#FFFFFF"===t,transparent:"transparent"===t});return o.default.createElement(c.Swatch,{style:s.color,color:t,onClick:r,onHover:a,focusStyle:{boxShadow:"0 0 4px "+t}},o.default.createElement("div",{style:s.dot}))};t.default=f},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.CompactFields=void 0;var a=n(5),o=r(a),i=n(492),l=r(i),s=n(493),u=t.CompactFields=function(e){var t=e.hex,n=e.rgb,r=e.onChange,a=(0,l.default)({default:{fields:{display:"flex",paddingBottom:"6px",paddingRight:"5px",position:"relative"},active:{position:"absolute",top:"6px",left:"5px",height:"9px",width:"9px",background:t},HEXwrap:{flex:"6",position:"relative"},HEXinput:{width:"80%",padding:"0px",paddingLeft:"20%",border:"none",outline:"none",background:"none",fontSize:"12px",color:"#333",height:"16px"},HEXlabel:{display:"none"},RGBwrap:{flex:"3",position:"relative"},RGBinput:{width:"70%",padding:"0px",paddingLeft:"30%",border:"none",outline:"none",background:"none",fontSize:"12px",color:"#333",height:"16px"},RGBlabel:{position:"absolute",top:"3px",left:"0px",lineHeight:"16px",textTransform:"uppercase",fontSize:"12px",color:"#999"}}}),i=function(e,t){e.r||e.g||e.b?r({r:e.r||n.r,g:e.g||n.g,b:e.b||n.b,source:"rgb"},t):r({hex:e.hex,source:"hex"},t)};return o.default.createElement("div",{style:a.fields,className:"flexbox-fix"},o.default.createElement("div",{style:a.active}),o.default.createElement(s.EditableInput,{style:{wrap:a.HEXwrap,input:a.HEXinput,label:a.HEXlabel},label:"hex",value:t,onChange:i}),o.default.createElement(s.EditableInput,{style:{wrap:a.RGBwrap,input:a.RGBinput,label:a.RGBlabel},label:"r",value:n.r,onChange:i}),o.default.createElement(s.EditableInput,{style:{wrap:a.RGBwrap,input:a.RGBinput,label:a.RGBlabel},label:"g",value:n.g,onChange:i}),o.default.createElement(s.EditableInput,{style:{wrap:a.RGBwrap,input:a.RGBinput,label:a.RGBlabel},label:"b",value:n.b,onChange:i}))};t.default=u},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.Github=void 0;var a=n(5),o=r(a),i=n(11),l=r(i),s=n(492),u=r(s),c=n(499),f=r(c),d=n(493),p=n(724),h=r(p),b=t.Github=function(e){var t=e.width,n=e.colors,r=e.onChange,a=e.onSwatchHover,i=e.triangle,l=e.className,s=void 0===l?"":l,c=(0,u.default)({default:{card:{width:t,background:"#fff",border:"1px solid rgba(0,0,0,0.2)",boxShadow:"0 3px 12px rgba(0,0,0,0.15)",borderRadius:"4px",position:"relative",padding:"5px",display:"flex",flexWrap:"wrap"},triangle:{position:"absolute",border:"7px solid transparent",borderBottomColor:"#fff"},triangleShadow:{position:"absolute",border:"8px solid transparent",borderBottomColor:"rgba(0,0,0,0.15)"}},"hide-triangle":{triangle:{display:"none"},triangleShadow:{display:"none"}},"top-left-triangle":{triangle:{top:"-14px",left:"10px"},triangleShadow:{top:"-16px",left:"9px"}},"top-right-triangle":{triangle:{top:"-14px",right:"10px"},triangleShadow:{top:"-16px",right:"9px"}},"bottom-left-triangle":{triangle:{top:"35px",left:"10px",transform:"rotate(180deg)"},triangleShadow:{top:"37px",left:"9px",transform:"rotate(180deg)"}},"bottom-right-triangle":{triangle:{top:"35px",right:"10px",transform:"rotate(180deg)"},triangleShadow:{top:"37px",right:"9px",transform:"rotate(180deg)"}}},{"hide-triangle":"hide"===i,"top-left-triangle":"top-left"===i,"top-right-triangle":"top-right"===i,"bottom-left-triangle":"bottom-left"==i,"bottom-right-triangle":"bottom-right"===i}),d=function(e,t){return r({hex:e,source:"hex"},t)};return o.default.createElement("div",{style:c.card,className:"github-picker "+s},o.default.createElement("div",{style:c.triangleShadow}),o.default.createElement("div",{style:c.triangle}),(0,f.default)(n,function(e){return o.default.createElement(h.default,{color:e,key:e,onClick:d,onSwatchHover:a})}))};b.propTypes={width:l.default.oneOfType([l.default.string,l.default.number]),colors:l.default.arrayOf(l.default.string),triangle:l.default.oneOf(["hide","top-left","top-right","bottom-left","bottom-right"])},b.defaultProps={width:200,colors:["#B80000","#DB3E00","#FCCB00","#008B02","#006B76","#1273DE","#004DCF","#5300EB","#EB9694","#FAD0C3","#FEF3BD","#C1E1C5","#BEDADC","#C4DEF6","#BED3F3","#D4C4FB"],triangle:"top-left"},t.default=(0,d.ColorWrap)(b)},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.GithubSwatch=void 0;var a=n(5),o=r(a),i=n(492),l=r(i),s=n(493),u=t.GithubSwatch=function(e){var t=e.hover,n=e.color,r=e.onClick,a=e.onSwatchHover,i={position:"relative",zIndex:"2",outline:"2px solid #fff",boxShadow:"0 0 5px 2px rgba(0,0,0,0.25)"},u=(0,l.default)({default:{swatch:{width:"25px",height:"25px",fontSize:"0"}},hover:{swatch:i}},{hover:t});return o.default.createElement("div",{style:u.swatch},o.default.createElement(s.Swatch,{color:n,onClick:r,onHover:a,focusStyle:i}))};t.default=(0,i.handleHover)(u)},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.HuePicker=void 0;var a=Object.assign||function(e){for(var t=1;t.5});return o.default.createElement("div",{style:n.picker})};t.default=s},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.PhotoshopPointerCircle=void 0;var a=n(5),o=r(a),i=n(492),l=r(i),s=t.PhotoshopPointerCircle=function(){var e=(0,l.default)({default:{triangle:{width:0,height:0,borderStyle:"solid",borderWidth:"4px 0 4px 6px",borderColor:"transparent transparent transparent #fff",position:"absolute",top:"1px",left:"1px"},triangleBorder:{width:0,height:0,borderStyle:"solid",borderWidth:"5px 0 5px 8px",borderColor:"transparent transparent transparent #555"},left:{Extend:"triangleBorder",transform:"translate(-13px, -4px)"},leftInside:{Extend:"triangle",transform:"translate(-8px, -5px)"},right:{Extend:"triangleBorder",transform:"translate(20px, -14px) rotate(180deg)"},rightInside:{Extend:"triangle",transform:"translate(-8px, -5px)"}}});return o.default.createElement("div",{style:e.pointer},o.default.createElement("div",{style:e.left},o.default.createElement("div",{style:e.leftInside})),o.default.createElement("div",{style:e.right},o.default.createElement("div",{style:e.rightInside})))};t.default=s},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.PhotoshopBotton=void 0;var a=n(5),o=r(a),i=n(492),l=r(i),s=t.PhotoshopBotton=function(e){var t=e.onClick,n=e.label,r=e.children,a=e.active,i=(0,l.default)({default:{button:{backgroundImage:"linear-gradient(-180deg, #FFFFFF 0%, #E6E6E6 100%)",border:"1px solid #878787",borderRadius:"2px",height:"20px",boxShadow:"0 1px 0 0 #EAEAEA",fontSize:"14px",color:"#000",lineHeight:"20px",textAlign:"center",marginBottom:"10px",cursor:"pointer"}},active:{button:{boxShadow:"0 0 0 1px #878787"}}},{active:a});return o.default.createElement("div",{style:i.button,onClick:t},n||r)};t.default=s},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.PhotoshopPreviews=void 0;var a=n(5),o=r(a),i=n(492),l=r(i),s=t.PhotoshopPreviews=function(e){var t=e.rgb,n=e.currentColor,r=(0,l.default)({default:{swatches:{border:"1px solid #B3B3B3",borderBottom:"1px solid #F0F0F0",marginBottom:"2px",marginTop:"1px"},new:{height:"34px",background:"rgb("+t.r+","+t.g+", "+t.b+")",boxShadow:"inset 1px 0 0 #000, inset -1px 0 0 #000, inset 0 1px 0 #000"},current:{height:"34px",background:n,boxShadow:"inset 1px 0 0 #000, inset -1px 0 0 #000, inset 0 -1px 0 #000"},label:{fontSize:"14px",color:"#000",textAlign:"center"}}});return o.default.createElement("div",null,o.default.createElement("div",{style:r.label},"new"),o.default.createElement("div",{style:r.swatches},o.default.createElement("div",{style:r.new}),o.default.createElement("div",{style:r.current})),o.default.createElement("div",{style:r.label},"current"))};t.default=s},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.Sketch=void 0;var a=n(5),o=r(a),i=n(11),l=r(i),s=n(492),u=r(s),c=n(493),f=n(735),d=r(f),p=n(736),h=r(p),b=t.Sketch=function(e){var t=e.width,n=e.rgb,r=e.hex,a=e.hsv,i=e.hsl,l=e.onChange,s=e.onSwatchHover,f=e.disableAlpha,p=e.presetColors,b=e.renderers,g=e.className,v=void 0===g?"":g,x=(0,u.default)({default:{picker:{width:t,padding:"10px 10px 0",boxSizing:"initial",background:"#fff",borderRadius:"4px",boxShadow:"0 0 0 1px rgba(0,0,0,.15), 0 8px 16px rgba(0,0,0,.15)"},saturation:{width:"100%",paddingBottom:"75%",position:"relative",overflow:"hidden"},Saturation:{radius:"3px",shadow:"inset 0 0 0 1px rgba(0,0,0,.15), inset 0 0 4px rgba(0,0,0,.25)"},controls:{display:"flex"},sliders:{padding:"4px 0",flex:"1"},color:{width:"24px",height:"24px",position:"relative",marginTop:"4px",marginLeft:"4px",borderRadius:"3px"},activeColor:{absolute:"0px 0px 0px 0px",borderRadius:"2px",background:"rgba("+n.r+","+n.g+","+n.b+","+n.a+")",boxShadow:"inset 0 0 0 1px rgba(0,0,0,.15), inset 0 0 4px rgba(0,0,0,.25)"},hue:{position:"relative",height:"10px",overflow:"hidden"},Hue:{radius:"2px",shadow:"inset 0 0 0 1px rgba(0,0,0,.15), inset 0 0 4px rgba(0,0,0,.25)"},alpha:{position:"relative",height:"10px",marginTop:"4px",overflow:"hidden"},Alpha:{radius:"2px",shadow:"inset 0 0 0 1px rgba(0,0,0,.15), inset 0 0 4px rgba(0,0,0,.25)"}},disableAlpha:{color:{height:"10px"},hue:{height:"10px"},alpha:{display:"none"}}},{disableAlpha:f});return o.default.createElement("div",{style:x.picker,className:"sketch-picker "+v},o.default.createElement("div",{style:x.saturation},o.default.createElement(c.Saturation,{style:x.Saturation,hsl:i,hsv:a,onChange:l})),o.default.createElement("div",{style:x.controls,className:"flexbox-fix"},o.default.createElement("div",{style:x.sliders},o.default.createElement("div",{style:x.hue},o.default.createElement(c.Hue,{style:x.Hue,hsl:i,onChange:l})),o.default.createElement("div",{style:x.alpha},o.default.createElement(c.Alpha,{style:x.Alpha,rgb:n,hsl:i,renderers:b,onChange:l}))),o.default.createElement("div",{style:x.color},o.default.createElement(c.Checkboard,null),o.default.createElement("div",{style:x.activeColor}))),o.default.createElement(d.default,{rgb:n,hsl:i,hex:r,onChange:l,disableAlpha:f}),o.default.createElement(h.default,{colors:p,onClick:l,onSwatchHover:s}))};b.propTypes={disableAlpha:l.default.bool,width:l.default.oneOfType([l.default.string,l.default.number])},b.defaultProps={disableAlpha:!1,width:200,presetColors:["#D0021B","#F5A623","#F8E71C","#8B572A","#7ED321","#417505","#BD10E0","#9013FE","#4A90E2","#50E3C2","#B8E986","#000000","#4A4A4A","#9B9B9B","#FFFFFF"]},t.default=(0,c.ColorWrap)(b)},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.SketchFields=void 0;var a=n(5),o=r(a),i=n(492),l=r(i),s=n(496),u=r(s),c=n(493),f=t.SketchFields=function(e){var t=e.onChange,n=e.rgb,r=e.hsl,a=e.hex,i=e.disableAlpha,s=(0,l.default)({default:{fields:{display:"flex",paddingTop:"4px"},single:{flex:"1",paddingLeft:"6px"},alpha:{flex:"1",paddingLeft:"6px"},double:{flex:"2"},input:{width:"80%",padding:"4px 10% 3px",border:"none",boxShadow:"inset 0 0 0 1px #ccc",fontSize:"11px"},label:{display:"block",textAlign:"center",fontSize:"11px",color:"#222",paddingTop:"3px",paddingBottom:"4px",textTransform:"capitalize"}},disableAlpha:{alpha:{display:"none"}}},{disableAlpha:i}),f=function(e,a){e.hex?u.default.isValidHex(e.hex)&&t({hex:e.hex,source:"hex"},a):e.r||e.g||e.b?t({r:e.r||n.r,g:e.g||n.g,b:e.b||n.b,a:n.a,source:"rgb"},a):e.a&&(e.a<0?e.a=0:e.a>100&&(e.a=100),e.a/=100,t({h:r.h,s:r.s,l:r.l,a:e.a,source:"rgb"},a))};return o.default.createElement("div",{style:s.fields,className:"flexbox-fix"},o.default.createElement("div",{style:s.double},o.default.createElement(c.EditableInput,{style:{input:s.input,label:s.label},label:"hex",value:a.replace("#",""),onChange:f})),o.default.createElement("div",{style:s.single},o.default.createElement(c.EditableInput,{style:{input:s.input,label:s.label},label:"r",value:n.r,onChange:f,dragLabel:"true",dragMax:"255"})),o.default.createElement("div",{style:s.single},o.default.createElement(c.EditableInput,{style:{input:s.input,label:s.label},label:"g",value:n.g,onChange:f,dragLabel:"true",dragMax:"255"})),o.default.createElement("div",{style:s.single},o.default.createElement(c.EditableInput,{style:{input:s.input,label:s.label},label:"b",value:n.b,onChange:f,dragLabel:"true",dragMax:"255"})),o.default.createElement("div",{style:s.alpha},o.default.createElement(c.EditableInput,{style:{input:s.input,label:s.label},label:"a",value:Math.round(100*n.a),onChange:f,dragLabel:"true",dragMax:"100"})))};t.default=f},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.SketchPresetColors=void 0;var a=Object.assign||function(e){for(var t=1;t=0||(a[n]=e[n]);return a}e.exports=n},function(e,t){function n(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}e.exports=n},function(e,t,n){"use strict";var r=n(750);t.a=r.a},function(e,t,n){"use strict";var r=n(751),a=function(e,t,n){var a=void 0===t?{}:t,o=a.evalScripts,i=void 0===o?"always":o,l=a.pngFallback,s=void 0!==l&&l,u=a.each,c=void 0===u?function(){}:u,f=a.renumerateIRIElements,d=void 0===f||f;if(void 0===n&&(n=function(){}),void 0!==e.length){var p=0;Array.prototype.forEach.call(e,function(t){Object(r.a)(t,i,s,d,function(t,r){c(t,r),e.length===++p&&n(p)})})}else e?Object(r.a)(e,i,s,d,function(t,r){c(t,r),n(1),e=null}):n(0)};t.a=a},function(e,t,n){"use strict";var r=n(752),a=n(754),o="http://www.w3.org/1999/xlink",i=[],l={},s=0,u=function(e,t,n,u,c){var f=document.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1"),d=e.getAttribute("data-src")||e.getAttribute("src");if(!/\.svg/i.test(d))return void c(new Error("Attempted to inject a file with a non-svg extension: "+d));if(!f){var p=e.getAttribute("data-fallback")||e.getAttribute("data-png");return void(p?(e.setAttribute("src",p),c()):n?(e.setAttribute("src",n+"/"+d.split("/").pop().replace(".svg",".png")),c()):c(new Error("This browser does not support SVG and no PNG fallback was defined.")))}-1===i.indexOf(e)&&(i.push(e),e.setAttribute("src",""),Object(r.a)(d,function(n,r){if(n)return c(n),!1;var f=e.getAttribute("id");f&&r.setAttribute("id",f);var p=e.getAttribute("title");p&&r.setAttribute("title",p);var h=[].concat(r.getAttribute("class")||[],"injected-svg",e.getAttribute("class")||[]).join(" ");r.setAttribute("class",Object(a.a)(h));var b=e.getAttribute("style");b&&r.setAttribute("style",b);var g=[].filter.call(e.attributes,function(e){return/^data-\w[\w-]*$/.test(e.name)});if(Array.prototype.forEach.call(g,function(e){e.name&&e.value&&r.setAttribute(e.name,e.value)}),u){var v,x,m,y,w,_={clipPath:["clip-path"],"color-profile":["color-profile"],cursor:["cursor"],filter:["filter"],linearGradient:["fill","stroke"],marker:["marker","marker-start","marker-mid","marker-end"],mask:["mask"],pattern:["fill","stroke"],radialGradient:["fill","stroke"]};Object.keys(_).forEach(function(e){v=e,m=_[e],x=r.querySelectorAll("defs "+v+"[id]");for(var t=0,n=x.length;t0&&("always"===t||"once"===t&&!l[d])){for(var A=0,P=S.length;At}return!1}function l(e,t,n,r,a){this.acceptsBooleans=2===t||3===t||4===t,this.attributeName=r,this.attributeNamespace=a,this.mustUseProperty=n,this.propertyName=e,this.type=t}function s(e){return e[1].toUpperCase()}function u(e){if("boolean"==typeof e||"number"==typeof e)return""+e;e=""+e;var t=L.exec(e);if(t){var n,r="",a=0;for(n=t.index;n