Comparing version 4.1.1 to 4.1.2
@@ -5,2 +5,11 @@ # Changelog | ||
### [4.1.2](https://github.com/hybridsjs/hybrids/compare/v4.1.1...v4.1.2) (2020-01-28) | ||
### Bug Fixes | ||
* **cache:** optmize context clean up for observed property ([39baaa8](https://github.com/hybridsjs/hybrids/commit/39baaa8fb66ca769e0d50e2928595e59eacf8050)) | ||
* **html:** fix replacing event listener callback ([c64f4fd](https://github.com/hybridsjs/hybrids/commit/c64f4fddc3b2384e758f0c6dbc15928e7e2c3462)) | ||
* **types:** dispatch first argument ([fb76ece](https://github.com/hybridsjs/hybrids/commit/fb76ece2d87828a8df96383f43c6819b4927e38e)) | ||
### [4.1.1](https://github.com/hybridsjs/hybrids/compare/v4.1.0...v4.1.1) (2020-01-17) | ||
@@ -7,0 +16,0 @@ |
@@ -1,2 +0,2 @@ | ||
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.hybrids=t():e.hybrids=t()}(window,(function(){return function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=0)}([function(e,t,n){"use strict";n.r(t);var r={};function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function c(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){i(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}n.r(r),n.d(r,"set",(function(){return Ae})),n.d(r,"resolve",(function(){return Ce}));var u=new Map;function a(e){var t=u.get(e);return void 0===t&&(t=e.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase(),u.set(e,t)),t}function f(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return e.dispatchEvent(new CustomEvent(t,c({bubbles:!1},n)))}function l(e,t){var n=window.ShadyCSS;return n&&!n.nativeShadow?e(n):t}function s(e){var t=String(e.tagName).toLowerCase();return"<".concat(t,">")}var d="ActiveXObject"in window;Promise.resolve();function p(e){return(p="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}var y=function(e){return e},v=function(e){if("object"!==p(e))throw TypeError("Assigned value must be an object: ".concat(p(e)));return e&&Object.freeze(e)};function b(e,t){var n=p(e),r=y;switch(n){case"string":r=String;break;case"number":r=Number;break;case"boolean":r=Boolean;break;case"function":e=(r=e)();break;case"object":e&&Object.freeze(e),r=v}return{get:function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:e;return n},set:function(e,t,n){return r(t,n)},connect:"object"!==n&&"undefined"!==n?function(n,r,o){if(n[r]===e){var c=a(r);if(n.hasAttribute(c)){var i=n.getAttribute(c);n[r]=""===i||i}}return t&&t(n,r,o)}:t}}function h(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function m(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?h(Object(n),!0).forEach((function(t){g(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):h(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function g(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function w(e){return(w="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function S(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if("function"!=typeof e)throw TypeError("The first argument must be a function: ".concat(w(e)));var n=m({shadowRoot:!0},t),r={mode:"open"};return"object"===w(n.shadowRoot)&&Object.assign(r,n.shadowRoot),{get:function(t){var o=e(t),c=t;return n.shadowRoot&&(t.shadowRoot||t.attachShadow(r),c=t.shadowRoot),function(){return o(t,c),c}},observe:function(e,t){t()}}}var O=new WeakMap,E=new Set;function N(){try{E.forEach((function(e){try{O.get(e)(),E.delete(e)}catch(t){throw E.delete(e),t}}))}catch(e){throw E.size&&N(),e}}function j(e){E.size||requestAnimationFrame(N),E.add(e)}var x=new WeakMap;function T(e,t){var n=x.get(e);n||(n=new Map,x.set(e,n));var r=n.get(t);return r||(r={target:e,key:t,value:void 0,contexts:void 0,deps:void 0,state:0,checksum:0,observed:!1},n.set(t,r)),r}function k(e){var t=e.state;return e.deps&&e.deps.forEach((function(e){t+=e.state})),t}function A(e){e.observed&&j(e),e.contexts&&e.contexts.forEach(A)}var M=new Set;function C(e,t,n){var r=T(e,t);if(M.size&&M.has(r))throw M.clear(),Error("Circular get invocation of the '".concat(t,"' property in '").concat(s(e),"'"));if(M.forEach((function(e){e.deps=e.deps||new Set,e.deps.add(r),e.observed&&(r.contexts=r.contexts||new Set,r.contexts.add(e))})),M.add(r),r.checksum&&r.checksum===k(r))return M.delete(r),r.value;r.deps&&r.deps.size&&(r.deps.forEach((function(e){e.contexts&&e.contexts.delete(r)})),r.deps=void 0);try{var o=n(e,r.value);o!==r.value&&(r.state+=1,r.value=o,A(r)),r.checksum=k(r),M.delete(r)}catch(e){throw M.clear(),e}return r.value}function P(e,t,n,r){var o,c=T(e,t);c.observed=!0;var i=function(e,t){return O.set(e,t),j(e),function(){E.delete(e),O.delete(e)}}(c,(function(){var c=C(e,t,n);c!==o&&(r(e,c,o),o=c)}));return function(){i(),c.observed=!1,c.deps&&c.deps.size&&c.deps.forEach((function(e){e.contexts.delete(c)}))}}function _(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function D(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function R(e,t){return!t||"object"!==X(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function W(e){var t="function"==typeof Map?new Map:void 0;return(W=function(e){if(null===e||(n=e,-1===Function.toString.call(n).indexOf("[native code]")))return e;var n;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,r)}function r(){return z(e,arguments,F(this).constructor)}return r.prototype=Object.create(e.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),B(r,e)})(e)}function L(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}function z(e,t,n){return(z=L()?Reflect.construct:function(e,t,n){var r=[null];r.push.apply(r,t);var o=new(Function.bind.apply(e,r));return n&&B(o,n.prototype),o}).apply(null,arguments)}function B(e,t){return(B=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function F(e){return(F=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function X(e){return(X="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}var H=function(e,t){return t};function $(e,t){e.hybrids=t,e.callbacks=[],Object.keys(t).forEach((function(n){var r,o=t[n],c=X(o);r="function"===c?"render"===n?S(o):{get:o}:"object"!==c||null===o||Array.isArray(o)?b(o):{get:o.get||H,set:o.set||!o.get&&H||void 0,connect:o.connect,observe:o.observe},Object.defineProperty(e.prototype,n,{get:function(){return C(this,n,r.get)},set:r.set&&function(e){!function(e,t,n,r,o){if(M.size&&!o)throw M.clear(),Error("Try to set '".concat(t,"' of '").concat(s(e),"' in get call"));var c=T(e,t),i=n(e,r,c.value);i!==c.value&&(c.checksum=0,c.state+=1,c.value=i,A(c))}(this,n,r.set,e)},enumerable:!0,configurable:!1}),r.observe&&e.callbacks.push((function(e){return P(e,n,r.get,r.observe)})),r.connect&&e.callbacks.push((function(e){return r.connect(e,n,(function(){!function(e,t,n){if(M.size)throw M.clear(),Error("Try to invalidate '".concat(t,"' in '").concat(s(e),"' get call"));var r=T(e,t);r.checksum=0,r.state+=1,A(r),n&&(r.value=void 0)}(e,n)}))}))}))}var q=new WeakMap;function Z(e,t){var n=X(t);if("object"!==n&&"function"!==n)throw TypeError("Second argument must be an object or a function: ".concat(n));var r=window.customElements.get(e);if("function"===n)return r!==t?window.customElements.define(e,t):r;if(r){if(r.hybrids===t)return r;throw Error("Element '".concat(e,"' already defined"))}var o=function(t){function n(){return _(this,n),R(this,F(n).apply(this,arguments))}var r,o,c;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&B(e,t)}(n,t),r=n,c=[{key:"name",get:function(){return e}}],(o=[{key:"connectedCallback",value:function(){for(var e=this.constructor.callbacks,t=[],n=0;n<e.length;n+=1){var r=e[n](this);r&&t.push(r)}q.set(this,t)}},{key:"disconnectedCallback",value:function(){for(var e=q.get(this),t=0;t<e.length;t+=1)e[t]()}}])&&D(r.prototype,o),c&&D(r,c),n}(W(HTMLElement));return $(o,t),customElements.define(e,o),o}function I(e){return Object.keys(e).reduce((function(t,n){var r=a(n.replace(/((?!([A-Z]{2}|^))[A-Z])/g,"-$1"));return t[n]=Z(r,e[n]),t}),{})}function G(){return"object"===X(arguments.length<=0?void 0:arguments[0])?I(arguments.length<=0?void 0:arguments[0]):Z.apply(void 0,arguments)}function U(e){var t="function"==typeof e?e:function(t){return t===e};return{get:function(e){return function(e,t){for(var n=e.parentElement||e.parentNode.host;n;){var r=n.constructor.hybrids;if(r&&t(r))return n;n=n.parentElement||n.parentNode&&n.parentNode.host}return n||null}(e,t)},connect:function(e,t,n){return!!e[t]&&n}}}function V(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:[];return Array.from(e.children).forEach((function(e){var o=e.constructor.hybrids;o&&t(o)?(r.push(e),n.deep&&n.nested&&V(e,t,n,r)):n.deep&&V(e,t,n,r)})),r}function J(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{deep:!1,nested:!1},n="function"==typeof e?e:function(t){return t===e};return{get:function(e){return V(e,n,t)},connect:function(e,n,r){var o=new MutationObserver(r);return o.observe(e,{childList:!0,subtree:!!t.deep}),function(){o.disconnect()}}}}var K=new WeakMap,Q=function(e,t){var n=K.get(e);return n||(t&&K.set(e,t),t)},Y=function(e,t){return K.set(e,t),t};function ee(e){for(var t;e&&(t=Q(e))&&t.endNode;)e=t.endNode;return e}function te(e){if(e.nodeType!==Node.TEXT_NODE)for(var t=e.childNodes[0];t;)e.removeChild(t),t=e.childNodes[0];else{var n=Q(e);if(n.startNode)for(var r=ee(n.endNode),o=n.startNode,c=r.nextSibling;o;){var i=o.nextSibling;o.parentNode.removeChild(o),o=i!==c&&i}}}var ne=new WeakMap;function re(e,t){var n=Q(e),r=n.startNode,o=ee(n.endNode);t.parentNode.insertBefore(e,t.nextSibling);for(var c=e,i=r;i;){var u=i.nextSibling;c.parentNode.insertBefore(i,c.nextSibling),c=i,i=u!==o.nextSibling&&u}}function oe(e){return(oe="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function ce(e,t,n){var r=Array.isArray(n)?"array":oe(n),o=Q(t,{});switch(o.type!==r&&(te(t),"array"===r&&ne.delete(t),o=Y(t,{type:r}),""!==t.textContent&&(t.textContent="")),r){case"function":n(e,t);break;case"array":!function(e,t,n){var r=ne.get(t),o=n.map((function(e,t){return{id:Object.prototype.hasOwnProperty.call(e,"id")?e.id:t,value:e,placeholder:null,available:!0}}));if(ne.set(t,o),r){var c=new Set;o.forEach((function(e){return c.add(e.id)})),r=r.filter((function(e){return!!c.has(e.id)||(te(e.placeholder),e.placeholder.parentNode.removeChild(e.placeholder),!1)}))}for(var i=t,u=n.length-1,a=Q(t),f=0;f<o.length;f+=1){var l=o[f],s=void 0;if(r)for(var d=0;d<r.length;d+=1)if(r[d].available&&r[d].id===l.id){s=r[d];break}var p=void 0;s?(s.available=!1,(p=s.placeholder).previousSibling!==i&&re(p,i),s.value!==l.value&&ce(e,p,l.value)):(p=document.createTextNode(""),i.parentNode.insertBefore(p,i.nextSibling),ce(e,p,l.value)),i=ee(Q(p).endNode||p),0===f&&(a.startNode=p),f===u&&(a.endNode=i),l.placeholder=p}r&&r.forEach((function(e){e.available&&(te(e.placeholder),e.placeholder.parentNode.removeChild(e.placeholder))}))}(e,t,n);break;default:t.textContent="number"===r||n?n:""}}function ie(e){return(ie="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}var ue=new WeakMap;function ae(e){return(ae="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}var fe=new WeakMap;function le(e,t,n){var r=fe.get(t)||new Set,o=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:new Set;return Array.isArray(e)?e.forEach((function(e){return t.add(e)})):null!==e&&"object"===ae(e)?Object.keys(e).forEach((function(n){return e[n]&&t.add(n)})):t.add(e),t}(n);fe.set(t,o),o.forEach((function(e){t.classList.add(e),r.delete(e)})),r.forEach((function(e){t.classList.remove(e)}))}function se(e){return(se="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}var de=new WeakMap;function pe(e,t,n){if(null===n||"object"!==se(n))throw TypeError("Style value must be an object in ".concat(s(t),":"),n);var r=de.get(t)||new Map,o=Object.keys(n).reduce((function(e,o){var c=a(o),i=n[o];return i||0===i?t.style.setProperty(c,i):t.style.removeProperty(c),e.set(c,i),r.delete(c),e}),new Map);r.forEach((function(e,n){t.style[n]=""})),de.set(t,o)}function ye(e,t,n){if("on"===t.substr(0,2))return function(e){return function(t,n,r,o){if(o&&n.removeEventListener(e,ue.get(o),void 0!==o.options&&o.options),r){if("function"!=typeof r)throw Error("Event listener must be a function: ".concat(ie(r)));ue.set(r,r.bind(null,t)),n.addEventListener(e,ue.get(r),void 0!==r.options&&r.options)}}}(t.substr(2));switch(e){case"class":return le;case"style":return pe;default:return function(r,o,c){if(n||o instanceof SVGElement||!(t in o))if(!1===c||null==c)o.removeAttribute(e);else{var i=!0===c?"":String(c);o.setAttribute(e,i)}else o[t]!==c&&(o[t]=c)}}}function ve(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if(!(Symbol.iterator in Object(e)||"[object Arguments]"===Object.prototype.toString.call(e)))return;var n=[],r=!0,o=!1,c=void 0;try{for(var i,u=e[Symbol.iterator]();!(r=(i=u.next()).done)&&(n.push(i.value),!t||n.length!==t);r=!0);}catch(e){o=!0,c=e}finally{try{r||null==u.return||u.return()}finally{if(o)throw c}}return n}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}function be(e){return(be="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}var he=Date.now(),me=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return"{{h-".concat(he,"-").concat(e,"}}")},ge=me("(\\d+)"),we=new RegExp("^".concat(ge,"$")),Se=new RegExp(ge,"g"),Oe="--".concat(he,"--"),Ee=new RegExp(Oe,"g"),Ne=new WeakMap;var je="object"===be(window.ShadyDOM)&&window.ShadyDOM.inUse?function(e){var t;return{get currentNode(){return t},nextNode:function(){if(void 0===t)t=e.childNodes[0];else if(t.childNodes.length)t=t.childNodes[0];else if(t.nextSibling)t=t.nextSibling;else{var n=t.parentNode;for(t=n.nextSibling;!t&&n!==e;)n=n.parentNode,t=n.nextSibling}return!!t}}}:function(e){return document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT|NodeFilter.SHOW_TEXT,null,!1)},xe=document.createElement("div");function Te(e,t,n){var r=document.createElement("template"),o=[],c=function(e,t){var n=e.reduce((function(t,n,r){return 0===r?n:e.slice(r).join("").match(/^\s*<\/\s*(table|tr|thead|tbody|tfoot|colgroup)>/)?"".concat(t,"\x3c!--").concat(me(r-1),"--\x3e").concat(n):t+me(r-1)+n}),"");return t&&(n+="<style>\n".concat(t.join("\n/*------*/\n"),"\n</style>")),d?n.replace(/style\s*=\s*(["][^"]+["]|['][^']+[']|[^\s"'<>/]+)/g,(function(e){return"".concat(Oe).concat(e)})):n}(e,n);if(t&&(c="<svg>".concat(c,"</svg>")),d?r.innerHTML=c:(xe.innerHTML="<template>".concat(c,"</template>"),r.content.appendChild(xe.children[0].content)),t){var i=r.content.firstChild;r.content.removeChild(i),Array.from(i.childNodes).forEach((function(e){return r.content.appendChild(e)}))}!function(e){for(var t,n=document.createNodeIterator(e,NodeFilter.SHOW_COMMENT,null,!1);t=n.nextNode();)we.test(t.textContent)&&(t.parentNode.insertBefore(document.createTextNode(t.textContent),t),t.parentNode.removeChild(t))}(r.content);for(var u=je(r.content),a=0,f=function(){var n=u.currentNode;if(n.nodeType===Node.TEXT_NODE){var r=n.textContent;if(!r.match(we)){var c=r.match(Se);if(c){var i=n;c.reduce((function(e,t){var n=ve(e.pop().split(t),2),r=n[0],o=n[1];return r&&e.push(r),e.push(t),o&&e.push(o),e}),[r]).forEach((function(e,t){0===t?i.textContent=e:i=i.parentNode.insertBefore(document.createTextNode(e),i.nextSibling)}))}}var f=n.textContent.match(we);f&&(d||(n.textContent=""),o[f[1]]=[a,ce])}else n.nodeType===Node.ELEMENT_NODE&&Array.from(n.attributes).forEach((function(r){var c=r.value.trim(),i=d?r.name.replace(Oe,""):r.name,u=c.match(we);if(u){var f=e[u[1]].replace(/\s*=\s*['"]*$/g,"").split(" ").pop();o[u[1]]=[a,ye(i,f,t)],n.removeAttribute(r.name)}else{var l=c.match(Se);if(l){var s="attr__".concat(i);l.forEach((function(e,t){var n=ve(e.match(we),2)[1];o[n]=[a,function(n,r,o){var u=Q(r,{});u[s]=(u[s]||c).replace(e,null==o?"":o),1!==l.length&&t+1!==l.length||(r.setAttribute(i,u[s]),u[s]=void 0)}]})),r.value="",d&&i!==r.name&&(n.removeAttribute(r.name),n.setAttribute(i,""))}}}));a+=1};u.nextNode();)f();return function(e,t,n){var c=Q(t,{type:"function"});if(r!==c.template){(c.template||t.nodeType===Node.ELEMENT_NODE)&&te(t),c.lastArgs=null;var i=document.importNode(function(e,t){return t?l((function(n){var r=Ne.get(e);r||(r=new Map,Ne.set(e,r));var o=r.get(t);if(!o){(o=document.createElement("template")).content.appendChild(e.content.cloneNode(!0)),r.set(t,o);var c=o.content.querySelectorAll("style");Array.from(c).forEach((function(e){for(var t=e.childNodes.length+1,n=0;n<t;n+=1)e.parentNode.insertBefore(document.createTextNode(me()),e)})),n.prepareTemplate(o,t.toLowerCase())}return o}),e):e}(r,e.tagName).content,!0),u=je(i),a=o.slice(0),f=0,s=a.shift(),p=[];for(c.template=r,c.markers=p;u.nextNode();){var y=u.currentNode;for(y.nodeType===Node.TEXT_NODE&&(we.test(y.textContent)?y.textContent="":d&&(y.textContent=y.textContent.replace(Ee,"")));s&&s[0]===f;)p.push([y,s[1]]),s=a.shift();f+=1}if(t.nodeType===Node.TEXT_NODE){c.startNode=i.childNodes[0],c.endNode=i.childNodes[i.childNodes.length-1];for(var v=t,b=i.childNodes[0];b;)t.parentNode.insertBefore(b,v.nextSibling),v=b,b=i.childNodes[0]}else t.appendChild(i)}for(var h=0;h<c.markers.length;h+=1){var m=ve(c.markers[h],2),g=m[0],w=m[1];c.lastArgs&&c.lastArgs[h]===n[h]||w(e,g,n[h],c.lastArgs?c.lastArgs[h]:void 0)}t.nodeType!==Node.TEXT_NODE&&l((function(t){e.shadowRoot&&(c.lastArgs?t.styleSubtree(e):t.styleElement(e))})),c.lastArgs=n}}var ke=new Map;function Ae(e,t){if(!e)throw Error("Target property name missing: ".concat(e));if(2===arguments.length)return function(n){n[e]=t};var n=ke.get(e);return n||(n=function(t,n){var r=n.target;t[e]=r.value},ke.set(e,n)),n}var Me=new WeakMap;function Ce(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:200;return function(r,o){var c;t&&(c=setTimeout((function(){c=void 0,requestAnimationFrame((function(){t(r,o)}))}),n)),Me.set(o,e),e.then((function(t){c&&clearTimeout(c),Me.get(o)===e&&(t(r,o),Me.set(o,null))}))}}var Pe=me(),_e=me("svg"),De=new Map,Re=new WeakMap,We={define:function(e){return G(e),this},key:function(e){return this.id=e,this},style:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return Re.set(this,t),this}};function Le(e,t,n){return Object.assign((function r(o){var c=arguments.length>1&&void 0!==arguments[1]?arguments[1]:o,i=Re.get(r),u=e.join(Pe);i&&(u+=i.join(Pe)),n&&(u+=_e);var a=De.get(u);a||(a=Te(e,n,i),De.set(u,a)),a(o,c,t)}),We)}function ze(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];return Le(e,n)}function Be(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];return Le(e,n,!0)}Object.assign(ze,r),Object.assign(Be,r),n.d(t,"define",(function(){return G})),n.d(t,"property",(function(){return b})),n.d(t,"parent",(function(){return U})),n.d(t,"children",(function(){return J})),n.d(t,"render",(function(){return S})),n.d(t,"dispatch",(function(){return f})),n.d(t,"html",(function(){return ze})),n.d(t,"svg",(function(){return Be}))}])})); | ||
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.hybrids=t():e.hybrids=t()}(window,(function(){return function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=0)}([function(e,t,n){"use strict";n.r(t);var r={};function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function c(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){i(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}n.r(r),n.d(r,"set",(function(){return Me})),n.d(r,"resolve",(function(){return Ce}));var u=new Map;function a(e){var t=u.get(e);return void 0===t&&(t=e.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase(),u.set(e,t)),t}function f(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return e.dispatchEvent(new CustomEvent(t,c({bubbles:!1},n)))}function l(e,t){var n=window.ShadyCSS;return n&&!n.nativeShadow?e(n):t}function s(e){var t=String(e.tagName).toLowerCase();return"<".concat(t,">")}var d="ActiveXObject"in window;Promise.resolve();function p(e){return(p="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}var y=function(e){return e},v=function(e){if("object"!==p(e))throw TypeError("Assigned value must be an object: ".concat(p(e)));return e&&Object.freeze(e)};function b(e,t){var n=p(e),r=y;switch(n){case"string":r=String;break;case"number":r=Number;break;case"boolean":r=Boolean;break;case"function":e=(r=e)();break;case"object":e&&Object.freeze(e),r=v}return{get:function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:e;return n},set:function(e,t,n){return r(t,n)},connect:"object"!==n&&"undefined"!==n?function(n,r,o){if(n[r]===e){var c=a(r);if(n.hasAttribute(c)){var i=n.getAttribute(c);n[r]=""===i||i}}return t&&t(n,r,o)}:t}}function h(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function m(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?h(Object(n),!0).forEach((function(t){g(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):h(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function g(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function w(e){return(w="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function S(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if("function"!=typeof e)throw TypeError("The first argument must be a function: ".concat(w(e)));var n=m({shadowRoot:!0},t),r={mode:"open"};return"object"===w(n.shadowRoot)&&Object.assign(r,n.shadowRoot),{get:function(t){var o=e(t),c=t;return n.shadowRoot&&(t.shadowRoot||t.attachShadow(r),c=t.shadowRoot),function(){return o(t,c),c}},observe:function(e,t){t()}}}var O=new WeakMap,E=new Set;function N(){try{E.forEach((function(e){try{O.get(e)(),E.delete(e)}catch(t){throw E.delete(e),t}}))}catch(e){throw E.size&&N(),e}}function j(e){E.size||requestAnimationFrame(N),E.add(e)}var x=new WeakMap;function k(e,t){var n=x.get(e);n||(n=new Map,x.set(e,n));var r=n.get(t);return r||(r={target:e,key:t,value:void 0,contexts:void 0,deps:void 0,state:0,checksum:0,observed:!1},n.set(t,r)),r}function T(e){var t=e.state;return e.deps&&e.deps.forEach((function(e){t+=e.state})),t}function M(e){e.observed&&j(e),e.contexts&&e.contexts.forEach(M)}var A=new Set;function C(e,t,n){var r=k(e,t);if(A.size&&A.has(r))throw Error("Circular get invocation of the '".concat(t,"' property in '").concat(s(e),"'"));if(A.forEach((function(e){e.deps=e.deps||new Set,e.deps.add(r),e.observed&&(r.contexts=r.contexts||new Set,r.contexts.add(e))})),r.checksum&&r.checksum===T(r))return r.value;try{A.add(r),r.observed&&r.deps&&r.deps.size&&r.deps.forEach((function(e){e.contexts.delete(r)})),r.deps=void 0;var o=n(e,r.value);o!==r.value&&(r.state+=1,r.value=o,M(r)),r.checksum=T(r),A.delete(r)}catch(e){throw r.checksum=0,A.delete(r),A.forEach((function(e){e.deps.delete(r),e.observed&&r.contexts.delete(e)})),e}return r.value}function P(e,t,n,r){var o,c=k(e,t);c.observed=!0;var i=function(e,t){return O.set(e,t),j(e),function(){E.delete(e),O.delete(e)}}(c,(function(){var c=C(e,t,n);c!==o&&(r(e,c,o),o=c)}));return function(){i(),c.observed=!1,c.deps&&c.deps.size&&c.deps.forEach((function(e){e.contexts.delete(c)}))}}function _(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function D(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function R(e,t){return!t||"object"!==X(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function W(e){var t="function"==typeof Map?new Map:void 0;return(W=function(e){if(null===e||(n=e,-1===Function.toString.call(n).indexOf("[native code]")))return e;var n;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,r)}function r(){return z(e,arguments,F(this).constructor)}return r.prototype=Object.create(e.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),B(r,e)})(e)}function L(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}function z(e,t,n){return(z=L()?Reflect.construct:function(e,t,n){var r=[null];r.push.apply(r,t);var o=new(Function.bind.apply(e,r));return n&&B(o,n.prototype),o}).apply(null,arguments)}function B(e,t){return(B=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function F(e){return(F=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function X(e){return(X="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}var H=function(e,t){return t};function $(e,t){e.hybrids=t,e.callbacks=[],Object.keys(t).forEach((function(n){var r,o=t[n],c=X(o);r="function"===c?"render"===n?S(o):{get:o}:"object"!==c||null===o||Array.isArray(o)?b(o):{get:o.get||H,set:o.set||!o.get&&H||void 0,connect:o.connect,observe:o.observe},Object.defineProperty(e.prototype,n,{get:function(){return C(this,n,r.get)},set:r.set&&function(e){!function(e,t,n,r,o){if(A.size&&!o)throw Error("Try to set '".concat(t,"' of '").concat(s(e),"' in get call"));var c=k(e,t),i=n(e,r,c.value);i!==c.value&&(c.checksum=0,c.state+=1,c.value=i,M(c))}(this,n,r.set,e)},enumerable:!0,configurable:!1}),r.observe&&e.callbacks.push((function(e){return P(e,n,r.get,r.observe)})),r.connect&&e.callbacks.push((function(e){return r.connect(e,n,(function(){!function(e,t,n){if(A.size)throw Error("Try to invalidate '".concat(t,"' in '").concat(s(e),"' get call"));var r=k(e,t);r.checksum=0,r.state+=1,M(r),n&&(r.value=void 0)}(e,n)}))}))}))}var q=new WeakMap;function Z(e,t){var n=X(t);if("object"!==n&&"function"!==n)throw TypeError("Second argument must be an object or a function: ".concat(n));var r=window.customElements.get(e);if("function"===n)return r!==t?window.customElements.define(e,t):r;if(r){if(r.hybrids===t)return r;throw Error("Element '".concat(e,"' already defined"))}var o=function(t){function n(){return _(this,n),R(this,F(n).apply(this,arguments))}var r,o,c;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&B(e,t)}(n,t),r=n,c=[{key:"name",get:function(){return e}}],(o=[{key:"connectedCallback",value:function(){for(var e=this.constructor.callbacks,t=[],n=0;n<e.length;n+=1){var r=e[n](this);r&&t.push(r)}q.set(this,t)}},{key:"disconnectedCallback",value:function(){for(var e=q.get(this),t=0;t<e.length;t+=1)e[t]()}}])&&D(r.prototype,o),c&&D(r,c),n}(W(HTMLElement));return $(o,t),customElements.define(e,o),o}function I(e){return Object.keys(e).reduce((function(t,n){var r=a(n.replace(/((?!([A-Z]{2}|^))[A-Z])/g,"-$1"));return t[n]=Z(r,e[n]),t}),{})}function G(){return"object"===X(arguments.length<=0?void 0:arguments[0])?I(arguments.length<=0?void 0:arguments[0]):Z.apply(void 0,arguments)}function U(e){var t="function"==typeof e?e:function(t){return t===e};return{get:function(e){return function(e,t){for(var n=e.parentElement||e.parentNode.host;n;){var r=n.constructor.hybrids;if(r&&t(r))return n;n=n.parentElement||n.parentNode&&n.parentNode.host}return n||null}(e,t)},connect:function(e,t,n){return!!e[t]&&n}}}function V(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:[];return Array.from(e.children).forEach((function(e){var o=e.constructor.hybrids;o&&t(o)?(r.push(e),n.deep&&n.nested&&V(e,t,n,r)):n.deep&&V(e,t,n,r)})),r}function J(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{deep:!1,nested:!1},n="function"==typeof e?e:function(t){return t===e};return{get:function(e){return V(e,n,t)},connect:function(e,n,r){var o=new MutationObserver(r);return o.observe(e,{childList:!0,subtree:!!t.deep}),function(){o.disconnect()}}}}var K=new WeakMap,Q=function(e,t){var n=K.get(e);return n||(t&&K.set(e,t),t)},Y=function(e,t){return K.set(e,t),t};function ee(e){for(var t;e&&(t=Q(e))&&t.endNode;)e=t.endNode;return e}function te(e){if(e.nodeType!==Node.TEXT_NODE)for(var t=e.childNodes[0];t;)e.removeChild(t),t=e.childNodes[0];else{var n=Q(e);if(n.startNode)for(var r=ee(n.endNode),o=n.startNode,c=r.nextSibling;o;){var i=o.nextSibling;o.parentNode.removeChild(o),o=i!==c&&i}}}var ne=new WeakMap;function re(e,t){var n=Q(e),r=n.startNode,o=ee(n.endNode);t.parentNode.insertBefore(e,t.nextSibling);for(var c=e,i=r;i;){var u=i.nextSibling;c.parentNode.insertBefore(i,c.nextSibling),c=i,i=u!==o.nextSibling&&u}}function oe(e){return(oe="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function ce(e,t,n){var r=Array.isArray(n)?"array":oe(n),o=Q(t,{});switch(o.type!==r&&(te(t),"array"===r&&ne.delete(t),o=Y(t,{type:r}),""!==t.textContent&&(t.textContent="")),r){case"function":n(e,t);break;case"array":!function(e,t,n){var r=ne.get(t),o=n.map((function(e,t){return{id:Object.prototype.hasOwnProperty.call(e,"id")?e.id:t,value:e,placeholder:null,available:!0}}));if(ne.set(t,o),r){var c=new Set;o.forEach((function(e){return c.add(e.id)})),r=r.filter((function(e){return!!c.has(e.id)||(te(e.placeholder),e.placeholder.parentNode.removeChild(e.placeholder),!1)}))}for(var i=t,u=n.length-1,a=Q(t),f=0;f<o.length;f+=1){var l=o[f],s=void 0;if(r)for(var d=0;d<r.length;d+=1)if(r[d].available&&r[d].id===l.id){s=r[d];break}var p=void 0;s?(s.available=!1,(p=s.placeholder).previousSibling!==i&&re(p,i),s.value!==l.value&&ce(e,p,l.value)):(p=document.createTextNode(""),i.parentNode.insertBefore(p,i.nextSibling),ce(e,p,l.value)),i=ee(Q(p).endNode||p),0===f&&(a.startNode=p),f===u&&(a.endNode=i),l.placeholder=p}r&&r.forEach((function(e){e.available&&(te(e.placeholder),e.placeholder.parentNode.removeChild(e.placeholder))}))}(e,t,n);break;default:t.textContent="number"===r||n?n:""}}function ie(e){return(ie="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}var ue=new WeakMap;function ae(e){return(ae="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}var fe=new WeakMap;function le(e,t,n){var r=fe.get(t)||new Set,o=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:new Set;return Array.isArray(e)?e.forEach((function(e){return t.add(e)})):null!==e&&"object"===ae(e)?Object.keys(e).forEach((function(n){return e[n]&&t.add(n)})):t.add(e),t}(n);fe.set(t,o),o.forEach((function(e){t.classList.add(e),r.delete(e)})),r.forEach((function(e){t.classList.remove(e)}))}function se(e){return(se="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}var de=new WeakMap;function pe(e,t,n){if(null===n||"object"!==se(n))throw TypeError("Style value must be an object in ".concat(s(t),":"),n);var r=de.get(t)||new Map,o=Object.keys(n).reduce((function(e,o){var c=a(o),i=n[o];return i||0===i?t.style.setProperty(c,i):t.style.removeProperty(c),e.set(c,i),r.delete(c),e}),new Map);r.forEach((function(e,n){t.style[n]=""})),de.set(t,o)}function ye(e,t,n){if("on"===t.substr(0,2))return function(e){return function(t,n,r,o){if(o){var c=ue.get(n);c&&n.removeEventListener(e,c.get(o),void 0!==o.options&&o.options)}if(r){if("function"!=typeof r)throw Error("Event listener must be a function: ".concat(ie(r)));var i=ue.get(n);i||(i=new WeakMap,ue.set(n,i));var u=r.bind(null,t);i.set(r,u),n.addEventListener(e,u,void 0!==r.options&&r.options)}}}(t.substr(2));switch(e){case"class":return le;case"style":return pe;default:return function(r,o,c){if(n||o instanceof SVGElement||!(t in o))if(!1===c||null==c)o.removeAttribute(e);else{var i=!0===c?"":String(c);o.setAttribute(e,i)}else o[t]!==c&&(o[t]=c)}}}function ve(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if(!(Symbol.iterator in Object(e)||"[object Arguments]"===Object.prototype.toString.call(e)))return;var n=[],r=!0,o=!1,c=void 0;try{for(var i,u=e[Symbol.iterator]();!(r=(i=u.next()).done)&&(n.push(i.value),!t||n.length!==t);r=!0);}catch(e){o=!0,c=e}finally{try{r||null==u.return||u.return()}finally{if(o)throw c}}return n}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}function be(e){return(be="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}var he=Date.now(),me=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return"{{h-".concat(he,"-").concat(e,"}}")},ge=me("(\\d+)"),we=new RegExp("^".concat(ge,"$")),Se=new RegExp(ge,"g"),Oe="--".concat(he,"--"),Ee=new RegExp(Oe,"g"),Ne=new WeakMap;var je="object"===be(window.ShadyDOM)&&window.ShadyDOM.inUse?function(e){var t;return{get currentNode(){return t},nextNode:function(){if(void 0===t)t=e.childNodes[0];else if(t.childNodes.length)t=t.childNodes[0];else if(t.nextSibling)t=t.nextSibling;else{var n=t.parentNode;for(t=n.nextSibling;!t&&n!==e;)n=n.parentNode,t=n.nextSibling}return!!t}}}:function(e){return document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT|NodeFilter.SHOW_TEXT,null,!1)},xe=document.createElement("div");function ke(e,t,n){var r=document.createElement("template"),o=[],c=function(e,t){var n=e.reduce((function(t,n,r){return 0===r?n:e.slice(r).join("").match(/^\s*<\/\s*(table|tr|thead|tbody|tfoot|colgroup)>/)?"".concat(t,"\x3c!--").concat(me(r-1),"--\x3e").concat(n):t+me(r-1)+n}),"");return t&&(n+="<style>\n".concat(t.join("\n/*------*/\n"),"\n</style>")),d?n.replace(/style\s*=\s*(["][^"]+["]|['][^']+[']|[^\s"'<>/]+)/g,(function(e){return"".concat(Oe).concat(e)})):n}(e,n);if(t&&(c="<svg>".concat(c,"</svg>")),d?r.innerHTML=c:(xe.innerHTML="<template>".concat(c,"</template>"),r.content.appendChild(xe.children[0].content)),t){var i=r.content.firstChild;r.content.removeChild(i),Array.from(i.childNodes).forEach((function(e){return r.content.appendChild(e)}))}!function(e){for(var t,n=document.createNodeIterator(e,NodeFilter.SHOW_COMMENT,null,!1);t=n.nextNode();)we.test(t.textContent)&&(t.parentNode.insertBefore(document.createTextNode(t.textContent),t),t.parentNode.removeChild(t))}(r.content);for(var u=je(r.content),a=0,f=function(){var n=u.currentNode;if(n.nodeType===Node.TEXT_NODE){var r=n.textContent;if(!r.match(we)){var c=r.match(Se);if(c){var i=n;c.reduce((function(e,t){var n=ve(e.pop().split(t),2),r=n[0],o=n[1];return r&&e.push(r),e.push(t),o&&e.push(o),e}),[r]).forEach((function(e,t){0===t?i.textContent=e:i=i.parentNode.insertBefore(document.createTextNode(e),i.nextSibling)}))}}var f=n.textContent.match(we);f&&(d||(n.textContent=""),o[f[1]]=[a,ce])}else n.nodeType===Node.ELEMENT_NODE&&Array.from(n.attributes).forEach((function(r){var c=r.value.trim(),i=d?r.name.replace(Oe,""):r.name,u=c.match(we);if(u){var f=e[u[1]].replace(/\s*=\s*['"]*$/g,"").split(" ").pop();o[u[1]]=[a,ye(i,f,t)],n.removeAttribute(r.name)}else{var l=c.match(Se);if(l){var s="attr__".concat(i);l.forEach((function(e,t){var n=ve(e.match(we),2)[1];o[n]=[a,function(n,r,o){var u=Q(r,{});u[s]=(u[s]||c).replace(e,null==o?"":o),1!==l.length&&t+1!==l.length||(r.setAttribute(i,u[s]),u[s]=void 0)}]})),r.value="",d&&i!==r.name&&(n.removeAttribute(r.name),n.setAttribute(i,""))}}}));a+=1};u.nextNode();)f();return function(e,t,n){var c=Q(t,{type:"function"});if(r!==c.template){(c.template||t.nodeType===Node.ELEMENT_NODE)&&te(t),c.prevArgs=null;var i=document.importNode(function(e,t){return t?l((function(n){var r=Ne.get(e);r||(r=new Map,Ne.set(e,r));var o=r.get(t);if(!o){(o=document.createElement("template")).content.appendChild(e.content.cloneNode(!0)),r.set(t,o);var c=o.content.querySelectorAll("style");Array.from(c).forEach((function(e){for(var t=e.childNodes.length+1,n=0;n<t;n+=1)e.parentNode.insertBefore(document.createTextNode(me()),e)})),n.prepareTemplate(o,t.toLowerCase())}return o}),e):e}(r,e.tagName).content,!0),u=je(i),a=o.slice(0),f=0,s=a.shift(),p=[];for(c.template=r,c.markers=p;u.nextNode();){var y=u.currentNode;for(y.nodeType===Node.TEXT_NODE&&(we.test(y.textContent)?y.textContent="":d&&(y.textContent=y.textContent.replace(Ee,"")));s&&s[0]===f;)p.push([y,s[1]]),s=a.shift();f+=1}if(t.nodeType===Node.TEXT_NODE){c.startNode=i.childNodes[0],c.endNode=i.childNodes[i.childNodes.length-1];for(var v=t,b=i.childNodes[0];b;)t.parentNode.insertBefore(b,v.nextSibling),v=b,b=i.childNodes[0]}else t.appendChild(i)}var h=c.prevArgs;c.prevArgs=n;for(var m=0;m<c.markers.length;m+=1){var g=ve(c.markers[m],2),w=g[0],S=g[1];h&&h[m]===n[m]||S(e,w,n[m],h?h[m]:void 0)}t.nodeType!==Node.TEXT_NODE&&l((function(t){e.shadowRoot&&(h?t.styleSubtree(e):t.styleElement(e))}))}}var Te=new Map;function Me(e,t){if(!e)throw Error("Target property name missing: ".concat(e));if(2===arguments.length)return function(n){n[e]=t};var n=Te.get(e);return n||(n=function(t,n){var r=n.target;t[e]=r.value},Te.set(e,n)),n}var Ae=new WeakMap;function Ce(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:200;return function(r,o){var c;t&&(c=setTimeout((function(){c=void 0,requestAnimationFrame((function(){t(r,o)}))}),n)),Ae.set(o,e),e.then((function(t){c&&clearTimeout(c),Ae.get(o)===e&&(t(r,o),Ae.set(o,null))}))}}var Pe=me(),_e=me("svg"),De=new Map,Re=new WeakMap,We={define:function(e){return G(e),this},key:function(e){return this.id=e,this},style:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return Re.set(this,t),this}};function Le(e,t,n){return Object.assign((function r(o){var c=arguments.length>1&&void 0!==arguments[1]?arguments[1]:o,i=Re.get(r),u=e.join(Pe);i&&(u+=i.join(Pe)),n&&(u+=_e);var a=De.get(u);a||(a=ke(e,n,i),De.set(u,a)),a(o,c,t)}),We)}function ze(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];return Le(e,n)}function Be(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];return Le(e,n,!0)}Object.assign(ze,r),Object.assign(Be,r),n.d(t,"define",(function(){return G})),n.d(t,"property",(function(){return b})),n.d(t,"parent",(function(){return U})),n.d(t,"children",(function(){return J})),n.d(t,"render",(function(){return S})),n.d(t,"dispatch",(function(){return f})),n.d(t,"html",(function(){return ze})),n.d(t,"svg",(function(){return Be}))}])})); | ||
//# sourceMappingURL=hybrids.js.map |
@@ -53,3 +53,2 @@ import { stringifyElement } from './utils'; | ||
if (contextStack.size && contextStack.has(entry)) { | ||
contextStack.clear(); | ||
throw Error("Circular get invocation of the '".concat(key, "' property in '").concat(stringifyElement(target), "'")); | ||
@@ -67,17 +66,17 @@ } | ||
}); | ||
contextStack.add(entry); | ||
if (entry.checksum && entry.checksum === calculateChecksum(entry)) { | ||
contextStack.delete(entry); | ||
return entry.value; | ||
} | ||
if (entry.deps && entry.deps.size) { | ||
entry.deps.forEach(function (depEntry) { | ||
if (depEntry.contexts) depEntry.contexts.delete(entry); | ||
}); | ||
try { | ||
contextStack.add(entry); | ||
if (entry.observed && entry.deps && entry.deps.size) { | ||
entry.deps.forEach(function (depEntry) { | ||
depEntry.contexts.delete(entry); | ||
}); | ||
} | ||
entry.deps = undefined; | ||
} | ||
try { | ||
var nextValue = getter(target, entry.value); | ||
@@ -94,3 +93,8 @@ | ||
} catch (e) { | ||
contextStack.clear(); | ||
entry.checksum = 0; | ||
contextStack.delete(entry); | ||
contextStack.forEach(function (context) { | ||
context.deps.delete(entry); | ||
if (context.observed) entry.contexts.delete(context); | ||
}); | ||
throw e; | ||
@@ -103,3 +107,2 @@ } | ||
if (contextStack.size && !force) { | ||
contextStack.clear(); | ||
throw Error("Try to set '".concat(key, "' of '").concat(stringifyElement(target), "' in get call")); | ||
@@ -120,3 +123,2 @@ } | ||
if (contextStack.size) { | ||
contextStack.clear(); | ||
throw Error("Try to invalidate '".concat(key, "' in '").concat(stringifyElement(target), "' get call")); | ||
@@ -157,2 +159,2 @@ } | ||
} | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jYWNoZS5qcyJdLCJuYW1lcyI6WyJzdHJpbmdpZnlFbGVtZW50IiwiZW1pdHRlciIsImVudHJpZXMiLCJXZWFrTWFwIiwiZ2V0RW50cnkiLCJ0YXJnZXQiLCJrZXkiLCJ0YXJnZXRNYXAiLCJnZXQiLCJNYXAiLCJzZXQiLCJlbnRyeSIsInZhbHVlIiwidW5kZWZpbmVkIiwiY29udGV4dHMiLCJkZXBzIiwic3RhdGUiLCJjaGVja3N1bSIsIm9ic2VydmVkIiwiY2FsY3VsYXRlQ2hlY2tzdW0iLCJmb3JFYWNoIiwiZGVwRW50cnkiLCJkaXNwYXRjaERlZXAiLCJkaXNwYXRjaCIsImNvbnRleHRTdGFjayIsIlNldCIsImdldHRlciIsInNpemUiLCJoYXMiLCJjbGVhciIsIkVycm9yIiwiY29udGV4dCIsImFkZCIsImRlbGV0ZSIsIm5leHRWYWx1ZSIsImUiLCJzZXR0ZXIiLCJmb3JjZSIsIm5ld1ZhbHVlIiwiaW52YWxpZGF0ZSIsImNsZWFyVmFsdWUiLCJvYnNlcnZlIiwiZm4iLCJsYXN0VmFsdWUiLCJ1bnN1YnNjcmliZSIsInN1YnNjcmliZSIsInVub2JzZXJ2ZSJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBU0EsZ0JBQVQsUUFBaUMsU0FBakM7QUFDQSxPQUFPLEtBQUtDLE9BQVosTUFBeUIsV0FBekI7QUFFQSxJQUFNQyxPQUFPLEdBQUcsSUFBSUMsT0FBSixFQUFoQjtBQUNBLE9BQU8sU0FBU0MsUUFBVCxDQUFrQkMsTUFBbEIsRUFBMEJDLEdBQTFCLEVBQStCO0FBQ3BDLE1BQUlDLFNBQVMsR0FBR0wsT0FBTyxDQUFDTSxHQUFSLENBQVlILE1BQVosQ0FBaEI7O0FBQ0EsTUFBSSxDQUFDRSxTQUFMLEVBQWdCO0FBQ2RBLElBQUFBLFNBQVMsR0FBRyxJQUFJRSxHQUFKLEVBQVo7QUFDQVAsSUFBQUEsT0FBTyxDQUFDUSxHQUFSLENBQVlMLE1BQVosRUFBb0JFLFNBQXBCO0FBQ0Q7O0FBRUQsTUFBSUksS0FBSyxHQUFHSixTQUFTLENBQUNDLEdB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Q0MsTUFBRCxFQUFTQyxHQUFULENBQXRCO0FBQ0FLLEVBQUFBLEtBQUssQ0FBQ08sUUFBTixHQUFpQixJQUFqQjtBQUVBLE1BQUl5QixTQUFKO0FBQ0EsTUFBTUMsV0FBVyxHQUFHM0MsT0FBTyxDQUFDNEMsU0FBUixDQUFrQmxDLEtBQWxCLEVBQXlCLFlBQU07QUFDakQsUUFBTUMsS0FBSyxHQUFHSixHQUFHLENBQUNILE1BQUQsRUFBU0MsR0FBVCxFQUFjb0IsTUFBZCxDQUFqQjs7QUFDQSxRQUFJZCxLQUFLLEtBQUsrQixTQUFkLEVBQXlCO0FBQ3ZCRCxNQUFBQSxFQUFFLENBQUNyQyxNQUFELEVBQVNPLEtBQVQsRUFBZ0IrQixTQUFoQixDQUFGO0FBQ0FBLE1BQUFBLFNBQVMsR0FBRy9CLEtBQVo7QUFDRDtBQUNGLEdBTm1CLENBQXBCO0FBUUEsU0FBTyxTQUFTa0MsU0FBVCxHQUFxQjtBQUMxQkYsSUFBQUEsV0FBVztBQUNYakMsSUFBQUEsS0FBSyxDQUFDTyxRQUFOLEdBQWlCLEtBQWpCOztBQUNBLFFBQUlQLEtBQUssQ0FBQ0ksSUFBTixJQUFjSixLQUFLLENBQUNJLElBQU4sQ0FBV1ksSUFBN0IsRUFBbUM7QUFDakNoQixNQUFBQSxLQUFLLENBQUNJLElBQU4sQ0FBV0ssT0FBWCxDQUFtQixVQUFDQyxRQUFELEVBQWM7QUFDL0JBLFFBQUFBLFFBQVEsQ0FBQ1AsUUFBVCxDQUFrQm1CLE1BQWxCLENBQXlCdEIsS0FBekI7QUFDRCxPQUZEO0FBR0Q7QUFDRixHQVJEO0FBU0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBzdHJpbmdpZnlFbGVtZW50IH0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgKiBhcyBlbWl0dGVyIGZyb20gJy4vZW1pdHRlcic7XG5cbmNvbnN0IGVudHJpZXMgPSBuZXcgV2Vha01hcCgpO1xuZXhwb3J0IGZ1bmN0aW9uIGdldEVudHJ5KHRhcmdldCwga2V5KSB7XG4gIGxldCB0YXJnZXRNYXAgPSBlbnRyaWVzLmdldCh0YXJnZXQpO1xuICBpZiAoIXRhcmdldE1hcCkge1xuICAgIHRhcmdldE1hcCA9IG5ldyBNYXAoKTtcbiAgICBlbnRyaWVzLnNldCh0YXJnZXQsIHRhcmdldE1hcCk7XG4gIH1cblxuICBsZXQgZW50cnkgPSB0YXJnZXRNYXAuZ2V0KGtleSk7XG5cbiAgaWYgKCFlbnRyeSkge1xuICAgIGVudHJ5ID0ge1xuICAgICAgdGFyZ2V0LFxuICAgICAga2V5LFxuICAgICAgdmFsdWU6IHVuZGVmaW5lZCxcbiAgICAgIGNvbnRleHRzOiB1bmRlZmluZWQsXG4gICAgICBkZXBzOiB1bmRlZmluZWQsXG4gICAgICBzdGF0ZTogMCxcbiAgICAgIGNoZWNrc3VtOiAwLFxuICAgICAgb2JzZXJ2ZWQ6IGZhbHNlLFxuICAgIH07XG4gICAgdGFyZ2V0TWFwLnNldChrZXksIGVudHJ5KTtcbiAgfVxuXG4gIHJldHVybiBlbnRyeTtcbn1cblxuZnVuY3Rpb24gY2FsY3VsYXRlQ2hlY2tzdW0oZW50cnkpIHtcbiAgbGV0IGNoZWNrc3VtID0gZW50cnkuc3RhdGU7XG4gIGlmIChlbnRyeS5kZXBzKSB7XG4gICAgZW50cnkuZGVwcy5mb3JFYWNoKChkZXBFbnRyeSkgPT4ge1xuICAgICAgY2hlY2tzdW0gKz0gZGVwRW50cnkuc3RhdGU7XG4gICAgfSk7XG4gIH1cblxuICByZXR1cm4gY2hlY2tzdW07XG59XG5cbmZ1bmN0aW9uIGRpc3BhdGNoRGVlcChlbnRyeSkge1xuICBpZiAoZW50cnkub2JzZXJ2ZWQpIGVtaXR0ZXIuZGlzcGF0Y2goZW50cnkpO1xuICBpZiAoZW50cnkuY29udGV4dHMpIGVudHJ5LmNvbnRleHRzLmZvckVhY2goZGlzcGF0Y2hEZWVwKTtcbn1cblxuY29uc3QgY29udGV4dFN0YWNrID0gbmV3IFNldCgpO1xuZXhwb3J0IGZ1bmN0aW9uIGdldCh0YXJnZXQsIGtleSwgZ2V0dGVyKSB7XG4gIGNvbnN0IGVudHJ5ID0gZ2V0RW50cnkodGFyZ2V0LCBrZXkpO1xuXG4gIGlmIChjb250ZXh0U3RhY2suc2l6ZSAmJiBjb250ZXh0U3RhY2suaGFzKGVudHJ5KSkge1xuICAgIGNvbnRleHRTdGFjay5jbGVhcigpO1xuICAgIHRocm93IEVycm9yKGBDaXJjdWxhciBnZXQgaW52b2NhdGlvbiBvZiB0aGUgJyR7a2V5fScgcHJvcGVydHkgaW4gJyR7c3RyaW5naWZ5RWxlbWVudCh0YXJnZXQpfSdgKTtcbiAgfVxuXG4gIGNvbnRleHRTdGFjay5mb3JFYWNoKChjb250ZXh0KSA9PiB7XG4gICAgY29udGV4dC5kZXBzID0gY29udGV4dC5kZXBzIHx8IG5ldyBTZXQoKTtcbiAgICBjb250ZXh0LmRlcHMuYWRkKGVudHJ5KTtcblxuICAgIGlmIChjb250ZXh0Lm9ic2VydmVkKSB7XG4gICAgICBlbnRyeS5jb250ZXh0cyA9IGVudHJ5LmNvbnRleHRzIHx8IG5ldyBTZXQoKTtcbiAgICAgIGVudHJ5LmNvbnRleHRzLmFkZChjb250ZXh0KTtcbiAgICB9XG4gIH0pO1xuXG4gIGNvbnRleHRTdGFjay5hZGQoZW50cnkpO1xuXG4gIGlmIChlbnRyeS5jaGVja3N1bSAmJiBlbnRyeS5jaGVja3N1bSA9PT0gY2FsY3VsYXRlQ2hlY2tzdW0oZW50cnkpKSB7XG4gICAgY29udGV4dFN0YWNrLmRlbGV0ZShlbnRyeSk7XG4gICAgcmV0dXJuIGVudHJ5LnZhbHVlO1xuICB9XG5cbiAgaWYgKGVudHJ5LmRlcHMgJiYgZW50cnkuZGVwcy5zaXplKSB7XG4gICAgZW50cnkuZGVwcy5mb3JFYWNoKChkZXBFbnRyeSkgPT4ge1xuICAgICAgaWYgKGRlcEVudHJ5LmNvbnRleHRzKSBkZXBFbnRyeS5jb250ZXh0cy5kZWxldGUoZW50cnkpO1xuICAgIH0pO1xuICAgIGVudHJ5LmRlcHMgPSB1bmRlZmluZWQ7XG4gIH1cblxuICB0cnkge1xuICAgIGNvbnN0IG5leHRWYWx1ZSA9IGdldHRlcih0YXJnZXQsIGVudHJ5LnZhbHVlKTtcblxuICAgIGlmIChuZXh0VmFsdWUgIT09IGVudHJ5LnZhbHVlKSB7XG4gICAgICBlbnRyeS5zdGF0ZSArPSAxO1xuICAgICAgZW50cnkudmFsdWUgPSBuZXh0VmFsdWU7XG5cbiAgICAgIGRpc3BhdGNoRGVlcChlbnRyeSk7XG4gICAgfVxuXG4gICAgZW50cnkuY2hlY2tzdW0gPSBjYWxjdWxhdGVDaGVja3N1bShlbnRyeSk7XG4gICAgY29udGV4dFN0YWNrLmRlbGV0ZShlbnRyeSk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBjb250ZXh0U3RhY2suY2xlYXIoKTtcbiAgICB0aHJvdyBlO1xuICB9XG5cbiAgcmV0dXJuIGVudHJ5LnZhbHVlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2V0KHRhcmdldCwga2V5LCBzZXR0ZXIsIHZhbHVlLCBmb3JjZSkge1xuICBpZiAoY29udGV4dFN0YWNrLnNpemUgJiYgIWZvcmNlKSB7XG4gICAgY29udGV4dFN0YWNrLmNsZWFyKCk7XG4gICAgdGhyb3cgRXJyb3IoYFRyeSB0byBzZXQgJyR7a2V5fScgb2YgJyR7c3RyaW5naWZ5RWxlbWVudCh0YXJnZXQpfScgaW4gZ2V0IGNhbGxgKTtcbiAgfVxuXG4gIGNvbnN0IGVudHJ5ID0gZ2V0RW50cnkodGFyZ2V0LCBrZXkpO1xuICBjb25zdCBuZXdWYWx1ZSA9IHNldHRlcih0YXJnZXQsIHZhbHVlLCBlbnRyeS52YWx1ZSk7XG5cbiAgaWYgKG5ld1ZhbHVlICE9PSBlbnRyeS52YWx1ZSkge1xuICAgIGVudHJ5LmNoZWNrc3VtID0gMDtcbiAgICBlbnRyeS5zdGF0ZSArPSAxO1xuICAgIGVudHJ5LnZhbHVlID0gbmV3VmFsdWU7XG5cbiAgICBkaXNwYXRjaERlZXAoZW50cnkpO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnZhbGlkYXRlKHRhcmdldCwga2V5LCBjbGVhclZhbHVlKSB7XG4gIGlmIChjb250ZXh0U3RhY2suc2l6ZSkge1xuICAgIGNvbnRleHRTdGFjay5jbGVhcigpO1xuICAgIHRocm93IEVycm9yKGBUcnkgdG8gaW52YWxpZGF0ZSAnJHtrZXl9JyBpbiAnJHtzdHJpbmdpZnlFbGVtZW50KHRhcmdldCl9JyBnZXQgY2FsbGApO1xuICB9XG5cbiAgY29uc3QgZW50cnkgPSBnZXRFbnRyeSh0YXJnZXQsIGtleSk7XG5cbiAgZW50cnkuY2hlY2tzdW0gPSAwO1xuICBlbnRyeS5zdGF0ZSArPSAxO1xuXG4gIGRpc3BhdGNoRGVlcChlbnRyeSk7XG5cbiAgaWYgKGNsZWFyVmFsdWUpIHtcbiAgICBlbnRyeS52YWx1ZSA9IHVuZGVmaW5lZDtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gb2JzZXJ2ZSh0YXJnZXQsIGtleSwgZ2V0dGVyLCBmbikge1xuICBjb25zdCBlbnRyeSA9IGdldEVudHJ5KHRhcmdldCwga2V5KTtcbiAgZW50cnkub2JzZXJ2ZWQgPSB0cnVlO1xuXG4gIGxldCBsYXN0VmFsdWU7XG4gIGNvbnN0IHVuc3Vic2NyaWJlID0gZW1pdHRlci5zdWJzY3JpYmUoZW50cnksICgpID0+IHtcbiAgICBjb25zdCB2YWx1ZSA9IGdldCh0YXJnZXQsIGtleSwgZ2V0dGVyKTtcbiAgICBpZiAodmFsdWUgIT09IGxhc3RWYWx1ZSkge1xuICAgICAgZm4odGFyZ2V0LCB2YWx1ZSwgbGFzdFZhbHVlKTtcbiAgICAgIGxhc3RWYWx1ZSA9IHZhbHVlO1xuICAgIH1cbiAgfSk7XG5cbiAgcmV0dXJuIGZ1bmN0aW9uIHVub2JzZXJ2ZSgpIHtcbiAgICB1bnN1YnNjcmliZSgpO1xuICAgIGVudHJ5Lm9ic2VydmVkID0gZmFsc2U7XG4gICAgaWYgKGVudHJ5LmRlcHMgJiYgZW50cnkuZGVwcy5zaXplKSB7XG4gICAgICBlbnRyeS5kZXBzLmZvckVhY2goKGRlcEVudHJ5KSA9PiB7XG4gICAgICAgIGRlcEVudHJ5LmNvbnRleHRzLmRlbGV0ZShlbnRyeSk7XG4gICAgICB9KTtcbiAgICB9XG4gIH07XG59XG4iXX0= | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jYWNoZS5qcyJdLCJuYW1lcyI6WyJzdHJpbmdpZnlFbGVtZW50IiwiZW1pdHRlciIsImVudHJpZXMiLCJXZWFrTWFwIiwiZ2V0RW50cnkiLCJ0YXJnZXQiLCJrZXkiLCJ0YXJnZXRNYXAiLCJnZXQiLCJNYXAiLCJzZXQiLCJlbnRyeSIsInZhbHVlIiwidW5kZWZpbmVkIiwiY29udGV4dHMiLCJkZXBzIiwic3RhdGUiLCJjaGVja3N1bSIsIm9ic2VydmVkIiwiY2FsY3VsYXRlQ2hlY2tzdW0iLCJmb3JFYWNoIiwiZGVwRW50cnkiLCJkaXNwYXRjaERlZXAiLCJkaXNwYXRjaCIsImNvbnRleHRTdGFjayIsIlNldCIsImdldHRlciIsInNpemUiLCJoYXMiLCJFcnJvciIsImNvbnRleHQiLCJhZGQiLCJkZWxldGUiLCJuZXh0VmFsdWUiLCJlIiwic2V0dGVyIiwiZm9yY2UiLCJuZXdWYWx1ZSIsImludmFsaWRhdGUiLCJjbGVhclZhbHVlIiwib2JzZXJ2ZSIsImZuIiwibGFzdFZhbHVlIiwidW5zdWJzY3JpYmUiLCJzdWJzY3JpYmUiLCJ1bm9ic2VydmUiXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLGdCQUFULFFBQWlDLFNBQWpDO0FBQ0EsT0FBTyxLQUFLQyxPQUFaLE1BQXlCLFdBQXpCO0FBRUEsSUFBTUMsT0FBTyxHQUFHLElBQUlDLE9BQUosRUFBaEI7QUFDQSxPQUFPLFNBQVNDLFFBQVQsQ0FBa0JDLE1BQWxCLEVBQTBCQyxHQUExQixFQUErQjtBQUNwQyxNQUFJQyxTQUFTLEdBQUdMLE9BQU8sQ0FBQ00sR0FBUixDQUFZSCxNQUFaLENBQWhCOztBQUNBLE1BQUksQ0FBQ0UsU0FBTCxFQUFnQjtBQUNkQSxJQUFBQSxTQUFTLEdBQUcsSUFBSUUsR0FBSixFQUFaO0FBQ0FQLElBQUFBLE9BQU8sQ0FBQ1EsR0FBUixDQUFZTCxNQUFaLEVBQW9CRSxTQUFwQjtBQUNEOztBQUVELE1BQUlJLEtBQUssR0FBR0osU0FBUyxDQUFDQyxHQUFWLENBQWNG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QUVELE9BQU8sU0FBUzJCLE9BQVQsQ0FBaUJuQyxNQUFqQixFQUF5QkMsR0FBekIsRUFBOEJvQixNQUE5QixFQUFzQ2UsRUFBdEMsRUFBMEM7QUFDL0MsTUFBTTlCLEtBQUssR0FBR1AsUUFBUSxDQUFDQyxNQUFELEVBQVNDLEdBQVQsQ0FBdEI7QUFDQUssRUFBQUEsS0FBSyxDQUFDTyxRQUFOLEdBQWlCLElBQWpCO0FBRUEsTUFBSXdCLFNBQUo7QUFDQSxNQUFNQyxXQUFXLEdBQUcxQyxPQUFPLENBQUMyQyxTQUFSLENBQWtCakMsS0FBbEIsRUFBeUIsWUFBTTtBQUNqRCxRQUFNQyxLQUFLLEdBQUdKLEdBQUcsQ0FBQ0gsTUFBRCxFQUFTQyxHQUFULEVBQWNvQixNQUFkLENBQWpCOztBQUNBLFFBQUlkLEtBQUssS0FBSzhCLFNBQWQsRUFBeUI7QUFDdkJELE1BQUFBLEVBQUUsQ0FBQ3BDLE1BQUQsRUFBU08sS0FBVCxFQUFnQjhCLFNBQWhCLENBQUY7QUFDQUEsTUFBQUEsU0FBUyxHQUFHOUIsS0FBWjtBQUNEO0FBQ0YsR0FObUIsQ0FBcEI7QUFRQSxTQUFPLFNBQVNpQyxTQUFULEdBQXFCO0FBQzFCRixJQUFBQSxXQUFXO0FBQ1hoQyxJQUFBQSxLQUFLLENBQUNPLFFBQU4sR0FBaUIsS0FBakI7O0FBQ0EsUUFBSVAsS0FBSyxDQUFDSSxJQUFOLElBQWNKLEtBQUssQ0FBQ0ksSUFBTixDQUFXWSxJQUE3QixFQUFtQztBQUNqQ2hCLE1BQUFBLEtBQUssQ0FBQ0ksSUFBTixDQUFXSyxPQUFYLENBQW1CLFVBQUNDLFFBQUQsRUFBYztBQUMvQkEsUUFBQUEsUUFBUSxDQUFDUCxRQUFULENBQWtCa0IsTUFBbEIsQ0FBeUJyQixLQUF6QjtBQUNELE9BRkQ7QUFHRDtBQUNGLEdBUkQ7QUFTRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHN0cmluZ2lmeUVsZW1lbnQgfSBmcm9tICcuL3V0aWxzJztcbmltcG9ydCAqIGFzIGVtaXR0ZXIgZnJvbSAnLi9lbWl0dGVyJztcblxuY29uc3QgZW50cmllcyA9IG5ldyBXZWFrTWFwKCk7XG5leHBvcnQgZnVuY3Rpb24gZ2V0RW50cnkodGFyZ2V0LCBrZXkpIHtcbiAgbGV0IHRhcmdldE1hcCA9IGVudHJpZXMuZ2V0KHRhcmdldCk7XG4gIGlmICghdGFyZ2V0TWFwKSB7XG4gICAgdGFyZ2V0TWFwID0gbmV3IE1hcCgpO1xuICAgIGVudHJpZXMuc2V0KHRhcmdldCwgdGFyZ2V0TWFwKTtcbiAgfVxuXG4gIGxldCBlbnRyeSA9IHRhcmdldE1hcC5nZXQoa2V5KTtcblxuICBpZiAoIWVudHJ5KSB7XG4gICAgZW50cnkgPSB7XG4gICAgICB0YXJnZXQsXG4gICAgICBrZXksXG4gICAgICB2YWx1ZTogdW5kZWZpbmVkLFxuICAgICAgY29udGV4dHM6IHVuZGVmaW5lZCxcbiAgICAgIGRlcHM6IHVuZGVmaW5lZCxcbiAgICAgIHN0YXRlOiAwLFxuICAgICAgY2hlY2tzdW06IDAsXG4gICAgICBvYnNlcnZlZDogZmFsc2UsXG4gICAgfTtcbiAgICB0YXJnZXRNYXAuc2V0KGtleSwgZW50cnkpO1xuICB9XG5cbiAgcmV0dXJuIGVudHJ5O1xufVxuXG5mdW5jdGlvbiBjYWxjdWxhdGVDaGVja3N1bShlbnRyeSkge1xuICBsZXQgY2hlY2tzdW0gPSBlbnRyeS5zdGF0ZTtcbiAgaWYgKGVudHJ5LmRlcHMpIHtcbiAgICBlbnRyeS5kZXBzLmZvckVhY2goKGRlcEVudHJ5KSA9PiB7XG4gICAgICBjaGVja3N1bSArPSBkZXBFbnRyeS5zdGF0ZTtcbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiBjaGVja3N1bTtcbn1cblxuZnVuY3Rpb24gZGlzcGF0Y2hEZWVwKGVudHJ5KSB7XG4gIGlmIChlbnRyeS5vYnNlcnZlZCkgZW1pdHRlci5kaXNwYXRjaChlbnRyeSk7XG4gIGlmIChlbnRyeS5jb250ZXh0cykgZW50cnkuY29udGV4dHMuZm9yRWFjaChkaXNwYXRjaERlZXApO1xufVxuXG5jb25zdCBjb250ZXh0U3RhY2sgPSBuZXcgU2V0KCk7XG5leHBvcnQgZnVuY3Rpb24gZ2V0KHRhcmdldCwga2V5LCBnZXR0ZXIpIHtcbiAgY29uc3QgZW50cnkgPSBnZXRFbnRyeSh0YXJnZXQsIGtleSk7XG5cbiAgaWYgKGNvbnRleHRTdGFjay5zaXplICYmIGNvbnRleHRTdGFjay5oYXMoZW50cnkpKSB7XG4gICAgdGhyb3cgRXJyb3IoYENpcmN1bGFyIGdldCBpbnZvY2F0aW9uIG9mIHRoZSAnJHtrZXl9JyBwcm9wZXJ0eSBpbiAnJHtzdHJpbmdpZnlFbGVtZW50KHRhcmdldCl9J2ApO1xuICB9XG5cbiAgY29udGV4dFN0YWNrLmZvckVhY2goKGNvbnRleHQpID0+IHtcbiAgICBjb250ZXh0LmRlcHMgPSBjb250ZXh0LmRlcHMgfHwgbmV3IFNldCgpO1xuICAgIGNvbnRleHQuZGVwcy5hZGQoZW50cnkpO1xuXG4gICAgaWYgKGNvbnRleHQub2JzZXJ2ZWQpIHtcbiAgICAgIGVudHJ5LmNvbnRleHRzID0gZW50cnkuY29udGV4dHMgfHwgbmV3IFNldCgpO1xuICAgICAgZW50cnkuY29udGV4dHMuYWRkKGNvbnRleHQpO1xuICAgIH1cbiAgfSk7XG5cbiAgaWYgKGVudHJ5LmNoZWNrc3VtICYmIGVudHJ5LmNoZWNrc3VtID09PSBjYWxjdWxhdGVDaGVja3N1bShlbnRyeSkpIHtcbiAgICByZXR1cm4gZW50cnkudmFsdWU7XG4gIH1cblxuICB0cnkge1xuICAgIGNvbnRleHRTdGFjay5hZGQoZW50cnkpO1xuXG4gICAgaWYgKGVudHJ5Lm9ic2VydmVkICYmIGVudHJ5LmRlcHMgJiYgZW50cnkuZGVwcy5zaXplKSB7XG4gICAgICBlbnRyeS5kZXBzLmZvckVhY2goKGRlcEVudHJ5KSA9PiB7XG4gICAgICAgIGRlcEVudHJ5LmNvbnRleHRzLmRlbGV0ZShlbnRyeSk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBlbnRyeS5kZXBzID0gdW5kZWZpbmVkO1xuICAgIGNvbnN0IG5leHRWYWx1ZSA9IGdldHRlcih0YXJnZXQsIGVudHJ5LnZhbHVlKTtcblxuICAgIGlmIChuZXh0VmFsdWUgIT09IGVudHJ5LnZhbHVlKSB7XG4gICAgICBlbnRyeS5zdGF0ZSArPSAxO1xuICAgICAgZW50cnkudmFsdWUgPSBuZXh0VmFsdWU7XG5cbiAgICAgIGRpc3BhdGNoRGVlcChlbnRyeSk7XG4gICAgfVxuXG4gICAgZW50cnkuY2hlY2tzdW0gPSBjYWxjdWxhdGVDaGVja3N1bShlbnRyeSk7XG4gICAgY29udGV4dFN0YWNrLmRlbGV0ZShlbnRyeSk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBlbnRyeS5jaGVja3N1bSA9IDA7XG5cbiAgICBjb250ZXh0U3RhY2suZGVsZXRlKGVudHJ5KTtcbiAgICBjb250ZXh0U3RhY2suZm9yRWFjaCgoY29udGV4dCkgPT4ge1xuICAgICAgY29udGV4dC5kZXBzLmRlbGV0ZShlbnRyeSk7XG4gICAgICBpZiAoY29udGV4dC5vYnNlcnZlZCkgZW50cnkuY29udGV4dHMuZGVsZXRlKGNvbnRleHQpO1xuICAgIH0pO1xuXG4gICAgdGhyb3cgZTtcbiAgfVxuXG4gIHJldHVybiBlbnRyeS52YWx1ZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNldCh0YXJnZXQsIGtleSwgc2V0dGVyLCB2YWx1ZSwgZm9yY2UpIHtcbiAgaWYgKGNvbnRleHRTdGFjay5zaXplICYmICFmb3JjZSkge1xuICAgIHRocm93IEVycm9yKGBUcnkgdG8gc2V0ICcke2tleX0nIG9mICcke3N0cmluZ2lmeUVsZW1lbnQodGFyZ2V0KX0nIGluIGdldCBjYWxsYCk7XG4gIH1cblxuICBjb25zdCBlbnRyeSA9IGdldEVudHJ5KHRhcmdldCwga2V5KTtcbiAgY29uc3QgbmV3VmFsdWUgPSBzZXR0ZXIodGFyZ2V0LCB2YWx1ZSwgZW50cnkudmFsdWUpO1xuXG4gIGlmIChuZXdWYWx1ZSAhPT0gZW50cnkudmFsdWUpIHtcbiAgICBlbnRyeS5jaGVja3N1bSA9IDA7XG4gICAgZW50cnkuc3RhdGUgKz0gMTtcbiAgICBlbnRyeS52YWx1ZSA9IG5ld1ZhbHVlO1xuXG4gICAgZGlzcGF0Y2hEZWVwKGVudHJ5KTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gaW52YWxpZGF0ZSh0YXJnZXQsIGtleSwgY2xlYXJWYWx1ZSkge1xuICBpZiAoY29udGV4dFN0YWNrLnNpemUpIHtcbiAgICB0aHJvdyBFcnJvcihgVHJ5IHRvIGludmFsaWRhdGUgJyR7a2V5fScgaW4gJyR7c3RyaW5naWZ5RWxlbWVudCh0YXJnZXQpfScgZ2V0IGNhbGxgKTtcbiAgfVxuXG4gIGNvbnN0IGVudHJ5ID0gZ2V0RW50cnkodGFyZ2V0LCBrZXkpO1xuXG4gIGVudHJ5LmNoZWNrc3VtID0gMDtcbiAgZW50cnkuc3RhdGUgKz0gMTtcblxuICBkaXNwYXRjaERlZXAoZW50cnkpO1xuXG4gIGlmIChjbGVhclZhbHVlKSB7XG4gICAgZW50cnkudmFsdWUgPSB1bmRlZmluZWQ7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG9ic2VydmUodGFyZ2V0LCBrZXksIGdldHRlciwgZm4pIHtcbiAgY29uc3QgZW50cnkgPSBnZXRFbnRyeSh0YXJnZXQsIGtleSk7XG4gIGVudHJ5Lm9ic2VydmVkID0gdHJ1ZTtcblxuICBsZXQgbGFzdFZhbHVlO1xuICBjb25zdCB1bnN1YnNjcmliZSA9IGVtaXR0ZXIuc3Vic2NyaWJlKGVudHJ5LCAoKSA9PiB7XG4gICAgY29uc3QgdmFsdWUgPSBnZXQodGFyZ2V0LCBrZXksIGdldHRlcik7XG4gICAgaWYgKHZhbHVlICE9PSBsYXN0VmFsdWUpIHtcbiAgICAgIGZuKHRhcmdldCwgdmFsdWUsIGxhc3RWYWx1ZSk7XG4gICAgICBsYXN0VmFsdWUgPSB2YWx1ZTtcbiAgICB9XG4gIH0pO1xuXG4gIHJldHVybiBmdW5jdGlvbiB1bm9ic2VydmUoKSB7XG4gICAgdW5zdWJzY3JpYmUoKTtcbiAgICBlbnRyeS5vYnNlcnZlZCA9IGZhbHNlO1xuICAgIGlmIChlbnRyeS5kZXBzICYmIGVudHJ5LmRlcHMuc2l6ZSkge1xuICAgICAgZW50cnkuZGVwcy5mb3JFYWNoKChkZXBFbnRyeSkgPT4ge1xuICAgICAgICBkZXBFbnRyeS5jb250ZXh0cy5kZWxldGUoZW50cnkpO1xuICAgICAgfSk7XG4gICAgfVxuICB9O1xufVxuIl19 |
@@ -127,3 +127,3 @@ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } | ||
Object.keys(node.constructor.hybrids).forEach(function (key) { | ||
cache.invalidate(node, key, node[key] === hybrids[key]); | ||
cache.invalidate(node, key, node.constructor.hybrids[key] !== hybrids[key]); | ||
}); | ||
@@ -241,2 +241,2 @@ node.connectedCallback(); | ||
} | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9kZWZpbmUuanMiXSwibmFtZXMiOlsicHJvcGVydHkiLCJyZW5kZXIiLCJjYWNoZSIsInBhc2NhbFRvRGFzaCIsImRlZmVycmVkIiwicHJvY2VzcyIsImVudiIsIk5PREVfRU5WIiwiZSIsImRlZmF1bHRNZXRob2QiLCJob3N0IiwidmFsdWUiLCJjb21waWxlIiwiSHlicmlkIiwiZGVzY3JpcHRvcnMiLCJoeWJyaWRzIiwiY2FsbGJhY2tzIiwiT2JqZWN0Iiwia2V5cyIsImZvckVhY2giLCJrZXkiLCJkZXNjIiwidHlwZSIsImNvbmZpZyIsImdldCIsIkFycmF5IiwiaXNBcnJheSIsInNldCIsInVuZGVmaW5lZCIsImNvbm5lY3QiLCJvYnNlcnZlIiwiZGVmaW5lUHJvcGVydHkiLCJwcm90b3R5cGUiLCJuZXdWYWx1ZSIsImVudW1lcmFibGUiLCJjb25maWd1cmFibGUiLCJwdXNoIiwiaW52YWxpZGF0ZSIsInVwZGF0ZSIsIndhbGtJblNoYWRvdyIsIm5vZGUiLCJmbiIsImZyb20iLCJjaGlsZHJlbiIsImVsIiwic2hhZG93Um9vdCIsInVwZGF0ZVF1ZXVlIiwiTWFwIiwibGFzdEh5YnJpZHMiLCJzaXplIiwidGhlbiIsImRvY3VtZW50IiwiYm9keSIsImhhcyIsImNvbnN0cnVjdG9yIiwiZGlzY29ubmVjdGVkQ2FsbGJhY2siLCJjb25uZWN0ZWRDYWxsYmFjayIsImNsZWFyIiwiZGlzY29ubmVjdHMiLCJXZWFrTWFwIiwiZGVmaW5lRWxlbWVudCIsInRhZ05hbWUiLCJoeWJyaWRzT3JDb25zdHJ1Y3RvciIsIlR5cGVFcnJvciIsIkN1c3RvbUVsZW1lbnQiLCJ3aW5kb3ciLCJjdXN0b21FbGVtZW50cyIsImRlZmluZSIsIkVycm9yIiwibGlzdCIsImluZGV4IiwibGVuZ3RoIiwiY2IiLCJIVE1MRWxlbWVudCIsImRlZmluZU1hcCIsImVsZW1lbnRzIiwicmVkdWNlIiwiYWNjIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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RCxTQUFTNkQsU0FBVCxDQUFtQkMsUUFBbkIsRUFBNkI7QUFDM0IsU0FBTzFELE1BQU0sQ0FBQ0MsSUFBUCxDQUFZeUQsUUFBWixFQUFzQkMsTUFBdEIsQ0FBNkIsVUFBQ0MsR0FBRCxFQUFNekQsR0FBTixFQUFjO0FBQ2hELFFBQU15QyxPQUFPLEdBQUcxRCxZQUFZLENBQUNpQixHQUFELENBQTVCO0FBQ0F5RCxJQUFBQSxHQUFHLENBQUN6RCxHQUFELENBQUgsR0FBV3dDLGFBQWEsQ0FBQ0MsT0FBRCxFQUFVYyxRQUFRLENBQUN2RCxHQUFELENBQWxCLENBQXhCO0FBRUEsV0FBT3lELEdBQVA7QUFDRCxHQUxNLEVBS0osRUFMSSxDQUFQO0FBTUQ7O0FBRUQsZUFBZSxTQUFTVixNQUFULEdBQXlCO0FBQ3RDLE1BQUksOERBQW1CLFFBQXZCLEVBQWlDO0FBQy9CLFdBQU9PLFNBQVMsa0RBQWhCO0FBQ0Q7O0FBRUQsU0FBT2QsYUFBYSxNQUFiLG1CQUFQO0FBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgcHJvcGVydHkgZnJvbSAnLi9wcm9wZXJ0eSc7XG5pbXBvcnQgcmVuZGVyIGZyb20gJy4vcmVuZGVyJztcblxuaW1wb3J0ICogYXMgY2FjaGUgZnJvbSAnLi9jYWNoZSc7XG5pbXBvcnQgeyBwYXNjYWxUb0Rhc2gsIGRlZmVycmVkIH0gZnJvbSAnLi91dGlscyc7XG5cbi8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG50cnkgeyBwcm9jZXNzLmVudi5OT0RFX0VOViB9IGNhdGNoKGUpIHsgdmFyIHByb2Nlc3MgPSB7IGVudjogeyBOT0RFX0VOVjogJ3Byb2R1Y3Rpb24nIH0gfTsgfSAvLyBlc2xpbnQtZGlzYWJsZS1saW5lXG5cbmNvbnN0IGRlZmF1bHRNZXRob2QgPSAoaG9zdCwgdmFsdWUpID0+IHZhbHVlO1xuXG5mdW5jdGlvbiBjb21waWxlKEh5YnJpZCwgZGVzY3JpcHRvcnMpIHtcbiAgSHlicmlkLmh5YnJpZHMgPSBkZXNjcmlwdG9ycztcbiAgSHlicmlkLmNhbGxiYWNrcyA9IFtdO1xuXG4gIE9iamVjdC5rZXlzKGRlc2NyaXB0b3JzKS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICBjb25zdCBkZXNjID0gZGVzY3JpcHRvcnNba2V5XTtcbiAgICBjb25zdCB0eXBlID0gdHlwZW9mIGRlc2M7XG5cbiAgICBsZXQgY29uZmlnO1xuXG4gICAgaWYgKHR5cGUgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIGNvbmZpZyA9IGtleSA9PT0gJ3JlbmRlcicgPyByZW5kZXIoZGVzYykgOiB7IGdldDogZGVzYyB9O1xuICAgIH0gZWxzZSBpZiAodHlwZSAhPT0gJ29iamVjdCcgfHwgZGVzYyA9PT0gbnVsbCB8fCAoQXJyYXkuaXNBcnJheShkZXNjKSkpIHtcbiAgICAgIGNvbmZpZyA9IHByb3BlcnR5KGRlc2MpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25maWcgPSB7XG4gICAgICAgIGdldDogZGVzYy5nZXQgfHwgZGVmYXVsdE1ldGhvZCxcbiAgICAgICAgc2V0OiBkZXNjLnNldCB8fCAoIWRlc2MuZ2V0ICYmIGRlZmF1bHRNZXRob2QpIHx8IHVuZGVmaW5lZCxcbiAgICAgICAgY29ubmVjdDogZGVzYy5jb25uZWN0LFxuICAgICAgICBvYnNlcnZlOiBkZXNjLm9ic2VydmUsXG4gICAgICB9O1xuICAgIH1cblxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShIeWJyaWQucHJvdG90eXBlLCBrZXksIHtcbiAgICAgIGdldDogZnVuY3Rpb24gZ2V0KCkge1xuICAgICAgICByZXR1cm4gY2FjaGUuZ2V0KHRoaXMsIGtleSwgY29uZmlnLmdldCk7XG4gICAgICB9LFxuICAgICAgc2V0OiBjb25maWcuc2V0ICYmIGZ1bmN0aW9uIHNldChuZXdWYWx1ZSkge1xuICAgICAgICBjYWNoZS5zZXQodGhpcywga2V5LCBjb25maWcuc2V0LCBuZXdWYWx1ZSk7XG4gICAgICB9LFxuICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgIGNvbmZpZ3VyYWJsZTogcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyxcbiAgICB9KTtcblxuICAgIGlmIChjb25maWcub2JzZXJ2ZSkge1xuICAgICAgSHlicmlkLmNhbGxiYWNrcy5wdXNoKFxuICAgICAgICAoaG9zdCkgPT4gY2FjaGUub2JzZXJ2ZShob3N0LCBrZXksIGNvbmZpZy5nZXQsIGNvbmZpZy5vYnNlcnZlKSxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKGNvbmZpZy5jb25uZWN0KSB7XG4gICAgICBIeWJyaWQuY2FsbGJhY2tzLnB1c2goXG4gICAgICAgIChob3N0KSA9PiBjb25maWcuY29ubmVjdChob3N0LCBrZXksICgpID0+IHsgY2FjaGUuaW52YWxpZGF0ZShob3N0LCBrZXkpOyB9KSxcbiAgICAgICk7XG4gICAgfVxuICB9KTtcbn1cblxubGV0IHVwZGF0ZTtcbi8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICBjb25zdCB3YWxrSW5TaGFkb3cgPSAobm9kZSwgZm4pID0+IHtcbiAgICBmbihub2RlKTtcblxuICAgIEFycmF5LmZyb20obm9kZS5jaGlsZHJlbilcbiAgICAgIC5mb3JFYWNoKChlbCkgPT4gd2Fsa0luU2hhZG93KGVsLCBmbikpO1xuXG4gICAgaWYgKG5vZGUuc2hhZG93Um9vdCkge1xuICAgICAgQXJyYXkuZnJvbShub2RlLnNoYWRvd1Jvb3QuY2hpbGRyZW4pXG4gICAgICAgIC5mb3JFYWNoKChlbCkgPT4gd2Fsa0luU2hhZG93KGVsLCBmbikpO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCB1cGRhdGVRdWV1ZSA9IG5ldyBNYXAoKTtcbiAgdXBkYXRlID0gKEh5YnJpZCwgbGFzdEh5YnJpZHMpID0+IHtcbiAgICBpZiAoIXVwZGF0ZVF1ZXVlLnNpemUpIHtcbiAgICAgIGRlZmVycmVkLnRoZW4oKCkgPT4ge1xuICAgICAgICB3YWxrSW5TaGFkb3coZG9jdW1lbnQuYm9keSwgKG5vZGUpID0+IHtcbiAgICAgICAgICBpZiAodXBkYXRlUXVldWUuaGFzKG5vZGUuY29uc3RydWN0b3IpKSB7XG4gICAgICAgICAgICBjb25zdCBoeWJyaWRzID0gdXBkYXRlUXVldWUuZ2V0KG5vZGUuY29uc3RydWN0b3IpO1xuICAgICAgICAgICAgbm9kZS5kaXNjb25uZWN0ZWRDYWxsYmFjaygpO1xuXG4gICAgICAgICAgICBPYmplY3Qua2V5cyhub2RlLmNvbnN0cnVjdG9yLmh5YnJpZHMpLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgICAgICAgICBjYWNoZS5pbnZhbGlkYXRlKG5vZGUsIGtleSwgbm9kZVtrZXldID09PSBoeWJyaWRzW2tleV0pO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIG5vZGUuY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICB1cGRhdGVRdWV1ZS5jbGVhcigpO1xuICAgICAgfSk7XG4gICAgfVxuICAgIHVwZGF0ZVF1ZXVlLnNldChIeWJyaWQsIGxhc3RIeWJyaWRzKTtcbiAgfTtcbn1cblxuY29uc3QgZGlzY29ubmVjdHMgPSBuZXcgV2Vha01hcCgpO1xuXG5mdW5jdGlvbiBkZWZpbmVFbGVtZW50KHRhZ05hbWUsIGh5YnJpZHNPckNvbnN0cnVjdG9yKSB7XG4gIGNvbnN0IHR5cGUgPSB0eXBlb2YgaHlicmlkc09yQ29uc3RydWN0b3I7XG4gIGlmICh0eXBlICE9PSAnb2JqZWN0JyAmJiB0eXBlICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgdGhyb3cgVHlwZUVycm9yKGBTZWNvbmQgYXJndW1lbnQgbXVzdCBiZSBhbiBvYmplY3Qgb3IgYSBmdW5jdGlvbjogJHt0eXBlfWApO1xuICB9XG5cbiAgY29uc3QgQ3VzdG9tRWxlbWVudCA9IHdpbmRvdy5jdXN0b21FbGVtZW50cy5nZXQodGFnTmFtZSk7XG5cbiAgaWYgKHR5cGUgPT09ICdmdW5jdGlvbicpIHtcbiAgICBpZiAoQ3VzdG9tRWxlbWVudCAhPT0gaHlicmlkc09yQ29uc3RydWN0b3IpIHtcbiAgICAgIHJldHVybiB3aW5kb3cuY3VzdG9tRWxlbWVudHMuZGVmaW5lKHRhZ05hbWUsIGh5YnJpZHNPckNvbnN0cnVjdG9yKTtcbiAgICB9XG4gICAgcmV0dXJuIEN1c3RvbUVsZW1lbnQ7XG4gIH1cblxuICBpZiAoQ3VzdG9tRWxlbWVudCkge1xuICAgIGlmIChDdXN0b21FbGVtZW50Lmh5YnJpZHMgPT09IGh5YnJpZHNPckNvbnN0cnVjdG9yKSB7XG4gICAgICByZXR1cm4gQ3VzdG9tRWxlbWVudDtcbiAgICB9XG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgJiYgQ3VzdG9tRWxlbWVudC5oeWJyaWRzKSB7XG4gICAgICBPYmplY3Qua2V5cyhDdXN0b21FbGVtZW50Lmh5YnJpZHMpLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgICBkZWxldGUgQ3VzdG9tRWxlbWVudC5wcm90b3R5cGVba2V5XTtcbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCBsYXN0SHlicmlkcyA9IEN1c3RvbUVsZW1lbnQuaHlicmlkcztcblxuICAgICAgY29tcGlsZShDdXN0b21FbGVtZW50LCBoeWJyaWRzT3JDb25zdHJ1Y3Rvcik7XG4gICAgICB1cGRhdGUoQ3VzdG9tRWxlbWVudCwgbGFzdEh5YnJpZHMpO1xuXG4gICAgICByZXR1cm4gQ3VzdG9tRWxlbWVudDtcbiAgICB9XG5cbiAgICB0aHJvdyBFcnJvcihgRWxlbWVudCAnJHt0YWdOYW1lfScgYWxyZWFkeSBkZWZpbmVkYCk7XG4gIH1cblxuICBjbGFzcyBIeWJyaWQgZXh0ZW5kcyBIVE1MRWxlbWVudCB7XG4gICAgc3RhdGljIGdldCBuYW1lKCkgeyByZXR1cm4gdGFnTmFtZTsgfVxuXG4gICAgY29ubmVjdGVkQ2FsbGJhY2soKSB7XG4gICAgICBjb25zdCB7IGNhbGxiYWNrcyB9ID0gdGhpcy5jb25zdHJ1Y3RvcjtcbiAgICAgIGNvbnN0IGxpc3QgPSBbXTtcblxuICAgICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IGNhbGxiYWNrcy5sZW5ndGg7IGluZGV4ICs9IDEpIHtcbiAgICAgICAgY29uc3QgY2IgPSBjYWxsYmFja3NbaW5kZXhdKHRoaXMpO1xuICAgICAgICBpZiAoY2IpIGxpc3QucHVzaChjYik7XG4gICAgICB9XG5cbiAgICAgIGRpc2Nvbm5lY3RzLnNldCh0aGlzLCBsaXN0KTtcbiAgICB9XG5cbiAgICBkaXNjb25uZWN0ZWRDYWxsYmFjaygpIHtcbiAgICAgIGNvbnN0IGxpc3QgPSBkaXNjb25uZWN0cy5nZXQodGhpcyk7XG4gICAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgbGlzdC5sZW5ndGg7IGluZGV4ICs9IDEpIHtcbiAgICAgICAgbGlzdFtpbmRleF0oKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBjb21waWxlKEh5YnJpZCwgaHlicmlkc09yQ29uc3RydWN0b3IpO1xuICBjdXN0b21FbGVtZW50cy5kZWZpbmUodGFnTmFtZSwgSHlicmlkKTtcblxuICByZXR1cm4gSHlicmlkO1xufVxuXG5mdW5jdGlvbiBkZWZpbmVNYXAoZWxlbWVudHMpIHtcbiAgcmV0dXJuIE9iamVjdC5rZXlzKGVsZW1lbnRzKS5yZWR1Y2UoKGFjYywga2V5KSA9PiB7XG4gICAgY29uc3QgdGFnTmFtZSA9IHBhc2NhbFRvRGFzaChrZXkpO1xuICAgIGFjY1trZXldID0gZGVmaW5lRWxlbWVudCh0YWdOYW1lLCBlbGVtZW50c1trZXldKTtcblxuICAgIHJldHVybiBhY2M7XG4gIH0sIHt9KTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZGVmaW5lKC4uLmFyZ3MpIHtcbiAgaWYgKHR5cGVvZiBhcmdzWzBdID09PSAnb2JqZWN0Jykge1xuICAgIHJldHVybiBkZWZpbmVNYXAoYXJnc1swXSk7XG4gIH1cblxuICByZXR1cm4gZGVmaW5lRWxlbWVudCguLi5hcmdzKTtcbn1cbiJdfQ== | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9kZWZpbmUuanMiXSwibmFtZXMiOlsicHJvcGVydHkiLCJyZW5kZXIiLCJjYWNoZSIsInBhc2NhbFRvRGFzaCIsImRlZmVycmVkIiwicHJvY2VzcyIsImVudiIsIk5PREVfRU5WIiwiZSIsImRlZmF1bHRNZXRob2QiLCJob3N0IiwidmFsdWUiLCJjb21waWxlIiwiSHlicmlkIiwiZGVzY3JpcHRvcnMiLCJoeWJyaWRzIiwiY2FsbGJhY2tzIiwiT2JqZWN0Iiwia2V5cyIsImZvckVhY2giLCJrZXkiLCJkZXNjIiwidHlwZSIsImNvbmZpZyIsImdldCIsIkFycmF5IiwiaXNBcnJheSIsInNldCIsInVuZGVmaW5lZCIsImNvbm5lY3QiLCJvYnNlcnZlIiwiZGVmaW5lUHJvcGVydHkiLCJwcm90b3R5cGUiLCJuZXdWYWx1ZSIsImVudW1lcmFibGUiLCJjb25maWd1cmFibGUiLCJwdXNoIiwiaW52YWxpZGF0ZSIsInVwZGF0ZSIsIndhbGtJblNoYWRvdyIsIm5vZGUiLCJmbiIsImZyb20iLCJjaGlsZHJlbiIsImVsIiwic2hhZG93Um9vdCIsInVwZGF0ZVF1ZXVlIiwiTWFwIiwibGFzdEh5YnJpZHMiLCJzaXplIiwidGhlbiIsImRvY3VtZW50IiwiYm9keSIsImhhcyIsImNvbnN0cnVjdG9yIiwiZGlzY29ubmVjdGVkQ2FsbGJhY2siLCJjb25uZWN0ZWRDYWxsYmFjayIsImNsZWFyIiwiZGlzY29ubmVjdHMiLCJXZWFrTWFwIiwiZGVmaW5lRWxlbWVudCIsInRhZ05hbWUiLCJoeWJyaWRzT3JDb25zdHJ1Y3RvciIsIlR5cGVFcnJvciIsIkN1c3RvbUVsZW1lbnQiLCJ3aW5kb3ciLCJjdXN0b21FbGVtZW50cyIsImRlZmluZSIsIkVycm9yIiwibGlzdCIsImluZGV4IiwibGVuZ3RoIiwiY2IiLCJIVE1MRWxlbWVudCIsImRlZmluZU1hcCIsImVsZW1lbnRzIiwicmVkdWNlIiwiYWNjIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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QSxTQUFPQSxNQUFQO0FBQ0Q7O0FBRUQsU0FBUzZELFNBQVQsQ0FBbUJDLFFBQW5CLEVBQTZCO0FBQzNCLFNBQU8xRCxNQUFNLENBQUNDLElBQVAsQ0FBWXlELFFBQVosRUFBc0JDLE1BQXRCLENBQTZCLFVBQUNDLEdBQUQsRUFBTXpELEdBQU4sRUFBYztBQUNoRCxRQUFNeUMsT0FBTyxHQUFHMUQsWUFBWSxDQUFDaUIsR0FBRCxDQUE1QjtBQUNBeUQsSUFBQUEsR0FBRyxDQUFDekQsR0FBRCxDQUFILEdBQVd3QyxhQUFhLENBQUNDLE9BQUQsRUFBVWMsUUFBUSxDQUFDdkQsR0FBRCxDQUFsQixDQUF4QjtBQUVBLFdBQU95RCxHQUFQO0FBQ0QsR0FMTSxFQUtKLEVBTEksQ0FBUDtBQU1EOztBQUVELGVBQWUsU0FBU1YsTUFBVCxHQUF5QjtBQUN0QyxNQUFJLDhEQUFtQixRQUF2QixFQUFpQztBQUMvQixXQUFPTyxTQUFTLGtEQUFoQjtBQUNEOztBQUVELFNBQU9kLGFBQWEsTUFBYixtQkFBUDtBQUNEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHByb3BlcnR5IGZyb20gJy4vcHJvcGVydHknO1xuaW1wb3J0IHJlbmRlciBmcm9tICcuL3JlbmRlcic7XG5cbmltcG9ydCAqIGFzIGNhY2hlIGZyb20gJy4vY2FjaGUnO1xuaW1wb3J0IHsgcGFzY2FsVG9EYXNoLCBkZWZlcnJlZCB9IGZyb20gJy4vdXRpbHMnO1xuXG4vKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xudHJ5IHsgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgfSBjYXRjaChlKSB7IHZhciBwcm9jZXNzID0geyBlbnY6IHsgTk9ERV9FTlY6ICdwcm9kdWN0aW9uJyB9IH07IH0gLy8gZXNsaW50LWRpc2FibGUtbGluZVxuXG5jb25zdCBkZWZhdWx0TWV0aG9kID0gKGhvc3QsIHZhbHVlKSA9PiB2YWx1ZTtcblxuZnVuY3Rpb24gY29tcGlsZShIeWJyaWQsIGRlc2NyaXB0b3JzKSB7XG4gIEh5YnJpZC5oeWJyaWRzID0gZGVzY3JpcHRvcnM7XG4gIEh5YnJpZC5jYWxsYmFja3MgPSBbXTtcblxuICBPYmplY3Qua2V5cyhkZXNjcmlwdG9ycykuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgY29uc3QgZGVzYyA9IGRlc2NyaXB0b3JzW2tleV07XG4gICAgY29uc3QgdHlwZSA9IHR5cGVvZiBkZXNjO1xuXG4gICAgbGV0IGNvbmZpZztcblxuICAgIGlmICh0eXBlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBjb25maWcgPSBrZXkgPT09ICdyZW5kZXInID8gcmVuZGVyKGRlc2MpIDogeyBnZXQ6IGRlc2MgfTtcbiAgICB9IGVsc2UgaWYgKHR5cGUgIT09ICdvYmplY3QnIHx8IGRlc2MgPT09IG51bGwgfHwgKEFycmF5LmlzQXJyYXkoZGVzYykpKSB7XG4gICAgICBjb25maWcgPSBwcm9wZXJ0eShkZXNjKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uZmlnID0ge1xuICAgICAgICBnZXQ6IGRlc2MuZ2V0IHx8IGRlZmF1bHRNZXRob2QsXG4gICAgICAgIHNldDogZGVzYy5zZXQgfHwgKCFkZXNjLmdldCAmJiBkZWZhdWx0TWV0aG9kKSB8fCB1bmRlZmluZWQsXG4gICAgICAgIGNvbm5lY3Q6IGRlc2MuY29ubmVjdCxcbiAgICAgICAgb2JzZXJ2ZTogZGVzYy5vYnNlcnZlLFxuICAgICAgfTtcbiAgICB9XG5cbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoSHlicmlkLnByb3RvdHlwZSwga2V5LCB7XG4gICAgICBnZXQ6IGZ1bmN0aW9uIGdldCgpIHtcbiAgICAgICAgcmV0dXJuIGNhY2hlLmdldCh0aGlzLCBrZXksIGNvbmZpZy5nZXQpO1xuICAgICAgfSxcbiAgICAgIHNldDogY29uZmlnLnNldCAmJiBmdW5jdGlvbiBzZXQobmV3VmFsdWUpIHtcbiAgICAgICAgY2FjaGUuc2V0KHRoaXMsIGtleSwgY29uZmlnLnNldCwgbmV3VmFsdWUpO1xuICAgICAgfSxcbiAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICBjb25maWd1cmFibGU6IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicsXG4gICAgfSk7XG5cbiAgICBpZiAoY29uZmlnLm9ic2VydmUpIHtcbiAgICAgIEh5YnJpZC5jYWxsYmFja3MucHVzaChcbiAgICAgICAgKGhvc3QpID0+IGNhY2hlLm9ic2VydmUoaG9zdCwga2V5LCBjb25maWcuZ2V0LCBjb25maWcub2JzZXJ2ZSksXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChjb25maWcuY29ubmVjdCkge1xuICAgICAgSHlicmlkLmNhbGxiYWNrcy5wdXNoKFxuICAgICAgICAoaG9zdCkgPT4gY29uZmlnLmNvbm5lY3QoaG9zdCwga2V5LCAoKSA9PiB7IGNhY2hlLmludmFsaWRhdGUoaG9zdCwga2V5KTsgfSksXG4gICAgICApO1xuICAgIH1cbiAgfSk7XG59XG5cbmxldCB1cGRhdGU7XG4vKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgY29uc3Qgd2Fsa0luU2hhZG93ID0gKG5vZGUsIGZuKSA9PiB7XG4gICAgZm4obm9kZSk7XG5cbiAgICBBcnJheS5mcm9tKG5vZGUuY2hpbGRyZW4pXG4gICAgICAuZm9yRWFjaCgoZWwpID0+IHdhbGtJblNoYWRvdyhlbCwgZm4pKTtcblxuICAgIGlmIChub2RlLnNoYWRvd1Jvb3QpIHtcbiAgICAgIEFycmF5LmZyb20obm9kZS5zaGFkb3dSb290LmNoaWxkcmVuKVxuICAgICAgICAuZm9yRWFjaCgoZWwpID0+IHdhbGtJblNoYWRvdyhlbCwgZm4pKTtcbiAgICB9XG4gIH07XG5cbiAgY29uc3QgdXBkYXRlUXVldWUgPSBuZXcgTWFwKCk7XG4gIHVwZGF0ZSA9IChIeWJyaWQsIGxhc3RIeWJyaWRzKSA9PiB7XG4gICAgaWYgKCF1cGRhdGVRdWV1ZS5zaXplKSB7XG4gICAgICBkZWZlcnJlZC50aGVuKCgpID0+IHtcbiAgICAgICAgd2Fsa0luU2hhZG93KGRvY3VtZW50LmJvZHksIChub2RlKSA9PiB7XG4gICAgICAgICAgaWYgKHVwZGF0ZVF1ZXVlLmhhcyhub2RlLmNvbnN0cnVjdG9yKSkge1xuICAgICAgICAgICAgY29uc3QgaHlicmlkcyA9IHVwZGF0ZVF1ZXVlLmdldChub2RlLmNvbnN0cnVjdG9yKTtcbiAgICAgICAgICAgIG5vZGUuZGlzY29ubmVjdGVkQ2FsbGJhY2soKTtcblxuICAgICAgICAgICAgT2JqZWN0LmtleXMobm9kZS5jb25zdHJ1Y3Rvci5oeWJyaWRzKS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgICAgICAgICAgY2FjaGUuaW52YWxpZGF0ZShub2RlLCBrZXksIG5vZGUuY29uc3RydWN0b3IuaHlicmlkc1trZXldICE9PSBoeWJyaWRzW2tleV0pO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIG5vZGUuY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICB1cGRhdGVRdWV1ZS5jbGVhcigpO1xuICAgICAgfSk7XG4gICAgfVxuICAgIHVwZGF0ZVF1ZXVlLnNldChIeWJyaWQsIGxhc3RIeWJyaWRzKTtcbiAgfTtcbn1cblxuY29uc3QgZGlzY29ubmVjdHMgPSBuZXcgV2Vha01hcCgpO1xuXG5mdW5jdGlvbiBkZWZpbmVFbGVtZW50KHRhZ05hbWUsIGh5YnJpZHNPckNvbnN0cnVjdG9yKSB7XG4gIGNvbnN0IHR5cGUgPSB0eXBlb2YgaHlicmlkc09yQ29uc3RydWN0b3I7XG4gIGlmICh0eXBlICE9PSAnb2JqZWN0JyAmJiB0eXBlICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgdGhyb3cgVHlwZUVycm9yKGBTZWNvbmQgYXJndW1lbnQgbXVzdCBiZSBhbiBvYmplY3Qgb3IgYSBmdW5jdGlvbjogJHt0eXBlfWApO1xuICB9XG5cbiAgY29uc3QgQ3VzdG9tRWxlbWVudCA9IHdpbmRvdy5jdXN0b21FbGVtZW50cy5nZXQodGFnTmFtZSk7XG5cbiAgaWYgKHR5cGUgPT09ICdmdW5jdGlvbicpIHtcbiAgICBpZiAoQ3VzdG9tRWxlbWVudCAhPT0gaHlicmlkc09yQ29uc3RydWN0b3IpIHtcbiAgICAgIHJldHVybiB3aW5kb3cuY3VzdG9tRWxlbWVudHMuZGVmaW5lKHRhZ05hbWUsIGh5YnJpZHNPckNvbnN0cnVjdG9yKTtcbiAgICB9XG4gICAgcmV0dXJuIEN1c3RvbUVsZW1lbnQ7XG4gIH1cblxuICBpZiAoQ3VzdG9tRWxlbWVudCkge1xuICAgIGlmIChDdXN0b21FbGVtZW50Lmh5YnJpZHMgPT09IGh5YnJpZHNPckNvbnN0cnVjdG9yKSB7XG4gICAgICByZXR1cm4gQ3VzdG9tRWxlbWVudDtcbiAgICB9XG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgJiYgQ3VzdG9tRWxlbWVudC5oeWJyaWRzKSB7XG4gICAgICBPYmplY3Qua2V5cyhDdXN0b21FbGVtZW50Lmh5YnJpZHMpLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgICBkZWxldGUgQ3VzdG9tRWxlbWVudC5wcm90b3R5cGVba2V5XTtcbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCBsYXN0SHlicmlkcyA9IEN1c3RvbUVsZW1lbnQuaHlicmlkcztcblxuICAgICAgY29tcGlsZShDdXN0b21FbGVtZW50LCBoeWJyaWRzT3JDb25zdHJ1Y3Rvcik7XG4gICAgICB1cGRhdGUoQ3VzdG9tRWxlbWVudCwgbGFzdEh5YnJpZHMpO1xuXG4gICAgICByZXR1cm4gQ3VzdG9tRWxlbWVudDtcbiAgICB9XG5cbiAgICB0aHJvdyBFcnJvcihgRWxlbWVudCAnJHt0YWdOYW1lfScgYWxyZWFkeSBkZWZpbmVkYCk7XG4gIH1cblxuICBjbGFzcyBIeWJyaWQgZXh0ZW5kcyBIVE1MRWxlbWVudCB7XG4gICAgc3RhdGljIGdldCBuYW1lKCkgeyByZXR1cm4gdGFnTmFtZTsgfVxuXG4gICAgY29ubmVjdGVkQ2FsbGJhY2soKSB7XG4gICAgICBjb25zdCB7IGNhbGxiYWNrcyB9ID0gdGhpcy5jb25zdHJ1Y3RvcjtcbiAgICAgIGNvbnN0IGxpc3QgPSBbXTtcblxuICAgICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IGNhbGxiYWNrcy5sZW5ndGg7IGluZGV4ICs9IDEpIHtcbiAgICAgICAgY29uc3QgY2IgPSBjYWxsYmFja3NbaW5kZXhdKHRoaXMpO1xuICAgICAgICBpZiAoY2IpIGxpc3QucHVzaChjYik7XG4gICAgICB9XG5cbiAgICAgIGRpc2Nvbm5lY3RzLnNldCh0aGlzLCBsaXN0KTtcbiAgICB9XG5cbiAgICBkaXNjb25uZWN0ZWRDYWxsYmFjaygpIHtcbiAgICAgIGNvbnN0IGxpc3QgPSBkaXNjb25uZWN0cy5nZXQodGhpcyk7XG4gICAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgbGlzdC5sZW5ndGg7IGluZGV4ICs9IDEpIHtcbiAgICAgICAgbGlzdFtpbmRleF0oKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBjb21waWxlKEh5YnJpZCwgaHlicmlkc09yQ29uc3RydWN0b3IpO1xuICBjdXN0b21FbGVtZW50cy5kZWZpbmUodGFnTmFtZSwgSHlicmlkKTtcblxuICByZXR1cm4gSHlicmlkO1xufVxuXG5mdW5jdGlvbiBkZWZpbmVNYXAoZWxlbWVudHMpIHtcbiAgcmV0dXJuIE9iamVjdC5rZXlzKGVsZW1lbnRzKS5yZWR1Y2UoKGFjYywga2V5KSA9PiB7XG4gICAgY29uc3QgdGFnTmFtZSA9IHBhc2NhbFRvRGFzaChrZXkpO1xuICAgIGFjY1trZXldID0gZGVmaW5lRWxlbWVudCh0YWdOYW1lLCBlbGVtZW50c1trZXldKTtcblxuICAgIHJldHVybiBhY2M7XG4gIH0sIHt9KTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZGVmaW5lKC4uLmFyZ3MpIHtcbiAgaWYgKHR5cGVvZiBhcmdzWzBdID09PSAnb2JqZWN0Jykge1xuICAgIHJldHVybiBkZWZpbmVNYXAoYXJnc1swXSk7XG4gIH1cblxuICByZXR1cm4gZGVmaW5lRWxlbWVudCguLi5hcmdzKTtcbn1cbiJdfQ== |
@@ -282,3 +282,3 @@ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); } | ||
if (data.template || target.nodeType === Node.ELEMENT_NODE) removeTemplate(target); | ||
data.lastArgs = null; | ||
data.prevArgs = null; | ||
var fragment = document.importNode(applyShadyCSS(template, host.tagName).content, true); | ||
@@ -333,2 +333,5 @@ var renderWalker = createWalker(fragment); | ||
var prevArgs = data.prevArgs; | ||
data.prevArgs = args; | ||
for (var index = 0; index < data.markers.length; index += 1) { | ||
@@ -339,4 +342,4 @@ var _data$markers$index = _slicedToArray(data.markers[index], 2), | ||
if (!data.lastArgs || data.lastArgs[index] !== args[index]) { | ||
marker(host, _node, args[index], data.lastArgs ? data.lastArgs[index] : undefined); | ||
if (!prevArgs || prevArgs[index] !== args[index]) { | ||
marker(host, _node, args[index], prevArgs ? prevArgs[index] : undefined); | ||
} | ||
@@ -348,3 +351,3 @@ } | ||
if (host.shadowRoot) { | ||
if (data.lastArgs) { | ||
if (prevArgs) { | ||
shady.styleSubtree(host); | ||
@@ -357,6 +360,4 @@ } else { | ||
} | ||
data.lastArgs = args; | ||
}; | ||
} | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90ZW1wbGF0ZS9jb3JlLmpzIl0sIm5hbWVzIjpbInN0cmluZ2lmeUVsZW1lbnQiLCJzaGFkeUNTUyIsIklTX0lFIiwiZGF0YU1hcCIsInJlbW92ZVRlbXBsYXRlIiwicmVzb2x2ZVZhbHVlIiwicmVzb2x2ZVByb3BlcnR5IiwicHJvY2VzcyIsImVudiIsIk5PREVfRU5WIiwiZSIsIlRJTUVTVEFNUCIsIkRhdGUiLCJub3ciLCJnZXRQbGFjZWhvbGRlciIsImlkIiwiUExBQ0VIT0xERVJfUkVHRVhQX1RFWFQiLCJQTEFDRUhPTERFUl9SRUdFWFBfRVFVQUwiLCJSZWdFeHAiLCJQTEFDRUhPTERFUl9SRUdFWFBfQUxMIiwiQVRUUl9QUkVGSVgiLCJBVFRSX1JFR0VYUCIsInByZXBhcmVkVGVtcGxhdGVzIiwiV2Vha01hcCIsImFwcGx5U2hhZHlDU1MiLCJ0ZW1wbGF0ZSIsInRhZ05hbWUiLCJzaGFkeSIsIm1hcCIsImdldCIsIk1hcCIsInNldCIsImNsb25lIiwiZG9jdW1lbnQiLCJjcmVhdGVFbGVtZW50IiwiY29udGVudCIsImFwcGVuZENoaWxkIiwiY2xvbmVOb2RlIiwic3R5bGVzIiwicXVlcnlTZWxlY3RvckFsbCIsIkFycmF5IiwiZnJvbSIsImZvckVhY2giLCJzdHlsZSIsImNvdW50IiwiY2hpbGROb2RlcyIsImxlbmd0aCIsImkiLCJwYXJlbnROb2RlIiwiaW5zZXJ0QmVmb3JlIiwiY3JlYXRlVGV4dE5vZGUiLCJwcmVwYXJlVGVtcGxhdGUiLCJ0b0xvd2VyQ2FzZSIsImNyZWF0ZVNpZ25hdHVyZSIsInBhcnRzIiwic2lnbmF0dXJlIiwicmVkdWNlIiwiYWNjIiwicGFydCIsImluZGV4Iiwic2xpY2UiLCJqb2luIiwibWF0Y2giLCJyZXBsYWNlIiwiZ2V0UHJvcGVydHlOYW1lIiwic3RyaW5nIiwic3BsaXQiLCJwb3AiLCJyZXBsYWNlQ29tbWVudHMiLCJmcmFnbWVudCIsIml0ZXJhdG9yIiwiY3JlYXRlTm9kZUl0ZXJhdG9yIiwiTm9kZUZpbHRlciIsIlNIT1dfQ09NTUVOVCIsIm5vZGUiLCJuZXh0Tm9kZSIsInRlc3QiLCJ0ZXh0Q29udGVudCIsInJlbW92ZUNoaWxkIiwiY3JlYXRlSW50ZXJuYWxXYWxrZXIiLCJjb250ZXh0IiwiY3VycmVudE5vZGUiLCJ1bmRlZmluZWQiLCJuZXh0U2libGluZyIsImNyZWF0ZUV4dGVybmFsV2Fsa2VyIiwiY3JlYXRlVHJlZVdhbGtlciIsIlNIT1dfRUxFTUVOVCIsIlNIT1dfVEVYVCIsImNyZWF0ZVdhbGtlciIsIndpbmRvdyIsIlNoYWR5RE9NIiwiaW5Vc2UiLCJjb250YWluZXIiLCJjb21waWxlVGVtcGxhdGUiLCJyYXdQYXJ0cyIsImlzU1ZHIiwiaW5uZXJIVE1MIiwiY2hpbGRyZW4iLCJzdmdSb290IiwiZmlyc3RDaGlsZCIsImNvbXBpbGVXYWxrZXIiLCJjb21waWxlSW5kZXgiLCJub2RlVHlwZSIsIk5vZGUiLCJURVhUX05PREUiLCJ0ZXh0IiwicmVzdWx0cyIsInBsYWNlaG9sZGVyIiwiYmVmb3JlIiwibmV4dCIsInB1c2giLCJlcXVhbCIsIkVMRU1FTlRfTk9ERSIsImF0dHJpYnV0ZXMiLCJhdHRyIiwidmFsdWUiLCJ0cmltIiwibmFtZSIsInByb3BlcnR5TmFtZSIsInJlbW92ZUF0dHJpYnV0ZSIsInBhcnRpYWxOYW1lIiwiaG9zdCIsInRhcmdldCIsImF0dHJWYWx1ZSIsImRhdGEiLCJzZXRBdHRyaWJ1dGUiLCJ1cGRhdGVUZW1wbGF0ZUluc3RhbmNlIiwiYXJncyIsInR5cGUiLCJsYXN0QXJncyIsImltcG9ydE5vZGUiLCJyZW5kZXJXYWxrZXIiLCJjbG9uZWRQYXJ0cyIsInJlbmRlckluZGV4IiwiY3VycmVudFBhcnQiLCJzaGlmdCIsIm1hcmtlcnMiLCJpbmRleE9mIiwiY3VzdG9tRWxlbWVudHMiLCJFcnJvciIsInN0YXJ0Tm9kZSIsImVuZE5vZGUiLCJwcmV2aW91c0NoaWxkIiwiY2hpbGQiLCJtYXJrZXIiLCJzaGFkb3dSb290Iiwic3R5bGVTdWJ0cmVlIiwic3R5bGVF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LEdBQUdpRSxJQUFJLENBQUNZLE9BQUwsQ0FBYTFGLE1BQXpDLEVBQWlEYSxLQUFLLElBQUksQ0FBMUQsRUFBNkQ7QUFBQSwrQ0FDcENpRSxJQUFJLENBQUNZLE9BQUwsQ0FBYTdFLEtBQWIsQ0FEb0M7QUFBQSxVQUNwRGUsS0FEb0Q7QUFBQSxVQUM5Q3NFLE1BRDhDOztBQUUzRCxVQUFJLENBQUNwQixJQUFJLENBQUNLLFFBQU4sSUFBa0JMLElBQUksQ0FBQ0ssUUFBTCxDQUFjdEUsS0FBZCxNQUF5Qm9FLElBQUksQ0FBQ3BFLEtBQUQsQ0FBbkQsRUFBNEQ7QUFDMURxRixRQUFBQSxNQUFNLENBQUN2QixJQUFELEVBQU8vQyxLQUFQLEVBQWFxRCxJQUFJLENBQUNwRSxLQUFELENBQWpCLEVBQTBCaUUsSUFBSSxDQUFDSyxRQUFMLEdBQWdCTCxJQUFJLENBQUNLLFFBQUwsQ0FBY3RFLEtBQWQsQ0FBaEIsR0FBdUN1QixTQUFqRSxDQUFOO0FBQ0Q7QUFDRjs7QUFFRCxRQUFJd0MsTUFBTSxDQUFDcEIsUUFBUCxLQUFvQkMsSUFBSSxDQUFDQyxTQUE3QixFQUF3QztBQUN0Q3ZHLE1BQUFBLFFBQVEsQ0FBQyxVQUFDMEIsS0FBRCxFQUFXO0FBQ2xCLFlBQUk4RixJQUFJLENBQUN3QixVQUFULEVBQXFCO0FBQ25CLGNBQUlyQixJQUFJLENBQUNLLFFBQVQsRUFBbUI7QUFDakJ0RyxZQUFBQSxLQUFLLENBQUN1SCxZQUFOLENBQW1CekIsSUFBbkI7QUFDRCxXQUZELE1BRU87QUFDTDlGLFlBQUFBLEtBQUssQ0FBQ3dILFlBQU4sQ0FBbUIxQixJQUFuQjtBQUNEO0FBQ0Y7QUFDRixPQVJPLENBQVI7QUFTRDs7QUFFREcsSUFBQUEsSUFBSSxDQUFDSyxRQUFMLEdBQWdCRixJQUFoQjtBQUNELEdBakZEO0FBa0ZEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgc3RyaW5naWZ5RWxlbWVudCwgc2hhZHlDU1MsIElTX0lFIH0gZnJvbSAnLi4vdXRpbHMnO1xuaW1wb3J0IHsgZGF0YU1hcCwgcmVtb3ZlVGVtcGxhdGUgfSBmcm9tICcuL3V0aWxzJztcblxuaW1wb3J0IHJlc29sdmVWYWx1ZSBmcm9tICcuL3Jlc29sdmVycy92YWx1ZSc7XG5pbXBvcnQgcmVzb2x2ZVByb3BlcnR5IGZyb20gJy4vcmVzb2x2ZXJzL3Byb3BlcnR5JztcblxuLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbnRyeSB7IHByb2Nlc3MuZW52Lk5PREVfRU5WIH0gY2F0Y2goZSkgeyB2YXIgcHJvY2VzcyA9IHsgZW52OiB7IE5PREVfRU5WOiAncHJvZHVjdGlvbicgfSB9OyB9IC8vIGVzbGludC1kaXNhYmxlLWxpbmVcblxuY29uc3QgVElNRVNUQU1QID0gRGF0ZS5ub3coKTtcblxuZXhwb3J0IGNvbnN0IGdldFBsYWNlaG9sZGVyID0gKGlkID0gMCkgPT4gYHt7aC0ke1RJTUVTVEFNUH0tJHtpZH19fWA7XG5cbmNvbnN0IFBMQUNFSE9MREVSX1JFR0VYUF9URVhUID0gZ2V0UGxhY2Vob2xkZXIoJyhcXFxcZCspJyk7XG5jb25zdCBQTEFDRUhPTERFUl9SRUdFWFBfRVFVQUwgPSBuZXcgUmVnRXhwKGBeJHtQTEFDRUhPTERFUl9SRUdFWFBfVEVYVH0kYCk7XG5jb25zdCBQTEFDRUhPTERFUl9SRUdFWFBfQUxMID0gbmV3IFJlZ0V4cChQTEFDRUhPTERFUl9SRUdFWFBfVEVYVCwgJ2cnKTtcblxuY29uc3QgQVRUUl9QUkVGSVggPSBgLS0ke1RJTUVTVEFNUH0tLWA7XG5jb25zdCBBVFRSX1JFR0VYUCA9IG5ldyBSZWdFeHAoQVRUUl9QUkVGSVgsICdnJyk7XG5cbmNvbnN0IHByZXBhcmVkVGVtcGxhdGVzID0gbmV3IFdlYWtNYXAoKTtcblxuLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbmZ1bmN0aW9uIGFwcGx5U2hhZHlDU1ModGVtcGxhdGUsIHRhZ05hbWUpIHtcbiAgaWYgKCF0YWdOYW1lKSByZXR1cm4gdGVtcGxhdGU7XG5cbiAgcmV0dXJuIHNoYWR5Q1NTKChzaGFkeSkgPT4ge1xuICAgIGxldCBtYXAgPSBwcmVwYXJlZFRlbXBsYXRlcy5nZXQodGVtcGxhdGUpO1xuICAgIGlmICghbWFwKSB7XG4gICAgICBtYXAgPSBuZXcgTWFwKCk7XG4gICAgICBwcmVwYXJlZFRlbXBsYXRlcy5zZXQodGVtcGxhdGUsIG1hcCk7XG4gICAgfVxuXG4gICAgbGV0IGNsb25lID0gbWFwLmdldCh0YWdOYW1lKTtcblxuICAgIGlmICghY2xvbmUpIHtcbiAgICAgIGNsb25lID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGVtcGxhdGUnKTtcbiAgICAgIGNsb25lLmNvbnRlbnQuYXBwZW5kQ2hpbGQodGVtcGxhdGUuY29udGVudC5jbG9uZU5vZGUodHJ1ZSkpO1xuXG4gICAgICBtYXAuc2V0KHRhZ05hbWUsIGNsb25lKTtcblxuICAgICAgY29uc3Qgc3R5bGVzID0gY2xvbmUuY29udGVudC5xdWVyeVNlbGVjdG9yQWxsKCdzdHlsZScpO1xuXG4gICAgICBBcnJheS5mcm9tKHN0eWxlcykuZm9yRWFjaCgoc3R5bGUpID0+IHtcbiAgICAgICAgY29uc3QgY291bnQgPSBzdHlsZS5jaGlsZE5vZGVzLmxlbmd0aCArIDE7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY291bnQ7IGkgKz0gMSkge1xuICAgICAgICAgIHN0eWxlLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGdldFBsYWNlaG9sZGVyKCkpLCBzdHlsZSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgICBzaGFkeS5wcmVwYXJlVGVtcGxhdGUoY2xvbmUsIHRhZ05hbWUudG9Mb3dlckNhc2UoKSk7XG4gICAgfVxuICAgIHJldHVybiBjbG9uZTtcbiAgfSwgdGVtcGxhdGUpO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVTaWduYXR1cmUocGFydHMsIHN0eWxlcykge1xuICBsZXQgc2lnbmF0dXJlID0gcGFydHMucmVkdWNlKChhY2MsIHBhcnQsIGluZGV4KSA9PiB7XG4gICAgaWYgKGluZGV4ID09PSAwKSB7XG4gICAgICByZXR1cm4gcGFydDtcbiAgICB9XG5cbiAgICBpZiAocGFydHMuc2xpY2UoaW5kZXgpLmpvaW4oJycpLm1hdGNoKC9eXFxzKjxcXC9cXHMqKHRhYmxlfHRyfHRoZWFkfHRib2R5fHRmb290fGNvbGdyb3VwKT4vKSkge1xuICAgICAgcmV0dXJuIGAke2FjY308IS0tJHtnZXRQbGFjZWhvbGRlcihpbmRleCAtIDEpfS0tPiR7cGFydH1gO1xuICAgIH1cbiAgICByZXR1cm4gYWNjICsgZ2V0UGxhY2Vob2xkZXIoaW5kZXggLSAxKSArIHBhcnQ7XG4gIH0sICcnKTtcblxuICBpZiAoc3R5bGVzKSB7XG4gICAgc2lnbmF0dXJlICs9IGA8c3R5bGU+XFxuJHtzdHlsZXMuam9pbignXFxuLyotLS0tLS0qL1xcbicpfVxcbjwvc3R5bGU+YDtcbiAgfVxuXG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuICBpZiAoSVNfSUUpIHtcbiAgICByZXR1cm4gc2lnbmF0dXJlLnJlcGxhY2UoXG4gICAgICAvc3R5bGVcXHMqPVxccyooW1wiXVteXCJdK1tcIl18WyddW14nXStbJ118W15cXHNcIic8Pi9dKykvZyxcbiAgICAgIChtYXRjaCkgPT4gYCR7QVRUUl9QUkVGSVh9JHttYXRjaH1gLFxuICAgICk7XG4gIH1cblxuICByZXR1cm4gc2lnbmF0dXJlO1xufVxuXG5mdW5jdGlvbiBnZXRQcm9wZXJ0eU5hbWUoc3RyaW5nKSB7XG4gIHJldHVybiBzdHJpbmcucmVwbGFjZSgvXFxzKj1cXHMqWydcIl0qJC9nLCAnJykuc3BsaXQoJyAnKS5wb3AoKTtcbn1cblxuZnVuY3Rpb24gcmVwbGFjZUNvbW1lbnRzKGZyYWdtZW50KSB7XG4gIGNvbnN0IGl0ZXJhdG9yID0gZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZyYWdtZW50LCBOb2RlRmlsdGVyLlNIT1dfQ09NTUVOVCwgbnVsbCwgZmFsc2UpO1xuICBsZXQgbm9kZTtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbmQtYXNzaWduXG4gIHdoaWxlIChub2RlID0gaXRlcmF0b3IubmV4dE5vZGUoKSkge1xuICAgIGlmIChQTEFDRUhPTERFUl9SRUdFWFBfRVFVQUwudGVzdChub2RlLnRleHRDb250ZW50KSkge1xuICAgICAgbm9kZS5wYXJlbnROb2RlLmluc2VydEJlZm9yZShkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShub2RlLnRleHRDb250ZW50KSwgbm9kZSk7XG4gICAgICBub2RlLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQobm9kZSk7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVJbnRlcm5hbFdhbGtlcihjb250ZXh0KSB7XG4gIGxldCBub2RlO1xuXG4gIHJldHVybiB7XG4gICAgZ2V0IGN1cnJlbnROb2RlKCkgeyByZXR1cm4gbm9kZTsgfSxcbiAgICBuZXh0Tm9kZSgpIHtcbiAgICAgIGlmIChub2RlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgbm9kZSA9IGNvbnRleHQuY2hpbGROb2Rlc1swXTtcbiAgICAgIH0gZWxzZSBpZiAobm9kZS5jaGlsZE5vZGVzLmxlbmd0aCkge1xuICAgICAgICBub2RlID0gbm9kZS5jaGlsZE5vZGVzWzBdO1xuICAgICAgfSBlbHNlIGlmIChub2RlLm5leHRTaWJsaW5nKSB7XG4gICAgICAgIG5vZGUgPSBub2RlLm5leHRTaWJsaW5nO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbGV0IHBhcmVudE5vZGUgPSBub2RlLnBhcmVudE5vZGU7XG4gICAgICAgIG5vZGUgPSBwYXJlbnROb2RlLm5leHRTaWJsaW5nO1xuXG4gICAgICAgIHdoaWxlICghbm9kZSAmJiBwYXJlbnROb2RlICE9PSBjb250ZXh0KSB7XG4gICAgICAgICAgcGFyZW50Tm9kZSA9IHBhcmVudE5vZGUucGFyZW50Tm9kZTtcbiAgICAgICAgICBub2RlID0gcGFyZW50Tm9kZS5uZXh0U2libGluZztcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gISFub2RlO1xuICAgIH0sXG4gIH07XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUV4dGVybmFsV2Fsa2VyKGNvbnRleHQpIHtcbiAgcmV0dXJuIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoXG4gICAgY29udGV4dCxcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tYml0d2lzZVxuICAgIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX1RFWFQsXG4gICAgbnVsbCxcbiAgICBmYWxzZSxcbiAgKTtcbn1cblxuLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbmNvbnN0IGNyZWF0ZVdhbGtlciA9IHR5cGVvZiB3aW5kb3cuU2hhZHlET00gPT09ICdvYmplY3QnICYmIHdpbmRvdy5TaGFkeURPTS5pblVzZSA/IGNyZWF0ZUludGVybmFsV2Fsa2VyIDogY3JlYXRlRXh0ZXJuYWxXYWxrZXI7XG5cbmNvbnN0IGNvbnRhaW5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuZXhwb3J0IGZ1bmN0aW9uIGNvbXBpbGVUZW1wbGF0ZShyYXdQYXJ0cywgaXNTVkcsIHN0eWxlcykge1xuICBjb25zdCB0ZW1wbGF0ZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RlbXBsYXRlJyk7XG4gIGNvbnN0IHBhcnRzID0gW107XG5cbiAgbGV0IHNpZ25hdHVyZSA9IGNyZWF0ZVNpZ25hdHVyZShyYXdQYXJ0cywgc3R5bGVzKTtcbiAgaWYgKGlzU1ZHKSBzaWduYXR1cmUgPSBgPHN2Zz4ke3NpZ25hdHVyZX08L3N2Zz5gO1xuXG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuICBpZiAoSVNfSUUpIHtcbiAgICB0ZW1wbGF0ZS5pbm5lckhUTUwgPSBzaWduYXR1cmU7XG4gIH0gZWxzZSB7XG4gICAgY29udGFpbmVyLmlubmVySFRNTCA9IGA8dGVtcGxhdGU+JHtzaWduYXR1cmV9PC90ZW1wbGF0ZT5gO1xuICAgIHRlbXBsYXRlLmNvbnRlbnQuYXBwZW5kQ2hpbGQoY29udGFpbmVyLmNoaWxkcmVuWzBdLmNvbnRlbnQpO1xuICB9XG5cbiAgaWYgKGlzU1ZHKSB7XG4gICAgY29uc3Qgc3ZnUm9vdCA9IHRlbXBsYXRlLmNvbnRlbnQuZmlyc3RDaGlsZDtcbiAgICB0ZW1wbGF0ZS5jb250ZW50LnJlbW92ZUNoaWxkKHN2Z1Jvb3QpO1xuICAgIEFycmF5LmZyb20oc3ZnUm9vdC5jaGlsZE5vZGVzKS5mb3JFYWNoKChub2RlKSA9PiB0ZW1wbGF0ZS5jb250ZW50LmFwcGVuZENoaWxkKG5vZGUpKTtcbiAgfVxuXG4gIHJlcGxhY2VDb21tZW50cyh0ZW1wbGF0ZS5jb250ZW50KTtcblxuICBjb25zdCBjb21waWxlV2Fsa2VyID0gY3JlYXRlV2Fsa2VyKHRlbXBsYXRlLmNvbnRlbnQpO1xuICBsZXQgY29tcGlsZUluZGV4ID0gMDtcblxuICB3aGlsZSAoY29tcGlsZVdhbGtlci5uZXh0Tm9kZSgpKSB7XG4gICAgY29uc3Qgbm9kZSA9IGNvbXBpbGVXYWxrZXIuY3VycmVudE5vZGU7XG5cbiAgICBpZiAobm9kZS5ub2RlVHlwZSA9PT0gTm9kZS5URVhUX05PREUpIHtcbiAgICAgIGNvbnN0IHRleHQgPSBub2RlLnRleHRDb250ZW50O1xuXG4gICAgICBpZiAoIXRleHQubWF0Y2goUExBQ0VIT0xERVJfUkVHRVhQX0VRVUFMKSkge1xuICAgICAgICBjb25zdCByZXN1bHRzID0gdGV4dC5tYXRjaChQTEFDRUhPTERFUl9SRUdFWFBfQUxMKTtcbiAgICAgICAgaWYgKHJlc3VsdHMpIHtcbiAgICAgICAgICBsZXQgY3VycmVudE5vZGUgPSBub2RlO1xuICAgICAgICAgIHJlc3VsdHNcbiAgICAgICAgICAgIC5yZWR1Y2UoKGFjYywgcGxhY2Vob2xkZXIpID0+IHtcbiAgICAgICAgICAgICAgY29uc3QgW2JlZm9yZSwgbmV4dF0gPSBhY2MucG9wKCkuc3BsaXQocGxhY2Vob2xkZXIpO1xuICAgICAgICAgICAgICBpZiAoYmVmb3JlKSBhY2MucHVzaChiZWZvcmUpO1xuICAgICAgICAgICAgICBhY2MucHVzaChwbGFjZWhvbGRlcik7XG4gICAgICAgICAgICAgIGlmIChuZXh0KSBhY2MucHVzaChuZXh0KTtcbiAgICAgICAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgICAgICAgIH0sIFt0ZXh0XSlcbiAgICAgICAgICAgIC5mb3JFYWNoKChwYXJ0LCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICBpZiAoaW5kZXggPT09IDApIHtcbiAgICAgICAgICAgICAgICBjdXJyZW50Tm9kZS50ZXh0Q29udGVudCA9IHBhcnQ7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY3VycmVudE5vZGUgPSBjdXJyZW50Tm9kZS5wYXJlbnROb2RlXG4gICAgICAgICAgICAgICAgICAuaW5zZXJ0QmVmb3JlKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHBhcnQpLCBjdXJyZW50Tm9kZS5uZXh0U2libGluZyk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGVxdWFsID0gbm9kZS50ZXh0Q29udGVudC5tYXRjaChQTEFDRUhPTERFUl9SRUdFWFBfRVFVQUwpO1xuICAgICAgaWYgKGVxdWFsKSB7XG4gICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICAgIGlmICghSVNfSUUpIG5vZGUudGV4dENvbnRlbnQgPSAnJztcbiAgICAgICAgcGFydHNbZXF1YWxbMV1dID0gW2NvbXBpbGVJbmRleCwgcmVzb2x2ZVZhbHVlXTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi8gLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWxvbmVseS1pZlxuICAgICAgaWYgKG5vZGUubm9kZVR5cGUgPT09IE5vZGUuRUxFTUVOVF9OT0RFKSB7XG4gICAgICAgIEFycmF5LmZyb20obm9kZS5hdHRyaWJ1dGVzKS5mb3JFYWNoKChhdHRyKSA9PiB7XG4gICAgICAgICAgY29uc3QgdmFsdWUgPSBhdHRyLnZhbHVlLnRyaW0oKTtcbiAgICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgICAgICAgIGNvbnN0IG5hbWUgPSBJU19JRSA/IGF0dHIubmFtZS5yZXBsYWNlKEFUVFJfUFJFRklYLCAnJykgOiBhdHRyLm5hbWU7XG4gICAgICAgICAgY29uc3QgZXF1YWwgPSB2YWx1ZS5tYXRjaChQTEFDRUhPTERFUl9SRUdFWFBfRVFVQUwpO1xuICAgICAgICAgIGlmIChlcXVhbCkge1xuICAgICAgICAgICAgY29uc3QgcHJvcGVydHlOYW1lID0gZ2V0UHJvcGVydHlOYW1lKHJhd1BhcnRzW2VxdWFsWzFdXSk7XG4gICAgICAgICAgICBwYXJ0c1tlcXVhbFsxXV0gPSBbY29tcGlsZUluZGV4LCByZXNvbHZlUHJvcGVydHkobmFtZSwgcHJvcGVydHlOYW1lLCBpc1NWRyldO1xuICAgICAgICAgICAgbm9kZS5yZW1vdmVBdHRyaWJ1dGUoYXR0ci5uYW1lKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgcmVzdWx0cyA9IHZhbHVlLm1hdGNoKFBMQUNFSE9MREVSX1JFR0VYUF9BTEwpO1xuICAgICAgICAgICAgaWYgKHJlc3VsdHMpIHtcbiAgICAgICAgICAgICAgY29uc3QgcGFydGlhbE5hbWUgPSBgYXR0cl9fJHtuYW1lfWA7XG5cbiAgICAgICAgICAgICAgcmVzdWx0cy5mb3JFYWNoKChwbGFjZWhvbGRlciwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBbLCBpZF0gPSBwbGFjZWhvbGRlci5tYXRjaChQTEFDRUhPTERFUl9SRUdFWFBfRVFVQUwpO1xuICAgICAgICAgICAgICAgIHBhcnRzW2lkXSA9IFtjb21waWxlSW5kZXgsIChob3N0LCB0YXJnZXQsIGF0dHJWYWx1ZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IGRhdGFNYXAuZ2V0KHRhcmdldCwge30pO1xuICAgICAgICAgICAgICAgICAgZGF0YVtwYXJ0aWFsTmFtZV0gPSAoZGF0YVtwYXJ0aWFsTmFtZV0gfHwgdmFsdWUpLnJlcGxhY2UocGxhY2Vob2xkZXIsIGF0dHJWYWx1ZSA9PSBudWxsID8gJycgOiBhdHRyVmFsdWUpO1xuXG4gICAgICAgICAgICAgICAgICBpZiAoKHJlc3VsdHMubGVuZ3RoID09PSAxKSB8fCAoaW5kZXggKyAxID09PSByZXN1bHRzLmxlbmd0aCkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGFyZ2V0LnNldEF0dHJpYnV0ZShuYW1lLCBkYXRhW3BhcnRpYWxOYW1lXSk7XG4gICAgICAgICAgICAgICAgICAgIGRhdGFbcGFydGlhbE5hbWVdID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1dO1xuICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICBhdHRyLnZhbHVlID0gJyc7XG5cbiAgICAgICAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICAgICAgICAgICAgaWYgKElTX0lFICYmIG5hbWUgIT09IGF0dHIubmFtZSkge1xuICAgICAgICAgICAgICAgIG5vZGUucmVtb3ZlQXR0cmlidXRlKGF0dHIubmFtZSk7XG4gICAgICAgICAgICAgICAgbm9kZS5zZXRBdHRyaWJ1dGUobmFtZSwgJycpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb21waWxlSW5kZXggKz0gMTtcbiAgfVxuXG4gIHJldHVybiBmdW5jdGlvbiB1cGRhdGVUZW1wbGF0ZUluc3RhbmNlKGhvc3QsIHRhcmdldCwgYXJncykge1xuICAgIGNvbnN0IGRhdGEgPSBkYXRhTWFwLmdldCh0YXJnZXQsIHsgdHlwZTogJ2Z1bmN0aW9uJyB9KTtcblxuICAgIGlmICh0ZW1wbGF0ZSAhPT0gZGF0YS50ZW1wbGF0ZSkge1xuICAgICAgaWYgKGRhdGEudGVtcGxhdGUgfHwgdGFyZ2V0Lm5vZGVUeXBlID09PSBOb2RlLkVMRU1FTlRfTk9ERSkgcmVtb3ZlVGVtcGxhdGUodGFyZ2V0KTtcbiAgICAgIGRhdGEubGFzdEFyZ3MgPSBudWxsO1xuXG4gICAgICBjb25zdCBmcmFnbWVudCA9IGRvY3VtZW50LmltcG9ydE5vZGUoYXBwbHlTaGFkeUNTUyh0ZW1wbGF0ZSwgaG9zdC50YWdOYW1lKS5jb250ZW50LCB0cnVlKTtcblxuICAgICAgY29uc3QgcmVuZGVyV2Fsa2VyID0gY3JlYXRlV2Fsa2VyKGZyYWdtZW50KTtcbiAgICAgIGNvbnN0IGNsb25lZFBhcnRzID0gcGFydHMuc2xpY2UoMCk7XG5cbiAgICAgIGxldCByZW5kZXJJbmRleCA9IDA7XG4gICAgICBsZXQgY3VycmVudFBhcnQgPSBjbG9uZWRQYXJ0cy5zaGlmdCgpO1xuXG4gICAgICBjb25zdCBtYXJrZXJzID0gW107XG5cbiAgICAgIGRhdGEudGVtcGxhdGUgPSB0ZW1wbGF0ZTtcbiAgICAgIGRhdGEubWFya2VycyA9IG1hcmtlcnM7XG5cbiAgICAgIHdoaWxlIChyZW5kZXJXYWxrZXIubmV4dE5vZGUoKSkge1xuICAgICAgICBjb25zdCBub2RlID0gcmVuZGVyV2Fsa2VyLmN1cnJlbnROb2RlO1xuXG4gICAgICAgIGlmIChub2RlLm5vZGVUeXBlID09PSBOb2RlLlRFWFRfTk9ERSkge1xuICAgICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgICAgICAgaWYgKFBMQUNFSE9MREVSX1JFR0VYUF9FUVVBTC50ZXN0KG5vZGUudGV4dENvbnRlbnQpKSB7XG4gICAgICAgICAgICBub2RlLnRleHRDb250ZW50ID0gJyc7XG4gICAgICAgICAgfSBlbHNlIGlmIChJU19JRSkge1xuICAgICAgICAgICAgbm9kZS50ZXh0Q29udGVudCA9IG5vZGUudGV4dENvbnRlbnQucmVwbGFjZShBVFRSX1JFR0VYUCwgJycpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nICYmIG5vZGUubm9kZVR5cGUgPT09IE5vZGUuRUxFTUVOVF9OT0RFKSB7XG4gICAgICAgICAgaWYgKG5vZGUudGFnTmFtZS5pbmRleE9mKCctJykgPiAtMSAmJiAhY3VzdG9tRWxlbWVudHMuZ2V0KG5vZGUudGFnTmFtZS50b0xvd2VyQ2FzZSgpKSkge1xuICAgICAgICAgICAgdGhyb3cgRXJyb3IoYE1pc3NpbmcgJyR7c3RyaW5naWZ5RWxlbWVudChub2RlKX0nIGVsZW1lbnQgZGVmaW5pdGlvbiBpbiAnJHtzdHJpbmdpZnlFbGVtZW50KGhvc3QpfSdgKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB3aGlsZSAoY3VycmVudFBhcnQgJiYgY3VycmVudFBhcnRbMF0gPT09IHJlbmRlckluZGV4KSB7XG4gICAgICAgICAgbWFya2Vycy5wdXNoKFtub2RlLCBjdXJyZW50UGFydFsxXV0pO1xuICAgICAgICAgIGN1cnJlbnRQYXJ0ID0gY2xvbmVkUGFydHMuc2hpZnQoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJlbmRlckluZGV4ICs9IDE7XG4gICAgICB9XG5cbiAgICAgIGlmICh0YXJnZXQubm9kZVR5cGUgPT09IE5vZGUuVEVYVF9OT0RFKSB7XG4gICAgICAgIGRhdGEuc3RhcnROb2RlID0gZnJhZ21lbnQuY2hpbGROb2Rlc1swXTtcbiAgICAgICAgZGF0YS5lbmROb2RlID0gZnJhZ21lbnQuY2hpbGROb2Rlc1tmcmFnbWVudC5jaGlsZE5vZGVzLmxlbmd0aCAtIDFdO1xuXG4gICAgICAgIGxldCBwcmV2aW91c0NoaWxkID0gdGFyZ2V0O1xuXG4gICAgICAgIGxldCBjaGlsZCA9IGZyYWdtZW50LmNoaWxkTm9kZXNbMF07XG4gICAgICAgIHdoaWxlIChjaGlsZCkge1xuICAgICAgICAgIHRhcmdldC5wYXJlbnROb2RlLmluc2VydEJlZm9yZShjaGlsZCwgcHJldmlvdXNDaGlsZC5uZXh0U2libGluZyk7XG4gICAgICAgICAgcHJldmlvdXNDaGlsZCA9IGNoaWxkO1xuICAgICAgICAgIGNoaWxkID0gZnJhZ21lbnQuY2hpbGROb2Rlc1swXTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGFyZ2V0LmFwcGVuZENoaWxkKGZyYWdtZW50KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgZGF0YS5tYXJrZXJzLmxlbmd0aDsgaW5kZXggKz0gMSkge1xuICAgICAgY29uc3QgW25vZGUsIG1hcmtlcl0gPSBkYXRhLm1hcmtlcnNbaW5kZXhdO1xuICAgICAgaWYgKCFkYXRhLmxhc3RBcmdzIHx8IGRhdGEubGFzdEFyZ3NbaW5kZXhdICE9PSBhcmdzW2luZGV4XSkge1xuICAgICAgICBtYXJrZXIoaG9zdCwgbm9kZSwgYXJnc1tpbmRleF0sIGRhdGEubGFzdEFyZ3MgPyBkYXRhLmxhc3RBcmdzW2luZGV4XSA6IHVuZGVmaW5lZCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHRhcmdldC5ub2RlVHlwZSAhPT0gTm9kZS5URVhUX05PREUpIHtcbiAgICAgIHNoYWR5Q1NTKChzaGFkeSkgPT4ge1xuICAgICAgICBpZiAoaG9zdC5zaGFkb3dSb290KSB7XG4gICAgICAgICAgaWYgKGRhdGEubGFzdEFyZ3MpIHtcbiAgICAgICAgICAgIHNoYWR5LnN0eWxlU3VidHJlZShob3N0KTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgc2hhZHkuc3R5bGVFbGVtZW50KGhvc3QpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgZGF0YS5sYXN0QXJncyA9IGFyZ3M7XG4gIH07XG59XG4iXX0= | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90ZW1wbGF0ZS9jb3JlLmpzIl0sIm5hbWVzIjpbInN0cmluZ2lmeUVsZW1lbnQiLCJzaGFkeUNTUyIsIklTX0lFIiwiZGF0YU1hcCIsInJlbW92ZVRlbXBsYXRlIiwicmVzb2x2ZVZhbHVlIiwicmVzb2x2ZVByb3BlcnR5IiwicHJvY2VzcyIsImVudiIsIk5PREVfRU5WIiwiZSIsIlRJTUVTVEFNUCIsIkRhdGUiLCJub3ciLCJnZXRQbGFjZWhvbGRlciIsImlkIiwiUExBQ0VIT0xERVJfUkVHRVhQX1RFWFQiLCJQTEFDRUhPTERFUl9SRUdFWFBfRVFVQUwiLCJSZWdFeHAiLCJQTEFDRUhPTERFUl9SRUdFWFBfQUxMIiwiQVRUUl9QUkVGSVgiLCJBVFRSX1JFR0VYUCIsInByZXBhcmVkVGVtcGxhdGVzIiwiV2Vha01hcCIsImFwcGx5U2hhZHlDU1MiLCJ0ZW1wbGF0ZSIsInRhZ05hbWUiLCJzaGFkeSIsIm1hcCIsImdldCIsIk1hcCIsInNldCIsImNsb25lIiwiZG9jdW1lbnQiLCJjcmVhdGVFbGVtZW50IiwiY29udGVudCIsImFwcGVuZENoaWxkIiwiY2xvbmVOb2RlIiwic3R5bGVzIiwicXVlcnlTZWxlY3RvckFsbCIsIkFycmF5IiwiZnJvbSIsImZvckVhY2giLCJzdHlsZSIsImNvdW50IiwiY2hpbGROb2RlcyIsImxlbmd0aCIsImkiLCJwYXJlbnROb2RlIiwiaW5zZXJ0QmVmb3JlIiwiY3JlYXRlVGV4dE5vZGUiLCJwcmVwYXJlVGVtcGxhdGUiLCJ0b0xvd2VyQ2FzZSIsImNyZWF0ZVNpZ25hdHVyZSIsInBhcnRzIiwic2lnbmF0dXJlIiwicmVkdWNlIiwiYWNjIiwicGFydCIsImluZGV4Iiwic2xpY2UiLCJqb2luIiwibWF0Y2giLCJyZXBsYWNlIiwiZ2V0UHJvcGVydHlOYW1lIiwic3RyaW5nIiwic3BsaXQiLCJwb3AiLCJyZXBsYWNlQ29tbWVudHMiLCJmcmFnbWVudCIsIml0ZXJhdG9yIiwiY3JlYXRlTm9kZUl0ZXJhdG9yIiwiTm9kZUZpbHRlciIsIlNIT1dfQ09NTUVOVCIsIm5vZGUiLCJuZXh0Tm9kZSIsInRlc3QiLCJ0ZXh0Q29udGVudCIsInJlbW92ZUNoaWxkIiwiY3JlYXRlSW50ZXJuYWxXYWxrZXIiLCJjb250ZXh0IiwiY3VycmVudE5vZGUiLCJ1bmRlZmluZWQiLCJuZXh0U2libGluZyIsImNyZWF0ZUV4dGVybmFsV2Fsa2VyIiwiY3JlYXRlVHJlZVdhbGtlciIsIlNIT1dfRUxFTUVOVCIsIlNIT1dfVEVYVCIsImNyZWF0ZVdhbGtlciIsIndpbmRvdyIsIlNoYWR5RE9NIiwiaW5Vc2UiLCJjb250YWluZXIiLCJjb21waWxlVGVtcGxhdGUiLCJyYXdQYXJ0cyIsImlzU1ZHIiwiaW5uZXJIVE1MIiwiY2hpbGRyZW4iLCJzdmdSb290IiwiZmlyc3RDaGlsZCIsImNvbXBpbGVXYWxrZXIiLCJjb21waWxlSW5kZXgiLCJub2RlVHlwZSIsIk5vZGUiLCJURVhUX05PREUiLCJ0ZXh0IiwicmVzdWx0cyIsInBsYWNlaG9sZGVyIiwiYmVmb3JlIiwibmV4dCIsInB1c2giLCJlcXVhbCIsIkVMRU1FTlRfTk9ERSIsImF0dHJpYnV0ZXMiLCJhdHRyIiwidmFsdWUiLCJ0cmltIiwibmFtZSIsInByb3BlcnR5TmFtZSIsInJlbW92ZUF0dHJpYnV0ZSIsInBhcnRpYWxOYW1lIiwiaG9zdCIsInRhcmdldCIsImF0dHJWYWx1ZSIsImRhdGEiLCJzZXRBdHRyaWJ1dGUiLCJ1cGRhdGVUZW1wbGF0ZUluc3RhbmNlIiwiYXJncyIsInR5cGUiLCJwcmV2QXJncyIsImltcG9ydE5vZGUiLCJyZW5kZXJXYWxrZXIiLCJjbG9uZWRQYXJ0cyIsInJlbmRlckluZGV4IiwiY3VycmVudFBhcnQiLCJzaGlmdCIsIm1hcmtlcnMiLCJpbmRleE9mIiwiY3VzdG9tRWxlbWVudHMiLCJFcnJvciIsInN0YXJ0Tm9kZSIsImVuZE5vZGUiLCJwcmV2aW91c0NoaWxkIiwiY2hpbGQiLCJtYXJrZXIiLCJzaGFkb3dSb290Iiwic3R5bGVTdWJ0cmVlIiwic3R5bGVF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QUwsSUFBQUEsSUFBSSxDQUFDSyxRQUFMLEdBQWdCRixJQUFoQjs7QUFFQSxTQUFLLElBQUlwRSxLQUFLLEdBQUcsQ0FBakIsRUFBb0JBLEtBQUssR0FBR2lFLElBQUksQ0FBQ1ksT0FBTCxDQUFhMUYsTUFBekMsRUFBaURhLEtBQUssSUFBSSxDQUExRCxFQUE2RDtBQUFBLCtDQUNwQ2lFLElBQUksQ0FBQ1ksT0FBTCxDQUFhN0UsS0FBYixDQURvQztBQUFBLFVBQ3BEZSxLQURvRDtBQUFBLFVBQzlDc0UsTUFEOEM7O0FBRTNELFVBQUksQ0FBQ2YsUUFBRCxJQUFhQSxRQUFRLENBQUN0RSxLQUFELENBQVIsS0FBb0JvRSxJQUFJLENBQUNwRSxLQUFELENBQXpDLEVBQWtEO0FBQ2hEcUYsUUFBQUEsTUFBTSxDQUFDdkIsSUFBRCxFQUFPL0MsS0FBUCxFQUFhcUQsSUFBSSxDQUFDcEUsS0FBRCxDQUFqQixFQUEwQnNFLFFBQVEsR0FBR0EsUUFBUSxDQUFDdEUsS0FBRCxDQUFYLEdBQXFCdUIsU0FBdkQsQ0FBTjtBQUNEO0FBQ0Y7O0FBRUQsUUFBSXdDLE1BQU0sQ0FBQ3BCLFFBQVAsS0FBb0JDLElBQUksQ0FBQ0MsU0FBN0IsRUFBd0M7QUFDdEN2RyxNQUFBQSxRQUFRLENBQUMsVUFBQzBCLEtBQUQsRUFBVztBQUNsQixZQUFJOEYsSUFBSSxDQUFDd0IsVUFBVCxFQUFxQjtBQUNuQixjQUFJaEIsUUFBSixFQUFjO0FBQ1p0RyxZQUFBQSxLQUFLLENBQUN1SCxZQUFOLENBQW1CekIsSUFBbkI7QUFDRCxXQUZELE1BRU87QUFDTDlGLFlBQUFBLEtBQUssQ0FBQ3dILFlBQU4sQ0FBbUIxQixJQUFuQjtBQUNEO0FBQ0Y7QUFDRixPQVJPLENBQVI7QUFTRDtBQUNGLEdBbEZEO0FBbUZEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgc3RyaW5naWZ5RWxlbWVudCwgc2hhZHlDU1MsIElTX0lFIH0gZnJvbSAnLi4vdXRpbHMnO1xuaW1wb3J0IHsgZGF0YU1hcCwgcmVtb3ZlVGVtcGxhdGUgfSBmcm9tICcuL3V0aWxzJztcblxuaW1wb3J0IHJlc29sdmVWYWx1ZSBmcm9tICcuL3Jlc29sdmVycy92YWx1ZSc7XG5pbXBvcnQgcmVzb2x2ZVByb3BlcnR5IGZyb20gJy4vcmVzb2x2ZXJzL3Byb3BlcnR5JztcblxuLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbnRyeSB7IHByb2Nlc3MuZW52Lk5PREVfRU5WIH0gY2F0Y2goZSkgeyB2YXIgcHJvY2VzcyA9IHsgZW52OiB7IE5PREVfRU5WOiAncHJvZHVjdGlvbicgfSB9OyB9IC8vIGVzbGludC1kaXNhYmxlLWxpbmVcblxuY29uc3QgVElNRVNUQU1QID0gRGF0ZS5ub3coKTtcblxuZXhwb3J0IGNvbnN0IGdldFBsYWNlaG9sZGVyID0gKGlkID0gMCkgPT4gYHt7aC0ke1RJTUVTVEFNUH0tJHtpZH19fWA7XG5cbmNvbnN0IFBMQUNFSE9MREVSX1JFR0VYUF9URVhUID0gZ2V0UGxhY2Vob2xkZXIoJyhcXFxcZCspJyk7XG5jb25zdCBQTEFDRUhPTERFUl9SRUdFWFBfRVFVQUwgPSBuZXcgUmVnRXhwKGBeJHtQTEFDRUhPTERFUl9SRUdFWFBfVEVYVH0kYCk7XG5jb25zdCBQTEFDRUhPTERFUl9SRUdFWFBfQUxMID0gbmV3IFJlZ0V4cChQTEFDRUhPTERFUl9SRUdFWFBfVEVYVCwgJ2cnKTtcblxuY29uc3QgQVRUUl9QUkVGSVggPSBgLS0ke1RJTUVTVEFNUH0tLWA7XG5jb25zdCBBVFRSX1JFR0VYUCA9IG5ldyBSZWdFeHAoQVRUUl9QUkVGSVgsICdnJyk7XG5cbmNvbnN0IHByZXBhcmVkVGVtcGxhdGVzID0gbmV3IFdlYWtNYXAoKTtcblxuLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbmZ1bmN0aW9uIGFwcGx5U2hhZHlDU1ModGVtcGxhdGUsIHRhZ05hbWUpIHtcbiAgaWYgKCF0YWdOYW1lKSByZXR1cm4gdGVtcGxhdGU7XG5cbiAgcmV0dXJuIHNoYWR5Q1NTKChzaGFkeSkgPT4ge1xuICAgIGxldCBtYXAgPSBwcmVwYXJlZFRlbXBsYXRlcy5nZXQodGVtcGxhdGUpO1xuICAgIGlmICghbWFwKSB7XG4gICAgICBtYXAgPSBuZXcgTWFwKCk7XG4gICAgICBwcmVwYXJlZFRlbXBsYXRlcy5zZXQodGVtcGxhdGUsIG1hcCk7XG4gICAgfVxuXG4gICAgbGV0IGNsb25lID0gbWFwLmdldCh0YWdOYW1lKTtcblxuICAgIGlmICghY2xvbmUpIHtcbiAgICAgIGNsb25lID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGVtcGxhdGUnKTtcbiAgICAgIGNsb25lLmNvbnRlbnQuYXBwZW5kQ2hpbGQodGVtcGxhdGUuY29udGVudC5jbG9uZU5vZGUodHJ1ZSkpO1xuXG4gICAgICBtYXAuc2V0KHRhZ05hbWUsIGNsb25lKTtcblxuICAgICAgY29uc3Qgc3R5bGVzID0gY2xvbmUuY29udGVudC5xdWVyeVNlbGVjdG9yQWxsKCdzdHlsZScpO1xuXG4gICAgICBBcnJheS5mcm9tKHN0eWxlcykuZm9yRWFjaCgoc3R5bGUpID0+IHtcbiAgICAgICAgY29uc3QgY291bnQgPSBzdHlsZS5jaGlsZE5vZGVzLmxlbmd0aCArIDE7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY291bnQ7IGkgKz0gMSkge1xuICAgICAgICAgIHN0eWxlLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGdldFBsYWNlaG9sZGVyKCkpLCBzdHlsZSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgICBzaGFkeS5wcmVwYXJlVGVtcGxhdGUoY2xvbmUsIHRhZ05hbWUudG9Mb3dlckNhc2UoKSk7XG4gICAgfVxuICAgIHJldHVybiBjbG9uZTtcbiAgfSwgdGVtcGxhdGUpO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVTaWduYXR1cmUocGFydHMsIHN0eWxlcykge1xuICBsZXQgc2lnbmF0dXJlID0gcGFydHMucmVkdWNlKChhY2MsIHBhcnQsIGluZGV4KSA9PiB7XG4gICAgaWYgKGluZGV4ID09PSAwKSB7XG4gICAgICByZXR1cm4gcGFydDtcbiAgICB9XG5cbiAgICBpZiAocGFydHMuc2xpY2UoaW5kZXgpLmpvaW4oJycpLm1hdGNoKC9eXFxzKjxcXC9cXHMqKHRhYmxlfHRyfHRoZWFkfHRib2R5fHRmb290fGNvbGdyb3VwKT4vKSkge1xuICAgICAgcmV0dXJuIGAke2FjY308IS0tJHtnZXRQbGFjZWhvbGRlcihpbmRleCAtIDEpfS0tPiR7cGFydH1gO1xuICAgIH1cbiAgICByZXR1cm4gYWNjICsgZ2V0UGxhY2Vob2xkZXIoaW5kZXggLSAxKSArIHBhcnQ7XG4gIH0sICcnKTtcblxuICBpZiAoc3R5bGVzKSB7XG4gICAgc2lnbmF0dXJlICs9IGA8c3R5bGU+XFxuJHtzdHlsZXMuam9pbignXFxuLyotLS0tLS0qL1xcbicpfVxcbjwvc3R5bGU+YDtcbiAgfVxuXG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuICBpZiAoSVNfSUUpIHtcbiAgICByZXR1cm4gc2lnbmF0dXJlLnJlcGxhY2UoXG4gICAgICAvc3R5bGVcXHMqPVxccyooW1wiXVteXCJdK1tcIl18WyddW14nXStbJ118W15cXHNcIic8Pi9dKykvZyxcbiAgICAgIChtYXRjaCkgPT4gYCR7QVRUUl9QUkVGSVh9JHttYXRjaH1gLFxuICAgICk7XG4gIH1cblxuICByZXR1cm4gc2lnbmF0dXJlO1xufVxuXG5mdW5jdGlvbiBnZXRQcm9wZXJ0eU5hbWUoc3RyaW5nKSB7XG4gIHJldHVybiBzdHJpbmcucmVwbGFjZSgvXFxzKj1cXHMqWydcIl0qJC9nLCAnJykuc3BsaXQoJyAnKS5wb3AoKTtcbn1cblxuZnVuY3Rpb24gcmVwbGFjZUNvbW1lbnRzKGZyYWdtZW50KSB7XG4gIGNvbnN0IGl0ZXJhdG9yID0gZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZyYWdtZW50LCBOb2RlRmlsdGVyLlNIT1dfQ09NTUVOVCwgbnVsbCwgZmFsc2UpO1xuICBsZXQgbm9kZTtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbmQtYXNzaWduXG4gIHdoaWxlIChub2RlID0gaXRlcmF0b3IubmV4dE5vZGUoKSkge1xuICAgIGlmIChQTEFDRUhPTERFUl9SRUdFWFBfRVFVQUwudGVzdChub2RlLnRleHRDb250ZW50KSkge1xuICAgICAgbm9kZS5wYXJlbnROb2RlLmluc2VydEJlZm9yZShkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShub2RlLnRleHRDb250ZW50KSwgbm9kZSk7XG4gICAgICBub2RlLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQobm9kZSk7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVJbnRlcm5hbFdhbGtlcihjb250ZXh0KSB7XG4gIGxldCBub2RlO1xuXG4gIHJldHVybiB7XG4gICAgZ2V0IGN1cnJlbnROb2RlKCkgeyByZXR1cm4gbm9kZTsgfSxcbiAgICBuZXh0Tm9kZSgpIHtcbiAgICAgIGlmIChub2RlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgbm9kZSA9IGNvbnRleHQuY2hpbGROb2Rlc1swXTtcbiAgICAgIH0gZWxzZSBpZiAobm9kZS5jaGlsZE5vZGVzLmxlbmd0aCkge1xuICAgICAgICBub2RlID0gbm9kZS5jaGlsZE5vZGVzWzBdO1xuICAgICAgfSBlbHNlIGlmIChub2RlLm5leHRTaWJsaW5nKSB7XG4gICAgICAgIG5vZGUgPSBub2RlLm5leHRTaWJsaW5nO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbGV0IHBhcmVudE5vZGUgPSBub2RlLnBhcmVudE5vZGU7XG4gICAgICAgIG5vZGUgPSBwYXJlbnROb2RlLm5leHRTaWJsaW5nO1xuXG4gICAgICAgIHdoaWxlICghbm9kZSAmJiBwYXJlbnROb2RlICE9PSBjb250ZXh0KSB7XG4gICAgICAgICAgcGFyZW50Tm9kZSA9IHBhcmVudE5vZGUucGFyZW50Tm9kZTtcbiAgICAgICAgICBub2RlID0gcGFyZW50Tm9kZS5uZXh0U2libGluZztcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gISFub2RlO1xuICAgIH0sXG4gIH07XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUV4dGVybmFsV2Fsa2VyKGNvbnRleHQpIHtcbiAgcmV0dXJuIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoXG4gICAgY29udGV4dCxcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tYml0d2lzZVxuICAgIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX1RFWFQsXG4gICAgbnVsbCxcbiAgICBmYWxzZSxcbiAgKTtcbn1cblxuLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbmNvbnN0IGNyZWF0ZVdhbGtlciA9IHR5cGVvZiB3aW5kb3cuU2hhZHlET00gPT09ICdvYmplY3QnICYmIHdpbmRvdy5TaGFkeURPTS5pblVzZSA/IGNyZWF0ZUludGVybmFsV2Fsa2VyIDogY3JlYXRlRXh0ZXJuYWxXYWxrZXI7XG5cbmNvbnN0IGNvbnRhaW5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuZXhwb3J0IGZ1bmN0aW9uIGNvbXBpbGVUZW1wbGF0ZShyYXdQYXJ0cywgaXNTVkcsIHN0eWxlcykge1xuICBjb25zdCB0ZW1wbGF0ZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RlbXBsYXRlJyk7XG4gIGNvbnN0IHBhcnRzID0gW107XG5cbiAgbGV0IHNpZ25hdHVyZSA9IGNyZWF0ZVNpZ25hdHVyZShyYXdQYXJ0cywgc3R5bGVzKTtcbiAgaWYgKGlzU1ZHKSBzaWduYXR1cmUgPSBgPHN2Zz4ke3NpZ25hdHVyZX08L3N2Zz5gO1xuXG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuICBpZiAoSVNfSUUpIHtcbiAgICB0ZW1wbGF0ZS5pbm5lckhUTUwgPSBzaWduYXR1cmU7XG4gIH0gZWxzZSB7XG4gICAgY29udGFpbmVyLmlubmVySFRNTCA9IGA8dGVtcGxhdGU+JHtzaWduYXR1cmV9PC90ZW1wbGF0ZT5gO1xuICAgIHRlbXBsYXRlLmNvbnRlbnQuYXBwZW5kQ2hpbGQoY29udGFpbmVyLmNoaWxkcmVuWzBdLmNvbnRlbnQpO1xuICB9XG5cbiAgaWYgKGlzU1ZHKSB7XG4gICAgY29uc3Qgc3ZnUm9vdCA9IHRlbXBsYXRlLmNvbnRlbnQuZmlyc3RDaGlsZDtcbiAgICB0ZW1wbGF0ZS5jb250ZW50LnJlbW92ZUNoaWxkKHN2Z1Jvb3QpO1xuICAgIEFycmF5LmZyb20oc3ZnUm9vdC5jaGlsZE5vZGVzKS5mb3JFYWNoKChub2RlKSA9PiB0ZW1wbGF0ZS5jb250ZW50LmFwcGVuZENoaWxkKG5vZGUpKTtcbiAgfVxuXG4gIHJlcGxhY2VDb21tZW50cyh0ZW1wbGF0ZS5jb250ZW50KTtcblxuICBjb25zdCBjb21waWxlV2Fsa2VyID0gY3JlYXRlV2Fsa2VyKHRlbXBsYXRlLmNvbnRlbnQpO1xuICBsZXQgY29tcGlsZUluZGV4ID0gMDtcblxuICB3aGlsZSAoY29tcGlsZVdhbGtlci5uZXh0Tm9kZSgpKSB7XG4gICAgY29uc3Qgbm9kZSA9IGNvbXBpbGVXYWxrZXIuY3VycmVudE5vZGU7XG5cbiAgICBpZiAobm9kZS5ub2RlVHlwZSA9PT0gTm9kZS5URVhUX05PREUpIHtcbiAgICAgIGNvbnN0IHRleHQgPSBub2RlLnRleHRDb250ZW50O1xuXG4gICAgICBpZiAoIXRleHQubWF0Y2goUExBQ0VIT0xERVJfUkVHRVhQX0VRVUFMKSkge1xuICAgICAgICBjb25zdCByZXN1bHRzID0gdGV4dC5tYXRjaChQTEFDRUhPTERFUl9SRUdFWFBfQUxMKTtcbiAgICAgICAgaWYgKHJlc3VsdHMpIHtcbiAgICAgICAgICBsZXQgY3VycmVudE5vZGUgPSBub2RlO1xuICAgICAgICAgIHJlc3VsdHNcbiAgICAgICAgICAgIC5yZWR1Y2UoKGFjYywgcGxhY2Vob2xkZXIpID0+IHtcbiAgICAgICAgICAgICAgY29uc3QgW2JlZm9yZSwgbmV4dF0gPSBhY2MucG9wKCkuc3BsaXQocGxhY2Vob2xkZXIpO1xuICAgICAgICAgICAgICBpZiAoYmVmb3JlKSBhY2MucHVzaChiZWZvcmUpO1xuICAgICAgICAgICAgICBhY2MucHVzaChwbGFjZWhvbGRlcik7XG4gICAgICAgICAgICAgIGlmIChuZXh0KSBhY2MucHVzaChuZXh0KTtcbiAgICAgICAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgICAgICAgIH0sIFt0ZXh0XSlcbiAgICAgICAgICAgIC5mb3JFYWNoKChwYXJ0LCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICBpZiAoaW5kZXggPT09IDApIHtcbiAgICAgICAgICAgICAgICBjdXJyZW50Tm9kZS50ZXh0Q29udGVudCA9IHBhcnQ7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY3VycmVudE5vZGUgPSBjdXJyZW50Tm9kZS5wYXJlbnROb2RlXG4gICAgICAgICAgICAgICAgICAuaW5zZXJ0QmVmb3JlKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHBhcnQpLCBjdXJyZW50Tm9kZS5uZXh0U2libGluZyk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGVxdWFsID0gbm9kZS50ZXh0Q29udGVudC5tYXRjaChQTEFDRUhPTERFUl9SRUdFWFBfRVFVQUwpO1xuICAgICAgaWYgKGVxdWFsKSB7XG4gICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICAgIGlmICghSVNfSUUpIG5vZGUudGV4dENvbnRlbnQgPSAnJztcbiAgICAgICAgcGFydHNbZXF1YWxbMV1dID0gW2NvbXBpbGVJbmRleCwgcmVzb2x2ZVZhbHVlXTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi8gLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWxvbmVseS1pZlxuICAgICAgaWYgKG5vZGUubm9kZVR5cGUgPT09IE5vZGUuRUxFTUVOVF9OT0RFKSB7XG4gICAgICAgIEFycmF5LmZyb20obm9kZS5hdHRyaWJ1dGVzKS5mb3JFYWNoKChhdHRyKSA9PiB7XG4gICAgICAgICAgY29uc3QgdmFsdWUgPSBhdHRyLnZhbHVlLnRyaW0oKTtcbiAgICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgICAgICAgIGNvbnN0IG5hbWUgPSBJU19JRSA/IGF0dHIubmFtZS5yZXBsYWNlKEFUVFJfUFJFRklYLCAnJykgOiBhdHRyLm5hbWU7XG4gICAgICAgICAgY29uc3QgZXF1YWwgPSB2YWx1ZS5tYXRjaChQTEFDRUhPTERFUl9SRUdFWFBfRVFVQUwpO1xuICAgICAgICAgIGlmIChlcXVhbCkge1xuICAgICAgICAgICAgY29uc3QgcHJvcGVydHlOYW1lID0gZ2V0UHJvcGVydHlOYW1lKHJhd1BhcnRzW2VxdWFsWzFdXSk7XG4gICAgICAgICAgICBwYXJ0c1tlcXVhbFsxXV0gPSBbY29tcGlsZUluZGV4LCByZXNvbHZlUHJvcGVydHkobmFtZSwgcHJvcGVydHlOYW1lLCBpc1NWRyldO1xuICAgICAgICAgICAgbm9kZS5yZW1vdmVBdHRyaWJ1dGUoYXR0ci5uYW1lKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgcmVzdWx0cyA9IHZhbHVlLm1hdGNoKFBMQUNFSE9MREVSX1JFR0VYUF9BTEwpO1xuICAgICAgICAgICAgaWYgKHJlc3VsdHMpIHtcbiAgICAgICAgICAgICAgY29uc3QgcGFydGlhbE5hbWUgPSBgYXR0cl9fJHtuYW1lfWA7XG5cbiAgICAgICAgICAgICAgcmVzdWx0cy5mb3JFYWNoKChwbGFjZWhvbGRlciwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBbLCBpZF0gPSBwbGFjZWhvbGRlci5tYXRjaChQTEFDRUhPTERFUl9SRUdFWFBfRVFVQUwpO1xuICAgICAgICAgICAgICAgIHBhcnRzW2lkXSA9IFtjb21waWxlSW5kZXgsIChob3N0LCB0YXJnZXQsIGF0dHJWYWx1ZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IGRhdGFNYXAuZ2V0KHRhcmdldCwge30pO1xuICAgICAgICAgICAgICAgICAgZGF0YVtwYXJ0aWFsTmFtZV0gPSAoZGF0YVtwYXJ0aWFsTmFtZV0gfHwgdmFsdWUpLnJlcGxhY2UocGxhY2Vob2xkZXIsIGF0dHJWYWx1ZSA9PSBudWxsID8gJycgOiBhdHRyVmFsdWUpO1xuXG4gICAgICAgICAgICAgICAgICBpZiAoKHJlc3VsdHMubGVuZ3RoID09PSAxKSB8fCAoaW5kZXggKyAxID09PSByZXN1bHRzLmxlbmd0aCkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGFyZ2V0LnNldEF0dHJpYnV0ZShuYW1lLCBkYXRhW3BhcnRpYWxOYW1lXSk7XG4gICAgICAgICAgICAgICAgICAgIGRhdGFbcGFydGlhbE5hbWVdID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1dO1xuICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICBhdHRyLnZhbHVlID0gJyc7XG5cbiAgICAgICAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICAgICAgICAgICAgaWYgKElTX0lFICYmIG5hbWUgIT09IGF0dHIubmFtZSkge1xuICAgICAgICAgICAgICAgIG5vZGUucmVtb3ZlQXR0cmlidXRlKGF0dHIubmFtZSk7XG4gICAgICAgICAgICAgICAgbm9kZS5zZXRBdHRyaWJ1dGUobmFtZSwgJycpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb21waWxlSW5kZXggKz0gMTtcbiAgfVxuXG4gIHJldHVybiBmdW5jdGlvbiB1cGRhdGVUZW1wbGF0ZUluc3RhbmNlKGhvc3QsIHRhcmdldCwgYXJncykge1xuICAgIGNvbnN0IGRhdGEgPSBkYXRhTWFwLmdldCh0YXJnZXQsIHsgdHlwZTogJ2Z1bmN0aW9uJyB9KTtcblxuICAgIGlmICh0ZW1wbGF0ZSAhPT0gZGF0YS50ZW1wbGF0ZSkge1xuICAgICAgaWYgKGRhdGEudGVtcGxhdGUgfHwgdGFyZ2V0Lm5vZGVUeXBlID09PSBOb2RlLkVMRU1FTlRfTk9ERSkgcmVtb3ZlVGVtcGxhdGUodGFyZ2V0KTtcbiAgICAgIGRhdGEucHJldkFyZ3MgPSBudWxsO1xuXG4gICAgICBjb25zdCBmcmFnbWVudCA9IGRvY3VtZW50LmltcG9ydE5vZGUoYXBwbHlTaGFkeUNTUyh0ZW1wbGF0ZSwgaG9zdC50YWdOYW1lKS5jb250ZW50LCB0cnVlKTtcblxuICAgICAgY29uc3QgcmVuZGVyV2Fsa2VyID0gY3JlYXRlV2Fsa2VyKGZyYWdtZW50KTtcbiAgICAgIGNvbnN0IGNsb25lZFBhcnRzID0gcGFydHMuc2xpY2UoMCk7XG5cbiAgICAgIGxldCByZW5kZXJJbmRleCA9IDA7XG4gICAgICBsZXQgY3VycmVudFBhcnQgPSBjbG9uZWRQYXJ0cy5zaGlmdCgpO1xuXG4gICAgICBjb25zdCBtYXJrZXJzID0gW107XG5cbiAgICAgIGRhdGEudGVtcGxhdGUgPSB0ZW1wbGF0ZTtcbiAgICAgIGRhdGEubWFya2VycyA9IG1hcmtlcnM7XG5cbiAgICAgIHdoaWxlIChyZW5kZXJXYWxrZXIubmV4dE5vZGUoKSkge1xuICAgICAgICBjb25zdCBub2RlID0gcmVuZGVyV2Fsa2VyLmN1cnJlbnROb2RlO1xuXG4gICAgICAgIGlmIChub2RlLm5vZGVUeXBlID09PSBOb2RlLlRFWFRfTk9ERSkge1xuICAgICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgICAgICAgaWYgKFBMQUNFSE9MREVSX1JFR0VYUF9FUVVBTC50ZXN0KG5vZGUudGV4dENvbnRlbnQpKSB7XG4gICAgICAgICAgICBub2RlLnRleHRDb250ZW50ID0gJyc7XG4gICAgICAgICAgfSBlbHNlIGlmIChJU19JRSkge1xuICAgICAgICAgICAgbm9kZS50ZXh0Q29udGVudCA9IG5vZGUudGV4dENvbnRlbnQucmVwbGFjZShBVFRSX1JFR0VYUCwgJycpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nICYmIG5vZGUubm9kZVR5cGUgPT09IE5vZGUuRUxFTUVOVF9OT0RFKSB7XG4gICAgICAgICAgaWYgKG5vZGUudGFnTmFtZS5pbmRleE9mKCctJykgPiAtMSAmJiAhY3VzdG9tRWxlbWVudHMuZ2V0KG5vZGUudGFnTmFtZS50b0xvd2VyQ2FzZSgpKSkge1xuICAgICAgICAgICAgdGhyb3cgRXJyb3IoYE1pc3NpbmcgJyR7c3RyaW5naWZ5RWxlbWVudChub2RlKX0nIGVsZW1lbnQgZGVmaW5pdGlvbiBpbiAnJHtzdHJpbmdpZnlFbGVtZW50KGhvc3QpfSdgKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB3aGlsZSAoY3VycmVudFBhcnQgJiYgY3VycmVudFBhcnRbMF0gPT09IHJlbmRlckluZGV4KSB7XG4gICAgICAgICAgbWFya2Vycy5wdXNoKFtub2RlLCBjdXJyZW50UGFydFsxXV0pO1xuICAgICAgICAgIGN1cnJlbnRQYXJ0ID0gY2xvbmVkUGFydHMuc2hpZnQoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJlbmRlckluZGV4ICs9IDE7XG4gICAgICB9XG5cbiAgICAgIGlmICh0YXJnZXQubm9kZVR5cGUgPT09IE5vZGUuVEVYVF9OT0RFKSB7XG4gICAgICAgIGRhdGEuc3RhcnROb2RlID0gZnJhZ21lbnQuY2hpbGROb2Rlc1swXTtcbiAgICAgICAgZGF0YS5lbmROb2RlID0gZnJhZ21lbnQuY2hpbGROb2Rlc1tmcmFnbWVudC5jaGlsZE5vZGVzLmxlbmd0aCAtIDFdO1xuXG4gICAgICAgIGxldCBwcmV2aW91c0NoaWxkID0gdGFyZ2V0O1xuXG4gICAgICAgIGxldCBjaGlsZCA9IGZyYWdtZW50LmNoaWxkTm9kZXNbMF07XG4gICAgICAgIHdoaWxlIChjaGlsZCkge1xuICAgICAgICAgIHRhcmdldC5wYXJlbnROb2RlLmluc2VydEJlZm9yZShjaGlsZCwgcHJldmlvdXNDaGlsZC5uZXh0U2libGluZyk7XG4gICAgICAgICAgcHJldmlvdXNDaGlsZCA9IGNoaWxkO1xuICAgICAgICAgIGNoaWxkID0gZnJhZ21lbnQuY2hpbGROb2Rlc1swXTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGFyZ2V0LmFwcGVuZENoaWxkKGZyYWdtZW50KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBwcmV2QXJncyA9IGRhdGEucHJldkFyZ3M7XG4gICAgZGF0YS5wcmV2QXJncyA9IGFyZ3M7XG5cbiAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgZGF0YS5tYXJrZXJzLmxlbmd0aDsgaW5kZXggKz0gMSkge1xuICAgICAgY29uc3QgW25vZGUsIG1hcmtlcl0gPSBkYXRhLm1hcmtlcnNbaW5kZXhdO1xuICAgICAgaWYgKCFwcmV2QXJncyB8fCBwcmV2QXJnc1tpbmRleF0gIT09IGFyZ3NbaW5kZXhdKSB7XG4gICAgICAgIG1hcmtlcihob3N0LCBub2RlLCBhcmdzW2luZGV4XSwgcHJldkFyZ3MgPyBwcmV2QXJnc1tpbmRleF0gOiB1bmRlZmluZWQpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh0YXJnZXQubm9kZVR5cGUgIT09IE5vZGUuVEVYVF9OT0RFKSB7XG4gICAgICBzaGFkeUNTUygoc2hhZHkpID0+IHtcbiAgICAgICAgaWYgKGhvc3Quc2hhZG93Um9vdCkge1xuICAgICAgICAgIGlmIChwcmV2QXJncykge1xuICAgICAgICAgICAgc2hhZHkuc3R5bGVTdWJ0cmVlKGhvc3QpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBzaGFkeS5zdHlsZUVsZW1lbnQoaG9zdCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH07XG59XG4iXX0= |
function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } | ||
var eventMap = new WeakMap(); | ||
var targets = new WeakMap(); | ||
export default function resolveEventListener(eventType) { | ||
return function (host, target, value, lastValue) { | ||
if (lastValue) { | ||
target.removeEventListener(eventType, eventMap.get(lastValue), lastValue.options !== undefined ? lastValue.options : false); | ||
var eventMap = targets.get(target); | ||
if (eventMap) { | ||
target.removeEventListener(eventType, eventMap.get(lastValue), lastValue.options !== undefined ? lastValue.options : false); | ||
} | ||
} | ||
@@ -15,7 +19,17 @@ | ||
eventMap.set(value, value.bind(null, host)); | ||
target.addEventListener(eventType, eventMap.get(value), value.options !== undefined ? value.options : false); | ||
var _eventMap = targets.get(target); | ||
if (!_eventMap) { | ||
_eventMap = new WeakMap(); | ||
targets.set(target, _eventMap); | ||
} | ||
var callback = value.bind(null, host); | ||
_eventMap.set(value, callback); | ||
target.addEventListener(eventType, callback, value.options !== undefined ? value.options : false); | ||
} | ||
}; | ||
} | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90ZW1wbGF0ZS9yZXNvbHZlcnMvZXZlbnQuanMiXSwibmFtZXMiOlsiZXZlbnRNYXAiLCJXZWFrTWFwIiwicmVzb2x2ZUV2ZW50TGlzdGVuZXIiLCJldmVudFR5cGUiLCJob3N0IiwidGFyZ2V0IiwidmFsdWUiLCJsYXN0VmFsdWUiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwiZ2V0Iiwib3B0aW9ucyIsInVuZGVmaW5lZCIsIkVycm9yIiwic2V0IiwiYmluZCIsImFkZEV2ZW50TGlzdGVuZXIiXSwibWFwcGluZ3MiOiI7O0FBQUEsSUFBTUEsUUFBUSxHQUFHLElBQUlDLE9BQUosRUFBakI7QUFFQSxlQUFlLFNBQVNDLG9CQUFULENBQThCQyxTQUE5QixFQUF5QztBQUN0RCxTQUFPLFVBQUNDLElBQUQsRUFBT0MsTUFBUCxFQUFlQyxLQUFmLEVBQXNCQyxTQUF0QixFQUFvQztBQUN6QyxRQUFJQSxTQUFKLEVBQWU7QUFDYkYsTUFBQUEsTUFBTSxDQUFDRyxtQkFBUCxDQUNFTCxTQURGLEVBRUVILFFBQVEsQ0FBQ1MsR0FBVCxDQUFhRixTQUFiLENBRkYsRUFHRUEsU0FBUyxDQUFDRyxPQUFWLEtBQXNCQyxTQUF0QixHQUFrQ0osU0FBUyxDQUFDRyxPQUE1QyxHQUFzRCxLQUh4RDtBQUtEOztBQUVELFFBQUlKLEtBQUosRUFBVztBQUNULFVBQUksT0FBT0EsS0FBUCxLQUFpQixVQUFyQixFQUFpQztBQUMvQixjQUFNTSxLQUFLLHNEQUE4Q04sS0FBOUMsR0FBWDtBQUNEOztBQUVETixNQUFBQSxRQUFRLENBQUNhLEdBQVQsQ0FBYVAsS0FBYixFQUFvQkEsS0FBSyxDQUFDUSxJQUFOLENBQVcsSUFBWCxFQUFpQlYsSUFBakIsQ0FBcEI7QUFFQUMsTUFBQUEsTUFBTSxDQUFDVSxnQkFBUCxDQUNFWixTQURGLEVBRUVILFFBQVEsQ0FBQ1MsR0FBVCxDQUFhSCxLQUFiLENBRkYsRUFHRUEsS0FBSyxDQUFDSSxPQUFOLEtBQWtCQyxTQUFsQixHQUE4QkwsS0FBSyxDQUFDSSxPQUFwQyxHQUE4QyxLQUhoRDtBQUtEO0FBQ0YsR0F0QkQ7QUF1QkQiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBldmVudE1hcCA9IG5ldyBXZWFrTWFwKCk7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHJlc29sdmVFdmVudExpc3RlbmVyKGV2ZW50VHlwZSkge1xuICByZXR1cm4gKGhvc3QsIHRhcmdldCwgdmFsdWUsIGxhc3RWYWx1ZSkgPT4ge1xuICAgIGlmIChsYXN0VmFsdWUpIHtcbiAgICAgIHRhcmdldC5yZW1vdmVFdmVudExpc3RlbmVyKFxuICAgICAgICBldmVudFR5cGUsXG4gICAgICAgIGV2ZW50TWFwLmdldChsYXN0VmFsdWUpLFxuICAgICAgICBsYXN0VmFsdWUub3B0aW9ucyAhPT0gdW5kZWZpbmVkID8gbGFzdFZhbHVlLm9wdGlvbnMgOiBmYWxzZSxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICBpZiAodHlwZW9mIHZhbHVlICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHRocm93IEVycm9yKGBFdmVudCBsaXN0ZW5lciBtdXN0IGJlIGEgZnVuY3Rpb246ICR7dHlwZW9mIHZhbHVlfWApO1xuICAgICAgfVxuXG4gICAgICBldmVudE1hcC5zZXQodmFsdWUsIHZhbHVlLmJpbmQobnVsbCwgaG9zdCkpO1xuXG4gICAgICB0YXJnZXQuYWRkRXZlbnRMaXN0ZW5lcihcbiAgICAgICAgZXZlbnRUeXBlLFxuICAgICAgICBldmVudE1hcC5nZXQodmFsdWUpLFxuICAgICAgICB2YWx1ZS5vcHRpb25zICE9PSB1bmRlZmluZWQgPyB2YWx1ZS5vcHRpb25zIDogZmFsc2UsXG4gICAgICApO1xuICAgIH1cbiAgfTtcbn1cbiJdfQ== | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90ZW1wbGF0ZS9yZXNvbHZlcnMvZXZlbnQuanMiXSwibmFtZXMiOlsidGFyZ2V0cyIsIldlYWtNYXAiLCJyZXNvbHZlRXZlbnRMaXN0ZW5lciIsImV2ZW50VHlwZSIsImhvc3QiLCJ0YXJnZXQiLCJ2YWx1ZSIsImxhc3RWYWx1ZSIsImV2ZW50TWFwIiwiZ2V0IiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsIm9wdGlvbnMiLCJ1bmRlZmluZWQiLCJFcnJvciIsInNldCIsImNhbGxiYWNrIiwiYmluZCIsImFkZEV2ZW50TGlzdGVuZXIiXSwibWFwcGluZ3MiOiI7O0FBQUEsSUFBTUEsT0FBTyxHQUFHLElBQUlDLE9BQUosRUFBaEI7QUFFQSxlQUFlLFNBQVNDLG9CQUFULENBQThCQyxTQUE5QixFQUF5QztBQUN0RCxTQUFPLFVBQUNDLElBQUQsRUFBT0MsTUFBUCxFQUFlQyxLQUFmLEVBQXNCQyxTQUF0QixFQUFvQztBQUN6QyxRQUFJQSxTQUFKLEVBQWU7QUFDYixVQUFNQyxRQUFRLEdBQUdSLE9BQU8sQ0FBQ1MsR0FBUixDQUFZSixNQUFaLENBQWpCOztBQUNBLFVBQUlHLFFBQUosRUFBYztBQUNaSCxRQUFBQSxNQUFNLENBQUNLLG1CQUFQLENBQ0VQLFNBREYsRUFFRUssUUFBUSxDQUFDQyxHQUFULENBQWFGLFNBQWIsQ0FGRixFQUdFQSxTQUFTLENBQUNJLE9BQVYsS0FBc0JDLFNBQXRCLEdBQWtDTCxTQUFTLENBQUNJLE9BQTVDLEdBQXNELEtBSHhEO0FBS0Q7QUFDRjs7QUFFRCxRQUFJTCxLQUFKLEVBQVc7QUFDVCxVQUFJLE9BQU9BLEtBQVAsS0FBaUIsVUFBckIsRUFBaUM7QUFDL0IsY0FBTU8sS0FBSyxzREFBOENQLEtBQTlDLEdBQVg7QUFDRDs7QUFFRCxVQUFJRSxTQUFRLEdBQUdSLE9BQU8sQ0FBQ1MsR0FBUixDQUFZSixNQUFaLENBQWY7O0FBQ0EsVUFBSSxDQUFDRyxTQUFMLEVBQWU7QUFDYkEsUUFBQUEsU0FBUSxHQUFHLElBQUlQLE9BQUosRUFBWDtBQUNBRCxRQUFBQSxPQUFPLENBQUNjLEdBQVIsQ0FBWVQsTUFBWixFQUFvQkcsU0FBcEI7QUFDRDs7QUFFRCxVQUFNTyxRQUFRLEdBQUdULEtBQUssQ0FBQ1UsSUFBTixDQUFXLElBQVgsRUFBaUJaLElBQWpCLENBQWpCOztBQUNBSSxNQUFBQSxTQUFRLENBQUNNLEdBQVQsQ0FBYVIsS0FBYixFQUFvQlMsUUFBcEI7O0FBRUFWLE1BQUFBLE1BQU0sQ0FBQ1ksZ0JBQVAsQ0FDRWQsU0FERixFQUVFWSxRQUZGLEVBR0VULEtBQUssQ0FBQ0ssT0FBTixLQUFrQkMsU0FBbEIsR0FBOEJOLEtBQUssQ0FBQ0ssT0FBcEMsR0FBOEMsS0FIaEQ7QUFLRDtBQUNGLEdBaENEO0FBaUNEIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgdGFyZ2V0cyA9IG5ldyBXZWFrTWFwKCk7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHJlc29sdmVFdmVudExpc3RlbmVyKGV2ZW50VHlwZSkge1xuICByZXR1cm4gKGhvc3QsIHRhcmdldCwgdmFsdWUsIGxhc3RWYWx1ZSkgPT4ge1xuICAgIGlmIChsYXN0VmFsdWUpIHtcbiAgICAgIGNvbnN0IGV2ZW50TWFwID0gdGFyZ2V0cy5nZXQodGFyZ2V0KTtcbiAgICAgIGlmIChldmVudE1hcCkge1xuICAgICAgICB0YXJnZXQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcbiAgICAgICAgICBldmVudFR5cGUsXG4gICAgICAgICAgZXZlbnRNYXAuZ2V0KGxhc3RWYWx1ZSksXG4gICAgICAgICAgbGFzdFZhbHVlLm9wdGlvbnMgIT09IHVuZGVmaW5lZCA/IGxhc3RWYWx1ZS5vcHRpb25zIDogZmFsc2UsXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICBpZiAodHlwZW9mIHZhbHVlICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHRocm93IEVycm9yKGBFdmVudCBsaXN0ZW5lciBtdXN0IGJlIGEgZnVuY3Rpb246ICR7dHlwZW9mIHZhbHVlfWApO1xuICAgICAgfVxuXG4gICAgICBsZXQgZXZlbnRNYXAgPSB0YXJnZXRzLmdldCh0YXJnZXQpO1xuICAgICAgaWYgKCFldmVudE1hcCkge1xuICAgICAgICBldmVudE1hcCA9IG5ldyBXZWFrTWFwKCk7XG4gICAgICAgIHRhcmdldHMuc2V0KHRhcmdldCwgZXZlbnRNYXApO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBjYWxsYmFjayA9IHZhbHVlLmJpbmQobnVsbCwgaG9zdCk7XG4gICAgICBldmVudE1hcC5zZXQodmFsdWUsIGNhbGxiYWNrKTtcblxuICAgICAgdGFyZ2V0LmFkZEV2ZW50TGlzdGVuZXIoXG4gICAgICAgIGV2ZW50VHlwZSxcbiAgICAgICAgY2FsbGJhY2ssXG4gICAgICAgIHZhbHVlLm9wdGlvbnMgIT09IHVuZGVmaW5lZCA/IHZhbHVlLm9wdGlvbnMgOiBmYWxzZSxcbiAgICAgICk7XG4gICAgfVxuICB9O1xufVxuIl19 |
@@ -74,3 +74,2 @@ "use strict"; | ||
if (contextStack.size && contextStack.has(entry)) { | ||
contextStack.clear(); | ||
throw Error("Circular get invocation of the '".concat(key, "' property in '").concat((0, _utils.stringifyElement)(target), "'")); | ||
@@ -88,17 +87,17 @@ } | ||
}); | ||
contextStack.add(entry); | ||
if (entry.checksum && entry.checksum === calculateChecksum(entry)) { | ||
contextStack.delete(entry); | ||
return entry.value; | ||
} | ||
if (entry.deps && entry.deps.size) { | ||
entry.deps.forEach(function (depEntry) { | ||
if (depEntry.contexts) depEntry.contexts.delete(entry); | ||
}); | ||
try { | ||
contextStack.add(entry); | ||
if (entry.observed && entry.deps && entry.deps.size) { | ||
entry.deps.forEach(function (depEntry) { | ||
depEntry.contexts.delete(entry); | ||
}); | ||
} | ||
entry.deps = undefined; | ||
} | ||
try { | ||
var nextValue = getter(target, entry.value); | ||
@@ -115,3 +114,8 @@ | ||
} catch (e) { | ||
contextStack.clear(); | ||
entry.checksum = 0; | ||
contextStack.delete(entry); | ||
contextStack.forEach(function (context) { | ||
context.deps.delete(entry); | ||
if (context.observed) entry.contexts.delete(context); | ||
}); | ||
throw e; | ||
@@ -125,3 +129,2 @@ } | ||
if (contextStack.size && !force) { | ||
contextStack.clear(); | ||
throw Error("Try to set '".concat(key, "' of '").concat((0, _utils.stringifyElement)(target), "' in get call")); | ||
@@ -143,3 +146,2 @@ } | ||
if (contextStack.size) { | ||
contextStack.clear(); | ||
throw Error("Try to invalidate '".concat(key, "' in '").concat((0, _utils.stringifyElement)(target), "' get call")); | ||
@@ -181,2 +183,2 @@ } | ||
} | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jYWNoZS5qcyJdLCJuYW1lcyI6WyJlbnRyaWVzIiwiV2Vha01hcCIsImdldEVudHJ5IiwidGFyZ2V0Iiwia2V5IiwidGFyZ2V0TWFwIiwiZ2V0IiwiTWFwIiwic2V0IiwiZW50cnkiLCJ2YWx1ZSIsInVuZGVmaW5lZCIsImNvbnRleHRzIiwiZGVwcyIsInN0YXRlIiwiY2hlY2tzdW0iLCJvYnNlcnZlZCIsImNhbGN1bGF0ZUNoZWNrc3VtIiwiZm9yRWFjaCIsImRlcEVudHJ5IiwiZGlzcGF0Y2hEZWVwIiwiZW1pdHRlciIsImRpc3BhdGNoIiwiY29udGV4dFN0YWNrIiwiU2V0IiwiZ2V0dGVyIiwic2l6ZSIsImhhcyIsImNsZWFyIiwiRXJyb3IiLCJjb250ZXh0IiwiYWRkIiwiZGVsZXRlIiwibmV4dFZhbHVlIiwiZSIsInNldHRlciIsImZvcmNlIiwibmV3VmFsdWUiLCJpbnZhbGlkYXRlIiwiY2xlYXJWYWx1ZSIsIm9ic2VydmUiLCJmbiIsImxhc3RWYWx1ZSIsInVuc3Vic2NyaWJlIiwic3Vic2NyaWJlIiwidW5vYnNlcnZlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7Ozs7OztBQUVBLElBQU1BLE9BQU8sR0FBRyxJQUFJQyxPQUFKLEVBQWhCOztBQUNPLFNBQVNDLFFBQVQsQ0FBa0JDLE1BQWxCLEVBQTBCQyxHQUExQixFQUErQjtBQUNwQyxNQUFJQyxTQUFTLEdBQUdMLE9BQU8sQ0FBQ00sR0FBUixDQUFZSCxNQUFaLENBQWhCOztBQUNBLE1BQUksQ0FBQ0UsU0FBTCxFQUFnQjtBQUNkQSxJQUFBQSxTQUFTLEdBQUcsSUFBSUUsR0FBSixFQUFaO0FBQ0FQLElBQUFBLE9BQU8sQ0FBQ1EsR0FBUixDQUFZTCxNQUFaLEVBQW9CRSxTQUFwQjtBQUNEOztBQUVELE1BQUlJLEtBQUssR0FBR0osU0FBUyxDQUFDQyxHQUFWLENBQWNGLEdBQWQsQ0FBWjs7QUFFQSxNQUFJLENBQUNLLEtBQUwsRUFBWTtBQUNWQSxJQUFB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QUFNQyxXQUFXLEdBQUd0QixPQUFPLENBQUN1QixTQUFSLENBQWtCbkMsS0FBbEIsRUFBeUIsWUFBTTtBQUNqRCxRQUFNQyxLQUFLLEdBQUdKLEdBQUcsQ0FBQ0gsTUFBRCxFQUFTQyxHQUFULEVBQWNxQixNQUFkLENBQWpCOztBQUNBLFFBQUlmLEtBQUssS0FBS2dDLFNBQWQsRUFBeUI7QUFDdkJELE1BQUFBLEVBQUUsQ0FBQ3RDLE1BQUQsRUFBU08sS0FBVCxFQUFnQmdDLFNBQWhCLENBQUY7QUFDQUEsTUFBQUEsU0FBUyxHQUFHaEMsS0FBWjtBQUNEO0FBQ0YsR0FObUIsQ0FBcEI7QUFRQSxTQUFPLFNBQVNtQyxTQUFULEdBQXFCO0FBQzFCRixJQUFBQSxXQUFXO0FBQ1hsQyxJQUFBQSxLQUFLLENBQUNPLFFBQU4sR0FBaUIsS0FBakI7O0FBQ0EsUUFBSVAsS0FBSyxDQUFDSSxJQUFOLElBQWNKLEtBQUssQ0FBQ0ksSUFBTixDQUFXYSxJQUE3QixFQUFtQztBQUNqQ2pCLE1BQUFBLEtBQUssQ0FBQ0ksSUFBTixDQUFXSyxPQUFYLENBQW1CLFVBQUNDLFFBQUQsRUFBYztBQUMvQkEsUUFBQUEsUUFBUSxDQUFDUCxRQUFULENBQWtCb0IsTUFBbEIsQ0FBeUJ2QixLQUF6QjtBQUNELE9BRkQ7QUFHRDtBQUNGLEdBUkQ7QUFTRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHN0cmluZ2lmeUVsZW1lbnQgfSBmcm9tICcuL3V0aWxzJztcbmltcG9ydCAqIGFzIGVtaXR0ZXIgZnJvbSAnLi9lbWl0dGVyJztcblxuY29uc3QgZW50cmllcyA9IG5ldyBXZWFrTWFwKCk7XG5leHBvcnQgZnVuY3Rpb24gZ2V0RW50cnkodGFyZ2V0LCBrZXkpIHtcbiAgbGV0IHRhcmdldE1hcCA9IGVudHJpZXMuZ2V0KHRhcmdldCk7XG4gIGlmICghdGFyZ2V0TWFwKSB7XG4gICAgdGFyZ2V0TWFwID0gbmV3IE1hcCgpO1xuICAgIGVudHJpZXMuc2V0KHRhcmdldCwgdGFyZ2V0TWFwKTtcbiAgfVxuXG4gIGxldCBlbnRyeSA9IHRhcmdldE1hcC5nZXQoa2V5KTtcblxuICBpZiAoIWVudHJ5KSB7XG4gICAgZW50cnkgPSB7XG4gICAgICB0YXJnZXQsXG4gICAgICBrZXksXG4gICAgICB2YWx1ZTogdW5kZWZpbmVkLFxuICAgICAgY29udGV4dHM6IHVuZGVmaW5lZCxcbiAgICAgIGRlcHM6IHVuZGVmaW5lZCxcbiAgICAgIHN0YXRlOiAwLFxuICAgICAgY2hlY2tzdW06IDAsXG4gICAgICBvYnNlcnZlZDogZmFsc2UsXG4gICAgfTtcbiAgICB0YXJnZXRNYXAuc2V0KGtleSwgZW50cnkpO1xuICB9XG5cbiAgcmV0dXJuIGVudHJ5O1xufVxuXG5mdW5jdGlvbiBjYWxjdWxhdGVDaGVja3N1bShlbnRyeSkge1xuICBsZXQgY2hlY2tzdW0gPSBlbnRyeS5zdGF0ZTtcbiAgaWYgKGVudHJ5LmRlcHMpIHtcbiAgICBlbnRyeS5kZXBzLmZvckVhY2goKGRlcEVudHJ5KSA9PiB7XG4gICAgICBjaGVja3N1bSArPSBkZXBFbnRyeS5zdGF0ZTtcbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiBjaGVja3N1bTtcbn1cblxuZnVuY3Rpb24gZGlzcGF0Y2hEZWVwKGVudHJ5KSB7XG4gIGlmIChlbnRyeS5vYnNlcnZlZCkgZW1pdHRlci5kaXNwYXRjaChlbnRyeSk7XG4gIGlmIChlbnRyeS5jb250ZXh0cykgZW50cnkuY29udGV4dHMuZm9yRWFjaChkaXNwYXRjaERlZXApO1xufVxuXG5jb25zdCBjb250ZXh0U3RhY2sgPSBuZXcgU2V0KCk7XG5leHBvcnQgZnVuY3Rpb24gZ2V0KHRhcmdldCwga2V5LCBnZXR0ZXIpIHtcbiAgY29uc3QgZW50cnkgPSBnZXRFbnRyeSh0YXJnZXQsIGtleSk7XG5cbiAgaWYgKGNvbnRleHRTdGFjay5zaXplICYmIGNvbnRleHRTdGFjay5oYXMoZW50cnkpKSB7XG4gICAgY29udGV4dFN0YWNrLmNsZWFyKCk7XG4gICAgdGhyb3cgRXJyb3IoYENpcmN1bGFyIGdldCBpbnZvY2F0aW9uIG9mIHRoZSAnJHtrZXl9JyBwcm9wZXJ0eSBpbiAnJHtzdHJpbmdpZnlFbGVtZW50KHRhcmdldCl9J2ApO1xuICB9XG5cbiAgY29udGV4dFN0YWNrLmZvckVhY2goKGNvbnRleHQpID0+IHtcbiAgICBjb250ZXh0LmRlcHMgPSBjb250ZXh0LmRlcHMgfHwgbmV3IFNldCgpO1xuICAgIGNvbnRleHQuZGVwcy5hZGQoZW50cnkpO1xuXG4gICAgaWYgKGNvbnRleHQub2JzZXJ2ZWQpIHtcbiAgICAgIGVudHJ5LmNvbnRleHRzID0gZW50cnkuY29udGV4dHMgfHwgbmV3IFNldCgpO1xuICAgICAgZW50cnkuY29udGV4dHMuYWRkKGNvbnRleHQpO1xuICAgIH1cbiAgfSk7XG5cbiAgY29udGV4dFN0YWNrLmFkZChlbnRyeSk7XG5cbiAgaWYgKGVudHJ5LmNoZWNrc3VtICYmIGVudHJ5LmNoZWNrc3VtID09PSBjYWxjdWxhdGVDaGVja3N1bShlbnRyeSkpIHtcbiAgICBjb250ZXh0U3RhY2suZGVsZXRlKGVudHJ5KTtcbiAgICByZXR1cm4gZW50cnkudmFsdWU7XG4gIH1cblxuICBpZiAoZW50cnkuZGVwcyAmJiBlbnRyeS5kZXBzLnNpemUpIHtcbiAgICBlbnRyeS5kZXBzLmZvckVhY2goKGRlcEVudHJ5KSA9PiB7XG4gICAgICBpZiAoZGVwRW50cnkuY29udGV4dHMpIGRlcEVudHJ5LmNvbnRleHRzLmRlbGV0ZShlbnRyeSk7XG4gICAgfSk7XG4gICAgZW50cnkuZGVwcyA9IHVuZGVmaW5lZDtcbiAgfVxuXG4gIHRyeSB7XG4gICAgY29uc3QgbmV4dFZhbHVlID0gZ2V0dGVyKHRhcmdldCwgZW50cnkudmFsdWUpO1xuXG4gICAgaWYgKG5leHRWYWx1ZSAhPT0gZW50cnkudmFsdWUpIHtcbiAgICAgIGVudHJ5LnN0YXRlICs9IDE7XG4gICAgICBlbnRyeS52YWx1ZSA9IG5leHRWYWx1ZTtcblxuICAgICAgZGlzcGF0Y2hEZWVwKGVudHJ5KTtcbiAgICB9XG5cbiAgICBlbnRyeS5jaGVja3N1bSA9IGNhbGN1bGF0ZUNoZWNrc3VtKGVudHJ5KTtcbiAgICBjb250ZXh0U3RhY2suZGVsZXRlKGVudHJ5KTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIGNvbnRleHRTdGFjay5jbGVhcigpO1xuICAgIHRocm93IGU7XG4gIH1cblxuICByZXR1cm4gZW50cnkudmFsdWU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXQodGFyZ2V0LCBrZXksIHNldHRlciwgdmFsdWUsIGZvcmNlKSB7XG4gIGlmIChjb250ZXh0U3RhY2suc2l6ZSAmJiAhZm9yY2UpIHtcbiAgICBjb250ZXh0U3RhY2suY2xlYXIoKTtcbiAgICB0aHJvdyBFcnJvcihgVHJ5IHRvIHNldCAnJHtrZXl9JyBvZiAnJHtzdHJpbmdpZnlFbGVtZW50KHRhcmdldCl9JyBpbiBnZXQgY2FsbGApO1xuICB9XG5cbiAgY29uc3QgZW50cnkgPSBnZXRFbnRyeSh0YXJnZXQsIGtleSk7XG4gIGNvbnN0IG5ld1ZhbHVlID0gc2V0dGVyKHRhcmdldCwgdmFsdWUsIGVudHJ5LnZhbHVlKTtcblxuICBpZiAobmV3VmFsdWUgIT09IGVudHJ5LnZhbHVlKSB7XG4gICAgZW50cnkuY2hlY2tzdW0gPSAwO1xuICAgIGVudHJ5LnN0YXRlICs9IDE7XG4gICAgZW50cnkudmFsdWUgPSBuZXdWYWx1ZTtcblxuICAgIGRpc3BhdGNoRGVlcChlbnRyeSk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGludmFsaWRhdGUodGFyZ2V0LCBrZXksIGNsZWFyVmFsdWUpIHtcbiAgaWYgKGNvbnRleHRTdGFjay5zaXplKSB7XG4gICAgY29udGV4dFN0YWNrLmNsZWFyKCk7XG4gICAgdGhyb3cgRXJyb3IoYFRyeSB0byBpbnZhbGlkYXRlICcke2tleX0nIGluICcke3N0cmluZ2lmeUVsZW1lbnQodGFyZ2V0KX0nIGdldCBjYWxsYCk7XG4gIH1cblxuICBjb25zdCBlbnRyeSA9IGdldEVudHJ5KHRhcmdldCwga2V5KTtcblxuICBlbnRyeS5jaGVja3N1bSA9IDA7XG4gIGVudHJ5LnN0YXRlICs9IDE7XG5cbiAgZGlzcGF0Y2hEZWVwKGVudHJ5KTtcblxuICBpZiAoY2xlYXJWYWx1ZSkge1xuICAgIGVudHJ5LnZhbHVlID0gdW5kZWZpbmVkO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBvYnNlcnZlKHRhcmdldCwga2V5LCBnZXR0ZXIsIGZuKSB7XG4gIGNvbnN0IGVudHJ5ID0gZ2V0RW50cnkodGFyZ2V0LCBrZXkpO1xuICBlbnRyeS5vYnNlcnZlZCA9IHRydWU7XG5cbiAgbGV0IGxhc3RWYWx1ZTtcbiAgY29uc3QgdW5zdWJzY3JpYmUgPSBlbWl0dGVyLnN1YnNjcmliZShlbnRyeSwgKCkgPT4ge1xuICAgIGNvbnN0IHZhbHVlID0gZ2V0KHRhcmdldCwga2V5LCBnZXR0ZXIpO1xuICAgIGlmICh2YWx1ZSAhPT0gbGFzdFZhbHVlKSB7XG4gICAgICBmbih0YXJnZXQsIHZhbHVlLCBsYXN0VmFsdWUpO1xuICAgICAgbGFzdFZhbHVlID0gdmFsdWU7XG4gICAgfVxuICB9KTtcblxuICByZXR1cm4gZnVuY3Rpb24gdW5vYnNlcnZlKCkge1xuICAgIHVuc3Vic2NyaWJlKCk7XG4gICAgZW50cnkub2JzZXJ2ZWQgPSBmYWxzZTtcbiAgICBpZiAoZW50cnkuZGVwcyAmJiBlbnRyeS5kZXBzLnNpemUpIHtcbiAgICAgIGVudHJ5LmRlcHMuZm9yRWFjaCgoZGVwRW50cnkpID0+IHtcbiAgICAgICAgZGVwRW50cnkuY29udGV4dHMuZGVsZXRlKGVudHJ5KTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfTtcbn1cbiJdfQ== | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jYWNoZS5qcyJdLCJuYW1lcyI6WyJlbnRyaWVzIiwiV2Vha01hcCIsImdldEVudHJ5IiwidGFyZ2V0Iiwia2V5IiwidGFyZ2V0TWFwIiwiZ2V0IiwiTWFwIiwic2V0IiwiZW50cnkiLCJ2YWx1ZSIsInVuZGVmaW5lZCIsImNvbnRleHRzIiwiZGVwcyIsInN0YXRlIiwiY2hlY2tzdW0iLCJvYnNlcnZlZCIsImNhbGN1bGF0ZUNoZWNrc3VtIiwiZm9yRWFjaCIsImRlcEVudHJ5IiwiZGlzcGF0Y2hEZWVwIiwiZW1pdHRlciIsImRpc3BhdGNoIiwiY29udGV4dFN0YWNrIiwiU2V0IiwiZ2V0dGVyIiwic2l6ZSIsImhhcyIsIkVycm9yIiwiY29udGV4dCIsImFkZCIsImRlbGV0ZSIsIm5leHRWYWx1ZSIsImUiLCJzZXR0ZXIiLCJmb3JjZSIsIm5ld1ZhbHVlIiwiaW52YWxpZGF0ZSIsImNsZWFyVmFsdWUiLCJvYnNlcnZlIiwiZm4iLCJsYXN0VmFsdWUiLCJ1bnN1YnNjcmliZSIsInN1YnNjcmliZSIsInVub2JzZXJ2ZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQUFBOztBQUNBOzs7Ozs7QUFFQSxJQUFNQSxPQUFPLEdBQUcsSUFBSUMsT0FBSixFQUFoQjs7QUFDTyxTQUFTQyxRQUFULENBQWtCQyxNQUFsQixFQUEwQkMsR0FBMUIsRUFBK0I7QUFDcEMsTUFBSUMsU0FBUyxHQUFHTCxPQUFPLENBQUNNLEdBQVIsQ0FBWUgsTUFBWixDQUFoQjs7QUFDQSxNQUFJLENBQUNFLFNBQUwsRUFBZ0I7QUFDZEEsSUFBQUEsU0FBUyxHQUFHLElBQUlFLEdBQUosRUFBWjtBQUNBUCxJQUFBQSxPQUFPLENBQUNRLEdBQVIsQ0FBWUwsTUFBWixFQUFvQkUsU0FBcEI7QUFDRDs7QUFFRCxNQUFJSSxLQUFLLEdBQUdKLFNBQVMsQ0FBQ0MsR0FBVixDQUFjRixHQUFkLENBQVo7O0FBRUEsTUFBSSxDQUFDSyxLQUFMLEVBQVk7QUFDVkEsSUFBQUEsS0FBSyxH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QUMvQyxNQUFNL0IsS0FBSyxHQUFHUCxRQUFRLENBQUNDLE1BQUQsRUFBU0MsR0FBVCxDQUF0QjtBQUNBSyxFQUFBQSxLQUFLLENBQUNPLFFBQU4sR0FBaUIsSUFBakI7QUFFQSxNQUFJeUIsU0FBSjtBQUNBLE1BQU1DLFdBQVcsR0FBR3JCLE9BQU8sQ0FBQ3NCLFNBQVIsQ0FBa0JsQyxLQUFsQixFQUF5QixZQUFNO0FBQ2pELFFBQU1DLEtBQUssR0FBR0osR0FBRyxDQUFDSCxNQUFELEVBQVNDLEdBQVQsRUFBY3FCLE1BQWQsQ0FBakI7O0FBQ0EsUUFBSWYsS0FBSyxLQUFLK0IsU0FBZCxFQUF5QjtBQUN2QkQsTUFBQUEsRUFBRSxDQUFDckMsTUFBRCxFQUFTTyxLQUFULEVBQWdCK0IsU0FBaEIsQ0FBRjtBQUNBQSxNQUFBQSxTQUFTLEdBQUcvQixLQUFaO0FBQ0Q7QUFDRixHQU5tQixDQUFwQjtBQVFBLFNBQU8sU0FBU2tDLFNBQVQsR0FBcUI7QUFDMUJGLElBQUFBLFdBQVc7QUFDWGpDLElBQUFBLEtBQUssQ0FBQ08sUUFBTixHQUFpQixLQUFqQjs7QUFDQSxRQUFJUCxLQUFLLENBQUNJLElBQU4sSUFBY0osS0FBSyxDQUFDSSxJQUFOLENBQVdhLElBQTdCLEVBQW1DO0FBQ2pDakIsTUFBQUEsS0FBSyxDQUFDSSxJQUFOLENBQVdLLE9BQVgsQ0FBbUIsVUFBQ0MsUUFBRCxFQUFjO0FBQy9CQSxRQUFBQSxRQUFRLENBQUNQLFFBQVQsQ0FBa0JtQixNQUFsQixDQUF5QnRCLEtBQXpCO0FBQ0QsT0FGRDtBQUdEO0FBQ0YsR0FSRDtBQVNEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgc3RyaW5naWZ5RWxlbWVudCB9IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0ICogYXMgZW1pdHRlciBmcm9tICcuL2VtaXR0ZXInO1xuXG5jb25zdCBlbnRyaWVzID0gbmV3IFdlYWtNYXAoKTtcbmV4cG9ydCBmdW5jdGlvbiBnZXRFbnRyeSh0YXJnZXQsIGtleSkge1xuICBsZXQgdGFyZ2V0TWFwID0gZW50cmllcy5nZXQodGFyZ2V0KTtcbiAgaWYgKCF0YXJnZXRNYXApIHtcbiAgICB0YXJnZXRNYXAgPSBuZXcgTWFwKCk7XG4gICAgZW50cmllcy5zZXQodGFyZ2V0LCB0YXJnZXRNYXApO1xuICB9XG5cbiAgbGV0IGVudHJ5ID0gdGFyZ2V0TWFwLmdldChrZXkpO1xuXG4gIGlmICghZW50cnkpIHtcbiAgICBlbnRyeSA9IHtcbiAgICAgIHRhcmdldCxcbiAgICAgIGtleSxcbiAgICAgIHZhbHVlOiB1bmRlZmluZWQsXG4gICAgICBjb250ZXh0czogdW5kZWZpbmVkLFxuICAgICAgZGVwczogdW5kZWZpbmVkLFxuICAgICAgc3RhdGU6IDAsXG4gICAgICBjaGVja3N1bTogMCxcbiAgICAgIG9ic2VydmVkOiBmYWxzZSxcbiAgICB9O1xuICAgIHRhcmdldE1hcC5zZXQoa2V5LCBlbnRyeSk7XG4gIH1cblxuICByZXR1cm4gZW50cnk7XG59XG5cbmZ1bmN0aW9uIGNhbGN1bGF0ZUNoZWNrc3VtKGVudHJ5KSB7XG4gIGxldCBjaGVja3N1bSA9IGVudHJ5LnN0YXRlO1xuICBpZiAoZW50cnkuZGVwcykge1xuICAgIGVudHJ5LmRlcHMuZm9yRWFjaCgoZGVwRW50cnkpID0+IHtcbiAgICAgIGNoZWNrc3VtICs9IGRlcEVudHJ5LnN0YXRlO1xuICAgIH0pO1xuICB9XG5cbiAgcmV0dXJuIGNoZWNrc3VtO1xufVxuXG5mdW5jdGlvbiBkaXNwYXRjaERlZXAoZW50cnkpIHtcbiAgaWYgKGVudHJ5Lm9ic2VydmVkKSBlbWl0dGVyLmRpc3BhdGNoKGVudHJ5KTtcbiAgaWYgKGVudHJ5LmNvbnRleHRzKSBlbnRyeS5jb250ZXh0cy5mb3JFYWNoKGRpc3BhdGNoRGVlcCk7XG59XG5cbmNvbnN0IGNvbnRleHRTdGFjayA9IG5ldyBTZXQoKTtcbmV4cG9ydCBmdW5jdGlvbiBnZXQodGFyZ2V0LCBrZXksIGdldHRlcikge1xuICBjb25zdCBlbnRyeSA9IGdldEVudHJ5KHRhcmdldCwga2V5KTtcblxuICBpZiAoY29udGV4dFN0YWNrLnNpemUgJiYgY29udGV4dFN0YWNrLmhhcyhlbnRyeSkpIHtcbiAgICB0aHJvdyBFcnJvcihgQ2lyY3VsYXIgZ2V0IGludm9jYXRpb24gb2YgdGhlICcke2tleX0nIHByb3BlcnR5IGluICcke3N0cmluZ2lmeUVsZW1lbnQodGFyZ2V0KX0nYCk7XG4gIH1cblxuICBjb250ZXh0U3RhY2suZm9yRWFjaCgoY29udGV4dCkgPT4ge1xuICAgIGNvbnRleHQuZGVwcyA9IGNvbnRleHQuZGVwcyB8fCBuZXcgU2V0KCk7XG4gICAgY29udGV4dC5kZXBzLmFkZChlbnRyeSk7XG5cbiAgICBpZiAoY29udGV4dC5vYnNlcnZlZCkge1xuICAgICAgZW50cnkuY29udGV4dHMgPSBlbnRyeS5jb250ZXh0cyB8fCBuZXcgU2V0KCk7XG4gICAgICBlbnRyeS5jb250ZXh0cy5hZGQoY29udGV4dCk7XG4gICAgfVxuICB9KTtcblxuICBpZiAoZW50cnkuY2hlY2tzdW0gJiYgZW50cnkuY2hlY2tzdW0gPT09IGNhbGN1bGF0ZUNoZWNrc3VtKGVudHJ5KSkge1xuICAgIHJldHVybiBlbnRyeS52YWx1ZTtcbiAgfVxuXG4gIHRyeSB7XG4gICAgY29udGV4dFN0YWNrLmFkZChlbnRyeSk7XG5cbiAgICBpZiAoZW50cnkub2JzZXJ2ZWQgJiYgZW50cnkuZGVwcyAmJiBlbnRyeS5kZXBzLnNpemUpIHtcbiAgICAgIGVudHJ5LmRlcHMuZm9yRWFjaCgoZGVwRW50cnkpID0+IHtcbiAgICAgICAgZGVwRW50cnkuY29udGV4dHMuZGVsZXRlKGVudHJ5KTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGVudHJ5LmRlcHMgPSB1bmRlZmluZWQ7XG4gICAgY29uc3QgbmV4dFZhbHVlID0gZ2V0dGVyKHRhcmdldCwgZW50cnkudmFsdWUpO1xuXG4gICAgaWYgKG5leHRWYWx1ZSAhPT0gZW50cnkudmFsdWUpIHtcbiAgICAgIGVudHJ5LnN0YXRlICs9IDE7XG4gICAgICBlbnRyeS52YWx1ZSA9IG5leHRWYWx1ZTtcblxuICAgICAgZGlzcGF0Y2hEZWVwKGVudHJ5KTtcbiAgICB9XG5cbiAgICBlbnRyeS5jaGVja3N1bSA9IGNhbGN1bGF0ZUNoZWNrc3VtKGVudHJ5KTtcbiAgICBjb250ZXh0U3RhY2suZGVsZXRlKGVudHJ5KTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIGVudHJ5LmNoZWNrc3VtID0gMDtcblxuICAgIGNvbnRleHRTdGFjay5kZWxldGUoZW50cnkpO1xuICAgIGNvbnRleHRTdGFjay5mb3JFYWNoKChjb250ZXh0KSA9PiB7XG4gICAgICBjb250ZXh0LmRlcHMuZGVsZXRlKGVudHJ5KTtcbiAgICAgIGlmIChjb250ZXh0Lm9ic2VydmVkKSBlbnRyeS5jb250ZXh0cy5kZWxldGUoY29udGV4dCk7XG4gICAgfSk7XG5cbiAgICB0aHJvdyBlO1xuICB9XG5cbiAgcmV0dXJuIGVudHJ5LnZhbHVlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2V0KHRhcmdldCwga2V5LCBzZXR0ZXIsIHZhbHVlLCBmb3JjZSkge1xuICBpZiAoY29udGV4dFN0YWNrLnNpemUgJiYgIWZvcmNlKSB7XG4gICAgdGhyb3cgRXJyb3IoYFRyeSB0byBzZXQgJyR7a2V5fScgb2YgJyR7c3RyaW5naWZ5RWxlbWVudCh0YXJnZXQpfScgaW4gZ2V0IGNhbGxgKTtcbiAgfVxuXG4gIGNvbnN0IGVudHJ5ID0gZ2V0RW50cnkodGFyZ2V0LCBrZXkpO1xuICBjb25zdCBuZXdWYWx1ZSA9IHNldHRlcih0YXJnZXQsIHZhbHVlLCBlbnRyeS52YWx1ZSk7XG5cbiAgaWYgKG5ld1ZhbHVlICE9PSBlbnRyeS52YWx1ZSkge1xuICAgIGVudHJ5LmNoZWNrc3VtID0gMDtcbiAgICBlbnRyeS5zdGF0ZSArPSAxO1xuICAgIGVudHJ5LnZhbHVlID0gbmV3VmFsdWU7XG5cbiAgICBkaXNwYXRjaERlZXAoZW50cnkpO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnZhbGlkYXRlKHRhcmdldCwga2V5LCBjbGVhclZhbHVlKSB7XG4gIGlmIChjb250ZXh0U3RhY2suc2l6ZSkge1xuICAgIHRocm93IEVycm9yKGBUcnkgdG8gaW52YWxpZGF0ZSAnJHtrZXl9JyBpbiAnJHtzdHJpbmdpZnlFbGVtZW50KHRhcmdldCl9JyBnZXQgY2FsbGApO1xuICB9XG5cbiAgY29uc3QgZW50cnkgPSBnZXRFbnRyeSh0YXJnZXQsIGtleSk7XG5cbiAgZW50cnkuY2hlY2tzdW0gPSAwO1xuICBlbnRyeS5zdGF0ZSArPSAxO1xuXG4gIGRpc3BhdGNoRGVlcChlbnRyeSk7XG5cbiAgaWYgKGNsZWFyVmFsdWUpIHtcbiAgICBlbnRyeS52YWx1ZSA9IHVuZGVmaW5lZDtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gb2JzZXJ2ZSh0YXJnZXQsIGtleSwgZ2V0dGVyLCBmbikge1xuICBjb25zdCBlbnRyeSA9IGdldEVudHJ5KHRhcmdldCwga2V5KTtcbiAgZW50cnkub2JzZXJ2ZWQgPSB0cnVlO1xuXG4gIGxldCBsYXN0VmFsdWU7XG4gIGNvbnN0IHVuc3Vic2NyaWJlID0gZW1pdHRlci5zdWJzY3JpYmUoZW50cnksICgpID0+IHtcbiAgICBjb25zdCB2YWx1ZSA9IGdldCh0YXJnZXQsIGtleSwgZ2V0dGVyKTtcbiAgICBpZiAodmFsdWUgIT09IGxhc3RWYWx1ZSkge1xuICAgICAgZm4odGFyZ2V0LCB2YWx1ZSwgbGFzdFZhbHVlKTtcbiAgICAgIGxhc3RWYWx1ZSA9IHZhbHVlO1xuICAgIH1cbiAgfSk7XG5cbiAgcmV0dXJuIGZ1bmN0aW9uIHVub2JzZXJ2ZSgpIHtcbiAgICB1bnN1YnNjcmliZSgpO1xuICAgIGVudHJ5Lm9ic2VydmVkID0gZmFsc2U7XG4gICAgaWYgKGVudHJ5LmRlcHMgJiYgZW50cnkuZGVwcy5zaXplKSB7XG4gICAgICBlbnRyeS5kZXBzLmZvckVhY2goKGRlcEVudHJ5KSA9PiB7XG4gICAgICAgIGRlcEVudHJ5LmNvbnRleHRzLmRlbGV0ZShlbnRyeSk7XG4gICAgICB9KTtcbiAgICB9XG4gIH07XG59XG4iXX0= |
@@ -143,3 +143,3 @@ "use strict"; | ||
Object.keys(node.constructor.hybrids).forEach(function (key) { | ||
cache.invalidate(node, key, node[key] === hybrids[key]); | ||
cache.invalidate(node, key, node.constructor.hybrids[key] !== hybrids[key]); | ||
}); | ||
@@ -257,2 +257,2 @@ node.connectedCallback(); | ||
} | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9kZWZpbmUuanMiXSwibmFtZXMiOlsicHJvY2VzcyIsImVudiIsIk5PREVfRU5WIiwiZSIsImRlZmF1bHRNZXRob2QiLCJob3N0IiwidmFsdWUiLCJjb21waWxlIiwiSHlicmlkIiwiZGVzY3JpcHRvcnMiLCJoeWJyaWRzIiwiY2FsbGJhY2tzIiwiT2JqZWN0Iiwia2V5cyIsImZvckVhY2giLCJrZXkiLCJkZXNjIiwidHlwZSIsImNvbmZpZyIsImdldCIsIkFycmF5IiwiaXNBcnJheSIsInNldCIsInVuZGVmaW5lZCIsImNvbm5lY3QiLCJvYnNlcnZlIiwiZGVmaW5lUHJvcGVydHkiLCJwcm90b3R5cGUiLCJjYWNoZSIsIm5ld1ZhbHVlIiwiZW51bWVyYWJsZSIsImNvbmZpZ3VyYWJsZSIsInB1c2giLCJpbnZhbGlkYXRlIiwidXBkYXRlIiwid2Fsa0luU2hhZG93Iiwibm9kZSIsImZuIiwiZnJvbSIsImNoaWxkcmVuIiwiZWwiLCJzaGFkb3dSb290IiwidXBkYXRlUXVldWUiLCJNYXAiLCJsYXN0SHlicmlkcyIsInNpemUiLCJkZWZlcnJlZCIsInRoZW4iLCJkb2N1bWVudCIsImJvZHkiLCJoYXMiLCJjb25zdHJ1Y3RvciIsImRpc2Nvbm5lY3RlZENhbGxiYWNrIiwiY29ubmVjdGVkQ2FsbGJhY2siLCJjbGVhciIsImRpc2Nvbm5lY3RzIiwiV2Vha01hcCIsImRlZmluZUVsZW1lbnQiLCJ0YWdOYW1lIiwiaHlicmlkc09yQ29uc3RydWN0b3IiLCJUeXBlRXJyb3IiLCJDdXN0b21FbGVtZW50Iiwid2luZG93IiwiY3VzdG9tRWxlbWVudHMiLCJkZWZpbmUiLCJFcnJvciIsImxpc3QiLCJpbmRleCIsImxlbmd0aCIsImNiIiwiSFRNTEVsZW1lbnQiLCJkZWZpbmVNYXAiLCJlbGVtZW50cyIsInJlZHVjZSIsImFjYyJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBOztBQUNBOztBQUVBOztBQUNBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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O0FBQ0EyRCxJQUFBQSxHQUFHLENBQUMzRCxHQUFELENBQUgsR0FBVzBDLGFBQWEsQ0FBQ0MsT0FBRCxFQUFVYyxRQUFRLENBQUN6RCxHQUFELENBQWxCLENBQXhCO0FBRUEsV0FBTzJELEdBQVA7QUFDRCxHQUxNLEVBS0osRUFMSSxDQUFQO0FBTUQ7O0FBRWMsU0FBU1YsTUFBVCxHQUF5QjtBQUN0QyxNQUFJLDhEQUFtQixRQUF2QixFQUFpQztBQUMvQixXQUFPTyxTQUFTLGtEQUFoQjtBQUNEOztBQUVELFNBQU9kLGFBQWEsTUFBYixtQkFBUDtBQUNEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHByb3BlcnR5IGZyb20gJy4vcHJvcGVydHknO1xuaW1wb3J0IHJlbmRlciBmcm9tICcuL3JlbmRlcic7XG5cbmltcG9ydCAqIGFzIGNhY2hlIGZyb20gJy4vY2FjaGUnO1xuaW1wb3J0IHsgcGFzY2FsVG9EYXNoLCBkZWZlcnJlZCB9IGZyb20gJy4vdXRpbHMnO1xuXG4vKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xudHJ5IHsgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgfSBjYXRjaChlKSB7IHZhciBwcm9jZXNzID0geyBlbnY6IHsgTk9ERV9FTlY6ICdwcm9kdWN0aW9uJyB9IH07IH0gLy8gZXNsaW50LWRpc2FibGUtbGluZVxuXG5jb25zdCBkZWZhdWx0TWV0aG9kID0gKGhvc3QsIHZhbHVlKSA9PiB2YWx1ZTtcblxuZnVuY3Rpb24gY29tcGlsZShIeWJyaWQsIGRlc2NyaXB0b3JzKSB7XG4gIEh5YnJpZC5oeWJyaWRzID0gZGVzY3JpcHRvcnM7XG4gIEh5YnJpZC5jYWxsYmFja3MgPSBbXTtcblxuICBPYmplY3Qua2V5cyhkZXNjcmlwdG9ycykuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgY29uc3QgZGVzYyA9IGRlc2NyaXB0b3JzW2tleV07XG4gICAgY29uc3QgdHlwZSA9IHR5cGVvZiBkZXNjO1xuXG4gICAgbGV0IGNvbmZpZztcblxuICAgIGlmICh0eXBlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBjb25maWcgPSBrZXkgPT09ICdyZW5kZXInID8gcmVuZGVyKGRlc2MpIDogeyBnZXQ6IGRlc2MgfTtcbiAgICB9IGVsc2UgaWYgKHR5cGUgIT09ICdvYmplY3QnIHx8IGRlc2MgPT09IG51bGwgfHwgKEFycmF5LmlzQXJyYXkoZGVzYykpKSB7XG4gICAgICBjb25maWcgPSBwcm9wZXJ0eShkZXNjKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uZmlnID0ge1xuICAgICAgICBnZXQ6IGRlc2MuZ2V0IHx8IGRlZmF1bHRNZXRob2QsXG4gICAgICAgIHNldDogZGVzYy5zZXQgfHwgKCFkZXNjLmdldCAmJiBkZWZhdWx0TWV0aG9kKSB8fCB1bmRlZmluZWQsXG4gICAgICAgIGNvbm5lY3Q6IGRlc2MuY29ubmVjdCxcbiAgICAgICAgb2JzZXJ2ZTogZGVzYy5vYnNlcnZlLFxuICAgICAgfTtcbiAgICB9XG5cbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoSHlicmlkLnByb3RvdHlwZSwga2V5LCB7XG4gICAgICBnZXQ6IGZ1bmN0aW9uIGdldCgpIHtcbiAgICAgICAgcmV0dXJuIGNhY2hlLmdldCh0aGlzLCBrZXksIGNvbmZpZy5nZXQpO1xuICAgICAgfSxcbiAgICAgIHNldDogY29uZmlnLnNldCAmJiBmdW5jdGlvbiBzZXQobmV3VmFsdWUpIHtcbiAgICAgICAgY2FjaGUuc2V0KHRoaXMsIGtleSwgY29uZmlnLnNldCwgbmV3VmFsdWUpO1xuICAgICAgfSxcbiAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICBjb25maWd1cmFibGU6IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicsXG4gICAgfSk7XG5cbiAgICBpZiAoY29uZmlnLm9ic2VydmUpIHtcbiAgICAgIEh5YnJpZC5jYWxsYmFja3MucHVzaChcbiAgICAgICAgKGhvc3QpID0+IGNhY2hlLm9ic2VydmUoaG9zdCwga2V5LCBjb25maWcuZ2V0LCBjb25maWcub2JzZXJ2ZSksXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChjb25maWcuY29ubmVjdCkge1xuICAgICAgSHlicmlkLmNhbGxiYWNrcy5wdXNoKFxuICAgICAgICAoaG9zdCkgPT4gY29uZmlnLmNvbm5lY3QoaG9zdCwga2V5LCAoKSA9PiB7IGNhY2hlLmludmFsaWRhdGUoaG9zdCwga2V5KTsgfSksXG4gICAgICApO1xuICAgIH1cbiAgfSk7XG59XG5cbmxldCB1cGRhdGU7XG4vKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgY29uc3Qgd2Fsa0luU2hhZG93ID0gKG5vZGUsIGZuKSA9PiB7XG4gICAgZm4obm9kZSk7XG5cbiAgICBBcnJheS5mcm9tKG5vZGUuY2hpbGRyZW4pXG4gICAgICAuZm9yRWFjaCgoZWwpID0+IHdhbGtJblNoYWRvdyhlbCwgZm4pKTtcblxuICAgIGlmIChub2RlLnNoYWRvd1Jvb3QpIHtcbiAgICAgIEFycmF5LmZyb20obm9kZS5zaGFkb3dSb290LmNoaWxkcmVuKVxuICAgICAgICAuZm9yRWFjaCgoZWwpID0+IHdhbGtJblNoYWRvdyhlbCwgZm4pKTtcbiAgICB9XG4gIH07XG5cbiAgY29uc3QgdXBkYXRlUXVldWUgPSBuZXcgTWFwKCk7XG4gIHVwZGF0ZSA9IChIeWJyaWQsIGxhc3RIeWJyaWRzKSA9PiB7XG4gICAgaWYgKCF1cGRhdGVRdWV1ZS5zaXplKSB7XG4gICAgICBkZWZlcnJlZC50aGVuKCgpID0+IHtcbiAgICAgICAgd2Fsa0luU2hhZG93KGRvY3VtZW50LmJvZHksIChub2RlKSA9PiB7XG4gICAgICAgICAgaWYgKHVwZGF0ZVF1ZXVlLmhhcyhub2RlLmNvbnN0cnVjdG9yKSkge1xuICAgICAgICAgICAgY29uc3QgaHlicmlkcyA9IHVwZGF0ZVF1ZXVlLmdldChub2RlLmNvbnN0cnVjdG9yKTtcbiAgICAgICAgICAgIG5vZGUuZGlzY29ubmVjdGVkQ2FsbGJhY2soKTtcblxuICAgICAgICAgICAgT2JqZWN0LmtleXMobm9kZS5jb25zdHJ1Y3Rvci5oeWJyaWRzKS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgICAgICAgICAgY2FjaGUuaW52YWxpZGF0ZShub2RlLCBrZXksIG5vZGVba2V5XSA9PT0gaHlicmlkc1trZXldKTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICBub2RlLmNvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgdXBkYXRlUXVldWUuY2xlYXIoKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgICB1cGRhdGVRdWV1ZS5zZXQoSHlicmlkLCBsYXN0SHlicmlkcyk7XG4gIH07XG59XG5cbmNvbnN0IGRpc2Nvbm5lY3RzID0gbmV3IFdlYWtNYXAoKTtcblxuZnVuY3Rpb24gZGVmaW5lRWxlbWVudCh0YWdOYW1lLCBoeWJyaWRzT3JDb25zdHJ1Y3Rvcikge1xuICBjb25zdCB0eXBlID0gdHlwZW9mIGh5YnJpZHNPckNvbnN0cnVjdG9yO1xuICBpZiAodHlwZSAhPT0gJ29iamVjdCcgJiYgdHlwZSAhPT0gJ2Z1bmN0aW9uJykge1xuICAgIHRocm93IFR5cGVFcnJvcihgU2Vjb25kIGFyZ3VtZW50IG11c3QgYmUgYW4gb2JqZWN0IG9yIGEgZnVuY3Rpb246ICR7dHlwZX1gKTtcbiAgfVxuXG4gIGNvbnN0IEN1c3RvbUVsZW1lbnQgPSB3aW5kb3cuY3VzdG9tRWxlbWVudHMuZ2V0KHRhZ05hbWUpO1xuXG4gIGlmICh0eXBlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgaWYgKEN1c3RvbUVsZW1lbnQgIT09IGh5YnJpZHNPckNvbnN0cnVjdG9yKSB7XG4gICAgICByZXR1cm4gd2luZG93LmN1c3RvbUVsZW1lbnRzLmRlZmluZSh0YWdOYW1lLCBoeWJyaWRzT3JDb25zdHJ1Y3Rvcik7XG4gICAgfVxuICAgIHJldHVybiBDdXN0b21FbGVtZW50O1xuICB9XG5cbiAgaWYgKEN1c3RvbUVsZW1lbnQpIHtcbiAgICBpZiAoQ3VzdG9tRWxlbWVudC5oeWJyaWRzID09PSBoeWJyaWRzT3JDb25zdHJ1Y3Rvcikge1xuICAgICAgcmV0dXJuIEN1c3RvbUVsZW1lbnQ7XG4gICAgfVxuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nICYmIEN1c3RvbUVsZW1lbnQuaHlicmlkcykge1xuICAgICAgT2JqZWN0LmtleXMoQ3VzdG9tRWxlbWVudC5oeWJyaWRzKS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgICAgZGVsZXRlIEN1c3RvbUVsZW1lbnQucHJvdG90eXBlW2tleV07XG4gICAgICB9KTtcblxuICAgICAgY29uc3QgbGFzdEh5YnJpZHMgPSBDdXN0b21FbGVtZW50Lmh5YnJpZHM7XG5cbiAgICAgIGNvbXBpbGUoQ3VzdG9tRWxlbWVudCwgaHlicmlkc09yQ29uc3RydWN0b3IpO1xuICAgICAgdXBkYXRlKEN1c3RvbUVsZW1lbnQsIGxhc3RIeWJyaWRzKTtcblxuICAgICAgcmV0dXJuIEN1c3RvbUVsZW1lbnQ7XG4gICAgfVxuXG4gICAgdGhyb3cgRXJyb3IoYEVsZW1lbnQgJyR7dGFnTmFtZX0nIGFscmVhZHkgZGVmaW5lZGApO1xuICB9XG5cbiAgY2xhc3MgSHlicmlkIGV4dGVuZHMgSFRNTEVsZW1lbnQge1xuICAgIHN0YXRpYyBnZXQgbmFtZSgpIHsgcmV0dXJuIHRhZ05hbWU7IH1cblxuICAgIGNvbm5lY3RlZENhbGxiYWNrKCkge1xuICAgICAgY29uc3QgeyBjYWxsYmFja3MgfSA9IHRoaXMuY29uc3RydWN0b3I7XG4gICAgICBjb25zdCBsaXN0ID0gW107XG5cbiAgICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBjYWxsYmFja3MubGVuZ3RoOyBpbmRleCArPSAxKSB7XG4gICAgICAgIGNvbnN0IGNiID0gY2FsbGJhY2tzW2luZGV4XSh0aGlzKTtcbiAgICAgICAgaWYgKGNiKSBsaXN0LnB1c2goY2IpO1xuICAgICAgfVxuXG4gICAgICBkaXNjb25uZWN0cy5zZXQodGhpcywgbGlzdCk7XG4gICAgfVxuXG4gICAgZGlzY29ubmVjdGVkQ2FsbGJhY2soKSB7XG4gICAgICBjb25zdCBsaXN0ID0gZGlzY29ubmVjdHMuZ2V0KHRoaXMpO1xuICAgICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IGxpc3QubGVuZ3RoOyBpbmRleCArPSAxKSB7XG4gICAgICAgIGxpc3RbaW5kZXhdKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgY29tcGlsZShIeWJyaWQsIGh5YnJpZHNPckNvbnN0cnVjdG9yKTtcbiAgY3VzdG9tRWxlbWVudHMuZGVmaW5lKHRhZ05hbWUsIEh5YnJpZCk7XG5cbiAgcmV0dXJuIEh5YnJpZDtcbn1cblxuZnVuY3Rpb24gZGVmaW5lTWFwKGVsZW1lbnRzKSB7XG4gIHJldHVybiBPYmplY3Qua2V5cyhlbGVtZW50cykucmVkdWNlKChhY2MsIGtleSkgPT4ge1xuICAgIGNvbnN0IHRhZ05hbWUgPSBwYXNjYWxUb0Rhc2goa2V5KTtcbiAgICBhY2Nba2V5XSA9IGRlZmluZUVsZW1lbnQodGFnTmFtZSwgZWxlbWVudHNba2V5XSk7XG5cbiAgICByZXR1cm4gYWNjO1xuICB9LCB7fSk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGRlZmluZSguLi5hcmdzKSB7XG4gIGlmICh0eXBlb2YgYXJnc1swXSA9PT0gJ29iamVjdCcpIHtcbiAgICByZXR1cm4gZGVmaW5lTWFwKGFyZ3NbMF0pO1xuICB9XG5cbiAgcmV0dXJuIGRlZmluZUVsZW1lbnQoLi4uYXJncyk7XG59XG4iXX0= | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9kZWZpbmUuanMiXSwibmFtZXMiOlsicHJvY2VzcyIsImVudiIsIk5PREVfRU5WIiwiZSIsImRlZmF1bHRNZXRob2QiLCJob3N0IiwidmFsdWUiLCJjb21waWxlIiwiSHlicmlkIiwiZGVzY3JpcHRvcnMiLCJoeWJyaWRzIiwiY2FsbGJhY2tzIiwiT2JqZWN0Iiwia2V5cyIsImZvckVhY2giLCJrZXkiLCJkZXNjIiwidHlwZSIsImNvbmZpZyIsImdldCIsIkFycmF5IiwiaXNBcnJheSIsInNldCIsInVuZGVmaW5lZCIsImNvbm5lY3QiLCJvYnNlcnZlIiwiZGVmaW5lUHJvcGVydHkiLCJwcm90b3R5cGUiLCJjYWNoZSIsIm5ld1ZhbHVlIiwiZW51bWVyYWJsZSIsImNvbmZpZ3VyYWJsZSIsInB1c2giLCJpbnZhbGlkYXRlIiwidXBkYXRlIiwid2Fsa0luU2hhZG93Iiwibm9kZSIsImZuIiwiZnJvbSIsImNoaWxkcmVuIiwiZWwiLCJzaGFkb3dSb290IiwidXBkYXRlUXVldWUiLCJNYXAiLCJsYXN0SHlicmlkcyIsInNpemUiLCJkZWZlcnJlZCIsInRoZW4iLCJkb2N1bWVudCIsImJvZHkiLCJoYXMiLCJjb25zdHJ1Y3RvciIsImRpc2Nvbm5lY3RlZENhbGxiYWNrIiwiY29ubmVjdGVkQ2FsbGJhY2siLCJjbGVhciIsImRpc2Nvbm5lY3RzIiwiV2Vha01hcCIsImRlZmluZUVsZW1lbnQiLCJ0YWdOYW1lIiwiaHlicmlkc09yQ29uc3RydWN0b3IiLCJUeXBlRXJyb3IiLCJDdXN0b21FbGVtZW50Iiwid2luZG93IiwiY3VzdG9tRWxlbWVudHMiLCJkZWZpbmUiLCJFcnJvciIsImxpc3QiLCJpbmRleCIsImxlbmd0aCIsImNiIiwiSFRNTEVsZW1lbnQiLCJkZWZpbmVNYXAiLCJlbGVtZW50cyIsInJlZHVjZSIsImFjYyJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBOztBQUNBOztBQUVBOztBQUNBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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QUFHLHlCQUFhM0MsR0FBYixDQUFoQjtBQUNBMkQsSUFBQUEsR0FBRyxDQUFDM0QsR0FBRCxDQUFILEdBQVcwQyxhQUFhLENBQUNDLE9BQUQsRUFBVWMsUUFBUSxDQUFDekQsR0FBRCxDQUFsQixDQUF4QjtBQUVBLFdBQU8yRCxHQUFQO0FBQ0QsR0FMTSxFQUtKLEVBTEksQ0FBUDtBQU1EOztBQUVjLFNBQVNWLE1BQVQsR0FBeUI7QUFDdEMsTUFBSSw4REFBbUIsUUFBdkIsRUFBaUM7QUFDL0IsV0FBT08sU0FBUyxrREFBaEI7QUFDRDs7QUFFRCxTQUFPZCxhQUFhLE1BQWIsbUJBQVA7QUFDRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBwcm9wZXJ0eSBmcm9tICcuL3Byb3BlcnR5JztcbmltcG9ydCByZW5kZXIgZnJvbSAnLi9yZW5kZXInO1xuXG5pbXBvcnQgKiBhcyBjYWNoZSBmcm9tICcuL2NhY2hlJztcbmltcG9ydCB7IHBhc2NhbFRvRGFzaCwgZGVmZXJyZWQgfSBmcm9tICcuL3V0aWxzJztcblxuLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbnRyeSB7IHByb2Nlc3MuZW52Lk5PREVfRU5WIH0gY2F0Y2goZSkgeyB2YXIgcHJvY2VzcyA9IHsgZW52OiB7IE5PREVfRU5WOiAncHJvZHVjdGlvbicgfSB9OyB9IC8vIGVzbGludC1kaXNhYmxlLWxpbmVcblxuY29uc3QgZGVmYXVsdE1ldGhvZCA9IChob3N0LCB2YWx1ZSkgPT4gdmFsdWU7XG5cbmZ1bmN0aW9uIGNvbXBpbGUoSHlicmlkLCBkZXNjcmlwdG9ycykge1xuICBIeWJyaWQuaHlicmlkcyA9IGRlc2NyaXB0b3JzO1xuICBIeWJyaWQuY2FsbGJhY2tzID0gW107XG5cbiAgT2JqZWN0LmtleXMoZGVzY3JpcHRvcnMpLmZvckVhY2goKGtleSkgPT4ge1xuICAgIGNvbnN0IGRlc2MgPSBkZXNjcmlwdG9yc1trZXldO1xuICAgIGNvbnN0IHR5cGUgPSB0eXBlb2YgZGVzYztcblxuICAgIGxldCBjb25maWc7XG5cbiAgICBpZiAodHlwZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgY29uZmlnID0ga2V5ID09PSAncmVuZGVyJyA/IHJlbmRlcihkZXNjKSA6IHsgZ2V0OiBkZXNjIH07XG4gICAgfSBlbHNlIGlmICh0eXBlICE9PSAnb2JqZWN0JyB8fCBkZXNjID09PSBudWxsIHx8IChBcnJheS5pc0FycmF5KGRlc2MpKSkge1xuICAgICAgY29uZmlnID0gcHJvcGVydHkoZGVzYyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbmZpZyA9IHtcbiAgICAgICAgZ2V0OiBkZXNjLmdldCB8fCBkZWZhdWx0TWV0aG9kLFxuICAgICAgICBzZXQ6IGRlc2Muc2V0IHx8ICghZGVzYy5nZXQgJiYgZGVmYXVsdE1ldGhvZCkgfHwgdW5kZWZpbmVkLFxuICAgICAgICBjb25uZWN0OiBkZXNjLmNvbm5lY3QsXG4gICAgICAgIG9ic2VydmU6IGRlc2Mub2JzZXJ2ZSxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KEh5YnJpZC5wcm90b3R5cGUsIGtleSwge1xuICAgICAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7XG4gICAgICAgIHJldHVybiBjYWNoZS5nZXQodGhpcywga2V5LCBjb25maWcuZ2V0KTtcbiAgICAgIH0sXG4gICAgICBzZXQ6IGNvbmZpZy5zZXQgJiYgZnVuY3Rpb24gc2V0KG5ld1ZhbHVlKSB7XG4gICAgICAgIGNhY2hlLnNldCh0aGlzLCBrZXksIGNvbmZpZy5zZXQsIG5ld1ZhbHVlKTtcbiAgICAgIH0sXG4gICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgY29uZmlndXJhYmxlOiBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nLFxuICAgIH0pO1xuXG4gICAgaWYgKGNvbmZpZy5vYnNlcnZlKSB7XG4gICAgICBIeWJyaWQuY2FsbGJhY2tzLnB1c2goXG4gICAgICAgIChob3N0KSA9PiBjYWNoZS5vYnNlcnZlKGhvc3QsIGtleSwgY29uZmlnLmdldCwgY29uZmlnLm9ic2VydmUpLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAoY29uZmlnLmNvbm5lY3QpIHtcbiAgICAgIEh5YnJpZC5jYWxsYmFja3MucHVzaChcbiAgICAgICAgKGhvc3QpID0+IGNvbmZpZy5jb25uZWN0KGhvc3QsIGtleSwgKCkgPT4geyBjYWNoZS5pbnZhbGlkYXRlKGhvc3QsIGtleSk7IH0pLFxuICAgICAgKTtcbiAgICB9XG4gIH0pO1xufVxuXG5sZXQgdXBkYXRlO1xuLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gIGNvbnN0IHdhbGtJblNoYWRvdyA9IChub2RlLCBmbikgPT4ge1xuICAgIGZuKG5vZGUpO1xuXG4gICAgQXJyYXkuZnJvbShub2RlLmNoaWxkcmVuKVxuICAgICAgLmZvckVhY2goKGVsKSA9PiB3YWxrSW5TaGFkb3coZWwsIGZuKSk7XG5cbiAgICBpZiAobm9kZS5zaGFkb3dSb290KSB7XG4gICAgICBBcnJheS5mcm9tKG5vZGUuc2hhZG93Um9vdC5jaGlsZHJlbilcbiAgICAgICAgLmZvckVhY2goKGVsKSA9PiB3YWxrSW5TaGFkb3coZWwsIGZuKSk7XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IHVwZGF0ZVF1ZXVlID0gbmV3IE1hcCgpO1xuICB1cGRhdGUgPSAoSHlicmlkLCBsYXN0SHlicmlkcykgPT4ge1xuICAgIGlmICghdXBkYXRlUXVldWUuc2l6ZSkge1xuICAgICAgZGVmZXJyZWQudGhlbigoKSA9PiB7XG4gICAgICAgIHdhbGtJblNoYWRvdyhkb2N1bWVudC5ib2R5LCAobm9kZSkgPT4ge1xuICAgICAgICAgIGlmICh1cGRhdGVRdWV1ZS5oYXMobm9kZS5jb25zdHJ1Y3RvcikpIHtcbiAgICAgICAgICAgIGNvbnN0IGh5YnJpZHMgPSB1cGRhdGVRdWV1ZS5nZXQobm9kZS5jb25zdHJ1Y3Rvcik7XG4gICAgICAgICAgICBub2RlLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCk7XG5cbiAgICAgICAgICAgIE9iamVjdC5rZXlzKG5vZGUuY29uc3RydWN0b3IuaHlicmlkcykuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICAgICAgICAgIGNhY2hlLmludmFsaWRhdGUobm9kZSwga2V5LCBub2RlLmNvbnN0cnVjdG9yLmh5YnJpZHNba2V5XSAhPT0gaHlicmlkc1trZXldKTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICBub2RlLmNvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgdXBkYXRlUXVldWUuY2xlYXIoKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgICB1cGRhdGVRdWV1ZS5zZXQoSHlicmlkLCBsYXN0SHlicmlkcyk7XG4gIH07XG59XG5cbmNvbnN0IGRpc2Nvbm5lY3RzID0gbmV3IFdlYWtNYXAoKTtcblxuZnVuY3Rpb24gZGVmaW5lRWxlbWVudCh0YWdOYW1lLCBoeWJyaWRzT3JDb25zdHJ1Y3Rvcikge1xuICBjb25zdCB0eXBlID0gdHlwZW9mIGh5YnJpZHNPckNvbnN0cnVjdG9yO1xuICBpZiAodHlwZSAhPT0gJ29iamVjdCcgJiYgdHlwZSAhPT0gJ2Z1bmN0aW9uJykge1xuICAgIHRocm93IFR5cGVFcnJvcihgU2Vjb25kIGFyZ3VtZW50IG11c3QgYmUgYW4gb2JqZWN0IG9yIGEgZnVuY3Rpb246ICR7dHlwZX1gKTtcbiAgfVxuXG4gIGNvbnN0IEN1c3RvbUVsZW1lbnQgPSB3aW5kb3cuY3VzdG9tRWxlbWVudHMuZ2V0KHRhZ05hbWUpO1xuXG4gIGlmICh0eXBlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgaWYgKEN1c3RvbUVsZW1lbnQgIT09IGh5YnJpZHNPckNvbnN0cnVjdG9yKSB7XG4gICAgICByZXR1cm4gd2luZG93LmN1c3RvbUVsZW1lbnRzLmRlZmluZSh0YWdOYW1lLCBoeWJyaWRzT3JDb25zdHJ1Y3Rvcik7XG4gICAgfVxuICAgIHJldHVybiBDdXN0b21FbGVtZW50O1xuICB9XG5cbiAgaWYgKEN1c3RvbUVsZW1lbnQpIHtcbiAgICBpZiAoQ3VzdG9tRWxlbWVudC5oeWJyaWRzID09PSBoeWJyaWRzT3JDb25zdHJ1Y3Rvcikge1xuICAgICAgcmV0dXJuIEN1c3RvbUVsZW1lbnQ7XG4gICAgfVxuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nICYmIEN1c3RvbUVsZW1lbnQuaHlicmlkcykge1xuICAgICAgT2JqZWN0LmtleXMoQ3VzdG9tRWxlbWVudC5oeWJyaWRzKS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgICAgZGVsZXRlIEN1c3RvbUVsZW1lbnQucHJvdG90eXBlW2tleV07XG4gICAgICB9KTtcblxuICAgICAgY29uc3QgbGFzdEh5YnJpZHMgPSBDdXN0b21FbGVtZW50Lmh5YnJpZHM7XG5cbiAgICAgIGNvbXBpbGUoQ3VzdG9tRWxlbWVudCwgaHlicmlkc09yQ29uc3RydWN0b3IpO1xuICAgICAgdXBkYXRlKEN1c3RvbUVsZW1lbnQsIGxhc3RIeWJyaWRzKTtcblxuICAgICAgcmV0dXJuIEN1c3RvbUVsZW1lbnQ7XG4gICAgfVxuXG4gICAgdGhyb3cgRXJyb3IoYEVsZW1lbnQgJyR7dGFnTmFtZX0nIGFscmVhZHkgZGVmaW5lZGApO1xuICB9XG5cbiAgY2xhc3MgSHlicmlkIGV4dGVuZHMgSFRNTEVsZW1lbnQge1xuICAgIHN0YXRpYyBnZXQgbmFtZSgpIHsgcmV0dXJuIHRhZ05hbWU7IH1cblxuICAgIGNvbm5lY3RlZENhbGxiYWNrKCkge1xuICAgICAgY29uc3QgeyBjYWxsYmFja3MgfSA9IHRoaXMuY29uc3RydWN0b3I7XG4gICAgICBjb25zdCBsaXN0ID0gW107XG5cbiAgICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBjYWxsYmFja3MubGVuZ3RoOyBpbmRleCArPSAxKSB7XG4gICAgICAgIGNvbnN0IGNiID0gY2FsbGJhY2tzW2luZGV4XSh0aGlzKTtcbiAgICAgICAgaWYgKGNiKSBsaXN0LnB1c2goY2IpO1xuICAgICAgfVxuXG4gICAgICBkaXNjb25uZWN0cy5zZXQodGhpcywgbGlzdCk7XG4gICAgfVxuXG4gICAgZGlzY29ubmVjdGVkQ2FsbGJhY2soKSB7XG4gICAgICBjb25zdCBsaXN0ID0gZGlzY29ubmVjdHMuZ2V0KHRoaXMpO1xuICAgICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IGxpc3QubGVuZ3RoOyBpbmRleCArPSAxKSB7XG4gICAgICAgIGxpc3RbaW5kZXhdKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgY29tcGlsZShIeWJyaWQsIGh5YnJpZHNPckNvbnN0cnVjdG9yKTtcbiAgY3VzdG9tRWxlbWVudHMuZGVmaW5lKHRhZ05hbWUsIEh5YnJpZCk7XG5cbiAgcmV0dXJuIEh5YnJpZDtcbn1cblxuZnVuY3Rpb24gZGVmaW5lTWFwKGVsZW1lbnRzKSB7XG4gIHJldHVybiBPYmplY3Qua2V5cyhlbGVtZW50cykucmVkdWNlKChhY2MsIGtleSkgPT4ge1xuICAgIGNvbnN0IHRhZ05hbWUgPSBwYXNjYWxUb0Rhc2goa2V5KTtcbiAgICBhY2Nba2V5XSA9IGRlZmluZUVsZW1lbnQodGFnTmFtZSwgZWxlbWVudHNba2V5XSk7XG5cbiAgICByZXR1cm4gYWNjO1xuICB9LCB7fSk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGRlZmluZSguLi5hcmdzKSB7XG4gIGlmICh0eXBlb2YgYXJnc1swXSA9PT0gJ29iamVjdCcpIHtcbiAgICByZXR1cm4gZGVmaW5lTWFwKGFyZ3NbMF0pO1xuICB9XG5cbiAgcmV0dXJuIGRlZmluZUVsZW1lbnQoLi4uYXJncyk7XG59XG4iXX0= |
@@ -301,3 +301,3 @@ "use strict"; | ||
if (data.template || target.nodeType === Node.ELEMENT_NODE) (0, _utils2.removeTemplate)(target); | ||
data.lastArgs = null; | ||
data.prevArgs = null; | ||
var fragment = document.importNode(applyShadyCSS(template, host.tagName).content, true); | ||
@@ -352,2 +352,5 @@ var renderWalker = createWalker(fragment); | ||
var prevArgs = data.prevArgs; | ||
data.prevArgs = args; | ||
for (var index = 0; index < data.markers.length; index += 1) { | ||
@@ -358,4 +361,4 @@ var _data$markers$index = _slicedToArray(data.markers[index], 2), | ||
if (!data.lastArgs || data.lastArgs[index] !== args[index]) { | ||
marker(host, _node, args[index], data.lastArgs ? data.lastArgs[index] : undefined); | ||
if (!prevArgs || prevArgs[index] !== args[index]) { | ||
marker(host, _node, args[index], prevArgs ? prevArgs[index] : undefined); | ||
} | ||
@@ -367,3 +370,3 @@ } | ||
if (host.shadowRoot) { | ||
if (data.lastArgs) { | ||
if (prevArgs) { | ||
shady.styleSubtree(host); | ||
@@ -376,6 +379,4 @@ } else { | ||
} | ||
data.lastArgs = args; | ||
}; | ||
} | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90ZW1wbGF0ZS9jb3JlLmpzIl0sIm5hbWVzIjpbInByb2Nlc3MiLCJlbnYiLCJOT0RFX0VOViIsImUiLCJUSU1FU1RBTVAiLCJEYXRlIiwibm93IiwiZ2V0UGxhY2Vob2xkZXIiLCJpZCIsIlBMQUNFSE9MREVSX1JFR0VYUF9URVhUIiwiUExBQ0VIT0xERVJfUkVHRVhQX0VRVUFMIiwiUmVnRXhwIiwiUExBQ0VIT0xERVJfUkVHRVhQX0FMTCIsIkFUVFJfUFJFRklYIiwiQVRUUl9SRUdFWFAiLCJwcmVwYXJlZFRlbXBsYXRlcyIsIldlYWtNYXAiLCJhcHBseVNoYWR5Q1NTIiwidGVtcGxhdGUiLCJ0YWdOYW1lIiwic2hhZHkiLCJtYXAiLCJnZXQiLCJNYXAiLCJzZXQiLCJjbG9uZSIsImRvY3VtZW50IiwiY3JlYXRlRWxlbWVudCIsImNvbnRlbnQiLCJhcHBlbmRDaGlsZCIsImNsb25lTm9kZSIsInN0eWxlcyIsInF1ZXJ5U2VsZWN0b3JBbGwiLCJBcnJheSIsImZyb20iLCJmb3JFYWNoIiwic3R5bGUiLCJjb3VudCIsImNoaWxkTm9kZXMiLCJsZW5ndGgiLCJpIiwicGFyZW50Tm9kZSIsImluc2VydEJlZm9yZSIsImNyZWF0ZVRleHROb2RlIiwicHJlcGFyZVRlbXBsYXRlIiwidG9Mb3dlckNhc2UiLCJjcmVhdGVTaWduYXR1cmUiLCJwYXJ0cyIsInNpZ25hdHVyZSIsInJlZHVjZSIsImFjYyIsInBhcnQiLCJpbmRleCIsInNsaWNlIiwiam9pbiIsIm1hdGNoIiwiSVNfSUUiLCJyZXBsYWNlIiwiZ2V0UHJvcGVydHlOYW1lIiwic3RyaW5nIiwic3BsaXQiLCJwb3AiLCJyZXBsYWNlQ29tbWVudHMiLCJmcmFnbWVudCIsIml0ZXJhdG9yIiwiY3JlYXRlTm9kZUl0ZXJhdG9yIiwiTm9kZUZpbHRlciIsIlNIT1dfQ09NTUVOVCIsIm5vZGUiLCJuZXh0Tm9kZSIsInRlc3QiLCJ0ZXh0Q29udGVudCIsInJlbW92ZUNoaWxkIiwiY3JlYXRlSW50ZXJuYWxXYWxrZXIiLCJjb250ZXh0IiwiY3VycmVudE5vZGUiLCJ1bmRlZmluZWQiLCJuZXh0U2libGluZyIsImNyZWF0ZUV4dGVybmFsV2Fsa2VyIiwiY3JlYXRlVHJlZVdhbGtlciIsIlNIT1dfRUxFTUVOVCIsIlNIT1dfVEVYVCIsImNyZWF0ZVdhbGtlciIsIndpbmRvdyIsIlNoYWR5RE9NIiwiaW5Vc2UiLCJjb250YWluZXIiLCJjb21waWxlVGVtcGxhdGUiLCJyYXdQYXJ0cyIsImlzU1ZHIiwiaW5uZXJIVE1MIiwiY2hpbGRyZW4iLCJzdmdSb290IiwiZmlyc3RDaGlsZCIsImNvbXBpbGVXYWxrZXIiLCJjb21waWxlSW5kZXgiLCJub2RlVHlwZSIsIk5vZGUiLCJURVhUX05PREUiLCJ0ZXh0IiwicmVzdWx0cyIsInBsYWNlaG9sZGVyIiwiYmVmb3JlIiwibmV4dCIsInB1c2giLCJlcXVhbCIsInJlc29sdmVWYWx1ZSIsIkVMRU1FTlRfTk9ERSIsImF0dHJpYnV0ZXMiLCJhdHRyIiwidmFsdWUiLCJ0cmltIiwibmFtZSIsInByb3BlcnR5TmFtZSIsInJlbW92ZUF0dHJpYnV0ZSIsInBhcnRpYWxOYW1lIiwiaG9zdCIsInRhcmdldCIsImF0dHJWYWx1ZSIsImRhdGEiLCJkYXRhTWFwIiwic2V0QXR0cmlidXRlIiwidXBkYXRlVGVtcGxhdGVJbnN0YW5jZSIsImFyZ3MiLCJ0eXBlIiwibGFzdEFyZ3MiLCJpbXBvcnROb2RlIiwicmVuZGVyV2Fsa2VyIiwiY2xvbmVkUGFydHMiLCJyZW5kZXJJbmRleCIsImN1cnJlbnRQYXJ0Iiwic2hpZnQiLCJtYXJrZXJzIiwiaW5kZXhPZiIsImN1c3RvbUVsZW1lbnRzIiwiRXJyb3IiLCJzdGFydE5vZGUiLCJlbmROb2RlIiwicHJldmlvdXNDaGlsZCIsImNoaWxkIiwibWFya2VyIiwic2hhZG93Um9vdCIsInN0eWxlU3VidHJlZSIsInN0eWxlRWxlbWVudCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBRUE7O0FBQ0E7Ozs7Ozs7Ozs7Ozs7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QTREO0FBQzFEd0YsUUFBQUEsTUFBTSxDQUFDeEIsSUFBRCxFQUFPaEQsS0FBUCxFQUFhdUQsSUFBSSxDQUFDdkUsS0FBRCxDQUFqQixFQUEwQm1FLElBQUksQ0FBQ00sUUFBTCxHQUFnQk4sSUFBSSxDQUFDTSxRQUFMLENBQWN6RSxLQUFkLENBQWhCLEdBQXVDd0IsU0FBakUsQ0FBTjtBQUNEO0FBQ0Y7O0FBRUQsUUFBSXlDLE1BQU0sQ0FBQ3JCLFFBQVAsS0FBb0JDLElBQUksQ0FBQ0MsU0FBN0IsRUFBd0M7QUFDdEMsMkJBQVMsVUFBQzlFLEtBQUQsRUFBVztBQUNsQixZQUFJZ0csSUFBSSxDQUFDeUIsVUFBVCxFQUFxQjtBQUNuQixjQUFJdEIsSUFBSSxDQUFDTSxRQUFULEVBQW1CO0FBQ2pCekcsWUFBQUEsS0FBSyxDQUFDMEgsWUFBTixDQUFtQjFCLElBQW5CO0FBQ0QsV0FGRCxNQUVPO0FBQ0xoRyxZQUFBQSxLQUFLLENBQUMySCxZQUFOLENBQW1CM0IsSUFBbkI7QUFDRDtBQUNGO0FBQ0YsT0FSRDtBQVNEOztBQUVERyxJQUFBQSxJQUFJLENBQUNNLFFBQUwsR0FBZ0JGLElBQWhCO0FBQ0QsR0FqRkQ7QUFrRkQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBzdHJpbmdpZnlFbGVtZW50LCBzaGFkeUNTUywgSVNfSUUgfSBmcm9tICcuLi91dGlscyc7XG5pbXBvcnQgeyBkYXRhTWFwLCByZW1vdmVUZW1wbGF0ZSB9IGZyb20gJy4vdXRpbHMnO1xuXG5pbXBvcnQgcmVzb2x2ZVZhbHVlIGZyb20gJy4vcmVzb2x2ZXJzL3ZhbHVlJztcbmltcG9ydCByZXNvbHZlUHJvcGVydHkgZnJvbSAnLi9yZXNvbHZlcnMvcHJvcGVydHknO1xuXG4vKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xudHJ5IHsgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgfSBjYXRjaChlKSB7IHZhciBwcm9jZXNzID0geyBlbnY6IHsgTk9ERV9FTlY6ICdwcm9kdWN0aW9uJyB9IH07IH0gLy8gZXNsaW50LWRpc2FibGUtbGluZVxuXG5jb25zdCBUSU1FU1RBTVAgPSBEYXRlLm5vdygpO1xuXG5leHBvcnQgY29uc3QgZ2V0UGxhY2Vob2xkZXIgPSAoaWQgPSAwKSA9PiBge3toLSR7VElNRVNUQU1QfS0ke2lkfX19YDtcblxuY29uc3QgUExBQ0VIT0xERVJfUkVHRVhQX1RFWFQgPSBnZXRQbGFjZWhvbGRlcignKFxcXFxkKyknKTtcbmNvbnN0IFBMQUNFSE9MREVSX1JFR0VYUF9FUVVBTCA9IG5ldyBSZWdFeHAoYF4ke1BMQUNFSE9MREVSX1JFR0VYUF9URVhUfSRgKTtcbmNvbnN0IFBMQUNFSE9MREVSX1JFR0VYUF9BTEwgPSBuZXcgUmVnRXhwKFBMQUNFSE9MREVSX1JFR0VYUF9URVhULCAnZycpO1xuXG5jb25zdCBBVFRSX1BSRUZJWCA9IGAtLSR7VElNRVNUQU1QfS0tYDtcbmNvbnN0IEFUVFJfUkVHRVhQID0gbmV3IFJlZ0V4cChBVFRSX1BSRUZJWCwgJ2cnKTtcblxuY29uc3QgcHJlcGFyZWRUZW1wbGF0ZXMgPSBuZXcgV2Vha01hcCgpO1xuXG4vKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuZnVuY3Rpb24gYXBwbHlTaGFkeUNTUyh0ZW1wbGF0ZSwgdGFnTmFtZSkge1xuICBpZiAoIXRhZ05hbWUpIHJldHVybiB0ZW1wbGF0ZTtcblxuICByZXR1cm4gc2hhZHlDU1MoKHNoYWR5KSA9PiB7XG4gICAgbGV0IG1hcCA9IHByZXBhcmVkVGVtcGxhdGVzLmdldCh0ZW1wbGF0ZSk7XG4gICAgaWYgKCFtYXApIHtcbiAgICAgIG1hcCA9IG5ldyBNYXAoKTtcbiAgICAgIHByZXBhcmVkVGVtcGxhdGVzLnNldCh0ZW1wbGF0ZSwgbWFwKTtcbiAgICB9XG5cbiAgICBsZXQgY2xvbmUgPSBtYXAuZ2V0KHRhZ05hbWUpO1xuXG4gICAgaWYgKCFjbG9uZSkge1xuICAgICAgY2xvbmUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZW1wbGF0ZScpO1xuICAgICAgY2xvbmUuY29udGVudC5hcHBlbmRDaGlsZCh0ZW1wbGF0ZS5jb250ZW50LmNsb25lTm9kZSh0cnVlKSk7XG5cbiAgICAgIG1hcC5zZXQodGFnTmFtZSwgY2xvbmUpO1xuXG4gICAgICBjb25zdCBzdHlsZXMgPSBjbG9uZS5jb250ZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ3N0eWxlJyk7XG5cbiAgICAgIEFycmF5LmZyb20oc3R5bGVzKS5mb3JFYWNoKChzdHlsZSkgPT4ge1xuICAgICAgICBjb25zdCBjb3VudCA9IHN0eWxlLmNoaWxkTm9kZXMubGVuZ3RoICsgMTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjb3VudDsgaSArPSAxKSB7XG4gICAgICAgICAgc3R5bGUucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoZ2V0UGxhY2Vob2xkZXIoKSksIHN0eWxlKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIHNoYWR5LnByZXBhcmVUZW1wbGF0ZShjbG9uZSwgdGFnTmFtZS50b0xvd2VyQ2FzZSgpKTtcbiAgICB9XG4gICAgcmV0dXJuIGNsb25lO1xuICB9LCB0ZW1wbGF0ZSk7XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZVNpZ25hdHVyZShwYXJ0cywgc3R5bGVzKSB7XG4gIGxldCBzaWduYXR1cmUgPSBwYXJ0cy5yZWR1Y2UoKGFjYywgcGFydCwgaW5kZXgpID0+IHtcbiAgICBpZiAoaW5kZXggPT09IDApIHtcbiAgICAgIHJldHVybiBwYXJ0O1xuICAgIH1cblxuICAgIGlmIChwYXJ0cy5zbGljZShpbmRleCkuam9pbignJykubWF0Y2goL15cXHMqPFxcL1xccyoodGFibGV8dHJ8dGhlYWR8dGJvZHl8dGZvb3R8Y29sZ3JvdXApPi8pKSB7XG4gICAgICByZXR1cm4gYCR7YWNjfTwhLS0ke2dldFBsYWNlaG9sZGVyKGluZGV4IC0gMSl9LS0+JHtwYXJ0fWA7XG4gICAgfVxuICAgIHJldHVybiBhY2MgKyBnZXRQbGFjZWhvbGRlcihpbmRleCAtIDEpICsgcGFydDtcbiAgfSwgJycpO1xuXG4gIGlmIChzdHlsZXMpIHtcbiAgICBzaWduYXR1cmUgKz0gYDxzdHlsZT5cXG4ke3N0eWxlcy5qb2luKCdcXG4vKi0tLS0tLSovXFxuJyl9XFxuPC9zdHlsZT5gO1xuICB9XG5cbiAgLyogaXN0YW5idWwgaWdub3JlIGlmICovXG4gIGlmIChJU19JRSkge1xuICAgIHJldHVybiBzaWduYXR1cmUucmVwbGFjZShcbiAgICAgIC9zdHlsZVxccyo9XFxzKihbXCJdW15cIl0rW1wiXXxbJ11bXiddK1snXXxbXlxcc1wiJzw+L10rKS9nLFxuICAgICAgKG1hdGNoKSA9PiBgJHtBVFRSX1BSRUZJWH0ke21hdGNofWAsXG4gICAgKTtcbiAgfVxuXG4gIHJldHVybiBzaWduYXR1cmU7XG59XG5cbmZ1bmN0aW9uIGdldFByb3BlcnR5TmFtZShzdHJpbmcpIHtcbiAgcmV0dXJuIHN0cmluZy5yZXBsYWNlKC9cXHMqPVxccypbJ1wiXSokL2csICcnKS5zcGxpdCgnICcpLnBvcCgpO1xufVxuXG5mdW5jdGlvbiByZXBsYWNlQ29tbWVudHMoZnJhZ21lbnQpIHtcbiAgY29uc3QgaXRlcmF0b3IgPSBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZnJhZ21lbnQsIE5vZGVGaWx0ZXIuU0hPV19DT01NRU5ULCBudWxsLCBmYWxzZSk7XG4gIGxldCBub2RlO1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uZC1hc3NpZ25cbiAgd2hpbGUgKG5vZGUgPSBpdGVyYXRvci5uZXh0Tm9kZSgpKSB7XG4gICAgaWYgKFBMQUNFSE9MREVSX1JFR0VYUF9FUVVBTC50ZXN0KG5vZGUudGV4dENvbnRlbnQpKSB7XG4gICAgICBub2RlLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKG5vZGUudGV4dENvbnRlbnQpLCBub2RlKTtcbiAgICAgIG5vZGUucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChub2RlKTtcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUludGVybmFsV2Fsa2VyKGNvbnRleHQpIHtcbiAgbGV0IG5vZGU7XG5cbiAgcmV0dXJuIHtcbiAgICBnZXQgY3VycmVudE5vZGUoKSB7IHJldHVybiBub2RlOyB9LFxuICAgIG5leHROb2RlKCkge1xuICAgICAgaWYgKG5vZGUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICBub2RlID0gY29udGV4dC5jaGlsZE5vZGVzWzBdO1xuICAgICAgfSBlbHNlIGlmIChub2RlLmNoaWxkTm9kZXMubGVuZ3RoKSB7XG4gICAgICAgIG5vZGUgPSBub2RlLmNoaWxkTm9kZXNbMF07XG4gICAgICB9IGVsc2UgaWYgKG5vZGUubmV4dFNpYmxpbmcpIHtcbiAgICAgICAgbm9kZSA9IG5vZGUubmV4dFNpYmxpbmc7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBsZXQgcGFyZW50Tm9kZSA9IG5vZGUucGFyZW50Tm9kZTtcbiAgICAgICAgbm9kZSA9IHBhcmVudE5vZGUubmV4dFNpYmxpbmc7XG5cbiAgICAgICAgd2hpbGUgKCFub2RlICYmIHBhcmVudE5vZGUgIT09IGNvbnRleHQpIHtcbiAgICAgICAgICBwYXJlbnROb2RlID0gcGFyZW50Tm9kZS5wYXJlbnROb2RlO1xuICAgICAgICAgIG5vZGUgPSBwYXJlbnROb2RlLm5leHRTaWJsaW5nO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldHVybiAhIW5vZGU7XG4gICAgfSxcbiAgfTtcbn1cblxuZnVuY3Rpb24gY3JlYXRlRXh0ZXJuYWxXYWxrZXIoY29udGV4dCkge1xuICByZXR1cm4gZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihcbiAgICBjb250ZXh0LFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1iaXR3aXNlXG4gICAgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfVEVYVCxcbiAgICBudWxsLFxuICAgIGZhbHNlLFxuICApO1xufVxuXG4vKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuY29uc3QgY3JlYXRlV2Fsa2VyID0gdHlwZW9mIHdpbmRvdy5TaGFkeURPTSA9PT0gJ29iamVjdCcgJiYgd2luZG93LlNoYWR5RE9NLmluVXNlID8gY3JlYXRlSW50ZXJuYWxXYWxrZXIgOiBjcmVhdGVFeHRlcm5hbFdhbGtlcjtcblxuY29uc3QgY29udGFpbmVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG5leHBvcnQgZnVuY3Rpb24gY29tcGlsZVRlbXBsYXRlKHJhd1BhcnRzLCBpc1NWRywgc3R5bGVzKSB7XG4gIGNvbnN0IHRlbXBsYXRlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGVtcGxhdGUnKTtcbiAgY29uc3QgcGFydHMgPSBbXTtcblxuICBsZXQgc2lnbmF0dXJlID0gY3JlYXRlU2lnbmF0dXJlKHJhd1BhcnRzLCBzdHlsZXMpO1xuICBpZiAoaXNTVkcpIHNpZ25hdHVyZSA9IGA8c3ZnPiR7c2lnbmF0dXJlfTwvc3ZnPmA7XG5cbiAgLyogaXN0YW5idWwgaWdub3JlIGlmICovXG4gIGlmIChJU19JRSkge1xuICAgIHRlbXBsYXRlLmlubmVySFRNTCA9IHNpZ25hdHVyZTtcbiAgfSBlbHNlIHtcbiAgICBjb250YWluZXIuaW5uZXJIVE1MID0gYDx0ZW1wbGF0ZT4ke3NpZ25hdHVyZX08L3RlbXBsYXRlPmA7XG4gICAgdGVtcGxhdGUuY29udGVudC5hcHBlbmRDaGlsZChjb250YWluZXIuY2hpbGRyZW5bMF0uY29udGVudCk7XG4gIH1cblxuICBpZiAoaXNTVkcpIHtcbiAgICBjb25zdCBzdmdSb290ID0gdGVtcGxhdGUuY29udGVudC5maXJzdENoaWxkO1xuICAgIHRlbXBsYXRlLmNvbnRlbnQucmVtb3ZlQ2hpbGQoc3ZnUm9vdCk7XG4gICAgQXJyYXkuZnJvbShzdmdSb290LmNoaWxkTm9kZXMpLmZvckVhY2goKG5vZGUpID0+IHRlbXBsYXRlLmNvbnRlbnQuYXBwZW5kQ2hpbGQobm9kZSkpO1xuICB9XG5cbiAgcmVwbGFjZUNvbW1lbnRzKHRlbXBsYXRlLmNvbnRlbnQpO1xuXG4gIGNvbnN0IGNvbXBpbGVXYWxrZXIgPSBjcmVhdGVXYWxrZXIodGVtcGxhdGUuY29udGVudCk7XG4gIGxldCBjb21waWxlSW5kZXggPSAwO1xuXG4gIHdoaWxlIChjb21waWxlV2Fsa2VyLm5leHROb2RlKCkpIHtcbiAgICBjb25zdCBub2RlID0gY29tcGlsZVdhbGtlci5jdXJyZW50Tm9kZTtcblxuICAgIGlmIChub2RlLm5vZGVUeXBlID09PSBOb2RlLlRFWFRfTk9ERSkge1xuICAgICAgY29uc3QgdGV4dCA9IG5vZGUudGV4dENvbnRlbnQ7XG5cbiAgICAgIGlmICghdGV4dC5tYXRjaChQTEFDRUhPTERFUl9SRUdFWFBfRVFVQUwpKSB7XG4gICAgICAgIGNvbnN0IHJlc3VsdHMgPSB0ZXh0Lm1hdGNoKFBMQUNFSE9MREVSX1JFR0VYUF9BTEwpO1xuICAgICAgICBpZiAocmVzdWx0cykge1xuICAgICAgICAgIGxldCBjdXJyZW50Tm9kZSA9IG5vZGU7XG4gICAgICAgICAgcmVzdWx0c1xuICAgICAgICAgICAgLnJlZHVjZSgoYWNjLCBwbGFjZWhvbGRlcikgPT4ge1xuICAgICAgICAgICAgICBjb25zdCBbYmVmb3JlLCBuZXh0XSA9IGFjYy5wb3AoKS5zcGxpdChwbGFjZWhvbGRlcik7XG4gICAgICAgICAgICAgIGlmIChiZWZvcmUpIGFjYy5wdXNoKGJlZm9yZSk7XG4gICAgICAgICAgICAgIGFjYy5wdXNoKHBsYWNlaG9sZGVyKTtcbiAgICAgICAgICAgICAgaWYgKG5leHQpIGFjYy5wdXNoKG5leHQpO1xuICAgICAgICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgICAgICAgfSwgW3RleHRdKVxuICAgICAgICAgICAgLmZvckVhY2goKHBhcnQsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgIGlmIChpbmRleCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIGN1cnJlbnROb2RlLnRleHRDb250ZW50ID0gcGFydDtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjdXJyZW50Tm9kZSA9IGN1cnJlbnROb2RlLnBhcmVudE5vZGVcbiAgICAgICAgICAgICAgICAgIC5pbnNlcnRCZWZvcmUoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUocGFydCksIGN1cnJlbnROb2RlLm5leHRTaWJsaW5nKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgY29uc3QgZXF1YWwgPSBub2RlLnRleHRDb250ZW50Lm1hdGNoKFBMQUNFSE9MREVSX1JFR0VYUF9FUVVBTCk7XG4gICAgICBpZiAoZXF1YWwpIHtcbiAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAgICAgaWYgKCFJU19JRSkgbm9kZS50ZXh0Q29udGVudCA9ICcnO1xuICAgICAgICBwYXJ0c1tlcXVhbFsxXV0gPSBbY29tcGlsZUluZGV4LCByZXNvbHZlVmFsdWVdO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqLyAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tbG9uZWx5LWlmXG4gICAgICBpZiAobm9kZS5ub2RlVHlwZSA9PT0gTm9kZS5FTEVNRU5UX05PREUpIHtcbiAgICAgICAgQXJyYXkuZnJvbShub2RlLmF0dHJpYnV0ZXMpLmZvckVhY2goKGF0dHIpID0+IHtcbiAgICAgICAgICBjb25zdCB2YWx1ZSA9IGF0dHIudmFsdWUudHJpbSgpO1xuICAgICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgICAgICAgY29uc3QgbmFtZSA9IElTX0lFID8gYXR0ci5uYW1lLnJlcGxhY2UoQVRUUl9QUkVGSVgsICcnKSA6IGF0dHIubmFtZTtcbiAgICAgICAgICBjb25zdCBlcXVhbCA9IHZhbHVlLm1hdGNoKFBMQUNFSE9MREVSX1JFR0VYUF9FUVVBTCk7XG4gICAgICAgICAgaWYgKGVxdWFsKSB7XG4gICAgICAgICAgICBjb25zdCBwcm9wZXJ0eU5hbWUgPSBnZXRQcm9wZXJ0eU5hbWUocmF3UGFydHNbZXF1YWxbMV1dKTtcbiAgICAgICAgICAgIHBhcnRzW2VxdWFsWzFdXSA9IFtjb21waWxlSW5kZXgsIHJlc29sdmVQcm9wZXJ0eShuYW1lLCBwcm9wZXJ0eU5hbWUsIGlzU1ZHKV07XG4gICAgICAgICAgICBub2RlLnJlbW92ZUF0dHJpYnV0ZShhdHRyLm5hbWUpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCByZXN1bHRzID0gdmFsdWUubWF0Y2goUExBQ0VIT0xERVJfUkVHRVhQX0FMTCk7XG4gICAgICAgICAgICBpZiAocmVzdWx0cykge1xuICAgICAgICAgICAgICBjb25zdCBwYXJ0aWFsTmFtZSA9IGBhdHRyX18ke25hbWV9YDtcblxuICAgICAgICAgICAgICByZXN1bHRzLmZvckVhY2goKHBsYWNlaG9sZGVyLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IFssIGlkXSA9IHBsYWNlaG9sZGVyLm1hdGNoKFBMQUNFSE9MREVSX1JFR0VYUF9FUVVBTCk7XG4gICAgICAgICAgICAgICAgcGFydHNbaWRdID0gW2NvbXBpbGVJbmRleCwgKGhvc3QsIHRhcmdldCwgYXR0clZhbHVlKSA9PiB7XG4gICAgICAgICAgICAgICAgICBjb25zdCBkYXRhID0gZGF0YU1hcC5nZXQodGFyZ2V0LCB7fSk7XG4gICAgICAgICAgICAgICAgICBkYXRhW3BhcnRpYWxOYW1lXSA9IChkYXRhW3BhcnRpYWxOYW1lXSB8fCB2YWx1ZSkucmVwbGFjZShwbGFjZWhvbGRlciwgYXR0clZhbHVlID09IG51bGwgPyAnJyA6IGF0dHJWYWx1ZSk7XG5cbiAgICAgICAgICAgICAgICAgIGlmICgocmVzdWx0cy5sZW5ndGggPT09IDEpIHx8IChpbmRleCArIDEgPT09IHJlc3VsdHMubGVuZ3RoKSkge1xuICAgICAgICAgICAgICAgICAgICB0YXJnZXQuc2V0QXR0cmlidXRlKG5hbWUsIGRhdGFbcGFydGlhbE5hbWVdKTtcbiAgICAgICAgICAgICAgICAgICAgZGF0YVtwYXJ0aWFsTmFtZV0gPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfV07XG4gICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgIGF0dHIudmFsdWUgPSAnJztcblxuICAgICAgICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgICAgICAgICAgICBpZiAoSVNfSUUgJiYgbmFtZSAhPT0gYXR0ci5uYW1lKSB7XG4gICAgICAgICAgICAgICAgbm9kZS5yZW1vdmVBdHRyaWJ1dGUoYXR0ci5uYW1lKTtcbiAgICAgICAgICAgICAgICBub2RlLnNldEF0dHJpYnV0ZShuYW1lLCAnJyk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbXBpbGVJbmRleCArPSAxO1xuICB9XG5cbiAgcmV0dXJuIGZ1bmN0aW9uIHVwZGF0ZVRlbXBsYXRlSW5zdGFuY2UoaG9zdCwgdGFyZ2V0LCBhcmdzKSB7XG4gICAgY29uc3QgZGF0YSA9IGRhdGFNYXAuZ2V0KHRhcmdldCwgeyB0eXBlOiAnZnVuY3Rpb24nIH0pO1xuXG4gICAgaWYgKHRlbXBsYXRlICE9PSBkYXRhLnRlbXBsYXRlKSB7XG4gICAgICBpZiAoZGF0YS50ZW1wbGF0ZSB8fCB0YXJnZXQubm9kZVR5cGUgPT09IE5vZGUuRUxFTUVOVF9OT0RFKSByZW1vdmVUZW1wbGF0ZSh0YXJnZXQpO1xuICAgICAgZGF0YS5sYXN0QXJncyA9IG51bGw7XG5cbiAgICAgIGNvbnN0IGZyYWdtZW50ID0gZG9jdW1lbnQuaW1wb3J0Tm9kZShhcHBseVNoYWR5Q1NTKHRlbXBsYXRlLCBob3N0LnRhZ05hbWUpLmNvbnRlbnQsIHRydWUpO1xuXG4gICAgICBjb25zdCByZW5kZXJXYWxrZXIgPSBjcmVhdGVXYWxrZXIoZnJhZ21lbnQpO1xuICAgICAgY29uc3QgY2xvbmVkUGFydHMgPSBwYXJ0cy5zbGljZSgwKTtcblxuICAgICAgbGV0IHJlbmRlckluZGV4ID0gMDtcbiAgICAgIGxldCBjdXJyZW50UGFydCA9IGNsb25lZFBhcnRzLnNoaWZ0KCk7XG5cbiAgICAgIGNvbnN0IG1hcmtlcnMgPSBbXTtcblxuICAgICAgZGF0YS50ZW1wbGF0ZSA9IHRlbXBsYXRlO1xuICAgICAgZGF0YS5tYXJrZXJzID0gbWFya2VycztcblxuICAgICAgd2hpbGUgKHJlbmRlcldhbGtlci5uZXh0Tm9kZSgpKSB7XG4gICAgICAgIGNvbnN0IG5vZGUgPSByZW5kZXJXYWxrZXIuY3VycmVudE5vZGU7XG5cbiAgICAgICAgaWYgKG5vZGUubm9kZVR5cGUgPT09IE5vZGUuVEVYVF9OT0RFKSB7XG4gICAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICAgICAgICBpZiAoUExBQ0VIT0xERVJfUkVHRVhQX0VRVUFMLnRlc3Qobm9kZS50ZXh0Q29udGVudCkpIHtcbiAgICAgICAgICAgIG5vZGUudGV4dENvbnRlbnQgPSAnJztcbiAgICAgICAgICB9IGVsc2UgaWYgKElTX0lFKSB7XG4gICAgICAgICAgICBub2RlLnRleHRDb250ZW50ID0gbm9kZS50ZXh0Q29udGVudC5yZXBsYWNlKEFUVFJfUkVHRVhQLCAnJyk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgJiYgbm9kZS5ub2RlVHlwZSA9PT0gTm9kZS5FTEVNRU5UX05PREUpIHtcbiAgICAgICAgICBpZiAobm9kZS50YWdOYW1lLmluZGV4T2YoJy0nKSA+IC0xICYmICFjdXN0b21FbGVtZW50cy5nZXQobm9kZS50YWdOYW1lLnRvTG93ZXJDYXNlKCkpKSB7XG4gICAgICAgICAgICB0aHJvdyBFcnJvcihgTWlzc2luZyAnJHtzdHJpbmdpZnlFbGVtZW50KG5vZGUpfScgZWxlbWVudCBkZWZpbml0aW9uIGluICcke3N0cmluZ2lmeUVsZW1lbnQoaG9zdCl9J2ApO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHdoaWxlIChjdXJyZW50UGFydCAmJiBjdXJyZW50UGFydFswXSA9PT0gcmVuZGVySW5kZXgpIHtcbiAgICAgICAgICBtYXJrZXJzLnB1c2goW25vZGUsIGN1cnJlbnRQYXJ0WzFdXSk7XG4gICAgICAgICAgY3VycmVudFBhcnQgPSBjbG9uZWRQYXJ0cy5zaGlmdCgpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmVuZGVySW5kZXggKz0gMTtcbiAgICAgIH1cblxuICAgICAgaWYgKHRhcmdldC5ub2RlVHlwZSA9PT0gTm9kZS5URVhUX05PREUpIHtcbiAgICAgICAgZGF0YS5zdGFydE5vZGUgPSBmcmFnbWVudC5jaGlsZE5vZGVzWzBdO1xuICAgICAgICBkYXRhLmVuZE5vZGUgPSBmcmFnbWVudC5jaGlsZE5vZGVzW2ZyYWdtZW50LmNoaWxkTm9kZXMubGVuZ3RoIC0gMV07XG5cbiAgICAgICAgbGV0IHByZXZpb3VzQ2hpbGQgPSB0YXJnZXQ7XG5cbiAgICAgICAgbGV0IGNoaWxkID0gZnJhZ21lbnQuY2hpbGROb2Rlc1swXTtcbiAgICAgICAgd2hpbGUgKGNoaWxkKSB7XG4gICAgICAgICAgdGFyZ2V0LnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGNoaWxkLCBwcmV2aW91c0NoaWxkLm5leHRTaWJsaW5nKTtcbiAgICAgICAgICBwcmV2aW91c0NoaWxkID0gY2hpbGQ7XG4gICAgICAgICAgY2hpbGQgPSBmcmFnbWVudC5jaGlsZE5vZGVzWzBdO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0YXJnZXQuYXBwZW5kQ2hpbGQoZnJhZ21lbnQpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBkYXRhLm1hcmtlcnMubGVuZ3RoOyBpbmRleCArPSAxKSB7XG4gICAgICBjb25zdCBbbm9kZSwgbWFya2VyXSA9IGRhdGEubWFya2Vyc1tpbmRleF07XG4gICAgICBpZiAoIWRhdGEubGFzdEFyZ3MgfHwgZGF0YS5sYXN0QXJnc1tpbmRleF0gIT09IGFyZ3NbaW5kZXhdKSB7XG4gICAgICAgIG1hcmtlcihob3N0LCBub2RlLCBhcmdzW2luZGV4XSwgZGF0YS5sYXN0QXJncyA/IGRhdGEubGFzdEFyZ3NbaW5kZXhdIDogdW5kZWZpbmVkKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodGFyZ2V0Lm5vZGVUeXBlICE9PSBOb2RlLlRFWFRfTk9ERSkge1xuICAgICAgc2hhZHlDU1MoKHNoYWR5KSA9PiB7XG4gICAgICAgIGlmIChob3N0LnNoYWRvd1Jvb3QpIHtcbiAgICAgICAgICBpZiAoZGF0YS5sYXN0QXJncykge1xuICAgICAgICAgICAgc2hhZHkuc3R5bGVTdWJ0cmVlKGhvc3QpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBzaGFkeS5zdHlsZUVsZW1lbnQoaG9zdCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBkYXRhLmxhc3RBcmdzID0gYXJncztcbiAgfTtcbn1cbiJdfQ== | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90ZW1wbGF0ZS9jb3JlLmpzIl0sIm5hbWVzIjpbInByb2Nlc3MiLCJlbnYiLCJOT0RFX0VOViIsImUiLCJUSU1FU1RBTVAiLCJEYXRlIiwibm93IiwiZ2V0UGxhY2Vob2xkZXIiLCJpZCIsIlBMQUNFSE9MREVSX1JFR0VYUF9URVhUIiwiUExBQ0VIT0xERVJfUkVHRVhQX0VRVUFMIiwiUmVnRXhwIiwiUExBQ0VIT0xERVJfUkVHRVhQX0FMTCIsIkFUVFJfUFJFRklYIiwiQVRUUl9SRUdFWFAiLCJwcmVwYXJlZFRlbXBsYXRlcyIsIldlYWtNYXAiLCJhcHBseVNoYWR5Q1NTIiwidGVtcGxhdGUiLCJ0YWdOYW1lIiwic2hhZHkiLCJtYXAiLCJnZXQiLCJNYXAiLCJzZXQiLCJjbG9uZSIsImRvY3VtZW50IiwiY3JlYXRlRWxlbWVudCIsImNvbnRlbnQiLCJhcHBlbmRDaGlsZCIsImNsb25lTm9kZSIsInN0eWxlcyIsInF1ZXJ5U2VsZWN0b3JBbGwiLCJBcnJheSIsImZyb20iLCJmb3JFYWNoIiwic3R5bGUiLCJjb3VudCIsImNoaWxkTm9kZXMiLCJsZW5ndGgiLCJpIiwicGFyZW50Tm9kZSIsImluc2VydEJlZm9yZSIsImNyZWF0ZVRleHROb2RlIiwicHJlcGFyZVRlbXBsYXRlIiwidG9Mb3dlckNhc2UiLCJjcmVhdGVTaWduYXR1cmUiLCJwYXJ0cyIsInNpZ25hdHVyZSIsInJlZHVjZSIsImFjYyIsInBhcnQiLCJpbmRleCIsInNsaWNlIiwiam9pbiIsIm1hdGNoIiwiSVNfSUUiLCJyZXBsYWNlIiwiZ2V0UHJvcGVydHlOYW1lIiwic3RyaW5nIiwic3BsaXQiLCJwb3AiLCJyZXBsYWNlQ29tbWVudHMiLCJmcmFnbWVudCIsIml0ZXJhdG9yIiwiY3JlYXRlTm9kZUl0ZXJhdG9yIiwiTm9kZUZpbHRlciIsIlNIT1dfQ09NTUVOVCIsIm5vZGUiLCJuZXh0Tm9kZSIsInRlc3QiLCJ0ZXh0Q29udGVudCIsInJlbW92ZUNoaWxkIiwiY3JlYXRlSW50ZXJuYWxXYWxrZXIiLCJjb250ZXh0IiwiY3VycmVudE5vZGUiLCJ1bmRlZmluZWQiLCJuZXh0U2libGluZyIsImNyZWF0ZUV4dGVybmFsV2Fsa2VyIiwiY3JlYXRlVHJlZVdhbGtlciIsIlNIT1dfRUxFTUVOVCIsIlNIT1dfVEVYVCIsImNyZWF0ZVdhbGtlciIsIndpbmRvdyIsIlNoYWR5RE9NIiwiaW5Vc2UiLCJjb250YWluZXIiLCJjb21waWxlVGVtcGxhdGUiLCJyYXdQYXJ0cyIsImlzU1ZHIiwiaW5uZXJIVE1MIiwiY2hpbGRyZW4iLCJzdmdSb290IiwiZmlyc3RDaGlsZCIsImNvbXBpbGVXYWxrZXIiLCJjb21waWxlSW5kZXgiLCJub2RlVHlwZSIsIk5vZGUiLCJURVhUX05PREUiLCJ0ZXh0IiwicmVzdWx0cyIsInBsYWNlaG9sZGVyIiwiYmVmb3JlIiwibmV4dCIsInB1c2giLCJlcXVhbCIsInJlc29sdmVWYWx1ZSIsIkVMRU1FTlRfTk9ERSIsImF0dHJpYnV0ZXMiLCJhdHRyIiwidmFsdWUiLCJ0cmltIiwibmFtZSIsInByb3BlcnR5TmFtZSIsInJlbW92ZUF0dHJpYnV0ZSIsInBhcnRpYWxOYW1lIiwiaG9zdCIsInRhcmdldCIsImF0dHJWYWx1ZSIsImRhdGEiLCJkYXRhTWFwIiwic2V0QXR0cmlidXRlIiwidXBkYXRlVGVtcGxhdGVJbnN0YW5jZSIsImFyZ3MiLCJ0eXBlIiwicHJldkFyZ3MiLCJpbXBvcnROb2RlIiwicmVuZGVyV2Fsa2VyIiwiY2xvbmVkUGFydHMiLCJyZW5kZXJJbmRleCIsImN1cnJlbnRQYXJ0Iiwic2hpZnQiLCJtYXJrZXJzIiwiaW5kZXhPZiIsImN1c3RvbUVsZW1lbnRzIiwiRXJyb3IiLCJzdGFydE5vZGUiLCJlbmROb2RlIiwicHJldmlvdXNDaGlsZCIsImNoaWxkIiwibWFya2VyIiwic2hhZG93Um9vdCIsInN0eWxlU3VidHJlZSIsInN0eWxlRWxlbWVudCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBRUE7O0FBQ0E7Ozs7Ozs7Ozs7Ozs7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QUQsSUFBYUEsUUFBUSxDQUFDekUsS0FBRCxDQUFSLEtBQW9CdUUsSUFBSSxDQUFDdkUsS0FBRCxDQUF6QyxFQUFrRDtBQUNoRHdGLFFBQUFBLE1BQU0sQ0FBQ3hCLElBQUQsRUFBT2hELEtBQVAsRUFBYXVELElBQUksQ0FBQ3ZFLEtBQUQsQ0FBakIsRUFBMEJ5RSxRQUFRLEdBQUdBLFFBQVEsQ0FBQ3pFLEtBQUQsQ0FBWCxHQUFxQndCLFNBQXZELENBQU47QUFDRDtBQUNGOztBQUVELFFBQUl5QyxNQUFNLENBQUNyQixRQUFQLEtBQW9CQyxJQUFJLENBQUNDLFNBQTdCLEVBQXdDO0FBQ3RDLDJCQUFTLFVBQUM5RSxLQUFELEVBQVc7QUFDbEIsWUFBSWdHLElBQUksQ0FBQ3lCLFVBQVQsRUFBcUI7QUFDbkIsY0FBSWhCLFFBQUosRUFBYztBQUNaekcsWUFBQUEsS0FBSyxDQUFDMEgsWUFBTixDQUFtQjFCLElBQW5CO0FBQ0QsV0FGRCxNQUVPO0FBQ0xoRyxZQUFBQSxLQUFLLENBQUMySCxZQUFOLENBQW1CM0IsSUFBbkI7QUFDRDtBQUNGO0FBQ0YsT0FSRDtBQVNEO0FBQ0YsR0FsRkQ7QUFtRkQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBzdHJpbmdpZnlFbGVtZW50LCBzaGFkeUNTUywgSVNfSUUgfSBmcm9tICcuLi91dGlscyc7XG5pbXBvcnQgeyBkYXRhTWFwLCByZW1vdmVUZW1wbGF0ZSB9IGZyb20gJy4vdXRpbHMnO1xuXG5pbXBvcnQgcmVzb2x2ZVZhbHVlIGZyb20gJy4vcmVzb2x2ZXJzL3ZhbHVlJztcbmltcG9ydCByZXNvbHZlUHJvcGVydHkgZnJvbSAnLi9yZXNvbHZlcnMvcHJvcGVydHknO1xuXG4vKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xudHJ5IHsgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgfSBjYXRjaChlKSB7IHZhciBwcm9jZXNzID0geyBlbnY6IHsgTk9ERV9FTlY6ICdwcm9kdWN0aW9uJyB9IH07IH0gLy8gZXNsaW50LWRpc2FibGUtbGluZVxuXG5jb25zdCBUSU1FU1RBTVAgPSBEYXRlLm5vdygpO1xuXG5leHBvcnQgY29uc3QgZ2V0UGxhY2Vob2xkZXIgPSAoaWQgPSAwKSA9PiBge3toLSR7VElNRVNUQU1QfS0ke2lkfX19YDtcblxuY29uc3QgUExBQ0VIT0xERVJfUkVHRVhQX1RFWFQgPSBnZXRQbGFjZWhvbGRlcignKFxcXFxkKyknKTtcbmNvbnN0IFBMQUNFSE9MREVSX1JFR0VYUF9FUVVBTCA9IG5ldyBSZWdFeHAoYF4ke1BMQUNFSE9MREVSX1JFR0VYUF9URVhUfSRgKTtcbmNvbnN0IFBMQUNFSE9MREVSX1JFR0VYUF9BTEwgPSBuZXcgUmVnRXhwKFBMQUNFSE9MREVSX1JFR0VYUF9URVhULCAnZycpO1xuXG5jb25zdCBBVFRSX1BSRUZJWCA9IGAtLSR7VElNRVNUQU1QfS0tYDtcbmNvbnN0IEFUVFJfUkVHRVhQID0gbmV3IFJlZ0V4cChBVFRSX1BSRUZJWCwgJ2cnKTtcblxuY29uc3QgcHJlcGFyZWRUZW1wbGF0ZXMgPSBuZXcgV2Vha01hcCgpO1xuXG4vKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuZnVuY3Rpb24gYXBwbHlTaGFkeUNTUyh0ZW1wbGF0ZSwgdGFnTmFtZSkge1xuICBpZiAoIXRhZ05hbWUpIHJldHVybiB0ZW1wbGF0ZTtcblxuICByZXR1cm4gc2hhZHlDU1MoKHNoYWR5KSA9PiB7XG4gICAgbGV0IG1hcCA9IHByZXBhcmVkVGVtcGxhdGVzLmdldCh0ZW1wbGF0ZSk7XG4gICAgaWYgKCFtYXApIHtcbiAgICAgIG1hcCA9IG5ldyBNYXAoKTtcbiAgICAgIHByZXBhcmVkVGVtcGxhdGVzLnNldCh0ZW1wbGF0ZSwgbWFwKTtcbiAgICB9XG5cbiAgICBsZXQgY2xvbmUgPSBtYXAuZ2V0KHRhZ05hbWUpO1xuXG4gICAgaWYgKCFjbG9uZSkge1xuICAgICAgY2xvbmUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZW1wbGF0ZScpO1xuICAgICAgY2xvbmUuY29udGVudC5hcHBlbmRDaGlsZCh0ZW1wbGF0ZS5jb250ZW50LmNsb25lTm9kZSh0cnVlKSk7XG5cbiAgICAgIG1hcC5zZXQodGFnTmFtZSwgY2xvbmUpO1xuXG4gICAgICBjb25zdCBzdHlsZXMgPSBjbG9uZS5jb250ZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ3N0eWxlJyk7XG5cbiAgICAgIEFycmF5LmZyb20oc3R5bGVzKS5mb3JFYWNoKChzdHlsZSkgPT4ge1xuICAgICAgICBjb25zdCBjb3VudCA9IHN0eWxlLmNoaWxkTm9kZXMubGVuZ3RoICsgMTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjb3VudDsgaSArPSAxKSB7XG4gICAgICAgICAgc3R5bGUucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoZ2V0UGxhY2Vob2xkZXIoKSksIHN0eWxlKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIHNoYWR5LnByZXBhcmVUZW1wbGF0ZShjbG9uZSwgdGFnTmFtZS50b0xvd2VyQ2FzZSgpKTtcbiAgICB9XG4gICAgcmV0dXJuIGNsb25lO1xuICB9LCB0ZW1wbGF0ZSk7XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZVNpZ25hdHVyZShwYXJ0cywgc3R5bGVzKSB7XG4gIGxldCBzaWduYXR1cmUgPSBwYXJ0cy5yZWR1Y2UoKGFjYywgcGFydCwgaW5kZXgpID0+IHtcbiAgICBpZiAoaW5kZXggPT09IDApIHtcbiAgICAgIHJldHVybiBwYXJ0O1xuICAgIH1cblxuICAgIGlmIChwYXJ0cy5zbGljZShpbmRleCkuam9pbignJykubWF0Y2goL15cXHMqPFxcL1xccyoodGFibGV8dHJ8dGhlYWR8dGJvZHl8dGZvb3R8Y29sZ3JvdXApPi8pKSB7XG4gICAgICByZXR1cm4gYCR7YWNjfTwhLS0ke2dldFBsYWNlaG9sZGVyKGluZGV4IC0gMSl9LS0+JHtwYXJ0fWA7XG4gICAgfVxuICAgIHJldHVybiBhY2MgKyBnZXRQbGFjZWhvbGRlcihpbmRleCAtIDEpICsgcGFydDtcbiAgfSwgJycpO1xuXG4gIGlmIChzdHlsZXMpIHtcbiAgICBzaWduYXR1cmUgKz0gYDxzdHlsZT5cXG4ke3N0eWxlcy5qb2luKCdcXG4vKi0tLS0tLSovXFxuJyl9XFxuPC9zdHlsZT5gO1xuICB9XG5cbiAgLyogaXN0YW5idWwgaWdub3JlIGlmICovXG4gIGlmIChJU19JRSkge1xuICAgIHJldHVybiBzaWduYXR1cmUucmVwbGFjZShcbiAgICAgIC9zdHlsZVxccyo9XFxzKihbXCJdW15cIl0rW1wiXXxbJ11bXiddK1snXXxbXlxcc1wiJzw+L10rKS9nLFxuICAgICAgKG1hdGNoKSA9PiBgJHtBVFRSX1BSRUZJWH0ke21hdGNofWAsXG4gICAgKTtcbiAgfVxuXG4gIHJldHVybiBzaWduYXR1cmU7XG59XG5cbmZ1bmN0aW9uIGdldFByb3BlcnR5TmFtZShzdHJpbmcpIHtcbiAgcmV0dXJuIHN0cmluZy5yZXBsYWNlKC9cXHMqPVxccypbJ1wiXSokL2csICcnKS5zcGxpdCgnICcpLnBvcCgpO1xufVxuXG5mdW5jdGlvbiByZXBsYWNlQ29tbWVudHMoZnJhZ21lbnQpIHtcbiAgY29uc3QgaXRlcmF0b3IgPSBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZnJhZ21lbnQsIE5vZGVGaWx0ZXIuU0hPV19DT01NRU5ULCBudWxsLCBmYWxzZSk7XG4gIGxldCBub2RlO1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uZC1hc3NpZ25cbiAgd2hpbGUgKG5vZGUgPSBpdGVyYXRvci5uZXh0Tm9kZSgpKSB7XG4gICAgaWYgKFBMQUNFSE9MREVSX1JFR0VYUF9FUVVBTC50ZXN0KG5vZGUudGV4dENvbnRlbnQpKSB7XG4gICAgICBub2RlLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKG5vZGUudGV4dENvbnRlbnQpLCBub2RlKTtcbiAgICAgIG5vZGUucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChub2RlKTtcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUludGVybmFsV2Fsa2VyKGNvbnRleHQpIHtcbiAgbGV0IG5vZGU7XG5cbiAgcmV0dXJuIHtcbiAgICBnZXQgY3VycmVudE5vZGUoKSB7IHJldHVybiBub2RlOyB9LFxuICAgIG5leHROb2RlKCkge1xuICAgICAgaWYgKG5vZGUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICBub2RlID0gY29udGV4dC5jaGlsZE5vZGVzWzBdO1xuICAgICAgfSBlbHNlIGlmIChub2RlLmNoaWxkTm9kZXMubGVuZ3RoKSB7XG4gICAgICAgIG5vZGUgPSBub2RlLmNoaWxkTm9kZXNbMF07XG4gICAgICB9IGVsc2UgaWYgKG5vZGUubmV4dFNpYmxpbmcpIHtcbiAgICAgICAgbm9kZSA9IG5vZGUubmV4dFNpYmxpbmc7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBsZXQgcGFyZW50Tm9kZSA9IG5vZGUucGFyZW50Tm9kZTtcbiAgICAgICAgbm9kZSA9IHBhcmVudE5vZGUubmV4dFNpYmxpbmc7XG5cbiAgICAgICAgd2hpbGUgKCFub2RlICYmIHBhcmVudE5vZGUgIT09IGNvbnRleHQpIHtcbiAgICAgICAgICBwYXJlbnROb2RlID0gcGFyZW50Tm9kZS5wYXJlbnROb2RlO1xuICAgICAgICAgIG5vZGUgPSBwYXJlbnROb2RlLm5leHRTaWJsaW5nO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldHVybiAhIW5vZGU7XG4gICAgfSxcbiAgfTtcbn1cblxuZnVuY3Rpb24gY3JlYXRlRXh0ZXJuYWxXYWxrZXIoY29udGV4dCkge1xuICByZXR1cm4gZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihcbiAgICBjb250ZXh0LFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1iaXR3aXNlXG4gICAgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfVEVYVCxcbiAgICBudWxsLFxuICAgIGZhbHNlLFxuICApO1xufVxuXG4vKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuY29uc3QgY3JlYXRlV2Fsa2VyID0gdHlwZW9mIHdpbmRvdy5TaGFkeURPTSA9PT0gJ29iamVjdCcgJiYgd2luZG93LlNoYWR5RE9NLmluVXNlID8gY3JlYXRlSW50ZXJuYWxXYWxrZXIgOiBjcmVhdGVFeHRlcm5hbFdhbGtlcjtcblxuY29uc3QgY29udGFpbmVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG5leHBvcnQgZnVuY3Rpb24gY29tcGlsZVRlbXBsYXRlKHJhd1BhcnRzLCBpc1NWRywgc3R5bGVzKSB7XG4gIGNvbnN0IHRlbXBsYXRlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGVtcGxhdGUnKTtcbiAgY29uc3QgcGFydHMgPSBbXTtcblxuICBsZXQgc2lnbmF0dXJlID0gY3JlYXRlU2lnbmF0dXJlKHJhd1BhcnRzLCBzdHlsZXMpO1xuICBpZiAoaXNTVkcpIHNpZ25hdHVyZSA9IGA8c3ZnPiR7c2lnbmF0dXJlfTwvc3ZnPmA7XG5cbiAgLyogaXN0YW5idWwgaWdub3JlIGlmICovXG4gIGlmIChJU19JRSkge1xuICAgIHRlbXBsYXRlLmlubmVySFRNTCA9IHNpZ25hdHVyZTtcbiAgfSBlbHNlIHtcbiAgICBjb250YWluZXIuaW5uZXJIVE1MID0gYDx0ZW1wbGF0ZT4ke3NpZ25hdHVyZX08L3RlbXBsYXRlPmA7XG4gICAgdGVtcGxhdGUuY29udGVudC5hcHBlbmRDaGlsZChjb250YWluZXIuY2hpbGRyZW5bMF0uY29udGVudCk7XG4gIH1cblxuICBpZiAoaXNTVkcpIHtcbiAgICBjb25zdCBzdmdSb290ID0gdGVtcGxhdGUuY29udGVudC5maXJzdENoaWxkO1xuICAgIHRlbXBsYXRlLmNvbnRlbnQucmVtb3ZlQ2hpbGQoc3ZnUm9vdCk7XG4gICAgQXJyYXkuZnJvbShzdmdSb290LmNoaWxkTm9kZXMpLmZvckVhY2goKG5vZGUpID0+IHRlbXBsYXRlLmNvbnRlbnQuYXBwZW5kQ2hpbGQobm9kZSkpO1xuICB9XG5cbiAgcmVwbGFjZUNvbW1lbnRzKHRlbXBsYXRlLmNvbnRlbnQpO1xuXG4gIGNvbnN0IGNvbXBpbGVXYWxrZXIgPSBjcmVhdGVXYWxrZXIodGVtcGxhdGUuY29udGVudCk7XG4gIGxldCBjb21waWxlSW5kZXggPSAwO1xuXG4gIHdoaWxlIChjb21waWxlV2Fsa2VyLm5leHROb2RlKCkpIHtcbiAgICBjb25zdCBub2RlID0gY29tcGlsZVdhbGtlci5jdXJyZW50Tm9kZTtcblxuICAgIGlmIChub2RlLm5vZGVUeXBlID09PSBOb2RlLlRFWFRfTk9ERSkge1xuICAgICAgY29uc3QgdGV4dCA9IG5vZGUudGV4dENvbnRlbnQ7XG5cbiAgICAgIGlmICghdGV4dC5tYXRjaChQTEFDRUhPTERFUl9SRUdFWFBfRVFVQUwpKSB7XG4gICAgICAgIGNvbnN0IHJlc3VsdHMgPSB0ZXh0Lm1hdGNoKFBMQUNFSE9MREVSX1JFR0VYUF9BTEwpO1xuICAgICAgICBpZiAocmVzdWx0cykge1xuICAgICAgICAgIGxldCBjdXJyZW50Tm9kZSA9IG5vZGU7XG4gICAgICAgICAgcmVzdWx0c1xuICAgICAgICAgICAgLnJlZHVjZSgoYWNjLCBwbGFjZWhvbGRlcikgPT4ge1xuICAgICAgICAgICAgICBjb25zdCBbYmVmb3JlLCBuZXh0XSA9IGFjYy5wb3AoKS5zcGxpdChwbGFjZWhvbGRlcik7XG4gICAgICAgICAgICAgIGlmIChiZWZvcmUpIGFjYy5wdXNoKGJlZm9yZSk7XG4gICAgICAgICAgICAgIGFjYy5wdXNoKHBsYWNlaG9sZGVyKTtcbiAgICAgICAgICAgICAgaWYgKG5leHQpIGFjYy5wdXNoKG5leHQpO1xuICAgICAgICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgICAgICAgfSwgW3RleHRdKVxuICAgICAgICAgICAgLmZvckVhY2goKHBhcnQsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgIGlmIChpbmRleCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIGN1cnJlbnROb2RlLnRleHRDb250ZW50ID0gcGFydDtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjdXJyZW50Tm9kZSA9IGN1cnJlbnROb2RlLnBhcmVudE5vZGVcbiAgICAgICAgICAgICAgICAgIC5pbnNlcnRCZWZvcmUoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUocGFydCksIGN1cnJlbnROb2RlLm5leHRTaWJsaW5nKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgY29uc3QgZXF1YWwgPSBub2RlLnRleHRDb250ZW50Lm1hdGNoKFBMQUNFSE9MREVSX1JFR0VYUF9FUVVBTCk7XG4gICAgICBpZiAoZXF1YWwpIHtcbiAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAgICAgaWYgKCFJU19JRSkgbm9kZS50ZXh0Q29udGVudCA9ICcnO1xuICAgICAgICBwYXJ0c1tlcXVhbFsxXV0gPSBbY29tcGlsZUluZGV4LCByZXNvbHZlVmFsdWVdO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqLyAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tbG9uZWx5LWlmXG4gICAgICBpZiAobm9kZS5ub2RlVHlwZSA9PT0gTm9kZS5FTEVNRU5UX05PREUpIHtcbiAgICAgICAgQXJyYXkuZnJvbShub2RlLmF0dHJpYnV0ZXMpLmZvckVhY2goKGF0dHIpID0+IHtcbiAgICAgICAgICBjb25zdCB2YWx1ZSA9IGF0dHIudmFsdWUudHJpbSgpO1xuICAgICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgICAgICAgY29uc3QgbmFtZSA9IElTX0lFID8gYXR0ci5uYW1lLnJlcGxhY2UoQVRUUl9QUkVGSVgsICcnKSA6IGF0dHIubmFtZTtcbiAgICAgICAgICBjb25zdCBlcXVhbCA9IHZhbHVlLm1hdGNoKFBMQUNFSE9MREVSX1JFR0VYUF9FUVVBTCk7XG4gICAgICAgICAgaWYgKGVxdWFsKSB7XG4gICAgICAgICAgICBjb25zdCBwcm9wZXJ0eU5hbWUgPSBnZXRQcm9wZXJ0eU5hbWUocmF3UGFydHNbZXF1YWxbMV1dKTtcbiAgICAgICAgICAgIHBhcnRzW2VxdWFsWzFdXSA9IFtjb21waWxlSW5kZXgsIHJlc29sdmVQcm9wZXJ0eShuYW1lLCBwcm9wZXJ0eU5hbWUsIGlzU1ZHKV07XG4gICAgICAgICAgICBub2RlLnJlbW92ZUF0dHJpYnV0ZShhdHRyLm5hbWUpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCByZXN1bHRzID0gdmFsdWUubWF0Y2goUExBQ0VIT0xERVJfUkVHRVhQX0FMTCk7XG4gICAgICAgICAgICBpZiAocmVzdWx0cykge1xuICAgICAgICAgICAgICBjb25zdCBwYXJ0aWFsTmFtZSA9IGBhdHRyX18ke25hbWV9YDtcblxuICAgICAgICAgICAgICByZXN1bHRzLmZvckVhY2goKHBsYWNlaG9sZGVyLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IFssIGlkXSA9IHBsYWNlaG9sZGVyLm1hdGNoKFBMQUNFSE9MREVSX1JFR0VYUF9FUVVBTCk7XG4gICAgICAgICAgICAgICAgcGFydHNbaWRdID0gW2NvbXBpbGVJbmRleCwgKGhvc3QsIHRhcmdldCwgYXR0clZhbHVlKSA9PiB7XG4gICAgICAgICAgICAgICAgICBjb25zdCBkYXRhID0gZGF0YU1hcC5nZXQodGFyZ2V0LCB7fSk7XG4gICAgICAgICAgICAgICAgICBkYXRhW3BhcnRpYWxOYW1lXSA9IChkYXRhW3BhcnRpYWxOYW1lXSB8fCB2YWx1ZSkucmVwbGFjZShwbGFjZWhvbGRlciwgYXR0clZhbHVlID09IG51bGwgPyAnJyA6IGF0dHJWYWx1ZSk7XG5cbiAgICAgICAgICAgICAgICAgIGlmICgocmVzdWx0cy5sZW5ndGggPT09IDEpIHx8IChpbmRleCArIDEgPT09IHJlc3VsdHMubGVuZ3RoKSkge1xuICAgICAgICAgICAgICAgICAgICB0YXJnZXQuc2V0QXR0cmlidXRlKG5hbWUsIGRhdGFbcGFydGlhbE5hbWVdKTtcbiAgICAgICAgICAgICAgICAgICAgZGF0YVtwYXJ0aWFsTmFtZV0gPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfV07XG4gICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgIGF0dHIudmFsdWUgPSAnJztcblxuICAgICAgICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgICAgICAgICAgICBpZiAoSVNfSUUgJiYgbmFtZSAhPT0gYXR0ci5uYW1lKSB7XG4gICAgICAgICAgICAgICAgbm9kZS5yZW1vdmVBdHRyaWJ1dGUoYXR0ci5uYW1lKTtcbiAgICAgICAgICAgICAgICBub2RlLnNldEF0dHJpYnV0ZShuYW1lLCAnJyk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbXBpbGVJbmRleCArPSAxO1xuICB9XG5cbiAgcmV0dXJuIGZ1bmN0aW9uIHVwZGF0ZVRlbXBsYXRlSW5zdGFuY2UoaG9zdCwgdGFyZ2V0LCBhcmdzKSB7XG4gICAgY29uc3QgZGF0YSA9IGRhdGFNYXAuZ2V0KHRhcmdldCwgeyB0eXBlOiAnZnVuY3Rpb24nIH0pO1xuXG4gICAgaWYgKHRlbXBsYXRlICE9PSBkYXRhLnRlbXBsYXRlKSB7XG4gICAgICBpZiAoZGF0YS50ZW1wbGF0ZSB8fCB0YXJnZXQubm9kZVR5cGUgPT09IE5vZGUuRUxFTUVOVF9OT0RFKSByZW1vdmVUZW1wbGF0ZSh0YXJnZXQpO1xuICAgICAgZGF0YS5wcmV2QXJncyA9IG51bGw7XG5cbiAgICAgIGNvbnN0IGZyYWdtZW50ID0gZG9jdW1lbnQuaW1wb3J0Tm9kZShhcHBseVNoYWR5Q1NTKHRlbXBsYXRlLCBob3N0LnRhZ05hbWUpLmNvbnRlbnQsIHRydWUpO1xuXG4gICAgICBjb25zdCByZW5kZXJXYWxrZXIgPSBjcmVhdGVXYWxrZXIoZnJhZ21lbnQpO1xuICAgICAgY29uc3QgY2xvbmVkUGFydHMgPSBwYXJ0cy5zbGljZSgwKTtcblxuICAgICAgbGV0IHJlbmRlckluZGV4ID0gMDtcbiAgICAgIGxldCBjdXJyZW50UGFydCA9IGNsb25lZFBhcnRzLnNoaWZ0KCk7XG5cbiAgICAgIGNvbnN0IG1hcmtlcnMgPSBbXTtcblxuICAgICAgZGF0YS50ZW1wbGF0ZSA9IHRlbXBsYXRlO1xuICAgICAgZGF0YS5tYXJrZXJzID0gbWFya2VycztcblxuICAgICAgd2hpbGUgKHJlbmRlcldhbGtlci5uZXh0Tm9kZSgpKSB7XG4gICAgICAgIGNvbnN0IG5vZGUgPSByZW5kZXJXYWxrZXIuY3VycmVudE5vZGU7XG5cbiAgICAgICAgaWYgKG5vZGUubm9kZVR5cGUgPT09IE5vZGUuVEVYVF9OT0RFKSB7XG4gICAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICAgICAgICBpZiAoUExBQ0VIT0xERVJfUkVHRVhQX0VRVUFMLnRlc3Qobm9kZS50ZXh0Q29udGVudCkpIHtcbiAgICAgICAgICAgIG5vZGUudGV4dENvbnRlbnQgPSAnJztcbiAgICAgICAgICB9IGVsc2UgaWYgKElTX0lFKSB7XG4gICAgICAgICAgICBub2RlLnRleHRDb250ZW50ID0gbm9kZS50ZXh0Q29udGVudC5yZXBsYWNlKEFUVFJfUkVHRVhQLCAnJyk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgJiYgbm9kZS5ub2RlVHlwZSA9PT0gTm9kZS5FTEVNRU5UX05PREUpIHtcbiAgICAgICAgICBpZiAobm9kZS50YWdOYW1lLmluZGV4T2YoJy0nKSA+IC0xICYmICFjdXN0b21FbGVtZW50cy5nZXQobm9kZS50YWdOYW1lLnRvTG93ZXJDYXNlKCkpKSB7XG4gICAgICAgICAgICB0aHJvdyBFcnJvcihgTWlzc2luZyAnJHtzdHJpbmdpZnlFbGVtZW50KG5vZGUpfScgZWxlbWVudCBkZWZpbml0aW9uIGluICcke3N0cmluZ2lmeUVsZW1lbnQoaG9zdCl9J2ApO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHdoaWxlIChjdXJyZW50UGFydCAmJiBjdXJyZW50UGFydFswXSA9PT0gcmVuZGVySW5kZXgpIHtcbiAgICAgICAgICBtYXJrZXJzLnB1c2goW25vZGUsIGN1cnJlbnRQYXJ0WzFdXSk7XG4gICAgICAgICAgY3VycmVudFBhcnQgPSBjbG9uZWRQYXJ0cy5zaGlmdCgpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmVuZGVySW5kZXggKz0gMTtcbiAgICAgIH1cblxuICAgICAgaWYgKHRhcmdldC5ub2RlVHlwZSA9PT0gTm9kZS5URVhUX05PREUpIHtcbiAgICAgICAgZGF0YS5zdGFydE5vZGUgPSBmcmFnbWVudC5jaGlsZE5vZGVzWzBdO1xuICAgICAgICBkYXRhLmVuZE5vZGUgPSBmcmFnbWVudC5jaGlsZE5vZGVzW2ZyYWdtZW50LmNoaWxkTm9kZXMubGVuZ3RoIC0gMV07XG5cbiAgICAgICAgbGV0IHByZXZpb3VzQ2hpbGQgPSB0YXJnZXQ7XG5cbiAgICAgICAgbGV0IGNoaWxkID0gZnJhZ21lbnQuY2hpbGROb2Rlc1swXTtcbiAgICAgICAgd2hpbGUgKGNoaWxkKSB7XG4gICAgICAgICAgdGFyZ2V0LnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGNoaWxkLCBwcmV2aW91c0NoaWxkLm5leHRTaWJsaW5nKTtcbiAgICAgICAgICBwcmV2aW91c0NoaWxkID0gY2hpbGQ7XG4gICAgICAgICAgY2hpbGQgPSBmcmFnbWVudC5jaGlsZE5vZGVzWzBdO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0YXJnZXQuYXBwZW5kQ2hpbGQoZnJhZ21lbnQpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IHByZXZBcmdzID0gZGF0YS5wcmV2QXJncztcbiAgICBkYXRhLnByZXZBcmdzID0gYXJncztcblxuICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBkYXRhLm1hcmtlcnMubGVuZ3RoOyBpbmRleCArPSAxKSB7XG4gICAgICBjb25zdCBbbm9kZSwgbWFya2VyXSA9IGRhdGEubWFya2Vyc1tpbmRleF07XG4gICAgICBpZiAoIXByZXZBcmdzIHx8IHByZXZBcmdzW2luZGV4XSAhPT0gYXJnc1tpbmRleF0pIHtcbiAgICAgICAgbWFya2VyKGhvc3QsIG5vZGUsIGFyZ3NbaW5kZXhdLCBwcmV2QXJncyA/IHByZXZBcmdzW2luZGV4XSA6IHVuZGVmaW5lZCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHRhcmdldC5ub2RlVHlwZSAhPT0gTm9kZS5URVhUX05PREUpIHtcbiAgICAgIHNoYWR5Q1NTKChzaGFkeSkgPT4ge1xuICAgICAgICBpZiAoaG9zdC5zaGFkb3dSb290KSB7XG4gICAgICAgICAgaWYgKHByZXZBcmdzKSB7XG4gICAgICAgICAgICBzaGFkeS5zdHlsZVN1YnRyZWUoaG9zdCk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHNoYWR5LnN0eWxlRWxlbWVudChob3N0KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfTtcbn1cbiJdfQ== |
@@ -10,3 +10,3 @@ "use strict"; | ||
var eventMap = new WeakMap(); | ||
var targets = new WeakMap(); | ||
@@ -16,3 +16,7 @@ function resolveEventListener(eventType) { | ||
if (lastValue) { | ||
target.removeEventListener(eventType, eventMap.get(lastValue), lastValue.options !== undefined ? lastValue.options : false); | ||
var eventMap = targets.get(target); | ||
if (eventMap) { | ||
target.removeEventListener(eventType, eventMap.get(lastValue), lastValue.options !== undefined ? lastValue.options : false); | ||
} | ||
} | ||
@@ -25,7 +29,17 @@ | ||
eventMap.set(value, value.bind(null, host)); | ||
target.addEventListener(eventType, eventMap.get(value), value.options !== undefined ? value.options : false); | ||
var _eventMap = targets.get(target); | ||
if (!_eventMap) { | ||
_eventMap = new WeakMap(); | ||
targets.set(target, _eventMap); | ||
} | ||
var callback = value.bind(null, host); | ||
_eventMap.set(value, callback); | ||
target.addEventListener(eventType, callback, value.options !== undefined ? value.options : false); | ||
} | ||
}; | ||
} | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90ZW1wbGF0ZS9yZXNvbHZlcnMvZXZlbnQuanMiXSwibmFtZXMiOlsiZXZlbnRNYXAiLCJXZWFrTWFwIiwicmVzb2x2ZUV2ZW50TGlzdGVuZXIiLCJldmVudFR5cGUiLCJob3N0IiwidGFyZ2V0IiwidmFsdWUiLCJsYXN0VmFsdWUiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwiZ2V0Iiwib3B0aW9ucyIsInVuZGVmaW5lZCIsIkVycm9yIiwic2V0IiwiYmluZCIsImFkZEV2ZW50TGlzdGVuZXIiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBLElBQU1BLFFBQVEsR0FBRyxJQUFJQyxPQUFKLEVBQWpCOztBQUVlLFNBQVNDLG9CQUFULENBQThCQyxTQUE5QixFQUF5QztBQUN0RCxTQUFPLFVBQUNDLElBQUQsRUFBT0MsTUFBUCxFQUFlQyxLQUFmLEVBQXNCQyxTQUF0QixFQUFvQztBQUN6QyxRQUFJQSxTQUFKLEVBQWU7QUFDYkYsTUFBQUEsTUFBTSxDQUFDRyxtQkFBUCxDQUNFTCxTQURGLEVBRUVILFFBQVEsQ0FBQ1MsR0FBVCxDQUFhRixTQUFiLENBRkYsRUFHRUEsU0FBUyxDQUFDRyxPQUFWLEtBQXNCQyxTQUF0QixHQUFrQ0osU0FBUyxDQUFDRyxPQUE1QyxHQUFzRCxLQUh4RDtBQUtEOztBQUVELFFBQUlKLEtBQUosRUFBVztBQUNULFVBQUksT0FBT0EsS0FBUCxLQUFpQixVQUFyQixFQUFpQztBQUMvQixjQUFNTSxLQUFLLHNEQUE4Q04sS0FBOUMsR0FBWDtBQUNEOztBQUVETixNQUFBQSxRQUFRLENBQUNhLEdBQVQsQ0FBYVAsS0FBYixFQUFvQkEsS0FBSyxDQUFDUSxJQUFOLENBQVcsSUFBWCxFQUFpQlYsSUFBakIsQ0FBcEI7QUFFQUMsTUFBQUEsTUFBTSxDQUFDVSxnQkFBUCxDQUNFWixTQURGLEVBRUVILFFBQVEsQ0FBQ1MsR0FBVCxDQUFhSCxLQUFiLENBRkYsRUFHRUEsS0FBSyxDQUFDSSxPQUFOLEtBQWtCQyxTQUFsQixHQUE4QkwsS0FBSyxDQUFDSSxPQUFwQyxHQUE4QyxLQUhoRDtBQUtEO0FBQ0YsR0F0QkQ7QUF1QkQiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBldmVudE1hcCA9IG5ldyBXZWFrTWFwKCk7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHJlc29sdmVFdmVudExpc3RlbmVyKGV2ZW50VHlwZSkge1xuICByZXR1cm4gKGhvc3QsIHRhcmdldCwgdmFsdWUsIGxhc3RWYWx1ZSkgPT4ge1xuICAgIGlmIChsYXN0VmFsdWUpIHtcbiAgICAgIHRhcmdldC5yZW1vdmVFdmVudExpc3RlbmVyKFxuICAgICAgICBldmVudFR5cGUsXG4gICAgICAgIGV2ZW50TWFwLmdldChsYXN0VmFsdWUpLFxuICAgICAgICBsYXN0VmFsdWUub3B0aW9ucyAhPT0gdW5kZWZpbmVkID8gbGFzdFZhbHVlLm9wdGlvbnMgOiBmYWxzZSxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICBpZiAodHlwZW9mIHZhbHVlICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHRocm93IEVycm9yKGBFdmVudCBsaXN0ZW5lciBtdXN0IGJlIGEgZnVuY3Rpb246ICR7dHlwZW9mIHZhbHVlfWApO1xuICAgICAgfVxuXG4gICAgICBldmVudE1hcC5zZXQodmFsdWUsIHZhbHVlLmJpbmQobnVsbCwgaG9zdCkpO1xuXG4gICAgICB0YXJnZXQuYWRkRXZlbnRMaXN0ZW5lcihcbiAgICAgICAgZXZlbnRUeXBlLFxuICAgICAgICBldmVudE1hcC5nZXQodmFsdWUpLFxuICAgICAgICB2YWx1ZS5vcHRpb25zICE9PSB1bmRlZmluZWQgPyB2YWx1ZS5vcHRpb25zIDogZmFsc2UsXG4gICAgICApO1xuICAgIH1cbiAgfTtcbn1cbiJdfQ== | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90ZW1wbGF0ZS9yZXNvbHZlcnMvZXZlbnQuanMiXSwibmFtZXMiOlsidGFyZ2V0cyIsIldlYWtNYXAiLCJyZXNvbHZlRXZlbnRMaXN0ZW5lciIsImV2ZW50VHlwZSIsImhvc3QiLCJ0YXJnZXQiLCJ2YWx1ZSIsImxhc3RWYWx1ZSIsImV2ZW50TWFwIiwiZ2V0IiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsIm9wdGlvbnMiLCJ1bmRlZmluZWQiLCJFcnJvciIsInNldCIsImNhbGxiYWNrIiwiYmluZCIsImFkZEV2ZW50TGlzdGVuZXIiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBLElBQU1BLE9BQU8sR0FBRyxJQUFJQyxPQUFKLEVBQWhCOztBQUVlLFNBQVNDLG9CQUFULENBQThCQyxTQUE5QixFQUF5QztBQUN0RCxTQUFPLFVBQUNDLElBQUQsRUFBT0MsTUFBUCxFQUFlQyxLQUFmLEVBQXNCQyxTQUF0QixFQUFvQztBQUN6QyxRQUFJQSxTQUFKLEVBQWU7QUFDYixVQUFNQyxRQUFRLEdBQUdSLE9BQU8sQ0FBQ1MsR0FBUixDQUFZSixNQUFaLENBQWpCOztBQUNBLFVBQUlHLFFBQUosRUFBYztBQUNaSCxRQUFBQSxNQUFNLENBQUNLLG1CQUFQLENBQ0VQLFNBREYsRUFFRUssUUFBUSxDQUFDQyxHQUFULENBQWFGLFNBQWIsQ0FGRixFQUdFQSxTQUFTLENBQUNJLE9BQVYsS0FBc0JDLFNBQXRCLEdBQWtDTCxTQUFTLENBQUNJLE9BQTVDLEdBQXNELEtBSHhEO0FBS0Q7QUFDRjs7QUFFRCxRQUFJTCxLQUFKLEVBQVc7QUFDVCxVQUFJLE9BQU9BLEtBQVAsS0FBaUIsVUFBckIsRUFBaUM7QUFDL0IsY0FBTU8sS0FBSyxzREFBOENQLEtBQTlDLEdBQVg7QUFDRDs7QUFFRCxVQUFJRSxTQUFRLEdBQUdSLE9BQU8sQ0FBQ1MsR0FBUixDQUFZSixNQUFaLENBQWY7O0FBQ0EsVUFBSSxDQUFDRyxTQUFMLEVBQWU7QUFDYkEsUUFBQUEsU0FBUSxHQUFHLElBQUlQLE9BQUosRUFBWDtBQUNBRCxRQUFBQSxPQUFPLENBQUNjLEdBQVIsQ0FBWVQsTUFBWixFQUFvQkcsU0FBcEI7QUFDRDs7QUFFRCxVQUFNTyxRQUFRLEdBQUdULEtBQUssQ0FBQ1UsSUFBTixDQUFXLElBQVgsRUFBaUJaLElBQWpCLENBQWpCOztBQUNBSSxNQUFBQSxTQUFRLENBQUNNLEdBQVQsQ0FBYVIsS0FBYixFQUFvQlMsUUFBcEI7O0FBRUFWLE1BQUFBLE1BQU0sQ0FBQ1ksZ0JBQVAsQ0FDRWQsU0FERixFQUVFWSxRQUZGLEVBR0VULEtBQUssQ0FBQ0ssT0FBTixLQUFrQkMsU0FBbEIsR0FBOEJOLEtBQUssQ0FBQ0ssT0FBcEMsR0FBOEMsS0FIaEQ7QUFLRDtBQUNGLEdBaENEO0FBaUNEIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgdGFyZ2V0cyA9IG5ldyBXZWFrTWFwKCk7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHJlc29sdmVFdmVudExpc3RlbmVyKGV2ZW50VHlwZSkge1xuICByZXR1cm4gKGhvc3QsIHRhcmdldCwgdmFsdWUsIGxhc3RWYWx1ZSkgPT4ge1xuICAgIGlmIChsYXN0VmFsdWUpIHtcbiAgICAgIGNvbnN0IGV2ZW50TWFwID0gdGFyZ2V0cy5nZXQodGFyZ2V0KTtcbiAgICAgIGlmIChldmVudE1hcCkge1xuICAgICAgICB0YXJnZXQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcbiAgICAgICAgICBldmVudFR5cGUsXG4gICAgICAgICAgZXZlbnRNYXAuZ2V0KGxhc3RWYWx1ZSksXG4gICAgICAgICAgbGFzdFZhbHVlLm9wdGlvbnMgIT09IHVuZGVmaW5lZCA/IGxhc3RWYWx1ZS5vcHRpb25zIDogZmFsc2UsXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICBpZiAodHlwZW9mIHZhbHVlICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHRocm93IEVycm9yKGBFdmVudCBsaXN0ZW5lciBtdXN0IGJlIGEgZnVuY3Rpb246ICR7dHlwZW9mIHZhbHVlfWApO1xuICAgICAgfVxuXG4gICAgICBsZXQgZXZlbnRNYXAgPSB0YXJnZXRzLmdldCh0YXJnZXQpO1xuICAgICAgaWYgKCFldmVudE1hcCkge1xuICAgICAgICBldmVudE1hcCA9IG5ldyBXZWFrTWFwKCk7XG4gICAgICAgIHRhcmdldHMuc2V0KHRhcmdldCwgZXZlbnRNYXApO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBjYWxsYmFjayA9IHZhbHVlLmJpbmQobnVsbCwgaG9zdCk7XG4gICAgICBldmVudE1hcC5zZXQodmFsdWUsIGNhbGxiYWNrKTtcblxuICAgICAgdGFyZ2V0LmFkZEV2ZW50TGlzdGVuZXIoXG4gICAgICAgIGV2ZW50VHlwZSxcbiAgICAgICAgY2FsbGJhY2ssXG4gICAgICAgIHZhbHVlLm9wdGlvbnMgIT09IHVuZGVmaW5lZCA/IHZhbHVlLm9wdGlvbnMgOiBmYWxzZSxcbiAgICAgICk7XG4gICAgfVxuICB9O1xufVxuIl19 |
{ | ||
"name": "hybrids", | ||
"version": "4.1.1", | ||
"version": "4.1.2", | ||
"description": "Web Components from plain objects and pure functions!", | ||
@@ -5,0 +5,0 @@ "main": "lib/index.js", |
@@ -52,3 +52,2 @@ import { stringifyElement } from './utils'; | ||
if (contextStack.size && contextStack.has(entry)) { | ||
contextStack.clear(); | ||
throw Error(`Circular get invocation of the '${key}' property in '${stringifyElement(target)}'`); | ||
@@ -67,17 +66,16 @@ } | ||
contextStack.add(entry); | ||
if (entry.checksum && entry.checksum === calculateChecksum(entry)) { | ||
contextStack.delete(entry); | ||
return entry.value; | ||
} | ||
if (entry.deps && entry.deps.size) { | ||
entry.deps.forEach((depEntry) => { | ||
if (depEntry.contexts) depEntry.contexts.delete(entry); | ||
}); | ||
try { | ||
contextStack.add(entry); | ||
if (entry.observed && entry.deps && entry.deps.size) { | ||
entry.deps.forEach((depEntry) => { | ||
depEntry.contexts.delete(entry); | ||
}); | ||
} | ||
entry.deps = undefined; | ||
} | ||
try { | ||
const nextValue = getter(target, entry.value); | ||
@@ -95,3 +93,10 @@ | ||
} catch (e) { | ||
contextStack.clear(); | ||
entry.checksum = 0; | ||
contextStack.delete(entry); | ||
contextStack.forEach((context) => { | ||
context.deps.delete(entry); | ||
if (context.observed) entry.contexts.delete(context); | ||
}); | ||
throw e; | ||
@@ -105,3 +110,2 @@ } | ||
if (contextStack.size && !force) { | ||
contextStack.clear(); | ||
throw Error(`Try to set '${key}' of '${stringifyElement(target)}' in get call`); | ||
@@ -124,3 +128,2 @@ } | ||
if (contextStack.size) { | ||
contextStack.clear(); | ||
throw Error(`Try to invalidate '${key}' in '${stringifyElement(target)}' get call`); | ||
@@ -127,0 +130,0 @@ } |
@@ -85,3 +85,3 @@ import property from './property'; | ||
Object.keys(node.constructor.hybrids).forEach((key) => { | ||
cache.invalidate(node, key, node[key] === hybrids[key]); | ||
cache.invalidate(node, key, node.constructor.hybrids[key] !== hybrids[key]); | ||
}); | ||
@@ -88,0 +88,0 @@ |
@@ -253,3 +253,3 @@ import { stringifyElement, shadyCSS, IS_IE } from '../utils'; | ||
if (data.template || target.nodeType === Node.ELEMENT_NODE) removeTemplate(target); | ||
data.lastArgs = null; | ||
data.prevArgs = null; | ||
@@ -310,6 +310,9 @@ const fragment = document.importNode(applyShadyCSS(template, host.tagName).content, true); | ||
const prevArgs = data.prevArgs; | ||
data.prevArgs = args; | ||
for (let index = 0; index < data.markers.length; index += 1) { | ||
const [node, marker] = data.markers[index]; | ||
if (!data.lastArgs || data.lastArgs[index] !== args[index]) { | ||
marker(host, node, args[index], data.lastArgs ? data.lastArgs[index] : undefined); | ||
if (!prevArgs || prevArgs[index] !== args[index]) { | ||
marker(host, node, args[index], prevArgs ? prevArgs[index] : undefined); | ||
} | ||
@@ -321,3 +324,3 @@ } | ||
if (host.shadowRoot) { | ||
if (data.lastArgs) { | ||
if (prevArgs) { | ||
shady.styleSubtree(host); | ||
@@ -330,5 +333,3 @@ } else { | ||
} | ||
data.lastArgs = args; | ||
}; | ||
} |
@@ -1,2 +0,2 @@ | ||
const eventMap = new WeakMap(); | ||
const targets = new WeakMap(); | ||
@@ -6,7 +6,10 @@ export default function resolveEventListener(eventType) { | ||
if (lastValue) { | ||
target.removeEventListener( | ||
eventType, | ||
eventMap.get(lastValue), | ||
lastValue.options !== undefined ? lastValue.options : false, | ||
); | ||
const eventMap = targets.get(target); | ||
if (eventMap) { | ||
target.removeEventListener( | ||
eventType, | ||
eventMap.get(lastValue), | ||
lastValue.options !== undefined ? lastValue.options : false, | ||
); | ||
} | ||
} | ||
@@ -19,7 +22,14 @@ | ||
eventMap.set(value, value.bind(null, host)); | ||
let eventMap = targets.get(target); | ||
if (!eventMap) { | ||
eventMap = new WeakMap(); | ||
targets.set(target, eventMap); | ||
} | ||
const callback = value.bind(null, host); | ||
eventMap.set(value, callback); | ||
target.addEventListener( | ||
eventType, | ||
eventMap.get(value), | ||
callback, | ||
value.options !== undefined ? value.options : false, | ||
@@ -26,0 +36,0 @@ ); |
@@ -9,3 +9,3 @@ // tslint:disable-next-line:export-just-namespace | ||
set?(host: E, value: any, lastValue: any): any; | ||
connect?(host: E, key: string, invalidate: Function): Function; | ||
connect?(host: E, key: string, invalidate: Function): Function | void; | ||
observe?(host: E, value: any, lastValue: any): void; | ||
@@ -61,3 +61,3 @@ } | ||
/* Utils */ | ||
function dispatch(host: HTMLElement, eventType: string, options?: CustomEventInit): boolean; | ||
function dispatch(host: EventTarget, eventType: string, options?: CustomEventInit): boolean; | ||
@@ -64,0 +64,0 @@ /* Template Engine */ |
Sorry, the diff of this file is not supported yet
564264
3851