Comparing version 6.3.0 to 6.4.0
@@ -1,2 +0,2 @@ | ||
module.exports=function(t){var e={};function o(n){if(e[n])return e[n].exports;var r=e[n]={i:n,l:!1,exports:{}};return t[n].call(r.exports,r,r.exports,o),r.l=!0,r.exports}return o.m=t,o.c=e,o.d=function(t,e,n){o.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:n})},o.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},o.t=function(t,e){if(1&e&&(t=o(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var n=Object.create(null);if(o.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var r in t)o.d(n,r,function(e){return t[e]}.bind(null,r));return n},o.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return o.d(e,"a",e),e},o.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},o.p="",o(o.s=7)}([function(t,e,o){var n=o(1),r=Math.sqrt(2),i=Math.cos,a=Math.max,u=Math.min;function s(t){return u(t.duration,Date.now()-t.mouseDown)}function c(t){return t.mouseUp>0?Date.now()-t.mouseUp:0}function l(t){var e=t.duration,o=t.radius,r=.85*n(s(t),0,o,e),u=.15*n(c(t),0,o,e),l=.02*o*i(Date.now()/e);return a(0,r+u+l)}t.exports={getMaxRadius:function(t,e,o){return u(.5*a(t,e),o)},getBlotOpacity:function(t,e){return n(c(t),e,-e,t.duration)},getBlotOuterOpacity:function(t,e){return u(this.getBlotOpacity(t,e),n(s(t),0,.3,3*t.duration))},getBlotShiftX:function(t,e,o){return u(1,l(t)/e*2/r)*(o/2-t.x)},getBlotShiftY:function(t,e,o){return u(1,l(t)/e*2/r)*(o/2-t.y)},getBlotScale:function(t){return l(t)/t.radius}}},function(t,e){t.exports=function(t,e,o,n){return o*((t=t/n-1)*t*t*t*t+1)+e}},function(t,e,o){var n=o(0),r=function(t){var e=t.mouseUp,o=t.duration;return!e||Date.now()-e<o};t.exports=function(t){var e=[],o=!1,i=void 0,a={each:function(t,o){for(var n=0,r=e.length;n<r;n++)t.call(o,e[n])},play:function(){o||(o=!0,a.update())},stop:function(){o=!1,cancelAnimationFrame(i)},getTotalOpacity:function(t){for(var o=0,r=0,i=e.length;r<i;r++)o+=n.getBlotOuterOpacity(e[r],t);return o},update:function(){(e=e.filter(r)).length?i=requestAnimationFrame(a.update):a.stop(),t()},add:function(t){e.push(t),a.play()},release:function(t){for(var o=e.length-1;o>=0;o--)if(!e[o].mouseUp)return e[o].mouseUp=t}};return a}},function(t,e){t.exports={borderRadius:"inherit",height:"100%",left:0,position:"absolute",top:0,width:"100%"}},function(t,e){t.exports=require("react")},function(t,e){t.exports=function(t){return(window.devicePixelRatio||1)/(t.webkitBackingStorePixelRatio||t.mozBackingStorePixelRatio||t.msBackingStorePixelRatio||t.oBackingStorePixelRatio||t.backingStorePixelRatio||1)}},function(t,e){var o=!1;"undefined"!=typeof window&&(o="ontouchstart"in window||window.DocumentTouch&&document instanceof window.DocumentTouch),t.exports=o},function(t,e,o){var n=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var o=arguments[e];for(var n in o)Object.prototype.hasOwnProperty.call(o,n)&&(t[n]=o[n])}return t};var r=o(6),i=0,a=o(5),u=o(4),s=o(3),c=o(2),l=2*Math.PI,p=o(0),f=function(t){function e(o){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,e);var n=function(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}(this,t.apply(this,arguments));return n.tick=function(){var t=n.state,e=t.ctx,o=t.color,r=t.density,i=t.height,a=t.width,u=t.store;e.save(),e.scale(r,r),e.clearRect(0,0,a,i),e.fillStyle=o,n.props.background&&(e.globalAlpha=u.getTotalOpacity(n.props.opacity),e.fillRect(0,0,a,i)),u.each(n.makeBlot,n),e.restore()},n._onPress=function(t){var e=t.button,o=t.ctrlKey,r=t.clientX,a=t.clientY,u=t.changedTouches,s=Date.now();if(u)for(var c=0;c<u.length;c++){var l=u[c],p=l.clientX,f=l.clientY;n.pushBlot(s,p,f)}else e!==i||o||n.pushBlot(s,r,a)},n._onRelease=function(){n.state.store.release(Date.now())},n.state={color:"transparent",density:1,height:0,store:c(n.tick),touchEvents:n.touchEvents(),width:0},n}return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}(e,t),e.prototype.touchEvents=function(){return this.props.hasTouch?{onTouchStart:this._onPress,onTouchEnd:this._onRelease,onTouchCancel:this._onRelease}:{onMouseDown:this._onPress,onMouseUp:this._onRelease,onMouseLeave:this._onRelease}},e.prototype.makeBlot=function(t){var e=this.state,o=e.ctx,n=e.height,r=e.width,i=t.x,a=t.y,u=t.radius;if(o.globalAlpha=p.getBlotOpacity(t,this.props.opacity),o.beginPath(),this.props.recenter){var s=Math.max(n,r);i+=p.getBlotShiftX(t,s,r),a+=p.getBlotShiftY(t,s,n)}o.arc(i,a,u*p.getBlotScale(t),0,l),o.closePath(),o.fill()},e.prototype.componentWillUnmount=function(){this.state.store.stop()},e.prototype.pushBlot=function(t,e,o){var n=this,r=this.canvas;r instanceof window.HTMLCanvasElement==!1&&(r=r.getDOMNode());var i=r.getBoundingClientRect(),u=i.top,s=i.bottom,c=i.left,l=i.right,f=window.getComputedStyle(r).color,h=this.state.ctx||r.getContext("2d"),d=a(h),y=s-u,g=l-c,v=p.getMaxRadius(y,g,this.props.radius);this.setState({color:f,ctx:h,density:d,height:y,width:g},function(){n.state.store.add({duration:n.props.duration,mouseDown:t,mouseUp:0,radius:v,x:e-c,y:o-u})})},e.prototype.setCanvas=function(t){this.canvas=t},e.prototype.render=function(){var t=this.state,e=t.className,o=t.density,r=t.height,i=t.width,a=t.touchEvents;return u.createElement("canvas",n({className:e,ref:this.setCanvas.bind(this),style:n({},s,this.props.style),height:r*o,width:i*o,onDragOver:this._onRelease},a))},e}(u.PureComponent);f.defaultProps={background:!0,className:"ink",duration:1e3,opacity:.25,radius:150,recenter:!0,hasTouch:r},t.exports=f}]); | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vd2VicGFjay9ib290c3RyYXAiLCJ3ZWJwYWNrOi8vLy4vc3JjL3V0aWwvZXF1YXRpb25zLmpzIiwid2VicGFjazovLy8uL3NyYy91dGlsL2Vhc2luZy5qcyIsIndlYnBhY2s6Ly8vLi9zcmMvdXRpbC9zdG9yZS5qcyIsIndlYnBhY2s6Ly8vLi9zcmMvc3R5bGUuanMiLCJ3ZWJwYWNrOi8vL2V4dGVybmFsIFwicmVhY3RcIiIsIndlYnBhY2s6Ly8vLi9zcmMvdXRpbC9waXhlbFJhdGlvLmpzIiwid2VicGFjazovLy8uL3NyYy91dGlsL2hhc1RvdWNoLmpzIiwid2VicGFjazovLy8uL3NyYy9pbmRleC5qcyJdLCJuYW1lcyI6WyJpbnN0YWxsZWRNb2R1bGVzIiwiX193ZWJwYWNrX3JlcXVpcmVfXyIsIm1vZHVsZUlkIiwiZXhwb3J0cyIsIm1vZHVsZSIsImkiLCJsIiwibW9kdWxlcyIsImNhbGwiLCJtIiwiYyIsImQiLCJuYW1lIiwiZ2V0dGVyIiwibyIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZW51bWVyYWJsZSIsImdldCIsInIiLCJTeW1ib2wiLCJ0b1N0cmluZ1RhZyIsInZhbHVlIiwidCIsIm1vZGUiLCJfX2VzTW9kdWxlIiwibnMiLCJjcmVhdGUiLCJrZXkiLCJiaW5kIiwibiIsIm9iamVjdCIsInByb3BlcnR5IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJwIiwicyIsImVhc2luZyIsIlNRUlRfMiIsIk1hdGgiLCJzcXJ0IiwiY29zIiwibWF4IiwibWluIiwiZ2V0UHJlc3MiLCJibG90IiwiZHVyYXRpb24iLCJEYXRlIiwibm93IiwibW91c2VEb3duIiwiZ2V0UmVsZWFzZSIsIm1vdXNlVXAiLCJnZXRSYWRpdXMiLCJyYWRpdXMiLCJkb3duIiwidXAiLCJ1bmR1bGF0aW9uIiwiZ2V0TWF4UmFkaXVzIiwiaGVpZ2h0Iiwid2lkdGgiLCJnZXRCbG90T3BhY2l0eSIsIm9wYWNpdHkiLCJnZXRCbG90T3V0ZXJPcGFjaXR5IiwidGhpcyIsImdldEJsb3RTaGlmdFgiLCJzaXplIiwieCIsImdldEJsb3RTaGlmdFkiLCJ5IiwiZ2V0QmxvdFNjYWxlIiwiYiIsIkVxdWF0aW9ucyIsImtpbGxTdGFsZSIsIl9yZWYiLCJwdWJsaWNpemUiLCJfZGF0YSIsIl9wbGF5aW5nIiwiX2ZyYW1lIiwiU3RvcmUiLCJlYWNoIiwiY2FsbGJhY2siLCJzY29wZSIsImxlbmd0aCIsInBsYXkiLCJ1cGRhdGUiLCJzdG9wIiwiY2FuY2VsQW5pbWF0aW9uRnJhbWUiLCJnZXRUb3RhbE9wYWNpdHkiLCJhbnN3ZXIiLCJmaWx0ZXIiLCJyZXF1ZXN0QW5pbWF0aW9uRnJhbWUiLCJhZGQiLCJwcm9wcyIsInB1c2giLCJyZWxlYXNlIiwidGltZSIsImJvcmRlclJhZGl1cyIsImxlZnQiLCJwb3NpdGlvbiIsInRvcCIsInJlcXVpcmUiLCJjb250ZXh0Iiwid2luZG93IiwiZGV2aWNlUGl4ZWxSYXRpbyIsIndlYmtpdEJhY2tpbmdTdG9yZVBpeGVsUmF0aW8iLCJtb3pCYWNraW5nU3RvcmVQaXhlbFJhdGlvIiwibXNCYWNraW5nU3RvcmVQaXhlbFJhdGlvIiwib0JhY2tpbmdTdG9yZVBpeGVsUmF0aW8iLCJiYWNraW5nU3RvcmVQaXhlbFJhdGlvIiwiYm9vbCIsIkRvY3VtZW50VG91Y2giLCJkb2N1bWVudCIsIkhBU19UT1VDSCIsIk1PVVNFX0xFRlQiLCJwaXhlbFJhdGlvIiwiUmVhY3QiLCJTVFlMRSIsIlRBVSIsIlBJIiwiSW5rIiwiX2NsYXNzQ2FsbENoZWNrIiwiX3RoaXMiLCJfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybiIsIl9SZWFjdCRQdXJlQ29tcG9uZW50IiwiYXBwbHkiLCJhcmd1bWVudHMiLCJ0aWNrIiwiX3RoaXMkc3RhdGUiLCJzdGF0ZSIsImN0eCIsImNvbG9yIiwiZGVuc2l0eSIsInN0b3JlIiwic2F2ZSIsInNjYWxlIiwiY2xlYXJSZWN0IiwiZmlsbFN0eWxlIiwiYmFja2dyb3VuZCIsImdsb2JhbEFscGhhIiwiZmlsbFJlY3QiLCJtYWtlQmxvdCIsInJlc3RvcmUiLCJfb25QcmVzcyIsImUiLCJidXR0b24iLCJjdHJsS2V5IiwiY2xpZW50WCIsImNsaWVudFkiLCJjaGFuZ2VkVG91Y2hlcyIsInRpbWVTdGFtcCIsIl9jaGFuZ2VkVG91Y2hlcyRpIiwicHVzaEJsb3QiLCJfb25SZWxlYXNlIiwidG91Y2hFdmVudHMiLCJoYXNUb3VjaCIsIm9uVG91Y2hTdGFydCIsIm9uVG91Y2hFbmQiLCJvblRvdWNoQ2FuY2VsIiwib25Nb3VzZURvd24iLCJvbk1vdXNlVXAiLCJvbk1vdXNlTGVhdmUiLCJfc3RhdGUiLCJiZWdpblBhdGgiLCJyZWNlbnRlciIsImFyYyIsImNsb3NlUGF0aCIsImZpbGwiLCJjb21wb25lbnRXaWxsVW5tb3VudCIsIl90aGlzMiIsImVsIiwiY2FudmFzIiwiSFRNTENhbnZhc0VsZW1lbnQiLCJnZXRET01Ob2RlIiwiX2VsJGdldEJvdW5kaW5nQ2xpZW50IiwiZ2V0Qm91bmRpbmdDbGllbnRSZWN0IiwiYm90dG9tIiwicmlnaHQiLCJnZXRDb21wdXRlZFN0eWxlIiwiZ2V0Q29udGV4dCIsInNldFN0YXRlIiwic2V0Q2FudmFzIiwicmVuZGVyIiwiX3N0YXRlMiIsImNsYXNzTmFtZSIsImNyZWF0ZUVsZW1lbnQiLCJfZXh0ZW5kcyIsInJlZiIsInN0eWxlIiwib25EcmFnT3ZlciIsIlB1cmVDb21wb25lbnQiLCJkZWZhdWx0UHJvcHMiXSwibWFwcGluZ3MiOiIyQkFDQSxJQUFBQSxLQUdBLFNBQUFDLEVBQUFDLEdBR0EsR0FBQUYsRUFBQUUsR0FDQSxPQUFBRixFQUFBRSxHQUFBQyxRQUdBLElBQUFDLEVBQUFKLEVBQUFFLElBQ0FHLEVBQUFILEVBQ0FJLEdBQUEsRUFDQUgsWUFVQSxPQU5BSSxFQUFBTCxHQUFBTSxLQUFBSixFQUFBRCxRQUFBQyxJQUFBRCxRQUFBRixHQUdBRyxFQUFBRSxHQUFBLEVBR0FGLEVBQUFELFFBMERBLE9BckRBRixFQUFBUSxFQUFBRixFQUdBTixFQUFBUyxFQUFBVixFQUdBQyxFQUFB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aEI1QyxFQUFTa0IsRUFBVWQsYUFBYUMsRUFBUUMsRUFBT0ksS0FBSzZCLE1BQU12QyxRQUU5RFUsS0FBS29ILFVBQVdqRCxRQUFPRCxNQUFLRSxVQUFTekUsU0FBUUMsU0FBUyxXQUNwRDZHLEVBQUt4QyxNQUFNSSxNQUFNekMsS0FDZjdDLFNBQVUwSCxFQUFLNUUsTUFBTTlDLFNBQ3JCRyxVQUFXb0csRUFDWGxHLFFBQVMsRUFDVEUsT0FBUUEsRUFDUmEsRUFBR2dGLEVBQVVqRCxFQUNiN0IsRUFBRytFLEVBQVVoRCxtQkFLbkJpRixtQkFBVVgsR0FDUjFHLEtBQUsyRyxPQUFTRCxlQUdoQlksa0JBQVMsSUFBQUMsRUFDa0R2SCxLQUFLaUUsTUFBeER1RCxFQURDRCxFQUNEQyxVQUFXcEQsRUFEVm1ELEVBQ1VuRCxRQUFTekUsRUFEbkI0SCxFQUNtQjVILE9BQVFDLEVBRDNCMkgsRUFDMkIzSCxNQUFPOEYsRUFEbEM2QixFQUNrQzdCLFlBRXpDLE9BQ0V0QyxFQUFBcUUsY0FBQSxTQUFBQyxHQUNFRixVQUFXQSxFQUNYRyxJQUFLM0gsS0FBS3FILFVBQVV2SixLQUFLa0MsTUFDekI0SCxNQUFBRixLQUFZckUsRUFBVXJELEtBQUs2QixNQUFNK0YsT0FDakNqSSxPQUFRQSxFQUFTeUUsRUFDakJ4RSxNQUFPQSxFQUFRd0UsRUFDZnlELFdBQVk3SCxLQUFLeUYsWUFDYkMsUUFqSU10QyxFQUFNMEUsZUFBbEJ0RSxFQUNHdUUsY0FDTHJELFlBQVksRUFDWjhDLFVBQVcsTUFDWHpJLFNBQVUsSUFDVmUsUUFBUyxJQUNUUixPQUFRLElBQ1I4RyxVQUFVLEVBQ1ZULFNBQVUxQyxHQWlKZDVHLEVBQU9ELFFBQVVvSCIsImZpbGUiOiJpbmsuanMiLCJzb3VyY2VzQ29udGVudCI6WyIgXHQvLyBUaGUgbW9kdWxlIGNhY2hlXG4gXHR2YXIgaW5zdGFsbGVkTW9kdWxlcyA9IHt9O1xuXG4gXHQvLyBUaGUgcmVxdWlyZSBmdW5jdGlvblxuIFx0ZnVuY3Rpb24gX193ZWJwYWNrX3JlcXVpcmVfXyhtb2R1bGVJZCkge1xuXG4gXHRcdC8vIENoZWNrIGlmIG1vZHVsZSBpcyBpbiBjYWNoZVxuIFx0XHRpZihpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXSkge1xuIFx0XHRcdHJldHVybiBpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXS5leHBvcnRzO1xuIFx0XHR9XG4gXHRcdC8vIENyZWF0ZSBhIG5ldyBtb2R1bGUgKGFuZCBwdXQgaXQgaW50byB0aGUgY2FjaGUpXG4gXHRcdHZhciBtb2R1bGUgPSBpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXSA9IHtcbiBcdFx0XHRpOiBtb2R1bGVJZCxcbiBcdFx0XHRsOiBmYWxzZSxcbiBcdFx0XHRleHBvcnRzOiB7fVxuIFx0XHR9O1xuXG4gXHRcdC8vIEV4ZWN1dGUgdGhlIG1vZHVsZSBmdW5jdGlvblxuIFx0XHRtb2R1bGVzW21vZHVsZUlkXS5jYWxsKG1vZHVsZS5leHBvcnRzLCBtb2R1bGUsIG1vZHVsZS5leHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKTtcblxuIFx0XHQvLyBGbGFnIHRoZSBtb2R1bGUgYXMgbG9hZGVkXG4gXHRcdG1vZHVsZS5sID0gdHJ1ZTtcblxuIFx0XHQvLyBSZXR1cm4gdGhlIGV4cG9ydHMgb2YgdGhlIG1vZHVsZVxuIFx0XHRyZXR1cm4gbW9kdWxlLmV4cG9ydHM7XG4gXHR9XG5cblxuIFx0Ly8gZXhwb3NlIHRoZSBtb2R1bGVzIG9iamVjdCAoX193ZWJwYWNrX21vZHVsZXNfXylcbiBcdF9fd2VicGFja19yZXF1aXJlX18ubSA9IG1vZHVsZXM7XG5cbiBcdC8vIGV4cG9zZSB0aGUgbW9kdWxlIGNhY2hlXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLmMgPSBpbnN0YWxsZWRNb2R1bGVzO1xuXG4gXHQvLyBkZWZpbmUgZ2V0dGVyIGZ1bmN0aW9uIGZvciBoYXJtb255IGV4cG9ydHNcbiBcdF9fd2VicGFja19yZXF1aXJlX18uZCA9IGZ1bmN0aW9uKGV4cG9ydHMsIG5hbWUsIGdldHRlcikge1xuIFx0XHRpZighX193ZWJwYWNrX3JlcXVpcmVfXy5vKGV4cG9ydHMsIG5hbWUpKSB7XG4gXHRcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIG5hbWUsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBnZXR0ZXIgfSk7XG4gXHRcdH1cbiBcdH07XG5cbiBcdC8vIGRlZmluZSBfX2VzTW9kdWxlIG9uIGV4cG9ydHNcbiBcdF9fd2VicGFja19yZXF1aXJlX18uciA9IGZ1bmN0aW9uKGV4cG9ydHMpIHtcbiBcdFx0aWYodHlwZW9mIFN5bWJvbCAhPT0gJ3VuZGVmaW5lZCcgJiYgU3ltYm9sLnRvU3RyaW5nVGFnKSB7XG4gXHRcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFN5bWJvbC50b1N0cmluZ1RhZywgeyB2YWx1ZTogJ01vZHVsZScgfSk7XG4gXHRcdH1cbiBcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsICdfX2VzTW9kdWxlJywgeyB2YWx1ZTogdHJ1ZSB9KTtcbiBcdH07XG5cbiBcdC8vIGNyZWF0ZSBhIGZha2UgbmFtZXNwYWNlIG9iamVjdFxuIFx0Ly8gbW9kZSAmIDE6IHZhbHVlIGlzIGEgbW9kdWxlIGlkLCByZXF1aXJlIGl0XG4gXHQvLyBtb2RlICYgMjogbWVyZ2UgYWxsIHByb3BlcnRpZXMgb2YgdmFsdWUgaW50byB0aGUgbnNcbiBcdC8vIG1vZGUgJiA0OiByZXR1cm4gdmFsdWUgd2hlbiBhbHJlYWR5IG5zIG9iamVjdFxuIFx0Ly8gbW9kZSAmIDh8MTogYmVoYXZlIGxpa2UgcmVxdWlyZVxuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy50ID0gZnVuY3Rpb24odmFsdWUsIG1vZGUpIHtcbiBcdFx0aWYobW9kZSAmIDEpIHZhbHVlID0gX193ZWJwYWNrX3JlcXVpcmVfXyh2YWx1ZSk7XG4gXHRcdGlmKG1vZGUgJiA4KSByZXR1cm4gdmFsdWU7XG4gXHRcdGlmKChtb2RlICYgNCkgJiYgdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJiB2YWx1ZSAmJiB2YWx1ZS5fX2VzTW9kdWxlKSByZXR1cm4gdmFsdWU7XG4gXHRcdHZhciBucyA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG4gXHRcdF9fd2VicGFja19yZXF1aXJlX18ucihucyk7XG4gXHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShucywgJ2RlZmF1bHQnLCB7IGVudW1lcmFibGU6IHRydWUsIHZhbHVlOiB2YWx1ZSB9KTtcbiBcdFx0aWYobW9kZSAmIDIgJiYgdHlwZW9mIHZhbHVlICE9ICdzdHJpbmcnKSBmb3IodmFyIGtleSBpbiB2YWx1ZSkgX193ZWJwYWNrX3JlcXVpcmVfXy5kKG5zLCBrZXksIGZ1bmN0aW9uKGtleSkgeyByZXR1cm4gdmFsdWVba2V5XTsgfS5iaW5kKG51bGwsIGtleSkpO1xuIFx0XHRyZXR1cm4gbnM7XG4gXHR9O1xuXG4gXHQvLyBnZXREZWZhdWx0RXhwb3J0IGZ1bmN0aW9uIGZvciBjb21wYXRpYmlsaXR5IHdpdGggbm9uLWhhcm1vbnkgbW9kdWxlc1xuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5uID0gZnVuY3Rpb24obW9kdWxlKSB7XG4gXHRcdHZhciBnZXR0ZXIgPSBtb2R1bGUgJiYgbW9kdWxlLl9fZXNNb2R1bGUgP1xuIFx0XHRcdGZ1bmN0aW9uIGdldERlZmF1bHQoKSB7IHJldHVybiBtb2R1bGVbJ2RlZmF1bHQnXTsgfSA6XG4gXHRcdFx0ZnVuY3Rpb24gZ2V0TW9kdWxlRXhwb3J0cygpIHsgcmV0dXJuIG1vZHVsZTsgfTtcbiBcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5kKGdldHRlciwgJ2EnLCBnZXR0ZXIpO1xuIFx0XHRyZXR1cm4gZ2V0dGVyO1xuIFx0fTtcblxuIFx0Ly8gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLm8gPSBmdW5jdGlvbihvYmplY3QsIHByb3BlcnR5KSB7IHJldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqZWN0LCBwcm9wZXJ0eSk7IH07XG5cbiBcdC8vIF9fd2VicGFja19wdWJsaWNfcGF0aF9fXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLnAgPSBcIlwiO1xuXG5cbiBcdC8vIExvYWQgZW50cnkgbW9kdWxlIGFuZCByZXR1cm4gZXhwb3J0c1xuIFx0cmV0dXJuIF9fd2VicGFja19yZXF1aXJlX18oX193ZWJwYWNrX3JlcXVpcmVfXy5zID0gNyk7XG4iLCJsZXQgZWFzaW5nID0gcmVxdWlyZSgnLi9lYXNpbmcnKVxubGV0IFNRUlRfMiA9IE1hdGguc3FydCgyKVxubGV0IHsgY29zLCBtYXgsIG1pbiB9ID0gTWF0aFxuXG5mdW5jdGlvbiBnZXRQcmVzcyhibG90KSB7XG4gIHJldHVybiBtaW4oYmxvdC5kdXJhdGlvbiwgRGF0ZS5ub3coKSAtIGJsb3QubW91c2VEb3duKVxufVxuXG5mdW5jdGlvbiBnZXRSZWxlYXNlKGJsb3QpIHtcbiAgcmV0dXJuIGJsb3QubW91c2VVcCA+IDAgPyBEYXRlLm5vdygpIC0gYmxvdC5tb3VzZVVwIDogMFxufVxuXG5mdW5jdGlvbiBnZXRSYWRpdXMoYmxvdCkge1xuICBsZXQgeyBkdXJhdGlvbiwgcmFkaXVzIH0gPSBibG90XG5cbiAgbGV0IGRvd24gPSBlYXNpbmcoZ2V0UHJlc3MoYmxvdCksIDAsIHJhZGl1cywgZHVyYXRpb24pICogMC44NVxuICBsZXQgdXAgPSBlYXNpbmcoZ2V0UmVsZWFzZShibG90KSwgMCwgcmFkaXVzLCBkdXJhdGlvbikgKiAwLjE1XG4gIGxldCB1bmR1bGF0aW9uID0gcmFkaXVzICogMC4wMiAqIGNvcyhEYXRlLm5vdygpIC8gZHVyYXRpb24pXG5cbiAgcmV0dXJuIG1heCgwLCBkb3duICsgdXAgKyB1bmR1bGF0aW9uKVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgZ2V0TWF4UmFkaXVzKGhlaWdodCwgd2lkdGgsIHJhZGl1cykge1xuICAgIHJldHVybiBtaW4obWF4KGhlaWdodCwgd2lkdGgpICogMC41LCByYWRpdXMpXG4gIH0sXG5cbiAgZ2V0QmxvdE9wYWNpdHkoYmxvdCwgb3BhY2l0eSkge1xuICAgIHJldHVybiBlYXNpbmcoZ2V0UmVsZWFzZShibG90KSwgb3BhY2l0eSwgLW9wYWNpdHksIGJsb3QuZHVyYXRpb24pXG4gIH0sXG5cbiAgZ2V0QmxvdE91dGVyT3BhY2l0eShibG90LCBvcGFjaXR5KSB7XG4gICAgcmV0dXJuIG1pbihcbiAgICAgIHRoaXMuZ2V0QmxvdE9wYWNpdHkoYmxvdCwgb3BhY2l0eSksXG4gICAgICBlYXNpbmcoZ2V0UHJlc3MoYmxvdCksIDAsIDAuMywgYmxvdC5kdXJhdGlvbiAqIDMpXG4gICAgKVxuICB9LFxuXG4gIGdldEJsb3RTaGlmdFgoYmxvdCwgc2l6ZSwgd2lkdGgpIHtcbiAgICByZXR1cm4gKFxuICAgICAgbWluKDEsICgoZ2V0UmFkaXVzKGJsb3QpIC8gc2l6ZSkgKiAyKSAvIFNRUlRfMikgKiAod2lkdGggLyAyIC0gYmxvdC54KVxuICAgIClcbiAgfSxcblxuICBnZXRCbG90U2hpZnRZKGJsb3QsIHNpemUsIGhlaWdodCkge1xuICAgIHJldHVybiAoXG4gICAgICBtaW4oMSwgKChnZXRSYWRpdXMoYmxvdCkgLyBzaXplKSAqIDIpIC8gU1FSVF8yKSAqIChoZWlnaHQgLyAyIC0gYmxvdC55KVxuICAgIClcbiAgfSxcblxuICBnZXRCbG90U2NhbGUoYmxvdCkge1xuICAgIHJldHVybiBnZXRSYWRpdXMoYmxvdCkgLyBibG90LnJhZGl1c1xuICB9XG59XG4iLCIvKipcbiAqIEB0IGlzIHRoZSBjdXJyZW50IHRpbWUgKG9yIHBvc2l0aW9uKSBvZiB0aGUgdHdlZW4uIFRoaXMgY2FuIGJlIHNlY29uZHMgb3IgZnJhbWVzLCBzdGVwcywgc2Vjb25kcywgbXMsIHdoYXRldmVyIOKAkyBhcyBsb25nIGFzIHRoZSB1bml0IGlzIHRoZSBzYW1lIGFzIGlzIHVzZWQgZm9yIHRoZSB0b3RhbCB0aW1lIFszXS5cbiAqIEBiIGlzIHRoZSBiZWdpbm5pbmcgdmFsdWUgb2YgdGhlIHByb3BlcnR5LlxuICogQGMgaXMgdGhlIGNoYW5nZSBiZXR3ZWVuIHRoZSBiZWdpbm5pbmcgYW5kIGRlc3RpbmF0aW9uIHZhbHVlIG9mIHRoZSBwcm9wZXJ0eS5cbiAqIEBkIGlzIHRoZSB0b3RhbCB0aW1lIG9mIHRoZSB0d2Vlbi5cbiAqL1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGVhc2VPdXRRdWludCh0LCBiLCBjLCBkKSB7XG4gIHJldHVybiBjICogKCh0ID0gdCAvIGQgLSAxKSAqIHQgKiB0ICogdCAqIHQgKyAxKSArIGJcbn1cbiIsIi8qKlxuICogSW5rIFN0b3JlXG4gKiBLZWVwcyB0cmFjayBvZiBjaGFuZ2VzIHRvIHJpcHBsZSBlcGljZW50ZXJzXG4gKiBzbyB0aGF0IDxJbmsgLz4gY2FuIGZvY3VzIG9uIHJlbmRlcmluZyB0aGVtLlxuICovXG5cbnZhciBFcXVhdGlvbnMgPSByZXF1aXJlKCcuL2VxdWF0aW9ucycpXG5cbmxldCBraWxsU3RhbGUgPSAoeyBtb3VzZVVwLCBkdXJhdGlvbiB9KSA9PlxuICAhbW91c2VVcCB8fCBEYXRlLm5vdygpIC0gbW91c2VVcCA8IGR1cmF0aW9uXG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24ocHVibGljaXplKSB7XG4gIGxldCBfZGF0YSA9IFtdXG4gIGxldCBfcGxheWluZyA9IGZhbHNlXG4gIGxldCBfZnJhbWVcblxuICBsZXQgU3RvcmUgPSB7XG4gICAgZWFjaChjYWxsYmFjaywgc2NvcGUpIHtcbiAgICAgIGZvciAodmFyIGkgPSAwLCBsID0gX2RhdGEubGVuZ3RoOyBpIDwgbDsgaSsrKSB7XG4gICAgICAgIGNhbGxiYWNrLmNhbGwoc2NvcGUsIF9kYXRhW2ldKVxuICAgICAgfVxuICAgIH0sXG5cbiAgICBwbGF5KCkge1xuICAgICAgaWYgKCFfcGxheWluZykge1xuICAgICAgICBfcGxheWluZyA9IHRydWVcbiAgICAgICAgU3RvcmUudXBkYXRlKClcbiAgICAgIH1cbiAgICB9LFxuXG4gICAgc3RvcCgpIHtcbiAgICAgIF9wbGF5aW5nID0gZmFsc2VcbiAgICAgIGNhbmNlbEFuaW1hdGlvbkZyYW1lKF9mcmFtZSlcbiAgICB9LFxuXG4gICAgZ2V0VG90YWxPcGFjaXR5KG9wYWNpdHkpIHtcbiAgICAgIGxldCBhbnN3ZXIgPSAwXG5cbiAgICAgIGZvciAodmFyIGkgPSAwLCBsID0gX2RhdGEubGVuZ3RoOyBpIDwgbDsgaSsrKSB7XG4gICAgICAgIGFuc3dlciArPSBFcXVhdGlvbnMuZ2V0QmxvdE91dGVyT3BhY2l0eShfZGF0YVtpXSwgb3BhY2l0eSlcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGFuc3dlclxuICAgIH0sXG5cbiAgICB1cGRhdGUoKSB7XG4gICAgICBfZGF0YSA9IF9kYXRhLmZpbHRlcihraWxsU3RhbGUpXG5cbiAgICAgIGlmIChfZGF0YS5sZW5ndGgpIHtcbiAgICAgICAgX2ZyYW1lID0gcmVxdWVzdEFuaW1hdGlvbkZyYW1lKFN0b3JlLnVwZGF0ZSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIFN0b3JlLnN0b3AoKVxuICAgICAgfVxuXG4gICAgICBwdWJsaWNpemUoKVxuICAgIH0sXG5cbiAgICBhZGQocHJvcHMpIHtcbiAgICAgIF9kYXRhLnB1c2gocHJvcHMpXG4gICAgICBTdG9yZS5wbGF5KClcbiAgICB9LFxuXG4gICAgcmVsZWFzZSh0aW1lKSB7XG4gICAgICBmb3IgKGxldCBpID0gX2RhdGEubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHtcbiAgICAgICAgaWYgKCFfZGF0YVtpXS5tb3VzZVVwKSB7XG4gICAgICAgICAgcmV0dXJuIChfZGF0YVtpXS5tb3VzZVVwID0gdGltZSlcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBTdG9yZVxufVxuIiwibW9kdWxlLmV4cG9ydHMgPSB7XG4gIGJvcmRlclJhZGl1czogJ2luaGVyaXQnLFxuICBoZWlnaHQ6ICcxMDAlJyxcbiAgbGVmdDogMCxcbiAgcG9zaXRpb246ICdhYnNvbHV0ZScsXG4gIHRvcDogMCxcbiAgd2lkdGg6ICcxMDAlJ1xufVxuIiwibW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKFwicmVhY3RcIik7IiwiLy8gR29vZCBzdHVmZiBoZXJlOlxuLy8gaHR0cDovL3d3dy5odG1sNXJvY2tzLmNvbS9lbi90dXRvcmlhbHMvY2FudmFzL2hpZHBpL1xuXG5tb2R1bGUuZXhwb3J0cyA9IGNvbnRleHQgPT4ge1xuICBsZXQgZGV2aWNlUGl4ZWxSYXRpbyA9IHdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvIHx8IDFcbiAgbGV0IGJhY2tpbmdTdG9yZVJhdGlvID1cbiAgICBjb250ZXh0LndlYmtpdEJhY2tpbmdTdG9yZVBpeGVsUmF0aW8gfHxcbiAgICBjb250ZXh0Lm1vekJhY2tpbmdTdG9yZVBpeGVsUmF0aW8gfHxcbiAgICBjb250ZXh0Lm1zQmFja2luZ1N0b3JlUGl4ZWxSYXRpbyB8fFxuICAgIGNvbnRleHQub0JhY2tpbmdTdG9yZVBpeGVsUmF0aW8gfHxcbiAgICBjb250ZXh0LmJhY2tpbmdTdG9yZVBpeGVsUmF0aW8gfHxcbiAgICAxXG5cbiAgcmV0dXJuIGRldmljZVBpeGVsUmF0aW8gLyBiYWNraW5nU3RvcmVSYXRpb1xufVxuIiwidmFyIGJvb2wgPSBmYWxzZVxuXG5pZiAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgYm9vbCA9XG4gICAgJ29udG91Y2hzdGFydCcgaW4gd2luZG93IHx8XG4gICAgKHdpbmRvdy5Eb2N1bWVudFRvdWNoICYmIGRvY3VtZW50IGluc3RhbmNlb2Ygd2luZG93LkRvY3VtZW50VG91Y2gpXG59XG5cbm1vZHVsZS5leHBvcnRzID0gYm9vbFxuIiwiLyoqXG4gKiBJbmtcbiAqIEZpbGxzIGEgY29udGFpbmVyIHdpdGggYW4gU1ZHIG9iamVjdCB0aGF0IHByb3ZpZGVzIGZlZWRiYWNrIG9uIG1vdXNlL3RvdWNoXG4gKiBldmVudHMgd2l0aCBhIHJpcHBsaW5nIHBvb2wuXG4gKi9cblxubGV0IEhBU19UT1VDSCA9IHJlcXVpcmUoJy4vdXRpbC9oYXNUb3VjaCcpXG5sZXQgTU9VU0VfTEVGVCA9IDBcbmxldCBwaXhlbFJhdGlvID0gcmVxdWlyZSgnLi91dGlsL3BpeGVsUmF0aW8nKVxubGV0IFJlYWN0ID0gcmVxdWlyZSgncmVhY3QnKVxubGV0IFNUWUxFID0gcmVxdWlyZSgnLi9zdHlsZScpXG5sZXQgU3RvcmUgPSByZXF1aXJlKCcuL3V0aWwvc3RvcmUnKVxubGV0IFRBVSA9IE1hdGguUEkgKiAyXG5sZXQgRXF1YXRpb25zID0gcmVxdWlyZSgnLi91dGlsL2VxdWF0aW9ucycpXG5cbmNsYXNzIEluayBleHRlbmRzIFJlYWN0LlB1cmVDb21wb25lbnQge1xuICBzdGF0aWMgZGVmYXVsdFByb3BzID0ge1xuICAgIGJhY2tncm91bmQ6IHRydWUsXG4gICAgY2xhc3NOYW1lOiAnaW5rJyxcbiAgICBkdXJhdGlvbjogMTAwMCxcbiAgICBvcGFjaXR5OiAwLjI1LFxuICAgIHJhZGl1czogMTUwLFxuICAgIHJlY2VudGVyOiB0cnVlLFxuICAgIGhhc1RvdWNoOiBIQVNfVE9VQ0hcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHByb3BzKSB7XG4gICAgc3VwZXIoLi4uYXJndW1lbnRzKVxuXG4gICAgdGhpcy5zdGF0ZSA9IHtcbiAgICAgIGNvbG9yOiAndHJhbnNwYXJlbnQnLFxuICAgICAgZGVuc2l0eTogMSxcbiAgICAgIGhlaWdodDogMCxcbiAgICAgIHN0b3JlOiBTdG9yZSh0aGlzLnRpY2spLFxuICAgICAgdG91Y2hFdmVudHM6IHRoaXMudG91Y2hFdmVudHMoKSxcbiAgICAgIHdpZHRoOiAwXG4gICAgfVxuICB9XG5cbiAgdG91Y2hFdmVudHMoKSB7XG4gICAgaWYgKHRoaXMucHJvcHMuaGFzVG91Y2gpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIG9uVG91Y2hTdGFydDogdGhpcy5fb25QcmVzcyxcbiAgICAgICAgb25Ub3VjaEVuZDogdGhpcy5fb25SZWxlYXNlLFxuICAgICAgICBvblRvdWNoQ2FuY2VsOiB0aGlzLl9vblJlbGVhc2VcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgb25Nb3VzZURvd246IHRoaXMuX29uUHJlc3MsXG4gICAgICAgIG9uTW91c2VVcDogdGhpcy5fb25SZWxlYXNlLFxuICAgICAgICBvbk1vdXNlTGVhdmU6IHRoaXMuX29uUmVsZWFzZVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHRpY2sgPSAoKSA9PiB7XG4gICAgbGV0IHsgY3R4LCBjb2xvciwgZGVuc2l0eSwgaGVpZ2h0LCB3aWR0aCwgc3RvcmUgfSA9IHRoaXMuc3RhdGVcblxuICAgIGN0eC5zYXZlKClcblxuICAgIGN0eC5zY2FsZShkZW5zaXR5LCBkZW5zaXR5KVxuXG4gICAgY3R4LmNsZWFyUmVjdCgwLCAwLCB3aWR0aCwgaGVpZ2h0KVxuXG4gICAgY3R4LmZpbGxTdHlsZSA9IGNvbG9yXG5cbiAgICBpZiAodGhpcy5wcm9wcy5iYWNrZ3JvdW5kKSB7XG4gICAgICBjdHguZ2xvYmFsQWxwaGEgPSBzdG9yZS5nZXRUb3RhbE9wYWNpdHkodGhpcy5wcm9wcy5vcGFjaXR5KVxuICAgICAgY3R4LmZpbGxSZWN0KDAsIDAsIHdpZHRoLCBoZWlnaHQpXG4gICAgfVxuXG4gICAgc3RvcmUuZWFjaCh0aGlzLm1ha2VCbG90LCB0aGlzKVxuXG4gICAgY3R4LnJlc3RvcmUoKVxuICB9XG5cbiAgbWFrZUJsb3QoYmxvdCkge1xuICAgIGxldCB7IGN0eCwgaGVpZ2h0LCB3aWR0aCB9ID0gdGhpcy5zdGF0ZVxuICAgIGxldCB7IHgsIHksIHJhZGl1cyB9ID0gYmxvdFxuXG4gICAgY3R4Lmdsb2JhbEFscGhhID0gRXF1YXRpb25zLmdldEJsb3RPcGFjaXR5KGJsb3QsIHRoaXMucHJvcHMub3BhY2l0eSlcbiAgICBjdHguYmVnaW5QYXRoKClcblxuICAgIGlmICh0aGlzLnByb3BzLnJlY2VudGVyKSB7XG4gICAgICBsZXQgc2l6ZSA9IE1hdGgubWF4KGhlaWdodCwgd2lkdGgpXG5cbiAgICAgIHggKz0gRXF1YXRpb25zLmdldEJsb3RTaGlmdFgoYmxvdCwgc2l6ZSwgd2lkdGgpXG4gICAgICB5ICs9IEVxdWF0aW9ucy5nZXRCbG90U2hpZnRZKGJsb3QsIHNpemUsIGhlaWdodClcbiAgICB9XG5cbiAgICBjdHguYXJjKHgsIHksIHJhZGl1cyAqIEVxdWF0aW9ucy5nZXRCbG90U2NhbGUoYmxvdCksIDAsIFRBVSlcblxuICAgIGN0eC5jbG9zZVBhdGgoKVxuICAgIGN0eC5maWxsKClcbiAgfVxuXG4gIGNvbXBvbmVudFdpbGxVbm1vdW50KCkge1xuICAgIHRoaXMuc3RhdGUuc3RvcmUuc3RvcCgpXG4gIH1cblxuICBwdXNoQmxvdCh0aW1lU3RhbXAsIGNsaWVudFgsIGNsaWVudFkpIHtcbiAgICBsZXQgZWwgPSB0aGlzLmNhbnZhc1xuXG4gICAgLy8gMC4xMyBzdXBwb3J0XG4gICAgaWYgKGVsIGluc3RhbmNlb2Ygd2luZG93LkhUTUxDYW52YXNFbGVtZW50ID09PSBmYWxzZSkge1xuICAgICAgZWwgPSBlbC5nZXRET01Ob2RlKClcbiAgICB9XG5cbiAgICBsZXQgeyB0b3AsIGJvdHRvbSwgbGVmdCwgcmlnaHQgfSA9IGVsLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpXG4gICAgbGV0IHsgY29sb3IgfSA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGVsKVxuXG4gICAgbGV0IGN0eCA9IHRoaXMuc3RhdGUuY3R4IHx8IGVsLmdldENvbnRleHQoJzJkJylcbiAgICBsZXQgZGVuc2l0eSA9IHBpeGVsUmF0aW8oY3R4KVxuICAgIGxldCBoZWlnaHQgPSBib3R0b20gLSB0b3BcbiAgICBsZXQgd2lkdGggPSByaWdodCAtIGxlZnRcbiAgICBsZXQgcmFkaXVzID0gRXF1YXRpb25zLmdldE1heFJhZGl1cyhoZWlnaHQsIHdpZHRoLCB0aGlzLnByb3BzLnJhZGl1cylcblxuICAgIHRoaXMuc2V0U3RhdGUoeyBjb2xvciwgY3R4LCBkZW5zaXR5LCBoZWlnaHQsIHdpZHRoIH0sICgpID0+IHtcbiAgICAgIHRoaXMuc3RhdGUuc3RvcmUuYWRkKHtcbiAgICAgICAgZHVyYXRpb246IHRoaXMucHJvcHMuZHVyYXRpb24sXG4gICAgICAgIG1vdXNlRG93bjogdGltZVN0YW1wLFxuICAgICAgICBtb3VzZVVwOiAwLFxuICAgICAgICByYWRpdXM6IHJhZGl1cyxcbiAgICAgICAgeDogY2xpZW50WCAtIGxlZnQsXG4gICAgICAgIHk6IGNsaWVudFkgLSB0b3BcbiAgICAgIH0pXG4gICAgfSlcbiAgfVxuXG4gIHNldENhbnZhcyhlbCkge1xuICAgIHRoaXMuY2FudmFzID0gZWxcbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICBsZXQgeyBjbGFzc05hbWUsIGRlbnNpdHksIGhlaWdodCwgd2lkdGgsIHRvdWNoRXZlbnRzIH0gPSB0aGlzLnN0YXRlXG5cbiAgICByZXR1cm4gKFxuICAgICAgPGNhbnZhc1xuICAgICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZX1cbiAgICAgICAgcmVmPXt0aGlzLnNldENhbnZhcy5iaW5kKHRoaXMpfVxuICAgICAgICBzdHlsZT17eyAuLi5TVFlMRSwgLi4udGhpcy5wcm9wcy5zdHlsZSB9fVxuICAgICAgICBoZWlnaHQ9e2hlaWdodCAqIGRlbnNpdHl9XG4gICAgICAgIHdpZHRoPXt3aWR0aCAqIGRlbnNpdHl9XG4gICAgICAgIG9uRHJhZ092ZXI9e3RoaXMuX29uUmVsZWFzZX1cbiAgICAgICAgey4uLnRvdWNoRXZlbnRzfVxuICAgICAgLz5cbiAgICApXG4gIH1cblxuICBfb25QcmVzcyA9IGUgPT4ge1xuICAgIGxldCB7IGJ1dHRvbiwgY3RybEtleSwgY2xpZW50WCwgY2xpZW50WSwgY2hhbmdlZFRvdWNoZXMgfSA9IGVcbiAgICBsZXQgdGltZVN0YW1wID0gRGF0ZS5ub3coKVxuXG4gICAgaWYgKGNoYW5nZWRUb3VjaGVzKSB7XG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNoYW5nZWRUb3VjaGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGxldCB7IGNsaWVudFgsIGNsaWVudFkgfSA9IGNoYW5nZWRUb3VjaGVzW2ldXG4gICAgICAgIHRoaXMucHVzaEJsb3QodGltZVN0YW1wLCBjbGllbnRYLCBjbGllbnRZKVxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoYnV0dG9uID09PSBNT1VTRV9MRUZUICYmICFjdHJsS2V5KSB7XG4gICAgICB0aGlzLnB1c2hCbG90KHRpbWVTdGFtcCwgY2xpZW50WCwgY2xpZW50WSlcbiAgICB9XG4gIH1cblxuICBfb25SZWxlYXNlID0gKCkgPT4ge1xuICAgIHRoaXMuc3RhdGUuc3RvcmUucmVsZWFzZShEYXRlLm5vdygpKVxuICB9XG59XG5cbm1vZHVsZS5leHBvcnRzID0gSW5rXG4iXSwic291cmNlUm9vdCI6IiJ9 | ||
module.exports=function(t){var e={};function o(n){if(e[n])return e[n].exports;var r=e[n]={i:n,l:!1,exports:{}};return t[n].call(r.exports,r,r.exports,o),r.l=!0,r.exports}return o.m=t,o.c=e,o.d=function(t,e,n){o.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:n})},o.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},o.t=function(t,e){if(1&e&&(t=o(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var n=Object.create(null);if(o.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var r in t)o.d(n,r,function(e){return t[e]}.bind(null,r));return n},o.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return o.d(e,"a",e),e},o.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},o.p="",o(o.s=7)}([function(t,e,o){var n=o(1),r=Math.sqrt(2),i=Math.cos,a=Math.max,u=Math.min;function s(t){return u(t.duration,Date.now()-t.mouseDown)}function c(t){return t.mouseUp>0?Date.now()-t.mouseUp:0}function l(t){var e=t.duration,o=t.radius,r=.85*n(s(t),0,o,e),u=.15*n(c(t),0,o,e),l=.02*o*i(Date.now()/e);return a(0,r+u+l)}t.exports={getMaxRadius:function(t,e,o){return u(.5*a(t,e),o)},getBlotOpacity:function(t,e){return n(c(t),e,-e,t.duration)},getBlotOuterOpacity:function(t,e){return u(this.getBlotOpacity(t,e),n(s(t),0,.3,3*t.duration))},getBlotShiftX:function(t,e,o){return u(1,l(t)/e*2/r)*(o/2-t.x)},getBlotShiftY:function(t,e,o){return u(1,l(t)/e*2/r)*(o/2-t.y)},getBlotScale:function(t){return l(t)/t.radius}}},function(t,e){t.exports=function(t,e,o,n){return o*((t=t/n-1)*t*t*t*t+1)+e}},function(t,e,o){var n=o(0),r=function(t){var e=t.mouseUp,o=t.duration;return!e||Date.now()-e<o};t.exports=function(t){var e=[],o=!1,i=void 0,a={each:function(t,o){for(var n=0,r=e.length;n<r;n++)t.call(o,e[n])},play:function(){o||(o=!0,a.update())},stop:function(){o=!1,cancelAnimationFrame(i)},getTotalOpacity:function(t){for(var o=0,r=0,i=e.length;r<i;r++)o+=n.getBlotOuterOpacity(e[r],t);return o},update:function(){(e=e.filter(r)).length?i=requestAnimationFrame(a.update):a.stop(),t()},add:function(t){e.push(t),a.play()},release:function(t){for(var o=e.length-1;o>=0;o--)if(!e[o].mouseUp)return e[o].mouseUp=t}};return a}},function(t,e){t.exports={borderRadius:"inherit",height:"100%",left:0,position:"absolute",top:0,width:"100%"}},function(t,e){t.exports=require("react")},function(t,e){t.exports=function(t){return(window.devicePixelRatio||1)/(t.webkitBackingStorePixelRatio||t.mozBackingStorePixelRatio||t.msBackingStorePixelRatio||t.oBackingStorePixelRatio||t.backingStorePixelRatio||1)}},function(t,e){var o=!1;"undefined"!=typeof window&&(o="ontouchstart"in window||window.DocumentTouch&&document instanceof window.DocumentTouch),t.exports=o},function(t,e,o){var n=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var o=arguments[e];for(var n in o)Object.prototype.hasOwnProperty.call(o,n)&&(t[n]=o[n])}return t};var r=o(6),i=0,a=o(5),u=o(4),s=o(3),c=o(2),l=2*Math.PI,p=o(0),f=function(t){function e(o){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,e);var n=function(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}(this,t.apply(this,arguments));return n.tick=function(){var t=n.state,e=t.ctx,o=t.color,r=t.density,i=t.height,a=t.width,u=t.store;e.save(),e.scale(r,r),e.clearRect(0,0,a,i),e.fillStyle=o,n.props.background&&(e.globalAlpha=u.getTotalOpacity(n.props.opacity),e.fillRect(0,0,a,i)),u.each(n.makeBlot,n),e.restore()},n._onPress=function(t){var e=t.button,o=t.ctrlKey,r=t.clientX,a=t.clientY,u=t.changedTouches,s=Date.now();if(u)for(var c=0;c<u.length;c++){var l=u[c],p=l.clientX,f=l.clientY;n.pushBlot(s,p,f)}else e!==i||o||n.pushBlot(s,r,a)},n._onRelease=function(){n.state.store.release(Date.now())},n.state={color:"transparent",density:1,height:0,store:c(n.tick),touchEvents:n.touchEvents(),width:0},n}return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}(e,t),e.prototype.touchEvents=function(){return this.props.hasTouch?{onTouchStart:this._onPress,onTouchEnd:this._onRelease,onTouchCancel:this._onRelease}:{onMouseDown:this._onPress,onMouseUp:this._onRelease,onMouseLeave:this._onRelease}},e.prototype.makeBlot=function(t){var e=this.state,o=e.ctx,n=e.height,r=e.width,i=t.x,a=t.y,u=t.radius;if(o.globalAlpha=p.getBlotOpacity(t,this.props.opacity),o.beginPath(),this.props.recenter){var s=Math.max(n,r);i+=p.getBlotShiftX(t,s,r),a+=p.getBlotShiftY(t,s,n)}o.arc(i,a,u*p.getBlotScale(t),0,l),o.closePath(),o.fill()},e.prototype.componentWillUnmount=function(){this.state.store.stop()},e.prototype.pushBlot=function(t,e,o){var n=this,r=this.canvas;r.getDOMNode&&"function"==typeof r.getDOMNode&&(r=r.getDOMNode());var i=r.getBoundingClientRect(),u=i.top,s=i.bottom,c=i.left,l=i.right,f=window.getComputedStyle(r).color,h=this.state.ctx||r.getContext("2d"),d=a(h),y=s-u,g=l-c,v=p.getMaxRadius(y,g,this.props.radius);this.setState({color:f,ctx:h,density:d,height:y,width:g},function(){n.state.store.add({duration:n.props.duration,mouseDown:t,mouseUp:0,radius:v,x:e-c,y:o-u})})},e.prototype.setCanvas=function(t){this.canvas=t},e.prototype.render=function(){var t=this.state,e=t.className,o=t.density,r=t.height,i=t.width,a=t.touchEvents;return u.createElement("canvas",n({className:e,ref:this.setCanvas.bind(this),style:n({},s,this.props.style),height:r*o,width:i*o,onDragOver:this._onRelease},a))},e}(u.PureComponent);f.defaultProps={background:!0,className:"ink",duration:1e3,opacity:.25,radius:150,recenter:!0,hasTouch:r},t.exports=f}]); | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vd2VicGFjay9ib290c3RyYXAiLCJ3ZWJwYWNrOi8vLy4vc3JjL3V0aWwvZXF1YXRpb25zLmpzIiwid2VicGFjazovLy8uL3NyYy91dGlsL2Vhc2luZy5qcyIsIndlYnBhY2s6Ly8vLi9zcmMvdXRpbC9zdG9yZS5qcyIsIndlYnBhY2s6Ly8vLi9zcmMvc3R5bGUuanMiLCJ3ZWJwYWNrOi8vL2V4dGVybmFsIFwicmVhY3RcIiIsIndlYnBhY2s6Ly8vLi9zcmMvdXRpbC9waXhlbFJhdGlvLmpzIiwid2VicGFjazovLy8uL3NyYy91dGlsL2hhc1RvdWNoLmpzIiwid2VicGFjazovLy8uL3NyYy9pbmRleC5qcyJdLCJuYW1lcyI6WyJpbnN0YWxsZWRNb2R1bGVzIiwiX193ZWJwYWNrX3JlcXVpcmVfXyIsIm1vZHVsZUlkIiwiZXhwb3J0cyIsIm1vZHVsZSIsImkiLCJsIiwibW9kdWxlcyIsImNhbGwiLCJtIiwiYyIsImQiLCJuYW1lIiwiZ2V0dGVyIiwibyIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZW51bWVyYWJsZSIsImdldCIsInIiLCJTeW1ib2wiLCJ0b1N0cmluZ1RhZyIsInZhbHVlIiwidCIsIm1vZGUiLCJfX2VzTW9kdWxlIiwibnMiLCJjcmVhdGUiLCJrZXkiLCJiaW5kIiwibiIsIm9iamVjdCIsInByb3BlcnR5IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJwIiwicyIsImVhc2luZyIsIlNRUlRfMiIsIk1hdGgiLCJzcXJ0IiwiY29zIiwibWF4IiwibWluIiwiZ2V0UHJlc3MiLCJibG90IiwiZHVyYXRpb24iLCJEYXRlIiwibm93IiwibW91c2VEb3duIiwiZ2V0UmVsZWFzZSIsIm1vdXNlVXAiLCJnZXRSYWRpdXMiLCJyYWRpdXMiLCJkb3duIiwidXAiLCJ1bmR1bGF0aW9uIiwiZ2V0TWF4UmFkaXVzIiwiaGVpZ2h0Iiwid2lkdGgiLCJnZXRCbG90T3BhY2l0eSIsIm9wYWNpdHkiLCJnZXRCbG90T3V0ZXJPcGFjaXR5IiwidGhpcyIsImdldEJsb3RTaGlmdFgiLCJzaXplIiwieCIsImdldEJsb3RTaGlmdFkiLCJ5IiwiZ2V0QmxvdFNjYWxlIiwiYiIsIkVxdWF0aW9ucyIsImtpbGxTdGFsZSIsIl9yZWYiLCJwdWJsaWNpemUiLCJfZGF0YSIsIl9wbGF5aW5nIiwiX2ZyYW1lIiwiU3RvcmUiLCJlYWNoIiwiY2FsbGJhY2siLCJzY29wZSIsImxlbmd0aCIsInBsYXkiLCJ1cGRhdGUiLCJzdG9wIiwiY2FuY2VsQW5pbWF0aW9uRnJhbWUiLCJnZXRUb3RhbE9wYWNpdHkiLCJhbnN3ZXIiLCJmaWx0ZXIiLCJyZXF1ZXN0QW5pbWF0aW9uRnJhbWUiLCJhZGQiLCJwcm9wcyIsInB1c2giLCJyZWxlYXNlIiwidGltZSIsImJvcmRlclJhZGl1cyIsImxlZnQiLCJwb3NpdGlvbiIsInRvcCIsInJlcXVpcmUiLCJjb250ZXh0Iiwid2luZG93IiwiZGV2aWNlUGl4ZWxSYXRpbyIsIndlYmtpdEJhY2tpbmdTdG9yZVBpeGVsUmF0aW8iLCJtb3pCYWNraW5nU3RvcmVQaXhlbFJhdGlvIiwibXNCYWNraW5nU3RvcmVQaXhlbFJhdGlvIiwib0JhY2tpbmdTdG9yZVBpeGVsUmF0aW8iLCJiYWNraW5nU3RvcmVQaXhlbFJhdGlvIiwiYm9vbCIsIkRvY3VtZW50VG91Y2giLCJkb2N1bWVudCIsIkhBU19UT1VDSCIsIk1PVVNFX0xFRlQiLCJwaXhlbFJhdGlvIiwiUmVhY3QiLCJTVFlMRSIsIlRBVSIsIlBJIiwiSW5rIiwiX2NsYXNzQ2FsbENoZWNrIiwiX3RoaXMiLCJfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybiIsIl9SZWFjdCRQdXJlQ29tcG9uZW50IiwiYXBwbHkiLCJhcmd1bWVudHMiLCJ0aWNrIiwiX3RoaXMkc3RhdGUiLCJzdGF0ZSIsImN0eCIsImNvbG9yIiwiZGVuc2l0eSIsInN0b3JlIiwic2F2ZSIsInNjYWxlIiwiY2xlYXJSZWN0IiwiZmlsbFN0eWxlIiwiYmFja2dyb3VuZCIsImdsb2JhbEFscGhhIiwiZmlsbFJlY3QiLCJtYWtlQmxvdCIsInJlc3RvcmUiLCJfb25QcmVzcyIsImUiLCJidXR0b24iLCJjdHJsS2V5IiwiY2xpZW50WCIsImNsaWVudFkiLCJjaGFuZ2VkVG91Y2hlcyIsInRpbWVTdGFtcCIsIl9jaGFuZ2VkVG91Y2hlcyRpIiwicHVzaEJsb3QiLCJfb25SZWxlYXNlIiwidG91Y2hFdmVudHMiLCJoYXNUb3VjaCIsIm9uVG91Y2hTdGFydCIsIm9uVG91Y2hFbmQiLCJvblRvdWNoQ2FuY2VsIiwib25Nb3VzZURvd24iLCJvbk1vdXNlVXAiLCJvbk1vdXNlTGVhdmUiLCJfc3RhdGUiLCJiZWdpblBhdGgiLCJyZWNlbnRlciIsImFyYyIsImNsb3NlUGF0aCIsImZpbGwiLCJjb21wb25lbnRXaWxsVW5tb3VudCIsIl90aGlzMiIsImVsIiwiY2FudmFzIiwiZ2V0RE9NTm9kZSIsIl9lbCRnZXRCb3VuZGluZ0NsaWVudCIsImdldEJvdW5kaW5nQ2xpZW50UmVjdCIsImJvdHRvbSIsInJpZ2h0IiwiZ2V0Q29tcHV0ZWRTdHlsZSIsImdldENvbnRleHQiLCJzZXRTdGF0ZSIsInNldENhbnZhcyIsInJlbmRlciIsIl9zdGF0ZTIiLCJjbGFzc05hbWUiLCJjcmVhdGVFbGVtZW50IiwiX2V4dGVuZHMiLCJyZWYiLCJzdHlsZSIsIm9uRHJhZ092ZXIiLCJQdXJlQ29tcG9uZW50IiwiZGVmYXVsdFByb3BzIl0sIm1hcHBpbmdzIjoiMkJBQ0EsSUFBQUEsS0FHQSxTQUFBQyxFQUFBQyxHQUdBLEdBQUFGLEVBQUFFLEdBQ0EsT0FBQUYsRUFBQUUsR0FBQUMsUUFHQSxJQUFBQyxFQUFBSixFQUFBRSxJQUNBRyxFQUFBSCxFQUNBSSxHQUFBLEVBQ0FILFlBVUEsT0FOQUksRUFBQUwsR0FBQU0sS0FBQUosRUFBQUQsUUFBQUMsSUFBQUQsUUFBQUYsR0FHQUcsRUFBQUUsR0FBQSxFQUdBRixFQUFBRCxRQTBEQSxPQXJEQUYsRUFBQVEsRUFBQUYsRUFHQU4sRUFBQVMsRUFBQVYsRUFHQUMsRUFBQVUsRUFBQSxTQUFBUixFQUFBUyxF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ZCxhQUFhQyxFQUFRQyxFQUFPSSxLQUFLNkIsTUFBTXZDLFFBRTlEVSxLQUFLbUgsVUFBV2hELFFBQU9ELE1BQUtFLFVBQVN6RSxTQUFRQyxTQUFTLFdBQ3BENkcsRUFBS3hDLE1BQU1JLE1BQU16QyxLQUNmN0MsU0FBVTBILEVBQUs1RSxNQUFNOUMsU0FDckJHLFVBQVdvRyxFQUNYbEcsUUFBUyxFQUNURSxPQUFRQSxFQUNSYSxFQUFHZ0YsRUFBVWpELEVBQ2I3QixFQUFHK0UsRUFBVWhELG1CQUtuQmdGLG1CQUFVVixHQUNSMUcsS0FBSzJHLE9BQVNELGVBR2hCVyxrQkFBUyxJQUFBQyxFQUNrRHRILEtBQUtpRSxNQUF4RHNELEVBRENELEVBQ0RDLFVBQVduRCxFQURWa0QsRUFDVWxELFFBQVN6RSxFQURuQjJILEVBQ21CM0gsT0FBUUMsRUFEM0IwSCxFQUMyQjFILE1BQU84RixFQURsQzRCLEVBQ2tDNUIsWUFFekMsT0FDRXRDLEVBQUFvRSxjQUFBLFNBQUFDLEdBQ0VGLFVBQVdBLEVBQ1hHLElBQUsxSCxLQUFLb0gsVUFBVXRKLEtBQUtrQyxNQUN6QjJILE1BQUFGLEtBQVlwRSxFQUFVckQsS0FBSzZCLE1BQU04RixPQUNqQ2hJLE9BQVFBLEVBQVN5RSxFQUNqQnhFLE1BQU9BLEVBQVF3RSxFQUNmd0QsV0FBWTVILEtBQUt5RixZQUNiQyxRQWpJTXRDLEVBQU15RSxlQUFsQnJFLEVBQ0dzRSxjQUNMcEQsWUFBWSxFQUNaNkMsVUFBVyxNQUNYeEksU0FBVSxJQUNWZSxRQUFTLElBQ1RSLE9BQVEsSUFDUjhHLFVBQVUsRUFDVlQsU0FBVTFDLEdBaUpkNUcsRUFBT0QsUUFBVW9IIiwiZmlsZSI6Imluay5qcyIsInNvdXJjZXNDb250ZW50IjpbIiBcdC8vIFRoZSBtb2R1bGUgY2FjaGVcbiBcdHZhciBpbnN0YWxsZWRNb2R1bGVzID0ge307XG5cbiBcdC8vIFRoZSByZXF1aXJlIGZ1bmN0aW9uXG4gXHRmdW5jdGlvbiBfX3dlYnBhY2tfcmVxdWlyZV9fKG1vZHVsZUlkKSB7XG5cbiBcdFx0Ly8gQ2hlY2sgaWYgbW9kdWxlIGlzIGluIGNhY2hlXG4gXHRcdGlmKGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdKSB7XG4gXHRcdFx0cmV0dXJuIGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdLmV4cG9ydHM7XG4gXHRcdH1cbiBcdFx0Ly8gQ3JlYXRlIGEgbmV3IG1vZHVsZSAoYW5kIHB1dCBpdCBpbnRvIHRoZSBjYWNoZSlcbiBcdFx0dmFyIG1vZHVsZSA9IGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdID0ge1xuIFx0XHRcdGk6IG1vZHVsZUlkLFxuIFx0XHRcdGw6IGZhbHNlLFxuIFx0XHRcdGV4cG9ydHM6IHt9XG4gXHRcdH07XG5cbiBcdFx0Ly8gRXhlY3V0ZSB0aGUgbW9kdWxlIGZ1bmN0aW9uXG4gXHRcdG1vZHVsZXNbbW9kdWxlSWRdLmNhbGwobW9kdWxlLmV4cG9ydHMsIG1vZHVsZSwgbW9kdWxlLmV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pO1xuXG4gXHRcdC8vIEZsYWcgdGhlIG1vZHVsZSBhcyBsb2FkZWRcbiBcdFx0bW9kdWxlLmwgPSB0cnVlO1xuXG4gXHRcdC8vIFJldHVybiB0aGUgZXhwb3J0cyBvZiB0aGUgbW9kdWxlXG4gXHRcdHJldHVybiBtb2R1bGUuZXhwb3J0cztcbiBcdH1cblxuXG4gXHQvLyBleHBvc2UgdGhlIG1vZHVsZXMgb2JqZWN0IChfX3dlYnBhY2tfbW9kdWxlc19fKVxuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5tID0gbW9kdWxlcztcblxuIFx0Ly8gZXhwb3NlIHRoZSBtb2R1bGUgY2FjaGVcbiBcdF9fd2VicGFja19yZXF1aXJlX18uYyA9IGluc3RhbGxlZE1vZHVsZXM7XG5cbiBcdC8vIGRlZmluZSBnZXR0ZXIgZnVuY3Rpb24gZm9yIGhhcm1vbnkgZXhwb3J0c1xuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5kID0gZnVuY3Rpb24oZXhwb3J0cywgbmFtZSwgZ2V0dGVyKSB7XG4gXHRcdGlmKCFfX3dlYnBhY2tfcmVxdWlyZV9fLm8oZXhwb3J0cywgbmFtZSkpIHtcbiBcdFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgbmFtZSwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGdldHRlciB9KTtcbiBcdFx0fVxuIFx0fTtcblxuIFx0Ly8gZGVmaW5lIF9fZXNNb2R1bGUgb24gZXhwb3J0c1xuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5yID0gZnVuY3Rpb24oZXhwb3J0cykge1xuIFx0XHRpZih0eXBlb2YgU3ltYm9sICE9PSAndW5kZWZpbmVkJyAmJiBTeW1ib2wudG9TdHJpbmdUYWcpIHtcbiBcdFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgU3ltYm9sLnRvU3RyaW5nVGFnLCB7IHZhbHVlOiAnTW9kdWxlJyB9KTtcbiBcdFx0fVxuIFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgJ19fZXNNb2R1bGUnLCB7IHZhbHVlOiB0cnVlIH0pO1xuIFx0fTtcblxuIFx0Ly8gY3JlYXRlIGEgZmFrZSBuYW1lc3BhY2Ugb2JqZWN0XG4gXHQvLyBtb2RlICYgMTogdmFsdWUgaXMgYSBtb2R1bGUgaWQsIHJlcXVpcmUgaXRcbiBcdC8vIG1vZGUgJiAyOiBtZXJnZSBhbGwgcHJvcGVydGllcyBvZiB2YWx1ZSBpbnRvIHRoZSBuc1xuIFx0Ly8gbW9kZSAmIDQ6IHJldHVybiB2YWx1ZSB3aGVuIGFscmVhZHkgbnMgb2JqZWN0XG4gXHQvLyBtb2RlICYgOHwxOiBiZWhhdmUgbGlrZSByZXF1aXJlXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLnQgPSBmdW5jdGlvbih2YWx1ZSwgbW9kZSkge1xuIFx0XHRpZihtb2RlICYgMSkgdmFsdWUgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKHZhbHVlKTtcbiBcdFx0aWYobW9kZSAmIDgpIHJldHVybiB2YWx1ZTtcbiBcdFx0aWYoKG1vZGUgJiA0KSAmJiB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmIHZhbHVlICYmIHZhbHVlLl9fZXNNb2R1bGUpIHJldHVybiB2YWx1ZTtcbiBcdFx0dmFyIG5zID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiBcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5yKG5zKTtcbiBcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KG5zLCAnZGVmYXVsdCcsIHsgZW51bWVyYWJsZTogdHJ1ZSwgdmFsdWU6IHZhbHVlIH0pO1xuIFx0XHRpZihtb2RlICYgMiAmJiB0eXBlb2YgdmFsdWUgIT0gJ3N0cmluZycpIGZvcih2YXIga2V5IGluIHZhbHVlKSBfX3dlYnBhY2tfcmVxdWlyZV9fLmQobnMsIGtleSwgZnVuY3Rpb24oa2V5KSB7IHJldHVybiB2YWx1ZVtrZXldOyB9LmJpbmQobnVsbCwga2V5KSk7XG4gXHRcdHJldHVybiBucztcbiBcdH07XG5cbiBcdC8vIGdldERlZmF1bHRFeHBvcnQgZnVuY3Rpb24gZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBub24taGFybW9ueSBtb2R1bGVzXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLm4gPSBmdW5jdGlvbihtb2R1bGUpIHtcbiBcdFx0dmFyIGdldHRlciA9IG1vZHVsZSAmJiBtb2R1bGUuX19lc01vZHVsZSA/XG4gXHRcdFx0ZnVuY3Rpb24gZ2V0RGVmYXVsdCgpIHsgcmV0dXJuIG1vZHVsZVsnZGVmYXVsdCddOyB9IDpcbiBcdFx0XHRmdW5jdGlvbiBnZXRNb2R1bGVFeHBvcnRzKCkgeyByZXR1cm4gbW9kdWxlOyB9O1xuIFx0XHRfX3dlYnBhY2tfcmVxdWlyZV9fLmQoZ2V0dGVyLCAnYScsIGdldHRlcik7XG4gXHRcdHJldHVybiBnZXR0ZXI7XG4gXHR9O1xuXG4gXHQvLyBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGxcbiBcdF9fd2VicGFja19yZXF1aXJlX18ubyA9IGZ1bmN0aW9uKG9iamVjdCwgcHJvcGVydHkpIHsgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmplY3QsIHByb3BlcnR5KTsgfTtcblxuIFx0Ly8gX193ZWJwYWNrX3B1YmxpY19wYXRoX19cbiBcdF9fd2VicGFja19yZXF1aXJlX18ucCA9IFwiXCI7XG5cblxuIFx0Ly8gTG9hZCBlbnRyeSBtb2R1bGUgYW5kIHJldHVybiBleHBvcnRzXG4gXHRyZXR1cm4gX193ZWJwYWNrX3JlcXVpcmVfXyhfX3dlYnBhY2tfcmVxdWlyZV9fLnMgPSA3KTtcbiIsImxldCBlYXNpbmcgPSByZXF1aXJlKCcuL2Vhc2luZycpXG5sZXQgU1FSVF8yID0gTWF0aC5zcXJ0KDIpXG5sZXQgeyBjb3MsIG1heCwgbWluIH0gPSBNYXRoXG5cbmZ1bmN0aW9uIGdldFByZXNzKGJsb3QpIHtcbiAgcmV0dXJuIG1pbihibG90LmR1cmF0aW9uLCBEYXRlLm5vdygpIC0gYmxvdC5tb3VzZURvd24pXG59XG5cbmZ1bmN0aW9uIGdldFJlbGVhc2UoYmxvdCkge1xuICByZXR1cm4gYmxvdC5tb3VzZVVwID4gMCA/IERhdGUubm93KCkgLSBibG90Lm1vdXNlVXAgOiAwXG59XG5cbmZ1bmN0aW9uIGdldFJhZGl1cyhibG90KSB7XG4gIGxldCB7IGR1cmF0aW9uLCByYWRpdXMgfSA9IGJsb3RcblxuICBsZXQgZG93biA9IGVhc2luZyhnZXRQcmVzcyhibG90KSwgMCwgcmFkaXVzLCBkdXJhdGlvbikgKiAwLjg1XG4gIGxldCB1cCA9IGVhc2luZyhnZXRSZWxlYXNlKGJsb3QpLCAwLCByYWRpdXMsIGR1cmF0aW9uKSAqIDAuMTVcbiAgbGV0IHVuZHVsYXRpb24gPSByYWRpdXMgKiAwLjAyICogY29zKERhdGUubm93KCkgLyBkdXJhdGlvbilcblxuICByZXR1cm4gbWF4KDAsIGRvd24gKyB1cCArIHVuZHVsYXRpb24pXG59XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICBnZXRNYXhSYWRpdXMoaGVpZ2h0LCB3aWR0aCwgcmFkaXVzKSB7XG4gICAgcmV0dXJuIG1pbihtYXgoaGVpZ2h0LCB3aWR0aCkgKiAwLjUsIHJhZGl1cylcbiAgfSxcblxuICBnZXRCbG90T3BhY2l0eShibG90LCBvcGFjaXR5KSB7XG4gICAgcmV0dXJuIGVhc2luZyhnZXRSZWxlYXNlKGJsb3QpLCBvcGFjaXR5LCAtb3BhY2l0eSwgYmxvdC5kdXJhdGlvbilcbiAgfSxcblxuICBnZXRCbG90T3V0ZXJPcGFjaXR5KGJsb3QsIG9wYWNpdHkpIHtcbiAgICByZXR1cm4gbWluKFxuICAgICAgdGhpcy5nZXRCbG90T3BhY2l0eShibG90LCBvcGFjaXR5KSxcbiAgICAgIGVhc2luZyhnZXRQcmVzcyhibG90KSwgMCwgMC4zLCBibG90LmR1cmF0aW9uICogMylcbiAgICApXG4gIH0sXG5cbiAgZ2V0QmxvdFNoaWZ0WChibG90LCBzaXplLCB3aWR0aCkge1xuICAgIHJldHVybiAoXG4gICAgICBtaW4oMSwgKChnZXRSYWRpdXMoYmxvdCkgLyBzaXplKSAqIDIpIC8gU1FSVF8yKSAqICh3aWR0aCAvIDIgLSBibG90LngpXG4gICAgKVxuICB9LFxuXG4gIGdldEJsb3RTaGlmdFkoYmxvdCwgc2l6ZSwgaGVpZ2h0KSB7XG4gICAgcmV0dXJuIChcbiAgICAgIG1pbigxLCAoKGdldFJhZGl1cyhibG90KSAvIHNpemUpICogMikgLyBTUVJUXzIpICogKGhlaWdodCAvIDIgLSBibG90LnkpXG4gICAgKVxuICB9LFxuXG4gIGdldEJsb3RTY2FsZShibG90KSB7XG4gICAgcmV0dXJuIGdldFJhZGl1cyhibG90KSAvIGJsb3QucmFkaXVzXG4gIH1cbn1cbiIsIi8qKlxuICogQHQgaXMgdGhlIGN1cnJlbnQgdGltZSAob3IgcG9zaXRpb24pIG9mIHRoZSB0d2Vlbi4gVGhpcyBjYW4gYmUgc2Vjb25kcyBvciBmcmFtZXMsIHN0ZXBzLCBzZWNvbmRzLCBtcywgd2hhdGV2ZXIg4oCTIGFzIGxvbmcgYXMgdGhlIHVuaXQgaXMgdGhlIHNhbWUgYXMgaXMgdXNlZCBmb3IgdGhlIHRvdGFsIHRpbWUgWzNdLlxuICogQGIgaXMgdGhlIGJlZ2lubmluZyB2YWx1ZSBvZiB0aGUgcHJvcGVydHkuXG4gKiBAYyBpcyB0aGUgY2hhbmdlIGJldHdlZW4gdGhlIGJlZ2lubmluZyBhbmQgZGVzdGluYXRpb24gdmFsdWUgb2YgdGhlIHByb3BlcnR5LlxuICogQGQgaXMgdGhlIHRvdGFsIHRpbWUgb2YgdGhlIHR3ZWVuLlxuICovXG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gZWFzZU91dFF1aW50KHQsIGIsIGMsIGQpIHtcbiAgcmV0dXJuIGMgKiAoKHQgPSB0IC8gZCAtIDEpICogdCAqIHQgKiB0ICogdCArIDEpICsgYlxufVxuIiwiLyoqXG4gKiBJbmsgU3RvcmVcbiAqIEtlZXBzIHRyYWNrIG9mIGNoYW5nZXMgdG8gcmlwcGxlIGVwaWNlbnRlcnNcbiAqIHNvIHRoYXQgPEluayAvPiBjYW4gZm9jdXMgb24gcmVuZGVyaW5nIHRoZW0uXG4gKi9cblxudmFyIEVxdWF0aW9ucyA9IHJlcXVpcmUoJy4vZXF1YXRpb25zJylcblxubGV0IGtpbGxTdGFsZSA9ICh7IG1vdXNlVXAsIGR1cmF0aW9uIH0pID0+XG4gICFtb3VzZVVwIHx8IERhdGUubm93KCkgLSBtb3VzZVVwIDwgZHVyYXRpb25cblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbihwdWJsaWNpemUpIHtcbiAgbGV0IF9kYXRhID0gW11cbiAgbGV0IF9wbGF5aW5nID0gZmFsc2VcbiAgbGV0IF9mcmFtZVxuXG4gIGxldCBTdG9yZSA9IHtcbiAgICBlYWNoKGNhbGxiYWNrLCBzY29wZSkge1xuICAgICAgZm9yICh2YXIgaSA9IDAsIGwgPSBfZGF0YS5sZW5ndGg7IGkgPCBsOyBpKyspIHtcbiAgICAgICAgY2FsbGJhY2suY2FsbChzY29wZSwgX2RhdGFbaV0pXG4gICAgICB9XG4gICAgfSxcblxuICAgIHBsYXkoKSB7XG4gICAgICBpZiAoIV9wbGF5aW5nKSB7XG4gICAgICAgIF9wbGF5aW5nID0gdHJ1ZVxuICAgICAgICBTdG9yZS51cGRhdGUoKVxuICAgICAgfVxuICAgIH0sXG5cbiAgICBzdG9wKCkge1xuICAgICAgX3BsYXlpbmcgPSBmYWxzZVxuICAgICAgY2FuY2VsQW5pbWF0aW9uRnJhbWUoX2ZyYW1lKVxuICAgIH0sXG5cbiAgICBnZXRUb3RhbE9wYWNpdHkob3BhY2l0eSkge1xuICAgICAgbGV0IGFuc3dlciA9IDBcblxuICAgICAgZm9yICh2YXIgaSA9IDAsIGwgPSBfZGF0YS5sZW5ndGg7IGkgPCBsOyBpKyspIHtcbiAgICAgICAgYW5zd2VyICs9IEVxdWF0aW9ucy5nZXRCbG90T3V0ZXJPcGFjaXR5KF9kYXRhW2ldLCBvcGFjaXR5KVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gYW5zd2VyXG4gICAgfSxcblxuICAgIHVwZGF0ZSgpIHtcbiAgICAgIF9kYXRhID0gX2RhdGEuZmlsdGVyKGtpbGxTdGFsZSlcblxuICAgICAgaWYgKF9kYXRhLmxlbmd0aCkge1xuICAgICAgICBfZnJhbWUgPSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoU3RvcmUudXBkYXRlKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgU3RvcmUuc3RvcCgpXG4gICAgICB9XG5cbiAgICAgIHB1YmxpY2l6ZSgpXG4gICAgfSxcblxuICAgIGFkZChwcm9wcykge1xuICAgICAgX2RhdGEucHVzaChwcm9wcylcbiAgICAgIFN0b3JlLnBsYXkoKVxuICAgIH0sXG5cbiAgICByZWxlYXNlKHRpbWUpIHtcbiAgICAgIGZvciAobGV0IGkgPSBfZGF0YS5sZW5ndGggLSAxOyBpID49IDA7IGktLSkge1xuICAgICAgICBpZiAoIV9kYXRhW2ldLm1vdXNlVXApIHtcbiAgICAgICAgICByZXR1cm4gKF9kYXRhW2ldLm1vdXNlVXAgPSB0aW1lKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIFN0b3JlXG59XG4iLCJtb2R1bGUuZXhwb3J0cyA9IHtcbiAgYm9yZGVyUmFkaXVzOiAnaW5oZXJpdCcsXG4gIGhlaWdodDogJzEwMCUnLFxuICBsZWZ0OiAwLFxuICBwb3NpdGlvbjogJ2Fic29sdXRlJyxcbiAgdG9wOiAwLFxuICB3aWR0aDogJzEwMCUnXG59XG4iLCJtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoXCJyZWFjdFwiKTsiLCIvLyBHb29kIHN0dWZmIGhlcmU6XG4vLyBodHRwOi8vd3d3Lmh0bWw1cm9ja3MuY29tL2VuL3R1dG9yaWFscy9jYW52YXMvaGlkcGkvXG5cbm1vZHVsZS5leHBvcnRzID0gY29udGV4dCA9PiB7XG4gIGxldCBkZXZpY2VQaXhlbFJhdGlvID0gd2luZG93LmRldmljZVBpeGVsUmF0aW8gfHwgMVxuICBsZXQgYmFja2luZ1N0b3JlUmF0aW8gPVxuICAgIGNvbnRleHQud2Via2l0QmFja2luZ1N0b3JlUGl4ZWxSYXRpbyB8fFxuICAgIGNvbnRleHQubW96QmFja2luZ1N0b3JlUGl4ZWxSYXRpbyB8fFxuICAgIGNvbnRleHQubXNCYWNraW5nU3RvcmVQaXhlbFJhdGlvIHx8XG4gICAgY29udGV4dC5vQmFja2luZ1N0b3JlUGl4ZWxSYXRpbyB8fFxuICAgIGNvbnRleHQuYmFja2luZ1N0b3JlUGl4ZWxSYXRpbyB8fFxuICAgIDFcblxuICByZXR1cm4gZGV2aWNlUGl4ZWxSYXRpbyAvIGJhY2tpbmdTdG9yZVJhdGlvXG59XG4iLCJ2YXIgYm9vbCA9IGZhbHNlXG5cbmlmICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJykge1xuICBib29sID1cbiAgICAnb250b3VjaHN0YXJ0JyBpbiB3aW5kb3cgfHxcbiAgICAod2luZG93LkRvY3VtZW50VG91Y2ggJiYgZG9jdW1lbnQgaW5zdGFuY2VvZiB3aW5kb3cuRG9jdW1lbnRUb3VjaClcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBib29sXG4iLCIvKipcbiAqIElua1xuICogRmlsbHMgYSBjb250YWluZXIgd2l0aCBhbiBTVkcgb2JqZWN0IHRoYXQgcHJvdmlkZXMgZmVlZGJhY2sgb24gbW91c2UvdG91Y2hcbiAqIGV2ZW50cyB3aXRoIGEgcmlwcGxpbmcgcG9vbC5cbiAqL1xuXG5sZXQgSEFTX1RPVUNIID0gcmVxdWlyZSgnLi91dGlsL2hhc1RvdWNoJylcbmxldCBNT1VTRV9MRUZUID0gMFxubGV0IHBpeGVsUmF0aW8gPSByZXF1aXJlKCcuL3V0aWwvcGl4ZWxSYXRpbycpXG5sZXQgUmVhY3QgPSByZXF1aXJlKCdyZWFjdCcpXG5sZXQgU1RZTEUgPSByZXF1aXJlKCcuL3N0eWxlJylcbmxldCBTdG9yZSA9IHJlcXVpcmUoJy4vdXRpbC9zdG9yZScpXG5sZXQgVEFVID0gTWF0aC5QSSAqIDJcbmxldCBFcXVhdGlvbnMgPSByZXF1aXJlKCcuL3V0aWwvZXF1YXRpb25zJylcblxuY2xhc3MgSW5rIGV4dGVuZHMgUmVhY3QuUHVyZUNvbXBvbmVudCB7XG4gIHN0YXRpYyBkZWZhdWx0UHJvcHMgPSB7XG4gICAgYmFja2dyb3VuZDogdHJ1ZSxcbiAgICBjbGFzc05hbWU6ICdpbmsnLFxuICAgIGR1cmF0aW9uOiAxMDAwLFxuICAgIG9wYWNpdHk6IDAuMjUsXG4gICAgcmFkaXVzOiAxNTAsXG4gICAgcmVjZW50ZXI6IHRydWUsXG4gICAgaGFzVG91Y2g6IEhBU19UT1VDSFxuICB9XG5cbiAgY29uc3RydWN0b3IocHJvcHMpIHtcbiAgICBzdXBlciguLi5hcmd1bWVudHMpXG5cbiAgICB0aGlzLnN0YXRlID0ge1xuICAgICAgY29sb3I6ICd0cmFuc3BhcmVudCcsXG4gICAgICBkZW5zaXR5OiAxLFxuICAgICAgaGVpZ2h0OiAwLFxuICAgICAgc3RvcmU6IFN0b3JlKHRoaXMudGljayksXG4gICAgICB0b3VjaEV2ZW50czogdGhpcy50b3VjaEV2ZW50cygpLFxuICAgICAgd2lkdGg6IDBcbiAgICB9XG4gIH1cblxuICB0b3VjaEV2ZW50cygpIHtcbiAgICBpZiAodGhpcy5wcm9wcy5oYXNUb3VjaCkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgb25Ub3VjaFN0YXJ0OiB0aGlzLl9vblByZXNzLFxuICAgICAgICBvblRvdWNoRW5kOiB0aGlzLl9vblJlbGVhc2UsXG4gICAgICAgIG9uVG91Y2hDYW5jZWw6IHRoaXMuX29uUmVsZWFzZVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBvbk1vdXNlRG93bjogdGhpcy5fb25QcmVzcyxcbiAgICAgICAgb25Nb3VzZVVwOiB0aGlzLl9vblJlbGVhc2UsXG4gICAgICAgIG9uTW91c2VMZWF2ZTogdGhpcy5fb25SZWxlYXNlXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgdGljayA9ICgpID0+IHtcbiAgICBsZXQgeyBjdHgsIGNvbG9yLCBkZW5zaXR5LCBoZWlnaHQsIHdpZHRoLCBzdG9yZSB9ID0gdGhpcy5zdGF0ZVxuXG4gICAgY3R4LnNhdmUoKVxuXG4gICAgY3R4LnNjYWxlKGRlbnNpdHksIGRlbnNpdHkpXG5cbiAgICBjdHguY2xlYXJSZWN0KDAsIDAsIHdpZHRoLCBoZWlnaHQpXG5cbiAgICBjdHguZmlsbFN0eWxlID0gY29sb3JcblxuICAgIGlmICh0aGlzLnByb3BzLmJhY2tncm91bmQpIHtcbiAgICAgIGN0eC5nbG9iYWxBbHBoYSA9IHN0b3JlLmdldFRvdGFsT3BhY2l0eSh0aGlzLnByb3BzLm9wYWNpdHkpXG4gICAgICBjdHguZmlsbFJlY3QoMCwgMCwgd2lkdGgsIGhlaWdodClcbiAgICB9XG5cbiAgICBzdG9yZS5lYWNoKHRoaXMubWFrZUJsb3QsIHRoaXMpXG5cbiAgICBjdHgucmVzdG9yZSgpXG4gIH1cblxuICBtYWtlQmxvdChibG90KSB7XG4gICAgbGV0IHsgY3R4LCBoZWlnaHQsIHdpZHRoIH0gPSB0aGlzLnN0YXRlXG4gICAgbGV0IHsgeCwgeSwgcmFkaXVzIH0gPSBibG90XG5cbiAgICBjdHguZ2xvYmFsQWxwaGEgPSBFcXVhdGlvbnMuZ2V0QmxvdE9wYWNpdHkoYmxvdCwgdGhpcy5wcm9wcy5vcGFjaXR5KVxuICAgIGN0eC5iZWdpblBhdGgoKVxuXG4gICAgaWYgKHRoaXMucHJvcHMucmVjZW50ZXIpIHtcbiAgICAgIGxldCBzaXplID0gTWF0aC5tYXgoaGVpZ2h0LCB3aWR0aClcblxuICAgICAgeCArPSBFcXVhdGlvbnMuZ2V0QmxvdFNoaWZ0WChibG90LCBzaXplLCB3aWR0aClcbiAgICAgIHkgKz0gRXF1YXRpb25zLmdldEJsb3RTaGlmdFkoYmxvdCwgc2l6ZSwgaGVpZ2h0KVxuICAgIH1cblxuICAgIGN0eC5hcmMoeCwgeSwgcmFkaXVzICogRXF1YXRpb25zLmdldEJsb3RTY2FsZShibG90KSwgMCwgVEFVKVxuXG4gICAgY3R4LmNsb3NlUGF0aCgpXG4gICAgY3R4LmZpbGwoKVxuICB9XG5cbiAgY29tcG9uZW50V2lsbFVubW91bnQoKSB7XG4gICAgdGhpcy5zdGF0ZS5zdG9yZS5zdG9wKClcbiAgfVxuXG4gIHB1c2hCbG90KHRpbWVTdGFtcCwgY2xpZW50WCwgY2xpZW50WSkge1xuICAgIGxldCBlbCA9IHRoaXMuY2FudmFzXG5cbiAgICAvLyAwLjEzIHN1cHBvcnRcbiAgICBpZiAoZWwuZ2V0RE9NTm9kZSAmJiAnZnVuY3Rpb24nID09PSB0eXBlb2YgZWwuZ2V0RE9NTm9kZSkge1xuICAgICAgZWwgPSBlbC5nZXRET01Ob2RlKClcbiAgICB9XG5cbiAgICBsZXQgeyB0b3AsIGJvdHRvbSwgbGVmdCwgcmlnaHQgfSA9IGVsLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpXG4gICAgbGV0IHsgY29sb3IgfSA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGVsKVxuXG4gICAgbGV0IGN0eCA9IHRoaXMuc3RhdGUuY3R4IHx8IGVsLmdldENvbnRleHQoJzJkJylcbiAgICBsZXQgZGVuc2l0eSA9IHBpeGVsUmF0aW8oY3R4KVxuICAgIGxldCBoZWlnaHQgPSBib3R0b20gLSB0b3BcbiAgICBsZXQgd2lkdGggPSByaWdodCAtIGxlZnRcbiAgICBsZXQgcmFkaXVzID0gRXF1YXRpb25zLmdldE1heFJhZGl1cyhoZWlnaHQsIHdpZHRoLCB0aGlzLnByb3BzLnJhZGl1cylcblxuICAgIHRoaXMuc2V0U3RhdGUoeyBjb2xvciwgY3R4LCBkZW5zaXR5LCBoZWlnaHQsIHdpZHRoIH0sICgpID0+IHtcbiAgICAgIHRoaXMuc3RhdGUuc3RvcmUuYWRkKHtcbiAgICAgICAgZHVyYXRpb246IHRoaXMucHJvcHMuZHVyYXRpb24sXG4gICAgICAgIG1vdXNlRG93bjogdGltZVN0YW1wLFxuICAgICAgICBtb3VzZVVwOiAwLFxuICAgICAgICByYWRpdXM6IHJhZGl1cyxcbiAgICAgICAgeDogY2xpZW50WCAtIGxlZnQsXG4gICAgICAgIHk6IGNsaWVudFkgLSB0b3BcbiAgICAgIH0pXG4gICAgfSlcbiAgfVxuXG4gIHNldENhbnZhcyhlbCkge1xuICAgIHRoaXMuY2FudmFzID0gZWxcbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICBsZXQgeyBjbGFzc05hbWUsIGRlbnNpdHksIGhlaWdodCwgd2lkdGgsIHRvdWNoRXZlbnRzIH0gPSB0aGlzLnN0YXRlXG5cbiAgICByZXR1cm4gKFxuICAgICAgPGNhbnZhc1xuICAgICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZX1cbiAgICAgICAgcmVmPXt0aGlzLnNldENhbnZhcy5iaW5kKHRoaXMpfVxuICAgICAgICBzdHlsZT17eyAuLi5TVFlMRSwgLi4udGhpcy5wcm9wcy5zdHlsZSB9fVxuICAgICAgICBoZWlnaHQ9e2hlaWdodCAqIGRlbnNpdHl9XG4gICAgICAgIHdpZHRoPXt3aWR0aCAqIGRlbnNpdHl9XG4gICAgICAgIG9uRHJhZ092ZXI9e3RoaXMuX29uUmVsZWFzZX1cbiAgICAgICAgey4uLnRvdWNoRXZlbnRzfVxuICAgICAgLz5cbiAgICApXG4gIH1cblxuICBfb25QcmVzcyA9IGUgPT4ge1xuICAgIGxldCB7IGJ1dHRvbiwgY3RybEtleSwgY2xpZW50WCwgY2xpZW50WSwgY2hhbmdlZFRvdWNoZXMgfSA9IGVcbiAgICBsZXQgdGltZVN0YW1wID0gRGF0ZS5ub3coKVxuXG4gICAgaWYgKGNoYW5nZWRUb3VjaGVzKSB7XG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNoYW5nZWRUb3VjaGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGxldCB7IGNsaWVudFgsIGNsaWVudFkgfSA9IGNoYW5nZWRUb3VjaGVzW2ldXG4gICAgICAgIHRoaXMucHVzaEJsb3QodGltZVN0YW1wLCBjbGllbnRYLCBjbGllbnRZKVxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoYnV0dG9uID09PSBNT1VTRV9MRUZUICYmICFjdHJsS2V5KSB7XG4gICAgICB0aGlzLnB1c2hCbG90KHRpbWVTdGFtcCwgY2xpZW50WCwgY2xpZW50WSlcbiAgICB9XG4gIH1cblxuICBfb25SZWxlYXNlID0gKCkgPT4ge1xuICAgIHRoaXMuc3RhdGUuc3RvcmUucmVsZWFzZShEYXRlLm5vdygpKVxuICB9XG59XG5cbm1vZHVsZS5leHBvcnRzID0gSW5rXG4iXSwic291cmNlUm9vdCI6IiJ9 |
{ | ||
"name": "react-ink", | ||
"version": "6.3.0", | ||
"version": "6.4.0", | ||
"description": "A React component for adding material design style ink.", | ||
@@ -5,0 +5,0 @@ "main": "dist/ink.js", |
@@ -105,3 +105,3 @@ /** | ||
// 0.13 support | ||
if (el instanceof window.HTMLCanvasElement === false) { | ||
if (el.getDOMNode && 'function' === typeof el.getDOMNode) { | ||
el = el.getDOMNode() | ||
@@ -108,0 +108,0 @@ } |
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
510744
24
0