UNPKG

tictactoeprorec

Version:

Tic Tac Toe for the masses (but recursive)!

2 lines 90.5 kB
// [AIV_SHORT] Build version: 1.0.2 - Saturday, March 17th, 2018, 10:29:08 PM !function(t){function n(e){if(r[e])return r[e].exports;var i=r[e]={i:e,l:!1,exports:{}};return t[e].call(i.exports,i,i.exports,n),i.l=!0,i.exports}var r={};n.m=t,n.c=r,n.d=function(t,r,e){n.o(t,r)||Object.defineProperty(t,r,{configurable:!1,enumerable:!0,get:e})},n.n=function(t){var r=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(r,"a",r),r},n.o=function(t,n){return Object.prototype.hasOwnProperty.call(t,n)},n.p="",n(n.s=2)}([function(t,n,r){"use strict";function e(t){return t&&t.__esModule?t:{default:t}}function i(t,n){if(!(t instanceof n))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(n,"__esModule",{value:!0}),n.Enums=void 0;var u=function(){function t(t,n){for(var r=0;r<n.length;r++){var e=n[r];e.enumerable=e.enumerable||!1,e.configurable=!0,"value"in e&&(e.writable=!0),Object.defineProperty(t,e.key,e)}}return function(n,r,e){return r&&t(n.prototype,r),e&&t(n,e),n}}(),o=r(3),a=e(o),f=r(4),c=e(f),s=r(5),l=e(s),h=r(6),p=e(h),v=r(1),d=e(v),_=r(7),g=e(_),y=r(8),b=e(y),w=function(){function t(n,r,e,u,o,a){if(i(this,t),this.initialShape=u||g.default.Shapes.Cross,this.initialShape!=g.default.Shapes.Circle&&this.initialShape!=g.default.Shapes.Cross)throw"Invalid Shape Type, only 1 (Cross) and -1 (Circle) are supported";if(this.containerId=n,this.container=document.getElementById(this.containerId),!this.container)throw"Container element "+this.containerId+" was not found.";if(this.xcells=r,this.ycells=e,this.xcells<1||this.ycells<1)throw"Number of rows and columns must be positive. X: "+this.xcells+", Y: "+this.ycells;this.canvasWidth=300,this.canvasHeight=300,this.diagonalAmount=2*(Math.abs(this.xcells-this.ycells)+1),this.shapeLimit=this.xcells*this.ycells,this.diagonalLines=Math.abs(this.xcells-this.ycells)+1,this.board=[[]],this.initialBoard=o,this.Color=a||"rgb(0,0,0)";var f=!!o;if(this.initialBoard&&Array.isArray(this.initialBoard)&&this.initialBoard.length==this.xcells)for(var c=0;c<this.initialBoard.length;c++)if(!this.initialBoard[c]||!Array.isArray(this.initialBoard[c])||this.initialBoard[c].length!=this.ycells){f=!1;break}f?this.board=this.initialBoard:this._initBoard()}return u(t,[{key:"_onCanvasClick",value:function(t){var n=d.default._getMousePos(t,this.canvas),r=Math.floor(n.x/this.elementWidth),e=Math.floor(n.y/this.elementHeight);this.winner=this.runNextTurn(r,e)}},{key:"setTurn",value:function(t,n,r){if(isNaN(t)||isNaN(n)||isNaN(r))throw"X, Y or ShapeType is not a numbers";if(this.board.length<=t)throw"X: "+t+" is out of bounds";if(this.board[t].length<=n)throw"Y: "+n+" is out of bounds";if(0!=this.board[t][n])throw"X: "+t+", Y: "+n+", is already taken, please make another selection";if(r!=g.default.Shapes.Circle&&r!=g.default.Shapes.Cross)throw"Shape Type: "+r+", is not a valid shape";return this.board[t][n]=r,this.moves.push({x:t,y:n,s:r}),this.shapeCount++,this._getWinner(t,n,r)}},{key:"runNextTurn",value:function(t,n,r){if(r=r||this.currentShape,this.shapeCount>this.shapeLimit)return void this.clear();var e=this.setTurn(t,n,r);return this.drawShape(t,n,r),null!=e&&this._printWinnerMessage(e),this.currentShape=-1==r?1:-1,e}},{key:"_initCanvas",value:function(){this.canvas=document.createElement("canvas"),this.canvas.width=this.container.clientWidth,this.canvas.height=this.container.clientHeight,this.canvas.width=this.canvasWidth,this.canvas.height=this.canvasHeight,this.container.appendChild(this.canvas),this.ctx=this.canvas.getContext("2d"),this.canvas.addEventListener("click",this._onCanvasClick.bind(this),!1),this.elementWidth=Math.ceil(this.canvas.width/this.xcells),this.elementHeight=Math.ceil(this.canvas.height/this.ycells),this.elementRadiusx=Math.ceil(this.canvas.width/this.xcells/2),this.elementRadiusy=Math.ceil(this.canvas.height/this.ycells/2),this.lineWidth=(this.canvas.width+this.canvas.height)/2*.02,this.message=new p.default(this.canvas.width,this.canvas.height)}},{key:"draw",value:function(t,n,r){var e=this;if(this.canvasWidth=t||this.canvasWidth,this.canvasHeight=n||this.canvasHeight,this.Color=r||this.Color,this.canvas||this._initCanvas(),this.canvas.getContext){this.ctx.clearRect(0,0,this.canvas.width,this.canvas.height);new l.default(this.xcells,this.ycells,this.canvas.width,this.canvas.height,this.lineWidth/2,this.Color).paint(this.ctx),this.board.forEach(function(t,n){t.forEach(function(t,r){t!=g.default.Shapes.Circle&&t!=g.default.Shapes.Cross||e.drawShape(n,r,t)})})}}},{key:"drawShape",value:function(t,n,r){if(isNaN(t)||isNaN(n)||isNaN(r))throw"X, Y or ShapeType is not a numbers";if(t>this.xcells||n>this.ycells)throw"x: "+t+", y: "+n+" is out of bounds";if(r!=g.default.Shapes.Circle&&r!=g.default.Shapes.Cross)throw"Shape Type: "+r+", is not a valid shape";var e=t*this.elementWidth,i=n*this.elementHeight;(1==r?new c.default(e,i,this.elementWidth,this.elementHeight,this.lineWidth):new a.default(e,i,this.elementRadiusx,this.elementRadiusy,this.lineWidth)).paint(this.ctx,this.Color)}},{key:"setMoves",value:function(t){t=Array.isArray(t)?t:[t],t.forEach(function(t){try{this.winner=this.runNextTurn(t.x,t.y,t.s)}catch(t){console.error(t)}},this),this.moves=t}},{key:"reset",value:function(){this.board=this.initialBoard,this.draw()}},{key:"clear",value:function(){this._initBoard(),this.draw()}},{key:"_removeCanvas",value:function(){this.canvas&&(this.canvas.parentElement.removeChild(this.canvas),this.canvas=null)}},{key:"_getWinner",value:function(t,n,r){if(r=r||this.currentShape,this.winningLines[t]+=r,Math.abs(this.winningLines[t])==this.ycells)return r;if(this.winningLines[n+this.xcells]+=r,Math.abs(this.winningLines[n+this.xcells])==this.xcells)return r;for(var e=Math.min(this.xcells,this.ycells),i=this.xcells+this.ycells,u=i+this.diagonalLines,o=0;o<this.diagonalLines;o++)if(this.xcells<=this.ycells){if(t-(n-o)==0&&(this.winningLines[i+o]+=r,Math.abs(this.winningLines[i+o])==e))return r;if(t+(n-o)==e-1&&(this.winningLines[u+o]+=r,Math.abs(this.winningLines[u+o])==e))return r}else{if(n-(t-o)==0&&(this.winningLines[i+o]+=r,Math.abs(this.winningLines[i+o])==e))return r;if(n+(t-o)==e-1&&(this.winningLines[u+o]+=r,Math.abs(this.winningLines[u+o])==e))return r}return this.shapeCount==this.shapeLimit?0:null}},{key:"_printWinnerMessage",value:function(t){if(0==t)return this.message.paint(this.ctx,"Draw","Click to Try Again"),void this.shapeCount++;this.message.paint(this.ctx,(-1==t?"Circle":"Cross")+" Won","Click to try Again"),this.shapeCount=this.shapeLimit+1}},{key:"_initBoard",value:function(){this.board=[[]];for(var t=0;t<this.xcells;t++){this.board.push([]);for(var n=0;n<this.ycells;n++)this.board[t].push(0)}this.winningLines=b.default.times(this.xcells+this.ycells+2*this.diagonalLines,b.default.constant(0)),this.shapeCount=0,this.currentShape=this.initialShape,this.winner=null,this.moves=[]}},{key:"Winner",get:function(){return this.winner}},{key:"LastMove",get:function(){return this.moves.length>0?this.moves[this.moves.length-1]:null}}]),t}();n.default=w,n.Enums=g.default},function(t,n,r){"use strict";function e(t,n){if(!(t instanceof n))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(n,"__esModule",{value:!0});var i=function(){function t(t,n){for(var r=0;r<n.length;r++){var e=n[r];e.enumerable=e.enumerable||!1,e.configurable=!0,"value"in e&&(e.writable=!0),Object.defineProperty(t,e.key,e)}}return function(n,r,e){return r&&t(n.prototype,r),e&&t(n,e),n}}(),u=function(){function t(){e(this,t)}return i(t,null,[{key:"_getMousePos",value:function(t,n){var r=n?n.getBoundingClientRect():window;return{x:t.clientX-r.left,y:t.clientY-r.top}}},{key:"_printConsoleBoard",value:function(){for(var t="",n=0;n<this.ycells;n++){for(var r="[",e=0;e<this.xcells;e++)r+=this.board[e][n]+",";r+="]\n",t+=r}console.log(t)}}]),t}();n.default=u},function(t,n,r){"use strict";function e(t){return t&&t.__esModule?t:{default:t}}function i(t,n){if(!(t instanceof n))throw new TypeError("Cannot call a class as a function")}function u(t,n){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!n||"object"!=typeof n&&"function"!=typeof n?t:n}function o(t,n){if("function"!=typeof n&&null!==n)throw new TypeError("Super expression must either be null or a function, not "+typeof n);t.prototype=Object.create(n&&n.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),n&&(Object.setPrototypeOf?Object.setPrototypeOf(t,n):t.__proto__=n)}Object.defineProperty(n,"__esModule",{value:!0}),n.Enums=void 0;var a=function(){function t(t,n){for(var r=0;r<n.length;r++){var e=n[r];e.enumerable=e.enumerable||!1,e.configurable=!0,"value"in e&&(e.writable=!0),Object.defineProperty(t,e.key,e)}}return function(n,r,e){return r&&t(n.prototype,r),e&&t(n,e),n}}(),f=function t(n,r,e){null===n&&(n=Function.prototype);var i=Object.getOwnPropertyDescriptor(n,r);if(void 0===i){var u=Object.getPrototypeOf(n);return null===u?void 0:t(u,r,e)}if("value"in i)return i.value;var o=i.get;if(void 0!==o)return o.call(e)},c=r(0),s=e(c),l=r(1),h=e(l),p=r(11),v=e(p),d=function(t){function n(t,r,e,o,a,f,c,s,l,h,p){i(this,n);var d=u(this,(n.__proto__||Object.getPrototypeOf(n)).call(this,t,r,e,o,null,l));return d.levels=a||1,d.subBoards=[],d.mainBoard=d,d.currentBoard=d,d.subBoardsNum=d.xcells*d.ycells,d.parentBoard=f,d.upperX=c,d.upperY=s,d.gameMode=h||v.default.GameMode.NewLevelGetsPrevLevel,d.drawMode=p||v.default.DrawMode.NextTurnWins,d._initBoards(),d}return o(n,t),a(n,[{key:"goToParentBoard",value:function(){if(!this.parentBoard)throw"You are in the top most level";this._removeCanvas(),this.parentBoard.draw(),this.mainBoard.currentBoard=this.parentBoard}},{key:"runNextTurn",value:function(t,r,e){this.subBoards&&t<this.subBoards.length&&r<this.subBoards[t].length&&!this.subBoards[t][r].Winner&&!this.Winner?this.goToSubBoard(t,r,this.gameMode==v.default.GameMode.NewLevelRestart?0:e,this.mainBoard):(this.winner=f(n.prototype.__proto__||Object.getPrototypeOf(n.prototype),"runNextTurn",this).call(this,t,r,e),0===this.winner?this.drawMode==v.default.DrawMode.Restart?this.clear():this.drawMode==v.default.DrawMode.LeaveEmpty?(this.clear(),this.goToParentBoard()):this.drawMode==v.default.DrawMode.NextTurnWins&&(this.goToParentBoard(),this.winner=this.currentShape,this.parentBoard.runNextTurn(this.upperX,this.upperY,this.winner)):this.winner&&this.parentBoard&&(this.goToParentBoard(),this.parentBoard.runNextTurn(this.upperX,this.upperY,this.winner)))}},{key:"goOneLevelUp",value:function(){if(!this.parentBoard)throw"You are at the top most level";this.goToParentBoard()}},{key:"_onCanvasClick",value:function(t){var n=h.default._getMousePos(t,this.canvas),r=Math.floor(n.x/this.elementWidth),e=Math.floor(n.y/this.elementHeight);this.runNextTurn(r,e,this.currentShape)}},{key:"goToSubBoard",value:function(t,n,r,e){if(this.subBoards.length<=t)throw"Index x: "+t+" out of bounds";if(this.subBoards[t].length<=n)throw"Index y: "+n+" out of bounds";this._removeCanvas(),this.subBoards[t][n]&&(e&&(this.subBoards[t][n].mainBoard=e,e.currentBoard=this.subBoards[t][n]),this.subBoards[t][n].draw(this.canvasWidth,this.canvasWidth),r&&this.subBoards[t][n].runNextTurn(t,n,r))}},{key:"_initBoards",value:function(){if(this.levels>1){this.subBoards=[];for(var t=0;t<this.xcells;t++){this.subBoards.push([]);for(var r=0;r<this.ycells;r++){var e=this.getLevelColor(this.levels-1),i=new n(this.containerId,this.xcells,this.ycells,this.initialShape,this.levels-1,this,t,r,e,this.gameMode,this.drawMode);this.subBoards[t].push(i)}}}}},{key:"_clearSubBoards",value:function(){if(this.levels>1)for(var t=0;t<this.xcells;t++)for(var n=0;n<this.ycells;n++){var r=this.subBoards[t][n];r&&r._removeCanvas()}this._initBoards()}},{key:"clear",value:function(){f(n.prototype.__proto__||Object.getPrototypeOf(n.prototype),"clear",this).call(this),this._clearSubBoards()}},{key:"getLevelColor",value:function(t){var n=t%3,r=this.Color.replace("rgb","").replace("(","").replace(")","").trim().split(","),e=parseInt(r[n])+127;return e=e>255?0:e,r[n]=e,"rgb("+r.join(",")+")"}}]),n}(s.default);n.default=d,n.Enums=v.default},function(t,n,r){"use strict";function e(t,n){if(!(t instanceof n))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(n,"__esModule",{value:!0});var i=function(){function t(t,n){for(var r=0;r<n.length;r++){var e=n[r];e.enumerable=e.enumerable||!1,e.configurable=!0,"value"in e&&(e.writable=!0),Object.defineProperty(t,e.key,e)}}return function(n,r,e){return r&&t(n.prototype,r),e&&t(n,e),n}}(),u=function(){function t(n,r,i,u,o){e(this,t),this.x=n,this.y=r,this.radiusx=i,this.radiusy=u,this.lineWidth=o||10,this.offset=1.2*this.lineWidth,this.radiusOffsetx=this.radiusx-this.offset,this.radiusOffsety=this.radiusy-this.offset}return i(t,[{key:"paint",value:function(t,n){t.strokeStyle=n||"rgb(0,0,0)",t.lineWidth=this.lineWidth,t.beginPath();for(var r=0;r<2*Math.PI+1;r+=.1){var e=this.x+this.radiusx-this.radiusOffsetx*Math.cos(r),i=this.y+this.radiusy+this.radiusOffsety*Math.sin(r);0==r?t.moveTo(e,i):t.lineTo(e,i)}t.stroke()}}]),t}();n.default=u},function(t,n,r){"use strict";function e(t,n){if(!(t instanceof n))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(n,"__esModule",{value:!0});var i=function(){function t(t,n){for(var r=0;r<n.length;r++){var e=n[r];e.enumerable=e.enumerable||!1,e.configurable=!0,"value"in e&&(e.writable=!0),Object.defineProperty(t,e.key,e)}}return function(n,r,e){return r&&t(n.prototype,r),e&&t(n,e),n}}(),u=function(){function t(n,r,i,u,o){e(this,t),this.lineWidth=o||10,this.offset=1.2*this.lineWidth,this.x=n+this.offset,this.y=r+this.offset,this.width=i-2*this.offset,this.height=u-2*this.offset}return i(t,[{key:"paint",value:function(t,n){t.strokeStyle=n||"rgb(0,0,0)",t.lineWidth=this.lineWidth,t.beginPath(),t.moveTo(this.x,this.y),t.lineTo(this.x+this.width,this.y+this.height),t.stroke(),t.beginPath(),t.moveTo(this.x+this.width,this.y),t.lineTo(this.x,this.y+this.height),t.stroke()}}]),t}();n.default=u},function(t,n,r){"use strict";function e(t,n){if(!(t instanceof n))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(n,"__esModule",{value:!0});var i=function(){function t(t,n){for(var r=0;r<n.length;r++){var e=n[r];e.enumerable=e.enumerable||!1,e.configurable=!0,"value"in e&&(e.writable=!0),Object.defineProperty(t,e.key,e)}}return function(n,r,e){return r&&t(n.prototype,r),e&&t(n,e),n}}(),u=function(){function t(n,r,i,u,o,a){e(this,t),this.cellsx=n,this.cellsy=r,this.width=i,this.height=u,this.lineWidth=o||5,this.countVLines=n-1,this.countHLines=r-1,this.cellwidth=Math.ceil(i/n),this.cellheight=Math.ceil(u/r),this.color=a||"rgb(0,0,0)"}return i(t,[{key:"paint",value:function(t,n){var r=t.strokeStyle;this.color=n||this.color;for(var e=0,i=this.cellwidth;e<this.countVLines;e++,i+=this.cellwidth)t.strokeStyle=this.color,t.lineWidth=this.lineWidth,t.beginPath(),t.moveTo(i,5),t.lineTo(i,this.height-5),t.stroke();for(var u=0,o=this.cellheight;u<this.countHLines;u++,o+=this.cellheight)t.strokeStyle=this.color,t.lineWidth=this.lineWidth,t.beginPath(),t.moveTo(5,o),t.lineTo(this.width-5,o),t.stroke();t.strokeStyle=r}}]),t}();n.default=u},function(t,n,r){"use strict";function e(t,n){if(!(t instanceof n))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(n,"__esModule",{value:!0});var i=function(){function t(t,n){for(var r=0;r<n.length;r++){var e=n[r];e.enumerable=e.enumerable||!1,e.configurable=!0,"value"in e&&(e.writable=!0),Object.defineProperty(t,e.key,e)}}return function(n,r,e){return r&&t(n.prototype,r),e&&t(n,e),n}}(),u=function(){function t(n,r,i,u){e(this,t),this.header=i||"",this.subheader=u||"",this.width=n,this.height=r,this.alpha=.9,this.bgcolor="rgb(255,255,255)",this.fgcolor="rgb(0,0,0)",this.headerFont="30px Arial",this.subheaderFont="15px Arial",this.textAlign="center",this.textX=this.width/2,this.textY=this.height/2-15}return i(t,[{key:"paint",value:function(t,n,r){n=n||this.header,r=r||this.subheader,t.save(),t.globalAlpha=this.alpha,t.fillStyle=this.bgcolor,t.fillRect(0,0,this.width,this.height),t.fillStyle=this.fgcolor,t.globalAlpha=1,t.font=this.headerFont,t.textAlign=this.textAlign,t.fillText(n,this.textX,this.textY),t.font=this.subheaderFont,t.fillText(r,this.textX,this.textY+20),t.restore()}}]),t}();n.default=u},function(t,n,r){"use strict";function e(t,n){if(!(t instanceof n))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(n,"__esModule",{value:!0});var i=function(){function t(t,n){for(var r=0;r<n.length;r++){var e=n[r];e.enumerable=e.enumerable||!1,e.configurable=!0,"value"in e&&(e.writable=!0),Object.defineProperty(t,e.key,e)}}return function(n,r,e){return r&&t(n.prototype,r),e&&t(n,e),n}}(),u=function(){function t(){e(this,t)}return i(t,null,[{key:"Shapes",get:function(){return{Circle:-1,Cross:1}}}]),t}();n.default=u},function(t,n,r){(function(t,e){var i;(function(){function u(t,n,r){switch(r.length){case 0:return t.call(n);case 1:return t.call(n,r[0]);case 2:return t.call(n,r[0],r[1]);case 3:return t.call(n,r[0],r[1],r[2])}return t.apply(n,r)}function o(t,n,r,e){for(var i=-1,u=null==t?0:t.length;++i<u;){var o=t[i];n(e,o,r(o),t)}return e}function a(t,n){for(var r=-1,e=null==t?0:t.length;++r<e&&!1!==n(t[r],r,t););return t}function f(t,n){for(var r=null==t?0:t.length;r--&&!1!==n(t[r],r,t););return t}function c(t,n){for(var r=-1,e=null==t?0:t.length;++r<e;)if(!n(t[r],r,t))return!1;return!0}function s(t,n){for(var r=-1,e=null==t?0:t.length,i=0,u=[];++r<e;){var o=t[r];n(o,r,t)&&(u[i++]=o)}return u}function l(t,n){return!!(null==t?0:t.length)&&x(t,n,0)>-1}function h(t,n,r){for(var e=-1,i=null==t?0:t.length;++e<i;)if(r(n,t[e]))return!0;return!1}function p(t,n){for(var r=-1,e=null==t?0:t.length,i=Array(e);++r<e;)i[r]=n(t[r],r,t);return i}function v(t,n){for(var r=-1,e=n.length,i=t.length;++r<e;)t[i+r]=n[r];return t}function d(t,n,r,e){var i=-1,u=null==t?0:t.length;for(e&&u&&(r=t[++i]);++i<u;)r=n(r,t[i],i,t);return r}function _(t,n,r,e){var i=null==t?0:t.length;for(e&&i&&(r=t[--i]);i--;)r=n(r,t[i],i,t);return r}function g(t,n){for(var r=-1,e=null==t?0:t.length;++r<e;)if(n(t[r],r,t))return!0;return!1}function y(t){return t.split("")}function b(t){return t.match(Nn)||[]}function w(t,n,r){var e;return r(t,function(t,r,i){if(n(t,r,i))return e=r,!1}),e}function m(t,n,r,e){for(var i=t.length,u=r+(e?1:-1);e?u--:++u<i;)if(n(t[u],u,t))return u;return-1}function x(t,n,r){return n===n?V(t,n,r):m(t,k,r)}function j(t,n,r,e){for(var i=r-1,u=t.length;++i<u;)if(e(t[i],n))return i;return-1}function k(t){return t!==t}function O(t,n){var r=null==t?0:t.length;return r?T(t,n)/r:Lt}function A(t){return function(n){return null==n?et:n[t]}}function C(t){return function(n){return null==t?et:t[n]}}function B(t,n,r,e,i){return i(t,function(t,i,u){r=e?(e=!1,t):n(r,t,i,u)}),r}function S(t,n){var r=t.length;for(t.sort(n);r--;)t[r]=t[r].value;return t}function T(t,n){for(var r,e=-1,i=t.length;++e<i;){var u=n(t[e]);u!==et&&(r=r===et?u:r+u)}return r}function E(t,n){for(var r=-1,e=Array(t);++r<t;)e[r]=n(r);return e}function M(t,n){return p(n,function(n){return[n,t[n]]})}function W(t){return function(n){return t(n)}}function L(t,n){return p(n,function(n){return t[n]})}function P(t,n){return t.has(n)}function R(t,n){for(var r=-1,e=t.length;++r<e&&x(n,t[r],0)>-1;);return r}function I(t,n){for(var r=t.length;r--&&x(n,t[r],0)>-1;);return r}function z(t,n){for(var r=t.length,e=0;r--;)t[r]===n&&++e;return e}function N(t){return"\\"+Ar[t]}function U(t,n){return null==t?et:t[n]}function D(t){return gr.test(t)}function $(t){return yr.test(t)}function F(t){for(var n,r=[];!(n=t.next()).done;)r.push(n.value);return r}function Y(t){var n=-1,r=Array(t.size);return t.forEach(function(t,e){r[++n]=[e,t]}),r}function H(t,n){return function(r){return t(n(r))}}function q(t,n){for(var r=-1,e=t.length,i=0,u=[];++r<e;){var o=t[r];o!==n&&o!==ct||(t[r]=ct,u[i++]=r)}return u}function Z(t,n){return"__proto__"==n?et:t[n]}function X(t){var n=-1,r=Array(t.size);return t.forEach(function(t){r[++n]=t}),r}function G(t){var n=-1,r=Array(t.size);return t.forEach(function(t){r[++n]=[t,t]}),r}function V(t,n,r){for(var e=r-1,i=t.length;++e<i;)if(t[e]===n)return e;return-1}function K(t,n,r){for(var e=r+1;e--;)if(t[e]===n)return e;return e}function J(t){return D(t)?tt(t):Fr(t)}function Q(t){return D(t)?nt(t):y(t)}function tt(t){for(var n=dr.lastIndex=0;dr.test(t);)++n;return n}function nt(t){return t.match(dr)||[]}function rt(t){return t.match(_r)||[]}var et,it=200,ut="Unsupported core-js use. Try https://npms.io/search?q=ponyfill.",ot="Expected a function",at="__lodash_hash_undefined__",ft=500,ct="__lodash_placeholder__",st=1,lt=2,ht=4,pt=1,vt=2,dt=1,_t=2,gt=4,yt=8,bt=16,wt=32,mt=64,xt=128,jt=256,kt=512,Ot=30,At="...",Ct=800,Bt=16,St=1,Tt=2,Et=1/0,Mt=9007199254740991,Wt=1.7976931348623157e308,Lt=NaN,Pt=4294967295,Rt=Pt-1,It=Pt>>>1,zt=[["ary",xt],["bind",dt],["bindKey",_t],["curry",yt],["curryRight",bt],["flip",kt],["partial",wt],["partialRight",mt],["rearg",jt]],Nt="[object Arguments]",Ut="[object Array]",Dt="[object AsyncFunction]",$t="[object Boolean]",Ft="[object Date]",Yt="[object DOMException]",Ht="[object Error]",qt="[object Function]",Zt="[object GeneratorFunction]",Xt="[object Map]",Gt="[object Number]",Vt="[object Null]",Kt="[object Object]",Jt="[object Proxy]",Qt="[object RegExp]",tn="[object Set]",nn="[object String]",rn="[object Symbol]",en="[object Undefined]",un="[object WeakMap]",on="[object WeakSet]",an="[object ArrayBuffer]",fn="[object DataView]",cn="[object Float32Array]",sn="[object Float64Array]",ln="[object Int8Array]",hn="[object Int16Array]",pn="[object Int32Array]",vn="[object Uint8Array]",dn="[object Uint8ClampedArray]",_n="[object Uint16Array]",gn="[object Uint32Array]",yn=/\b__p \+= '';/g,bn=/\b(__p \+=) '' \+/g,wn=/(__e\(.*?\)|\b__t\)) \+\n'';/g,mn=/&(?:amp|lt|gt|quot|#39);/g,xn=/[&<>"']/g,jn=RegExp(mn.source),kn=RegExp(xn.source),On=/<%-([\s\S]+?)%>/g,An=/<%([\s\S]+?)%>/g,Cn=/<%=([\s\S]+?)%>/g,Bn=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Sn=/^\w*$/,Tn=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,En=/[\\^$.*+?()[\]{}|]/g,Mn=RegExp(En.source),Wn=/^\s+|\s+$/g,Ln=/^\s+/,Pn=/\s+$/,Rn=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,In=/\{\n\/\* \[wrapped with (.+)\] \*/,zn=/,? & /,Nn=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,Un=/\\(\\)?/g,Dn=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,$n=/\w*$/,Fn=/^[-+]0x[0-9a-f]+$/i,Yn=/^0b[01]+$/i,Hn=/^\[object .+?Constructor\]$/,qn=/^0o[0-7]+$/i,Zn=/^(?:0|[1-9]\d*)$/,Xn=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,Gn=/($^)/,Vn=/['\n\r\u2028\u2029\\]/g,Kn="\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff",Jn="\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",Qn="["+Jn+"]",tr="["+Kn+"]",nr="[a-z\\xdf-\\xf6\\xf8-\\xff]",rr="[^\\ud800-\\udfff"+Jn+"\\d+\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde]",er="\\ud83c[\\udffb-\\udfff]",ir="(?:\\ud83c[\\udde6-\\uddff]){2}",ur="[\\ud800-\\udbff][\\udc00-\\udfff]",or="[A-Z\\xc0-\\xd6\\xd8-\\xde]",ar="(?:"+nr+"|"+rr+")",fr="(?:[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]|\\ud83c[\\udffb-\\udfff])?",cr="(?:\\u200d(?:"+["[^\\ud800-\\udfff]",ir,ur].join("|")+")[\\ufe0e\\ufe0f]?"+fr+")*",sr="[\\ufe0e\\ufe0f]?"+fr+cr,lr="(?:"+["[\\u2700-\\u27bf]",ir,ur].join("|")+")"+sr,hr="(?:"+["[^\\ud800-\\udfff]"+tr+"?",tr,ir,ur,"[\\ud800-\\udfff]"].join("|")+")",pr=RegExp("['’]","g"),vr=RegExp(tr,"g"),dr=RegExp(er+"(?="+er+")|"+hr+sr,"g"),_r=RegExp([or+"?"+nr+"+(?:['’](?:d|ll|m|re|s|t|ve))?(?="+[Qn,or,"$"].join("|")+")","(?:[A-Z\\xc0-\\xd6\\xd8-\\xde]|[^\\ud800-\\udfff\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\d+\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde])+(?:['’](?:D|LL|M|RE|S|T|VE))?(?="+[Qn,or+ar,"$"].join("|")+")",or+"?"+ar+"+(?:['’](?:d|ll|m|re|s|t|ve))?",or+"+(?:['’](?:D|LL|M|RE|S|T|VE))?","\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])","\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])","\\d+",lr].join("|"),"g"),gr=RegExp("[\\u200d\\ud800-\\udfff"+Kn+"\\ufe0e\\ufe0f]"),yr=/[a-z][A-Z]|[A-Z]{2,}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,br=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],wr=-1,mr={};mr[cn]=mr[sn]=mr[ln]=mr[hn]=mr[pn]=mr[vn]=mr[dn]=mr[_n]=mr[gn]=!0,mr[Nt]=mr[Ut]=mr[an]=mr[$t]=mr[fn]=mr[Ft]=mr[Ht]=mr[qt]=mr[Xt]=mr[Gt]=mr[Kt]=mr[Qt]=mr[tn]=mr[nn]=mr[un]=!1;var xr={};xr[Nt]=xr[Ut]=xr[an]=xr[fn]=xr[$t]=xr[Ft]=xr[cn]=xr[sn]=xr[ln]=xr[hn]=xr[pn]=xr[Xt]=xr[Gt]=xr[Kt]=xr[Qt]=xr[tn]=xr[nn]=xr[rn]=xr[vn]=xr[dn]=xr[_n]=xr[gn]=!0,xr[Ht]=xr[qt]=xr[un]=!1;var jr={"À":"A","Á":"A","Â":"A","Ã":"A","Ä":"A","Å":"A","à":"a","á":"a","â":"a","ã":"a","ä":"a","å":"a","Ç":"C","ç":"c","Ð":"D","ð":"d","È":"E","É":"E","Ê":"E","Ë":"E","è":"e","é":"e","ê":"e","ë":"e","Ì":"I","Í":"I","Î":"I","Ï":"I","ì":"i","í":"i","î":"i","ï":"i","Ñ":"N","ñ":"n","Ò":"O","Ó":"O","Ô":"O","Õ":"O","Ö":"O","Ø":"O","ò":"o","ó":"o","ô":"o","õ":"o","ö":"o","ø":"o","Ù":"U","Ú":"U","Û":"U","Ü":"U","ù":"u","ú":"u","û":"u","ü":"u","Ý":"Y","ý":"y","ÿ":"y","Æ":"Ae","æ":"ae","Þ":"Th","þ":"th","ß":"ss","Ā":"A","Ă":"A","Ą":"A","ā":"a","ă":"a","ą":"a","Ć":"C","Ĉ":"C","Ċ":"C","Č":"C","ć":"c","ĉ":"c","ċ":"c","č":"c","Ď":"D","Đ":"D","ď":"d","đ":"d","Ē":"E","Ĕ":"E","Ė":"E","Ę":"E","Ě":"E","ē":"e","ĕ":"e","ė":"e","ę":"e","ě":"e","Ĝ":"G","Ğ":"G","Ġ":"G","Ģ":"G","ĝ":"g","ğ":"g","ġ":"g","ģ":"g","Ĥ":"H","Ħ":"H","ĥ":"h","ħ":"h","Ĩ":"I","Ī":"I","Ĭ":"I","Į":"I","İ":"I","ĩ":"i","ī":"i","ĭ":"i","į":"i","ı":"i","Ĵ":"J","ĵ":"j","Ķ":"K","ķ":"k","ĸ":"k","Ĺ":"L","Ļ":"L","Ľ":"L","Ŀ":"L","Ł":"L","ĺ":"l","ļ":"l","ľ":"l","ŀ":"l","ł":"l","Ń":"N","Ņ":"N","Ň":"N","Ŋ":"N","ń":"n","ņ":"n","ň":"n","ŋ":"n","Ō":"O","Ŏ":"O","Ő":"O","ō":"o","ŏ":"o","ő":"o","Ŕ":"R","Ŗ":"R","Ř":"R","ŕ":"r","ŗ":"r","ř":"r","Ś":"S","Ŝ":"S","Ş":"S","Š":"S","ś":"s","ŝ":"s","ş":"s","š":"s","Ţ":"T","Ť":"T","Ŧ":"T","ţ":"t","ť":"t","ŧ":"t","Ũ":"U","Ū":"U","Ŭ":"U","Ů":"U","Ű":"U","Ų":"U","ũ":"u","ū":"u","ŭ":"u","ů":"u","ű":"u","ų":"u","Ŵ":"W","ŵ":"w","Ŷ":"Y","ŷ":"y","Ÿ":"Y","Ź":"Z","Ż":"Z","Ž":"Z","ź":"z","ż":"z","ž":"z","IJ":"IJ","ij":"ij","Œ":"Oe","œ":"oe","ʼn":"'n","ſ":"s"},kr={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"},Or={"&amp;":"&","&lt;":"<","&gt;":">","&quot;":'"',"&#39;":"'"},Ar={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},Cr=parseFloat,Br=parseInt,Sr="object"==typeof t&&t&&t.Object===Object&&t,Tr="object"==typeof self&&self&&self.Object===Object&&self,Er=Sr||Tr||Function("return this")(),Mr="object"==typeof n&&n&&!n.nodeType&&n,Wr=Mr&&"object"==typeof e&&e&&!e.nodeType&&e,Lr=Wr&&Wr.exports===Mr,Pr=Lr&&Sr.process,Rr=function(){try{return Pr&&Pr.binding&&Pr.binding("util")}catch(t){}}(),Ir=Rr&&Rr.isArrayBuffer,zr=Rr&&Rr.isDate,Nr=Rr&&Rr.isMap,Ur=Rr&&Rr.isRegExp,Dr=Rr&&Rr.isSet,$r=Rr&&Rr.isTypedArray,Fr=A("length"),Yr=C(jr),Hr=C(kr),qr=C(Or),Zr=function t(n){function r(t){if(nf(t)&&!ph(t)&&!(t instanceof y)){if(t instanceof i)return t;if(ps.call(t,"__wrapped__"))return Ku(t)}return new i(t)}function e(){}function i(t,n){this.__wrapped__=t,this.__actions__=[],this.__chain__=!!n,this.__index__=0,this.__values__=et}function y(t){this.__wrapped__=t,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=Pt,this.__views__=[]}function C(){var t=new y(this.__wrapped__);return t.__actions__=Wi(this.__actions__),t.__dir__=this.__dir__,t.__filtered__=this.__filtered__,t.__iteratees__=Wi(this.__iteratees__),t.__takeCount__=this.__takeCount__,t.__views__=Wi(this.__views__),t}function V(){if(this.__filtered__){var t=new y(this);t.__dir__=-1,t.__filtered__=!0}else t=this.clone(),t.__dir__*=-1;return t}function tt(){var t=this.__wrapped__.value(),n=this.__dir__,r=ph(t),e=n<0,i=r?t.length:0,u=xu(0,i,this.__views__),o=u.start,a=u.end,f=a-o,c=e?a:o-1,s=this.__iteratees__,l=s.length,h=0,p=Fs(f,this.__takeCount__);if(!r||!e&&i==f&&p==f)return _i(t,this.__actions__);var v=[];t:for(;f--&&h<p;){c+=n;for(var d=-1,_=t[c];++d<l;){var g=s[d],y=g.iteratee,b=g.type,w=y(_);if(b==Tt)_=w;else if(!w){if(b==St)continue t;break t}}v[h++]=_}return v}function nt(t){var n=-1,r=null==t?0:t.length;for(this.clear();++n<r;){var e=t[n];this.set(e[0],e[1])}}function Nn(){this.__data__=Qs?Qs(null):{},this.size=0}function Kn(t){var n=this.has(t)&&delete this.__data__[t];return this.size-=n?1:0,n}function Jn(t){var n=this.__data__;if(Qs){var r=n[t];return r===at?et:r}return ps.call(n,t)?n[t]:et}function Qn(t){var n=this.__data__;return Qs?n[t]!==et:ps.call(n,t)}function tr(t,n){var r=this.__data__;return this.size+=this.has(t)?0:1,r[t]=Qs&&n===et?at:n,this}function nr(t){var n=-1,r=null==t?0:t.length;for(this.clear();++n<r;){var e=t[n];this.set(e[0],e[1])}}function rr(){this.__data__=[],this.size=0}function er(t){var n=this.__data__,r=Xr(n,t);return!(r<0)&&(r==n.length-1?n.pop():Cs.call(n,r,1),--this.size,!0)}function ir(t){var n=this.__data__,r=Xr(n,t);return r<0?et:n[r][1]}function ur(t){return Xr(this.__data__,t)>-1}function or(t,n){var r=this.__data__,e=Xr(r,t);return e<0?(++this.size,r.push([t,n])):r[e][1]=n,this}function ar(t){var n=-1,r=null==t?0:t.length;for(this.clear();++n<r;){var e=t[n];this.set(e[0],e[1])}}function fr(){this.size=0,this.__data__={hash:new nt,map:new(Gs||nr),string:new nt}}function cr(t){var n=yu(this,t).delete(t);return this.size-=n?1:0,n}function sr(t){return yu(this,t).get(t)}function lr(t){return yu(this,t).has(t)}function hr(t,n){var r=yu(this,t),e=r.size;return r.set(t,n),this.size+=r.size==e?0:1,this}function dr(t){var n=-1,r=null==t?0:t.length;for(this.__data__=new ar;++n<r;)this.add(t[n])}function _r(t){return this.__data__.set(t,at),this}function gr(t){return this.__data__.has(t)}function yr(t){var n=this.__data__=new nr(t);this.size=n.size}function jr(){this.__data__=new nr,this.size=0}function kr(t){var n=this.__data__,r=n.delete(t);return this.size=n.size,r}function Or(t){return this.__data__.get(t)}function Ar(t){return this.__data__.has(t)}function Sr(t,n){var r=this.__data__;if(r instanceof nr){var e=r.__data__;if(!Gs||e.length<it-1)return e.push([t,n]),this.size=++r.size,this;r=this.__data__=new ar(e)}return r.set(t,n),this.size=r.size,this}function Tr(t,n){var r=ph(t),e=!r&&hh(t),i=!r&&!e&&dh(t),u=!r&&!e&&!i&&wh(t),o=r||e||i||u,a=o?E(t.length,os):[],f=a.length;for(var c in t)!n&&!ps.call(t,c)||o&&("length"==c||i&&("offset"==c||"parent"==c)||u&&("buffer"==c||"byteLength"==c||"byteOffset"==c)||Tu(c,f))||a.push(c);return a}function Mr(t){var n=t.length;return n?t[Ke(0,n-1)]:et}function Wr(t,n){return Zu(Wi(t),te(n,0,t.length))}function Pr(t){return Zu(Wi(t))}function Rr(t,n,r){(r===et||Da(t[n],r))&&(r!==et||n in t)||Jr(t,n,r)}function Fr(t,n,r){var e=t[n];ps.call(t,n)&&Da(e,r)&&(r!==et||n in t)||Jr(t,n,r)}function Xr(t,n){for(var r=t.length;r--;)if(Da(t[r][0],n))return r;return-1}function Gr(t,n,r,e){return ll(t,function(t,i,u){n(e,t,r(t),u)}),e}function Vr(t,n){return t&&Li(n,If(n),t)}function Kr(t,n){return t&&Li(n,zf(n),t)}function Jr(t,n,r){"__proto__"==n&&Es?Es(t,n,{configurable:!0,enumerable:!0,value:r,writable:!0}):t[n]=r}function Qr(t,n){for(var r=-1,e=n.length,i=Qc(e),u=null==t;++r<e;)i[r]=u?et:Lf(t,n[r]);return i}function te(t,n,r){return t===t&&(r!==et&&(t=t<=r?t:r),n!==et&&(t=t>=n?t:n)),t}function ne(t,n,r,e,i,u){var o,f=n&st,c=n&lt,s=n&ht;if(r&&(o=i?r(t,e,i,u):r(t)),o!==et)return o;if(!tf(t))return t;var l=ph(t);if(l){if(o=Ou(t),!f)return Wi(t,o)}else{var h=jl(t),p=h==qt||h==Zt;if(dh(t))return ji(t,f);if(h==Kt||h==Nt||p&&!i){if(o=c||p?{}:Au(t),!f)return c?Ri(t,Kr(o,t)):Pi(t,Vr(o,t))}else{if(!xr[h])return i?t:{};o=Cu(t,h,f)}}u||(u=new yr);var v=u.get(t);if(v)return v;if(u.set(t,o),bh(t))return t.forEach(function(e){o.add(ne(e,n,r,e,t,u))}),o;if(gh(t))return t.forEach(function(e,i){o.set(i,ne(e,n,r,i,t,u))}),o;var d=s?c?vu:pu:c?zf:If,_=l?et:d(t);return a(_||t,function(e,i){_&&(i=e,e=t[i]),Fr(o,i,ne(e,n,r,i,t,u))}),o}function re(t){var n=If(t);return function(r){return ee(r,t,n)}}function ee(t,n,r){var e=r.length;if(null==t)return!e;for(t=is(t);e--;){var i=r[e],u=n[i],o=t[i];if(o===et&&!(i in t)||!u(o))return!1}return!0}function ie(t,n,r){if("function"!=typeof t)throw new as(ot);return Al(function(){t.apply(et,r)},n)}function ue(t,n,r,e){var i=-1,u=l,o=!0,a=t.length,f=[],c=n.length;if(!a)return f;r&&(n=p(n,W(r))),e?(u=h,o=!1):n.length>=it&&(u=P,o=!1,n=new dr(n));t:for(;++i<a;){var s=t[i],v=null==r?s:r(s);if(s=e||0!==s?s:0,o&&v===v){for(var d=c;d--;)if(n[d]===v)continue t;f.push(s)}else u(n,v,e)||f.push(s)}return f}function oe(t,n){var r=!0;return ll(t,function(t,e,i){return r=!!n(t,e,i)}),r}function ae(t,n,r){for(var e=-1,i=t.length;++e<i;){var u=t[e],o=n(u);if(null!=o&&(a===et?o===o&&!pf(o):r(o,a)))var a=o,f=u}return f}function fe(t,n,r,e){var i=t.length;for(r=bf(r),r<0&&(r=-r>i?0:i+r),e=e===et||e>i?i:bf(e),e<0&&(e+=i),e=r>e?0:wf(e);r<e;)t[r++]=n;return t}function ce(t,n){var r=[];return ll(t,function(t,e,i){n(t,e,i)&&r.push(t)}),r}function se(t,n,r,e,i){var u=-1,o=t.length;for(r||(r=Su),i||(i=[]);++u<o;){var a=t[u];n>0&&r(a)?n>1?se(a,n-1,r,e,i):v(i,a):e||(i[i.length]=a)}return i}function le(t,n){return t&&pl(t,n,If)}function he(t,n){return t&&vl(t,n,If)}function pe(t,n){return s(n,function(n){return Ka(t[n])})}function ve(t,n){n=mi(n,t);for(var r=0,e=n.length;null!=t&&r<e;)t=t[Xu(n[r++])];return r&&r==e?t:et}function de(t,n,r){var e=n(t);return ph(t)?e:v(e,r(t))}function _e(t){return null==t?t===et?en:Vt:Ts&&Ts in is(t)?mu(t):Du(t)}function ge(t,n){return t>n}function ye(t,n){return null!=t&&ps.call(t,n)}function be(t,n){return null!=t&&n in is(t)}function we(t,n,r){return t>=Fs(n,r)&&t<$s(n,r)}function me(t,n,r){for(var e=r?h:l,i=t[0].length,u=t.length,o=u,a=Qc(u),f=1/0,c=[];o--;){var s=t[o];o&&n&&(s=p(s,W(n))),f=Fs(s.length,f),a[o]=!r&&(n||i>=120&&s.length>=120)?new dr(o&&s):et}s=t[0];var v=-1,d=a[0];t:for(;++v<i&&c.length<f;){var _=s[v],g=n?n(_):_;if(_=r||0!==_?_:0,!(d?P(d,g):e(c,g,r))){for(o=u;--o;){var y=a[o];if(!(y?P(y,g):e(t[o],g,r)))continue t}d&&d.push(g),c.push(_)}}return c}function xe(t,n,r,e){return le(t,function(t,i,u){n(e,r(t),i,u)}),e}function je(t,n,r){n=mi(n,t),t=Fu(t,n);var e=null==t?t:t[Xu(go(n))];return null==e?et:u(e,t,r)}function ke(t){return nf(t)&&_e(t)==Nt}function Oe(t){return nf(t)&&_e(t)==an}function Ae(t){return nf(t)&&_e(t)==Ft}function Ce(t,n,r,e,i){return t===n||(null==t||null==n||!nf(t)&&!nf(n)?t!==t&&n!==n:Be(t,n,r,e,Ce,i))}function Be(t,n,r,e,i,u){var o=ph(t),a=ph(n),f=o?Ut:jl(t),c=a?Ut:jl(n);f=f==Nt?Kt:f,c=c==Nt?Kt:c;var s=f==Kt,l=c==Kt,h=f==c;if(h&&dh(t)){if(!dh(n))return!1;o=!0,s=!1}if(h&&!s)return u||(u=new yr),o||wh(t)?cu(t,n,r,e,i,u):su(t,n,f,r,e,i,u);if(!(r&pt)){var p=s&&ps.call(t,"__wrapped__"),v=l&&ps.call(n,"__wrapped__");if(p||v){var d=p?t.value():t,_=v?n.value():n;return u||(u=new yr),i(d,_,r,e,u)}}return!!h&&(u||(u=new yr),lu(t,n,r,e,i,u))}function Se(t){return nf(t)&&jl(t)==Xt}function Te(t,n,r,e){var i=r.length,u=i,o=!e;if(null==t)return!u;for(t=is(t);i--;){var a=r[i];if(o&&a[2]?a[1]!==t[a[0]]:!(a[0]in t))return!1}for(;++i<u;){a=r[i];var f=a[0],c=t[f],s=a[1];if(o&&a[2]){if(c===et&&!(f in t))return!1}else{var l=new yr;if(e)var h=e(c,s,f,t,n,l);if(!(h===et?Ce(s,c,pt|vt,e,l):h))return!1}}return!0}function Ee(t){return!(!tf(t)||Pu(t))&&(Ka(t)?bs:Hn).test(Gu(t))}function Me(t){return nf(t)&&_e(t)==Qt}function We(t){return nf(t)&&jl(t)==tn}function Le(t){return nf(t)&&Qa(t.length)&&!!mr[_e(t)]}function Pe(t){return"function"==typeof t?t:null==t?Cc:"object"==typeof t?ph(t)?De(t[0],t[1]):Ue(t):Pc(t)}function Re(t){if(!Ru(t))return Ds(t);var n=[];for(var r in is(t))ps.call(t,r)&&"constructor"!=r&&n.push(r);return n}function Ie(t){if(!tf(t))return Uu(t);var n=Ru(t),r=[];for(var e in t)("constructor"!=e||!n&&ps.call(t,e))&&r.push(e);return r}function ze(t,n){return t<n}function Ne(t,n){var r=-1,e=$a(t)?Qc(t.length):[];return ll(t,function(t,i,u){e[++r]=n(t,i,u)}),e}function Ue(t){var n=bu(t);return 1==n.length&&n[0][2]?zu(n[0][0],n[0][1]):function(r){return r===t||Te(r,t,n)}}function De(t,n){return Mu(t)&&Iu(n)?zu(Xu(t),n):function(r){var e=Lf(r,t);return e===et&&e===n?Rf(r,t):Ce(n,e,pt|vt)}}function $e(t,n,r,e,i){t!==n&&pl(n,function(u,o){if(tf(u))i||(i=new yr),Fe(t,n,o,r,$e,e,i);else{var a=e?e(Z(t,o),u,o+"",t,n,i):et;a===et&&(a=u),Rr(t,o,a)}},zf)}function Fe(t,n,r,e,i,u,o){var a=Z(t,r),f=Z(n,r),c=o.get(f);if(c)return void Rr(t,r,c);var s=u?u(a,f,r+"",t,n,o):et,l=s===et;if(l){var h=ph(f),p=!h&&dh(f),v=!h&&!p&&wh(f);s=f,h||p||v?ph(a)?s=a:Fa(a)?s=Wi(a):p?(l=!1,s=ji(f,!0)):v?(l=!1,s=Bi(f,!0)):s=[]:sf(f)||hh(f)?(s=a,hh(a)?s=xf(a):(!tf(a)||e&&Ka(a))&&(s=Au(f))):l=!1}l&&(o.set(f,s),i(s,f,e,u,o),o.delete(f)),Rr(t,r,s)}function Ye(t,n){var r=t.length;if(r)return n+=n<0?r:0,Tu(n,r)?t[n]:et}function He(t,n,r){var e=-1;return n=p(n.length?n:[Cc],W(gu())),S(Ne(t,function(t,r,i){return{criteria:p(n,function(n){return n(t)}),index:++e,value:t}}),function(t,n){return Ti(t,n,r)})}function qe(t,n){return Ze(t,n,function(n,r){return Rf(t,r)})}function Ze(t,n,r){for(var e=-1,i=n.length,u={};++e<i;){var o=n[e],a=ve(t,o);r(a,o)&&ei(u,mi(o,t),a)}return u}function Xe(t){return function(n){return ve(n,t)}}function Ge(t,n,r,e){var i=e?j:x,u=-1,o=n.length,a=t;for(t===n&&(n=Wi(n)),r&&(a=p(t,W(r)));++u<o;)for(var f=0,c=n[u],s=r?r(c):c;(f=i(a,s,f,e))>-1;)a!==t&&Cs.call(a,f,1),Cs.call(t,f,1);return t}function Ve(t,n){for(var r=t?n.length:0,e=r-1;r--;){var i=n[r];if(r==e||i!==u){var u=i;Tu(i)?Cs.call(t,i,1):pi(t,i)}}return t}function Ke(t,n){return t+Rs(qs()*(n-t+1))}function Je(t,n,r,e){for(var i=-1,u=$s(Ps((n-t)/(r||1)),0),o=Qc(u);u--;)o[e?u:++i]=t,t+=r;return o}function Qe(t,n){var r="";if(!t||n<1||n>Mt)return r;do{n%2&&(r+=t),(n=Rs(n/2))&&(t+=t)}while(n);return r}function ti(t,n){return Cl($u(t,n,Cc),t+"")}function ni(t){return Mr(Vf(t))}function ri(t,n){var r=Vf(t);return Zu(r,te(n,0,r.length))}function ei(t,n,r,e){if(!tf(t))return t;n=mi(n,t);for(var i=-1,u=n.length,o=u-1,a=t;null!=a&&++i<u;){var f=Xu(n[i]),c=r;if(i!=o){var s=a[f];c=e?e(s,f,a):et,c===et&&(c=tf(s)?s:Tu(n[i+1])?[]:{})}Fr(a,f,c),a=a[f]}return t}function ii(t){return Zu(Vf(t))}function ui(t,n,r){var e=-1,i=t.length;n<0&&(n=-n>i?0:i+n),r=r>i?i:r,r<0&&(r+=i),i=n>r?0:r-n>>>0,n>>>=0;for(var u=Qc(i);++e<i;)u[e]=t[e+n];return u}function oi(t,n){var r;return ll(t,function(t,e,i){return!(r=n(t,e,i))}),!!r}function ai(t,n,r){var e=0,i=null==t?e:t.length;if("number"==typeof n&&n===n&&i<=It){for(;e<i;){var u=e+i>>>1,o=t[u];null!==o&&!pf(o)&&(r?o<=n:o<n)?e=u+1:i=u}return i}return fi(t,n,Cc,r)}function fi(t,n,r,e){n=r(n);for(var i=0,u=null==t?0:t.length,o=n!==n,a=null===n,f=pf(n),c=n===et;i<u;){var s=Rs((i+u)/2),l=r(t[s]),h=l!==et,p=null===l,v=l===l,d=pf(l);if(o)var _=e||v;else _=c?v&&(e||h):a?v&&h&&(e||!p):f?v&&h&&!p&&(e||!d):!p&&!d&&(e?l<=n:l<n);_?i=s+1:u=s}return Fs(u,Rt)}function ci(t,n){for(var r=-1,e=t.length,i=0,u=[];++r<e;){var o=t[r],a=n?n(o):o;if(!r||!Da(a,f)){var f=a;u[i++]=0===o?0:o}}return u}function si(t){return"number"==typeof t?t:pf(t)?Lt:+t}function li(t){if("string"==typeof t)return t;if(ph(t))return p(t,li)+"";if(pf(t))return cl?cl.call(t):"";var n=t+"";return"0"==n&&1/t==-Et?"-0":n}function hi(t,n,r){var e=-1,i=l,u=t.length,o=!0,a=[],f=a;if(r)o=!1,i=h;else if(u>=it){var c=n?null:bl(t);if(c)return X(c);o=!1,i=P,f=new dr}else f=n?[]:a;t:for(;++e<u;){var s=t[e],p=n?n(s):s;if(s=r||0!==s?s:0,o&&p===p){for(var v=f.length;v--;)if(f[v]===p)continue t;n&&f.push(p),a.push(s)}else i(f,p,r)||(f!==a&&f.push(p),a.push(s))}return a}function pi(t,n){return n=mi(n,t),null==(t=Fu(t,n))||delete t[Xu(go(n))]}function vi(t,n,r,e){return ei(t,n,r(ve(t,n)),e)}function di(t,n,r,e){for(var i=t.length,u=e?i:-1;(e?u--:++u<i)&&n(t[u],u,t););return r?ui(t,e?0:u,e?u+1:i):ui(t,e?u+1:0,e?i:u)}function _i(t,n){var r=t;return r instanceof y&&(r=r.value()),d(n,function(t,n){return n.func.apply(n.thisArg,v([t],n.args))},r)}function gi(t,n,r){var e=t.length;if(e<2)return e?hi(t[0]):[];for(var i=-1,u=Qc(e);++i<e;)for(var o=t[i],a=-1;++a<e;)a!=i&&(u[i]=ue(u[i]||o,t[a],n,r));return hi(se(u,1),n,r)}function yi(t,n,r){for(var e=-1,i=t.length,u=n.length,o={};++e<i;){var a=e<u?n[e]:et;r(o,t[e],a)}return o}function bi(t){return Fa(t)?t:[]}function wi(t){return"function"==typeof t?t:Cc}function mi(t,n){return ph(t)?t:Mu(t,n)?[t]:Bl(kf(t))}function xi(t,n,r){var e=t.length;return r=r===et?e:r,!n&&r>=e?t:ui(t,n,r)}function ji(t,n){if(n)return t.slice();var r=t.length,e=js?js(r):new t.constructor(r);return t.copy(e),e}function ki(t){var n=new t.constructor(t.byteLength);return new xs(n).set(new xs(t)),n}function Oi(t,n){var r=n?ki(t.buffer):t.buffer;return new t.constructor(r,t.byteOffset,t.byteLength)}function Ai(t){var n=new t.constructor(t.source,$n.exec(t));return n.lastIndex=t.lastIndex,n}function Ci(t){return fl?is(fl.call(t)):{}}function Bi(t,n){var r=n?ki(t.buffer):t.buffer;return new t.constructor(r,t.byteOffset,t.length)}function Si(t,n){if(t!==n){var r=t!==et,e=null===t,i=t===t,u=pf(t),o=n!==et,a=null===n,f=n===n,c=pf(n);if(!a&&!c&&!u&&t>n||u&&o&&f&&!a&&!c||e&&o&&f||!r&&f||!i)return 1;if(!e&&!u&&!c&&t<n||c&&r&&i&&!e&&!u||a&&r&&i||!o&&i||!f)return-1}return 0}function Ti(t,n,r){for(var e=-1,i=t.criteria,u=n.criteria,o=i.length,a=r.length;++e<o;){var f=Si(i[e],u[e]);if(f){if(e>=a)return f;return f*("desc"==r[e]?-1:1)}}return t.index-n.index}function Ei(t,n,r,e){for(var i=-1,u=t.length,o=r.length,a=-1,f=n.length,c=$s(u-o,0),s=Qc(f+c),l=!e;++a<f;)s[a]=n[a];for(;++i<o;)(l||i<u)&&(s[r[i]]=t[i]);for(;c--;)s[a++]=t[i++];return s}function Mi(t,n,r,e){for(var i=-1,u=t.length,o=-1,a=r.length,f=-1,c=n.length,s=$s(u-a,0),l=Qc(s+c),h=!e;++i<s;)l[i]=t[i];for(var p=i;++f<c;)l[p+f]=n[f];for(;++o<a;)(h||i<u)&&(l[p+r[o]]=t[i++]);return l}function Wi(t,n){var r=-1,e=t.length;for(n||(n=Qc(e));++r<e;)n[r]=t[r];return n}function Li(t,n,r,e){var i=!r;r||(r={});for(var u=-1,o=n.length;++u<o;){var a=n[u],f=e?e(r[a],t[a],a,r,t):et;f===et&&(f=t[a]),i?Jr(r,a,f):Fr(r,a,f)}return r}function Pi(t,n){return Li(t,ml(t),n)}function Ri(t,n){return Li(t,xl(t),n)}function Ii(t,n){return function(r,e){var i=ph(r)?o:Gr,u=n?n():{};return i(r,t,gu(e,2),u)}}function zi(t){return ti(function(n,r){var e=-1,i=r.length,u=i>1?r[i-1]:et,o=i>2?r[2]:et;for(u=t.length>3&&"function"==typeof u?(i--,u):et,o&&Eu(r[0],r[1],o)&&(u=i<3?et:u,i=1),n=is(n);++e<i;){var a=r[e];a&&t(n,a,e,u)}return n})}function Ni(t,n){return function(r,e){if(null==r)return r;if(!$a(r))return t(r,e);for(var i=r.length,u=n?i:-1,o=is(r);(n?u--:++u<i)&&!1!==e(o[u],u,o););return r}}function Ui(t){return function(n,r,e){for(var i=-1,u=is(n),o=e(n),a=o.length;a--;){var f=o[t?a:++i];if(!1===r(u[f],f,u))break}return n}}function Di(t,n,r){function e(){return(this&&this!==Er&&this instanceof e?u:t).apply(i?r:this,arguments)}var i=n&dt,u=Yi(t);return e}function $i(t){return function(n){n=kf(n);var r=D(n)?Q(n):et,e=r?r[0]:n.charAt(0),i=r?xi(r,1).join(""):n.slice(1);return e[t]()+i}}function Fi(t){return function(n){return d(xc(rc(n).replace(pr,"")),t,"")}}function Yi(t){return function(){var n=arguments;switch(n.length){case 0:return new t;case 1:return new t(n[0]);case 2:return new t(n[0],n[1]);case 3:return new t(n[0],n[1],n[2]);case 4:return new t(n[0],n[1],n[2],n[3]);case 5:return new t(n[0],n[1],n[2],n[3],n[4]);case 6:return new t(n[0],n[1],n[2],n[3],n[4],n[5]);case 7:return new t(n[0],n[1],n[2],n[3],n[4],n[5],n[6])}var r=sl(t.prototype),e=t.apply(r,n);return tf(e)?e:r}}function Hi(t,n,r){function e(){for(var o=arguments.length,a=Qc(o),f=o,c=_u(e);f--;)a[f]=arguments[f];var s=o<3&&a[0]!==c&&a[o-1]!==c?[]:q(a,c);return(o-=s.length)<r?ru(t,n,Xi,e.placeholder,et,a,s,et,et,r-o):u(this&&this!==Er&&this instanceof e?i:t,this,a)}var i=Yi(t);return e}function qi(t){return function(n,r,e){var i=is(n);if(!$a(n)){var u=gu(r,3);n=If(n),r=function(t){return u(i[t],t,i)}}var o=t(n,r,e);return o>-1?i[u?n[o]:o]:et}}function Zi(t){return hu(function(n){var r=n.length,e=r,u=i.prototype.thru;for(t&&n.reverse();e--;){var o=n[e];if("function"!=typeof o)throw new as(ot);if(u&&!a&&"wrapper"==du(o))var a=new i([],!0)}for(e=a?e:r;++e<r;){o=n[e];var f=du(o),c="wrapper"==f?wl(o):et;a=c&&Lu(c[0])&&c[1]==(xt|yt|wt|jt)&&!c[4].length&&1==c[9]?a[du(c[0])].apply(a,c[3]):1==o.length&&Lu(o)?a[f]():a.thru(o)}return function(){var t=arguments,e=t[0];if(a&&1==t.length&&ph(e))return a.plant(e).value();for(var i=0,u=r?n[i].apply(this,t):e;++i<r;)u=n[i].call(this,u);return u}})}function Xi(t,n,r,e,i,u,o,a,f,c){function s(){for(var g=arguments.length,y=Qc(g),b=g;b--;)y[b]=arguments[b];if(v)var w=_u(s),m=z(y,w);if(e&&(y=Ei(y,e,i,v)),u&&(y=Mi(y,u,o,v)),g-=m,v&&g<c){var x=q(y,w);return ru(t,n,Xi,s.placeholder,r,y,x,a,f,c-g)}var j=h?r:this,k=p?j[t]:t;return g=y.length,a?y=Yu(y,a):d&&g>1&&y.reverse(),l&&f<g&&(y.length=f),this&&this!==Er&&this instanceof s&&(k=_||Yi(k)),k.apply(j,y)}var l=n&xt,h=n&dt,p=n&_t,v=n&(yt|bt),d=n&kt,_=p?et:Yi(t);return s}function Gi(t,n){return function(r,e){return xe(r,t,n(e),{})}}function Vi(t,n){return function(r,e){var i;if(r===et&&e===et)return n;if(r!==et&&(i=r),e!==et){if(i===et)return e;"string"==typeof r||"string"==typeof e?(r=li(r),e=li(e)):(r=si(r),e=si(e)),i=t(r,e)}return i}}function Ki(t){return hu(function(n){return n=p(n,W(gu())),ti(function(r){var e=this;return t(n,function(t){return u(t,e,r)})})})}function Ji(t,n){n=n===et?" ":li(n);var r=n.length;if(r<2)return r?Qe(n,t):n;var e=Qe(n,Ps(t/J(n)));return D(n)?xi(Q(e),0,t).join(""):e.slice(0,t)}function Qi(t,n,r,e){function i(){for(var n=-1,f=arguments.length,c=-1,s=e.length,l=Qc(s+f),h=this&&this!==Er&&this instanceof i?a:t;++c<s;)l[c]=e[c];for(;f--;)l[c++]=arguments[++n];return u(h,o?r:this,l)}var o=n&dt,a=Yi(t);return i}function tu(t){return function(n,r,e){return e&&"number"!=typeof e&&Eu(n,r,e)&&(r=e=et),n=yf(n),r===et?(r=n,n=0):r=yf(r),e=e===et?n<r?1:-1:yf(e),Je(n,r,e,t)}}function nu(t){return function(n,r){return"string"==typeof n&&"string"==typeof r||(n=mf(n),r=mf(r)),t(n,r)}}function ru(t,n,r,e,i,u,o,a,f,c){var s=n&yt,l=s?o:et,h=s?et:o,p=s?u:et,v=s?et:u;n|=s?wt:mt,(n&=~(s?mt:wt))&gt||(n&=~(dt|_t));var d=[t,n,i,p,l,v,h,a,f,c],_=r.apply(et,d);return Lu(t)&&Ol(_,d),_.placeholder=e,Hu(_,t,n)}function eu(t){var n=es[t];return function(t,r){if(t=mf(t),r=null==r?0:Fs(bf(r),292)){var e=(kf(t)+"e").split("e");return e=(kf(n(e[0]+"e"+(+e[1]+r)))+"e").split("e"),+(e[0]+"e"+(+e[1]-r))}return n(t)}}function iu(t){return function(n){var r=jl(n);return r==Xt?Y(n):r==tn?G(n):M(n,t(n))}}function uu(t,n,r,e,i,u,o,a){var f=n&_t;if(!f&&"function"!=typeof t)throw new as(ot);var c=e?e.length:0;if(c||(n&=~(wt|mt),e=i=et),o=o===et?o:$s(bf(o),0),a=a===et?a:bf(a),c-=i?i.length:0,n&mt){var s=e,l=i;e=i=et}var h=f?et:wl(t),p=[t,n,r,e,i,s,l,u,o,a];if(h&&Nu(p,h),t=p[0],n=p[1],r=p[2],e=p[3],i=p[4],a=p[9]=p[9]===et?f?0:t.length:$s(p[9]-c,0),!a&&n&(yt|bt)&&(n&=~(yt|bt)),n&&n!=dt)v=n==yt||n==bt?Hi(t,n,a):n!=wt&&n!=(dt|wt)||i.length?Xi.apply(et,p):Qi(t,n,r,e);else var v=Di(t,n,r);return Hu((h?dl:Ol)(v,p),t,n)}function ou(t,n,r,e){return t===et||Da(t,ss[r])&&!ps.call(e,r)?n:t}function au(t,n,r,e,i,u){return tf(t)&&tf(n)&&(u.set(n,t),$e(t,n,et,au,u),u.delete(n)),t}function fu(t){return sf(t)?et:t}function cu(t,n,r,e,i,u){var o=r&pt,a=t.length,f=n.length;if(a!=f&&!(o&&f>a))return!1;var c=u.get(t);if(c&&u.get(n))return c==n;var s=-1,l=!0,h=r&vt?new dr:et;for(u.set(t,n),u.set(n,t);++s<a;){var p=t[s],v=n[s];if(e)var d=o?e(v,p,s,n,t,u):e(p,v,s,t,n,u);if(d!==et){if(d)continue;l=!1;break}if(h){if(!g(n,function(t,n){if(!P(h,n)&&(p===t||i(p,t,r,e,u)))return h.push(n)})){l=!1;break}}else if(p!==v&&!i(p,v,r,e,u)){l=!1;break}}return u.delete(t),u.delete(n),l}function su(t,n,r,e,i,u,o){switch(r){case fn:if(t.byteLength!=n.byteLength||t.byteOffset!=n.byteOffset)return!1;t=t.buffer,n=n.buffer;case an:return!(t.byteLength!=n.byteLength||!u(new xs(t),new xs(n)));case $t:case Ft:case Gt:return Da(+t,+n);case Ht:return t.name==n.name&&t.message==n.message;case Qt:case nn:return t==n+"";case Xt:var a=Y;case tn:var f=e&pt;if(a||(a=X),t.size!=n.size&&!f)return!1;var c=o.get(t);if(c)return c==n;e|=vt,o.set(t,n);var s=cu(a(t),a(n),e,i,u,o);return o.delete(t),s;case rn:if(fl)return fl.call(t)==fl.call(n)}return!1}function lu(t,n,r,e,i,u){var o=r&pt,a=pu(t),f=a.length;if(f!=pu(n).length&&!o)return!1;for(var c=f;c--;){var s=a[c];if(!(o?s in n:ps.call(n,s)))return!1}var l=u.get(t);if(l&&u.get(n))return l==n;var h=!0;u.set(t,n),u.set(n,t);for(var p=o;++c<f;){s=a[c];var v=t[s],d=n[s];if(e)var _=o?e(d,v,s,n,t,u):e(v,d,s,t,n,u);if(!(_===et?v===d||i(v,d,r,e,u):_)){h=!1;break}p||(p="constructor"==s)}if(h&&!p){var g=t.constructor,y=n.constructor;g!=y&&"constructor"in t&&"constructor"in n&&!("function"==typeof g&&g instanceof g&&"function"==typeof y&&y instanceof y)&&(h=!1)}return u.delete(t),u.delete(n),h}function hu(t){return Cl($u(t,et,fo),t+"")}function pu(t){return de(t,If,ml)}function vu(t){return de(t,zf,xl)}function du(t){for(var n=t.name+"",r=nl[n],e=ps.call(nl,n)?r.length:0;e--;){var i=r[e],u=i.func;if(null==u||u==t)return i.name}return n}function _u(t){return(ps.call(r,"placeholder")?r:t).placeholder}function gu(){var t=r.iteratee||Bc;return t=t===Bc?Pe:t,arguments.length?t(arguments[0],arguments[1]):t}function yu(t,n){var r=t.__data__;return Wu(n)?r["string"==typeof n?"string":"hash"]:r.map}function bu(t){for(var n=If(t),r=n.length;r--;){var e=n[r],i=t[e];n[r]=[e,i,Iu(i)]}return n}function wu(t,n){var r=U(t,n);retur