phaser3-swipe-plugin
Version:
Mobile swipe plugin for Phaser 3.
2 lines • 14.1 kB
JavaScript
!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define("MyLib",[],e):"object"==typeof exports?exports.MyLib=e():t.MyLib=e()}(window,function(){return function(t){var e={};function n(i){if(e[i])return e[i].exports;var o=e[i]={i:i,l:!1,exports:{}};return t[i].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=t,n.c=e,n.d=function(t,e,i){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:i})},n.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var i=Object.create(null);if(n.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var o in t)n.d(i,o,function(e){return t[e]}.bind(null,o));return i},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="",n(n.s=0)}([function(t,e,n){"use strict";n.r(e),n.d(e,"default",function(){return o});const i={offset:.1*window.innerWidth};class o extends Phaser.Plugins.BasePlugin{constructor(t){super(t),this.UP="up",this.RIGHT="right",this.DOWN="down",this.LEFT="left",this.config=i}init(t){this.configure(t),this.game.canvas.addEventListener("touchstart",this.onTouchstart.bind(this)),this.game.canvas.addEventListener("touchend",this.onTouchend.bind(this))}onTouchstart(t){const e=this.getTouch(t);this.xDown=e.clientX,this.yDown=e.clientY}onTouchend(t){if(!this.xDown||!this.yDown)return;const{clientX:e,clientY:n}=this.getTouch(t),i=this.xDown-e,o=this.yDown-n,r=Math.abs(this.xDown-e),s=Math.abs(this.yDown-n);Math.max(r,s)<this.config.offset||(r>s?this.sendEvent(i>0?this.LEFT:this.RIGHT):this.sendEvent(o>0?this.UP:this.DOWN))}getTouch(t){return t.changedTouches[0]}configure(t){Object.assign(this.config,t)}sendEvent(t){this.game.events.emit("swipe",t)}}}])});
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9NeUxpYi93ZWJwYWNrL3VuaXZlcnNhbE1vZHVsZURlZmluaXRpb24iLCJ3ZWJwYWNrOi8vTXlMaWIvd2VicGFjay9ib290c3RyYXAiLCJ3ZWJwYWNrOi8vTXlMaWIvLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOlsicm9vdCIsImZhY3RvcnkiLCJleHBvcnRzIiwibW9kdWxlIiwiZGVmaW5lIiwiYW1kIiwid2luZG93IiwiaW5zdGFsbGVkTW9kdWxlcyIsIl9fd2VicGFja19yZXF1aXJlX18iLCJtb2R1bGVJZCIsImkiLCJsIiwibW9kdWxlcyIsImNhbGwiLCJtIiwiYyIsImQiLCJuYW1lIiwiZ2V0dGVyIiwibyIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZW51bWVyYWJsZSIsImdldCIsInIiLCJTeW1ib2wiLCJ0b1N0cmluZ1RhZyIsInZhbHVlIiwidCIsIm1vZGUiLCJfX2VzTW9kdWxlIiwibnMiLCJjcmVhdGUiLCJrZXkiLCJiaW5kIiwibiIsIm9iamVjdCIsInByb3BlcnR5IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJwIiwicyIsIl9fd2VicGFja19leHBvcnRzX18iLCJTd2lwZVBsdWdpbiIsImRlZmF1bHRDb25maWciLCJvZmZzZXQiLCJpbm5lcldpZHRoIiwiUGhhc2VyIiwiUGx1Z2lucyIsIkJhc2VQbHVnaW4iLCJbb2JqZWN0IE9iamVjdF0iLCJwbHVnaW5NYW5hZ2VyIiwic3VwZXIiLCJ0aGlzIiwiVVAiLCJSSUdIVCIsIkRPV04iLCJMRUZUIiwiY29uZmlnIiwiZGF0YSIsImNvbmZpZ3VyZSIsImdhbWUiLCJjYW52YXMiLCJhZGRFdmVudExpc3RlbmVyIiwib25Ub3VjaHN0YXJ0Iiwib25Ub3VjaGVuZCIsImUiLCJmaXJzdFRvdWNoIiwiZ2V0VG91Y2giLCJ4RG93biIsImNsaWVudFgiLCJ5RG93biIsImNsaWVudFkiLCJ4VXAiLCJ5VXAiLCJ4RGlmZiIsInlEaWZmIiwieERpZmZBYnMiLCJNYXRoIiwiYWJzIiwieURpZmZBYnMiLCJtYXgiLCJzZW5kRXZlbnQiLCJjaGFuZ2VkVG91Y2hlcyIsImFzc2lnbiIsImRpciIsImV2ZW50cyIsImVtaXQiXSwibWFwcGluZ3MiOiJDQUFBLFNBQUFBLEVBQUFDLEdBQ0EsaUJBQUFDLFNBQUEsaUJBQUFDLE9BQ0FBLE9BQUFELFFBQUFELElBQ0EsbUJBQUFHLGVBQUFDLElBQ0FELE9BQUEsV0FBQUgsR0FDQSxpQkFBQUMsUUFDQUEsUUFBQSxNQUFBRCxJQUVBRCxFQUFBLE1BQUFDLElBUkEsQ0FTQ0ssT0FBQSxXQUNELG1CQ1RBLElBQUFDLEVBQUEsR0FHQSxTQUFBQyxFQUFBQyxHQUdBLEdBQUFGLEVBQUFFLEdBQ0EsT0FBQUYsRUFBQUUsR0FBQVAsUUFHQSxJQUFBQyxFQUFBSSxFQUFBRSxHQUFBLENBQ0FDLEVBQUFELEVBQ0FFLEdBQUEsRUFDQVQsUUFBQSxJQVVBLE9BTkFVLEVBQUFILEdBQUFJLEtBQUFWLEVBQUFELFFBQUFDLElBQUFELFFBQUFNLEdBR0FMLEVBQUFRLEdBQUEsRUFHQVIsRUFBQUQsUUEwREEsT0FyREFNLEVBQUFNLEVBQUFGLEVBR0FKLEVBQUFPLEVBQUFSLEVBR0FDLEVBQUFRLEVBQUEsU0FBQWQsRUFBQWUsRUFBQUMsR0FDQVYsRUFBQVcsRUFBQWpCLEVBQUFlLElBQ0FHLE9BQUFDLGVBQUFuQixFQUFBZSxFQUFBLENBQTBDSyxZQUFBLEVBQUFDLElBQUFMLEtBSzFDVixFQUFBZ0IsRUFBQSxTQUFBdEIsR0FDQSxvQkFBQXVCLGVBQUFDLGFBQ0FOLE9BQUFDLGVBQUFuQixFQUFBdUIsT0FBQUMsWUFBQSxDQUF3REMsTUFBQSxXQUV4RFAsT0FBQUMsZUFBQW5CLEVBQUEsY0FBaUR5QixPQUFBLEtBUWpEbkIsRUFBQW9CLEVBQUEsU0FBQUQsRUFBQUUsR0FFQSxHQURBLEVBQUFBLElBQUFGLEVBQUFuQixFQUFBbUIsSUFDQSxFQUFBRSxFQUFBLE9BQUFGLEVBQ0EsS0FBQUUsR0FBQSxpQkFBQUYsUUFBQUcsV0FBQSxPQUFBSCxFQUNBLElBQUFJLEVBQUFYLE9BQUFZLE9BQUEsTUFHQSxHQUZBeEIsRUFBQWdCLEVBQUFPLEdBQ0FYLE9BQUFDLGVBQUFVLEVBQUEsV0FBeUNULFlBQUEsRUFBQUssVUFDekMsRUFBQUUsR0FBQSxpQkFBQUYsRUFBQSxRQUFBTSxLQUFBTixFQUFBbkIsRUFBQVEsRUFBQWUsRUFBQUUsRUFBQSxTQUFBQSxHQUFnSCxPQUFBTixFQUFBTSxJQUFxQkMsS0FBQSxLQUFBRCxJQUNySSxPQUFBRixHQUlBdkIsRUFBQTJCLEVBQUEsU0FBQWhDLEdBQ0EsSUFBQWUsRUFBQWYsS0FBQTJCLFdBQ0EsV0FBMkIsT0FBQTNCLEVBQUEsU0FDM0IsV0FBaUMsT0FBQUEsR0FFakMsT0FEQUssRUFBQVEsRUFBQUUsRUFBQSxJQUFBQSxHQUNBQSxHQUlBVixFQUFBVyxFQUFBLFNBQUFpQixFQUFBQyxHQUFzRCxPQUFBakIsT0FBQWtCLFVBQUFDLGVBQUExQixLQUFBdUIsRUFBQUMsSUFHdEQ3QixFQUFBZ0MsRUFBQSxHQUlBaEMsSUFBQWlDLEVBQUEsa0NDdkVBakMsRUFBQWdCLEVBQUFrQixHQUFBbEMsRUFBQVEsRUFBQTBCLEVBQUEsNEJBQUFDLElBQUEsTUFBTUMsRUFBaUMsQ0FDckNDLE9BQTRCLEdBQXBCdkMsT0FBT3dDLFlBS0YsTUFBTUgsVUFBb0JJLE9BQU9DLFFBQVFDLFdBV3REQyxZQUFhQyxHQUNYQyxNQUFNRCxHQVhERSxLQUFBQyxHQUFhLEtBQ2JELEtBQUFFLE1BQWdCLFFBQ2hCRixLQUFBRyxLQUFlLE9BQ2ZILEtBQUFJLEtBQWUsT0FFZkosS0FBQUssT0FBMEJkLEVBVWpDTSxLQUFNUyxHQUNKTixLQUFLTyxVQUFVRCxHQVlmTixLQUFLUSxLQUFLQyxPQUFPQyxpQkFBaUIsYUFBY1YsS0FBS1csYUFBYTlCLEtBQUttQixPQUN2RUEsS0FBS1EsS0FBS0MsT0FBT0MsaUJBQWlCLFdBQVlWLEtBQUtZLFdBQVcvQixLQUFLbUIsT0FHN0RILGFBQWNnQixHQUNwQixNQUFNQyxFQUFhZCxLQUFLZSxTQUFTRixHQUVqQ2IsS0FBS2dCLE1BQVFGLEVBQVdHLFFBQ3hCakIsS0FBS2tCLE1BQVFKLEVBQVdLLFFBR2xCdEIsV0FBWWdCLEdBQ2xCLElBQUtiLEtBQUtnQixRQUFVaEIsS0FBS2tCLE1BQ3ZCLE9BR0YsTUFDRUQsUUFBU0csRUFDVEQsUUFBU0UsR0FDUHJCLEtBQUtlLFNBQVNGLEdBQ1pTLEVBQVF0QixLQUFLZ0IsTUFBUUksRUFDckJHLEVBQVF2QixLQUFLa0IsTUFBUUcsRUFDckJHLEVBQVdDLEtBQUtDLElBQUkxQixLQUFLZ0IsTUFBUUksR0FDakNPLEVBQVdGLEtBQUtDLElBQUkxQixLQUFLa0IsTUFBUUcsR0FFbkNJLEtBQUtHLElBQUlKLEVBQVVHLEdBQVkzQixLQUFLSyxPQUFPYixTQUkzQ2dDLEVBQVdHLEVBQ2IzQixLQUFLNkIsVUFBVVAsRUFBUSxFQUFJdEIsS0FBS0ksS0FBT0osS0FBS0UsT0FFNUNGLEtBQUs2QixVQUFVTixFQUFRLEVBQUl2QixLQUFLQyxHQUFLRCxLQUFLRyxPQUl0Q04sU0FBVWdCLEdBQ2hCLE9BQU9BLEVBQUVpQixlQUFlLEdBR2xCakMsVUFBV1MsR0FDakJ2QyxPQUFPZ0UsT0FBTy9CLEtBQUtLLE9BQVFDLEdBR3JCVCxVQUFXbUMsR0FDakJoQyxLQUFLUSxLQUFLeUIsT0FBT0MsS0FBSyxRQUFTRiIsImZpbGUiOiJtYWluLmJ1bmRsZS5qcyIsInNvdXJjZXNDb250ZW50IjpbIihmdW5jdGlvbiB3ZWJwYWNrVW5pdmVyc2FsTW9kdWxlRGVmaW5pdGlvbihyb290LCBmYWN0b3J5KSB7XG5cdGlmKHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlID09PSAnb2JqZWN0Jylcblx0XHRtb2R1bGUuZXhwb3J0cyA9IGZhY3RvcnkoKTtcblx0ZWxzZSBpZih0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQpXG5cdFx0ZGVmaW5lKFwiTXlMaWJcIiwgW10sIGZhY3RvcnkpO1xuXHRlbHNlIGlmKHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0Jylcblx0XHRleHBvcnRzW1wiTXlMaWJcIl0gPSBmYWN0b3J5KCk7XG5cdGVsc2Vcblx0XHRyb290W1wiTXlMaWJcIl0gPSBmYWN0b3J5KCk7XG59KSh3aW5kb3csIGZ1bmN0aW9uKCkge1xucmV0dXJuICIsIiBcdC8vIFRoZSBtb2R1bGUgY2FjaGVcbiBcdHZhciBpbnN0YWxsZWRNb2R1bGVzID0ge307XG5cbiBcdC8vIFRoZSByZXF1aXJlIGZ1bmN0aW9uXG4gXHRmdW5jdGlvbiBfX3dlYnBhY2tfcmVxdWlyZV9fKG1vZHVsZUlkKSB7XG5cbiBcdFx0Ly8gQ2hlY2sgaWYgbW9kdWxlIGlzIGluIGNhY2hlXG4gXHRcdGlmKGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdKSB7XG4gXHRcdFx0cmV0dXJuIGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdLmV4cG9ydHM7XG4gXHRcdH1cbiBcdFx0Ly8gQ3JlYXRlIGEgbmV3IG1vZHVsZSAoYW5kIHB1dCBpdCBpbnRvIHRoZSBjYWNoZSlcbiBcdFx0dmFyIG1vZHVsZSA9IGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdID0ge1xuIFx0XHRcdGk6IG1vZHVsZUlkLFxuIFx0XHRcdGw6IGZhbHNlLFxuIFx0XHRcdGV4cG9ydHM6IHt9XG4gXHRcdH07XG5cbiBcdFx0Ly8gRXhlY3V0ZSB0aGUgbW9kdWxlIGZ1bmN0aW9uXG4gXHRcdG1vZHVsZXNbbW9kdWxlSWRdLmNhbGwobW9kdWxlLmV4cG9ydHMsIG1vZHVsZSwgbW9kdWxlLmV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pO1xuXG4gXHRcdC8vIEZsYWcgdGhlIG1vZHVsZSBhcyBsb2FkZWRcbiBcdFx0bW9kdWxlLmwgPSB0cnVlO1xuXG4gXHRcdC8vIFJldHVybiB0aGUgZXhwb3J0cyBvZiB0aGUgbW9kdWxlXG4gXHRcdHJldHVybiBtb2R1bGUuZXhwb3J0cztcbiBcdH1cblxuXG4gXHQvLyBleHBvc2UgdGhlIG1vZHVsZXMgb2JqZWN0IChfX3dlYnBhY2tfbW9kdWxlc19fKVxuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5tID0gbW9kdWxlcztcblxuIFx0Ly8gZXhwb3NlIHRoZSBtb2R1bGUgY2FjaGVcbiBcdF9fd2VicGFja19yZXF1aXJlX18uYyA9IGluc3RhbGxlZE1vZHVsZXM7XG5cbiBcdC8vIGRlZmluZSBnZXR0ZXIgZnVuY3Rpb24gZm9yIGhhcm1vbnkgZXhwb3J0c1xuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5kID0gZnVuY3Rpb24oZXhwb3J0cywgbmFtZSwgZ2V0dGVyKSB7XG4gXHRcdGlmKCFfX3dlYnBhY2tfcmVxdWlyZV9fLm8oZXhwb3J0cywgbmFtZSkpIHtcbiBcdFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgbmFtZSwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGdldHRlciB9KTtcbiBcdFx0fVxuIFx0fTtcblxuIFx0Ly8gZGVmaW5lIF9fZXNNb2R1bGUgb24gZXhwb3J0c1xuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5yID0gZnVuY3Rpb24oZXhwb3J0cykge1xuIFx0XHRpZih0eXBlb2YgU3ltYm9sICE9PSAndW5kZWZpbmVkJyAmJiBTeW1ib2wudG9TdHJpbmdUYWcpIHtcbiBcdFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgU3ltYm9sLnRvU3RyaW5nVGFnLCB7IHZhbHVlOiAnTW9kdWxlJyB9KTtcbiBcdFx0fVxuIFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgJ19fZXNNb2R1bGUnLCB7IHZhbHVlOiB0cnVlIH0pO1xuIFx0fTtcblxuIFx0Ly8gY3JlYXRlIGEgZmFrZSBuYW1lc3BhY2Ugb2JqZWN0XG4gXHQvLyBtb2RlICYgMTogdmFsdWUgaXMgYSBtb2R1bGUgaWQsIHJlcXVpcmUgaXRcbiBcdC8vIG1vZGUgJiAyOiBtZXJnZSBhbGwgcHJvcGVydGllcyBvZiB2YWx1ZSBpbnRvIHRoZSBuc1xuIFx0Ly8gbW9kZSAmIDQ6IHJldHVybiB2YWx1ZSB3aGVuIGFscmVhZHkgbnMgb2JqZWN0XG4gXHQvLyBtb2RlICYgOHwxOiBiZWhhdmUgbGlrZSByZXF1aXJlXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLnQgPSBmdW5jdGlvbih2YWx1ZSwgbW9kZSkge1xuIFx0XHRpZihtb2RlICYgMSkgdmFsdWUgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKHZhbHVlKTtcbiBcdFx0aWYobW9kZSAmIDgpIHJldHVybiB2YWx1ZTtcbiBcdFx0aWYoKG1vZGUgJiA0KSAmJiB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmIHZhbHVlICYmIHZhbHVlLl9fZXNNb2R1bGUpIHJldHVybiB2YWx1ZTtcbiBcdFx0dmFyIG5zID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiBcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5yKG5zKTtcbiBcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KG5zLCAnZGVmYXVsdCcsIHsgZW51bWVyYWJsZTogdHJ1ZSwgdmFsdWU6IHZhbHVlIH0pO1xuIFx0XHRpZihtb2RlICYgMiAmJiB0eXBlb2YgdmFsdWUgIT0gJ3N0cmluZycpIGZvcih2YXIga2V5IGluIHZhbHVlKSBfX3dlYnBhY2tfcmVxdWlyZV9fLmQobnMsIGtleSwgZnVuY3Rpb24oa2V5KSB7IHJldHVybiB2YWx1ZVtrZXldOyB9LmJpbmQobnVsbCwga2V5KSk7XG4gXHRcdHJldHVybiBucztcbiBcdH07XG5cbiBcdC8vIGdldERlZmF1bHRFeHBvcnQgZnVuY3Rpb24gZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBub24taGFybW9ueSBtb2R1bGVzXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLm4gPSBmdW5jdGlvbihtb2R1bGUpIHtcbiBcdFx0dmFyIGdldHRlciA9IG1vZHVsZSAmJiBtb2R1bGUuX19lc01vZHVsZSA/XG4gXHRcdFx0ZnVuY3Rpb24gZ2V0RGVmYXVsdCgpIHsgcmV0dXJuIG1vZHVsZVsnZGVmYXVsdCddOyB9IDpcbiBcdFx0XHRmdW5jdGlvbiBnZXRNb2R1bGVFeHBvcnRzKCkgeyByZXR1cm4gbW9kdWxlOyB9O1xuIFx0XHRfX3dlYnBhY2tfcmVxdWlyZV9fLmQoZ2V0dGVyLCAnYScsIGdldHRlcik7XG4gXHRcdHJldHVybiBnZXR0ZXI7XG4gXHR9O1xuXG4gXHQvLyBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGxcbiBcdF9fd2VicGFja19yZXF1aXJlX18ubyA9IGZ1bmN0aW9uKG9iamVjdCwgcHJvcGVydHkpIHsgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmplY3QsIHByb3BlcnR5KTsgfTtcblxuIFx0Ly8gX193ZWJwYWNrX3B1YmxpY19wYXRoX19cbiBcdF9fd2VicGFja19yZXF1aXJlX18ucCA9IFwiXCI7XG5cblxuIFx0Ly8gTG9hZCBlbnRyeSBtb2R1bGUgYW5kIHJldHVybiBleHBvcnRzXG4gXHRyZXR1cm4gX193ZWJwYWNrX3JlcXVpcmVfXyhfX3dlYnBhY2tfcmVxdWlyZV9fLnMgPSAwKTtcbiIsImludGVyZmFjZSBQbHVnaW5JbnRlcmZhY2Uge1xuICBVUDogc3RyaW5nXG4gIFJJR0hUOiBzdHJpbmdcbiAgRE9XTjogc3RyaW5nXG4gIExFRlQ6IHN0cmluZ1xufVxuXG5pbnRlcmZhY2UgQ29uZmlnSW50ZXJmYWNlIHtcbiAgb2Zmc2V0OiBudW1iZXJcbn1cblxuY29uc3QgZGVmYXVsdENvbmZpZzogQ29uZmlnSW50ZXJmYWNlID0ge1xuICBvZmZzZXQ6IHdpbmRvdy5pbm5lcldpZHRoICogLjFcbn1cblxuLy8gVE9ETyDRgdC00LXQu9Cw0YLRjCDRgdCy0L7QuSBzdGFydGVyINC00LvRjyB0eXBlc2NyaXB0XG4vLyBUT0RPINCy0YvQu9C+0LbQuNGC0Ywg0L/Qu9Cw0LPQuNC9INC00LvRjyDRgdCy0LDQudC/0LBcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFN3aXBlUGx1Z2luIGV4dGVuZHMgUGhhc2VyLlBsdWdpbnMuQmFzZVBsdWdpbiBpbXBsZW1lbnRzIFBsdWdpbkludGVyZmFjZSB7XG4gIHB1YmxpYyBVUDogc3RyaW5nID0gJ3VwJ1xuICBwdWJsaWMgUklHSFQ6IHN0cmluZyA9ICdyaWdodCdcbiAgcHVibGljIERPV046IHN0cmluZyA9ICdkb3duJ1xuICBwdWJsaWMgTEVGVDogc3RyaW5nID0gJ2xlZnQnXG5cbiAgcHVibGljIGNvbmZpZzogQ29uZmlnSW50ZXJmYWNlID0gZGVmYXVsdENvbmZpZ1xuXG4gIHByaXZhdGUgeERvd24/OiBudW1iZXJcbiAgcHJpdmF0ZSB5RG93bj86IG51bWJlclxuXG4gIGNvbnN0cnVjdG9yIChwbHVnaW5NYW5hZ2VyKSB7XG4gICAgc3VwZXIocGx1Z2luTWFuYWdlcilcbiAgfVxuXG4gIC8vIHN0YXJ0ICgpIHtcbiAgaW5pdCAoZGF0YSkge1xuICAgIHRoaXMuY29uZmlndXJlKGRhdGEpXG5cbiAgICAvLyBjb25zdCBzY2VuZSA9IHRoaXMuZ2FtZS5zY2VuZVxuICAgIC8vIGNvbnN0IGlucHV0ID0gdGhpcy5nYW1lLmlucHV0XG4gICAgLy8gY29uc3QgdG91Y2ggPSB0aGlzLmdhbWUuaW5wdXQudG91Y2hcblxuICAgIC8vIG9uKCdzdGVwJ1xuICAgIC8vIHRoaXMuZ2FtZS5ldmVudHMub24oJ3N0ZXAnLCAoKSA9PiB7XG4gICAgLy8gICAvLyBjb25zb2xlLmxvZyh0aGlzLmdhbWUuaW5wdXQuYWN0aXZlUG9pbnRlci5pc0Rvd24pXG4gICAgLy8gICAvLyBjb25zb2xlLmxvZyh0aGlzLmdhbWUuaW5wdXQucG9pbnRlcnNbMF0uaXNEb3duKVxuICAgIC8vIH0pXG5cbiAgICB0aGlzLmdhbWUuY2FudmFzLmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNoc3RhcnQnLCB0aGlzLm9uVG91Y2hzdGFydC5iaW5kKHRoaXMpKVxuICAgIHRoaXMuZ2FtZS5jYW52YXMuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2hlbmQnLCB0aGlzLm9uVG91Y2hlbmQuYmluZCh0aGlzKSlcbiAgfVxuXG4gIHByaXZhdGUgb25Ub3VjaHN0YXJ0IChlKSB7XG4gICAgY29uc3QgZmlyc3RUb3VjaCA9IHRoaXMuZ2V0VG91Y2goZSlcblxuICAgIHRoaXMueERvd24gPSBmaXJzdFRvdWNoLmNsaWVudFhcbiAgICB0aGlzLnlEb3duID0gZmlyc3RUb3VjaC5jbGllbnRZXG4gIH1cblxuICBwcml2YXRlIG9uVG91Y2hlbmQgKGUpIHtcbiAgICBpZiAoIXRoaXMueERvd24gfHwgIXRoaXMueURvd24pIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGNvbnN0IHtcbiAgICAgIGNsaWVudFg6IHhVcCxcbiAgICAgIGNsaWVudFk6IHlVcFxuICAgIH0gPSB0aGlzLmdldFRvdWNoKGUpXG4gICAgY29uc3QgeERpZmYgPSB0aGlzLnhEb3duIC0geFVwXG4gICAgY29uc3QgeURpZmYgPSB0aGlzLnlEb3duIC0geVVwXG4gICAgY29uc3QgeERpZmZBYnMgPSBNYXRoLmFicyh0aGlzLnhEb3duIC0geFVwKVxuICAgIGNvbnN0IHlEaWZmQWJzID0gTWF0aC5hYnModGhpcy55RG93biAtIHlVcClcblxuICAgIGlmIChNYXRoLm1heCh4RGlmZkFicywgeURpZmZBYnMpIDwgdGhpcy5jb25maWcub2Zmc2V0KSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBpZiAoeERpZmZBYnMgPiB5RGlmZkFicykge1xuICAgICAgdGhpcy5zZW5kRXZlbnQoeERpZmYgPiAwID8gdGhpcy5MRUZUIDogdGhpcy5SSUdIVClcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZW5kRXZlbnQoeURpZmYgPiAwID8gdGhpcy5VUCA6IHRoaXMuRE9XTilcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGdldFRvdWNoIChlKSB7XG4gICAgcmV0dXJuIGUuY2hhbmdlZFRvdWNoZXNbMF1cbiAgfVxuXG4gIHByaXZhdGUgY29uZmlndXJlIChkYXRhKSB7XG4gICAgT2JqZWN0LmFzc2lnbih0aGlzLmNvbmZpZywgZGF0YSlcbiAgfVxuXG4gIHByaXZhdGUgc2VuZEV2ZW50IChkaXIpIHtcbiAgICB0aGlzLmdhbWUuZXZlbnRzLmVtaXQoJ3N3aXBlJywgZGlyKVxuICB9XG59XG4iXSwic291cmNlUm9vdCI6IiJ9